From 2d4253e155682b2b07773a91ec20714bfe5d464f Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Sat, 20 Aug 2022 12:22:12 +0200 Subject: [PATCH] More work on WASM handling. --- Cargo.toml | 1 + src/dynamic_data/choices.rs | 1 + src/dynamic_data/event_hooks.rs | 9 ++ src/dynamic_data/libraries/misc_library.rs | 2 +- src/dynamic_data/models/learned_move.rs | 2 + src/dynamic_data/models/pokemon.rs | 36 ++++- src/lib.rs | 3 - .../dynamic_data/learned_move.rs | 25 +++ .../wasm/export_registry/dynamic_data/mod.rs | 13 ++ .../export_registry/dynamic_data/pokemon.rs | 77 +++++++++ .../dynamic_data/turn_choice.rs | 61 +++++++ .../wasm/export_registry/mod.rs | 141 +++++++++++----- .../wasm/export_registry/static_data/mod.rs | 52 ++++++ .../wasm/export_registry/static_data/moves.rs | 71 ++++++++ .../export_registry/static_data/species.rs | 61 +++++++ src/script_implementations/wasm/extern_ref.rs | 41 ++++- src/script_implementations/wasm/mod.rs | 2 + src/script_implementations/wasm/script.rs | 63 ++++++-- .../wasm/script_function_cache.rs | 62 +++++++ .../wasm/script_resolver.rs | 151 +++++++++++++++--- .../wasm/temp_wasm_allocator.rs | 53 ++++++ src/static_data/libraries/item_library.rs | 1 + src/static_data/libraries/library_settings.rs | 1 + src/static_data/libraries/species_library.rs | 1 + src/static_data/libraries/type_library.rs | 7 + src/static_data/moves/move_data.rs | 7 +- src/static_data/moves/secondary_effect.rs | 3 +- src/static_data/species_data/ability.rs | 1 + src/static_data/species_data/species.rs | 1 + src/static_data/statistic_set.rs | 2 + src/static_data/statistics.rs | 1 + src/utils/string_key.rs | 8 +- tests/common/library_loader.rs | 4 +- tests/data/gen7_scripts.wasm | Bin 0 -> 926794 bytes tests/data/gen7_scripts_rs.wasm | Bin 811658 -> 0 bytes tests/main.rs | 45 +++++- 36 files changed, 922 insertions(+), 87 deletions(-) create mode 100644 src/script_implementations/wasm/export_registry/dynamic_data/learned_move.rs create mode 100644 src/script_implementations/wasm/export_registry/dynamic_data/mod.rs create mode 100644 src/script_implementations/wasm/export_registry/dynamic_data/pokemon.rs create mode 100644 src/script_implementations/wasm/export_registry/dynamic_data/turn_choice.rs create mode 100644 src/script_implementations/wasm/export_registry/static_data/mod.rs create mode 100644 src/script_implementations/wasm/export_registry/static_data/moves.rs create mode 100644 src/script_implementations/wasm/export_registry/static_data/species.rs create mode 100644 src/script_implementations/wasm/script_function_cache.rs create mode 100644 src/script_implementations/wasm/temp_wasm_allocator.rs create mode 100755 tests/data/gen7_scripts.wasm delete mode 100755 tests/data/gen7_scripts_rs.wasm diff --git a/Cargo.toml b/Cargo.toml index 4c8d8a6..d11a670 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -56,6 +56,7 @@ serde = { version = "1.0.137", optional = true, features = ["derive"] } wasmer = { version = "2.3.0", optional = true, default-features = false, features = ["default-cranelift", "universal", "experimental-reference-types-extern-ref"] } unique-type-id = { version = "1.0.0", optional = true } unique-type-id-derive = { version = "1.0.0", optional = true } +paste = { version = "1.0.8" } [dev-dependencies] csv = "1.1.6" diff --git a/src/dynamic_data/choices.rs b/src/dynamic_data/choices.rs index 5304896..2e1c04f 100644 --- a/src/dynamic_data/choices.rs +++ b/src/dynamic_data/choices.rs @@ -29,6 +29,7 @@ struct CommonChoiceData<'user, 'library> { /// This enum defines a single choice for a Pokemon for a battle turn. #[derive(Debug)] +#[cfg_attr(feature = "wasm", derive(unique_type_id_derive::UniqueTypeId))] pub enum TurnChoice<'user, 'library> { /// A move choice tells a Pokemon to use a move on a target for this turn. Move(MoveChoice<'user, 'library>), diff --git a/src/dynamic_data/event_hooks.rs b/src/dynamic_data/event_hooks.rs index fde6c1e..9d6c6f9 100644 --- a/src/dynamic_data/event_hooks.rs +++ b/src/dynamic_data/event_hooks.rs @@ -91,6 +91,15 @@ pub enum Event<'own, 'battle, 'library> { /// The health of the Pokemon after the damage. new_health: u32, }, + /// This event happens when a Pokemon gets healed + Heal { + /// The Pokemon that gets healed. + pokemon: &'own Pokemon<'battle, 'library>, + /// The health of the Pokemon before the heal. + original_health: u32, + /// The health of the Pokemon after the heal. + new_health: u32, + }, /// This event happens when a Pokemon faints. Faint { /// The pokemon that has fainted. diff --git a/src/dynamic_data/libraries/misc_library.rs b/src/dynamic_data/libraries/misc_library.rs index 811507d..b94e0a9 100644 --- a/src/dynamic_data/libraries/misc_library.rs +++ b/src/dynamic_data/libraries/misc_library.rs @@ -68,7 +68,7 @@ impl<'library> Default for Gen7MiscLibrary<'library> { impl<'library> Drop for Gen7MiscLibrary<'library> { fn drop(&mut self) { unsafe { - Box::from_raw(self.struggle_data as *mut MoveData); + let _ = Box::from_raw(self.struggle_data as *mut MoveData); } } } diff --git a/src/dynamic_data/models/learned_move.rs b/src/dynamic_data/models/learned_move.rs index a86ca12..781e8fe 100644 --- a/src/dynamic_data/models/learned_move.rs +++ b/src/dynamic_data/models/learned_move.rs @@ -5,6 +5,7 @@ use crate::static_data::MoveData; /// A learned move is the data attached to a Pokemon for a move it has learned. It has information /// such as the remaining amount of users, how it has been learned, etc. #[derive(Debug)] +#[cfg_attr(feature = "wasm", derive(unique_type_id_derive::UniqueTypeId))] pub struct LearnedMove<'library> { /// The immutable move information of the move. move_data: &'library MoveData, @@ -18,6 +19,7 @@ pub struct LearnedMove<'library> { /// The different ways a move can be learned. #[derive(Copy, Clone, Debug, Default)] +#[repr(u8)] pub enum MoveLearnMethod { /// We do not know the learn method. #[default] diff --git a/src/dynamic_data/models/pokemon.rs b/src/dynamic_data/models/pokemon.rs index f7c065c..dc61d4c 100644 --- a/src/dynamic_data/models/pokemon.rs +++ b/src/dynamic_data/models/pokemon.rs @@ -25,6 +25,7 @@ use crate::{script_hook, PkmnResult, StringKey}; /// An individual Pokemon as we know and love them. #[derive(Debug)] +#[cfg_attr(feature = "wasm", derive(unique_type_id_derive::UniqueTypeId))] pub struct Pokemon<'own, 'library> where 'own: 'library, @@ -306,6 +307,12 @@ impl<'own, 'library> Pokemon<'own, 'library> { pub fn flat_stats(&self) -> &StatisticSet { &self.flat_stats } + + /// The stats of the Pokemon including the stat boosts + pub fn stat_boosts(&self) -> &ClampedStatisticSet { + &self.stat_boost + } + /// The stats of the Pokemon including the stat boosts pub fn boosted_stats(&self) -> &StatisticSet { &self.boosted_stats @@ -613,7 +620,6 @@ impl<'own, 'library> Pokemon<'own, 'library> { original_health: self.current_health(), new_health, }); - // TODO: register history } } if self.battle_data.read().is_some_and(|a| a.on_battle_field()) { @@ -645,6 +651,33 @@ impl<'own, 'library> Pokemon<'own, 'library> { } } + /// Heals the Pokemon by a specific amount. Unless allow_revive is set to true, this will not + /// heal if the Pokemon has 0 health. If the amount healed is 0, this will return false. + pub fn heal(&self, mut amount: u32, allow_revive: bool) -> bool { + if self.current_health() == 0 && !allow_revive { + return false; + } + let max_amount = self.max_health() - self.current_health(); + if amount > max_amount { + amount = max_amount; + } + if amount == 0 { + return false; + } + let new_health = self.current_health() + max_amount; + if let Some(battle_data) = &self.battle_data.read().deref() { + if let Some(battle) = battle_data.battle() { + battle.event_hook().trigger(Event::Heal { + pokemon: self, + original_health: self.current_health(), + new_health, + }); + } + } + self.current_health.store(new_health, Ordering::SeqCst); + true + } + /// Learn a move. pub fn learn_move(&self, move_name: &StringKey, learn_method: MoveLearnMethod) { let mut learned_moves = self.learned_moves().write(); @@ -745,6 +778,7 @@ impl<'own, 'library> VolatileScriptsOwner<'own> for Pokemon<'own, 'library> { /// A source of damage. This should be as unique as possible. #[derive(Debug, Clone, Copy)] +#[repr(u8)] pub enum DamageSource { /// The damage is done by a move. MoveDamage = 0, diff --git a/src/lib.rs b/src/lib.rs index 0964544..71100fb 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -5,11 +5,9 @@ #![deny(clippy::missing_docs_in_private_items)] #![feature(test)] #![feature(bench_black_box)] -#![feature(let_chains)] #![feature(once_cell)] #![feature(const_option)] #![feature(is_some_with)] -#![feature(core_ffi_c)] #![feature(new_uninit)] #![feature(get_mut_unchecked)] @@ -18,7 +16,6 @@ //! generation 7, this library tries to offload generational differences such as move effects //! to a scripting library. //! -extern crate core; #[doc(hidden)] pub use utils::*; diff --git a/src/script_implementations/wasm/export_registry/dynamic_data/learned_move.rs b/src/script_implementations/wasm/export_registry/dynamic_data/learned_move.rs new file mode 100644 index 0000000..b0f8cb3 --- /dev/null +++ b/src/script_implementations/wasm/export_registry/dynamic_data/learned_move.rs @@ -0,0 +1,25 @@ +use std::intrinsics::transmute; + +use crate::dynamic_data::{LearnedMove, MoveLearnMethod, Pokemon, TurnChoice}; +use crate::script_implementations::wasm::export_registry::register; +use crate::script_implementations::wasm::extern_ref::ExternRef; +use crate::script_implementations::wasm::script_resolver::WebAssemblyEnv; +use crate::static_data::MoveData; + +register! { + fn learned_move_get_learn_method<'a>( + env: &WebAssemblyEnv, + turn_choice: ExternRef, + ) -> u8 { + unsafe { + transmute(turn_choice.value(env).unwrap().learn_method()) + } + } + + fn learned_move_get_move_data<'a>( + env: &WebAssemblyEnv, + turn_choice: ExternRef, + ) -> ExternRef { + ExternRef::new(env.data().as_ref(), turn_choice.value(env).unwrap().move_data()) + } +} diff --git a/src/script_implementations/wasm/export_registry/dynamic_data/mod.rs b/src/script_implementations/wasm/export_registry/dynamic_data/mod.rs new file mode 100644 index 0000000..bb8b0b0 --- /dev/null +++ b/src/script_implementations/wasm/export_registry/dynamic_data/mod.rs @@ -0,0 +1,13 @@ +use wasmer::{Exports, Store}; + +use crate::script_implementations::wasm::script_resolver::WebAssemblyEnv; + +mod learned_move; +mod pokemon; +mod turn_choice; + +pub(crate) fn register(exports: &mut Exports, store: &Store, env: WebAssemblyEnv) { + turn_choice::register(exports, store, env.clone()); + pokemon::register(exports, store, env.clone()); + learned_move::register(exports, store, env.clone()); +} diff --git a/src/script_implementations/wasm/export_registry/dynamic_data/pokemon.rs b/src/script_implementations/wasm/export_registry/dynamic_data/pokemon.rs new file mode 100644 index 0000000..4f4912d --- /dev/null +++ b/src/script_implementations/wasm/export_registry/dynamic_data/pokemon.rs @@ -0,0 +1,77 @@ +use std::mem::transmute; + +use crate::dynamic_data::{DamageSource, DynamicLibrary, Pokemon}; +use crate::script_implementations::wasm::export_registry::register; +use crate::script_implementations::wasm::extern_ref::ExternRef; +use crate::script_implementations::wasm::script_resolver::WebAssemblyEnv; +use crate::static_data::StatisticSet; +use crate::static_data::{ClampedStatisticSet, Species}; + +register! { + fn pokemon_get_library( + env: &WebAssemblyEnv, + pokemon: ExternRef, + ) -> ExternRef { + let lib = pokemon.value(env).unwrap().library(); + ExternRef::new(env.data().as_ref(), lib) + } + + fn pokemon_get_boosted_stats( + env: &WebAssemblyEnv, + pokemon: ExternRef, + ) -> ExternRef> { + let statistic_set = pokemon.value(env).unwrap().boosted_stats(); + ExternRef::new(env.data().as_ref(), statistic_set) + } + + fn pokemon_get_flat_stats( + env: &WebAssemblyEnv, + pokemon: ExternRef, + ) -> ExternRef> { + let statistic_set = pokemon.value(env).unwrap().flat_stats(); + ExternRef::new(env.data().as_ref(), statistic_set) + } + + fn pokemon_get_stat_boosts( + env: &WebAssemblyEnv, + pokemon: ExternRef, + ) -> ExternRef> { + let statistic_set = pokemon.value(env).unwrap().stat_boosts(); + ExternRef::new(env.data().as_ref(), statistic_set) + } + + fn pokemon_get_individual_values( + env: &WebAssemblyEnv, + pokemon: ExternRef, + ) -> ExternRef> { + let statistic_set = pokemon.value(env).unwrap().individual_values(); + ExternRef::new(env.data().as_ref(), statistic_set) + } + + fn pokemon_get_effort_values( + env: &WebAssemblyEnv, + pokemon: ExternRef, + ) -> ExternRef> { + let statistic_set = pokemon.value(env).unwrap().effort_values(); + ExternRef::new(env.data().as_ref(), statistic_set) + } + + fn pokemon_get_species( + env: &WebAssemblyEnv, + pokemon: ExternRef, + ) -> ExternRef { + let species = pokemon.value(env).unwrap().species(); + ExternRef::new(env.data().as_ref(), species) + } + + fn pokemon_damage( + env: &WebAssemblyEnv, + pokemon: ExternRef, + damage: u32, + source: u8 + ) { + unsafe{ + pokemon.value(env).unwrap().damage(damage, transmute(source)); + } + } +} diff --git a/src/script_implementations/wasm/export_registry/dynamic_data/turn_choice.rs b/src/script_implementations/wasm/export_registry/dynamic_data/turn_choice.rs new file mode 100644 index 0000000..7bbcd51 --- /dev/null +++ b/src/script_implementations/wasm/export_registry/dynamic_data/turn_choice.rs @@ -0,0 +1,61 @@ +use std::ops::Deref; + +use crate::dynamic_data::{LearnedMove, Pokemon, TurnChoice}; +use crate::script_implementations::wasm::export_registry::register; +use crate::script_implementations::wasm::extern_ref::ExternRef; +use crate::script_implementations::wasm::script_resolver::WebAssemblyEnv; + +register! { + + fn turn_choice_get_user<'a>( + env: &WebAssemblyEnv, + turn_choice: ExternRef>, + ) -> ExternRef> { + let turn_choice = turn_choice.value(env).unwrap(); + ExternRef::new(env.data().as_ref(), turn_choice.user().as_ref().deref()) + } + + fn turn_choice_get_kind( + env: &WebAssemblyEnv, + turn_choice: ExternRef, + ) -> u8 { + match turn_choice.value(env).unwrap() { + TurnChoice::Move(_) => 0, + TurnChoice::Item(_) => 1, + TurnChoice::Switch(_) => 2, + TurnChoice::Flee(_) => 3, + TurnChoice::Pass(_) => 4, + } + } + + fn turn_choice_move_used_move<'a>( + env: &WebAssemblyEnv, + turn_choice: ExternRef>, + ) -> ExternRef> { + if let TurnChoice::Move(d) = turn_choice.value(env).unwrap() { + return ExternRef::new(env.data().as_ref(), d.used_move().as_ref()); + } + panic!("Invalid turn choice"); + } + + fn turn_choice_move_target_side( + env: &WebAssemblyEnv, + turn_choice: ExternRef, + ) -> u8 { + if let TurnChoice::Move(d) = turn_choice.value(env).unwrap() { + return d.target_side(); + } + panic!("Invalid turn choice"); + } + + fn turn_choice_move_target_index( + env: &WebAssemblyEnv, + turn_choice: ExternRef, + ) -> u8 { + if let TurnChoice::Move(d) = turn_choice.value(env).unwrap() { + return d.target_index(); + } + panic!("Invalid turn choice"); + } + +} diff --git a/src/script_implementations/wasm/export_registry/mod.rs b/src/script_implementations/wasm/export_registry/mod.rs index cf4842a..be356cb 100644 --- a/src/script_implementations/wasm/export_registry/mod.rs +++ b/src/script_implementations/wasm/export_registry/mod.rs @@ -1,14 +1,21 @@ use std::ffi::CString; use std::mem::{align_of, forget}; +use std::process::exit; -use wasmer::{Exports, Function, Store}; +use wasmer::{Exports, Store}; + +pub(crate) use register; +pub(crate) use register_func_with_env; use crate::dynamic_data::DynamicLibrary; use crate::script_implementations::wasm::extern_ref::ExternRef; use crate::script_implementations::wasm::script_resolver::WebAssemblyEnv; -use crate::static_data::{DataLibrary, MoveData, MoveLibrary, StaticData}; +use crate::static_data::{EffectParameter, StaticData}; use crate::StringKey; +mod dynamic_data; +mod static_data; + #[allow(unused_macros)] macro_rules! register_func { ($exports: ident, $store: ident, $func: ident) => { @@ -20,21 +27,50 @@ macro_rules! register_func_with_env { ($exports: ident, $store: ident, $func: ident, $env: expr) => { $exports.insert( stringify!($func), - Function::new_native_with_env($store, $env.clone(), $func), + wasmer::Function::new_native_with_env($store, $env.clone(), $func), ); }; } +macro_rules! register { + ( + $( + fn $name:ident$(<$($lt:lifetime)*>)?($($par:ident: $par_type:ty),*$(,)?) $(-> $return:ty)? $block:block + )* + ) => { + pub(crate) fn register(exports: &mut crate::script_implementations::wasm::export_registry::Exports, + store: &crate::script_implementations::wasm::export_registry::Store, + env: crate::script_implementations::wasm::script_resolver::WebAssemblyEnv) { + $( + + fn $name<$($($lt)*)*>( + $( + $par: $par_type, + )* + ) $(-> $return)* $block + crate::script_implementations::wasm::export_registry::register_func_with_env!(exports, store, $name, env); + )* + + } + }; +} + pub(crate) fn register_webassembly_funcs(exports: &mut Exports, store: &Store, env: WebAssemblyEnv) { register_func_with_env!(exports, store, _print, env); register_func_with_env!(exports, store, _error, env); - register_func_with_env!(exports, store, move_library_get_move_by_hash, env); - register_func_with_env!(exports, store, move_data_get_name, env); - register_func_with_env!(exports, store, move_data_get_base_power, env); - register_func_with_env!(exports, store, const_string_get_hash, env); - register_func_with_env!(exports, store, const_string_get_str, env); - register_func_with_env!(exports, store, battle_library_get_data_library, env); - register_func_with_env!(exports, store, data_library_get_move_library, env); + register_func_with_env!(exports, store, _vec_extern_ref_get_value, env); + + static_data::register(exports, store, env.clone()); + dynamic_data::register(exports, store, env.clone()); + + register_func_with_env!(exports, store, string_key_get_hash, env); + register_func_with_env!(exports, store, string_key_get_str, env); + register_func_with_env!(exports, store, dynamic_library_get_static_data, env); + register_func_with_env!(exports, store, effect_parameter_get_type, env); + register_func_with_env!(exports, store, effect_parameter_as_bool, env); + register_func_with_env!(exports, store, effect_parameter_as_int, env); + register_func_with_env!(exports, store, effect_parameter_as_float, env); + register_func_with_env!(exports, store, effect_parameter_as_string, env); } fn _print(env: &WebAssemblyEnv, p: u32, len: u32) { @@ -46,42 +82,29 @@ fn _print(env: &WebAssemblyEnv, p: u32, len: u32) { } } +#[track_caller] fn _error(env: &WebAssemblyEnv, message: u32, message_len: u32, file: u32, file_len: u32, line: u32, position: u32) { unsafe { let mem: *mut u8 = env.data().memory().data_ptr().offset(message as isize); - let message = String::from_raw_parts(mem, message_len as usize, message_len as usize); + let message_str = String::from_raw_parts(mem, message_len as usize, message_len as usize); let mem: *mut u8 = env.data().memory().data_ptr().offset(file as isize); - let file = String::from_raw_parts(mem, file_len as usize, file_len as usize); - println!("Error: {} in file {}, line: {}:{}", message, file, line, position); - forget(message); - forget(file); + let file_str = String::from_raw_parts(mem, file_len as usize, file_len as usize); + panic!( + "Error: {} in file {}, line: {}:{}", + message_str, file_str, line, position + ); } } -fn move_library_get_move_by_hash(env: &WebAssemblyEnv, lib: ExternRef, hash: u32) -> ExternRef { - let lib = lib.value(env).unwrap(); - let m = lib.get_by_hash(hash); - if let Some(v) = m { - ExternRef::new(env.data().as_ref(), v) - } else { - ExternRef::null() - } +fn _vec_extern_ref_get_value(env: &WebAssemblyEnv, reference: u32, index: u32) -> u32 { + env.data().get_extern_vec_ref_extern_ref(reference, index) } -fn move_data_get_name(env: &WebAssemblyEnv, move_data: ExternRef) -> ExternRef { - let move_data = move_data.value(env).unwrap(); - ExternRef::new(env.data().as_ref(), move_data.name()) -} - -fn move_data_get_base_power(env: &WebAssemblyEnv, move_data: ExternRef) -> u8 { - move_data.value(env).unwrap().base_power() -} - -fn const_string_get_hash(env: &WebAssemblyEnv, string_key: ExternRef) -> u32 { +fn string_key_get_hash(env: &WebAssemblyEnv, string_key: ExternRef) -> u32 { string_key.value(env).unwrap().hash() } -fn const_string_get_str(env: &WebAssemblyEnv, string_key: ExternRef) -> u32 { +fn string_key_get_str(env: &WebAssemblyEnv, string_key: ExternRef) -> u32 { let string_key = string_key.value(env).unwrap().str(); let wasm_string_ptr = env .data() @@ -95,13 +118,57 @@ fn const_string_get_str(env: &WebAssemblyEnv, string_key: ExternRef) wasm_string_ptr.1 } -fn battle_library_get_data_library( +fn dynamic_library_get_static_data( env: &WebAssemblyEnv, dynamic_lib: ExternRef, ) -> ExternRef { ExternRef::new(env.data().as_ref(), dynamic_lib.value(env).unwrap().static_data()) } -fn data_library_get_move_library(env: &WebAssemblyEnv, data_library: ExternRef) -> ExternRef { - ExternRef::new(env.data().as_ref(), data_library.value(env).unwrap().moves()) +fn effect_parameter_get_type(env: &WebAssemblyEnv, parameter: ExternRef) -> u8 { + let v = parameter.value(env).unwrap(); + match v { + EffectParameter::Bool(_) => 1, + EffectParameter::Int(_) => 2, + EffectParameter::Float(_) => 3, + EffectParameter::String(_) => 4, + } +} + +fn effect_parameter_as_bool(env: &WebAssemblyEnv, parameter: ExternRef) -> u8 { + let v = parameter.value(env).unwrap(); + match v { + EffectParameter::Bool(b) => { + if *b { + 1 + } else { + 0 + } + } + _ => panic!("Unexpected parameter type!"), + } +} + +fn effect_parameter_as_int(env: &WebAssemblyEnv, parameter: ExternRef) -> i64 { + let v = parameter.value(env).unwrap(); + match v { + EffectParameter::Int(i) => *i, + _ => panic!("Unexpected parameter type!"), + } +} + +fn effect_parameter_as_float(env: &WebAssemblyEnv, parameter: ExternRef) -> f32 { + let v = parameter.value(env).unwrap(); + match v { + EffectParameter::Float(f) => *f, + _ => panic!("Unexpected parameter type!"), + } +} + +fn effect_parameter_as_string(env: &WebAssemblyEnv, parameter: ExternRef) -> ExternRef { + let v = parameter.value(env).unwrap(); + match v { + EffectParameter::String(s) => ExternRef::new(env.data().as_ref(), s), + _ => panic!("Unexpected parameter type!"), + } } diff --git a/src/script_implementations/wasm/export_registry/static_data/mod.rs b/src/script_implementations/wasm/export_registry/static_data/mod.rs new file mode 100644 index 0000000..22d83c3 --- /dev/null +++ b/src/script_implementations/wasm/export_registry/static_data/mod.rs @@ -0,0 +1,52 @@ +use wasmer::{Exports, Store}; + +use crate::defines::LevelInt; +use crate::script_implementations::wasm::export_registry::register_func_with_env; +use crate::script_implementations::wasm::extern_ref::ExternRef; +use crate::script_implementations::wasm::script_resolver::WebAssemblyEnv; +use crate::static_data::{ItemLibrary, LibrarySettings, MoveLibrary, SpeciesLibrary, StaticData, TypeLibrary}; + +mod moves; +mod species; + +pub(crate) fn register(exports: &mut Exports, store: &Store, env: WebAssemblyEnv) { + register_func_with_env!(exports, store, static_data_get_move_library, env); + register_func_with_env!(exports, store, static_data_get_species_library, env); + register_func_with_env!(exports, store, static_data_get_item_library, env); + register_func_with_env!(exports, store, static_data_get_type_library, env); + register_func_with_env!(exports, store, static_data_get_library_settings, env); + register_func_with_env!(exports, store, library_settings_get_maximum_level, env); + + moves::register(exports, store, env.clone()); + species::register(exports, store, env.clone()); +} + +fn static_data_get_move_library(env: &WebAssemblyEnv, data_library: ExternRef) -> ExternRef { + ExternRef::new(env.data().as_ref(), data_library.value(env).unwrap().moves()) +} + +fn static_data_get_species_library( + env: &WebAssemblyEnv, + data_library: ExternRef, +) -> ExternRef { + ExternRef::new(env.data().as_ref(), data_library.value(env).unwrap().species()) +} + +fn static_data_get_item_library(env: &WebAssemblyEnv, data_library: ExternRef) -> ExternRef { + ExternRef::new(env.data().as_ref(), data_library.value(env).unwrap().items()) +} + +fn static_data_get_type_library(env: &WebAssemblyEnv, data_library: ExternRef) -> ExternRef { + ExternRef::new(env.data().as_ref(), data_library.value(env).unwrap().types()) +} + +fn static_data_get_library_settings( + env: &WebAssemblyEnv, + data_library: ExternRef, +) -> ExternRef { + ExternRef::new(env.data().as_ref(), data_library.value(env).unwrap().settings()) +} + +fn library_settings_get_maximum_level(env: &WebAssemblyEnv, data_library: ExternRef) -> LevelInt { + data_library.value(env).unwrap().maximum_level() +} diff --git a/src/script_implementations/wasm/export_registry/static_data/moves.rs b/src/script_implementations/wasm/export_registry/static_data/moves.rs new file mode 100644 index 0000000..5e3a34e --- /dev/null +++ b/src/script_implementations/wasm/export_registry/static_data/moves.rs @@ -0,0 +1,71 @@ +use crate::script_implementations::wasm::export_registry::register; +use crate::script_implementations::wasm::extern_ref::ExternRef; +use crate::script_implementations::wasm::script_resolver::WebAssemblyEnv; +use crate::static_data::{DataLibrary, MoveData, MoveLibrary}; +use crate::StringKey; + +register! { +fn move_library_get_move( + env: &WebAssemblyEnv, + lib: ExternRef, + string_key: ExternRef, +) -> ExternRef { + let lib = lib.value(env).unwrap(); + let m = lib.get(string_key.value(env).unwrap()); + if let Some(v) = m { + ExternRef::new(env.data().as_ref(), v) + } else { + ExternRef::null() + } +} + +fn move_library_get_move_by_hash(env: &WebAssemblyEnv, lib: ExternRef, hash: u32) -> ExternRef { + let lib = lib.value(env).unwrap(); + let m = lib.get_by_hash(hash); + if let Some(v) = m { + ExternRef::new(env.data().as_ref(), v) + } else { + ExternRef::null() + } +} + +fn move_data_get_name(env: &WebAssemblyEnv, move_data: ExternRef) -> ExternRef { + ExternRef::new(env.data().as_ref(), move_data.value(env).unwrap().name()) +} + +fn move_data_get_type(env: &WebAssemblyEnv, move_data: ExternRef) -> u8 { + move_data.value(env).unwrap().move_type().into() +} +fn move_data_get_category(env: &WebAssemblyEnv, move_data: ExternRef) -> u8 { + move_data.value(env).unwrap().category() as u8 +} +fn move_data_get_base_power(env: &WebAssemblyEnv, move_data: ExternRef) -> u8 { + move_data.value(env).unwrap().base_power() +} +fn move_data_get_accuracy(env: &WebAssemblyEnv, move_data: ExternRef) -> u8 { + move_data.value(env).unwrap().accuracy() +} +fn move_data_get_base_usages(env: &WebAssemblyEnv, move_data: ExternRef) -> u8 { + move_data.value(env).unwrap().base_usages() +} +fn move_data_get_target(env: &WebAssemblyEnv, move_data: ExternRef) -> u8 { + move_data.value(env).unwrap().target() as u8 +} +fn move_data_get_priority(env: &WebAssemblyEnv, move_data: ExternRef) -> i8 { + move_data.value(env).unwrap().priority() +} +fn move_data_has_flag(env: &WebAssemblyEnv, move_data: ExternRef, flag: ExternRef) -> u8 { + if move_data.value(env).unwrap().has_flag(flag.value(env).unwrap()) { + 1 + } else { + 0 + } +} +fn move_data_has_flag_by_hash(env: &WebAssemblyEnv, move_data: ExternRef, flag_hash: u32) -> u8 { + if move_data.value(env).unwrap().has_flag_by_hash(flag_hash) { + 1 + } else { + 0 + } +} +} diff --git a/src/script_implementations/wasm/export_registry/static_data/species.rs b/src/script_implementations/wasm/export_registry/static_data/species.rs new file mode 100644 index 0000000..253b36f --- /dev/null +++ b/src/script_implementations/wasm/export_registry/static_data/species.rs @@ -0,0 +1,61 @@ +use crate::script_implementations::wasm::export_registry::register; +use crate::script_implementations::wasm::extern_ref::ExternRef; +use crate::script_implementations::wasm::script_resolver::WebAssemblyEnv; +use crate::static_data::{DataLibrary, Species, SpeciesLibrary}; +use crate::StringKey; + +register! { + +fn species_library_get_species( + env: &WebAssemblyEnv, + lib: ExternRef, + string_key: ExternRef, +) -> ExternRef { + let lib = lib.value(env).unwrap(); + let m = lib.get(string_key.value(env).unwrap()); + if let Some(v) = m { + ExternRef::new(env.data().as_ref(), v) + } else { + ExternRef::null() + } +} + +fn species_get_capture_rate( + env: &WebAssemblyEnv, + species: ExternRef, +) -> u8 { + species.value(env).unwrap().capture_rate() +} + +fn species_get_growth_rate( + env: &WebAssemblyEnv, + species: ExternRef, +) -> ExternRef { + let species = species.value(env).unwrap(); + ExternRef::new(env.data().as_ref(), species.growth_rate()) +} + +fn species_get_gender_rate( + env: &WebAssemblyEnv, + species: ExternRef, +) -> f32 { + species.value(env).unwrap().gender_rate() +} + +fn species_get_name( + env: &WebAssemblyEnv, + species: ExternRef, +) -> ExternRef { + let species = species.value(env).unwrap(); + ExternRef::new(env.data().as_ref(), species.name()) +} + +fn species_get_id( + env: &WebAssemblyEnv, + species: ExternRef, +) -> u16 { + species.value(env).unwrap().id() +} + + +} diff --git a/src/script_implementations/wasm/extern_ref.rs b/src/script_implementations/wasm/extern_ref.rs index e4a3197..a6883b6 100644 --- a/src/script_implementations/wasm/extern_ref.rs +++ b/src/script_implementations/wasm/extern_ref.rs @@ -1,4 +1,5 @@ use std::marker::PhantomData; +use std::mem::transmute; use unique_type_id::UniqueTypeId; use wasmer::FromToNativeWasmType; @@ -7,7 +8,7 @@ use crate::script_implementations::wasm::script_resolver::{ WebAssemblyEnv, WebAssemblyEnvironmentData, WebAssemblyScriptResolver, }; -pub(crate) struct ExternRef + ?Sized> { +pub(crate) struct ExternRef> { index: u32, _phantom: PhantomData, } @@ -20,6 +21,10 @@ impl> ExternRef { } } + pub(crate) fn index(&self) -> u32 { + self.index + } + /// Creates an ExternRef with a given resolver. This can be used in cases where we do not have an environment variable. pub(crate) fn new_with_resolver(resolver: &WebAssemblyScriptResolver, value: &T) -> Self { Self { @@ -58,3 +63,37 @@ unsafe impl> FromToNativeWasmType for ExternRef { self.index as i32 } } + +pub(crate) struct VecExternRef { + index: u32, + size: u32, + _phantom: PhantomData, +} + +impl> VecExternRef { + pub fn new(env: &WebAssemblyEnvironmentData, value: &[T]) -> Self { + Self { + index: env.get_extern_vec_ref_index(value), + size: value.len() as u32, + _phantom: Default::default(), + } + } +} + +unsafe impl> FromToNativeWasmType for VecExternRef { + type Native = i64; + + fn from_native(native: Self::Native) -> Self { + let split: (u32, u32) = unsafe { transmute(native) }; + Self { + index: split.0, + size: split.1, + _phantom: Default::default(), + } + } + + fn to_native(self) -> Self::Native { + let v: i64 = unsafe { transmute((self.index, self.size)) }; + v + } +} diff --git a/src/script_implementations/wasm/mod.rs b/src/script_implementations/wasm/mod.rs index 2ce7f35..dff4e0d 100644 --- a/src/script_implementations/wasm/mod.rs +++ b/src/script_implementations/wasm/mod.rs @@ -5,6 +5,8 @@ pub(crate) mod extern_ref; pub mod script; /// The script resolver deals with the loading of scripts. pub mod script_resolver; +mod temp_wasm_allocator; +mod script_function_cache; /// The WebAssemblyScriptCapabilities define which functions are implemented on a script. This allows /// us to not call a function if we do not need to. diff --git a/src/script_implementations/wasm/script.rs b/src/script_implementations/wasm/script.rs index 7ff5b65..a0f53cb 100644 --- a/src/script_implementations/wasm/script.rs +++ b/src/script_implementations/wasm/script.rs @@ -1,12 +1,13 @@ use std::any::Any; +use std::mem::{align_of, size_of}; use std::sync::atomic::{AtomicBool, AtomicPtr, AtomicUsize}; -use std::sync::Weak; +use std::sync::{Arc, Weak}; use hashbrown::HashSet; use wasmer::NativeFunc; -use crate::dynamic_data::{DynamicLibrary, Script}; -use crate::script_implementations::wasm::extern_ref::ExternRef; +use crate::dynamic_data::{DynamicLibrary, Pokemon, Script, TurnChoice}; +use crate::script_implementations::wasm::extern_ref::{ExternRef, VecExternRef}; use crate::script_implementations::wasm::script_resolver::WebAssemblyEnvironmentData; use crate::script_implementations::wasm::WebAssemblyScriptCapabilities; use crate::static_data::EffectParameter; @@ -24,11 +25,11 @@ pub struct WebAssemblyScript { /// we will not execute its methods. This holds the number of suppressions on the script. suppressed_count: AtomicUsize, /// The owner of this script (where the script is attached to) - owner_ptr: AtomicPtr, + _owner_ptr: AtomicPtr, /// Pointer inside WebAssembly memory where the data is for this script. self_ptr: u32, /// Capabilities define which functions we actually implement. - capabilities: AtomicPtr>, + capabilities: Arc>, /// The global runtime environment data. environment: Weak, } @@ -38,7 +39,7 @@ impl WebAssemblyScript { pub fn new( owner_ptr: *mut u8, self_ptr: u32, - capabilities: *mut HashSet, + capabilities: Arc>, environment: Weak, name: StringKey, ) -> Self { @@ -46,9 +47,9 @@ impl WebAssemblyScript { name, marked_for_deletion: Default::default(), suppressed_count: Default::default(), - owner_ptr: AtomicPtr::new(owner_ptr), + _owner_ptr: AtomicPtr::new(owner_ptr), self_ptr, - capabilities: AtomicPtr::new(capabilities), + capabilities, environment, } } @@ -67,20 +68,56 @@ impl Script for WebAssemblyScript { &self.suppressed_count } - fn on_initialize(&self, library: &DynamicLibrary, _pars: &[EffectParameter]) { + fn on_initialize(&self, library: &DynamicLibrary, pars: &[EffectParameter]) { + if !self.capabilities.contains(&WebAssemblyScriptCapabilities::Initialize) { + return; + } + + let env = self.environment.upgrade().unwrap(); + let func = env.script_function_cache().on_initialize(&env); + if let Some(func) = func { + func.call( + self.self_ptr, + ExternRef::new(env.as_ref(), library), + VecExternRef::new(env.as_ref(), pars), + ) + .unwrap(); + } + } + + fn on_before_turn(&self, choice: &TurnChoice) { + if !self.capabilities.contains(&WebAssemblyScriptCapabilities::OnBeforeTurn) { + return; + } + let env = self.environment.upgrade().unwrap(); + let func = env.script_function_cache().on_before_turn(&env); + if let Some(func) = func { + func.call(self.self_ptr, ExternRef::new(env.as_ref(), choice).index()) + .unwrap(); + } + } + + fn change_speed(&self, choice: &TurnChoice, speed: &mut u32) { + if !self.capabilities.contains(&WebAssemblyScriptCapabilities::ChangeSpeed) { + return; + } + let env = self.environment.upgrade().unwrap(); let exported = env.exported_functions(); - if let Some(f) = exported.get(&"script_on_initialize".into()) { - let func: NativeFunc<(u32, ExternRef, u32), ()> = f.native().unwrap(); - func.call(self.self_ptr, ExternRef::new(env.as_ref(), library), 0) + if let Some(f) = exported.get::(&"script_change_speed".into()) { + let func: NativeFunc<(u32, ExternRef, u32), ()> = f.native().unwrap(); + let ptr = env.temp_allocate_mem_typed::(); + func.call(self.self_ptr, ExternRef::new(env.as_ref(), choice), ptr.wasm_pointer) .unwrap(); + unsafe { + *speed = *ptr.ptr; + } } } fn as_any(&self) -> &dyn Any { self } - fn as_any_mut(&mut self) -> &mut dyn Any { self } diff --git a/src/script_implementations/wasm/script_function_cache.rs b/src/script_implementations/wasm/script_function_cache.rs new file mode 100644 index 0000000..bc845d3 --- /dev/null +++ b/src/script_implementations/wasm/script_function_cache.rs @@ -0,0 +1,62 @@ +use std::sync::Arc; + +use parking_lot::RwLock; +use paste::paste; +use wasmer::NativeFunc; + +use crate::dynamic_data::{DynamicLibrary, TurnChoice}; +use crate::script_implementations::wasm::extern_ref::{ExternRef, VecExternRef}; +use crate::script_implementations::wasm::script_resolver::WebAssemblyEnvironmentData; +use crate::static_data::EffectParameter; +use crate::StringKey; + +macro_rules! script_function_cache { + ( + $( + $name:ident -> $return:ty + )* + ) => { + #[derive(Default)] + pub struct ScriptFunctionCache { + $( + $name: RwLock>, + )* + } + + impl ScriptFunctionCache { + $( + paste! { + #[cold] + fn [](&self, env: &Arc) { + let exported = env.exported_functions(); + let f = exported.get::(&stringify!([< script_ $name >]).into()); + if let Some(f) = f { + let func: $return = f.native().unwrap(); + let _ = self.$name.write().insert(func); + } + } + + + pub(crate) fn [<$name>]( + &self, + env: &Arc, + ) -> Option<$return> { + { + let read_lock = self.$name.read(); + if let Some(f) = read_lock.as_ref() { + return Some(f.clone()); + } + } + self.[](env); + self.$name.read().as_ref().cloned() + } + } + )* + } + } +} + +script_function_cache! { + on_initialize -> NativeFunc<(u32, ExternRef, VecExternRef), ()> + on_before_turn -> NativeFunc<(u32, u32), ()> +} diff --git a/src/script_implementations/wasm/script_resolver.rs b/src/script_implementations/wasm/script_resolver.rs index 917b4f3..c373169 100644 --- a/src/script_implementations/wasm/script_resolver.rs +++ b/src/script_implementations/wasm/script_resolver.rs @@ -1,4 +1,5 @@ use std::fmt::{Debug, Formatter}; +use std::mem::{align_of, size_of}; use std::sync::{Arc, Weak}; use hashbrown::{HashMap, HashSet}; @@ -14,6 +15,8 @@ use crate::dynamic_data::{ItemScript, Script, ScriptResolver}; use crate::script_implementations::wasm::export_registry::register_webassembly_funcs; use crate::script_implementations::wasm::extern_ref::ExternRef; use crate::script_implementations::wasm::script::WebAssemblyScript; +use crate::script_implementations::wasm::script_function_cache::ScriptFunctionCache; +use crate::script_implementations::wasm::temp_wasm_allocator::{AllocatedObject, TempWasmAllocator}; use crate::script_implementations::wasm::WebAssemblyScriptCapabilities; use crate::static_data::Item; use crate::{PkmnResult, ScriptCategory, StringKey}; @@ -33,7 +36,7 @@ pub struct WebAssemblyScriptResolver { /// Script capabilities tell us which functions are implemented on a given script. This allows us to skip unneeded /// WASM calls. - script_capabilities: RwLock>>, + script_capabilities: RwLock>>>, environment_data: Arc, } @@ -85,8 +88,26 @@ impl WebAssemblyScriptResolver { imports.register("env", exports); for module in &self.modules { + for import in module.imports() { + if imports.get_export("env", import.name()).is_none() { + println!( + "\x1b[91mMissing import: \"{}\" with type: {:?} \x1b[0m", + import.name(), + import.ty() + ); + } + } + let instance = Instance::new(module, &imports).unwrap(); let exports = &instance.exports; + + let init_fn = exports.get_extern("_init"); + if let Some(init_fn) = init_fn { + if let Extern::Function(init_fn) = init_fn { + init_fn.call(&[]).unwrap(); + } + } + let mut exported_functions = self.environment_data.exported_functions.write(); for export in exports.iter() { match export.1 { @@ -102,15 +123,22 @@ impl WebAssemblyScriptResolver { if let Some(m) = &self.environment_data.memory.read().as_ref() { m.grow(32).unwrap(); } - if let Some(f) = exported_functions.get(&"load_script".into()) { + if let Some(f) = exported_functions.get::(&"load_script".into()) { self.load_script_fn = Some(f.native().unwrap()) } - if let Some(f) = exported_functions.get(&"allocate_mem".into()) { + if let Some(f) = exported_functions.get::(&"allocate_mem".into()) { let _ = self .environment_data .allocate_mem_fn .write() .insert(f.native().unwrap()); + + let temp_memory_slab = self.environment_data.allocate_mem(128, 1); + let _ = self + .environment_data + .temp_allocator + .write() + .insert(TempWasmAllocator::new(temp_memory_slab.0, temp_memory_slab.1)); } self.instances.push(instance); } @@ -151,7 +179,7 @@ impl ScriptResolver for WebAssemblyScriptResolver { .environment_data .exported_functions .read() - .get(&"get_script_capabilities".into()) + .get::(&"get_script_capabilities".into()) { let res = get_cap.call(&[Value::I32(script as i32)]).unwrap(); let ptr = (self.environment_data.memory.read().as_ref().unwrap().data_ptr() @@ -163,7 +191,9 @@ impl ScriptResolver for WebAssemblyScriptResolver { } } } - self.script_capabilities.write().insert(key.clone(), capabilities); + self.script_capabilities + .write() + .insert(key.clone(), Arc::new(capabilities)); } let read_guard = self.script_capabilities.read(); @@ -172,8 +202,7 @@ impl ScriptResolver for WebAssemblyScriptResolver { Ok(Some(Arc::new(WebAssemblyScript::new( owner as *mut u8, script, - capabilities as *const HashSet - as *mut HashSet, + capabilities.clone(), Arc::downgrade(&self.environment_data), script_key.clone(), )))) @@ -207,19 +236,28 @@ pub struct WebAssemblyEnvironmentData { /// allow for modifying memory we might not want to. If we get a type mismatch, we will panic, preventing this. extern_ref_type_lookup: RwLock>, + /// Additional security for data slices passed to WASM. + extern_vec_ref_lookup: RwLock>>, + /// The memory inside of the WASM container. memory: RwLock>, /// This is a map of all the functions that WASM gives us. exported_functions: RwLock>, + script_function_cache: ScriptFunctionCache, + /// This is the WASM function to allocate memory inside the WASM container. allocate_mem_fn: RwLock>>, + + /// An allocator for quick short lifetime allocations within WASM. + temp_allocator: RwLock>, } #[derive(Clone, Eq, PartialEq, Hash)] struct ExternRefLookupKey { pub ptr: *const u8, + pub is_vec: bool, pub t: u64, } @@ -234,6 +272,11 @@ impl WebAssemblyEnvironmentData { self.exported_functions.read() } + /// + pub fn script_function_cache(&self) -> &ScriptFunctionCache { + &self.script_function_cache + } + /// Allocates memory inside the WASM container with a given size and alignment. This memory is /// owned by WASM, and is how we can pass memory references that the host allocated to WASM. /// The return is a tuple containing both the actual pointer to the memory (usable by the host), @@ -253,19 +296,79 @@ impl WebAssemblyEnvironmentData { } } + /// Allocates memory inside the WASM container with a given size and alignment. This memory is + /// owned by WASM, and is how we can pass memory references that the host allocated to WASM. + /// The return is a tuple containing both the actual pointer to the memory (usable by the host), + /// and the WASM offset to the memory (usable by the client). + pub fn allocate_mem_typed(&self) -> (*mut u8, u32) { + let wasm_ptr = self + .allocate_mem_fn + .read() + .as_ref() + .unwrap() + .call(size_of::() as u32, align_of::() as u32) + .unwrap(); + unsafe { + ( + self.memory + .read() + .as_ref() + .unwrap() + .data_ptr() + .offset(wasm_ptr as isize), + wasm_ptr, + ) + } + } + + /// Allocate a piece of memory inside WASM with a very short lifespan. This is mainly used for + /// rapid allocation of script function parameters, where WASM needs to write to a specific + /// pointer. + pub fn temp_allocate_mem_typed(&self) -> AllocatedObject { + self.temp_allocator.read().as_ref().unwrap().alloc::() + } + /// Get a numeric value from any given value. This is not a true Extern Ref from WASM, as this /// is not supported by our current WASM platform (Rust). Instead, this is simply a way to not /// have to send arbitrary pointer values back and forth with WASM. Only values WASM can actually /// access can be touched through this, and we ensure the value is the correct type. In the future, /// when extern refs get actually properly implemented at compile time we might want to get rid /// of this code. - pub fn get_extern_ref_index>(&self, value: &T) -> u32 { - let ptr = value as *const T as *const u8; - if let Some(v) = self - .extern_ref_pointers_lookup - .read() - .get(&ExternRefLookupKey { ptr, t: T::id().0 }) - { + pub fn get_extern_ref_index + ?Sized>(&self, value: &T) -> u32 { + self.get_extern_ref_from_ptr(value as *const T as *const u8, T::id().0, false) + } + + /// Get a numeric value from any given value. This is not a true Extern Ref from WASM, as this + /// is not supported by our current WASM platform (Rust). Instead, this is simply a way to not + /// have to send arbitrary pointer values back and forth with WASM. Only values WASM can actually + /// access can be touched through this, and we ensure the value is the correct type. In the future, + /// when extern refs get actually properly implemented at compile time we might want to get rid + /// of this code. + pub fn get_extern_vec_ref_index>(&self, value: &[T]) -> u32 { + let mut vec = Vec::with_capacity(value.len()); + for v in value { + vec.push(self.get_extern_ref_index(v)); + } + let p = self.get_extern_ref_from_ptr(value as *const [T] as *const u8, T::id().0, true); + self.extern_vec_ref_lookup.write().insert(p, vec); + p + } + + /// Get an extern ref belonging to a vector we have passed to WASM. + pub fn get_extern_vec_ref_extern_ref(&self, extern_vec_ref: u32, index: u32) -> u32 { + let r = self.extern_vec_ref_lookup.read(); + let v = r.get(&extern_vec_ref).unwrap(); + v[index as usize] + } + + /// Gets the extern ref index belonging to a specific pointer. If none exists, this will create + /// a new one. + fn get_extern_ref_from_ptr(&self, ptr: *const u8, type_id: u64, is_vec: bool) -> u32 { + if let Some(v) = self.extern_ref_pointers_lookup.read().get(&ExternRefLookupKey { + ptr, + is_vec, + t: type_id, + }) { return *v as u32; } let index = { @@ -273,12 +376,19 @@ impl WebAssemblyEnvironmentData { extern_ref_guard.push(ptr); extern_ref_guard.len() as u32 }; - self.extern_ref_pointers_lookup - .write() - .insert(ExternRefLookupKey { ptr, t: T::id().0 }, index); - self.extern_ref_type_lookup - .write() - .insert(ExternRefLookupKey { ptr, t: T::id().0 }); + self.extern_ref_pointers_lookup.write().insert( + ExternRefLookupKey { + ptr, + is_vec, + t: type_id, + }, + index, + ); + self.extern_ref_type_lookup.write().insert(ExternRefLookupKey { + ptr, + is_vec, + t: type_id, + }); index } @@ -292,6 +402,7 @@ impl WebAssemblyEnvironmentData { .read() .get(&ExternRefLookupKey { ptr: *ptr, + is_vec: false, t: T::id().0, }) .is_none() diff --git a/src/script_implementations/wasm/temp_wasm_allocator.rs b/src/script_implementations/wasm/temp_wasm_allocator.rs new file mode 100644 index 0000000..f72a554 --- /dev/null +++ b/src/script_implementations/wasm/temp_wasm_allocator.rs @@ -0,0 +1,53 @@ +use std::mem::size_of; +use std::sync::atomic::{AtomicUsize, Ordering}; + +pub(super) struct TempWasmAllocator { + data: *mut u8, + wasm_pointer: u32, + currently_allocated: AtomicUsize, + offset_high: AtomicUsize, +} + +impl TempWasmAllocator { + pub(super) fn new(data: *mut u8, wasm_pointer: u32) -> Self { + Self { + data, + wasm_pointer, + currently_allocated: AtomicUsize::new(0), + offset_high: AtomicUsize::new(0), + } + } + + pub fn alloc(&self) -> AllocatedObject { + self.currently_allocated.fetch_add(size_of::(), Ordering::SeqCst); + let ptr_offset = self.offset_high.fetch_add(size_of::(), Ordering::SeqCst); + let ptr = unsafe { self.data.add(ptr_offset) } as *mut T; + AllocatedObject:: { + ptr, + wasm_pointer: self.wasm_pointer + ptr_offset as u32, + allocator: self as *const TempWasmAllocator, + } + } + + pub fn drop(&self) { + self.currently_allocated.fetch_sub(size_of::(), Ordering::SeqCst); + // As soon as we've no longer allocated anything, we reset our allocating back to the start. + if self.currently_allocated.load(Ordering::SeqCst) == 0 { + self.offset_high.store(0, Ordering::SeqCst); + } + } +} + +pub struct AllocatedObject { + pub ptr: *mut T, + pub wasm_pointer: u32, + allocator: *const TempWasmAllocator, +} + +impl Drop for AllocatedObject { + fn drop(&mut self) { + unsafe { + self.allocator.as_ref().unwrap().drop::(); + } + } +} diff --git a/src/static_data/libraries/item_library.rs b/src/static_data/libraries/item_library.rs index adbe946..6cfc66e 100644 --- a/src/static_data/libraries/item_library.rs +++ b/src/static_data/libraries/item_library.rs @@ -6,6 +6,7 @@ use crate::StringKey; /// A library to store all items. #[derive(Debug)] +#[cfg_attr(feature = "wasm", derive(unique_type_id_derive::UniqueTypeId))] pub struct ItemLibrary { /// The underlying data structure. map: IndexMap>, diff --git a/src/static_data/libraries/library_settings.rs b/src/static_data/libraries/library_settings.rs index 9565bb7..ade746b 100644 --- a/src/static_data/libraries/library_settings.rs +++ b/src/static_data/libraries/library_settings.rs @@ -2,6 +2,7 @@ use crate::defines::LevelInt; /// This library holds several misc settings for the library. #[derive(Debug)] +#[cfg_attr(feature = "wasm", derive(unique_type_id_derive::UniqueTypeId))] pub struct LibrarySettings { /// The highest level a Pokemon can be. maximum_level: LevelInt, diff --git a/src/static_data/libraries/species_library.rs b/src/static_data/libraries/species_library.rs index 514918c..b95822f 100644 --- a/src/static_data/libraries/species_library.rs +++ b/src/static_data/libraries/species_library.rs @@ -6,6 +6,7 @@ use crate::StringKey; /// A library to store all data for Pokemon species. #[derive(Debug)] +#[cfg_attr(feature = "wasm", derive(unique_type_id_derive::UniqueTypeId))] pub struct SpeciesLibrary { /// The underlying map. map: IndexMap>, diff --git a/src/static_data/libraries/type_library.rs b/src/static_data/libraries/type_library.rs index 731599c..c6c7af9 100644 --- a/src/static_data/libraries/type_library.rs +++ b/src/static_data/libraries/type_library.rs @@ -17,8 +17,15 @@ impl From for TypeIdentifier { } } +impl Into for TypeIdentifier { + fn into(self) -> u8 { + self.val + } +} + /// All data related to types and effectiveness. #[derive(Debug)] +#[cfg_attr(feature = "wasm", derive(unique_type_id_derive::UniqueTypeId))] pub struct TypeLibrary { /// A list of types types: HashMap, diff --git a/src/static_data/moves/move_data.rs b/src/static_data/moves/move_data.rs index 3612f11..2061935 100644 --- a/src/static_data/moves/move_data.rs +++ b/src/static_data/moves/move_data.rs @@ -153,6 +153,11 @@ impl MoveData { /// Arbitrary flags that can be applied to the move. pub fn has_flag(&self, key: &StringKey) -> bool { - self.flags.contains(key) + self.flags.contains::(key) + } + + /// Arbitrary flags that can be applied to the move. + pub fn has_flag_by_hash(&self, key_hash: u32) -> bool { + self.flags.contains::(&key_hash) } } diff --git a/src/static_data/moves/secondary_effect.rs b/src/static_data/moves/secondary_effect.rs index 36e41ed..e7010b5 100644 --- a/src/static_data/moves/secondary_effect.rs +++ b/src/static_data/moves/secondary_effect.rs @@ -3,6 +3,7 @@ use crate::StringKey; /// A parameter for an effect. This is basically a simple way to dynamically store multiple different /// primitives on data. #[derive(PartialEq, Debug)] +#[cfg_attr(feature = "wasm", derive(unique_type_id_derive::UniqueTypeId))] pub enum EffectParameter { /// A boolean value. Bool(bool), @@ -11,7 +12,7 @@ pub enum EffectParameter { /// A float value. Stored as a 32 bit float. Float(f32), /// A string value. - String(String), + String(StringKey), } /// A secondary effect is an effect on a move that happens after it hits. diff --git a/src/static_data/species_data/ability.rs b/src/static_data/species_data/ability.rs index dbe54b8..5110427 100644 --- a/src/static_data/species_data/ability.rs +++ b/src/static_data/species_data/ability.rs @@ -39,6 +39,7 @@ impl Ability { /// An ability index allows us to find an ability on a form. It combines a bool for whether the /// ability is hidden or not, and then an index of the ability. #[derive(Copy, Clone, Debug, Eq, PartialEq)] +#[repr(C)] pub struct AbilityIndex { /// Whether or not the ability we're referring to is a hidden ability. pub hidden: bool, diff --git a/src/static_data/species_data/species.rs b/src/static_data/species_data/species.rs index 38d94bb..5a767bf 100644 --- a/src/static_data/species_data/species.rs +++ b/src/static_data/species_data/species.rs @@ -7,6 +7,7 @@ use crate::StringKey; /// The data belonging to a Pokemon with certain characteristics. #[derive(Debug)] +#[cfg_attr(feature = "wasm", derive(unique_type_id_derive::UniqueTypeId))] pub struct Species { /// The national dex identifier of the Pokemon. id: u16, diff --git a/src/static_data/statistic_set.rs b/src/static_data/statistic_set.rs index 9356059..522f60e 100644 --- a/src/static_data/statistic_set.rs +++ b/src/static_data/statistic_set.rs @@ -11,6 +11,7 @@ use super::statistics::Statistic; /// /// As all data in this type is atomic, threaded access to this struct is completely legal. #[derive(Default, Debug)] +#[cfg_attr(feature = "wasm", derive(unique_type_id_derive::UniqueTypeId))] pub struct StatisticSet where T: PrimitiveAtom, @@ -206,6 +207,7 @@ where /// A clamped statistic set holds the 6 normal stats for a Pokemon, but ensures it always remains /// between two values (inclusive on the two values). #[derive(Default, Debug)] +#[cfg_attr(feature = "wasm", derive(unique_type_id_derive::UniqueTypeId))] pub struct ClampedStatisticSet where T: PrimitiveAtom, diff --git a/src/static_data/statistics.rs b/src/static_data/statistics.rs index c0ce8e3..8dd071f 100644 --- a/src/static_data/statistics.rs +++ b/src/static_data/statistics.rs @@ -4,6 +4,7 @@ use serde::{Deserialize, Serialize}; /// Stats are numerical values on Pokemon that are used in battle. #[derive(Debug, PartialEq, Eq, Copy, Clone)] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] +#[repr(u8)] pub enum Statistic { /// Health Points determine how much damage a Pokemon can receive before fainting. HP, diff --git a/src/utils/string_key.rs b/src/utils/string_key.rs index b8437ab..0949bb0 100644 --- a/src/utils/string_key.rs +++ b/src/utils/string_key.rs @@ -1,3 +1,4 @@ +use std::borrow::Borrow; use std::fmt::{Display, Formatter}; use std::hash::{Hash, Hasher}; use std::ops::Deref; @@ -5,7 +6,6 @@ use std::sync::{Arc, Mutex, Weak}; use conquer_once::OnceCell; use hashbrown::HashMap; -use indexmap::Equivalent; /// StringKey is an immutable string that is used for indexing of hashmaps or equality a lot. /// By reference counting the string instead of copying, and caching the hash, we can get some @@ -103,9 +103,9 @@ impl From<&str> for StringKey { } } -impl Equivalent for u32 { - fn equivalent(&self, key: &StringKey) -> bool { - *self == key.hash +impl Borrow for StringKey { + fn borrow(&self) -> &u32 { + &self.hash } } diff --git a/tests/common/library_loader.rs b/tests/common/library_loader.rs index f28577f..c1d72c0 100644 --- a/tests/common/library_loader.rs +++ b/tests/common/library_loader.rs @@ -276,7 +276,7 @@ pub fn load_species(path: &String, library: &mut StaticData) { } fn load_wasm(path: &String, library: &mut WebAssemblyScriptResolver) { - let file = File::open(path.to_string() + "gen7_scripts_rs.wasm").unwrap(); + let file = File::open(path.to_string() + "gen7_scripts.wasm").unwrap(); let mut reader = BufReader::new(file); let mut buffer = Vec::new(); reader.read_to_end(&mut buffer).unwrap(); @@ -392,7 +392,7 @@ fn parse_effect_parameter(value: &Value) -> EffectParameter { EffectParameter::Int(n.as_i64().unwrap()) } } - Value::String(s) => EffectParameter::String(s.clone()), + Value::String(s) => EffectParameter::String(StringKey::new(s.as_str())), Value::Array(_) => { panic!("Unexpected type") } diff --git a/tests/data/gen7_scripts.wasm b/tests/data/gen7_scripts.wasm new file mode 100755 index 0000000000000000000000000000000000000000..69d83d4406c1478d17e2ce937d2557519fc2714c GIT binary patch literal 926794 zcmeFa3%FfXdG9?h>$dmWm${RWga9(vGHpW%HT0w4u^!D#i;}99bB>RnPoMLAF+x;! zxFtlYJt5f&!C+BQu|`d66fChqrHXB|v__?xwrFFE8Y|VP)Y6u=X-jKbQNG{*9b;bB z+G`~{383{LX0JKN9CKXW@!sEej2W!G>as8hg7C}X=`Rhp1}}}bZrvJf-O9E8*0`gP zOZOz8Jlv{#{;DcJ4b@Qv9$lk9TV5Kd_7+!j3svgAhBa5T>zdd?^Hw!1Yw{#ewSWtL zbva^9Y~8Yj`b~FDm$j|eRL4N|{FxfxqG!>cjGh&*yZq{t*Id2sqBZMYy=mRX%hzmN z_wqHbShs1-)oU+()w-am=Z!U2ZoK63O+n4wtlPNpijBdDZWe5M6|Y?M$}29pXq~tcLYW2}&S6sbr&8D>*)$mo9T)fUzIc->#OD?~7-K$-lC9~?##l>sXpsO%z z2eI{DUgq2DeQDzrzr5*{?j@Vm z;_6Emt-X@bt*bnqs6M{L599QUUqkbkT(suWOJ25d?Z(&GaIV_4b`wPxuidoP4ffPZ ziPbQe`B#Qi+4Pz#*X6AasdCAtb(i&4IlaH5e9S$4rTw+?!C$p*)22%n?Q_mt4AT?Z(Uf%9Zmg=YQI)3RbY@vUQtYd4-4M$?IPJ@^u$& zT65*vjjR{wY7Geru9L;Hp0B-X&C9O1!jECmpvOY&w(wzgGbAL2qBR z3Cehd>wTfEm}X?dT6@t&uiCiwqSp+32ti%3@sdsc;ey^b9ih1Q=Jh@*@wBhEi@@tw zT(QwN*!NZiLcPtsZ0%L+)?9hTFXu#inmx|fRMct(FMG|JSFXM4m5v+Cb8}v^eqD~q zp5o{CJ+N1dYUW>g#rk!ZU2(a=r3cMUt3H8nFS+`Xi(j?&QpbHfj-6bs!)ji&2{aOV z4tmZaU9r(~FaLZ|^?ki3l(;H?dtvqI%P-|=rRjRpAPRzcwYnM!8nvL-)Z0NYe*r%=U61Nd;4j8%<2(rKLA_S51&wAaIBDVhiDqLF z&ztsYBUs$1kIkQGHCl`8eLbOp`3qXjTGQ2Y74?FODO2t?|S+s)}{h zwEyuNPcE)CTTy*+W2_lWPBxoCNNfB%>7-U%s|EDcs>ijlTCEnxP5$z~pjNNfTlIRg z6*njA@#M)%ngQLlYt3f;B*wI)*_>=mwoYlDa;k>WY@XC=QLG_wb6T@G|0(?D|7+R* zYR&M<@D~27$6+wlI62-LW-~K;gZ9=SyYc;>wBMWb+k8Vb*|-eE-T0a)sIR%?@=G=a zXSd-9px;FsFS&A4@YZnR;&q_?6|c!l-WD!0A!pCmAR*Si?2=0_*@P4dZVt!XYr?RL z)(3A76Mqk7Y@{1R+OLHR$})9$$=XXV`IU9SJHnI7@|Udx$C0PV-e5;K-#@tMm1{45 z#kw^hk$kcI8{g)5%+Q)hiV{(LkO-4gxJ z=fB_=UwGmF$e#Ypm8+id>}UPl1<(1}=l#O!^MC%oKli5iH^M)ScZauzcZRoxzZ1Sc z{BZc2;YY%cg?qx^4?h~-9o`lGLHN7jABMjdej@zya6fw1pM`%JJ`nDU{y6%p@N3~$ z!$aZM!+#DBhW`@YAO36jjqu^{Tj9Tl+oJ2E*GKP*{xkee`2Fy3_`2vn!fT_qL~n}T z9Q|ta&ghNNyP_MTcSqZ!Uyp8zc1CZAej~aedQbG5(T?~X@fV}_N4G~Gk3JlIB)Tiw z8+|PLWV9#xRP?*ir=yQX_e8%J{ZaI#=qu4*MqiB%M&F3O8GSvvKl-caYti3E{}BCM z^icFi@w?-jD0;FaALMTk#*qAB=C0?}$Gee>BQ|c&i1`w?@Z8s{3=I5J7MvJ<}*R^ zmeD&VMT1yy4s^U^eNr zdu6iCO>l11%2ZmL&Tf1iop9Nj&Ti6W@@38U2hicIBXP7f+A@+)bH(~@>Au~&Z zCTEk~@(MnscM;?9j(dP5UgIH@9Z#aKEvRc{ZX)4;o7mNpOmM<^n)oh0# zoGs6GzE(5ecCF1^4G#K`l|N^ijs@K~TQ;4>XT+^;EscIAs%=|!$M?VZz}RqKXodAFWYaq$h^TD3H-Z%b=8q!F`8KB@)ohUy_?}``g6n8DGTmjCFBk`c*>b@;4W^d| zL1)YlXNAFk+#oWMj%C3wj*kGGaV|sfD@;eSFl}aG@)v4%$&#Kv0R1xSqhrgkqBEX_ zoe9BpEZh1E<0IBcXF~Wmo=&VkH(HU}U`DiP%e!NYC9U0-oqTn-`HUdYv+UK=>F5SQ zdi(|Bqv=>WKAqY#p(QhEJBVv_tn>Ey;}n88n&X%?OC#~7^)v(t0e7KsZ8~k~DiTvz zZ0jzP5$3Rtv45!Ai&MkPC|f+8d|fjJ0T@m4;rx1qXEAAGvJC^tZWmEypAWJ}s?;^C zc>i^({j_Xm8^1XzX1iXe(r&iv+M|~aZed`lpDyb+lHIAMDOfz6-DSOa2AJKWyKGtZ zP_^%Uajl7GAmZOsnK%_-$Fbv6In!`Vxh4dI;?wZ94c!LJC#|sc@lw{^o+TetDjqu=}P zcmCeLxzYT=w@>o(jJI60&KvVRpEJXBTBAk z4aKCaz1_M?9u=nx+MkcZ`XE`O#$aS_5up=SuSN^`;(F%b)>f;k*7aNVg4PM@fIeZmAW%+Wt&@zEzjC!aS<6&b8g z(Cz{gFVXY5b>xP1P|L=U=#UeWs%-+QY5kOL^DOARo;98`9{5qzp*EJRjtqb|L$^^r z4fmVYC+b*bQQT;!yd8GnF`Z}(nrxz+bXr;D?;MiG+#!OR;z0GZPWMtQYPpOS;$^i? zl-6_QqRkA0v~^w#;-n2z!qVC^f{?q2F)@9$frqE%}TX35vC` z&rUsgQ1@=WPPJ-HGk`}`s&-<{zSWM=>#R)x6ap+!d|j+4*0@gP$7B=>x}Y1T;$jih zRRFjfmat9h*=d`y(_SS(Oe2t4RtMy!4<}z0Q`fReyE`vdDdREr(UMZ9qOud{a!?n> zEm%_q%4(j{t*i4eo3)xXw~G1SG%Qz>S3=kdE2`D3=d0=Nw3={bo&g}1vBs2hHL;$r zCb-sQH4#95HKU%@l(C>ib*ssu3YHS?A8`DW%jvQxqV8k}#?!l@|F0btZr1p8J++S#4wTJy(Q!@7`|zbWfW-_6jnj zY$YmRd2Y`uJ;R`54a0GwqF;F4(Yy94h$90@J|^&QHd+}Yezd(1Xm|)T90ZX1f&kjE zAkZks-tZ%7l*4E|zHRn`sGJ%r#nc>#M3H`AMw|tRD)X)2NAJ|@e(H5Mb(oj26F2pG zIrX~l0SS>Wetp=~ADcFReooj?VyB?s5w#rHW70@3YL~MERAaEUVh9z0%(>tH^mH_6 z@V)((NNW97(XyOx?<*y~*egZ~4n!5yIN?|31Q0wqqe1rR?R#OKqq_W@UB>ON*CPcO zJv%xWRQXYu9FXiYK43aY@^9|m3{%*gxKs9(@80m&VRDxM=^O^eIuai43#PM~8`Nbx z`5V0{d3AyQT$t=~_o|b8zH13A_vwmSZg*sB1F(9Nu?~J3P%-9yz%yycFcE9iD$&8YJ^_K?&FDH=q zI}A_H%ns?dkoS4%{hG|I(ub<0zf+59C4%n^S1sSdr)01v7ASVT}eak(lhF68l4d*-Nt$G)6>RnY3#vm%{xM}OGiiY&iN@a zAhr6_xQYJ2kAeYNf2_B3HWr)uXGAqA*&ZIh?cf7EcpZpb=imbXGzX(kD6j`UfMdB; zUp^2%d*=e5w`y5a6{msHFgS_nQ-8>)5(~^{v7Mt^8iHl zut7W5>foQZFRaVqQr{Zmbn*OB=;Rfr|OyAlK0Qf74K12Hh4O5jq{gkCHVn<)*dz z6x@H|)fkEH9r;;ON~XJ`x_I6x-4N^2291RQ$qOAaoY=%2(h##R+sb{sDQjMyZJmC_ z)$$$LB;xb&t$22I95czVa%s4>`jn20v`aGjYTGdCci?#4(rvFwx8DX*;?mGR2HHs5 zw{=IS8Af+39Tj)N8JafMZ{SweQFmOE8hhb*NJAdpjWK)?$3IFN&}bH1V60FKdKBmJ z-)pVA6Yy?;Flj}HL>X8d<_JH3eBuQ9OvlH=Z2L{DI&R24`Yl-8fj6miSvK?LN@%-xlNS7vcwQTV?Av)rU3*Z z;Y$L}*eKngNc^?&r5KuJY{pOsJY=op%_?`R38E~Ep56gxmqq6gSKw!bV0%{Z%=4L^ zITlBqKiBAiX)7cN!a-`{XJI;#+@$slyF{4uhk-P{+DK6^*^BgRR4dLgmX0V?G@3Hx zQ5==$nP-Us{W6ULV00axC7*YIci1=Ci(?Smg0$6PmI@B#z4ZSA1wlp83f97*?f5i~ zkZeXQN701P0G?6<`JOIdh3Rix*bat+7ea&1Nuac?%cv?sFIrgFU?WZBf(9ub8^rF) zk>z0q=7P%Ii4EP+^$cfp{Z(lQ9t)0|SeFsM0J6edhV3&e2yrBxP{3wFsIQ)3Y(+PA0Zu%>)Y6Q(GcnES9GCnOXThbA|ettA7}# zCl%B=Ci#)#ZGzS;S_o&NRRx*6{? zR-8v=1~TX&Z{DOv@_=@>%QNwPR_cSjMd^VahCjIOz`lowjK`_2aZ8v3d~!WhDA+;r zudOMc=5WtoxqqGyqz7EmDyL>`)gLehR|cZwPhX{bmo4qJ;42x8@cdW>n z?UyEr^YjtZD09TiOAl9diVSW(^J=H)N#iM`h?srsZhax36U7wzvk3mlpq2}29m~2# zm7tcl2`WLY!@@KvY8D`#d8_cw2N1JcwQ||n*@5Z`Qc?Bc+!oYwsAn(lt0HY)E#v}~ zuTt$nYt6H}`M3i`)yca|oxtjvY)>Li!GxTds^&6R{KDPipPdd^_mV*5T5u=AS?2 z6EXX|-TuQcj2(am&V+g3N%^Kg#wC%H2mIwS)B^#F)FNii760!AtqL7zv1EX%YD2#z zXn7YuLEfO;b@}yy^4eCY4=N7^j~`fE+DH3y(Hy|?m$SjLv;YeLI&QGwnaDx$%<{4d zq5IH>J^TUI@%My7EN|z56KH49Dn0Z#uF^LI`F8uwb3xv(6|0ob^wi@A*r16%jzsz` zH_x4Om}fq@iD8Od_k-qSirnj<=vu4W8lJ7#q-r%8E8p*fAcWN>lCUxK|Bn`}?=T z;^oR)vLu7-fuJ10Wv&^aM1LzP8`Ow5=H;=%nJXdVP4`ey0?Co$KGpqV$rX9U!hF#C zcxhI5R@mQPTtIDaWzc@^+X3jTW~^{{Gc#d1ci+s+pk}Oacr%A*kH(mMKMbv~znKyh z4$f`{Fw9;GD;(ZT6*ez$3%X!HD=Hh*$m|6z7R@s7T9v^5kk@-9+XHB8>_cyacrJ;JVRz>0a{qfDq>K!Gayc`G8|y zfq=?Q(j2h?cD#+>+^_f_M;ha>QErnqcf?WF29A>Ug6zSds(2N1#MzWRWRH$x3p@j8T1B9L_A()R3^W~U-K&pI;yjYK4$^w{ zhQ#0F)1$2Qr&q`RFL~?FELz`t+)9r%Pe9d1=SKhUzWpJjQmFFJf~Tm?VB;YjNNSQ_ z4hh>k=c1dIDtivd<3<8d>9NxG^Rci1$G511fn)sKLud6-fGZ=;E7yb8Nle|hG<~#| zu#E24k{hih2mR&JqJ0H2kIrE`jKC~d)BF_U}2 zbWf4EV~%_Evir++WP2PR7T7>@d&Ld(KRoS;{pUc>4wu)1)*9WWSb^7tb6D-%D681P z16P~0kzx!Lt8LI2?yFcyb0X{#3-a|i5yE~9xH!o17;x*sguS-{ov$59lkol$_;CSv z(6k^Ku&yXa2`I`71Tl>2(Uh(|st$52nv$u}j@XAO5yzp;UH6!daSqztTv%d-NOJB7 zk>uPFmgo)gLDW!TiN^ts*FVwV_&0V>lekgj+@{60MHgWcRw=TY`xa|NH9{2y(!I@y zvpr+@z5ParS{f)&h>#+wSuqAh7^>S}>hVfit-Gx+wGMHEPD9Z{sE{}X+aK_Y5^$Co z$-_8XX;Eaw&Fe~aAoGU^d%dsKZk^p5gsBKgvghJ(uwgx!?1{@@r0(Xlel4#@GA|;l z7-q9KTZU{*(QE{%EPRzXhVdOqP+A7XB z%vJJ3i19z#V1H7@@h1>Gv6`jZdGRE+Kf#)%MX#Ua?R%eKu)AGsKZMx+_b0_8TWee5 ze22~6a)(W?w}$L|9Mfr?y*1i|p+sf20h+g_mhDz>({}u6OAXuMvU^;K_QNfk&UTyI z!>7;X?auy{!$tuhP7#tTsOhs=@zAiThJ7~qrkYfT4%ogM@&i)sR5|u7H6zNSXChO_ zKat9gnh}mmv7qs|W<|cg-_J9`76tBbijpNRM^jrs9Mz5)b*_CM#|cGp@HuQiE+lq( za0rPqCGtdtF?q|*AD?GMdHDPU=Xy{sscc!c{nzAk^0};J1+zVfoiJ^`6Nb$btF(7- zCbZ)cv>j#vIm06sgBKudmlPuE(SmvOhp zWg>eu2V3B?!?kC4VjB(Wlbqb{7m^G~o&}Los*IAiJb`i7n!RISeAZT& z$#lZD!X!OgVJ5ew$qn7f2YD1*HLcsKKG ze6s1um?lf!4$*LvU|pKHB;7DM1BO(ie}A#HBqJR-ljg>yNK)7Xv+JgjW!>)Y1SblWjTw5??%ZMqZCn(R3#x3x6fwifw} zS%7A_t)<*A7<8u`j!k91teqFVs1|hQrBfYXU;{R9vJMDyc&4pC>~63PErFXy?_ako zLJ&+j0SYH@Iu9UZ+B|2wk-%kteqT$oy02v!5U6E4#6tK*FzhsLl5c9Uu7Ryb9 zSDRYIYvm`RGww9!X4=w^Eo5CATHJVaWm{X8Wg*1o9Q-!#{qFz-MI2yoogLL6K(^cS z-~Cpa?`5mB zbSGx-dYKro>m{^ZF9Qdhql!qQiYnD0&tNpj-$b*hzBva3D&Oou&)zo&j&=yp2O{K< zUiKRz=KH$__p(QtBk6Mwm(T` zs#&;ZgoN=pZPgB0YaVBwG+sdQ(wB0t+3Z1$xEL!ULFUt>`CJVtv@(6+i)O44ngo9A{b%}fOW=O7~o#u@QyK_*r}$zf^r?Vax7R&C%Z{I&rZp1e3!Iz zZ%NrE!^_w(6|Ky$s1LvMlk73H#LP(dkLVuP%9Pnq_NORTqBR~@`YztYDMDes`3YYS zqqHWtM4z|T+xIJD`Khigj$^Hy4wv2ic@1&jeH!4c+T_TYN^)2g9oQyum879&s^bvL zQ7)L00T@`z9Zql4$T-zF-&1xz-ZkD*E-2m`1D|$rTVw{4(OPqNa#HF(KRz`L0pCu6 zO@?R{e10pYdhu@di}THAa!|-`TLGPl0ECrSLCSPgsI>o~JML3AmoI6C?Q;XY!u0Y% zJzO1BwVMS~fYHNb_G{O@n>ppEPl}MKT;A~8KO|W0 zxl6r&LEdyN3b>;HK#akc{E>69_s#Ow+5PG}23e?eHK?Xj*A~;IB~Al&nRJ!&Kku%f zAGvED{S2p+=|z`1WFX3jTqFt+sbP|7_z5~HXE$n?d`ROHt|vMy(pjnYjKNdUkW2pL zL{Shb>LUzGr>-l<7FAM(i&ea@UpWH{rLIvhaW%eAY>A(kKF#trnZ&ShzCvMzUqLBX*@iz^nq&WJRIup zg5l5^Cs&L9+Y2g19DMO@D_q!9$k`Wvq2*|w5x^<>8YoVhNCOw4;z%(Ls|(sMERl02 zEE3egO|b6+wz{F5NBOn*#;e`ahctaqfzR}WxpOIKkGWCvCL{S~$QK6Ok|aC9$l|~Y zI}ScS%3WJIYZFlra?E$cw;8V6xtE3`xQ~3F6xop*?z9M{$O{9bwr}>=U9<22_Zm!? zBjAaR@lQTRYn*I(dyB!siR7zFseU!n;rd5%?#K1X^dP^q-McFNa&bg6J_2g$cKM@FI{v)pP^DA-q9JHQ% zyjZ7-Je4kl>k}Nz1f&zug?NcHb-5$w?2I zeNpXpLMoNqzWv|9B%_#wnyj8!?aXgjYuUrU$!`vt6!3pZe%;E#?rCD-%E*oo&e#aG;rTb zQKV~wqG^;UMLW0_b}*X9ix`q(uzVm0sJSntz=orOQ>HNoWD^k{&XHTz2?9JaoAIh%WPBQg-7my}c~EOTU%3AxvAV$f2@P zow7AVqlerwi$qokz@-vk_=SPE}_a6 zA@|i3K9&LU=3JZ46u* z`S)~O%u{FhpUIJ)38z7F`)hg7l}W*j#FveI8bMIN`J@$I$%MsL5y~LFM;iT@Ar{K2 zaM_Kj)I}>3&eWP&|`qveN~vHq2^Z;MzF4_fhJO4?z|O#PgPkTbO6e-CB9|?ijn_GTm%r!% zc9J_Rs#X|`3|CQpDKnK)zLbL+++Rw*3<2W)QqJS$Twp6@hBO2q3mzy0(*faCxy|Q! zf-b2%5LlN#J#u@5>?!27JslvoqwHWX?F4tE?c}B8j>HaLVuDju|6&z2-)W4GwDYpw~_fn3PjJ@DB0m#5b)M*p)M3}k@94UtO{#axCcMa z&p!8HB@YlKoK-IraL2+Y-xgkbJ^u&OH76DSjRrx&Ob!l)kKEO#pn$h6g$|k4sFi7` z47$0m%dk~paU)oB;?||cvWzAl)Edcp$+f}}=?t6-P1;_8GJIW)%)SmEcXD{U%d|rn zAKIV3TEj;g$GMcmwvRM=H7Rs>$cch)R4;t2aY%o%oR&q_DoKW6XG}&EXgsw{FHQJwV-zfNT0c;st>@Wqn7#SvVqXFNs=1LPXeBR7Z6?2v&_iKFdw2i*U^Al za#}I$WYWc7=piY3pgsQ;N5_D;r$>$&x6ftO^!Y~R<#kBUv(g;n?6gHYp#Nd5xP%ce zNqmFCV&=+`(-n$fo-cuF6zO;iS0&2z7tmXxRv%ut)1kNj&cPnt<)YTR#l%a!TkQBs zvJZNr>n_u9^X!k@6ua3(RVgS3t6|wadO7Q65B4-Nxb#@mJL3RPpQVt))90X&pO}eR zzJ0yXaMeJ)?xSR_{8NczitgmABQ8t0#_aA3vh40PSEXut2&nOF@S*a|2i82vRQk6k;AMi(ZnO z3omhtQ8gDV2w|1xZZ70>_@K}yr$fwzi?9}QA$j}zP@2?aAR)5b?)=%ivP3Mm8(d)A zgO6=N*?v@n3b}9pV5OV4*JIA5+)_9ON=G^}2h^&SWazFk>sxxob{hn?LGP!Y_2?!& znx*1ldYdv4_o#TaZE1Xid|Yz!f7+D1I`|ML_n0za!raYQ`R6D(IG4;>VIaZZB4xrn z6@tv2HmDIAK==8@aXC^)`A1r_S0>!>@v^C6MVT1VU&j<=Yn80;urn%Ug3o&V0tSJa z?2Jm87~$gr=eoX8pBbR3KyJ-kK6Uv;4W3JxXqYlVf;5Tta#QGw8cvzG%Z&_W!d(^X zjqck(_a&Kw9&B751X3o*nWk0o7<^DD5Z+k9(pU;-&{5IZL$?b7o|f&rqk;h04xs}= z_3kQK3@IJl!oX72lflT#!0l?8eNY4pBm(QjNMFfj5N{L z{So^{Gc3n^j$m&Z9oN^H2d_r#S0m-9Gh2yxjw_K?zs`K0Scv?Mv2)YJ*}mVl690AP z{kqF_$2s^L9bLm{=HPEMT>mfZZydNTgJ}{WUiuq7%q#vz4|DHt?16c1HI?;WzfJzU6}h}M z)+=f2xK|r*RD0ZOJ`xV{R+Z70zXEgbgdXdW=-;`VIR1(E-Q&C2x0pz^fE05~d+l)oMoz;3x zXS}q(R|$lnet0gA(5^)*nQLTwm{tos@}{xLY*Uxd`(YVJY!^jqU}bCWY7=2n4BVNS zy}@c^qTe89YLdW`{Ke~-MMq!7K}*hS89Sq(wn-5O`xJE|A#WUWv33{nEimqMcy;op zYC%w{bwWlbaA{!GR2~2Q5Bsh&Zbw!{UH`dt%_pDLa4wTIi}ugzeWsawRxs{FYM7=Y z*N*L+G$$%GJUG$n|5?oi?F)Mna6-Q_Ap`xKD$tDL#HKdt%IBmg)+X&PKl@k*bGujD zZ;Z;IBq7>D;u`Grr`4^kPeW}Twy1NmPlL7x9fIG2vV0kv*iNI)vq$TZ;@ z{erqhDKAFl7r|*G#61?`FJ$u*l-EL_Mcffr)cO!Ejh!#iR*T)!094Le`L6Z3t(dQY z$L<^8kZ+3_Vv*J~QTGjS?c1AdgBj%PRCBY6g=9Q#72P6g398^@g*;&CE@i3XZmVYi1qMRSpbAhO(&s+JJ_Mj!$N2X3R z!pLC^jNK9(xnJlw|A-0AfJz}vUI`0P%uiwW(olV))MAUK(WD^4?U9Ic?sb8}Zxgq1gCckj_ukC{mz&TQLluO7{^ z-Efhb7_0S&vHG^Oc7xGz@fooun}fF_@EYOZF}L9JL8SrH)LUeCJMu z_glTN*Y-SUKpg=BW_x0}_Sv4+6c&+92ix;kZM~KpxmTA$VQu$WpjeK57O2%ypbE3H z7$$KjOvYMif%06oBBYAOz@F=dVo_BK)G)=^sJkkl!1AKc@WeJ17d_CPcV|OwLS)t$ zv=-9{<;#}9>4>555b3FhixnE=n((8`>=WNz;l+?Xk(Ax@;k^*w)3S&4o9hTccamyp1l~Z9V1I>K@%?%d&&j{^7UcES|T4ntbL<^0$k# zQL>GRQ^>#7rxfWnRv7y{xU}AG;JnXj?N7$F1`;RYUl}O&e5NW_O3W+_U>Q;P6F^@U zh;8135^X>Qtp)qnJq~w9V+Dj7mT!Y+&vN^GOwOQRJb1KUJSs98QglqFp{R!}m(-JJW%(bI%j0E8 zR;LiOI)Mp41*O>1UQLDRhRUx2zZ`T4A(71#u;V(?w(OwHui^OJ=RxL*2r__%@@p6j z-yRe>Bk-$@y8Idxuc)L)bc!?(&meck3<5V3c(8S8T9$%O5IKV42x~H!s_81XcMDiA zbFe;@XCBr-U->n=tFX=v89knz-CE@mR5WUqz$L%N5wpGgz(>S3a(mZT3#kTDRI1%& zt@&y{NSS}+R2OIkjnq<6z4zK3?V%J%o(=L{FUWn@3t&Jf9aZ1;ze*OHY@WOCI#-=` zR8=SV;lYX_aggkdV5v!Zhw26Q0egdf2Z0!rPOXr+!k?bh2~wFcoqveu$Egg2c<_20^eQkAPA$C#ZXK!^3q<{#xs)FNkXfR-2!ZM@z|X0;7+av#PYev z>lqdwSFLshjTh;Mknge#Y2kU(!oq|kAK?$z;aMK`pkHFR@lR6|a z^)r4r@S(Nvx-mb|a3Lz`+~%5bF=?xlFRROCu2B9;Rj`b$w%u;lwoai9}Vw^B&{ znLZ9@$veC5W(LBPNciZlU`pG|a*}9$c}hS}MuDpjPx4prngeC|SWymh*;|w=VtL8EWM;+2K=J{-4T1*n`4T0u*@YocYJlqHNMHP;@4(j#e+k!;w|>Z z@63AR@X$BjIt!0>^x@Gr4RtQ>F}lK>lT?rZ>u&ah0jI4CTD*M@E!*SPQtGKGqG9q+ z24L7pVe+R@TTBTal)Oz3rPwtn!2YrwR_8Dl)`L9=nrO#1lxXn~g)Z{~!H$>1ee|3% zI%=tnW6|rjE8nUNY#ggzccWha(a`Jmd<-hX26#}v1%CnjPOmdSWjprpkTrqIcIq-0 z@7e9TLs!4gO7r}Ns$OUOt4FW9$vrfak7qoo*IC~5z%|JRma-_NUgu$5(d#^{ zy+AtryR)+$vsb?OFmJx_FyI3puPnUi(~LQX6qRbbtu?RLnRtrazLEA<YGDk(0w(6f)qjzqFjv;k(1+(i{Xj^iU;_(2+;f~<(}V8L84Zq3V) zM?u7FrrnOH*#Z_-^e%-extwB zY@FZ7aq&LCk@05SF+Dj8HyOV_g5SvTIdY5y;)>tsh`l<$k+pqPzme6d_>F9s$L=>W zOfkQay8?3^6lVL4JRnZUZ)En$EWgn}PLw_HdwT(0H``v71w%>)w=l3YE&N7qjU2C$ zS8Fb^D42ttWPp0S?W70AKBdiK>kPM(Y$(PE{JQGe=AGOiyq87f);sF6liX?#wUZ35 z`|Kp&S)ZL`HL;WKHP8H+*?n5pTrnt2m)%u0Qf|3&vxql4#FEh=+>bPFn|@EJyvQvo#mfbO$Hf2z`(rNb03dAn&2*due@+_}eOler}={DRZ6Z*%9} zR^$J|&7J!{DJVZJoB5RBT$&fK5~aNvW@=$8qbat063*+P--C>+OWToZXrPJ9~ zx5qfy?Xb%mCwJ;DH%{h|Y~_{`R>vCR`RjE&_igU9Mg1?FY&CFgvVo<@o!m%a(Ih!~ zHg|fM`(&#gm}igJ8lIiqDNHCZ0Dpt54_pRvK05@kWUE7lD7o|5R|}~Ia#X7Awbp#K zHy<_V``Xvd96@=%r=q;?FiIV$yzkPZV^`k4`&#-we&yW_eVFoY!<~cjK4k1iQ{LU! zWsud9M>G$owmT~6Q`?Ok`qlQm2F@d>?bZ~Wz$Q|v?Zf(W3cIy>RE6DYRTOr|gpWDU zYuI55ySqYxbMv3AuzL`kkiz~AlRoIoJ%QeVRGB^U31}+oX1l8VaY*Ul76z8mxlv~? ze>R1E4*VJI;zvcFcteO@oRNCroF4j%um0DxLKF2`pdI2$pbC?BsEF*MEbK&f3=L&F zR7U<$7EvY@ow9eT?CB9Z+bFZ-t1x+&%4Y8;!bg%>DjbrLgr)We<5EX2Bc|oR7+OH~ z)kNKfCC^88`ycJ4<&%=%xt1PCnAFKDsS-ylGMVA4cd0ZwyJP|Kcc* zEaQb#9EiQ%#`n1*Bjm%rS)KPlv#nvxK73En>=%xqSwN;{Yr~qow`}&$kD*zhe#B;P zEt~y|xi?FrCBe?YVl__jcw4M9pEkfB#bULgc#G8-o38C5xn3+^7OP`;QJ=-?*xgWz zb%%IAXjqNx`Of+*R;!7{`YmY|q{==dzLx6>PT!#Po~j1_SgQI@s1^5hA=NQjak&k1 zNCcY01)ea;(&89}vHY%Rv2uS;-~A`;KDYYbtuYk#&d#2@U$?u{UCYUD=x#Q1D&Boh z&%3+q&WAMLES;-;V?7+nT?9@WmQ)IH9?W~GIea&OQHdaYW%wZZP?{?bup zc9Dl8Cs1UY8Epe(l<^t*Y{%#Jieu`D4kQ?ZXLG52jWgvF+t=uxXkX)l_ZIKizDD9Oh$$WLR=NNdl$Ha?YX4pzNeImG@Pta`Uh|8{k6-)%WpR^={~J(t#m48}1ye`XOUKnpN+{ z?yUN^X&%n1cU016)f+kVTlI$woJX+gttmKxO{B-FAK0I>>aEqITJ=_|V%6IKk39@$ z*kPuSyF!n0^Pg?idk~zERc~6~tT5a_s?2s9f9z)W8rSq*&mpCQTNqfH7FNAm9Y=R& z)z5)Hqir6H%6(4*(-jR+kGD~Cr;`LnF=}im-l(zZ>e?=n*XBlzTkojPsBx=3)Tr4f z)bBHDd}n<|jn%}cdGluxU6?OBdY04JEv2`Ao~OAGd_igAEB!BAikdP*N<_5M&Oeq7 zuk8Z)(Hbcd@#)Bede$+2~wjGnP+_+zcLyj9%@#>X35i=K?b5yUY2MKynk6_Oa5-ij!^RxGg`hm=3 zuJ++Bq2>^4(JA4%O5SUeIx94P<}B3z7wQm313`8{lo{P2pm90fN>Su#Z%(&m@yq?D z7e(x{-)IN<2UAOf_W!7~8*oS+UNq1=4YL2HOQW6tHqGq{waxE21Nz`JdOhL?f~?r# zw@AFUw}&NRvtu-JbPbjU$sMLgXlNQ=E%}1(8J+Y3jY3|x+D069*@ylNY{<^!9y9KK zyLsS?6ealqzoA|tP7j9ia_;rxJ`dD0*Q4h-eMkdX;t0R@ugLtqg6z+Tck8-a8${rD z>d`C$KkELt+YA^;;N#mL=Y~E^sj}hDL8%%t_M<6PZtNfxC*d)90vNkB8>d=XQUCt9 zd#zqyp3{C6c8{Q1SyQN1yH&ANt&ZHQQ?RVij0X1H6E->U=c1XXW!wKkgp#XL*L^{y-E6mhk5W3gg@L7X4u{tMIJZW7 z)I5bGMci#YdBY~V*ZN-MAJ(HOj-Q7&?;3o8CPmjz{IN{@ye7uVy_xbr@+qwr|#(OsUW@MIFT zB~cGtlWbrqu+BXhk@HsD#u2GEY#hlvtbG!753IB6j76NC?a^<}40y*#8TqUH1V_o1 z-gMYFN$$z;)kK9LMWxz4Yt2_1HQBBRS$o1?qNgLHwfjfj`}Z01I&t!UcT}EUj-C;g z_CqeorDTv7<@6={Y&+kfW)SEIc8)%JEHzrmEgDg>-z1p-AjsHwNIk$ZrYZ^NPuOmb zgu(@E`=;FvVp|?!HaJRWW_Pt|MQ-zvWR>M)6AR7mm(`QWvjo^4wws%)x{QxFB(B1} zR^ira1=Ei>zt~T-DR(Mw*Q4nl3PD;a+hhc> zVy5xYEpp?~w!VEQ3_X?`2)8>QxAq( z+z+-%8Z$2Nq+4Q7R+`o`|*D`Be9_2<~=Y`9$Hc?d222z+4?-V28e1ys@k(Cz;_u zS&qu(>%+bGmgQJZz8t=@yC_%4>q6`XLS8HRDMMZORkMX7;c^R|vCU_9v*?XBuyVmnFYB>+QS#s^{%W-P>l>y>)2a-LvZ6Gqmmp zX4SoUXx-nMRrk8Sx(L>}rtTg#bL&W{yN_6n{|i%hcYXydz;?PvEgcuN__Y)d8bf`XGEU4N<4=kpIb_NDsu?( z*`odzPTd{2Hrc>ZG=^L?4&CRQdQx{i%%xbsG<#s4?XxvJJA0&O4SR!p4gu`tyS02d z0?-~yi80ItytY#9M#CqMCkxOTU_z*zDN1zmLD6>m==r>#kjxwEq`L0?xJFFXI3qq_ zdQ``h)v7qA9A`e}d|ty2b4EIRymX?kww>pj(%`r6xrj29j;L##~ z2B^o|&e-q7!%^%E8;Z9xY`VI(i)4FlXV~p5JHxH^P&?y*hy-p{O=t9-_1PI#6FcKW zU(#}(neFLW&Rj=(psKYzR?6Jbm7`MeI~JwuSQNiwQ7DhDB%YHis&Y%*K1=tzuL{L9 zNItGLZns!+Je5$7U(5HY6Q>^T##u`O-ha9+#-Z#wggFOQy3Gq_+}Gp!S9Mki(3Xb_5beE*9N z+_&v}yAK3g22AP*fgBDhZGSejh+1iT>H}abqx(;q!3FRN&V_B^G2yg;NC$n&J!Zz) zSQD>~Huu-{bX?ix&fh|zj?Nx-dQ9JGJQ25m8Piiy2PD``Tb*HrAF0=czZM-0_c`YAYIJ%{c9 zqcA^`Hb0P-!3FK}3`Fh(CqaiU@$WD~JA6*qDYbg*RoUrRqY+yWQmS$LWRJtrnxr~$ zP)qV><^lM4rZY9jZP7)@w)1~!medNBI zB=YTE)~I#HY?n+>y@|FMZp7m!+o{7bS$vjF!o1UrR~m4d*`xY05#Z|Rm|t~3WZt0w zu(MCW8bEn-q)Uru1*39B5@|;`KO<0#zqXn)BRHc-N7HbZ-KxDIQgi00mc1D4H`OSmA3PUKj$0&IQwsT6viu4hA_>cu52aY z6fFR&b7XOcQy#ac0zDR9OegPD!|m#^JD9y?LinH9V~Vcs2`be+RzOBtMt3F@o?2*+ zvzuf7oDsRhhE)WyDBmG3;{0Jf6rZSPd$kt)a`13|sl*PpIj|ADUCb8F+{mG?eXx&D1?1Hiv~;OWAm zC&Nts$d%6V&(mE7eJM`)8Try@63*!cD}g-Ts)L%Y`ZnEU+l}fwViW?mD9_R_eS;9NwUZLw6hD{4IGn+RQohuDIJ8aV++vyujCs%Ci zOtz*$gzY!g@m|_=l=t9{1a&831CeM`hYxx1b=gkK^OicIqdUU6uJl}Ya~BHxP~=Fq zWrK%~HA!v07RHg9Hc+)c>R;7$TaU>157TxQZQzGb59)<@LmC1;XoNdDqgLCZ8oa~} zIY@1;_|^&GjDgcj!wzKLroB-b(@I!V9gg>{^L4|RF^T|b9)rqmwG1N+!p3QGz^$Nm zEZL?5nbLfuE+qDX13w1=M>ew*ZdhG5El{aj=M#mibD2voV4Xf^o>UGLHVlDwM$+c` zv;_=wEGkF$Z&2u_m?V8ks*R9#rDf51y(5b3$W2q%qBEP|>Ol+`5^MGM^;67_l9m_&vN zFua;ABJ?SqV(dhn!8rH>W4_tQ&G8K!V>#c@g7UT>s7(-(aSCHCEzb$Ul#Q7pcSAEH z_ePGG;&YHYTZ3XZHprd&G}UQJEpR+aRd5+V!)l06pCYK$k&ezI8mf*o#|CRCG;B## zZFI=>6KXdrEW!9QMC5n?3ux`zUVW9cl0+dpc@lbUjXIQM5s_d^z-Z(%YT zi-E9SfQ!sB&bAit-BcK?z~vaL2WhNlqrz;*XZg|Ei1U^t?I5R?=#2WHv4K^*LX**~ z1@O%qjPV&!s`+HV;KT2QEfA0Th@xV+Z#~LUc*_ndF7Q zM0(w`H)J#6#%BcMcGtK%+pD{=jE`D?T#yhwwK(^TpPI#-(Juc*z1jnTOeA67Z*YT( zF=+_2yO-%{2DMqxEW4V_yUP2Xu!6Cx`vx=bYJHpFkQ)zQ?-01F?G&#av?~3rj%P8d zhGqa_30!U_>+^46#K7+#duO6rj9)p8JS_b&}KAx_F0rg&)qeRuGpzK^-s(I)mW7c&oKxan1ij-0Dw;YnlA zr&hzD5N2U`eif<|oP{wG@zS==UZWJoz`FpdF`j9SF^WD7VzNb0@%IUuwc zFryA;*|>25#r9u@fsL^01aL#{bp)7^6v=`reE|)jlg6fxQ)rf^?OG+^;w*2=urLFV zwF^Nb^A32DFDrpe-WA{sZ6@QiD#)3sI&(mXWWAfd71##(z9*`zA*x2sH~vO24BEfg zgQ9`s2~^F4UL3eAd{fXXaH-cpcHK9v1fxp$d!z31pw~m;uw$86RhfqZejl2ktfVo> z!CGm(>}nR8vlk9^gijC2!V}OeQsBWk1^LwRnvN(IC|9z?deTo0Q(Enawzx8SVKWT|Nk(eG7 zJMK1R!^hdrQy`SK9B1ihojC8Zu21@i#CWCnvX6EKSf)F)R_`>>A#4goVW!XIKr!f| z`nq&IOK_Q(`l~N-)K@DxN_`o<(dzT5gx93v8$+1qB+DjHXJ!glb%?0zE< zcZx4qB-tkH;QtJ?!gnbe%y;!+63bxEIWMSXoR>jnJB9t(|3igkY=O3$!$uH!ihER~ z_ZGeoq~pIk>f1M3ep5hO&An18g3vgT5X?bAKzz`eK=bx*F*DYWf>Xu7SbOkv$5`xvCLpN7m=M7%vYoG|WYLzX%N;9t_uU2oBYmQ!Jb59j|{y!9e@{GUYbzzn zk-BB3s6ZYc&n?NawyJg>r=-`iyRQRdv`xR3*L*(XvBs3pq|3$V9xt`4gsYd>l@4>c z(5`fJ%LUY;@%zkdILyKD$fga}nA$5{R@X2i zNDE(ra^UEs8wZ@FTsh#RTzTLeP^$%Sn3hO_Q;V67V8lnUjBl$4-565M^-_5KGXeqIECrM1D1_O~-!&*`l}u{6zB%LLy`r+9{n}mx zh<$4ykPrY1M9Xd;#5Dwndk`RY2oPu2xn88C76{{9+B907 z?(l$B)Dct=4Hb5J3ZXBtA}(x^q|~yOq^I%Jr{c@)x?K{{Y&JXx(*B+7Mi z0h~sUhK(PxAs2H>WFhEn#HxWVF-wBRGooq+D)u)AK%uq1+j7&1R>Ho6vw~ELSQbC$ z6o%f7C*mjw2|6%mA*Vy1@M_v4Et8<^)g1-Ug^80c*g+>%{r_iG1``adieriva`1FN*jMHZxtJ;S7R{y{s%P6qpf^b zPnC|mutQf}$P%}IrH7{t<3i3QBooE^f5b?Pm+&VqN+ahI0@`tQs~8i%IEV5}-Z=0r zO7qy}iw1Ws`R|#ZXPjlAUCi-RFq`Mb-Ao~)o06y9)U4@)cG`?DRwwzPmgbr7S=7gVu#dAV-rze;q1 zHrmJ@(Y_Z{T$O;eNM9OCNs(!7?zW!ArMZmp$mYd-W4U-j*lEaqNwOU>!plIwD^7O*MtlvbEu(| z0!wyw3qLzBE1(-zpleR4xdKxu3BACq6+>S&^QkXCZA)6)+^zM&Gk;4tiKX zb@s!W04ue-7qEO4mw7MC9(aqCmKg_Jl?(@U-gafYK-;%pfp+bfpbcbk7g$__vj!gk zW3woEy~eXdiydaEf40}2)q0-o4gACX_ORLWaK@5O!2E~o;Y9C47fK1TTmM>Jo{~RI zB}rxh=I%x`#_+5x($9ozSH^ z3DdUga$ICNuJ-wmbDG>{(H&+uh99GA#07`oRR%6DhX_C@!A)ktlXm-2ZDte_$QB}VHNnG5whR{gIFNY9ns2*Z?Ys}rXd%h ztqo7CO)Ua8E(B1-YeqF*6-|3bQ-+Vg$*Hx}*9|5zmOsrunrtmSsCUOIX7Djb}x-(@wSEg9Uf2T5gU7vigwq@1Kdq219u4uD5C2=O%lqIinYz2I=yDns>gic&K$qmNC-Mp)} z48FLP##*z%1nJm%*M@&l4{94bw0jvMGsg{(t7+$ zv@S%SppzYZg0i*|Hjra+XOi(xoEz;JNqN33+8=cju9S>5C00%zudM*1o5$FuOzWD` zx4NeY`gi85%=QRFU<>$nlFkL1BJ$o@=-;%|9oI9LcxGHZ5u-TlSgNCex{Da{W@+jw zSwPd%-NiyT5Lu5;RvHb@7QlWNtxgxGW2-k(Q#BT(C$FY-!Rn2j1vFyaS;A15E=*6t z)a;%l>#x;rXP@}C#NVme{rb(*v9gD(^t9~8zp0k))E#yA^px(i(sQ$!2di~&(p`35 zwy&r3fR&z=ZU5U!U0{RPtis{vi|0&gprn*dcP+Uf;AbA8V4HH7vd!FP3QN*VL(Q~p zK+?NYjx`&Exq<(~r`!qGtju(0O1{S_TVdAsaNIp9ol5z~3Wr)@5uhl96^4L~aJf8% z)j>+bsLjez{Ep9HSgy8@<)y-@G(qzm$52)cNJo;lGX&n!=z(INM!)DWgX^N4 zsE}g-$q|)(pIam|P0$IZQEi#hK1+?=9f|k-BENB5_A83;k1ub}& zBW)t!dT9;#s=!SI+(f`l1V=8iU3C*#OG=TY*x*U$M!WF&+fy%o#f!w?q{n3Y8vSpb z##`v=`y|oyG;*>RwpG4$sM-J4Q`}pJn!Kf_v40E3$c%V1=q_|3>U6}-=_WRp$=#VN zE}fK1iCqL!hfAl7bh=z>W|TgaOAUz2rCh2PE`N+metw)EC$u|1Vf?hS%(!dk3_t9j zM4+Atww&2nZruL}ESr`+%bq*Crgep`M>7|AO{ZX0S%{=XwruE3NaFLD8#$Ss+*g@Z z`7u`H#~msUlJsO=97)*QR&cZgU ze1`tz3R3-OP-kh68R~{yz+9fug`Fw%Isy3@K)>{d74)ag8T9Cprng|FOE-ZjOr^{8 z56GM9&@`cU1bm0SP6+Z-oe2kd;gMl9a&<#z$|F5DLi!0)b_=9`>JJ+7LX$yAf9jke zPnv*N9AM7IjwjNe#3=YlAiq%3ZX{iJWaSVhcS4Y#=qz-QUzkIFVU^u*Bgiily2Ee$Ke^SeH*zwt@{}%v-DI6oN!G;F z_;$Knvh&QLdi#`1ypTdeJ!GYRj;6B!lqwPWb!vlIk#*HFI_roDwSw zPmTLAx%q|Dl;CfRnmp*8Yf+FSuB7c$Ic2kSQ@skHnGSWGmXE*IbkVoYZ%(oq*^S~5nrQFbZ0mq-6FXnRfE>|sR*vn9SXPZH}{jv;k={5eDFEUX&PL+bQ;iF!}otiGWg^?dX|dPmi#>{`V()-si3t9$;>@eeU|6_x2BjOAnV@5ShWO#m|Py zpgz-OP+M+PE!#WlBPQ^Vo;U9u$#=w(S305=!mNIE`6WUhrxq6Y$hPAB^bN{DXt?Gq zdZYMUrvX+r2z8JNKyW-;_CgDW$Yz&@rLa5I*&;hl6aFo2^MwWp#I9CMT;3e?q-<}1 zpH%)bTIqvAv1dbAsejO6oRRZG=pCjQFPt z@=X+E^1FhxXrtu{mKFsgu3%YFFzO1H7X@usK-Q)o$CxWPrzjYA1y3&uh#zVk&nyZi zT>)ACc_WD{v5$EPwsAJ)N{XWm<7}QQ(f7Z6*YjP8eH_fawZN4qx7F7<$(0m`C&t-A zSE7%N`8tbS$-%N@u`5v$t*>*kD|xUiS>j5RckAn%;!60ES6*_eD|xsqIn9+EE=!)` zN**aoPIo0UFe%@1>PoIFOFFJ(ds)(TB{!BOPjw|Xl_g7E$<1ZSkGYZ^Wyz1blAUGA zPq>m@Wyvy1z~p{ho)x;z-t<=S#MAnCqC);kAFM@E)=y_YsF9;(XOmK3DnJdn4lzAwUTPmtJgLsMFsAkf$( ztPOOECO>42ZS5c9jXy~+INowv9t_^!Sl_KLRXi10cKrXjfG=TQrl^1~VcyUMd|L|m zl6}V4H(o@zw~;olNgE3H`T#GJeO5#U1Fl8=pE+1iwFu9SSd5o+4Pv~yCTyIEMO9+F z_3Ta%NiSF8sr5XbdM5+PxeDIk5J5JeAx&#f3Duo}j7gv5bZmK~wht z=a92GiH~UCf=!M%ejZ{iW207|yo8?EDEp@G3`v%#XSa(?c3!n}eCB#(;Q@Plggq20pBv?v=%i>!j=23EBpxQ**Ca#42 zWm{%OvhTaZv=NNP`~etjAuaMXR;AZlLd$i0>t*KVzrR18aoK8?*XT;NT%$^giS<_k zOY$nDf@n*6Cj>TITxuo-c%RYV&7EWxIjt6L`R<6X$twEg>F#94ISNFoa7@(YkPyw# zMg=@Mx|ME*gU6iMU=DaL&|L7PO!99^G5Gl| z2Jb1I6c2~rTGYInO_}i!y3|4>tiBJyYf%+~C&HzvTL^x!5@iX&Po}tZR;P>7wnFfh zu``)2UQOvFfoWDmh~tjq0HGGjJwDx?>JP#1sRqT15d6NL(mVuzprl&=lH&S^?xqT9FC!-z)TP2cUqDWE2#k_enoPC_^(;=pBt!z|p&A=xIX~n8b~f z4w)r`<%V8eh93N5J}z1Q^@!X)j!_}{{IbcI5;?(J6kfOGBEibY=edk) zgz&oP$PCvJi`95TOhNT|GRz|;JkL;Mo`UD|`WaDMo*$#VJkZ`qG2Eo|wsYrCTZ~Di z!ki+|-q_qlsDLL5v`?m!KF}`7Qaou5eL~=O;5&NV_>u+MIjx43Akbbz5)U>-ij`$< zJ!~h>MISt3aMX8IrlqG1A6}m)twiaINThjweVxB(9%@Es9xIj3LrN-Pe9D-(&lHkr z?z4m}*8z8{7e|;XAk+FZX2~Ymks)FnBUE3{4q(ENn^O@#Cp+q`oi@kAkcqXQyL0+UdH4!>4Khile!4j5BpS8{pDOmfSVnj*D_Y8p9NhE7g6FHus+`VxrDZtObKONb*R^P*+&}%fPYVr*_IL_dSo%}R zd#BQc;!IO;COp19ym!99INeRmre#=5#j_R|YkTdGAM}502=sfSLq~$XouGv{X{Af03oL~brXBsuvA%UQtcQu5DDdZZ<~iW^qJ9qi z!Ki=Q6Ak=+)E@@?ljn^3$Q{S)0Y0WLz@LXm=O4f~-Zko&RyaFjZnj95firiB4yJp| zhvFRYlN|G5EgL!l{vv8|Bh0tJnlOKn5yz~m) zI)517nWu~?l*gR!c;G9Is)z3oe4HcS85i)$2omN4IDkK)xM+xLZ(^D<7Z)8Cek@Hc z`Gv`AjnQ;+RR*x3`Y6UVbqs3GR5~?8%^C6pHD}Ez+)PWHCMsHGNGM&(JbHuB*hH$5iqe7%?h3?kpVFywkCnyMuedRh7wwQ>Ts{V&B z04-ZO!MJJJ<4TzvuV~qjFp^cc2aACCd^&4G`hKBd8(OmHWJL?V>RZxWyB?EvP0hTx z)UL-6`oo@pb_3t>Xg8)b)-mG*+K|amH0H{3F;X3{G;~C~TwpM+GVFF*$hGHjY0ol` za2V07_v@K?WcyHzs&TL2Gm>J6&dk=HDgQ2pEcOnWx>?4xeG3hjX1(Adc;q+Mn zngtpUrjj9wN+*F8q!Ol)3?*O!a)=4}eM8QEpjNl7w_UIc=vz}3;-da~uppg$Av-U` zi@-Q}gmR3lx3jYiJ2WB}^2%1wAND4E-7e+c6rPrEwXyWrk1!)cAbC|6OT!r+&&TV> z&|k<8j8;)Gnjv5-i;gw!BkLYl4XZ#fsfQ8t;J(_GBGy}o%gu#)2nQ=BW1*gUw!h&+ zJ(zElhRNaA;r?W!%v4<)WumR~w$yX~C`(ylu$<@u0GQXVunp^p5V>b^y}4R$tM?L-k@Xn~AzP)-}f(lc?Kc zfcIh|0=u?inL6yr_6L_{cix7b_xa>99C}|+1Pqwe5aHQwp~kc}9XUWwUfab*m5!}? z_O;!y>$}R??v8KiPUv@1;M$IJX?)9O428Nuo)_v{c$o)Nn>+K;315oCy1s?d&Ag=5 znY?zhfxo3~IGy>ca9we3Yna_>19(~(Ot0sJmOHx5>$?kZHe*I==XE}W)|T#ArQxz? z>w&RsVW_ja!TL;FTX5!C?m6LT^$iJSAI^Ifjk^D+3Wf8b?N!g-?kB!zOLsBD;HS-t z-IM!gy+oy_uoJN|G&koZvj@{Xb@Qrlb9YJFv|UIyeLj%r8qM}z_uo0=iVJP4J)8taEWp(a$y|LlnVJy0HZ{f#iWKEvW-0{ttufQ1X)@n#yp0A}|l1^Mp*p)m` zu|m8FOSEE}(}kPUlQwr3UZd%bsg5>?hA>$&ATIBm?!k=!mWC@1-A&WeQT)0cu{L&? zkV!Fe>H6;I9VyrV9&PTnUyRp)j-HDP$MNV@p$iJ*OlxUL#U9!0O=~RnDCi(KtI-iP z>iK$`CwQX9Q~{)5Y~A`x@_X0jCkzo%wPVU(+Re@RIQa6j|^h ze$)$G8>fj{!Va%*z6M{&f^^~%Y13i`^>hKgvvdM(hEQy7ruF*fUovZV zbPTr>bCtldVJ6~yY=CmZnD`~Ko0{o@YuIng5obVV0q^mSQ}6Em_o{j)K7W62i54ZK z_0iRgl%LB%g40m}+S#3|n4O&Muot#zKN_V6{!OLqa;laBx-WoI4_EuLtr3eQou=VD zI+`iD&b7e}anga0+)*q9Aotlp1VyKQYt=q=UToybeZYHqN^^hl?w-=zx4fgL^r3HS zGN)zRdrI?dV~1@%ehdyfd;rTOpZx#ieFuCM#rFT~?!9|!Lg=AyA|s)+ctJ<=H6z?{{|RW^Y0i z^r!#d|ML%@%Y`fpHHL=hY%h)%4Oy_@RQuBr+%>nqjUnHlun4Q8ty|#4tw&nOaow526PjBl zYm&Ea!#a(_T~>3}gmBi>ysoAeP^T&Hfv6#;@^S}veNfl2fx?=hkjLtSwkoTqGDCMv z^_lI^4}KFjR!9X#JJ%yGaaTeCy^3ipj=-aofvSP|hRc;HXKjVURxx5HY)$&|Ld5`O zP{qJzZ97OP>L0d>A>*N9FdiyKT)b2PlYj!)md;cb z7~v9{D8Uw*s!W%n01Ai<#vsS(3BW8hg#hGeIO53Bu#%(UI5`T4o2jFKinax^UED5MAFXo8ZXu<=ul$~;Pr%3O{dMGK@Hl?h^Ulqo_( zz?_$*Bud;uGRR?3x9kijCeSj;J&#HjtcR!<3gH)rpN&Ke%`` zCK&H$;SvJd6hnfwxO@QpvJ#UnqD;UZn^U4ZMTdb)LC1MbDR7Ua({j2#*t3;M$$oi_ z62!RQmeLqzr=67R;BX)*qM@lQHEoaDT8si|y(pAuMA9y=(!nfJ!UuH=AjsP z`;hB%ksrH#qanm4Z+sH0p=_}PXC*FqY1;^GGc?U54=i~bkH$V{QD-;h=Y8yMso5IQ zq~i?e$t?hveh15pbFi<9!cKH zDeu~ay)A-;Z_-xI*-!_t9c*m!Ka4kwR{SrV^xa}aiqMC;W++oeE!^Am&XnAOV{QMl zJt+)a0Yp;5Z9kv~5m!SBx42~;DFQRgz?{P1;u&R%ez+8kI=% za8^V3arV_$b5ejt@;4(=i)E6CEYj??yB4`@KT*LI4~j%22F;j}w2@sy#ngbfYkP=_ z^Zv+ssc)e*mPlHp7-KxBv#mBREfIRss|6L7VK6eB2qV%NlusHmB1VD0Jvz4LdAIE|r6DQH;4sKJ!Mfl+nOHdzK} zTVl&#eqIj4Y`g%F-hq}xCD<|EJG(B9!{Bmf9M#igX=k!OP9tESaqg|4PjL!Jkr!y2 zj#-wMN3#N{P{Su0Hz*;w-5`A4z||h~5}wblHrZF?$Jzw$5Z@+@ySy0&22gMhFe-^X z**aVhH^jmh`&gHKk)HgrMN$eZO;}Ml_Ya~j=VtCiLlZiP3;fgAU#e$;d>*-e1)((1Ry<;%%?Yfz@T1YS%ZRNWEG@J`gA_kX@`p&><)lbxaOA*nF5z4NF>y@T z9}ioe3{^%a<+jI@He%N=6qZE00kyB_223$wq)WpG+ zNkd+|XZ!juURr-&Ug&cTObkLukL=nbTVu1Xy8qE4*v`R&=1x!S7E10(m_E2Wb2n^>Ub~bO13lK^q!iipAu59$itO6O7Y|-G^99U)*Nb3;RGoJ{ z$rqs0lR}kqFUs=FiEL!2rNKU_2BA%6xk8d_sv^7aVGnj0gPkidyp~=dG#~_IE<%`Q zL~CR-3yH9i65Dk%HkRTaG6m1;)lYG^iK|!j!BWsiP<&)QucU%R!}U=ZwFr1Ez5s*o zctP&jw?@_>Q@vS~*_e8`qcFK9k~|yd6&z<+d8!7&eg?LVFmYhSg}o0Ren1>9zO--X zQl;=0WV?ws21|^bJ3Y}5n$EpFun1U`a7`P(Ru~8;*ahI#j>3_hu?aMZ1$jX!En1Nc z$epMeu0I{4fof5SEDpSY#zYo}ldD*m*jeq?pnx?fz^e%%AWNNmzDN_B2%sJaHlO>B z(D+6tV1GmHfL=m4=p2;S+_MCR0319v0l2l%qDzc%Z2`57eUlfx z!#f&UuMW3#@U6OtV-vhmH@3A&U&t7YNT|O2wos&Y(c-1^X5ls^Xn&Fs#sVk^KrK|p zc*|H_E2Nfga3fugnvG@|SXU=jd29$XaiZ9*W}UWz8=uf{5(01d*a1~udo-Ebo*mR_ z@L5aCPqmnA(2@p5pblacYXYf<3a4X42S`+-GC|tnHK-_2rULr$BBVZR7bKNaWT0BL z$I!iX7YuI2CkwnbD?&?n-@fQA2Tt*Dj*Nw(V(sbmcP56Owmi1yw*_Yu`SVE z_hV|}Cn<$45&qu7DiHa6gZQCTz~VU1NW)Js&#>@A9{^soZo9eRzRMdOvBCh=(O4kV z0El^a7a=;ZH=7yx#z6^yoI0dQm6?6;VzBYKQmzuV3ME)X2%ovvEDj(4^CT@{-65ZZ z{LXJU^aj^UjwIywD}0@$RD|vXqM`Kx)JG3%^sfaKD!1AuIOvkaLDKjlkJz_sCsTZp zKlmaKyF(y@eUbZBh>stGkd?H@7@}j8w!R1sK4H~#ITaO-hA+ZXO)ii}k&pn*KqNm! zFcE1s*n@W}UY*!` zs$Lm{>BvD-L6%p(S$2LlNuIy)MRwh{03AjA= zTBQ;JlMdJ>bb4@ko-mZRVPc^p6$x@{5kV5{Cet1R(E>S&K z3%4=bfrbjinMlY-I}l4;J3G!rnh~!Z=v9F@8)-&NI}p~!5fGkOS)m79G6mtY4S_BJ zxlr*#J&^sOqYQ-!HqWZjpB0yF+##wX2lxLxcRIdKXUk~Kf__OE{VS>bpflht2t5X} z4pq}UL_F3lV*wGv2&N}LpcyF~BOzM@d?@UqN{kBE>eC@Z>Eez-K^8O{Mk|j9{(+h}tqD^|A$g=j!NsBJm z&n>5}Tp7rHEozHc53`k2tEe3qaoT}gA@eSE)6ouSR<^YRg!o|*PKFx7>%l5cuc!$;pxU(Lx$lwz@?BS3VDw zJPr4{E7^`4{ym*-*{*FtmtlqklC)!ls6Fota4?!BC3FxFV=Rrqpg~fy7q(E`X&ONR zI3)p^uibgp5y3#sebJ64AGWg*2A2~(TCdtl^SH)=bMEww2MKub~x$gd{O|6 z;!}K<35$W-B3g9{OywzI)JXFY&P2gv4n2;w4o?liC1Qv^1oO3B3S18CUenMeGff}!g$z3a6d&lCp z0#j-FlYa0lQJ0ZryGocGt(0Il3(WicC2j?~iNUeI5= z7R6DJuj8*{)V_@GDA+E9s|wJvljLn;K38`o!D{LE*CUr)zg!QrQV^}vjCWkkko}9b zSfW=Yd#`>nl88zQk)yuEh83$P@;neDKhg|J#f6AK0>8KhOhbg{67R$whBfI{VjGMI zmlFD?J2Te{HRD4`m0cpMXcAF&_PbqXSuk+jPH&T@Bu^?c@|YrIo&E6=Dr@`zstu+} z{S}5CX^JJgm+zibX_A-kLT)fnyRaa$BnwAtset%t8}WnfnJMtuvoEQ2zWssfB*%tL z?OwY>Sf(;Fzpg^7ZUcS}69 zNbXs4|5;ip;K6_`05V5#4Gf5Yvlg~5@QF3vX#qA$iR+2L%E_Go6e>pmdNq|4{9vah zc7cBohNV<*qDL2!b4W|0EhAwinSe{NpH-1sP5lAUV*>(WMx(Jjl_P|;ILMBeBWY5_0mB%DHc4E`7BsAZjl&mKn2y59 zhrz=S&gOe;lp$1yF0RNp^rN@FfZ~?T|2G0^9&ifzRB4N+X@DS|CgBId>1;_YhmcI% z-S{QRM7`xul8GP8a3m9`5*wDD$h%ncdT0!6nzV|uQdS9$ZpoR0J3->pEN2>9r0~8F zDN?XZj+ZD_o-vN{7scR%acTNVmM23yRf-R!bx98>2aFf661cg#1%h*g2QEl~B;X{5 z?BK`xAUe|U<4BIqc(w5H7Tbj8@N>pHVj~u>m^tGdUd}kMa!VDV7&((Td|V}QxHxO# zjIf!G)G;Es|3ooyG>u=%0}n@s$2*c|= z6}NnIMSw4}%1=khNe@0NSyZGq)KiB(q`FKbl5G)p_GhSI5Oh96#ZQ7U9F<^6$>B42 z03zt5#_kn1{$(6i8uGK-{EoU@B*C_vqJgP^k=TY;e1-~d&S$9b=6r?_9vSq2G?2OT~JQeAlFu!T?!Ngab6jN>Ji|r{_*@q>!_B^`tz+%3H2Xxvgk_%N`qfymZ*b z$1%g901!FqqibBe!Y4isEu4ffLDr!~a&(QQ11+%Akf;06N=y%@O^2uoQP|oB(Ll0~ zvbzLKbMD##+13N#HGm#=6>|JHirH*p@KVPV5zJ zXqg_jhILdRh#lw*VM!7AOg%ry3MAl--)ytr@R3j;1S$@E)R3a8K>X%U*F&{&mvcCu zuIDJY^We)YXo)!|vQ>WW9$K%Qng}cq65Euow&rGAj)8xdXw^cq>d@e_?qRKOt4_8} zk9)kzfCoNKmd@>O6=Z3SO;3KW{@nvxYguQ^w8t7_raeu1YJfdi2)3IPT7BrTkW7pv z{eLzjHH{4ku=aJ@NhzSn7If4Ukj^MzXBREJ)5F9Xt@|FoO ze+Uk0I`M@_B8T9B8x#4XPbNdtU^YWTq4ts|;5Ip2o1!WPr-JNc2VfpjO^|`Gi8_IH zYpA?KE8y1*rSk4W-8AMx8{ziaRv-!gVKr`Jh-u*gArazchJ*bnK=qQnu{YIVdnN6zu82&|s|SwN~(rQiW_s5sjmddN7?&mlAE{2)B)r|BMI z(+`dhv|=ScL-sKst&I^sEH{f_nZXFi-|3M>wVtv_(j3}Sa5@QCwWYEt`zJL(r+=yR zz<_1cZZE#rJjdxv3M^AL){(+<$i~6A%0zM$kjS5kPhv`x=ykKaf=f}Tk7^IDZo#=v3N09ppbwO((*drNp)I9zX3fm7??pMSPtZ! zL?f5#5;=pU&D_o(+vW#WoFb(-l&z1IYp}QUR#A0Eh*UjhRmbE;OR4d((-^+^?9h3T z9ikfj!&W62kF>TMluC|akWEA5Yy{{UY=|B|I2L z1A*5z5J;B^Iv`+$j3T(>nHq?g(7>&L9DkW00Bb|+3zTwDunlAz3#dxcb5TbtfFApH zJoa0`yAa*`UUsEa%&i=`x&IjVm$0m9%9g(XA<@AZr#bKn=A+oNcj+*{hURjswOR zP3A-vEwY7Q^Nx7!&34I_Hp>vT{eG39dGVp>NC>yIP(nnk6a$Zkb!$!l{=mgjQ@kJZ&dej2Huq8reO5)UP@mNY)0v4)HWj{{*aqc>vFk-J_iu}>go(c=qj$kq6k zbHD(gI#8ryAlNV+b;|!>xTC!c%MCB8ag27BW=RP_+PmyB;s7{?Ma{zDXZZyxHaW8M zD#XMtOki=?tJ6t!z>M@l0E+9ULdgAbA0tJsS)q${$+9sx=#~^J5iLcNd;r2n@;m`f z4pm77*4A=M7g!OI2i|~I^uSv^ot!f4{gpM-BkzaYLF+dnXnnFf=$-cwl;{qD%hdII zv8yWEfU@Cp_3jIRK`@jLk;hh|&ygOHOIPuCs}^~AHD4YylD2SREO(+cq;(7!x}2OCJ*dB6iCD`iqL z$gUg4)iK&8rN%rrMFa~K*lWEuak>BJ+<~r;nC91A6;M5~$#H7(++zH11@;SRABCRxaVZ)u+4LJ99*t9Q`sm+D>GnSc|;z(vw#yHqkP z6%I5Vssh{^VJ8V0zybDu1VC>J#$Elhe2E^77F;RP>`-|#!)=_EiKbV0U{?SSH06=1 zizh9CioIW?aMMkrA6qP3cFRJqB0sBW=%(?}nT-BUMY~ItxwjH2Fi<(A0}Ik~9d>D4 zs|JQLhc4{!8GsABRK(z)3_TS`m7L>VcqeWvm#`SN4^x?gu0|TO3T4XjfjaV@_~s=! z`H%|}UFEXnhAx+iSpta0et_-Ne-}tWX*aY1>yD5hOHDC=Y+-;ap{;dZ_(pv%eENo` zP$+RL533n!@-T0LNm0~-`oR>8$RaNOk*F2}9&>hwGT?H|M=eMj5m+cG$9%AqI_sSX z9nfLD1JO9^A@s}AkVK=(&zcTklhi-QIhZ3Iq~wQnfqCBb0S9RKW~AahffEW{Ooc5+ zGF%JyZNvTwvrriH6}EW2G_dPXQvyEXhpG}RtlF>~fuCrKM!euaBWg$Qp;QuKs6g6R zP*cc}y*|tefUqmX?ovT9E-k}VC$nHc*((qXcV*E9?E7MB%PylzDMNy6mgQypb;o5k zf&Pd%2x@C5sGiOj2^cisqlQW02P}mJ6(HgayCBTM6&?0{vD}a?rg|7zEzf%OjI1GN zQd?Y1H!E~!W8?xJ1Cj^H5G`03){)EMAKE~lNFMgF4To_yPAsUyCYHKW9QBB0mwrgv zw#QVW5Ij|YG~+%@E&wxn)`$U`Yd*s<6=paLl8fvaPOdmg1>oxgMt<$s_`=q#M8 zuGv`+jGu}hQkQbpMJ~?qE7)}*Ryw-Z!q43vwmL1$v6<6HSL!9s;h)=}k%4*goF#Vj zdH#poWk?c_P*cwa>#=#QEe< z8JxwE*Yd;=P!Z3WB(Xtna@dk|A3n^cW7H0-<$0Lf9K}Dl;pm#=!A6V+*8|<7Y=l11 z4INrYOh(ilI*N3&M+~UMFf$rwDg{D&`gEafyzx|wuDzT8{j%jmLYuvfL9KZS)VN$~O<6hQdK2_^yYO9DlfHe_Q` zGebv|TcOjRT6qXlYuFze;$-Wul}C*Zk-|1eqUeYi!BvzVaqWRL0f#|LFbeYMSg4r| zW2g}Hn4A_)5ZZ*GM`h6UdYvnFo!bs@1gsFTG(d8LKsM|niB=k2>J2Ezfav7b5q{)2 zNDm&`^uCn2*xDU@OS+mBM}Bn5lKVSLxzx8KSX6HT4HO8)OM=8A(TRDhrC{>g>s|CT zmHMVcuHCwy9Usevt&@uc*@K^CnnR&hqBCY7l4A=j$BuvP;W9tML9f^KP$KXQ_M<1g zBoP_|x5tA!B)CPFXT{hzsTEnEG13zBMri!>#G!c((b9#81PG4`19O<(oYF`L-a8$< zo&*nLj2Aj0^ko{#JUBW5Gjl4ovcWJ>1S}dnABi%hIt>}a<2tzZ6Wax}0z&x(pEhbz z^%;@mSt%awe`3=Cwb6x0#|8nB4CjU#`Be;Ocb%R~u)pxiOsO@}ko zjb`HDCYie2ZkL_`@@zaN8TyRe=&aL8X9*GCNfEl0c4+p^{ztse;87=uf2rEADB5eF zacaOVU54Da_E4Xy!?j`KTKat0eoyQ@?6&c^riW`PcC_nojV&vMYmb9#9J@MvTx0ok zXj~hI!Zr8C4jXjk+Jlz%lA_VFm3H`WVAO z4o<0b*{1sfiO7qa15g}(q|F+`=i_&lP`KO;gFEW67zBx@AT%IJZ}9q6^yc7zl~O?h zp@FJ!f|EoCdbU5sV&8esA*sWG{K^NI5Kb}JYfvY99qBRL$pcKtVUb1#=u@N;a5Egn zq!NhEX?2~hqdtbCIWfdbIt5)hII2&l@dP454`^6*NxC@9S&lY<_=)g%l6U4chmK2j z%xloLyez_IP~5yLlg4$VgXg4*3TtLj`FyLaqIiZ?6)h@>R#o@1ii^t2D{8FjqAAg``Br6BMR7D*k}<7f zW;CO`sAgJGc}9A1QPtFnjH>9=((0P3`5Dz!#TipeYo^VfoL*cpvv*dsxHvbvU%!&c z{i4PB*?lsqD@)6JXQuZ{&yh*1=CZ={s%o@hs7MkM*d8=40l!7n)zPY&(u#6xN>OQ9 zw4}hQj+RYHml?_`ib~SPR-u)pj^PK=fn&5M?Fx4K#>X{Vex>ZD;OS_`ZR<3^kq z89Hoeck5^?v#$J)(D4AuCk|Ad|8>F|)>&FzSX~({E-flcE3T<3>;AiXKdq>G+T^N= zxkN!$b~?}jbX672&6rtHB9SmeOA-^&u7!BKc=)Hn0*$w^yd*l$8erpR^6cUn(VFVC z?kZof(R>o0cKX7ZMb$G<#E7bj*_8zar;HkU(nwd`wIGr50y94E`8wPK}m>Fp7cEHF}bmgnCZI!}?B%me*L7Mb$M{w7kTsm_nMK z90lTL&5o8AM=>FiL?@(ExVz2C7uU{lRTa~t#WmF#<0@uEXI7MtE}dLeR8<;b@3TBtjttzTa>pscClq#|&jj1S) zPO|0{mCcSGN!pX5)irh>HP2DNbYWg$wcTaeJB)LU6M$}w^CSriZ8-|hFg#N#W&`gt zE9OK~EKCN=np{*JwJIy-Myo_J((-R5eo6al@EgMKaG9qF!&X%^GYU*vbHQNjh8I{u z+>dk}kxtc>hWF%pFvG@{Ta%+xDypJZ&Fm^Lm5M5BHaHB65c^OD>H83A*jTH0T19Db zw7|jvCD|X+6933Uf_T`@u=7rs`Plbs!XP1IO}11__T8#1+(4l@pN#)iBrx63r`B3R6HZWz^t00$z?!E zQDsqaY0Z2K_^FywRxx+5nI!Ya&6OjS55K}8OHc>-R!k|Z znOgzgqw;=(d}{nu*f#JphBYj&)XmRgyjA6Uw$Xf&x0cpKXI5JS2F8%3@(p+RUoGlX zVZyY>r(qj@olmPW6rWbG;?oN5)@Xa<`q_YQtNe;@EBJAzJOw}Dz<&%4)baIc{v+e- zJCUBWtlFvgdP7_{NYCz=oXkFba`SWhPKoA~

FQW%cP-)CWPi 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

f)O;u0bTM`iul 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 z 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%0A*RN$p!GVrih?xtqDSooR(zF zGV^92lp0QY<}jd}ic-tuR#6%^Rj}4<#)_hBgD!71851v|ap?zYE{V%A0&)qcDCYqb z0T@Nu5xGiD!r==!t02u5P(fM%JOybtz*7*af6BB%LdUf7D7<>? z)|6=_b`Z*9AJbed0O(RDq-#nTE0g+`MnM7`Z_GRugmS}46r{?4ZYs!1CbtUG#B#dQ zOsT~N#BXN$c`gPFN?Vov=CEDbd8@9%fqF@g+x{ z%_ek96XUC)e4d6t0e|NvY2A3}FvVzXw`KxsyR`s#vrs!hSADI5rG6!2=9j@XcCg{J zA7b+j(58X`-PE`WCbz~+EkKvG5RI#6tV~I}V{&OS853=&PKyN-C%~#9pdm8?AcmgQ zhD`Q;$dwPs;)3ftPf2h330%A01>a(mJTU;Q$_S{fF@Q?)?bsvL*o4frl7KqST#f!* z>%CmEaJQO--li48?C2A9=q9A0f|Y0r6$FDpN{auCVo69?!dw(hg16_K?jvZEHh4-W zF2RreGT?&#eOL2z4(cV%<4(DNz|LD`o2s$&UnOH@-bzs^W~NHjSWd@53M&l|m1;Dg z8!Gh(MotTp+iAPq0#4hp!+g_rz5(5wwq;c+MjpK?O)quT^ApUZME7E3`5V3oka5eFH`Z_ncPksxp0;YG&*AR}8Og{k= zhuAXfP4ez;R*}5R`m5meod#)q6)MLHMD0+&*iYc@^(-I34E4J@aS0Ce*P6}P(h$%s zV!KN-6wa%>p`Jrvhk7wUmo*lNmoZj`y6yK6*)sEOD4^1Cl76o-pd0=E8Z^3r$?fQF zwm^(BfDWU~fPZIn$BqPRu{m$M)>ZFYm+#eB#UmH*?K3&f{Yd}#rx>8rTW=5R@+WU2 zYv%cWLALxNZDq(W$iDNb??id_>w2j37i52BOH^-$Eg7U1-(GKV?uOiC7I?dxTbvId ztbDe}3ai)x3abpj6IP`Gp0GGdQ!H2#IxN_UQ?v@ESg0Ei@8zIW1&A zgjTJ$8FvKRHVd9dOnRkeDSDD?KsWS+^Fs-fTT`|YpvxLaWosBK^TR_JCM!+G#D1tw zlLc1+Y#`uXrLc1P}9lRR-IKoJ2AizNW106sIg z!X(t2A_7s+vFq@3$E#-f=|`KmAKYP{O*~`1&nE8ks?R3Q%=IlV@*PR!-ot&z5cj>~ zvxyJA(6^+W|Dn$&Rxdjp9@nB-nrD|b@tse4epRuFYoJP^$2F(A>UK7vd#l-3f6QvO zVO!ifq8ROJ)<9ravt|HKZCePsR@-->ob5K_$6%RzwBhm{Vu}n9wJkHCn`&Fl9gVCVCWOakOA3fY>o$$z^RSKt6z3*4{_1V#d)P-nFyZ?&~Me z9{wK9EHlXyW5BACfNDDwpoV-q?BSI*A#*hn&>m*4_5NI~UM{hR)v-EZ*Y>*(rDMFn`;*IG)gH49ntJZfYx4 zuOhIE<4S-oYbyQL$XMw&s?mCzk!sXtK|0o)^y4&3J^LBZ4K?}&Bc+7N?ZjVh0Vn<{ z0B_>2HNczrQK8g{p9F8>mr1Ce++-3O4*$xdubD|`BQ4pIuY3#N52xu#NEW`G@M#y1 zXym8U_r!GoE}8Pv>4RRugpdWmAL(9xJ*+~;;HT4NN$iF4?OEpne4l5QL>G#qBJ)ap z>+tJe_;&kpQ2YVZ0aH!diU+#4WJ>dzO!E?v!!W1_tQgxYpcvDa_{5lNKsUu0TsXap z^|J^}JPj%b*t7;!F;>j0zR(luxtP^dzfmC68cw1(^#*i9aky-*XL7r2s^fpF7CDTS zT13y+?U7pWaN!d)umI6A^ezJ^A>hzE2cQB#FP-tX{E|Si@ss@oOfJDAeFWdSSYx;= zcTyae5FW-r51lm(KOiwssnJDFXzwdcjm4b0SS<^UNThyJ?b5tPdn z3v}|d6~|+f_%1Yf^u5tnZqms)LycbD56RC!P?GP7kz-Z-jY}PqBS58P;bRbu9HNhH zSc5%%Om8)S`j`vg4eKHU{v&-XC3|#lfIBBm+^NRR`B6_G+fkU>&IjsV^u;daG; z;39ZoF{tRdufR;-Ci3;%kE@jJIUYi=h;NaYJ;%d_l`O%|B#joZ=hg#wJ=bbLcYCh$ zVS^`MnCg}kGX6Q#d*p{f(V%X%#%J6q-6FpPx~yv^fOQVNU~g{pX)#Bem~o@ zPp_YO_DPPMIoY*Ao_~^%((z3!!r$>S1bsI`1WU(93(Q>18H%0142nR8SPKMS@+)O1 zf}I|^>lbBL0p+eoS{c-@TJ_lHPu^V2JvSNRn-ywPf_v)?te{noHVecy_}Hf&xdwDs zJv#5LN??0kxgy~Zu0N1%Fe+h_^hR}b!Wnag%;ocmo8aL%g>;+~fTF`}s+-1l07 zQ4j8YNwQo-J&Mp~sVXfB#%_8V5D!2p(^C`Z0bqJ-&IIWNAVC%uq>wqG!X)=*Yig2z zP7thBW5CXuBgY9<;~JwHlqT`YU#UhfR8~ySF-T(9<;U-_E4gxqp?0Dv<9!Kc?`so8 z-!n@+6<#m(hhWW-991BRMSAdXFZq`yIhRT#&$@3rg=row;#ArQRlhusE8cbo2cP>o1k3p`HjYl}@+FWh`@cBdvcy2q_ z+ZsgD+FW%BlkM0!SxTOQ(b`QRyN(6#Ye${zI*Rsk)%Qs-_y7!2Knm-`$&R{{L&E*?%O$`5Cl8M@F5B>*brO+mh0)M1duDT@)^!r)uFnJ=jt22eeX!~ z?!ga2Jn*nTf&hc)2K1bKxx-;=CPz0Y*WO1JPtyi zdnt~F?gZ7% zwHVOde)}CZdEA=dT&85@v?jO^{3bXFX6?1NXfXQZ$i};8!`Zzr{8q9Ux3gii8~*iT z9PFM=9>XCrH!k&g;!9{fFn&jSwgPzFt3Lbp=F9(;C z{cZPJLm6%z?d`CJG6`m|+G8NEd+k9{%3#ewo4eV)VmTKuefKTr5|g|emNRPZzJit3 zU4>@4A7XWmtbPT*lrSbur5^@kXf=$z>s|t=1K`_WSK+3e#GLU@rP`PbF&O^Lx$rPp zK_uaM*53t|U5lS1V*yWfW^l&k`1qDFznArYT(>`zfqvU9a@E(kpGxVD#XYwB&r|AK zO7D*VdZA38G7}ps?2pqQO>@$3gfaXX!CG9yc6r4vJ^P#vQhMxk81g1Dl%X|>KYyWG z@av0E2$y&6#4e;4K7>&2r`SGfdI09#ibv8^?@>;u{AySI`B@!)<|L)|nx(@%cXd^+ zrX$-em=1N`6J1yGX5~7edE4WlaBZ4m_#gOY@5g6!cnq%h?b!6|@WfXf^}%_XzNzq% z&vd!uxv4aM{{A#C;Jo!`w3m7P^$b0Oo6?5t z?F_i!HCH9484$pWB!_Kl!0Tr#b@@yUP|Q1bI_i`?0l_)4-yTX`yTE|V21M^}z{~hX zef>ci=t(Vf=Hrf<6#{9j6Z$gjss;NYyp0pO40}^|p$;F=(^1dP*Wq*TchxdHh>SEU zGUFacihPY}s7LV|&`$JcfI(!Kxf|DjmSh?JB zWzY*ygB3*%QLfm^Ref~fsS)?r;;U?3c51|YI1cvE^+=7F`<|oj)vT0Uy$Pi~hu=RZ z1^xxCeRYSr>K_w8+1v?zxKOEKtQo?u!QS{hAz|%%2#wvsNaZf%eG}_e=#ZmatsGBK z=EXd=ftw#+w4krDhn9lgbpY)EN45RIcFJ;2!FT6FhqFB>q_%OIIuY$ z=_0$?Xa<+x(7kvLO=@@wD0H)g4%!kLa|zP)azbx>301sMhc7Ns>Sf&7BK`a+_yPwy zgs>5A?_sX$iRpwC<)+8+hlWAug3odEijlC*flm4tb6hpx7KE$PoY1lZTvdX7`!+{9 zp}vdZvN=MB&pFLeBM;W$fwORkyF|ju{RBfh{cT(>dE-`4=5slc7TmuWKL`P}+ol$j zw~#2b`3*`vb_FO4(E8hz`ngVrhvU?D;$L*Q|9h@F|4IoP^*#N2w7VZDJ2{~v%N=zE zRF>gW!QrpNC5%R`r`^NpP)`3ayK2R~{~AZ_9Zyrm{R6!+v|q9iam53|@k<7GVE3+2 z*!u<UM`(8SgN{ydeh4Q5pCNCFck%U-ufM z!lijiy@1i(uLQrS6uI?L%mkP;`c>fvoND2D-FPQ}l=yOA)O;>5!d!Ax?cG4I}yUVIa37%}1YOva?_f zHr`j_T?~m?mc)B+=^7x{k$=aVX{Tyt;hisnu+THQa;=x+g|54RD1kFW*z>LifCM5V z{_3jnwmKvBb<}}-XbzFOR?HxnXjr$%bvXJyw#LnKO8orX{wC&KOeyDAYXAZ4*%N=*-{Mk(Zg_r|bNWDx zun@Pye1!)bs5|&*M}_uX;Hu#(($wrN9QRdF(yk#!ff!%zj@TMS zZu+}YyF}3S7h+qfXWuJsb@4!CnhLk#i~1XPRBFmp4YZ#zavko8@Zq6wA+yXy{USr) z*%Jl2lBDOz_~tkDtL9-LRbw8DT=pnL&y43XRW?#d!|=b?uv1PkydMwf*H3i7CXKsz>rXpf1c^D5B;Z+!v^|mE%!)goTb!rAEIqRIFAz;Gkx*i*IFV*MFnEjT1984sn z+=DUgMvneSsrSdA7Lzf=j#%fYV+eB5d6C`ms(?g21i$p4>s%f6ODCZ1*JG4^SSx%w z*lZFgcQMNx__b0qSj=MZx?s7ZWpZ`*K?;Ku@O!v*GtUV-nf^jWI|-+IlG?NkQ)0wY z5f2RZTb`c&6Zd2I-cxv2C&kGRoa*)Ok^n|-8bt3#xg+C1h+K}H+L9O3ROC-EY&MQ` z)#)z-U~Y{ZGEu2p8FN0s{inL>Zv>}yN)|pGR@D*Mu7Lsi{0!*nBrGn%q3{e>?K0K? zKX3hnMrhhZ9M+tR_)I4y9C$#f`AdIIfAnoUW?|@eKIE#~&e3T$Mfa!ihc{L3VfW!n zR>N~sY5s4fAAxtRR-CV8vMCw*>wn=5@b&x)`TO~7ihsjYEFajJvmd*Y-k-)_hyS02 zwGA9Tqs9!nYz(0Az_T4a(1vh0opzMcqjMyTogurz@q*LB$V4VQ>k~&EN;HxQ_t`|{tXDjeP2QHvi&6gh@3X>nB!yfl(6e8~V;k8!e$Y`o3EW88>y!KCj@ zM~`Hw)|aT33}qtsLihlFWgEN+yE_lIL1G>!7qLx$Szs7Ghn?hbY%;LuMP5%0=VPP( zA}q5A(l~!MqClF@njAIkU7dbU7&vdRtw`giZz`Oifrq2i-%5Yx-(9ul6X9<*5#ODO z_YtYa1Dw!V;~e!Sr`okdp!?HoDtyR=`1;xK_lNy;=uTdL zJ^g&T5jHN#Z_&@P0PKUA-FeBV*nXYCaR<9v-I#3gp03t5CR=l}(Y9YP=w_ZxbK7*x zJlw7nHD;lUj&igXvpOjtrEw|TQoyG3q%hbtNReAgvJ}?c1bzmp|GIW;K71y?tKorQZiHaapQtopzFol-C^^}cp6HdU8lM;IBG#b=<3uSRfuK=r5B2DYP4v*I+gtJG)IkM$;Ht*l70 z$Id0+c{hHhktNSgEqP}oJaeM{QEGcu{|hXFpSUgCExJESw$YJ2da3@~`P;lM7q?ni z@&YNjnkDbux#TMzfX9v{@0(h3xk)%n3&&Zp6>Pm_EcT$(gcY3=j=(1TX(l`}H6h+f zk$LiPaI|g7-vyV7ia9iLrW=pW)z@sWBT$j0?vUU=OFIa1 z`jndFLO1W%NtAmN*oF6;iC6P*U>mufKVLlid7R{NZ*nV;KIQwfuM%6q@MEsXm7OYa zy_@mt65?-}TjJPckbg$7;8 zjFkvPIn2sLYeM`GoJU4I&vqi?zQrTBSUq~~h$-Q$Ta~&d41gbi4xRcE99a!0x4IWypAc_R0ZQffE2QUpAf?Wz~jGzi@UKgIJONS4s% zLtM45&K|lT4>-yX9bYM@DeF5B)3w1jp&;7|!$C-%8xGAt1V8pZOp`zEZF2MnY z?8@DjJITveyK)58b0OMxGq&kpPyhfhMKI5p;q(s+dDK@a^AXWgvS9}-+S2Di@7MW&P=Nr|aO=kGLu43I1Z z^nvn!fE}waNMW5)gV_7n8h?aj_}zt+8n{1T-WLC+EQ7t^Gb97}&M>O-SO9bY4*-|$@?LjDWEVXvl73Z>7Y;WON=-L*CpKygJY>_a`^g3UG>%jHfqq# zIDTXcf0JKo$6s@Ut1@kyE^WdObv0Uc^PyB9P!hkFUGb?(eb-U(eeh$kl;v-;`zQRz zS79whYn{jqU*qJ+bg6Q$=9C`6@g4(HhB>h#{(`~W58L zT#5u+XD1H72;ZF`oG~yEPr$BJB?ctv8!rcN+5_1!Sj|<8hzBsr@w)gq2W#^OUOF{p z3T&T>6s!V=VJ+blQN#pO^=-adaOgSA**y3yYQadX8mi}TCr1T(pvk1bs#Q~V>=XPR zg?x(oj&eeMFilE_B4^0g zO)1^y>sGlMkE2Jg`%b5DtQaq*`|T~XkHPlLhq+uss-qudTC;q57%e^?Nq1+bhYPH^j35u5X+L5 zR%Hi1@#8bIqwjYX{rCO^f69)2)hR)8AJnxN{HL5BNbY?U&W#Ypk4flXBGhzf-F>Em z#Wb64NB-6SSJf`_A+%>C;j6`@Pp;=GYkV;uj`Yy z=Wlm`w3(A0zQ$4CzsE46SAkFHg6DALgOzXUL)JD}y*+;X=OrY{hj84PeT;!1y_Ux; zpRpcl#YMP;Jrc2{a{}j?USltn?lLgo|6MEMZv3p3eo|wRkN*Lu<00t_AJ_fQHkTe4 z)2ZhBQXR!qSDI9)jVe7eree#lQ)*ZAW9cF%_QXnfl;AlpJ=Kvmyx`0IQVmuPw&BVo zi>vtyf>(vTQiq#TlPqPWj?7|VjSQn8$c8(c^r^SIif4~=ucTo41b_O-dC*N*)N`*R ziB^}CKEtQ?@8A@L*GfuXO1_1&!}VnPayWS_!mT=-2;!hh)hRXUE+>)Lf03hd4Tv`* zhT8fpDlz#O{L-dX8!%McTojJ-w<4K+k&g9K0$?xS+6^sq1mfZN(I5LZtuie#8hjLk*I|2 zRmrvBx36syQ`~f)ufZ|6kx3=fz6Q= zj03Eh4+mL0VvYc>h8vLEt6>{KM-9`j=%`^X!nTI2rM~yE`ARex1F-aVsEM4^zc2xI z#iBG-`d3gm#N}r~LgkPAYu_^r?86DUMU!q~4~u3Kj>@&El%NT^tHYPCWo$6(9$Mkr)i& zG$7pXr}S{L0!q-#h;`v)^FDZ^%p}?g8QKw^w3m}i%!XpcmLtd7^a06tpbP~7V~-6d z4??&^hec(}5$2CQ#)m;=*#Q_^D*Z@zVDvaMHwodd9GuBvP{=Bic_B)uMOZ6F9Bd^! zmOa()q4ccyVpNCxNN@%_8SzP`hb2XOdf(`-TXke9ZQ+!q66-Ki)Pw7!eVkb0D1c@Q zPQ$d(3NU$*lStNqdHR)@E{+S!XMFhxv#DA9`P)(ed_tfSuOUkXV^E)fog*GXG21NY z?@bZJ{wac3rikQ52)BlXEXYbwxb+B6n&)hmU|X9E-vry)3cxld*v1&9CEU~Ko5l7O z0qC|#my|P(T|!CL0-#H>Dal5JMUnw_7Uf2@Lu`N@=EL4dX1xBDP6XtiRI&w(CM`A^ z(C#lTc6CQ_`3QIFIIamP9Y;b+$4Lr*$B|$&ez4Y(J~~U_HJIy^2l1FSec}_4ml%tf{KkcMU5bP;k8=^>Klj2A{y3PF zBJSm`+UB)16&-+0>t{#1D%#o=$j8;xgR$$CWb;SDefg>ZSGD73zu_5>n4VAIMzu|r z0#fq)KY%r12TZz=yIynD<*@6bTR{B1;aZqN@&7g`U#Qg9I9&U6vI^W09172X#B>j6 zqei~V<#K4%boLT_YXI{-dak+qlNjr$YuK|#IH>y~tYDGl80bRUjijTIU2LN`CInf~ z-oWK4E@;ss<%eAAKVz`lKjhMcg&w~=q=L53m{z_2c2Z5MfU`4eul23_I2z z+%}!(*e}tcu*IYbw>{;mhC+blX~^V{iaemOa%CclABOyNDLw_lae#m=vR$=3Re%M3 zS+3L>@JYvd0QBF+QRij=u;GtAi93z?02@)$Zh|F;58>y>dF#l$}x@av~|9-wTd9=Xw(}1&f7Jx#-VGzsy&he!e`RZDd>D2p7V!~#!a&J*0n_KVX=+3*bke;CM?!Fo zjJN?Yf5%WQ#SQln$7A-3_s2;glktn0y-&t9@cxM5sYnV);THc26a8jL_9l|0Fh~Kp z7)g^^9ljfp!Yu_HfVT;9U=)v-kEzfPROGRrF*UPtM+BYlZdDk5Y{SwZ{X4ivq1-H3 z^77Mn!+q-bEe=0pi68Z^?Tx<%X?bN|>>Zlx)@(ZcVnQCPR zqo7rY(H4`BL*OaHp)KVH`^JBX9O)0fiyP=@{rGm=0ps^3lKmHC7lZ58(c0h|f2sWD z+y+=s<1fuj{f6S9P(N=|z?$7h$%{LOtjV-@=( zS8t%kV0^fTLGQ#45BX&B z+!(a5pHdT!@_8R&o9hnWeP1n$302W=;7MRl!3IzhPM~^WN$sQ`4MDA26Z(mMl%lZ{ z`gQj=2`eZXs~^<>|3&>!q4p=0XnNsUj?6=%EZA>&%Chz^jtZ3H4;xL16|UVZx@1`j zHshE(b2~tvK#tgDlU#KVG`R3~CwAaju9^yQ6>fk!-HSCnG#Rn~XJh8F&ufquFOeJ^*La30{beJQ}+m=p^qIEkP3 zhfnqdgm-i%CO!iw2k3W#6HdGY7fThvj!rzWGeE5Y!AB0%6$4A-Yzf-Bo&-|AS@^xk z1S$2*fgg+1UxQwxX6HMo$Te)7(VNme5b_>gxPJV>$#c!bp?9$#O@vVi(1xro8hrxQ2 zKpz!|Y(MbH_L8tsfPwnES>L8Puu1Q_OQo#d#s|dGZTf zU*rHinZ3h>PA>7$S!&g!E>q8Ch36p!zw_x;agrI;pE*viPj5G>@lVGQr8wA^_Y$;F zh*-=#hATnTU#Cjv`qSU~uHk&Olg+#>l*I}-&LyRv$(j#LvDY|3GGx1;WvcL6q}HC4 zUb~{xcwSW4)74d5;H$;tD_M)}aV8+V{ZR)EH~H$FAd`{z&g6Zw@O}fMU!+v-V^_4J zevh^AEl7#qF-dPf>r1i4RgP8*g)v+>*v$;u*@T<6!XZ8aG)5H;bu&eaa+rLCn=hb% zV0h=G`EI7_wXsw$QH6uJKcSOI8uqlW3MH?at{m$oSe+7b8|Q|Fb;Z9|t!jU@>N;0T zn#5{B#{4)-suK5A<)x`+81LW)pEfHhQy0!~*?*g%b3}2tEQraKfxT927LH}6Jw#Sby&R%!%lZC!v-Yx zR{myy|K7^q>t^heqzRaWmd3)=?JU5l@s zjk7c@8#p{L%W>{|_3ai+av;)3#-5)<)Z`$#aZbt#z@lyBOQDWMW=yen9D*$h{ zsRH;zXB$r=WO_s$A;C0jS9rtaB3#dwjwyCU!D`u{Vz=80R&N>TVm;O>jLdrzdTD_QLM&Z(nsbM}0tT_7`d>B6vBPA;&ce!&c*;^QNnjR-jDANXnmrzQg4#8%^B8#7=VxZ_P8sNkX`{>;U0(_M%^ zp+SX?DujtSYNQhiU5tB*Kc=Zs6ENBHl91SEH|WN>E9&dv(%1rjIF1mjMok+Y{cMI0 zkB+Or1e1W9p;6Pej{aa02rdk(EP8_Kk7s09#eOiR>8R}~pHnb!w#Pxz))&D`+jF&2 z%W--oV8dEh-GHxW2;5ycl=h`EOuZb35O7=X@&)$9{|}_f07AM6#=dxh#c_A7?a7a; z^sKr!_q5up%!6e)3xg%=?Kvl0q#a9Jt-*xm&d2UvoL&9;?~Lt&FI|rxT=m8_X{z99 z?FAIQndwUqh3SxTpQPZOfBQZOviz?5B(bIEXd|ZJZKyS06%zNDzj_b9sLhyy*3?RV z^zT>lqu*Cajedi>;BdU9yb2Mr-21D(_7&Zg1rMfq-wJJxgavEU zx>NbM|HcmU{4Nojry~A#x>Dccl)K=5T8s4YMSj3B?^`6{i}6Umxp>ZjU@+t5eo5}# z`t^~5E4lrqpF~;+pbeTkXPLgc(v_`Y`DbX_mF`6E&|qt{)!pQwK^2mFTfh}Pi*(;Hp0FwKTBi;Z29)eJvo6XwLR$A`6c9_UM#H&A;V z$DWYn<<<>McVgJPMLG^i{kKRB_U@i>Kzp}H+mPA2MVgM&CEqR5TtIuzwFqHzi!}7v zx7xil_87;d*DI92yS|n`_E>b2EEKUGMUFU)#-66%unWC?ib+%L=w-y;A~xgq)xVTg zUT*H`R;1Ry+E@R&j{1utitrctgt|F4gfuM2E={)8;KC;Jo+P6_F*3{#Qi)Ou$g`4;1LI(9CyPG zj&dA#nk(}U<8u)|uG;M0`TOnPGcws-tV%dE)3A%{-Gj zRpqR$^(;Q_3SAY(OI4Pes#tw{}iVlQ_>W!FNJ=57)KkJEP0hlcgX^LxWvN1 zIphno4rQ2m+@Zbs2g`@J0EhdUkXVJB$tz(v!_q4{3k+%9$(X1>GTF+XwyTz2(Usm= z-S&tpx{7+c16W5sD24F}buRkWaYRbE<;}clEBf4v2NYpf7L9h|8*rY^f$}{wZ{_p} z?0cLhya2+KEn@OzPz**qzh=T^?ZFsvOpolUXsnYL$UmxsfX`Th9EJV_NGGLZV$r3a z0C)FFmcDPN(#tnddZ|~s=0p#w=eO?*Q>GV~4R?d{AvTtbf>hB+HwS{?7Z!3+K0R`@ zz9?UG15V~el>5U-5^*d!R4Z@Mb)G0^kj3@ksAWmbDY_vm5IMnD1hD<4MT!Kr-?R`9 zS(F)EgMPDBGLuYl?|m_U!Icbt$u;}n7Pby2E(g5@VLW;{G?4^{^pgSbHA0dX&IJ12+ z6-LDy7ilq2X(r`6iTEC!2*GjZ>lEZQc`m+#K5(%nY&3*GmeI3Z5Vkoe>^*gj&P;iv zo}%ozuo%0{V#D*VI!7F9mkH{w6b>!4q)F`V+I|NpAe>lp) z%u3~v_x)L3Sp~#vFg|6Kaj(KQRL03Dv`WXXzJ{er2q;!Yq4BCz7i z{@A|2kiqGb{^>_HfnVv2hJ-c{l)94>{OqsI0zOioekvxxb8uUqwm_}{o*lp_^OJI%=JuL+KQVtZ8spbXWF&_{1;8zj?2@t zwKBOY`rK^hxZ~s=OZu0n`*FG5_50=`xp!(%1mO7@O9B2+KcjbyB}#K#E(+!mnDj*4 zw&uVm?zOyYJPgT7RhOxxiY1^m+dxC>ocCTD6Y+d?I!_~S> zB*9H_d8Ju~VLvPMoAHK$aM;61Y&#goeh}lfd%#(J2>|OQ1K_z$T?lKS)L#hc7cQCs z{)+=Zx$#_-_P03xJcmCrlMnPY^|WeyBZJw0`!zlf2v-Ra;q}EP`7^+zONIp zGi3X>e*^;bZim#^OwGs?n*)cRq!|RMxx29Zy=?h@56q4@mws&!UVty_yL2Az{DO(? zg%94qm!$m>wW#mKouW?oKq?$%0X5qeJ?eg3T!(&5KP_5@L{XGD9C6dn?WG2@j+1mkXT{F>eDMe| z%Z4=n0}gjhPg`-r3OwAl5p};cZ3r`X5hv&43vYbrfCzWtKnU$P&Zx&hyZqM8Ie*hL z#PoG?RrCx*Bbl217>$em%K>pbKoN&loNgLyivq{!-ASG@^lJ3MA5 zIBiZLqb+?I#LCgR!;Ts8X@AwK2fIS;Fe{^Pu%Ht`B_7*KsbVw-(c#320A&VvcR6Cn z>@E(6e?(*KzTZa#z+fs)YQ(C;ki>Y^0e+Nd1-p{u|v%L~)u+fnc7lib= zhD`ka6z5!S>ckYh=<%x*^;`H-@Lc&USMw?D()Q0~(>rC^Q64$1Id(+=&JZ#H=%fsb>8(D>-K-z8FE~S!=SAtGC6j?kj|s zXJ&1STIDlbnic)DSm(jcTFsi9AN?f-_m6&vT`hUCji~`2;MiFaY)CR1#P_iiwC!8oirj;=epPksh3Ys#$OpEV}FFV=Ayzw!^?J+LC zt0BBev1J8DCqgG;TTYqe1P5l{1m#+909Ly4b9?qseE(c*oAl(wAE6{Lof^j7VcrJ6AT`4YeAq;ee2d_bMSS$&4 zs~o3OfkZB(EF((Cf+f(o5WntVO<=YeI|nuk?t{sNDJ(%H4ugEkS&=z`zKI(Sz?E?e z=q9QK=y!N{K$0&IGyvcQf~*&iyP4sI#kh%lH5jxo*%4tF1HluFyjxl1xImUi*g(Sg zKvv=m$RSn_FgZ|=TmpIJ16X+#n+SBq*@n~I%s4sFH_qCz@|GZPB$Oe8SHmg*TfXPoF_@WC&jdgVW^7wj1yr0E;IkANzxS4K0{Z#1;7 z*N0|RpK(tQooK!tu45$;RZlj}FWbx~VPfS(KI10O^2kHnjGKmmC$I9znx19ZJoYzJ zi+xeA1>hzc?`^^7z^D;!)6(RoPt$Nm&6t+f?TeCp7V>|81#3r`WYWwUE0yBQOgr!u zuKWyyG&2KTBNCsE52dAN)Z5TfWU+?Oq+d z`fWW%OBU|V}esRNlZO*V>(N9bQ)?v=rcvc!r)AR;}Cnd6aBb>|dcAIS zz+lV}(m@z;hchld(GW0=s}ZZ5(ZN-a6enC3JYpFhI*X4mNfM;o>5K~A*f|Lz;_7Lg zPkN_5yjgs=-|Ro6=wAQ*T7&XXob9Y@|Ef=BXZ|1d&I3-0V)^5<@iJlW$mxgzDnU_D z5it=Y7yw03@)4e74#lS;iasy_W_>DP#*Fw>U-GtjL1DDSs&aQuzux9 z`yO2bS%-eYX%}9KDtVKB-fG_ZbN;40esr^~A=5drnQI;6TGSJZ+Shh1;!PvDwYW1% zK6cQ$X@>n1ZA7uZMt(Qvez6WXU%+> z?|rcb^_m*Un!Xz!fMa#&^-tbwy?J`x^b@$pNc{SxObBaHhi-g1N>sIoJjK ztzP@?V!tO*$}&Oi_asK%dXe)cP;L>9?lmHLqm1&LNTenQH(vdmNNmCAc)4Def}F_I z5phEA*3~1~MuX0$IxmbWUSu2$b)}#OLjxs$d{>S_??udHVdG$^s4+$?rqH>6{h}{1 za1HscN7StGf8Q}ai!pRgBg?9BEvB@i)VaT`43g~L4CXlQ5DLAz?`8MKE4#fh%64zG z?Da+o+8Zs?8~fV#u*FVqY@26E!Lyly+Pspy+Pt28+-B=q)8?Y7oU^D6sn=n#*kv3T zKaTzEx~!&8MCwK5)uJZBihaqDu7QOCwwgW}X&75?5US@#W3m4;2}7c7VmI;MRhv}5 zlv`h>$lnWBMs?vhjU`bD_BF7{2Ep4;@%Q#uWVaJz58utUWHnM?wW@y=YHeHM5!4co zpq6+9EQyLG9sv$SF|xlg<~>A9|9bgPOb=N9>cjr*%@2S;mP%OXB zkpb&g$`bp%PLEhM*3e+GG#**EMj^}#BtNQNq!IajQ77lCdyTG{--3pHC~LzanF>pV z`H*TwG7VNqeomxFroeh9Unt@KGkFP?A_@I!*KxwOb@d_%`%R(Pmkir1eSF)&_A~}GYL7~rXu^RTD zUGjd%ZA+xiJ#Jem`2(A8dK4D@r>m}}STs9WU`6J*6wZ9u2JCe+7tU$lesM6Tur8H9 zQ;>uEn)dx~H`z5UVfNf{sI=_KXxX=w+2@A_23+qoVN%KYp*~%l8@Z&bayqEb0m1lH zOd%v(#cU42zKUs|A8LtC;kVBZbrl0D>U9x`wx805uP*W5qdc|`G;N<;k+wUp-?9I- zbjN+V2CVtg`48KtG?H*rai8gt_yCB%H$MOgHx)~pt-C2PxFW)Ni7)!Pwj3IEUdip9 zF?eR3`zT$fVwU1V!(~2Ia0L7b|4pYz=$QXaCqO9of78Yy)%$N6yo1HTK7qnHc4w9N zY^u9ToK_^)zZdYQqt9tcPrdqH{$2vNclmoIg$fIBhFLBaB;GO6?sV7o5A8c9)`{&O zmU#p=it#+vx=rtx2+9>*d$vY&1jhWrbz)g*9t^~$xeK$srahGWU}i64Wwr-ao?&zz zV$7EClLp)H8MEL4oAl+s@3|{adHPbkJ^IoyoP09y@x9#Wnh>^6296c8CX{`K&)P0C zoVO!7CpG_MaO|^v(=K<;_Vu|e>^#{n{kV*NB;4ZS`}o3A>4v`3W)+2soa2u$DeOIg zXZ?NeyQ6TuWBq!u{`xXo|Fda*wZ;`|{n626>!0NRu6+!)Fk<_@B^LBq7%8joyTb1I zeqaS#|B%iA&-e0z6x;eGj`fqp`Xyzyey(Z#;tIBY3`fL?k<(?EYyDl0^~=TjyUJ|+ z8q@j>6>R-AOxE0jzue>bh3p%G&6&u#-8gT2{~-1atAxZ=73aq9+`JQ=)4zQlfNppD zME+drq0_>d?wna3DU=7!tS0pQfk^ej(flQ>?G}nk=JP+8!mvh>$nL|PgZmG#L&~*= z#moCFs~hV(!YOyAp6`}NB2#HBhr~kIk6XrHS>TlAfQ)kNF{51VDp=A?b?atqMI;vhJ;gbr096U=L$F9jQmpa@(%uc-0sN# zrUbWp1nrIx61t-VuRB|I`>N#b$o(+pTcft<_LZ)ky~Iw_?VXgMb_yZEP9>Dl&h@G6 zwCy(DZe@lCx;gxNzJ&8Rh_Pq*!A$pRP5H7EFa9r_!E|p)L24ogxKn%qi^#CU3L{O1 zI^iqjeO}Coy@42+(T^fiz6cPLcU%eKYzXoS`k1`$N(u7LtC+so>}WU=-h0Ibt_w#1jnBu~u@CE87-?&i z_cUg~7Qxt+$!LG5;yeliy}}62_ENAvR1x6p>|6@+p$a*r zwwS#A0SGyzww!{VQd>jb@08jGsdG=MSi~ zXuUFDyNKyEPO0y{OKy&LNt1t|K9@A9DEfs7)(#!=NemgW9^~bd7+yrqfh%Ek5yIB5 zE*TmvY#@0t_A~|gMuung1rQRf7D9s6vd1p-nwU|mt>C}eN#tH0agQdKkO`iKIk{s7 z^ZBxVdNf&ub=Q83Ft>3F=h_`hse3ee3;zZ5X!4gc-Q(!xk=V@7o%QlI#K~SIHqJdz zR6?Y^L6BYk^X{&+A1&-%{+I4v#5>YjX%P0#4@Ani=Nv{PZSlR3TiCXOzOEZWT$4Y zjOLEpj@qr*amUUucGLDccq-FbO!aotx45PXLB40R+1+&E29~}BvI@utd#<3cL<^U* z9<8KcuY)b=#5xMP4sImxt%KRk^k@@ddE_0uY=3ob#DZn zkah4zqb%#-4EHt-sqfx_b?|JLAjdqd>vJF5_l+FCFksHD9c+uD4ALxg$T}$Fa|L;O z9n`V$*1_#KHW*6s;>TO{)JAXBQybG*0;z;`f*j*8pxFtdw_yhL= zl;{$7HVdJ%#65AQb7xX~iIcnLbctJ7)jdtaALij3`M<*G$m}be&T6*CEfjU3utCPH ze%+d%uz*-C$g@^Nzjs#?xpha@I5vfQVOuc_wwO|6cBNn+m7h;243iorZ(&b~3zsc+ z&}b)e&KEgy2(Eta4?%+8d$FwV0k+(%RP7@fEN)AW00=3)%9r|FFp zmTTd9rpp=%_B1^llQ&S%X=?3aOw-yF^l+sedB17eL+adVI!yALou+@HcLufgG=0aN zmf{GRrq3E>nWh&Rv$A`;+?=RYyveLAD#ZB%Q%Qf2CfvmhUEbGz7LRQ~qfvnZ5EbAnpSLb`^{rUK_Zyq!P`%E~PYF6KOo8)(; ze6g0-H_6{cq@j${!B*dExUbF}9`)WiN_~b-SP_H-&p*aM(rfy$S9|pH~#c>7&y&CZ{oQK0H zS4{0MFbDw;dtYGi%K8O{w_s>$GdN#hu+DPcD%1XpU7(We$A#^oYfMRdd%$O|`Lnz` z&Wow;H%rdc1i!`c!JqlDAMcbSA#HcjE4;f9ANH^2jDYhRqdAXSRvS*l_2(HTTh;!Y zj?pHM40Ue#=-)2?G-F)*_pB3X_LCC_awky#KJ_Dw-CH0Fy4ef2yoFxa62_NX0(%nmWZ7*fa(yp< zIQk#hB=*`w$JJ7nd(|SByVF<*x$hT5&o#>KooPk;A!OYW1f1QnunqZ*^duAM-p79HI7>-r zQQc0?^yt69TMUZCFP9W~(?!;f{)-E|dOJq1sqMYMgtgl0e;xN3#b1=yiW$X96{EMSVG2a)tDBS)(G0{8I9L&aZ0Ui?qhc+xH@EB=2`5l6@<6?vY5b z6V)D557|+_HC%xhy+! zk2!xbYQM-AZLzxleJzUSkUzrBpF(~t`5x=47Uez50jK0|uU6FTWIRT``x{kj$bzxd z$y@nnKJ7#ngKBmExDNN?(Q1{ny2EL;-e~o+U#rN)=#>DK0qwD@L8OTr_iU^ltLsN= z7-jDcO)pIBFu1Qyk(`IF#`%T*_cyUWxzLil_sNB>QqT`N43vWVL5Ims9!-}0UDdgi z`!8=08RELN0TumMG|OL+Shk9qVf12QeyCy5VDihIe5|kAnf=80$z0tLpRA#>$6HlagFTljH zW`NmcJHYfM1YM=uk5%_3Po9*YA`tCQdE0v+Z%6&KPUWWdj`|3m?djjNPU39?x}%m3 zBWN$}pHM#a!Zj6P*8WCA^I1loF z#txx-Kl={%z79RS$l@H-EIQnMNWvZN-G}m)gEu!akgTT&2rmjB!hFFe-A6cr71DTLfOS}$Dgl>FJrJ8^U_igikgc!|Jjcffpd4Lbl^O5SbQ z)yca7Xf!O6E)A60Q)(8@k0Mq8q=_)aP&w&H)W_^XGM)L)Y+IR1+6$?eRo zT%Fy+fkswQXB>EiFq~G!o{USKygeB|hqEQxy~((WN^df*7fyAelXrYk?Yl%LHe**& z?Jh@!oMZ3gK?vUMktYvVWfc4p3 z-nR^{Cz&YO)$?il1z5Fj2a1jq@H(%|nmjyz2JJ2{< z+aSd557f0h7CLARcrVb(V-bSQVnrL_by-Pjx^k^54|fb&kBQ+Iig)DD#=f&+3=C?~ z>YI4Ju@IIkLWN>or={et3{@`_D+fx!v@lmhn-&V892UAqM7E#g{G(d6mJdr7hB0Td zSa2OaI>2zrfI7j((LD@8><{sgvM{{XfcnARJQg9?ELL~S}v>qs?#kJxi zc@)a_(PYD#b9vIYqxfh^s8B4MD@NUdkHo^I$rjo^GA*=ywDlI^BYBOH?W2pZ%3jca z2@^=wQ7;27JMaO^aMH1^PY7CTz%jwP(cT6jwp-8$BqUk`2I5DJH6gfxw2$i~`3oX) zttzkX$vwjo=XZ;fuwW@h54cUcr{(=JClo(eAd z{F0#6SO)LWxM}^ww8wZnSWVmC?P-O15YuG6vInsb$~4eVL_GXs(dF99!DYkS!H9eTZf~1$~I78Y7?& z(R3vre~4x>CF3C=D>mAleiNkYQ^PHzwYobUV&7oJNpcQex3b@=Y)D(GZC}d9v=EwFq&JiR_NcN;) z!~ADCbtu|w!XvUjLWTs09X9u1ggrI)xg}tIfGY;{3wy7^I~3Ld{lnD@d7q250SyBN zg}WF2o1;4G9*#WZ1=6#paKuVMUjxyOyl~O7=D&U*oSbrtn$3y4VNy6g+@R(#;&O&t z@U(RmZ9~E}JVHAm3=dal!;7q{xo`b#Nl9mH4v!;MdH)6uykoFF8fHq$F@`;dS{Qr} z@-h>94!szTN*nP9yJBm=nsEF@R5Ct7K$*PIsY;)<&S}d5Yu(2(dKnUjBgK1;$riOX zoVy7DQM~`uvB$gbRjyUo#;kDfnC9=xfED4Smje3VF)e?6ygQ~V_^(g!WjXLVhM(}W zGq}dZ$gA&jIaB!!VRTHm=rfMi7ciX1WHpZL#j$yafBq6~@@Mf?mM*U>6T0Xo;%A9) z=hnC1Kfcn*+b>h;LrXa%_Fksq5%gs$O3=Tq_CM8iwg~4`$OJ>Vyzs;;+sdyW!pSe; zu3g7&S?xcT)x4$iD&6OkT6$$^nLmM;T?2>gh-qOJiKuooKc;R=Thu^9R37Kp)B|FK zSN25xg(z8hL{$Dik-a-jL^k5Ax;OG?sjA^@IceOVQ8;E7EBH_`gK*B+pcUZdS0nZb z1i!7#RIkGItIywp&@B|mE*cQDUXj946nefIv~JUyCLdbXWm>b5PY+%BiQDEBE}EPr z1!?ntJc4xg8*a^rZ#njpg48ts&9YwpKey&_o(+6R3Q`jo9JGe0w9(6hRxekYmDT#+ zmNkWw$s;-hvI>9VS^Glr?E=9px?-OdxYForkFNsOf0^_nZi@Vw@66Q;sUC52PUIte zBy;yz{4}Cl)yQjRnO8l0>y~AISABX;lh_9nodz~RPL}o|ClZ7pCri5;WjCZ^;ZvMO ztT-a2R;+4)V+K}O)gQ`f8fnPLi4-A>=ypW@GprX{K5`Fik7kc?WK?yVuqoyKu~Xc#Js2`Nza@{(7-KYKbOsq^9i8f~6mN7|C67+) zq|te;OrtXwxs$~=?&!>w{2R%mLpKvf=Z(#c&IgRnVyAiG-dMMsywB)N8O*98tnTP+ zaGLpy&TJ;%oieK!on0GlW^_I+a7X8-$oJKZ(fK(ia=q&}9i2dFpTk<>#oj7;sX2R(Fyt&c& zhS6!~G%q{?>w1v)8J(GfIbR~I?&!>Ln)!@QaZ~m-?wWi=vAf&fQ)ZR>-ia%Ct&Y92 zWd~vx#hl^UmHH7me5rYz>p6Q7=vFoQj9G>OJ}c|}zk=4kWho{AuHz(g_1tLz%UnDQ z7g>&qy#uiyP*I(FdwzCA#dnBo2f+=2*hgj=hM09KXQ*KCVxW*1@CdSgUPYA>BnIXg zWsQMd5ql_7ycjqhFAKq2KMx`XlpyQpH^hLJ)mCD==7;a`NoN>@VRKM=5vf)@v0sWf{HJ#R2a4Z?eL z75jtS*}FQL?LZjMzB+Lc-GirIr*2@B!Yrco+(2kX?==v1`_dhys{@5s6$Pzgk#`M; z({*J4q)@br{ffII+zKnQ3pKLX%Fv9c+br71n4Qwp%AdE|*$LrWYecIe373-Zg4QRp zeI zxoWk9%Mzok;nIn45gspGPGT^G;Dt-yq$T6eGA$X$Vcl5qpBpZ-B#+rnxQGHfT%;oj ziw1;E_qc@x^Ep@SN+>)F3zt&x!o`zjhsza&%PQe@!)3kO&S%}|`WJu3WZfWKZr)tD zoEr!^le%WG@R^#t0z%}~;>rJUbg|lQ6x?uWDS0Za$ce_#Y!WWQk^k>a!{v*k0@f6F z_p*zuF4C<_jkx`KlpD9Lg0X(QVoU0|@^6i39n6Vb=&ICknQfL~h%Gd1vcsiga=5%` zgolL7V@6rS<7jkE@Hd6y4;3!UB!QHxD1p$W+#PJcuJT?vH?v2ZR0pK!U6a9J$8Zn!LW+igBvf;~9nklUC;yWt$4jW{eA2udcm_QTFS zh$DIh-P^3!$`au2dTJkNS<9GVBRT}5i!OF1oXoEgdvVU-&)UvV_7g&zJ5n~G z7d?J5dFT#K9=cDBp^~9{%P8y6RpV-a=XMUPqx+9_ERk`*Zu(@!TCH-H3^}_pV((y; zXnliFx3@f#ZpWqByP2K&BAN8=fME1?vv*ySdw1}5?%lygXGR=I@Aftbb@vRgNRxu= z_+uTsh+z%R=4X?4@h{|D+^N~TUHdXCeiy^{G_+6UtmeO=oM0IEnD>E%y{Q}cc>K*4 zQr`TVEsBJ!pgB)#h`e*Y0r#O&j}#=Vp!tk@8j1yXMqM5*q6Vp z-T7x$P$RK_zL&pi!|h%EZbzZw21o+s_eT6YL%i7+((KvS7`m=4y}CGEIrjeo-WjlB z>W^J3N3HRX(>2r)KJ;+s%-XTerT-pu;Mk_M%Gmc|X5VL2Y~O?Ic&+N4&T?+u)BY~_ z$nEd*PJgA|?(g#f*~CAEXgVqD7^lyJT6njh2=ky_#6@yB!VV9!#XW^iNDV4ZY*E}o zl=R~)L+}e?Ym?!)>;lKUbWw1lG+#n7>!;T^l%bRC&!~H6)y)ah=Q_8| ztfV%xqz&=@0|(dfn+iRry*$~8-%)$nPFus_*QmY9?6eKAZ*!+v!9Qgdzs^B={JU#| z>7%^|owC|-L`k-DiPAoP@M?d3-H8#YmG#Z8JyYA>bZNZpjT|^9wmtdac-wmky2Q34 zIHxUxCXx#n)x@^L4~(~+hB`ZPS#TViXP%~Qi)J<9O;IfDCE1M*5_dL%7 zz45@$oAW?FUk_B{Fl3vDVeob0CvhBKbN(Q23IffVDo0QQ76XPb=UY1nD^!W+lmd0@&|IhQ2$Vjmi8 zAsT;9?!`74$43dm#Fg{M>*FI;qND7sDhF`lLf2JxcS&up;uaIF?j&jnbO7$HZkcH6eH_e#~;6CthQM;9p~WHId9K0?~-p2drh|Ll{{i{(kZ zND(2~dnEN@n?wlD_9l(gg5%whYGnm)*kqJH`M37b3d&KtJ&x~kPl&xr$eL@+kz%@J zu5~HKvE80Y9@r)`eV|6;VBPQh>nDwKI~sdnRvNunm)wh~xT(VTJ1=e$jW>+Y8E5xm zV^S|tL}S+uNn^21qH*me(U{9g5M5Pv(>;q9Zzn&L(8qxooyJIw-7Be&+a%sD(plrh z+rw8S%$ix4l}0bB@$hKE>bFhejhmK|_K%kypU{hzm}T}NMZC>O?!`8Vw}0v$@Jt59 zUcrhk*NC!$i;2d>V}Mr034L6UULV(Qmp=00MW+|@S+DIrzWcHE(OwyTPU^*h_`>H% zX5ngKrbx5uR$*qK|kuR5z?DFwlxi?t;`nMEz^DpBz3C|&7lNjT5 z`XsD1c1>L|%M8yHogOH?D0`ik$l}0bB?YBL8!R0Y$UU~dz@{+?tf3i4m6P`=T41ci*ApNq(edpRn2k1mzX#O?h# z$?@DxWM4VIJJ9(Cy3Ih@W7wxB?=Nr}=0dj_@vsZy5*k4Q@Uc^r| z4h2I>SFJ(}a5l^n_>&>2ps%N$l9%~)8!ePTKHET1S(wx3ego?XtkK-WQK{350Lz9kBkyO@TA`9B9uNwa2XpTEDMj7B^ugNmWGU zaJU~`WHX-=h#rW?rQ#wK1kMdq&)Ul+oGTh<*3OdK$%Nqtw!tInXWsx_%1n4G*tA-X zlxq(_N7Lq6_qla)Pgt;darSpcIdoTnl`DVcrSY!9VC4a?80sIWVdV=$JCWA1VS&{4 zAaB=XJ?1v0`#eEeoGlBDh>~*X@dBsmFloBG({z?LwS_L0nl?_&O0DsP$}PviwsE0S z7NJhEZ}q6MAE&?$6wh9VBzXkBO7EL3>n8>vbZ4N-qQL>{e2ytX*cp_oYvmE83c${)wmN52vgXA%*T2`eY#A6aBqofC-Ya5qMTj6WNaqw)nq zD1j2)Yf$*@VmUUe*OfQDFP;ka2oOiOp>|1bd{|VnYCg`aN-N~b< zYKxH%AIqN5Q=d>6`8BTysEJ{-B7sDD7^UxhptS!i%)U{^F;OUBc1UXq53 zH={v&%~EXzMmF_Kkg}M-&;Ebenx zE_LO9T&rwXzK$!ELDnB}r7}o4WHQ*E!IjEjdqxl|1ki)EJ?tcuLwVsT+3jLcuY+_Da1c7+S=Ju$)vgRpfOvqOiYHha`l zIyu83=BycnXX3}KqY)SiJR7w3;~!6`ejsRXU%Hd|E;S7Up+O(;m=?#8p}hm4m9JXX z1j)AygiIbYUj}|FbVgU6bQ6uI@=13?yG{FVe{Red?X%Fnj#WrBUJ(f0n$PC~B+nBl z29Fgwp_^r$Ee+la1nup8jNE)7d=Lmd#tE}xY4t@QWYDefiuD2O9bu}1^CEN4;@!Bo zSi|k53;72?qy$<9qOwo9n0i^3gLQMFm*iX4wUq5uX-wm+IYv2L5-G5v7-ZcHhqMfh z&50JHN6L1KMzymFjdJ9jP|S+1VHlr5f^pi7OiV;J-3DHv`tc3=1MoVfjmrDY)dTE{1Zzgu1s?{nLe6yBcL%ea;hbua~vv`J9}A1l-S(Kcj9|FY@6z z&PTi>9m28PA5c>Tf&>GEhFKd7LRMGe$BIs+QEPbYk(*tVRbrGy2rO%8UJ8pn*sm2t z&xd7^Ho2#6*6BvsZSodPo`q!(wxL%FqBp_vjy73PH|t8H>^50UKaYn6qpZ-2RkJQO z%F)M&%bX3=R6B;gz8#6KL_njtakK9+%C5i%k@O*s*@@tz=tD<1bgmt0l$}u8NSiKj z=v@22D7!I!CTb_cqH`^muHLUrm}`H~M9XfIc{F(%mfhIOTx&*?cPQ&zt7ViOOS?e% zNQE-j+8bq8=)W-jM_BBA4s-2fqwI8MJd|VMz#x0B4K>OR2QNghIx}qY?^Wj73OEK* zRtMc-l${oDV8~D%Xy)4UM%gip*q#W(y@=E`HNcBc?DHY4sXstJnfe>q2HWQ3zQVZ9 zp=^(u6{w%J${^SS%?nK|>jGGI5i0{c7x_I(gHeI_%n#fMuVaVR70OiBf+6^})S!oRgAt*khh_pJlyS z-QHu_CoK7+<<-sNkMv~zu&_4^t>Zk{W3O`D)i+=(e8AxQh<))Y&d>y|3PhW76d?*Z z#;}6(a-t_dCw&;SI=mUzDoc@e z^AL^%ua<*9w8~$6(ekEfxhN;+E95M2Wxhv#xgqo9RlJLuTeGw$rp$+L30m1)3>KMR znldlT$;rk`>s^_@Av1em+|Kt84qCbIY+mL8|K;<7yhL4O9>{$2?EH65P7`FdLyq*l z2Kj-8%th}Z^EG4+c069nP-@@Xyc@9Ua&}Q!@+Savt}D*$K##R zG)uIO>y_V@{1Vlgb2OzjQZuqweoyj0YYk)ZYY`7;%2>Ge+-unL-@Aj>SMFFe=Ri~X zc!$_?b571=rOjxYbsmrSxTAEj zsqMC$oEwm{)YW!5`E@EY=V3~g9LJ*VZt}(CHO>MXIXfidw;65WH36&C9lrq6+w0q1 zIXUZ)(^X{R$!E!rRhc>8Qd;0@`-uEft)Xw99~ZPfmbo<58Cj;FH?qxN=9NV5T$Nl-<=JbbNgtM3Yf+Wxs96zV3#g^`tXO+0VMNCHjL8=2)S_ zIK4VU9PT!J*J$|CSgtrY4$ls=!io#tk%lX27+P;xZN+zP!wp8mS9k=bm*cza{oRJ2 zNW&*&$77tmk{4!%-<=qUpBeg|*B?yc#6ox!Cxa4d5(@roW{q=2CS2=M=VVsae9n9g zZ^wx}6l5I`kx1=?GlQ+=XF4ZH!uvPoRYtGykMgBJAUyldpmi$)7I{4s*h0;!RRQbY z?cFxN*y!YLjdUx}A8`eO(W)fnYBh59a?9+|tl*J>4jzGJ zT?jRD_QzIf;d0cla(|^xD8dqo)$nA>Zi%wj!ro0G!pf2hZ1Pf+P@SASE`3=`$p>#M zu(IVLVi9HkpQuwe_b{Uz$u=q{pG^@fMy3pwqSuDnp&QE;0aT2KSV4lRa_%4V;CL>n*`sp)7+l z|2ZarT-*zCl8@i`b*J88%PP3%e)sC#@^B!b;5<5CFfrSa7akp!=I&MUwj8@@v@PT) z;cAYexLP-oTQpd&x2TvZZ{w_NlCN+oj9D zwR*H&s%^UVRPt|momPMQ`Ki41esU}6TOJqn&+{CkHTaqf_+SB843+^+$B~!1%YoEs z@}ui`>Q?!+tlNsFr_xj2`ii!{Qoa+vI!3T0EGxl_kHU z*}t>cqrUaCH&wk~yGr`sdwoe27ZqKl@n8lx1!(f4p8?M`-~%x9 zGv&4{Kl*5R{sAU|*#^J%Q@1Kf%ewu$(o^*>RsG-9FO~h;x%LmK;_5$6&1FW^Xb4{)dI0MWEQ@HkaJJ;N<;9So%@_oo32W|y@!C;_vG($#v zpyexRa}&^V<<^;}etuYjub$>^L%;fT={*>W<&0^%?f&lk+iU)-U;Xs&==Bw4x1Zcf z`j+?W<&76V|E7}b*RGPj1agSarplKKCTD$cPjPc17{UBsd2VViPqaiw)gRY=E=nDn_O~UsB(E3#L+3?N* z*MJ+q3h*d+4ZH(B0U~oxbaVu!&Vhzrk#iOhIoAP^^9T?*ZvkoF!QdBO(R)1*y(@v} zeH(~g;T3(Fin)2!;x5K>K`8{z>U@#1CXw^CD<>Da$Y};dP8T5U zZv&cySM=sV6TQuW=sf_4Uf~sen#A`n;P;QgU|vbkmX~65mKS5VDGWW!t^b;>rcBXm zBeNe^3B-<#;3rTOTWW#^pc&94d`}zospv!C9Ra3;Q^9<28Mp;31rGp`8AL}Em^ybc z^opFJK;--rh@4A+$hi|p`;fseyrTCMAbKwaqW3N!dWBc?X%gSJ!tV!y|9}|J%QXU; zq<#pH`on;xOwp$y`%X{~*i(}5=8YXY=B75xEZKLpl**T84s8xTfD z9w-7L^LQ{Em^#m*tV!go03zoVAacG2A}0q(`ymFu@QU77f#}@`L~kxUqE~oDpQgjB z;D4Sdy`(N%P|O%yYm9@`A6zwFZ?@}@27M@UP5`3kI-tpqF1&96;T5|yWs3eOvcChl z^q~f*3mO4Usp|dO{pHFOSuG5C>C(mL-Ksg`v6nF(LZ1cJfdKW{peoRms{VAheR8{W z>6akq8gLJI3_K0QrW)8%4-|vl4ZDQ@Dj@v-1;YOv5dNAje{+NXYU)J3@U8@p0?{LF zUINla^hlf5M!W9h?+5$hvx5!43H{bI=mX##xEcOT(T5^?9GC^p0}H^VKvSxEzjo7+ zA$20_YC~SS^oMEtQ1yUy2tGX4@T1Uw1O2Ew70d?b0!^vve|6g@w@a5^6`i#~8?Zk( z2#8G!z-8bnumorl{+dAe_Xfh>9SHx0K=>B}O|{62eBs>>bOxeF+Vlp}M)XLV8-b=r z$+zdN6hrXY7{hNuZ78iXv5=SZ;=|JnKMH+1cpm%+{s6o{OU<@Y)tACA?UUQ3OFsu07l9?Hgg?*auWRsMNS(+R-h07)K=eqPr+~B(J<_I;(QZHTw}CV9 z*?ETFguXBhdQW(JZ-zfp^nS=b9+ZO9!CBxOpea?oU%PS0kUEjIz>t?NeHm@<=D6s5 zd}tmI3H@u(ow~{3Brp?bN>%@r+djEny7Uk_^Fb5P9_$UornA7gU_Q7SXcGQhApEU? z@b3qN|7;-qmjF$9j0~w0S-TqY(xo3o+ke&Mm=>SBX!vC`^l?Dw4^;qN zWZwxabhiTSKu4e{Rs9`q`{Z`%(jP(2D)1)w415j5rhP$Ia40wmXcGRXfbf3+g#UXW z{QJ55hZ+1&Qz!C;cLVqoh#qP43y?OVN7@{2w39LU60F7dZyWx<1lr{lNMDHTCEyY8 z0{B0$4roeM@7L}>$dEdb^{yc=UHaFw{T@8Xf3U}m|6!S;2WkI~oqO(JJ75IH9Tk+T4ZoLhmke;a5LUeS9J5WN=y(R&*Zy}~Q{G>Okg)!{q@K5uLI zUFdrPp*N@iy2zdhJ_i>1YlB9h1=t;ElKO9f)~BMM1MdZ3F}NA50FQ#T;7#x$5Se-C zs0vJ-?F_vl=UgCiZUiFd5g>A22hu*@;1^!edlL}7D}m^J1BhPX6@8k-=W-6D1HL`n z@UPIv0HN<+0d$eQ3^Wqmpf~6T27%!~lhn5WTAzyk5HcSHYr&h~EARuzMn+Xo8;HyU zz`?-OIf}9-k@GMRIj;ke^BoX51wh(&HTZ>B^u7T^@Ap9TR)I(K3a{wX^dk8~>IJO+ z`1W|ize3+H4f@CMe+rW2WQx8K*}sD7*i;`h1}%W5RP}!CqR5ask+r)aFJ1bfwCxRs z;KLIPKc-6`PuuC>3UHGlCtZ5?W*q0XVBOvYAGM78=?Lh@G-r(irvptw9|k5?5PdkZ zPXlwoD$p1`-3R+MFtKd!W5%?AS1}tRcy0W^n?G5?^O_!73oF8t2ehWzUPp0T1 z`!4V(cn9P%7LCAIFdt|tE8lLk*&XZwI)R?xFmN~+07T{ja4EPFXu5{{Y+@in44ej@ zZ^haGG(AB5gFx!57;%y*`cufRgZ>kM*ijW7#b6iE#?V(*zS_tTdCBe5rME`Lo}e2T z00sfEu{}0*1f4-o!#?3}4}`xj5dNV+`1f%64>b7qpiblqZ$HoB#BW=1F z?PQF;2JbRP8;o%h`iE)I&x3c~X81EjzYW>C*q8?bG<{ zOK@Ck=E$D>X9Aj}o*Pr_`X3FyW{NJddxHmn*zpti6V$|(2A~<(6=)K^l}3Fk`Z4eh z1{1+_Fc-`R*MVEWG9WT@&`|(Poox)gB4;2FIn#j1xd4cqn}M{?HTZ>B^p*nAI}eE7 zB|!8Fujtd%a#!|&pb+0THvI2LpAGMgU@3ST97dadMmw!freEi_t0=nIa@2143R{L7 z_6YspH0Ynh{}o7n|#HMDT6=(xArKuRppdrwds(zl^KDk}G^y`sxJ9rGd1YQMVQ!{L74cdavhF!vcD-ix? zfbhQwgul7V-@)L&jXIGpyf1<^K=eqP^+4K)9%-|W(e7yStHG)G>}XLb@b>`1e=HFG>w)ku1DaZq7x}{5 z2lNG^N7@Vl(nj=1oBM&L|0Cb6E&uQF*)4|OguYK2^!MQZ5G2dV6#a8#{{Zr_sV-;) zngLCz>iyaUkRf#Fy7WG@?cI(w0v|qN_)+NRg7-ll^)XNfXi8Ooj@v%DUApvz z$hjFj1fByg0kNqOwloK=K}W+b;lB|G|C2!YUj@Qn?DDrY_-~?4rFAe$-c!zI>KU4Iv$es$$0hfcT!L>kBs(Qb6Gm#;6 zB5R2uFJ1aGv|ZhvbLRN)1H+F(&w@S_%mwqoWk6G^`Y628KDk}G^m@o>2KEI#L0=#? zT@9`SH-rBGO~T&<2>(Gq`1=9jzXk~Z?Lbpg@*-b&yMrD;^hle5K-!2NX>&Kw^bvVE zX59cn9TMpqs1y1(hChWr6LgWW=N_z=;9l@NSPR|+?*mOze>2efRP-+J9s~w}_v zA~**u09OK$xe`19Or0N5)+BNc03v4)5ILnl1Q-W23135?^{MFhBKraG9QZ%*G58W#$jAcKfXM6)dI3}Cc*>eY&V4}S zyaYtf=Ro8{fVA&n@C&c#eHn<}FM#Nc!XtWxSM+HT-)HU3e?WZS+VKBf(3gRVqQ8jj zH^8^x7oaI!y2#i7z62smQ@Zp{_}~DrKR!6j@I$)vH#)H{?Zdq)`?FsKnyN!<0!D)g zU^aDE8uhKA9S2?luYm6R!V9LrGt=M`9+7b>I1LEz>p*x{08OGpc|@kBeqGq_fh|p#*Sithq_3Cn$37Kkx(uHE z59Apba5d0$5czY#FW?Vw+#$?Uph@bqjq-%}rh%rehq9jmO}cSx12m;eKMWa1f_BK* z-;k3o{Y~1g2cLnj4LO;jm-V?l^~2wdzpVW!D_^Gkr25j8m#ST=`gHZ}Ed1JU-R^95 zSG2wA7u{C0zMVzB`a`$r+P$^ywpLFneOm9gO;>Lve`cT4PaYRP|CW`{ue~2#<@(iE z(la~WnewNOn{NH&YQ1j#_|m0kT3)*PcNYF_(^fEb?e8MEeub|vSUZntNzffpM6@dTR*;Z z>6w<7uKrB%Yd>_GDY<@fRF7``_$ujJKEBPg|5ToC{rs=>y7l8rm!4^P>FWQx@~dBU zn{Gc-wbOdt`pMUN-TLvROV6~tboE#Amu;QO^f*#YYo954S?x?$pUO?O^^=>bo!0xc|GUr!^WNrZ;0$mc z(4_s>t_o+U6D{1a$eNB(nAX8_MOf;~WIplP3@ zdF}`t35J4yfKs4I_3JhjJ#q~9cMas;%VT+l5oq$G=fmF{dZ4_ps!1)BQ8+Ygk0vEZNJG%z1r1a1H~g9pHa;05p!&@_bn zP%sUYg1O)va1B@pmVtY~(_j^N3%m_9t;d#);0F*e{4VrQUHY$VHTlu|)AlSd4=gt1 zY>7S!zHwlB694foePS8tFC5AJpWr(XI4W-E9P;zPLhwf!=o+WG)&6Q(w@Uv*Y#YQg z%AoJyxZd3;w+Fqzu|U&} zXLoY_`HX$*q1<~5h5=0rp@)tmoaT+7I1oJ1y(hk6zw-m3zPl)b8=;-1<42!S!gEvLWAFQY!Um#7O`J!5&Oj!v0rR4 z?Z24vZQuvcb4k)Q0+&nW}_8+dmAjc=lYso-DWBA`j=qh0z1WuWf^&wk)w za46^l4hP2oku?*D4o$+pFA)AifbjPP!aooQ|LH(eMe~a-V!zlT_KPiIzt|%7i!G-8 zNBzz>b--9K2WT?sCqO@IE9wW+W+)K($?dP z58zjz>F(h?QwTl=p94)>qOXAOVelkKZuhTAJVyh*n}V#Vae4J8bDRzafD?eGEzujm zw+m>Q#J@Ru9rV=)yMhj)+fA9Gi|k_19gGCi!Rg>$@GQ_&R=($H^9FbaY%tpE{!OQ@V7GKi#SvE$cR2da8Ei ztxwmUO8%{z7dlR5-TL{ttnHPrymEHb_I`HlEcCLDk6(YZy>9*Z{OHWzovIb9fwqQZL9iJdi>%gRl8L6spO_=ul2g!Uh=lJe!qThE&cZ&Ei3vH z-ysG~!0wsO#D-TKY7I}f>2UJG zKLZH=RY3S32EwnYtb9XgGZdTw&IC7r8^P0H70^^xzRzh>_?=}{=UhNj<9xuD=ob7D zX#+HUi=1D8&~wW`FM_8YXa;(K6TnQ+_Iu0f4K$UNPuh`|0(gr|OSiJ3qS0OWyun`ThF!ccH&LgL@=T=J^?LJJ7Tb`TpQ^ z@b5Cvg?BKR045v!BJ*zWJopGS`6u^o0ZnH8n$6UI4edwp7YNfX4^(kw>~6?WKEL|1 z#;e*@UVd$#DS4Tav!mLTss5!aNBxn!^^=p#r)59>Owmy<@Z@zTkK;3`_!3!5QEza51&(DCw=kGw`vx*U)pOgOh@hR|Gh~pZdN$CHrK)UJ_-ydT1 z_XTvW2cxm&Y{MQudT)68fTO_CU?|YGbIEJkfXpwzkKhlGO$*^ z>Z>SvvRp0u>DBt=ZMyv0-mje>eQVqK$@{y~Q~4=V^_i06HxA{M?u9+f;U!mtWhb(&JaZqtX9v{i$gGR{G2Fu=+u_>H2+Z+oh`~U4FGow|?!*Tkj_~ zQ*^b@Z|kSWk6-Dj+EsMD+M(N2`jk(%>GG#)=O@pPuJUwSUOvC}nWC$m$y-19$$VN) z#b43&YKLx9=~F)4rpuqIou9l+(KD@I<@s&>>{k9%^{M#$+NVobJ-YR4ul2euFP~rg zot>`!@!R_KPx<}o)1{}9SKj(`?Matk?ep9E$y5GR^{M#$+V3oM?VoP_?AChSmX%NW zlecAUUtT`H_7zP}?yr{p^lE+bHeLSY_FDFnQ_*zQuUkKTTCdwweC4fIJ-YRix1-T_ zR(n&~y|dJ(vU5j^mvrq()xT8r>FUcAzuKi+Ke<}3+f;lNU9WcNHkCf*(`~x^Wo_pt zcSocD-TG6}{;l+v<6-rKZY$dFmGUc}8`fAex0P{G85e)2c+kFNDy}mvFH?3^%Bh^U z8k@4MjEBm2sEh~8GJQ}vFPu4H`owRYP@b)=_iL9fy}Wjmx4qhX)9Ku24ITt{2 zKUKd|)$go!r|Os1>(;NIsp|dOrAtqxCsXxhm6M7u-Tv)p{Hgkvs@|_Z71b`4+*I{` z_Et1Km0hXo{p_o#cB$m1s`s-uU3w}#<*iTG9zXu_+L5ZgpWbxosq~b$K3#kK_{(cY zs`h?*)1{}&A+YtQ(k?^?GHJH zck_VVPUYP`K+~4!$HPAboCq}ii~M|W6}Sl`%PVjFa%8r^zWu-cR{?cEvb^%vtABN?dbO0=EK9_icgx z40WG^FMy^W$^QlNkWq6p^2%G^44GGfrQiXesqGf%2T?a1j57Eql0ON|2J=9&yzWS`^8Udr}9a6ix_b@PB(x7?_gy32vk9x>=by8=87UNGqIkpB$)1cICKLwV~b zBXbT|0+seaGt zE9rla>o7W=y7e1Zt=Fv|-_B0g{^{1QKij+B&#p@P-(y}@j^nl&$5iupdyRwI<+t^- zE1AE%e17dK>HpjDSvmgOX8d;+KkK@)v)QY5>vm_cztYYfd;WEq&AE}Y_=W@68)&-K zhyFD5XTi&Ez4B{Z>b8=;V~@LzlWr@=YwO0V(tnQMD*aID2U$Zj4s`3cuB58>Yv)H# zC2xDz``KMd-@0|T(r=Z1(>X2M?Hv!dPYYOgfcwF6pvjN^5pn&!nJrXu3Mb0?M{HUC(qYtd1u*n!{(7`*nMGdo}1|tu41P0KAPumfVRJq{NiH+*7-+LzZpB;rf$;UIKQ^r z+U*o%4I8?tyx0hyr7PK#p01vfu>tFZaa?BrZ-aNh*WerQ=RbI^3rss9wVrwSDu{2M z?a4I`=4b)7jYRgh69ZP~NdfCUeEu}P9zkEKVS5*7Ri}~%yMs31I*_jYe*D)XYbm%J zJe)zfe)`Hve*|0J*n&N8QkOk#Q$O4{9XjvHE32OJ@;$+Ly#!umpFh~x&%X@qU2p=l zjRt)-`>O@uK=_{m<<);2YwfwrF_kl&82pA<((<<2Udw!b6R5s7IW}sVf&QtyOl_Yf zHhS_Nxf{7w_#a{=Q*tX>&JvD+N;w8nJ-c#jG=^g%Emv+cv;VC0W2GO<69e-8-!DOV zWK_1@{xMje{lseUHDh@d?+8tIOnR}8`4L=0+wQzqG~M>;^8bvk{=7#(+m-NNaW%)7 zM?>3}XUjW-8;!Wkp>K78@+WUQ(Ed=+1KUs72KFcG&vbb_eYl_k`Y|7w@0}U<yBq_zwzGI{>kOP-}M~B zXIgJ3e0c2tkRLPcza34Up2we0<|6O~_(q9r1KeU71NA}E`0b{?^j7e628V+|fL*A? zZq-Yv>dm&pX*UM&H`Gh1>dWe16}Y|lRexPF^+6lZQHgB*=x?9RxiAo(!*R=8{^Npi zK$Fl5KoxK(&}7mJ4f>ztHz(&Wbo})%j*DC!Dkqh{D)}~lY+mV?M8Bl+N2+>_!%Xp| zl9Q@_d)YIWeen~_)u+IC=ITVy^qkD^_qBhiw(6$>GW&t9;2%JfAAMgKg#TzTM48$8 z(XFqF3fhb+88Lm#(BUISOf5MvP(9GRN?{~arCP0eRsM5Oo$7%BwJa;RPassqvO;aF ziB&>X_RZTbQk-X5;Wlu`qFrk%(Xt{90__WhI56+n$T9Flg)pF&7PE}{JgLuaV0jH} zLXJVOCFHiTlC|UsPh4oeXI7q=Rp1pPd)tI6Np`|h)#J%?c&a67$(s|XV_DTbwg_br z9!ruHIRLi8q{cR}Xj4vGW)06Hc7JQeRUBYzsHN@N7g|wyv_e0|1X@ z)$^QV%df8uOr8cw4RMrZHB9297q-ETl-U`1ms+gc2~;ap{3Hye|R8Z zqarKr7#WuAc+nZp9FO1z0b!(JDh=|qQ>I(;4K21>LMg%Eh-FoY%W+18P;z)=LGF=H0kF<$7!gk3E1inbLs5=XSASG1YEc+u|JQIlx4#6=yo#EG25jyaK| zJ<%?3Or?#K4V25lRWo83X$J04?LWRxP_D7ibGsE(43 zrDc_62br{s%}wrh((bXWUPv~%T#=-EeLHaMeYzP(N&Eb~xMLip@jbd|%Tz+&OC;TZx4!JG99{Ykf5*C(k|N96xSi$+PWQy{yN>a*8DI zTa^OY$lq-c7(Z^r)ZtT4ZaZ?))RMN-rjBeodO|68#v~D^jUP9%r0uxUlBr(Z@bTj( zjkH^wSTfS1dSWJ*ZjN>I=y4uvT)@aljW^GOFNTgPnKC`j=XJ#Pq1W6aPbk^c z@V2I(JWg?c+tR7S$CbuCl2|!>)bPnLZKisfF&ti-kzExOVh`VAB8NfbGSlqO)nkF=n9>P8aWivlIO6^mBdj1qv5t2J$<4*vQo_QSZGMI zaTCV~IoqgwaxFL6hD?|& z&B=`)e)6R0rBYz_Of8u{*OR7Boph4R!q7;L|A7-H zjVf`o(@IK*o;ZBGTXI|SzYXS*V{K1VwX8{#C7Oi?t@gl6KCTItaT7Y1{7rtsaN7+WCcEPzN{633qGagwiQ^`Yvn8O% z)rceM%eYa)?a3$7i?9soZq{Xk=)_$T2d0mjG=0SQlA#Qh<4sJMcEY&HLr)qzZoKU> zEa5M&G$c2wWTflK8uWGiq=`-=Y9^GFj-52h9!#nx4==?C+kxmFMa^5R1S>v-&|F8XM_}o zo}aiN8v1c&X{35IbberTq_~F^vtJFJ8z`1cu_OMWSn=lUK>R{q@mYw!Si~^h=v{t*w%$+ zRX3^sb*X1oU$}`!a&kkT1&R@L+01V@sqCIx?C&m7nF(vcISggZPdRz=Qy>tD z8MSaO)IEgyaVQW8Ky}A*FQKi5GbgukI4|^2(LnqV4Lxy!*S7~ggX4LdBYS_MVv4vr z*e(`{Mnl!IOLf%Rd=A@_HrxK;{78Q2b?f$U82($rhf%H>T70TRQ|Cy2G<5&zog)Qp zsVxkho4+C&dSyx}jtSjfrI=ufb%yN@+ls5Et+4G3=VSeBQE+)M5Uvubn;TjbAinY= z^+Sih8V&t=YMW^2+|Xg+Y7vX*I(0#~dZb!3v@DceYMb)N%+ZluX|f2wv8_SsPF`3O zqQR}M0T&cB;EGBB#XTx+h`|*Eg9{>PP*IDD`-1*I-+O<*UtV4k1dHuVJJXT;-tTvp zbI(2J+;h)8=iIsJ;8t>iWbQZF(IP0pT%u9Uolp!1Rw}=9cWnn0b0~gSS)6EYF5{7EEq(?-}{ilk3zA(;lz**V{uJuHm93vKg|>Dvm5a@Z z?P?AY_k2ms{KR0#XJNfd!KJM?F5W`D1huox*hW1zLca*|G5VrO6_w>yuQMeMiXAP=?RNoUY#&1W1nxxlrr1zascBm_B5cAtO(%#+x#%M&uIc8cdh!`iR+U?L9-SO7@}(QpedmM<-ZGvI z5fBrz<3`41^dw;i=RA8#MTW3j50*};r+t|6CE?(j>L%LznmKvJ&B=R{w|!1p-JFd0 z+8J3dXl7Q&8^x|GBPp*3gVU6kYl>bomKtUt*n7s9*ifx?%N=9p&)F^d`7x^{^e|OI z{+-EnBHL-%Ne5{xsD3xq6NxG>c9fU6Fow8^9pXe;SYn0kV2~G!Pjy{~Uv3JP&GWM3 z&1jK@=EKRLZDmb)AnAnbuak7tL!7|ml9eemM5}U$-&?)nUwMa)gw3t4A@*zHhZGPm zXK8c?FK#|Rg~63u6z@sb|1Z8t8nqoLlQ_A8wJAc0=WF<9T6Vm|T#^mHKVMU)pLKuj zuapKY;2UCfk$sC8c|AXp{Eh6vGKE}<(9w#TCRfVhCa!^YE;B;J-W(wI%mA^U3$agq z1H>-$5qskQM#L@*5c?E}T?k^I3J`m%5c{MBe%3Z=Wi1T=9lf>aq-7cX581h&f^XX#77+-_#YS%zn6p`2Sliprev85Q3($BZ^ z%e_7~u@lOVjYJOgG4G{Hy;x*KamL8cLjmX`jn#`i5y@?j6qL_guSdeXnia1XKxRo! zi{6-~u@ZSGFGbQ679Wp7-6a7t`!eHco~h=0s2fePPYezNL3| zeGo38j_W-7d2wQ$%nA!USYi1@=+zq-GuL~Rdto9g%3Kflo}C!klVO88CZo{o5gCz< z7CSK|G~VWABK~R6(4W;CGYti%WFYVrzV;Q8v;salDc-WpI&`pGuv2vYL>ibe5sLcS zg{Hn6TPyF!2{U_Qz2~tUGQ6gmGHH#?5k`4eO^TfeOYX9~a@+ReiKz@4p3_aL4(h?k zj8WYceCVJz+)uA|qw>@wwp(miqjuNzTsAQ#^#UW{3(fsec7=2>zE!idteZ1swRN&8fVe6{ z1zHn)n3XZcR{LS37aNrEVN+1USJy%o{E80)HP>*Jc>?stu=m{-X$pR0^7t%L@8w?t z8I5azH5%JFn{g}KGF>aT~0zLmXIaje`tSzW?&8GlRNg4P(7g%Ux#a#Dl193dh-^jS9g zzD=Nx*I%P4JFO9k80`LI<{{R2QU$*dri@S7^m+kk|8h8e0D55 z^xkG^R>~(vz3!A4n=-cRoe|?Ob8jUwbEzZ25VF%)sI0bdBim--i8W*gv@!E#iWdcDS)|;r zTk(%k2tDI?u>0;rs0KlE4n{(8&)F>T;+|A=cj-ApQE=nfK1P;G6&ZoxD5~-bPWIx6 zsGnLJ?19wpzmr#7<>k$enIDwO%JpED8r{j;rHbXF!pl!Z_t2y~o>d3#lI8>KUcJU`J+InsK-p&Hfi+N6f$E@<`aG?As z3t4!@z8zncS#pw$R3x{`IpwM7qNl z1;G69iNRPcmvtPh6~~JT(Ni?o_fIJ^6RGwrG85L1nc0yPf=LGxvgHK_6D)Z;m|!4l zYs!K$XuVw)^6Bgn6B(WjQ8Yuu4D-!u4jE!HpiAhz#TKNHAMpwv%f$rNS|A0gkJ-K6 z+u>L%YTJyj5E~PXY;g!9j1BSIJusgv(#^en|Y)r zwOwS}FzLwG8^{-%xj5hrQ-|zq<~5RYI>d$`eZvvkWe{7w4yY>3Wo^XPB+47A9H;9&4^!z{dr=1lO*Fb zkBQniv6x*p?D<2xfiY)iOOkMk&j|ff{KnuEUz)i!&#{RY z&HNRo_~u=tCs=wn(mYQ``Jy6-W>vf-(qD$N5ctgj@GE`bhnQ9$_*>h6AMJo&pC#b2 zCIbArYSE1aSG&>x+HYV@ENWr9)fu#>=A=RUBb_`i&dHAM>&4mJn)oITWGY1>-^0X` zQ^xxq=0+_X7gm-^c1_DiS&qp9bEW>8cg8d@H!wDqN@xaCsf>?@v^PYiygom&hDcP< zOU9(sXw1ByS5Lj9Ilr<*4PTkountu6T^}7D&1+*CRDOECI#Qu4{J*n!t$OCoG1{#H zQ=5t=(`=xkZKdzXD#?ikH^YzR_zF`v!?)$iVz#rl(=WZ<8QM~aTt-4AgVfw0(= zJYPy&F;)yzY}SKQfzmowLNX1Mn0dKI_EUKGoV=v>QyTpacuRUCvEZg+Ro=j*j8pcz zOip>Cd)pD&!CuTa4uv4J^4S`|0y|gu<+L9D7vF3YemI*CJ0wN|pbp%8b71)O!l0UO zI|@Hc=R==_GZRi5BQds(N9_Zo^Wyjf8gk5n{1&Z}P}a#ZFm-+;74|)|hhzlK1#d?i zaX`9clCuU(scg25ZO(%v%oCMmZkfr@6Lh35)jmAA2l>AL5DaeK%WBA&)|CYob1^&@ zVu2MX1m(q^0m6^UsP?Y?f|U?Uv~PwFYn|OowGN5)HccnUPJVBVzt5PP&BkmS*ZKgF zthYL|wo>ZcUU62l5C60k$o$yCl6IsTLOGk`WDbrG(XJcf7#1_XM#h+-jnNWw&!5WZ zX_%SSOJYX``}k64CJn1MQoSJYJ$9`ruRtyUPmM13_BRWAmwUTo{E!_GMfB$JCEgAb zqx&;g^Eu1tX@1SJR$p6h-etp_ORah=jQh(i>V50cAf{4g(h3Uwm86gf5wKR=zN_N2Dr@@jn(JG#80oiEGEJb^gFS!54okJ^mR z_an8wtKWKPEB`ZvT0Mroj`0AK1Qf2g(($ZUIU7X?BlzL?WY zS~zs6mpBr{ge`;x=2Bn>ozx^M`5tew5S;Y|ITfSkHc}MKRR{Hs7|`KK@=SVW;%`P$P68k39NR89^TOn>zY9+YaF>$3S$7?FfFi1(LJ{&(Ls2JPZ)GkB3p= zwlE#K@Ix@@q2l~+`N85N4 z8up6_O`|9LF6@RXpbav#F(t&(98;MBiGK77zlrV`gdWpj2`WO`ol5D+h`$5`2s*6 z6gm?I!?c9}@ni=W)D5Dm2&<_$UO_Pyq&92=Tt$_eCB1aPKY9wIkwBhLoNZ`SYom|% zu}f(`%1xazrNs5wcp&{GGRMlH-;F-8!j3<9ahxB##i*Fe6Gq$EEn;=jB6o=6@lnN7 zTl^3|LgD~b{&e&7hm)#Kw3JDSFr*210y5xrMz9iZI*DxxkopKP^IHCqH0-gTr3oC zA~ro$lLc_bzHEsoOV9dLU1m-aa2)nf**YP6SEZR!Z<;k?X)=I1fBHNt<5tWR&gA zt&>W1y1y=pF=HMY?Qtz`#~bSZFVar`#02~G#f)!nTYX$k$QMp(z`XY!jx{++ew6dr z#9!<4^+^(Iju{;IzP0HTM1~PLBioKimAF|6 zTY1LL*exB4?we7t)lJ`cOmUN1nZ6AiQ!stgnZ6B76%Tg)-qrlo0|NNfd!2Jl=O=x? z8!dAa8g@R-O=x2criyw2-LJ$eSY=@bIrnJN-X33KF7DRCUs=fgN%NSSa~&pMZ#QZB zaJKvKrax)3gGmc}eaB7Or`3^RxLA5uL(Ve!hKqQZCIyxnDi887Y*M(%l<7dF_mNG+9tCqtDe91 zRPXt$I>P@r7KyU8yJ%8#w3|%HYqL0!m|fc_`g)mTfdZ_svpM{S@z&v@#hEk54W-c> z{MO8cxvqsZ6H24q%qNp*XJ#$2o><{@ct4}op8l-Y^UR=$3LRH8yD~h_sBNY&)Qq!# zL2M*Pj?D4I-Sw1grg!sXYM!RhtFI=f zH`U-;qKhd^5nY_6qt;I+m-0}izqCy}Mnlm2j8%i?E+c=H=1Ani|gP42U1+ z$=`Yf@!^oGPIKw$Dna@(5ccA+%u8Z7(Fg{51+!GhMgm{WhhCMG1`}oa2uTB=t<66# zE8qmEX6YPn9pk~ceoc1rH@HF&NQj5T4cYOcO0N$Fv=<0Kfs^NDmoOqs|Ig5IPdp{~ z-Q%8^d2Dh$_6TzqUfn%bdb^DE@*_igdISE$%m0nn=OCtm6ZB;4BCp2|lkhB|Cz$Jg zfRn|3KfMq>}qCJ;OB+4Q3dYuq7nC4=6oXO^bB+Siz&rH5JS)W$aCSKd!(y5hP!o$0v+H7b+l0##%m!w% zrzdaX1g*flZfpd04~1gL7qYZ?a}^YQ8Op=`u*opQ{4 zmjdi=n%pXQ;gYC4UNzWqf3S^quyXoLAL}qXR)(B%_0|i3&68Sb6L6l-W)+_UlRZxi z4}Yl)i9H4f1&FaQBd`~S@ z;2JLDuV96W=VjMN`bTu zP}UCdUVJJx4`)$sc_0oq$oG0Wb8Od_zc3@+E4_mES#um)ZWOUjvnS1c70t-6=|PVl zWS87M*2|m6F&Cr`Wq*=gUWp9CnIWbb7?`x@*5C1G?j<#KM%&C)Si17jT_y}^CK~Nz zJ)UC)w7fcErp{u=(guTC0ZaA*QJbK{G)$?(Goe`_x-T98LNpW2Iw%h=qL3Y4ZdQE5 zvKp;oWB8`_C@myDw2HO(b|f!hH`#=-_&9r`>=WVUv`wp$b}Itz5#t&kiVNdY7@f z;oYIbgI@zcU486I+;qBeh8+WUoUae5V=8Uq>#_xv+UB_09NgNW>7M9FRW+a@xlU1)N(b{vQlPW^n z?P_vft(C@Zh3kid_U#BS`P$;58^S*7G?yUzK!&ywvj5iU<6`(nR0Y`9m{b(;=p3@Qx+#D{XqPw8p7{=%DYiPH>+rl55rJ{N4CI# z!w5jDNfOrq6S^;avgEWoW(5&Bg zL02H<3CJSCCg@fURe=)~$cw~@Y1JMpWZz{7i@b!Qczc;E3PqiJn|n`CO!krHgY0^k zF-v4yj{_FXUx3%PO0F#kOL}|4K=xxR#kcE6^GngS*#j~+b2PB|Ob-OUA_$)z5ZDAB zuu`{5ur6Zolv$EZRt20HRf8YcRBUF5u*PHA?17h{`o#SQpP;_G!{ zg+o_Z?P)rS1X1DP+h^0?4h(?mW5sZuOh;((g6h{ezKtziKfo(`!0SDZAGl8z4fYEE z(~NKQiiUVQk4Ic2(d#etimW4l3Bsy4$-(+8`ym$F*$pG?V^@WajP&y6$M=cVg*ne#d%rm28kT_(ca%Ojo}eLjK~3_-sOw2ExYDQi^eoXw_yFwGvT-F9DlYY(zZ8 zn|N%c?BJL=I2G*=dQYj3mGT1Jv7po&e4%?+=M5a|6%N#U19NZFYg!m+2vf~9|6wyj z37{Jg%=x2mMTANGU35}VbOr|$FnU5m>UBq~Y^CSm! z`xl=Tbb<#WCCr^?9;|853v-5XzrUzvp*+jk5I)1G;K3VxVk5kR#xqfc<~V%h;yd6{ z;q^J!EBqc&)O?K}o%W)x{R>h!)WHcYUSVrAsWok0ZJF2mk#-yhAO~UUV5f#wkYK2X z&0CMT62pYGf}oi4t{z*6U2iYW-lVnH8l9)J7eeERO{M(nw)`a`%(t}FgCcRb!O6Z5 zu{Rt5>b!k0+OYAlYsm(i@B4{3Ve@E}nHlz)&YNA!)iyDBn5x(+<_3U(Ew#H{SHIGXxe zCmgP3g&%0%%Jwn+ezldDh?EF+h2_YF9kiU*?+`~!y!%IAOl;7{>A+VYPqPm&?=(`5 zVa&^yv0#8%F{YgSJ~^@v&ZQXNOkDvjy!=PKg{05R6$!`9rDMU~8oP(J)2k7-lhZZ^ zR8kr(-ihf(Cz2b38B7z?9F=q?j<)J`hB&g&;fI%VEGH$b@m4VT#xh?p-7LYhOo@25 zETYmN-5w%}>8g@mt!1sDz3heuecAmt#@06!-rp26qTjZ~&EjHxmM3>>H zRzEA0->=>z%u7^&`sFo|Q?dhLA=mJ}=J`>mCev#guyU1kAuSY%uw`jsbr!-itmIv! z$ZO;xg1(NwoA_HMfnP#@X@c@i1pa;ucwZ|HfelB%beX@v$^89TYxb>oVxJ=EVxJOL zk}m5^>LZpNX_^dn!g2edb*1D-Bc@e<(LogdgCiFz&oLL(qBh*bu>U4Veojcf;hzr4 z(}m>g|5iv|EhJz2Plx20Lh{u*rQwLo+c}2mS8DBUvg7E~It!a!wd^u&QaV)V2nE?* zGI}t}3#*L6vb)yXtpNXjR({v{3Oh+VIv3#In#SIV=q5X@Wcha2svY{*1Ur{ZeR`{9 z`8FxkxFxtvExW4a8ZCmydCs{a3J~Oxiu$8)NMj z(_EIL9cFj)hIW|eaX{V=+jN-}Uru$&lD->eKAP-WKyEdMZjBP#mu<4FTIX@9<#T3| z^go3k-$2!4pRKQmCDBJTzlTzj{MBCa@cU1G{B}By_mHSMp z=b4l1c_@pGt<=dflEi;Ypqy`+;~kbcb@GrZEYc~QwO|ChVG4d5AJaD3TiA+Azq5-W z-V=)MYj0a=H-x|LTQFMR^X?IxlNz#RKKLc)-9B>sa2}bd#}3BwcRE=Y z^Aqv2WcT}i7k0n72un5B0?}*V@UH)RDkr8RMhMXmf{c7W2yJ?p@UU8ctqE@g2c!|1 z@Xo@3hdHhWGu?DDEBn^F4IIQ{^Sn|;at?!Iu!Gc-KLS$+v12;hX>YS@+e7B!c!#H0 z%zQ7TbEqEsvNLi)mZ2q=OwOWpvLC<)a;b0(cdCx)^crS}m-E!ZKv|}qj#S`K@CuL( z77+HC!|G`m>8`Xt*O4ov({ENh_LG5*W=m-nPfQ%lkOObCJPxKMR8t*M;BPY z98KYfm-|af_c!O0nL*3Ui5z}UaRVA8!`j1H&2~=CiZputf9)5soezi6NYxSy)U8gz zK$}zv7Z};p?ohrHq`4#k$Oc{k*!Ae4Xhu(rwPEx{?Z@DM^GDCoOxoye(x@&+?`i@w zqn8uOba6U1SZ^OaTB*6g9tA`4nHE{}@J=kU5^uZzjV!V!%i~0|eXa=XLr{p=)#C^D z@q9hLZyztvBj$q)8?4NEmQ4Q+wpbxo2GO=vuDu0ddl_M^S!Iq^o9E@71J}xLX%(JG z{^~@SZ<|t~1GB%EAvVplI7=(&y5L+WT?Df#g>r>Ffa00(DD9hSnDMFUM#kU-jRX5z zA~;*d_vL`3(d&^iOKYS^!@-x5I4HEUfzr9P&d&C1mRzgaWF(*F`JYy_`@}NM9H5uW zO7UDxWPc@A9LRc$zAnFB>|Azse1n^xtz>OB8A)^sE6O2FlBCBv4yXGewfmM?Zk@#* z$FJGms=w7bPRmvp>Iyhzmnm=_GSg=r>{tJUX1c9o(yc`4D)K$EriLi}XE4&4OXXBP zhe7*P`wi`&TZ!Tqh2rb}$xu8)D8A-zh2ocm;;a72P>hEedpoE5u17~5hJh|$o`dL3 z|KWT&e2oONE|W9ak|EbfK}yT|`_ zc9m}7&e+L@r@5JMu{x7i-z%Q)>qa_--Gj{AZYtlh9yYx&Br=fOFiY5-pN*z_w5GZJ zMzJX(tu)>3rtRo9!yPG2eF^=Jw(3B;i_#hA+)lmn_sOVN+h2`pcUFr!b61pRl7$+&s%Xp?F7O)^wTH_1ppThD&I5c^D$CpLJ#LxBzTB9g~)%f_5W zzdo>1AA?O@V6Z`7f60=W3^wfh3f6mttLEX&i{hS1trQ8k2!Czv9K|eALFZ3kQk5iBQatzoOq@XS;ukmS9l&Je#!oxH1x5b zc!`5N?>VnviRb;qdXk=6n-qI*&hnkW!}fIh4T;tA*$afAMy{1?Ojh&HTQA!Coz1sgyfK zLk{(NFQ6gFb3AES(_CEVc7RC5qR_U2!g?wkBFmm;7h(rL^ezDittcmicm_kVPCCpH44j*;v4I@w z?fx5TvRO~Yrke4oO1;XPfCa_{OWq*wIZj-ga6#Xr&g)l&g{p)`pQ~;$H;~-ES1d9Z zI%=uj#4PZJW}hPoBJ(xRV7xrq>vgYJ{7ZU#ZL*S~$*V%3FbVhB;G7E)H-#tjJt+zH z-<*tu#Q<&Yyg_V(uKDOENTr0*3OGVjgh}F4vQNNb?W|JJg;pX9_^6u3!`E%xz7J+9)>sZ&iPL>@}QZhL#yb6l5(k1gAAMyFWK9k{o&-bV@2 zC^E9ASG-c<__=BYw}1?uv`GgSgsOsz=e*)E`W$cOD^AQjl0aP7+pzyyN*I{GVgdvr zl#$qP%s_mw+I_T|=mV7o%S&Zue^~YIBUSptrh>m^-fws+=gD5|cCP_Vi+TQ@O48iSM39tb?xTyI#T$%5ON@bU`C$X+47vLdXJmUh-%qra|~eE9}`@$`rweF4XC@v0ML z1?Eveh@0yr#s7{HyVpjOW;|@OOPXjh1kV+I&&zq-%iGx-a4a=W z&z4WQ-}YM3((Gz6^Ey4w;xS!psQ*{=p+O($<0b*!G6`S_%UOV1a$g+(OJk!!gasUJ zG98{sQJ}Lt{(WfkbC>s_Unwru6{a8D_|U{Av&gI9FF#g_G8=V=0zJJ!O5YfvFVh)Z zPukQ^vqHo5-&}9sJnX-5a%X`AO1YzMWGwIkIWp5TewJE)8Fwhlu)qD@GOvw%nCYri*PNTDt`R8broJaj=D0Tc?0jh=*s$w5DY z?L}RX)R_~}z>pW83ae*viIE8F3(rpvJ0#E}FGi`vwwy34wLP9*gLb{uiuKlF$XBSh z7DED*702m;0`#~aLOi#l2YQLaz5MkIvX0neE7}&J?MSVAh@b2(p3JV(MBPd{KLqwm z*>TA68kBs{yDqz|^5FTP`bcw#JGMQ-1!*19z$E9JBg%;kj*s;Ys6xZVZVL?(Ay8Qv zKRtf1*Y6-N=TI+inzye4{~KMT`(Lul51xl(Arqu1K!|l3s~aNW9Ub^iC7eb4bFY@h z#dekCdTmw|`?yGt5AmqMewrPxXdA6n?@49LXpivn35sO2AGjM_&qo*0Xy30v8<-lY zU46@p)KiBE;Mf-S_9$&VP zSL<;Nk5qRIyq?RQwDT+H zwgA?H@9^WN_B2%orf%DQD&eTZ(D|hxqgHyr z>4GNYr(EjVK9GD8zoL`USbV*0=;nx)0-bzw=LsonU1-^t?Amn)iel;uVd^*gLOw54 z=wcL5w^;dF?!~*Kow}%OJ&sO7T&`eqO@3&v*HYV8X?W{}jb`k_K@-<55aMl2huC;^e>d_X)*`Yn$SC=&OG7pR* zzlCb=*#;#8MEqUA{n%U$#F=6XFZN*TQ||pMn>>46&;xci&W@G--@u_;E$l8uI?sH8 z5Y0!-y;rTcL~uN`xQFZ(I|7YRAuC`v|mWgIh3@Uy*!C1kWv z@*sQ1Z}`?F1kkyDJ-t1R%;Kuw*h?nb=cTE(%F`I@qO8>j|;Ogwb~D7dZgP2Zu8khx!!r)J%KLr_Bd`9AoTir zc~87BE-sp}q1NS;>1+P1?eO#CM06eBmTM)tMM~Av<4W})9QP{acA$Rdl8JESbzCOH z{H!NELw|^Lod*du0hf($ZV-nl%Dlg8CWX9zdR&RxQG04@O`IgcYHjlb@{}NEt|h@w z0q=Ecd^Iweo!={widaQM(llURvwbCPU!SV4t7&dcoE%dAQ={xrSCO2$FUFJklgez# zTRhb6tAT2F)n6?Kh-bp9>t5a6Nslo@S3LQKRg=qQZ7Q z*9$3hiPx%Cs(y*cFSQ+i?03A8%Tnmmd@;dU^zP8*!yEC!_dC-yOX{o9DyVPwH;OH_WeF?$>SJ5}+>&P4|K(8pA~irMbjFN)2AK3 z`UdN*gY4_C<*Sv{(mkbse+^%V+O769L+Vl*g9QAr6%3-AFFNA|5w+zIOap0*mEMy^hfQ76 zp_0F6(jlOww*{WVw$|d}JMkgzUs8(Kl zR92=VmLV=diIQ=ArdrTqsm->E;~r=UIsZz3HYx zOXiDxQl7qLQVy`HF?`UiIio$AN~b|4OEhR>uo`iC)$A_BlwtwijGe+?IkFtP6$lmg zA%FX8qwz2TinZdaZm6NM@ZU8li3>~)IAYTHs3B-sYPIzE7-w24wTy%Vt{d_T`2B2g z)d*HcwXNP&eW*FyLQS9Lo%Sh*;~Z`raEtjM0J?fyIqPdVf9;XXs}ieMj%#*Q7B6)t zIh_jS;om-SiQGFSu0ZRt#MOz`v3117V(6A_-ADFK2}+ct#n9!6=qak~gp@3)t|7OT zNZzVKPWNa}K@w+!vugjw49THjs-iTR`|QYc(*7W*8Yu0kmwwM!K$W3E}G z!?w_SouZjG+4&f_=ns`P5G|Smi53KoQ*^0hrOs26q?!%If^J_}A)=ylJQpE*n=S}- zVKL48wIWK&ww6W_*j9-SDd(+z$BnMv=O;=u3^mQsE%z(9x66vAVcHd~!EM_*C7Xk` zTGVv0cDe0|@)>7rPnP%^#+Fq$U~F53KJ-_i8{Q&uf8N#F)W+;un?C2Z7%7Gy`^&`RQT9)1EZ?>?snm=9(sW}~ zcf5$cwsJ!waiXOOwHK0FL|!h}sj@$Cd2~jn?d8nQtWC37o7U=R2$f{()D5Lv?1cA8 z^^!jEPHnq0YIi?oPJlc()dIL$vEoZ7*~!~Vg}dEAS%Wps`P@vYan@^dnuc5{sOb}$ zE;ZUD&^J(uB+|@d_!LP{yx}?V^H-@w#G$hQb4<|<8?Lkhh#F;~z1Cp4m+hPN`RJ5= z_uD?~i$7EPEIJNzOW&5+m-M}E)633f`?9QC{5NEGwK4J)Nh>VZ`m2AM<)QuRZ?~QP z@(%%Vl5XUN+L2S**i$ooy1)E?K4FW?e_&+@m{QXys`Ps*>$In>;>oYm(mLnKjP=-& z7Amv9er?l!*JrPT5cQc?{g;j1}owZwAxyA`^^ZHBI196`yAYwB&BT& zMz;3*zdFBZU;S^Pt#pyxe*YIJX_38xjae5PK+b{!{k@AFpmtYjOF!hK8Iz{9>p;qI%@fppiTh1BAv5R)cD zPFK##$=F_=Ch?ieE|s(lVp{FV0xtn{$(D&Ju!}j3%|Y^^Pp3D^M%*bmSxI|m6um-| zjLzl^<6Y`(Qk&dz;B+=rRp}KU`}TxP{mJSpQUIW_Yl)-sJuD5 zLYwmDh^Is6&c+c~7QRk<<4}Zk?K3VnZYMalYNZIq6%W<7VEfx%eUrU!+tfGTK4a%e z%ZGUBnW#l1+MJTFOPgzL$HH6I=EUGK$@^yw>Gb<`(k@(DBow=EUvZbQ)WGN8OtEX* z&TkL9JOtdC;gOu|an6&v+}O9aR||!=jvM>G&L*9%qOS?ffSUSzGetJ(tFcMjeLD`= zo9xWpJvlhUs)vfM;%HeS9$TPw%L{CPx|4PzA)6NFz+&u6^?Iq=eBrcu^OjY+U>Tr- z4v<3o!kyMStIfPi_a{rFK%V1aoK-2`5-I+%g2R5@#+`$cp=pOf5^pRU&vb*GoQ-;u zGg0f}%^&^<_n5iG+1`%$0Lf|Ogd3&v6Mm-G@a^;IZ-)nEn{Z9) z5tQ96cw3^AVh(ec=HcwsFNV8F4#y6=slU6!{#1JEPvp|*LyriqZEh(>h#X7Icm7j)Yn^S@f-7Wa!kn6$itcIN zsnL=Z!NG?1W>rF)d#klqgPg@-z1M?!pC-0Yk87gcfp=K%?UDY(2yKAH`g0wz~$Pm1Xuc?jfnr&Xns^H0b2(`)&_zG|| zkd&w8Jk@(YB<(;}WV-+2a!jdvv{c#zjM1n|qCiy41K z7yg|!U38(VWXlqVVYaqD6xdmG6uZJXgD)Vlf!5}QiBcdRY#LL}^K7b32=8B*^>CtI zC^GX?DCO@V>8z8=eEB0iBd0*3MFm-(0wIh8qgjPJ~$A_uCO%Y!11`prDhv6<_FGOPV& zt`C~oH|S}$C10EPdyPx{eZ5Qk{Q?msIADZ{zrz~b;lQ~uSp}8&`)Zf?o2o)Fw`q|0 zdtd6^5;%o~)!qrvHLWmdi@bZHKcxKvSl;#hQ)0q%_*Pykx=LK4$9$Db;D|4>8l(G( z`07%Dh}=JDsL>9JSSwuVm57V{<@m22=kk^F^Dg}~#TDU;+w6-zZ7*(C+}bjnOX=Wo zISVR}|ITtJtnl`am3#Yf&4h*lS3ZRM(Eh|*d>4v)2xmvUKOUr1%-+hQYP`7Lwx3t( zWJd_+DhuaSvFIF!{8u0sOA29`&nUz76AkF#Cspd=0#*kF3b24Px=r%VT}12qy{mgK zG9ZGKfym9woFbjV?Jqt)i9_8fZfvLGd}ZZX*xzk9>Geo}yT?d7BHS$|)?w&rUg2-N z7#{hz*CZt#00cjg{h5&mm3R3Wd29kyWRGl~8yw1kut{-UcL~;JIXvB_rziC8W<4#V zmIWXDKE(JP=9I05iMU_ck{`rx&A%hXCGO#l6vcs+(Y3{b;-$h4HK}JPY6>6)f}7@x z(%!gvo}TuGiKf=f;7vHi_1=DUT}*L0pf}4${(4nnfoUi*t-zOGi7sYMx{0`59@d(rNTLgU2>rG};Mz1f?QXVd)@XJ+%5ETF~ z!A)F-#fw?hR$YBVIl(R?vWbo3Yp6Oy04$$8B4&mgO86c8ys9uLAg*>?$)^m+-?oq= zMZ3gkKD|xp0--r=-!kyIxdT4GwD|m81~M~e{~TgJtW@6?G|r4>qOrj?Qw8=WK`6|| zRRp0xC5|c2?A{1d4l$pdV!70~--YJ$Q#Pr9Iiq_?td$bX(3xYhSyt7<~5EG+&RwLiJCx?GH9z`R%*kh33>TuKiQHm#FoyaWgNPNqx82 z0hkk6tN+>|oUb7~v4tU6Sk52AB21}m9EXPQqw2N}gIFABkoR>LhS1MX@l~k<0u4x4 zSoPq7D~R+nr&+ML=+_5UtvfGN>%tl{t$xO?aCL6_uJ8cO*7c!^6&AlbDE@3)@yL*( z=mErMP#SXuAt9`6*WviPE6Y}c4I|$`u;2lBO)u7l;YHM!=z&^Lt|duW4}-F8cOE;q zjmXupCi`>E1onZ1erqFgKj*f@f|%#LB-;AU<|Uj|5A>4e4mY?K+(UWID6=pJoJZj0 z!D@avQnVgMUVx8Ru9Ea$z*Sv+e`~F%&J&^n)ybysKQGoy3w_MJ6J%g!>&DF}oo(GX zk!8d7T{iua5*6C59n6EaYNAC99G~RLTODVFvn%nbJcw1QTfK$#B3+i+Qqvkhn&d4L zb6#yjzzlrX>|4}xtCHLQhnSzo)W#COb=%kQ?VW*oePb@h+5^<$tV(Xugd3cS4jH)i z*X6ZD4=~TAHhKRt#mk>1Xw7}O#4Q1Bi=br^HR;62WcD1%jvk^g_0Oaldf(N3Ai7?n zuYA9lP%e`}kyVC)=anIVYYH$15Sgx*Fx>MspmbU`viw_mXFE;-J#&7uLWP&%n7td@ zUm_idXc-Vja@p~bjKcY6gg9IijBn}x{PC^R_+~Lac?m*mwg#LyaCgOFu zHC|5a4(nBrUc_pOZ$|1|xNA7@X{;f=5^*MU18d>#X1c*9l;6rPB7%t|FmT{&s0KV$ z@L(^4y}}SwInUeiU{ot^{IqhM`zgVGq3HqJut;ikWQ~}v5XKGF&{bNYe3N4f@!npM zeYFa$QC#hg7)My;Z0uqP;q}PvT@&W#+GgyFCOpcmx8Zl>dXxw;?k%i_(&pioe1MD* zpO`vc=K~6@UuWM!*`Y)YtKaXMzl#*oDJn4L$4~W<$LUGW}0ERgFj1#CVgHyJ&QB44Ef<3U*FT&ocJ8|JqX=^JKh5TRBTY?#9; zH!%u!^SS=!^SeQJJNRaZM=(rAM{poIB_-qBcNyQ^wM^&;$(cV8X_pr>Z_4CyDVx6? z(8I{Hx+jI!a{_A1++5|yeYA3Q;Rw)rc4eJK$%hGR<&&IUmzR{iZxhV}<-jE6a?EmW zSl~C;I+VF7|6Tyw=@9K62_NEu;O(;R+Aa@rlI!r`Z4)xnD!+06!prc>gZ4|j3Sh9m z=0*c`I1gdnE3zE@?bN(Hh%-Z0?NC&GvOw$KUU|#nG7j>n5 zu!f%c0I&Ou1^KKPi<-7IrG zXeu(SSKBu`9IS;dh%6^Q$`PlkHGe_1oA^|cFyH`8#3K6?MTWKmXA9q}L|hM3e<$vJ z)u8SxYy!H3Ssd8k)XPkj(sj+<6Olt%tmm<T?p$}#s)FA&A z2N3R+n~B>9=5fCpA_r*bdjfRymjHcncYh{6O+|3I+LP%#JJ(I;C#e?yw`=5+RAcZx zva=fb0gYJHH}@Cn&12O9sh@dTNdZiDry%F=FFnQlME0?SUjI2pWk3_OB1E*BsJ zrA`y-_1|1v88d^V*!-?ZE9+oJ{a>x(hJ6uaKS@eK;$Atsww0GgjkHmYOZ3_-t}Nrl zPUgNm-H?ssJgd?=f`nQTJJ>lGs}J#x;9eRR6v*Yu(wwX=J&*9+zA(7$#9T_A8-)(M znMKF=%?5S%u;G{b@}*x_?YC)SYX2Xij0OUUK9Ys@a}OCm5pPSgnh}uoD1AyC6st&@ zTWb~8%bnU~-fr>U?%hJ(A>dZE$scVeD5*VylDY~ZpZ$=T9NHt`C5Csdi< zHamK`URw7HHBx>V+Z47}KZO2g==LzWF&9W5=Nd*7Q;|wY9qg0MO&skv*Zfiq3kNMX0CB)?s<%M;hcN^lz)=iOJ6UIZUQaYoA1X zmQ@`dBTt^MI+Td#&cX{+;^U=!y)Q7=jDhn$<+3zh(i1E;f&;aMDVrGPFGw|hUF4(? zsdsW)_*`gi)#=XLX_f2=W4&J;cD^GOXIH;L>9KlpQJt*RpQIJ1kzVEoR4#hu8rd9i z9`}!pP~6dZ+}pj@}BG`d&74Ex+lBtX0LCR*K-Wt@n8^4H^J%mf)vM|YHWF~L=9R|b998v)aB+l9n17dxz$prvoh{(hq@|@x=V7H_nWKK z6g+WHHukQgY-`u$0`RO#E1X)f9Y_&-evFf+*M{GCy^FTm8crXx49%}?C^>{N0}5DJ zn{q~%*{+@g@E&en!P1>_D_jWO8#*$Yj^!Z_CG%_aM4f~)p!RjAr`?fBau!M_mjcBu$g3Y85Hq$1e{-l=~y`5C`mA_hICjUiR@6) z&DRko=rdS_fP6Os<<}GW|E_}%D@v}E{+{N%6l`1H9wog@{n$9nbYa_T=E17(c3R$% z<$9{i;q?*gR{FG9ik14_#_VmdIA%9Kv*(J~VD^-lo!uyKPBn(f zV}01rdfN~?ow&b03BUXqCyH?T9>Mcq1lis0!%CO`sx+Gq037C;=1jxp8Ot>VX8t%R zX(Qj5$17sYW2?QYBgQ=b1!qHl9wnH1$pi;|y&AlhZ2`(MUq-C>`d|Wk0KdGO+FNb; zw`rWIm@cG20W<;smV5|hvPkbMz9psJ6O ztP5AM1Hmx+E}oZ4DMBI})S(OIW25|y(rG`<(&aTfVid+Dls6c(Tm2Wo?+TjKLHpiV zcqd{8=uRz{YfA3pL$var;gJM%3L0x4`0Le)c*_dtb3G9KA!I#)ODZH(Gd7fn*B52O5ZE{|G#U(=!63>mTzv3j00N&CGYYq)y@ zhZlK2X8u*6Q}`?7RPSKw>>9w-d78Sjx-qTH-OQTuSiPOBfoyuBk>5cypoE*;F><f}Er_j)Q*l<*fBBAZibTPx3 z=qAwi=1AFBWcamrq?~Rb?JugG@9>9;qdm7q+ktoWSYH#_)2Hmmvgk4LzEij)hl+lW z90FBV4t*H=o6DhXMk37fKMjXgAgsgkHbm}D3$(3Q@K}|j8&a>8VlGYtfXq}3JLF4Ct|1Tc|)5Z z|2Qj<3F1ML; zQ0Wad6U&a5sP&GBUCGy~6d%iik3TrB%TGW2Q~IYmYUzS>lbiB}4j7&OsXqPFz+=-t zHH4pZ|M<#HUG81xmp(>r1?oe_lP#>^Mnm3ddmfl=%)jpCt^w^VZ6V)II6 zIHpd%Aq=qhYu?bSfjI>Xqd=e9f5sd7Q#%g)qAJwFwQQd9MzN=J4criI_Kq0jIYQU_bFjF{Bn}QWQBS#jp*c>qmaOo&^kT;Z0=^+vut<}nU*UgWnyzc5u zNpXMfPFg|=xf>%$5q^p}F`cSR$@uyJUkBpT+H<5g@ItTW6mMYsG%trViJ1kLQLtws zejnEH(iS$i#h@WRk4)0sWDvhsc!=zl?G?`T^5=Qpn_kf?tei}W7dw_+;b;WHUzEU? zm3u15f`P@n!!)pax|BUt4{4mt<@dNVk`(8K*Lg+rsZQF)*Z?nQA?nMXI$!|fJ!A1* zC~jT0e}O43KA#pq=wP%_5=(y%jo`Z^43<0ZSXxNMSd-76Brwcrbd-Mw*_}aZMQo(! z9p*)*IF&O3Hyv{aWf2{qKi0oa&T*s^0N~}?dM<`(pW$PUksOo$Au+)Aa zBj+CGzZB{9KYs9L=fLGcWBBS%jN!>(4E@b1q85h(Qgi#pb6b#=hAR|=g^{R;CH>p* zVAr5lOxsH6X$>M_g(;B!0DS)nxD4a-NqAec*^yxVY?8f~^(^U)pF(6inX{thJhjN) zat@nwdzK$Ia{@^dMG>ucO!}x?fuALeJys)A6K7J`Ra!ddVa3#<3Fp<}W$rTwjIYJ8c5L%~x>J4(9X;s1O%o0D|OK zJ4)p(8?d%Z-CjCxErxY|fd=e$|k&Z4nlT%*O0&WieD1L0C< z9TT2C9$TmRq#I`E;a>k=wY~EOnNPdP@YP`M7>hK*iu_bga~qT8A0u8$$bsp*VANU4 z=XU3O%3NO!7cZ#NUdAjV&2o;pIEpm6;*>^CX1F~9?pECAO&l^Er33FBaOFROlW==7 z%H~psGPncsU?;MOht}v0n#|ROja1pmTz+Cx^e33OuCGn%gLx1iVE4Z68^2f9g*UP= zaGqkDT#YkCW>;-RETw@-Mz~5&NH?NEAUa=9fJdxQmseSGcq>sCUy3*$pncTGq`zf8 z-c7V}te^DymzsJiG2LHwFT(-*6PC9TCcgw)Se@0#U>hm63s_6B^+G5o>TOeff~NMM zx7ZQ(ift8&Z+c!jkcOO@XI9P^os*BVYCkz*{ea?l) zK}{${3H0M4zWZ^oQ2mGE%;8s6Y|#9m8piZqN|tgBjs&Ypx_bx$jr9^Ac^i&LRs^6|q!KTnj$53A&D9$Eo7Gk?ah%pNRAxNJHRs#^oq^-N$K zoLy!2tm_iMJFAK%mo@fPrFy-xs!YpoYl5*}L7_eEdoL09lYOhHb#nQcL*#2-;?P)% z+%l;Wb5m{^e@pob9mICAZpRBD(}*{~Je6pKFgQUQ$I-)`9E|&DaIO|p##Tgs29_?y z1{_}+Gb6dDMya=%bA;*1o-U#IslATrK*U&otddn;-t3t9L8;D5AI#$Az@5BZsvr>- z*;MqWBB#f*>X_Ih2Mjia;#B-;5L?*g`F24!d2c1nIudO9BCMnhf_Z|#PwTByJaaHK zcAz@l<@=nqoKolQVtSCtdoR}|mokN2ik57bcn44shn{HST%I|}XC1iSd1kkgth*DB zf^y3F9tGv?JPN=db9+}VsB2Dv6v*`fnXX4O(M5{-p6j?{ac;R}f?1W~KBoVrG65oN z&Moown+_}MQnYrg{0-UmPvTnPXjekFEZ6qZl`uD_^Q_P9u#N6Y^Qlv`%jQj2ZBRYn zXv==$Xcfbw9k;afViL7WnI4!hm>UK)SLy4YO>tbnlK*TvSN{HYaOL~3QURfs7(R7% zdN1=K%snV}RjjvxCdgL1@hdy5^uy4gbDnIAiE;f;B`H96#=#@ zI!N69CdtmA@K}^-28Sg$kDwMNET6NWmeZyd(#V(HP=rrh>UlX&L9h47 zQ(iYba=#(_WMri9cWSm4GA=%lC#0@OkjvmRIl3a@VchqunBJiCfb=^O?8q18wT71@ z%(HFH9Sh5HNrFGk*F%oIOn*|&nF=Q9g-VNq56ygtC5A<89Cldzt)RH? z^&EaU2bXILU*?A!gAe}ZJgl)K_~3hEhaX<)>cbbEe7Hs^sO#Z(p4QYY`fz3^AMCIf z*bjuw%FRF??VQ?6ay~^ynvDI`ov!GOy5}OTY>s(R*=wxx%!4PxTdc8Pk^+HP;qR`{S@;e*!N0kr2FXlHi- z?bIFuZIy#<#g={q(U5=%|@ z%sD-yK%{J5>;T*?K5#yCub;I2r*)?8QLFD3KFtg`Fm6Mh72jN+|{@+n3wid&}J5P zmlr3)Ydp#3Y55v&yE5%@wwJe^5YXZyV75>9Ydg^Wi*5*KbUB0vyEok9#&E?+?t;55 zdkk*(F}&uFq23?EyB)^xmK(!|L>_lCb4pF1JW;cje zyBx%N4Z#Eo$V7kWtCy*kb&*FxPngS)0P1l_6JE5!n|mb+C{cHP*Z?1LRu zqZzL362I)5;Bq$ zvirypMLUBVPh=CR%y!s_*qLC~jmOzyZH1M{Qp;-61pSOv@_Hp~4oyZxDQwAPq?)+l zDSGEE$ZvOqq5mP5Qh65_H>*l>ZE1_+d49H{YX?eH#>4jcJxTI2T?62xjh`- zelCI}&m76-@7I;0BPC4mgPu`odsmF_1wlx(9^eQ>f| z$Vd~#bCcbP0R~wqz}iz;%^20mS99J8iYO%IkziuGg@w(BDePStjzXA1NZVlQDruCT zQOJkML84(bF=qDmK8U_AYzP(xjuVtkF^(@%9{3B-{uq^i_NR-^boM97#rQrhVsig{ zg0&QA-^o^e{0$mSwp&F*rj|AkNHPK3{11W7=ED-llE9f-Ge3esfE*B-7 zc>*Lbr$`3mXXSAVH9!_g{+0q1BM)PQLXmJPi5Bf<)6a0C4|i0-#&Zc_mAp z;~yVyPdv{l#>nx}@saNdZ56(q4#lQx;2>mf@MqJ?ls#gHwu_s@Vg` zg@&|9e0-`}76Cq=Q_MtvbUb@UpCZ~(sZU5iv1QsQ-&WcX{)94k`1uo>>D!WrEQ=2k zmF9os;Fx0&VnTk?W_7n)-%E=b(T3x#4xTWV6{lh?=8fZX zO;HxMIZWp8&+;syea2dY>#KyPDUIzSoab5A&CAuYHRX|O0{nf>*2rGiyfI70rX!JB zYBLAHCGzpi%A&?qUSu2`e!PDj=9$L#z6vRQtsRK@S7qif`w-V?{*{f_-*ZgD*qL&U z`mAkyG8T3*zL-h+VF2Nn9_nc|jE3<^PEA|81*r=T2~1K11`{!>%%rW`5HY*SkC=7$ z$ZXJE7o9}R=Hj=HlvJcBCfUVV9AWgi1pZO9=x=$|+CEtHXYSQD$BGIV#fTDwB&}gt zXV9>s*Kq_C28lLPhr`+DxaiZK!H4)zB)Ub&6?x6xPDgR`D963sODW#hynT$W2FWv* z5znQb{@5sEBUwddx0LzR{6c}k-{m@HhnOd`5o8Y$uf@%(h*rgMUf^Pg5ef>|nvP4f zt^I$MEk?h6gfS2IDd3y*lHi}&5NUoQ(nRQ-O=8$wgh^I~ybyMK!V)BY38(W8c{G?q z79yB?Re8HPTIJIeD54lc3{$(@UX_W^x|ds~`=L9J!!n)+OqHFVG1{ikESZ36c(LpWA+`n1()Vj72Gju z#3a4P*}BbuwKB?x8u{iQFjRO0e}jY=U~b28FUUxR#_@F-sYoH*Sw<>yWGMz+E6GF- z3J*3vY!-OtWkiBatQj+pX1SBZkGQ0Q1fRyw|69@?J~t#FSMqp!wzY-az@?m~l$ldW z!$pJSBJ!+TgURecH2(;ZyIo`$CeF`C5o>iLZUwhcH zpwl(X&Vh<6D2b=4WQHWmSIqS1`kmN?1Q;DiSQFvS` z_>nDmj$aUhC(0jbejulzpJqjNhoG%FwVo8xYw60ui>v%!p+{h=_F2~wo+zF-7Gt&CLNv$6zp>7^QG11LG>@|P4 zZT=zK{M|Or&O^3&-X}Hxm|MvMZu|Eow!gB3h23*HcG8Sk_rE3GCn~)G;1&;nCoBLr zTL7N00GRM^j^ce10Nm_uD!IW0;F&}KG?w0UOI_`j;>0It(lW}!<@;`_)o!WRQkBA6 za#Yqrcvh!6`vl}4r!PO2^ERiSz@LAm%Xa-Kc#0#1KTo&Xpw~n@r?Jh)J?h__(=_)p z+`)O;Ea>-H@wxkWX~fOt+Ns(dVDwaTrrsfa_fpyQ7L@g6t7>>zD;^APls!n@R%V~E1E!&0i!YLNYf7FSkC!3y~zM~1b@NwNb`)sDv$8}xqdlNhA zNGkb%5|(`()H(uhGxsQeNK6v;1-up()VIuT&(@ zInk~hlDQ-+xWnE}kq~eME&*A7chfJ z!o%2h1z@R3+=tE+jrWQbhBW!Wkfxwj&%u+>;xt-6!5V*Znnmj;ZRI?G)=%0xNC;ZZ z`$~S>B`24Jp!H<@P)$~pU(jkYI_ipu-gCTHO>00Y~5xkmXmt(xB^lHjtyy`qMOh68#^nEd{M- zh|>Od0=j`#YR95#+7*DMCJ(LuD~3_?fkEqGptbclsFgXWmzU4r|Klw$VML$TM)Bc8 zf<7qsdHe=)c@T2p*Ojuya%lHOu#;?q?!D{K14Q5>;@=>StoJ140fy> z)af6~P^f$uy6j0DCN;nA+u-bcj?T};>4-e_eH_!ziPf9ik(kTnBbB0liy=277Xw}n zbn-2B9B|6E`V@4<<`$npK!1@?V{z}G6nyH%x!Wq6FJ%keY%|W?F3?7w5~|nCm^ZTbeU=<( zdxa2Pmpbj~dol%y8#8bmo%AErTX^&d`fkM0k2^}(l61pAA0gO#4D+5gpLnSG4N+^g z7JYd}f?jk45d2ZjKkn?GGr`H6=1k96uDLBlo6dnH4?;J3=sR{`|DWm&Ah$Cg&A`=&GsJ|?uRUWR?!CFEya4ZmA7 z{BN^ddL*XdAMBQTC*W$4PQsWT3_4GhGl8?rn400cV96F9zJq1>KES3S!*}8dy@dS3 zPU6_%^Pv2YcswIHBQ|OtuP6HV#cc7%0*j*?T#QY6;&dl_HO2>m4F%YZe#N|5Gm`oBdOg5Fv&fBnZef#Swz!aM5Y$~nTQdN_gz+ek7znU~2D+qms*un;Yn@43t<9*M z>G(Nkfo5=J0Y+68Pm9X|3UQ2O)d`}+a$}U(-%nZG>5R`K)@@UV4(a$Cc2o~0|8dTk z?WtyqRgI5sAxxkZEO3_h+ct>G#IF^cqM;n@%;v6HZQ4=iLtz6y3oue%nO99j!X4D?-JDxY0H;<3Z z=wSSAHsgnfGW(j0pHxHg4m*@j%TV4RLphcqW!T54It>b!%E^OyjD6JpFxEM2KyJ)cZL{0t3WZ52YEk|7e#-;RPGOprjY+ zUgloH5jgts-ER5z0oHX6x4i7i{@B>STWlk6c^&ny_2DlmXCZELW2Q=w(4#qV`6fOT zavXnZK1C(<#=|4U+n$f%h$Rd6}i}qS_cJb$k|qGDxYP8z}$c!^eSAZ}u%! zL@7BD2B;s%V(1(+W?FkrAn6ico^{gNwd4Zd^Rln8My?xrLCRjUA|eTX%k6Ka96@qSTe9WqYlnKHFW+#eizMYz6NrhcXUPtJ2odwM^o6OIPQpO9&eq zdp^W_e#gFFW#99xuk_l;5)w|FFJ}v1bXVRUS)9$vn*jIwilU-E$QH#32Lc*^1+HS% zxlW>`c5xPM6=K7gCe-pcdpfkG?K2WU^Jw&}`#3U&d@%dyzqGMj-^>O{pVjxmOvgnj z##J$mj32kjF@Cb5-5@Jh+mN)=F4FC)GFVuYq}dW;cz)a*arAtzVX;w+Znwxy5J zeyMI-0J@7hr>V!8A&y&XB~lA zs^1nU$4f-!!oy4{E5J4g9S@t|mX6^pvmd`LJxO1Rn&VW*aZ(UEk^2Phg+N?CMp05^p69_w?&S(X=Js{cxo0t58HRE7IN09$hAxUR*B_CW zcd@aT=ni%WlI&L!-1iw4y`#9fgr(LR6Ol?@=~e!pTy_0MQP&SaU4J@e+?P^+{E&SF zB96h{)ao>UF>~^BBKB$=-^;H2A*@6X?UH9z0u*eIE1MlqhiYYld|Qf$3LF_@X?Z%E za3V<#kv9_w{)+x_(h8))#n@=y@DcO|yRi91lzT$aJ9F!uspIqU>a{jhm5W!1uPKIm z%sZJG2RP0n)c+O{BE2)cG?ayd5~djl@YEHl>ebN%&Rao0PQ{vpmVc686u8gPin3$@ z{34fwAA;rPTIfpP|1Z%mtZ?I8$J= zWDpNAV?lR6Mq8)5`V4emU)G^|FdC{LtO11Rli3%wQiPE?2VbVFa`%w<5;-JJ`=fCy z@QD-WO0J#xjw~R`xbe;$8b4V)fGLB({Q#q$7OkuO#6Xlh_3CmRz&KN_X6MXgbcx>K z|3(@Wu`IbCr?dpOVcl9eQ)(rO#;0f!+9|Ym1cKFb<%3D}aSGK~`V8mm8Mw>tXeD-s zUxOw$LK?`<_WSoSkbPu#)XuhmeI(aBowNeqO3|lKu>?04(qAq5&r(#R{=^o#UtR8( z{T_K@1BE9#Mw+iLSRnyJwHoXyy=Ja^!Rsw58OoJx52RoOdbYP`$Tp?%METR=PVkng zE+?+D>x$yBg{#I}C>mBr;Gqw>q} zux`Cx;iZZV*|=_Z886db>t)(wJW?yIN2<^PRb4ZFop!akv%y~|BSKW-adh!OquzU6 zd``Q<8eE*wz+zrX{#{C1zZ|dRzjVo!x>EcrW#BXMwv3fL#^t6RT#wCmU>1=f*;(I|np7v@-E}uV!xw>c1*`7_+J2`JrEfeP=F*d$=g57T&s9m7})9wqji+xTgoQNH2o#|%Z z#&4wYy|UEhc++bDDh+18CffKlG`|zek#wfjIAo0s>;&~I*;e|sT#~|yUxw_7#VFzQ z_!fGm{Rg};yUSG0Dbz1q`8|Cq|E)$_#$0DFVwLK>Zj~B%cDx4$9@#C_Kzyl@;{M=) zzm^t|{SP3yGu3@^=-@W#DyzFQ3BENMo=C6n^Rw<%zay;AZq4XovSZ)s>?zwiR4Lwd zIpz{5uhyqbt#>EY3i&((6tmRb2&Bmbasj;$Q8&>*M8&(8+}*yB+yG@BAV97=Z@o4? zr;Qy6dCfIjqL^LcbTf22660C#7xgZz6p_~8{V0X z6@NMYbpF|N?Bzx6>Q@aYZDUPM;!)wTQN}F7T^?YLT0L`xHs6C6cO0A}p*Z|FozaxC!gh9=Ks|XZ(VG zyCz1{?mlG_>ytAs-GRfsY8Zp7GUVdhCNzjR9KeTY7w!ngNcG_VaXAqc|Fj4Mj>X_2 zo?cHaijZJ)_9;+J2!-2tH~9czTEAN)5nXjwmoxcE$PdnSjg`VT zVPe$s{Jl}-P}%P4O@e^2qR$qwKXE^7D2os=CJIys5nptfrv!kr7I`K&NGd5D)V8)` zsKNd-_fW{iF@ML8dIHhKE?$zG{sYmyAM|x++{j7ML{}>GJj3X9^+tg4ped3YO$Ygc?at3os9tyk!_S!R` zev;V^Lz*HHW&X9W*L9I|Z%{?i@@`NS@3#IzL5Xn4!m}XLdhmGj`WfbRHm551c8t10 z+!tv})_VS#<%0PBq8ymYW&4ePYD1&d7z%_@x1Ld{m8TSI6t67%OB%!1zaHhr#SpZfw()MEQ0COt``s zw>Py@ z>PUJjcHHmsTfh>O_*_W7V%}8bCX|<4x>%7|OaHmBuM}ld=hALcS^8XytznBe9%Tsw4s;EY_ZE?CN!FQ$oWlRiFM2?q4i<^ml6ayAN#jd9|=;qpo$JIohy z>8}aKAnPoN*Y~n)ooipY-?U+}r~NIrN37?`?^q1WCgay6k}2b3w-`O(9ws;?@jbsO z5UO8fNr(jZ{!oGM4cTSX@ZGT-+sjq}@b`HC3V@e!C9^Gh#)YysV$Ftrl?(WOpqmFmJjuZl<&28fVza{isxrA;vB?B(>VfJFR-^*EI`Y0_?=>&$Jer6)2ewNS ztphi4c|sE?tx^S5 z(q9)|!qS$V^&@Nz=v4#&4!mG6?e+0>3QWp+OHQ;*%J@1R|KRH>IOUGN z6h}HND4*atGp?O4z}8BvW!P>$@!2B<9<-n9CKX3(;~Rzf0p%-%)&tqig=v^M6KCp2ay&b&|8Uhv(9S-I!iJ#TG zyjz{+-yk7j#Fn^+c3whQy4gqIZ+fZeELm2X)gc%}_J7quMwKn$Fv4Y4!rB`taUCmj67i9lS7JOg? zDqg5DVoD_w*Oef6wl#*l&0zuXNI+5op`FW8AMIfV`-jk&*h=1jvr5l@31TLlC9f;C zzurdCVo0Xn5!?PcB_VG|%U297@WkikLR924jBo;GsL=rg&f_pgc;-#Q92XhiJ5TD} z4nv%Y#K{fF8A3wCrXjdDjY<3$=hLQt#6FLe80Kp+}oW%G`h>oG^LYnw2sb1!brC-Zl{V zpcN%|8_DtjhsU&C-NRgu))(e#+4rGOUu&%XAPYoseAe>$c`Kic(E+DCQ91*ItjVxyAbyvqD7cPwXDmSL5_;WV*b)Iy2#| zD3gHph79_}Z8Z5dc3)GD>ISOD9OeDId9^It!EgIdJF?IOw)_ zw=+vj=vWjwVBqW|eI)$#Y+g%(#nf4{l>SJV;@PyzuH6TcK8G~+f{h&07Z!Q3Jve{* zQr^9_R2XduP9b6=IGy8tAE!n5#Y37@g;Nr7ilwPz^`{qUF1#a_U{lqjnLsZ=yEQld zXBt~R8MCzPkS^$2<79_6-JOUHY*LmQfwg)g770-Bs2G56k7+NRICi;CM_e=pA`ra0 ziQtvhxCq`ZBV>s`Wg3nXyz884?5Xt;yhF-P61>_nL92qGIB_4>>R^%+Ex6hVn9#-az*E~KM7ARk&*$oPk$&qXR;gS_ zVRJVm=R$24`a$ix?BeP%5bMf#g*s%gZ`B|!4<#-T{dg-jB3cv5=zp zw=-?Mb+i}Kz^wW;u6 zcwd{1uqBF}>jnu9B7Mcm$F%^2yP(rVzA;_q9mgVbHoL3TI#qSZO!(t+HqLdAJBQw3 z=_|(5PAWMW2ZLSbexdG4mt?RoYKhM&W5dUT@EFjMWrcsqNc z2FiE*K*?)q6(;s1*Kki)ui;rSgVVWKsY!F(6)pi4V}KV=yKyPs>BgoIe?-{C_c<|O zEruEwHvE651kH;1JPJx?s2bA>S3cQRSmQ3=AlA(SSQ%FT(K;$g5(=<{i%s`p7GTog zJ=%2`6EDbu}{`z^$gjLH0 z?-hb~*?2^daMhd~*M?DEH>yi-Mn2nIscQs1YbeG$)jpO!zFaFHllvD0hnT4^UqOx7 zey!D@m){Dp8i>C#L*^Q!x3bkhK#*W@2`w7)^Mx!lXE~;mg}q5 zJ`!9jm(K$*~Onyu71Xb0kTx0G>KdrtzKD9!Be>;!QBIJH&UR;m*jZT6*BFT zUut@Q1)NOKr{s5h*w;MqiJtv)nXZ*`dJeaia*-O@hGw+?7jM5!qZ9OJd2HM46Lq6fdc%!X=W zSmfI-Gd5R9l)0CP{DRnBt&;UOc!fYDuE4ziX%z9qVtxd|Q$Mk(N8H?yrM1!Y@N{J`wC;*71dt#~d<0&Z^EY=Z^Z<6VjSf|)1gIJnoBK3j?! z#jmrtn4+Ha5p100(P}vna4zwOB}+RJx>?LR1hhzMezlp3xY5pJSfn_4=n2p+>#xtW zlu1d&{q8NoGwpEM2$8*FX``|Smc!XoIsb3MD@M)p+h?zhC|YOQ3msk9(Ug6va@N|dlq*-D0Nh#Ctr8=}$*jG~`?O1brG z^R_2@Xh^mvjbZ$)tX`fcsf$|~qIIm?QN&X0Rcf>LhAi1#oun>mg%zwbXUYaIn^5oY zY$YTT!MhMak;u)$h#6YFjSxo%vPmGLa)G4-qd-78vGNI|5VxtY`J})Of^PIeO$zRg zLaaqY4{;I||0xV$dB08UEihTjk{cH)U%;?DgMNv?i@fC(?f?@uR=-2$X^jyjYMzWs4g5hi;D3XB!4I$00{> zpO3f13A-4?0H?iB`!&Fs6=4a|x>%IaV`cTAzNfDm#p{w0jkB}?V8(ZbW@$ss_bhGV zwb<9x2H6QoZs6L4iFhr|I9pazx9G`(m_vNJgxN_ze3xb?%YiLTu+e~*uRjx)4@-f1 zRl_!u;3kgnwy@31I0Pr#ytKtE-V&zmTxJ0~kezEAnxFj}p7a#;3{O!fXRS>CUU#t= z)z+7r^)XW{PM8RcuX(#DM4N1}AP^QKjoO4G4-9FtoGpLh(a;EL= zOr7hL*Ne$W%(iR98ikIvyw@pL?F3pDGnJU8a@42zl<&BYuJJ9OHY-XysQqhXN%lPM zP~OKKd=O3iK-BAU^$YRldVYBYMfGa#GgiZ~qS{Foz-|!#s;8GnOyvOoJjK>v;u5nK z(AjtsvcGF0PH?`I&u&47XZf9R`#_eiE@SD^QL;d_U@93=Jwrp&jKD|Qa2M5>D(??d z>jd}xV+t9PU;!K=){;Nd!}6xFL`q{Ci*i6V5si9`HW!_OEAGsNLI|0&%Nl3&Z<6$X zV+p&#*=Zjc2i0iI9>x&X?i#|(-9sz2VL;oP2&9k2Lff=NfKFCZSY>%faYd|5XR;*O zz~0=%@+X_}#+ro!PGnueUl8cnTBtpFjIe!_BTBf9#U z$;$hh$wbN#cTG%f7hpR}aFL8RlYz`V*gUbzqT$qtMX`R^Cp>rtb}>0_u!oA-$tqc% zZJy5iA7>|%q1qyLGWH-nf8kRV5@uU5lEnjdjsUh5Eo6IT?aJZ<+jP{~OKc4Gej(2| zGq8nBjPOIXkacaMg-l2tmYdQ-7Vz0aBH{t>WM%AwXb1%&%PszJPLL`4#a++16cv6@WO@f#Mf?}agX z%f*1!KoUnq16gEXJj{alBNvHN3=Y?>UhPae2pz!xqj5$=@8Xu|vYpU4}fMeh!AW0;6ZpZ5N2hWlXcgR=+LE}iOPjozvmPHw7{MbM_J@!$u{QHX>R|x zP?|B?&y3L%#BNF?qpdqe(?snWWjgp;T5mefs6=FrLPk?&R}(=@ zDLI^Xyru{7Sdm4-=^Uw;E=ZbYFJhVHB4rKRD6{RT-$r1>}%^Aqq8e0nqwV1^i=#!f2IXnJ?qhXK>FS}&>shm4+ZDf#*BjmK&1og9MyS%ZX z+$B_45FM_ALs+s$RmpYmQ0o|gQO|t&pnw;m8w)diYD)p5x8*h&FCMy3!Bf*SR69ok z&Eee)GhNsVF=W|kw7VViDb7^)Y~CNXF>2o(Mz=eZkjW(LP3MXD4@uAyp3n#rJsua^ z4y=sI;m55l?gTu}gBv#01)CBGpL5xii(h?h1$>z0{R(b&@n)bD-pCO`$&Z_uTQu9u z?p$|vbLB7>;(b$0spA4~7=h-!ycKb=vuym0_V2c%v-A6bTy%|D#y=sx5bjACS?Y}d zQ~AwB?SzFSE&+y?7Z(w?%Z5L%q|9XXQ?ANU>lamU44%*g>-8D!IT%yKCh;0u`qYDu ze+F(#>Pdn=un+ZT_L28sZTIPt9^Q^pE9FL)%NE(7GPo6V@OmUs!0__s_5Tu^W48Jg zAtl8#{>~FP-gmoNgCAZa6`YzkXub3q$_%h>JGI*^3^F0@%B zq|+jV&8PklQehF&5kp86glN<8EHv{++al_A_8Wbq^cG#WgprXAFc#;x(}-$YuHQ@zA!( zq<1mE`o6HuZ2F6x-1e^{Toc+kqGNHqF0d1N+3%N%F7V9aI9*_iW*dI$LGl)mWDD)i z+q4(w^!LT4ztFmdI}8bc!RGU~lzx#?SoWh|biuU-)i12v%s}Q#^hc|1bZgd!N+Q|@ za{hO6k;50&E(m_Ss7r0YWr(SC$_jf;S07YqwW3qPJzXq2oo_6{yIIsSU_mX@;fJo4 zo1u*kc8J!&0M}E|L~+xa86U@KW<9CY43F<3#zobzx`kX}m^i!{4?cL#Ka3khJ~dUpq;2k%L2NI}^` zSw{GEZ!LWFr%zxlFglgNoK+z@rMRoSeqsC#pgOp?6ioK?kG+geqc!v)vSGqnUlk%H z-uzq;9fvr=L#0w@QP9j3^r$vY!QXUkAs&Tj2mMl@i^KotvVCJt-0$(rE@Q#6pn?^- zXHd*^%RFriH#n`ZpY5#@Gm#7*Y4gqX@#dRBvJK(?w_Ek8?oA}?IjZvCtUIq>;@bQ2 z+%j_IpBQEJs`&w;pC#J+FdK_a2GYHM0cS2)VQo2!Y@TdS|5D$plc}Cv)|*a-x=z`Z z{zw->?p4I=*M<@L$XZ+nw@7u%wSgaSHTIq?eqPlbqZc=}a#uT^gZ?dHdBMsuQfvVq zSX;oUSS!dN6143@q1%V^jn&u~=N}zbt8t+?e|a$2oTV5$AJGZYxVZZbW$c; z^vqWYLLcKM#SHnqdN5y&AI#y%HiY5i!RLKz;j9lZ^xpW2XMkzOtY*ir3d zC#nbES^6}B>>CjMnz+?=x5V06`358Kxqf2>elpAKjtoxcTgf`EuQWK%Li5Cz4-JCx zd<)I*hYZc|@afnFN_#pMJobNNNMYbZco7j&VLt+|7JYl0M=XDbSSGt%?_DB1Y)e~4 z8s?7;xpS)|kIA&YiX$H$_&wVk`0&J^+bes2Ebxy}Gm?97S9}ky+7^4zZF_JJAqb@l zzjH$ndPMXbeaO;#Z)=v}hR0Q|FQ_Os(@tknC*0=S>=P{W7s)Xi^#@*z;YC(}wH z=-l;6_Qy`k{F0eb605XZtO+wrCK99iyh@%(_i-tTjgCp7u zn|jx}Vti?WY)G`Dd--?w0#dJ65*&4=>-VyD8(SV|m@l-d=PPz(E_GGAeO=nY2?N?8 z#Co|x@zg_NnORIV!t-KWKi)A~z4!|ufn=%khU=)nQpe~oL%AV+UzwOMSmo&FFe@@R zN@p2vnG5LYMt$37Ek{QVj@Lkkr^Nm)9Mh~S?7Hc=itqt$fvLIxaISW;4x(?~y8A%4 zgs94TdlprBoTuoeA4tDbsLF$68!h)Bx9(@Do5d6kvTgC^UObA_-?SRu6|aVG(d;Bh zUK}k8f?b`_Yq#zTB3s`nCmhvUjF6*Orf5u;z$iI`A|l_!YG?PNJ-i9DL#$~CZE5mX zA1#Wev*uT~H;Y#PFrMU^+nhG0g6y5ut<6MuP=DeI`q_^-Q+IW;_eVSAG`6-9ZB&&M znyGGI#>{*NXJjl0?{P{E-ubkz+?lXYpYnN~xhgwO_bxFly{u2-j#M|xl}P_y)tNL&{()Ke1C;#^KiC%2T#JvzFjzi!!Jl+`M1C#nn^;l0#O-)Ioo?rQdx1>fQoT}&KzV`g6s3OW#;JaDWM%rH z7(`EP>2xyhak3wFG7raxbv#hq#a1ycE7^n!S68LU*3ye@Se!_MM(&tXcMvdI5@LY6 zCkTfsoVX-obi`1efOpjjf|WexHvF<~I9pvt!z0z{5|{THZpqH(T1FrV9LC2V z%dLzz0|le?N1s&pH!f_}r;WYtKI7K+2V37Yy1v7y?iCINW~)mja#3JDb!fA60adOs zRbHVX3?|pe!84)AEcLXl@kU+aLH*VE4Qjk1zQ)qz8sm^1-4tXqIR)G7Mp=XIyv&``oP78CXfG3)lt*SjyhOZA{1kV?ORFGInN$TLF7=D) z{k_PMn9Su)F~LCQbUDTLS{kpV{sE1cZE3G$Nm6tG&PnXVwlG4szzuX?u!VP#j!Tp0sBL4U z_Vjs=gV*0w=MjuTQWi4wr;Xyi0+^MgZO5i8^}8LJ6!B zQxZj~IYqIrjWR|7tuSiG%6Nql#N~Dw*GzBjrUc|~ys?=K(7Of8@z_MP?XIV^afJokA{SZ$hzfvZ~ zX>&t*8nLvbb^uNmFC^@UlEyF+tAdsyE z#9>R5XKf6K{s?4i!E(uo1HjS`fov^U;yK7lj1XtDTot~7oEOHSrO6wZ9;`IsXc#xu z5CCuwkwI_y5=x0k(K1JuGCni!$bq6&xN=p9J>wY;@(QV6#)gG4d35M%B8iPjkvKbt zR2Nmx;{SjwWAQ9L{{LQ9seYm=`7P%+BES97<{S}jTn(o!B7~O{d98BWQ%krQ4v5?( zy@PS3M1pHk5d)8~+e$j}HaGgjf6=*#2tjuIj5#LgMZfA(UAxBJmxUM|k>Lrs?n@k; zPZaO^RfI;JhP<;f=icQJ>{s21;@Bdu4{hl04D#+JH0nFPh+4HGBH#W1y+%x5Ij#EJ z4a7$t5DW9kow!rcM-0z-iG@7f}Z^7l>N_s4txw@_A}opwHdQt z2KjQf8HLq}0_zUCd4}!`cY*G%BgW_Ou!A_P^ve$nS~i6r3>8Ij{D9-)ar__=Rk8W; zrJ~B6FeW0ijiK9P7=$~~2WJo#o7#2vuY}YT?%E%N&?FKg8Da3*>X!=*>0IWK(qN?H zF%G`hOCq@tvmdEJ2#~gzRofV|lUGSE3hSZXdV-vp}VprlA5bozr z9eru6M^2lA#B)+1aqt}`VJQ8tg@)8Ms=)3N+so=lk=+6kGK6{Om&B>2fmv^V5(#C?TZ@ZeKD**JFl|IV`*-7mb-ac4o2IuWL zu9B3X2B+rjo2v#7r87gFO8=DQb38v9bSmw}Z3=SGuvfyt3khic;4<0&>+F0J(AOD< zzBu;UkE_5IV6WRABM*Oj^Qn&=Zm3UA&RxtFfS~7#8h#j%K~;)=+UrLq4s6^RN_!}* z+O*Hg!unbCqgec4*(RdWaCBJSY6+yiotNX1^Cc|twrD8Sv;Th1 z#Iv3KiELKpOnk$cc9)ZT1Rq4zO76Ux5Fm7BhqM3wZkc8$S7H!HIlO%GaMG_G)!a9wmuIHo_^=Jd>Q0v)M!(&~%62K`G7B*lt-#*Ef(A~PuXiupD z9=JZ-g94$84ebqHl1omST z=X$elzjkNifx*7Vzs{L{qO(h@M8%EDt=aebbDc8W{^4I3>@rwqn_D7L@VG`x)_pYj zAlLK=gL@p8(YQ+_^#&BKa^k+$O?8y)A=>QZ$DE001=JlhNx;fK`tcLGl9*0^^lzZV zQYZTl>{TymcXBW1QQvO>NlsBCC91&p(0MMA>0p^u|;yGLf-ssS-W6o74LTT?>`BX0U1n#PJ*P!9`uK8RqihBOGOi*({D%2#@(=Td< zTF)S;8EQ2Hp=R(pJRZR8dTP0UA7V2R4vG0SDdSkVvT0JrNzTMeok=Ik>kc?UyA+#k zW7rME3Oa;Z?}jfp(=#q{cFD-w+nN46^OzgU2I2_93)H&hoYXM9K!UiWH1zK}gAOVGuVS;BQGSONmGUzPx;uq;8N$FPKNZvsmol1P6%VXmHoXLCOuoPpu& zXAaHDQY$rE_=(~!i9Vde5dRSBl7iH=QO~3EI22W6W| zA1Gfh7bV9Ilz;I<49?NqBQq|C+B4P7O>&t2X!XQcdxRkgx*TVpK&5lEjjXX5FS}w$ z(RzsKbPi{WC#k=351>esJ4eujddZOhFAp|&Xf|0XzbAIc-h`d}LxZW{@sZ{FOkwO4 z$W{#FI&}0g`0t-ki7)%P>7Cla`0tHT&zoDL{ioS1cjz*2H^rq}e|u8wTeMBNNk<0q zdddi{um-orrYt;f8dGI+J^zGS!v%l}}XPtt5HN2^$Cq_iQ@q#@c#l zHK6VsU*U}02ZmX%_1wG1qisFJD`Jt{JKpSE+`d3mr_DbQfF3ebR}FgYsOQFYy+H5& z)fP3nM?&YlIo73#zX_Z0M}s`L#jL(NtDaudRy z>PAN<@htV!(p=EQa9|PNfzyWSzQx^~JR~h=X}c}`nALy)dbThNml+T#El)jsygrmp z+!k~(9l4V1QtlB+@1nZ|fzZJwhH~_epl1@@q1#4xkV)^8=ngD;wqSIJU|iT$h)}ba zSpVYYJ@dAht@rK)?&&QvZwEh6H!P>0<7f6=3k+j?WK0}me68IZslJS{^_Ya0jB{s- znRW?viFoox>ba-;xlnxrs z#MzF@moVFn!|$`(*g@YR&h|u^A~cTzzmX$bUlo~>#HznigXgiS)cV^t&Zgk79ipjR zv9w2vd@WyQLU^2E#T=q4P{RV9A`8_mD~3Nz`Ji$pPGSxyE$qww#^^smNA?IU^%5fm zp~>oKe^(yv{lqJZj#`0UQyprS7 zAvxE4wCc_F|0t~=WfW-ouDriI+KTH@4tjF7daY4z)_S##<%6&@u|4#=PEN6O-t4Rt zdaGW`MmKXU%lPzvVpfmRrYvS*8R^G3S!xw0*0nKOZL0ZTFus{MbH8GOowZ{X*!#Gl z%W?eQn?UFX3I3p#R5;G9{4S0L{6|Qj2bOWCkIU#yxu6~lf&T%F+qNSmzp2XgIqBr zu+3ymaY{}BCygaUa4>znuNekMkRoCD>cLU|!}`;el2*H4Id%3c-@hZA9o0`cSs>Es z;`IM4!)u&ooMJ_|Em=tQRE*!u+mD>PR=Dfcn&DorCSVTftgRy3%Bn5>>mcWp#xA05 zbRt$Noo~qg1`*b78`-VjJ=P+T_r~zduumbv(qIxQ1$BJ6_JTP44{XZecC0M*^G5Co zShGU!@@%d3UVjq$E4=90CkrFrWcA|ly)0m_8r`mUU?y|>!|`GW^v@b6g7PW?2litp z_$tc=7WVHF3*~5B4Es~wv~gvBF|NGPP>!}R=^(8wbdDRcw(wP3Ldz9m@!PaG$$WJ- zZnVB$jBdD&#jgpXuE+bj>;cEy5hq9r5+{|wetoV-u-+_5*CPz4H_KOlLrN6-HLYT? zxD@N*5@WJ>A5KD>aeDQ2U^m_NMSxqoEj_a@Gfkh$wre7OE4*sm@Fb@%pP}ZBNoL$Cb!Ptf2 z2YQH^p!vP#YV=qVQOEtUnR@mS=Uj8~WCR&jxDM^Xq}( zhi@0-F7}Lt@A^LQ?Um;2=!ST|(ZaWlxOE6d11it-;9>3_5e#>`caL}&{-&mY19T`{ zwXh;S7_L|5eZLJt*_)Z8t2v7+c#T5kmHFH)^QtYg+AA~OrM73dYLqa2=F6kVogxN0 zg0Ja|EA$}Wl*;z76(buTB_3#d8YDf)F!QW_;|{Zcs5RNoeHH<)j>w_N7`58-Ydpd& z^NES@z292hkC#*3U%nOl!7?|%>)x~6Am1L4uXB3DBiK*2v71$=JzI}0;8{Yas32}z|=&;_yeT2l5`>l=Xe>-8a z$xx5FVY0tE9r#^F92H%hZr1(V3ft3E^pIZbXR4c)8Y+6yvHon{ApDg+OmPFl_Y!i# zBP7w~zT^wtbsyfdefX*E!$11;;Q}sZhjp5Jqt@C!#H_Yk(HmH%CKu|#>Sb?x{bGaV zt9MAo@@4T5-ZT6VUTz_L+(LM39|$iQ5r@P3)8cJdLI_(Ohn+|i!Qs;j4GwR}Ovd5W z@etlI{1E=yLimV<@UA`(ULOzPjl&P&4Hm-RS_psJ2f{l>q@}aRk)_^>V!{vgrtck4 z6FKd696?fxIf0h8fish5@ShWQ?{Pu3zQ+kS;b<><3Wnc zHrR;-?snAYZFq{m*H)Qcrmq6h7erOy&7doiPv7UzT3kJ>JqD_$BmI8@DhChq|LKw% z&*a{u|54|)0sH^3k)2R&D)1tJ_ly3)l?6%mBAGR-{DNa`70`&j5h*mu0DYkM4uYh>Wp3BWLywXN9a?YWh^&$n(mBmbw*wq zPzROEMKkyN$ecFa*{zj`{~V2sGH~?eld+7|gN<_eEvL<{QvRd3?)yc~VnQ1?NnqP2 zmvwRGQ{Almv(f@NslV^z?{e+|8FW$)!gIhcm(qQ)dW727`{hjTuuNYa zY>qn>pgy@X8KMiQ*%)B964hOp&Jh@{C_Mq@qb^L3kkYXyFHVQizHvfS=5!u8A5 zh7&qn^23U|b;(coV_)_%tYrAY!mf;O%x`9XtH*p9;Nj}!xzH{Ls_z=%p8?VyiOS7Z zdImCD&$MOqZVLOJnVNkM-}oOQpx-#5TZZy)rsj%?X z;LqYqu1Nj@?WE!(2fIdxt60y^)|Ym1UNTp%hg(CigmD-WX9o^uF1N`oaLCo0$Q`e9 zvGLe^u~X>XHnHM!zV~1;g?&0P9=34W^E(gI6vr&151b%^SH3zrL%p?>dPF6{MT-41$j zaNg>}>GaYlA9&6jc_L!i4CSeFVAT&FW(%eMVf!z%q6ls32jQs1|Z7k4ywxyt9(`PfF@qm=M z(IN~Ow_ca-7>ieS$dMy@moDyQAYO4-X&#c_Fasesc3sL);I+w69B(%+y;8TZ+O(uP zkX;{QwHE!O-FY-akMn+yX;j@Y%r?lQCDi6jLyM1N_TpLH>YBZdaY4MxETzp=+*b_i zQu-KKxpdp5^ldDq$xx5EgXBT@ED&;Mn#SRo1gw`*e_JNh*u`}QF1PWrjTyMw?cbHK zvdpYjVNM&;vjrs|j_Y+Mv5J`ySi*06dbRUCqLnnrO$n3LdK$`x+x~F}dAa`WhUF`Q8#@?O(M1m{mpkUMwsN7vSl$o;1o~Z^OR;_6^gi0Yenq(?M5(W0 z#qwQ!fcWY()OZP<@UTL_o`-_yYFKf$m0wfLQD@H+?mo|cT?IfCEcd=dQq)5Y)K#nIBEU$VjPX@cK>3Vu%m zzyAckr-9#py7*m{62Jcx{8BC%zvTDD@2Th^@CQBVKN^b?%A_|l=%*6k>>tD;|EZtv z0yo77KdXiPrQ6Jh9OPfVbs5WVni!b1Na{QMUG~=w%tb5A$h;}4;aVhi0&5|cvH5KI z7ohz+#6%zr;`W5GA)B#TyPUDP!_U~PCDPIz{s_N4{94}f2kgv!dCMIVte6EZfncv)a>%{Gnqrw(It$BS} zlus-9ZI>zthGi4AlBndj zhhIw`Z?KB$%RVS3U-lsn^81pE!`!1la_ z?M?&R{mHONKCnHM09&oAG8YmZ%=JE5vyFM5)XJKn$Si8^$NPk5b)V~fQt9?!q+WL& z_^4hpJUYzlu1eA3M;Q=bW8KBG>U7s#9*B=>zYd}@mOpi+Ibe(5ws&FlT(>871*tN7 zbYF(sk7cgJ?v7hS@*G=33Xr8IqY6Flx=x&rJ~o$Y;Q#75>HN^`$aL#nasSAi^dI64 zb01;A%$x|@B2%1Qp*m;!=gzEve|NhG-=vrR-LmD|y@&7H>0-g!)&Jx1&UF7F+0L%q zSUmkuJyPpO`YY4o4K<_GnPYGx2|Lr(`bH9d_Cl`C&aoL1A7|@4>lj5(H?EVFsC8Qz zo;XHf#$tCckV&(g*x*r}>(12VVcq2KByz$yQ8rv*abFu3XMY1z6D@X-#$OPs}9Gtw^0H;0jtTFx#0+wq(l@*LibM260y z<=o}#h8UPm-|0)-s3BSUH*-?Pv$X^MV?^Sxgv1*jwzhrt3^XOT&mP0aHecaP#2^;a zbGc7L2ga=}uKHOzud{g+v>|K44z+>)$y$r$!8+!)S&*L%Y{nu%B(=IJ>! zEShzGKhw-kl>rR_GLPQ$dkW%j1KSnEfn?scqPc!aa3s!%Vdg7CvVaIZ-@JXn)6cRh z#rRnZ)}RW<_63i&F(zVgm}SC{W&rHIA9X>6_vKSs zit*dd@YyvQY~*6^6EXOo#_;=JWo^s5YTK9*L`3ETj<-g-bX4Cp(gqz)`pu?xZNa{1 zY?lr?{d!ZkvERJkW;YEr2i=xtpf#m@#k=>~_7!eFD}pa+A-T;qo5=3B)#`vrm*&f}nf`aad~wHroO6A6 z*W9|I7iav(-7tW4E|Px>lJmIHV&8y`h?(?eL%(lwcvES7@{_)az1iRA^QHTC<8NA8 z+P_DSlAknr;$KU1jnCH*s%dU&$!%_tEFVDqP)-Qkz+uVktX-YackB8$y_UKyQj0!% z^MzqqoC20}>2132=l$XZ-0W4?81?Pd+}aYY*{d+GprE+4xF`}XsVxlU1%m};p#rjs z3(9JW%SwX9g(czA(xRHZ>g%eTL(NO}s%dHt?!^Y6)dp@4dh<6@)KlWqR5>60Fm;;7bt%a{6P4=+DxBeusxbxxXW z%T7}3mSdRyL8V(FCy%gLea3D){RZg4OK1k>mpH`VF`~pkVJS8Wp!O61YA|$)Hu(U_K-TBAXr&yH1{Np z3UI&9uDKkZQ$Nmia@CAVk_`UjfSQJQ$tA|jqzcf!dqBPAi#T6f>+F8EGc#jHXKKc3 zXP14P90EK%Eum_r5aukcXKjn7wn{#vP6=MEM&@$xrXVVubM=a-@X@z@861rK`HFH0 zQ1c!^(G>9?#ztvnKh?6q*@H{R$>AthE?N0%5w#Og&dKj^cFj>g<5~&*mf*MnwNkDm zNpm<#_+E^9Gbdw`lfywLAi0jlcMYiLeNkuD zqXBh|o@g}rDUvA7`MUaXWk6lIf`)eqs6YEE*R}-IWrR-y_>zhqVy?Cs=p)5>>poFgg?;_a}kPm{U63o(!?8NeQOOr;>6K)GCs zJUJk9R8U{(?4>4lJA1Bi=3L<9taWzX$C;HeL8DrZ7{5sKGVGuGW}fd%T^pmp4(Gq{eC05@dI}~6Io_H^ z9aGh9)c6fGDc30@=K7ot#xPGX9`(lW?RfAQGv|nax_}`(TyB92Ow(XKtidc)_fXk? zWf1@FT{;h(7n?TbRXV%v6;PkGbs9Vx6z!?bp!lv_;#=MYO3TfV=9u8~jytB~(wwnb zO9N`2@O;Maw?5{f?kzD>W{?w2cjV0I6aI=HNNB#XVDE!vbn^m*z4wiG(!acqv#( z!3e+LTFMbE(k&J!9Xu_7NLAov-LeW9j@wl(LMW;pUDhd`zbxH!{`*>HztbO2^=&bk z-L#-(3o+uDNC$S011E_7>N?Gp5&22HIGv8VqivJ`A}f5htlJsCZ$K>+F^uHBBP|jT zDL*Hm{y^+J#VqVdt4vR4Zfu13L@l^N0vfJu>!55@ewhuU1L_QAkovVO5mciAFSUXw zNNw0sg6RuuQwyTa$=Z~sL)A4bsMm@t=uJW;$ZcqiR`IonG!R?U)YuaLoKpQdP4vdA z-GKJJ%ew+9Qm%IDs?4cWk*M0Ky*HX8%+04F`i@$)Q)N$%id3qdDs;h$%8Z<7M`a{R zv53jxi=J}*F$Jk2N(Kpr1UkRgpR40TGUyNg#A})r+y5@-3fVWDQU4u?b`gg&pmsx; z{HR>*ra}2pRP7c6CK*P9!J8 zbZM@sXHGZu%&k;&DrlI$bV<#PO1UT<>yD_oJ^CYCDkE1Hi%=+onsUTb^ z0e#aML!97yR`dhNMOty^yE~Ti-SsP?5(|o7a3n#YW(8Wgpd;!8qt2*G=MWO;P!)X> zfpeTO)0|+&IZXEsPSdw&ARqH*m;li(lzmzgw)zz9j5${tCxXT^zIGbC&I!`!sP4WE z#d2uG8Fenr%9q`I7~!L}+uI);|8VFBnXKbg7R3DX6_qF*75p;fBoK*+JyS7DD?hMDrdW6s@>Yy-Mw?S8R}9D!!DG)Z9+7 z@o1i_SFDSB(d}gS^liy0LJx?_2h%lK-QzcR$|O=%c9wd8kk=!>nb5Iz=~z1*Yp3n& zOxxWln(+E5@MoVJ*R>u#T03ahB9z)_OEo*$FT`~&LMMA^UA+#87NK~h!lvmX*fSq* z?S0Dm8yG~Ksq>+9et>}H;(7qg(H)Z5|=Kqyc9_XN5EvsF!(+9gNTbnqAT=*6}! z#(K1Rg+-|!Q`N!9UNSQ(PYF~8s@+%qbd=)#b&og2f~wp1td=W{GI8T4W3qBDWCy25-v#e~n&!mE-UNV--FYz*CsbH~}8A}C=yv$fCztGE!r3$>fV7`}(O9j2m zU|iD6^b*0+QWy3TFO^^HC4;eKELG&aF7#3bUMiUHC1a^z(94XaysZ4P5*LbKsh5nU zf+b#NezBK~rHZ_~V4;_crSc2B%vdVl%L@i$NiUV3=Ow*FX|W4sezBK~rHZ_~LN8U| zrGoihGL{Mkz06oDmQ_~dHCXB;W2q7^FTdDJ24l%sD!<5kA4?T_dBFlN8B68odzryl zGL{MkWA9_BJTK`bN(;SSl*E$7UNV*{^70D3RDqWY=6lIlDj4)KV<|7ItiWwLSn4HX zsr(WzGZ;(8QpK^?MP4$N$}jXXW2pi!FPQHo<5EE{liddoIxpoV%JRLJrCu_>#7hQa z$yln`dtKzE3cXaYz)Qwb!F(?>mMRE(nX!~))zmk&v^Ixldav`#f-an~RIt>`jHU8R zyv$%M8B66Cd+%eZA}=pk=p|#R`~ojC7)!=d!F=z1EL9NnGK29+w;%a=vG;LZ_A<-z z+>*gkFBwbamw1`MSTdF>_FflxsX{MR;H853UNV*ndU=v?M}u@-OVxtra5TC^QsIUL zBo;)%HWh6SHMU?m302qC*YRdiU37j`O=v-=MxMeg(Ygk98ERu$(I$~@b&d1bKWJ%L z;)^slHB_}mBc=BF7?OwUH{r%;vu?9yeyF*sx~a9XmTd=Lq`s-CxhgRaz;qRfxr>@Z z3#w|G7A)~$o~q#|)VRb);{Y^|K7^X1?5$MQ)Q4JH>LN?rZH<<2sJUi-RrQjpEepL2EP&KALJ?zv1pgydhHN4HCMZR!j zO;c^y;8&hyFU?moKU{O1*_4vr15{m0tFJMA{q6eB~7hS-{Iz`CRATv z1;NA(ygVHm4L2Xb@4=1ocmE~P@KN=3HDP&(^~!gkXh(YzXd-}gQF(<04Og+Xm|RU}kbU*+X# ztXDNP*D?x;Z}jIh#;8=)hZ~dLh8t^Byh{SOs%e4OiSXhOLn0aT!qFP&9H!Q9R{%BqAT$SR#ZIZe9p2$Z+(f3oow^U3hO& z(uMan1zqs2wr)uk6FB4o#8@r}^VA~!Y^ZB&Z86CO^`wN0SI<;y@zplLw3!5&$G7+nfcv-jWWxo{ zjgUcdEDht3;;RqCJiRA7tPoX;Zy{7ts|n0SR*TLT_FY#Gl}cMt*n&^*2rx5Rj%z`% zgysoOg;~Jz!L<+4N>175P>W6IF)*b~PtAu5!ZpH1tE2&2(hQF&Dv*Sl!}g8HC>f(g zq2}87tm;tBaq)Q~2cbR~Rvc(mi(paG&$v1o>RR+ffe7N>dex+$QuzrE#btcgM}5Cw^CF;9u=->iTgk%M685}%9dl%y1vs|AItqg zxF#WwMw-9{(x)Lv*-ZOj=vK5(U-)<*3hHsK3w+HoA?TQ|wz+A6a2l5;I zAGbP5FRfbulV9Nbq5Pt7YMfi?hJI$m7YOt1UkB!D4_@FyJ#Q3sC)(t51!|ZXCR47l zsZsc&DC_$7m?K*2n`lmS1@xmP28HCIl4@>kAU8q5%e!;YN^vDBCU-zI&okt(?Y(XHlroR*e|H4F)t5y6OmS}|G|DyaqLT$7d3Ul zqCr(?o>Uc%hU)Yae-DK11K)g|gA+>45#LefYMxGr*6Pzp za~;4^Ifb=i8bgj74>2ubmsH7*mxYGKibfPIH%qqcH3!xb3B53i^2-nl4Vf&xmXjPk zW0LaXKK07!yoIo3FDHgMbpCqyMRW5K;U)4=CosF~7dO-6Hc|o-v+E3bI)eYQ_|Y;I z4LMH2THY_h77bB&uTFj|+SE{2vwu@lJ+q`yI#(}z2spx$l9gu*%4j`8MPtrB(U?sM zVVM%LY_U3Fyq4#JuQ`#>5K~N61xfj4jp3~eQoi+8AhwxgH8Vx)?%KmuR=ozi7m`5Q zvs7Y9E8H@ko!28M=Q9q7Y4jZC2V^bGl;v?V55j~YT~XpKy}M5b+T2imGddWWvv4~2 zFjcfN+vYd5*2DOiAP9W;6qH33htxM!^Akna!p{X!bR4w`Q_?H@7PLKJbE2j zCEALNt8fC%)%1Eqpf!oua?V|HntZ$Jt6DT4*A|qhuk*1o_ccc6v!F+2if$k? zd>%xS}1bU^vl#CDuX)yl%b_r0c; zC>n}Rdwi!cJkPAYWswPEkUwEKx3I-lS&M6JMJM3omQ&Ut`E-`%DJJ=yrp6y4H;&Qy zh7%pC)1JWAeY2}h2w!WC?jzi}0XE@lS%iHCw_iyc(h>pB#F`(%?Yxd$t$ZKaSi|~I z9)PTHPR4nY=JTs$Yn#JWHm*TR_g4DeB=A&lpx(+W( z;F1T{tY&eqUu)IKcdVGgWbPs=#r_cXg{sA@ShtV`J|-qsqhgkWd5bb4sn*5?p}J;K z|6AdV;;Jm4(}7@dT$UC}Fs~XI5hZHFn)^#K0{<~=%Tr8iP@X*gVRTiUg*vENM`D)N zNE1JaWqF^(vPAo%|FUqMC&oQlYDj~OB&u>^o)#f3Mogj#2(jz3k=7_Ca83OzZyV@8 zX}wZ3T7r++B4z}bs(yiWRY;_6>C$@Xylfq6mSZ%=qs5qKrj=%f(sxh}M`capt2R?j zH(X`11coXNk1la!Xwk7DH0B>1tsfVWhJEu#>jM~m=h>vOp_z<^a7#;w7uC_`a2T;$ z%kUbDAeJZ5gXHV*Jd}LHaM5{Mnp&G{!kGTP+sKbu$ZFXvVl!q7j13*VVbOz)IqcKP zDwBp#>m@IKDQq6xm9JF}=C!iW*5*G1(|1WSO#ZcSatR%-wQ&(*7`27@ZIUpM zT3<6XT#GIeS};G{AW}{S#b_ip9TQGf^6J2F1JfH=80eO|hFUbm1yy2Ri8R%l2c6K; zKpWTV8nwEL&6gFhx1bV8+z|@Pn4n)G;3czGsJv-WBMGff*21simPil|`jWd~a^Gpb z8%Ad7WfW6RTg>f~ST8&UOq={-PbrkYxUyA!^uV~6G1`gCbWIPj7TghwD-^3XR?P5Q z**%EmG5mF)!7RT(d)1;akI;V7fRS0Nm-jM6Jh&?pF?7Z>Re5mrHH3zK*%D%!!sG0t zCp)C92Zt%iY^n-j!wKuf7`g+*7Fxn0zm_3^WiW>jf1=#es6&5vP}LFNI`XiCj`UUi@H-{Js#%90 zJxeA?Zmw`r{u=9jZtelDz2h)u-K^I9yjh_Z{bNd_rsn4Awg0R`j-FM(W3Xg?O;L4i zNkM5*xHObsQX7dJB#jix2ZgYX=3+4=Mq5fHEjFFfLv13M7ph$tf(;?=q?)|ivXZje zf>2FaX{aW?ngT>tQJDr>mKt&JppfL|n)-8d4~CDSf9Tf`x&Eyy6+lZh=~9?xA_bvH zBriW$9V#g(tWIbqQe2pCaN{*YmQ+x}gcn09-`D2V6xJ42=a&=(OT$#9ds~!epexAN zt@gzkJpgfaY&C?I9NHMwb(;B9Ds={HLcy}qlDuH3rnWd9rXtPm^OHJ1tF@?l*3tZ} zou$VCV?4E#6$J~bi-O_eP^dOo!$G$m8P5_c zR)YC9p@}XSjMFB8qX2TK;p3u68Q{c!F9Vs3VOGx4hhTm@iA!%vLiwd^V3*OKvPjrc z)u#8RI=?IwEG#XnjewU@TTig4AZ`wz2eNmQn|q}GmAP^BtOI5pEMWCT8OCuTxh04c z$l6dHAJ)~jhU#O}s&AEcy15e#n-ClbIT)s?gLG5UoM56r69zTtIzdHo8Hk9K<(1YJ z7L}IRE^HRbLB_H?qt5(Lu%@Ou5-JGQmWGO5wB#8&Hn7Ts&CPZ9403Zt%cH;im3|(Y z8a?JCcS^c*J~!8$^zv1yD~*AJ$rPz(9u*e{3kwR}zLn_F(JVSQmw5~KXZnb3s_%fL zH>OR;zhZv9Y=Zi;SVoj5a`(Ahgh`!@yKnU0V$=DlRGz6xABi zD>ie`phoi@)768t!gXL+@Bj4&otgO3cj1|sVrI3LR6|_+v77&-nauJ>04NKGtBZ>B zi)uf0c6f0=P3to88{h&&kv8npP+nmqk`Jy*sv|}D#kL_k zH|m&}eHezW&N5oPpZ@J|J?%@S!C;&LiMsO(3JOD!LL5HA#kEDY?lLp7b~0$$b9B?; zV$v4Hs&9LVB0PX zot=-1%OW79tT;bZSX<_PT%@V8*brs$QJOY`L7`}7tn6v>VL`AqQV*lCM1{kOvjmN!wx%|c7sf}kw5B?togqp0V5uPvJTN@P z5A2{N4W^mRB1o!^g0u3^GgTFI##=+IS!p zM?#UBqMG8o(oh)1#1f65rPxTdVA+ugf>KMbQc?b8g+vWSq3V2yzb05#4EL>$tHGt% zq9RQ@o|%0V!kpH~F-Fc_*l07o>H6cxI)Coqj<1<2^ndgGfJ(r2*`P6`;KaA|Q~KKe+cIsqrJ zk|J%(V5Iw4x%jlKsI(R#P#h|%iPV(Ee>#YMop0ohg}5l5_3NSbJR^oUE_t;z1>qnZS@iZITWwkVYDR0z zxw(cL9g6NgzXv2dddcDez(0x`&XZp&dLBO1EvPH z_dqsNS~V#iLfy4hoz1NqzR^*%r7vIWZF zfs3{uvV?JY3;eBcM4q5j-d1VbZJE2^+;ATwTC*;CcWbt3yJRe~w#>#1kil;7Ma@Sc zt|+g@Rw<{h%=&g>$NM|mySO072&cF~51++mu|j2P_8&vTPtB*{@QmX(nxB^|B*OPs zi8l_o;uG~e0Vl_p_fy}qTN~nO{ag_cq+eN=^|vZHvcL8E6QR2)kGaGXY2LJLUnEI8 zHo3n|6n3?1*kzammsjfX$r>2Dd>)EvD4V_-@@Nh4XtjgcQrT)oUE>2`70~u=;BpoN$%O6XG=p z|Fg1$LaAgOt}4qeFVbY}>#6Og#;$UZ)_epS>4$KG5qS$y34EgatQ;kIBy%t^%8cF- zUQKP04MW$a%jmkWE;_aG>x2d=ZwJ1Rwn+~VRVIUfPIny1DRWIg=pIo`BJp%qjLp<% zeV+DyU<;{bmmZIMb^<&DlE)siDH+PVZ?mKUN3-c|LoCBN2AX=hxv`l28)2^P?|hM8 z5Fi-nQ1w;X)&twSuH4NV^GaliD_FGK;oq50xz9?>v(?F^i+8mhUP%dRZko$K(m4eP+CfxP71Aq_b9uYEEMALAOnrNB?x4S`ypvMA69N8; zp&W?-hbjl{uC^0!3Y{%CX&D9rKJTU^OZp67Jaq$AKwG@-k%QsFbN#HrHVBV!Nvg^h za|iZNKlxtweBLSY1HL zkjLD3ZX%=f1s+e|p|DtGpk+2IU(|KZirZTslS{ElgngCMM8dHvl8T+}9|yN=TXK-Y z2Pq|3cxspGg0x(IYkYlPuNm9Esq&)8>jd0ATuB@X)ML1^k?gM@(`=y>!2#x4@HFHo z=OIbznuvaL?arQ>Lm7m67W~u%Q8>R{k`;5=mcb~e@)hO7&(urt08B)c6Y_U$TadGG z-zE(7V&irqQ4za6=3R@e##@paowxi}JP5%^)I`JGr``L}HPAEtE%^R8zS!Fkct{^pUp?;PVxq8tt8J!Z1H zTqMZbtSc*t)(BaHH6RDF>}j8OKEMqF;J{Cx@h_Y|m(Mvz-JIiLmq5(HlK=-RhL&&Zo?mL$u^g?2)EuPKHp?EoMGKf=AU;H8>Yvv`~Ro%D4+ zl|bBWyS*Sy1Fq|mRl$dq$TaVOHo7Ld24|&qbyfL>ej;cY|DPje1e{Ya z%#PQblr>%`#&BS6q8rM}tAv>R;Q{Rcrvjn-t0<=uP=B0pMcgG3Q7Cl1Q2-E5_FJj5 z-*1$Y5KvuVm{}S4Wj*35&Vq#i6jB>EH$VLLae6cE$30vGLk5}z4m(XGG|3XFU24NI zz0GBXTT1l5IfmF9dJ66Da>>5%*^nHRI5*8IgsF{@)z zW?3)vl(J``+Y9JVUkJ7|DbN`Jd*5-nAE319-zLb8U*LO@t1#Y`+jsDs*w!ULIN!4l zAL^nU063m0%{%gfNwU0XxzdUhXOm<@n|6J9^LP>y}yw2U#(Vo=fjq9YW=H}+_LFv$it7U*v+T!@Za%eK( zqQGHXOq2VX=S`D*TW^h=6*XIwr2PmY#Gap9z^L#JJpCz9;Q*wqV2%RnC541^i5tiz zo-F=hgL%Tl->Ba;w)dXEygf$vE(PE|S*L!2Ydq;3L<}5?JvX}Uuu@CQ(!|Ocsc?E|zxOrPX|fiNuoB87Yldb5vxH6wh1ec3bP3`NxB=8Z zp3M1gr(l4w-i=8+lq7ZQ=pog5zQEc}^DV4J@~TJ*tRguFQWN&T`qm1j7+$@sD932X z7Y|B`Ab9N#+D9W;1T36ol!!KGhthWtF3C=a+`t<#CC7$lA0qZuHBaPu6B0wEf65o4 zxT?4~iW^Ad_Bl*|Dy;#O!bx~Nsyp(9INgg1j(u6UL3d<1Nh=#wE=k)0uX!j~KyYO3 zA^vkg%mCkL!pk6sk%Op&bAmZolFlY8(0)s`;af?HrHzyfYi;_nNLU~ZocaW?zkr*I zV-=2uF-Tioye6oj)k?R6#C3U5j#*Pns+CwKnnFj0O>;q!fAmThA%2|BCG63G`NS|M z{+6$B3KNteC%8fx1OcWbu)JayH|!9hx@))*8AgkF6QMg#eUoFsDp-W;NT&eTG*QI$ zcDjEOjxYQK&KcNfT?hZg4dAW*VQi)6j!e@`0>*@N`#ZV_Jzt z9;M)oN1jRU46upwq$#sH9F>1KRr=CuIIP7lIYn(CAfhhA&of|M40Q`vFfa24mc2cu z1Bk@C_Rz(@PZ*aaY0+BFLY5x}41QmQ?dq~|sHV|ItwQ#o&Lnv&rRzC?mn#aE!1&=2 zLdu=N1bTOa!a*lTWQ5buN!vl^BP(1bEks8@l$@-mmQha5O21*pvlTUD~1886$Ao5&9;TiHE<{RH&QXDS~Vv=coOv5egE#L_?^OR0HKz;@-HS7dOGfb!p2sU9h>8 zCsjj1hH6<2q`D{pvIn!Pef+<1G;A>haZ~8F0^EyagFS5bEXr3_V zvoR-gpR|N<9pAPtf#~$Zrb%ctUIn3?zUYkr;0hKAP{jYDx)Y?32lDVuFSFf-vwTrB zc7pTIh8@c`gPRWlJ`G1z2XT}5Sc#?4`Db2Y37%2TnZ#`Mkc2};K^8exA#zSsNFx^^ zT7FD+JEpj(dER9mv0r#?j*C`^)4@-TL(x?f5~gD!e0uvN&cf|N56`@~C^;z~qSH5y(ha zyBoEkYoU+(>F_`RUDJq-zV|e9@{$FUumY*s{=rC^{f=(D#hI zQ@yhJ{W~oc;95LrOtT`JBJb@L41j+2$ zkElofDJQiuc?vN#O*S=D;lbO5!0w+$eWjci-9l0Pl}20{&c~udz%T>~V^vUD-hi0+ zVQS}cA5#K70(~LNQ_vJ{G-n7AQ2a6u6IGw?c^Bts`?$_~IiP(G1pky=RKt*sluw3x zMC{?lMY1$^Yz)z6;Cb?CfHXT6KrvmijAN@+OhqE zklFBdemP`p3?`Ejx^bkktV;-NAZy$x(F2Cj zrh3=NF5%3eGja>Pxct;sTuy#IyS8cZjCRt?V(SY~h!5>?~tG7CxU z8W@bf$}89Ud0r)N` zl;w~HI?^S2_MF>bdPAE{Bz7pa11YZD01<audL=tCt6I}_d7v=#ZYBG85(j$TjX0VWM1nupu{PKK9LGwGf3N0jkc(@2i^zP~^ z{OSk!@BM~2bfQsR0IetPq8teu8@?2Vrgo)4)fV&4@Jf`nqq3-h-W!kG!f_&x-nP}$ zB!0-K2o4KM3dkr`bOD&H(`m!UU|^8Rj)~124`0 zRaFN(9Sy={1qA`+xC+r(d97E)l+QyUk?uv5ToE^-Gxu^EoT5 zct^T`yc6ZtZgBJLE=h9gvEj^=BurYqR@qiX)rUjn7{A8bzRI)-TQzVG$b<2UAoV>u zAcU+<;kWdBtzW>3N>5M(MPX`OdH3#QDG&26ubI6ze4GNlDSz@I8wt! zR2xpkOXm{8V^lSal%cYw;ZLqd`4Q5&L<*}NH7IJ5)C#2;pinu=8#auyTzrkKHRi9> z8cX!5WOflHV%hUwlj__GLB6~iU~h8P)DZ4anu*@yB}4A@h*=6X93g7VfND{nz&+8~ zNRzNC$w$jLNZ0eVt`GPiN!5J~x<$0z0ucn?=cP~E6kM1lFtvLMla`kW0h~jBdiluv zbHTs-g;0U3SS6-`!@zkogQhoi=Ho;U)Xq8b>dhK4fTSApF>m4UxbY$NC|V)UB<7paXXN3fm~Q@#-^gEIbPtErf2(b}rty2x zqJ2k}`!tVb^K?CU6m;QyLU{y^klRvGX|f%?D`9w1PNpP^6I3FR->Zb@EpCxy?4=s5 zFt&w%8e0+E>6KDc4%`Z3YSBRhJE2Y@ZXhsUK!2eXvhP~XN>;<7C@9T;zyPq!gkDNJv zjpUCg0E(N*5Zq(t2p^#hQ^ZnGrRSzH1o)2#xM{vO*N5f;tsGh;3SQP)jd1u}GFq>g0mPFmcr`l?@4wWE`9h@MTv3x}5pBUT0nRzAw zfeSn-(CE{g!#Lcz-Y)?=OJ<~f`>GfyD77bv5F9VrSb%6C>g&5+@f}La-{JnxXbn`9 zx!ASmGdq5T9mBHQ6EPhdHW1)aHwYRzhE9_&#V$kxgj5!A!x2sxGTK`wdqQh3xCU3Fk9yU1-BVo$~DLe_JqAcSqYxbvW=C% z*Y9K{Yg?)pO?cWREfyD@upAc9e!Q3Hu^b_Qhj9yujCMf^)Q$Z<3ILx)#wM%-vjNC@2jB!wF`7fvF4Y^(971%rl=0 z@=h_K&DTRcCRntK%%Im&qbYpt_Ma-dZ#(KctLZYC2Nv9|2$Q0V$5@n=P>oq+1wxvF zn8&MU3kFCLtxUs4*0>vTWEL`fXhh`DA|+vXF0QD8!AM#vor(L$wX?uX{Dqp-3^eY3We*# zJf)@TDqD9osXpTJglr2|9#oyOaiEFd{%ptHgl@5J%fwE|@_^swFmbc44hM4;VS~uXKf@Z8nNTmnH165~olAAj)cL$7w z5#AqXDFPE1uIQ02HCz&>iLW=1#e_*{FBO$W;Zyr!pcm3rW@mQf975_0?n)0K8b55X zTSU3ijo!k}b5c9!1P=d9%ARA=l}2eSVr!=8dr*sl>^&J-_CWA?cm+LW%kS_wpVmy> zI8g`%HapFveo%#9FR^82piph_#NzVWH`Qmliks#-Gem^65g>Dfb4xCUCl8RS?))|o0#^oTorKm*nh9_biFaYF| zgVB~EI44fAnN1C^oD>F8mV9AhysrshPXJj9bbpd00GhMJN5a@g7=P~Vj&V_r2Lcxq zbn&wGC*|)AHChOvt*F-0xS+z2>jZd#(gUUjyV@dq9Q>2zA2zpeCh!Cr2&Wyb2;9(n zfUwjgF2NZgGuo@xtxrH&|*hCJ(bbmmP(Ve$=c zO`pS8m&nKo`P=u_p^ZUP_yhzqFwFspDM?)iy{KU5#SoFPv%CR&K)NbP-1v>54%eOG zyJO^V1t3%<$G|`W7G28DZCPDf=bgz~%c#Ph^)fp>D*&ttt`5S!ZnOoo-FiO`OgrKT z)`SElt8$<=4)UVgwGp5DSaj|Ln@^7`d17T)nbDz)&R^kChQ6OI5z&sw!{`e}Z&7phkX(t=XpTmI@v?aNjm@Jkf zs(zug2;)~4DZ7pIPw=2hMmmzxVAasbf_;FVIIVl^5|{XJwja;#tPbKyUL6=wHm0Z| z^bML}{&B9Ke^mQXSm=pIVSEzytn+_i=qJ5KDBhvMn}iQXwGQwHrrdx$$qvG5?fZ_D zMDTzb=WmR^DYblyQ?rdsy<81JPL(69QclyIgH%ou#y~|;`FDqdfx%rYDo^t3@B3{j+!5y>7 zJOQ?fkQPxo&%emSuvDe#~ur;%#GE;u1eiD)4RmsXS^7FQx~D zSc;8HIu^kDs%@Z1wPg!+Isqb%04r^|NaN`6=tS-g=aQr~wIkpccJBzFTC!I`YqQ<4 zd~%Ow$P$k!`X%&EN`L`^Ns25#d=BZn%EywH&gf*z1S3w}qBVrB^FSisu08rvK-Y?5 ztBOlO@i)3$Q{B^G0X!zSBR}V`52FF5$w~t(?jL>KrDum7w3l3FYoQZNXk!bJ!tKw{okmO2$c zfW%kmy{0UlXwdNZe~hZyNeaRwqK{UI*r2~C=E^D)!YB)77&qcf{sHu zcl1D5n4KrO1vZTpM^sH(spJ1EcGGT<4cN67mu{1R9C6@F)IL)K407u>Mp&f6^7bf` zfHYM5krO`c5$uPPCwQ?y z*o*SRoFI2V1q$Q@5rEL09}Az$3p#mnK*s0Cx7um_VsZ*OOgMzKD3Bl%Trv0D)1wcE32XC8T^5nL0{kS|nJ)5zPd-v|`#?dNJzVjRk{TB9)|cZNbWO zMg$MUW{?B4aK$lkRgvu!CH;i1Y@|mDgb2ftwlmTbh3;2hE#ApEUNGc%o22+VH)3?;?;x+x zkneAK$(}l^y-j+M^i4Yf@=gU*jo^dGv6;Q^e(NV{o22u6mi)K;iTX$Wus|3KLPA#} z#J0sT$GL-VszXIeLWcrPrzUcnZYN0vKu3i-99r~{f+y8*>11Ex3V_mD5<})793gIm z>NMkXt?zoGbSfv%rMmT&xbLTDk$30Fp(hC0;AF;O2uBEgKi4jXrzNK+UgPuKM|eV- zc#%^a6F~F69>E?Uhaz~4Gj9DRZ8c&UrCR6_6%c(?$jgYBq7J`# z1)rr(r9O8N=wR}B3@U74b})Zw4MjA((n{wYA8HfeL{4>R?L5r5uasYE&WO&sjM84* zdq_ax9Z#KzPQV5(vb6n}s2h`@Ab3gLT@)R5A33p~Jo*ck?K(svTYo#;b0YG>bS8k` z2W?_15hD#pvD4utlE{vIK=Y}NmT=VC_6Zu(?y;_q^=TK2G$W-==#in5W#dG)DN@;f zfe5to*eaf}M3z|kSZ03s#a+3|FLmcE^%*z~O-92x^ts#vJF2@R$#*?xsoz5t3=S)w zfqE1ar$7#{>vYu&KIREShX!=_@f~%n^x;A~cUF1|<6aE{_wEWP`js6sho>O-}p%IT0#jk2eJTi4>>g*<(h?)_|V~UGcX@a;5BpFSlQ;};*zlbtmbG_^^LPr`Y_Y~at^i;!y-0l%{TdOtqkmZIpJ~DJ z{Sg8|1BfQA47H|x7?XWB-$9#up`kYjq)}|EFGB++~6R-*oC7|=Pr$yD89m- z0qI%aUp>7I@ah>#JE9gWQA`j00cfp6YpP%v?U0c+vauCud^-(KhBkuLKMjv}AD{0Y zMDSkv>wt9A0vfRu0J8N-;^SSt0i6DiB%5GsQiAc~W&i{g;UlO=v>Wh4UqI=qp5Ec0 zYFBsi+fa0ef<#P7!c!m4rQR>oPu|7~-HfvdGrWNxLYs3N5x&J4X^p3!?><_6Cr1;% z|M$DQdsh$g-JiY}>~85`GCihzIe|o>L*v-YNr>WRBhRsZ+*dmOHQcrd zUx!vwgaF}yvh4TiT@+2%FdZ%21d$Iy2h493UHqb(MG+su3zX5(61$GC<;LE1kYDfK zclY(5?N{iGcR#&*CIGzClaB=smAGoC#DmnheFAxf7b4D5PD)$n^4a;XF``M&eP$%sY$|9xvK_ zXeoj1+c2IYVpe@S-LJ|SU*gy-f=!$vaD$tc3Sr6+A#c0kFMuJAr1cK>8HZ%Jv68tGVJTb=^#76K z)z|rdU}Hg~qvIAVDXK*Q9D?r{73*&M3COvxen7RjGZJ`VcUf?td{6?*R{R;T2KVVK zYwnOS_sf6XKlI%}>6ZKFZ$xfg4i~vq5c9&rnj2|5(^X_E-1uQyJ%n`5_nJC9DutUy z`C^t)jDyZlFez)JV69Gtp$&ZCs#8CKfZg9N<*5~PXF3`~8Sx{036W0{74RF% zCSx^N=g-zOGmzr(7F5;JbMOF2jDf)eB!mM=>)@J-BN3M1>q^5WKua2=(nFc}Xuac$ zHP#hfeBcdIR*d1u+@&XAX}Sx(m(!n|uQV;hxT4HP9gW^DDx*>F(a~xV(Rd&?{ejZ> zI|{7FzkZAj=Sg8}I>jIgiyuZ4Zi*r8HZhYyk_B$K*oZo=G3Et<8h7dpq{pa#y$idesy` zu;Jk!pFeE!4V!yO(_8As^eAgUw76kO&X~TS;hTzW*R#RUq~(4ts21%MJsWm?^;8jT zMJu2#i?%9UCe+SSe+Q?2x;-rAo9hG;=gPWx{)gI=l0RxOCP&%8$xBihNR-`RALjZ5 z1xrU@14>RP1Hx|DN)45Xj;ZUf?Uybvom4qwB(hU~zgHA-^exahT;L4<7y-nuxiIGu z9;ZMQkmW&ef?EqGtvRef3oLfz%YJwwL!^6g{vb+`Kd45e{K$k zuY}56#8jXiBH3yKM-)?S`t`Gt6ux<)Eywc}fD;Bhmv#g*dZ$v?sS7nt452>}30=}; z^Qy>)w?uOYxmAi@K?bS34Zi+Gz}HDpcgjc5yXZ-Q63XCJ>-&9~lus1rf;Q8Ux}FB= zkl9dnUuV#5TGdlr*l^$BM7@<$FyC5ZrO=(Lb7opV8mAbF5*yBvzDbLuw<9I5akj3+or6Ni7;6 zta42=qfsJ^6IKpOmu^rP+5xP|U%N!Z+i+0AC!T*TUpF2-HSj3yP{UHq7y$PGQ5((Z ztUs9=3=Gn0TY3<+0zU!@3#F=V@K+e;p@b4bs~!MF>ahJdvYO6R${v7>qPIB4@5*?2|_ z>DJ<_391mLiq36R)C}%so(=Q6oq-j)o)-_|&9+_Cf`*DuK!Zo{@p~*%SN{i zy#p0xOX%p5(B#w^Pl3pH2ipKr-1pL9{?X)4Ud|k&>_m|i zYoB@`mcQLm?Tz^$m38Z_tXZ#dP6?<#OaiF_`qKNA1{}~eY42_q!>BpKk%)2$K^u}E z|McCTP82W4=JR?5I1x-hKY;9BRie@pyyB@7X`{~rT+zZFq@#(5U==oi&*q(6oK`+e zp&bnFe|&tB&zxpT=XTO-Odt?9&OddZNcB@j>L&1@=LpzSehEPl?GrR)25JE*2X^C` zd&6#v)q5HhV+Z0wjT1ayd`g~(Xqw{2lJew)H4%>BT6G;7+$({Z1NO0omE0d-hS(cq zSbBEDI|w`!-r!4Ab<%sD7&8IFBYcI3XvRU0wfvAKO8{V0<(%F{h?i4H*CDDOKI;W^ z&?>KSFj!bv-{@Ki9vnHL#La(xs;EG3ex)|)?kCIPAiq8%97w$xUh(eQEk^AV3I_s0 z(yRuKUX?+$mMq3P*@}A8W?W!hy)U1pLy04mq61zU?bP6>1sW}$(X5jtO$$}xiJXRF zE!i_Son{lIE_i3j)vZ>88<)Hk(v6(~k-qDY9|xG~TB;p`+rB)@sN3Mcl~iWsqITx4 zb@KX$eQ0zgJF%hv{&X+9)^Vb0#MkLEMpWI?Cee?jA;`7)BS+8%`=#+Hd9J>PW0nPP zCTqa+M0QmQX+GaQqDyu6V2l$uqOX|11*PMz3#%b)gXa_{`o6KtYTg2|of z+u|O;c|Fe03>im%|8##{RU~);_!b4@)cYlLEz%c67$-QdjU7PV3&zyxR~$(sq}aE5jCPM=lt`ks1THCV zT15;KJl%`Q8o&{n&LF~q$PbLN@KT2u_<8emJ&P99tQk-5ApCGx!O)KAt3p#tNV$wh zgTKJ>I*iAio9*sFTR4yxavq9wZtrp4IOKtGKp`xr22@%^=CE|vvqJ9UxR=h%Uo;aN z@jDucRVXM@Bmp-i8XoIP%aQT%;UnPlt>)i+S^RNehD_|8c*5W5uky3@b5Yd(21_LW zWZ;FY7xmD{w9ym{x*fp`x++chB$uUv(?HKzj4EYzBv8@2KxnN9hkJ49wIt`sNg(8% z3~hX=?DfrLJAg4#%5b~Af-izU1=o%q^6nAR)Pl3)DZHu|*BagW%Y1CRw((+qy_H9N z9p4hcOzCHmM>E1}9l1X4yexajvsIN>0xps04VK^v2plF$&H(}o2R6GG>(h%o0IihK z5`^pKZsKAgJWxPbuNQ5+8ug+nn=)9J0l=dvE1-mpJX$p+_LNaiDHA-D@G@rHUy-|@ z-WG#_+!%UUnZJp{F;5bKYLT}V7cxgEgQyzW{#y%VsYFfb9!`}(feN*I<}?Y3$$Hj> z1vo!w2)oSQ-m&xB?ZO@$kuu_(AmT~Zl)OH|Z|;GXK&Dg(u$7Y3zX=%V990jCqcsGa zkkJyEeHUMh(b=An&JHmt4luAe;zOo*kJ1AV=d5E3>T>%7F_@Z;ACM#10rVpDr?xve6-%lGl;*{eJkN`mDE%76rNWfX+%``JD?T5$D-6K;K{>cb;qZv8ZK-PTs4TB;| z*@fPh=W8uFymBOVszy@pDU4uumng$5=i_Zu1J?X{fJX-I9!tf!UZj|i8=%Xv$e#Go zb%$Rx6~~#~7xx7O2F|aXhIIr}2py~+Kptx$^*8FA0>R}!Prto5C?W$mMw~b>N9TER ztL^J2%ex#0o_*IMtbqj4=H--BvjLsW!O`#Y?cE3X`Fc_<^}?1EU3_IwP;&4YT}Osx z^y_nX2#ao8`Z1@I-E)C3;&jlLS@Z zj9riZdoYyAjHii$%Q)HdL;HRA;ch^;>w)eLPfwl7?P6{?k-?G3Eg`jU1GFL9YlK6S zypV1yB7MOr&53ZSy*UpMWL zeu#~AR3S^BWeCDH`2R9=01g2*m!rQfsRwiOV|bV1fV*Q)k4T4iz5Ue7*_hjM>A^^5 z<{S5tw)TE3*-f%pbf;}rU$E1>ibpuxzFCahYsf`lNXS%{$dSe4%gR2EZi=Vw`4guy zZuqS|W+q-9f@`x#lA$sXSUd5e93j$yXs2~XDXw9Q0Xz3|i_C`m_-By#r|J2e@DGwn zz{4#*UWVLJ_*fU2e%HGmayA)2(kwL(m4>67;rn|x|3#ZlC)s9V$s-|JQtRm6`K!l; zPFs$4L*&!wb}?hzljvQEyS83CeFWnlB|#N59Gtu&>7 zFrhk2SsYS#>(=rlwk3F2&dml0BX7pW8$s9r81C}^$_gsj`H!ogs*rVu2 zgK#>!b5!X1cg?FTINR-cb9KF708W4OgGomvkdYL1@u+7ogpsTPAHRDycIi}RVMbOUV>x+EX~ zVhlzXGrL{-uK7Xf8DxMI=*E8h6md{( zfNv0vf`zhXlq@o^hG(tbl{190e2RZ4`X>DhpC!B|a3$K05XF4EoHDJY2eve#=zH`r zR=XhP%usQ3D21LPXd6os34aP?gmAI)zR-4Yw3cNtE`W+|koBx=>z6o&Jqu zZbnAWlzq0#9aVCztZ!7SfbXe;?%Nb|x6ajNW*AUR;`duSRZWmF1AR+#Is|aUbx>h(g ze-0~;nAT^js$%`P7azUo6MzV)6bZ)`EQa9Gu@76L>LazdHHDqTs2QaV=O{X<2pESW z9eYCU{ln+!QO=!J5w0TX3@57-SqlIXdzxrdtH(S&K0e?$3(S9Aor_ma`S`#qU~1=rP#U3!Mc{+<<>EuQ|g^bw4kHrhF4fGRNijCQQ_?$f&ZNLHWkPS zK_a-34dkN3>!S5@Lb?sbTuKrXA~mFmwjXeVdF}K52Eo@*AaT8k`by5kaFj2wTM|yi zp>C+F6)?hm1hXE_Gr3gWT19);`Oi^85R4fF9x8_$IS_k#|LIvhjROj%e$VfvSsmHm zbwpsTf>auIgqi?9;)w*xWxBsDU<5sK1ggwX{?+|jIBYFY^qlA(I;3E8v zxSrOABOD#L*ZQ=`^&FXp2j1 z0CBNJ@;o*t-W^}MZlVo&_k=bXpet-uyr7N*B)#N$pq!u?=zYTRp<}k6sIZ7xO~Fzu z^j0IPx6jk16|E$!0IU*{5`?T%Wsh2inN2eTYZCjSEXlE9=ql=gKq8u!7}4Ep$>{Ck zIF~4kpjz9f^m|1mmMVEVT+q4L9@>)7i=YC1%q^;38cZ;qD7H_egHW?0HAPvtei%`=JSb`t?B13RahQ+jt;AzbzBeL0KAUCG>ltlK8okm)64h(}42ljM6Dp~y zhROVk5Oqj|O8=w`)ly`5qI)sp`y=*JJ)#^xv!hE_2QL5``%;FKKk;4UxjE=vgXq|1F=nR*9B$h=@V!K=y=jZM z(+)@BuCLVIi;{1WFPl09)1hWU1Ur}q`5I9!mNVtolUB{bk@b)#aaBTtLNQ~Q$n|XA zV1*vDR2%joT`8y4v&;b&?kRPD?O7&>m_UYur&_m^pSs~_9uSa8Jp%@3W5Zj(~f$W z8?aaqjF6}bJqH`wPRm{Wuck^o59RZ%Tx>?9pcUwq zYJ6I!fi|tH>p1XBuY$l!s-Q_FP>PReM1JMye4#$ab`(4vCH*5Bq3hEfLg;3A)^B04 zEesIYg|N?SHc+}7WP^NI=a6*_`=0#>{dq#(2ofP`2;ui!T(`saBDa`{FQyRA)ubj6!8$IlJMPlVO{Jb?>_`-orIPQH=km!yFwS-P~WF zpy6~uEvYS#Ohh=*k0VB3qMFxGj9J{P{U0Z=M)d4SJkfn49R6HsZ3SjK4Pp$Ziaw82 z`V)1M?@NOvror>l-$3>Hs{ecUQLNX(fOT0;h_7^QnPkJ0ay~r>F_fG=EP|sZ38?gp z()t61U0U*mqsVHnooaZR{{7*@|D}rNM@n6M2QN6DK-{F08v;0YW$EC9!-^O+v}(}e z`W#6!3s5A>luSN;EVW~>5dEOKj!u|{Txh5y&<)9x?F+96gDqw0l=-{I`hr}(w9tmR z+Q6Plc#)9C^N_+SvKl3VI^mrDzOy6K{0ucy2(L@O7PU-A*n%MWYTL;Uh#DS+SHIAF z9+D5x0H-P52!F3FU>1?sqM^ZqoT&It0CT~bJO%Wo`}S2-{0*|-5D^-v+P6W@TNy~R zzaE@>hleuz4K06E;GvPyxgdDPGd+VZCNa>px1vW1ZDvreibnqu-6ibYuCryRw4XwWMV*Hq9k);emyOz;PNfWFpGDSWd9WhZZLdm!H z4`J>D@rok?EM%w)LLROXqnRekqU0RX%4C9O>3c$qP7~11-zRc*SKm#j4hP-a4p&Dx zmI!4b{EPAudKqqYTz`0=j4Q205xb#;jgDKf1K{|yOEcg4?&;Rm7s8q7a2FG5EMVD$ z7oM(w##}Es+Jg4}&cC=lF_8Qfw$Zc-hsr$Yn{O@*w>={!IhIk=WNI-BUL2^3iu zIAhcf_wG`+=oGf!`JxxtZ`c(XkOaCNLasY{o`zApwND8FTZqPzNw3*{!P9e0R2wMT zB52K{uUM&^nV+FQ`1W^QjiQH2M>nC=tQ(k9@PyRi2+*DpKK!p%!r72Hj%Qy*=fN> zGo%DM{7A>K{vU||$P4kR2pJYHg z`skoDXXBJ1#%~o-e^zGa!==&{XgG<|4Jb?r?B^fPhYQR1euV5G%EBG@&Kfoja2TwR z?X+)#J6BCta877acBz7=o(Qdro(94FB#P{|(q2RDrco?=3o;zljq^NgA82DoeM)a1 zej%6C(AEd06@HK(=e+wyA^yb{j8nBPAQ<6cz)|y$dHpIt)d(&E1rdnDp)_o-o2E8% zw%vA_7>j|dS@mngLS#TG;W6}0ekV336xyM)5NdS47}!RO5H1a*F62eI#L8d(M;_XIP6CJ=t{4y|V4uIiQ7{4E z=PJE&t?iN^M@zk+G}GkF|8ZCAMR({fg#ZOwJR-m0=HvRWO(;dvHO2+Dd%B8?|vL zJ!z1Bhe1H1x~0XAU2X)*{^8+3K3Y9L&%~ES%3p{fY=AJyx6(kjgHaVc$3=lI)LB_U znjcheg&}E7CG2f{HC7E?aqw!~Q;%Rm5GS;-1S7WT^(l{K^&nJ*F4?1hFyS}lv+Y9rA898-7f#CUG)~_<&oHwU;($a zrvc)264s+SO`h(4`fv;N?~@QRsh5Xc4z(3{h>*_SAflO?pX+^pwAc5Z|A}2NQpnch zK2t6`HuQVe@8W!D6{Y)z|BeSTcFsdr=IUF?8Lws<@Aq4=)$+e``kzmo5cCtY$EYSE zGe1fXF1yhIL-*`U#2M$~V=ZFnis%4p7kLRbKsmJC^&BL36$*@Ee?q!#L+Q;bl!Net>`G4f_b|V`!=FS-Z{SV|vl>EMxQ+E^Yk440ygigl!LItQB z->qpENSRTmRz{6`{4OFJxCs2oLX%k7UFR7F-#vVmzhxM2CFEDHcUj>s!Bc4v;v(?! zFZc@At3vXM<(4Amo%nG|V?6zd&f7xDjXp!H4FC4sy*#9w9C^U}>75v|yn}K?cLd>` z;R3m}l7w;G&VgUlE@jBG1?NZnt2go`mkW84$aAOc4Ao?6`i3D(@2JnL`a78b}&HT%q@r^p3QjcYw!CM{_lur9NZTOrs1W0T&Gf(ruOYN z{*F68RPc_aBqzulk;n*FhI}56jG33DMkZ7z@JnndnbAYX%jiuNa5yq$A`C&lVSB*W z@W8wZ8=@$50l`L~|JGCVwa)gdDsMe8TnJ<$nNp$CM#*(A@zKu_}(@Bmb*5-9iXevwT&>D;vx8>iG=!UH1)b(dC# zLR@NY?kOe#C6r&}>wCyvTyvRKnuWr<9lDYR-u@2ya4$e=FhIB*kOO)bP7B&YEp5qz zFV08tq^6xZUE{^+7y>P@8tjl7Arc3;alsILcvr4%_G7b2^t_U~pl~M`CgTx5>LqG) zk_)_RNRl@8?}op$Ar((f78-|@$diV$4PEcnC%>rTrMaIz+)4>6toS*!v{0itsxDX|6wF6)f1$$uK!d%)l)se_`5Y81?xH=-aF3>TkQ z9JeyO{5Z0|j-7(KjwFZiY@qu2(VH+y5LIrR%tBn^#uvyCNtjN9JK{coS18*^G`j^J zHY$8Nq6Ho~zZL>*(EXyO)iO0z6t&DK$++=D^jm#qM-SwrA~M_i4TnR6aKPd1(2{~4 z04YtsWn_k50(?WCn$o6kP;%z(xB~9rFmor^3WPQON#+X?7eHpXl%T0exB||#2*@Vi zhm>{nVj0aS$v(7P=m0f9@o{q&t^-;B5k*nDu^j{rhx0aKvgr>AXP>i>xN6-4FIOl- zA0v{5cRr<}<{DgUX2D|d%>F=DH}2wcs~ypaRYZ*l9C?5a5RMULP#%diiPAsbYmiRb zb|UQpGDdI<*04UbG_ScBL0x<5apF)Zg*p!6HNpQxAo;EPt}Ks{9nrMqkx0DeoE^h3J{wItKgJ3?kWyNlbfmnkcwn; zp{zOa#0&G^HXcH-few5G{*{L!4wBM9j1f@u@=(`DR7f{!j~8lvXMm5(Uyk%1UNcRM zSjy1SgA3yg)qH;JKHm19;DNtG+K&u7RS;;cO=Eb?L3P=iwYrQ%u(a=j{wPw9;dOGa zW3H|%pWvni_CV$bNdA4^2*+S_&}@rWQI-`g*OG|@4)fVD165SiFat$0aD`g1>vSz zWTj*!@u+A-^65#WASBhpg3?E=LLlIj#N~d58Bqud0^JJKU^n3OBZBQHRVA4)=WdN? zSahC5n`lE>EimIbNj9@O5qGD|hE_?zl!mTy^=8A&KPY&sIQjW7R4`{Lp|yJ;i`HIa z=+~?eXEvo$=t%SvrEuXhwo9*vG{?)4UJusefj5J*Lcc#`ppgL0qN`4s+fuO)E~Q&2 z&5y=z8r!Nw$5Xf-Ef8ENJjBnC$EZqyyNEJ-{Be%JE?sk{ zEQ%%yDYHdKt3|XI&0IgE1@<^KFbh9W5h;n`jevtHp{vy7>ey6tQl49gMj*KZ z$nrY#wj5pKjOC!)^u{SQvgQkxh~eWYQr(P93(lI3<1y9)UsK=oGVB`~%tV?hhtNja z!VT>xUG`Bh{x>&f7EjRpqR+;jUcM9H4y!#wGKJ;i2meB)m?(dApr9kQVCbd$IZ_L9 zHXI;zw-l@+i%RqzU%L&+vj)0^_mlYF;pPAM7;~(I!eWKlMO$1_xRZT=Ay^t zV+VorHl|*2Q;!Mym2tL_#tcgjo>2wu9mRNCB(4HZ`-sYpiez9eS|=v20;rgbCF+LQ z)_G2C^dnG%v+j`8oTd<3Jj0na-HtT9qO=6-gwB#1FhbI0Dh+33a#F1 zH&h)(`Rj($nkcd(wD+N1G@i>fwNcbSqrC-uK{9f=)9XxHy5}L&bqs9`6cp(%hqyto z+ygK@>Sq#Aa1qg^u9&t*MDG9wcJX-z(%L&}%i#wuN!uJsf4T~mdpsc4=GYit zf)tDhBtfWyI!nyn`hn%KWahR>W{01VXx#K69dVP%t`bMVa%tQ!UnQkaxu{^$@R1Nw z1Wv(Q2losY@`G&yK^oYuF{wwBq zyAWQVZ3uZyT<}pjPS&pesA3vJd4igHk9qkCAnoU`rMML4l zH7;5GL_UFhk!CAy;WWyHDYDT35J*sdBdSo~xc=?#!}Rpc2UCKMKGos*0X$wpekI*PwO!}Nwv$up zs?%REucI+3)8t?Bhi}B*BH!^OMbNI!gzD6?Ax8lq&Ux=fIlsCtQX;uzb%l9z5bVAH zC@D#LQ*385rEe4BOB|CbH-I;+>}jh0X+}HJv;%%CIb}O4!py2p-GU764O(QWSIdml zA4xVS3$)!tmO6NxaIx)TbhqB5AHkSXnF$01Bhx+B1wcXWG)GK~hDD!II6!hchqE&i zirYx>=Xp(z=lUvsP97=7k?HPns=`;oGrlWThaxR;10UWh4@FBln%mo_hfj~{o|fns zi>4j*A#;Kpu6`?8FPwqHG-i{QIg(2rFScc`csr1Cx(lKm2EQtC&sLbnEMC~f>qh#= zpkJKOCl~i&w3j^ZGrqr~Zihqw!8$p=A|ZqAhPOSxq^_NU+vY6N)U~5pNd}v9L0C6N z3=BOK`CBcN$y8lEffPUB^Pvq!Cc(dun;A}X=tY5E76;rlr93qG?#S&37ZE2Re4X=L zfMR~Qm&2K~5+?$O5(p>QqRn;`riA%o!5Y4m9_9bOdw%Ensi(f|2KqzzqbFjnY0?cE z9zLme2Ct=g2|l;l8(7Z-8N%A3>tnthf2E=p^PTD|XS9c4_CR#YwxQ*~>YScJ+FW9T z_8`<)qu>P2CK;vmLTQ(X=8<-?Vs0tGN4JBLK0N4(+Vb@WPo=Ky=zh8bg%TMWJ@grf zmP0v0(9p}Xk+L=$$hB!UH&xHTrAA5co9`c|@lNV}mVzbL>xp)EhleB82pF9XDkg8y zxtn@0Y76Hd6aM~;Et4;ly}RQrMmm_n;vt7YJ3}bnIvrmKB_hF+=Bx#JjrNtl*Hth^ zCNM*QW90NMr!0vAPx2dn#Hjm|9!@tm)>rrD#v1FM-OI7oBU1!fbD|8PE`Sb@FAY{q z))hL6#@X&~=qB z`}**CbW9=2~ z1$t~a=4jj|LdkB>){-P{4X_<45_k=t^jGO`_w7SO8e}SDIy{{eg|V65w6Gy?|6v{- zO!y({t`mOLDJ3$a00#wF+EAcQM{$9T9!Z)inmCz+=MRs+$(g`DKfBO3M}c%=2N5J( z<|h6g@eFG1>C1(uv5!1F+}|VVadY#RUs2dtPH1Zk#S9|(A%8EXnU0Y&D;J3ra+aN& z!|M~sR6wB(TyUm=wk+dljQ;usMx+Yeq8liV;$Zg=Cxe<5P-3R*{Shbn4%u}cQ+7Mv z(d;UeLQsdn^Pkg+E}FWE_T=+_b$`2idVb??6U9_&agM8gha8_mNR%z8j350KZRjbm z7^eoW0c|FjIl)>F4PsU(_f|M?jsPPxJ;|x@sZq6^D0fW zKrfpSO$OM!;Um0$Z$km2M3y#&{{d5Lg zb&yqesbkq5Cw@YUQ5>iOp*cW82Pif@x;nu( zKUz7Y39#vDPSbX2D5A0-^7Y}H@*-q;DNUD_=I+%(Wmuh;kaYh?_q<%(D!2voy%wT$ zPp1n1Flopvv@>iilh6huq^0hO4B!5I_wnEITZ`PkJCzuU&q4XqzB*c~9_gzy4L`q_ zB*tv^L1afq6%_)1JO*e8N6DZuD{h^Cpfe1!X5f)~e!jaVd2&ILs16^HWhQP&U`t(7Q zS|{Kli+xhx5j)cMEhl-^;gYy!cbmZ%d6JU>gJjk*jWJxLJZ{G1^4Q!PwWH-CdAMg0mYF=r=S8R9S6)sS8f-a2w) zHVJ#fN;D4A!1FJ^n%KCHjblJ5A=gXFhSC7Kw#4_~{AheTFC#iNn*@&CO3xYpgVOiw zA0Gxa<*Sa4zqf#fUU@>T3Mcga{p|x6@Rccyr!o>;mH*M3AbejeS_%~o6*6IjyS#2(28Wr zU?^_xCU)D?Kz$q$e2ISy&u|_>{4~z+l53|QFO&>1=tv~2ra|)MWi9~-R%q=X?_%%+ z1tarQ)oTEbqDP+O#z~RakiBhOUxfeu*=gDnWt+CWm+K~T2Ks{&meMj6_fQ|lA(y8K zgD;V^tROf?3=~)&nGSGFT)f~_5;{FKUY@KM`^Iu+mF2Kp*Ydr~aa zYtYXEpBWzEORrFkkKIoXWYpv+%8;by-Gy6-#wwT+YM5ZBrv^y{BDIzS^BuT}qc3yX zaQZc4P3be7&dn2S8>_Ayp0zsr!z6`A6;$TFM;xyiVD*(Yj$0p~6KSb|hdr{NHBKf8_qgVbk+@YIpx(1RC*dLcW!{_q$((_PDl^evw{`61&;J_`+ z6xPnt)JS5my9oMcc$I^D5<4xz80oN`N=;wQsUp@-Q%qlUEn8?unsCu4wSRcUEFo#V zr%O;k(2>-@gdz*lgW)Q|V^|7-53RnNCdc-B``SX_ZA`*U`N$Mf83^Qr<$`eH9?q8L zrcGnvEcRz7bq*g7g%xVJq_!2s^ytOHQ?0VIDmsKHHcfJ>|8ecul+mTkiM3uMcq92h z8!YL+=4<(cSjh@2sX^j8zRE}|>+t$Zxl=U#0fr}sDisl+aEC%kyn_ zD}SYDcgA;JxV&jgOlFxfCG}Fl_MYSX9Xo_(I3p$U4GMzM*qc4#8tF(kYpz2#gKl^= zNDJ&jijdbOb}B8H#_9t!&Y`(4$P?;gFd%GzDCD3)4jDd`F4L)5oxuoRRX=rGKv7mu z*K5$Ri7uaI?t10LVaTW z=88Euzl)j)?{BOfNN1_eBzGqL1F)%fX_OY^*txlJ#TO!YN5@FbmHdC45Aog>D!}na zhmkCLpk<4SH63e%kM69#DM3O^5|KyG0)@aE_+-1fVp?Y(fG%Ls4qZ*ymIr>zq5+ZuL`~ zv?A)8!c-=zMilJ%-L2>yhPAJt0eM4NV_m@3MNnP`(_`M?DZ^P~-ts}MCmCI^U~nop zvNTk0)?qG)kY7xhOdXUR1d3>LMdI_y(U~y{+NesPoV~z;q5Qi(o#y+6jQDh1Dzzmh zhJKwvUe>=4h9Bjw2_o+`oM(3j`z93A8h1jdXJ!BVNXqPNaD43w=8V&}9cI0c_ z>xQ`a{&f*xKJcs#-!_x{IHkU*&vZx=24B2*?w)=wK2v>=7XR!%|C`@D{_6*+RCIu? z031a}H^`11mbgpXucacv7Nom297tLwkJJU&Qgtk^O~5L~Qq55J$krx#_UT?dCqq2p z)a7_jV6Y&_exwtozQWwI)LDjfSfFPGnLQ$ABB5a7qJy}^U-zJ>0|6S+f{3A{BwG;F z-d*Y3^quxqtN73@tP<{?(H;@qd=>{MxgTR|+IBqdG*c*M;IKFSSh|agEC6zw2#xt+ zUO|yTp%+PNI(JZERhI6R&Nox|@xz^HHtYj{lL;JzaiI3ixSw^G`!_w1JnCy zTEn&dWF78l!Q^Nt2R=nOiNcG%L?nr?m;KeXAUs8j|2Lb(NxxaoLh)I}0M8v2=JQO= zTiTE_*5Oa=mm;~ny}$qE{Vn_Eob=eOq!FoRMmoIXh-?O=z1`$r@4JylLZGnDs|@W? zhWq^=F(Ma@sHYHS!RSn-3Nsv@uXmCiz%d4qLS?swAuk_|c^)&Kf9QKQ8B-@8C*3;lN3x`s3r=-L*S4#xM ztFTe=vsG1sWkb`Zxd9Xeytm*f)?%VU{AM*eCB;XF6?r2V&|Mepw6sc(z6IoGRx6*p??ZJJ~DNSBG_-z3Y(>1qiJH7IZtI0vBeP?8cp zzf8l1{jebLL7KosA4*DdyPC32dXf*d8z&M6v7_;h?f`;cVnZ(N(vFu!IK(H)Gx`XI zkEo8r+FOxGxDg~@>XKfJwU~5joj3(h2}VLcd~rAdSJlwd{Y1JR;3|StK0sr-?>>Gs z4-GjJT6xcu`QvSt;a$!&0PepCRb-W*2MC1y%Ye+ zfN92-;&(P)8CC$!pPoO7)BVp$8vg!pDVHgw+a4V;(g}Sg+ReFvb<-}&OvO8N3{XpP zd2Ti${-8LWkWCPXpi8Lkps$<_h)TT?XDCT)lDvf~;vZB)n=-U*ep?NKO=8ah!MC>o%@U znr*b3C`4$ft|IXS?XGrLN1&>jBXbJGD82bWdDwJmGry{*fF1>x6e<+KMldbGOGPRm z4JKB4j8jtdjviiUOF=ZoU7@nUu8!K8sUp_Rjs60eXMVW3`Mx7cdBbl{Y!XjImvkb# zhT9ZVRZWqzmaYSj*<}&l%eELqP4#_^X7pr=D};KJ