From 4a09ed9404366e5a9e3bb857aa455a77f59d7c82 Mon Sep 17 00:00:00 2001 From: fn-registry agent Date: Fri, 8 May 2026 00:07:55 +0200 Subject: [PATCH 1/2] chore: sync from fn-registry agent --- CMakeLists.txt | 35 ++++ app.md | 104 ++++++++++++ compiler.cpp | 63 ++++++++ compiler.h | 24 +++ main.cpp | 428 +++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 654 insertions(+) create mode 100644 CMakeLists.txt create mode 100644 app.md create mode 100644 compiler.cpp create mode 100644 compiler.h create mode 100644 main.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..cc25d77 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,35 @@ +add_imgui_app(shaders_lab + main.cpp + compiler.cpp + ${CMAKE_SOURCE_DIR}/functions/gfx/gl_loader.cpp + ${CMAKE_SOURCE_DIR}/functions/gfx/gl_shader.cpp + ${CMAKE_SOURCE_DIR}/functions/gfx/gl_framebuffer.cpp + ${CMAKE_SOURCE_DIR}/functions/gfx/fullscreen_quad.cpp + ${CMAKE_SOURCE_DIR}/functions/gfx/shader_canvas.cpp + ${CMAKE_SOURCE_DIR}/functions/gfx/uniform_parser.cpp + ${CMAKE_SOURCE_DIR}/functions/gfx/uniform_panel.cpp + ${CMAKE_SOURCE_DIR}/functions/gfx/dag_catalog.cpp + ${CMAKE_SOURCE_DIR}/functions/gfx/dag_compile.cpp + ${CMAKE_SOURCE_DIR}/functions/gfx/dag_uniforms.cpp + ${CMAKE_SOURCE_DIR}/functions/gfx/dag_panel.cpp + ${CMAKE_SOURCE_DIR}/functions/gfx/dag_node_editor.cpp + ${CMAKE_SOURCE_DIR}/functions/gfx/dag_palette.cpp + ${CMAKE_SOURCE_DIR}/functions/gfx/dag_node_previews.cpp + ${CMAKE_SOURCE_DIR}/functions/gfx/shaderlab_db.cpp + ${CMAKE_SOURCE_DIR}/functions/gfx/code_to_generator.cpp + # Primitivos UI usados por el modal Save-as-generator. + ${CMAKE_SOURCE_DIR}/functions/core/modal_dialog.cpp + ${CMAKE_SOURCE_DIR}/functions/core/text_input.cpp + ${CMAKE_SOURCE_DIR}/functions/core/button.cpp + # fps_overlay, panel_menu, layouts_menu, app_menubar, layout_storage ya + # viven en fn_framework. +) +target_include_directories(shaders_lab PRIVATE + ${CMAKE_CURRENT_SOURCE_DIR} +) +target_link_libraries(shaders_lab PRIVATE imgui_node_editor SQLite::SQLite3) + +if(WIN32) + # GUI app: sin consola al lanzar (subsystem:windows / -mwindows) + set_target_properties(shaders_lab PROPERTIES WIN32_EXECUTABLE TRUE) +endif() diff --git a/app.md b/app.md new file mode 100644 index 0000000..3e5ecc2 --- /dev/null +++ b/app.md @@ -0,0 +1,104 @@ +--- +name: shaders_lab +lang: cpp +domain: gfx +description: "Live GLSL shader playground con DAG pipeline. Editor de codigo con compilacion en caliente, panel DAG con paleta de generadores/filtros/output, dos canvas (Code y DAG), parseo de uniforms anotados (// @slider, @color, @xy) que se convierten en controles, persistencia de generators en shaders_lab.db, y guardado/carga de layouts ImGui." +tags: [imgui, opengl, glsl, shaders, dag, live-coding, playground, sqlite] +uses_functions: + # gfx + - gl_loader_cpp_gfx + - gl_shader_cpp_gfx + - gl_framebuffer_cpp_gfx + - fullscreen_quad_cpp_gfx + - shader_canvas_cpp_gfx + - uniform_parser_cpp_gfx + - uniform_panel_cpp_gfx + - dag_catalog_cpp_gfx + - dag_compile_cpp_gfx + - dag_uniforms_cpp_gfx + - dag_panel_cpp_gfx + - dag_node_editor_cpp_gfx + - dag_palette_cpp_gfx + - dag_node_previews_cpp_gfx + - shaderlab_db_cpp_gfx + - code_to_generator_cpp_gfx + # core (modal Save-as-generator) + - modal_dialog_cpp_core + - text_input_cpp_core + - button_cpp_core +uses_types: + - dag_types_cpp_gfx +framework: "imgui" +entry_point: "main.cpp" +dir_path: "cpp/apps/shaders_lab" +repo_url: "" +--- + +## Arquitectura + +App ImGui de live-coding GLSL con dos modos en paralelo: + +1. **Code panel** — editor de fragment shader libre. Las anotaciones en + uniforms (`// @slider`, `// @color`, `// @xy`, `// @toggle`) se parsean y + convierten en controles del panel **Controls** que escriben en un + `UniformStore` aplicado al programa cada frame. +2. **DAG panel** — pipeline node-based con catalogo de generadores + (plasma, voronoi, etc.) y filtros (blur, threshold, etc.) que se + compilan a un fragment shader unificado y se renderizan en **Canvas DAG**. + +Al guardar un Code shader como "generator" se traduce a un `DagNodeDef` y se +persiste en `shaders_lab.db` (tabla via `shaderlab_db`), apareciendo en la +paleta del DAG junto a los builtins. + +## Capas + +| Archivo | Responsabilidad | +|---|---| +| `main.cpp` | UI shell, paneles, modal save-as, layouts, AppConfig | +| `compiler.cpp` | `compile_code()`, `compile_dag()`, `mark_code_dirty()` con debounce 250ms | + +`main.cpp` mantiene estado global de sesion (g_source, g_pipeline, g_descs, +g_store, g_layouts...) — ImGui retained-mode obliga a que persista entre +frames. Toda la logica pura de compilacion vive en `compiler.cpp` y en las +funciones `dag_compile`, `code_to_generator`, `uniform_parser` del registry. + +## Persistencia + +- **`shaders_lab.db`** (junto al .exe) — tabla de generators de usuario via + `shaderlab_db_*`, ademas de `imgui_layouts` (creada por `layout_storage`). +- `imgui.ini` y `app_settings.ini` — gestionados por `fn::run_app` en + `/local_files/`. + +## Paneles + +| Panel | Atajo | Que muestra | +|---|---|---| +| Code | Ctrl+1 | Editor del fragment shader + boton "Save as generator" | +| DAG Pipeline | Ctrl+2 | Node editor con la pipeline | +| Canvas Code | Ctrl+3 | Render del Code shader | +| Canvas DAG | Ctrl+4 | Render del shader compilado del DAG | +| Controls | Ctrl+5 | Sliders/color pickers de uniforms anotados | +| Functions | Ctrl+6 | Paleta del DAG (generators + filters + output) | +| Generated GLSL | Ctrl+7 | GLSL final del DAG con uniforms baked como const array | + +## Build + +```bash +# Linux +cd cpp && cmake -B build/linux -S . && cmake --build build/linux --target shaders_lab + +# Windows (cross-compile) +cd cpp && cmake -B build/windows -S . -DCMAKE_TOOLCHAIN_FILE=toolchains/mingw-w64.cmake \ + && cmake --build build/windows --target shaders_lab +``` + +## Decisiones + +- `init_gl_loader = true` (via `fn::run_app` por default cuando se enlaza + con OpenGL) — `shader_canvas`, `gl_shader`, `gl_framebuffer` llaman gl*. +- `viewports = true` — los Canvas se pueden arrastrar fuera del main. +- DAG default: arranca con un nodo "plasma" + "output" si la paleta los + encuentra; persiste el INI con `layout_storage`. +- El boton "Save as generator" valida snake_case, evita colisionar con + builtins, traduce con `code_to_generator`, persiste con `shaderlab_db_save_generator`, + y registra el nodo nuevo en el catalogo en vivo (`dag_register_node`). diff --git a/compiler.cpp b/compiler.cpp new file mode 100644 index 0000000..1f2f5d5 --- /dev/null +++ b/compiler.cpp @@ -0,0 +1,63 @@ +#include "compiler.h" + +#include "gfx/shader_canvas.h" +#include "gfx/gl_shader.h" +#include "gfx/uniform_parser.h" +#include "gfx/uniform_panel.h" +#include "gfx/dag_compile.h" +#include "gfx/dag_uniforms.h" + +#include +#include +#include + +// ── Globals declarados en main.cpp (single source of truth) ───────────────── +extern fn::gfx::ShaderCanvas g_canvas_code; +extern fn::gfx::ShaderCanvas g_canvas_dag; +extern std::string g_source; +extern std::string g_code_err; +extern int g_code_err_line; +extern std::chrono::steady_clock::time_point g_code_last_edit; +extern bool g_code_dirty; +extern std::vector g_descs; +extern fn::gfx::UniformStore g_store; +extern std::vector g_pipeline; +extern std::string g_dag_glsl; +extern std::string g_dag_err; +extern int g_dag_err_line; + +namespace shaders_lab { + +void compile_code() { + auto r = fn::gfx::compile_fragment(g_source); + if (r.ok) { + g_descs = fn::gfx::parse_uniforms(g_source); + fn::gfx::uniforms_sync(g_store, g_descs); + fn::gfx::canvas_set_program(g_canvas_code, r.program); + g_code_err.clear(); + g_code_err_line = -1; + } else { + g_code_err = r.err_msg; + g_code_err_line = r.err_line; + } +} + +void compile_dag() { + g_dag_glsl = fn::gfx::compile_dag_to_glsl(g_pipeline); + auto r = fn::gfx::compile_fragment(g_dag_glsl); + if (r.ok) { + fn::gfx::canvas_set_program(g_canvas_dag, r.program); + g_dag_err.clear(); + g_dag_err_line = -1; + } else { + g_dag_err = r.err_msg; + g_dag_err_line = r.err_line; + } +} + +void mark_code_dirty() { + g_code_last_edit = std::chrono::steady_clock::now(); + g_code_dirty = true; +} + +} // namespace shaders_lab diff --git a/compiler.h b/compiler.h new file mode 100644 index 0000000..44d4f3f --- /dev/null +++ b/compiler.h @@ -0,0 +1,24 @@ +#pragma once + +// shaders_lab/compiler — extrae las rutinas impuras de compilacion del shader +// (compile_code, compile_dag, mark_code_dirty) desde main.cpp para que el +// archivo principal quede acotado a la composicion de paneles ImGui. +// +// Las globals (g_source, g_descs, g_store, g_pipeline, etc.) se declaran +// extern y viven en main.cpp; aqui solo orquestamos compilacion. + +namespace shaders_lab { + +// Compila g_source -> programa OpenGL para g_canvas_code, refresca g_descs +// y sincroniza g_store. Actualiza g_code_err / g_code_err_line. +void compile_code(); + +// Compila g_pipeline -> g_dag_glsl -> programa OpenGL para g_canvas_dag. +// Actualiza g_dag_err / g_dag_err_line. +void compile_dag(); + +// Marca el shader Code como dirty y registra el timestamp del ultimo edit +// (para debounce de 250ms en el render loop). +void mark_code_dirty(); + +} // namespace shaders_lab diff --git a/main.cpp b/main.cpp new file mode 100644 index 0000000..ea1f4bf --- /dev/null +++ b/main.cpp @@ -0,0 +1,428 @@ +#include "app_base.h" +#include "imgui.h" + +#include "gfx/shader_canvas.h" +#include "gfx/gl_shader.h" +#include "gfx/uniform_parser.h" +#include "gfx/uniform_panel.h" +#include "gfx/dag_catalog.h" +#include "gfx/dag_compile.h" +#include "gfx/dag_uniforms.h" +#include "gfx/dag_panel.h" +#include "gfx/dag_node_editor.h" +#include "gfx/dag_palette.h" +#include "gfx/dag_node_previews.h" +#include "gfx/code_to_generator.h" +#include "gfx/shaderlab_db.h" +#include "core/panel_menu.h" +#include "core/layouts_menu.h" +#include "core/layout_storage.h" +#include "core/modal_dialog.h" +#include "core/text_input.h" +#include "core/button.h" +#include "core/tokens.h" + +#include "compiler.h" + +#include +#include +#include +#include +#include +#include + +// Globals: linked extern desde compiler.cpp. NO `static` aqui. +fn::gfx::ShaderCanvas g_canvas_code; +fn::gfx::ShaderCanvas g_canvas_dag; + +// Default placeholder so the Code panel does something useful on first launch +// without committing to one specific look. +static const char* CODE_PLACEHOLDER = R"glsl(// Escribe tu fragment shader aqui. +// Declara uniforms con anotaciones (// @slider, @color, @xy) +// para que aparezcan como controles al guardar como generator. + +uniform vec3 u_color; // @color default=0.5,0.2,0.8 +uniform float u_speed; // @slider min=0.1 max=5 default=1 + +void main() { + vec2 uv = gl_FragCoord.xy / u_resolution; + float t = u_time * u_speed; + vec3 c = u_color * (0.5 + 0.5 * cos(t + uv.xyx + vec3(0.0, 2.0, 4.0))); + fragColor = vec4(c, 1.0); +} +)glsl"; + +std::string g_source = CODE_PLACEHOLDER; +std::string g_code_err; +int g_code_err_line = -1; +std::chrono::steady_clock::time_point g_code_last_edit; +bool g_code_dirty = true; +std::vector g_descs; +fn::gfx::UniformStore g_store; + +std::vector g_pipeline; +std::string g_dag_glsl; +std::string g_dag_err; +int g_dag_err_line = -1; +static bool g_dag_dirty = true; // solo lo usa main.cpp + +// ── Panel visibility (toggled from View menu and panel close button) ────── +static bool g_show_code = true; +static bool g_show_dag = true; +static bool g_show_canvas_c = true; +static bool g_show_canvas_d = true; +static bool g_show_controls = true; +static bool g_show_functions = true; +static bool g_show_generated = true; + +// Tabla de paneles toggleables que fn::run_app pasa a app_menubar cada frame. +// Vive en el ambito del archivo para poder referenciarse desde main(). +static constexpr fn_ui::PanelToggle k_panels[] = { + {"Code", "Ctrl+1", &g_show_code}, + {"DAG Pipeline", "Ctrl+2", &g_show_dag}, + {"Canvas Code", "Ctrl+3", &g_show_canvas_c}, + {"Canvas DAG", "Ctrl+4", &g_show_canvas_d}, + {"Controls", "Ctrl+5", &g_show_controls}, + {"Functions", "Ctrl+6", &g_show_functions}, + {"Generated GLSL","Ctrl+7", &g_show_generated}, +}; + +// ── Layouts (named ImGui ini snapshots persisted in shaders_lab.db) ─────── +// El storage opaco encapsula la BD y el blob pendiente. Los callbacks +// envuelven save/apply/delete/reset y se pasan a app_menubar tal cual. +static fn_ui::LayoutStorage* g_layouts = nullptr; +static fn_ui::LayoutCallbacks g_layout_cb; + +// ── Save-as-generator modal state ───────────────────────────────────────── +static bool g_save_modal_open = false; +static char g_save_name[64] = "my_shader"; +static char g_save_label[64] = "my shader"; +static char g_save_desc[256] = ""; +static char g_save_tags[128] = "shaders_lab,user"; +static std::string g_save_err; + +// compile_code, compile_dag, mark_code_dirty viven en compiler.cpp +using shaders_lab::compile_code; +using shaders_lab::compile_dag; +using shaders_lab::mark_code_dirty; + +static void ensure_dag_default() { + if (g_pipeline.empty()) { + const fn::gfx::DagNodeDef* plasma = fn::gfx::dag_find("plasma"); + if (plasma) { + fn::gfx::DagStep s; + s.id = "n_plasma"; + s.name = plasma->name; + s.params = plasma->param_defaults; + g_pipeline.push_back(s); + } + } + bool has_output = false; + for (const auto& s : g_pipeline) { + const fn::gfx::DagNodeDef* d = fn::gfx::dag_find(s.name); + if (d && d->kind == fn::gfx::DagKind::Output) { has_output = true; break; } + } + if (!has_output) { + const fn::gfx::DagNodeDef* out = fn::gfx::dag_find("output"); + if (out) { + fn::gfx::DagStep s; + s.id = "n_output"; + s.name = out->name; + s.editor_pos_x = 500.0f; + if (!g_pipeline.empty()) s.source_ids[0] = g_pipeline.front().id; + g_pipeline.push_back(s); + } + } +} + +static void draw_err(const std::string& msg, int line) { + if (msg.empty()) return; + ImGui::Separator(); + if (line > 0) { + ImGui::TextColored(ImVec4(1, 0.4f, 0.4f, 1), "line %d: %s", line, msg.c_str()); + } else { + ImGui::TextColored(ImVec4(1, 0.4f, 0.4f, 1), "%s", msg.c_str()); + } +} + +// snake_case validation: lowercase letters, digits, underscores; first char a-z. +static bool valid_id(const char* s) { + if (!s || !*s) return false; + if (!(*s >= 'a' && *s <= 'z')) return false; + for (const char* p = s; *p; ++p) { + char c = *p; + if (!((c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || c == '_')) return false; + } + return true; +} + +// Build a DagNodeDef from current Code source + form fields, persist it, and +// register in the live catalog. Returns "" on success or an error message. +static std::string save_current_as_generator() { + if (!valid_id(g_save_name)) return "name must be snake_case (a-z, 0-9, _) and start with a letter"; + + if (fn::gfx::dag_find(g_save_name)) { + const fn::gfx::DagNodeDef* existing = fn::gfx::dag_find(g_save_name); + if (existing && existing->is_builtin) { + return std::string("name '") + g_save_name + "' collides with a built-in node"; + } + // user node with same name → overwrite is allowed + } + + auto tr = fn::gfx::code_to_generator(g_source); + if (!tr.ok) return tr.err; + + fn::gfx::GeneratorRecord rec; + rec.id = g_save_name; + rec.label = g_save_label[0] ? g_save_label : g_save_name; + rec.description = g_save_desc; + rec.source_glsl = g_source; + rec.body_glsl = tr.body_template; + rec.param_count = tr.param_count; + rec.param_defaults = tr.param_defaults; + rec.param_names = tr.param_names; + rec.controls = tr.controls; + rec.tags = g_save_tags; + + std::string err; + if (!fn::gfx::shaderlab_db_save_generator(rec, &err)) { + return std::string("db save failed: ") + err; + } + + fn::gfx::DagNodeDef def = fn::gfx::make_generator_def(rec.id, rec.label, rec.description, tr); + if (!fn::gfx::dag_register_node(def)) { + return std::string("could not register node '") + rec.id + "'"; + } + return ""; +} + +// Reconstitute every persisted generator and inject it into the live catalog. +static void load_user_generators_into_catalog() { + for (const auto& rec : fn::gfx::shaderlab_db_list_generators()) { + // Re-translate body_template from source to keep the lambda fresh. + // (We could trust rec.body_glsl, but re-running ensures forward-compat + // when we tweak the translator.) + auto tr = fn::gfx::code_to_generator(rec.source_glsl); + if (!tr.ok) continue; // skip broken records + + fn::gfx::DagNodeDef def = fn::gfx::make_generator_def(rec.id, rec.label, rec.description, tr); + fn::gfx::dag_register_node(def); + } +} + +static void render() { + // Apply pending layout BEFORE any ImGui::Begin this frame. + // (LoadIniSettingsFromMemory must happen before windows are submitted.) + std::string applied = fn_ui::layout_storage_apply_pending(g_layouts); + if (!applied.empty()) g_layout_cb.active_name = applied; + + if (!g_canvas_code.initialized) fn::gfx::canvas_init(g_canvas_code); + if (!g_canvas_dag.initialized) fn::gfx::canvas_init(g_canvas_dag); + + if (g_code_dirty) { + auto now = std::chrono::steady_clock::now(); + auto elapsed = std::chrono::duration_cast(now - g_code_last_edit).count(); + if (elapsed > 250) { + compile_code(); + g_code_dirty = false; + } + } + if (g_dag_dirty) { + compile_dag(); + g_dag_dirty = false; + } + + ImGui::DockSpaceOverViewport(0, ImGui::GetMainViewport()); + + // Menubar (View + Layouts + Settings + About) la invoca fn::run_app a + // partir de AppConfig::panels y AppConfig::layouts_cb. + + // --- Code window --- + if (g_show_code) { + if (ImGui::Begin("Code", &g_show_code)) { + if (fn_ui::button("Save as generator...", fn_ui::ButtonVariant::Secondary)) { + g_save_modal_open = true; + g_save_err.clear(); + } + + if (fn_ui::modal_dialog_begin("Save as generator", &g_save_modal_open, + ImVec2(420, 0))) { + ImGui::TextUnformatted("Guardar shader actual como nodo Gen del DAG."); + ImGui::Spacing(); + fn_ui::text_input("name (snake_case)", g_save_name, sizeof(g_save_name), + "ej: my_shader"); + fn_ui::text_input("label", g_save_label, sizeof(g_save_label)); + ImGui::InputTextMultiline("description", g_save_desc, sizeof(g_save_desc), + ImVec2(380, 60)); + fn_ui::text_input("tags (CSV)", g_save_tags, sizeof(g_save_tags)); + + if (!g_save_err.empty()) { + ImGui::PushStyleColor(ImGuiCol_Text, fn_tokens::colors::error); + ImGui::TextWrapped("%s", g_save_err.c_str()); + ImGui::PopStyleColor(); + } + + ImGui::Separator(); + if (fn_ui::button("Cancel", fn_ui::ButtonVariant::Subtle)) { + g_save_modal_open = false; + } + ImGui::SameLine(); + if (fn_ui::button("Save", fn_ui::ButtonVariant::Primary)) { + g_save_err = save_current_as_generator(); + if (g_save_err.empty()) { + g_save_modal_open = false; + } + } + } + fn_ui::modal_dialog_end(); + + ImVec2 avail = ImGui::GetContentRegionAvail(); + float footer_h = g_code_err.empty() ? 0.0f : ImGui::GetTextLineHeightWithSpacing() + 8.0f; + ImVec2 editor_size(avail.x, avail.y - footer_h); + + char buf[1 << 16]; + size_t copy_len = g_source.size() < sizeof(buf) - 1 ? g_source.size() : sizeof(buf) - 1; + memcpy(buf, g_source.c_str(), copy_len); + buf[copy_len] = '\0'; + + if (ImGui::InputTextMultiline("##code", buf, sizeof(buf), editor_size, + ImGuiInputTextFlags_AllowTabInput)) { + g_source = buf; + mark_code_dirty(); + } + + draw_err(g_code_err, g_code_err_line); + } + ImGui::End(); + } + + // --- DAG Pipeline window --- + if (g_show_dag) { + if (ImGui::Begin("DAG Pipeline", &g_show_dag)) { + if (fn::gfx::dag_node_editor(g_pipeline)) { + g_dag_dirty = true; + } + draw_err(g_dag_err, g_dag_err_line); + } + ImGui::End(); + } + + // --- Canvas Code --- + // Code is fully independent from the DAG: only the uniforms declared in + // the Code source itself (parsed via parse_uniforms) get fed. To reproduce + // a DAG render here, paste the *baked* "Generated GLSL" — its u_params live + // as a const array inside the source. + if (g_show_canvas_c) { + if (ImGui::Begin("Canvas Code", &g_show_canvas_c)) { + fn::gfx::canvas_render(g_canvas_code, static_cast(ImGui::GetTime()), + [](unsigned int program) { + fn::gfx::uniforms_apply(g_store, g_descs, program); + }); + } + ImGui::End(); + } + + // --- Canvas DAG --- + if (g_show_canvas_d) { + if (ImGui::Begin("Canvas DAG", &g_show_canvas_d)) { + fn::gfx::canvas_render(g_canvas_dag, static_cast(ImGui::GetTime()), + [](unsigned int program) { + fn::gfx::dag_uniforms_apply(g_pipeline, program); + }); + } + ImGui::End(); + } + + if (g_canvas_dag.program) { + fn::gfx::dag_previews_render(g_pipeline, g_canvas_dag.program); + } + + // --- Controls window (Code uniforms) --- + if (g_show_controls) { + if (ImGui::Begin("Controls", &g_show_controls)) { + if (g_descs.empty()) { + ImGui::TextDisabled("No uniforms declared in Code."); + ImGui::TextDisabled("Use // @slider, @color, @toggle, @xy annotations."); + } else { + fn::gfx::uniforms_panel(g_store, g_descs); + } + // fps_overlay ahora se renderiza desde fn::run_app cuando el usuario + // lo activa en Settings → Show FPS overlay. + } + ImGui::End(); + } + + // --- Functions palette (drag into DAG Pipeline) --- + if (g_show_functions) { + if (ImGui::Begin("Functions", &g_show_functions)) { + fn::gfx::dag_palette(); + } + ImGui::End(); + } + + // --- Generated GLSL window (self-contained DAG → paste-able into Code) --- + // We bake the live params into a `const vec4 u_params[]` so the displayed + // text is a complete shader: copy-pasting it into the Code editor yields + // the same render at the moment of the copy, and nothing in the DAG can + // change the Code canvas afterwards. + if (g_show_generated) { + if (ImGui::Begin("Generated GLSL", &g_show_generated)) { + if (g_pipeline.empty()) { + ImGui::TextDisabled("(DAG not compiled yet)"); + } else { + static std::string s_baked; + s_baked = fn::gfx::compile_dag_to_glsl_baked(g_pipeline); + ImVec2 avail = ImGui::GetContentRegionAvail(); + ImGui::InputTextMultiline("##dag_glsl", + const_cast(s_baked.c_str()), + s_baked.size() + 1, + avail, + ImGuiInputTextFlags_ReadOnly); + } + } + ImGui::End(); + } +} + +int main() { + fn::gfx::shaderlab_db_open("shaders_lab.db"); + load_user_generators_into_catalog(); + ensure_dag_default(); + + // Layout persistence: handle opaco que crea su propia tabla + // imgui_layouts en shaders_lab.db (CREATE IF NOT EXISTS, no toca la + // tabla ui_layouts heredada). Cualquier app del registry puede usar + // este patron. + g_layouts = fn_ui::layout_storage_open("shaders_lab.db"); + fn_ui::layout_storage_make_callbacks(g_layouts, g_layout_cb); + + // Override de on_reset: ademas de limpiar el INI, re-mostrar todos + // los paneles especificos de shaders_lab. + g_layout_cb.on_reset = []() { + g_show_code = g_show_dag = g_show_canvas_c = g_show_canvas_d = + g_show_controls = g_show_functions = g_show_generated = true; + ImGui::LoadIniSettingsFromMemory("", 0); + ImGui::GetIO().WantSaveIniSettings = true; + g_layout_cb.active_name.clear(); + }; + + fn::AppConfig cfg; + cfg.title = "shaders_lab"; + cfg.width = 1600; + cfg.height = 900; + cfg.about = {.name = "shaders_lab", + .version = "0.3.0", + .description = "Live GLSL shader playground with DAG pipeline. layout_storage publico, compiler extraido, AppConfig estandar, multi-viewport, modal save-as via modal_dialog."}; + cfg.panels = k_panels; + cfg.panel_count = sizeof(k_panels) / sizeof(k_panels[0]); + cfg.layouts_cb = &g_layout_cb; + int rc = fn::run_app(cfg, render); + + fn::gfx::canvas_destroy(g_canvas_code); + fn::gfx::canvas_destroy(g_canvas_dag); + fn::gfx::dag_node_editor_destroy(); + fn::gfx::dag_previews_destroy(); + fn_ui::layout_storage_close(g_layouts); + fn::gfx::shaderlab_db_close(); + return rc; +} From 8613c8f2d0763c6b29dac2265f9fb7a75951641f Mon Sep 17 00:00:00 2001 From: egutierrez Date: Fri, 8 May 2026 15:55:35 +0200 Subject: [PATCH 2/2] chore: auto-commit (1 archivos) - shaders_lab.exe Co-Authored-By: Claude Opus 4.7 (1M context) --- shaders_lab.exe | Bin 0 -> 23016726 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100755 shaders_lab.exe diff --git a/shaders_lab.exe b/shaders_lab.exe new file mode 100755 index 0000000000000000000000000000000000000000..2efd1c54f18dce00772ef1b89bd1c142c8087dc4 GIT binary patch literal 23016726 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 G0a@BROm4x<7q$}8 zZ0TBY5XvGtUe+sG{9_Pbc0F5%*0|gy{mj08E7{X$b(G2G3-`l$F9dz?9<2~FP$`tH zWWUjh{XmoV?Z8?0kvN)AES3-3wBvEA2FUX?(je^fcUVg%!Hitda@BjHrH8aMLzz4< zO}3bsFKn#kwl&T%LTnf#rmB1`3TcdRZ8TQnY!*hZqglRP;g5%P3p$$YYi75gL&{D^ zo{lT&wvaWJ5bbgE92K+(vkWiiC5_!p*-)T)3>PozJZYRl2<$;+m2jM}LJ z{ZU;F`7d|#kVj@HQ|b1hkKI_44{ak0Sf$Z(s1#BF-~iH_P>V7c(OH-^a{i11J1Y;C zCKDn?Sv@Q{ENc}-y|6_2K;;#x(YX+%dzNKqJ2F`Iwhk7D)eUd`MwaGt;3RBA(i)UH z44s#!7H2+MoP{%zBZ1^JUe`>%3KNZ)_zVuwdP5A<;d96;`1xFG1MxM+nX^9ERA-|Q zaoN=<3S*krMc5f!pHL&th-N(mcWSrO_M5~<`+;}&41HQ~4XV$etox9~hDaPwWQ0jR z8+h=?roic)f^0BfK&3-?4VBoN(s4i1?3H*ErT_KAVw#oP_g$kVn|dfQKt-?e(+PZh zs;i_nm2{SpUF~=#9~-^q4))o7Sofo+Q>=Q7pk$84H7Czs7#@{3g<|n z{(O^Bj~D8wP?Lr72xm4^VjlFw-%T-rk`r?dCeQwTq&vO)DQ?8S-P_0QzPNG7xR7j=@y{Up3S_VaNrs$2^O=qD= ziGRIKrZ0+~-<}nwV#1M1&0Bzw;iHT`;UXB5gS_`>kk#7$24shh3nm*if&Q&FZ2iSl zVZ$>7CUHGX6PXJsFIx9 zK3y!@eey1BT-b&!P=ZqGYSO-@s@SO=YfnYe-8Bg1XWw#n)BI7&B}LKuf8uB_ByDB< z3ucHG@B-Olx`xTb{ZzE(KH3<_s<$hC`IWdh8!hY6lXqv{OBbg`o-usxdrN zilR@XFe)k%RCkvERZvht;vkmzI3z}Q^u*8oXFyaqRLX%N@zMaA?;_3Drl!gpM3;D_ z^+ssn7tf#~m^74yFa}$M_M)06spJ>WU{hy_q)-W$yoW;al$wkxadR(-e|!o$s>k0b zpHv^lSVnm{$SaRuPxo{H%t(rrX5zzC5+-gwHIv*xVV^LIEXk&;78!+@)43$Blum5T zd}0^(4kA}B4&<*JC=L?aKV{W z&ndf~_>6gL*31a zCjd@Q$lr|{08{~0cydvJ5gjefeRK}1VK=u68K^gun(JgY=cDF+rrKMmxu2$4%~6Tf z+$w7B7HN(Os6q#7?ynI|a1G@}6ys8sFB1PWQfV9f=$N$infPTRUwZ{=e>{)l^5p_- zlx2sG0&L$-0DJ5#w(pey`ZBfHt_zQyrl3Ov{IR!vq{Ko>&qlhu5yDC?IFY%MD!i8t zB|bia1E1 zO05A@>u^&wdvGjF98Zm3bqS-z{%>M?LKuC^XOw*jBLIR2V-eHQ{6e@(H!xI^f4o`q zS%bETD6j#Oq zK@y+jF)w;*y9bUxv?0faLLO0xLy2wwL<~oB5KUtPi2jc0d}gV73c#$@C;T3TR&MMj zGDUb1%>A!nO^ot?NXRyngPgvw0FJ`z*YuhCOig>w4^LQy7ow0Bx3s#X>x6pi(Z^el zSl$M)z70l_a7ZG@du%UsrnFky(si#OZOHm*LpI1evH_eEBw_p?#3pHq3Nph!B3mH~ zGFm`YIkV`fv$`j$6-DB97&p4RK5Q5Xq==^PQr1S;QFD()vA$x(5{D4KXnR|>T;K`n z?PBcDjBb@_p(_rQz$-`;2ftNO>KW{l=1i-=2HlHP6hRSP1ea}x!0&|luB|w?j`T0- zXM&DoRG@xo|8SAgu7|;ReRSd4>|Y87t@l64Uf?Ae>k?T7mUk7)(;BYyL&JTf)p^{F z!v7HX^_dG-I)f^Sn)lBTHAlvtk)R8x&(LAOizM28pKMRv$bOSXZLOHUgn}n6=Q|T! z@2kc7WW#m7g3DoNBe-G^#p5_D{_p0`(un#UhgtDQgeYU;OCdgCVy_Upnb;-7HYV2N z7maSd9F0EyrPU~|EzUg5S9sJJadhFG@LDs_mK6A5Gi~@}ARU#Ro>4`Rf`ZnysNbWM zEPEPCN^(Fwwli1#3RRPzfmBfYXDG~gmRyyrVaT;A=>h73+8PNTcR*6!S zilS7pUJey~XBTxvQCBINMMdY*?v~W@qsT8sCKU~)A~P^RvKCU-V$OF ztfjoGXblC;n?7DZK*?A4q3r_r%`(sjLBpPO(w(s$^bw>BVS7|1o}%a~I8!)~1u~t; z+er-e|1X6$QQX6Zw9y^u14u{Tx*t(}X&!#gMejrcS>?URy``64tZREWcU9L-mUl0n zszR1D^7mtCMEpL7N)WCP`q}d-{-EbZ(>5dGPXw_CsG5JYkW7vEQ4}>{O1OH4rsq)S zVI(Nli1eiordi7+=`?(Z{94GQ@}>k@v48a;Bny;^`(+5G=ty%cj(p-)I6UYBCyx5m zCpL~mBBkN3Tw>w4Lr6D{n{6E9oj7C@!S9ORFv23$7zgEsWR?Y#!(>Jh(SJNxAT-ir zA3|D!yx*D;j*Jw&GJn_Djb3s6%G$lae|1 z7@2p*$h^!U^HoaQx>q^Bv0wdD36V>zn!@n$kvU&-h`fA0i}Yd64GG_%5gQDrwot%oetTW3mU;z_XQipomY^8XWRDK~aGqfxgERB4?>E!Y=A{nVvPFGJA zWGa&F7X|yjV~H~nGf%=2CGBiWG)EP6alFUzYgc25yH>Cz4sVXJ#7>7LT5}^+T7rtI zvc&P6fc@%@-YJ!LWs_tB`JF<4Cd~%f0tMK<05EOGg7vWCOTC3)$5~ z3bH8zMb8GygmfeOpwvS4-NgR@*+iWhyFP!{Ms*Q{J5gQ8jajHJAW~2b5f~cPJwm!sEhWj)lN+;Q?1dY#VrQ){ z{=ix#(myHM|Ahk7+b;JG7yd|B==l6YZN;Z@MPj^{Tb0`$NR^pH=j=>HV8zX~)P%KE zaKy-$TicO=)R1#5+{Aec2yW`;Tda9dP*P*-o(C$y5wi?|Y!x?fcT(1^_?a;(r=mty zPyEanYDd+9993H^gB;Uax?W<*#?IGtR64iyIMkoqTlp**oy_)V77 zhVUK}SE{h=Ty5E3mO3mu;)m)j8)c`nE&B`6C$#LqR<>o|MGeccr68)e><~irU$E@! z)I+AX_qzYUvSWbIw(J7JdyHlO?`QGB$__k>%i`^rVK5y$vQp#~&_W_*g(9~o#x5AD znX=ZCQL&G`HfG9d!Qy4|p33Perz|S^9~gk*+DS~_Pd2k1={*L?%b1^zU%MJhy!;$n z;`7xpmYB?f#S;5DU8Ni+Y+5nMJ;0n9KUuomU!-2w#3BOVl45Y z!xCM&kt!`gMgId!+;@CkbbNe>FGERpnGBMBV&(B`S7V8VOV|>pzZzo+ngDeWevH#q zT7ruH2bS0ev6fFb!voDfzcL)$x0N7FrxXpAKg0UIwkk&7r&*{NHOlEK^`#=GzOG#( zp0mT};&k4grR_7E>KBw5c-RF~ADyavsOLVJ3hSM{gr2F{9t?jRoq7;=_CxaVLgrYi zPBv=vG}P29hX=ono!@-c%3&20BB?OqvAS$I=f9|nzqzf;!Ou@Ymn)xg=(6#f>UA+} zUHGPb$Hs(X)zjzS_VVKJVi65b!frK02P2Jeh8JUId!4nBflXvP(_8Nqad&Htb&mEk_}mOmAG^lt2Hf^a z;BHXvl|c0xe_LUjIE+g+nm+AOzH1x?z&+CbkK9xn+Id#y&a7ofM};_O`@xe#x%7~ zWA5#kNoNuyFdj3LQsn)ZcJ}`Z7EGg_Fui@3#aOV*NkoKN0BBpV6Tx+Ps?&mmxwVD) z*a&ypamqezdQ$Vdqd6>8Xs08YJXzK%G_Udb*~Txa|MVr&4h!7HmpIgD`s}l6 zMw8E4u3V0-b`CRD>`Qn~P8;X6RsG8A91jgZUU+$+nB^|c+SY|%-nJO+P-}iZI$sCl zIww{u7uQ^rTF3U_B~4DMmz>C|*Q;-RORo>UIAy&y)0V#0tJ9|^?5+}Auc}tBp~?S6 zz3x$0(lNZhK6Skg(G?Y~*9`|ws8_w?>GjZ=C#9D)s&FBS2JxrtKSj|j1)ol9EFN4Z zafHe+u~MB53OC>w(WgI&4V6A?+)M&Pb>rq+x@N->?^xe^>o{ev9H(sFamprHWtM(s z;+JRR>Z$p?ePvv$ZYF+9MfX%$bd-v&e0R|?x|xX$TA*mf?h`nDl>61@%(a-?}omY@;{RNJj&m+8@DK%iBl+lo8&K}{BwUxq5P?o z|AOR~QvO-{nSTc5KO*`2D1V;Fe}M8QN&Z2~zhCl0ls{DRqm-Ysg>I5hoJILpN`4;o z{Z+yrq5Mvgzku>Dl>CP&|4hj*By*o7`Ex11vJj7ps|Uc@YA-(tW5_mrqam_Q-<2+M zD_7h|c9y;P(WtNEntm3Zj+zxvuUUeLKNA1(5G!J?q9qjMM73Ohn=39k%t}u7h%-0BWUpMnb!aP}+<1}*zVQ%eat|QDh3G?1h zlr`!Iv*Bjm&o@~l`i1!g&HQCEHr*$5uuZp8m|F_-eVTcTFt2qpXAARb!rWgoFA(Or zZszNR`MamN2Ys4(f-sMEGq(}uw}tta{Yt^Bh51T1^S|l78#D1GVcw;g+X?eIZsxaz zdA2Y=p_yw5^IvDVticb;nTex>d9-H!oVX(K``pa;h~%I!U#^)q3iE4j=72D_73PMT zIbWC`b~7gna~)y+`eS8{@xnaH&0Nm2S>m@(v7Ogz=BtFcmz#O3Fc%ARL^HP$<`!<| zxx&0km~YX{al-sZQ*9r&zwhH!_5Ixn>?C%p=^){D>Z&rV{39nmH)UX>R5mk$j#or)%bOg}Iqx zRu9MD2n>ydvyJAA6V5-Hh}{$?y{5qs&Z8eG)jlT{_?w$Ep6>^8tUvYrL3C?m38P!l zs*sL!qZ{tVOIx4Bx!!5yNH`CD{25-)WLpK3Rl#&F2xY2;^-#Qx0jr^cAfCNLmOSU8 zmPWKeFyqGpy5@hCD&L3>V)@1Q$P)zgOaPkenl~R}0)=V(5+!*A2iXn&^^_6bkw+!O zwH-Hk;?Y4fBfGlhlB#KLkk#Bl67Y@m)Ecimm+uJ8 zCOIvau$2lZ?L|7guY53F;8A!Rl7PmN!4l&rLp=zpawLbA53o<6va z?^dMV(>DoPi&vb-@J#~!!u`9#8`^Js5l&&i{*|TSz)|ER7ruyBK+!o-3T~x}1di&C zD#3$5m3zSP;Z~}Xgd)6NX-{#W0_~7zy$o6XA_*{h1l$vEPm_^_`v87kVr=LP)uMM}-3lw`Ogm~!>;v9X z*lHCG0n?klNJdkWDRlNrcY+3!m;>+9xtLeYa(8yw=Zo=OdXv(D1wk`3o_rGe7wiSn5bcuCU(htUz(gH0U-nK0w(|7}!-5cr%G)=j z66CG);;TRf-KReBCbZOTi?j1>q^h0m(OCc+;dXK=YEAb_(oBbI3F3P(t|QW-%Hbd% ziGO4>yCV7FuV^S0WIuRj#?eUNS8^h_L;P7f6CP$|Uauh`haEJZC20pmwOpN1!5$kL z2@5DE{Fo)eY4a%)Qps;0u>6o&$#qwPzc@6^u2^7Iq)b)Oa$s$k2v-R%fIXuf3)zit zU@+vyKD@Ug$#Ug)(X-^r`IbDlH#0Z&WS3sz(KqtlG#S2d&jje0w@GyjTcNxm$;Yq= zVB(&d+M=&{OkD9`y^`aM*EqI9c2WDOHsDD=Jsy0NipKdiL z>n0WZX}61vpA>x?@dGCP*9IOMRI05d!=ss9K$opI_)R>^!~UFIO-{xcD0akfSA&mWMEnWe0?8A}*O0E)E#ULy;yuc& z03HWHq~a3zYC3w1`xCdLHKAlopL^fcom=e3`H52eeGcC7-GK`+fhD;0+b)R38&0U- zuj`J{Pu_xLYv|KmLGKUEIu}-NVK?rwI=YB(3MzjsaJQ;LuO4_!FWHtlROv;@1YHx| zOi3~`-3uUp)_w-x#t@%a4TAW+q7P{w%-LRx$B)EIE|6})Ow7^o+qJe4d00I^XsVb7F_!-A*P&6Qt6%K|l^Kb!~2)&GlbNeUbDvvL^WPcOn1lHp* z8~W)`h=l{CH%l5b@=;?(o#MbziVieA6H%d~Mx=iQW=_1Nln`GD4T=M+!AC)VHCgd_ zjCXX&wzs%Th({PpupV9yzHIv$ z$F;>i1jU&<3*ckc^aHi!$rT!~{7mP>zS0g2Ii6Nz$lb*kwQ1}pi;vponDeJS#1quW z#E@36!;=_HgHxXm>kA^(vUM#8S6}J+Z(l5g^fhaoIFKvrSL}rGVqTEp{K+^Jhx*}{ zk?MsWnM306f;l`p!;tYfJ~ady=YD|#9;n2$?CYn{KhwAOi{PCmSc)?wGZ+^(sWGfn ziw@T47gvbqY_cPZIZHi)H|~92GZvDNuU^6F@4oVjDLrZX5+nM+&Lu|qZaIHt{AmvE zHQ-ij#(xC()Raslr=~Lx529vma~)v~^DF2OF^P&!oWf5AjJI|eGM*5>Yc`iwr6J}8 zk}Y_4oFLdae|DuDxL*J9FhZ(c_uw>#@8~Fs-h>x51&agJ3>`@l9qB+vnVyRSNs3NZ zN1r;T@DZ<7Btu-yZ_mQxM`~gHFy7mQo;#xHt8b@=#XY$zQAy{uzil3tkdy%d&2Lp` zLwPFa{%O4Xu!>46QEF|9{G6#-S1HzXW>xRIgI|j2?wd@HJ`@E_C31T-`W|(o;=}tU zgwzerW>U^=r$e8zOL20e!S05!a26rj7Lw)o0o9`DYDteLm|f8)WiuHRy;M!Z>kPqq zKSMXx+|H90M?;Q2?O>DM>}X_wqmWyACr^u1%8r?2J?F8fC!L#wju4KSJITfL>4}OQ z5x*~|BHr^5c_O_>sc{IbP$)j(alDDURt*dU(|hzW_*qORHNPqU~*1AnkAU$q1S0V6j`RW4Um z(sdP;XyC6x2wtitu$>bA!bT$D!t*KuT_qa$PfBK99wrRBay!!fEIv(}5iBF*5&MK0 zbP2XUJzk%Jyi)aSecCRLcBK?Oa8tuMbLhooctT%2RDat$T+GkM|2Cbj_L5K@#UDkO zwE{yQ|MI;5gg(5t*-+EZ4#M1w7Y&zRu%3L%_56Juh}MIEE8#{d|d%6|`Ut2cme{K-BQ$K5h4rKZRBzdD^@kh?=jdRH7DW>LQ{R zK_}vl(m+qbjlAK&A*?`21uREv&bSim!b<~(rX|u=8ZCEvh4RXi*HfS7Ogm(F1_Tb} zMB{V`iN+!|c>5llv?M@&ue^jDtY^z#QwlsWPZYRB6u_&|r|pYTpew=3)*!nRm8&T~ zQL{AFi>NtJfVlUO0t0YcVK}f?MSU!xS%Hd61A9q<3I#LUQeZDBu-8_Ao28dBumbfU zpB2FCYqbIg9u)=drPEjPo}6hVP~Z#I0~~{DOdJ6~a4hdy#a(+Ky(MAdnJW7^mHp#& z{PKi4JO`A=%Y+US&PpFbI$|j_1e1MT8hSgizAdjsVS!2j%pWWt7cA!O9qKG3C+nRo zGoLpC2?A_#DHcrOz)rPEi?uOUA6Wlh8rV4v`)R+jO>$X|Eg!o~VghQ3P4H`6IbIgW zP8gjlCYV60Pn^!c1nZ5gX27-HT9SA_o zZ&;Ond@b#lW+ct(Ik?Ir7UUEJxPSx{=0*W8G*bc8$Y*2=iv!_mS}DFOv9D z;fhw-WSy|N3L!Qa&Zn(Vymz8Cs^~Yl;POPGmqZv_m*5Ol-sI9{E2G&L0c`X$_@5#iQ?^g19C#Y;n|bJ~+M&4vy# zuA=Dvtt2j=Nns_ObHA@*H8|jRIxXqXYOjA!ZIzmP_l*3h%W`!Ps z>fA{77D^gfEeYjD&6uPF$!i<#ft+%ztU~l&1rmJCl*jd}8uKMjy`*E)BjRw`*lo@I zB+KKd)1T^)TDrw^xJBNcfXJtA(5m^Ug~|zNvNNhbteX66vfU)-nE`B=m%z7nt7L6ia^>3w309x?<_2SlYW-$nxdqE0#8jrH+dQcWfBt$_BJ&?@;)B zye~=hq$jt8%HS)e_bXHEx9w`SUyDen0A=*P{yOU!lbjfZL(d_*e3(>PqbkjoO3;!@ z$rj~3h2sguG1A4sc7VH3!_yT5>x_7#w2ptGdQcDFRS28&7b?*M0y#} z&Ob3MD%a69ES{MgUxH;$cvsBueRv|RgMKL=Y8UBIHbE6#Bxj(0YG~+P3-vn6ve`=? zrszD`J6X6B;KVGCAgR|~2T8zmM@AuKjB#WXP{!t(*7=I1ZjdC}>TW2|EUGJ$pGUA4 zHP7$DCn-GH%-l&+kn4eOGqK+vuuGkB3-z|J`c@OI8R?9f=C*ME)Nn@EoN1}JAMr(4 zb>_6LazElCGO-!>gK)OWq9By<2k1PBSU0G(;Z2)3X#7cBe@|epKZ%PLr^5LU#hEIc zM~QQz)+1&O~Y zA(tSb7+5J{_W3tVFnXivjxn#+irn*gDplKZ%Unaul8WViAW0AJIi4 zna1ptfqz-tHSa-ZA)Z{C19k-}vF4yB2{1R&3z$%6+BbaWQmE;_zGiwoWZ)m69y}Ya z;BTm0q3J2#&82qt={DZziZdJZoLXaV3~~^zjppLY@w!M6@>~OaBjv^HX_ZD+Q*f48 ztBc4^EM%ZX*~PT&K&nJCcwKs%s8dqbObQ715ilGfOs@;hRhkY6y$rbVFIx+7jN6mD zfNZDowv;jUsA`DMYBo%_C+CTSQ9>`h@(1bUfzN!1>PHlvCvjOiQFNZf)Ig#ZIVGOS z(6NC^0x}i^!}w6wH3@X(K*4wn*E-75p%?iC^)1$`yeKVTtg9nCpUx^BZ1Ab-O`@4M}rNFvM~w?*0qCq|J4V4YX22y$g1(lT~%Uy zibgP6A%LJr#vuuV-aZJ}a5LR&XLr-1~q91HCJbQjie48V$yjGr!o>JjIX6p%H)Q!WYqn z$z(i|cIi2Mih_4!;ab%D@Gag}nRSQDH9QZ|ey3|w^Upc-i0y5ht34j}kYau8?ab5(Y?Yv`#WwKzY#fmdsVBB;bP%zpm5Gjci`;hz}YnxXWLkuXV^H;I#ry@ zKZ~_zcZIVQhI81nox)j$vrEgKi`Lur%tP8`&l!~AwC7mj7JE);e~R|3aSYD+VX zci`;ez}Y?)XOmc*2{z8eQ^mRHlURFpR5-W8a1NYbtI_aDKL^f-*Vy)a0BM&!@1_i= zJu``0>^Z#cvG%Oq%N`%@^s*`1%Su;p>+EIEfyL!z^QewAR?)_4%=WVCTWjZP?Lyt! zZI0Hu#J1MjZf$l|tsU1_lK02a>brMz;F(nm(#iiaOya5ZhY0o`7+WjpI%HEPJ7NFZgI1@txnONzGHB{ znj?UEyK#Q2a1QO`uxCRD&f2j!|MkxpoQII1aF(5WiZ~~K6l>4A3g=TWoWq`N)pq7O zoWff%_fBeA_4_RZOT9V#AX&bDEY9vW&a_j-S^8lt&f6Xkd;SK)IdG0sI6Y3B+gI5* z*COr0xs)=T{XU<#rQe@8=M?RkatzLmGX>|>Zkz+uMS?r7bl9`0184nMoPS~Bb>Tcr zGqK?OspTo+%>E$Oo(&bw=V3U9JuB(z6?$`9ZwJnMWDQVA1tSQSv)?mfarUxt_NfAA z_0jtNq0YJCA9UrDRv@dN=iZe4Ik33qhDlUMjB>zd8AaxXv>Vc{r;pszm#o%%aj9*2 zGjO!Czho6QvymMP=g*=;gsJG72kEKl5ML97zGtkZYb`>W-sjbY$4s_}Jv_eR2i^U*uHWvT=LcR|q zGz>}*{e_}OD*6LOk0vEeX6qB)nYM+j+b_J7koOC(tO|KFn~;02;ch`~oZORytt1Eq zhX)h9d?xYm1m)snQO?^os^Ogc993R`GWshHEkX+C&PWv?MFMdmT!^#C&~u;(etQLX z8E9R$0%obUf-0$jl4?duZCny0paX7Z-(k`;3)ymo5YZbVq7N+Lky1zTp3A)X zOqwC$wMR-b)#L!F!iC{L0q*`=M!oloXI%dRPXm+vze>kn`y%&%NaY^jq|@;)T&^5n z1KNI*4Ia9@29jK((E{=G1mGsRj-u<49%hKLv2nEu*!U?eV9QwLX`n` zyf@?KIdb)&q6a9tAL!yxI)3R7FrGq^I&t=mJi?f?U<74^J**Z=YYPYly=Gj-6}|XO zU}US5hLH=JV3gp#J%TYShMof&jkC7lKq1UnqPloUp{K#(D!SMjW-agMP8LIzXKN|W zVfOM0HO#bfpAOVBQ!8g&V9s$fG^V1cos1AR=1t zX>Rjd#k-Pu^O-b5@`gKoS@9!v_Ve*mT!jni>I6PUqPk>wsiy(Q?y9F7KV3&P7mHLL zb)0mLx-D2XaNN^?`Z>TummVO=U7o;&OLCVea1*^)(T7P7le01E4gyfTZtLdA=zaxy(WgTLZXGo-}beJZ8h zy%lJ}`xEYyBm60f{#el+Ko^JT4UY5&P2`o%MbX9rgGp1vP^0c@1;fuU2BETyy1_^Z zj7*iHrbnozh9QsWI~6@r(YGjiG-v=IlfaZmV9E*|T#r;8T&F|x_p{ocX^0XTd17r^8Bz+3)uVURz;}iYWSy8a&1~o*BagPC zqK`hw!zfYlUdX)pOyXt|(%V`YzNnfUDpl&MDuz^H(yF3XhEr6P4pPOVs_edwy_rd? zN~Q$w{;JBq7cwx05DpmV_yo+p@Re~HxSm<%%q7do%q86If}Ojalg{z|DQ0XQ-x|

4klZc86FZZTC_Mx8Y*>V<96b)U=c4X3I20JR$eNfKE{`mw|4x$GA;Xx852D2(s zG%yL{FIbck=7Go~dWWJ1DSDft2ZJsSW#X6qpv_?<$;tk>hM_QNK~a(6!H_^{!%$|S z1`Xlj&>W;BGUTb0HsyTK1f#2Jc0mli2y}6%0KfDH7~dmFFeV5LCKZhMSzr<0s;Pi1 zUO+Y}K^=@1q~1nKfRw5fHU1UWcVv^j$RqkKMbk^J*+z;!02&aef6%W!^lJ)(r1OZ@wtrbj?G;Zmng4^patEzvuH+_k z&>FVb6|`RGh-s}4YA>^+6l{Ct3pQzb3)SY&Tr9Ex+7Yy#S0$5NC4L00d8%XxFU-cP zP$j3c?ApbFRM>z9dsjNbgkw^xnJ{IrPk0IjEDrdI8^<6WQLDed>bXG;s3BJXb8#SD z)f%K~Wu#XfSgh{KxSP5w|HrB<`($sIW$P|-S@y1bsitMw70=tIgk`^9YLljSqS~&y zL>5I3%igR?n!8HKvRA5-nkcDeIyfr<0MS_b)$BY>n&uJcBGbX&*wu;Vo3cwYq12Rf!2%=nsNvS z#-s7cs`26Ds~$+IKg~1_kf=_75HVKiIt(qK!^~r0G2} zLn8U2MX`hab5-(ytHcl2d{>o>L`gNS`6QtRvNcz+Ych%Vj38HBa{)v|qmOc%l#5RV z)9p^MENx~e%bJu`&9E0A?Y)rg$`Zs!IqCG#9awd+k7`KQ0+ODU7Kw5B5DpcfIUrbu zgF=u`SyhJ+<*0`)BO4Sz4*kK*Kd?4M(M^51`oqUDd$yxU1@_GC=j@7{dO<)r6v|j;$sjI{fC+)3DcJLBqJZ2_YqR?`hQjl}jX*i&hdlx3GvRyDCqob;K;C6JN?6-X)Rbkei2e33w^Agv5aAZ>s(9|uy( zMuAdGvUxdf>Ioc;-JSoWmP@qEk`XFCDD{b z$N_3d5O18O5$mo+)$x@V5V|1Ub zc8aa`O3JQgpo!66oySH`wX1ivtDBTvwRr1*Rg3owe$ zMqPWmqZZOsmZ!=R6un;2^+3b!R0UIErl?0}6H2|MlvQ;|P|m&fVj6Bq5I}#Bbr!v6 z2F5ni*t$$&*i#GEBvhOw9kKz>PvRPcs*Gz8NXaDRS1AJj5!P0uSTE!eU8(4xqIG#c z(AY7-uY%G{L8&27n6#j%eUI@I1xiPTG8vVjF~m$oN}yz`l%5ZBK@*IA3dSr&`xQM0 zba5yTzY0ck1>=4{TZBmk!?Eu%ZGr$<`ViTK-hU~R#%81hNTEt;AUi=5kabwpkbO#G z=(j-^hf49QfSj#>{CqhBVNwI3^^dr|PXTGhKq^q3hIMi1C{hB%fE-F`Ahkdf5L%!S zkOW0{RCGORS2Yw4jTbMY(?;cGD=Dk$2yDf`>9_JQVn3R>gE~n|bS@GS=BY)3R`n8A zHKe;BMM&)!O@!1gTUYGTLcxXF_BEVAU8P0Jgm=FiamCqGj?mWRcK2hhIQwe8O`6_1 z%DzV*j*YY5-y<&YrK`k`IQxkzDM5)$Zq%i&IJ<&S1DW?S>f8{Mrs+ej#MydxBhCgx z+~!KfTh@aefk~|3DA$U!(^QjQsq(U_vR0}vX;o2ic7Vp8%dNbks^mx&Cao$e&Q2XK zD!(FC7y?eo#YJY>E@DzvHM6Y5*~B^QAfg1vSx!3R?Cd!z&T3>$7+FZ`R#!-Eoj<$V zmV{vsgCsA{#p;f{d==Cqda|NdD>_Bd>lHm%(VNK}cxMV7aBeIrF0fV1r>v@10xH(_ zO{Ly1gaG=3thefsEIc2^Nb{M*6>w_7inV8t6ASmxp~_KJxj1wfDH+a3R7wx$UqO>% zcVR_EidHCksG^U8#u5~5D;RGp7z;0DcVg0lq2lc2s-t&3Krm8J1KJ|h0V#ozs#4VS zA*?H?>5Gs@bTid-S4F?A%DaQc1#A2&D7%p)i+BVIlM0F>*7g`HHtEJ-Mxu_y+R;b} znDHv5ZIT6=fIO}mo~-Dr6g?GmaVQ(V3dlQ15|9V~!8T!11F>W6tT6&))l9O=GSrb+ zy8i3@g?$ z<&3q9OciUjs&94U@uIt6vyki!FvLnBwaY%mWd6GXmsj}KUYP$v)`2ro^Y#Z_v36%B zp|fIb{9HS@g1L8|O`6`l%D#Ew*jT$!mE7wp@gvqQRV9N_QcbKKoG6|9VprCfNz*Ka zE)r`$x(l)PzzlA4h~k~by!lL;A>y@T?Qh^GXL(Vo+@h-Vl`2eHRaC5fQ&qWFsti?C z&Xg)lT2)l6O;S~^kSYuTJ4@ms>uncVN?Fw``Xtsq!}riF79}{=a?%-V&&KM3*R&eh z%1hW*TDPZ!)Yf@KNNw0`kmThZusS0z&xCqJ`xHG)(Tx>7Qqc*D9!=)JySnLsEgn&^ z#8z=7WmUc6P_g#2_T2jrpa%5)^`+0(bm0NbB+eSB1uNG6I7<5Qi)mDOfvSw##*mWX zT%b~PW0@hLiyDsT4KdNHx|9c|>~@oucSpu*4u6bpVaKAMmTdOh=N2&=~@TNe#x1x5*== zgZvC;5b8+09gLKK$y6zAm0_R>$hE5BkumgW(C{?&gK(%+JZ+!tX(nY=y>PMO?UL&` z-m(lU-ZJHkw;g7wc&k;t`63=sx*Pflshy*TklJlKGMPU^;3m1&wyip{4x9-S{*vvA zw*zl>#oPRd9bm!y;cS~Uz4t5o`eZrB5@iqJR#j5lRYLK$zbZM*3zYHHA^3BxZR>fY zbGu#08Z(KzB%q7L+f^eFZ%5z9@itNMCNgh6lem9@^tRTvIp8N}=_Xa`t1A01U`J-s zs-oiU*gK?3ZK>i>RbG%POj=b`ynSo9RC#|217ir-AQcyh+Afk$S=B83B;IzO$qph) z$n6rOk2BuBj1>gOTaBy-BMWKWItr<+(?UpX*d&nJa*6+KAN z&BzRxi|G&!9TC+kY}FQ1R@JKw6=&~lO<};fP~1De49iPau~ABa4nA5rumML(qI!Ju*91b*ocP`*c!++=$y zLt)Z_qT=iws*``1L{Mg-hJ?2{NJ&J=Qz>e?o@#17@`xU$=mm=Y6>ATIx(IY}r~tnT z$`42qluHB(lM0F>)(*d2>~brEDM1|xZ*LPmFx#QWgb_`m_vva4q;#n?7TWkIJ`h#`=gWTE<()8|922GbGlOvw3QzczoC4R)S zWvZkZN~&2uPE7(pG&ZUutH>lSQ$d$L;X;Twcq`)BqKO5CRAV9^l!40IZr*&Ys z#Q3E@K)D4;^4L2B3X=+oBcA2oA|5yQ9|{zO-w5y)acRtcB~?krkROciD^3qBc_#%=a{x#@s48Nd?siu=FIS+zEY%zFN^GivD@Hl)p{-n#_hslrB09 zvUONWSyfNGDiSqoMtxNZIcm%;YA8MQOIsfPOk$6K8nPnM`8SKzTi{|cE={Y-82(79 z;SVW#_y-i&TF4`1hATQj(LEGh4>X29eif9(NK)sH6evtuP*fyZaFalpKb8kSYEVSQ zMIxls;8!Uf-Fty17+bMC^HcO_+2J%d^iXiShJ5X-P4 z5L34aNIyEADwF%@Fb05$JUAlXov(SAd#@>-RH8^nS{?! zt`&h^x?W7U_)Z@7sxpQ>Qfk<%6oKD_9q4Sbcd20mzl(OtoqrRY|Qo&y@IL;NZjpCL&wh6)TO z6%0oNx-~;=5*|f1S&up}JyM&I5+H>trGe}OO+cQ+#7*`oiJ{*HO~aKAxEKX-IImlP zgIWVErYviU3{f_2`{9vl&R&4V>Fr?OUBMxUg;*hoDQ5`Eny5mM*7ezzJU(>~%omcK z0hR~}`8fmBEv`~6zS)d$SW%|WSXT^M&LPn%EuU-$9SH8=AWiShs&DVTn@6f62BoQz z!LAZNVo)bl(i0`s#Go{Mos9bP5g+Twq-h?6G7^KfT!$F6{SI!kr{cYxdGndXn^j41 zYZdgK>iI{c$`z_gs#Iaps-j|0J2XKM21^x|7Y-Fj7caBBcqwIBD+qTN_r*is+oK!h z9%n(cBNK+_q%#Ixf^`DNAdPHS3szj~woXWGmSrHxEqz1Ou!TNEk5+V0(OnhYkMuP| zy;$wgD$!xRt;0&nvL;Hm4zshB(==*C-IWd*^apWg@mm3kqTij(W1mTr8SF6B>RPel z86&9jWK|iHK2mDzs}$kC2rEw-X1T~Cx+KD`(n=86R(NAE7M^N7ejpZSJ6_n-*%HHN|6($uF zM=1I*UF`DrFalG7>gWNajv^&s49KCB4n?&<6Obg;a6$}SkJ?oYg+qnX$0c?jo0MhE zl`(y+L($O7ITTSR2dz-Vlrt2SjaQ*a>zd5EhIB8SCZzU{Kbo;GpUnVcL(#lshRuNk zqiyRbS14-H%e5TJ%yNaIXC~OB>HYf}F=@H1GaR9)T$Q}%D)A!}?NcS|P$Hp7&Wy8g z;Ee}#Ep-h35ZL#rB;8_4+19M>wx*2wop%Cyap<63J!)59Oxe}V3)$2f;>HpW;u|g% z*%B&j2}>!vny_QdEO|ZHd@ZW9{FpOcmhUyvW%;E&U6%jm9+)~3k{5x5Qb=G#4(POY zY2XcqDrk1IbD#Bd?h%>u*FCn&GsBvdg>pjHQYeKGfzyRsKZYNWU|JV%~>K5~X5&(eP! z>5sb*`3;5EGOre8H{fg*K@!mBSz$Txj9gd%4s^*cVBbeG6D$!*`&tt?y%0oYQ<$=eW&%A4ix%!>za-{eb4oe zjcv60#_LazSC+$b9<_ghTT{o3j4_11MRmSIw7yR@+mWYlRvqog(|4>6a^z`i{feKyLfDYwU%Mc)`{IOOWPBM&#SO`va)+~>&CH=yoBp2I9BxQp!i zJ7UbD?`fjEoN1nc=X(jR;W;wyl9+!`ZF^j(GV}wJrzVqW+N1nd@<1$B{z6Yee zBTt)U7shAV`!t#Jw0^u>46eF0#w_|)gFOvwv*`N`wmR|>>0%{<^U< z@~qW6UoUoslJkbg*hF6`zSbf4dnNZWN1ncB+}@FA>5pMq_C783SpVZ)lDsN2Mt^;2 za!-=2zrH@X)sd$!QZ9Go=_{3wQJ&KO1Xq*J8y2I#zN&PsL$1EGbeSVhUtenP$g}jv z_$zxKOLEcwcvn2G8XBX&zVflhW9zRke{6N+>1!a%DNpHof_>}DZ;#Pc?_ZB_$km(J z*E;g_PWEMvJgw_~463qkae5@W9&c}T=q)k2>OIzP>f5^Njn+MmJiXhxmGYFXC)gmn z?zR|R^+wr!4!L@_Y=k3EZ<$@|$kV$1fWcDsr!_epZx3g}kQiO{Ud|thwyt_Z=Nm_! z-qqPdc}mw4oPpnQYmBb?O#ESoTzxuzpCeD7laFxZX5AP_#*58c_-~%0AVlTlPqxHwXQu(`aDEaEq)i_lQ;02f4qgSrvuf*kJeGqCWYjm${qzat=mE-h zdHVPZSs{z^;HJEBMNm%)(f4fYw-FlMYk1tpZeIyLE<_0 z3&u1NEipZB4r9U>6o7}`>kpnzg2_*`XDy$417aP9Q+_*t$hp}dwND^5h9JTax16UN zbpNwa-c7f$?bX>v*(5Sx1fODMdEkaoKfFOp;jc?va={|03Z2s}oqeP;K1e~I9RNf^ znM^3dU$Euq8`jARC4b=B{Z(hxmF#YQayLJ{&pkR-zB36EPV_+lH($|-%!iL63wdMe zBJ4B6u=}aCC+N*kVq0c@iF9_0?Pic@Gt-USXHKk>G9Wrk`X_>dWWNJ#wEPCJ8 zJ^rL+KI@XHDJ^r1L*_pT^GWIcwM(X^w9F&sLzquW_m^BUHKk=XcgVc;q-B2ZlBp>z^Nsgx-4jn*W+&Q`uzv!z4k@ROGLnoFjpw9MV5w(bp1TIRo8GBu@TPI1WGLYPlV_e*H+ z$+D-Ww9M8HnWIix<`kDqO=+3$y=&|4J!zSnTrxGKWlnR*EF#P&rTbqlnVQlv+c{*8 ziIEu$e~n0w=|E=6e)Lv0Y7$ezWxU5ppP5UhN0R9U#h7_-vSj*Y6>siJzRxoxW-Al!-Sdv46K)nOt9 z)tPi*CT!X21|i+3?k34%s|UBAqOH6RR1+ZFiRvD1%tCcHk%Eez0CS+Cr?5b}QGL?P zLUp9*6j9Bfy2`sNAl!-ScW%r=^&63bswF)|V%zFgA>F6~HmaLW6;;_;HY(bza-x!r zDhn0wQ3%5RrmvmB7$rkhia5{VInfi>(%HJ4IWyb)c$;Tfm*D zP6zFX40VYVR2OrJWvhuox^4A+6AM+1Q$;nG>MC!a3*k;wa$C1$t4C~98{Me>s0!5$ zHmcEEPtjI?Cflga!2PmLR9?EvmcN|pqZzI-kz%XMxx}*73?bdNDk90!gCA}=MO4Eb zsGfvyC#r?qm}RRch!j+Gd$J=k&<(!F#H;gcRQ^*%_3oLrt$YyfMAd>DvrwH)q@d~} zFtoRag>>60pCpT|mTx{qTXl1wS_?R(&h{je9R^-_1#KzMV`wPH{Ph4VeCoTN3wIugNdyx$H z>X&zjPP7$el;j!ZAOMsAuPY>6@SBA6BEWdz3e0i8oue?`WME7MSm0zfvsKrg7MHuBi zPA8Y2VHrl9s7R6C2X&qp{9l@8Gg`FHHICJVyGxm-CEtu@nPwAXWfxPX*-JV9iD`<< z*)$~=#F%CfHzB6k&FLylLq-1s(|B-4*h!kEHs38~nWjG7OD6NOGEG~``A zz%&WTCvBQF!(67RgPQIE<)fVc#56a5%ceQdA;vV%IZV@po2$|^RJ2}Qj`}~eeG8nG zQ}_Rw>L}GXCz?#JOM@_SXqvNx3G)(#)c^ZkYd^P{W`3i8=JT2JJbUf6)?RDvweOc_8&<<-gKZ1FX6l6j z)0`!;`n~3QLbk><`QM6Z&fmX*Y1aEpbEPD=Mbj{9!L~Qe(_q^|(~P|!V49~yR=;VM z5wbO=+4~zY&A0nCFwIGlgchh*s*EjG0n?l=viiN|NN^)B?4Ws@6)0Bg43r+L+*#Xnc z5Lx}ESwP6vm?r*(n5NAh4NTKdl2EUCR^GR08bU_;)k=1XSX9?LF(;V`tnC9MH8rNOOtThjTWFeVWmB1JnmUoyZ<;nd_q;Wx+4&POP4+GgOfx}}P}BS+ z?^`qtqy7QY91V3^Xqq$52o$KJXo$dk&6!(knvE;PG!JxbV46>TrYVx-wrCngZOJsq zrYQHuHQ3*PnOE5Y_@V465j{RPhu-x)rMBGn=?LU zLnw0BER0dWGY1p1QO<^*1#vK~ygido@5(*Soc7(21fdV>FhACB!U9acBOHy%E0|#i!u6Rq@_+m-(f< zOF46cX|(QiQKV;s#INw9aGE-5cWi)C;77?6l=K9Mz`d9{=iM-i%r4FRG`D?%V-Ien zOD-J=1%-NumW0yh7y3FH}uM1WsLZyugh;PS_WCWC3Ya4UF z#2svoxewa4X>;EuR^m#AZhN&DZjrg$ofa_n1;WTww4S+#66`Z~pe)ncoha!xu=Y*N zH7n~srgnC%-M$6Z4ns)K+Ia}I$l6mJYZr3QoMY|Ee>H9GpQXp{S^F=BTV(C2MFDHS zCyW|ddj-MGS^FXGaN7pf?!a8LvYs>*{@=3pC71kaMAwAzNL8wL6E_bZmnmRbvzM)Ig);>mzCE_AG2_NLF;?XsG-_B>e&@T^_IaEq+H z`lNuhCkmrR)=m=KoVDxT*f!Qaow;UZ74Nte*6sx%J!=m~s72QP<6Bdc>`NUS-=4Zt z)7IWojO1DSK!#gn?cx&y)@~(?8d>{yE|oTC?J=)!8*6_CYcE{kv-SZyHf`;Rw1)3!+XD=@$lBW#1gw3XFluD&%Ls1H+7U{+4O+y7!vG&Q!eb#iIF_t&Sbbn)}DNPz}lDqo!PXtb(5WE?H{=5u0_^fd~CqlOJuiRBWrWJU$fSJZRxhL_JPbb zE9>g*x5C;N2drI+P>Za6wqxxK>fp4J#T}cr_Gw}y&)Tx_vPITD<(PoAW%H&p59p2D z_xr!Bedep%#@eq?V=Jq??N(U(L+pX|d^^-qYqxW(eeV*VwYTfgw6&MWW?RqNZ!z2= zYuDxntUXH@HS+B#1UFZcq^q`#wFffS@LlEbR#-a*Aw6r4M5sl+J%5d$r)Yg3bay4Yv!Q^HMK`!+F>XKjn& z7Fj#DZ@}6Y2%|>6J(S?)eEVQZx($4L3UkfMnz{*>n_wgT-4m1lK^hZnEOY`y9Ut9+nP< zf{9@<6lYNi<@gB~!`^WgM`Cgeq*w2mA-Q2Cr$3jXJNK`qwfh7&Jv6CZS?_JHUB(u)dw;DUnb$w-)9%~fo7V09CyL8WOuifAt zjkP=WZ)$h`6F%)e_@!y>#^WOBCbjGE4`_GeevP%u{F~avANOhZ+s{pFw*=QbH>ur$ z2W|Vjo08jDyN?I|y;|kr$9&plH=|vsIql9P7n#v&JZ?X>nYewMiR;iz+)s0wPVfC@ z;$CbfZdx;OW1ES)u$j0Mnu*)LnYc(Zalbs;wC*1_6ZcXxaWk5Ui#HQ@X)w;Yf`ch{hM+n0((yP&$&hqc=Xr z4i)bR5%6l4Flzd76GL_31!SCztx27;5s~$rb>p7w8IUBIorXkfo!MphjZV1Z)8&?xr6oT`#h)< zvew{AW~P;u_=!`d_#V_0R-V9QU|0y(qF+-Qk8R9IpGYfOvF`|felARicm1H>sU&3% z{IFhpK~SoIQg;}QYj{P$%h)&TIyJlDb|1N^<^Q}EF*<8G!nse<*)K2mNF&*-O+Tur zo048Ve|o{Vwfrbvf%Rnf5?V896)~7B8^Q;^4~7#An9>FJgg~IhroCz3#ArDwQbvRV zOGAk4WS0XsluUFMu6kAXoxky`g?P8J9yLPT1R)mXON#K%e10u0YnF*S2XO{{ssWt@ zP`rXXL!)jqam!5HK_2?62DFO@`qF^fd7xi^P(%C*&oI1}8?4m?rSzl87RnhkdS%kY zP&%xaJ=YYZ)G&bm{O9J))rkWr68=*1)>qVySZ}~63Mse{G_L7(+DA;+jHVWPCAgn-ZWpV`ThAe$Yk9#6~f{n6|CaVR!0~tkU#Rw2nGjtow`6 zdh>s2O45aH#jazEss@=F&Zrrmb?g=-pwHx=KiM!j4^U_P1xa$#T zM7Y_2h7+VZ7g&?$x~8Qetr({1tLz^hoz8iCD^UU^ys7(TGs?iMj6mTD%)Ra;|E&ED z?>3U0kde>)jZ*GtfDQ&@_3bl5b!|%PGD_o;p&9ADc>TOuY4BS0n+hNq&}jzrI6(NO zA(BRMhg;+#1LZBY6dHt5v88>~HST&4I0y#);?KRrFX}0JDj^T!7Z;a{U)YR^SMUM9 zI9c%+Qok6r16U>{)pSpPBs^q|hJ|S|Rt~|JqM4Y3bhJRn<{Di(7+tmI4-d> zjuhwlt4>v4;*a~LpTtcyagQLbI?!XybTv zE@?1k81fqL@yd*3Y-##*ZSohiEju$N>9~>nk>X%tRm4Ao>E0o?)W*LbT()6f`5< zN1GqiWU=M(3c6(|GGT*g!az`y;ys{AymH7Q#8V18{yAIa#B#`6o!Axl^l2zS0OP+t z&$QCT=Ts-M$sB(vdFw0QI3}i{U^*R{4qIr$Xo>xJi8RtXD0WiPs@py;oHFX3idQi4 z(CEXAwHBw@mk;wBuu|mrj=LiEDs>< z%X#2rn(@OfXEUy?556!0o&1ftmAUR9eA45m7rpO_IIELZX4jsG`oI^3(}UyImV<@U zv`0G4k209F^5s!hz(*<}p_GOoaC$xMk|<&hd(iN&EEgR?!9Vm1Le6U{A$&mj?QY1` zJ`!WPtILR+DkClua`1NOCSI092fBTlln^a66?}w>vw*7r?Y(}{$LqZ&J^)HeenGu1 zBNsglDPATOBRJxg&txN^Wi6wokH{XGj$U-}K8{Ep^0WYQQjiPcqDn@(D||j)A-a!h zuSTGpFwzw?64Dy>=zSsQo3&SpfW)qP<@1sw-oNfar zSa$<(_~*0Qgk8nDj4{^LioT2xAKqN%f~kLUr;2siPI!&S_sUm+YT;XYPlO${p-_IF zX-djrN9vMH)PhfSVjX_@my$PA!5<8pHV|ZA6(pYq+64*p5&SW27m(hJMvxolHKzQ5 zs#*p4nu3lGrho%J1)P^EqZAsGQNwCQEy`40n=+l>C(esYN*QS^c5lX{g;+BqJy#p@ zxy1alPCBG$`LdGVXyLbSHB||-4pm9J!=)-2Yob>)h)(yC=*vy?Z4@(&IZBUBjjhZ~W%4w82dl9wrY zPb2&#Adia;Gt!Hk%(Aj}G|?v@8Xr%J_V7NQbTU4X6hhceeLK_rc+%nW@udC>WYmK5 z5fskKT(}?5+C0m`mihP}_=M8r<(p8?WmXY>%XiF$L@6?=z#1$bvSI>#P=-I~gD|H0 zxb8Xh`xBGz4zR+PfexOV&#Da$^?0vx7oFp3sblR)KTF{rNxndeX;6|u@Nfj7&{%MC zz6M2wuAxMWzG+gSo~lqT(GHy}3avv=$*!&zh4Ki00``FPbA4hDurhZ8B}D%*Hz4|{ zhl%LKl_>!gebxU&bcI&gcOY0Qjtaq_s%Pnuii~QVJ5f-JjFy|HO%J6Xg`u<|bn3`C zvoNq70T{ne)fal605R-6*Pw+yP%%plgWZu)bHmrbG!3cb(7uqu`3h*B zA$|WIw{g`L4B}k_c@)p&%FFeTSI5n-ULXxFb1@Rt=5gH8a)jile5vz?FAI%ZJDOiQ z^oGe%1e0ai0*qDmUl78Z+i&{ioPB^BD~E>=k5+p12h_#Y2^-VI{DX@y#(uVoRO>WpjPttAHqt0sW2#G zdLkesdvK~-!&d@aomfL2_)E!KU!fT@I#tG4g=N$nxfuv!FZ5)|r;>*vjXpv(W)CMy zDsr;aio6CWtibBpu*D2AEtrhz`?y49Tv%kJZ#ES;rOimMV4aW(U-Qu7l`tmUlO^u3CVsT2AnLAK*K!}QLQ$!;APzZ^=++uc9uTdT@HMHA6E$K=Xv5dB)H%EHsys<{m>cE9!HNO|rx=3c4FSWFNSFjYNzg4o(8&;NZwN9Rf)6s1po~S$9#8bXVa52E zXzSv>{2hA~ep?mq!{4!o;5Ss<4!;@29qPIlSmBcIW`%I`g%!S;FJ196iZ4;TT*sHT zco~ToT!F2fcdQ0F6%IP@Ap|3xD&*_t=))tlEU_6L1&JhNU$P?$_y??SbVQ8;_8$IM z&_#xZAi9ECt5})aBPF}tE8Woc6nD~!%gWsREr7S~(3RPn*#pBOmQj21*V!m;WUQ^K z(61)yZx449)XiWfs8<0M$;?3==1=|8%@Z83raqU{cf2gAqjaePSx{gLAGPxfcq{2X z&+H0G@}asT_oW0EWp`ymiXkv9ka;m-gCQW~VKe5J=VX?1p?QL-FOm-8#DqWKIrE50v%4M zRi=-G;DF?UEBKMX$oS7C)&=jsqs%K*Dt|swMZ+D@QsYIjK1(8rdo(G*GtFJmsS`u} z(SZdI_3Y z#*c03);Jgw7)&KZ6l*Z5;*)Za!S=IhAGoxH#w2~bGM{YUPr9)(-_vT8>+HD{tv&zuh`rTp12NBwwM?pxo>OTH`{$%W8RQ}jg0Y^*eQQXxgxm#LKp!R z0DrZNO6CNQ5cF12a)6E=dU-9yLQ8VI_9FDkxy5`Op~UZZ4!iPRqkM z-IsSrd6>hPcm*HmV~qh9;4uX6h0OWJnI>auN!i0@U9Zh%6=@Y9l1Q7q{`?HuwA9dT4mqc9{njR5kVJ@ z#_L|j^|&$#T8Ua9X(ww)Ei2$Ed(dZ61(cK8vV@6Mrf4#wIOrA`W|c^M8PPDj+RYH( zf3rjm*GS^X_f@Oxw>2VPBNz{=^p~3C`5Kv{k;E|{7buVj&J>g}5+n-^$w5962>s>P zA~Z>N28o44NM+H96TO-^FSSQ# zLgG=Bi-qhy+t;t@5?Y8Yg&}+7WHxlgCxQ!e#wp1xPg;_{`vN8Tfd{%eIqM8^&H{hM zc$*lvKF}>>zcU>b%=Qln$C%TeKEmjo9tMMCVlw!mxbhJy-W`4+01O>aRkG4CWi-KR z$3FP+uA!0&3XP(D2R5(L3;zuh+gE&nmfntcSS&1AebyfDRU!dZ!5+M^j z=g#SOBwrM|{q~{opIOLcD@}Ld94BPw)-Hj2!SQa*30M_yr}-6Wz)f4=20EM6MW3 z&Se_OcB0DevPK+DKnPyS#FQ^%he(hOrE8|WKc$%*g&b==a|h{^$mw-)yrz4}a6@>O>32~PVvvO4h@ErdUl zOA;P4WJ~1F3OT08ND|1v8{Z*gX-z-7)LG3S7RIIcACb?~UBSmC9J8p=n zg&34?Wg9W4x>#ZYQ%mUskteTWT8SFsdeGNa3Y4Qc*hL?T1Cs1Z<#Wxr6VV0j-C25J zCCXbKK>R5t{khR%)-rv#QthZxNy5Orun)f6eJ{q=V3ACGCJDQ^%h1DNufqk5Y7Ldp z!LS6A^J(l9c;5xGGFyL&^0usN4l9XsVPh~%RE{2$D&w0|gvK1FF#+rU{uXs-(z-*2i6865Y_V;9cz;enrknVU#HbLuFpW+fB1 zs1?~8CrAYz38G32PgNB8#LM;?ZEQCViB zNF*L)-!+bIsoi5p^wTjDIoF$u1fXNq11o8ZLEUpA(Jv#>k4y>wbU;ohJ&7gOksVi( zMiQJ9GZ56}p75zk6@EAq^(hAiU|wZkVd94&K3+jADA!9G3I-hI_5vhcK_oU%)B(FbEi(ZfwaQ7# zu*E*%aOufs?g#_OWJd|^0CdJ!>CnWGRb(0}3^W|BdCK)7a$WXRkSm8k_Wyu@jLBRK z4B^^?Tv2JFys!&02XJqa?JfyLvu@XC=2SfCKu7!}eR2|^s4v8&H<UPuQ^@Y9j6x8X68-$4U!oktDBCdl0I`&4jxr(<8R2TO zkp1c^N|bp%Q0#?I293cnqIMULLvl=K5z+4YFdOSL7vm?hj`gy3H~(CT8XNmIq!%e& z1$HOXZGT4Qet7TBa4WJ4jUIu8LJDxpt>jxyO#a z5gLt7t4?Ixfu;jY`y>c&w1$dQ35Ov9yuVpyQe|Wy<_(FFRP+3)+LG$=*h(WWM`9TQ zFIeNnZ*fmYn7`1%^pTh`yEw44z=+pSy2yA|TgoXQ#PK2oKP)KS$+mU-I#^zIUH6J) zS8wn|cF9AtE8SkQD^DWI^pVJA2);LcU&$^Fy4iI*cwzYhILX9H{Q8v}(>DGTVHwzZ zKqj69^)HJAMTDYv%ZEyEsY*~F5oP*F&{Vz(uX(H^e0EoSGbbL%^J^(?C-#E&* z|6yOO1O zVqh=$VC4oj%Ll79u)BOPXDIlu+XF+vD}Z8T9C?BxV^r#pD*F`D7pdHN26lvxXOV&J zL1h0$sbPZ5UdgX@q>mPV_sx+_{e6SJ&n?+b> zpY`wYkhJP40l=u5INqqL;vNqNHZfNq1`CQZWgpckd#o#BR!!Fx%>nZ~xg5Y;+Kzh) za^Vd*1xajGOUV{*|0nDhp1U{pZf{I+bGCeSQ@8$XiAAomC?uPl0^CgQ-+3OjpPAH{ z6P7WstfAlD)c1m_+IDUjB68IOAb2qtYDKesjUNFUyK@u?<|C4zZ;!VelzInOGzJ=) z+yZHPm4yQ?sIpC}4g`p(_Y78iEwUA#B{e2PBN5BNPhs{ikzrM6Bx4&1>Q2zE4rl{G z(E!#uf;tDV>IvG2O%>~uUlO?$ z|5sPqeOH!;(ktPzKGZ@Hj<{q_#^=VsxKpf#+|L1b20oBl!@?8Je$k?Gc+?Vh3mCT& z{;`tq#S6>HSqMl?14PMZC@r8e+l0dk25yq<6k9`36xN9Wqf@MwLD*s#BRa)CW3bkz z8vqS-JMZIitUSh-7P*;{M@p~+U;Ek@M6}GZ8tOAt%!jn2;Rymj7D2%cP(=3A|FS?8 z3HbDIe;%_~RL9n3t1ZLFyIkbP{a8(PYy+xGtX^)&j@*3-Ue#DVXya(+E`olpNKsEI zetU;v4T~YriPn$uhYCgu`67s7ImU%+1)I>Jf?NnP#i12R5e+Z);V=mgM@&l!VegWP ziFZ{K7cwn6>`uwx2R5K$#n$%o9qw1FXFqRP>zF z)}VWr8oV6ULXFcXafueaVmNPQGPaUwY=ob$yrDf`5oVsHxP>xS6Nk0arI?TrEacj7 z&k2}oD46a^4Y2*-S9BD>O}5<~z`Bd$3t4;Jemw>OCAG-9K2T{=B?kOqAk=l>p^3Vx z1)LcOc!gWj`4hO_pFqz*0&{+22Z5(RvXQ2JB0dHZOylJy(tr;CU#sHxzC{;vR>fyZ zD4O+vJ~OA_DF&GE^#pHK{Ja3oRfgtTL&LDp3?hxQD!zY!rqIyzH#GY>G&!KrRq;RG z^a~a>1nmp~!;;8Pt3e>E;wu6KFG(nx^_)I4pTJWHUIqco>{}Jb5vh^z2K!Zfic#DK zOW~v1(r0SwI^j`BPY%x#Mp|2KB=iG9?^LK11=JPv+;@%hmVGq=mW>v^NxX}I=M{@W z;)jb2N7j>u=6t1zktQ=wXps0Y6sKs6G?}{!%`g@c)_W`@2Z9E*6sy}>hC43C*kyG; z(WM^amoY0aFnM4`7i>EL8p~3>vpKAPas`-XRlfn-fb#SUb_1u(VI;URKme@p!@v?x z$!$PB!H~Zg{?O$zaOj!~X4m_n;@u1*~`le?z0%zr;tn zA38b(SaiobrF;7NDVVVxz$pBsmw3G?z)t!#Xbw@HE^L0XeeST(VGvG zIX7P|lm2-Es^CMiNVeIf@-K4E?XAN$A1CG68!gUwZ8nU~!ty&4qgel-R(8tTKIQ_xHPFXMokH zv*469WZkxZ84fw*U@t$?O3AP6291qmY?20K`GI{+WGtzC*H~^ai|JY~gJGd`Qdd^k$lE^e<#G7CMc5iA%+}anfLC#NH&n<7# z0Y#$_MJayM;gAOoz!%rcv-t zWQKk_)^8OsZwF*Q>kMW4+_hADxz8@w_NHADGPJ=dD3eVmGpS^3L4gNqr=YpuhJQps zisw($+2Tvscp6wuSZ3Q|OL530XoN?oQ#AfP%p0`DQb*eEBCYZsu@9#DCmOlyuoJ|1 zc^RAT_Ak-m=~fiiRGJIsbF^)Wq66INIeI@Vnurn=Gb%>G%dZgyc`C^P?W>@2D2RU? zSb~D@50piW0w?@S8=Xq*2sWt%e*=YW4P=l?MCPjJ-;wFlEW`f$39>*O_p z=9aISSEH6&nZBP+BqM#NekvG^{j--T%&B%d-vC&DpWqiFd7TbW8LkI&Gd-aGws!LiRbVXW)zgo=x4UjnSGdtTA5-}1}FN?Ed5$sUIp>@8$&KSPHj?W~&(law=GXl3q6ncjME zddMDlIs2dCJ^(BWAA#SDf>ijz-)Vs=JL?&yotTX5!1&kQ^m)-o>>~@w5YA4{ zg)T3I*MpYr)hW1S4VGAdpuPTL>4Pj#-S~jk`zXRIM7V4zkg+up31QPAJW7geqS$>K zY2Kg<$x&F)%HB1O(`ycd9nQ%3s{vvsczUIDf)mdJo8dc6_)5BKbz(Rk{6mdP2e!w3 zhXU0{z-GVv-pZSZS~Ck?`Wf-yIn*STkca7K?W8)EGbUca2XuT-6dL9xmLMF$V-*ds zi1i#D-SCl)6~S7>&zmhBtI3*@Jdh(RaMGI{t4own!E84~y4?R^`*>m!Na7Xz#d2Og z5K{tjnlQoKL-m-T-1*Rwg(Oa0E14xzx7gXsgwQfsnNP1rMyr#&-bxNs6N@V6a1PxKpTmhBoL)nAb$wx@v??9xUN96q#d4VG9BO%;? zyt^Pbtmq<%{%8asiiixfGyjd_+$q8!2{@4;7bjpHlZ;Tw ziOeY}DaduoSCAagJ%^>Wvnx}H%9Nn9M|vh0yx}P7qY<4XLcIccNta8B>nEkeVfl-B znP8c#Yg_8{kqOL5_eRZzX*xmANLQe3txgO<3=3?$f(14dNuEHHS0{=X!k^=wyRMN! zMzASlyAu&7QvvZ6vhip+x*NnkT!fk%b(-jobpRZoMrIa>eHyar<7ai5 z%WAoyy+c_!!CYmPk65vmJ}t72^sKt>66SM>0_9*Ukra8z5+cM17;mTs7%EJdMJ)p? zBaleP$y2E!#sWz(WL+k#OM_&jmtq8hJqfhp=)K_qw35zrX>lLM=G0U_lZN9IvfjnQ z@`)TbxiLE1G5-UrF__p88QY*M5E)+uVN&V`e)fMo&bp2ZX_a)ZTc74wg*hA$;$s)9 zmRLiG6<+<8X_{BzC7BooaZHOkxdxes)ng`Erf{6^SuH2OY5+vPfN{G2Z2kgm^!6IW zeIaEMuMP7(FG>GWAyxJ<8YCr!IFvzc7YdT!JA10nS?obA-BS%_@ydLXlnkSG6bSpO zU~p!VW_72;N)y&h?4%o#gw#9IUjN-xCauO=V*gJh&}{l}mb4kYDV(XOe^yYQ5A=+J zWOYmT;K59S0O_vlFRlK0KG5AiqHkm}|Ne8O$}Xar;}v{_iqR2F@J(l8Mxj4wxFskE z7Nb1wvvaq4%aD)kQED8{3YFG6-@FD0WLmRgNdh~lXKm(9$ zyn?@>(S0xpgO`BI%$`F+&LfO;yvd&Xt=f;-yTqQih#RWd#l+DiK&tF~@f#gS4O+;| zSFbFfSJxNUxLHQjK5pg%oCU1mP3Jq{3IeZc5#Scu6L%q%3N^J>Qa2mybM5l_?zaTVF`2 z%VAbqWsK8Ocl3NMbx-kQsn{0GcxAK80vbM{kShC4>Fg#*$td`JuvwTQt)Ee$mK9L&t%B~aL3oQcOL#>-xqln8GIS^IGBi38C= z)=mJ~I}hW?F=2M{$^&jS;{{+RQcqB7c?k7Qq@JYITu}$Z zO9(n&L8XFUrVqInMe^bRci7j5$cHKNWJT6TLbxI2eFeEuHI^7CskuCd@8=Ht>NUn; zaJ&~|BZeJ6^R$Q=81`N8r8DeX2ipPFVw+47MIDkL9QLaP*cH!NY%-94gh`RQrzF{EY8R>cq{CJ%i#wskD8R;Vc(6;G^(_~JnQz~5lom6uT zi{JRMbk6X5h)pKeLbU4e61?*-ULkc;Wc)DkUq*U`{(C5j6E=XMs-tvn0jQCfH4;Mx zUd#&;Q;Qhfa)w_NjSR5HPDBkb`*5^h1K%Nl-FpZG3eB$%u+VTER7>x?VJ7=5qz_=d zW3aRh7ziYowGzUhR#{18Yysp09M;_@rLab_)`dQ;(B*{Un1wv_5+aaX+l%d0WISqD zx|fgw{Q6fiL0Y5y<$;r!NO8GB^StJtkfL@7>6BLN+z&`QOX$i4}NijM-8gp-K{ zjKw{pfXFN82KAEKiQ`rW^lY3hoY3Ud&GSiEfZk5}fXzH>)5x&Xr^60BIm)c3VV?NJ zKL~hA2As^BfT1rTmDIL$PKmOwGlV)Cv9AYZup706+fm*!Q{n zlu%g^!2O_@pTy#ilZMkoeK$=qZ#X8Kp}#y#Tij`&)SyEcgJC-!XhN>wEGLE+2xc;R&a)AxEAE%b(z0@4V1ZxBF&*5i-3_O1YW1_%L+3x zeoyr%3WZ`{!f`9+ZC6ANs`^i{c^P$uNr4DlS#}UkcMwkE%P)~07F7pU`1~i>hRgo7 z@KAZj-X9ec+YBTXHy91~6^u^8+XGKvQeIGru>1>+y=t;!C3k#?P2FZ`{>L;br+*gE zI#BkbIULKBkrc=d6bJ1c+5)SzmZ@RJ2sk>Xd3LqVXiqr$D%Gk-3vDV0V2xUykW_vQKAQ289BNn{hLpqteA{|C$ zzanWciou%2-6VOSRoXYsLJtc@5|1(IfBbkCa#knPu1i_ecS!QCi@Js67`r{_31GVW z^s}CM%v0>4mnG49ljzw<)bNyn>L7Zs@mbl&5h<&jkT@MsEca)lz9d3u)Is3B0W4^? zUf@o(_QsQX^w$&^&EW4Z@w|3BQ{>Q&;jM3iY$9@x6;h+qI-LqegX+T%oxBgR4+=>8 zo5ijSx|POVlM!bn+5tvMuAk%S`BH`G$tY4|_L!Ja1epy^HkT)65Tr8*eSlM|`>k*Go%;yg!#J}w0s1k-coa904_S~8zo6;YKY}%;8)tjUO_oBQ5(Km&vZQ+l zj^#rX4!dx3pD-HKJvTY5dk!`$;{@6zvuAnN14rM7{nb*S&!-BnV;fvDAsda9u^t|q zp^{M)V0!1TI;3=;zyXMeSMV48ivy+W!a!f)6tQ*z1PK{U=kHG$HU=cc{RJF(KDGr$qoUTPBBHsTWU4(Olhm84jXx)WDVp-`Q5(23O_j0-19R9F9pdo&lR4S ztb)Ve3BaO!VA^}uu(px8)Uq49kunEqk+I>0eMamz3urOj4-*0UvzpNBbp`WW?0d(&iFvG4d~I)hb81;9={oT*Wqfnd}Q@ODzR z7q73fe|&KQCNG%+Smy(YMojJ@4T1!5t*AhGpknX>%-Q5JXjx1P9R``%z(Fr>3TH)G zw@@7`xFTRM$!U;=N#1XSy%|ZGXeM^(d|VH3LQiD%{5e|n9b%Q?qX>)vJ_uro76B(1Xh6pQ=}x`nU;TXBIh+z2%bSxBKKO5Wl=)E7i3MpGzU zBTnoQ2-4P$F)I~|U}E74BrLy9lSXYaBm+Zhx<13#f-zb!vlHAh(c!ZsU2gN18w|}R z))C6Ll-hys+}V5v8#sVFh@yHH8MhsZ5Nz5mUxlXa*ORqr1B;N|9gU!kQ)rqIqk+kc z__kbi{s>Pd^YeVsnb8bB{v0ym;74KdZ0M!koiFYN58kiMZfiz*?{!?6+{oDw{5hTX zsc3@w2-I})xsHyT0e}`5W3(!jPJSt!4c8m+VLJH-#F&MN2?DC%19`m@xZq+WH!+Ep zc_P9hGD+a@k&z3*S~H9uFY`ntnvy)A;Ogykp6GF!8LPdFW#QDh|NifCAbbme@e2N; zjvf!hlz;+y9C5ekF;cnnp~be344_B#FhV&%j-5wkVPXj4VecnHfx-KP#5G`1Qo&zt zTf+S!(@o7&iI;*DPJ8164CaohWZ48rsl5|sL!dNf4faD^vZp8O$l3%d5)LADd|BUo{u9L^bvog|SxE*N4{m4Y`iv~v{ zDPOQV8Uog^PtjXFtmL^|EJ)1NA-X(pmTB+J5!Sg+deFUjL>&E9KvDwtyyZER#bjbO zV&WD2#i?lAH6$;`>PzdfN2CNH;5(b{bjI04R&QFD-&E9;2%g zF%$=T9`^o1@{#mlbKxmWz6$g1$wavb!(SAhouvpe;K{uCEy_Gy(D(}vuNMzzARy%s zN@>bwX@4o3rNqJYBtkcS0R=$rA>=fw4{w=OCRsrSZ6xo$8%?%5gEN6VQwe!MjYASr zu0|+t2fB8=K!+3B=*qHZ_R<*~Y%!oggcO|G)yND^iSn0+&fttzh&+H-UoA5@^>8l8 z;XtPH{4gWmpg&ufayGW zWdcWxFGpA_Q8m~Hs=9Mnb}$zqMM%#6&VEO9Dwl{dedr}QP~^H2^?_N*-~bPt5M_u+O^emsbN82C4l5W zFU9IVB0Z6AM(u#*Ex@q6g!_N;yilv11zEn%~eN}NI+|rVn>nO4u}f_6A}sNB0#sWi?j=TQBb@)nR`51PTM)` z#wp=$K3-S5DKzLgdL@_miU(GD{0>Z(MEMtU`BcgV&WBKfRfHy8jEQfptoW%4S|4JCVk%uQ)-t=gn)R1Uv~?yn?^5^A)IF;}t}19l0A@!LZiCn1Hk9#T{!BPp#Rniq^z> z)Mc(I)7@B8V>Z(0+g0^-f(uP%o}ewR18xnqaJUHBgy}o{deR;)(r!eO_%;-NWg{bB z0>a(P_RnLaSIAbi@T!A;G5Zh(_VZl{Q^W)gBKa;P8NGea*+u~i9H%6 znWIgvP5y52tksY_V3z?mLoD}9kptaMq3viPt4ts6>7o@~wXx>BEzB4-X54d`G}bGX zzdW?Du2G0QkYf9nrHNX}@{MB?j0E)g3V|*+)Qs$#V5qo1uml+ujl`BY3K`PJy1G3* zK>)YyMo3SOWI1)u_=J3*4lVV5p1Hi9-m(8tLy#$y65dh>7riEWwUdZ4eI!CA?W+xSpBtoBl5Vz%RI1y( zBvOHht6cV`g&pQ$o*%$G){7_zMD*CfX^64j;UVn>B;2D?0`o-3XLsRj!xM$@`?!+&||KMEU-Y&Tp%k59K zQ2_8w#+d}gm*#p24fma7%Vr9rwazF=;UvyL%sq3TD^G*>kK!FpFu1b7u?I2vo*Ile z+~3jB(>5;??oh$N_OFgv1pva{f-RivnLGjl3`z z9!gzm99`}bL2&@k;#W!04+7tzo04eld7|x{ob-Q<{tm&DAC-p$F;>e}*%YpkLE>lh zL+xfX`qyck4O`{}cVQHdD?&$Lem0P?OCm26iYNui;_gUT7I)s2kGrXj`-xnymO5mw z373_DFBv?mFmmm(xjVC@$US+;t6*TcE#&I^faj2A)=*AiuCiO9BtYGPd=E>hfC!4x zhC#ktSv@7D2pjPwC|!zVQB(yo=p%)r6pzHF?&4Rjlehvoryn5$WVCn%1*TL`r#NmX z8HXf&ekj?pXSZ@p^T+alK1Ah0M*h#|mm>*DH`JQn9>(zOjPH-5WKZA(fm+%*PW~vA`Sle}#1}?(okn%m}BFWYw%G9 zlu!_s8N#jr3?Zw~68|6kDJ@MZdUPxpGU2ns^g_eU4t zBU0}|S&k0ssdL_JA;=@hjmHODjWdIGZ~^aw%*6`~hy@(XF8ZAM(oJlm

R;N5OhH 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