From 554e6e7120fa0d3d052b9802146c5dcf003f46ae Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Thu, 23 Jul 2020 18:54:16 +0200 Subject: [PATCH] [app] unify web and glium demo app --- Cargo.lock | 8 +- demo_glium/src/main.rs | 67 +----- demo_web/src/lib.rs | 76 +------ docs/demo_web.js | 58 ++--- docs/demo_web_bg.wasm | Bin 1020410 -> 1039482 bytes egui/Cargo.toml | 3 +- egui/src/app.rs | 79 +++++++ egui/src/demos/app.rs | 81 ++++++- egui/src/lib.rs | 1 + egui_glium/src/{runner.rs => backend.rs} | 64 +++--- egui_glium/src/lib.rs | 6 +- egui_glium/src/{persistence.rs => storage.rs} | 38 ++-- egui_web/src/backend.rs | 184 ++++++++++++++++ egui_web/src/lib.rs | 204 +----------------- example_glium/src/main.rs | 18 +- 15 files changed, 445 insertions(+), 442 deletions(-) create mode 100644 egui/src/app.rs rename egui_glium/src/{runner.rs => backend.rs} (70%) rename egui_glium/src/{persistence.rs => storage.rs} (89%) create mode 100644 egui_web/src/backend.rs diff --git a/Cargo.lock b/Cargo.lock index 334adc4b..6d12a171 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -427,12 +427,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "egui" version = "0.1.2" -source = "git+https://github.com/emilk/emigui#3552f7f82861fb10ae646c61f3c283256e79940e" +source = "git+https://github.com/emilk/emigui#e3d1d6c99ce37090d496b4f210aaef700235dd9b" dependencies = [ "ahash 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", "parking_lot 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "rusttype 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -444,12 +445,13 @@ dependencies = [ "parking_lot 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)", "rusttype 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", + "serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] name = "egui_glium" version = "0.1.0" -source = "git+https://github.com/emilk/emigui#3552f7f82861fb10ae646c61f3c283256e79940e" +source = "git+https://github.com/emilk/emigui#e3d1d6c99ce37090d496b4f210aaef700235dd9b" dependencies = [ "chrono 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)", "clipboard 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)", @@ -476,7 +478,7 @@ dependencies = [ [[package]] name = "egui_web" version = "0.1.0" -source = "git+https://github.com/emilk/emigui#3552f7f82861fb10ae646c61f3c283256e79940e" +source = "git+https://github.com/emilk/emigui#e3d1d6c99ce37090d496b4f210aaef700235dd9b" dependencies = [ "egui 0.1.2 (git+https://github.com/emilk/emigui)", "js-sys 0.3.42 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/demo_glium/src/main.rs b/demo_glium/src/main.rs index 843a41dd..b6d2474f 100644 --- a/demo_glium/src/main.rs +++ b/demo_glium/src/main.rs @@ -1,70 +1,11 @@ #![deny(warnings)] #![warn(clippy::all)] -use egui_glium::{persistence::Persistence, RunMode, Runner}; - -const APP_KEY: &str = "app"; - -#[derive(Default, serde::Deserialize, serde::Serialize)] -struct MyApp { - egui_demo_app: egui::DemoApp, - frames_painted: u64, -} - -impl egui_glium::App for MyApp { - fn ui(&mut self, ui: &mut egui::Ui, runner: &mut Runner) { - self.egui_demo_app.ui(ui, ""); - - use egui::*; - let mut ui = ui.centered_column(ui.available().width().min(480.0)); - ui.set_layout(Layout::vertical(Align::Min)); - ui.add(label!("Egui inside of Glium").text_style(TextStyle::Heading)); - if ui.add(Button::new("Quit")).clicked { - runner.quit(); - return; - } - - ui.add( - label!( - "CPU usage: {:.2} ms / frame (excludes painting)", - 1e3 * runner.cpu_time() - ) - .text_style(TextStyle::Monospace), - ); - - ui.separator(); - - ui.horizontal(|ui| { - let mut run_mode = runner.run_mode(); - ui.label("Run mode:"); - ui.radio_value("Continuous", &mut run_mode, RunMode::Continuous) - .tooltip_text("Repaint everything each frame"); - ui.radio_value("Reactive", &mut run_mode, RunMode::Reactive) - .tooltip_text("Repaint when there are animations or input (e.g. mouse movement)"); - runner.set_run_mode(run_mode); - }); - - if runner.run_mode() == RunMode::Continuous { - ui.add( - label!("Repainting the UI each frame. FPS: {:.1}", runner.fps()) - .text_style(TextStyle::Monospace), - ); - } else { - ui.label("Only running UI code when there are animations or input"); - } - - self.frames_painted += 1; - ui.label(format!("Total frames painted: {}", self.frames_painted)); - } - - fn on_exit(&mut self, persistence: &mut Persistence) { - persistence.set_value(APP_KEY, self); - } -} +use egui_glium::{storage::FileStorage, RunMode}; fn main() { let title = "Egui glium demo"; - let persistence = Persistence::from_path(".egui_demo_glium.json".into()); - let app: MyApp = persistence.get_value(APP_KEY).unwrap_or_default(); - egui_glium::run(title, RunMode::Reactive, persistence, app); + let storage = FileStorage::from_path(".egui_demo_glium.json".into()); + let app: egui::DemoApp = egui::app::get_value(&storage, egui::app::APP_KEY).unwrap_or_default(); + egui_glium::run(title, RunMode::Reactive, storage, app); } diff --git a/demo_web/src/lib.rs b/demo_web/src/lib.rs index bf070136..61498fb9 100644 --- a/demo_web/src/lib.rs +++ b/demo_web/src/lib.rs @@ -1,86 +1,14 @@ #![deny(warnings)] #![warn(clippy::all)] -use egui::{label, TextStyle}; - use wasm_bindgen::prelude::*; -// ---------------------------------------------------------------------------- - /// This is the entry-point for all the web-assembly. #[wasm_bindgen] pub fn start(canvas_id: &str) -> Result<(), wasm_bindgen::JsValue> { - let backend = egui_web::Backend::new(canvas_id, egui_web::RunMode::Reactive)?; - let app = Box::new(MyApp::default()); + let backend = egui_web::WebBackend::new(canvas_id, egui_web::RunMode::Reactive)?; + let app = Box::new(egui::DemoApp::default()); let runner = egui_web::AppRunner::new(backend, app)?; egui_web::run(runner)?; Ok(()) } - -// ---------------------------------------------------------------------------- - -#[derive(Default)] -pub struct MyApp { - demo_app: egui::demos::DemoApp, - frames_painted: u64, -} - -impl MyApp { - fn window_ui(&mut self, ui: &mut egui::Ui, backend: &mut egui_web::Backend) { - ui.label("Egui is an immediate mode GUI written in Rust, compiled to WebAssembly, rendered with WebGL."); - ui.label( - "Everything you see is rendered as textured triangles. There is no DOM. There are no HTML elements." - ); - ui.label("This is not JavaScript. This is Rust, running at 60 FPS. This is the web page, reinvented with game tech."); - ui.label("This is also work in progress, and not ready for production... yet :)"); - ui.horizontal(|ui| { - ui.label("Project home page:"); - ui.hyperlink("https://github.com/emilk/emigui/"); - }); - ui.separator(); - - ui.add( - label!( - "CPU usage: {:.2} ms / frame (excludes painting)", - 1e3 * backend.cpu_time() - ) - .text_style(TextStyle::Monospace), - ); - - ui.separator(); - - ui.horizontal(|ui| { - let mut run_mode = backend.run_mode(); - ui.label("Run mode:"); - ui.radio_value("Continuous", &mut run_mode, egui_web::RunMode::Continuous) - .tooltip_text("Repaint everything each frame"); - ui.radio_value("Reactive", &mut run_mode, egui_web::RunMode::Reactive) - .tooltip_text("Repaint when there are animations or input (e.g. mouse movement)"); - backend.set_run_mode(run_mode); - }); - - if backend.run_mode() == egui_web::RunMode::Continuous { - ui.add( - label!("Repainting the UI each frame. FPS: {:.1}", backend.fps()) - .text_style(TextStyle::Monospace), - ); - } else { - ui.label("Only running UI code when there are animations or input"); - } - - self.frames_painted += 1; - ui.label(format!("Total frames painted: {}", self.frames_painted)); - } -} - -impl egui_web::App for MyApp { - fn ui(&mut self, ui: &mut egui::Ui, backend: &mut egui_web::Backend, info: &egui_web::WebInfo) { - egui::Window::new("Egui") - .default_width(500.0) - .show(ui.ctx(), |ui| { - self.window_ui(ui, backend); - }); - - self.demo_app.ui(ui, &info.web_location_hash); - } -} diff --git a/docs/demo_web.js b/docs/demo_web.js index 406a442d..5d650fe9 100644 --- a/docs/demo_web.js +++ b/docs/demo_web.js @@ -208,27 +208,27 @@ function makeMutClosure(arg0, arg1, dtor, f) { return real; } function __wbg_adapter_26(arg0, arg1, arg2) { - wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h22fd33d9f501a695(arg0, arg1, addHeapObject(arg2)); + wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h426caa8a7645dc38(arg0, arg1, addHeapObject(arg2)); } function __wbg_adapter_29(arg0, arg1, arg2) { - wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h22fd33d9f501a695(arg0, arg1, addHeapObject(arg2)); + wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h426caa8a7645dc38(arg0, arg1, addHeapObject(arg2)); } function __wbg_adapter_32(arg0, arg1) { - wasm._dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h5402719cc6dde927(arg0, arg1); + wasm._dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__hb0f876788be788af(arg0, arg1); } function __wbg_adapter_35(arg0, arg1, arg2) { - wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h22fd33d9f501a695(arg0, arg1, addHeapObject(arg2)); + wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h426caa8a7645dc38(arg0, arg1, addHeapObject(arg2)); } -function __wbg_adapter_38(arg0, arg1) { - wasm._dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h84da5f062b972f09(arg0, arg1); +function __wbg_adapter_38(arg0, arg1, arg2) { + wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h426caa8a7645dc38(arg0, arg1, addHeapObject(arg2)); } -function __wbg_adapter_41(arg0, arg1, arg2) { - wasm._dyn_core__ops__function__FnMut__A____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h22fd33d9f501a695(arg0, arg1, addHeapObject(arg2)); +function __wbg_adapter_41(arg0, arg1) { + wasm._dyn_core__ops__function__FnMut_____Output___R_as_wasm_bindgen__closure__WasmClosure___describe__invoke__h400d42c2242ce5bd(arg0, arg1); } /** @@ -304,6 +304,10 @@ async function init(input) { imports.wbg.__wbindgen_object_drop_ref = function(arg0) { takeObject(arg0); }; + imports.wbg.__wbindgen_string_new = function(arg0, arg1) { + var ret = getStringFromWasm0(arg0, arg1); + return addHeapObject(ret); + }; imports.wbg.__wbindgen_cb_forget = function(arg0) { takeObject(arg0); }; @@ -316,10 +320,6 @@ async function init(input) { var ret = false; return ret; }; - imports.wbg.__wbindgen_string_new = function(arg0, arg1) { - var ret = getStringFromWasm0(arg0, arg1); - return addHeapObject(ret); - }; imports.wbg.__wbg_instanceof_Window_0e8decd0a6179699 = function(arg0) { var ret = getObject(arg0) instanceof Window; return ret; @@ -717,28 +717,28 @@ async function init(input) { var ret = wasm.memory; return addHeapObject(ret); }; - imports.wbg.__wbindgen_closure_wrapper380 = function(arg0, arg1, arg2) { - var ret = makeMutClosure(arg0, arg1, 68, __wbg_adapter_26); + imports.wbg.__wbindgen_closure_wrapper364 = function(arg0, arg1, arg2) { + var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_35); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_closure_wrapper366 = function(arg0, arg1, arg2) { + var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_38); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_closure_wrapper363 = function(arg0, arg1, arg2) { + var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_41); + return addHeapObject(ret); + }; + imports.wbg.__wbindgen_closure_wrapper368 = function(arg0, arg1, arg2) { + var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_26); return addHeapObject(ret); }; imports.wbg.__wbindgen_closure_wrapper370 = function(arg0, arg1, arg2) { - var ret = makeMutClosure(arg0, arg1, 68, __wbg_adapter_32); + var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_29); return addHeapObject(ret); }; - imports.wbg.__wbindgen_closure_wrapper378 = function(arg0, arg1, arg2) { - var ret = makeMutClosure(arg0, arg1, 68, __wbg_adapter_41); - return addHeapObject(ret); - }; - imports.wbg.__wbindgen_closure_wrapper376 = function(arg0, arg1, arg2) { - var ret = makeMutClosure(arg0, arg1, 68, __wbg_adapter_38); - return addHeapObject(ret); - }; - imports.wbg.__wbindgen_closure_wrapper374 = function(arg0, arg1, arg2) { - var ret = makeMutClosure(arg0, arg1, 68, __wbg_adapter_35); - return addHeapObject(ret); - }; - imports.wbg.__wbindgen_closure_wrapper371 = function(arg0, arg1, arg2) { - var ret = makeMutClosure(arg0, arg1, 68, __wbg_adapter_29); + imports.wbg.__wbindgen_closure_wrapper373 = function(arg0, arg1, arg2) { + var ret = makeMutClosure(arg0, arg1, 76, __wbg_adapter_32); return addHeapObject(ret); }; diff --git a/docs/demo_web_bg.wasm b/docs/demo_web_bg.wasm index 7faf71a0d03282ced2557deb8e4700827a23c8b1..b4c002e1b67a2131415e15f53a8b96a647fa689b 100644 GIT binary patch delta 198610 zcmeEv2Y6Lgw*TGx+;VP9ZhBA7y|hpQp_qiui6BK3uz=Vo_NWy5D0-tHMgav5uyI5O z6%~~#NI+48qQd|xSfdnCKv6-^L5EQs{=c=)xh)Akb)5I!_q~76yU*EmwY~P*YnSum z8ng`(U%_KJ*Aqi!C1)woNqxNO|0>uvHaDfE$E95| zcGTtLue;*18*GY^tYkC0(N}4Y-|LkY_7BkM8^<;Kac6Jb#YgfRX7fMuFa5Lhn*EJ76 z8OCT|3*?;Y)0~p8`C?%wg4=Fv_7O!7`+5BhVW8C`*9;@U9m471UIUOsX#fl_#h8 z(gJEgb$i`@ccd}9Ds%aL;dGyhMpb|85AgWaQn&e+oLrdPyf@VaY}EGnZSG4}PXn?l z@K@b!0I<*P4gi(tpGtt4f9_Vvs$210sQOy@i7*6}$LGm#qinLTB1H+SDcx0%$JeS= z&sME6R83XvYR6`vHtIOLtvjTq_`1^HSt)2mb+?j#-DFf(dy1ri>K@vk>UFDjU#d*$ zlGy^JXijut#XdE;CCb`Ue9B+|MYL0rlaoseQJt!W2c46wmb=~fPgUFl@ssQWIqV=; zKvCRkz^&K=0rzl}i2T`oeqT!qzm{&h&+YIHK=VE~Xc7Pz<#r;SUA3Q~_?o$gLrMb3 z?Y2so0m14ExP9($GC0@5=j#G62?<{ykX)Gz*+LnrF6}%u*$p&Dg2R4yJIbOeL<$9M zC=d~lAIa|FC~BtR7kF_+N2@CF03f_&UjUlNSZ;CJ_@9S z`;#FdZoisbqNch1O!8AUs3Z>pxAE8uFqEJM6p;yTyFCxMA%>b)RgjWZ`svC1^D)ro z{IrxbfDQ=HC0L05isDptza8S&ub&-4Ap!Uy)nsAz>>6^X!Vx4tf*Ve!EQte0HT=aogN(zdurd z%9*&w$5^#lff_~*boGXRc9-3SKf3~5;zDZ_M*h&9>^7&3USUz#hMnuQ+lLQ#Fo#1% z(E}10bD&t_U%!Ea6q};hz;63J)zEotf}QPS`;1xHr6ucJDRBz*+A-H$GyW3WK3Afa zHDhP0#y8oMQ@eC3yJXCmiZSJ7T~4|5lFk*jmB!?pYf{ISUS3gNR$fst_A>m8x!hJu z(P>>uOE2xx>5@*J@N?NIV=uLBaT(RQnc-<}_q&q;i`}L(?|^UB@9k^(&+51KS)M)a zm99OmI_Fx?I?rMEA@?`#$?kRT7u=t@kGK!I_q)G!f9~Gr{>uG@`+)mv_m}QZ-Fw~N zt1o!IaD8Q;;kwuLjq63v_pXm!Z#q9xw>$4vx4U+^=BocxUU40>Z*(1TE_bd|-Uz!s zb-e1Tcf95j&X-&V9d)kbjt#Dz%ImJL9WT2+R&Dwgn^#$>)~GA+yxr#ITU?u6HvK)D zcP6V<*QiI;C;4;kCGIEe>piPnFRAtFBF{^nN7NIJ1?pea8R{za3H8tFL+XR-!|J21 z?_8g%C)8=KAJv1-mp!Xpbz${M&nuoM*vovaQthtuyyM>HKHz-Uy-eNVdO=;}dd&5> z>rU5a>ITo>++Vs5xN2Q9T^rmR)WzyUu75eVyEnU6xZiiJb-n5S(fPS^iTzd2e)TQ& zG50?8QTJZ;Ti0RxYo5QmHhR8t9kS1IJ??nleW&|9_g(JSJ~j^+%sD}VgJ%GOI_jF z?)lvHw0n+gru#eRqsngkv+g76JDxS3t;$-*Jl8V!bB?(#&(AMEi?P)hoqrp9Qs@QF z=Ccb5yz^((*#ZU+dVMa@dzX@DoLZ3Le1vOGy~Y^TGRv4)uqo$B7n1E>#ATH6g-(s( zX`!|z39!hy+)rlgXhtGvc(`Fn6x3{^5g0IcD3)+sSx2z)dJk$O$B%aYB3%?Ufvs$J2{9gUp8Fe;2 zHSi#zNQl>jj~2k zSr!jGFLUni5}z~OPmS!Fj*Jd7qsDGBR+MI}>Ra|LGa1aAV6bs!1ySzuiqQooheG}Q zHZ7#vZwR^QsToM85|8#)oKL*y-Bkt;bv=*XzVAAUg5ljRreICC3n@tNF5hmD!K(MV zceA5`&!X}#_m|~!2ehQO$^l(7=1O4lsIZi2-F{tQ zuQ78#4j_4Ez|F?A)3c4P1Lt{n67@GuLofPv)yD&~NCZmHx&puLhXzw*uW%AhHU26H z))Hg%&?i%i{LHH}J-%e$!HFeNe(2COsea1I6LKy)GcjkQHWs6er3qkV5Bo2QJdYwR zjKgQ$pHQsk?5<4N>&i909o8!zD?HCQHw*GJW@w&KckTrsNdEA?naHW-5xkCgc#WHe z_hoxmy*PXUC(4c-c~!KpuQf)G%rZV3Igk=c&cDhNQ35rpF=k}GadAnyvF-d$(dc@L z&NM<7$N~+uMn~jr)kt$xQQg;GSVfJ3=di<#j_5~i3zL9_dQodi?tD>KJGiaHrOdym zm{MMCoYLxInKJC+@`hzrn<=|5ZdBW;qhy(DM|Gu27mtczI@4vW7&Y8K$0hZhTa$h1 zj?q^{ao!^{WbBL2Kr#%0Qc*PD_+)H%|8zCJ_{(FikVs!3MR~|rNdk6Zy7Bhd;n8}x zxg({E-!ql1**N4fsM1d%)FLafWkWM|vt>hcSFc)jNm~WH{`m6t_;p_~4Xua?L6&JO zx#Co6@!Kn8j~sNR?2%7gDSH&VYBZ%?a+QQ;+Eo&of0)4~RaaWwEVn^7+f$WOychij zN(LH%MgkUi&Q-?kfXqco0?N1wM5tE+dshXo-pVoQ-XQWX8K9|cpvUcjchq2x=ENY< zhTDR0nS@2*l=Dw7E z#GrpaW)~Etw$fKF8pHVRW-o{B2Cz|;aDoI&L`Hze*`%U#vm@x4-$^~h(T&-YsD1nYh1sGZ`{Sf`5^ae4tyxE~VDwe0^ z&kp6&Q@&P6L?=do%ET9+mPcjt=_kq!B7Y8wN5sfuMEAvPDDzwG%)I zkV;geK$=pOMWFjncC7upT*o>hwootZt>P{o zBuR3#P!!+h4R{#n3>`*lYXqF0ZOP*zLQQezB4i)Q*SB`4&MFAZ6YN~6IhFLfPRC3~6i{N$0T)-(E_ zO?MH(Y2wioR$v4ka2wNVZZg(S`IuCaG`3>nusJG4^=16%1=VG#6HD30jb71#OPULD zs*8qHbLcR&e^hzH2GNpfjLnbfE~EL>gXVBzs!g&_9F0aYOT$}3sHxH$sPCu}jTtVc z`j&c3s?&tA9vU0<;c~82J*+HyV~>43F{E-t@36nfnXIiDl}N zjX?H6zGl2V4VJ30d)gn*((K>H(hf0Zku=4>Su9OWVCkx-rw@a5ZTvLj^yn~o#{F}m z{rtfFM@C18n?TYydotP?E$iE2LX6-Lk%aDJ%^4yVu~9LTM)naio1YyWS7^FN5^X^n zit4of|m<}k6TPXaCt=#Zca4EJop zrFeGpb7C-CxTKhrkH!CHT)aldDLKZv*)!V5&9*R|l{T9-yK6Anl@nWQUOLU_?y_1p z-ZX|+N#$(yTF9}5Zq%qYYf9+9;ADeYh3vml=@A{GqR^oK8Z+h)S(eOcJt!Xi+pFRS z8?f?@h7sWg5%KvYF)HRh&@X`)319>;>xr8LrAtdxB4|!C;U|!@`~YV8zIo%!p#gft zQddAXf!SttAQdD?8n)8hPLOSDCL(1!fiISj{hFac5hdXmnJg19K-L6?@`SOPWIr(i zvY!|Mdm}Ld7D-$L?*reGAJouUf4@z>!3i|SST0hehouE(Vqb{D=5aWV+VtpLn3mK7T3K0>UFx;9KaJN_lDRh+Q@qVwp5N3LkH zg81GN-$}3j%k`a`uG=&)>{S7sM*6dIg*#=oOtxxDbNCiMz7X2h(NeVf0b|{mIWop^8L)r9{O_G?>=0HL1|et)JROt_25)mux%2B_nUK)?XrNp=LHoL zO`}oor&p0f5j>DU7(YKP9g0NcDE!1_@Ydq;$qCR9&r#3B<7uG?rpT#9Q`lL!gB}*1 zC&5k*wGFUqnzbbDB=Z=pz}2XL8L7{{O^lAPmk40?E8~Y}C8M(=zP5OqAnH4hbx%{8 zEwjVwaS=k8|j^9#{$od-=gRbE*pw!dM@w! zI~8QQLTe3m%O6WL?g*^vwMu^5*C|*)xIyZ*s?@~voG|pW>dN^ClGPbUwY2^p2zM$Cxgr|X;u|}vy zgHvowOBkjSIM9H+M#1w$#U9TeHk)ebim)_VLqf(4p9xJRXhZ5t7y>0HiDA>$P*cyW znd@3?GHlgpwHMJCxM=M*W=;hlFINAv#(=oq*@)(loTg|l8zoVR%4|c`xcdbH>ZWsV4 zmf%I{6jhJJE0glnRhlG%Nu312Ge*5k4uo+pA2R!J4DE&@5x^iP#WF?@X^Y2cg$6H^p3iC2M{%9{pOfZuNQO@x%8R_hvd9<02X-2jcTL zP7WugC$vSiCq`iYlNf>dPhte-KZy~T|HMaF^Mo4-m4Lo!g~QZl+ctCvN70azhS(dA zuK=EXC5DlXVJq&9Jk7Ck&iJ&5YyV1ff)vX|6BPLtSu2RI@OL(bWeZmvAZk1ya=|0k zyeFC#CSN)IizY^3zTl)VTVC@&1my6^VU7SY>^})eSV{tD@Oy|y-dszx`Zeq`DNz!~ z<*IC$%N91*e)=HcKO^{ZX{j4kKZ#ZtVr=&7@XQ3l2{CZZBxZqYCLtpJP0sma^;v}I z+z`cI#*5?+uqF2BrfV+wZ8bMlafDmNR88GE+91+U;AbeqQI*qH>e>wp}xeoaN=wHn^j?!iGK_v%W0J1)&Bt4uQpd%t+tYX8}RYa z1|azHFiICMHb2skV#ON|{PmHv#Zl5)D@zWqvHh=YjH*o?B16@xg_|aDw%JJ85@d&s z&RbgH_kt}I_QTk$YK;1-i?L-(fqG#27TSur**LN#=tGL5wX)U|)MSoM#*nSPq;DvP zC$L%39QsUV+_^sw_1wL+8GfJMN_B4EI;<0Rl4**D%|Nyk1@m@z3`4A+UqKwBH`>DG zQ@k2S2HK>g1=g%O=gp1`d%LH;wV$mvu6g@4_JL8l?R3OU+BV96j2iWsjUF+o_vfP> z$M%-^ZMS_jGmKBSAHwh3@0`V+H$v~;$<`Q)-n~mP6tA)J-3+7Gd&8NrYVLcdF=X2L z{)c#3{lR>OTxZn3k^7WW>ohmmiFQo2)iU*ZR)zggq0%{lr;L)1+OnsNkslS|_fH?? zcR<#*b3+{~_-bIUb<)}*lZ@(A!B;3+2QwnrK`WI{#>S6sXJ4$U{J0x6eEW{)*g>Oo zXEQJ00`WH3tAaTazQsFQ8w+-Nk`LH(G1FRs?pvt&0|$)fcizOd8SQpmh|>4&+5p^6 z-#q{nnX~(!*j;x2CtZVZzqCeG3++{bM{$l#OVe6wEsP3GpL9lv{5`L- zEygE%o?vgRy8BZvW4nx5pY_0=!?!+5Wuu=YY#eR)PP^8MjIkEd4#S&_Jz&?0$$)Ap z=TUf*vHK`5Vq3^qyvf)-lovI$lr`YZQOq}aMDSckj>n;|@Kov9Re@c`CHt;n+l_7e zx)2-pk5gyd5B8=(>TcUlvib1-7WjQ_|4T)ScoZ_gx7Hu(M786w&L3(I6a6orXZE59 zeXYMr_esWei8f9709YpivwZ@XK%z6nb^(F@{`r{j#$9zby{A59H+HBlg{sr1JhZ{4 zXXwK#mN3-_HL;M8)r|)$ksuV;haF2Xy=+-1omCg8$>IS!|JU@7E8fK{Uy`O^IaBvO8Y3ZTcPx&*>lz8<$_oB|W`q3F%Og*nJAW~-Ns}Y!_OrV@G>YF7f?>l@m z`?E3S@Vr*EAr``_A8}S`;5CUz;7NwQ7^!)mtl7|y3}oLK(~jijKI)WegMQSIQUzn{ z;Dcb6H*nObJ8~mCWR!iojqO_H`mP)A_8oHc^K*??wkYT4paG?f57oH7%~pj`u|>eF z3o*s~JgTdO{tv3F1?sx(=q+rM7-(l@Mw{;+P2Yu`-@I}FcIQms~n+!$0tjw(G#-%a(95Y;D{R4PqoqoMo7 ztN=?3A6IQ&n2S6>4^lFBx&M<7cXzj^g_S#8xARHOZ2A##Z+if9SbWu?<)1Y0{WjGVQDN|_r&r#Po0yMTQlR&-=HWN%m32R$@cyMrE$V|yq4^a#8odURqP z!|R-yq93#2909@=tSaz~gYwE}>>O{HjK$7xW%7K?lc65k@R>|5fTF}4X$Z*m&%le& zA$p*y#Ad@F%UdgIFq@P{cF?UUt(6JEEaczAs&vt@PR$g&Gi#rN{orOKegQ}&)3Rt% z99Sd$d4Oh82-5@0#iVX5o7IcC-B=5@T)fzgO~YIN?(8=9 znRu-`yCHYEBbe&Lo^(am8q_L=^q*49_*9lFKJU%W1!++A_t9Dx{Bo^*TttxE1Dbsv`zl+1CvR>4DhrX;+IANe8BcdU#^+q`?Gh-+5Pud-g43UOK zOsRv&GX031PBf5R4WKla(#^I+?Cs0CJC;D~KM>9Ov7Tp0d582xWHH(uAgqz@5SMIr z2N(e0_av&>Mo+h(F){?i(tfNTp?efnQ`q@5_Dx|UkS(MRN~A>Z{_I1xQDhBZ&#=eD zs{`1d@YZ7>y9u(qY9M<6Z>J7o{lnCaLRsa?9;UhV1FR~fg4uvF@P!h}ek#QDoSQ;8 zo^*rexej4~!k`aXk0EOc(ZQp!iRhee{Wv4K1e0`IFhHyG3jW8QEX3MuA;0FkKIGNI z*K1z=#Lqw7Ts2XzzVogrw}dB#IH3#WS&f5!N*^o>KsR2gD>tE}=9w6>;XqeaYsEGU z(-^K}D$h~GZ-Y<eSnY_$c`!Pr!N$p*16on4zEqlnik z{?DiAu^H^P@LK|A=o|7_8gN|j5Z1n9i3YwDzn-1zg$;-vtu}jCyzLy8tkxYT+RJ3vKA=z~xcuyP8w6|mJr zd>6(lREK_^P~F3Y3C7XBoTs$8EFNB&PP0LezRQN4PK_}#b08idK>F^t(`m9rJm{ft zA=lYy(3KwZAZL90-CM9i_BWB#iiO0a7VMk^;C8fN=fx$SnbH;~QE?U^4*us`MzYL| zFIxL_E7qS8eZDJZbc|4xv^ME=Zfo;>W^2}l;@7u^9rL7kzqLu$j%`>jTU|T24f~83 z)1e)kZ81i&Lya=V6JgBmc2UM;ilHT}FV#A)gms|suO+N&Z<9ME#7;>c$s#8ard|oc zI~LU3{jQUV^-5KM&hdGzb9^p3$0vHXXE;SGMz&``@y#Ii7+qQwqQGb=JR;O(h|kEp$wDoSiA2GSeWeD+JYhMcFuN)hlas!+96&W z#>&}J@zXFi0&i!Z#oDtSwRfF`ITU-K_VC&4MGBui7i^LX)Xg=I=4r!=wGPs`Qf$7q zBL@@K%G#N)rAXZ_>dt2wv@9=@N3a!%h2gM4?voXUhejM40SWFW9Otnm7sEZ%QC43X zX${q@iA@&6uLJi_$M}kyOCXVt8pDAC581XIwDwww){$P|eoRjpD3V9A*T+U3L%-Mt zRWBQg0)LV=I--sCu{LbzpW@o#?7~Dc{3;p}8S2kx2Z#)%iDV$66RBgAFP0QQzBu|e zmlUuV79j(XfSi*tG8A6Oey(iX#z{%tpbf%>8WI;>1fyY~_|rw~kw2Y9a?KbhogL!!F{~~6%C}?KJQk^?_Wn!QIL;Q<{(Ko5!TG{9 zV)&I%I1AU*&bpEn+u8Qo7p}pu?|`$*mm$s^$FjukYgs<~tN7_!HkJKD+%=AEX4AzP zscLRFN%k6gw^nNZT*c5?vA~+v;M@g9JM8aEn-jy zf}QZi713*%o!F6zEB9yPmfC=nW>uLOw{r&XtfCX|RVAuG|AT1;Y0*ao#w9LD3soJ0o!iA_RlAe&=xBVis`~E@IwRwV_@jGOVi1*SHa4{&g;TKtFC;L-v))F|d zB0|1o2}U?m$hSO$$0S|Gm_m-n|1ae6VwKQC|G$tA6#qMgTx2d`t7YlRO#TR$5E+fc2SpVl53O^Q>w6Yp-KIPM*A~2@5yhr%xyvRkzT z$fH7D3o`{yW`{NaE$w0O2bhi4<8eL}CFiTm1~Yayxk~P3(r*eNOKdf`nu5anFgc-c z8VkC`Faw^!BjPfHbxt}0|A`(ROlvm!QYKdX-I-ao64h$hd9i{*cQ@N|3b7Erj6xiv zgkweGeZ&HRR(TdPab`8k8NG|sBuPR=>mha%3BZWe!pPfdAbS@ukD!Nq@vq2ey=u0$ ziY*lAYoovH@B0L1dPKLg9K|W40e}^)Es@d3t66c%m9c2snKF9WS&qW834mwMLt8-5 zYCuj}yoa78d*ClZc@QA5i?};qd~!e6ddVa-y9n8TF9+*Q4gx~SL8|Guaxfx976*6U z#d5-n;R}1ZmpG}mgJGp(n^xKB0?x(7Aoc4sf&jp?^tAlypzj}HXSIs zvnm8pApxeDKk`%Wna@H=x)3Eu$99GkG4rdEva0xN4Ise5vddCwTU7uiAP&f z;-%z6;-%z6;-%zIhvZZG42J2l*;mo6BBH92r;+*=6D4Up`_fxvm-bQ5ASqo6z#QFd z5rG9VUMs)sD6+$#qe!7ZN0A){9YuB+XRO0CAot1{EH6UtxRpxsQPM6Avx7jwaD)o| z-&6&h`nH5b;~i}CS$9U#y$PA@5l#_XfEqYw(i$`#kiao}jAPC)6ivuUr5`4a*<&1o zj}-(YV#D3qf!Vq7I7|^gdA&03{2v{kBTMG4VLO!N21?>P3SHO_af0S z0=&KvZ%$MkmM~UgotOUVdXsO~ln-KcC3qsc3hqJJj(2KjD}@je;yj7QdV2o=)w$w; z1cYVm9ZHE;k8>y@QCLcYzg}8oZDQC|OedDqxcqshkifa!SV+X9pDS5ip+o;z(Ll$6 zX!sIEgGM9bdDEg%2mS>bh=wChH2NfnMj$2{4k;QgD*Y&l29{PMof)EmKJ~|nhBHAl zTo?_-t6`oR{@voB{w8ra*=WhE;j)3UHI>3|8!nsb{lvF`)VFa8z}l+tTew_Ng>Af+ zWn%UJcqUgQFxe4ha+vlD*+O8lLtjZucKrKHUi1t7zaf*u4im{p|6j2I9sXBw94e-f z0{HD5&#;}`K>81H+!|iv*lm}cI{mk>yR=I8{{p*96WHyKvK!nEo9y=MYlz+ce~;ZH zX>!xc$u)i>j{6fi{%>jg-_CGb`u_rk)AF_r8}kwd_+QrI#lNh?ixU_guf!t^59qJ` zk0|jn2%N?v{rkV0+hBIeN#;NQq3+$JLdPB%Fg*XaFkHig=@)vqmcVddw1>wOx=(+X z7><2$|DB_@NSlS7PQOZnH)X>8jt<>KfBvt>?C`Ih;wFySU?a9?V6zvtBbc4nWOq>E zeXy63t|!nGYx0yGHzHdzPqLY_%N0yH!_s!5;ntixAqx8-80{i+=%2(5#ISd#z-UF~ zG*ZgxE9-81fb3X=_fkk8WLtAgJXnqcas-g+9*9hA%#1WI02r4k)iF;3%vfn-*OR$U z)xnW)h-&`QbR@_QbikTMePvCfzGgu=-8v|zQzf=TEJ$-HbE+5e;jx~PsoeZxBH{1iNd7nBwmM^*=ml9>vC8Xt~qQ-7&z-4 zBYh{1^w>yBvwfn9P4C!%@`&uH?<2~0lsyLhwPS?hL=st!wzEa2j=+U@7M)|6vjGl; zi+K_96=TvGBsQp3daF2aBJ*A~p$oT)c3~>HP>Mn;eeNRwsFewjLvMv?AkCX0Y}jQ> z1XOg|CuEig;zkQ%z*TaxZ6i6grqU3*`sgHEPTP`^ljMeG<)$EG=BA-?AcZ-Vlm{)j zys>-YE0POq2Biq^9nRJc;^{H*@b}K_VjH%uHK2zres+W{Q7S3 zP)MF*!Yp|X8Hn&a+6_T&%nR{P=h~=uSqN1KvBDl>A*hj2bd|r<=?5zUN-4XQsNM?{Ji$7ws*=Dig zV^%3{|Cn_$pKl4oSI=)iF9iGh&*(8>z1>1$0<%c_1Ka?og$*w|hj~RTslU<2c z&fg_ld3cv>^CL5`-iGa#X>)eVv~A|wkWW~KSojHRiNbg$NaLga`iU$fql)&(T&L|Z z5&2YR20j_$V>5-BQ9VC3Gf>LhPqF_0l$iM$Yb~6gVF5utcM=zWhGjkZd@h2|KVuUT zkXNn&@|W*r6HGh{MA9zohxpfC>_pux+U=8w1LI0jzfZz+VqXl*xA#Yo$q+`|vlait z{#aHEqZ>c}FEG01iwH)|#5-TGUI01e05(m^ptU%30OQH*0}>;|%ZPUTDW{m;%TX*& z{gN#M)D4(DDC0Cg_hGM^zT&TSHodEU5CL|KzVQ`X!>6d?j<4Bd+)W+C*}xzU=;({x zq>~o10MfD!vNJQVa@j=Etw6vyay?{#R@;=ZG*o`m%`oRuO zs5t|#D=0u-n&|T$Y#)*F*u>!J;`dCAAoVk}@jQ!)7*EvC8j z6DO33fse&4hp?e~Z|(d;j44ULECuzhz;MP;-BU+cL0813BCa03CT@a62a{^xjIGA; zYrPs;(taJb_JIhJwd*Ao0j=Od~`KDY*9(D{1y043I$Jnjx zBk|=iHaNWTMC7QK7c-z$>dvm(;hSLy+NjYxz zh7`hoM*c|J#G;CcAG@={B)5G+3U#o`DP}jsjwMKXqkS&&KqQ9+5ATrsliIo5)a9e1n4YmOinPICl#@R=jX zhszv60Zcr*?%QKl>Z6Lt#48#p+lDQCjzjqc!pqtpN&UCp`i+5+gMtu%F%} z^{zNl!>Yy@4;?{d#kC(~OBa~|uA-4tgGDVXgF%fMY>b-VjNeR&TGnO(NoGI~rED<+ z1R-J<$A}H9+OBtv5xc@9b~lsQ-GiK{+{2`KPolX_w05Fu5Z;*hZH_o`8&^$oW6D1o zhZo^{Zb0tH%7mmdksEX-a>IrGYsj4w_FFR;Y_6rP?jRu$l6yWh?C!xgJ4_MoYi{5s z3zv*gKv=oc>y0UjQgcW-BgvxZ z>;K0oYK_e+v8&xquG6XZa%BK|B*r09XRrWs5TYRlBW7gvTU;=e`Dtxay)>fYim{CoV+;*kG^Aq?fohd%7|nYu|BW1D zXsCgTqoD>Wjx-%q9BDeJMN89}>R68KF->QueFo+b9~)`1Q=GOSjm+;s;Y%NjUEdme zY*R*KzP?~4Ej$oqV6*i_FkMD~Mq1!ho9))Vb7;3APyxEqJirsJs}uDwvf{VS7M2?` zA}EozlY_4OdW~s)MNJY|Up~|LiX%O?+(bx!k^!Zm_LG(yjp&l}qInw6kB%tC=8zsC z_wO80nxgZyadiIA%T#og{C`N2%pQb$BeMK1m64`^=8iaBDQvHjz*e!Fw&t8`$-K7_fVWZ1dwE4%MmHp9Fg)&b35N0 zkqT%;vW6lWlvMG^_s%Tw$`fvXSfz=qCw}aadyH@}I6CNHw4p%&;h7J$#G1iR4l25`@FxOKrl&(^K%jzI-oz8j_OOC@RA#Ty3eu#GGzK>XFwo^{6AG8PvAKfsde}Az>Ada(>%mCuL=nI z93-ZuZcygHN_ZCiID$CxI15!w_N)qJYu>;Vg!s-t;9ZnQ-gcOU(-pk${Qe^ZZigqLV$Z=MbKA(WF!8hm)O!mmi1BXSkpIJ}OSCmp+%>wId ztA1un8JwlrC)n8tt~tRjG6PL~b%J$|doJ(-Jz0%rzgnz3!O~nByIM;R9GY9hyRy6I zzKS!uyTy3M*W$!_G3VzYxRdh>ajVB}&d)T1EYVlt-I1?aL6i(yitiQPHvb1YT0Yw& zU1PK|5Pe6a=wat=P~8=FK7u_WUa|Aj5qKSupq-fP;6-Ls8}X)t2a}e0a4=LJ3q@Uj z5yuh7XLv-B6Rw$iJ>pXr&v92H=^=L+UoZBkJiDDS3m5MN<`Hq|(MiXT^*ytA-~b35 zXi(vDCl5MippiQ9kjit!H%{*7(>>y6Cogb3f=V}1rTHzB%nE1A3bAj_st}_ZF|v+0 z<_H`VV_ZBtcL%ZE9(WnNKWTHDWOK<_r9!6xjGKVNG>K0Edsv)s@z6OE1GB-c(FSF6 z$EZ1b;Gi0UIXVE_hN<6jeR46$30Ap&0e~A-lYsM8-a79-i@0dN9-e6^XgaF50-!7q zJ5?SE#ewi%A_z-X0R$H?*4zmgyK%E2>ZnFv0yKfI#aV8?j?M@AJ-iu(ovd(#hX*Un z?>c6ZC6KA}8$xz^N(VA_a%Oxtnl!R!qwAEJ-tkV5$Ma*d! zaSR&8bWqEBnwRm>`W9K(Y)(H$FZGm*j&)m2J3%Y7+9hNcUO!*Mwu@K&ycEIT{k#l4 zu1yjzv~KMQ&`M=Cxq2LW&AbhAyO|i9#BX7T#EvBX4sJ?WmdsCM)5Q15{NqCN4xsx? zE3H(=Id{vaghj|okI=JuTE53xH$9K49!*ty^chq&UFVXY!q0(*n3%$GLy@RV#qq@X zNF$#g*M*pf2*kHb=Uv6ysk{J3JrAYw?TC6MjrTlB*0YhTI-S3PT>Ue6agdz8a`!y8 z@zLEDsJS%ZNzBaPkz15X3CaqBQq>m{lq#TnJ%is2)z&kU@8i3;cr%%|0tEnc2a%7t zftZ)YXIS?kO^wjPNwg5<**tO~QVf5mzL;vJ3w|bKNASN|l;-fuvdw+naH0k6`t3nC zoMY&~`pS7?X%5eiLwLS;FNe1SiY%AoOR3_tT#2wh4{G{5(Lb+Yvsk{OYS643%~t2} zu~@I!n+H|PUzjI)6hO}JQgD15DtMQeUcg&<<49HeasjsMda-zgZ4Uefef=`Au88Y= z+p^l@Mcm`&TbI?Ut@$U6*RQDkvJE!>X6&3wT%&R@fc$39qv9-J8vAqW;&eiwekI|~?q@H{-+dHop&&_JE66zqc2P>YU zV=tbCRl|Y3cu@uxHEFJbJJ2uyMHez}@5Ng~;-BipAIP%S8u3wg%ppn5k$BeqD9-53 zoBJPs3ae;&)+$=<9liN2oEAA#P+>i82*AQ87Ep0XAB}2Q9*wdsXMZ+uOS*CC_LHeEUaj>e@U$=%K6 z$jGa?;+P!YGHwcuUx|&QggAc?@5#Ov^9S+#R#^R@!GM1Hglsq&quW~B7VPO$Zo?)r zat+x^Y>W2v5jzI)N$gPVd8hMRnexP*I`RHsQ=R@en70`W9Ra~q=q41{D|A&1oEuPw zG$*u$eC7=@^r8m+Rx0))nyE?gsmZtqX2Ka51Q&|?&0vWcY&L@f2#U<=-H{4%<15HR z1P#N_q_(0j7T=!9v&8j7IDI2qygVc>?HHvMh%<)r)2z=xEBYobIu7NT zV%1Qyz`us_meIr`GI2!4QBHGvSdA{rTvPP<3Y8n-U!cS#iGK~_^m%7dbr!#s;~K zU3!3C>BNZ@{bhsq&*>fh?${Z^YQ)gKKwJFgG}B2A!N7hsGH4+l`no-^y^ye13?9yJ z#{jo^IR7wg4iO8@JBeV1{_`+$;Tj$Zg}(1Qye;|Gve*6tiD7xY&wq2HacyF~zDZ0I zZt)VGuE2b8uNZd)KaUGVq}+f($q=%ExXj!xjux}Re>AqHFXJF$2o zf0?ZnS6s(C<(v0enF!(h$XW+B-sI|a7%P$S`Rll*65`}A5!)s^augQWCH{FGzm^>k zS6t64VY5GTJ@3S}iCx$8^Hi!$=KZA5o{>ab6RBp}{TSFMM&H134}$pd2HtL10&hsI z)BfZY`#>qFm)DZaw$&H^K%_&m3Ax33Z5@Z{(-IEM0mdr>i!1OI?0Dzbqc^_wJCTvcs`bZv7~gA`@J~z3ATB=fY^Kz|<0@q?YL0^R(eGuxbuH z+XF9(PIvO@>>csSoqXCzqAoDNrNLyNgZh!(l(ER)7bPCQi?{W!rn9v0nKZX~AI=q< z&f||lDyl~E3QQLtAIXQ%9l9_A718qvMLTU1_7+sGSvK?DM}GXi=3QvWIz%8H-a3dC zbS5dzp?8-nYiSe0TFk0`nuh(dcDiww%M}2muN8atJ2P;_<&EdVAycPR+Tg=_=zQM2 z>rtgj%b}~Axt3qSk5Jti75pHD*%kbNRVOS%*p8|2lyKT;hu;Gt`2t?x!d1yQPWq++te~cZQx{uE>HLQ8zx$MRjLZa0xf+UT@XCR>7Dp>rIjM9zbr1Kww_&`U`jq zx`Okw3;FvdIkqXH&l5^P-;e1 zqAS5&kO+5{1vh9U=}f>%HzLf}C{5OiO&9Zgwn*&17_--(g?|(uNqS}!=9h~&u$82m zIf{1)6QAVG(YVAD#FTF#+#GES7HGIxbghD~$Rj+U1dAwKuLLy;4=TYRg>_0WMBx!7 z*oQ!>xJ99j=_R(G6kK13FmJ08^wYy}MV?+I08*+# zv?F@0xOgUc zxc*N}n|*4!|7Rtn`Yl5KCl9Gm)|z7@0adyaqDNP!nzdp#IVz3SLW&FZAqF4cGw|Kp3M)0-c`P9`R}Aaq!sXrKlgoLlQp-fM|Eg;vZQlLj>S6;0+r z3}^aeo~CY}4)u;B+Ty~=d@Obyzd~t;#ix^z^Kh*?g}=$zeDT5E*wXl&ICm-!WiQ4( z{(op zX_t~dgJGfuy5E_O7ALl_XN$r2W3lpZEn0t%u>}b&ubjz4<7>>8 zAqUu~%ru++Al$dF(Fn9qk=(>n4er^bp)!6{{GD-vJwpB~k^cy${d;R4dxUr42tQoN zM^M<|am)k|u2{rxV!62P4*gis({L39*@V*g!(^| z>!0SO-YJvGM>GHgnJoT+azJDIO5P3Al)|O_Qt{F=d?KPcJj?U)7s{+dkri%{!3gF@ z%T5uOKa0^XzAX870`qv5w?3NdJMq$zljO=c7Rv>Apzr}@J23(6Hmdd0MfNQ3f+-QW z?-o}tm$lAX4kzdC+AYiZXr?ThvO%<8$(woZLRY8zr@dY=s|(LjaK=QUQ((H{2p#M} zA#{#KtGtVet zA^XIVT6n_uiaXZw!SGmYS=;`qB#W&%u7IatOfi1iwrdmyD`(l8zgr~b%xR7?7* z!v=mYrd8`U@Xt;&Yi+7Z7{b4+N=U+jSNXWCr|^-lxuFzuoUX&@g>T;AyDB318iwhO z;-c4hu1fc>ljlKxNu-&y*{xl{+nkYuR{wYxU^mwfzK5CGaq;47{LhfC;Tz%OKP>Lt z$Xk<;DROAdkzdZF1{M00CxmR{Mk!=JY~))ZWUsx>heF+_zahP2XT8B&<$+F6GBqyq zf&w^1UHTVW(VmM0$7+>aT>PID0&S({f1u%%W=4Rq~C!|8bslahHdZ>$SAy+d84^#!~Yaj!>1p} z0+BhzgtvHy6nwBIlTb1br_vOD#amcc-zD5{^X3_rR$l;XlP>PV4_)kE`8IYk!7j!5 zp&PKsZ=V>l=Yen8nmx}jzwMU^n`-vkyozKgV{Rx{vR0o7uyV8vlBKk5yjMO9I|(>? zLOM$48MC!aX?M*=@oTs77C9v3ioVB96T<2o#T#aKa5{`JQ&bP)S>eb`92g7IM->Zv8M+B+Y(lT2hA?*rSSun5qz%j!~S{BGyK&m!o*W9U114#5=2D z;kBb?sCw)$hZ$`Pm)R!6us{p866^5o_b7z(u+%lAfk@825au1l$SEVJ&ubw+?K|gG z`6QIb+m$fE&~LFyN4JP+sFl2iN2TV8Ufcn|EKHFVh=om5BZq`zs5}qNo!7un8ot7Rpg%0Rf?i>5&C1(I!d(!o19u2e`u~;@Kt&1EMHUxjyB}XiXxX zM|ew`WSb;`-43kd@%%>Oc@WKFs6%6wyqsT1S>$L10cnal#)78XiGB zavD&9$TeDo0&vF0)5vsyfTBaqR2y2kRF*Z1n7fiV4)kIogndYu>{!?SbizI)ymdCG zj$O=|<0+Uhl3}lj4KO^!ibaaQiw1_G8$~aKIs_)lU3A#{XYEJA)UcavB5=TYiwOu+ zQTn)&#rg>M6H2qN$5Nk-iC~&6jfj9<8IlMRk6)qzfoh7tFOXuOW|1$E7T706w2&m} z6vQ}1w2&m}Vv^((B1xn(k!2A_lw2Z8B1!Djn-t9}>K7>;BB*1EWNq-}dSmpLOeG79 z&~Fnb0^9yL?8zqkUx&TEFWMQb#oW;V6BZH<$tfRb8GXpXQsGW?2e^M}ce<)Wj5 zNvv4BHII9wUio9XkU5ngd7-I9R9>*G{oCcGNpU&jQb}6;$id6JX42HA{~hw8Ml^`H zGvApRHfKVF?mhA7?))#&)hv_XWQ^BPC2E8jAn}xH!@5%wXMAYvAZ$C>t~3=Ud}*XG zuQv7OHKyLYmh@&sVUq5wmscZ*ALlavi1SEcM(>L|1>4?CeHq!(ib12Btt$i>Zl?+a z*wR{#00RxJE|{Y(fYbnFDFT=mWoV&Pe6s+9HNLpg25yQVJehRDA{!|%akOM~kZOH) zD4A?DX##0UR#cK11?{X^snANA6^jkDw<15T{ksJLTD-;#Mq~J%{^iE{!}q>g`yuQU z;zJEAkTQH;g&M#-6fz_)EupEHWjCQWB8{ZS8m=%sB{Qm2)IH1#{pMt6rn!t+yI>o? zh_h$KkMF<>v{bZzmk+=?*v;?qVq65i@LfKa63af|gAm;L0Vdc>#p54fnz}%k_Lf{UTq*~5# zEH82fe30A4!(Yky&f8x>W9=1-zQ(rGuf>tCqw~{x6vbt+a#q`2zl-J*-7%kNdl0tz zZZYK`KM0e3;vrB#I?b}g%0uuK;k#Xjuv_J@_~8(*OSh)+Iy|_vu9!_<(yHD34S$}# zu~2=4Ki4B-Pj5nNBu+T1T1PNrr4A-_s%27B6uu(q4B;ZyRK0#PV4+X3jr$f0XuB2h z=fCqV;`q1xC2Nw7>5(R?{sj=d^C+--Q9OH8I+ETw%CDq}M%vtv<$SKklqf?>qlw0_@8zU*#`n=l z>-^}X6*rt%R#&yF$w_PN*WdHAIlt3h+vga^H4pNO4h8tILv6<&d3)}fiBCIVgNL~M zIKK_K#NOi|=2G$C&-`J?NBO_tXI)ym=3m%#U(9AoZ}vg$J52dAV_%AE6=gd1NdKrP1qib3N*`7yM%tBg*=u6CU8yLv zKJRq=ub5`bZ&rQz8pzpJpS}qZAJ#e?N+#n6ZKA-bWEU+$Bq;|6EG=?JVgC{KfRlaY z&=+i~6X!UUw$Alb@<(yEQ)w>!gifUog@>Gq{JKgrmonz8chq3Irj*#|3L6Iy(9%g+ zIJE3jtLJ5(E>|-Gc+H^KEz*PJ!)sdXRn?Fk11+ZeGiW(N5tBShNa2C~;wP7~lI<5u zRb?=>`;)3n#l<9dxs?I%X>V~W^c{}ZwTSe8=NrFaB7>j;Wqau zXW^3~H+z)UsOwRWaxpiYf_asexmXRi$$N~jSrwiGCRfR;<#M?0RWi+V=q%)-bR}-N ze4>s9hRhv5d&(t1%9os*RQ6i!M~&Vw`f{Ujw#!8h2xOi>Oo+OATcrqogR=XB)< zq|eGwmNReM>bW>QOZgK%?e}_?GRzL=K#F+zc6**UB^&S_7DG=cSz>%PrY(oX_F=9J zu^?MX!Sk|gWrX|?AU<)5ukB#h99G~kPMZFLf*hd!qUf4~3D_d>LXPq#iqzyPqrlDs zxe6^&c=8l{Vpf#qDIKBs#^xzK3rcJi7*iCimSb56TV`kB(|*_(CohU_Bi83Bp~4yr zJB!FIvi3e2RBGrEHZlem>?*oX9M4lK*{<5&`3gR{vRvF!pp@fq#fkz5(2HVo0idQL42S(iyS|tfodm~Ch>$X@lll7eT%s-1?R-&CWipnk&>7Y z%+^vctlE0bq2E6A%>gLUY}(x3#)Ts%DNt6m;UdM!*v8tanlcBW$O{1hMO++G3aBI8 z9#Z7~?}Z`d61ckdMi&kLt=SzrAX{+ri?~PzvjwF1b=C+JdB`c z3+2jamfF9zQ2dO2E8cIZ6n8oB1v-2U?X~a$YWa2#y(Q6S)qMJ~gk<@KFLiWm1!3J% zJEoN~lLnCQiUF$y&G6Qsw0wTDd(8pVEjRMf4*B`fH@Zk+F}=xl?PyoN$#$La2l=tz zWqcc@C+b<+Mj3$scxYl_Yb9B9X{+3UCRepphO+O4y`2&&SsSf51Lqs=Cg}0~9y{H! z17WcCUgNuhI01r>3!aT4DWpBHKLaN?popZ-nA%Qh3z|HKpu9eU^bZ-lbvWe?c%2qH zt`70$WW-c+2xS1@GBy{^=^Zy~ks1&=eH~h$nwBzm%H04+3j9m-Em5w;W}@dx&?|Qc zZ+qn#^n^9-l^yJ#Vs;1R3cUT;K{*{+PAgS&4Z{i6@H}P==l)-lKbA?jigdF3OKH}RG zjx^D^t5T5i4n7C!B2%*+{gAtGOjnE}bYFT`Ww39iCsf!MJ-}wumWWwhp-z72suT@+ z%tPIx_nZ*U`4NF@FoGuq9*@LY&gkPHdvf404>=;!L;g9TR5SM;kRK~}_y#*R+KuX_ zbfD&Dc2jz%Jnoqj!pL+0<_wb40*{G3-IQ@~1`p}3T-^~4$Yd?aICV$zz&@~mQ8T(J z>hJ_}vG5U1NTP&1f=7Ja9SRD!Z}m_X@r{c3S9hh*e9aL*^-#j-v$yqBE=AOyo=PTN z0=2NWqgZIYl>JC*-$yAz(wTjfbH#1FmFE(oc2N&6(G__TA`O`wF4Y{0bpC&yLMR*Th!{ zeLgRJAh1w8b1F3SezEOTCC@wO{<`S5%YHajX^HrPzDiL-eE+`6GSvJ-Uu9gD`~(|z z6UYw`(sx+tkQ!DZ$Bk6-YUlL>RgiPdX-bRI#Z+@jV7?0t*rHYs8Y^Oo&T{=A>_j>VZe~es< z#XpfN_3>yjJ)zC@qI7^v9xy=BidM^H2TIcuKH9q;-(AEFdQO_Vp%>nROwE87K0F;v z_Cd+uh)cfp=7|FMpi68Xpe!QD2Eq(`QcN8P4fD8oZlE&!Obb_hiqEV>@#^acuO#|9 zpBV-BcLSP5KV~PVa1lx(zo>rC-b}pxnNlIz7qXsWNHw~D+lTGG5=nho6Fz_!qdwJy zf!aw+#Iab>>2&3Vbo%@m@Wo*<`jJP7_Rbp&(4Q3T1}m-1FGtEM(e1qG7nclHx+bvy zsln(OtHm3Gl{uNRwxCaHWVC3bQ6}(Q?SwOwA@WW#C}`L+@-xAK_r%+0Dubb%@`u3S zHAJ@|(3plWhA3t1J+XNRV7OoWFhqICem@M)c|)N8e z5ibZ4Q9u!X-)H7*vKzqbz3=ON-}nFd6Wuvy&eUgSo_XeJQ^qVW&h;|5D0|2#VeX$u z3s*EeWRw%9yBPgw@kQficr}sI<>E`n;tOK&Wzf1?+SRDw{_bT=JVp!ZP*kaO)j^_-He9FI;5LiZnL_9z*;80>}I4R@>(}z3soAUW*2VHEUZ)< ze!!@cz75khU4H-v2n1b}Wq6{T@v*q3G*lbbPQwR*TNa9*4}zRnBxXElRKe|>A3tc^ zdYj!|d!fX_j?J>$To84Amxcc!<5sk=^+U#91ZmxkBn6$&G6-vEo9+gQx6AavG(IjG z_b~hs)BDjLAX~SIu|161Kz{3c80it8&-Xw@=R~QVMwN*8jy;WXY$eBPZQtD}EhhIg zX3NzPO{)V7u5fig*B%KTe%RQEmeLU8lGrGTo<)sA1~X4d{46@|V@aa@AtR3PbAlLv zC(l7zvBXL-rQPy5vFUGUUha5|;ij>e96ySSe>3Kz*x8R5PY?iHWY{e6Oc($NH;W3- zfSP>geiT3O@5Y&8G?jqwVsUdQ(qk4K6a#u051^=Ry^K2%czVkTQMb3zxcYiw<3I6c(LMPhDmqfFXIG7}hF7Ck{`N@!Oi8Yp!F?H=k4 z6g^-3+}n6FZ0I8A*z!J@CvS_xeT=g1h1Bb4AXLF0HJUVfmtGm+SJjUYel6^GIDQR} zg<8ikqqvyxsPR4_RHL$E6&g zaUbf7*3K7W5hT%A0KV=RfJqHuH15aS-q)xUF??D-qY`jym43!@IeT1Ga%lG80D{{p zf9hw0~-MWWWt_ zI;{(olVt461{mv0{U~$VdRG}r?aCz$OvJ#ajFPrhXJO5z^&90URfaW>8T%5!qe9K2 zLN&vS7iwNG@CG#lM@~Xc(rr63&{&vw@J4N(Ip_vCoz`f|Np1dOkTE;)w9GjvRA(_+ z=ZlXQ%?YkmF>4&c+Oc{Hq_&Bx5(eaN&%IABb?6}wTi8q z8X_g>33Bx{qRn&08`Q|>jHJetN8%GKS_rpm;6ND-cXYIu6<+O(Qn56F*hmaP7@GJR zp7A1MsFB|IxEVvLxt1rqLDUi;TA)H%J@Qs}pik8uA5F~wfn%fK55&Bo#_PArc1yGj zWLVfKD#I**0MKCnVL+gJ#OPs0Ir9rMQ}Y!Q-bam8v2~bHCPhM9A$RF6k;qF4nrp+1 z9g%cocol_oWMQnh{Jil@3!puM4IwAUF6f8Y>bPAO%87Ca8!@{Qj<#1>ZuLxcoZk*DLQ`tMjv605pMm`=M z9A!LioX_47+%wAf-U#H6gQaIlYcB$29#53txR>#!OdavIIP?}W!(2JmP8>4B+*A-@ zn_=!Ph_KBtPZUIioXx6;_D~CBQ7Z`$))azMRclkI zkys~&HIpFoqBA()CF2LTKEf#;oMIfK(3*+^!0V#>R3j6?>r;(85S&zR6{pF_ekxe1 zg7Yf4O&GPH-_=JLN2r+A(~aR2?y$oSGr(2G`|KHDUwtku_2Oq9rY&FDaJr(QF@DfPN3wZ7;F7X4XX;!@yP?(qC9j?OfayX{&7O=`)#BJN}1 z8!QmR-k^dN_7<7)rf;ItETekDVGT7(`6|LHS)R|uMINGHG1r$7KU|x1>Q5K zh6+!j!X@DWO_j_fbsZe(HpzPnAm*{?&U;laMWySx8r7U+t)QBd(D-X_7~Q~$hgX1F z;^le9TvS~BP2(QdC#q>%#ke=YrcjFEF_7$$c&vxC725Tt(L#Glq|7%CWhkKL73`*P zy>Y#rlpU!$6xwXjH#~}E9~eCV@q`bJUJ&y<{UMlpd1BFr;D6=`ZMBhtpwwy%XP%h0 zT7LUvwQ&_{j32LwVB=tj!MDvb zI<)=SgwZ5Q2*87=l16KH#Tvl+(J-chokRgYw}e+${9Mq^A$~6Q5Q1v~Kezn`o1Y6; zEE?oYa1})|pb;AYqxIt54Myeo0)FoFV$dUWi$Ra`H1Nw}Hv(Ji78x7Sz!PHmC|*V6 zY&7mnBt6h^z~h-vMVm+XeAB0S;>bp$0VYP<04M8>jE{_mFlBZJ__tEjNelt32l6a) z^aT_?S7O-fk!IOqVh&H$VIke)V_>~p@w^IV zer#+czF?0}jF5>lP_-@+#`9DWdmOCAj4ej-kg+q?m2K<{Mmy|S!xNR2#lS>|!tGm( z&Ljl#e`-iu=LhU?njP-?6nyu|B6lPwG3(Zmyu36d23k{g4OWDGB~Uw%d&tNaG8)L2 zZ(>>eZ+|R@5x7CQ5$zCHw_;_0mP}$5qo6BbUBYP(tdPf&SY6TXEaV-z;>T?`m~R&) zw_~+`9eip#c<4k>xQN<--3V^az}XW|x!~H*4{qIo#o+meR7sG0*j11ie=Vx*G)k5H zjLxUhlA5ZT`5NA`XP~~HM9-Z@aWv!FDWjAazteaC5D)&a(-=d{ma;!dHsC9}DG0Xx z32+w2_86TKaZ3jbu2eG!!LrA(dh#zAB@=93oMa7vX2IdE)X&Bf;^gOsCom~NkAhAt zWE0t%l1<2aJ?IB=Ssk<%FnOUdIVptzZ$U3F9Us#PEr#xTLyY zdjV8oKmgOVf@^+lV5EdWHFTv~Ayi|nc?4DaLbWXpk+H}~4A@z31V(vI_=_Pa{O=h4 z`w4!39rXI!(9=UsMbT#q$Q4~9N3}&}2OQP@mu83XzGIaCi+dC(Iv-#f;<|o5KzWAx zC|8-wCO!)1gUeb@^8sgnkSxRsQmc$~mW!^kqO+qHrYYpyI7a@Z)8l^xl-NO|t_P*` z^=N}K<)zSp z@o_k=4;GEQJE~+{NHt6m^WwtiMiBJ>;=M*^*O6H`HNcI4aD4$5!8uX!3#qWv?hE4u zeV#7nt}s)@`7fZX@uDe`zBJy7n@of)_9#;PL)?xpjWqgp_Df@BGm^ZMH);pWjfpP= zZ-y{-r-+S{$U1p}3BhM^de8JGPF87l6-^_)+h?=`0b6&!(G@BY6Zb~|gPcBv3#_1~_JerkYoi*{t^L~QB9#b+$FQ;@W3QVx zp>352TFHGZ+K%fQRwP0^eb9IoG!;olCY33vm$IBYBinU;ST#|RRBkWe;O2}>aS*ePlqk;0GhM~voC1)pO@ zHVMhT5m$~F^((y-l7d+DgvGVSN%D*Yl2ICfCTJqb>Gv!Y4;?kirLC0diD^Jjwg5zm zvgm~Pfyg~-cu7v6ngX`tZzM7{Ny72PQOKkgiHk>#JN)?+OL7l8p=5?7(efmo9vVMi zJaEiNDMiGk8=^YN6qBS|!S`2=K~L+SNXc@J8+$5($tUGk(6_-YQS@WWHk1%KOr|yR zgmD5zfAz7S#R<3&xS|z`vE+Yu%pYW0_YSRT^=|qk1nImN)@6*XN?~VA%cTSEm1PxSbWF# zL_i&p@Q{ZU36CS;@HlZDJpRc6CPlRS(YTY&jX1?z5fjcEFQew`PBIfB0q`ddF>AGt z#r~h6+lHg4wmC4%8( zqIHH;=7-y2YzXg(yRI6gDsFa>@n;?EZ3tjJMdCc%$^gqi&&MvDXiOaYfk4p{m)_UU zp|l6Dix@o|J%}g*mxfH{p#5CY04dP}5l66KK|v6q4wsCGN!R=MNdujb0+B>?`J*nG zRmf;<5my?q@^R41<#cP-KtwImCi}kiH3R=COzj`ehlnAC43dx`r$nf;CEW19Cxvn? zDXY`T4G$;1e0*M}Nk0?;DxG!+iU(a|XRbfm9}fm3(yh{zRRJX`{GLAA8$Sj#16?5v z8VbkO6tWw}=Iqz1I$SEQX<@Qp?ke%bH7=-p#$3} zusWnyM2(>_`1O2eEb!|h<2+BS4WcLlWcgMNvx!`Vv%~AcA1^ zA|^Ir-@l21Wvv7w?t*6p|(NyiqX0Uj7@BCg<969^w2ZmatDSr~&8>dOCXJGqsL` z8ag)8FheT1fkIHJYY=*Qb;qzqj!!8HoF@EYNkNqG14S&?C2z##hvX?`U5ih`9+yP#T;#pxi{J{Fwa&ddpNVavU)6LG;C-ssuvgB=eCId|;Me!5zg z49ajGaTNOUz|IMVJ0;+`feDbqS|)uQ$$3Ulj-jQ4LV*V+Xgzh*WZaoWc-+bpt}Sx1Q_?M@J-m61zJ%OWyCWRB+MW@w(BMbrR&acVnZUMqmiVvx7>8=|2m01fUUoN33f7a>lcqEvjv`s z|A)5x#ZYR9D#I#)pt-FKYX-^gb7k15xb=V^xZqxhE*zfY!Pv5_r-qb|rLp9=-L6T> zGes$HX_(+mNn>@9ds`aw;~;%Djol65j^zbt4vBOht42OgFcvvX9R0*yn&VPjILmn6 z$H*Ui2R|E*+bjeBo7a$hG_R$$}`=wt=<8T$6#E$mI$F?72XROe-}|5lKd^MZBK*@qgGYtL0= z@(6KTB{<~t`{;*ggbPeKH9x;i6sGhTxY2l@SC4ORug${OrW1ea^D{s?;4l#x?vvetO}rY3t8 z!LzkwTNm6Y05hCSBHWNUW}n(nd_H!;-Y0M2R}AgSJof zuEWydQ*A;Wmg-+Khm4yB0$IHZ{Jb4h8XiHe*40-M#dc}-2Ju-PR>NGDyMfI1*lnyz z)G}h>5uJ8MG`x+~OwOZka&FGNj8^z88F597xQ*SJysPL(8F57%x{WnUK2r3fjJP5i z)Magw^NW6z5m&@(bpfvPqD(#ZYFzeQYW`x`)MFos&GlGk;G9zRS?lmt4yX@Qv`lQP z&pvd2uVc($@pVDG(g5JQDh@PYRke48vmulAPn8-n(g`2g5V7aP@`lK{Rm3&I!R4H| zr4ef!Smq=pCItZLeC^65blPionpj?Tgz9Kmgz8*agz6AQpahq?I6lHQ2A`-V;u1#B zj?-cSD*vzbYR1Jy{)L!j6G=l^!j%3b#rK$(Zi+Y z%r8D|#yZHi)KGMT=B%AO>^5iZugjof!qcXS7h14EGU2Z+SU365r6sE>A97kk*N5tg zYt5?5hifgtyZBj@XvI3p_pDa-hncNdNvby3igk|6lF^!tmoa-p7~;5eGNR<%GRdYn8^FYEA3f@TZ`~5i?9c2%sjNff?u^~ z9*tUbrUOf(Ft#JRH&ozWRp7vmOggih-ccp_pd))3tXFCYOe?*(U#T>(&AoTCQEFSQ z7&RSuI!9??L&98IRP4lVQAg`r!R&mx6XxjGVs|ID9vLQfmZ$1PomnmDBOL6^YI`=) z=87`#n8TK`uraD4EhsncP~rTsz)%X!jcj1N{Y9k zmmC%yoN*tU9LckxGq4mqXWY+jBzVrcpREaFjeuukvqpT{HIY4zC5q`?S%cyQoDnaK zYrWA}Ht&g}0TQ7yGg(A0$zH(t|bl-`M6L+I*K*w7riSd26?c%e`4$ zXYN`kl)<>XZXfmtX`#*R!(ODY!lNvk!Ud1AJsxPP88FcTt%HyX`APWQHByyurfsM3j3g05XG3=Oy z-$<#w@GUZB+xD5XO zILp+hMu|m_Gw-bn3cAge^hxu`C~$l=t1wFBBXP7`7a)mr&sV|HPk=72v1<&FIqqP1 z2|F>}&V)?ze1vl$nKl_@&jso|RP=nY`AJqGHX@g}_#^;|_OyM9O(dmLBStbLaPY-J zlFAW3KE-^bPmBQ)tDgcjHeWOv%)BZwz^qx&LJcK;Y%r@ve0|Ag)<_eD_7z#qiovX= zJAVg!HM>10G?Ffr4DunYik`AxE^ImW#GNAlZs53h_KQ}}u>Hp69ovHCpJke+Ef%*t z#~K-nT@G>kbF5q}9;kXu84U(kQ=VfLwO_=#=h(wAoA3=~jq&!-Q0%;Ki$z0O?bs_@ zPTD^nMo(P-+0RJNv2ihbfl4(sSSF%QqAk7>!LrJ~swRvUFZGX^+php77! z8;i-c@g>%{p-gbYg28_YPnl zwT%IoOS8A(TYWrHn)32Qoe07$g${G`wu!gKvh<|ARQ|8jQV0I>RBhtrNg!+s+0fVF z+IIg2n!R5PdzrOWxb_=`Vqaq9DOTiH<6d!fDoZA8YxA0a7!N%BT@YCI*X!_9q8LBv zkMZjNaQgz2V{|j%lxExD02{zIV3yvEty6FHI5_hK+%MNC+E7dT-I@9eK6sMI)JFQE z^o+tkWZ5<(%i2DKQbA{>wH$tqBPF;K7S?ZHVtZPnU+>hL=@Xw8dufKp5D0$xxsYr?qqbR!2Xp z_~5=)<19@2K@eUDavwQCmb5ICMU|9mmxT7&B?auF>|FUW7h0=6t6bT-svpgbtY2m# zZadi5XlEXHY!re!2KOEnjeHHB*>TrWEAXyO>-IJNLC;+<}N@#&o z!h-i~^fe|Rvtm#%Tq+sy&M93%1PnlA6K#;lE@lk%lLr&D!-hz#H-<(8st|p{1|`dC zq6S5mgMu6&wbaPUVmw0wvK-P(l41k97?qr;M`S@e!}APORil|V%2Uy(p#}jqH8ci2 zFa%C3sZFc~tf*!3>;=|y{jeIe1%1gPClK)IV6$lpNTma8RpOZ!?HzFw&=)gaWdnQVZJyL?5aHOusrTe9?15)BQv2cOc+b^K`}x+?J(WRMz ze%_b`Sys(9K6q;NQFj8E4^dP^JO$BRVjTcS2ohMSQP~pN$RyE_=TIV4gKc?%HCUC# zP#WI7@g2SVakN;r59kH4XehHAij44jL;0zh)B`lt?G4086B>G_#HbuzeF-FkX_R6Y z^leTOAG<+B;*louAdD6@jo_^s0Za+mK2!u^F@CZt*)6In+Geo>HqkJbkoqn1V+>^u zpcXf3Dfn90{qWkNWudaR=mofS&`Zw!zz>XPLY6a$h>HqsA0qc(Wt&AogO8l{cw zFz5+y6ybK$3OoVvmDk;I(BowYc0^n`vE91x1h(yxp~Q^_7R4P=Ge|T#?GU7!(scT> z87wLKl++!8$OQ&qJ$JEG5%ns2h$uLBj4306FTKj#q=+!(HC6|~r?0V01TiyNg-+i< zfI*TrvOU)U?R34o5+vZs3#_v?NH$~!77aZ~MUZA>4hxqan%|8@Ae{@q04&TFf7DF& zE}6O7cBLQ+!#=i~#VW&{&9k#uS@$QT?je;x=FVbwlu~wFA*0?D*?ZgN!qr)<1fwFA zzko)w*|-{bwauc6I0&$fup%4;Ag%au4uDg94(p_hm&vXx%F>>Y=3Tgj__!E4hozux zQ|GXn(Wj_w%Ct-Do&zrEN^x!uYaXEv;RYePLNw21wb`_IBUbb|Zu-EBod_NM0Nv_F z_b*5vAVz^h@;oTzd!b{wij?yqcp*tVTpN2%kaFZPVz!VR%OE+*5ircaTBjedMd^Nb zOf&<63RtB`aWGOrUPT20v!TrCROWQBWUKuJ{5tAddLRxcch zRRCKK>4rf_>+nW-<3q5wen(>fZ+pZDywp-}Ttmlj>Nkcan?elD6^aMgFHs1I?low= zOB4^i`T&qnL&sI@bU;SR0EOm5Hugp-O{k=g(&(B>=`FGt^5d%Ml_;0)Z1EPm!y(;8 zO3ynWUua?4QEGwGH85WLYvHoBAZq-I%D{3A?577}W!qsM!U&&{awUMtZa#fVB{u_Zsox2k zog2(Sh*-nspj6&2G6!AOhcpMJ`gYhHESP|1f=;Fz$E&gn1Hwp2~*JU z2L4B<;C|yV%$Pql1!?9Hy4d({&OthC+L$k?nVNKRGXncpZbzO3m%~fsiD4adkmj$~ zsHAtEj8{&kWIZeBXEk!CfXs~ViwNmB$A>ZKhEVLF8{dGaOmQgHXKw(pfB(1A=Ml~EMrAeI9!U?s88U;)v(VZssP?WK$%MTq5oD#@4 zEx=(-pAY8T`)<@Dx!rgVsG&d_=?0tX>4J}WILzQaDI8nIA&Vt_>ViA|nNt$TXlsUQ zau*NbLIAKx{kE~ItRD(1q54-9sejeY>W9jfs(x`~^#rE+q`!!;F)6si*Nq20Dr4vg zZoJd=9%u{6`{~gS_%OOj-u?_qSjqi~yNd*O`alUFltsvxn-^h!E-XSR!rlx3kU|p6 zP67aVLIBuX1OR&jh@i14IsiDwDgbOJ0Fcr?sVW!3zs8@3zq7FV3q`8Ga5MO)hpInC z)khUnPtZ!Y;SZDM0^t37@UQcqfxlS@fGG>G0D^@JU`hZHH-bMH6AJ!0NDu~q(ERuQ zdH9144-NmyBGs>4aFg{1+FMn>kg6|SegyCo8~&;PW%!r>&%mFYLf8msR~P_Dnb{S9 zss`e2Gz4G)DHv=a7)WE4h$Z0p^Fu%Q{v)t{j1 ziQ}SHAPs>_VIVAi;AFga_8V6DR%nmmA&xUn?y(YIB!&&qjqyvM07u;f!Ni0W5k+;~ z97Wlm3sDrjjE$Ou##gqkyop|uv;fT`#3bbf^bja``j;OaL_rI z_0)`UNAu`Lu+mX9YABBG*_!Y=qkFdKMzN$dh51nqkdYUrM4@}VR7nCQ^%67RV3&M`j9p2mrVgVsmt6hg#NN@rFWm2VKJ%4dMjpH}_w3IJLo>&Hux-q&4bu*O z5Ez}AJSKFh-ZRg$)c7#nXyS~D+0V15^zRI@>`PZkQ7ypE)hsI32QiQ;DIxN-3qlA= zNN^no-6k+YD(Q43S-Wg>VX_#L&C-hDV=*`%u+#eKGN})<+3nCOK&Ei7#IE5`6H_jY zZ@F1NE=>CQ+S|v!-ut;DydUKGxI9#_i*yCJ8$MRhK=>d;!@RyE@f%!+LnZ3n5$p@F zGscW$_aQhslHHmp*%ZWU1@=z#7Mo1Y*hT6nR+>DjmW0>TCZpKm+IUv#5tygm6iNn7 zHK<37(=cnW>J6G?N$KQ>NRXi|3bURm71cEG22eTZN7Zy_WqJjD3fd*HYl~#*tNBbND22B{vvo zy1^q(tEFrRxyA{8w3Ln3Vr`E&D_jM*lq=j(X<1i+q=jus;byZHdx>760g*CmK1NS1Q%+z zShEsp3Ma(j60W);?mZTdsIu=#T|WfLqThS$Z8*G6c^`wbM+|%)YFN9)3-7Z!#Yy2$ zo^at#0;~`(-4wdxefA1Q^noCI9W(A)5PBVxMDi-u0-3t6f*&joycP?+tB!4Vsz@!gYoq94NYLefD zPyXooFgRjfRtY#K3bPok*yHkJ4zyIUcf!vGVq-C7e*b{&jYp$N+h{)+AA6zlD2{x{ zGHg3LT<=Q4RBO{AAlfF@sKY?C(qp{sLO$>NP(*~ypm=aKYZX{SyPBl6R>fvn^E5f- zWDFcM0grn&lMgbBK5CxTlo(_=Y0Ku483N9^g1j z^~v&M|MGlig5RiFpFf}F8SfSw*0E}FbE0t8hL#bsfshctuVX1)=5fDM7Tp!6E$0G{ zon`{G!eK}k71;(vp}i5!LKM<^X2E@ne8R74Q2+I;Y;p($((x|w=E>cm=Swkn12m-8 zu7|^?|I-4c z`aXK-S>*I-$Z9SiC2)WaZ1}>G{LTKbRS?2l$lgHOBZbYTdrSZZ47dl-#URiC{F2A2 zwTu96(E&!5h-m;YDv;g)xcxR10WMs(0l47pDd3h=|Imk(=1DvNyvv`4Za%M{Z{G$>)8gPgrqH`$XKn1ys}~k-LQrN8tYyy0H;j5G4$< z5v~;eVc*V}itfZ*96<8V?qSWRyTUj)oFKq=e zv{`K5#>N(CKBS5v+o5>`%?H>ARu=2GLk0I|;n~3+MTTd0VB%v#@V_CBllFc~))H7ckJODE78xi|Ct5EqJxS45A>$a-H;fKDXda;(uXz=2#%Oqox zLM8Fw=j>MPJ@M>Uti0DQo&27{d>NA+R~OI{mG`upP|sV3RAucZ$yCr!D&mfC+Sjr< zO}+-gn=g9qCBs+I|7#F9^F@s>m~^FE=m3=tQnvHJjtAM}m8GFEF?eD_f+E~+DE$CJ zS3V3@Cd5nKdm2fQ62*U6L`no&0aBuFhgfYf<4dw{Ao-m=0$Z*hfi?gC2>j_02!qu> z9f2T5V5zR{4Mrbf2N8->$Jpk&1!SX@3j)%rY|VQ+PD6tVsUODH4H9G4(#!@eZ1NRmpyw)ju{a6%d$q?j=%hq=t2cG<9;|ysP&~P$`u}&Piyy9TF=}VyPY$Kc8gB3!QgKaiBQ)9g~*{ zgH<>|G7P61%1vD^dGdnLPxwx;7m#`3DRvY^z4SeZ$*W?+_c#Sk7QcPZ`jfRn!c>3p z`m#w7B*NZ}F8C0Ee@JVE)&G#z3f5#3rr{l&F+Mu3D{d|>Jt7(naEdflNIA`hXfKKh zr&&|bkGoDw+VZ#4tYX6x)ImC(>Cje-n*@70Fp%p{!u18X$^fLK0RBHnIno!oke$l4(7g#H?$qjy{r$&#$qn2&d}&*`(>q3J+Y+vQ%$VC-T7kQm;C0=GcBXV1g zR0K~EcW_?s-_lU5XmVRaahiy6!U3Js1RpA@4sg0ehwaQ6xosB{G1HhkQfsl9SnuLy zNJ0D+H~$Q6jWmys!h!*#=PWi$;rX1CvcdQgE?+gnl6Q>Ag$t`>Fc*M#q!2Z(o{& zkp@QQ$hB_|R+7B17g-xRmQYsStf6BuJ(#$-R~093Zw9wf6&5beCY1vS{84p9V<9BN zn4clZwiKtL!N^6zQtE>eXAf86Y$?9ZHb^d4)iJ_Q`UN8mUlhHMGL*P`G>N;ZV<-p} zg=Es{x>jH0ZZ?tv`A{HOWq`Jb4Ji;1F2>w9Lusi!B;1~WR7e*U5|G#*sW z@O%@HFJCGg-y~VG>aR*i$FtGsDuj$;!k0WT71{|e5+tFW@B)PpiI1WXBJym}6TTPG ze9{z9959j*6$~oWM4&N7UIQWq6>1{6D8U|7=}ig4Nl~FeHLZg*sM4QO*r0;)Di~I? zU|0iyRphv;{p>$Ati`Sy*N9>LcLo(K)&J_CdW|HSH2?0P`ic%}Y-puI`2_eGo;s_K zG0Oz5TauUy+&XrnC28rQ(bNBEQAP|N(8eFGNsK)vQjtX|7ata-T%1^xa&cl&Vj9Xt zDV2b*C~;;(=Aw(Ten`g$eu6N^Y-FI8C_JZ2&63bE!#&>ND=ln=N`41zb+~`$zhf}3 zA4{xDhqt!WA{s;M5$iLDLOAS_>lN!%u2(GNg7u133r(UU|6s{xHWa=N>EiwUJRPUb zZ}#)@@~Tj&mqKJzFc<~H2ouC4vrdT~9^)g=DNu^ybuqXxL^jX8&x`NLzE65plDMGDT&9c5_*fR!C>=s6kmmYaF-Tj zv{a9_Mk%!ACYAbKb97GN2FZ|8i(Ml*-OJWk;Xy{ez9h#mlB~N>f>$ArG0D81J7 zBzR*AuUzCC=^SYE%_xbUZWA?1@@mb$x7&?6=^9+ApW%s&^vuAj#1}L`rLsl{-E$Gw z479{MIspoBUP<17ZYL?pOTjAga!H<6YBtt1R4eGGgCC5+3f3Dd(eer~qp4L24LC2l zm%2f+vev10k*q9|O)tdE#hrE6r08v?^SYDTR#Ch$I;`5cAu_ z@X~x{`BTeKN*Ryl)4bqF5VDZsFh&I7=;ioU+5?w(sXVcKF1?kyK}zuIKBR9bMLd(r zD>T>xPQ8`85K)z_6PO~3mv2X02t}YRrvQ{+$Q()Cr1Xo}m&$8lI7nKFp^~~P(a!O0Yg;3a_=t(O@oHj6 zbxypovNbpvU|R3u%(nJ7BR1HyCa*xC-@lUID^}Oy#mKdOEx`Y~;KJIxt^|F}AV7b$ zP66oCI1TG&F(JrHi8hTegLjJ_Zh{sL2U$l&=s<{Mz7W4V$SB*N2>%(&!Xn((J);r4{kmpJ;8AWsSO z1q(m)1p*n$qwujt-DpfLqSSjtu7za{!Lh}E$0o8Z6I%+LzTbfkOcwR-;NKufz7zBD zs%UX1zYTB0?&NRl**Z+ek#x5h*o-HF@iDp?uSiFqWzBd?B)W`O1m&9ZO!yAy)tvWy zI0A9gnvB@YDB_=|xNs25IN2HpsgV*FMR0UQ#TJ}ys_fbVu$?THx8N_Lfq|E}Pjqd` z6Y$)xCC1={$Z5&T;%?UkExF{bKs^BG68z@j)?ad{Ja0Fufq!IitR)`@?#g4WxMIza zeuGV|^=N&=%y61SnduUO*IM%&m3e@e)P_G1O>7k%%_m~d)3zY{bXhmlxlwnr^*&`! zM)o#sc@K#47q`W1GBu6GKL|KGr1xOS3h%y~{Wl$$HYoQhF zMbVS|ZaG=8*?3{0C8uWwp5SFh(z@SGful%F#^ zxWKdF-Ml_s1S6=aY-zck`|ZiJlsQ;^I8wyyqwfD8g&KOp+=bFmJ`1s;#NCCu%3Jlvd!zsJKeEbvM6FC0Oa*rqPS~bG8(_6)_%O(~J>tHH(Y8He@x%NM z2*UCo=6Tq`mj8_>Blz@hoV?z&e*|2<(vR@k>bVty8ISOQKG_g84>*g9s(EKK`a+ z$n1X*@(K>h;)@`L6s7y|p$Mk;+&gUs3R~VgL}y8o?jq-OC*m zNI<6Mz_74Ir#G@D2ZCkl?L}ws#mD$1Eor7I3g2A#w%9Is${@bNf2E+1uun+nMnaWM zjC`7Bl-$m}7!oXX1c~7H5w8k70-R+JKF#02!7KY2Z2#NEM=CI%1;Magw0)MR;7IWI zXXQ8Vb392@8^&+J7x{eo+0gTHq}uZw?}MPxP<|g0Odcxpe5r!)toIBnENw|aY30Pl zVLV;*eH_$`G~tT8UnT4Mt5vpa%@Yqjfn(8McC|`R;Tytx5~(z52)~8=%`P6oi(GNi zUQO9u_K~+Jp#)Ot53e{Wn*LSceIBPVNecZ_2%Ld@s_odn76S3(`QHcvPmbpm2m-H- zFA9OX{#zj+%07=t_2>GZgBegP@YnYLixH~-4M(aO@bJk0J^f#Z{#PIUSN4As4gGy% zRM!Jzigx|p|JI?89v5Rc1IF{FxP2q50nGl+1YS~`E?zEWl)Zfd#3x~zldyF|1U92| zTdY7#!gTn@%_cERHq^Ml1S99TBwq0v!t(`g!BRRMu~C`WlVE2kZS=*s1#p1;EaYYl zDHrkL@I(BCFCm*z_HD4u1y+t3?Ts2k(hVved!OG4Bq}*0+2ZO%psj3CeiCodfhcSE zR8i))VY^J|97m5Ozv0a+&N1TA8UqT!KWNd7|lLJ`4w~wUhZ%G^TZ? zfcZCB44uL|fiT!Lh1Y2_9VJ7A8xN`i1T?+Gc@ri{tx;TfUms3)WmGXljiN@tNh<-H zPBJ;5?Wce@L`{Pt7D$Y#yi9<=M8Gd_Lu}ho+hB&^BE&$p7KY+d3gWy`p)sy#)F%hA zC}`Y<=j&=C=m`RGR9;Y_fo)C7K>!K6TwR==%IkI~hcGyFsOuPRs>8VJ`_L)%I-29U z2-|DSUUDO|Ph?L6-4iY~ZYDlk0_M^eL5QZO*?gsY#ef+&dhZfH&gNfgUr32`aNw(4 z3o)0ZoAE-vQYmrfHBhWKDE8#di&cW|KP*T#0_0M0ac&`Zf@Zq7P;S^|7D1bP?}$Q_|^(gmv()xA<}* zovyvjcR0aMflN#jO;_;RH{=`HP~8^<^GHG!ETcZ4Caw1X(0##__d(#&yau-@1j{f+ zQJUDd_&PqF9HxEO!81Vztt!W9-=7$#w}Mb0ct?B|#2Mg2(PNcl&px+`kBT_~4{>$% zU6`cS3=#bSX2~IO`v<%k-E}zn18`pO{@I7T%B>$l6P2z{L_iPeb+NocM`tFT1*`L& zZ#6H0Q%C*PVCv2VA39y{K|g)y_AStls7_uTJZLq}M?Z-C)ts(D+_r`{XaO0Bt!zk| zgD|6ml18@WkaEXeB2ok9~P_$^XmbX#f7f}v;MCPsq3-L;D=UScw z-}B_)y2gv2Ks`M~NIpbCvsq&hC!3wRmjmCE9F#0j~gL4sct zVh7)@y&ZhyGv2{SI3sVW1(TcXoK4S6ry}dMyj^h@uxgx7HEyMhxV~}ori2=|5>IH{gvtL( zc1jX$r8Vh1E@15+|h+;;%X zg59F;0m+n}9DuRyx`t*Jb_IB-FY`v~t&lQ-*#8v7k~SmP-FTQth0iqiFbO^iRrJG(DH zY=cEci|eRL|Ijgj2JbH%5{RYs)=f}A(LGmbw<4D8-H9W{q zaG~kh7sc#v>9Xbtu>8Qw;k(Qd#irxMN3+zD(RdYSzvYdpO+h?J8l0)U@V1xdBDHcm z<90Y#$aHkV6$gcR?mNkw*H}RXSFrXYPU- zCJ>LT4n+wP*5ZsSk$Bn3Ab<3bp`e>xIwa63~JZrpOT^gF}gmUf1>{@39)<4h5_9XJz$ zTV+mU|0vP=2OD;Wekg=pDe?ES{KY>Bz`M@f2!Q6l0zmQ6IX)BHQjdIyI<^NV=0iFF z5=%c1v~o_QpXWyq&>b}HM4U*HGRdw@UPII5Cq5_E-jrs}rCmyV{}ZnVLfwZOMf_m> zrA+lD<2nefyssFR54h;V=AYZH%aWkyp`kA*;X0%gL2^5i)zM#Nb6R zK+lUGF7mQOk)Sv!Hug}NP|v0^HI!N55(FDRh&h+|L6kZ4GOw)d6bmo&#&PPFW1`P- z-nt^rU&dM19jx*z&(*Y9V#jYhr{TQUFeNKmzfkZxj8bMJd{6fT>B?SmeiUQv$VJpG z){MCbmSXdG9pM{>Cn&~W;Y+nx(e!tq)Fr`wzk|W6xy8<_{Qjg^2O$U|GW-;zg62qY zize52ig|(9YtuxxYanKJi_flM$K5T?T;sP@C20&qd=b(Z+_6Q1Cg4VMotHsfgETL2 zoLfD$ote{h9*o{`LIqldAr@`uQ1y$Er#dCz1Jx_zVfGhd`&-^D^1fh4r%FkUloU|K zsYHgS_{n&&hGyOhFm}<*rx1LmnH!;TFi|(#$L5X$+(A`L-9QuP2i@$9FPVn<2FxT* z8YZ!OYcNxKH15dE0dVt~$IOvwBc1RkrP}BTl0u$d)!~8O62*C5bc=_%nc-fu{4PIe zQqLCgHaG8zp9x_UxWwr?;$dJQCOA!Rv9%;p0b+xr( ziD@>izLpc>H&MFVGatSriDelByOafPa)f1M=oxmoc73It=KZm#51H&5#c-!t-5*xl zGF2PVQK3H+{-)UDG+UtBQZDlw1i!jKJEK3TZnM9hV~VkEvuw&KgGk~4oV8&RJK~sb z8k!yrP_^CF?ZiKE6Nv-{>Eko?g5J!{;La8OkLHB&7%jDEB zu{YLy4gQx0#+kLX-NAWr=3-3?ijE$$vnyL*27!AbmUv8C&nYD)0XT}mdRL;UA3bJe zWG<6n!e%kpJi&aIGXGl4%z_ijDe4wcik$&@MJaZmlM|8m zL}W{Kb;~9dMRuy09QfDsIih#FH5a)>*`-N0pcn>B^YZEpAa%1Hka%IPcwy8k(&Q6@J zC)U;PlnHAfp`7Cw$wg75bP7yM_#aRB&jlpoV_1dq-HLPJjb@{W^1L186NA2T7Y|?+ zU6I$?Sh}6@jOOQHbTMdyS9M_gTfpoF`fu{aB6_11!Vgmiy2%igj57T2T1dX>pjk&Q z!ii3WN<>B7QBQw_mMLAL=jTL4y9Lj9)YYmbFwSOJU{f+P4P$|YYm1rHa%2x8Wk zkU^SWfQU8*YbJ!Wp0PUBYq!8D(SU3N9C{Lp3KijV;&Gfo;0F^j2y2(Yq$@hsN%Z%BX~lvnAlDTbL|lPF8Q8~5Km|* z0l{HiyJifcA3_)y6{ywAD6DPWBI72ldFjE{wE$895;TewC-?4xbc6j+a+V2T28lxS zC#@^j;s=4wW?8LZ8fljpp2%I0D9TO*x}EN&LZ*}_QHG1I@3`U|^f)~aw#4(7^=P_P z4sI;7(#78|>*eqDIcUnL9-z5eVKc}{H2U(Sb@iH)nxUf^X3=I)BKUW<6GhpHnCN*~ zPYzh|gYC+y-=IzO6$lV}!CeFsJUGc37CL8`4$yMsCiJ&N$tDNR44K39K(`fliGZW() zo^693gVlw(Kx+fI*0j9VCKyyIq^{z91X*6>gCrYtPaaLqMDdwvBzrsnGn0ocR12P^ z_%ziV0vi}yR@&HHI1z>70*f+cHEn)yMH#aOna3P23mgn@l4)i`x=oZkY{$kpMgAUG zj(;Qir>R8R>?TSRp6jy{kXH?NnjLW zHX(H5G}yGF*$Hf*$ra6kfrBW!F8E4tzk#qZ!ZR`knekj7OV^7KI{W$52=b~8<~Nwx zq3WUO;#N%{5v^xRl>LKDTZnWeHdh>GyboSc$dBSY)fYLZp(ZUxR5I%j#k{JL>BpHD zpt4fPdy@FJl6kj&$Q}H`XU@{-a^EM*;nuvF$MYOksx=M)NVt#7nXl+CnBv~@W^3@* z=9V{$YiokbIG-G$=CI9*0RQo4i2!-S3iyV6bgnQ#T%6 zwnUQMn0-!AU=s@7$U%2**jt>nE9}i_4RGhBiW=e=VR(XEqNG>2CJawWZ=fPqVwWG}z!_^K}DT z(ZRo)W$Vo~i52RhpA_PL#8@9s!Wk-tZh+N*Jz}uKfS;YYX?S)vOuzVTMgtk~P% zY*g#Ff|{l97mjE_zRJ4kz88lg3~^>Dj1|@ZGwBZbQ4)v|A1RA;-Ev()lJ1L0D`pHZ z%ftD0sOzA1?9-w~ts7uAdZ?gv^r;4|LPzvhF5MN->DmcgX`@rrT7MMzl%aplkv`~% zW!A}A-~%;DF5K}ZSpu3>6_!v~_p%{4BKVBSzELIQEe>}R0WHZb-HVz$>ohAtd0KNx z<~~_($vQ?}oqzaf!o9Jm8{etc8T0?K^teVb@pjCqk;@O4polmXv3~1Mqu$UdB34Dr zneyh#W$2x}xdl+j&aXeZAQMEZ1fML;tw7(S)a&Ha2Mu~9H+4w8VPAE6bE&t*$8gaW zl!WEm`cX~j#gs2|UN-54%a`$=Ip~GSm+zePY{=)parr^FG?eYWw=@*6K^gKab^Rxp z&;X5TCA5r{bS!Sz=9Z@w)|82(lf_#}q92YfOwdI*cMw00#HMr+_ZaNL6a!v+mfwXF zEe5pdt=KzL% zRsEqRqC{CkfT@F&nw(Ss<-&Cin5LR_+|gQH|6sYPKtL3$fcnj?w82Q_l|4sN`hw#m zZl8nqFbB0pCD9*ONieDslsLO*0qRr)Ces3|MnD#)S}F%X9<${jpa^;E0NV3kX&vpb zH*Xy*Gu4eul;(tE0N5U?hj_;%JK^ZpH?m_G3+lUJ_Z>*%-^)qNXirx8Q~)CSE4OA4 z1M7%GVHBNM6rOWVc@q>l<;_q+GCbX>JQG4GNgZcCfp%=j3oSi0uB*4D-O1tCR6r1y zr*fLtST(f&$bE^JL6UNXo9#D2U%#guk&@V(-YE~na&`3pn0Iud2j>o;!4HPmT8tDH zIfBK3+jazt>5lqsSFj!6iuXnhaECPjI<27wtSr(1dJi?A7I6te94;aeTdZkYtwRz{#`c-#fJY%jfC{9r1}W0U`en>kbu#ZY1!HpK(&=mwo4-Zu+;ZmRi#!(nK6 z{!Ck;J*L{ao7zfF$wE_uDu$a_OeaWh&|1Reg>6Y1fSwgh%73v^sS!f}I&h;(J$9vu zs?xAJ1OKE>%o6LmLBV37H2|teb@V9JNk*oHgW|FW1y{&`ZxDhxZSB1tWodre zW>J{(jEYHz<^cOBog1mbF9o;JLo@!5P=*1I;pbWfQN31Bqr?p}aI$Fb@j7l2dPD^U!ty&O5#U)8Hi&K3}NZ zQ<3F1)w5l}=Lea+w3eX~ZczBXuy*cO&zW46x8_y5oz(X(h0VS53G>!?YOXbE;tq)9 z;Bjo9==roso{N5cTJmKERbVNi$uo*C0~2L4tKg;*Ku@_65yPL9e3@6DF?WEsF#IXA zIZp$zds=LN$}CehjU0nufR0FR*eOmhHm zAt-sudlw*3#ij$LPh!L@9V!_yr-w>LOxn|Cg)+p1(XE?#7y9q$OKa%MpdTUQzVKd@ zwa#uwFUq19&cT0OFIo;WYgJJ5MORY~7gt{-R3?^Dq;h zd&RY3=3%@Ye%|Z=UQzV`Y*6=z<^g=$Ewa^{2!L0+T6`QZbF@6sKHIzvoUYN?klD@? zzh#?;^^r#K>)~d1UHfc7qfw^j`~D;JxU#iN)n6>=248;3e1fwk9H@XS&6uMc^YA*fx@#uK%Cg>532EGVcUK^4eSGkXGow^riygFJv&FcS#tD z)9-Y$<(&>^IG}lGB|z##QRzs7m4NLA^adTH8Bh~l0g@}S-!`i{L3iT*7E^rqw&|;S zm_%0_Op;KM!c0|1o=L)^s*a5&2`#ERJ~E;Ajc}9c(}ioXnQnm45w#bax3+^1BnOIi z+N#XZMQZ3+gz~(&x?~}R@Kv#ZLYxj@AdKrpC+Orr3VQ8{1F&FkhCTp3A%Y3n&(q9u{1eGsU&oi zCdXvtpG<6T|KY~$a_eH|WN_Sa#s9&P3z>t-(K&G*fL#1z2$27Q zZ!~iM(F()s8|l)6-_A7C8Q6|-b4_2WB3<&N5y=*5RbR&XeF~O-87%!abIk{^%`Tj4 z?oE<}Nakp;Ji$KAH^^EX?9+*_n^N-(_ofS(+J}}(tx#fq7Pxk`nxzV&+J{B%$ada2G*tRJ|E1IWAu>ilr*dzW$Ub| z?^nbVZ%TUZ#&WiUH_2$0QE z3>~BwkpqefDyZ0B5W6C%U>6~wNCzo_L8U591f{wl0fK;16%+-O5{iJ*5fByi{-2q% zn`{z5U*)^s@BS{)J!krysZW0jS8?F7RSHNNgWbDB+TVK1%Kv=hy_3c^d$+gLgAsE~)LT3M9D}Y%43z?(M}{o% zK{VU|&p->NVT){+y5%QW!j$)Y07l6HIr0N<5BFG4nw*kg6b}YI^lmo`nEqn(z1=ft z6Z>qqEQa~W72J%?@b)Cy9E8h=+7G%`eKXN)PJh@hCU92k56D^K4I~g3sS9EV6Rq!Q zz$nfd>kAl70IKOCh7uRLUKIf00E41(;fX0G+*dB^0|rBw+J-zNeAXQH1LCdCL~dA& zF-j(oP#uZMp>jF_t`Lb%gtIcNvZoWE1c@H$L(~C)6)aQ>HXX6)iHLz;)ZNmBe;Ml6 zT2Aea0G(G8IsO2}4_XA65~x{X2FRnXE<~7nB~3;E1I(VPux|SPDww=#c+Q?ee$t0J zEm3xzMPNUVby9ES zejQf~^_$w!)D6NGAqEC2hw8`(T?n76q{MXQg=ks}l$b5-@tQ-8@69p-?5Thz?WjtX zQBJ1;HEjX$RKN!VTsB+}(`g6NjNg!(=etX1pmzj4AUE0yd0<1>!2ATrNPy4U=D@7* zi;3J2yutK@z*B#8-k|9^@QV?!`U2g>s({rGJgy_rRw%HLYh66ENeK}1<2R~jxH#NI z!ykX8FZ@ZSglVhfM#DK@G4Q18Eqv4BJvT% zM+)r_8gopGHOpshG;}A5`yuk|A}1_#-q2ug&OnZF+D8Fc{(jNK0BYxtrUwYgh*6{s zh(-{q1AA_WvFJ65v{(`2=S__5G*_`rjBn@})5Q3ao)9ggRpU?e7a!A5tpT-8(M424 zLp@6YDk<&KPz(7)GMuYedx=D*%`$U|JE^5se8Q3@xxQ#?BKR;^Bq1GCtOz?`AEt$& ztRJ7Ji1PM$r4EN1^etf+8FH^3l`?wnQ;BlPe9#cK$;0!#6=DX?AWnZWYU^uAYoRyQ zJD7nxX~{PhcmpvQr+ulS3AGE9Fa>pO>vxeiBrx_dO5IKosJP_Hjp=KQq6Wx&)e zP$na?p#wz}0w=9Np~y0uizuU}?GhifI8+8c_QGF;tLu^t%?uUFR|ZVMOO_d5L>Vy1 z!eyxaLc=|xh(ff-E;U6L)SQv#UET+&~wE0ixU<`_$W@ zjG}&^5FKQGpFei=C_h&>F4=5{Slv~rj!2zPp)--B5RAk$nZDFZ77!f^WV4n!R62-j zM(DhdB|S*oI@a{$v87P2I3Vj~d;8jvesM8fWN1NC>A(>rDjn1xf%N64_Yk~dpX>va zjWi?KGVce)Pnt9qpzz?=A%6weE`v@+Av;@SVoTAsXjmfbY$*>(L=V#`SX2RE07MES z6I;rto=TyQYYKy0h$G`?RabZ``t(5Mf@&1(`0RNateZlReuCM}lhkSO6x75Sb zmjXye9vY$G;R3-B99{&HQJ|p^jv-I(@Fq7R@LKJZw-j;+BLfhU2;nP5H53BN!vOya zkpmk6=*ttky~$}ipt%_a>w$QNVfxTFNdFh!^8YVQaDDm1c5k=;g|oaUibw!|ZVY5rR&t4o06Hb%FuCM!g~H#Gge9?RP14iaPEi0Xi-GO{4;_fBZw>^KKzuwKBLCp{yqSs8ks(zC=hANL=kjTNAHtqMczZLYeI#|j8y_?}>mK!W;Jl`kB zD|pU!gGG(!9Oc`=!7X43SV?%G$q;#ttZgQgGD{?mLz8pefM^}ZE2e$clyiUbmaP8^ zxj7P<4Sgu%VzkU0UW0W zP+Ly++dtCy`9tI9CxV$XZo0!3P(3|%7%Zox9>A>70I6Yg$eXG=@VAB8r-`D@<%0Bw zxxiAPA&;00XDGl;2@Ohk*%TQ5A88F08vegC`o&1VrikG$ricGu9sJsawrFCNwjD>L zvztfb6Ci&{h>s$!;RWUiFh;Zz((a5Z6$^Y=t6LH8OLo`~H3DUSF;%{|AF5_s=+2+(95QCuGV&2++JByBzc$LH2tNc`JK}1toiPR;IajfZ!lx+Q_CW`Uh4d zk7)>m2Vg-6YuW(ajTAhsoeE3K0LmG`V`@xC0Znc`J^)m)RSAu$k<2qH!skJox{J19 zjQ~`b{oup_{iXLXwubui&^uru->I{PFjCb331s7l3AbPyX)ZTa4>kz-61{X~)wGC- zQ2%345+e{uVOX=vNx5O@mA^bx}=p2JvCg$2@Edho9~v86Aii1UK~b6&r*` z&#QWgmczX?Xds>H@`e;^T=kNK-c@apz0BB2m>#~<+5>w)lh1|`)Qbzo^E zv7LXIbTAnYkPA_TX}=6Z`7nugnE~4sIr@H2MntuQIA40i3rt_ZZe6-?q1J6zM!vZx zbd)|CADV~0t(&Ar~F;4mLiK%@2DYHWtXKhrJD8YGUVM?^(kwwfkuPce27U8oZDgOUJmo;}SOfyn7n9 z4DRPxe{rNp|{DRtmHf_pio_~IvrVIY7T zw$l2Gp2|%R04so1o6QiH9(Q`@@-4QZDfec4xIy{=?C?B-EWt)Ku=ZP@x znnMwvPo4D3g-z#wZmM`#ssL5n$?qb=uEdBXA-=_i-21&ZF++K4!t7DJzHlkk|9XJ8 zz;>(b&Qa!GX{&t>`Z9H|zCrtN9FA*f^w8@9^$ICKI&eX2s_gF6z-Wa83>$$P#2n5c za%Jbr28fzegi-)p0MO7$7Wug+P85o#yB6TA8;4IpRYr5bCbalZstN!BdhE%nTAb1Z z+Nky>8_?%N3JoV3q~3z>q(4VBNS#`YOr4Oj6Pci4L>4b57#Z}Q*Y%pN3E&U^2T20~ z{@_)0*6iHE>Gyeq3}76d)Gsshz$z#1q>9TNi@3~BoH$s;_?CLz8>*(@nW=LMtU2|h zNx~bn<}n~7eU83aulxBRXTJ7;@#YG3i5kvT1t98Y)OUSHmAnNg-W?h+dlW)|+*}P* zX9pvM3NsBI9FNb)%v81@RO2wM1QAH&p~D#Cha--%Kij}PlTsEUJJvFNbq+FxoC#t$ zb+w)J^ld~oJ=>@p<}tt!rqW*^6ASg+54WKIY2w-hj6tguU;`Ss%sk3&09|Vy*nPnf zuNtGZMRSJDrdapmhJwxaoD+vthusB*8t^g`xJzB#2rf1PE(NfF8;}Ko({wXNOIAQ1 zj!tZRgJK*b5+eBsL+Qj%T4AR3Bfu18r>{1}W*Y&6qyQA)q0C6Y>Ltk>;IL4=QkDwT zckB|<_|^N=-zWEf_A3eH24jBn3L}0ti6oI25&c^GgB31#Sw12?fDeK@mCK7fQhYu~ zIEs89=?o)WMib;U`Cb$072)1-h5?Z@xHXsHW-z$sc@WpWjWn_ZX~uM_m;xKcGe{6SBH~PW>kta6AKU zhnpb$LPb{r&=vYD+|o{*CqPa+^6?gk=@1~RvLBi(Gj28ETyfx!!=D;hMAx|49gqnh z>1M6;qqsccW)<4uZ_axa@eg9L?ug% zozxj@HNp{N_j*&y7VcHL-S2z!DjmI&ukXdpuNtX<`uFYiwwJ|9nTfLXK5r=*{K*?H zyYKVXcG^&WcH&_Fa`irMW;rd;HxuiVh64T70(~R2ESo&#VPqp?P?X~5OHv0jWa{iM_4e>SkEJcfM-t!F&xnP(UzZX_813!Km_ncS~xNGx}%sP zrQ%LR5K@ysLEFGdNWwV{!&o;e$hT?`Pm6{cNT)+sHRW&MhA9?h$DB%H@hZy4FUt5- z8kS*o*ULb<@OV{|J$h)W$7^Yd=+QHcMwqk=>Cz;k$6=Set-n#B*b@!h_h7$;X&jqe zipC*RGmY}bJ#s~VqkM)(i8!jQ;?Fk<&+4v0-t-CGH4HKTQcJ=&>U7)>Sflul5O4hgIYLeArB9hqE= zO@~*M6~)*s`jI3n6ld3m-g_5k59;>{k|nZ6Fj!Fq$T_X`I&b zh&7mQZ$*c!-$=CL9Nv%@CQr`mH)x0cs^4G~=YoENDWpHt8}O5S{W2r_6$fw*$e4*U zH6ewi)yP@7L7feaT_qsb6=!>1wDY18BWm(m6J@6qmYksmf!PWfig86ppJmG3gh}+} zOph}2hsCK-ALUoVITGE3n}ZUhJWS9wR1OWCBM}=25ws0)_{7*#Vdh*PiKvLMc3qTk z(iU<=X?IG~fq>g0P@PPQ$cO5@jQY=G6R4UMrlVb0RCd1{TC7mHNxs+D0&*Y(ACo~w zFA6!wpGS3vcC6bzicSHyAt3FvdUar0^(_qp(G85_IJ*7OwC9PG=jvYH>>`KzSh);R zfkaWN7`?%(1Ey0p<7I6Xj}$Ex0s;>d1aE7T2!uQ#S54Pp;0*0`c?$kah@O*2u)_@^cBMq^pv#zrOi(H=J$100NRP-xFUytL?z z9Qc>@392E7?nna+qsZ#iEl$2c8o0rNKuWsVrM_zjl|p9dce(B5Xw4fMK>K5akm(V^ zKXLA@MG&w%Au&|CviqI}?i?z03fBwTY*(KKl++QZTl9JuB`{~|72}Taag5}tX~2;A zVX1^tp~x3Pn&8Q=fqOfuB@}-vRsS<;0g{suo&=+P6W3Wvfdy|H>T6U3+9#~&JVpPB z0wH`3;hIMGCa&KB&4yI1fy1a*Wg&(N*Tr!|Ph99~h2Wre*=sdIgsREQSM(=xPzvi0 zvpQB8)(K{Hx|Lx;XbW%>00LFn1tb|E*)WxDHr52;$g{VR5fc&rxs;eiCFHj8SL zRZFuf{Jm{C`3~qAbU@G8rVi+g^IzxC0o@NdwB+doofil6B>jd1dWwF-0sXFi!vQ@_ zy%jv5Bl;MJPjZZOc(E^(H9X8dp|7FSxub^W;55>X?-o9;L1fE+?t2Ni$s5>sqHn}C zc9D(8*v2l<{CJIT2g_vyz>7zBI)G;Gfo0Sq5t zOgIAOP3-fbkUbf1FqX8KA}$2mR%GR_hzQwFxHpL=r?}C7MTG42kYWwVoc%=+vWP~s z2w8mz_I20Gajvy^7c7`sWB(#UIV4A>#k;^zzD?d$l_^ixm`**Xq#kP6;SV7hui6n@ zWgnJ7PQ zdpZ;i`zTClSPRJhk*Uma9GxV;sLm?DNcWlQtTE}S)vCct8>XCGgC)ubYOuKCu=xNG z8TMM}=SGZ3f?HKP#cnW0$`Z9%E#tFbtJ=(GAojMaS;ZRkxzI~iw&P5w(-v}$ z6hY;dQ?F)Z?BJR@c?fpTIw1s`)YNbq`pEXABA0*_g=2Axe7}xDuy@r_2=;>wS#$Y) zU64nzWwm;&n=wO9tOs~>h78tY4L}q*Q4hnkR1)f&qEX-6s3K5bd2@X>TL4lbM9=S) zBcoV=FayH+8#O4w%*PvqI(54|(ty1HBmg~YYy2kXHDu4_w{NLQ2RH&j zE+EQMvqnq_=c;(jKl9^AgmA8C>B2t}&ZVw9rWRD!{q91V%3n8Pfnxi-gwvVLalD!K z`KZp;aVZ+JTaB6Wp2jTIxFBC{%qkl{%6A&G^41`HDd@3;Y1cH8q2l;;W7gQ%C#@zd zIW-$+qYWA`ICA@FM6{v~MPPkex$=f4AVD3MU7N6^uGv5m)G9@bI;%B-w!j)%xkTmT1%{GL0ae{O}8KJrBW6`{gw)Sxwk) z?b;Hg(7keKOI8+3epX9X#`sBo){?cu@;!PTD-}Ka9kO>p`e9XM)9YBpG(ZIXSiW6CE}@H$qvsA{b1SwL5#ka$#+P1RtvMO1Ug^}3pY*W*B% zA!lFD?yyz}HScHO^F=Z3S6m8^7B^gX&S(0H?To& zd}1LHedn+#ETZ4-KWbmccT$H9jNV=^546QB%#bHPzDPbmCpKFJ&Cbh@wtBCTq1;1kQiZnH866{7Mf*G^~Q@ zftX^-jGIBuxWq_YvNOl-W^hzM{^e6;y?Yo5wcKR42T~YyWKO?1$JIV|tK1471~@us%-5F2E-MRtmY$Zv^ohI4G`u zls#7EJ37H}%J|h40nw39aZ}M{NCa)Vl4{Xy0{x;~`N^Z~HJp#vKE^5;pUTG`W1pq> zyMXDusM~JB92KDVsl4-XcCw~phWg~$5X6;v4#m^$nK102L9j@#-_Jk6dI8`{_<*&R z*F4Fh0d?KNEXRqfeO^eNVvr52x{n0{_zHPdwrEM|Z3y3Pz*furSvpF2<(*5qG> z!lpb0^5kN9;3-y3z&tnUTf#bbsV?j)tX8`VyP4p}H@bkKkLTJhtWE*@>5aVlzonAKlH?-P-X9W4wHRW_I!?M2lL^C1<$dLi3C6ZvVe#J z8SYjN_;$&P&jY+VE3bc^X`l7sB0ZmHPswFZvwPh+%QnbT&#;CpHyaFJn6ba-8TN?T zhsov7unc-$`z)&l@@$u9ajTq_O}k;XCqB#iMMT|j|7I%f&@R08h-C;3q%}vTyHzNh zmKl+zLgBQNR7<#=3Sp=ZKFo ztH7&cWz`;-lr8ef9_-bM@RRHJrqnkfj7zR&p?rl1(5Vr%m7<70`lVcXGcSo_I`uX7 zCz!dZJy{YS4SKSf#wwZHlQr~w$pbO6TDfTug9p&y%)zXL5)oQ4gmqCOLe+->@H;De4P$pi4~32^T=oHBo-B6`!-+6h zdWP#0q4^suS#}<-ck__pI2LkVM+;@_wf*UAlN*NXW8tUa`dC2zhU!ExY&sDx$i8pr z4DY|8>)7}PfHa&RO-Hcmgik{#L2aY~`XqR37;6wcJlvltx<5lN(Vw|*tNtt=|5y6+ z`(N$P)(N^l_l;)rDiw4ziNhb1(YhM7QTGTA(~o8CEH>i$llpcU2MPrpG>XNG0E(;x zcC#%MMe-=Vyd03a(WktP1Z%JKj$sWFv;sMh1X3UuP#~ALj$z6Z{k$<)#dGDCV^|#47xJ8}DDzOQh8+&&G9FDP{J zjFhz(u}|`2{~$!uDem`N9{caKAavIiXh-G2L$cf=e8d}9r0(L2 z3Vp<=f6!2{#u7G*gV?rXB|8FU&6-cZ6kjc^Rk+oA$QxF%%0BpeGZhp*Qog#14FiUVtPaOE=|G&{=7~dmqoObU7(#euS`2Kglk9s;5sKViSxd)Wx>)p2Gn4!>x`u%*KNDQ2Pj+ zPBs03HPr8ka?lU#eq)9F{s)%po;iJkT>B#!4Kt*51P6l3-UHzCoFi-r_;imSWoZZv zI?Af!5j@J;7FYK1yh?&MibQO!-chpDF;Kim%a+GfwrFhy zP=Z?|%Ug~!faUUm` z2(6IWgCPuHT*05g7+EU6{TaBRdX$xSooADA-2Z%@J#0)3-v0}G)D5I*2T#Z%Uc7IK^54V#8gV0hx4?;8B9f@Xa_Xz%jk;qIn%q%=<<2#=xXkMDt3R<%7|@C2++m zF}$9E+q6?GPXS@#wOD?g@vdAM%O}EdZl^d-lFAF?c+Gr%fRD!Uw$b_g0LxbKyh6wa zFtGWs58&70`Q4~xYdr5|4ivJz#qaa|0-t03u6foP1kZRDf7&}!fY9NED@1P@=C$A= z7_O|_Ch%;yyNfBt4MUw8R&ibhi=s(!FlwjEm7918*{wLQhS{4)Q8-Vg@eciysiV~utiynTcU8~P=?ZJyqqy#HcI2` zK;3Z%c&n1DpeI9Y;n4v|?D(19m&fG;0bT=Hh6i{VuqodU@a6~|4e-(kvGV+y6qM7R zXF>3V!_-j$pDNtEIe4ZIl;`QlKCnE$6YF_*dEUGDfVl+@ssVF@-7E06Mo}p^sQSvg zEAiK0fOu;q-inMem${0s0UvhXRhYnG@}_j&u~NjDZ--3#nxH=0`ON;xP3hQyTjcOt zc>$6b@v8Fny&{RhU|t?cZ0>D*FLv-B?RiqH);GX$fD>jAe-i9FigK|vjY!;w#PC<$pW z+w+kQ#UK~S~Aj!{k0~g&M z5dA}NYA6UD3s<^pc8+|hIVbDIYpnSX2?W>?T4DttosS_lyuV7jd}xmmj1%z&}b;v+iEl_gh#`le>9+Y zil#`t3Y`EeC4VQtb&D8~vAet_@(+Zo$brZgs|UhG-F0 zXdt3TMrjA-b0N7*YCjNKg8xCVL-1AB7A24Y#=BvY%hLBecp+tkptlj`$-tIycfyj( zRdN+r&0%`wcH%i@5N}B*Tm22Hc{VOnCsDTZyj(eF(=+2C;Lg zVQROsd-Gk&GzJA~qQxf0OlsAmx;)E`rR=C2>fAYG1p@~EtPg16`<4D3mVwpR3(ssA zDeVpiHO-XO#Lh7MY0WBGU@e89~s5%ic5@QI+gB zr{M7+TvNP*=euqz7#v@dw=+=Pv0A)39x1gIq|>K1fWlM3Z)*cO1|s(7)%@kE0Cl2C zvy+I`7X@|BD^N$iQwPB8A^A-mUe57oV%XK>wRHg#7OTtG#}4hALmZ2&egIq)$HLDa z!TCbIw`4*+uGpE1&+%eC?k}Ucl-b%yFW8l!QqjV|e-N}wYlx+zxfkgr)`E#j`jrj~ zWBlu=e}L}I;fwd?vt_C`8<+pPy(w9sH){z@1HZ3#L*6<1JRE6|>0-CNL!N60fB*n% zBVG%L+O3WFT6oq-YRnaP_u9t13E``+HRk2%JEt_}WS8R;vk%(7GqiC6=JokI9bL@bcIKeXijHz+v+>LnE0#2WvLt zWsQJRX~+7Z{bE`$aif4qjJqez&{6W~YXOi8Iqh0N#<7w&2V5R2Uue$jB}@eq5;t5v z*4)zO{Q6Xi?p)2~vR6Q{h%iB$V$d5v@5H}LwfU$tr>u>5`@lFbGsl|fv49JKEMje9 z48OGbO=zi13!d&d>47w6?XSGW$yy-67G`tD(8ymh2bu7YFB$T)%WmM+$n-mHR{C+Q z*oVYym4s-1iyVMpa2ex{a||QeMw;PnPE8kOm7{RQc{b(4uzs|B;zl0pQ|1@RD92ct zaU)NND|GLD-aK^p{84D2(sl1H-?O zyKmtQ0id6_9Rm{PNk4EaFqeN5+<)hPsGYB_Tss(~l6QjCaK*=J$Cdkr2o!AV|4=({ z^ZY-u#s>Tkwe$6rYbP#0ioD5?dv4(kuKa@AUc?6_I3kPJapl;p64ur+~v|&y%bRNQcX0n=XI| zR?5y@_<|ZU7sHmek`ju-Wx6;V0<{lTn4uA(L=$l9lEM9XvQ1ZzZMTB{Wb<+_6ks7U=o^=$Umex%t10OIy4+tPeJ{xB~ z&<=P8ib8n9u#ORc{H8~t1Gw9&yT*C6+VWc-kjW8#+e2tVb=P>0)-<2sNh1JxGE~!m zQPABC>KbX9mmCNs#K{^54{MvRakR~EE@ei`XX4FdbFxPcj5jNiKOf`r)#J*4hf zlVryyK+kf^9#8O^*4sqAq&8<+B`sRRnU z$#sI(IV2DERv#bwgJ*AFwDe~KVjnH9&jvy9L#1_sG{|`Gr1#9306@tz*lv#*C2Q{x zskreJb-Tl}ykVr^S0r^?QMr^XSV-_|%d>o2K590|dXVt~MbM#U8=1TXiGXn>0w&9K z=REJOy}7%(YyUyZ<@4z11zJ`bD@1M^CpUECN(}7^_2CjrN90!%)qiM z-G>U7Uj=Z%xv?8>@PBtH%1aN#&`e{(Q#nEn8u(vM>`A&#JUQ79Wrd+$^ z=Y7CVIUy7K@-}$fmJpRJtQIbR0&zQnz5DWJhA~U#^y7Dx_*oGdwM{%lgaRh`jjZ}Q z|JK+Z^!5jT2fUR!1Ne);MQ06AxTt3!{}2bu!hw8liaru?y%a`5gBgQ((CCz>ITN7= z3|Z~4g9i))SY}%7S6^QRLcKcYkFfib_HkK9O<0Z{!mEeGYmb7%2=Us@LwGT!nN;KO z*gch}%lK2^6HO;3RUNr|w0duMikC45nzCCeFDKKo_(O8$SpEnG447_fJnoU;RGg3> zNZhn1v&ZpN**6PZ(@%qkviMX(4TUxh1Tdk%)v#_HZ)q(ag>Hiz z3;bH+!e!pXM68kbzlqV!mS4UJOlXZ1Z}Hy1e22Wnn^xH<6*jD~dEDDzgod$Y+@M$_ zrhP`m1W&!ir$iZjLmVHaN!glYZOfB`7U3r2WXTJ`u?Z~%xyJN zwe=u1#RKD0GWhT`9%Uf#G`T??52xo5AgHpp%>c^?w% zK0A}As)(fbcy;x1L+ItD_xOvH<-~h1)iIaEwfnPR@+>~mG+}CY(-$0q;K74m@QQ}q z{~@m!Pr^~qEKzh;)9Npi=JGbBredNnDvCfG(AspA19I*?=JFMEU+2u@$+G=CEFlEC z&*Ms*ACYw_d~P0JXr6OgJEvO<{xAoyZ}P^qsz;dAct0q`ZhNPWkPScN9ZJj&rxrs} zwv#mLL*7XKxPUj!_~qRkSF2dzciHr2yRB??eJm&^iWvX))KDV5g%d56_+2=W-Y}}! zES3{%$WX}_RK+ASKyQ$Urix*CO(l*}Ws#U+(`zUdnP($-0|WyE7QLzRzOM2zq|qBJ z5K=|VY>tTCDhU>xRYnS_Vc)qKB$XUSy{?7>=RxUK{o%5tT7fr#e9jg>#Vc zHkZ9JT%6wYXGRfQOUcREQ&loal)GRPVfUim^AWaZ_Th)E{i4^I666xre9kx&3o>j(#k zS;k)iINxs>?v#D<>t*~=( zx+{2+#d7$I{;4Lm zsOqIjXbKH829Pinn#7YXdF&J30YE^TRSF20wu+BNn~hfUd673?Bq3VP%7M(q5xG8x zmu&>)3(ytY(a$|FpM_3(l(>ErnYcm|#8Qc}&xB-sK$0aZQ&ILQ>0il{-G}$&$R;a! zrP8~A?olP}we**&6Dx!Uw8u(*bDqG*7b}&(2Z^A?Fu*@imEBJe2qcSt!n;Aln7xy#!9$;4DyyaXPPZs1puIgjBRcxv=G z@QO$@%WI#I{*Ao+^-yl6`y76(uo|s#ZpH<~Wq^cs#Ag3x_5mqi(fK-uQxdeQ8)#8e*?&$8wo>jVNb?8H0b+X#G*l45W9~;$K z1reyrK$j_U_vc)g>kawzDO})zFZe1AdVFCR=Yk(?!G>a)KWkX6^jExzhXS(KR-PiC z|BAOPMnQmmSGd*~ex44hRp0CoW1&oV0iFBt@!l z<|#_gQ&f1KLM8RUq6vJ1nsQo!6#{CW@D`dUnX`i@M~7zR@`W)Z`3gI;a_6_;a30Dx z3dTVB$~THnnKv@V0QvJSJ|R4UZ|?^2WyH^NZ6A-U{pEu?$x+z^g7d4mhqM~6-U6go#X zJpk6^47v0GZ!2(&!DOlh8CL{9H)nX|wVy&nC?g#5f zUgoL-%6TOGlkOUr+nkIJk?5!mD_BEwo69?XJu=;()4(%UdE|q4LU7Rkttg&Hg&X=4Z(CLEcR=YzXRJR$^6&$t z!=21*jx`FpEvO6hu;5qEdj|B&Pi4C^AXj`U*PP+c8e`6Aa)4 zc;*=5s_0CTHFy@)_BQ0Trl`OWVP$fc+-!)FG1&!^YdgtAeZq=>kdyTWsO>ckD-F{H zB0pT)655VE0Q#2|D<0~XDq+lg~RD3jaSNE8rHcl%*SU9wT_1xlC!&oHydBnYl z-R%)XDj`!pA`akJtRg?%5+y9d2b0hc?8YwI5`5e%UUIX{Md}_5elJ9S19Y-3(V`Me z1U&jPPlM3tfS-AV3?S+>@mkV|Fm`BeLe2^>Bn~~2xB3H+5k*>~a3Ye{x;2<$K(Qx5 zc!K4!U`xlqDWWX;(MojBB=8JNb|6565d_FBBpG#8^-iri3QLcQ#n7U;J(=WBAi$^= zr_%-^(E}i8hP{|-*F7qY7j(dhgwO2Pae)3Vd!EPV?3a_y^Rg9*?hwj^-UD$_(6DM- zCs;G0*&i2*Optdxr78L};EI zR9xI8hgo8Z5!A`XNAzSy#(K9I1z1;|11_@GlWEKyPge1K|cTK0BjRIZ~ycTKzYX=ongPGV0_Bd1!g{# zvvidez3XN4E-sTNEM>8KUZ$6*@i?sv2Wlup0*jLIVD7UJU|&ul$A@0%EeYhDIE@F z>jRs^4Z(L3F;TQgru3MPgm@8}1B0Z9`b7zc3CAbap_{l27(T#OvCCNVaI zonvt#JaroKc>ONALC;48a8Z+p76t}s7)&aIw^@`6=a$t^XDO6n!UUaxNYSqsohQTo zfNHVO7An3-CVL)L1Ynjh)cr+QWG|uw|(lOA*c}fy4(84Vn-r=|3lnt=iOC zAsSq6DY51vNh4E5Ipbguh*Vd@Cp|<4g*^sKwksnlhT@GkW$#o`BODwj%cUWBNSA`L zt4a+8-;PN2jnAudbwE_F0oEUc-{9$iXjaglQs6=r+YY&{2;&mL@MmiaC~M2Kt3@w7CSNUPfyC3Mj_6Ln?}|DA_VC9M~bAq?k6(x=Mwc`=zu{Y9#?9#qiPdtp@+Bnr5_5fAHk(CFmJ z1>VHyg)>Oagb>b!a#kZzw)SA=P^xi4*$edlFX6DqM!M?H`uKSz{H0RWMkYC?TtA!r1)yvi5R%@ViB|4hMT|vBA{y8 zrQ3Sn*Tg6T_|Bu=%2DUX5LAHCT`KFg#E$IkmEBs3qzu3Sm|IOQ`WPf>`Xl4wH-Z{K zv=ldmT_O1$B-}*rIFs?(26@~BF@ZXC9fk;x=71mYXbL0XX^IBgklvWCmuiahxF8CK zc?J^*@FmV1P$v}`dRd_G>#NSI1cR+0G;AObF{1XO~yR85fz$Z(t$B) z#isjB!l%#y4TvDB7EJVH zqn;_G)P<1K(hbyBLl8punu_RvZwC38K0Q6)Axayj;wHdyA&b3!$DO1n7C;Ow0KZ$& z6A0c??^ux#umE2MS`^@?(=aKA}y?GUa73^H(Q1h%R0OlyCU5A5u zy1edskq+j4*XzY&`cYH5TZx*{M-^`$iw!`+HLV26kMwON0_JC+KHhH@mvcvXJaTy} zQ58DpKeiGnF~7mueL69S?T_D;2{(x94;}+W2P}MO4FVsw59$!K260>3yL1T5PB2XE zFLelFEfo4phcu(pUamrz+%9tGkuPzDpcugYQ$Zr zG?h&Q!&)sT0)>;XQ|oqi+mlDh`K?8VrW*-Dq|?M{-%=4ch7>tPH>%I5TJ{QR1IG$z zXR3R$O&hV?II2O8No~c~ATcShM7^KL_x@$R_jTd-x^m6!qEpl%_l$r`j(kg$l+EuD z`^so39R*nupFRR4lFizSEhYLvwMbj8i^Y0TA;^zZxKs3t?MI_n)y|?E+vK7<#iNkl zO}Ps|=oWeNU7}hMdyW?&VxKC?uaE!Hq?*y=^#E~6g7(I(YTndMSgL&P#(S2#Nr1O8u-qzPmrN@ zlA4OUM;cT~aoO+zajm9-2IN~0h>wT@dV44F8cYIz(McrZak!J{5#|ka zeo&MtlM@BHo*N3ObjhlT)bk4}LXLdrLGc6D#?XgE`Scmyv{=yDq18ul!P5ay1G_xc zIpDh`)~4bmy&A#x!& zwzLkgG;x^I_2af@f&~u!T-$X6Ue&RDA9<<@B%vJU!`i1sOJz9GO=dAb z9U6O4(!!*nD{(7_Neg?5A}xS3hsp4R5L=k8Km{;-ea0aR!z_WX@dQx+iRiQ{KjWbeM^Y(17RBJDdz3I~i!W3lUdz zp2zJKl!->EC{m77(FV#>5_v$$`Mn^O#>umn@+2Y;Fqp!5{@Os6EIg2hO@qsXi6T+f zd`7$gm}uHFVqz^=`~l&LctXnJ56)WZzKX?ur672U+Z{VWE^B`9xo1Tm!}wF4>n3h1 z4z2(r-~s?2mL+_oSc~L|mqgN4Yp@c?rnRd946l*t50G{y`OM4WCOU0Dep!@}_H$w*xfqUrUNj`U{if$d2YSwYUW_yb$;K~;1u)2V z`~@*DcJW6Wfl1f^!tBK#$=NT8Y_PJPd3yuB69-=N<`KpId-*SaoiS8*Hn=p8^^J*9-?$lEx!&z!Wvds%zvVnUuJ&EYM zSy{;$)e{%;7WrjQ1$?=CiAT&mhP2m+tHAah*-IJU{iv6CiB?C=4BT;ew#yK$=y@R% zcO0IdXMl!<=Y72a+v8a}^Y7*F)myZRT}GF1Wqa+fxK=O7ExpAUV~TvdkElxA|ExZM zTldM%eZk1v7d+Kh3^lIJdLu-=q8o2&C}g|vw=fh^$NB1Th#1!WC*hiMtlO=PJbv(4;F0`u(CW@S+Fx~?S@ehYrI@OSlnH6?#hjHx8P(T929Q^ zmI0`qi?Vhdm10k(_w!WQPx87Uq7_DC$Pn>(@$(wo2Qml|MF190L7X^hsCb}N5ecTY zPLiptjT7I;g(CK0)S%(?$Y8DslO-~4I3WI_;%Im1L582{Nd3}@MC*=abquA5}16F3{+9xkex!@Y9daPdk)K7ts1 z`voqSj1XDYAb6vpqY+aFsK**4JB$RWZjjtP5}4T_`TI!G$^3Pcd|(tvj(GMSB|6e` z?0cvC7KgDe;wl+82)zPbLCA!USeP zC=8UYnRtNGC1*&W$zKOIOW`#V=X*-yP{rZx1{DKPxF`A))CP*?nEVy6W(a{bL_~)) zgLAK8a>A?y=k}XMx#$*!HDl|uLU4ozf95$5612dqwT1Isr#4kKWdgUuT2(lQ$^ff! z5X(kW>3|&zUB-XyqAdbqfuqlVFiPK1rvQ%?#Z+>JDD+{#3PZUH4dWiFhQKkLp$>bh zV4jxtAU{0($at zhJbKR-$t4_wQlZ2|u_6@TmXA&nwNlncVMQra7zYiI z5JF4{hA}_`pF0VFzj~xd|76i9-@8Y?G8y-tN=%iTCJVoeohTl`3DJF`m`oQ&;v}IA zRWzC;%Ed*P!e(;Gc=09Vz*HCCQC+NdR^z;pU35i%X+mt>+f$)>?v^fB^J~fBj5$Sg zLEFzv5iPBEd;xHKvi#;K@OlL7pM5e#)I{RxDI&MjMg1Ml^|sAcg1#N6!o_CwT3kcGfQ*_0$Ky~28~u# zEhu7yU=ij{UqL(pHPF%9Oi;S15S*2z-5FIXgU)1S%Y}v>!ZE_(oysg zM7{(vqXtDuR`}g*L2ipMtioKk63x!M2?BH|s}1tNghqG-+GF+QS#N=n8X(#VZU5Rd zScshLq0<$|EE(KCF;$dFnxb%NkV`OxkQE^E31|stWMCS$!EX8dH1QQ|h~79Iw|Mk9 z0+zG^cDa70_`Jd~kW^^VS8(_*Mhn>Yftyd_@CN?RyAr4{^WmI5I07Iq)8E^jppu?xK?+4K zhQ|(mC~j*}bXp;h%o7QcqCs+iwh4{UWQm(ItQi=ba(%MmO^9-xn-pdYqgPy(AL)E?16 z^95z41!5jFbF4*x9&ueXTO^bNg(nw^>9Da`FnY=&QLpfAmlRC@2uN%6&};>411Q-m zXQle;#41;iBqv52P>v3YHZg$HF@!KyK#H$F20`H)nj_g_Q6uBZ5uEi^LADw&fh2-Z zfSybQ>_B;}C?aWJmY|$gkf02-LTzBRt^xl{l-3fF+z7WlO@-@klaJ+tOF#<_!4yHj z6sbmF3|Il^edIlbiw!M1$CEUdYTU8)QjI%iE)|tHktC@QSU$eu(fC3-MV0C0jY}a^ z@wt2~TlB~n2+N+Dv}`C&DZpo3oQ5W1yP{W{rkSDiZ2V6J^qG%VvC4)h6HgIL0!UiX zb(}XMn0(v{5ln){kd4FOgt-H^=Od;&<rHz=I1(d^vdzQyxOyiV{=Pc~ark37G^k6(y&(=fA}#f`4X177An{pw2HT zlKx-Antfrcd4O!b2FP!iq||K%#JK)JeeeCt^}X{i*SF(esV_P_elT+sNt65U1`vGH z(kmcd|F6x%)_>(Y^VZ2X|8jj_{mb=z{V&(Iy+D2MZvZ{K(xaEe=#l5A43kMe@dBb7`cz47MntdUjF0MLBcV=F{c6WKyZh8vAZUaw6#jSBgt`VpI7R4y{daYS25;lPGI*ido%x!qO3=C_+#KsbV0<5Q<nRi$%9&e$t<+2hYSco>>4X$+EAQRBv!)D=+9P$l~2n}J57H^T4#HO zCcvW0q)JM}SNuTTVx@r#6Zfa($Vw)HCJa$qQ`3f!VN8hS&#i*;!5Pab9CnI(h z(K(ZGzEICU()beDhyZ|~AO=VG=k>8Uxa>jrnS6sUEn^*ph(!d+mk&(Rdr~89e@F4e zUde^D%e(m!_EQ3oX{DO^VZMYPD1ne87_+x#=Sw(C34{=BN5b5E3H`_B#AubCnPB29 z^~zgX`}~nTR%$iM7xf^{cvgQv^09Ykk{QwAryRcU9eQ?sC76VCJX<;mx^MiP; zI3egzX9UJh>~>hkxAw`lKZ-14PVm5wVz^O#@=v78K;Qfup0o_tsu+m=<2@OR2#Ut` zX2d~FLQXm=UId}B{EZ4G|AEc;tle z7{O%9+e`rx&e z733p2d4^CPnp)5^PZi`Ne&?nAD(jpT$&tNOb9X-6OA>#Acv|~2qDEvsaEA^1uY8Sk zx)JIp&AnQ$K*yb)zDrpW&{K@$#lB`CSuo?_$dEZ9>gPk+jDaXx6?+(h(J%}u0enz1L?>#T^z%9Df7fmyg+t~du` z@AjZPc21;3Pad6vGmtpRdu5aJqG`M%@Q5X3;3INn$Dc)+79SgFlq*N6IFJBEZV-dr zKozvJmf$@TKU$>yzyt&<*k>jpf>amiJ7MPUzd=^1p2>dg8)rOb30k^UVy2v?cu zMAez}*-DuJz+u%;CcuM+O=oK>xTVo=js-VW5o|+{kug;f4qBLV!zG4=gjkpz?s%Wi z$0?f3mC2I7<4DYs@Bc2UK*ac)-=Q(JZAPa*AWQL$eDF`4ZLJ;fn6?li@OP~OFeOCU2V5q?P zZ~{irtnP}@0Eg_@+7}<$$->u^H300-o_>ruF$+jVZHnQmOrqKw4PSkn{ovM@l+Tzx z$SIq?2Kgddz|O^d)0a*<*`{yTKXQ*y%;QrM^aKGcNhF%CJ0~RRf>m0 zE~We$*0N^NG=slK#uik)5QGDJCoRU;L(YnZHrZtgDk}|<1v|-OQGdV146m>wFME{ zENYbHo_Jr9{6Eya2YeLO+CRP}32>GjHVHKl*n}4P%+8kCNLvs@5EOesVRmK~f*}bh zD7JvTAcBR19TYnv*idYssHjL$R74O^ujO977ZtDQ_3H2YoY~oI0=N0T|NDOa(Pid2 z=gg^3Kkc1-wmelHQ2jv?<`N}b@M;X ztC6q(C*Johrf@9MD4xH=(^MXtRI$$wy8}HVcRp!j6!BOb)8hg^N ztp~y#{V#5n+0EydwJK~6eXEJ>Vls^;Gx)631i z2itaLEHV7#7|ColO0(k33}c#$gQEHtH#Z)=9pW-$ zZk+nTk<5)%A`JxdJX=|%))7_`&d~>Wdn}!V7I~yoWu>ua$C?!`MC-~-;bcX0`rxol z6rZ@UXp75!Hh@3VnI%ug_D`FS(ZG<{rUm&;%nb+YW-&;tf}rGrbaM}5knTA!)qRZ=AM9-uT(>Qg{k$Pt5=adFLlb%}4?iu<3J@a8Y3H8ij6OeoU(Y)c+nZm`9 z6MI_r3_rIEOEtcVhN|7wNpD#D;@wxGuqxEovR(EJh@kJK5W5q!(zZQ9VXx_{WJ z0sld(c>k`9?#^A@m1!qFi%dy0kxl(@u3#_Zi*pCEB7i;Lf_^e5rElB=d>@v${9{Nr zalkGQ2_7Sjm`Eyi2Ftb2gE7jt@*9pScU(YKjO1kV#lA5>KERwn2l;AWgiDN zL*zN;3XWc;Rj`nOA_}xE-pG&AVkA`z+owh?6;0+~cGzjWYA(L6QG}9_ac+__zpr3nTWv`@`)&++4m3^ z?nHJys3~IaddqqUG)}mDjXx3xwaJsA3=%>iZn3w^vv$z5{NYbj9T!th(jOG;x#5AA4YQ7Oba3JCH{( zeKvsTH{YM!w&UAg?j$;mJgL-0LZV}ca`NL@vt^2`#T1}TEHW_B~V-&~0>UtYor$$9^D3G3Ad zdkbtMjZ{43gY=NWJE#G);Vp0t=>S3gMJXHaOE0~I*!htU?a7L9SoN7bS((kD5eogP z2KttLUSu)PDP?29%QuHu7jOunj$K&VTpdd%Cw0udn{VyOy71R~u`r2QI*Aiiz-GCe zz-xR^FE$37vnKau-EqKRO>ek&xAbJk{~HO%btB&{DCSE#LLO)8Gull1b>7UxW?b;Y zcl2gGPZKH7ZaZ2;v?@w0%S{`g;-KeI^XZJd7zT{?1tR569ICY`eP$n7N!zHpJ8)F5 z7dhFPPwKy1KFp(w7C-LGdX$2Cn~4{k20^^;kN79(?J8E2_9$bW`#W`^?eL&u2RxF~U_^g5 z7&~_6_hTJ=eTY1BXw5@kzPukB+H3Qz8wH#m%o&A~MUF$j(%ZPZ zKZ~|n00oge^aBR4F|9Vf1OVI1&Ktn4X|qARyL{j9M1M9gT~ynqqP}s7vU=bAky92e zFQ>wu{Gdf)`#utdu`iKSoSO8H@_fK8^6axY!LIg8~5IVe$5TMj1dy%0r~jwF3!Ql2_)33!XC4ye1V~_(g!U210+Af z2Q+mBoz0!tN+0B9f8cKVfL9G+c^%UhU;2ah(k1X~hp?_iBF?tpY^zk9VnF;**hNPj z$u2qq;z40)5-31CVI+O~VO}Tj4S{kkG@8WC7?i|P{9_{=scgYA)@h)l+@w*?0o$U_ z!T6flI3MuYtyzEmlFX+3r$+rHGQ0D4eAAK7Qdl9T3Fj+}E@&AWVplX{q0Q9cH22(6 z%6jy(4~#$JYTD+irm#61(OV=cg$YTkT*U%fjH@kNg}I&0Bt$PkLI|RU$QE)7qTROM zb24rPoM(}CD~QGD>9I%Gf>JU)46rxg76Xt`p-DNk4SPOKW$6RDiu`$GT?JhUj3*9! z+o!Ulx;y~96_Oce(Kee6_Fpk8cfwNzHo&7$OHg z0)I|?3hGbvN*s6@1S_T($oaU32O?~MXK@=oEW$c;MxcxN3uJmAA_PJ3uuW{Q`xcLvFJmE^q z6)!?ai9tx2X9va3EX6)_ykWJK2M2niTS%qoh6jWV_0|fkj<;`avfl#q>1Vh!5GRHn zM_E%9v0Efcfu4~R`!!uD2rIV}0bj0}2#F|627w5H{MLMajCCH_T2ulb;Ve^;3tepu z5H)d6L`{TW&>gr5$H8q+D}z8h`y?pvo4@c6W2{e`gZH9Ka|82Q@zxr9j@;m|MZmU6 zBNURuxgwYE(IEamTTDE^(S`f zwcnMq``!I_9?GnypuWY=zJ7@|g$d%xgsgpeD091e?LzHIQuRu2K+2($*V-fCmvxR1 zDdArXV-XxYS3H~*#rHLZ3ps$KW$64MMx6$Vj@crGF7RwF9qNdgYB7K2^}WlNYHR?x zlA3igor20g)>t=iNzuKpiS8YKr0xZcXLqjyrn{FIqt~X(99}h?b#H#ErLbq3PiBT_ z-tn-*LVu#k%-o}1R^YYQGq4>MjaQD(t7c@ZNr~3#N z)JBUZHjifAePRa23v+Q#n}7Ek*7VKV$Bt&lxf@B>uqPeUT8Fp|2}ABqkdk0q+i7*d zG0BCsook!qqEQ#;HYh$I@l?ZG3j8Z zZ;L3g`8=SYmlvpJ)Z?_kru0REKpBK6>oC(V{Gm8T>=g?4pf(5iapPG@^L&KU^LZy9 zEPI&>b>Wh6Y+$xgmUeotfyu_79Lr86Y1H-@CaxU~9mCW-?CJ6CcH65W+a1f=H{Ng^ zsML!~38B*29sxSn?nV)c7uYvT@g7)>Q(GwkZEK+fS5pEy;Qo)YZlZd>@qk+8bOjlB=x8xQfB~}-_ek>gQVjxTS zD(pt;y^5o&FmTj`w5Y>RA`o5pB!!bj49@wj=tX>1HJ(k#{<_agl!{agN(H~P^Ytsv z*U0tR9I^Ju{(LYuCcwnSZ37cvoo?j^CSY=51@CwqTh!-k9Lbs}N?%e)YZk!BvsT>M zvMI>-PG++jo7~N`vy>p9aK`OSMyosMrh^J?*Rvo>TL#;n21s~p2wms)xEpgWwmmcU zo+{9H;GOBZN$iBu^pTO5-;>so*10okr<>Gzi2lVBS&#hhkSmTgMAzdV$mT`B)m;9~|$DY7O_gW1-4O$~+WfIg=K`#km^7CkrjEL^;iF!mCHJ(o*c+PwCO5H3FAB-R15L#Ld?N*Y3Yq8ogqNJd zRv{J_&!aiK(>d&!G}!8DVtk1JUp_{%Ue`quj5du+Wms zgZ$ZPtk?_W;%lyFeV6Dgm)h4#2b24bpQN*r4mjbU$%Lk*8=&z|`87K0+4c^5P{dI; z{3U~R{{4$d29Xm7eMDUr_)$zO;(!L?J!u_2+ZggcDHWqD2W6=t}!C)PK&ph;SGXI?+T_ASoW;I;+285NC z_MnjWfaIM}&fUKMrE=fMp=Cz@{c^AWKPq=^OKkox_4EDzN8`Kq|ERrR{2z_)rvIaI zul(=zb3*V9Av?Wv*UEoJzqi4)#J4x#;<36E>yZ)8o^0XV;;>yI)Uey0Z%wg|1vh3i z4Z5-N_J5vTE0Xotzt4l$vJM_B(b%41?QQukw7p;WffO4s%sCAlM?u2IaiGje;B>wW z3FOO#W{C`gv<2KgmVKq0pFW-S>_W$UldVIl#l1p@^w>HiS7xwtdo>;L24f&`iC|^DtQk71c%BCLNL@tQ!09 zj#2Y4Bhwy}oH%AZfCt@1DV$_jck?;!(>XATgdi39Y$?M|4EbVB+qeAu~6;UCOo z>c7|7gU@BP|6azXo)^#tw zcJZWKiW57Yo5fD?f8W}6wbJQK-|^xq*4vjwIecOj8`C1w;v==m$<)V>uVSPBfAPid z>l~r;r+LDEqjLtNtQn9R*J23 zWcG`bWZ+&!<=U3!o;$lVkESGSKcm||9IeC+ng+EJu8T8wLE+@lfCV;?NZvErg}=b} z;1y5YQi78>Nw0)ES3??bPmzSQ%p*16pO5XCv)RxVE&k^p++53QI%Td^ORU7+$VAV? zHhYU?*E*&R>Tg$P(;sZdzK8CHAfMQ35nwyg$d^@yu>O2r9qUH7t=v_|u5G>Tc}z86 zBPL&8&$eaJBe@3eY+$ARvQQ4J?lQOSbxALq^MDbOFro_ZGmr8Vb^FJ4K*@v7V|}RP zQ_f?5warybfS-6id$P&IE}zSW7rig0E`+aymbA_j6B9HU@FBl(E;b!J%b%MIOZ+Fk ze=aK-N{4uo&&Naa?bPgF7SUk@qIVarR4k5IO$EiW>XM?_}v$=k(6}*MQl!X zPmtGWJ@zG0%N(y!Ys|%vdr9V9E@7pU_-$~sxZuwO8rxlh3edpQo_=nrapl*bkQ}^%cMUVm7Dsy##sTGq~mwHX`;6_UGDLrGMEd&~W3cv{P4Xi~`}| zX21h~qH7r4uA|)8?}Z?5ePZXU{I^T6ukKUcsgccxjd*J#dzP=C$9lEC0mm(QMh5eE z;wsjiv-vFHxvVvxIG+{g?f5$xkGy6+>*SwL>j>evAXUQ4C(mOFoxO!aCWJKE!xzqD zp~ed{%bYMio{@BA?}KY5+UMd6x9nPP0^^2DMq{3(h`>8?6sKb^BTytSaf@)lPNE)s zk0#LNKMDL-=6MF`XhITC!Xbf9OL3{PuNF(K+h5AciqdKsDPx3+OVLaAtjve}jZ0bY zR;v*}Ye3pv$_BMeyrX5}uhWTtXiA)MAT9#N*r@O!A9@*le8}`j>DJ=_eka|^f0FLt z5z>vhoSlgaf0kVir`vv>cLfXf`VN^9b~p}Aajg`!biwB~YI+ji@$px%zI{m7M7T_2 z=JHL);0V7Aj(r?BGq4QInOsNT@!zgs#bAd^j>{`+y@_0o;Ql;uHJc=h&3r=V*zW;( z0V63Zcgw7nr?dM0$XRtJiUc_wbroCYIn+vIZEw-Dv*r(6$k z<3I0&u2|A5m0$uxqzEhqW3Vf^y6L!Qs^poSHr|Xp4(||t{IzUC^*@O8o#sy8vL6nb?DZlR^7pzonpC=g!&aOJ_<`%#nY`e7)~o$3 z*q{t0QFK;f1+9C777IV(01}dc>sg=wX^M}LSK=AkBq?x{)U|wLd&cxC| zC!L*F{tYb1|9%7W$D3s!cr}O#{RyG^8ExqP$9e2Q9%I41M!8SKs8WTS=S4I2nY<4D z%e)5tv#MPE&zm!P5tDH}Wc?zh7J+@0uti-De7%udQE2pw)@5n#^R<8EZk?OQE`a{#!BZJ#%>pclfKe|!@Z3!uxio9*>3 zdv3BPJ&pvQN;Nz&vyNEQFtAMcr?FNCTwMrCal!{EgS^(IIXLKBP%i@Lom4<9nilUw zktCP+jW@HAeq7n$MiyxsXYb9JHu#PQm#|LVcEBZSe@V&)=I7VIMUbE)8Zpa#>n)hD zNGDwX*}s|a>W7@=zW+SOuKS+*hY9&(OV}jOm96=2OITl-+k32jtX8m%6)l^LU5Om*bhT@r{iWlaayqp2MkjVPp;war7Y~<3Z+EcSO?tN#z!q> z=Xp48@(Z}T=0N9K!C$-;EaXqQEkl07O(xCLe0^A&Uk(e|e^|)Q!$J<_w9J|AwryV4 zv)Lh6-i{iAB|dRGQ#)_)Qh!hbpT|NeAQ2AVjpCjEdOPdg7JUn}3fRnX$Q@Wq089T4 zSo(fG?+(_#53c(GrnUxWxBDCt=T~ePNG~y?xV9J)zU>ayyYUEV7py%jt;?4r_W*`1 z=z5{lGwL_z&vn@e7@Gvd7>UB5XB5^Z)8C=rT$h!4Pe2ql(qf|14yE7|saj43t^Ajr zfZBPKBR?-h#;6wUr%I;@e9>AU6Nnc#0Jr8N@4~dtJeud~CKlkK%Rus8?0&xRE*38P z3=>{N?(RehDb6TDOeh1kPug%N4kAV1Xa2!mOkCwO^lsLNcfT7(73vFMY>%Jp$cG!h&dxf#b#(Olo6DiW-0tD|_p`o@UwUm-%QrT|3EiZq1(vhK&X=I0 zehi5Wa2X5iCFL7h3~?{i&+eN;NF$;l8!v@t3x|MYta8doOu)OKa?A{TCf2L8E_ z54NfxF5o9s&NJGDzo4rtPu{~e2T7x+fgAlSSV&BTR^7*x5hQEEXcAgc;v%#R z+}MV6NW9#H7y3A`5~tycmmPWOmv{4gAq-1k9lz*)Hi%c>$7C^e|F3dd^6B}wG?!0TyAzL`k83`NB-^utPl9t&kwLl z_clKLK{m1XS||vlvjEp9nZ34@oZ9vq;lbWkeC9)}r?in+76q(jKtMZe!6%1@9i+Q+ zo6_C>5IZ4%GX!E&n9CR8=RC@aJ8TxJ1r=wz6hv`+@WZS};Wk)X2{#70$p^-#J&X+@ ze%|;n>sh$fj&J4xLqr$8Xfvf?4vkWbp9c?1$^p7uT&S{KQWowh_R^X#To zv{>Z}G~Ky|KeCebZHI+C_D)lq#(3LDS#MID)JJUv>a0g0Qy%AykFpLOSHQ0_6UXrq zQYL(f0|4oUnun1TE!zGlTi7~NqlK$jk-uHDO8y5ylUjb*qgl>9&UVTH*(pFo(i;w} znK;Tl8BE@VsRQr4$6>(3|KmMGmOQ;69@kBhZ5|}lMekyLOP22kx;7k=wAE?JYSugN zm#4wgm+(6n_`Ju& z*PFsuXWq+lm%^%C!XI1%)cAzIxd!SyP(u(}8ZiVC&|QAb#rZ!<;z)5WKh9!H9%s3u zv-+)!`pq$9TS`#mpEf@)w7W|n3E8xJ`1Z$HPro<23f%n!Yi|c-iY$GCDgI^~D*3c0 zSf`F(-U7nO4LmJ`TjDcC9kE63rjyPjeL zr*|asMMvL~b}WlGm#>?hf%q1+p^ix`6R3mbc3tQjl5Y<~T#;Pv78FF@-q%%#G!oWj zo_%69{_9BB6^rZde3}(?$K4Ic7@2iW?0$g81u3%_+Ivs4!My8Q7MaosB~ZrX!o#{X z$K{Q_@{A0U+wDnW<^v$SY}cQ!Yx9W2m!v|Z<8a|4!P@EvZSMBk?wrx=99m(K!M`(WDx zQ1Ul;sta(_i5;{6dO(YyJ6Z-c_DQU48P+H9yc0yl*>yR9#buQD-LIgy{KRTJ1O6J(b^?geJvtIW(e4fo55U(%XuT{bRe*Yh>1Ri$H)1Y zK-HZAspssfT+_-rsZuW;*X%T!C|)_pPqLEa!cjD^TUUzv~KA`y^r* ziI=h15nLQtg)-fVpJ{m)1IRyqfgOwcuSLNqJ8-a-onrInNI~bB+Tbn%eHri%&B4pQ zL2SEB?2QEaGvM6>Hf6Q*X9slJ+vpD5nkVqaZvC=cyU>Mn=v+Z2pJfD!e4G#6fxFYy zT}iIKrZPTQ>VQp2KWvp%#Jbj5K;zErsO8?QC=5hX4)><(wVO23oJ_s;5!faJenp@+ z1Aa|lQ_p{!iESeWI4~W%;+g$QG@5>W9}`wtp+E)*IA9!T&JHejUGDa!v)J6md3!7K z_Il>+wanY5%-hz?+bej}?cz6P0=Hz|Ud_BUg}t8%+nIU$F!Q!6^Y%gJ?d7%St!Jg~ z;ce3vy$eoqr^=hWKKL^*cZ2rixx{Hw1oy|5Xa{ZuIPi>{f3tyg>qz@V(&_LZoq-_U z`DNCBz(S8tq+R3zU5+~V(_Nqc`QC?r`qkyjaRp9p9>gztnf2+gl{F8ggcbbpm)T+- zc!lNV`(9ad{X7?_ecrtFF5l8MaMrxa&i7zn)X%T7l;;T-pSgqe$^8Rf3FFUXv=t1n?euZ6G(#sQYH6U($8=SO+C$e!Z!>=`dUi{#F+U~#3 zv)dz*`%m{~CFk?E`Umra@3AtzXq&%%&nEY(!Zs4>Js?9}tDGfWepJCc{92{o+t3>W;N!(ZeFON)easwo2$`7(^W)bEzqa_%pBq04%Z91-*>F4l z&}P=N!(F)nQ4fluGIQ_?@coK z;ldX2?OVVdTEHD!z%9GEb0!`mNd4X=6JWzMsM#&1LC=P%$Fkw#7I60#aE}&n5b%&w z>a1G+;WlRSuU=*CdUtMPqp<`GqVh`dqk*MgPyBk}*PFXvW!3&?kW>&4f^fqgVf;}$ z*dWhTW|P^?jL0niJvN~DRlE`gZpD*O^Sv~@7tdU-zr`+oV9IvpMj`Fn@^ju{;|mtG z4S>nGTrc2BZG59GU-u3x_k7lt|GE)tv~UAxQ{jj&!;k)`AN%2V@rCEl<;(xTy78J< zSY`Lk>Eu)i(6j4Q%LuJP7$twq&$n!2m-weh*%Z9}2X>REbvwRr7fY24L^7urs8)ls z;30UI`FroN9{hy&aj!EG{KWqO!B z^iw>k6;AXpyc1$La02gy$qqao??m9|RhacNYR-4{%MSoTr{(j457;QriTV804>0pK zFP~rg0b4iG`R;S1A&hq5@A00U??J#s5ej}zSB3Dd;&-k!*Q`FT%B67SLsrOF?1WEQ z!DaNUFw?63eE&}DhFAD(g!*SyH`H0Ps^?ggAzzH3MiJCd(=7j?h^F?6xJpZ>^x5SP zN8AYf>Z==!8Flq~ZGH3jk%*)I5%ErOfSvk}!ux1D{zS0vDl5TRwbU< zabp1=gP+q`5sXlN7Q7U&-zJ%>-eZG0j6=Rq_P0p)e&>-Mt| z#YRJIU3IPNECe|sWeVQU#&2g=p8AB{U(%_Y{po5XAX1)&AEl>1bgSze-tSY^qj3e2 zwFCGBo<2NhRn*m0R80@2Dy&K~IL);!9lr=q`mCaAj$T<|1}m+q>Gd;$t^+N;Hydgy zD-6Bf%H#lPR~!(->g3T-b#4{#JUBcLrhO@_Nwcs}h;I*7#^ zH~RDV@LVacRW&ILQ+n|7&)Jp!9X)Ku_7|X7Z$5h?>%do!@a6I^K4%?Ha3Wu!NU9=! z^hbR{f`1x*^hYrDr;|Q`z9(+#z>b>4f9vgA>SgwErBBh5A#Y zS5(yxsYlbT%1XVyx)$w$9 z@lGPv{#<{{-?Pz)+KyoQ+<|xDoupwl+&2sUs73rIfHO72`&am7=l5s8qz*WLdVRe$ ztEQg+?Ja*~mQ%<ir~Ok116DAtYsShU0q^}%sqIL$PD(fG22Oh8`5XD z|1rRw`L}(1LkgxKDMeM_>BY0M7Z3II^=A(OroV@J@l;=5_ml&Fh;UMeg0rluhG0@B zdF90Yf;d8qV4YE0U0E5_Yb_nonfT7V?XrTk7V(zD;(Hcm4+;)wu6ftjHdraWvd)@PKc#j`)s)nf zN-L^Tlk`cXX-(zBe(<*)GfU94%k?C_uR@-EfF7hVI&eS0grg2T1Tc|;1BU?@^9?^T zgD=XHS{IuGo3mgC&H-N?LgiNSX9xL44Df4YQ-LQT z3ZeKc$nDy>LA?^gZq5x>R>OQT#R!f2&pMT?Ai)BR>M97LdKxB|e=u|+{?uS!&s_U; zPt$Ae5Z{D!=qW>dJvxX4s8LP2X7&fy4Dk(NR0;v3~3RZuG+D(?<&tFGJi+*MLnxz&J^EZ1%b((cC-X~R8H4D20VcBVjMP|eExbhi$E7QQ+5Zz1EAmFt50|XJl@|)wn zK7zaahb)_~Lq7)2Im&MTI%Gv%#eW&*>(yZ=LP_=c98aK}>nl71)WMx5|4tTWYcVM> zGN4}jp#j(F$QF16!64MJX?Q>+PBSW$}s1?~%%eQ@wBgdZ_;hXEZ zZWytXAU|=W?<6X07(ZjHzbmOR6~pZs{fZiq=)ML&XZ)_kdllF(pM8|CJ>ORDtMvQ^ zz3wRA{m}y>0>UKB8)>t*-;hlOk~^XxSYKToted4*R=QkHT6rWd8tOZ>n2I22Ld9H% z-va!u$8RBiH}GM@e4UE!K(_R^8Ban&=lS+XUNy|Ou(z=KrjlV<9y~u`3nx3QrkXhH z0)%0Qe1`Qc813uK)+3O{c1wb<8tv=Iz64A>2Jn{Az9LWSQT&gieP^<&QMRX|eiWZ{ zv~PIPgMf*5)#C}h$z{#4s_Ie7wo&~4qkShfI+gu9;s+t#tS=7+XVtlejt+=6j>MC2 z$*!);bu!>Qz%|f<>MWBe%Vi>r#;?|bEt?KJA7L~kMs-7_IW=ibHDHCDTOM41aO$2k zc#LZW0$@y`fQDpcCK<#O!l}WPdR@K!@znZ?S(YepGvdfBwfoEE`f@aXag48H!J+gw zrd3(5BW2)d{`nYR_YT3MZJ9LyPa2Vdc(%2Bc;Hx{+&dd@79oBye%WC+0=`KQ(tk*; zq+oS_2Bl3w4rDhHzosTQ-QH^qFCXC>>(4IjWr=I?<}L>W{9d zg+WDh%@m z*b1aMO|7h`vdAw{KeeK&rlEdTLuGwMi?F)RFe@mm&a9|~O+UQ~ZMSMcP<-A9Uw2;n zyniQW$M_N)zLx?1+tHB@v%7=z<7&Tak}VdlLqGQs_rp$9U9+bo7z~wZ`j4k z`OH`SS4ysKuNH`@p(8m|8l6bTq2j=oLTq$G0k&B@mCR!L0W<62SE_W~i8u!j@4`F5 zj!|%T8g}BBwSbp5!5u{=_cR3v_+I|u3;rIzt5*-b;P2ky^4IKM9S8IZB5wh&9rU7q zW-f8gWv}_CkyY8M*xFps%(3UdwpB@!1d{81WZ<-9mY}#m+1mv|5fv1NX#Pmd*RAVn zgc8y|k0%PwJYRUbfL9OmUCgIxzR$?V6z@FE z!d2Uvx96j6X!Rz)(&Z2$`Xg=WcDq}gJbtEG%r5+$P5y#5PFNlX7gf-!uH2bO+gw}*Fut2ROwZQm4-!%^t(eyGpcJVE`X-3 zSDuzhWC)Rfx+D;?vz%KzV z%!0Q7mb2iEfcs^^n*fKi;2z*7>F?LB{f<5AEj+m2t{I^ip^|>fc;my;8)Uac))z^k8JM5^+-4qS)_99N@v3*2zTJx7V!jA{2Kh|4|Rq^zRBgx z53wt}D?ck(+v6wpm3uO3D3Trcyg=0WCp?Mgjj64zt}PoFBq?4V92m5fiSi)zN4GBu zgyvj|C#CI=C$%_?r<)i54d;iPj#tuoQ(qMDWB$f^x49evBz0YDXa9{Y?BAHSkl?3> zL#7_#M->!`FY4jtx5$5=4nG;;L=;uldG&K^nqn#uPTuf_s)~9i`Q->Blz~fh)>6C^ zQov8|T7h>`{p+mR4Hj^Bbph}Gw!h=d^$4e09$!PM6LNu;vooDXI$wmq!-g5m%mT>3}i`vv@7 zq&!dIRa^aeo@d(gIa~cV7EI_+=sFc~o$&!l;0Yag(Kdg|zY*cY(S_M-*M%G?jRQLt zinS3F5l1S515auJpV9(84KS%3PI{vHYcLKhLZ9gX%A(3Ra8JO56%M=rFkz|#-wc>W^ubPi)jR$rp8C#|-%P&xU4KsKK<7f& zG(;AlN9ZF5UXL-P8anV~3SqAqr2oWdN~DQr;}K4*u&${#GU^IwAe zI`jEE{6^`bbkGPCNm%c|?*pcKE-K=4-t#Xk(7F~11>z!v(_m>`dB^wta|+g{!_PuE zQQ7*g{I2)?cX=wi@!=o%?`f2Z3th7iUW6az=fLEE%!W%_z$D_bbm3=>b%LJ~)IY>gd{ppCcFE!26r{y_F8fL!{X(=785eu+txL zH}>jI?A+xFmQ~jUE#iQ|eoojOJ#1Qj08h%CRt90AKwZ5#q(-lTM*v)aOvLqwr(U}h ziHJWr@MUTEZG;gIpo(q5Z!3P=@I#O0iNNh#-{rro-*Lf07oqzJ_;tmPHlw|Rr_-Q! z@xBAU_qhKf|AgXANIn+e3=~6+prrIiRXv9{Ac@B);V*yWk9w{y;Xi-mPZj;Kq)>>% zU-6_GzmF#+|Dc3lu-ji+G_tf%OjfT)IGNR1@lWsepPGL+;(H;S&=aT*Zqa3r|I<#M zyK!*yLH~)x-;@^$=W`+*@4%x0cjOy(`#bW>e(>jezA5KRe((?OIPIuHR}gVT#KhHP z{H7hncm3c$)3fa;9{nroj%U?h{ewN)P=426{o_4X4CQ~sv*^j8g+lY(k0;^gH+WK8 zt{A#@(vSX2+@6uc`IbZY5YJx^`TNte|4;t0ZAK0+6q;N;SAO!B@#R1HJ5k)apZvoc zowzy3h#Kg?#N`NK9ry>l6Ae2sm7Ja4-2(QsfW0l?92@SL$uNO{9$5vP3D_=h?QK8% zC*>y3A5$na6;gMJ-#PGuc&C~;@Ix)&hg-mpw18J;;9JH^!wZ~jRy76RCPfE1!G2VW z`o)3U11`&g;}p;5zm9<~bW8bdoOJKvu2rcEUw_EoicfS)zEMuZ4t$VZ{r6hH9l_iP z`<(P$0NWMdx4EUkCz{9D7mv^yJZOOUo+mw0c|Rxq4b&$)pS^&GA>H7?sPj0;Yr%Z_yXFD&>90KK%Dg{A@d(>Z z5%@z?%H{gLgd8`g(|o$y0uyi$FvG7Ke&)or zyIM&Xh?oIB(Zr*6L(tfJ5?59?RXLols{w?;XHGIt^>5M?sj3;B^xT?fc@lYg^ z;u}UwYlg=nny$n(EorK;R5TQ;??)5J<>httb1SX#@{{Zbh0IWtm>gBDkRivEh!s*A zP9DlPd@B|4@EECoAY?^S@pwd!X=cRKlXFC&1y)2iR4W;c#AC^DOpl#6jIVhNpIkFW zI+^QZrE>QL;^Db4#!dMK2PUG5%}sY+k(749&fcAV6izc5Z}TbK+- z)TkP=RLcys%w_2#3IR<%1=I4Dl3R;hN@Xw)KKH0kZxS< z9>E7sMIHV&P6`yFL2}BFF?8Wb*ouX&aYsb68`G|7jGJYJbyW@}Wiy<_NXXZ^2Vn84 zX-%D32k&>eiD6FFR?nIWB1Gy~DuxytNj(*gnbAn}I`=>uBZT9)y!=G{ykp6QTwX3Z zR98$h8cK#!dQwv(vB(1VSt2<l%~o{WcYz%|%orH;J!1gV#M5nnxCnphZ5YUsX*rsk@lG*KE_pv84yTTBZjlSw5R z;~0jIf%qLoHvm0ip>WIsW~p*KZZ74MkC)CY44bNzk`0V`NYx_Y*sboPxVv6z&xuq@o8eVA>HwsqUffa!kDHa zp-4#OCmb(LX&17h=pro~*AcFy_;bfg`|^S8W+bY|EfdI}48`u@`;P+$lC2cFD3w%X zLS8v^FRw8XY^WgBa9EBjQ8O7ctQGu()1=e$RRc{7CxPhUNGcV*4;LyIw~HfKvrHwb zn3k4OG)29i2MnqGlFd?}6Bd2~pMW6f;IN8rPemiD@qlP#emE7@^iT>7jH=04H1yz- zlcdw~<6uxpD-}-}=n$aCLn0I%s>V#vhH6Bj==z6ofVw2-%W@1oZ6Yiro3f=pVh2ZL zOVyNkTv1c;aKyA$iahjWBx;7j_#|e9Lz?<1f9h1JPd-pi(?Y;DL)Vm~X0D>dg)v=^ zsVR_P9Mv%7$Ybs@KJs}q>l7&`U$IiL82VO=#zP?2@M?jX?a{|(Opk{w#fYiE@HOsV z-Q4}LRKl0-k*?(>r%I#qo@d>>Pk$pOzrt}?}wu?OID)59bLn>FNokU zaW5+>r+`)|H4;`{bO&qaHh}qr>gXRr6f+eGYo-!WbS)*PQmL10M9~ch7UI1?NalIobP{0D&@g5q&9(Y5*?x&v1Bxe$Saw9G5BXK2sX+evMx=L+Vig z{t;GX6X>8qbg1gb3ol9aDN1}NYFVKb&gL#Dim^RuL*@|C0kHiB+|Y)qQ* z=o{%_0pdeUDza$;(X{xRc2i?!ENU5H8NAI*hC-3I(mfz6YBDK9EP$vj-Pp{3o+3qX zON-!$DP7h;94R%4u?|_GE$-v_?0HhGvx6`pIjkpD3wQ9;E@rCC|0rxw0V~kKT zszJOYLm)cY)ZVq(2v9T<(V!;i&M?TQ>8q}2Nl$0gmnwJYo*K&?1I7uvHT>k2a*sRbEh4gOvaS36^^M9s4+%T{m>4! z)G(NL3amwjq>Y7l*}E@=>-vPkmf%ixya zQ7JPb>renfpAh%$pAUsa2}e+2kWy4jMnB~f3~6}295cb5%y2|gv}7_B|BT;eNOA8U z+{0|Ws=Fx_2EuV!RaJ-}NOL6~)_Julb~Uu6pV;;N$4eU(^5iT*$9zRQwnx%MIt(ygz^0&-)u@l^JCDlqG3Iff_#l8jp(23 zagt-Ip~^B?f812UhW51`91E#Yh_SE?9s$L|{D%K#NpWhhszPFDDu&Upl7F^SM^eyt z!(cC}AphcT`G0|mAFqZKqLeu1=_l*#^lJ4eB}(OD4?P9LC8_)0=lV3 zRNl2hif~^AsPiY@twK5)7ar&p=pZm-&^}rWSztvh<8SBN+Z?Z+=Iz}D=&xdo-|1# zl&XYgn0c8YtCkTnAw;ck80aX^^YD!`r9SPU(i zfyTjXRTK;z!i-<)Imhnmajo06+Dy3*)1Y;Tn#>h!Sjz^=)m7W+M zI1c96zDh|dKoQ_4DKHMr)S$dyh0MlF#}!y4aUr3glg14rs$A{i?vtbwx?ti02x9`~DTC8UHvPbn~L>lW1i%GT|A7R(4+stz`5#3SHgam!f3`_7hR z569J}XG;_Fqp~I|2FaXcM2^Omrn?kk6IxPI*Ga&qH2GE!-<(394X>5D7ldPAEDCIm zFpRaZq27j%-jurXYigx#1tF*r&>_@#Dwd4L6axoIEn3j7TRx1vxQselGN@cp)H`^| z1ya9)m}aGthOVIPR7d?zy8`)f@FP=Bg1pFHjwpBWnmTaMB={GsTu@UKI%+(2_mP8_ z@n7qtI`49i!i#1~-T0z23kFIobuWLZP8y7! zA%<=wNuWRl3a#M78{n9T#Ynx3MS-R;-9z`GqoI>^>86|JRGP)YV1$!UPLrmrDzG8t zRQ!Hk-yj`>!z`a~kWS6lqOiQcB*EoVD%7_J`Pp-%xaXmCZ9tc%Dl4dpZpoTvLDxn< z6~cxD+tuQVk-{*h@Qb(%`z989lKbXDV}ziK zSr&LQ>1d$Rr}*;oVWPc#tJIpGF;{9=Xh3Xfu*-ETrY12QPkRP(_mFlS`Qo`!N6%Ut z!`kb>S@3r?0%e1&m}fjk3nJ?>AgE(vLU>iMuBp5{QByNKZNx!F%4Q1k3@wD1*PgX| zI~s%j8`mvO(Pc1%_&U!F^mYfnZvzyt^DmGl;u@~kEU1yJaeD0mcN6gVN27jeoO8F5ryNNWr&x)U7iC4R?+(kX=z zGzCbWG!*zB^kjIwXCx^Ky?MWjz@AA8n@~Q?2&9s!Ya4)y!nQr@BHSwYGQa2|sjM(+ zSzs-3s0mOHpc%j787-{lZnk>@*s2?_6%;6MrW!RPsE=CK}`TB(%()K50r^iIF;1kOp2*sYFoJ62+|0ncfc>8gvS**9yYh~nnvkV z?>0|4wXKBzu~F*c-p+I8Nxcf;M2N|-zmhSCX*rdA$D`W43Jtu6=iPJ#LRQjDCFKZd z*wDK59qDil@(C&>G;6dIRPkOqTu;GBi^KXR-8Y=n-xuK%^9?f|gJlG51>7+d{Xo!9 zaX!dLh5sQY$Ke5ps5{fl8VaBWo`O=rferIRJM(;SGvFVvF9HWuIBM?V+b@;Eg;6bH zfEmZpe-K-t_(z^9TYR5z85!P@D2zSBH1Gv{D&}s{63nMA4KwXR^L-302J8ka~MQ@hrJR>Xxs=fF%)VSun1F(Vs54Qi=`w%#(J8l8fgQ{EQhDSWPS(KIn*4 z7`nF!dqg(X)F1dASHj^1Z6ab}{ADAhVH7^+-(4w{=VLsFVT6#TEIz7Va-4}m|y zmjKNO+AQ1?U)sSj*tOt;N$9$;+G5eK1T_YrzlISKg_j9qU>UfEMM?xhX4q78bS7v$ zsfSHI8=?77A(bf1W@rhhq#1+u419)~995z4rBq}LT_*aC9UPNG3QQEBjcKZIO+b65 z)Ntimx&>E8%p`;&?O6oJRTu|R6-qSFBo;kj2V=0H{lVmcgBbOYzopg_(nS1*vty+3)T@W9tF*8SH@1M{O1#fn;y zC>*_-1~mPdkH20z%KbOH5-^mtC_H1alpZ(bkoAil9D?0~z5~j_3jlw?-|b*E28on} z!w$Gl{F|i=Dpbq2uo@=BL1@SO^NvZ*7wgI^v zljqyvg)pt)k04!0hZEQcUFwZwTtfarNY+Rs6gMEupqr}E%bLYnI36PffhohpR^aox z+?!=N76JiO*aPthMjmFDd`0%R`9=!74N_4tq3?!O^Gd#Ykrd9?$>Xj?qrf0I%#H9> z{D(!-z`}4i1mr}`G;mHlm_AfZd=$)Q3Di$Ht5=QeDaOtjD-sz0$vIK z6*PsovA}B&dY9FbpKrKP>g>I~SurWN@uDcf02hGAFtX6AWgM|>`3X1SgBwtCNlm*` z3T8k)M$8mCMu%_;>7hkSZib;6LW!{c;j(}iDz0ja`S#nfS^_$VY=kwaukdy2arH*; zv3&A!X&`^-X2}mNE^NWEXAmvH?2X>UU%y!z<-OUP;QMRfeHwg=)UH4QXMpp<(x8V& z;J>{^G^QiBZjpLS9T27fECM~g-x z4|s>#TIA$gr9R#Vy~Ay2(XCRM=OHg&UkA$!GgO${f-@G1n*oQ`!+id2(t!LhT>o$v z0IlH2vJC4H(bWM3&W|XxS-3i)FubFD+wE}O2(pTS8ARZmgV24{9vAq)bu)&r6f|zQ z?^oHuss)!hECA?Y@Z!cJkJ-UMIj{pvlEBdeH@UIe4u+2jvYjU2qGf z$XXy(6KY-5iau^9hFFY)^`e5Rn#6466Lv674q}!CPI+=yDaw;}uqDIe5W-YM68tBu z#GVqth0u%PHcP^T6@t8q%1?X8^AU65IqZHXW_idX9mPxpR93VsvX&ozr!?C0jF;5h z@_+?zB63qOQwM!lf0mEGAD&Qn0+X2jK!%YBrU&G8cKIRr%TsX+9&}BSLq_yDyJ?sm zfik1eL?~os_<1{VOh$Q_89}E(k+f1Tq=Uh^ObgCp=zbB%=@-+%DX;~2Kw&Y#$*!6& z*}>32U8qvt{o5uOHs#+F{WtH z6Gqf})ypS64()%~GO4}yHSaO@>_)>fsbc~75ghVz49ps29!tHR=3q}O0|(pW<=0h1 z_Wra?Duy1u>_Mq7yngUSVR|zd(}|9DhJTE4F#b zJ<=(jx4pJ6dc-zZLACe5I@scHafc)Iz!lS5?vaMzpx$5akz^>%%{y7#uh5D^1u$g;#waEw!`8drv-!}|r8rksNWHu}z|IBJt6Tw}`+I!SeIO}l zcvQOx{8LdGU%t=V--ju13!Xj9C#B%hr#Yez?8Feh3K$K9100KSUEayJuaHK$KjatR zCv__{FkYCLh4!t$SFJ~Pc}Llk$8X+;S*XC>B)o$8<1U7kWH~c|LG#%<25e zu23?hX>f#M{DrC-`r1wnhcxDwkr6ao%+N)?5y6G2FjycaR3Nca3V8FMAw#u?VDr8H zu+$M(8xt`UVgd$|5xTU2nNLes4|s^Mhz1N7dbF#5+981TQC3iMQ9#K9LKaL zJZw-d!cpZrZ%Aka{Dw!c(g4Q06@?Ij%>;`#l=|Kq&63`)KLR)5K?I4#2fsanDJ;03 zpr}yepqR=^=m*|?CB#-(R=^q*NLjcj;pF)%@JOgGb5=_2^K}ziE?E!g;gA*%|41z= z3&1jmr`XUiVTYM9`H;=vFbinGiw&hS26HPE`iZ+AmDFLh#3G6rCrsJFYzwJBH$y4x z^qFe!j{{0U)rEd(C6!PFo(eVcH!olQqBOiv#X^Nt*ob2SH3a!!`~q|y*&r45aCX?) zMjLD%Xs?j=5M{6tBY)@XS3#V@9T?NdUQW^!c_{R&J$70YT~4#pFoR6UtKYokeETLa zvNIo(SOMxw0wV;JibJ66#j=lS_FfMfO{Cw!a$I4S6^udgKP{#)}WhW{4qs) z6$SSTK=@;J8-8wBNpR_3EfSw-5KjWZCW&w%maoYf*364L3oH3?#*bcJeqL=wJ^DHg zW4B|~baXjf-6}d3Tm;w&hH`BV->?ei)rD(dUR}qRuaVS3s9rz>xX9vIN$FM%7 z0$UIT8-e!|rWA|_%;sY{z*?9iRM$>+hH-c?!&vkH+Y*yehI#{^__$Q=S(L-qJS6om z05)JcRSCyIM3{k-7pKF4NN_XKyc6k4igsf<9CJ#_|Lg3$!=$RRwf}TiZshE)E^^M2 zgvy~of=Uum@S>y4C{`2{1VQwAbrg`O#8Fsgz?{K=NDu)PL5T(gB^po^1;jWie!qQo z!L+E~AM-rpP_^sS>2vnkdxiIX*Qyw7958z<2MTd}ahye*BB>`KfK38Fy5soyL2nTR zu;W=!v20?F84oZ7qzlxG779{7G1r+gTW!<`S0^GQUXYV${B!WZ`m*8L@5m^EZ zg~15|mSN1^i}ozkjOc{2vC;BBxIg8TR`?M)!7?iA>0e%h$tXs zA^VK{u#|iegqK{75CvME*f6)ydAh+>doHsYI~F-BMZJSlAHNK+_F1!ZNTE0ld2)u_ zF&9cbXNL2(K8ZkqkRVe?CZ9Jeip&e?2zfOWUnm%Tp?EOyGTFYii$v48)M7IX>xdvA zL;#*eAdwHhD65uRNq-~>-iN;-CcrW0qf5lM!itu>Bwbcmbt|%fl6VUZr=>IbWM-+; z&WdUvIRP=(+5#*ydB8H~A}F`r7?F{?tf_L|%hnA6;QcTuoR$Wq0QIBGond2skGyO( zDp?`rE3M9f96k!^06A_PyBW#9?6d*ydNS*%Ro2k1j~+H+1d#m@!0s$|2m=R7i04=- z^H*Bk%DMhbHb%_Bo`qO=MGmjjWO+CXK$1n#rBz+2&?;&Ciq+L0!$#(S-Y`cR!OO0e z5wD>3U1Lm!KMQD=0Z$G>0OE8)ugacRtagD&IG&7T3UQc8oLnOInzOgL5yIexa_cIq zHae9DR>7&Qb;{r85k14w1oJ?O0OVOhwdfl%jzgQLNL&f^kX*qt=VRG*&XIa8YqpkR z`N~ST3At&n)lRNGV3jA0*6bux3?&6C2Nt7Su%<)#_0Hjceu{DZtw58LzD&4?e@biN zK`cX5@}{I$Yh4+(Go8<4Zlln~vD91I=(Lt^Rs-5^kcF>Wks4_9w7w7sI2upoQsIrx z^E%6dOQD}uuC&Tz!%r~pxNx#=Fl@~b0UmC0_BAx?x;0j_(#=i-50$)%)7oO674=Dx8726?`U$;Vz53p}Af&tm2zncSO z$NGUYBiw)-_)w0#ZkGd- zU>V6obgwbC0m%G_HUm60$a(ZAT&hiHfBXh?_D6Hqp^N?4UU2?6=q@KAdeze7OpJ(r zoz<)YBtD_lpvY>;crx)%&H8U1N125LgoOas2}imAuND{UGY~#$aTQY7BF>rx|B5jo zpEGTn}DC-hS$ciCwh5|}_p{Mt>0P-c&rJ%zw;2KH(vWj`B)`+0U?rMc~fi@w!hS^0G z7)QH#&^Xhk(*8|!jtPK#Y>d_x^AuB=uk5qSkL!6_U(2F5tz>P!6^6k^43Z2LFl2|E zQ4NF1Y$4TX@|LAa4omPYY{U_#p~G3*cu};01fFm|sc+~eYt;#`j&jig#)0(FbRNCQBIu5MZYWly+o*xfwV#jn~qhy)C(Mnb1Lm858 z3>!CqCMxxF(JAm{j6F{b-hfm(`^z7VM2%!BOp1?jj1nP1ng066V*;TlkvoteHauB? z3qR)UYNGx_n=A#khscYdn;0LxM=JB1sLj?DrDI*TXF_ENQ;$3-K|^Y$FgVUt<;xXl zQn`JEe7Jh%CpF$>Ka2qACxkR<2HX%3TjCbiIVVhfvUGwucLl1^WJ;?v!df(zO-wZ7 z&B4#$WAI5}(8OZ-Nv=O%`f^Dht9F}{7CQ801X>M1F;$QY~fCW!DsrfHR^LQ$KyQ`m>e=wg$ zvhZ!IzT*xaBrs4t`Rr{x$Q-Hu4usKM{Z9kQzhgCSC$3Y6UNeF$>Wndkf<~x~I)=@i zAOa?XBIf7n(N%)T>zUO)0Bsu93f39ZahDk;V5ZE1hUU;rfCjO<%`j7lfIkWlfDVzZ zeot{2Ng||XC<7~qBqVdM874-K>p((N00{!i`^+$mPJ)^P0tzxkv`+Wi!=12oM87F+ z9#I4;?RkHBD;e$soh48Sih+1AHD8XrYXy7oX9!9&crKs@V(A4gyBE9BIB4F~ZU{kh z0$M2z%WDxcq6C&OK`@sBP8@o`WlQaBr&Yc2Xx(ynuU!99CtAG`FIo}VxXl`f;YDwP-R6$)^2z)ouA;(G$9284Lq}zG zZOag?$R$LJWkckU=#?LJ*?jLwtiz}=w(Pn<>WQF&r^y9pgO9le$&rU4L#DiM#r?#h zAVnmVq?usJ@yDfnJHv1_2unk(SCrIfZk~|M?_0qDU^-%5WN%S`d?x%!S5Deqr5ees zy_o9`PXTY?FTthO~E5EHR9wmOdyLW1$M>!!|HE|!w` z4(lw(Gp@6ZMD&RrR`mdzn{|XHp4)`vh%I!TX{vTU*Qi}fJ`nNiaqC&u4|#Xe)|Ad^t_aRXoboVTH&Oa z2KZ=*=@(?chY%TQz$=I$J>Nhhq0nNP`Jr_MH5K3(;IGj3X>9h3t{b!{yPk}^QkCo3 zs4M60wAwTS#bTm>(GUS3idf?Mi^z3BFRNCwlPsJr>pY)sY1| z37wb9(w(RS29z}AX@%=7xoe5l zzFuM2n9)O6P8*M)dO+M=GB@-jdtfVud*QQvMRkf3UAq`uoXlpG$&M~prXxgFrz$s+zwj+@(we((H_MJW^%~& zkxpp?8r)=$l9yvk0hxf|h{Fn-%>^e}|L_~oJ7~(Hu`R_>xFO6mGEsnvSZ=F*h74*h zmJFIJ+&Nq1ZF^LwpNJrmu@r(t5|nrBQNUe5ZxuSSx9I(1uExgYNx$6I+UZR4Hv=?+c-L6hFwzqfYslRP%6t3PZFx3sz}9l z+fx$Og%x0%SXevT-lGpby@meKfs-zpnjJDO&|>@+^*^b-vUET4)_wZgL%LE6#SKsq zCP*^}9~C1g%5vb@sSd*Mlc8rmHsb-boU8T7domnRWES1`lud&~?4 zV&Qo1fGaEh%~n4-cBXR6FP~$MzmTgASk3$qEl7hr2^V09Km)$CrwFqHRGTB1*VI1Z ztb_J&08rfCYe18ziZZ#cSZgHO4Q0v~R*e8y4C-KlCy1RC?9$g&KlNjhkefn&WMi6Z zjvSJwzd%@e`1s_bAO{6P2n}wCMLS}~{S;e*#gc5}>VkzZ3ZX4u;xM$*Gln!hgQ^S6 zAbM1+gVrT}tt}11BB0#i5)-L!i$_DH24fKRQRL#(WPN83%i{-`i0}1c?d$k~DMH?1 zJK4JO&#$yrSR-30M5*vIu!G4Ti|YaC1~MuRJWE8#{``sXVcdSJg>3oC@@dcrSA@F^ zCN(OQ`ghe&{aOh`1{;T-0OHFPewMahgUKL8C2b_hkLdqG*hWCi z*W#pTojI@^jaZQx92*QhtbZ%^@q<_7-dJ$GfInY;^3YL9I13* z#Sqa=a7&BB)_DXjtbf!qn$1h1X`JXjQ~U>^qLEcqlSPM_9rk22gai*;gpWvMC;j1& z`j91dfCecEP8~^1cDsjMKXSx1g(+^Scf^X8PIXKFBV6XKT<#I8Wkm{373Yn55e)?* z_}k3oG*2P;1lmMxhDsVe^fdQXf1315lPjzme~1e-ZbyEfB_%=W5T5P^SJTzSxIr}L zFm3oQoG-K((d`VkjWt(fvLxvUwUE7{(+m}67RSkuqHtGW?qrtOms!Pe+!X3^R8$~M zT5&epEk}+rVSA2R<@(2gdDF4^2FM3UHBXb(mA%6)jYg`Q0eNlgOnPn3GU~s{bzfbj`*@gA~ScZrSrAX5&FQ z{G&C%@sPW%G}>p?uEDlIo)=4#S#qde<1j;qR|0t?Ynq6cvh+vXm;b>9R~~o4 zC)$pl?9oVispEq*BnC}na*w**qx3IW6dsc%$E=oqaB8IaU>BrdxR~_gW*A4tV+7U! z`G{eco{+8owz@l>bPqTIi2G#5&su1Ju2ySlm@Ry9KK0Ze4jDnIQ)Hj{!yy&m!Wzyjae&?Evln70dWd+`m=xd8v(o%>`(^tMu-X`{oKiiH1ul>BF;+Y zsUU7iJ#RLoKMl*8p}HNBP8`BN_kuj~t953{Vl$l}h=3X}jd|QmG)Eb&o_t&_npdir z$dicL(upPR7XPuE{B#NArWT_C`y}8UkX!;217E!4wgqJY7Cq=O1-Lw0#P`Xi?p{V8 zseS`}UB*U6>s5iu2xy0SWrdNGMVA-H!Q*u42!ICICf0aGaXd>l1BgJvf!+iy8$S}J z&%D(6hM>dfh<8aQ5Y_qEykIWtsUKp8Fh!BORcT6h#$L?pm1Ne;>SbhA?bln>Uhmst`O_|i1hQ@isQS zcVUTY$B*oGbg1U?V~J{mfQi>3`JYl%AEsh)scMgkX+){&(e7>csm89@RV1`9HXVMM zc(l?9ZT%q{GWvh-oH(B)0S6~~R}Y+1`W_2X7eiq$059Q*sgGvvgWKc@{(c3Te{dWo z5(Oc&dF*|2cmTQ*fB<;}aT)|AC` zxowKHx%gbFHott`)TJs*KQ0~&wH5`HN2v#v#xnTC-BW`Br`4yOX8LjsE&H-bwb4}!&o8%iVQCOJQXZ=PPJ z>eU0+r=6kZ)KcMwXBas5ZaC4kJ$rz41VYK zpz+booxhjWKGoCl12_{x0R_Dei&vdlb}t( zg>;$szx8w>U)P**40MT-Q?RI?WmTE#>iEUoMV9X;`WjeGHBSBNj{b?U>ppViagDK2 zU(qK9Edro(0)QMO@|baFe*UoLED3{2Sjl65ldr0&q+_h-eAySIX~Si;=|i)tHrG4v z6yN{@nTx1lUHLI&s=>(7d zVnDLhRol{u#WxS=HEzkf%(?e zYAB06veQyEOK67!_Y%iLu;~uHMuZNX12r*Fm3p4#K95z#!x6Woj>YV?aG08 zG*J*iQAXFDWKg!&Q7r;devlId9k^#i={kI>YAegj zRkeydjRMeWk-JeV2;(=~oLrpciip^}X$H!lM{fYyq)Quuk=s4h2M->V8#b8E&%@}f zen;_3GyQyNj{T-n>0FOguTUK=@%RQ09yWRi4Wc7=G8q-z5|ErGmua8_qmV6R@AAm# z3e_?|K{J(uIHoxI17uTodwQLCe2r=h;n7eRO=iwKp`}UQ<2g$fo}n5`jex32{SLA* za9F*UFhgkjF0;;^^KKr#_qvc7>HsCnOc2K|DGfZs`YODkx1tb|Ug!wW8ut!-H6bd{l@hOV52@k$0`4@mWzDuD|M zqFAJeISo!1%4Hrj!#E`>sL~|d2(Dp_9JrD3o?-g2^pH*GQ~JHI zHk;%r&y{BA{&uL*POXDYcv@0*RIub3GxZucq>-ePreuZiTGlaRNLKU>0#Felm^Bgl|Z}TQ~RYf`d zWe8o7^#eqvBKhZKUtM*9pW}G&STG$P&+G{LGhXVD?^vnX1fBQ5kqBFenTrej)jiTw7m7>eA^3i5iPJ zMb<=MwbbLXDVSxlroL+KSnla+6jR6Qt2W*h9%m*yeB{e=1WCOgc!Btl<~mqhwCUNE zW*A5gl^@C{3eBKo6R#A9!9ciYFcP>xip^FPhgq#82GkW$ia^A-+6==a>5d}oTmUyd zTBC*VUj>MX~456HQ;teYCE z(@Nj;NV=;E`nfqWGE`6$duitHE$Pxk4eM=Z=V7}D98N2f+u#YC)(M3Am6e@`^0Sal zcu6pwJ+S>xV09rHumKU`O2CC}l5Vb|j`uxn zWOH>U=$Ym!P_kXD7Ah#;G$$b4piDqAyHn(Y7VPq!4B0oV zTB;~|6|?Bjj{@a}sKcOhN;tFI-oiJdSw?}Qd0?$~j)(Sm{G-M|Ihq2gF<0r5UjZaPENmZL2R!9K!^oI6Q%kjhr7ZsU(V zZj4@bp9l&-qB&h}Qgv;D;pb*idW`dO8ac{XU! zLO3IEQlPo`=T&xilsX0?dWvuX{4`~lK2YV;w(`%`s;mNOA5o?b{y7iP;1^ZSE;CQX zmV7DmPgS9kgZ7L{t2PXMW$Y%X0OdP*7%AW^D66lH3qpCV+pBm{ArsX8U!$p!7yd5-UidDwdmL9 zJso6GJ=L(r5TH|pj^qWbAzW?ZmlL0`_7fkY|!thIdq%(#c-g+L7Cx;=Mt-HBspXx%}vBMvc(60SOGA zgLExJ`xBDcsa}~KRsH0vpsMM-)q7cIt*dS=9YX3<`lO(6rz(LulOS1C{x)yanDm=M zs!{1QuiPI}-Aku?WnV~jE1lt$UF}qFc{z+Dp6RWWrV~^RNrqLc+Oxb^loLz17>&*L z&YeNOnD4_%mHx}zP?H2jTL_3^FnYS#S^RcynY|h9w##>T2bleFbwo8UonwEcVFltR ziX_NA!6c}&oa@aR2R|~ZT%w|?u0y=J6GM$l@3e0?Q*xJ#jgv9AjImhnHm@(&ukSIh zAJ?z%HLt(aukSOjPmA;Ve)D>SemzgW?(UfHJ07@g7s-U)JbQk^f2JG172QrIVONw_*{M$-?c$`Q1s$seu0Ad+^oZgULtjlU5*kfy6+*qe(Pk z+sC}7(v8kuw7Wsspldb~na7KlaMICF{D1$%lln`yIG(CC{SvQqZKAHEYYV6WlZM=g|4SEMlE&TC0J#6FyQvm+^4inG;S%++X!FTs z-e_lCd@P}Dq>3B5u`-s+u5PNcbA`9xf7U`ZdGZ4u+{N8hx#MN;rJ8T<`bs$T)k&VV^(04q?a!xXQUr_WGPio?)J z;$YHvWU__unyOzS7w3xMY$3a~Y9aAz)lbEF78m}STz`g&AP}y3mO7L685f_WIy>Ir z$J*=^btz(_Hs)Kj-P>mexIiP7b)lT~N0Qq=RU+}r|Vh>f9`n)YY)DU#J{BtfI z!}7_jp33js=tYqWBvfD4{A4w+0G1CEU?NJTwC({V##_JJPDRsth2RpzJ6F zgGZ`_JABtW-fY5Wda01(J@4tVr=4mkyLziSr)=|jZR0ay#PIi}qz{qAc8T}F((Ndk z-*}E(6a;|_3&!Y~@_`u-oIL)a_gX!5dAaIrR_0C_d$t-Fz^<~@VLZ8Qo?~j4HzaBT zvEtW#*vGrQVOjJN_W#(~#4~%UysIW%`l|B4Ua!T%)`3dVobL0=>b9yG%~L_uP~ak% z1tf`nB&#k~Es^FB+*3CSKu&wgaembLC{8tsOreH{4zRhwc26-U_|s>Hkqpi8MM4RK4gUaqU3WC;$!?f$~82n5JP; zCihF#KM_E#lBDHb29gTVXXsaNAJZ%-coN1A9z{x^f936ehtgSX2vwI*%gDZ|@J2D3 zJSKoqWw0j|R5{${2Q$tit)5Z2QmBtn~p;8>rm<~h@dLR%)xB^46LSjYL! z)Qm(cS=Conuh3#ZC=B>|>ctA&+K)3>dAN z$ti!sA51jI(v1aS6E!m_=q5_Uvy-Ic7F8+JIL0yAcZm$hpp0rak91<>eaMd1|4l_4 zQ@9GdvboVkth=ecYpNW@&?$2DMWh_JnlpWS5r6GA-|b`T)hwOnla2#b&(i6|3vF{T zpUp6Xj+wqrwm3@WU96gv&aw}Ql+O0a_ZO>}<6k}+L3G5C^c}?ZyxqKOAQK0v2BmlS z(yd68eW~SbC>Vw(4ae|6qsQ zr%dbFYo5*cfIwy`+Pw;(iP`(gMN3vFC@Y7 z#2$mXF;NQ{B2rm>shaDU@9S;uY|LPV0tbl@$~xF9ikb2H3w$>3RzW)(qG~!Tg`kQk z*?Pc?0|ub5pwkyvKWs`eMVxXON##Sn$3HseoS(t`Bdc=3Lek8-B zlBY*Qv2!zOisLcgBy-3aS@6EcC7o5Lmpmc!vMTO)(nlF}1J>2CtO}Gq#jJEx5$T!Z zTu=KF2I0Lq$AmrO(-31Z4O*XLku2n^fSUE>`y6reqT*N2&huQJExx%&zj@9)b7(K5 z6guT5d!Xzx_Pnp3966nc++9$uXugm~;EQgBYCod0#0$Usl-8fLZA_!kjnbnd6J7lK zPt!y%2w!Lyfdng&fAM#p0?UCeP>N0636<8_CBOR=!9p4m6B!0L7g*p+RX_Dp)nA~< zSj)=*oeJ5dGT?s!wJBBB4I;4dF#y*L{de^+IRZT&f;6y8W~f+=C6?QZtfxFb1c-cv z-c#BPHyo;JJ6`r(YF6WoLkXK#`bL>|yN0UM9IyB;Hu&t>SMV5C`39MHk6fV|mVmrm zq59XP`vvo)5eyW1U{q^-PeIilS7wg$lXJjnu&9XJ2${mK%79^NydS|kfhhJAEwNUp zzNUw}NsHmoV!Ep)I3G33 zzAAB)bqIy&Gx&zQa+R7=gR0B0mg19wV{78;d~3Kw8sD~*u_M$pKaX11h7s*S13+f2 zw{4U^NQ(xn5eztBEK&qI?_#?Ax?3@1Au$O|BHFFDq~S<4EdV_j2iCHaL12;C2Hzdh zcqCVcqT)<{7K#BC0P04hgb;8W?Q_+njWhuzTMK5MHWSHBzQ_KI=dLY#N2vBSdCq{r ztVv{YOiXaI??sNb`@5r}m_*+~v<9Tzu(6c>C-YnMA8B5$%fYEfqoD`scq+Qp+y?qX zCLVbes}1}(`?eV-(S@^tc&54;0yXoFJzRlu9uX&DIj|r#Ny&GM*7NT}u%7RkH&msu zVekXsQ1H#U^fqaDjk=)ZeHqO^uI;{QT&)&f&mE&Ka_#WVD87|hW7HsYf?tkNGfO_C z=O;AgPGh(iUyIAwC2OyR4%%&o;@7Ei_a0w_-lMu?rHKq@BTR-krh4)$thpV?-VkdVje26-^efY=|I;k@qCK=6ualWx!X^vA_bsb$zO z^XLQYMq{6tVRULp;*r_XG8YA8^iw_DvOGwm6YAs$-ZUwm-ER)g(#e+=!h~Fqwdi&} zE1nvFBnjG^r=<%r>HOzrn36K8kHBMLSEytt95BN?VcmBEtHSDvMj~IBVVbkhtAxKt zHw|n}@JlmHl?v;hsuJ>X*!lcHGfe*}`Zz`bS}40?bA4roDd^=G>U%))ko)AnHp4I{ zRKMwFIP~VCGUkvOCTP}!$OkA_%w%$h%`m||U9V|yf|?O~89rhU2l#`at8_v@!vs8+ z{Ki*ILtx4RlDh%3b<}r`HdJ+l%%ogq)M9+;4YeSLHWl@!;FgoWSvq)9g%L!lm< z{cnsozW4Rl2}@l))I=V-kyHJ^SL{Oj!)KNidAMRAG^@;6V3W-*`)|pTD!UZ^0R({lbntO> z^2`1U*o-`nrA|*|Ix(WcpqWMP_OecanxIkj|OJTDYHwX9KpWMc=>naJjy4rI`X|z!FY9i8nI&+WYF6@s#BWn!cF<31v;7bHw(Zh`uBN?I%q72;& zoL)@&>WCo`eW3r$0X%4!#vbJ_H-I^=g!(k%j`9Q!J5>zh)mR zzUjbfuiMun@##F6wdVENGkE=mIp+Eq9J5aL&QP5-GFv8_^@r>Az=e)CF&VRGs!p<^ zoKJ3=$tQ2g%$aJSV?)_ZI%Xdt=gv~K_|X7+KK1WuK$wvL&{>L~TiIkT8C3`RZHgli kVA1h?v#g$_I-o*2JWHieA?cfy-m|%kx6SKoXR8VS55s#mcK`qY delta 186490 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

DY9^eYh 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

3=YzJoYL6vrO!L+6S6j{-m3E!G}o)rcpKNkkEa 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 bSdT0Bn*_w2enr`|pDzGgr+@#v-;Dl$RgaxP diff --git a/egui/Cargo.toml b/egui/Cargo.toml index 0892ff80..ea623745 100644 --- a/egui/Cargo.toml +++ b/egui/Cargo.toml @@ -19,9 +19,10 @@ ahash = "0.4" parking_lot = "0.11" rusttype = "0.9" serde = { version = "1", features = ["derive"], optional = true } +serde_json = { version = "1", optional = true } [features] -with_serde = ["serde"] +with_serde = ["serde", "serde_json"] [dev-dependencies] criterion = { version = "0.3", default-features = false } diff --git a/egui/src/app.rs b/egui/src/app.rs new file mode 100644 index 00000000..c1889788 --- /dev/null +++ b/egui/src/app.rs @@ -0,0 +1,79 @@ +//! Traits and helper for writing Egui apps. +//! +//! Egui can be used as a library, but you can also use it as a framework to write apps in. +//! This module defined the `App` trait that can be implemented and used with the `egui_web` and `egui_glium` crates. + +use crate::Ui; + +/// Implement this trait to write apps that can be compiled both natively using the `egui_glium` crate, +/// and deployed as a web site using the `egui_web` crate. +pub trait App { + /// Called each time the UI needs repainting, which may be many times per second. + fn ui(&mut self, ui: &mut Ui, backend: &mut dyn Backend); + + /// Called once on shutdown. Allows you to save state. + fn on_exit(&mut self, _storage: &mut dyn Storage) {} +} + +// TODO: replace with manually calling `egui::Context::request_repaint()` each frame. +/// How the backend runs the app +#[derive(Clone, Copy, Debug, Eq, PartialEq)] +pub enum RunMode { + /// Rapint the UI all the time (at the display refresh rate of e.g. 60 Hz). + /// This is good for games where things are constantly moving. + /// This can also be achieved with `RunMode::Reactive` combined with calling `egui::Context::request_repaint()` each frame. + Continuous, + + /// Only repaint when there are animations or input (mouse movement, keyboard input etc). + /// This saves CPU. + Reactive, +} + +pub struct WebInfo { + /// e.g. "#fragment" part of "www.example.com/index.html#fragment" + pub web_location_hash: String, +} + +pub trait Backend { + fn run_mode(&self) -> RunMode; + fn set_run_mode(&mut self, run_mode: RunMode); + + /// If the app is running in a Web context, this returns information about the environment. + fn web_info(&self) -> Option { + None + } + + /// excludes painting + fn cpu_time(&self) -> f32; + + /// Smoothed frames per second + fn fps(&self) -> f32; + + /// Signal the backend that we'd like to exit the app now. + /// This does nothing for web apps.s + fn quit(&mut self) {} +} + +/// A place where you can store custom data in a way that persists when you restart the app. +/// +/// On the web this is backed by [local storage](https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage). +/// On desktop this is backed by the file system. +pub trait Storage { + fn get_string(&self, key: &str) -> Option<&str>; + fn set_string(&mut self, key: &str, value: String); +} + +#[cfg(feature = "with_serde")] +pub fn get_value(storage: &dyn Storage, key: &str) -> Option { + storage + .get_string(key) + .and_then(|value| serde_json::from_str(value).ok()) +} + +#[cfg(feature = "with_serde")] +pub fn set_value(storage: &mut dyn Storage, key: &str, value: &T) { + storage.set_string(key, serde_json::to_string(value).unwrap()); +} + +/// storage key used for app +pub const APP_KEY: &str = "app"; diff --git a/egui/src/demos/app.rs b/egui/src/demos/app.rs index e20c4ae7..c1862adc 100644 --- a/egui/src/demos/app.rs +++ b/egui/src/demos/app.rs @@ -1,6 +1,6 @@ use std::sync::Arc; -use crate::{color::*, containers::*, demos::FractalClock, paint::*, widgets::*, *}; +use crate::{app, color::*, containers::*, demos::FractalClock, paint::*, widgets::*, *}; // ---------------------------------------------------------------------------- @@ -12,6 +12,7 @@ pub struct DemoApp { open_windows: OpenWindows, demo_window: DemoWindow, fractal_clock: FractalClock, + num_frames_painted: u64, } impl DemoApp { @@ -68,6 +69,84 @@ impl DemoApp { fractal_clock.window(ctx, &mut open_windows.fractal_clock); } + + fn backend_ui(&mut self, ui: &mut Ui, backend: &mut dyn app::Backend) { + let is_web = backend.web_info().is_some(); + + if is_web { + ui.label("Egui is an immediate mode GUI written in Rust, compiled to WebAssembly, rendered with WebGL."); + ui.label( + "Everything you see is rendered as textured triangles. There is no DOM. There are no HTML elements." + ); + ui.label("This is not JavaScript. This is Rust, running at 60 FPS. This is the web page, reinvented with game tech."); + ui.label("This is also work in progress, and not ready for production... yet :)"); + ui.horizontal(|ui| { + ui.label("Project home page:"); + ui.hyperlink("https://github.com/emilk/emigui/"); + }); + } else { + ui.add(label!("Egui").text_style(TextStyle::Heading)); + if ui.add(Button::new("Quit")).clicked { + backend.quit(); + return; + } + } + + ui.separator(); + + ui.add( + label!( + "CPU usage: {:.2} ms / frame (excludes painting)", + 1e3 * backend.cpu_time() + ) + .text_style(TextStyle::Monospace), + ); + + ui.separator(); + + ui.horizontal(|ui| { + let mut run_mode = backend.run_mode(); + ui.label("Run mode:"); + ui.radio_value("Continuous", &mut run_mode, app::RunMode::Continuous) + .tooltip_text("Repaint everything each frame"); + ui.radio_value("Reactive", &mut run_mode, app::RunMode::Reactive) + .tooltip_text("Repaint when there are animations or input (e.g. mouse movement)"); + backend.set_run_mode(run_mode); + }); + + if backend.run_mode() == app::RunMode::Continuous { + ui.add( + label!("Repainting the UI each frame. FPS: {:.1}", backend.fps()) + .text_style(TextStyle::Monospace), + ); + } else { + ui.label("Only running UI code when there are animations or input"); + } + + self.num_frames_painted += 1; + ui.label(format!("Total frames painted: {}", self.num_frames_painted)); + } +} + +impl app::App for DemoApp { + fn ui(&mut self, ui: &mut Ui, backend: &mut dyn app::Backend) { + Window::new("Backend") + .default_width(500.0) + .show(ui.ctx(), |ui| { + self.backend_ui(ui, backend); + }); + + let web_info = backend.web_info(); + let web_location_hash = web_info + .as_ref() + .map(|info| info.web_location_hash.as_str()) + .unwrap_or_default(); + self.ui(ui, web_location_hash); + } + + fn on_exit(&mut self, storage: &mut dyn app::Storage) { + app::set_value(storage, app::APP_KEY, self); + } } // ---------------------------------------------------------------------------- diff --git a/egui/src/lib.rs b/egui/src/lib.rs index baa784b0..e3c1af9d 100644 --- a/egui/src/lib.rs +++ b/egui/src/lib.rs @@ -22,6 +22,7 @@ rust_2018_idioms, )] +pub mod app; pub mod containers; mod context; pub mod demos; diff --git a/egui_glium/src/runner.rs b/egui_glium/src/backend.rs similarity index 70% rename from egui_glium/src/runner.rs rename to egui_glium/src/backend.rs index abbf8f71..a4a07bf0 100644 --- a/egui_glium/src/runner.rs +++ b/egui_glium/src/backend.rs @@ -1,38 +1,22 @@ use std::time::Instant; use crate::{ - persistence::{Persistence, WindowSettings}, + storage::{FileStorage, WindowSettings}, *, }; +pub use egui::app::{App, Backend, RunMode, Storage}; + const EGUI_MEMORY_KEY: &str = "egui"; const WINDOW_KEY: &str = "window"; -#[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub enum RunMode { - /// Uses `request_animation_frame` to repaint the UI on each display Hz. - /// This is good for games and stuff where you want to run logic at e.g. 60 FPS. - Continuous, - - /// Only repaint when there are animations or input (mouse movement, keyboard input etc). - Reactive, -} - -pub trait App { - /// Called onced per frame for you to draw the UI. - fn ui(&mut self, ui: &mut egui::Ui, runner: &mut Runner); - - /// Called once on shutdown. Allows you to save state. - fn on_exit(&mut self, persistence: &mut Persistence); -} - -pub struct Runner { +pub struct GliumBackend { frame_times: egui::MovementTracker, quit: bool, run_mode: RunMode, } -impl Runner { +impl GliumBackend { pub fn new(run_mode: RunMode) -> Self { Self { frame_times: egui::MovementTracker::new(1000, 1.0), @@ -40,33 +24,35 @@ impl Runner { run_mode, } } +} - pub fn run_mode(&self) -> RunMode { +impl Backend for GliumBackend { + fn run_mode(&self) -> RunMode { self.run_mode } - pub fn set_run_mode(&mut self, run_mode: RunMode) { + fn set_run_mode(&mut self, run_mode: RunMode) { self.run_mode = run_mode; } - pub fn quit(&mut self) { - self.quit = true; - } - - pub fn cpu_time(&self) -> f32 { + fn cpu_time(&self) -> f32 { self.frame_times.average().unwrap_or_default() } - pub fn fps(&self) -> f32 { + fn fps(&self) -> f32 { 1.0 / self.frame_times.mean_time_interval().unwrap_or_default() } + + fn quit(&mut self) { + self.quit = true; + } } /// Run an egui app pub fn run( title: &str, run_mode: RunMode, - mut persistence: Persistence, + mut storage: FileStorage, mut app: impl App + 'static, ) -> ! { let event_loop = glutin::event_loop::EventLoop::new(); @@ -76,7 +62,7 @@ pub fn run( .with_title(title) .with_transparent(false); - let window_settings: Option = persistence.get_value(WINDOW_KEY); + let window_settings: Option = egui::app::get_value(&storage, WINDOW_KEY); if let Some(window_settings) = &window_settings { window = window_settings.initialize_size(window); } @@ -93,14 +79,14 @@ pub fn run( } let mut ctx = egui::Context::new(); - *ctx.memory() = persistence.get_value(EGUI_MEMORY_KEY).unwrap_or_default(); + *ctx.memory() = egui::app::get_value(&storage, EGUI_MEMORY_KEY).unwrap_or_default(); let mut painter = Painter::new(&display); let mut raw_input = make_raw_input(&display); // used to keep track of time for animations let start_time = Instant::now(); - let mut runner = Runner::new(run_mode); + let mut runner = GliumBackend::new(run_mode); let mut clipboard = init_clipboard(); event_loop.run(move |event, _, control_flow| { @@ -134,10 +120,14 @@ pub fn run( display.gl_window().window().request_redraw(); // TODO: maybe only on some events? } glutin::event::Event::LoopDestroyed => { - persistence.set_value(WINDOW_KEY, &WindowSettings::from_display(&display)); - persistence.set_value(EGUI_MEMORY_KEY, &*ctx.memory()); - app.on_exit(&mut persistence); - persistence.save(); + egui::app::set_value( + &mut storage, + WINDOW_KEY, + &WindowSettings::from_display(&display), + ); + egui::app::set_value(&mut storage, EGUI_MEMORY_KEY, &*ctx.memory()); + app.on_exit(&mut storage); + storage.save(); } _ => (), } diff --git a/egui_glium/src/lib.rs b/egui_glium/src/lib.rs index 93c50b55..371a9d56 100644 --- a/egui_glium/src/lib.rs +++ b/egui_glium/src/lib.rs @@ -3,12 +3,12 @@ #![allow(clippy::single_match)] #![allow(deprecated)] // TODO: remove +mod backend; mod painter; -pub mod persistence; -mod runner; +pub mod storage; +pub use backend::*; pub use painter::Painter; -pub use runner::*; use { clipboard::ClipboardProvider, diff --git a/egui_glium/src/persistence.rs b/egui_glium/src/storage.rs similarity index 89% rename from egui_glium/src/persistence.rs rename to egui_glium/src/storage.rs index 1df7d2ce..e23f07a0 100644 --- a/egui_glium/src/persistence.rs +++ b/egui_glium/src/storage.rs @@ -4,13 +4,13 @@ use std::collections::HashMap; /// A key-value store backed by a JSON file on disk. /// Used to restore egui state, glium window position/size and app state. -pub struct Persistence { +pub struct FileStorage { path: String, kv: HashMap, dirty: bool, } -impl Persistence { +impl FileStorage { pub fn from_path(path: String) -> Self { Self { kv: read_json(&path).unwrap_or_default(), @@ -19,23 +19,6 @@ impl Persistence { } } - pub fn get_value(&self, key: &str) -> Option { - self.kv - .get(key) - .and_then(|value| serde_json::from_str(value).ok()) - } - - pub fn set_string(&mut self, key: &str, value: String) { - if self.kv.get(key) != Some(&value) { - self.kv.insert(key.to_owned(), value); - self.dirty = true; - } - } - - pub fn set_value(&mut self, key: &str, value: &T) { - self.set_string(key, serde_json::to_string(value).unwrap()); - } - pub fn save(&mut self) { if self.dirty { serde_json::to_writer(std::fs::File::create(&self.path).unwrap(), &self.kv).unwrap(); @@ -44,6 +27,19 @@ impl Persistence { } } +impl egui::app::Storage for FileStorage { + fn get_string(&self, key: &str) -> Option<&str> { + self.kv.get(key).map(String::as_str) + } + + fn set_string(&mut self, key: &str, value: String) { + if self.kv.get(key) != Some(&value) { + self.kv.insert(key.to_owned(), value); + self.dirty = true; + } + } +} + // ---------------------------------------------------------------------------- pub fn read_json(memory_json_path: impl AsRef) -> Option @@ -69,7 +65,7 @@ where } // ---------------------------------------------------------------------------- -/// Alternative to `Persistence` +/// Alternative to `FileStorage` pub fn read_memory(ctx: &egui::Context, memory_json_path: impl AsRef) { let memory: Option = read_json(memory_json_path); if let Some(memory) = memory { @@ -77,7 +73,7 @@ pub fn read_memory(ctx: &egui::Context, memory_json_path: impl AsRef, diff --git a/egui_web/src/backend.rs b/egui_web/src/backend.rs new file mode 100644 index 00000000..2f119d29 --- /dev/null +++ b/egui_web/src/backend.rs @@ -0,0 +1,184 @@ +use crate::*; + +pub use egui::app::{App, Backend, RunMode, WebInfo}; + +// ---------------------------------------------------------------------------- + +pub struct WebBackend { + ctx: Arc, + painter: webgl::Painter, + frame_times: egui::MovementTracker, + frame_start: Option, + run_mode: RunMode, + last_save_time: Option, +} + +impl WebBackend { + pub fn new(canvas_id: &str, run_mode: RunMode) -> Result { + let ctx = egui::Context::new(); + load_memory(&ctx); + Ok(Self { + ctx, + painter: webgl::Painter::new(canvas_id)?, + frame_times: egui::MovementTracker::new(1000, 1.0), + frame_start: None, + run_mode, + last_save_time: None, + }) + } + + /// id of the canvas html element containing the rendering + pub fn canvas_id(&self) -> &str { + self.painter.canvas_id() + } + + /// Returns a master fullscreen UI, covering the entire screen. + pub fn begin_frame(&mut self, raw_input: egui::RawInput) -> egui::Ui { + self.frame_start = Some(now_sec()); + self.ctx.begin_frame(raw_input) + } + + pub fn end_frame(&mut self) -> Result<(egui::Output, egui::PaintJobs), JsValue> { + let frame_start = self + .frame_start + .take() + .expect("unmatched calls to begin_frame/end_frame"); + + let (output, paint_jobs) = self.ctx.end_frame(); + + self.auto_save(); + + let now = now_sec(); + self.frame_times.add(now, (now - frame_start) as f32); + + Ok((output, paint_jobs)) + } + + pub fn paint(&mut self, paint_jobs: egui::PaintJobs) -> Result<(), JsValue> { + let bg_color = egui::color::TRANSPARENT; // Use background css color. + self.painter.paint_jobs( + bg_color, + paint_jobs, + self.ctx.texture(), + self.ctx.pixels_per_point(), + ) + } + + pub fn auto_save(&mut self) { + let now = now_sec(); + let time_since_last_save = now - self.last_save_time.unwrap_or(std::f64::NEG_INFINITY); + const AUTO_SAVE_INTERVAL: f64 = 5.0; + if time_since_last_save > AUTO_SAVE_INTERVAL { + self.last_save_time = Some(now); + save_memory(&self.ctx); + } + } + + pub fn painter_debug_info(&self) -> String { + self.painter.debug_info() + } +} + +impl Backend for WebBackend { + fn run_mode(&self) -> RunMode { + self.run_mode + } + + fn set_run_mode(&mut self, run_mode: RunMode) { + self.run_mode = run_mode; + } + + fn web_info(&self) -> Option { + Some(WebInfo { + web_location_hash: location_hash().unwrap_or_default(), + }) + } + + /// excludes painting + fn cpu_time(&self) -> f32 { + self.frame_times.average().unwrap_or_default() + } + + fn fps(&self) -> f32 { + 1.0 / self.frame_times.mean_time_interval().unwrap_or_default() + } +} + +// ---------------------------------------------------------------------------- + +// TODO: Just use RawInput? +/// Data gathered between frames. +/// Is translated to `egui::RawInput` at the start of each frame. +#[derive(Default)] +pub struct WebInput { + pub mouse_pos: Option, + pub mouse_down: bool, // TODO: which button + pub is_touch: bool, + pub scroll_delta: egui::Vec2, + pub events: Vec, +} + +impl WebInput { + pub fn new_frame(&mut self) -> egui::RawInput { + egui::RawInput { + mouse_down: self.mouse_down, + mouse_pos: self.mouse_pos, + scroll_delta: std::mem::take(&mut self.scroll_delta), + screen_size: screen_size().unwrap(), + pixels_per_point: Some(pixels_per_point()), + time: now_sec(), + seconds_since_midnight: Some(seconds_since_midnight()), + events: std::mem::take(&mut self.events), + } + } +} + +// ---------------------------------------------------------------------------- + +pub struct AppRunner { + pub web_backend: WebBackend, + pub web_input: WebInput, + pub app: Box, + pub needs_repaint: bool, // TODO: move +} + +impl AppRunner { + pub fn new(web_backend: WebBackend, app: Box) -> Result { + Ok(Self { + web_backend, + web_input: Default::default(), + app, + needs_repaint: true, // TODO: move + }) + } + + pub fn canvas_id(&self) -> &str { + self.web_backend.canvas_id() + } + + pub fn logic(&mut self) -> Result<(egui::Output, egui::PaintJobs), JsValue> { + resize_to_screen_size(self.web_backend.canvas_id()); + + let raw_input = self.web_input.new_frame(); + + let mut ui = self.web_backend.begin_frame(raw_input); + self.app.ui(&mut ui, &mut self.web_backend); + let (output, paint_jobs) = self.web_backend.end_frame()?; + handle_output(&output); + Ok((output, paint_jobs)) + } + + pub fn paint(&mut self, paint_jobs: egui::PaintJobs) -> Result<(), JsValue> { + self.web_backend.paint(paint_jobs) + } +} + +/// Install event listeners to register different input events +/// and starts running the given `AppRunner`. +pub fn run(app_runner: AppRunner) -> Result { + let runner_ref = AppRunnerRef(Arc::new(Mutex::new(app_runner))); + install_canvas_events(&runner_ref)?; + install_document_events(&runner_ref)?; + paint_and_schedule(runner_ref.clone())?; + Ok(runner_ref) +} diff --git a/egui_web/src/lib.rs b/egui_web/src/lib.rs index 62da5298..5485b43b 100644 --- a/egui_web/src/lib.rs +++ b/egui_web/src/lib.rs @@ -1,211 +1,15 @@ #![deny(warnings)] #![warn(clippy::all)] +pub mod backend; pub mod webgl; +pub use backend::*; + use parking_lot::Mutex; use std::sync::Arc; use wasm_bindgen::prelude::*; -// ---------------------------------------------------------------------------- - -pub struct WebInfo { - /// e.g. "#fragment" part of "www.example.com/index.html#fragment" - pub web_location_hash: String, -} - -/// Implement this and use `egui_web::AppRunner` to run your app. -pub trait App { - fn ui(&mut self, ui: &mut egui::Ui, backend: &mut Backend, info: &WebInfo); -} - -#[derive(Clone, Copy, Debug, Eq, PartialEq)] -pub enum RunMode { - /// Uses `request_animation_frame` to repaint the UI on each display Hz. - /// This is good for games and stuff where you want to run logic at e.g. 60 FPS. - Continuous, - - /// Only repaint when there are animations or input (mouse movement, keyboard input etc). - Reactive, -} - -// ---------------------------------------------------------------------------- - -pub struct Backend { - ctx: Arc, - painter: webgl::Painter, - frame_times: egui::MovementTracker, - frame_start: Option, - run_mode: RunMode, - last_save_time: Option, -} - -impl Backend { - pub fn new(canvas_id: &str, run_mode: RunMode) -> Result { - let ctx = egui::Context::new(); - load_memory(&ctx); - Ok(Backend { - ctx, - painter: webgl::Painter::new(canvas_id)?, - frame_times: egui::MovementTracker::new(1000, 1.0), - frame_start: None, - run_mode, - last_save_time: None, - }) - } - - pub fn run_mode(&self) -> RunMode { - self.run_mode - } - - pub fn set_run_mode(&mut self, run_mode: RunMode) { - self.run_mode = run_mode; - } - - /// id of the canvas html element containing the rendering - pub fn canvas_id(&self) -> &str { - self.painter.canvas_id() - } - - /// Returns a master fullscreen UI, covering the entire screen. - pub fn begin_frame(&mut self, raw_input: egui::RawInput) -> egui::Ui { - self.frame_start = Some(now_sec()); - self.ctx.begin_frame(raw_input) - } - - pub fn end_frame(&mut self) -> Result<(egui::Output, egui::PaintJobs), JsValue> { - let frame_start = self - .frame_start - .take() - .expect("unmatched calls to begin_frame/end_frame"); - - let (output, paint_jobs) = self.ctx.end_frame(); - - self.auto_save(); - - let now = now_sec(); - self.frame_times.add(now, (now - frame_start) as f32); - - Ok((output, paint_jobs)) - } - - pub fn paint(&mut self, paint_jobs: egui::PaintJobs) -> Result<(), JsValue> { - let bg_color = egui::color::TRANSPARENT; // Use background css color. - self.painter.paint_jobs( - bg_color, - paint_jobs, - self.ctx.texture(), - self.ctx.pixels_per_point(), - ) - } - - pub fn auto_save(&mut self) { - let now = now_sec(); - let time_since_last_save = now - self.last_save_time.unwrap_or(std::f64::NEG_INFINITY); - const AUTO_SAVE_INTERVAL: f64 = 5.0; - if time_since_last_save > AUTO_SAVE_INTERVAL { - self.last_save_time = Some(now); - save_memory(&self.ctx); - } - } - - pub fn painter_debug_info(&self) -> String { - self.painter.debug_info() - } - - /// excludes painting - pub fn cpu_time(&self) -> f32 { - self.frame_times.average().unwrap_or_default() - } - - pub fn fps(&self) -> f32 { - 1.0 / self.frame_times.mean_time_interval().unwrap_or_default() - } -} - -// ---------------------------------------------------------------------------- - -// TODO: Just use RawInput? -/// Data gathered between frames. -/// Is translated to `egui::RawInput` at the start of each frame. -#[derive(Default)] -pub struct WebInput { - pub mouse_pos: Option, - pub mouse_down: bool, // TODO: which button - pub is_touch: bool, - pub scroll_delta: egui::Vec2, - pub events: Vec, -} - -impl WebInput { - pub fn new_frame(&mut self) -> egui::RawInput { - egui::RawInput { - mouse_down: self.mouse_down, - mouse_pos: self.mouse_pos, - scroll_delta: std::mem::take(&mut self.scroll_delta), - screen_size: screen_size().unwrap(), - pixels_per_point: Some(pixels_per_point()), - time: now_sec(), - seconds_since_midnight: Some(seconds_since_midnight()), - events: std::mem::take(&mut self.events), - } - } -} - -// ---------------------------------------------------------------------------- - -pub struct AppRunner { - pub backend: Backend, - pub web_input: WebInput, - pub app: Box, - pub needs_repaint: bool, // TODO: move -} - -impl AppRunner { - pub fn new(backend: Backend, app: Box) -> Result { - Ok(Self { - backend, - web_input: Default::default(), - app, - needs_repaint: true, // TODO: move - }) - } - - pub fn canvas_id(&self) -> &str { - self.backend.canvas_id() - } - - pub fn logic(&mut self) -> Result<(egui::Output, egui::PaintJobs), JsValue> { - resize_to_screen_size(self.backend.canvas_id()); - - let raw_input = self.web_input.new_frame(); - - let info = WebInfo { - web_location_hash: location_hash().unwrap_or_default(), - }; - - let mut ui = self.backend.begin_frame(raw_input); - self.app.ui(&mut ui, &mut self.backend, &info); - let (output, paint_jobs) = self.backend.end_frame()?; - handle_output(&output); - Ok((output, paint_jobs)) - } - - pub fn paint(&mut self, paint_jobs: egui::PaintJobs) -> Result<(), JsValue> { - self.backend.paint(paint_jobs) - } -} - -/// Install event listeners to register different input events -/// and starts running the given `AppRunner`. -pub fn run(app_runner: AppRunner) -> Result { - let runner_ref = AppRunnerRef(Arc::new(Mutex::new(app_runner))); - install_canvas_events(&runner_ref)?; - install_document_events(&runner_ref)?; - paint_and_schedule(runner_ref.clone())?; - Ok(runner_ref) -} - // ---------------------------------------------------------------------------- // Helpers to hide some of the verbosity of web_sys @@ -412,7 +216,7 @@ pub struct AppRunnerRef(Arc>); fn paint_and_schedule(runner_ref: AppRunnerRef) -> Result<(), JsValue> { fn paint_if_needed(runner_ref: &AppRunnerRef) -> Result<(), JsValue> { let mut runner_lock = runner_ref.0.lock(); - if runner_lock.backend.run_mode() == RunMode::Continuous || runner_lock.needs_repaint { + if runner_lock.web_backend.run_mode() == RunMode::Continuous || runner_lock.needs_repaint { runner_lock.needs_repaint = false; let (output, paint_jobs) = runner_lock.logic()?; runner_lock.paint(paint_jobs)?; diff --git a/example_glium/src/main.rs b/example_glium/src/main.rs index a1154e4d..78c9d35d 100644 --- a/example_glium/src/main.rs +++ b/example_glium/src/main.rs @@ -1,6 +1,4 @@ -use egui_glium::{persistence::Persistence, RunMode, Runner}; - -const APP_KEY: &str = "app"; +use egui_glium::{storage::FileStorage, RunMode}; /// We dervive Deserialize/Serialize so we can persist app state on shutdown. #[derive(Default, serde::Deserialize, serde::Serialize)] @@ -8,10 +6,10 @@ struct MyApp { counter: u64, } -impl egui_glium::App for MyApp { +impl egui::app::App for MyApp { /// This function will be called whenever the Ui needs to be shown, /// which may be many times per second. - fn ui(&mut self, ui: &mut egui::Ui, _: &mut Runner) { + fn ui(&mut self, ui: &mut egui::Ui, _: &mut dyn egui::app::Backend) { if ui.button("Increment").clicked { self.counter += 1; } @@ -21,14 +19,14 @@ impl egui_glium::App for MyApp { ui.label(format!("Counter: {}", self.counter)); } - fn on_exit(&mut self, persistence: &mut Persistence) { - persistence.set_value(APP_KEY, self); // Save app state + fn on_exit(&mut self, storage: &mut dyn egui::app::Storage) { + egui::app::set_value(storage, egui::app::APP_KEY, self); } } fn main() { let title = "My Egui Window"; - let persistence = Persistence::from_path(".egui_example_glium.json".into()); // Where to persist app state - let app: MyApp = persistence.get_value(APP_KEY).unwrap_or_default(); // Restore `MyApp` from file, or create new `MyApp`. - egui_glium::run(title, RunMode::Reactive, persistence, app); + let storage = FileStorage::from_path(".egui_example_glium.json".into()); // Where to persist app state + let app: MyApp = egui::app::get_value(&storage, egui::app::APP_KEY).unwrap_or_default(); // Restore `MyApp` from file, or create new `MyApp`. + egui_glium::run(title, RunMode::Reactive, storage, app); }