From 5421f7b09d3bbd8bfb06c1b84312237e7f3555a0 Mon Sep 17 00:00:00 2001 From: Pedro Santos Date: Sun, 11 Oct 2026 15:51:20 -0400 Subject: [PATCH 1/8] Fixed missing mem card notifications and log --- src/sync.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/sync.c b/src/sync.c index 6ccac91..a25a07d 100644 --- a/src/sync.c +++ b/src/sync.c @@ -1563,11 +1563,15 @@ static void *worker(void *arg) { LOGE("sync failed: %s", r.error); if (notify) plat_notify("RomM Sync: sync failed: %s", r.error); } else { - LOGI("sync done: %d up, %d down, %d conflicts, %d failed, %d states", r.uploaded, - r.downloaded, r.conflicts, r.failed, r.states_up); - if (notify && (r.uploaded || r.downloaded || r.conflicts || r.failed)) - plat_notify("RomM Sync: %d uploaded, %d downloaded%s", r.uploaded, r.downloaded, + /* Issue #10 - Added notification and log file for memory card operations. */ + LOGI("sync done: %d up, %d down, %d conflicts, %d failed, %d states, %d cards", r.uploaded, + r.downloaded, r.conflicts, r.failed, r.states_up, r.cards); + if (notify && (r.uploaded || r.downloaded || r.conflicts || r.failed || r.cards)) { + char cards[48] = ""; + if (r.cards) snprintf(cards, sizeof cards, ", %d memory card%s backed up", r.cards, r.cards == 1 ? "" : "s"); + plat_notify("RomM Sync: %d uploaded, %d downloaded%s%s", r.uploaded, r.downloaded, cards, r.conflicts ? ", conflicts to resolve" : ""); + } } } return NULL; From 1d2462eb0df512ad7f0c94b37c44a8e714d6638a Mon Sep 17 00:00:00 2001 From: Pedro Santos Date: Sun, 11 Oct 2026 23:36:44 -0400 Subject: [PATCH 2/8] Reviewed symlink/hardlink support in fs, added ability to delete games from app for parity with web ui --- .../rommps/examples/rommps/kit/rommps_app.cpp | 17 ++++++++ .../rommps/examples/rommps/kit/rommps_app.hpp | 1 + .../app/rommps/examples/rommps/kit/screen.cpp | 43 ++++++++++++++++++- src/library.c | 24 ++++++++++- src/util.c | 23 ++++++++-- src/util.h | 4 ++ ui/index.html | 2 +- 7 files changed, 106 insertions(+), 8 deletions(-) diff --git a/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.cpp b/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.cpp index bcf85a1..967009a 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.cpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.cpp @@ -833,6 +833,23 @@ void App::cancel_download(int job_id) }); } +void App::remove_game(int rom_id) +{ + char body[64]; + std::snprintf(body, sizeof body, "{\"rom_id\":%d}", rom_id); + api_.post("/api/delete", body, [this](const Response &r) { + if (!r.ok()) + { + say("Couldn't remove the game: " + r.message()); + return; + } + say("Game removed. Its saves are kept."); + lists_.clear(); + refresh_installed(); + refresh_downloads(); + }); +} + void App::sync_now() { api_.post("/api/sync", "{}", [this](const Response &r) { diff --git a/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.hpp b/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.hpp index a657cc4..40d37ef 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.hpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.hpp @@ -245,6 +245,7 @@ class App void download(int rom_id, const std::string &name); void cancel_download(int job_id); + void remove_game(int rom_id); void clear_finished_downloads(); void sync_now(); diff --git a/platform/ps5/app/rommps/examples/rommps/kit/screen.cpp b/platform/ps5/app/rommps/examples/rommps/kit/screen.cpp index 3bac4f0..1621d48 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/screen.cpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/screen.cpp @@ -337,7 +337,7 @@ class RommPS final : public app::Concept { std::string label; bool enabled; - int kind; // 0 download, 1 cancel, 2 close + int kind; // 0 download, 1 cancel, 2 close, 3 remove }; std::vector sheet_actions() const @@ -349,7 +349,7 @@ class RommPS final : public app::Concept if (d && d->active()) actions.push_back({"Hold to cancel download", true, 1}); else if (g && g->installed) - actions.push_back({"Downloaded", false, 0}); + actions.push_back({"Hold to delete this game", true, 3}); else if (p && p->profile.empty()) actions.push_back({"No emulator for this platform", false, 0}); else @@ -398,6 +398,35 @@ class RommPS final : public app::Concept return job_id && job_id == cancel_job_ && cancel_hold_ > 0 ? std::min(1.0f, cancel_hold_ / kCancelHold) : 0.0f; } + bool hold_to_remove(const InputFrame &input, float dt, app::Feedback &feedback) + { + if (!input.is_held(Action::confirm)) + { + remove_hold_ = -1; + return false; + } + + if (input.is_pressed(Action::confirm)) + { + remove_hold_ = 0; // every hold begins with a press + feedback.play(audio::Cue::tick, 1.0f, 0.0f, 0.5f); + } + + if (remove_hold_ < 0) + return false; // was held from before or is already done + + remove_hold_ += dt; + + if (remove_hold_ < kCancelHold) + return false; + + app_.remove_game(sheet_game_.id); + feedback.play(audio::Cue::back); + feedback.rumble(0.8f, 0.2f); + remove_hold_ = -1; + return true; + } + void update_sheet(const InputFrame &input, float dt, app::Feedback &feedback) { const std::vector actions = sheet_actions(); @@ -412,11 +441,18 @@ class RommPS final : public app::Concept } } action_ = std::clamp(action_, 0, count - 1); + if (actions[static_cast(action_)].kind != 3) + remove_hold_ = -1; if (actions[static_cast(action_)].kind == 1) { if (hold_to_cancel(input, dt, app_.download_for(sheet_game_.id), feedback)) sheet_open_ = false; } + else if (actions[static_cast(action_)].kind == 3) + { + if (hold_to_remove(input, dt, feedback)) + sheet_open_ = false; + } else if (input.is_pressed(Action::confirm)) { const SheetAction &a = actions[static_cast(action_)]; @@ -815,6 +851,8 @@ class RommPS final : public app::Concept if (const rommps::Download *d = app_.download_for(g->id)) if (const float hold = cancel_progress(d->id); hold > 0) list.rounded_rect({ax, y, std::max(72.0f, 460 * hold), 72}, 36, L.danger.with_alpha(0.85f)); + if (a.kind == 3 && focused && remove_hold_ > 0) + list.rounded_rect({ax, y, std::max(72.0f, 460 * std::min(1.0f, remove_hold_ / kCancelHold)), 72}, 36, L.danger.with_alpha(0.85f)); ui::text(list, fonts.semibold, context_.fonts.semibold.font->fit(a.label, 26, 400), ax + 36, y + 46, 26, (focused ? L.on_highlight : L.panel_text).with_alpha(a.enabled ? 1.0f : 0.5f)); } @@ -910,6 +948,7 @@ class RommPS final : public app::Concept tween::Spring action_position_; int download_row_ = 0; float cancel_hold_ = 0; // seconds Cross has been held to cancel cancel_job_; -1 once done + float remove_hold_ = -1; // seconds Cross has been held on remove; -1 waits for a press int cancel_job_ = 0; bool cancel_seen_ = false; // hold_to_cancel ran this frame tween::Spring download_position_; diff --git a/src/library.c b/src/library.c index 8eec69d..5e95e2e 100644 --- a/src/library.c +++ b/src/library.c @@ -36,6 +36,7 @@ typedef struct job { int64_t done, total; int64_t base; /* bytes from files already finished (multi-file games) */ double speed; /* bytes/s, smoothed */ + char note[80]; /* Running job updates this after a download. */ double sample_t; int64_t sample_bytes; struct job *next; @@ -320,7 +321,13 @@ static void run_rom_job(job *j) { path_join(other, sizeof other, x->rom_dir, fs_name); if (!strcmp(other, dest)) continue; mkdir_p(x->rom_dir); - if (link_or_copy(dest, other) == 0) { + pthread_mutex_lock(&g_q_lock); + snprintf(j->note, sizeof j->note, "Copying to %s", x->profile_name); + j->base = j->done = j->total = 0; + j->speed = 0; + j->sample_t = 0; + pthread_mutex_unlock(&g_q_lock); + if (link_or_copy_progress(dest, other, progress_cb, j) == 0) { record_rom(j, rom, x, other, multi); LOGI("also for %s: %s", x->profile_name, other); } else { @@ -548,6 +555,20 @@ int library_delete_rom(int rom_id, char *err, int en) { } state_save(); state_unlock(); + if (removed) { + /* Can't leave a finished download in the downloads page if we removed that title. */ + pthread_mutex_lock(&g_q_lock); + for (job **pp = &g_jobs; *pp;) { + job *dead = *pp; + if (dead->type == JOB_ROM && dead->target_id == rom_id && finished(dead)) { + *pp = dead->next; + free(dead); + } else { + pp = &dead->next; + } + } + pthread_mutex_unlock(&g_q_lock); + } if (!removed) snprintf(err, (size_t)en, "game is not on this console"); return removed ? 0 : -1; } @@ -568,6 +589,7 @@ cJSON *library_downloads(void) { cJSON_AddNumberToObject(o, "done", (double)j->done); cJSON_AddNumberToObject(o, "total", (double)j->total); cJSON_AddNumberToObject(o, "speed", j->status == JOB_RUNNING ? j->speed : 0); + cJSON_AddStringToObject(o, "note", j->status == JOB_RUNNING ? j->note : ""); cJSON_AddItemToArray(arr, o); } pthread_mutex_unlock(&g_q_lock); diff --git a/src/util.c b/src/util.c index bf1f902..1100fe1 100644 --- a/src/util.c +++ b/src/util.c @@ -194,8 +194,9 @@ int write_file_atomic(const char *path, const void *data, size_t len) { return rename(tmp, path); } -int copy_file(const char *src, const char *dst) { +int copy_file_progress(const char *src, const char *dst, copy_progress_fn cb, void *ud) { char tmp[PATH_MAX_LEN]; + int64_t total = file_size(src), done = 0; FILE *in = fopen(src, "rb"); if (!in) return -1; char *buf = malloc(64 * 1024); @@ -218,6 +219,11 @@ int copy_file(const char *src, const char *dst) { rc = -1; break; } + done += (int64_t)n; + if (cb && cb(ud, done, total)) { + rc = -1; + break; + } } fclose(in); free(buf); @@ -229,6 +235,10 @@ int copy_file(const char *src, const char *dst) { return rc; } +int copy_file(const char *src, const char *dst) { + return copy_file_progress(src, dst, NULL, NULL); +} + static void parse_version(const char *s, int v[3]) { v[0] = v[1] = v[2] = 0; if (!s) return; @@ -447,7 +457,7 @@ int md5_file_hex(const char *path, char out[33]) { } /* A hard link to src at dst (a copy across drives); folders file by file. */ -int link_or_copy(const char *src, const char *dst) { +int link_or_copy_progress(const char *src, const char *dst, copy_progress_fn cb, void *ud) { if (dir_exists(src)) { if (mkdir_p(dst) != 0) return -1; DIR *d = opendir(src); @@ -459,7 +469,7 @@ int link_or_copy(const char *src, const char *dst) { char a[PATH_MAX_LEN], b[PATH_MAX_LEN]; path_join(a, sizeof a, src, de->d_name); path_join(b, sizeof b, dst, de->d_name); - if (link_or_copy(a, b) != 0) rc = -1; + if (link_or_copy_progress(a, b, cb, ud) != 0) rc = -1; } closedir(d); return rc; @@ -469,7 +479,12 @@ int link_or_copy(const char *src, const char *dst) { unlink(dst); } if (link(src, dst) == 0) return 0; - return copy_file(src, dst); + LOGI("can't link %s to %s (%s), copying instead", src, dst, strerror(errno)); + return copy_file_progress(src, dst, cb, ud); +} + +int link_or_copy(const char *src, const char *dst) { + return link_or_copy_progress(src, dst, NULL, NULL); } int fnv1a64_file_hex(const char *path, char out[17]) { diff --git a/src/util.h b/src/util.h index 7661e48..7687989 100644 --- a/src/util.h +++ b/src/util.h @@ -43,7 +43,10 @@ int64_t file_mtime_ns(const char *path); /* nanoseconds, 0 if missing */ int set_file_mtime(const char *path, time_t t); char *read_file(const char *path, size_t *len); /* malloc'd, NUL-terminated */ int write_file_atomic(const char *path, const void *data, size_t len); +/* Tells us how far along a copy is; Nonzero return will stop it. */ +typedef int (*copy_progress_fn)(void *ud, int64_t done, int64_t total); int copy_file(const char *src, const char *dst); +int copy_file_progress(const char *src, const char *dst, copy_progress_fn cb, void *ud); /* -1, 0 or 1 as a is older, the same as or newer than b ("1.2.3", a leading * "v" and anything after the patch ignored). Unreadable counts as 0.0.0. */ @@ -52,6 +55,7 @@ int version_cmp(const char *a, const char *b); * 1.1.0 on), or "" if it has none. */ void payload_version(const void *elf, size_t len, char *out, size_t n); int link_or_copy(const char *src, const char *dst); /* hard link, a copy across drives; folders too */ +int link_or_copy_progress(const char *src, const char *dst, copy_progress_fn cb, void *ud); int move_file(const char *src, const char *dst); /* rename, falls back to copy+unlink */ void remove_tree(const char *path); /* rm -rf */ const char *path_basename(const char *path); diff --git a/ui/index.html b/ui/index.html index e5c5738..be9f52b 100644 --- a/ui/index.html +++ b/ui/index.html @@ -967,7 +967,7 @@ function downloadRow(d) { else if (d.status === "cancelled") meta = 'Cancelled'; else if (d.status === "cancelling") meta = "Cancelling"; else if (d.status === "queued") meta = "Queued"; - else meta = fmtSize(d.done) + (d.total ? " of " + fmtSize(d.total) : "") + (d.speed > 0 ? ", " + fmtSize(d.speed) + "/s" + (d.total ? ", " + fmtEta((d.total - d.done) / d.speed) : "") : ""); + else meta = (d.note ? esc(d.note) + ": " : "") + fmtSize(d.done) + (d.total ? " of " + fmtSize(d.total) : "") + (d.speed > 0 ? ", " + fmtSize(d.speed) + "/s" + (d.total ? ", " + fmtEta((d.total - d.done) / d.speed) : "") : ""); return '
' + (d.platform ? pill(d.platform) : "") + (d.type === "firmware" ? pill("BIOS", "off") : "") + "" + esc(d.name) + "" + '
' + meta + "
" + (active ? '' : "") + "
" + (active || d.status === "cancelling" ? '
' : "") + "
"; From 59d8e31d43bd66ea885d7074d69ae20ce3fd49cf Mon Sep 17 00:00:00 2001 From: Pedro Santos Date: Tue, 13 Oct 2026 23:02:05 -0400 Subject: [PATCH 3/8] Sync a game's saves and states as soon as its download finishes The download stays open as "Syncing saves" until that game's saves and states are in place, so it isn't started without them. A notification says what came down. Shown in RommPS and the web UI. --- .../examples/rommps/kit/library_page.cpp | 2 + .../rommps/examples/rommps/kit/rommps_app.cpp | 19 +++ .../rommps/examples/rommps/kit/rommps_app.hpp | 11 +- .../app/rommps/examples/rommps/kit/screen.cpp | 14 +- src/library.c | 30 ++++- src/sync.c | 124 ++++++++++++------ src/sync.h | 8 ++ tests/e2e.sh | 13 +- ui/index.html | 24 +++- 9 files changed, 186 insertions(+), 59 deletions(-) diff --git a/platform/ps5/app/rommps/examples/rommps/kit/library_page.cpp b/platform/ps5/app/rommps/examples/rommps/kit/library_page.cpp index ef3cc03..e76681c 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/library_page.cpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/library_page.cpp @@ -737,6 +737,8 @@ void LibraryPage::draw_grid(hui::gfx::DrawList &list, const hui::ui::Fonts &font const Rect bar{kMargin, 336, 420, 8}; list.rounded_rect(bar, 4, look.muted.with_alpha(0.25f)); list.rounded_rect({bar.x, bar.y, std::max(8.0f, bar.w * d->progress()), bar.h}, 4, accent); + if (d->syncing()) + ui::text(list, fonts.semibold, "Syncing saves", bar.x + bar.w + 20, 344, 20, look.muted); } else { diff --git a/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.cpp b/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.cpp index 967009a..5f00d0f 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.cpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.cpp @@ -770,6 +770,10 @@ void App::refresh_downloads() dl.done = num(d, "done"); dl.total = num(d, "total"); dl.speed = num(d, "speed"); + dl.saves = static_cast(num(d, "saves")); + dl.states = static_cast(num(d, "states")); + dl.save_conflicts = static_cast(num(d, "save_conflicts")); + dl.saves_failed = flag(d, "saves_failed"); active += dl.active(); // A game that just finished shows as downloaded on its shelf. for (const Download &old : downloads_) @@ -788,6 +792,21 @@ void App::refresh_downloads() }); } +std::string Download::saves_note() const +{ + if (saves_failed) + return "Saves couldn't sync"; + if (save_conflicts) + return "Save conflict to resolve"; + auto count = [](int n, const char *what) { return std::to_string(n) + " " + what + (n == 1 ? "" : "s"); }; + std::string got; + if (saves) + got = count(saves, "save"); + if (states) + got += (got.empty() ? "" : " and ") + count(states, "state"); + return got.empty() ? "" : got + " synced"; +} + const Download *App::download_for(int rom_id) const { const Download *found = nullptr; diff --git a/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.hpp b/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.hpp index 40d37ef..48342b8 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.hpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.hpp @@ -136,11 +136,18 @@ struct Download int id = 0, rom_id = 0; std::string name, platform, status, error; double done = 0, total = 0, speed = 0; + // What the sync after the download brought. + int saves = 0, states = 0, save_conflicts = 0; + bool saves_failed = false; float progress() const { return total > 0 ? static_cast(done / total) : 0.0f; } - // The payload's states: queued, downloading, cancelling, then done, error or cancelled. + // The payload's states: queued, downloading, cancelling, syncing (the + // game's saves, once it's downloaded), then done, error or cancelled. bool running() const { return status == "downloading"; } - bool active() const { return status == "queued" || running() || status == "cancelling"; } + bool syncing() const { return status == "syncing"; } + bool active() const { return status == "queued" || running() || status == "cancelling" || syncing(); } + bool cancellable() const { return active() && !syncing(); } bool finished() const { return !active(); } + std::string saves_note() const; }; struct Status diff --git a/platform/ps5/app/rommps/examples/rommps/kit/screen.cpp b/platform/ps5/app/rommps/examples/rommps/kit/screen.cpp index 1621d48..9bf76ab 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/screen.cpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/screen.cpp @@ -346,7 +346,9 @@ class RommPS final : public app::Concept const rommps::Game *g = &sheet_game_; const rommps::Platform *p = app_.platform_by_id(sheet_game_.platform_id); const rommps::Download *d = g ? app_.download_for(g->id) : nullptr; - if (d && d->active()) + if (d && d->syncing()) + actions.push_back({"Syncing saves", false, 0}); + else if (d && d->active()) actions.push_back({"Hold to cancel download", true, 1}); else if (g && g->installed) actions.push_back({"Hold to delete this game", true, 3}); @@ -366,7 +368,7 @@ class RommPS final : public app::Concept bool hold_to_cancel(const InputFrame &input, float dt, const rommps::Download *d, app::Feedback &feedback) { cancel_seen_ = true; - if (!d || !d->active() || !input.is_held(Action::confirm)) + if (!d || !d->cancellable() || !input.is_held(Action::confirm)) { cancel_hold_ = 0; cancel_job_ = 0; @@ -510,7 +512,7 @@ class RommPS final : public app::Concept if (count > 0 && download_row_ < static_cast(app_.downloads().size())) { const rommps::Download &d = app_.downloads()[static_cast(download_row_)]; - if (d.active()) + if (d.cancellable()) hold_to_cancel(input, dt, &d, feedback); else if (input.is_pressed(Action::confirm)) refuse(feedback, 0.0f); @@ -724,6 +726,10 @@ class RommPS final : public app::Concept } else if (d.status == "error") meta += d.error; + else if (d.syncing()) + meta += "Syncing saves"; + else if (d.status == "done" && !d.saves_note().empty()) + meta += "Downloaded \xC2\xB7 " + d.saves_note(); else { static const char *const kStates[][2] = {{"queued", "Waiting"}, @@ -913,7 +919,7 @@ class RommPS final : public app::Concept // came so far; Square takes the finished ones off the list. const auto &downloads = app_.downloads(); const bool on_active = download_row_ < static_cast(downloads.size()) && - downloads[static_cast(download_row_)].active(); + downloads[static_cast(download_row_)].cancellable(); const bool any_finished = std::any_of(downloads.begin(), downloads.end(), [](const rommps::Download &d) { return d.finished(); }); std::vector hints{pages}; diff --git a/src/library.c b/src/library.c index 5e95e2e..a3047fe 100644 --- a/src/library.c +++ b/src/library.c @@ -22,7 +22,7 @@ #define MAX_JOBS 50 typedef enum { JOB_ROM, JOB_FIRMWARE } job_type; -typedef enum { JOB_QUEUED, JOB_RUNNING, JOB_DONE, JOB_ERROR, JOB_CANCELLED } job_status; +typedef enum { JOB_QUEUED, JOB_RUNNING, JOB_DONE, JOB_ERROR, JOB_CANCELLED, JOB_SYNCING } job_status; typedef struct job { int id; @@ -37,6 +37,7 @@ typedef struct job { int64_t base; /* bytes from files already finished (multi-file games) */ double speed; /* bytes/s, smoothed */ char note[80]; /* Running job updates this after a download. */ + sync_game_result saves; /* what the sync after the download brought */ double sample_t; int64_t sample_bytes; struct job *next; @@ -334,6 +335,18 @@ static void run_rom_job(job *j) { LOGW("could not put %s in %s", j->name, x->rom_dir); } } + /* The game's saves land before it shows as ready, so it isn't + * started without them. */ + pthread_mutex_lock(&g_q_lock); + j->status = JOB_SYNCING; + pthread_mutex_unlock(&g_q_lock); + char name[256]; + str_copy(name, sizeof name, j->name); + sync_game_result saves; + sync_game(j->target_id, name, &saves); + pthread_mutex_lock(&g_q_lock); + j->saves = saves; + pthread_mutex_unlock(&g_q_lock); job_end(j, JOB_DONE, NULL, NULL); } else { if (cancelled(j) && !(multi && had)) discard_partial(dest, multi); @@ -434,7 +447,8 @@ void library_init(void) { int library_busy(void) { int busy = 0; pthread_mutex_lock(&g_q_lock); - for (job *j = g_jobs; j && !busy; j = j->next) busy = j->status == JOB_QUEUED || j->status == JOB_RUNNING; + for (job *j = g_jobs; j && !busy; j = j->next) + busy = j->status == JOB_QUEUED || j->status == JOB_RUNNING || j->status == JOB_SYNCING; pthread_mutex_unlock(&g_q_lock); return busy; } @@ -464,7 +478,7 @@ static void trim_jobs(void) { static int enqueue(job_type type, int id, const char *name, char *err, int en) { pthread_mutex_lock(&g_q_lock); for (job *p = g_jobs; p; p = p->next) { - if (p->type == type && p->target_id == id && (p->status == JOB_QUEUED || p->status == JOB_RUNNING)) { + if (p->type == type && p->target_id == id && !finished(p)) { pthread_mutex_unlock(&g_q_lock); snprintf(err, (size_t)en, "already downloading"); return -1; @@ -511,6 +525,8 @@ int library_cancel(int id, char *err, int en) { } else if (j->status == JOB_RUNNING) { j->cancel = 1; /* the progress callback aborts the transfer */ rc = 0; + } else if (j->status == JOB_SYNCING) { + snprintf(err, (size_t)en, "the game is downloaded, its saves are syncing"); } else { snprintf(err, (size_t)en, "download already finished"); } @@ -574,7 +590,7 @@ int library_delete_rom(int rom_id, char *err, int en) { } cJSON *library_downloads(void) { - static const char *names[] = {"queued", "downloading", "done", "error", "cancelled"}; + static const char *names[] = {"queued", "downloading", "done", "error", "cancelled", "syncing"}; cJSON *arr = cJSON_CreateArray(); pthread_mutex_lock(&g_q_lock); for (job *j = g_jobs; j; j = j->next) { @@ -590,6 +606,12 @@ cJSON *library_downloads(void) { cJSON_AddNumberToObject(o, "total", (double)j->total); cJSON_AddNumberToObject(o, "speed", j->status == JOB_RUNNING ? j->speed : 0); cJSON_AddStringToObject(o, "note", j->status == JOB_RUNNING ? j->note : ""); + if (j->status == JOB_DONE && j->type == JOB_ROM) { + cJSON_AddNumberToObject(o, "saves", j->saves.saves); + cJSON_AddNumberToObject(o, "states", j->saves.states); + cJSON_AddNumberToObject(o, "save_conflicts", j->saves.conflicts); + cJSON_AddBoolToObject(o, "saves_failed", j->saves.failed); + } cJSON_AddItemToArray(arr, o); } pthread_mutex_unlock(&g_q_lock); diff --git a/src/sync.c b/src/sync.c index a25a07d..8b53c6f 100644 --- a/src/sync.c +++ b/src/sync.c @@ -1060,10 +1060,11 @@ static void record_conflict(const local_file *f, const cJSON *op) { } -static int sync_states_up(scan_ctx *c) { +static int sync_states_up(scan_ctx *c, int only_rom) { int uploaded = 0; for (int i = 0; i < c->nstates; i++) { local_file *f = &c->states[i]; + if (only_rom && f->rom_id != only_rom) continue; if (file_mtime_ns(f->path) != f->mtime_ns) { /* replaced by the download pass */ f->mtime = file_mtime(f->path); f->mtime_ns = file_mtime_ns(f->path); @@ -1165,12 +1166,13 @@ static int fetch_state(const scan_ctx *c, const cJSON *s, const char *path, int /* Pulls states that changed on the server since we last saw them. A state * that also changed here is kept; the upload pass sends it. */ -static int sync_states_down(scan_ctx *c) { +static int sync_states_down(scan_ctx *c, int only_rom) { long st = 0; cJSON *list = romm_call("GET", "/api/states", NULL, &st); int n = 0; const cJSON *s; cJSON_ArrayForEach(s, list) { + if (only_rom && (int)jget_num(s, "rom_id", 0) != only_rom) continue; const local_rom *r = find_rom(c, (int)jget_num(s, "rom_id", 0), jget_str(s, "emulator", NULL)); char dir[PATH_MAX_LEN], name[256], path[PATH_MAX_LEN]; if (!r || !expected_dir(r, 1, dir, sizeof dir)) continue; @@ -1296,7 +1298,8 @@ static void forget_other_server(void) { state_unlock(); } -static void run_sync(const char *reason, sync_result *res) { +/* only_rom limits the transfers to one game; the rest wait for the next sync. */ +static void run_sync(const char *reason, int only_rom, sync_result *res) { memset(res, 0, sizeof *res); forget_other_server(); scan_ctx c; @@ -1342,7 +1345,7 @@ static void run_sync(const char *reason, sync_result *res) { int session_id = (int)jget_num(neg, "session_id", 0); /* A running game would overwrite a downloaded save, so downloads wait until * it closes. The sync right after launch still downloads. */ - int upload_only = g_game_running && strcmp(reason, "game started") != 0; + int upload_only = g_game_running && strcmp(reason, "game started") != 0 && !only_rom; const cJSON *op; int nops = cJSON_GetArraySize(cJSON_GetObjectItemCaseSensitive(neg, "operations")), k = 0; @@ -1355,6 +1358,7 @@ static void run_sync(const char *reason, sync_result *res) { int rom_id = (int)jget_num(op, "rom_id", 0); int save_id = (int)jget_num(op, "save_id", 0); const char *slot = jget_str(op, "slot", ""); + if (only_rom && rom_id != only_rom) continue; const local_file *f = find_save(&c, rom_id, slot); const char *server_hash = jget_str(op, "server_content_hash", ""); @@ -1467,8 +1471,8 @@ static void run_sync(const char *reason, sync_result *res) { cJSON_AddNumberToObject(done, "operations_completed", res->uploaded + res->downloaded + res->noop); cJSON_AddNumberToObject(done, "operations_failed", res->failed); pthread_mutex_lock(&g_req_lock); - cJSON *ps = g_play_sessions; - g_play_sessions = NULL; + cJSON *ps = only_rom ? NULL : g_play_sessions; + if (!only_rom) g_play_sessions = NULL; pthread_mutex_unlock(&g_req_lock); if (ps) { /* If one game's save changed, that's the game that was played. */ @@ -1493,11 +1497,11 @@ static void run_sync(const char *reason, sync_result *res) { config_unlock(); if (do_states) { set_phase("syncing save states"); - if (do_states == 2 && !upload_only) res->states_down = sync_states_down(&c); - res->states_up = sync_states_up(&c); + if (do_states == 2 && !upload_only) res->states_down = sync_states_down(&c, only_rom); + res->states_up = sync_states_up(&c, only_rom); } - res->cards = memcard_backup(); + if (!only_rom) res->cards = memcard_backup(); /* A save that just came down reaches the other emulators that share it. */ share_saves(&c); @@ -1507,6 +1511,43 @@ static void run_sync(const char *reason, sync_result *res) { scan_free(&c); } +/* Runs a sync and adds it to the history. */ +static void run_and_record(const char *reason, int only_rom, sync_result *r) { + pthread_mutex_lock(&g_run_lock); + g_running = 1; + run_sync(reason, only_rom, r); + g_running = 0; + g_last_run = time(NULL); + set_phase("idle"); + pthread_mutex_unlock(&g_run_lock); + + cJSON *h = cJSON_CreateObject(); + g_sync_count++; + cJSON_AddNumberToObject(h, "time", (double)g_last_run); + cJSON_AddStringToObject(h, "reason", reason); + cJSON_AddNumberToObject(h, "uploaded", r->uploaded); + cJSON_AddNumberToObject(h, "downloaded", r->downloaded); + cJSON_AddNumberToObject(h, "conflicts", r->conflicts); + cJSON_AddNumberToObject(h, "skipped", r->skipped); + cJSON_AddNumberToObject(h, "failed", r->failed); + cJSON_AddNumberToObject(h, "states_uploaded", r->states_up); + cJSON_AddNumberToObject(h, "states_downloaded", r->states_down); + cJSON_AddNumberToObject(h, "deferred", r->deferred); + cJSON_AddNumberToObject(h, "cards_uploaded", r->cards); + if (r->error[0]) cJSON_AddStringToObject(h, "error", r->error); + state_lock(); + state_history_add(h); + state_save(); + state_unlock(); +} + +static int notify_on(void) { + config_lock(); + int notify = g_cfg.notify; + config_unlock(); + return notify; +} + static void *worker(void *arg) { (void)arg; for (;;) { @@ -1527,38 +1568,10 @@ static void *worker(void *arg) { LOGI("sync (%s) skipped: setup not finished", reason); continue; } - pthread_mutex_lock(&g_run_lock); - g_running = 1; sync_result r; - run_sync(reason, &r); - g_running = 0; - g_last_run = time(NULL); - set_phase("idle"); - pthread_mutex_unlock(&g_run_lock); + run_and_record(reason, 0, &r); - cJSON *h = cJSON_CreateObject(); - g_sync_count++; - cJSON_AddNumberToObject(h, "time", (double)g_last_run); - cJSON_AddStringToObject(h, "reason", reason); - cJSON_AddNumberToObject(h, "uploaded", r.uploaded); - cJSON_AddNumberToObject(h, "downloaded", r.downloaded); - cJSON_AddNumberToObject(h, "conflicts", r.conflicts); - cJSON_AddNumberToObject(h, "skipped", r.skipped); - cJSON_AddNumberToObject(h, "failed", r.failed); - cJSON_AddNumberToObject(h, "states_uploaded", r.states_up); - cJSON_AddNumberToObject(h, "states_downloaded", r.states_down); - cJSON_AddNumberToObject(h, "deferred", r.deferred); - cJSON_AddNumberToObject(h, "cards_uploaded", r.cards); - if (r.error[0]) cJSON_AddStringToObject(h, "error", r.error); - state_lock(); - state_history_add(h); - state_save(); - state_unlock(); - - int notify; - config_lock(); - notify = g_cfg.notify; - config_unlock(); + int notify = notify_on(); if (r.error[0]) { LOGE("sync failed: %s", r.error); if (notify) plat_notify("RomM Sync: sync failed: %s", r.error); @@ -1581,6 +1594,39 @@ void sync_init(void) { thread_start(worker, NULL); } +static void plural(char *out, size_t n, int count, const char *what) { + snprintf(out, n, "%d %s%s", count, what, count == 1 ? "" : "s"); +} + +int sync_game(int rom_id, const char *name, sync_game_result *out) { + memset(out, 0, sizeof *out); + config_lock(); + int ready = g_cfg.setup_complete; + config_unlock(); + if (!config_is_paired() || !ready) return -1; + + sync_result r; + run_and_record("game downloaded", rom_id, &r); + out->saves = r.uploaded + r.downloaded; + out->states = r.states_up + r.states_down; + out->conflicts = r.conflicts; + out->failed = r.failed || r.error[0]; + LOGI("saves for %s: %d saves, %d states, %d conflicts%s", name, out->saves, out->states, out->conflicts, + out->failed ? ", some failed" : ""); + if (!notify_on()) return 0; + if (out->failed) { + plat_notify("RomM Sync: %s: saves could not sync", name); + } else if (out->conflicts) { + plat_notify("RomM Sync: %s: save conflict to resolve", name); + } else if (out->saves || out->states) { + char saves[32] = "", states[32] = ""; + if (out->saves) plural(saves, sizeof saves, out->saves, "save"); + if (out->states) plural(states, sizeof states, out->states, "state"); + plat_notify("RomM Sync: %s: %s%s%s synced", name, saves, out->saves && out->states ? " and " : "", states); + } + return 0; +} + void sync_request(const char *reason) { pthread_mutex_lock(&g_req_lock); if (!g_req_reason[0]) str_copy(g_req_reason, sizeof g_req_reason, reason); diff --git a/src/sync.h b/src/sync.h index db92220..4539829 100644 --- a/src/sync.h +++ b/src/sync.h @@ -27,6 +27,14 @@ void sync_add_play_session(time_t start, time_t end, const char *title_id); void sync_set_game_running(int running); int sync_game_running(void); +/* Syncs one game's saves and states now, e.g. once it's downloaded, and + * notifies what came down. Waits for a sync already running. -1 when + * syncing isn't set up yet. */ +typedef struct { + int saves, states, conflicts, failed; +} sync_game_result; +int sync_game(int rom_id, const char *name, sync_game_result *out); + /* What a sync would do, without transferring anything. */ cJSON *sync_preview(char *err, int en); diff --git a/tests/e2e.sh b/tests/e2e.sh index 80c7496..12892e9 100755 --- a/tests/e2e.sh +++ b/tests/e2e.sh @@ -86,15 +86,20 @@ post /api/setup/finish '{"conflict_policy":"ask"}' >/dev/null wait_sync 1 [[ "$(last reason)" == "first sync" && "$(last uploaded)" == 1 ]] || fail "expected the first sync to upload the local save" -echo "2. game download, then its server save" +echo "2. game download brings its server save along" +curl -sf -X POST "http://127.0.0.1:$MOCK_PORT/_admin/save" -d '{"rom_id":11,"slot":"autosave","file_name":"Super Metroid (USA).srm","content":"server-save"}' >/dev/null post /api/download '{"rom_id":11,"name":"Super Metroid"}' >/dev/null [[ "$(curl -sf "$API/api/downloads" | python3 -c "import json,sys; print([d['name'] for d in json.load(sys.stdin) if d.get('rom_id') == 11][-1])")" == "Super Metroid" ]] \ || fail "a download must show its name from the start" -sleep 1 +wait_sync 2 [[ -f "$RA/roms/snes/Super Metroid (USA).sfc" ]] || fail "ROM not downloaded" -curl -sf -X POST "http://127.0.0.1:$MOCK_PORT/_admin/save" -d '{"rom_id":11,"slot":"autosave","file_name":"Super Metroid (USA).srm","content":"server-save"}' >/dev/null -post /api/sync >/dev/null; wait_sync 2 +[[ "$(last reason)" == "game downloaded" ]] || fail "a finished download must sync the game's saves" [[ "$(cat "$RA/saves/Snes9x/Super Metroid (USA).srm")" == "server-save" ]] || fail "server save not downloaded" +for _ in $(seq 1 20); do + dl=$(curl -sf "$API/api/downloads" | python3 -c "import json,sys; d=[d for d in json.load(sys.stdin) if d.get('rom_id') == 11][-1]; print(d['status'], d.get('saves'))") + [[ "$dl" == "done 1" ]] && break; sleep 0.25 +done +[[ "$dl" == "done 1" ]] || fail "the download must end done, with the save it synced: $dl" ci=$(curl -sf "$API/api/roms?platform_id=1" | python3 -c "import json,sys; print(sorted(json.load(sys.stdin)['char_index'].items()))") [[ "$ci" == "[('c', 0), ('e', 1), ('m', 2), ('s', 3)]" ]] || fail "library char_index for the A-Z ribbon: $ci" diff --git a/ui/index.html b/ui/index.html index be9f52b..c06bec3 100644 --- a/ui/index.html +++ b/ui/index.html @@ -810,18 +810,29 @@ $("viewGrid").onclick = function () { setView("grid"); }; $("viewTable").onclick = function () { setView("table"); }; var CLOCK_ICON = ''; -function romJob(g) { var j = state.dl[g.id]; return j && (j.status === "queued" || j.status === "downloading") ? j : null; } +function romJob(g) { var j = state.dl[g.id]; return j && (j.status === "queued" || j.status === "downloading" || j.status === "syncing") ? j : null; } function jobPct(j) { return j.total ? Math.min(100, Math.floor(j.done * 100 / j.total)) : 0; } +function jobLabel(j) { return j.status === "queued" ? "Queued" : j.status === "syncing" ? "Syncing saves" : jobPct(j) + "%"; } +function plural(n, what) { return n + " " + what + (n === 1 ? "" : "s"); } +/* What the sync after a download brought. */ +function jobSaves(d) { + if (d.saves_failed) return 'saves could not sync'; + if (d.save_conflicts) return 'save conflict to resolve'; + var got = []; + if (d.saves) got.push(plural(d.saves, "save")); + if (d.states) got.push(plural(d.states, "state")); + return got.length ? got.join(" and ") + " synced" : ""; +} function romButton(g) { if (!state.platform.profile) return ""; var j = romJob(g); - if (j) return ""; + if (j) return ""; return g.installed ? ' ' : ''; } function romStatus(g) { var j = romJob(g); - if (j) return pill(j.status === "queued" ? "Queued" : jobPct(j) + "%", "warn"); + if (j) return pill(jobLabel(j), "warn"); return g.installed ? pill("Downloaded", "ok") : ""; } // Updates the open platform as downloads progress, keeping focus on the same game. @@ -854,7 +865,7 @@ function renderRoms() { $("roms").innerHTML = '
' + items.map(function (g) { var cover = g.cover ? 'style="background-image:url(\'' + coverUrl(g) + '\')"' : ""; var j = romJob(g); - var badge = j ? '' + (j.status === "queued" ? "Queued" : jobPct(j) + "%") + "" : g.installed ? 'Downloaded' : ""; + var badge = j ? '' + jobLabel(j) + "" : g.installed ? 'Downloaded' : ""; return '
" + badge + '
' + esc(g.name) + '
' + (g.version ? esc(g.version) + " ยท " : "") + fmtSize(g.size) + "
" + (g.installed && !romJob(g) ? '
' + romButton(g) + "
" : romButton(g)) + "
"; }).join("") + "
"; } @@ -963,14 +974,15 @@ function downloadRow(d) { var pct = d.total ? Math.min(100, Math.round(d.done * 100 / d.total)) : (d.status === "done" ? 100 : 0); var meta; if (d.status === "error") meta = '' + esc(d.error) + ""; - else if (d.status === "done") meta = 'Done ' + fmtSize(d.total); + else if (d.status === "done") meta = 'Done ' + fmtSize(d.total) + (jobSaves(d) ? ", " + jobSaves(d) : ""); + else if (d.status === "syncing") meta = "Syncing saves"; else if (d.status === "cancelled") meta = 'Cancelled'; else if (d.status === "cancelling") meta = "Cancelling"; else if (d.status === "queued") meta = "Queued"; else meta = (d.note ? esc(d.note) + ": " : "") + fmtSize(d.done) + (d.total ? " of " + fmtSize(d.total) : "") + (d.speed > 0 ? ", " + fmtSize(d.speed) + "/s" + (d.total ? ", " + fmtEta((d.total - d.done) / d.speed) : "") : ""); return '
' + (d.platform ? pill(d.platform) : "") + (d.type === "firmware" ? pill("BIOS", "off") : "") + "" + esc(d.name) + "" + '
' + meta + "
" + (active ? '' : "") + "
" + - (active || d.status === "cancelling" ? '
' : "") + "
"; + (active || d.status === "cancelling" || d.status === "syncing" ? '
' : "") + ""; } function loadDownloads() { api("GET", "/api/downloads").then(function (list) { From 129b5875580a5c8fa110aba28059b45495b817cc Mon Sep 17 00:00:00 2001 From: Pedro Santos Date: Tue, 13 Oct 2026 23:02:05 -0400 Subject: [PATCH 4/8] WIP: per-system emulator choice and folders in setup (RommPS doesn't build yet) --- .../app/rommps/examples/rommps/kit/rows.cpp | 23 ++++ .../app/rommps/examples/rommps/kit/rows.hpp | 1 + .../rommps/examples/rommps/kit/setup_page.cpp | 1 + src/detect.c | 24 ++++ src/web.c | 40 ++++++- tests/test-hardlinks.c | 103 ++++++++++++++++++ 6 files changed, 186 insertions(+), 6 deletions(-) create mode 100644 tests/test-hardlinks.c diff --git a/platform/ps5/app/rommps/examples/rommps/kit/rows.cpp b/platform/ps5/app/rommps/examples/rommps/kit/rows.cpp index 7ad26cc..7e41936 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/rows.cpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/rows.cpp @@ -5,6 +5,7 @@ #include #include +#include namespace rommps { @@ -35,6 +36,16 @@ RowEvent RowList::handle(const std::vector &rows, const hui::InputFrame &in if (count == 0) return event; focus_ = std::clamp(focus_, 0, count - 1); + if (rows[static_cast(focus_)].kind == RowKind::header) + { + int at = focus_; + while (at < count && rows[static_cast(at)].kind == RowKind::header) + at++; + if (at == count) + for (at = focus_; at > 0 && rows[static_cast(at)].kind == RowKind::header;) + --at; + focus_ at; + } const Row &row = rows[static_cast(focus_)]; switch (input.nav) { @@ -42,6 +53,9 @@ RowEvent RowList::handle(const std::vector &rows, const hui::InputFrame &in case Direction::down: { const int next = focus_ + (input.nav == Direction::down ? 1 : -1); + int next = focus_ + step; + while (next >= 0 && next < count && rows[static_cast(next)].kind == RowKind::header) + next += step; if (next >= 0 && next < count) { focus_ = next; @@ -115,6 +129,15 @@ void RowList::draw(hui::gfx::DrawList &list, const hui::ui::Fonts &fonts, const for (int i = 0; i < static_cast(rows.size()); ++i) { const Row &row = rows[static_cast(i)]; + if (row.kind == RowKind::header) + { + std::string caps = row.label; + for (char &ch : caps) + ch = static_cast(std::toupper(static_cast(ch))); + ui::text(list, font.semibold, caps, bounds.x + 32, y + kRowHeight - 20, 16, look.muted, + hui::gfx::Align::left, 3.0f); + continue; + } const float y = bounds.y + static_cast(i) * kRowHeight - scroll_.value; if (y + kRowHeight < bounds.y || y > bounds.y + bounds.h) continue; diff --git a/platform/ps5/app/rommps/examples/rommps/kit/rows.hpp b/platform/ps5/app/rommps/examples/rommps/kit/rows.hpp index 53ec696..e793d49 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/rows.hpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/rows.hpp @@ -25,6 +25,7 @@ enum class RowKind choice, // left and right step through its options action, // Cross does it info, // only shows something + header // a section's name }; struct Row diff --git a/platform/ps5/app/rommps/examples/rommps/kit/setup_page.cpp b/platform/ps5/app/rommps/examples/rommps/kit/setup_page.cpp index 7830875..f8a7d51 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/setup_page.cpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/setup_page.cpp @@ -665,6 +665,7 @@ std::vector SetupPage::emulator_rows(const App &app, std::vector *r add({RowKind::info, "No emulators found", "", "Continue with RetroArch's usual folders. You can change them later."}, {}); + add({RowKind::header, "Emulators"}, {} ); for (std::size_t i = 0; i < emulators_.size(); ++i) { const Emulator &e = emulators_[i]; diff --git a/src/detect.c b/src/detect.c index e8acbfa..1173d16 100644 --- a/src/detect.c +++ b/src/detect.c @@ -398,6 +398,30 @@ cJSON *detect_emulators(void) { closedir(d); } add_standalone(out); + /* The folders each emulator uses by default, for a given platform. */ + cJSON *c; + cJSON_ArrayForEach(c, out) { + if (cJSON_IsFalse(cJSON_GetObjectItemCaseSensitive(c, "ready"))) continue; /* No preset, custom */ + cJSON *profile = cJSON_GetObjectItemCaseSensitive(c, "profile"), *one = cJSON_CreateArray(); + cJSON_AddItemReferenceToArray(one, profile); + profile_map *maps = NULL; + int n = profiles_expand(one, &maps); + cJSON *dirs = cJSON_AddObjectToObject(c, "dirs"); + for (int i = 0; i < n; i++) { + char key[64]; + str_copy(key, sizeof key, maps[i].romm_slugs); + char *comma = strchr(key, ','); + if (comma) *comma = 0; + cJSON *d = cJSON_AddObjectToObject(dirs, key); + cJSON_AddStringToObject(d, "rom_dir", maps[i].rom_dir); + cJSON_AddStringToObject(d, "save_dir", maps[i].save_dir); + cJSON_AddStringToObject(d, "state_dir", maps[i].state_dir); + } + free(maps); + cJSON_Delete(one); + const cJSON *fixed = cJSON_GetObjectItemCaseSensitive(profile, "fixed"); + cJSON_AddItemToObject(c, "fixed", fixed ? cJSON_Duplicate(fixed, 1) : cJSON_CreateArray()); + } return out; } diff --git a/src/web.c b/src/web.c index 9e7b46e..cc08f62 100644 --- a/src/web.c +++ b/src/web.c @@ -318,6 +318,14 @@ static cJSON *systems_json(const cJSON *profiles) { return out; } +/* Whether a list in obj ("on": [roots]) names root. */ +static int lists_root(const cJSON *obj, const char *list, const char *root) { + const cJSON *x; + cJSON_ArrayForEach(x, cJSON_GetObjectItemCaseSensitive(obj, list)) + if (cJSON_IsString(x) && !strcmp(x->valuestring, root)) return 1; + return 0; +} + static int plays_system(const cJSON *profile, const char *key) { const cJSON *e; cJSON_ArrayForEach(e, cJSON_GetObjectItemCaseSensitive(profile, "platforms")) @@ -682,25 +690,45 @@ static void route(request *r) { * system several of them play to the root of its main emulator; * "also" lists, per system, the other emulators that keep it as * extras (downloads linked in, a save shared where the format is the - * same); the rest exclude it. */ + * same); the rest exclude it. "systems" does the same per system, + * and wins over both: {"ps2": {"main": root, "on": [roots], + * "folders": {root: {"rom_dir", "save_dir", "state_dir"}}}}. An + * emulator not "on" excludes it; folders go on that system's entry. */ cJSON *j = body_json(r), *found = detect_emulators(), *profiles = cJSON_CreateArray(); const cJSON *root, *c, *choices = cJSON_GetObjectItemCaseSensitive(j, "choices"); const cJSON *also = cJSON_GetObjectItemCaseSensitive(j, "also"); + const cJSON *systems = cJSON_GetObjectItemCaseSensitive(j, "systems"); cJSON_ArrayForEach(root, cJSON_GetObjectItemCaseSensitive(j, "roots")) { cJSON_ArrayForEach(c, found) { if (!cJSON_IsString(root) || strcmp(jget_str(c, "root", ""), root->valuestring) != 0) continue; if (cJSON_IsFalse(cJSON_GetObjectItemCaseSensitive(c, "ready"))) continue; /* no preset: "custom" below */ cJSON *p = cJSON_Duplicate(cJSON_GetObjectItemCaseSensitive(c, "profile"), 1), *ex = cJSON_CreateArray(), *extra = cJSON_CreateArray(); - const cJSON *e, *x; + cJSON *e; cJSON_ArrayForEach(e, cJSON_GetObjectItemCaseSensitive(p, "platforms")) { const char *key = profiles_system_key(e), *keeper = jget_str(choices, key, NULL); + const cJSON *sys = cJSON_GetObjectItemCaseSensitive(systems, key); + if (sys) { + if (!lists_root(sys, "on", root->valuestring)) { + cJSON_AddItemToArray(ex, cJSON_CreateString(key)); + continue; + } + if (strcmp(jget_str(sys, "main", ""), root->valuestring) != 0) /* on, not the main one */ + cJSON_AddItemToArray(extra, cJSON_CreateString(key)); + const cJSON *f = cJSON_GetObjectItemCaseSensitive(cJSON_GetObjectItemCaseSensitive(sys, "folders"), + root->valuestring); + static const char *const dirs[] = {"rom_dir", "save_dir", "state_dir"}; + for (int k = 0; f && k < 3; k++) { + const char *d = jget_str(f, dirs[k], ""); + if (d[0] != '/') continue; /* empty: the default */ + cJSON_DeleteItemFromObjectCaseSensitive(e, dirs[k]); + cJSON_AddStringToObject(e, dirs[k], d); + } + continue; + } if (!keeper || !strcmp(keeper, root->valuestring)) continue; /* "also": {"psx": [roots]} keeps the system on those as extras. */ - int kept = 0; - cJSON_ArrayForEach(x, cJSON_GetObjectItemCaseSensitive(also, key)) - if (cJSON_IsString(x) && !strcmp(x->valuestring, root->valuestring)) kept = 1; - cJSON_AddItemToArray(kept ? extra : ex, cJSON_CreateString(key)); + cJSON_AddItemToArray(lists_root(also, key, root->valuestring) ? extra : ex, cJSON_CreateString(key)); } if (cJSON_GetArraySize(ex)) cJSON_AddItemToObject(p, "exclude", ex); else cJSON_Delete(ex); diff --git a/tests/test-hardlinks.c b/tests/test-hardlinks.c new file mode 100644 index 0000000..2175c32 --- /dev/null +++ b/tests/test-hardlinks.c @@ -0,0 +1,103 @@ +/* Where hard links work on the console, and why they fail where they don't. */ +#include +#include +#include +#include +#include +#include +#include + +static const char *dirs[] = { + "/user/data", + "/data", + "/data/PCSX2/games", + "/data/PSXS5/games", + "/data/homebrew", + "/data/homebrew/PPSA99169/content/ps2", + NULL, +}; + +/* From folder, to folder, what it tests. */ +static const char *pairs[][3] = { + {"/data/PCSX2/games", "/data/PCSX2/games", "A: same folder"}, + {"/data/PCSX2/games", "/data/PSXS5/games", "B: two folders under /data"}, + {"/data/homebrew/PPSA99169/content/ps2", "/data/homebrew/PPSA99169/content/ps2", "C: inside the homebrew mount"}, + {"/data/homebrew/PPSA99169/content/ps2", "/data/PCSX2/games", "D: across the mount (what RommPS does)"}, + {"/user/data/PCSX2/games", "/user/data/PCSX2/games", "E1: Same folder through underlying path"}, + {"/user/data/homebrew/PPSA99169/content/ps2", "/user/data/PCSX2/games", "E2: What we need to do through underlying path"}, + {NULL, NULL, NULL}, +}; + +static void show_mount(const char *dir) { + struct statfs fs; + struct stat st; + if (statfs(dir, &fs) != 0 || stat(dir, &st) != 0) { + printf("%s: %s\n", dir, strerror(errno)); + return; + } + printf("%s\n device %llu: %s mounted on %s (%s)\n", dir, (unsigned long long)st.st_dev, fs.f_mntfromname, + fs.f_mntonname, fs.f_fstypename); +} + +static void try_link(const char *from_dir, const char *to_dir, const char *what) { + char from[512], to[512]; + snprintf(from, sizeof from, "%s/rommps-linktest-a", from_dir); + snprintf(to, sizeof to, "%s/rommps-linktest-b", to_dir); + printf("%s\n %s -> %s\n", what, from_dir, to_dir); + int fd = open(from, O_WRONLY | O_CREAT | O_TRUNC, 0644); + if (fd < 0) { + printf(" can't create the test file: %s\n", strerror(errno)); + return; + } + if (write(fd, "test\n", 5) != 5) printf(" short write\n"); + close(fd); + unlink(to); + if (link(from, to) == 0) { + struct stat a, b; + stat(from, &a); + stat(to, &b); + printf(" linked: inodes %llu and %llu, %u links\n", (unsigned long long)a.st_ino, + (unsigned long long)b.st_ino, (unsigned)a.st_nlink); + } else { + printf(" failed: %s (errno %d)\n", strerror(errno), errno); + } + unlink(to); + unlink(from); +} + +static void try_symlink(const char *dir) { + char target[512], link_path[512]; + snprintf(target, sizeof target, "%s/rommps-linktest-a", dir); + snprintf(link_path, sizeof link_path, "%s/rommps-linktest-sym", dir); + printf("S: symlink in %s\n", dir); + int fd = open(target, O_WRONLY | O_CREAT | O_TRUNC, 0644); + if (fd < 0) { + printf(" can't create the test file: %s\n", strerror(errno)); + return; + } + close(fd); + unlink(link_path); + if (symlink(target, link_path) == 0) { + struct stat st; + printf(" made; lstat says %s, stat %s\n", lstat(link_path, &st) == 0 && S_ISLNK(st.st_mode) ? "a link" : "not a link", + stat(link_path, &st) == 0 ? "reaches the file" : "can't reach the file"); + } else { + printf(" failed: %s (errno %d)\n", strerror(errno), errno); + } + unlink(link_path); + unlink(target); +} + +int main(void) { + printf("== running as uid %d, euid %d\n", (int)getuid(), (int)geteuid()); + printf("== mounts\n"); + for (int i = 0; dirs[i]; i++) show_mount(dirs[i]); + printf("== links\n"); + for (int i = 0; pairs[i][0]; i++) try_link(pairs[i][0], pairs[i][1], pairs[i][2]); + try_symlink("/data/PCSX2/games"); + try_symlink("/user/data/PCSX2/games"); + try_symlink("/system_tmp"); + printf("== done\n"); + fflush(stdout); + return 0; +} \ No newline at end of file From 2e8e0d9c896608057117202b02b5731f76a94c42 Mon Sep 17 00:00:00 2001 From: jheyneman Date: Tue, 13 Oct 2026 23:53:46 -0400 Subject: [PATCH 5/8] Fetch folder roms file by file, so games keep their extensions Fixes #13 --- src/library.c | 8 ++++++-- tests/e2e.sh | 20 ++++++++++++++++++-- tests/mock_romm.py | 42 +++++++++++++++++++++++++++++++++++++++--- 3 files changed, 63 insertions(+), 7 deletions(-) diff --git a/src/library.c b/src/library.c index 8eec69d..0c7bb07 100644 --- a/src/library.c +++ b/src/library.c @@ -253,8 +253,12 @@ static void run_rom_job(job *j) { const char *fs_name = jget_str(rom, "fs_name", ""); const cJSON *files = cJSON_GetObjectItemCaseSensitive(rom, "files"); - int multi = cJSON_IsTrue(cJSON_GetObjectItemCaseSensitive(rom, "has_multiple_files")) && - cJSON_GetArraySize(files) > 1; + /* fs_name is one of files[] only for a plain single-file rom; otherwise + * it's the folder's name (no extension) and the rom is fetched per file. */ + int multi = cJSON_GetArraySize(files) > 0; + const cJSON *f; + cJSON_ArrayForEach(f, files) + if (strcmp(jget_str(f, "file_name", ""), fs_name) == 0) { multi = 0; break; } if (library_not_game(fs_name)) { job_end(j, JOB_ERROR, "%s isn't a game", fs_name); free(maps); diff --git a/tests/e2e.sh b/tests/e2e.sh index 80c7496..b9291d4 100755 --- a/tests/e2e.sh +++ b/tests/e2e.sh @@ -96,10 +96,26 @@ curl -sf -X POST "http://127.0.0.1:$MOCK_PORT/_admin/save" -d '{"rom_id":11,"slo post /api/sync >/dev/null; wait_sync 2 [[ "$(cat "$RA/saves/Snes9x/Super Metroid (USA).srm")" == "server-save" ]] || fail "server save not downloaded" +echo "2b. folder roms: one iso per folder, and a cue+bin set" +post /api/download '{"rom_id":22,"name":"Downhill Domination"}' >/dev/null +post /api/download '{"rom_id":25,"name":"War of the Monsters"}' >/dev/null +dl_wait() { # wait for a downloaded path to exist + for _ in $(seq 1 30); do [[ -e "$1" ]] && return 0; sleep 0.5; done; fail "not downloaded: $1" +} +D="$RA/roms/ps2/Downhill Domination (USA)" +W="$RA/roms/ps2/War of the Monsters (USA)" +dl_wait "$D/Downhill Domination (USA).iso"; dl_wait "$W/War of the Monsters (USA).cue" +[[ -d "$D" && -d "$W" ]] || fail "a folder rom must land in a folder named after its fs_name" +[[ "$(cat "$D/Downhill Domination (USA).iso")" == "ROM:Downhill Domination (USA).iso" ]] || fail "iso content wrong" +[[ -f "$W/War of the Monsters (USA).bin" ]] || fail "cue's bin not downloaded" +[[ "$(cat "$W/War of the Monsters (USA).bin")" == "ROM:War of the Monsters (USA).bin" ]] || fail "bin content wrong" +[[ ! -f "$RA/roms/ps2/Downhill Domination (USA)" ]] || fail "folder rom written as a single extensionless file" + ci=$(curl -sf "$API/api/roms?platform_id=1" | python3 -c "import json,sys; print(sorted(json.load(sys.stdin)['char_index'].items()))") [[ "$ci" == "[('c', 0), ('e', 1), ('m', 2), ('s', 3)]" ]] || fail "library char_index for the A-Z ribbon: $ci" -inst=$(curl -sf "$API/api/installed" | python3 -c "import json,sys; print([(g['id'], g['name'], g['platform_id'] > 0) for g in json.load(sys.stdin)])") -[[ "$inst" == "[(11, 'Super Metroid', True), (10, 'Chrono Trigger', True)]" ]] || fail "the games on this console, for the app: $inst" +inst=$(curl -sf "$API/api/installed" | python3 -c "import json,sys; print(sorted([(g['id'], g['name'], g['platform_id'] > 0) for g in json.load(sys.stdin)]))") +[[ "$inst" == "[(10, 'Chrono Trigger', True), (11, 'Super Metroid', True), (22, 'Downhill Domination', True), (25, 'War of the Monsters', True)]" ]] \ + || fail "the games on this console, for the app: $inst" all=$(curl -sf "$API/api/roms?platform_id=0&search=metroid" | python3 -c "import json,sys; print([(g['name'], g['platform_id']) for g in json.load(sys.stdin)['items']])") [[ "$all" == "[('Super Metroid', 1)]" ]] || fail "a search across every platform: $all" diff --git a/tests/mock_romm.py b/tests/mock_romm.py index 61c3f83..14ce294 100755 --- a/tests/mock_romm.py +++ b/tests/mock_romm.py @@ -58,6 +58,14 @@ DB = { 14: {"id": 14, "platform_id": 1, "name": "Mega Test", "fs_name": "Mega Test (USA).md"}, 20: {"id": 20, "platform_id": 2, "name": "Okami", "fs_name": "Okami.iso"}, 21: {"id": 21, "platform_id": 2, "name": "Other", "fs_name": "Other.iso"}, + 22: {"id": 22, "platform_id": 2, "name": "Downhill Domination", "fs_name": "Downhill Domination (USA)", + "files": [{"id": 23, "file_name": "Downhill Domination (USA).iso", + "content": b"ROM:Downhill Domination (USA).iso"}]}, + 25: {"id": 25, "platform_id": 2, "name": "War of the Monsters", "fs_name": "War of the Monsters (USA)", + "files": [{"id": 26, "file_name": "War of the Monsters (USA).cue", + "content": b'FILE "War of the Monsters (USA).bin" BINARY\n'}, + {"id": 27, "file_name": "War of the Monsters (USA).bin", + "content": b"ROM:War of the Monsters (USA).bin"}]}, 30: {"id": 30, "platform_id": 3, "name": "Crisis Core", "fs_name": "Crisis Core (USA).iso"}, 40: {"id": 40, "platform_id": 4, "name": "Wind Waker", "fs_name": "Wind Waker (USA).iso"}, 50: {"id": 50, "platform_id": 5, "name": "Test Quest", "fs_name": "Test Quest (USA).bin"}, @@ -87,14 +95,24 @@ def next_id(): def rom_public(r): p = next(p for p in DB["platforms"] if p["id"] == r["platform_id"]) - stem = r["fs_name"].rsplit(".", 1)[0] + stem = r["fs_name"].rsplit(".", 1)[0] if "." in r["fs_name"] else r["fs_name"] + cover = "/assets/romm/resources/roms/%d/%d/cover/small.png?ts=%s" % ( + r["platform_id"], r["id"], DB["cover_ts"].get(r["id"], "2026-01-01 00:00:00")) + if r.get("files"): + files = [{"id": f["id"], "file_name": f["file_name"], "file_size_bytes": len(f["content"]), + "category": f.get("category", "content")} for f in r["files"]] + return {**{k: v for k, v in r.items() if k != "files"}, "fs_name_no_ext": stem, + "fs_size_bytes": sum(f["file_size_bytes"] for f in files), + "platform_slug": p["slug"], "platform_fs_slug": p["fs_slug"], + "has_multiple_files": len(files) > 1, "files": files, + "md5_hash": hashlib.md5(b"".join(f["content"] for f in r["files"])).hexdigest(), + "path_cover_small": cover} content = ("ROM:" + r["fs_name"]).encode() return {**r, "fs_name_no_ext": stem, "fs_size_bytes": len(content), "platform_slug": p["slug"], "platform_fs_slug": p["fs_slug"], "has_multiple_files": False, "files": [], "md5_hash": hashlib.md5(content).hexdigest(), # Like RomM's: the cover's path carries a stamp that changes with it. - "path_cover_small": "/assets/romm/resources/roms/%d/%d/cover/small.png?ts=%s" % ( - r["platform_id"], r["id"], DB["cover_ts"].get(r["id"], "2026-01-01 00:00:00"))} + "path_cover_small": cover} def save_public(s): @@ -275,7 +293,25 @@ class H(BaseHTTPRequestHandler): return self.reply(200, rom_public(DB["roms"][int(parts[2])])) if len(parts) == 5 and parts[:2] == ["api", "roms"] and parts[3] == "content": r = DB["roms"][int(parts[2])] + if r.get("files"): + if len(r["files"]) == 1: + return self.reply(200, raw=r["files"][0]["content"], ctype="application/octet-stream") + import io, zipfile + buf = io.BytesIO() + with zipfile.ZipFile(buf, "w") as zf: + for f in r["files"]: + zf.writestr(f["file_name"], f["content"]) + zf.writestr(r["fs_name"] + ".m3u", + "\n".join(f["file_name"] for f in r["files"]).encode()) + return self.reply(200, raw=buf.getvalue(), ctype="application/zip") return self.reply(200, raw=("ROM:" + r["fs_name"]).encode(), ctype="application/octet-stream") + if len(parts) == 6 and parts[:2] == ["api", "roms"] and parts[3:5] == ["files", "content"]: + # One file of a folder rom, by its file id. + for r in DB["roms"].values(): + for f in r.get("files") or []: + if f["id"] == int(parts[2]): + return self.reply(200, raw=f["content"], ctype="application/octet-stream") + return self.reply(404, {"detail": "file not found"}) if p == "/api/firmware": pid = int(qs("platform_id", 0)) return self.reply(200, [{"id": f["id"], "file_name": f["file_name"], "file_size_bytes": len(f["content"])} From fe9276a6179acd4fa561d9d1bf4771138746c662 Mon Sep 17 00:00:00 2001 From: Pedro Santos Date: Wed, 14 Oct 2026 12:30:08 -0400 Subject: [PATCH 6/8] 1.2.0: smarter save and state sync, sync log, diagnostics Save and state sync - A game's saves and states sync the moment it finishes downloading. - Save states only come down to an emulator that can load them; PSXS5 and PS5N64 states are converted to and from RetroArch's format. - Save sync is optional (setup and Settings), and can be set per emulator: saves and states, saves only, or off. - A save or state deleted from the console comes back from RomM. - Saves from before RomM's save slots reach the console. - A blank PS1 card from RomM never replaces one with saves: it's a conflict. - While a game runs, a changing save goes up at most every 5 minutes. See what synced - Sync log and tracked saves by platform, in RommPS (Home: Conflicts, Activity, Tracked saves) and the web UI, plus each game's saves and states. - Notifications say what moved; every finished download says so. - Diagnostic bundle (Settings): logs and settings with nothing personal. RommPS and web UI - Settings in sections; emulators grouped by system with each system's folders (as found or picked); SwanStationPS5 preset; PS5NES and Porpoise offered again. - Hold Options to close RommPS. Shorter texts throughout; "RommPS" in notifications and the web UI. --- Makefile | 2 +- README.md | 22 +- .../rommps/examples/rommps/kit/rommps_app.cpp | 6 + .../rommps/examples/rommps/kit/rommps_app.hpp | 5 + .../app/rommps/examples/rommps/kit/rows.cpp | 19 +- .../app/rommps/examples/rommps/kit/rows.hpp | 2 +- .../app/rommps/examples/rommps/kit/screen.cpp | 124 ++- .../examples/rommps/kit/settings_page.cpp | 112 ++- .../examples/rommps/kit/settings_page.hpp | 18 +- .../rommps/examples/rommps/kit/setup_page.cpp | 303 +++++-- .../rommps/examples/rommps/kit/setup_page.hpp | 34 +- .../rommps/examples/rommps/kit/sync_views.cpp | 492 +++++++++++ .../rommps/examples/rommps/kit/sync_views.hpp | 93 ++ platform/ps5/app/src/rommps_api.cpp | 31 +- platform/ps5/emulators.json | 37 +- src/config.c | 3 + src/config.h | 1 + src/detect.c | 15 + src/detect.h | 4 + src/events.c | 90 ++ src/events.h | 30 + src/library.c | 9 +- src/main.c | 14 +- src/memcard.c | 6 + src/pair.c | 2 +- src/profiles.c | 53 ++ src/profiles.h | 29 +- src/statefmt.c | 155 ++++ src/statefmt.h | 38 + src/sync.c | 827 ++++++++++++++++-- src/sync.h | 4 + src/update.c | 6 +- src/watch.c | 10 +- src/web.c | 361 +++++++- tests/e2e.sh | 233 ++++- tests/mock_romm.py | 6 + ui/index.html | 170 +++- ui/style.css | 7 +- ui/themes/classic.css | 2 +- 39 files changed, 3091 insertions(+), 284 deletions(-) create mode 100644 platform/ps5/app/rommps/examples/rommps/kit/sync_views.cpp create mode 100644 platform/ps5/app/rommps/examples/rommps/kit/sync_views.hpp create mode 100644 src/events.c create mode 100644 src/events.h create mode 100644 src/statefmt.c create mode 100644 src/statefmt.h diff --git a/Makefile b/Makefile index 1272650..99dfe24 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ CHDR_SRCS := $(filter-out %microflac.cpp,$(wildcard third_party/libchdr/src/*.c)) \ third_party/libchdr/deps/lzma/src/LzmaDec.c third_party/libchdr/deps/zstd/zstddeclib.c SRCS := src/main.c src/util.c src/http.c src/romm.c src/config.c src/state.c \ - src/profiles.c src/sync.c src/watch.c src/detect.c src/autostart.c src/memcard.c src/zip.c src/bundle.c src/gameid.c src/covers.c src/library.c src/pair.c src/web.c src/update.c \ + src/profiles.c src/sync.c src/watch.c src/detect.c src/autostart.c src/memcard.c src/zip.c src/bundle.c src/statefmt.c src/events.c src/gameid.c src/covers.c src/library.c src/pair.c src/web.c src/update.c \ third_party/cJSON.c third_party/md5.c third_party/monocypher.c third_party/monocypher-ed25519.c \ $(CHDR_SRCS) HDRS := $(wildcard src/*.h) third_party/cJSON.h third_party/md5.h third_party/monocypher.h third_party/monocypher-ed25519.h diff --git a/README.md b/README.md index 1035077..eadced4 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,14 @@ A [RomM](https://romm.app) companion client for jailbroken PS5 consoles (etaHEN or onionHEN, with kstuff) and PS4 consoles (GoldHEN). Through my insatiable need to mod everything electronic I encounter, I had my 12.70 PS5 jailbroken the minute that P2JB was out. I maintain a RomM server to centralize all my _legal_ ROMs, saves, and savestates, which all my devices sync with, and the PS5 needs similar treatment. -- **Save and sate sync** +- **Save and state sync** - Monitors save file changes in the background, and uploads them as soon as they've changed. Periodic syncs also ensure that your PS4/5 always has the latest saves and save states. + - A game's saves come down the moment it finishes downloading, so it's ready to play. + - Save states only come down to an emulator that can load them (see [Save states](#save-states)). + - Optional: turn save sync off in setup or Settings to use RomM just for games. +- **See what synced** + - An activity log and every save and state kept in sync, by platform, in the app and the Web UI. Settle conflicts and restore older versions from either. + - Settings > Diagnostic bundle saves the logs for a bug report, with your server, names and addresses left out. - **Interactive library** - Browse your RomM library from the RommPS app (or some other device via the Web UI), download games and BIOS files into the right emulator folders, and resolve save conflicts. - **Pluggable emulator profiles and multiple emulators per platform** @@ -32,11 +38,11 @@ A [RomM](https://romm.app) companion client for jailbroken PS5 consoles (etaHEN | Emulator | Systems | Game Downloads | Saves | Comments | | --- | --- | --- | --- | --- | | [RetroArch](https://github.com/mihawk-99/PS5_RetroArch) | NES, Famicom Disk System, SNES, Game Boy, Game Boy Color, Game Boy Advance, Genesis/Mega Drive, Master System, Game Gear, Sega CD, SG-1000, arcade (FinalBurn Neo), PS2 (LRPS2), PSP (PPSSPP), GameCube and Wii (Dolphin) | Full Support | Full Support | - | -| [PSXS5](https://github.com/SynoPiia/PSXS5) | PS1 | Full Support | One memory card per game, and states | - | -| [SwanStationPS5](https://github.com/darkxex/SwanStationPS5) | PS1 | Full Support | One memory card per game, and states | - | +| [PSXS5](https://github.com/SynoPiia/PSXS5) | PS1 | Full Support | One memory card per game, and states | States work with RomM's web player (PCSX-ReARMed or Beetle, whichever PSXS5 is set to) | +| [SwanStationPS5](https://github.com/darkxex/SwanStationPS5) | PS1 | Full Support | One memory card per game, and states | Plays PSXS5's games, keeps its own saves in `/data/SwanStationPS5`. Its states only load in SwanStationPS5 | | [PS5SX2](https://github.com/Swordpdf/PS5SX2) | PS2 | Full Support | Its two shared memory cards, backed up to RomM (5.3 or newer) | - | | [PS5N64](https://github.com/Globaleliteee/PS5N64) | N64 | Full Support | Full Support | - | -| [PS5NES](https://github.com/Globaleliteee/PS5NES) | NES | Broken | Broken | Broken, tried to report issue, but GH page gone | +| [PS5NES](https://github.com/Globaleliteee/PS5NES) | NES | Untested | Untested | Preset uses `/data/PS5NES/games` and `/data/PS5NES/saves`. GH page gone | | [Porpoise](https://github.com/elripalda/Porpoise-Dolphin-Emulator-for-PS5) | Wii/GameCube | Full Support | N/A | Couldn't exit sandbox w/o crash. [Issue](https://github.com/elripalda/Porpoise-Dolphin-Emulator-for-PS5/issues/18) reported. Downloading games should work if the emulator is actually working for you.| | [ProsperoEden](https://github.com/blackbearreloaded/ProsperoEden) | Switch | Manual Support | Researching | - | | [PS5X360](https://github.com/BrinooTk/PS5X360) | Xbox 360 | Manual Support | Researching | - | @@ -52,6 +58,14 @@ To give some meaning to the table above. **Full support** means RommPS can detec Only RetroArch has been tested on the PS4 so far. +### Save states +Save states only load in the emulator core that made them, sometimes only in the same version of it. RommPS backs every state up to RomM, and with **Save states: Back up and restore** in Settings it brings one down only to an emulator that can load it: +- **RetroArch:** states from the same core, from RomM's web player or another RetroArch. +- **PSXS5:** PCSX-ReARMed or Beetle states, whichever core PSXS5 is set to. They're converted to and from the web player's format. +- **SwanStationPS5, PS5N64:** only their own states. + +A state from elsewhere never replaces one of yours: it goes into the next free slot. + ## PS4/PS5 Games If you are interested in downloading PS4 and PS5 games from your RomM server, RomM has direct FPKGi support, simply add it as a library. This sync client does NOT handle PS4/PS5 save syncing at this time, but is being researched for potential future inclusion. diff --git a/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.cpp b/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.cpp index 5f00d0f..339eef4 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.cpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.cpp @@ -170,6 +170,11 @@ Palette palette_of(const unsigned char *rgba, int w, int h) } // namespace +std::string plain_text(const char *text) +{ + return plain(text ? text : ""); +} + App &app() { static App instance; @@ -893,6 +898,7 @@ void App::refresh_config() c.sync_on_game_exit = flag(j.get(), "sync_on_game_exit"); c.sync_on_game_start = flag(j.get(), "sync_on_game_start"); c.sync_on_change = flag(j.get(), "sync_on_change"); + c.save_sync = !cJSON_IsFalse(cJSON_GetObjectItemCaseSensitive(j.get(), "save_sync")); // older payloads: on c.notify = flag(j.get(), "notify"); c.update_check = flag(j.get(), "update_check"); c.states = str(j.get(), "states", "off"); diff --git a/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.hpp b/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.hpp index 48342b8..1aef6fc 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.hpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/rommps_app.hpp @@ -180,6 +180,7 @@ struct Config std::string server_url; bool tls_verify = true; int sync_interval_min = 0; + bool save_sync = true; // false: RomM only as a game source bool sync_on_game_exit = true, sync_on_game_start = false, sync_on_change = false; bool notify = true, update_check = true; std::string states = "off"; // off, upload, sync @@ -356,6 +357,10 @@ class App // The program's one App, created on first use. App &app(); +// Text for the kit's fonts, which are baked for ASCII: accented letters fold +// to plain ones ("Pokรฉmon" reads "Pokemon"). +std::string plain_text(const char *text); + } // namespace rommps // The program hands the kit's renderer over (rommps.cpp is compiled in a diff --git a/platform/ps5/app/rommps/examples/rommps/kit/rows.cpp b/platform/ps5/app/rommps/examples/rommps/kit/rows.cpp index 7e41936..029b9f5 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/rows.cpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/rows.cpp @@ -36,15 +36,17 @@ RowEvent RowList::handle(const std::vector &rows, const hui::InputFrame &in if (count == 0) return event; focus_ = std::clamp(focus_, 0, count - 1); + // A section's name can't hold the focus: the first row after it does + // (or, at the end of the list, the last one before it). if (rows[static_cast(focus_)].kind == RowKind::header) { int at = focus_; while (at < count && rows[static_cast(at)].kind == RowKind::header) - at++; - if (at == count) + ++at; + if (at == count) for (at = focus_; at > 0 && rows[static_cast(at)].kind == RowKind::header;) --at; - focus_ at; + focus_ = at; } const Row &row = rows[static_cast(focus_)]; switch (input.nav) @@ -52,7 +54,7 @@ RowEvent RowList::handle(const std::vector &rows, const hui::InputFrame &in case Direction::up: case Direction::down: { - const int next = focus_ + (input.nav == Direction::down ? 1 : -1); + const int step = input.nav == Direction::down ? 1 : -1; int next = focus_ + step; while (next >= 0 && next < count && rows[static_cast(next)].kind == RowKind::header) next += step; @@ -129,18 +131,17 @@ void RowList::draw(hui::gfx::DrawList &list, const hui::ui::Fonts &fonts, const for (int i = 0; i < static_cast(rows.size()); ++i) { const Row &row = rows[static_cast(i)]; + const float y = bounds.y + static_cast(i) * kRowHeight - scroll_.value; + if (y + kRowHeight < bounds.y || y > bounds.y + bounds.h) + continue; if (row.kind == RowKind::header) { std::string caps = row.label; for (char &ch : caps) ch = static_cast(std::toupper(static_cast(ch))); - ui::text(list, font.semibold, caps, bounds.x + 32, y + kRowHeight - 20, 16, look.muted, - hui::gfx::Align::left, 3.0f); + ui::text(list, fonts.semibold, caps, bounds.x + 32, y + kRowHeight - 20, 18, look.muted); continue; } - const float y = bounds.y + static_cast(i) * kRowHeight - scroll_.value; - if (y + kRowHeight < bounds.y || y > bounds.y + bounds.h) - continue; const bool focused = i == focus_; const float dim = row.enabled ? 1.0f : 0.45f; const Color ink = focused ? look.on_highlight : row.danger ? look.danger : look.text; diff --git a/platform/ps5/app/rommps/examples/rommps/kit/rows.hpp b/platform/ps5/app/rommps/examples/rommps/kit/rows.hpp index e793d49..dc62175 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/rows.hpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/rows.hpp @@ -74,7 +74,7 @@ struct Named }; inline constexpr Named kPolicies[] = { {"ask", "Ask me"}, {"newest", "Keep the newest"}, {"local", "Keep this console's"}, {"server", "Keep RomM's"}}; -inline constexpr Named kStates[] = {{"off", "Off"}, {"upload", "Upload only"}, {"sync", "Upload and download"}}; +inline constexpr Named kStates[] = {{"off", "Off"}, {"upload", "Back up to RomM"}, {"sync", "Back up and restore"}}; inline constexpr int kIntervals[] = {0, 15, 30, 60, 120, 360}; const char *label_of(std::span options, const std::string &id); diff --git a/platform/ps5/app/rommps/examples/rommps/kit/screen.cpp b/platform/ps5/app/rommps/examples/rommps/kit/screen.cpp index 9bf76ab..18a8f8e 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/screen.cpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/screen.cpp @@ -8,7 +8,8 @@ // what the pad asks for. // // - L1 / R1 move between Home, Library and Downloads. -// - Home: the sync at a glance; Cross syncs now. +// - Home: the sync at a glance; Cross syncs now. Beside it: the conflicts +// to settle, the sync log and the saves kept in sync (sync_views.hpp). // - Library (library_page.hpp): the games on this console and RomM's // platforms; a platform's games in a grid with an A to Z bar; search. The // backdrop eases toward the focused cover's colours; Cross opens a frosted @@ -29,6 +30,7 @@ #include "library_page.hpp" #include "settings_page.hpp" #include "setup_page.hpp" +#include "sync_views.hpp" #include "ui/glyphs.hpp" #include "ui/motion.hpp" @@ -127,7 +129,7 @@ class RommPS final : public app::Concept const bool calling = settings_.call().active(); if (calling) settings_.call().update(input, dt, feedback); - if (ready && !sheet_open_ && !calling && !setup_.editing()) + if (ready && !sheet_open_ && !calling && !setup_.editing() && !view_.active()) { if (input.is_pressed(Action::page_prev) || input.is_pressed(Action::page_next)) { @@ -164,6 +166,8 @@ class RommPS final : public app::Concept feedback.play(audio::Cue::focus); } } + else if (view_.active()) + view_.update(app_, input, dt, feedback); else if (tab_ == kHome) update_home(input, feedback); else if (tab_ == kLibrary) @@ -228,6 +232,8 @@ class RommPS final : public app::Concept setup_.draw(list, context_.fonts, L, app_, clock_); else if (!ready) draw_not_ready(list); + else if (view_.active()) + view_.draw(list, context_.fonts, L, app_, clock_); else if (tab_ == kHome) draw_home(list); else if (tab_ == kLibrary) @@ -306,9 +312,27 @@ class RommPS final : public app::Concept nudge_.trigger(); } + // Home's buttons: Sync now, then the lists beside it. + static constexpr int kHomeButtons = 4; + void update_home(const InputFrame &input, app::Feedback &feedback) { - if (input.is_pressed(Action::confirm)) + if (!app_.config().save_sync) + return; // nothing to sync: Settings turns it back on + if (input.nav == Direction::left || input.nav == Direction::right) + { + const int next = home_focus_ + (input.nav == Direction::right ? 1 : -1); + if (next >= 0 && next < kHomeButtons) + { + home_focus_ = next; + feedback.play(audio::Cue::focus); + } + else if (!input.nav_repeat) + refuse(feedback, input.nav == Direction::right ? 1.0f : -1.0f); + } + if (!input.is_pressed(Action::confirm)) + return; + if (home_focus_ == 0) { if (app_.status().syncing) { @@ -318,7 +342,12 @@ class RommPS final : public app::Concept app_.sync_now(); feedback.play(audio::Cue::launch); feedback.rumble(0.5f, 0.12f); + return; } + static const rommps::SyncView::Kind kinds[] = {rommps::SyncView::kConflicts, rommps::SyncView::kActivity, + rommps::SyncView::kTracked}; + view_.open(app_, kinds[home_focus_ - 1]); + feedback.play(audio::Cue::select); } void open_sheet() @@ -337,7 +366,7 @@ class RommPS final : public app::Concept { std::string label; bool enabled; - int kind; // 0 download, 1 cancel, 2 close, 3 remove + int kind; // 0 download, 1 cancel, 2 close, 3 remove, 4 saves and states }; std::vector sheet_actions() const @@ -351,7 +380,10 @@ class RommPS final : public app::Concept else if (d && d->active()) actions.push_back({"Hold to cancel download", true, 1}); else if (g && g->installed) + { + actions.push_back({"Saves and states", true, 4}); actions.push_back({"Hold to delete this game", true, 3}); + } else if (p && p->profile.empty()) actions.push_back({"No emulator for this platform", false, 0}); else @@ -468,6 +500,12 @@ class RommPS final : public app::Concept feedback.rumble(0.7f, 0.18f); sheet_open_ = false; } + else if (a.kind == 4 && g) + { + feedback.play(audio::Cue::select); + sheet_open_ = false; + view_.open(app_, rommps::SyncView::kGame, g->id, g->name); + } else { feedback.play(audio::Cue::modal_close); @@ -602,6 +640,13 @@ class RommPS final : public app::Concept list.push_opacity(in); const float x = kMargin + 30.0f * (1.0f - in); ui::text(list, fonts.semibold, "SAVE SYNC", x, 212, 20, accent(), gfx::Align::left, 4.0f); + if (!app_.config().save_sync) + { + ui::text(list, fonts.display, "Save sync is off", x - 4, 304, 80, L.text); + ui::text(list, fonts.regular, "RomM is only for games. Turn it on in Settings.", x, 360, 28, L.muted); + list.pop_opacity(); + return; + } // The headline only says synced when the last sync went through. std::string headline = s.syncing ? "Syncing" : !s.sync_count ? "Not synced yet" @@ -610,23 +655,39 @@ class RommPS final : public app::Concept : s.conflicts > 1 ? std::to_string(s.conflicts) + " saves need you" : "Your saves are synced"; ui::text(list, fonts.display, headline, x - 4, 304, 80, L.text); - // Saves changed in both places are settled in the web UI, for now. - char web[96]; - std::snprintf(web, sizeof web, "http://%s:%d", s.ip.c_str(), s.port); - std::string line = s.syncing ? (s.phase.empty() ? "Working" : s.phase) - : s.conflicts > 0 && !s.ip.empty() ? std::string("Choose which copy to keep at ") + web - : s.sync_count ? "Last sync " + ago(std::difftime(std::time(nullptr), s.last_run)) + - " \xC2\xB7 " + s.last_result - : "No sync yet"; + std::string line = s.syncing ? (s.phase.empty() ? "Working" : s.phase) + : s.conflicts > 0 ? std::string("Open Conflicts to choose which copy to keep") + : s.sync_count ? "Last sync " + ago(std::difftime(std::time(nullptr), s.last_run)) + + " \xC2\xB7 " + s.last_result + : "No sync yet"; ui::text(list, fonts.regular, context_.fonts.regular.font->fit(line, 28, 1500), x, 360, 28, L.muted); - // Sync now - const Rect button{x, 410, 260, 68}; - list.glow(button, 34, 18, accent().with_alpha(0.35f)); - list.rounded_rect(button, 34, s.syncing ? L.button.with_alpha(0.4f) : L.button); - ui::draw_button(list, fonts, L.covers ? ui::GlyphStyle::light() : ui::GlyphStyle::dark(), ui::Button::cross, - button.x + 24, button.cy(), 34); - ui::text(list, fonts.semibold, "Sync now", button.x + 76, button.cy() + 10, 28, L.on_button); + // Sync now, and the lists beside it; the focused one is lit. + std::string labels[kHomeButtons] = {"Sync now", "Conflicts", "Activity", "Tracked saves"}; + if (s.conflicts > 0) + labels[1] += " (" + std::to_string(s.conflicts) + ")"; + float bx = x; + for (int i = 0; i < kHomeButtons; ++i) + { + const bool focused = i == home_focus_; + const float w = fonts.semibold.font->measure(labels[i], 28) + (focused ? 104.0f : 64.0f); + const Rect button{bx, 410, w, 68}; + if (focused) + { + list.glow(button, 34, 18, accent().with_alpha(0.35f)); + list.rounded_rect(button, 34, i == 0 && s.syncing ? L.button.with_alpha(0.4f) : L.button); + ui::draw_button(list, fonts, L.covers ? ui::GlyphStyle::light() : ui::GlyphStyle::dark(), ui::Button::cross, + button.x + 24, button.cy(), 34); + ui::text(list, fonts.semibold, labels[i], button.x + 76, button.cy() + 10, 28, L.on_button); + } + else + { + draw_panel(list, button, 34); + ui::text(list, fonts.semibold, labels[i], button.x + 32, button.cy() + 10, 28, + i == 1 && s.conflicts ? L.warning : L.panel_text); + } + bx += w + 20; + } // Tiles char value[64]; @@ -641,7 +702,7 @@ class RommPS final : public app::Concept tiles[1] = {"CONFLICTS", value}; std::snprintf(value, sizeof value, "%d up \xC2\xB7 %d down", s.last_up, s.last_down); tiles[2] = {"LAST SYNC", s.sync_count ? value : "-"}; - tiles[3] = {"ROMM SYNC", "v" + s.version}; + tiles[3] = {"ROMMPS", "v" + s.version}; for (int i = 0; i < 4; ++i) { const float appear = tween::stagger(tab_age_, 2 + i, 0.07f, 0.5f); @@ -654,8 +715,6 @@ class RommPS final : public app::Concept 46, i == 1 && s.conflicts ? L.warning : L.panel_text); list.pop_opacity(); } - ui::text(list, fonts.regular, context_.fonts.regular.font->fit(s.server, 22, 1700), kMargin, 850, 22, - L.muted.with_alpha(0.7f * L.muted.a)); list.pop_opacity(); } @@ -701,7 +760,7 @@ class RommPS final : public app::Concept } if (downloads.empty()) { - ui::text(list, fonts.regular, "Nothing downloading. Pick a game in Library to download it.", kMargin, 310, 28, + ui::text(list, fonts.regular, "Nothing downloading.", kMargin, 310, 28, L.muted); list.pop_opacity(); return; @@ -901,12 +960,21 @@ class RommPS final : public app::Concept ui::draw_hints(list, fonts, style, hints, 2, 1824, true); return; } + if (view_.active()) + { + const std::vector hints = view_.hints(); + ui::draw_hints(list, fonts, style, hints.data(), static_cast(hints.size()), 1824, true); + return; + } list.push_opacity(tween::stagger(age_, 8, 0.08f, 0.5f) * (1.0f - sheet_.value)); const ui::Hint pages{ui::Button::l1, "Pages", ui::Button::r1}; + const ui::Hint close{ui::Button::options, "Hold to close"}; // rommps.cpp's HoldToLeave if (tab_ == kHome) { - const ui::Hint hints[] = {pages, {ui::Button::cross, "Sync now"}}; - ui::draw_hints(list, fonts, style, hints, 2, 1824, true); + std::vector hints{close, pages}; + if (app_.config().save_sync) + hints.push_back({ui::Button::cross, home_focus_ == 0 ? "Sync now" : "Open"}); + ui::draw_hints(list, fonts, style, hints.data(), static_cast(hints.size()), 1824, true); } else if (tab_ == kLibrary) { @@ -931,8 +999,8 @@ class RommPS final : public app::Concept } else { - const ui::Hint hints[] = {pages, {ui::Button::cross, settings_.cross_hint(app_)}}; - ui::draw_hints(list, fonts, style, hints, 2, 1824, true); + const ui::Hint hints[] = {close, pages, {ui::Button::cross, settings_.cross_hint(app_)}}; + ui::draw_hints(list, fonts, style, hints, 3, 1824, true); } list.pop_opacity(); } @@ -940,6 +1008,8 @@ class RommPS final : public app::Concept app::Context &context_; App &app_; int tab_ = kLibrary; + int home_focus_ = 0; // Home's button with the focus + rommps::SyncView view_; // a list opened from Home or a game's sheet float tab_age_ = 0.0f; tween::Spring tab_position_; float age_ = 0.0f; diff --git a/platform/ps5/app/rommps/examples/rommps/kit/settings_page.cpp b/platform/ps5/app/rommps/examples/rommps/kit/settings_page.cpp index 81c5a4e..c8b0775 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/settings_page.cpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/settings_page.cpp @@ -3,10 +3,12 @@ // SPDX-License-Identifier: GPL-3.0-or-later #include "settings_page.hpp" +#include "cJSON.h" #include "core/tween.hpp" #include #include +#include namespace rommps { @@ -48,23 +50,25 @@ void SettingsPage::enter(App &app) on_credits_ = false; } -std::vector SettingsPage::rows(const App &app) const +std::vector SettingsPage::rows(const App &app, std::vector *ids) const { const Config &c = app.config(); const Update &u = app.update(); std::vector r(kCount); const Look &l = look(current_look()); + r[kSaveSync] = {RowKind::toggle, "Save sync", "", c.save_sync ? "" : "RomM is only for games", + c.save_sync}; r[kLook] = {RowKind::choice, "Look", l.name, l.family}; - r[kInterval] = {RowKind::choice, "Sync every", interval_label(c.sync_interval_min), "Besides the syncs below"}; - r[kOnExit] = {RowKind::toggle, "Sync when a game closes", "", "Uploads what the game saved", c.sync_on_game_exit}; - r[kOnStart] = {RowKind::toggle, "Sync when a game starts", "", "Fetches newer saves before you play", + r[kInterval] = {RowKind::choice, "Sync every", interval_label(c.sync_interval_min), ""}; + r[kOnExit] = {RowKind::toggle, "Sync when a game closes", "", "", c.sync_on_game_exit}; + r[kOnStart] = {RowKind::toggle, "Sync when a game starts", "", "", c.sync_on_game_start}; r[kOnChange] = {RowKind::toggle, "Upload saves as they change", "", "While you play", c.sync_on_change}; - r[kStates] = {RowKind::choice, "Save states", label_of(rommps::kStates, c.states), "Besides the saves themselves"}; + r[kStates] = {RowKind::choice, "Save states", label_of(rommps::kStates, c.states), ""}; r[kPolicy] = {RowKind::choice, "A save changed in both places", label_of(kPolicies, c.conflict_policy), - "On this console and on RomM since the last sync"}; + ""}; r[kConcurrency] = {RowKind::choice, "Downloads at once", std::to_string(c.download_concurrency), ""}; - r[kNotify] = {RowKind::toggle, "Notifications", "", "On the console when a sync ends or fails", c.notify}; + r[kNotify] = {RowKind::toggle, "Notifications", "", "", c.notify}; r[kUpdateCheck] = {RowKind::toggle, "Look for updates every day", "", "", c.update_check}; { const Status &s = app.status(); @@ -82,22 +86,22 @@ std::vector SettingsPage::rows(const App &app) const else if (s.covers_total > 0) std::snprintf(detail, sizeof detail, "All %d covers are on the console", s.covers_total); else - std::snprintf(detail, sizeof detail, "Faster browsing: every game's cover, kept up to date"); + std::snprintf(detail, sizeof detail, "%s", ""); r[kCovers] = {RowKind::toggle, "Keep all covers on the console", "", detail, c.cover_cache}; } Row &update = r[kUpdate]; update.kind = RowKind::action; - update.label = "RomM Sync " + (u.current.empty() ? app.status().version : u.current); + update.label = "RommPS " + (u.current.empty() ? app.status().version : u.current); if (!u.self_update) { - // RommPS brings RomM Sync with it: the store updates both. + // The app brings its background service with it: the store updates both. update.label = std::string("RommPS ") + App::kMinPayload; update.value = u.state == "checking" ? "Checking" : "Check for updates"; update.enabled = u.state != "checking"; update.detail = u.available ? "RommPS " + u.latest + " is out: update it in ProsperoStore" : u.state == "error" ? (u.error.empty() ? u.message : u.error) - : u.latest.empty() ? "Updates come from ProsperoStore, with RomM Sync in them" + : u.latest.empty() ? "Updates come from ProsperoStore" : "Up to date"; } else if (u.busy()) @@ -114,7 +118,7 @@ std::vector SettingsPage::rows(const App &app) const else if (u.available) { update.value = "Install " + u.latest; - update.detail = "RomM Sync restarts with the new version"; + update.detail = "RommPS restarts with the new version"; } else { @@ -125,16 +129,56 @@ std::vector SettingsPage::rows(const App &app) const : "Up to date"; } - r[kEmulators] = {RowKind::action, "Emulators", "", "Which emulators RomM Sync uses, and for which systems"}; - r[kSetup] = {RowKind::action, "Set up again", "", "Pick your emulators again. Background syncs wait until it's done"}; + r[kEmulators] = {RowKind::action, "Emulators", "", ""}; + r[kSetup] = {RowKind::action, "Set up again", "", ""}; r[kForget] = {RowKind::action, "Unpair from RomM", "", "Files on this console are kept"}; r[kForget].danger = true; + r[kDiagnostics] = {RowKind::action, "Diagnostic bundle", diag_ == 1 ? "Making" : "", + diag_ == 2 ? "Saved to " + diag_where_ + : diag_ == 3 ? "Couldn't make it" + : "Logs for a bug report, nothing personal"}; + r[kDiagnostics].enabled = diag_ != 1; if (armed_ == kSetup || armed_ == kForget) r[static_cast(armed_)].value = "Press again to confirm"; if (!c.known) for (int i = kInterval; i <= kCovers; ++i) r[static_cast(i)].enabled = false; - return r; + + // In sections. + static const struct + { + const char *name; + int ids[7]; + } kSections[] = { + {"Sync", {kSaveSync, kInterval, kOnExit, kOnStart, kOnChange, kPolicy, kStates}}, + {"Downloads", {kConcurrency, kCovers, -1}}, + {"Look and notifications", {kLook, kNotify, -1}}, + {"Emulators", {kEmulators, kSetup, -1}}, + {"Updates", {kUpdate, kUpdateCheck, -1}}, + {"RomM", {kForget, -1}}, + {"Help", {kDiagnostics, -1}}, + }; + std::vector out; + if (ids) + ids->clear(); + for (const auto §ion : kSections) + { + out.push_back({RowKind::header, section.name}); + if (ids) + ids->push_back(kHeader); + for (int id : section.ids) + { + if (id < 0) + break; + // Save sync off: just the switch to turn it back on. + if (!c.save_sync && id >= kInterval && id <= kPolicy) + continue; + out.push_back(r[static_cast(id)]); + if (ids) + ids->push_back(id); + } + } + return out; } const char *SettingsPage::cross_hint(const App &app) const @@ -142,7 +186,7 @@ const char *SettingsPage::cross_hint(const App &app) const if (on_credits_) return "Answer"; const std::vector r = rows(app); - const Row &row = r[static_cast(std::clamp(list_.focus(), 0, kCount - 1))]; + const Row &row = r[static_cast(std::clamp(list_.focus(), 0, static_cast(r.size()) - 1))]; switch (row.kind) { case RowKind::toggle: @@ -157,12 +201,14 @@ const char *SettingsPage::cross_hint(const App &app) const void SettingsPage::update(App &app, const hui::InputFrame &input, float dt, hui::ui::Feedback &feedback) { avatar_texture(static_cast(rommps_renderer())); - const std::vector r = rows(app); + std::vector ids; + const std::vector r = rows(app, &ids); + const int count = static_cast(r.size()); armed_age_ += dt; // Below the last row: the author's portrait, and the call behind it. if (on_credits_) { - list_.update(dt, kCount, kRows.h); + list_.update(dt, count, kRows.h); if (input.nav == hui::Direction::up || input.is_pressed(hui::Action::back)) { on_credits_ = false; @@ -177,21 +223,26 @@ void SettingsPage::update(App &app, const hui::InputFrame &input, float dt, hui: list_.refuse(feedback); return; } - if (input.nav == hui::Direction::down && !input.nav_repeat && list_.focus() == kCount - 1) + if (input.nav == hui::Direction::down && !input.nav_repeat && list_.focus() == count - 1) { on_credits_ = true; feedback.play(hui::audio::Cue::focus); return; } - if (armed_ >= 0 && (armed_age_ > kArmedFor || list_.focus() != armed_)) + const int focused_id = ids[static_cast(std::clamp(list_.focus(), 0, count - 1))]; + if (armed_ >= 0 && (armed_age_ > kArmedFor || focused_id != armed_)) armed_ = -1; const RowEvent e = list_.handle(r, input, feedback); - list_.update(dt, kCount, kRows.h); + list_.update(dt, count, kRows.h); if (e.row < 0) return; + const int id = ids[static_cast(e.row)]; const Config &c = app.config(); - switch (e.row) + switch (id) { + case kSaveSync: + app.set_config(flag_json("save_sync", !c.save_sync), [](Config &k) { k.save_sync = !k.save_sync; }); + break; case kLook: set_look((current_look() + e.step + look_count()) % look_count()); break; @@ -249,16 +300,27 @@ void SettingsPage::update(App &app, const hui::InputFrame &input, float dt, hui: case kEmulators: emulators_asked_ = true; break; + case kDiagnostics: + diag_ = 1; + app.post("/api/diagnostics", "{}", [this](const Response &r) { + std::unique_ptr j(r.ok() ? r.json() : nullptr, cJSON_Delete); + const cJSON *usb = cJSON_GetObjectItemCaseSensitive(j.get(), "usb"), + *path = cJSON_GetObjectItemCaseSensitive(j.get(), "path"); + const cJSON *at = cJSON_IsString(usb) ? usb : path; + diag_ = cJSON_IsString(at) ? 2 : 3; + diag_where_ = cJSON_IsString(at) ? at->valuestring : ""; + }); + break; case kSetup: case kForget: - if (armed_ != e.row) + if (armed_ != id) { - armed_ = e.row; + armed_ = id; armed_age_ = 0.0f; break; } armed_ = -1; - if (e.row == kSetup) + if (id == kSetup) app.setup_restart(); else app.pair_forget(); diff --git a/platform/ps5/app/rommps/examples/rommps/kit/settings_page.hpp b/platform/ps5/app/rommps/examples/rommps/kit/settings_page.hpp index be0001b..9e1fdc1 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/settings_page.hpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/settings_page.hpp @@ -1,9 +1,12 @@ -// RommPS: the Settings tab. The look, when and what RomM Sync syncs, its -// updates, the setup again and unpairing; an About panel beside them. +// RommPS: the Settings tab, in sections: when and what it syncs, downloads, +// the look and notifications, emulators, updates and the RomM connection; an +// About panel beside them. // // SPDX-License-Identifier: GPL-3.0-or-later #pragma once +#include + #include "credits.hpp" #include "rommps_app.hpp" #include "rows.hpp" @@ -34,6 +37,7 @@ class SettingsPage private: enum Id { + kSaveSync, kLook, kInterval, kOnExit, @@ -49,14 +53,20 @@ class SettingsPage kEmulators, kSetup, kForget, - kCount + kDiagnostics, + kCount, + kHeader = -1 // a section's name }; - std::vector rows(const App &app) const; + // The rows as shown, sections included; ids[i] is row i's Id. + std::vector rows(const App &app, std::vector *ids = nullptr) const; RowList list_; bool on_credits_ = false; bool emulators_asked_ = false; // the focus is on the author's portrait, below the rows CodecCall call_; + // The diagnostic bundle: 0 not asked, 1 being made, 2 saved (where_), 3 failed. + int diag_ = 0; + std::string diag_where_; int armed_ = -1; // a row that does something lasting, waiting for its second press float armed_age_ = 0.0f; }; diff --git a/platform/ps5/app/rommps/examples/rommps/kit/setup_page.cpp b/platform/ps5/app/rommps/examples/rommps/kit/setup_page.cpp index f8a7d51..03dd458 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/setup_page.cpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/setup_page.cpp @@ -357,6 +357,12 @@ void SetupPage::load_emulators(App &app) const cJSON *core; cJSON_ArrayForEach(core, cJSON_GetObjectItemCaseSensitive(c, "cores")) if (cJSON_IsString(core)) e.cores.push_back(core->valuestring); + const cJSON *d; + cJSON_ArrayForEach(d, cJSON_GetObjectItemCaseSensitive(c, "dirs")) + e.dirs[d->string] = {str(d, "rom_dir"), str(d, "save_dir"), str(d, "state_dir")}; + const cJSON *fx; + cJSON_ArrayForEach(fx, cJSON_GetObjectItemCaseSensitive(c, "fixed")) if (cJSON_IsString(fx)) + e.fixed.insert(fx->valuestring); const cJSON *p; cJSON_ArrayForEach(p, cJSON_GetObjectItemCaseSensitive(cJSON_GetObjectItemCaseSensitive(c, "profile"), "platforms")) { @@ -400,6 +406,7 @@ void SetupPage::load_emulators(App &app) return; choices_.clear(); also_.clear(); + custom_dirs_.clear(); // Folders picked before: custom- profiles for systems, and // custom-- for emulators with no preset. cJSON_ArrayForEach(p, profiles) @@ -424,10 +431,10 @@ void SetupPage::load_emulators(App &app) cJSON_ArrayForEach(p, profiles) if (e.root == str(p, "root") && !cJSON_IsFalse(cJSON_GetObjectItemCaseSensitive(p, "enabled"))) mine = p; - e.fresh = e.ready && !mine; e.on = e.ready && mine != nullptr; if (!mine) continue; + e.sync = *str(mine, "sync") ? str(mine, "sync") : "all"; auto listed = [&](const char *list, const std::string &key) { const cJSON *x; cJSON_ArrayForEach(x, cJSON_GetObjectItemCaseSensitive(mine, list)) if (cJSON_IsString(x) && @@ -441,12 +448,37 @@ void SetupPage::load_emulators(App &app) else if (!listed("exclude", sy.key)) choices_[sy.key] = e.root; } + // Folders picked for a system: set on its platform entry. + const cJSON *pe; + cJSON_ArrayForEach(pe, cJSON_GetObjectItemCaseSensitive(mine, "platforms")) + { + const cJSON *key = cJSON_GetArrayItem(cJSON_GetObjectItemCaseSensitive(pe, "romm"), 0); + if (!cJSON_IsString(key)) + continue; + static const char *const kDirs[] = {"rom_dir", "save_dir", "state_dir"}; + std::array picked; + bool any = false; + for (int k = 0; k < 3; ++k) + { + picked[static_cast(k)] = str(pe, kDirs[k]); + any = any || !picked[static_cast(k)].empty(); + } + if (any) + custom_dirs_[key->valuestring][e.root] = picked; + } } }); }); } std::vector SetupPage::conflicts() const +{ + std::vector out = systems(); + out.erase(std::remove_if(out.begin(), out.end(), [](const Conflict &c) { return c.options.size() < 2; }), out.end()); + return out; +} + +std::vector SetupPage::systems() const { std::vector out; for (const Emulator &e : emulators_) @@ -467,7 +499,8 @@ std::vector SetupPage::conflicts() const it->options.push_back({e.root, s.label, e.kind == "retroarch"}); } } - out.erase(std::remove_if(out.begin(), out.end(), [](const Conflict &c) { return c.options.size() < 2; }), out.end()); + std::stable_sort(out.begin(), out.end(), + [](const Conflict &a, const Conflict &b) { return system_name(a.key) < system_name(b.key); }); return out; } @@ -510,14 +543,28 @@ std::vector SetupPage::uncovered() const return out; } -void SetupPage::open_picker(App &app, const std::string &key, int which) +void SetupPage::open_picker(App &app, const std::string &key, int which, const std::string &root) { picking_ = true; pick_key_ = key; pick_which_ = which; - const Own &o = own_[key]; + pick_root_ = root; // Start where the folder is, or where the games are, or at the drives. - std::string start = !o.folder[which].empty() ? o.folder[which] : o.folder[0]; + std::string start; + if (root.empty()) + { + const Own &o = own_[key]; + start = !o.folder[which].empty() ? o.folder[which] : o.folder[0]; + } + else + { + const std::array &d = custom_dirs_[key][root]; + start = !d[static_cast(which)].empty() ? d[static_cast(which)] : d[0]; + if (start.empty()) + for (const Emulator &e : emulators_) + if (e.root == root && e.dirs.count(key)) + start = e.dirs.at(key)[static_cast(which)]; + } browse(app, start); } @@ -588,7 +635,10 @@ void SetupPage::update_picker(App &app, const hui::InputFrame &input, float dt, { if (i == 0) { - own_[pick_key_].folder[pick_which_] = fs_path_; + if (pick_root_.empty()) + own_[pick_key_].folder[pick_which_] = fs_path_; + else + custom_dirs_[pick_key_][pick_root_][static_cast(pick_which_)] = fs_path_; picking_ = false; return; } @@ -608,7 +658,10 @@ void SetupPage::draw_picker(hui::gfx::DrawList &list, const hui::ui::Fonts &font { static const char *const kWhat[] = {"games", "saves", "save states"}; const auto it = own_.find(pick_key_); - const std::string name = it != own_.end() ? it->second.name : pick_key_; + std::string name = it != own_.end() ? it->second.name : system_name(pick_key_); + for (const Emulator &e : emulators_) + if (!pick_root_.empty() && e.root == pick_root_) + name = system_name(pick_key_) + " in " + e.name; char title[160]; std::snprintf(title, sizeof title, "Choose the %s folder", kWhat[pick_which_]); draw_heading(list, fonts, look, title, @@ -629,11 +682,18 @@ void SetupPage::draw_picker(hui::gfx::DrawList &list, const hui::ui::Fonts &font std::vector SetupPage::emulator_rows(const App &app, std::vector *refs) const { std::vector rows; + // Save sync off: only the games folders matter. In the first setup it's on until the question is answered. + const bool saves = editing_ ? app.config().save_sync : save_sync_; auto add = [&](Row row, RowRef ref) { rows.push_back(std::move(row)); if (refs) refs->push_back(std::move(ref)); }; + auto shorten = [](std::string value) { + if (value.size() > 34) + value = "\xE2\x80\xA6" + value.substr(value.size() - 33); + return value; + }; // Something set up by its folders: a switch, then its three folders when on. auto add_own = [&](const std::string &key, const std::string &detail) { const auto it = own_.find(key); @@ -646,9 +706,7 @@ std::vector SetupPage::emulator_rows(const App &app, std::vector *r static const char *const kLabels[] = {" Games folder", " Saves folder", " States folder"}; for (int k = 0; k < 3; ++k) { - std::string value = o.folder[k]; - if (value.size() > 34) - value = "\xE2\x80\xA6" + value.substr(value.size() - 33); + std::string value = shorten(o.folder[k]); if (value.empty()) value = k == 0 ? "Choose" : "Same as games"; add({RowKind::action, kLabels[k], value, ""}, {RowRef::kOwnFolder, k, key}); @@ -663,9 +721,10 @@ std::vector SetupPage::emulator_rows(const App &app, std::vector *r add({RowKind::info, "Couldn't look for emulators", "", error_}, {}); else if (emulators_.empty()) add({RowKind::info, "No emulators found", "", - "Continue with RetroArch's usual folders. You can change them later."}, + "RetroArch's usual folders. You can change them later."}, {}); - add({RowKind::header, "Emulators"}, {} ); + else + add({RowKind::header, "Emulators on this console"}, {}); for (std::size_t i = 0; i < emulators_.size(); ++i) { const Emulator &e = emulators_[i]; @@ -678,8 +737,6 @@ std::vector SetupPage::emulator_rows(const App &app, std::vector *r continue; } std::string detail = e.kind == "retroarch" ? "RetroArch" : e.kind == "mednafen" ? "Mednafen" : "Standalone"; - if (e.fresh) - detail = "New \xC2\xB7 " + detail; std::vector names; for (const System &sy : e.systems) { @@ -698,29 +755,83 @@ std::vector SetupPage::emulator_rows(const App &app, std::vector *r detail += more; } add({RowKind::toggle, e.name, "", detail, e.on}, {RowRef::kEmulator, static_cast(i)}); + if (e.on && saves) + add({RowKind::choice, " Save sync", e.sync == "off" ? "Off" : e.sync == "saves" ? "Saves" : "Saves and states", ""}, + {RowRef::kEmuSync, static_cast(i)}); } - for (const Conflict &c : conflicts()) + // Then each system they play: which one plays it, and its folders. + for (const Conflict &c : systems()) { + add({RowKind::header, system_name(c.key)}, {}); const std::string main = chosen(c); std::string label; for (const Option &o : c.options) if (o.root == main) label = o.label; - add({RowKind::choice, system_name(c.key), label, "Games download here first"}, - {RowRef::kMain, -1, c.key}); + if (c.options.size() > 1) + add({RowKind::choice, "Emulator", label, "Games download here first"}, {RowRef::kMain, -1, c.key}); + else + add({RowKind::info, "Emulator", label, ""}, {}); + std::vector on = {}; + for (const Option &o : c.options) + if (o.root == main) + on.push_back(&o); // The others can play it too: the games linked in, one save where they keep the same kind. for (const Option &o : c.options) { if (o.root == main) continue; const auto set = also_.find(c.key); - const bool on = set != also_.end() && set->second.count(o.root); - add({RowKind::toggle, " Also in " + o.label, "", "Gets the same games too", on}, + const bool also = set != also_.end() && set->second.count(o.root); + add({RowKind::toggle, "Also in " + o.label, "", "Gets the same games too", also}, {RowRef::kAlso, -1, c.key, o.root}); + if (also) + on.push_back(&o); + } + // Its folders in each emulator that plays it: the ones found, or picked. + for (const Option *o : on) + { + const Emulator *em = nullptr; + for (const Emulator &e : emulators_) + if (e.root == o->root) + em = &e; + if (!em) + continue; + const std::string who = on.size() > 1 ? "Folders in " + em->name : std::string("Folders"); + if (em->fixed.size() >= 3) + { + add({RowKind::info, who, "Set by the emulator", ""}, {}); + continue; + } + const auto found = em->dirs.find(c.key); + const auto sys = custom_dirs_.find(c.key); + const bool custom = sys != custom_dirs_.end() && sys->second.count(o->root); + std::string detail = found != em->dirs.end() && !found->second[0].empty() ? "Games in " + found->second[0] : ""; + add({RowKind::choice, who, custom ? "My own" : "As found", custom ? "Pick each folder below" : detail}, + {RowRef::kFolders, -1, c.key, o->root}); + if (!custom) + continue; + static const char *const kLabels[] = {" Games folder", " Saves folder", " States folder"}; + static const char *const kKeys[] = {"rom_dir", "save_dir", "state_dir"}; + for (int k = 0; k < (saves ? 3 : 1); ++k) + { + const std::string picked = sys->second.at(o->root)[static_cast(k)]; + const std::string def = found != em->dirs.end() ? found->second[static_cast(k)] : ""; + if (em->fixed.count(kKeys[k])) + { + add({RowKind::info, kLabels[k], "Set by the emulator", shorten(def)}, {}); + continue; + } + add({RowKind::action, kLabels[k], picked.empty() ? "As found" : shorten(picked), picked.empty() ? shorten(def) : ""}, + {RowRef::kSysFolder, k, c.key, o->root}); + } } } // Systems on the server no emulator here plays: off, or folders picked for them. - for (const std::string &key : uncovered()) + const std::vector left = uncovered(); + if (!left.empty()) + add({RowKind::header, "On RomM, with no emulator here"}, {}); + for (const std::string &key : left) { const Own &o = own_.at(key); char detail[96]; @@ -728,8 +839,9 @@ std::vector SetupPage::emulator_rows(const App &app, std::vector *r o.games, o.games == 1 ? "" : "s"); add_own(key, detail); } - if (has_ps2()) + if (saves && has_ps2()) { + add({RowKind::header, "PS2 and saving"}, {}); const bool backup_ok = at_least(app.status().server_version, 5, 3, 0); Row r{RowKind::choice, "PS2 memory cards", ps2_cards_ == "backup" ? "One card, backed up" : "One card per game", backup_ok ? "How RetroArch's PS2 core keeps its saves" : "Your RomM is older than 5.3: one card per game"}; @@ -769,6 +881,17 @@ void SetupPage::update_emulators(App &app, const hui::InputFrame &input, float d em.on = !em.on; return; } + case RowRef::kEmuSync: + { + static const char *const kModes[] = {"all", "saves", "off"}; + Emulator &em = emulators_[static_cast(ref.emulator)]; + int at = 0; + for (int i = 0; i < 3; ++i) + if (em.sync == kModes[i]) + at = i; + em.sync = kModes[((at + e.step) % 3 + 3) % 3]; + return; + } case RowRef::kMain: for (const Conflict &c : list) { @@ -803,6 +926,18 @@ void SetupPage::update_emulators(App &app, const hui::InputFrame &input, float d case RowRef::kOwnFolder: open_picker(app, ref.key, ref.emulator); return; + case RowRef::kFolders: + { + auto &sys = custom_dirs_[ref.key]; + if (sys.count(ref.root)) + sys.erase(ref.root); // back to the folders found + else + sys[ref.root] = {}; + return; + } + case RowRef::kSysFolder: + open_picker(app, ref.key, ref.emulator, ref.root); + return; case RowRef::kContinue: break; default: @@ -838,6 +973,36 @@ void SetupPage::update_emulators(App &app, const hui::InputFrame &input, float d if (o.root != main && set != also_.end() && set->second.count(o.root)) cJSON_AddItemToArray(extras, cJSON_CreateString(o.root.c_str())); } + // Each system: its main emulator, the ones on, and folders picked (the + // payload's "systems", which wins over "choices" and "also"). + cJSON *systems_json = cJSON_AddObjectToObject(body.get(), "systems"); + cJSON *sync_json = cJSON_AddObjectToObject(body.get(), "sync"); // each emulator's save sync + for (const Emulator &em : emulators_) + if (em.on) + cJSON_AddStringToObject(sync_json, em.root.c_str(), em.sync.c_str()); + for (const Conflict &c : systems()) + { + const std::string main = chosen(c); + cJSON *sy = cJSON_AddObjectToObject(systems_json, c.key.c_str()); + cJSON_AddStringToObject(sy, "main", main.c_str()); + cJSON *on = cJSON_AddArrayToObject(sy, "on"); + cJSON *folders = cJSON_AddObjectToObject(sy, "folders"); + const auto set = also_.find(c.key); + const auto picked = custom_dirs_.find(c.key); + for (const Option &o : c.options) + { + if (o.root != main && (set == also_.end() || !set->second.count(o.root))) + continue; + cJSON_AddItemToArray(on, cJSON_CreateString(o.root.c_str())); + if (picked == custom_dirs_.end() || !picked->second.count(o.root)) + continue; + const std::array &d = picked->second.at(o.root); + cJSON *f = cJSON_AddObjectToObject(folders, o.root.c_str()); + cJSON_AddStringToObject(f, "rom_dir", d[0].c_str()); + cJSON_AddStringToObject(f, "save_dir", d[1].c_str()); + cJSON_AddStringToObject(f, "state_dir", d[2].c_str()); + } + } cJSON *custom = cJSON_AddArrayToObject(body.get(), "custom"); for (const std::string &key : by_folders) { @@ -904,32 +1069,49 @@ void SetupPage::load_preview(App &app) }); } -std::vector SetupPage::preview_rows() const +// Preview rows: 0 save sync, 1 backed up, 2 continue, 3 check again. +std::vector SetupPage::preview_rows(std::vector *ids) const { std::vector rows; - rows.push_back({RowKind::toggle, "My saves are backed up", "", - "The first sync can replace saves here or on RomM. Keep a copy of any that matter", backed_up_}); + auto add = [&](Row r, int id) { + rows.push_back(std::move(r)); + if (ids) + ids->push_back(id); + }; + add({RowKind::toggle, "Sync saves with RomM", "", save_sync_ ? "Saves and states" : "Off: RomM is only for games", + save_sync_}, + 0); + if (!save_sync_) + { + add({RowKind::action, "Continue", "", ""}, 2); + return rows; + } + add({RowKind::toggle, "My saves are backed up", "", "The first sync can replace saves", backed_up_}, 1); Row next{RowKind::action, "Continue", "", backed_up_ ? "" : "Once your saves are backed up"}; next.enabled = backed_up_; - rows.push_back(next); + add(next, 2); Row again{RowKind::action, "Check again", "", ""}; again.enabled = !preview_.loading; - rows.push_back(again); + add(again, 3); return rows; } void SetupPage::update_preview(App &app, const hui::InputFrame &input, float dt, hui::ui::Feedback &feedback) { - if (!preview_.loaded && !preview_.loading) + if (save_sync_ && !preview_.loaded && !preview_.loading) load_preview(app); - const std::vector rows = preview_rows(); + std::vector ids; + const std::vector rows = preview_rows(&ids); const RowEvent e = rows_.handle(rows, input, feedback); rows_.update(dt, static_cast(rows.size()), kRows.h); - if (e.row == 0) + const int id = e.row >= 0 ? ids[static_cast(e.row)] : -1; + if (id == 0) + save_sync_ = !save_sync_; + else if (id == 1) backed_up_ = !backed_up_; - else if (e.row == 1) + else if (id == 2) go(kFinish); - else if (e.row == 2) + else if (id == 3) preview_ = Preview{}; if (input.is_pressed(Action::back)) { @@ -958,24 +1140,32 @@ void SetupPage::load_autostart(App &app) }); } -std::vector SetupPage::finish_rows() const +// Finish rows: 0 policy, 1 on change, 2 on exit, 3 on start, 4 notify, +// 5 interval, 6 autostart, 7 finish. The sync ones only with save sync on. +std::vector SetupPage::finish_rows(std::vector *ids) const { const Config &c = finish_; std::vector rows; - rows.push_back({RowKind::choice, "A save changed in both places", label_of(kPolicies, c.conflict_policy), - "On this console and on RomM since the last sync"}); - rows.push_back({RowKind::toggle, "Upload saves as they change", "", "While you play", c.sync_on_change}); - rows.push_back({RowKind::toggle, "Sync when a game closes", "", "Uploads what the game saved", c.sync_on_game_exit}); - rows.push_back({RowKind::toggle, "Sync when a game starts", "", "Fetches newer saves before you play", - c.sync_on_game_start}); - rows.push_back({RowKind::toggle, "Notifications", "", "On the console when a sync ends or fails", c.notify}); - rows.push_back({RowKind::choice, "Sync every", interval_label(c.sync_interval_min), "Besides the syncs above"}); + auto add = [&](Row r, int id) { + rows.push_back(std::move(r)); + if (ids) + ids->push_back(id); + }; + if (save_sync_) + { + add({RowKind::choice, "A save changed in both places", label_of(kPolicies, c.conflict_policy), ""}, 0); + add({RowKind::toggle, "Upload saves as they change", "", "While you play", c.sync_on_change}, 1); + add({RowKind::toggle, "Sync when a game closes", "", "", c.sync_on_game_exit}, 2); + add({RowKind::toggle, "Sync when a game starts", "", "", c.sync_on_game_start}, 3); + } + add({RowKind::toggle, "Notifications", "", "", c.notify}, 4); + if (save_sync_) + add({RowKind::choice, "Sync every", interval_label(c.sync_interval_min), ""}, 5); if (autostart_supported_) - rows.push_back({RowKind::toggle, "Start RomM Sync with the console", "", "With your HEN's payload autostart", - autostart_on_}); - Row done{RowKind::action, "Finish and sync", "", ""}; + add({RowKind::toggle, "Start RommPS with the console", "", "With your HEN's autostart", autostart_on_}, 6); + Row done{RowKind::action, save_sync_ ? "Finish and sync" : "Finish", "", ""}; done.enabled = !busy_; - rows.push_back(done); + add(done, 7); return rows; } @@ -987,7 +1177,8 @@ void SetupPage::update_finish(App &app, const hui::InputFrame &input, float dt, finish_known_ = true; load_autostart(app); } - const std::vector rows = finish_rows(); + std::vector ids; + const std::vector rows = finish_rows(&ids); const RowEvent e = rows_.handle(rows, input, feedback); rows_.update(dt, static_cast(rows.size()), kRows.h); if (input.is_pressed(Action::back)) @@ -997,7 +1188,7 @@ void SetupPage::update_finish(App &app, const hui::InputFrame &input, float dt, return; } const bool autostart_row = autostart_supported_; - switch (e.row) + switch (e.row >= 0 ? ids[static_cast(e.row)] : -1) { case 0: finish_.conflict_policy = step_option(kPolicies, finish_.conflict_policy, e.step); @@ -1042,6 +1233,7 @@ void SetupPage::update_finish(App &app, const hui::InputFrame &input, float dt, if (e.row < 0) break; Json body(cJSON_CreateObject(), cJSON_Delete); + cJSON_AddBoolToObject(body.get(), "save_sync", save_sync_); cJSON_AddStringToObject(body.get(), "conflict_policy", finish_.conflict_policy.c_str()); cJSON_AddBoolToObject(body.get(), "sync_on_change", finish_.sync_on_change); cJSON_AddBoolToObject(body.get(), "sync_on_game_exit", finish_.sync_on_game_exit); @@ -1057,7 +1249,7 @@ void SetupPage::update_finish(App &app, const hui::InputFrame &input, float dt, a->say("Couldn't finish the setup: " + r.message()); return; } - a->say("All set. The first sync has started"); + a->say(save_sync_ ? "All set. Let the first sync finish before you play" : "All set"); a->refresh_config(); a->refresh_now(); }); @@ -1223,7 +1415,7 @@ void SetupPage::draw(hui::gfx::DrawList &list, const hui::ui::Fonts &fonts, cons if (step_ == kEmulators) { draw_heading(list, fonts, look, editing_ ? "Emulators" : "Your emulators", - "Saves sync for the emulators you leave on, and games download to their folders."); + "Pick the emulators to use."); rows = emulator_rows(app); // Beside the list: the focused emulator's systems. const int focus = rows_.focus() - lead(); @@ -1241,7 +1433,8 @@ void SetupPage::draw(hui::gfx::DrawList &list, const hui::ui::Fonts &fonts, cons if (std::find(seen.begin(), seen.end(), n) != seen.end()) continue; seen.push_back(n); - if (y > kSide.y + kSide.h - 30) + // The last line that fits says there are more. + if (y + 34 > kSide.y + kSide.h - 24) { ui::text(list, fonts.regular, "\xE2\x80\xA6", kSide.x + 36, y, 22, look.panel_muted); break; @@ -1257,11 +1450,11 @@ void SetupPage::draw(hui::gfx::DrawList &list, const hui::ui::Fonts &fonts, cons } else if (step_ == kPreview) { - draw_heading(list, fonts, look, "Before the first sync", - preview_.loading ? "Comparing the saves on this console with RomM's" - : preview_.error.empty() - ? "What the first sync will do. Nothing has changed yet." - : "Couldn't compare: " + preview_.error); + draw_heading(list, fonts, look, save_sync_ ? "Before the first sync" : "Games only", + !save_sync_ ? "Turn save sync on any time in Settings." + : preview_.loading ? "Comparing your saves with RomM's" + : preview_.error.empty() ? "What the first sync will do." + : "Couldn't compare: " + preview_.error); rows = preview_rows(); struct Tile { @@ -1271,7 +1464,7 @@ void SetupPage::draw(hui::gfx::DrawList &list, const hui::ui::Fonts &fonts, cons } tiles[] = {{"GAMES HERE", preview_.games, false}, {"SAVES HERE", preview_.saves, false}, {"TO UPLOAD", preview_.up, false}, {"TO DOWNLOAD", preview_.down, false}, {"CHANGED ON BOTH", preview_.both, true}, {"IN SYNC", preview_.in_sync, false}}; - for (int i = 0; i < 6; ++i) + for (int i = 0; i < 6 && save_sync_; ++i) { const float appear = tween::stagger(step_age_, 2 + i, 0.06f, 0.5f); const Rect r{kMargin + static_cast(i) * 292, 372 + 20 * (1.0f - appear), 270, 150}; diff --git a/platform/ps5/app/rommps/examples/rommps/kit/setup_page.hpp b/platform/ps5/app/rommps/examples/rommps/kit/setup_page.hpp index 394f443..f174255 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/setup_page.hpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/setup_page.hpp @@ -2,8 +2,9 @@ // // 1. the RomM server's address, typed on the kit's on-screen keyboard; // 2. the code to approve in RomM (its device pairing), until it's approved; -// 3. the emulators found on the console, and which one plays a system -// several of them can; +// 3. the emulators found on the console, then each system they play: which +// one plays it when several can, and its folders (the ones found, or +// folders the user picks); // 4. what the first sync would do, and a word about backups; // 5. when to sync, then the first sync. // @@ -17,6 +18,7 @@ #include "rows.hpp" #include "ui/components/keyboard.hpp" +#include #include #include #include @@ -72,9 +74,13 @@ class SetupPage std::vector cores; std::vector systems; bool on = true; + std::string sync = "all"; // its save sync: "all", "saves" (no states) or "off" bool ready = true; // false: found, no preset yet (set up by its folders, like a system with no emulator) - bool fresh = false; // found since the last setup std::string note; + // Its folders for each system when left as they are (detection's + // "dirs"): games, saves, states; and which it doesn't let you change. + std::map> dirs; + std::set fixed; // "rom_dir", "save_dir", "state_dir" }; // What a row of the emulator step does. struct RowRef @@ -83,11 +89,14 @@ class SetupPage { kNone, kEmulator, + kEmuSync, // an emulator's save sync kMain, kAlso, kPs2, kOwn, kOwnFolder, + kFolders, // a system's folders in an emulator: as found, or picked + kSysFolder, // one of them (emulator: 0 games, 1 saves, 2 states) kContinue } kind = kNone; int emulator = -1; // or, for kOwnFolder, which folder (0 games, 1 saves, 2 states) @@ -119,19 +128,21 @@ class SetupPage void load_emulators(App &app); void load_preview(App &app); void load_autostart(App &app); - std::vector conflicts() const; + std::vector conflicts() const; // systems several emulators on play + std::vector systems() const; // every system an emulator on plays, by name // The root of the emulator that keeps a system: the one picked, else RetroArch, else the first. std::string chosen(const Conflict &conflict) const; - // Rows above the emulators' (a message instead of them). - int lead() const { return error_.empty() && !emulators_.empty() ? 0 : 1; } + // Rows above the emulators': their heading, or a message instead of them. + int lead() const { return 1; } std::vector emulator_rows(const App &app, std::vector *refs = nullptr) const; - std::vector preview_rows() const; - std::vector finish_rows() const; + // ids: what each row is (the steps' rows depend on save_sync_). + std::vector preview_rows(std::vector *ids = nullptr) const; + std::vector finish_rows(std::vector *ids = nullptr) const; bool has_ps2() const; // The server's systems no ticked emulator plays, in the server's order. std::vector uncovered() const; // The folder picker (/api/fs), for one of a system's folders. - void open_picker(App &app, const std::string &key, int which); + void open_picker(App &app, const std::string &key, int which, const std::string &root = ""); void browse(App &app, const std::string &path); void update_picker(App &app, const hui::InputFrame &input, float dt, hui::ui::Feedback &feedback); void draw_picker(hui::gfx::DrawList &list, const hui::ui::Fonts &fonts, const Look &look, float clock) const; @@ -161,6 +172,9 @@ class SetupPage bool emulators_loaded_ = false; std::map choices_; // system key -> the root of its main emulator std::map> also_; // system key -> roots of its extra emulators + // Folders picked for a system in an emulator, instead of the ones found: + // system key -> emulator root -> games, saves, states ("" keeps that one). + std::map>> custom_dirs_; bool editing_ = false; std::string ps2_cards_ = "per_game"; std::map own_; // by system key (first slug) @@ -168,6 +182,7 @@ class SetupPage std::vector manual_; // own_ keys of emulators with no preset, in the order found bool picking_ = false; std::string pick_key_; + std::string pick_root_; // set: the folder is for custom_dirs_[pick_key_][pick_root_], not own_ int pick_which_ = 0; std::string fs_path_, fs_parent_; std::vector fs_folders_; @@ -178,6 +193,7 @@ class SetupPage // 4 Preview preview_; bool backed_up_ = false; + bool save_sync_ = true; // false: RomM only as a game source, the sync steps skipped // 5 Config finish_; diff --git a/platform/ps5/app/rommps/examples/rommps/kit/sync_views.cpp b/platform/ps5/app/rommps/examples/rommps/kit/sync_views.cpp new file mode 100644 index 0000000..2edd724 --- /dev/null +++ b/platform/ps5/app/rommps/examples/rommps/kit/sync_views.cpp @@ -0,0 +1,492 @@ +// RommPS: lists about the sync. See sync_views.hpp. +// +// SPDX-License-Identifier: GPL-3.0-or-later +#include "sync_views.hpp" + +#include "cJSON.h" +#include "core/tween.hpp" + +#include +#include +#include +#include + +namespace rommps +{ + +namespace +{ + +namespace ui = hui::ui; +using hui::Action; +using hui::audio::Cue; +using hui::gfx::Rect; +using Json = std::unique_ptr; + +constexpr float kMargin = 96.0f; +constexpr float kArmedFor = 4.0f; +const Rect kRows{kMargin - 32, 300, 1792, 650}; + +const char *str(const cJSON *o, const char *key, const char *fallback = "") +{ + const cJSON *v = cJSON_GetObjectItemCaseSensitive(o, key); + return cJSON_IsString(v) ? v->valuestring : fallback; +} + +double num(const cJSON *o, const char *key, double fallback = 0) +{ + const cJSON *v = cJSON_GetObjectItemCaseSensitive(o, key); + return cJSON_IsNumber(v) ? v->valuedouble : fallback; +} + +std::string json_str(const std::string &s) +{ + std::string out = "\""; + for (char c : s) + { + if (c == '"' || c == '\\') + out += '\\'; + out += c; + } + return out + "\""; +} + +std::string ago(double t) +{ + if (t <= 0) + return "never"; + const double s = std::difftime(std::time(nullptr), static_cast(t)); + char text[32]; + if (s < 60) + return "just now"; + if (s < 3600) + std::snprintf(text, sizeof text, "%d min ago", static_cast(s / 60)); + else if (s < 86400) + std::snprintf(text, sizeof text, "%d h ago", static_cast(s / 3600)); + else + std::snprintf(text, sizeof text, s < 2 * 86400 ? "%d day ago" : "%d days ago", static_cast(s / 86400)); + return text; +} + +// "2026-10-14T06:53:37+00:00" as "2026-10-14 06:53 UTC". +std::string when(const char *iso) +{ + const std::string s = iso ? iso : ""; + if (s.size() < 16) + return s; + return s.substr(0, 10) + " " + s.substr(11, 5) + " UTC"; +} + +std::string local_time(double t) +{ + if (t <= 0) + return "never"; + const std::time_t tt = static_cast(t); + char text[32]; + std::strftime(text, sizeof text, "%Y-%m-%d %H:%M", std::localtime(&tt)); + return text; +} + +std::string base_name(const std::string &path) +{ + const std::string p = path.substr(0, path.find('#')); // a save folder synced as a zip + const std::size_t slash = p.find_last_of('/'); + return slash == std::string::npos ? p : p.substr(slash + 1); +} + +std::string size_text(double bytes) +{ + char text[32]; + if (bytes >= 1024 * 1024) + std::snprintf(text, sizeof text, "%.1f MB", bytes / (1024 * 1024)); + else + std::snprintf(text, sizeof text, "%.0f KB", bytes / 1024); + return text; +} + +// "uploaded" -> "Uploaded" +std::string capital(std::string s) +{ + if (!s.empty() && s[0] >= 'a' && s[0] <= 'z') + s[0] = static_cast(s[0] - 'a' + 'A'); + return s; +} + +const char *status_label(const std::string &status) +{ + return status == "synced" ? "In sync" + : status == "changed" ? "Changed here" + : status == "conflict" ? "Conflict" + : status == "missing" ? "Missing" + : status.c_str(); +} + +// A platform's name: RomM's, else the folder's own. +std::string platform_name(const App &app, const std::string &dir) +{ + for (const Platform &p : app.platforms()) + if (p.slug == dir) + return p.name; + std::string up = dir; + for (char &c : up) + if (c >= 'a' && c <= 'z') + c = static_cast(c - 'a' + 'A'); + return up.empty() ? std::string("Other") : up; +} + +// One log entry as a row: the game, its result ("Downloaded") on the right, +// then "Save ยท RetroArch (mGBA) ยท 3 min ago". +Row event_row(const cJSON *e, bool with_game) +{ + const std::string kind = str(e, "kind"), action = str(e, "action"); + const std::string what = kind == "card" ? std::string("Memory card") : capital(kind); + std::string label = what; + if (with_game && kind != "card") + { + const std::string game = plain_text(str(e, "game")); + label = game.empty() ? "Game " + std::to_string(static_cast(num(e, "rom_id"))) : game; + } + std::string detail = with_game && kind != "card" ? what : std::string(); + auto more = [&detail](const std::string &part) { + if (!part.empty()) + detail += (detail.empty() ? "" : " \xC2\xB7 ") + part; + }; + more(str(e, "detail")); + if (action != "skipped") + more(plain_text(str(e, "emulator"))); + more(ago(num(e, "t"))); + Row r{RowKind::info, label, capital(action), detail}; + r.danger = action == "failed" || action == "conflict"; + return r; +} + +// One tracked file as a row: the game (or the kind, inside a game's view), +// its status on the right, then "Save ยท synced 3 min ago". +Row file_row(const cJSON *f, const std::string &game) +{ + const std::string kind = str(f, "kind"); + std::string detail = (game.empty() ? std::string() : capital(kind) + " \xC2\xB7 ") + "synced " + ago(num(f, "synced_at")); + if (kind == "state" && !cJSON_IsTrue(cJSON_GetObjectItemCaseSensitive(f, "from_here")) && num(f, "server_id") > 0) + detail += " \xC2\xB7 from another device"; + Row r{RowKind::info, game.empty() ? capital(kind) : game, status_label(str(f, "status")), detail}; + r.danger = std::string(str(f, "status")) == "missing"; + return r; +} + +} // namespace + +void SyncView::open(App &app, Kind kind, int rom_id, const std::string &name) +{ + active_ = true; + kind_ = kind; + rom_id_ = rom_id; + name_ = name; + choosing_ = -1; + armed_ = -1; + age_ = 0.0f; + busy_ = false; + list_.set_focus(0); + load(app); +} + +void SyncView::load(App &app) +{ + const int gen = ++generation_; + items_.clear(); + conflicts_.clear(); + switch (kind_) + { + case kConflicts: + title_ = "Conflicts"; + subtitle_ = "The copy you don't keep is backed up."; + break; + case kActivity: + title_ = "Activity"; + subtitle_ = "Newest first"; + break; + case kTracked: + title_ = "Tracked saves"; + subtitle_ = ""; + break; + case kGame: + title_ = plain_text(name_.c_str()); + subtitle_ = "Cross twice restores a version from RomM"; + break; + } + add({RowKind::info, "Loading", "", ""}); + waiting_ = 1; + + if (kind_ == kConflicts) + { + app.get("/api/status", [this, gen](const Response &r) { + if (gen != generation_) + return; + Json j(r.json(), cJSON_Delete); + const cJSON *c; + cJSON_ArrayForEach(c, cJSON_GetObjectItemCaseSensitive(cJSON_GetObjectItemCaseSensitive(j.get(), "sync"), "conflicts")) + { + Conflict k; + k.path = str(c, "path"); + k.game = plain_text(*str(c, "rom_name") ? str(c, "rom_name") : base_name(k.path).c_str()); + k.local = local_time(num(c, "local_mtime")); + k.server = when(str(c, "server_updated_at")); + conflicts_.push_back(std::move(k)); + } + if (!r.ok()) + conflicts_.clear(); + show_conflicts(); + if (!r.ok()) + { + items_.clear(); + add({RowKind::info, "Couldn't load them", "", r.message()}); + } + }); + } + else if (kind_ == kActivity) + { + app.get("/api/events?limit=200", [this, gen](const Response &r) { + if (gen != generation_) + return; + items_.clear(); + Json j(r.json(), cJSON_Delete); + const bool ok = r.ok() && cJSON_IsArray(j.get()); + const cJSON *e; + if (ok) + cJSON_ArrayForEach(e, j.get()) add(event_row(e, true)); + if (items_.empty()) + add({RowKind::info, ok ? "Nothing yet" : "Couldn't load the log", "", + ok ? "" : r.ok() ? "RommPS's background service is out of date" : r.message()}); + }); + } + else if (kind_ == kTracked) + { + app.get("/api/tracked", [this, gen, &app](const Response &r) { + if (gen != generation_) + return; + items_.clear(); + Json j(r.json(), cJSON_Delete); + const bool ok = r.ok() && cJSON_IsArray(cJSON_GetObjectItemCaseSensitive(j.get(), "platforms")); + struct Plat + { + std::string name; + const cJSON *games; + }; + std::vector plats; + const cJSON *p; + cJSON_ArrayForEach(p, cJSON_GetObjectItemCaseSensitive(j.get(), "platforms")) + plats.push_back({platform_name(app, str(p, "platform")), cJSON_GetObjectItemCaseSensitive(p, "games")}); + std::sort(plats.begin(), plats.end(), [](const Plat &a, const Plat &b) { return a.name < b.name; }); + for (const Plat &pl : plats) + { + add({RowKind::header, pl.name}); + const cJSON *g, *f; + cJSON_ArrayForEach(g, pl.games) + { + const std::string game = plain_text(str(g, "name")); + cJSON_ArrayForEach(f, cJSON_GetObjectItemCaseSensitive(g, "files")) add(file_row(f, game)); + } + } + if (items_.empty()) + add({RowKind::info, ok ? "Nothing tracked yet" : "Couldn't load them", "", + ok ? "" : r.ok() ? "RommPS's background service is out of date" : r.message()}); + char sub[96]; + std::snprintf(sub, sizeof sub, "%d saves, %d states", static_cast(num(j.get(), "saves")), + static_cast(num(j.get(), "states"))); + if (ok) + subtitle_ = sub; + }); + } + else + { + // A game: what's here, RomM's versions and the game's log, shown together. + waiting_ = 3; + game_here_.clear(); + game_history_.clear(); + game_log_.clear(); + const std::string id = std::to_string(rom_id_); + auto done = [this, gen](std::string *slot, const Response &r) { + if (gen != generation_) + return; + *slot = r.ok() ? r.body : std::string("!") + r.message(); + if (--waiting_ > 0) + return; + items_.clear(); + Json here(cJSON_Parse(game_here_.c_str()), cJSON_Delete), history(cJSON_Parse(game_history_.c_str()), cJSON_Delete), + log(cJSON_Parse(game_log_.c_str()), cJSON_Delete); + add({RowKind::header, "On this console"}); + const std::size_t before = items_.size(); + const cJSON *p, *g, *f; + cJSON_ArrayForEach(p, cJSON_GetObjectItemCaseSensitive(here.get(), "platforms")) + cJSON_ArrayForEach(g, cJSON_GetObjectItemCaseSensitive(p, "games")) + cJSON_ArrayForEach(f, cJSON_GetObjectItemCaseSensitive(g, "files")) add(file_row(f, "")); + if (items_.size() == before) + add({RowKind::info, "Nothing here yet", "", ""}); + static const char *const kinds[2][2] = {{"saves", "Saves on RomM"}, {"states", "Save states on RomM"}}; + for (int k = 0; k < 2; ++k) + { + add({RowKind::header, kinds[k][1]}); + const cJSON *list = cJSON_GetObjectItemCaseSensitive(history.get(), kinds[k][0]); + std::vector versions; + const cJSON *v; + cJSON_ArrayForEach(v, list) versions.push_back(v); + std::sort(versions.begin(), versions.end(), [](const cJSON *a, const cJSON *b) { + return std::string(str(a, "updated_at")) > std::string(str(b, "updated_at")); + }); + for (const cJSON *x : versions) + { + std::string from = *str(x, "device") ? str(x, "device") : str(x, "emulator"); + std::string detail = plain_text(str(x, "file_name")) + " \xC2\xB7 " + size_text(num(x, "size")); + if (!from.empty()) + detail += " \xC2\xB7 from " + plain_text(from.c_str()); + add({RowKind::action, when(str(x, "updated_at")), "Restore", detail}, k ? kRestoreState : kRestoreSave, + static_cast(num(x, "id"))); + } + if (versions.empty()) + add({RowKind::info, game_history_[0] == '!' ? "Couldn't ask RomM" : "Nothing on RomM yet", "", + game_history_[0] == '!' ? game_history_.substr(1) : ""}); + } + add({RowKind::header, "Recent"}); + const std::size_t log_at = items_.size(); + const cJSON *e; + int n = 0; + cJSON_ArrayForEach(e, log.get()) if (n++ < 30) add(event_row(e, false)); + if (items_.size() == log_at) + add({RowKind::info, "Nothing synced yet", "", ""}); + }; + app.get("/api/tracked?rom_id=" + id, [done, this](const Response &r) { done(&game_here_, r); }); + app.get("/api/history?rom_id=" + id, [done, this](const Response &r) { done(&game_history_, r); }); + app.get("/api/events?limit=30&rom_id=" + id, [done, this](const Response &r) { done(&game_log_, r); }); + } +} + +void SyncView::show_conflicts() +{ + items_.clear(); + choosing_ = -1; + for (std::size_t i = 0; i < conflicts_.size(); ++i) + { + const Conflict &c = conflicts_[i]; + add({RowKind::action, c.game, "Choose", "This console: " + c.local + " \xC2\xB7 RomM: " + c.server}, kPickConflict, + static_cast(i)); + } + if (items_.empty()) + add({RowKind::info, "No conflicts", "", ""}); +} + +std::vector SyncView::rows() const +{ + std::vector out; + out.reserve(items_.size()); + for (const Item &it : items_) + out.push_back(it.row); + if (armed_ >= 0 && armed_ < static_cast(out.size())) + out[static_cast(armed_)].value = "Press again to restore"; + return out; +} + +void SyncView::update(App &app, const hui::InputFrame &input, float dt, hui::ui::Feedback &feedback) +{ + age_ += dt; + armed_age_ += dt; + if (input.is_pressed(Action::back)) + { + feedback.play(Cue::back); + if (choosing_ >= 0) + show_conflicts(); + else + active_ = false; + return; + } + const std::vector r = rows(); + if (armed_ >= 0 && (armed_age_ > kArmedFor || list_.focus() != armed_)) + armed_ = -1; + const RowEvent e = list_.handle(r, input, feedback); + list_.update(dt, static_cast(r.size()), kRows.h); + if (e.row < 0 || !e.activated || busy_) + return; + const Item it = items_[static_cast(e.row)]; + switch (it.action) + { + case kPickConflict: + { + const Conflict &c = conflicts_[static_cast(it.arg)]; + items_.clear(); + choosing_ = it.arg; + add({RowKind::info, c.game, "", "Which copy should stay?"}); + add({RowKind::action, "Keep this console's", "", "Changed here " + c.local + ". RomM's copy is replaced."}, kKeepLocal); + add({RowKind::action, "Keep RomM's", "", "Changed on RomM " + c.server + ". This console's copy is backed up."}, + kKeepServer); + add({RowKind::action, "Not now"}, kCancel); + list_.set_focus(1); + break; + } + case kKeepLocal: + case kKeepServer: + { + const Conflict c = conflicts_[static_cast(choosing_)]; + const bool local = it.action == kKeepLocal; + busy_ = true; + app.post("/api/conflicts/resolve", + "{\"path\":" + json_str(c.path) + ",\"keep\":\"" + (local ? "local" : "server") + "\"}", + [this, &app, local](const Response &r) { + busy_ = false; + app.say(r.ok() ? (local ? "Kept this console's save" : "Kept RomM's save") : "Couldn't settle it: " + r.message()); + app.refresh_now(); + load(app); + }); + break; + } + case kCancel: + show_conflicts(); + list_.set_focus(0); + break; + case kRestoreSave: + case kRestoreState: + if (armed_ != e.row) + { + armed_ = e.row; + armed_age_ = 0.0f; + break; + } + armed_ = -1; + busy_ = true; + app.post("/api/restore", + std::string("{\"kind\":\"") + (it.action == kRestoreSave ? "save" : "state") + "\",\"id\":" + + std::to_string(it.arg) + "}", + [this, &app](const Response &r) { + busy_ = false; + app.say(r.ok() ? "Restored. The current file was backed up" : "Couldn't restore it: " + r.message()); + if (r.ok()) + load(app); + }); + break; + default: + list_.refuse(feedback); + break; + } +} + +void SyncView::draw(hui::gfx::DrawList &list, const hui::ui::Fonts &fonts, const Look &look, const App &app, + float clock) const +{ + (void)app; + const float in = hui::tween::stagger(age_, 1, 0.08f, 0.6f); + list.push_opacity(in); + ui::text(list, fonts.display, fonts.display.font->fit(title_, 64, 1700), kMargin, 220, 64, look.text); + ui::text(list, fonts.regular, fonts.regular.font->fit(subtitle_, 24, 1700), kMargin, 268, 24, look.muted); + list_.draw(list, fonts, look, rows(), {kRows.x, kRows.y + 24 * (1.0f - in), kRows.w, kRows.h}, clock); + list.pop_opacity(); +} + +std::vector SyncView::hints() const +{ + std::vector h; + const int f = list_.focus(); + const bool can = f >= 0 && f < static_cast(items_.size()) && items_[static_cast(f)].action != kNothing; + if (can) + h.push_back({hui::ui::Button::cross, choosing_ >= 0 ? "Choose" : kind_ == kGame ? "Restore" : "Choose"}); + h.push_back({hui::ui::Button::circle, "Back"}); + return h; +} + +} // namespace rommps diff --git a/platform/ps5/app/rommps/examples/rommps/kit/sync_views.hpp b/platform/ps5/app/rommps/examples/rommps/kit/sync_views.hpp new file mode 100644 index 0000000..49ea9d4 --- /dev/null +++ b/platform/ps5/app/rommps/examples/rommps/kit/sync_views.hpp @@ -0,0 +1,93 @@ +// RommPS: lists about the sync, opened from Home and from a game's sheet. +// +// - Conflicts: saves changed here and on RomM since the last sync. Cross on +// one asks which copy to keep; the other is backed up. +// - Activity: the sync log (the payload's /api/events), newest first. +// - Tracked saves: the saves and states kept in sync, by platform, each +// with its status (/api/tracked). +// - A game's saves and states: what's on this console, the versions RomM +// keeps (Cross twice restores one) and the game's log. +// +// Each is a list of rows (rows.hpp) filled from the payload when it opens; +// Circle closes it. +// +// SPDX-License-Identifier: GPL-3.0-or-later +#pragma once + +#include "rommps_app.hpp" +#include "rows.hpp" +#include "ui/glyphs.hpp" + +#include +#include + +namespace rommps +{ + +class SyncView +{ + public: + enum Kind + { + kConflicts, + kActivity, + kTracked, + kGame + }; + + void open(App &app, Kind kind, int rom_id = 0, const std::string &name = ""); + void close() { active_ = false; } + bool active() const { return active_; } + Kind kind() const { return kind_; } + + void update(App &app, const hui::InputFrame &input, float dt, hui::ui::Feedback &feedback); + void draw(hui::gfx::DrawList &list, const hui::ui::Fonts &fonts, const Look &look, const App &app, float clock) const; + std::vector hints() const; + + private: + // What Cross does on a row. + enum Do + { + kNothing, + kPickConflict, // opens the choice for conflicts_[arg] + kKeepLocal, + kKeepServer, + kCancel, + kRestoreSave, // arg: RomM's save id + kRestoreState // arg: RomM's state id + }; + struct Item + { + Row row; + Do action = kNothing; + int arg = 0; + }; + struct Conflict + { + std::string path, game, local, server; + }; + + void load(App &app); + void show_conflicts(); + void add(Row row, Do action = kNothing, int arg = 0) { items_.push_back({std::move(row), action, arg}); } + std::vector rows() const; + + bool active_ = false; + Kind kind_ = kActivity; + int rom_id_ = 0; + std::string name_; + std::string title_, subtitle_; + std::vector items_; + std::vector conflicts_; + int choosing_ = -1; // the conflict whose choice is showing, or -1 + int armed_ = -1; // a restore row waiting for its second press + float armed_age_ = 0.0f, age_ = 0.0f; + int generation_ = 0; // answers for an older open() are dropped + int waiting_ = 0; // requests still out + bool busy_ = false; // a resolve or restore in flight + // A game's view gathers three answers before it shows. + std::string game_here_, game_history_, game_log_; + RowList list_; +}; + +} // namespace rommps diff --git a/platform/ps5/app/src/rommps_api.cpp b/platform/ps5/app/src/rommps_api.cpp index 5d1b8bd..7e127ba 100644 --- a/platform/ps5/app/src/rommps_api.cpp +++ b/platform/ps5/app/src/rommps_api.cpp @@ -9,6 +9,7 @@ #include #include +#include #include #include #include @@ -21,7 +22,7 @@ namespace rommps { cJSON *Response::json() const { return body.empty() ? nullptr : cJSON_ParseWithLength(body.data(), body.size()); } std::string Response::message() const { - if (status == 0) return error.empty() ? "RomM Sync isn't answering" : error; + if (status == 0) return error.empty() ? "RommPS's background service isn't answering" : error; std::string out; if (cJSON *j = json()) { const cJSON *e = cJSON_GetObjectItemCaseSensitive(j, "error"); @@ -42,6 +43,20 @@ static bool send_all(int fd, const char *p, size_t n) { return true; } +namespace { +// The request on the wire, so closing the app needn't wait for its answer. +std::atomic g_open_fd{-1}; + +struct OpenSocket { + int fd; + explicit OpenSocket(int f) : fd(f) { g_open_fd = f; } + ~OpenSocket() { + int expected = fd; + g_open_fd.compare_exchange_strong(expected, -1); + } +}; +} // namespace + Response http_request(const std::string &host, int port, const std::string &method, const std::string &path, const std::string &body, int timeout_ms) { Response r; @@ -50,6 +65,7 @@ Response http_request(const std::string &host, int port, const std::string &meth r.error = std::string("socket: ") + std::strerror(errno); return r; } + const OpenSocket open(fd); timeval tv{timeout_ms / 1000, (timeout_ms % 1000) * 1000}; ::setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof tv); ::setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof tv); @@ -57,8 +73,7 @@ Response http_request(const std::string &host, int port, const std::string &meth sa.sin_family = AF_INET; sa.sin_port = htons((uint16_t)port); if (::inet_pton(AF_INET, host.c_str(), &sa.sin_addr) != 1 || ::connect(fd, (sockaddr *)&sa, sizeof sa) != 0) { - r.error = "RomM Sync isn't running (" + std::string(std::strerror(errno)) + ")"; - ::close(fd); + r.error = "RommPS's background service isn't running (" + std::string(std::strerror(errno)) + ")"; return r; } char head[1024]; @@ -68,7 +83,6 @@ Response http_request(const std::string &host, int port, const std::string &meth method.c_str(), path.c_str(), host.c_str(), body.size()); if (hn <= 0 || hn >= (int)sizeof head || !send_all(fd, head, (size_t)hn) || !send_all(fd, body.data(), body.size())) { r.error = "couldn't send the request"; - ::close(fd); return r; } std::string in; @@ -77,18 +91,16 @@ Response http_request(const std::string &host, int port, const std::string &meth ssize_t n = ::recv(fd, buf, sizeof buf, 0); if (n < 0 && errno == EINTR) continue; if (n < 0) { - r.error = errno == EAGAIN || errno == EWOULDBLOCK ? "RomM Sync took too long to answer" : std::strerror(errno); - ::close(fd); + r.error = errno == EAGAIN || errno == EWOULDBLOCK ? "RommPS's background service took too long to answer" : std::strerror(errno); return r; } if (n == 0) break; in.append(buf, (size_t)n); } - ::close(fd); size_t split = in.find("\r\n\r\n"); int status = 0; if (split == std::string::npos || std::sscanf(in.c_str(), "HTTP/%*d.%*d %d", &status) != 1) { - r.error = "RomM Sync sent a reply the app can't read"; + r.error = "RommPS's background service sent a reply the app can't read"; return r; } r.status = status; @@ -127,6 +139,9 @@ Api::~Api() { stopping_ = true; } wake_.notify_all(); + // A request still waiting for its answer ends now. + const int fd = g_open_fd.exchange(-1); + if (fd >= 0) ::shutdown(fd, SHUT_RDWR); thread_.join(); } diff --git a/platform/ps5/emulators.json b/platform/ps5/emulators.json index 9210300..24351a5 100644 --- a/platform/ps5/emulators.json +++ b/platform/ps5/emulators.json @@ -1,14 +1,32 @@ [ { - "id": "psxs5", "name": "PSXS5 / SwanStationPS5", - "title_ids": ["PPSA97510", "PPSA98510"], - "detect": ["/data/PSXS5", "/data/homebrew/PPSA97510", "/data/homebrew/PPSA98510"], - "note": "Both apps share /data/PSXS5. One memory card per game, named after the disc.", + "id": "psxs5", "name": "PSXS5", + "title_ids": ["PPSA97510"], + "detect": ["/data/PSXS5", "/data/homebrew/PPSA97510"], + "note": "One memory card per game, named after the disc (after the game file with the Beetle core).", "profile": { "root": "/data/PSXS5", "rom_dir": "{root}/games", "save_dir": "{root}/saves", "state_dir": "{root}/states", "bios_dir": "{root}/bios", "save_exts": ".mcd", "save_name": "{serial}_1{ext}", "save_stems": "{serial}_1", "state_exts": ".state*", "state_stems": "{rom_stem_safe}", "state_name": "{rom_stem_safe}{ext}", + "save_name_by_core": {"mednafen_psx_hw": "{rom_stem}_1{ext}"}, + "state_format": "raw", "state_slot0": ".state0", "state_cores": "pcsx_rearmed,mednafen_psx_hw", + "state_core_setting": {"file": "{root}/psxs5.ini", "key": "emulator", + "values": {"0": "pcsx_rearmed", "1": "pcsx_rearmed", "2": "mednafen_psx_hw"}}, + "platforms": [{"romm": ["psx", "ps1", "playstation"], "dir": "psx", "save_format": "psx-card"}] + } + }, + { + "id": "swanstationps5", "name": "SwanStationPS5", + "title_ids": ["PPSA98510"], + "detect": ["/data/SwanStationPS5", "/data/homebrew/PPSA98510"], + "note": "Plays the games in PSXS5's folder. One memory card per game, named after the game file. Its save states load only in SwanStationPS5.", + "profile": { + "root": "/data/SwanStationPS5", "rom_dir": "/data/PSXS5/games", "save_dir": "{root}/saves", "state_dir": "{root}/states", + "bios_dir": "{root}/bios", + "save_exts": ".mcd", "save_name": "{rom_stem}_1{ext}", "save_stems": "{rom_stem}_1", + "state_exts": ".state*", "state_stems": "{rom_stem_safe}", "state_name": "{rom_stem_safe}{ext}", + "state_format": "raw", "state_slot0": ".state0", "state_cores": "swanstation", "platforms": [{"romm": ["psx", "ps1", "playstation"], "dir": "psx", "save_format": "psx-card"}] } }, @@ -30,17 +48,17 @@ "note": "Saves and states are named after a hash of the game file.", "profile": { "root": "/data/PS5N64", "rom_dir": "{root}/games", "save_dir": "{root}/saves", "state_dir": "{root}/saves", + "fixed": ["rom_dir", "save_dir", "state_dir"], "save_exts": ".sav", "save_name": "{rom_fnv64}{ext}", "save_stems": "{rom_fnv64}", - "state_exts": ".state", "state_stems": "{rom_fnv64}", "state_name": "{rom_fnv64}{ext}", + "state_exts": ".state", "state_stems": "{rom_fnv64}", "state_name": "{rom_fnv64}{ext}", "state_format": "raw", "platforms": [{"romm": ["n64"], "dir": "n64", "save_format": "n64-srm"}] } }, { "id": "ps5nes", "name": "PS5NES", "title_ids": ["PPSA99204"], - "detect": ["/data/homebrew/PPSA99204"], - "ready": false, - "note": "PS5NES v7 looks for its games in PS5SX2's folder, so there's no preset for it yet.", + "detect": ["/data/PS5NES", "/data/homebrew/PPSA99204"], + "note": "Untested: v7 may look for games in PS5SX2's folder.", "profile": { "root": "/data/PS5NES", "rom_dir": "{root}/games", "save_dir": "{root}/saves", "state_dir": "{root}/saves", "save_exts": ".sav", "save_name": "{rom_fnv64}{ext}", "save_stems": "{rom_fnv64}", @@ -51,8 +69,7 @@ "id": "porpoise", "name": "Porpoise", "title_ids": ["PPSA99764"], "detect": ["/data/porpoise", "/data/homebrew/PPSA99764"], - "ready": false, - "note": "The current build crashes when it leaves the app sandbox, so there's no preset for it yet.", + "note": "Untested: the current build crashes leaving the app sandbox.", "profile": { "root": "/data/porpoise", "rom_dir": "{root}/games", "save_dir": "{root}/saves", "platforms": [{"romm": ["ngc", "gamecube"], "dir": "gamecube"}, {"romm": ["wii"], "dir": "wii"}] diff --git a/src/config.c b/src/config.c index 646f61a..ff600a8 100644 --- a/src/config.c +++ b/src/config.c @@ -54,6 +54,7 @@ static void set_defaults(void) { g_cfg.sync_on_game_exit = 1; g_cfg.sync_on_game_start = 1; g_cfg.sync_on_change = 1; + g_cfg.save_sync = 1; g_cfg.exit_delay_sec = 5; g_cfg.sync_states = 1; g_cfg.notify = 1; @@ -80,6 +81,7 @@ void config_apply_json(const cJSON *j) { get_int(j, "sync_on_game_exit", &g_cfg.sync_on_game_exit); get_int(j, "sync_on_game_start", &g_cfg.sync_on_game_start); get_int(j, "sync_on_change", &g_cfg.sync_on_change); + get_int(j, "save_sync", &g_cfg.save_sync); get_int(j, "exit_delay_sec", &g_cfg.exit_delay_sec); get_int(j, "sync_states", &g_cfg.sync_states); /* older configs: true/false */ char states[16] = ""; @@ -173,6 +175,7 @@ cJSON *config_to_json(int include_secrets) { cJSON_AddBoolToObject(j, "sync_on_game_exit", g_cfg.sync_on_game_exit); cJSON_AddBoolToObject(j, "sync_on_game_start", g_cfg.sync_on_game_start); cJSON_AddBoolToObject(j, "sync_on_change", g_cfg.sync_on_change); + cJSON_AddBoolToObject(j, "save_sync", g_cfg.save_sync); cJSON_AddNumberToObject(j, "exit_delay_sec", g_cfg.exit_delay_sec); cJSON_AddStringToObject(j, "states", g_cfg.sync_states == 2 ? "sync" : g_cfg.sync_states ? "upload" : "off"); cJSON_AddBoolToObject(j, "notify", g_cfg.notify); diff --git a/src/config.h b/src/config.h index c23232e..7a8e67e 100644 --- a/src/config.h +++ b/src/config.h @@ -19,6 +19,7 @@ typedef struct { int sync_interval_min; /* periodic sync, 0 = off */ int sync_on_game_exit; int sync_on_game_start; + int save_sync; /* 0: RomM only as a game source, no save or state sync */ int sync_on_change; /* upload saves as soon as they change */ int exit_delay_sec; int sync_states; /* 0 off, 1 upload, 2 upload and download */ diff --git a/src/detect.c b/src/detect.c index 1173d16..ff46195 100644 --- a/src/detect.c +++ b/src/detect.c @@ -13,6 +13,7 @@ #include "detect.h" #include +#include #include #include #include @@ -323,6 +324,18 @@ static cJSON *emulator_catalog(void) { return plat_info()->emulator_catalog ? cJSON_Parse(plat_info()->emulator_catalog) : NULL; } +static cJSON *g_catalog; +static void load_catalog(void) { g_catalog = emulator_catalog(); } + +const cJSON *detect_catalog_entry(const char *id) { + static pthread_once_t once = PTHREAD_ONCE_INIT; + pthread_once(&once, load_catalog); + const cJSON *e; + cJSON_ArrayForEach(e, g_catalog) + if (!strcmp(jget_str(e, "id", ""), id)) return e; + return NULL; +} + static void add_standalone(cJSON *out) { cJSON *catalog = emulator_catalog(); const cJSON *e, *x; @@ -444,6 +457,8 @@ int detect_refresh_profiles(cJSON *profiles) { /* The user's choice of emulator per system survives a refresh. */ const cJSON *ex = cJSON_GetObjectItemCaseSensitive(p, "exclude"); if (ex) cJSON_AddItemToObject(fresh, "exclude", cJSON_Duplicate(ex, 1)); + const cJSON *mode = cJSON_GetObjectItemCaseSensitive(p, "sync"); + if (cJSON_IsString(mode)) cJSON_AddStringToObject(fresh, "sync", mode->valuestring); LOGI("updated the %s profile for %s", jget_str(fresh, "name", ""), jget_str(p, "root", "")); cJSON_ReplaceItemInArray(profiles, i, fresh); changed++; diff --git a/src/detect.h b/src/detect.h index 2bcff4b..8a6e63d 100644 --- a/src/detect.h +++ b/src/detect.h @@ -11,4 +11,8 @@ cJSON *detect_emulators(void); * features. Profiles written by hand are left alone. Returns how many changed. */ int detect_refresh_profiles(cJSON *profiles); +/* The built-in emulator catalog entry with this id (emulators.json), or NULL. + * Parsed once; don't free. */ +const cJSON *detect_catalog_entry(const char *id); + #endif diff --git a/src/events.c b/src/events.c new file mode 100644 index 0000000..7497aa9 --- /dev/null +++ b/src/events.c @@ -0,0 +1,90 @@ +#include "events.h" + +#include +#include +#include +#include + +#include "platform.h" +#include "state.h" +#include "util.h" + +static pthread_mutex_t g_lock = PTHREAD_MUTEX_INITIALIZER; +static cJSON *g_events; /* oldest first */ +static char g_sync[64] = ""; +static int g_dirty; + +static void path_of(char *out, size_t n) { path_join(out, n, plat_data_dir(), "events.json"); } + +void events_load(void) { + char path[PATH_MAX_LEN]; + path_of(path, sizeof path); + char *txt = read_file(path, NULL); + cJSON *j = txt ? cJSON_Parse(txt) : NULL; + free(txt); + pthread_mutex_lock(&g_lock); + cJSON_Delete(g_events); + g_events = cJSON_IsArray(j) ? j : cJSON_CreateArray(); + if (!cJSON_IsArray(j)) cJSON_Delete(j); + pthread_mutex_unlock(&g_lock); +} + +void events_save(void) { + pthread_mutex_lock(&g_lock); + char *txt = g_dirty && g_events ? cJSON_PrintUnformatted(g_events) : NULL; + g_dirty = 0; + pthread_mutex_unlock(&g_lock); + if (!txt) return; + char path[PATH_MAX_LEN]; + path_of(path, sizeof path); + if (write_file_atomic(path, txt, strlen(txt)) != 0) LOGW("could not write %s", path); + free(txt); +} + +void events_set_sync(const char *reason) { + pthread_mutex_lock(&g_lock); + str_copy(g_sync, sizeof g_sync, reason ? reason : ""); + pthread_mutex_unlock(&g_lock); +} + +void events_add(const char *kind, const char *action, int rom_id, const char *path, const char *emulator, + const char *detail) { + cJSON *e = cJSON_CreateObject(); + cJSON_AddNumberToObject(e, "t", (double)time(NULL)); + cJSON_AddNumberToObject(e, "rom_id", rom_id); + cJSON_AddStringToObject(e, "kind", kind); + cJSON_AddStringToObject(e, "action", action); + cJSON_AddStringToObject(e, "path", path ? path : ""); + cJSON_AddStringToObject(e, "emulator", emulator ? emulator : ""); + if (detail && detail[0]) cJSON_AddStringToObject(e, "detail", detail); + pthread_mutex_lock(&g_lock); + if (!g_events) g_events = cJSON_CreateArray(); + cJSON_AddStringToObject(e, "sync", g_sync); + cJSON_AddItemToArray(g_events, e); + while (cJSON_GetArraySize(g_events) > EVENTS_MAX) cJSON_DeleteItemFromArray(g_events, 0); + g_dirty = 1; + pthread_mutex_unlock(&g_lock); +} + +cJSON *events_json(int rom_id, int limit) { + cJSON *out = cJSON_CreateArray(); + pthread_mutex_lock(&g_lock); + cJSON *copy = g_events ? cJSON_Duplicate(g_events, 1) : cJSON_CreateArray(); + pthread_mutex_unlock(&g_lock); + state_lock(); + const cJSON *roms = state_section("roms"); + for (int i = cJSON_GetArraySize(copy) - 1; i >= 0 && (limit <= 0 || cJSON_GetArraySize(out) < limit); i--) { + cJSON *e = cJSON_GetArrayItem(copy, i); + int id = (int)jget_num(e, "rom_id", 0); + if (rom_id && id != rom_id) continue; + const cJSON *r, *game = NULL; + cJSON_ArrayForEach(r, roms) if ((int)jget_num(r, "rom_id", -1) == id && id) game = r; + cJSON *o = cJSON_Duplicate(e, 1); + cJSON_AddStringToObject(o, "game", game ? jget_str(game, "name", "") : ""); + cJSON_AddStringToObject(o, "platform", game ? jget_str(game, "platform_dir", "") : ""); + cJSON_AddItemToArray(out, o); + } + state_unlock(); + cJSON_Delete(copy); + return out; +} diff --git a/src/events.h b/src/events.h new file mode 100644 index 0000000..257cbf8 --- /dev/null +++ b/src/events.h @@ -0,0 +1,30 @@ +/* The sync log: one entry per file a sync moved or left alone on purpose, + * newest last, the last EVENTS_MAX kept in events.json. + * + * {"t": 1791936000, "sync": "game exited", "rom_id": 878, + * "kind": "save" | "state" | "card", + * "action": "uploaded" | "downloaded" | "conflict" | "resolved" | + * "skipped" | "restored" | "backed up" | "failed", + * "path": "/data/.../Game.srm", "emulator": "mgba", "detail": "..."} + * + * The game's name and platform are filled in when the log is read. */ +#ifndef ROMM_EVENTS_H +#define ROMM_EVENTS_H + +#include "cJSON.h" + +#define EVENTS_MAX 500 + +void events_load(void); +void events_save(void); /* after each sync; cheap when nothing changed */ + +/* Names the sync the next entries come from ("startup", "game exited"...). */ +void events_set_sync(const char *reason); + +void events_add(const char *kind, const char *action, int rom_id, const char *path, const char *emulator, + const char *detail); + +/* Newest first; rom_id 0 for every game. Caller frees. */ +cJSON *events_json(int rom_id, int limit); + +#endif diff --git a/src/library.c b/src/library.c index 2a4af71..7f8c771 100644 --- a/src/library.c +++ b/src/library.c @@ -347,7 +347,12 @@ static void run_rom_job(job *j) { char name[256]; str_copy(name, sizeof name, j->name); sync_game_result saves; - sync_game(j->target_id, name, &saves); + if (sync_game(j->target_id, name, &saves) != 0) { /* save sync off: just the game */ + config_lock(); + const int notify = g_cfg.notify; + config_unlock(); + if (notify) plat_notify("RommPS: %s downloaded", name); + } pthread_mutex_lock(&g_q_lock); j->saves = saves; pthread_mutex_unlock(&g_q_lock); @@ -727,7 +732,7 @@ again:; str_copy(sys, sizeof sys, x->platform_dir); for (char *c = sys; *c; c++) if (*c >= 'a' && *c <= 'z') *c -= 32; - plat_notify("RomM Sync: %d %s game%s now also sync with %s", here, sys, here == 1 ? "" : "s", + plat_notify("RommPS: %d %s game%s now also sync with %s", here, sys, here == 1 ? "" : "s", x->profile_name); linked += here; } diff --git a/src/main.c b/src/main.c index b0d511c..fa34bf8 100644 --- a/src/main.c +++ b/src/main.c @@ -11,6 +11,7 @@ #include "autostart.h" #include "config.h" +#include "events.h" #include "covers.h" #include "detect.h" #include "http.h" @@ -97,7 +98,7 @@ static void *app_main(void *arg) { int init = plat_init(); if (init > 0) { /* RommPS and the HEN can both start a copy at boot; that's no news. */ - if (!plat_app_installed()) plat_notify("RomM Sync is already running"); + if (!plat_app_installed()) plat_notify("RommPS is already running"); return NULL; } if (init != 0) fprintf(stderr, "platform init reported a problem\n"); @@ -120,12 +121,13 @@ static void *app_main(void *arg) { * breaks HTTPS certificate checks and save timestamps. */ if (time(NULL) < 1577836800) { /* 2020-01-01 */ LOGW("the console clock isn't set; HTTPS and save times will be wrong"); - plat_notify("RomM Sync: the console's date and time aren't set. Set them in the console's Settings for syncing to work."); + plat_notify("RommPS: the console's date and time aren't set. Set them in the console's Settings for syncing to work."); } config_load(); if (g_cfg.profiles_custom && detect_refresh_profiles(g_cfg.profiles) > 0) config_save(); state_load(); + events_load(); /* Copies of older versions left on the console are brought up to date. */ autostart_repair(); http_global_init(plat_ca_bundle(), g_cfg.tls_verify); @@ -156,11 +158,11 @@ static void *app_main(void *arg) { plat_notify("RommPS %s is out of date. Update it from ProsperoStore.", app_version); } else if (quiet) { } else if (!plat_info()->self_update) { - plat_notify("RomM Sync is running. Install RommPS from ProsperoStore to use it on the console."); + plat_notify("RommPS is running. Install the RommPS app from ProsperoStore to use it on the console."); } else if (config_is_paired()) { - plat_notify("RomM Sync running - http://%s:%d", ip[0] ? ip : "127.0.0.1", port); + plat_notify("RommPS running - http://%s:%d", ip[0] ? ip : "127.0.0.1", port); } else { - plat_notify("RomM Sync: open http://%s:%d to pair with RomM", ip[0] ? ip : "127.0.0.1", port); + plat_notify("RommPS: open http://%s:%d to pair with RomM", ip[0] ? ip : "127.0.0.1", port); } sleep(5); /* wait for the network after boot */ @@ -198,7 +200,7 @@ static void *app_main(void *arg) { if (ip[0] || --resume_ticks == 0) { resume_ticks = 0; resume_notified = now; - if (!quiet) plat_notify("RomM Sync resumed - http://%s:%d", ip[0] ? ip : "127.0.0.1", port); + if (!quiet) plat_notify("RommPS resumed - http://%s:%d", ip[0] ? ip : "127.0.0.1", port); } } diff --git a/src/memcard.c b/src/memcard.c index c8a22f7..ed23200 100644 --- a/src/memcard.c +++ b/src/memcard.c @@ -1,5 +1,7 @@ #include "memcard.h" +#include "events.h" + #include #include #include @@ -39,6 +41,7 @@ static int cards_list(card *out, int max) { int n = 0; for (int i = 0; i < cnt && n < max; i++) { const profile_map *m = &maps[i]; + if (m->sync_off) continue; if (!strcmp(mode, "backup") && profile_map_handles(m, "ps2", NULL) && str_ieq(m->core_name, "LRPS2")) { for (int s = 1; s <= 2 && n < max; s++) { card *c = &out[n++]; @@ -155,6 +158,7 @@ static int upload_slot(const card *cd, const char *hash) { state_unlock(); cJSON_Delete(v); LOGI("backed up memory card %s", path_basename(path)); + events_add("card", "backed up", 0, path, "", NULL); return 0; } cJSON_Delete(v); @@ -243,6 +247,8 @@ int memcard_restore(int slot, char *err, int en) { state_save(); state_unlock(); LOGI("restored memory card %s from RomM", path_basename(path)); + events_add("card", "restored", 0, path, "", "Older version"); + events_save(); return 0; } diff --git a/src/pair.c b/src/pair.c index fb3a9d7..c044d2a 100644 --- a/src/pair.c +++ b/src/pair.c @@ -82,7 +82,7 @@ static void finish_pairing(const char *base, const char *token, const char *devi snprintf(msg, sizeof msg, "Paired as %s", g_cfg.username[0] ? g_cfg.username : "(unknown user)"); set_status("ok", msg); LOGI("paired with %s, device %s", base, device_id); - if (!plat_app_installed()) plat_notify("RomM Sync paired with %s", base); + if (!plat_app_installed()) plat_notify("RommPS paired with %s", base); sync_new_pairing(); sync_request("paired"); } diff --git a/src/profiles.c b/src/profiles.c index 96ecf79..a7d472d 100644 --- a/src/profiles.c +++ b/src/profiles.c @@ -4,6 +4,7 @@ #include #include +#include "detect.h" #include "platform.h" /* Platforms are matched on RomM's slug or fs_slug. The roots are the PS5's; @@ -89,6 +90,26 @@ cJSON *profiles_default(void) { return defs; } +/* A save state setting: the profile's own, else the built-in catalog's for + * the same emulator and system (profiles saved before these settings existed). */ +static const cJSON *state_setting(const cJSON *p, const cJSON *e, const char *key) { + const cJSON *v = cJSON_GetObjectItemCaseSensitive(e, key); + if (!v) v = cJSON_GetObjectItemCaseSensitive(p, key); + if (v) return v; + const cJSON *cat = cJSON_GetObjectItemCaseSensitive(detect_catalog_entry(jstr(p, NULL, "id", "")), "profile"), *ce; + if (!cat) return NULL; + cJSON_ArrayForEach(ce, cJSON_GetObjectItemCaseSensitive(cat, "platforms")) { + if (strcmp(profiles_system_key(ce), profiles_system_key(e)) != 0) continue; + if ((v = cJSON_GetObjectItemCaseSensitive(ce, key))) return v; + } + return cJSON_GetObjectItemCaseSensitive(cat, key); +} + +static const char *state_str(const cJSON *p, const cJSON *e, const char *key, const char *def) { + const cJSON *v = state_setting(p, e, key); + return cJSON_IsString(v) ? v->valuestring : def; +} + static int jbool(const cJSON *a, const cJSON *b, const char *key, int def) { const cJSON *v = b ? cJSON_GetObjectItemCaseSensitive(b, key) : NULL; if (!cJSON_IsBool(v)) v = cJSON_GetObjectItemCaseSensitive(a, key); @@ -192,6 +213,7 @@ static void check_requirement(const profile_map *m, const char *game, const char size_t nn) { *sync = m->base_sync_saves; note[0] = 0; + if (m->sync_off) str_copy(note, nn, "save sync is off for this emulator"); if (!m->req_key[0] || !m->base_sync_saves) return; char val[64]; if (!m->ra_cfg_dir[0] || !core_option(m, game, cdir, val, sizeof val)) str_copy(val, sizeof val, m->req_default); @@ -340,9 +362,39 @@ int profiles_expand(const cJSON *profiles, profile_map **out) { str_copy(m->state_stems, sizeof m->state_stems, jstr(p, e, "state_stems", "")); str_copy(m->state_name, sizeof m->state_name, jstr(p, e, "state_name", "{rom_stem}{ext}")); str_copy(m->save_format, sizeof m->save_format, jstr(p, e, "save_format", "")); + str_copy(m->state_cores, sizeof m->state_cores, state_str(p, e, "state_cores", m->emulator)); + str_copy(m->state_format, sizeof m->state_format, state_str(p, e, "state_format", "retroarch")); + str_copy(m->state_slot0, sizeof m->state_slot0, state_str(p, e, "state_slot0", ".state")); + const cJSON *nbc = state_setting(p, e, "save_name_by_core"), *nv; + size_t no = 0; + cJSON_ArrayForEach(nv, nbc) { + if (!cJSON_IsString(nv)) continue; + int w = snprintf(m->save_names_by_core + no, sizeof m->save_names_by_core - no, "%s%s=%s", no ? ";" : "", + nv->string, nv->valuestring); + if (w < 0 || (size_t)w >= sizeof m->save_names_by_core - no) break; + no += (size_t)w; + } + const cJSON *cs = state_setting(p, e, "state_core_setting"); + if (cJSON_IsObject(cs)) { + str_template(m->core_file, sizeof m->core_file, jstr(cs, NULL, "file", ""), vars); + str_copy(m->core_key, sizeof m->core_key, jstr(cs, NULL, "key", "")); + const cJSON *v; + size_t o = 0; + cJSON_ArrayForEach(v, cJSON_GetObjectItemCaseSensitive(cs, "values")) { + if (!cJSON_IsString(v)) continue; + int w = snprintf(m->core_values + o, sizeof m->core_values - o, "%s%s=%s", o ? "," : "", v->string, + v->valuestring); + if (w < 0 || (size_t)w >= sizeof m->core_values - o) break; + o += (size_t)w; + } + } str_template(m->memcards, sizeof m->memcards, jstr(p, e, "memcards", ""), vars); m->extra = profile_lists(p, "extra", profiles_system_key(e)); m->sync_saves = m->base_sync_saves = jbool(p, e, "sync_saves", 1); + const char *mode = jstr(p, NULL, "sync", "all"); + m->sync_off = !strcmp(mode, "off"); + m->sync_states = !m->sync_off && strcmp(mode, "saves") != 0; + if (m->sync_off) m->sync_saves = m->base_sync_saves = 0; str_copy(m->root, sizeof m->root, root); str_copy(m->ra_cfg_dir, sizeof m->ra_cfg_dir, ra_cfg_dir); const cJSON *req = cJSON_GetObjectItemCaseSensitive(e, "sync_requires_option"); @@ -354,6 +406,7 @@ int profiles_expand(const cJSON *profiles, profile_map **out) { } /* Platform-wide answer, for the UI; games can override it. */ check_requirement(m, NULL, NULL, &m->sync_saves, m->sync_note, sizeof m->sync_note); + if (m->sync_off) str_copy(m->sync_note, sizeof m->sync_note, "save sync is off for this emulator"); cnt++; } } diff --git a/src/profiles.h b/src/profiles.h index bac5061..05d34d2 100644 --- a/src/profiles.h +++ b/src/profiles.h @@ -22,6 +22,10 @@ * {serial} (a PS1 disc's, "SCUS-94194"), {rom_fnv64} (FNV-1a 64 of the game * file, in hex) and {rom_stem_safe} (the file name, non-alphanumerics as "_"). * + * "state_cores", "state_format", "state_slot0" and "state_core_setting" say + * which save states an emulator can load (see profile_map); profiles saved + * before they existed take them from the built-in catalog, by profile id. + * * "save_layout" (psp, gci or wii) syncs a game's save folder or files as one zip; * "bundle_dirs" lists where to look, with {save_path}, {save_root} and {bios}. * A platform entry can override any profile key. "sync_requires_option" @@ -32,7 +36,10 @@ * the first slugs of detect.c's DB_MAP). When several emulators play one, the * user picks one and the others list it in "exclude": ["psx"], which drops * that platform entry from them, or in "extra": ["psx"], which keeps it as - * an extra emulator for the system (see profile_map.extra). */ + * an extra emulator for the system (see profile_map.extra). + * + * "sync" is the user's choice for the emulator: "all" (saves and states, the + * default), "saves" (no states) or "off" (games only). */ #ifndef ROMM_PROFILES_H #define ROMM_PROFILES_H @@ -60,6 +67,24 @@ typedef struct { char save_stems[256]; char state_stems[256]; char state_name[128]; + /* Save states from elsewhere come down only when the emulator can load + * them: state_cores lists the cores whose states it takes (RomM + * "emulator" names, default the platform's emulator). An emulator that + * switches cores in its own settings ("state_core_setting": {"file", + * "key", "values": {"0": "pcsx_rearmed", ...}}) takes only the current + * one's. state_format is "retroarch" (RetroArch's container, compressed + * or not) or "raw" (the core's bare state, PSXS5); state_slot0 is the + * extension of the first slot (".state", or ".state0"). */ + char state_cores[256]; + char state_format[16]; + char state_slot0[16]; + char core_file[PATH_MAX_LEN]; + char core_key[32]; + char core_values[256]; /* "0=pcsx_rearmed,2=mednafen_psx_hw" */ + /* Saves named differently by some of those cores ("save_name_by_core": + * {"mednafen_psx_hw": "{rom_stem}_1{ext}"}): both names are the game's, + * downloads take the current core's. "core=template;core=template". */ + char save_names_by_core[256]; /* Several emulators for one system: the main one gets downloads first and * the extras ("extra": ["psx"] in their profile) a link to the same file. * Extras whose saves have the main one's format ("save_format": "psx-card") @@ -71,6 +96,8 @@ typedef struct { * backed up to RomM's memory cards (memcard.h). */ char memcards[512]; int sync_saves; + int sync_states; /* 0: the user turned states off for this emulator */ + int sync_off; /* 1: the user turned save sync off for this emulator */ /* RetroArch folder rules, [0] for saves and [1] for states: * in_content = next to the game, by_content = //, * by_core = //. Both sort flags nest content then core. */ diff --git a/src/statefmt.c b/src/statefmt.c new file mode 100644 index 0000000..8a988dd --- /dev/null +++ b/src/statefmt.c @@ -0,0 +1,155 @@ +#include "statefmt.h" + +#include +#include +#include +#include +#include +#include + +#include "util.h" + +static uint32_t le32(const unsigned char *p) { return p[0] | p[1] << 8 | p[2] << 16 | (uint32_t)p[3] << 24; } + +static uint64_t le64(const unsigned char *p) { return le32(p) | (uint64_t)le32(p + 4) << 32; } + +static void put32(unsigned char *p, uint32_t v) { + for (int i = 0; i < 4; i++) p[i] = (unsigned char)(v >> (8 * i)); +} + +state_kind state_kind_of(const unsigned char *b, size_t n) { + if (n >= 20 && !memcmp(b, "#RZIPv\x01#", 8)) return STATE_RZIP; + if (n >= 16 && !memcmp(b, "RASTATE\x01", 8)) return STATE_RASTATE; + return STATE_RAW; +} + +/* Unpacks an RZIP stream. Malloc'd, or NULL. */ +static unsigned char *unrzip(const unsigned char *b, size_t n, size_t *out_n) { + uint64_t total = le64(b + 12); + if (total == 0 || total > (uint64_t)256 << 20) return NULL; /* states are tens of MB at most */ + unsigned char *out = malloc((size_t)total); + if (!out) return NULL; + size_t off = 20, got = 0; + while (off + 4 <= n && got < total) { + uint32_t len = le32(b + off); + off += 4; + if (len > n - off) break; + uLongf room = (uLongf)(total - got); + if (uncompress(out + got, &room, b + off, len) != Z_OK) break; + got += room; + off += len; + } + if (got != total) { + free(out); + return NULL; + } + *out_n = (size_t)total; + return out; +} + +/* The "MEM " block of a RASTATE, pointed into b. */ +static const unsigned char *rastate_mem(const unsigned char *b, size_t n, size_t *mem_n) { + size_t off = 8; + while (off + 8 <= n) { + uint32_t size = le32(b + off + 4); + const unsigned char *tag = b + off; + off += 8; + if (size > n - off) return NULL; + if (!memcmp(tag, "MEM ", 4)) { + *mem_n = size; + return b + off; + } + if (!memcmp(tag, "END ", 4)) return NULL; + off += ((size_t)size + 7) & ~(size_t)7; + } + return NULL; +} + +unsigned char *state_to_raw(const unsigned char *b, size_t n, size_t *out_n) { + unsigned char *unpacked = NULL; + if (state_kind_of(b, n) == STATE_RZIP) { + unpacked = unrzip(b, n, &n); + if (!unpacked) return NULL; + b = unpacked; + } + unsigned char *out = NULL; + if (state_kind_of(b, n) == STATE_RASTATE) { + size_t mem_n; + const unsigned char *mem = rastate_mem(b, n, &mem_n); + if (mem && (out = malloc(mem_n ? mem_n : 1))) { + memcpy(out, mem, mem_n); + *out_n = mem_n; + } + } else if ((out = malloc(n ? n : 1))) { /* already bare */ + memcpy(out, b, n); + *out_n = n; + } + free(unpacked); + return out; +} + +unsigned char *state_to_rastate(const unsigned char *b, size_t n, size_t *out_n) { + state_kind k = state_kind_of(b, n); + if (k == STATE_RZIP) return unrzip(b, n, out_n); + if (k == STATE_RASTATE) { + unsigned char *out = malloc(n); + if (out) { + memcpy(out, b, n); + *out_n = n; + } + return out; + } + size_t pad = (8 - n % 8) % 8, total = 16 + n + pad + 8; + unsigned char *out = calloc(1, total); + if (!out) return NULL; + memcpy(out, "RASTATE\x01" "MEM ", 12); + put32(out + 12, (uint32_t)n); + memcpy(out + 16, b, n); + memcpy(out + 16 + n + pad, "END ", 4); /* size 0 */ + *out_n = total; + return out; +} + +const char *state_core_of(const unsigned char *b, size_t n) { + size_t mem_n = n; + if (state_kind_of(b, n) == STATE_RASTATE) { + b = rastate_mem(b, n, &mem_n); + if (!b) return NULL; + } + static const struct { + const char *magic, *core; + } sigs[] = { + {"STv4 PCSXra", "pcsx_rearmed"}, + {"MDFNSVST", "mednafen_psx_hw"}, + {"DUCC", "swanstation"}, + }; + for (size_t i = 0; i < sizeof sigs / sizeof sigs[0]; i++) { + size_t l = strlen(sigs[i].magic); + if (mem_n >= l && !memcmp(b, sigs[i].magic, l)) return sigs[i].core; + } + return NULL; +} + +void emulator_key(const char *name, char *out, size_t n) { + if (!n) return; + static const char *const prefixes[] = {"retroarch-", "retroarch_", "libretro-", "libretro_"}; + for (size_t i = 0; i < sizeof prefixes / sizeof prefixes[0]; i++) { + size_t l = strlen(prefixes[i]); + if (!strncasecmp(name, prefixes[i], l)) { + name += l; + break; + } + } + size_t o = 0; + for (; *name && o + 1 < n; name++) { + unsigned char ch = (unsigned char)*name; + out[o++] = ch == '-' || ch == ' ' ? '_' : (char)tolower(ch); + } + out[o] = 0; + char *lib = strstr(out, "_libretro"); + if (lib) *lib = 0; + /* Beetle PSX is "mednafen_psx_hw" in RetroArch and RomM's web player. */ + static const char *const aliases[][2] = {{"beetle_psx_hw", "mednafen_psx_hw"}, {"beetle_psx", "mednafen_psx"}}; + for (size_t i = 0; i < sizeof aliases / sizeof aliases[0]; i++) + if (!strcmp(out, aliases[i][0])) str_copy(out, n, aliases[i][1]); +} diff --git a/src/statefmt.h b/src/statefmt.h new file mode 100644 index 0000000..ba94e25 --- /dev/null +++ b/src/statefmt.h @@ -0,0 +1,38 @@ +/* Save state files: the containers emulators keep them in, and the names + * RomM clients give the emulator that made them. + * + * RetroArch (and RomM's web player) wrap a core's state: + * "RASTATE\x01", then blocks of a 4-byte tag, a little-endian u32 size and + * the data padded to 8 bytes: "MEM " (the core's state) ... "END ". + * and RetroArch compresses that by default: + * "#RZIPv\x01#", u32 chunk size, u64 total size, then chunks of a u32 + * length and a zlib stream. + * Standalone emulators built on a libretro core (PSXS5) keep the core's + * state bare, which is what "MEM " holds. */ +#ifndef ROMM_STATEFMT_H +#define ROMM_STATEFMT_H + +#include + +typedef enum { STATE_RAW, STATE_RASTATE, STATE_RZIP } state_kind; + +state_kind state_kind_of(const unsigned char *b, size_t n); + +/* The core's own state, out of whatever container it's in. Returns malloc'd + * bytes, or NULL when the container is broken. */ +unsigned char *state_to_raw(const unsigned char *b, size_t n, size_t *out_n); + +/* An uncompressed RetroArch state: what RomM's web player saves and loads. + * A bare state is wrapped, a compressed one unpacked. Malloc'd, or NULL. */ +unsigned char *state_to_rastate(const unsigned char *b, size_t n, size_t *out_n); + +/* The libretro core a bare (or wrapped) state comes from, by its signature: + * "pcsx_rearmed", "mednafen_psx_hw", "swanstation", or NULL. */ +const char *state_core_of(const unsigned char *b, size_t n); + +/* RomM's emulator names, made comparable: lower case, "-" as "_", without + * the "retroarch-"/"libretro-" prefixes and "_libretro..." suffixes other + * clients add ("mGBA", "retroarch-mgba", "mgba_libretro_ios" -> "mgba"). */ +void emulator_key(const char *name, char *out, size_t n); + +#endif diff --git a/src/sync.c b/src/sync.c index 8b53c6f..5be6558 100644 --- a/src/sync.c +++ b/src/sync.c @@ -17,7 +17,9 @@ #include "platform.h" #include "profiles.h" #include "romm.h" +#include "events.h" #include "state.h" +#include "statefmt.h" #include "util.h" #include "zip.h" @@ -150,6 +152,7 @@ static int game_file(const local_rom *r, char *out, size_t n) { static int map_uses(const profile_map *m, const char *var) { return strstr(m->save_stems, var) || strstr(m->state_stems, var) || strstr(m->save_name, var) || + strstr(m->save_names_by_core, var) || strstr(m->state_name, var); } @@ -204,6 +207,15 @@ static void add_derived_stems(local_rom *r, cJSON *e) { if (stem[0] && !strchr(stem, '{') && strcmp(stem, "_1") != 0 && stem[0] != '_') add_stem(r, stem); } } + /* Names other cores of the emulator give the save ("core=template;..."). */ + char list[256], *save = NULL; + str_copy(list, sizeof list, m->save_names_by_core); + for (char *t = strtok_r(list, ";", &save); t; t = strtok_r(NULL, ";", &save)) { + char *eq = strchr(t, '='), stem[256]; + if (!eq) continue; + str_template(stem, sizeof stem, eq + 1, vars); + if (stem[0] && !strchr(stem, '{') && stem[0] != '_') add_stem(r, stem); + } } static int platform_ids_for_map(const scan_ctx *c, const profile_map *m, int *ids, int max) { @@ -282,6 +294,83 @@ static void record_local_rom(const char *path, int rom_id, const profile_map *m, cJSON_DeleteItemFromObjectCaseSensitive(e, "miss_at"); } +/* Renames files in dir (and its folders one level down, RetroArch's per-core + * ones) named "." to ".", unless that's taken. */ +static void rename_by_stem(const char *dir, const char *old_stem, const char *new_stem, int depth) { + DIR *d = opendir(dir); + struct dirent *de; + size_t ol = strlen(old_stem); + while (d && (de = readdir(d))) { + if (de->d_name[0] == '.') continue; + char from[PATH_MAX_LEN], to[PATH_MAX_LEN + 256]; + path_join(from, sizeof from, dir, de->d_name); + if (dir_exists(from)) { + if (depth == 0) rename_by_stem(from, old_stem, new_stem, 1); + continue; + } + if (strncmp(de->d_name, old_stem, ol) != 0 || de->d_name[ol] != '.') continue; + snprintf(to, sizeof to, "%s/%s%s", dir, new_stem, de->d_name + ol); + if (file_exists(to) || rename(from, to) != 0) continue; + LOGI("renamed %s -> %s", from, to); + state_lock(); + static const char *const sections[] = {"saves", "states"}; + for (int i = 0; i < 2; i++) { + cJSON *sec = state_section(sections[i]), *e = cJSON_DetachItemFromObjectCaseSensitive(sec, from); + if (e) cJSON_AddItemToObject(sec, to, e); + } + state_unlock(); + } + if (d) closedir(d); +} + +/* Version 1.1.1 downloaded a game RomM keeps as a folder holding one file as + * a single file named after the folder, with no extension, which emulators + * don't list. It becomes that folder with the file inside under its own + * name, as downloads do now; its saves and states take the file's name, which + * is what the emulator looks for. Returns 1 when it moved the game. */ +static int fix_bare_rom(const profile_map *m, const char *path, int rom_id) { + char api[64]; + long st = 0; + snprintf(api, sizeof api, "/api/roms/%d", rom_id); + cJSON *rom = romm_call("GET", api, NULL, &st); + const cJSON *files = cJSON_GetObjectItemCaseSensitive(rom, "files"); + const char *fn = path_basename(jget_str(cJSON_GetArrayItem(files, 0), "file_name", "")); + int done = 0; + if (st == 200 && cJSON_GetArraySize(files) == 1 && path_ext(fn)[0] && + !strcmp(jget_str(rom, "fs_name", ""), path_basename(path))) { + char tmp[PATH_MAX_LEN + 8], inside[PATH_MAX_LEN + 256]; + snprintf(tmp, sizeof tmp, "%s.moving", path); + snprintf(inside, sizeof inside, "%s/%s", path, fn); + if (rename(path, tmp) == 0) { + if (mkdir_p(path) == 0 && rename(tmp, inside) == 0) { + char old_stem[256], new_stem[256]; + str_copy(old_stem, sizeof old_stem, path_basename(path)); + path_stem(new_stem, sizeof new_stem, fn); + LOGI("moved %s into %s, so the emulator lists it", path, inside); + state_lock(); + cJSON *e = state_entry("roms", path); + if (e) { + cJSON_DeleteItemFromObjectCaseSensitive(e, "stems"); + cJSON *stems = cJSON_AddArrayToObject(e, "stems"); + cJSON_AddItemToArray(stems, cJSON_CreateString(old_stem)); + cJSON_AddItemToArray(stems, cJSON_CreateString(new_stem)); + } + state_unlock(); + if (strcmp(old_stem, new_stem) != 0) { + rename_by_stem(m->save_dir, old_stem, new_stem, 0); + if (strcmp(m->state_dir, m->save_dir) != 0) rename_by_stem(m->state_dir, old_stem, new_stem, 0); + } + done = 1; + } else { + rmdir(path); + rename(tmp, path); /* put it back as it was */ + } + } + } + cJSON_Delete(rom); + return done; +} + static void scan_rom_dir(scan_ctx *c, const profile_map *m) { DIR *d = opendir(m->rom_dir); if (!d) return; @@ -309,12 +398,18 @@ static void scan_rom_dir(scan_ctx *c, const profile_map *m) { add_stem(&r, de->d_name); DIR *sd = opendir(path); struct dirent *se; + char only[256] = ""; + int files = 0; while (sd && (se = readdir(sd))) { if (se->d_name[0] == '.') continue; path_stem(stem, sizeof stem, se->d_name); if (ext_in_list(se->d_name, ".cue,.m3u,.gdi,.chd,.ccd,.iso,.pbp")) add_stem(&r, stem); + if (files++ == 0) str_copy(only, sizeof only, stem); } if (sd) closedir(sd); + /* One file in the folder (RomM keeps some single-file games so): + * emulators name its saves after that file. */ + if (files == 1) add_stem(&r, only); } else { path_stem(stem, sizeof stem, de->d_name); add_stem(&r, stem); @@ -357,6 +452,18 @@ static void scan_rom_dir(scan_ctx *c, const profile_map *m) { state_unlock(); continue; } + if (!is_dir && !path_ext(de->d_name)[0] && fix_bare_rom(m, path, rom_id)) { + char fixed[PATH_MAX_LEN]; + str_copy(fixed, sizeof fixed, path); /* the folder, now */ + DIR *sd = opendir(fixed); + struct dirent *se; + while (sd && (se = readdir(sd))) + if (se->d_name[0] != '.') { + path_stem(stem, sizeof stem, se->d_name); + add_stem(&r, stem); + } + if (sd) closedir(sd); + } r.rom_id = rom_id; if (m->save_stems[0] || m->state_stems[0] || map_uses(m, "{rom_stem_safe}")) { state_lock(); @@ -411,7 +518,7 @@ static const local_rom *match_rom(const scan_ctx *c, const char *file_dir, const size_t best_len = 0, best_active_len = 0; for (int i = 0; i < c->nroms; i++) { const local_rom *r = &c->roms[i]; - if (!r->rules.sync_saves || (!states && r->map->save_layout[0])) continue; + if (!r->rules.sync_saves || (states && !r->map->sync_states) || (!states && r->map->save_layout[0])) continue; if (!ext_in_list(file_name, states ? r->map->state_exts : r->map->save_exts)) continue; for (int s = 0; s < r->nstems; s++) { size_t l = strlen(r->stems[s]); @@ -485,6 +592,21 @@ static void add_stray(const local_rom *r, const char *path, int states) { state_unlock(); } +/* Saves on a PS1 memory card (directory frames starting one), or -1 when + * it isn't one. */ +static int psx_card_saves(const profile_map *m, const char *path) { + if (strcmp(m->save_format, "psx-card") != 0) return -1; + unsigned char dir[16 * 128]; + FILE *fp = fopen(path, "rb"); + if (!fp) return -1; + size_t n = fread(dir, 1, sizeof dir, fp); + fclose(fp); + if (n < sizeof dir || dir[0] != 'M' || dir[1] != 'C') return -1; + int used = 0; + for (int i = 1; i < 16; i++) used += dir[i * 128] == 0x51; + return used; +} + static void scan_file_dir(scan_ctx *c, const char *dir, int depth, int states) { DIR *d = opendir(dir); if (!d) return; @@ -527,7 +649,11 @@ static void scan_file_dir(scan_ctx *c, const char *dir, int depth, int states) { if (o->rom_id == f.rom_id && !strcmp(o->slot, f.slot)) { LOGW("two local saves for rom %d slot %s: %s, %s (using newest)", f.rom_id, f.slot, o->path, f.path); - if (f.mtime > o->mtime) { + /* A blank card (an emulator made a fresh one under another + * name) never beats one with saves on it. */ + int fo = psx_card_saves(r->map, f.path), oo = psx_card_saves(r->map, o->path); + int take = fo == 0 && oo > 0 ? 0 : oo == 0 && fo > 0 ? 1 : f.mtime > o->mtime; + if (take) { hash_cached("saves", &f); *o = f; } @@ -955,6 +1081,23 @@ static int do_upload(const scan_ctx *c, const local_file *f, int session_id, int } /* Where a downloaded save goes when the game has no local save yet. */ +static void active_core(const profile_map *m, char *out, size_t n); + +/* The save name the emulator uses with the core it runs now. */ +static void save_name_now(const profile_map *m, char *out, size_t n) { + str_copy(out, n, m->save_name); + if (!m->save_names_by_core[0]) return; + char core[64], list[256], *save = NULL; + active_core(m, core, sizeof core); + str_copy(list, sizeof list, m->save_names_by_core); + for (char *t = strtok_r(list, ";", &save); t; t = strtok_r(NULL, ";", &save)) { + char *eq = strchr(t, '='); + if (!eq) continue; + *eq = 0; + if (!strcmp(t, core)) str_copy(out, n, eq + 1); + } +} + static void download_target(const local_rom *r, const char *server_name, const char *slot, const scan_ctx *c, char *out, size_t n) { char ext[32]; @@ -971,8 +1114,9 @@ static void download_target(const local_rom *r, const char *server_name, const c } const char *vars[13]; name_vars(r, ext, vars); - char name[512], dir[PATH_MAX_LEN]; - str_template(name, sizeof name, r->map->save_name, vars); + char name[512], dir[PATH_MAX_LEN], tmpl[128]; + save_name_now(r->map, tmpl, sizeof tmpl); + str_template(name, sizeof name, tmpl, vars); /* A name from a value this game lacks (no serial read) falls back to its own. */ if (!name[0] || name[0] == '_' || name[0] == '.' || strchr(name, '{')) str_template(name, sizeof name, "{rom_stem}{ext}", vars); @@ -980,9 +1124,11 @@ static void download_target(const local_rom *r, const char *server_name, const c path_join(out, n, dir, name); } +/* Returns 0, -1 when it failed, or -2 when it would put a blank PS1 card over + * one with saves on it (only with guard; the user choosing RomM's copy isn't). */ static int do_download(const scan_ctx *c, int save_id, const char *dest, const local_file *f, int rom_id, const char *slot, int session_id, const char *server_hash, - const char *server_updated_at) { + const char *server_updated_at, int guard) { char path[512], tmp[PATH_MAX_LEN]; char *dev = url_q(c->device_id); int o = snprintf(path, sizeof path, "/api/saves/%d/content?device_id=%s&optimistic=false", save_id, dev); @@ -995,6 +1141,11 @@ static int do_download(const scan_ctx *c, int save_id, const char *dest, const l unlink(tmp); return -1; } + if (guard && f && psx_card_saves(f->map, tmp) == 0 && psx_card_saves(f->map, dest) > 0) { + LOGW("save %d is a blank memory card and %s has saves on it: not replacing it", save_id, dest); + unlink(tmp); + return -2; + } backup_file(c, dest, rom_id); if (move_file(tmp, dest) != 0) { LOGE("cannot write %s", dest); @@ -1043,6 +1194,188 @@ static const local_rom *find_rom(const scan_ctx *c, int rom_id, const char *emul return any; } +/* The core an emulator runs now, from its own settings file + * ("state_core_setting"); the first listed value when the file says nothing. */ +static void active_core(const profile_map *m, char *out, size_t n) { + out[0] = 0; + char value[32] = ""; + char *txt = m->core_key[0] ? read_file(m->core_file, NULL) : NULL; + for (char *l = txt; l && *l;) { + size_t kl = strlen(m->core_key); + if (!strncmp(l, m->core_key, kl) && l[kl] == '=') { + size_t v = 0; + for (l += kl + 1; *l && *l != '\n' && *l != '\r' && v + 1 < sizeof value; l++) value[v++] = *l; + value[v] = 0; + break; + } + l = strchr(l, '\n'); + if (l) l++; + } + free(txt); + char list[256]; + str_copy(list, sizeof list, m->core_values); + char *save = NULL; + for (char *t = strtok_r(list, ",", &save); t; t = strtok_r(NULL, ",", &save)) { + char *eq = strchr(t, '='); + if (!eq) continue; + *eq = 0; + if (!out[0] || !strcmp(t, value)) str_copy(out, n, eq + 1); + if (!strcmp(t, value)) break; + } +} + +/* Whether an emulator can load a state RomM says `emulator` made. */ +static int map_takes_state(const profile_map *m, const char *emulator) { + char want[64], key[64]; + emulator_key(emulator ? emulator : "", want, sizeof want); + if (!want[0]) return 0; + if (m->core_values[0]) { + char core[64]; + active_core(m, core, sizeof core); + emulator_key(core, key, sizeof key); + if (strcmp(key, want) != 0) return 0; + } + char list[256]; + str_copy(list, sizeof list, m->state_cores); + char *save = NULL; + for (char *t = strtok_r(list, ",", &save); t; t = strtok_r(NULL, ",", &save)) { + emulator_key(t, key, sizeof key); + if (!strcmp(key, want)) return 1; + } + return 0; +} + +/* The local copy of a game whose emulator can load a state from `emulator`. */ +static const local_rom *find_rom_for_state(const scan_ctx *c, int rom_id, const char *emulator) { + for (int i = 0; i < c->nroms; i++) { + const local_rom *r = &c->roms[i]; + if (r->rom_id == rom_id && r->rules.sync_saves && r->map->sync_states && map_takes_state(r->map, emulator)) return r; + } + return NULL; +} + +/* The emulator as the log names it: "RetroArch (mGBA)", "PSXS5". */ +static const char *emu_name(const profile_map *m) { + static __thread char out[160]; + if (m->core_name[0]) snprintf(out, sizeof out, "%s (%s)", m->profile_name, m->core_name); + else str_copy(out, sizeof out, m->profile_name); + return out; +} + +/* Saves from before RomM's sync slots (no slot): its sync never offers them. + * A game here with no save of its own gets the newest one, and from then on + * syncs it in this console's slot. Never over a file that's there. */ +static int fetch_slotless_saves(scan_ctx *c, int only_rom) { + int want = 0; + for (int i = 0; i < c->nroms && !want; i++) { + const local_rom *r = &c->roms[i]; + want = r->rules.sync_saves && !r->map->save_layout[0] && (!only_rom || r->rom_id == only_rom) && + !find_save(c, r->rom_id, c->slot); + } + if (!want) return 0; + long st = 0; + char api[64] = "/api/saves"; + if (only_rom) snprintf(api, sizeof api, "/api/saves?rom_id=%d", only_rom); + cJSON *all = romm_call("GET", api, NULL, &st); + int n = 0; + for (int i = 0; st == 200 && i < c->nroms; i++) { + const local_rom *r = &c->roms[i]; + if (!r->rules.sync_saves || r->map->save_layout[0] || (only_rom && r->rom_id != only_rom) || + find_save(c, r->rom_id, c->slot)) + continue; + int done_before = 0; /* another emulator's copy of the game took it */ + for (int k = 0; k < i; k++) done_before |= c->roms[k].rom_id == r->rom_id; + if (done_before) continue; + const cJSON *s, *best = NULL; + int slotted = 0; + cJSON_ArrayForEach(s, all) { + if ((int)jget_num(s, "rom_id", 0) != r->rom_id) continue; + if (jget_str(s, "slot", "")[0]) slotted = 1; + else if (ext_in_list(jget_str(s, "file_name", ""), r->map->save_exts) && + (!best || strcmp(jget_str(s, "updated_at", ""), jget_str(best, "updated_at", "")) > 0)) + best = s; + } + if (slotted || !best) continue; /* the sync's own job, or nothing to take */ + char dest[PATH_MAX_LEN]; + download_target(r, jget_str(best, "file_name", ""), c->slot, c, dest, sizeof dest); + if (file_exists(dest)) continue; + mkdir_parent(dest); + if (do_download(c, (int)jget_num(best, "id", 0), dest, NULL, r->rom_id, c->slot, 0, "", + jget_str(best, "updated_at", ""), 0) == 0) { + n++; + events_add("save", "downloaded", r->rom_id, dest, emu_name(r->map), "Older save with no slot"); + } + } + cJSON_Delete(all); + return n; +} + +/* Saves synced before whose file is gone from this console (deleted, or lost + * with the emulator): RomM sees nothing new, so negotiate never offers them. + * The newest version of that slot comes back to where it was. To get rid of a + * save for good, delete it on RomM too. */ +static int restore_missing_saves(scan_ctx *c, int only_rom) { + typedef struct { char path[PATH_MAX_LEN]; char slot[64]; int rom_id, save_id; } missing; + missing *list = NULL; + int nlist = 0, cap = 0; + state_lock(); + const cJSON *e; + cJSON_ArrayForEach(e, state_section("saves")) { + const char *path = e->string; + int rom_id = (int)jget_num(e, "rom_id", 0); + if (!rom_id || (only_rom && rom_id != only_rom) || strchr(path, '#') || file_exists(path)) continue; + if (nlist == cap) { + cap = cap ? cap * 2 : 16; + missing *grown = realloc(list, (size_t)cap * sizeof *list); + if (!grown) break; + list = grown; + } + str_copy(list[nlist].path, sizeof list[nlist].path, path); + str_copy(list[nlist].slot, sizeof list[nlist].slot, jget_str(e, "slot", "")); + list[nlist].save_id = (int)jget_num(e, "save_id", 0); + list[nlist++].rom_id = rom_id; + } + state_unlock(); + int n = 0; + for (int i = 0; i < nlist; i++) { + const missing *m = &list[i]; + const local_rom *r = NULL; + for (int k = 0; k < c->nroms && !r; k++) + if (c->roms[k].rom_id == m->rom_id && c->roms[k].rules.sync_saves && !c->roms[k].map->save_layout[0]) + r = &c->roms[k]; + if (!r || find_save(c, m->rom_id, m->slot) || file_exists(m->path)) continue; /* the game's gone, or it has a save */ + int done_before = 0; /* one file per slot: another name of the same save came back already */ + for (int k = 0; k < i; k++) done_before |= list[k].rom_id == m->rom_id && !strcmp(list[k].slot, m->slot) && file_exists(list[k].path); + if (done_before) continue; + char api[64]; + snprintf(api, sizeof api, "/api/saves?rom_id=%d", m->rom_id); + long st = 0; + cJSON *all = romm_call("GET", api, NULL, &st); + const cJSON *s, *best = NULL; + cJSON_ArrayForEach(s, st == 200 ? all : NULL) + if ((int)jget_num(s, "rom_id", 0) == m->rom_id && !strcmp(jget_str(s, "slot", ""), m->slot) && + (!best || strcmp(jget_str(s, "updated_at", ""), jget_str(best, "updated_at", "")) > 0)) + best = s; + /* Two names for one slot (a PS1 card by serial and by file name): the + * one that had RomM's newest version gets it. */ + int other = 0; + const int best_id = best ? (int)jget_num(best, "id", 0) : 0; + for (int k = i + 1; best && m->save_id != best_id && k < nlist; k++) + other |= list[k].rom_id == m->rom_id && !strcmp(list[k].slot, m->slot) && list[k].save_id == best_id; + if (best && !other) { + mkdir_parent(m->path); + if (do_download(c, (int)jget_num(best, "id", 0), m->path, NULL, m->rom_id, m->slot, 0, + jget_str(best, "content_hash", ""), jget_str(best, "updated_at", ""), 0) == 0) { + n++; + events_add("save", "downloaded", m->rom_id, m->path, emu_name(r->map), "Missing here"); + } + } + cJSON_Delete(all); + } + free(list); + return n; +} + static void record_conflict(const local_file *f, const cJSON *op) { state_lock(); int is_new = state_entry("conflicts", f->path) == NULL; @@ -1056,10 +1389,81 @@ static void record_conflict(const local_file *f, const cJSON *op) { jset_num(e, "local_mtime", (double)f->mtime); jset_num(e, "detected_at", (double)time(NULL)); state_unlock(); - if (is_new) LOGW("conflict for %s: %s", f->path, jget_str(op, "reason", "")); + if (is_new) { + LOGW("conflict for %s: %s", f->path, jget_str(op, "reason", "")); + events_add("save", "conflict", f->rom_id, f->path, emu_name(f->map), "Changed in both places"); + } } +/* Server states already brought down or sent up, by id, with the updated_at + * we saw. Caller holds state_lock. */ +static int same_time(const char *a, const char *b) { + time_t ta = iso8601_parse(a), tb = iso8601_parse(b); + return ta > 0 ? ta == tb : !strcmp(a, b); +} + +static void mark_seen(int id, const char *updated_at) { + char key[16]; + snprintf(key, sizeof key, "%d", id); + cJSON *seen = state_section("states_seen"); + cJSON_DeleteItemFromObjectCaseSensitive(seen, key); + cJSON_AddStringToObject(seen, key, updated_at); +} + +static int was_seen(int id, const char *updated_at) { + char key[16]; + snprintf(key, sizeof key, "%d", id); + const char *at = jget_str(state_section("states_seen"), key, NULL); + return at && same_time(at, updated_at); +} + +/* The local file holding server state id, if we have one. */ +static cJSON *state_record_for(int id, char *path, size_t n) { + cJSON *e; + cJSON_ArrayForEach(e, state_section("states")) { + if ((int)jget_num(e, "state_id", 0) == id) { + str_copy(path, n, e->string); + return e; + } + } + return NULL; +} + +/* Name a state goes up under: the local name with this console's name in it, + * so other devices' states (and RomM, which replaces a state of the same + * name) never meet it. "Game.state1" -> "Game [PlayStation 5].state1". */ +static void state_upload_name(const char *path, char *out, size_t n) { + char device[64]; + config_lock(); + str_copy(device, sizeof device, g_cfg.device_name[0] ? g_cfg.device_name : "RommPS"); + config_unlock(); + const char *base = path_basename(path), *ext = path_ext(base); + snprintf(out, n, "%.*s [%s]%s", (int)(ext - base), base, device, ext); +} + +/* A local state as RomM's web player loads it, in a temp file: RetroArch's + * container, uncompressed. *core becomes the core a bare state comes from + * when its signature says (PSXS5 runs several). */ +static int state_for_romm(const char *path, char *tmp, size_t n, const char **core) { + size_t len = 0, out_n = 0; + unsigned char *data = (unsigned char *)read_file(path, &len); + if (!data) return -1; + const char *sig = state_core_of(data, len); + if (sig && core) *core = sig; + unsigned char *out = state_to_rastate(data, len, &out_n); + free(data); + if (!out) { + LOGW("can't read the state %s", path); + return -1; + } + static int seq; + snprintf(tmp, n, "%s/tmp/state-up-%d.bin", plat_data_dir(), __sync_add_and_fetch(&seq, 1)); + int rc = write_file_atomic(tmp, out, out_n); + free(out); + return rc; +} + static int sync_states_up(scan_ctx *c, int only_rom) { int uploaded = 0; for (int i = 0; i < c->nstates; i++) { @@ -1075,24 +1479,39 @@ static int sync_states_up(scan_ctx *c, int only_rom) { cJSON *e = state_entry("states", f->path); int same = e && !strcmp(jget_str(e, "hash", ""), f->hash); int state_id = e ? (int)jget_num(e, "state_id", 0) : 0; + int mine = e && jget_num(e, "mine", 0); state_unlock(); if (same) continue; char path[512]; long st = 0; cJSON *j = NULL; - if (state_id) { - snprintf(path, sizeof path, "/api/states/%d", state_id); - j = romm_upload("PUT", path, "stateFile", f->path, path_basename(f->path), &st); + const char *core = f->map->emulator; /* or the core a bare state's signature names */ + /* Only a state this console made is replaced on RomM. One that came + * from elsewhere and was then saved over here goes up as a new one. */ + if (state_id && mine) { + char tmp[PATH_MAX_LEN]; + if (state_for_romm(f->path, tmp, sizeof tmp, &core) == 0) { + snprintf(path, sizeof path, "/api/states/%d", state_id); + j = romm_upload("PUT", path, "stateFile", tmp, path_basename(f->path), &st); + unlink(tmp); + } } - if (!state_id || st == 404) { + if (!state_id || !mine || st == 404) { cJSON_Delete(j); - char *emu = url_q(f->map->emulator); - snprintf(path, sizeof path, "/api/states?rom_id=%d&emulator=%s", f->rom_id, emu); - free(emu); - j = romm_upload("POST", path, "stateFile", f->path, path_basename(f->path), &st); + j = NULL; + char name[300], tmp[PATH_MAX_LEN]; + state_upload_name(f->path, name, sizeof name); + if (state_for_romm(f->path, tmp, sizeof tmp, &core) == 0) { + char *emu = url_q(core); + snprintf(path, sizeof path, "/api/states?rom_id=%d&emulator=%s", f->rom_id, emu); + free(emu); + j = romm_upload("POST", path, "stateFile", tmp, name, &st); + unlink(tmp); + } } if ((st == 200 || st == 201) && j) { + int id = (int)jget_num(j, "id", state_id); state_lock(); cJSON *ne = state_entry_ensure("states", f->path); jset_num(ne, "rom_id", f->rom_id); @@ -1102,12 +1521,15 @@ static int sync_states_up(scan_ctx *c, int only_rom) { snprintf(ns, sizeof ns, "%lld", (long long)file_mtime_ns(f->path)); jset_str(ne, "mtime_ns", ns); jset_num(ne, "size", (double)f->size); - jset_num(ne, "state_id", jget_num(j, "id", state_id)); + jset_num(ne, "state_id", id); + jset_num(ne, "mine", 1); jset_str(ne, "server_updated_at", jget_str(j, "updated_at", "")); jset_num(ne, "synced_at", (double)time(NULL)); + mark_seen(id, jget_str(j, "updated_at", "")); state_unlock(); uploaded++; LOGI("uploaded state %s", f->path); + events_add("state", "uploaded", f->rom_id, f->path, emu_name(f->map), NULL); } cJSON_Delete(j); } @@ -1125,22 +1547,69 @@ static void state_local_name(const local_rom *r, const char *server_name, char * return; } } - const char *vars[13]; - name_vars(r, path_ext(server_name), vars); + const char *ext = path_ext(server_name), *vars[13]; + if (!strcmp(ext, ".state")) ext = r->map->state_slot0; + name_vars(r, ext, vars); str_template(out, n, r->map->state_name, vars); + /* A name from a value this game lacks (no hash read): none at all. */ + if (out[0] == '.' || out[0] == '_' || strchr(out, '{')) out[0] = 0; +} + +/* A file there already, or one another server state is kept in. */ +static int state_path_taken(const char *path, int id) { + if (file_exists(path)) return 1; + state_lock(); + const cJSON *e = state_entry("states", path); + int taken = e && (int)jget_num(e, "state_id", 0) != id; + state_unlock(); + return taken; +} + +/* The next free numbered slot beside path ("Game.state" -> "Game.state1"), + * for an emulator whose states are numbered. 0 if there's none. */ +static int free_state_slot(const local_rom *r, char *path, size_t n, int id) { + if (!strchr(r->map->state_exts, '*')) return 0; + char base[PATH_MAX_LEN]; + str_copy(base, sizeof base, path); + char *dot = strrchr(base, '.'); + if (!dot || strncmp(dot, ".state", 6) != 0) return 0; + dot[6] = 0; /* "Game.state" */ + for (int slot = 1; slot < 100; slot++) { + char p[PATH_MAX_LEN + 8]; + snprintf(p, sizeof p, "%s%d", base, slot); + if (!state_path_taken(p, id)) { + str_copy(path, n, p); + return 1; + } + } + return 0; } /* Downloads a state into place (backing up what was there) and records it. */ -static int fetch_state(const scan_ctx *c, const cJSON *s, const char *path, int rom_id) { +static int fetch_state(const scan_ctx *c, const cJSON *s, const char *path, const local_rom *r) { + int rom_id = r->rom_id; char api[128], tmp[PATH_MAX_LEN]; int id = (int)jget_num(s, "id", 0); snprintf(api, sizeof api, "/api/states/%d/content", id); snprintf(tmp, sizeof tmp, "%s/tmp/state-%d.bin", plat_data_dir(), id); - http_resp r; - if (romm_download(api, tmp, NULL, NULL, &r) != 0) { + http_resp resp; + if (romm_download(api, tmp, NULL, NULL, &resp) != 0) { unlink(tmp); return -1; } + if (!strcmp(r->map->state_format, "raw")) { + size_t len = 0, raw_n = 0; + unsigned char *data = (unsigned char *)read_file(tmp, &len); + unsigned char *raw = data ? state_to_raw(data, len, &raw_n) : NULL; + free(data); + if (!raw || write_file_atomic(tmp, raw, raw_n) != 0) { + LOGW("state %d: can't unpack it for %s", id, path); + free(raw); + unlink(tmp); + return -1; + } + free(raw); + } backup_file(c, path, rom_id); if (move_file(tmp, path) != 0) return -1; time_t t = iso8601_parse(jget_str(s, "updated_at", "")); @@ -1157,15 +1626,45 @@ static int fetch_state(const scan_ctx *c, const cJSON *s, const char *path, int jset_str(e, "mtime_ns", ns); jset_num(e, "size", (double)file_size(path)); jset_num(e, "state_id", id); + jset_num(e, "mine", 0); jset_str(e, "server_updated_at", jget_str(s, "updated_at", "")); jset_num(e, "synced_at", (double)time(NULL)); + mark_seen(id, jget_str(s, "updated_at", "")); state_unlock(); LOGI("downloaded state %s", path); return 0; } -/* Pulls states that changed on the server since we last saw them. A state - * that also changed here is kept; the upload pass sends it. */ +/* Logs, once per version, a state no emulator here can load: made by another + * core, or by an app whose states only it reads. */ +static void note_skipped_state(const scan_ctx *c, const cJSON *s) { + int rom_id = (int)jget_num(s, "rom_id", 0), local = 0; + for (int i = 0; i < c->nroms && !local; i++) + local = c->roms[i].rom_id == rom_id && c->roms[i].rules.sync_saves && c->roms[i].map->sync_states; + if (!local) return; /* game isn't on this console, or its emulator doesn't sync states */ + char key[16]; + snprintf(key, sizeof key, "%d", (int)jget_num(s, "id", 0)); + const char *up = jget_str(s, "updated_at", ""); + state_lock(); + cJSON *sk = state_section("states_skipped"); + int known = !strcmp(jget_str(sk, key, ""), up); + if (!known) { + cJSON_DeleteItemFromObjectCaseSensitive(sk, key); + cJSON_AddStringToObject(sk, key, up); + } + state_unlock(); + if (!known) { + const char *by = jget_str(s, "emulator", "")[0] ? jget_str(s, "emulator", "") : "an unknown emulator"; + LOGI("state %s skipped: made by %s, which no emulator here for rom %d can load", jget_str(s, "file_name", "?"), by, + rom_id); + events_add("state", "skipped", rom_id, jget_str(s, "file_name", ""), "", "No suitable emulator on console"); + } +} + +/* Pulls states that are new or changed on the server. Each server state keeps + * one local file; a new one never replaces a file that's there (the player's + * own slot, or another server state) but takes the next free slot. A state + * changed here since it came down is kept; the upload pass sends it. */ static int sync_states_down(scan_ctx *c, int only_rom) { long st = 0; cJSON *list = romm_call("GET", "/api/states", NULL, &st); @@ -1173,29 +1672,85 @@ static int sync_states_down(scan_ctx *c, int only_rom) { const cJSON *s; cJSON_ArrayForEach(s, list) { if (only_rom && (int)jget_num(s, "rom_id", 0) != only_rom) continue; - const local_rom *r = find_rom(c, (int)jget_num(s, "rom_id", 0), jget_str(s, "emulator", NULL)); - char dir[PATH_MAX_LEN], name[256], path[PATH_MAX_LEN]; - if (!r || !expected_dir(r, 1, dir, sizeof dir)) continue; + int id = (int)jget_num(s, "id", 0); + const char *server_up = jget_str(s, "updated_at", ""); + char path[PATH_MAX_LEN], rec_hash[33] = "", rec_up[64] = ""; + state_lock(); + int seen = was_seen(id, server_up); + cJSON *e = state_record_for(id, path, sizeof path); + /* One we kept whose file is gone from here comes back. */ + const int missing = e && !file_exists(path); + if (missing) seen = 0; + if (e && !seen && !missing) { + str_copy(rec_hash, sizeof rec_hash, jget_str(e, "hash", "")); + str_copy(rec_up, sizeof rec_up, jget_str(e, "server_updated_at", "")); + /* Recorded before states_seen existed. */ + if (same_time(rec_up, server_up)) { + mark_seen(id, server_up); + seen = 1; + } + } + state_unlock(); + if (seen) continue; + + const char *emulator = jget_str(s, "emulator", ""); + const local_rom *r = find_rom_for_state(c, (int)jget_num(s, "rom_id", 0), emulator); + if (!r) { + note_skipped_state(c, s); + continue; + } + char dir[PATH_MAX_LEN], name[256]; + if (!expected_dir(r, 1, dir, sizeof dir)) continue; const char *server_name = jget_str(s, "file_name", ""); if (!ext_in_list(server_name, r->map->state_exts)) continue; - state_local_name(r, server_name, name, sizeof name); - path_join(path, sizeof path, dir, name); - const char *server_up = jget_str(s, "updated_at", ""); - state_lock(); - cJSON *e = state_entry("states", path); - int known = e && !strcmp(jget_str(e, "server_updated_at", ""), server_up); - char rec_hash[33]; - str_copy(rec_hash, sizeof rec_hash, e ? jget_str(e, "hash", "") : ""); - state_unlock(); - if (known) continue; - - if (file_exists(path)) { - char hash[33]; - md5_file_hex(path, hash); - if (rec_hash[0] ? strcmp(hash, rec_hash) != 0 : file_mtime(path) >= iso8601_parse(server_up)) continue; + if (e) { /* a newer version of a state we keep */ + if (file_exists(path)) { + char hash[33]; + md5_file_hex(path, hash); + if (strcmp(hash, rec_hash) != 0) continue; + } + } else { + state_local_name(r, server_name, name, sizeof name); + if (!name[0]) continue; + path_join(path, sizeof path, dir, name); + if (state_path_taken(path, id) && !free_state_slot(r, path, sizeof path, id)) { + LOGI("state %d skipped: no free slot beside %s", id, path); + continue; + } } - if (fetch_state(c, s, path, r->rom_id) == 0) n++; + if (missing) mkdir_parent(path); + if (fetch_state(c, s, path, r) == 0) { + n++; + events_add("state", "downloaded", r->rom_id, path, emu_name(r->map), missing ? "Missing here" : NULL); + } else { + events_add("state", "failed", r->rom_id, path, emu_name(r->map), "Download failed"); + } + } + /* Forget states that are gone from the server, and the records of states + * gone from both sides. */ + if (st == 200 && cJSON_IsArray(list)) { + static const char *const sections[] = {"states_seen", "states_skipped"}; + state_lock(); + cJSON *recs = state_section("states"), *rec = recs->child; + while (rec) { + cJSON *next = rec->next; + int id = (int)jget_num(rec, "state_id", 0), there = 0; + cJSON_ArrayForEach(s, list) if ((int)jget_num(s, "id", 0) == id) there = 1; + if (!there && !file_exists(rec->string)) cJSON_Delete(cJSON_DetachItemViaPointer(recs, rec)); + rec = next; + } + for (int i = 0; i < 2; i++) { + cJSON *sec = state_section(sections[i]), *k = sec->child; + while (k) { + cJSON *next = k->next; + int there = 0; + cJSON_ArrayForEach(s, list) if ((int)jget_num(s, "id", 0) == atoi(k->string)) there = 1; + if (!there) cJSON_Delete(cJSON_DetachItemViaPointer(sec, k)); + k = next; + } + } + state_unlock(); } cJSON_Delete(list); return n; @@ -1428,12 +1983,14 @@ static void run_sync(const char *reason, int only_rom, sync_result *res) { res->uploaded++; if (last_rom != rom_id) roms_touched++; last_rom = rom_id; + events_add("save", "uploaded", rom_id, f->path, emu_name(f->map), overwrite ? "Kept this console's" : NULL); } else if (ust == 409) { /* The server copy changed since negotiate. */ record_conflict(f, op); res->conflicts++; } else { res->failed++; + events_add("save", "failed", rom_id, f->path, emu_name(f->map), "Upload failed"); } } else if (want_down && upload_only) { res->deferred++; @@ -1452,19 +2009,31 @@ static void run_sync(const char *reason, int only_rom, sync_result *res) { str_copy(dest, sizeof dest, f->path); else download_target(r, jget_str(op, "file_name", ""), slot, &c, dest, sizeof dest); - ok = do_download(&c, save_id, dest, f, rom_id, slot, session_id, jget_str(op, "server_content_hash", ""), - jget_str(op, "server_updated_at", "")) == 0; + int rc = do_download(&c, save_id, dest, f, rom_id, slot, session_id, jget_str(op, "server_content_hash", ""), + jget_str(op, "server_updated_at", ""), 1); + if (rc == -2) { + record_conflict(f, op); + res->conflicts++; + events_add("save", "conflict", rom_id, dest, emu_name(r->map), "RomM's card is blank"); + continue; + } + ok = rc == 0; } + const char *where = r->map->save_layout[0] ? r->path : dest; if (ok) { res->downloaded++; + events_add("save", "downloaded", rom_id, where, emu_name(r->map), is_conflict ? "Kept RomM's" : NULL); } else { res->failed++; + events_add("save", "failed", rom_id, where, emu_name(r->map), "Download failed"); } } else { res->skipped++; } } cJSON_Delete(neg); + if (!upload_only) res->downloaded += restore_missing_saves(&c, only_rom); + if (!upload_only) res->downloaded += fetch_slotless_saves(&c, only_rom); set_phase("finishing"); cJSON *done = cJSON_CreateObject(); @@ -1514,12 +2083,14 @@ static void run_sync(const char *reason, int only_rom, sync_result *res) { /* Runs a sync and adds it to the history. */ static void run_and_record(const char *reason, int only_rom, sync_result *r) { pthread_mutex_lock(&g_run_lock); + events_set_sync(reason); g_running = 1; run_sync(reason, only_rom, r); g_running = 0; g_last_run = time(NULL); set_phase("idle"); pthread_mutex_unlock(&g_run_lock); + events_save(); cJSON *h = cJSON_CreateObject(); g_sync_count++; @@ -1541,6 +2112,8 @@ static void run_and_record(const char *reason, int only_rom, sync_result *r) { state_unlock(); } +static int sync_summary(const sync_result *r, char *out, size_t n); + static int notify_on(void) { config_lock(); int notify = g_cfg.notify; @@ -1559,11 +2132,17 @@ static void *worker(void *arg) { pthread_mutex_unlock(&g_req_lock); if (!config_is_paired()) continue; - /* Only manual syncs run until setup is finished. */ - int ready; + /* Only manual syncs run until setup is finished, and none at all + * with save sync off (RomM is then only where games come from). */ + int ready, on; config_lock(); ready = g_cfg.setup_complete; + on = g_cfg.save_sync; config_unlock(); + if (!on) { + LOGI("sync (%s) skipped: save sync is off", reason); + continue; + } if (!ready && strcmp(reason, "manual") != 0 && strcmp(reason, "first sync") != 0) { LOGI("sync (%s) skipped: setup not finished", reason); continue; @@ -1574,22 +2153,35 @@ static void *worker(void *arg) { int notify = notify_on(); if (r.error[0]) { LOGE("sync failed: %s", r.error); - if (notify) plat_notify("RomM Sync: sync failed: %s", r.error); + if (notify) plat_notify("RommPS: couldn't sync. %s", r.error); } else { /* Issue #10 - Added notification and log file for memory card operations. */ LOGI("sync done: %d up, %d down, %d conflicts, %d failed, %d states, %d cards", r.uploaded, r.downloaded, r.conflicts, r.failed, r.states_up, r.cards); - if (notify && (r.uploaded || r.downloaded || r.conflicts || r.failed || r.cards)) { - char cards[48] = ""; - if (r.cards) snprintf(cards, sizeof cards, ", %d memory card%s backed up", r.cards, r.cards == 1 ? "" : "s"); - plat_notify("RomM Sync: %d uploaded, %d downloaded%s%s", r.uploaded, r.downloaded, cards, - r.conflicts ? ", conflicts to resolve" : ""); - } + char text[200]; + if (notify && sync_summary(&r, text, sizeof text)) plat_notify("RommPS: %s", text); } } return NULL; } +/* What a sync did, for its notification: "2 saves up, 1 state down, 1 + * conflict to resolve". 0 when it did nothing worth telling. */ +static int sync_summary(const sync_result *r, char *out, size_t n) { + struct { int count; const char *one, *many; } parts[] = { + {r->uploaded, "save up", "saves up"}, {r->downloaded, "save down", "saves down"}, + {r->states_up, "state up", "states up"}, {r->states_down, "state down", "states down"}, + {r->cards, "memory card backed up", "memory cards backed up"}, + {r->conflicts, "conflict to resolve", "conflicts to resolve"}, {r->failed, "failed", "failed"}}; + size_t o = 0; + out[0] = 0; + for (size_t i = 0; i < sizeof parts / sizeof parts[0] && o < n; i++) + if (parts[i].count > 0) + o += (size_t)snprintf(out + o, n - o, "%s%d %s", o ? ", " : "", parts[i].count, + parts[i].count == 1 ? parts[i].one : parts[i].many); + return o > 0; +} + void sync_init(void) { thread_start(worker, NULL); } @@ -1601,7 +2193,7 @@ static void plural(char *out, size_t n, int count, const char *what) { int sync_game(int rom_id, const char *name, sync_game_result *out) { memset(out, 0, sizeof *out); config_lock(); - int ready = g_cfg.setup_complete; + int ready = g_cfg.setup_complete && g_cfg.save_sync; config_unlock(); if (!config_is_paired() || !ready) return -1; @@ -1615,14 +2207,16 @@ int sync_game(int rom_id, const char *name, sync_game_result *out) { out->failed ? ", some failed" : ""); if (!notify_on()) return 0; if (out->failed) { - plat_notify("RomM Sync: %s: saves could not sync", name); + plat_notify("RommPS: %s downloaded. Its saves couldn't sync", name); } else if (out->conflicts) { - plat_notify("RomM Sync: %s: save conflict to resolve", name); + plat_notify("RommPS: %s downloaded. A save conflict needs you", name); } else if (out->saves || out->states) { char saves[32] = "", states[32] = ""; if (out->saves) plural(saves, sizeof saves, out->saves, "save"); if (out->states) plural(states, sizeof states, out->states, "state"); - plat_notify("RomM Sync: %s: %s%s%s synced", name, saves, out->saves && out->states ? " and " : "", states); + plat_notify("RommPS: %s downloaded with %s%s%s", name, saves, out->saves && out->states ? " and " : "", states); + } else { + plat_notify("RommPS: %s downloaded", name); } return 0; } @@ -1719,7 +2313,7 @@ int sync_resolve_conflict(const char *path, const char *keep, char *err, int en) if (rc) snprintf(err, (size_t)en, "download failed"); } else { rc = do_download(&c, (int)jget_num(e, "save_id", 0), path, f, f->rom_id, f->slot, 0, jget_str(e, "server_hash", ""), - jget_str(e, "server_updated_at", "")); + jget_str(e, "server_updated_at", ""), 0); if (rc) snprintf(err, (size_t)en, "download failed"); } if (rc == 0) { @@ -1727,6 +2321,9 @@ int sync_resolve_conflict(const char *path, const char *keep, char *err, int en) state_entry_remove("conflicts", path); state_save(); state_unlock(); + events_set_sync("conflict resolved"); + events_add("save", "resolved", f->rom_id, path, emu_name(f->map), local ? "Kept this console's" : "Kept RomM's"); + events_save(); } done: cJSON_Delete(e); @@ -1997,7 +2594,13 @@ int sync_restore(const char *kind, int id, char *err, int en) { } scan_saves(&c); int rom_id = (int)jget_num(meta, "rom_id", 0); - const local_rom *r = find_rom(&c, rom_id, jget_str(meta, "emulator", NULL)); + const local_rom *r = is_state ? find_rom_for_state(&c, rom_id, jget_str(meta, "emulator", "")) + : find_rom(&c, rom_id, jget_str(meta, "emulator", NULL)); + if (!r && is_state && find_rom(&c, rom_id, NULL)) { + snprintf(err, (size_t)en, "made by %s, which this console's emulator can't load", + jget_str(meta, "emulator", "")[0] ? jget_str(meta, "emulator", "") : "an unknown emulator"); + goto done; + } if (!r) { snprintf(err, (size_t)en, "the game isn't on this console"); goto done; @@ -2010,7 +2613,7 @@ int sync_restore(const char *kind, int id, char *err, int en) { } state_local_name(r, jget_str(meta, "file_name", ""), name, sizeof name); path_join(dest, sizeof dest, dir, name); - rc = fetch_state(&c, meta, dest, rom_id); + rc = fetch_state(&c, meta, dest, r); if (rc) snprintf(err, (size_t)en, "download failed"); } else if (r->map->save_layout[0]) { const char *slot = jget_str(meta, "slot", c.slot); @@ -2038,7 +2641,10 @@ int sync_restore(const char *kind, int id, char *err, int en) { if (rc) snprintf(err, (size_t)en, "could not write %s", dest); /* Not recorded as synced: the next sync uploads it as the newest version. */ } - if (rc == 0) LOGI("restored %s %d to %s", kind, id, dest); + if (rc == 0) { + LOGI("restored %s %d to %s", kind, id, dest); + events_add(is_state ? "state" : "save", "restored", rom_id, dest, r ? emu_name(r->map) : "", "Older version"); + } done: scan_free(&c); pthread_mutex_unlock(&g_run_lock); @@ -2046,3 +2652,104 @@ done: if (rc == 0) sync_request("restore"); return rc; } + +/* One tracked file for sync_tracked. */ +static void tracked_file(cJSON *games, const cJSON *roms, const profile_map *maps, int nmaps, const char *kind, + const cJSON *e, const cJSON *conflicts) { + int rom_id = (int)jget_num(e, "rom_id", 0); + const cJSON *game = NULL, *g; + cJSON_ArrayForEach(g, roms) if ((int)jget_num(g, "rom_id", -1) == rom_id && rom_id) game = g; + const char *platform = game ? jget_str(game, "platform_dir", "") : ""; + const char *profile = game ? jget_str(game, "profile", "") : ""; + const char *emulator = ""; + for (int i = 0; i < nmaps; i++) + if (!strcmp(maps[i].profile_id, profile) && (!platform[0] || !strcmp(maps[i].platform_dir, platform))) + emulator = maps[i].profile_name; + + char key[16]; + snprintf(key, sizeof key, "%d", rom_id); + cJSON *entry = cJSON_GetObjectItemCaseSensitive(games, key); + if (!entry) { + entry = cJSON_AddObjectToObject(games, key); + cJSON_AddNumberToObject(entry, "rom_id", rom_id); + cJSON_AddStringToObject(entry, "name", game ? jget_str(game, "name", "") : ""); + cJSON_AddStringToObject(entry, "platform", platform); + cJSON_AddStringToObject(entry, "emulator", emulator); + cJSON_AddArrayToObject(entry, "files"); + } + const char *path = e->string; + const char *status = "synced"; + if (cJSON_GetObjectItemCaseSensitive(conflicts, path)) { + status = "conflict"; + } else if (strchr(path, '#')) { /* a save folder synced as a zip */ + status = "synced"; + } else if (!file_exists(path)) { + status = "missing"; + } else { + char ns[24]; + snprintf(ns, sizeof ns, "%lld", (long long)file_mtime_ns(path)); + /* A newer time with the same content (emulators rewrite saves) is still in sync. */ + char hash[33] = ""; + if ((strcmp(ns, jget_str(e, "mtime_ns", "")) != 0 || file_size(path) != (int64_t)jget_num(e, "size", -1)) && + (md5_file_hex(path, hash) != 0 || strcmp(hash, jget_str(e, "hash", "")) != 0)) + status = "changed"; + } + cJSON *f = cJSON_CreateObject(); + cJSON_AddStringToObject(f, "kind", kind); + cJSON_AddStringToObject(f, "path", path); + cJSON_AddStringToObject(f, "status", status); + cJSON_AddNumberToObject(f, "synced_at", jget_num(e, "synced_at", 0)); + cJSON_AddNumberToObject(f, "size", jget_num(e, "size", 0)); + if (!strcmp(kind, "save")) { + cJSON_AddStringToObject(f, "slot", jget_str(e, "slot", "")); + cJSON_AddNumberToObject(f, "server_id", jget_num(e, "save_id", 0)); + } else { + cJSON_AddNumberToObject(f, "server_id", jget_num(e, "state_id", 0)); + cJSON_AddBoolToObject(f, "from_here", jget_num(e, "mine", 0) != 0); + } + cJSON_AddItemToArray(cJSON_GetObjectItemCaseSensitive(entry, "files"), f); +} + +cJSON *sync_tracked(int only_rom) { + profile_map *maps = NULL; + config_lock(); + int nmaps = profiles_expand(g_cfg.profiles, &maps); + config_unlock(); + cJSON *games = cJSON_CreateObject(); + state_lock(); + const cJSON *roms = state_section("roms"), *conflicts = state_section("conflicts"), *e; + static const char *const kinds[][2] = {{"saves", "save"}, {"states", "state"}}; + for (int k = 0; k < 2; k++) + cJSON_ArrayForEach(e, state_section(kinds[k][0])) { + if (only_rom && (int)jget_num(e, "rom_id", 0) != only_rom) continue; + tracked_file(games, roms, maps, nmaps, kinds[k][1], e, conflicts); + } + state_unlock(); + free(maps); + + /* {"platforms": [{"platform": "gba", "games": [...]}], "saves": n, "states": n, "conflicts": n} */ + cJSON *out = cJSON_CreateObject(), *plats = cJSON_AddArrayToObject(out, "platforms"), *gm; + int n[3] = {0, 0, 0}; + while ((gm = games->child)) { + cJSON_DetachItemViaPointer(games, gm); + const char *pl = jget_str(gm, "platform", ""); + cJSON *p = NULL, *x; + cJSON_ArrayForEach(x, plats) if (!strcmp(jget_str(x, "platform", ""), pl)) p = x; + if (!p) { + p = cJSON_CreateObject(); + cJSON_AddStringToObject(p, "platform", pl); + cJSON_AddArrayToObject(p, "games"); + cJSON_AddItemToArray(plats, p); + } + cJSON_ArrayForEach(x, cJSON_GetObjectItemCaseSensitive(gm, "files")) { + n[!strcmp(jget_str(x, "kind", ""), "state")]++; + if (!strcmp(jget_str(x, "status", ""), "conflict")) n[2]++; + } + cJSON_AddItemToArray(cJSON_GetObjectItemCaseSensitive(p, "games"), gm); + } + cJSON_Delete(games); + cJSON_AddNumberToObject(out, "saves", n[0]); + cJSON_AddNumberToObject(out, "states", n[1]); + cJSON_AddNumberToObject(out, "conflicts", n[2]); + return out; +} diff --git a/src/sync.h b/src/sync.h index 4539829..84c27f3 100644 --- a/src/sync.h +++ b/src/sync.h @@ -43,6 +43,10 @@ cJSON *sync_history(int rom_id, char *err, int en); /* Restores a save version or a state ("save" or "state") into place. */ int sync_restore(const char *kind, int id, char *err, int en); +/* The saves and states this console keeps in sync, by platform and game, each + * with its status (synced, changed, conflict, missing); only_rom 0 for all. */ +cJSON *sync_tracked(int only_rom); + /* Save folders the last sync looked in, for the watcher. any_file marks * bundle folders, where every file counts. */ int sync_scanned_dirs(char dirs[][1024], int *any_file, int max); diff --git a/src/update.c b/src/update.c index f0c3d71..0f5b07a 100644 --- a/src/update.c +++ b/src/update.c @@ -140,7 +140,7 @@ static void *check_thread(void *arg) { LOGI("update check: latest release %s, running %s", g_latest, APP_VERSION); if (notify && available && strcmp(g_notified, g_latest) != 0) { str_copy(g_notified, sizeof g_notified, g_latest); - if (plat_info()->self_update) plat_notify("RomM Sync %s is available. Update it from Settings.", g_latest); + if (plat_info()->self_update) plat_notify("RommPS %s is available. Update it from Settings.", g_latest); else plat_notify("RommPS %s is available. Update it from ProsperoStore.", g_latest); } } @@ -278,7 +278,7 @@ static void *install_thread(void *arg) { } free(elf); LOGI("update: %s installed, starts with the next jailbreak", want); - plat_notify("RomM Sync %s is installed and starts with the next jailbreak", want); + plat_notify("RommPS %s is installed and starts with the next jailbreak", want); pthread_mutex_lock(&g_lock); g_state = U_PENDING; str_copy(g_pending, sizeof g_pending, want); @@ -288,7 +288,7 @@ static void *install_thread(void *arg) { } set_message(U_RESTARTING, persisted ? "Restarting" : "Restarting (until the next reboot, autostart isn't set up)"); - plat_notify("Updating RomM Sync to %s", want); + plat_notify("Updating RommPS to %s", want); sleep(1); /* lets the UI see the restart coming */ if (plat_launch_elf(elf, elf_len) != 0) { snprintf(err, sizeof err, "couldn't start the new version (%s).%s", strerror(errno), diff --git a/src/watch.c b/src/watch.c index 6bc3ec2..0b955e3 100644 --- a/src/watch.c +++ b/src/watch.c @@ -1,6 +1,8 @@ /* Polls the save and state folders once a second and asks for a sync when a * changed file has been left alone for SETTLE_SEC. Files that changed before - * startup are left to the startup sync. */ + * startup are left to the startup sync. While a game runs, a file goes up at + * most every PLAYING_GAP_SEC: some emulators rewrite the save every few + * seconds, and the sync after the game closes sends the last version. */ #include "watch.h" #include @@ -21,6 +23,7 @@ #define POLL_SEC 1 #define SETTLE_SEC 2 +#define PLAYING_GAP_SEC 300 #define RELOAD_DIRS_SEC 60 #define MAX_DEPTH 3 @@ -31,6 +34,7 @@ typedef struct { int64_t synced_mtime; /* last version handed to a sync */ off_t synced_size; time_t changed_at; /* when an unsynced change was seen, 0 if none */ + time_t sent_at; /* when it last asked for a sync */ int seen; } watched; @@ -190,7 +194,7 @@ static void *watch_thread(void *arg) { time_t now = time(NULL); int enabled; config_lock(); - enabled = g_cfg.sync_on_change && g_cfg.setup_complete; + enabled = g_cfg.sync_on_change && g_cfg.setup_complete && g_cfg.save_sync; config_unlock(); if (!config_is_paired() || !enabled) { baseline = 1; @@ -218,11 +222,13 @@ static void *watch_thread(void *arg) { for (int i = 0; i < g_nfiles; i++) { watched *w = &g_files[i]; if (!w->changed_at || now - w->changed_at < SETTLE_SEC) continue; + if (sync_game_running() && w->sent_at && now - w->sent_at < PLAYING_GAP_SEC) continue; /* later */ w->changed_at = 0; if (w->mtime == w->synced_mtime && w->size == w->synced_size) continue; w->synced_mtime = w->mtime; w->synced_size = w->size; if (written_by_sync(w)) continue; + w->sent_at = now; if (!first) first = w->path; ready++; } diff --git a/src/web.c b/src/web.c index cc08f62..0c8b686 100644 --- a/src/web.c +++ b/src/web.c @@ -3,6 +3,7 @@ #include #include #include +#include #include #include #include @@ -18,6 +19,7 @@ #include "config.h" #include "covers.h" #include "detect.h" +#include "events.h" #include "http.h" #include "library.h" #include "memcard.h" @@ -29,6 +31,7 @@ #include "ui_index.h" /* generated from ui/index.html */ #include "update.h" #include "util.h" +#include "zip.h" #define MAX_HEADER (16 * 1024) #define MAX_BODY (2 * 1024 * 1024) @@ -264,6 +267,7 @@ static cJSON *status_json(void) { config_lock(); cJSON_AddBoolToObject(j, "paired", config_is_paired()); cJSON_AddBoolToObject(j, "setup_complete", g_cfg.setup_complete); + cJSON_AddBoolToObject(j, "save_sync", g_cfg.save_sync); cJSON_AddStringToObject(j, "server_url", g_cfg.server_url); cJSON_AddStringToObject(j, "username", g_cfg.username); cJSON_AddStringToObject(j, "server_version", g_cfg.server_version); @@ -413,7 +417,7 @@ static char *diagnostics_text(void) { char line[512], about[256], now_iso[40], path[PATH_MAX_LEN]; plat_describe(about, sizeof about); iso8601_utc(time(NULL), now_iso, sizeof now_iso); - snprintf(line, sizeof line, "RomM Sync diagnostics\nversion %s, build %s, %s\n%s\nclock %s, up %lds\n", + snprintf(line, sizeof line, "RommPS diagnostics\nversion %s, build %s, %s\n%s\nclock %s, up %lds\n", APP_VERSION, APP_BUILD, plat_name(), about, now_iso, (long)(time(NULL) - g_started)); tb_str(&b, line); tb_json(&b, "status", status_json()); @@ -434,6 +438,286 @@ static char *diagnostics_text(void) { return b.s; } +/* Diagnostic bundle: a zip with the report, the logs, the sync log, the + * settings and emulators found, the emulators' own logs and the kernel log + * when it can be read. Nothing in it names the person: the server, user + * name, device name and ids, tokens, IP and MAC addresses, emails and + * console user ids are replaced before anything is written. */ +typedef struct { char from[600]; const char *to; } redaction; + +static size_t redactions(redaction *r, size_t max) { + size_t n = 0; + config_lock(); + const struct { const char *v; const char *to; } src[] = { + {g_cfg.token, ""}, {g_cfg.server_url, ""}, {g_cfg.username, ""}, + {g_cfg.device_name, ""}, {g_cfg.device_id, ""}, + {g_cfg.client_device_identifier, ""}}; + for (size_t i = 0; i < sizeof src / sizeof src[0] && n < max; i++) + if (strlen(src[i].v) >= 3 && strcmp(src[i].v, "PlayStation 5")) { + str_copy(r[n].from, sizeof r[n].from, src[i].v); + r[n++].to = src[i].to; + } + /* The server's host alone, as it shows in errors. */ + const char *h = strstr(g_cfg.server_url, "://"); + if (h && n < max) { + h += 3; + size_t l = strcspn(h, ":/"); + if (l >= 3 && l < sizeof r[n].from) { + memcpy(r[n].from, h, l); + r[n].from[l] = 0; + r[n++].to = ""; + } + } + config_unlock(); + return n; +} + +static int is_hex(char c) { return (c >= '0' && c <= '9') || ((c | 32) >= 'a' && (c | 32) <= 'f'); } +static int is_digit(char c) { return c >= '0' && c <= '9'; } +static int is_alnum(char c) { return is_digit(c) || ((c | 32) >= 'a' && (c | 32) <= 'z'); } +static int is_word(char c) { return is_hex(c) || ((c | 32) >= 'a' && (c | 32) <= 'z') || c == '_' || c == '.' || c == '-' || c == '+'; } + +/* Length of a dotted IPv4 address at s, or 0. */ +static size_t ipv4_at(const char *s) { + size_t i = 0; + for (int part = 0; part < 4; part++) { + size_t d = 0; + while (is_digit(s[i + d]) && d < 4) d++; + if (!d || d > 3) return 0; + i += d; + if (part < 3) { + if (s[i] != '.') return 0; + i++; + } + } + return is_digit(s[i]) || (s[i] == '.' && is_digit(s[i + 1])) ? 0 : i; +} + +/* Length of a MAC address (aa:bb:cc:dd:ee:ff or with -) at s, or 0. */ +static size_t mac_at(const char *s) { + for (int i = 0; i < 6; i++) { + if (!is_hex(s[i * 3]) || !is_hex(s[i * 3 + 1])) return 0; + if (i < 5 && s[i * 3 + 2] != ':' && s[i * 3 + 2] != '-') return 0; + } + return is_hex(s[17]) ? 0 : 17; +} + +/* A copy of txt with everything that could name the person replaced. */ +static char *redact(const char *txt, const redaction *r, size_t nr) { + textbuf b = {0}; + tb_str(&b, ""); + for (const char *p = txt; *p;) { + size_t m = 0; + const char *to = NULL; + const int start = p == txt || !is_word(p[-1]); + for (size_t i = 0; i < nr && !m; i++) { /* whole words only */ + size_t l = strlen(r[i].from); + if ((p == txt || !is_alnum(p[-1])) && !strncasecmp(p, r[i].from, l) && !is_alnum(p[l])) m = l, to = r[i].to; + } + if (!m && start && (m = ipv4_at(p)) && (!strncmp(p, "127.", 4) || !strncmp(p, "0.0.0.0", 7))) m = 0; + if (m && !to) to = ""; + if (!m && start && (m = mac_at(p))) to = ""; + if (!m && !strncmp(p, "/user/home/", 11)) { /* a console user's id */ + size_t l = 0; + while (is_hex(p[11 + l])) l++; + if (l) m = 11 + l, to = "/user/home/"; + } + static const char *const keys[] = {"onlineid", "online_id", "accountid", "account_id", "npid", "userid", "user_id", "username", "user_name", "email"}; + for (size_t i = 0; !m && start && i < sizeof keys / sizeof keys[0]; i++) { /* key=value, key: "value" */ + size_t l = strlen(keys[i]); + if (strncasecmp(p, keys[i], l) || is_alnum(p[l])) continue; + size_t v = l; + while (p[v] == ' ' || p[v] == '=' || p[v] == ':' || p[v] == '"' || p[v] == '\'' || p[v] == '\t') v++; + if (v == l || !is_word(p[v])) continue; + tb_add(&b, p, v); + m = v; + while (is_word(p[m])) m++; + m -= v; + p += v; + to = ""; + } + if (!m && *p == '@' && p > txt && is_word(p[-1]) && is_word(p[1])) { /* an email: drop both sides */ + while (b.len && is_word(b.s[b.len - 1])) b.s[--b.len] = 0; + m = 1; + while (is_word(p[m])) m++; + to = ""; + } + if (m) { + tb_str(&b, to); + p += m; + } else tb_add(&b, p++, 1); + } + return b.s; +} + +/* Writes name into dir with its text redacted; adds it to the members. */ +static void bundle_add(const char *dir, const char *name, const char *txt, const redaction *r, size_t nr, + zip_member *mem, char (*paths)[PATH_MAX_LEN], int *n, int max) { + if (!txt || *n >= max) return; + char *clean = redact(txt, r, nr); + path_join(paths[*n], PATH_MAX_LEN, dir, name); + if (clean && !write_file_atomic(paths[*n], clean, strlen(clean))) { + mem[*n].path = paths[*n]; + mem[*n].name = strrchr(paths[*n], '/') + 1; + (*n)++; + } + free(clean); +} + +/* The last max bytes of a file, from the start of a line, or NULL. */ +static char *file_tail(const char *path, size_t max) { + size_t len = 0; + char *txt = read_file(path, &len); + if (!txt || len <= max) return txt; + const char *start = txt + len - max, *nl = strchr(start, '\n'); + if (nl) start = nl + 1; + memmove(txt, start, strlen(start) + 1); + return txt; +} + +/* What the kernel log holds right now, without waiting for more. */ +static char *kernel_log(void) { + int fd = open("/dev/klog", O_RDONLY | O_NONBLOCK); + if (fd < 0) return NULL; + textbuf b = {0}; + char buf[4096]; + time_t until = time(NULL) + 2; + while (b.len < 512 * 1024 && time(NULL) <= until) { + ssize_t got = read(fd, buf, sizeof buf); + if (got <= 0) break; + tb_add(&b, buf, (size_t)got); + } + close(fd); + return b.s; +} + +/* The emulators' own logs: *.log files in each emulator's folder. */ +static void emulator_logs(const char *dir, const redaction *r, size_t nr, zip_member *mem, + char (*paths)[PATH_MAX_LEN], int *n, int max) { + cJSON *found = detect_emulators(), *c; + char seen[16][PATH_MAX_LEN]; + int nseen = 0; + cJSON_ArrayForEach(c, found) { + char roots[2][PATH_MAX_LEN] = {"", ""}; + str_copy(roots[0], PATH_MAX_LEN, jget_str(c, "root", "")); + const char *tid = jget_str(c, "title_id", ""); + if (tid[0]) snprintf(roots[1], PATH_MAX_LEN, "/data/homebrew/%s", tid); + for (int k = 0; k < 2; k++) { + int dup = !roots[k][0]; + for (int i = 0; i < nseen && !dup; i++) dup = !strcmp(seen[i], roots[k]); + if (dup || nseen >= 16) continue; + str_copy(seen[nseen++], PATH_MAX_LEN, roots[k]); + DIR *d = opendir(roots[k]); + struct dirent *de; + while (d && (de = readdir(d))) { + if (de->d_name[0] == '.' || !str_ends_with_ci(de->d_name, ".log")) continue; + char path[PATH_MAX_LEN], name[256]; + path_join(path, sizeof path, roots[k], de->d_name); + if (dir_exists(path)) continue; + const char *base = strrchr(roots[k], '/'); + snprintf(name, sizeof name, "emulators-%s-%s", base ? base + 1 : roots[k], de->d_name); + char *txt = file_tail(path, 256 * 1024); + bundle_add(dir, name, txt, r, nr, mem, paths, n, max); + free(txt); + } + if (d) closedir(d); + } + } + cJSON_Delete(found); +} + +/* Builds the bundle at zip_path. 0 on success. */ +static int diagnostics_bundle(const char *zip_path) { + enum { kMax = 48 }; + redaction r[8]; + size_t nr = redactions(r, 8); + char dir[PATH_MAX_LEN], path[PATH_MAX_LEN]; + path_join(dir, sizeof dir, plat_data_dir(), "diagnostics.tmp"); + remove_tree(dir); + mkdir_p(dir); + zip_member mem[kMax]; + char (*paths)[PATH_MAX_LEN] = malloc(kMax * sizeof *paths); /* console threads have small stacks */ + int n = 0; + if (!paths) return -1; + + char *txt = diagnostics_text(); + bundle_add(dir, "report.txt", txt, r, nr, mem, paths, &n, kMax); + free(txt); + const char *logs[][2] = {{"romm-sync.log", "romm-sync.log"}, {"romm-sync.log.1", "romm-sync.previous.log"}, + {"events.json", "sync-log.json"}, {"boot.log", "boot.log"}, {"launcher.log", "launcher.log"}}; + for (size_t i = 0; i < sizeof logs / sizeof logs[0]; i++) { + path_join(path, sizeof path, plat_data_dir(), logs[i][0]); + txt = read_file(path, NULL); + bundle_add(dir, logs[i][1], txt, r, nr, mem, paths, &n, kMax); + free(txt); + } + cJSON *j = detect_emulators(); + txt = cJSON_Print(j); + cJSON_Delete(j); + bundle_add(dir, "emulators-found.json", txt, r, nr, mem, paths, &n, kMax); + free(txt); + config_lock(); + txt = cJSON_Print(g_cfg.profiles); + config_unlock(); + bundle_add(dir, "emulator-settings.json", txt, r, nr, mem, paths, &n, kMax); + free(txt); + emulator_logs(dir, r, nr, mem, paths, &n, kMax); + txt = kernel_log(); + bundle_add(dir, "kernel.log", txt ? txt : "The kernel log couldn't be read (another tool may be reading it).\n", r, + nr, mem, paths, &n, kMax); + free(txt); + + int rc = zip_write(zip_path, mem, n); + remove_tree(dir); + free(paths); + LOGI("diagnostic bundle %s: %d files%s", zip_path, n, rc ? ", failed" : ""); + return rc; +} + +/* Saves a bundle where the person can get at it: a USB drive when one is in, + * and the payload's folder. The newest three are kept there. */ +static cJSON *diagnostics_save(void) { + char stamp[32], name[64], path[PATH_MAX_LEN], dir[PATH_MAX_LEN]; + time_t now = time(NULL); + struct tm tm; + localtime_r(&now, &tm); + strftime(stamp, sizeof stamp, "%Y%m%d-%H%M%S", &tm); + snprintf(name, sizeof name, "rommps-diagnostics-%s.zip", stamp); + path_join(dir, sizeof dir, plat_data_dir(), "diagnostics"); + mkdir_p(dir); + path_join(path, sizeof path, dir, name); + if (diagnostics_bundle(path)) return NULL; + /* Older ones go: names sort by time. */ + DIR *d = opendir(dir); + struct dirent *de; + char (*old)[64] = malloc(64 * sizeof *old); + int n = 0; + while (old && d && (de = readdir(d)) && n < 64) + if (!strncmp(de->d_name, "rommps-diagnostics-", 19)) str_copy(old[n++], sizeof old[0], de->d_name); + if (d) closedir(d); + if (old) { + qsort(old, (size_t)n, sizeof old[0], (int (*)(const void *, const void *))strcmp); + for (int i = 0; i + 3 < n; i++) { + char p[PATH_MAX_LEN]; + path_join(p, sizeof p, dir, old[i]); + unlink(p); + } + free(old); + } + cJSON *j = cJSON_CreateObject(); + cJSON_AddStringToObject(j, "path", path); + const char *usb[] = {"/mnt/usb0", "/mnt/usb1", "/mnt/usb2", "/mnt/usb3"}; + for (size_t i = 0; i < sizeof usb / sizeof usb[0]; i++) { + char to[PATH_MAX_LEN]; + path_join(to, sizeof to, usb[i], name); + if (dir_exists(usb[i]) && !copy_file(path, to)) { + cJSON_AddStringToObject(j, "usb", to); + break; + } + } + return j; +} + /* Covers and platform icons, from the console's cache or RomM (covers.h). */ static void proxy_asset(const request *r) { char p[1024]; @@ -570,10 +854,20 @@ static void route(request *r) { return; } if (is_get && !strcmp(r->path, "/api/diagnostics")) { - char *txt = diagnostics_text(); - send_response(fd, 200, "text/plain; charset=utf-8", txt ? txt : "", txt ? strlen(txt) : 0, - "Content-Disposition: attachment; filename=\"romm-sync-diagnostics.txt\"\r\n"); - free(txt); + cJSON *j = diagnostics_save(); + size_t len = 0; + char *zip = j ? read_file(jget_str(j, "path", ""), &len) : NULL; + if (zip) send_response(fd, 200, "application/zip", zip, len, + "Content-Disposition: attachment; filename=\"rommps-diagnostics.zip\"\r\n"); + else send_error(fd, 500, "couldn't make the bundle"); + free(zip); + cJSON_Delete(j); + return; + } + if (is_post && !strcmp(r->path, "/api/diagnostics")) { + cJSON *j = diagnostics_save(); + if (j) send_json(fd, 200, j); + else send_error(fd, 500, "couldn't make the bundle"); return; } if (is_get && !strcmp(r->path, "/api/config")) { @@ -785,6 +1079,24 @@ static void route(request *r) { } cJSON_AddItemToArray(profiles, p); } + /* Each emulator's save sync ("sync": {root: "off" | "saves" | "all"}), + * or what it was before. */ + const cJSON *modes = cJSON_GetObjectItemCaseSensitive(j, "sync"); + config_lock(); + cJSON *pr; + cJSON_ArrayForEach(pr, profiles) { + const char *at = jget_str(pr, "root", ""); + const char *mode = jget_str(modes, at, NULL); + const cJSON *old; + cJSON_ArrayForEach(old, g_cfg.profiles) if (!mode && !strcmp(jget_str(old, "root", ""), at) && + !strcmp(jget_str(old, "id", ""), jget_str(pr, "id", ""))) + mode = jget_str(old, "sync", NULL); + char keep[8] = ""; + if (mode && (!strcmp(mode, "off") || !strcmp(mode, "saves"))) str_copy(keep, sizeof keep, mode); + cJSON_DeleteItemFromObjectCaseSensitive(pr, "sync"); + if (keep[0]) cJSON_AddStringToObject(pr, "sync", keep); + } + config_unlock(); cJSON_Delete(found); cJSON_Delete(j); cJSON *cfg = cJSON_CreateObject(); @@ -806,6 +1118,34 @@ static void route(request *r) { } return; } + if (is_post && !strcmp(r->path, "/api/emulators/sync")) { + /* One emulator's save sync: {"root", "sync": "off" | "saves" | "all"}. */ + cJSON *j = body_json(r), *p; + const char *at = jget_str(j, "root", ""), *mode = jget_str(j, "sync", ""); + int found = 0, rc = -1; + if (at[0] && (!strcmp(mode, "off") || !strcmp(mode, "saves") || !strcmp(mode, "all"))) { + config_lock(); + cJSON_ArrayForEach(p, g_cfg.profiles) { + if (strcmp(jget_str(p, "root", ""), at) != 0) continue; + found = 1; + cJSON_DeleteItemFromObjectCaseSensitive(p, "sync"); + if (strcmp(mode, "all") != 0) cJSON_AddStringToObject(p, "sync", mode); + } + if (found) { + g_cfg.profiles_custom = 1; + rc = config_save(); + } + config_unlock(); + } + cJSON_Delete(j); + if (!found) send_error(fd, 400, "unknown emulator or choice"); + else if (rc) send_error(fd, 500, "could not save config"); + else { + LOGI("save sync for %s: %s", at, mode); + send_ok(fd); + } + return; + } if (is_get && !strcmp(r->path, "/api/setup/preview")) { cJSON *j = sync_preview(err, sizeof err); if (j) send_json(fd, 200, j); @@ -861,6 +1201,14 @@ static void route(request *r) { else send_ok(fd); return; } + if (is_get && !strcmp(r->path, "/api/events")) { + send_json(fd, 200, events_json(qint(r, "rom_id", 0), qint(r, "limit", 200))); + return; + } + if (is_get && !strcmp(r->path, "/api/tracked")) { + send_json(fd, 200, sync_tracked(qint(r, "rom_id", 0))); + return; + } if (is_get && !strcmp(r->path, "/api/history")) { cJSON *j = sync_history(qint(r, "rom_id", 0), err, sizeof err); if (j) send_json(fd, 200, j); @@ -956,8 +1304,9 @@ static void route(request *r) { cJSON_AddStringToObject(o, "platforms", maps[i].romm_slugs); cJSON_AddStringToObject(o, "emulator", maps[i].emulator); cJSON_AddStringToObject(o, "rom_dir", maps[i].rom_dir); + cJSON_AddStringToObject(o, "root", maps[i].root); cJSON_AddStringToObject(o, "save_dir", maps[i].sync_saves ? maps[i].save_dir : ""); - cJSON_AddStringToObject(o, "state_dir", maps[i].sync_saves ? maps[i].state_dir : ""); + cJSON_AddStringToObject(o, "state_dir", maps[i].sync_saves && maps[i].sync_states ? maps[i].state_dir : ""); cJSON_AddStringToObject(o, "bios_dir", maps[i].bios_dir); cJSON_AddStringToObject(o, "sync_note", maps[i].sync_note); cJSON_AddStringToObject(o, "save_layout", maps[i].save_layout); diff --git a/tests/e2e.sh b/tests/e2e.sh index 658d5b1..5b2e578 100755 --- a/tests/e2e.sh +++ b/tests/e2e.sh @@ -202,9 +202,43 @@ n=$(dump | python3 -c "import json,sys; print(sum(1 for x in json.load(sys.stdin echo "10. states download, save history and restore" post /api/config '{"states":"sync"}' >/dev/null -curl -sf -X POST "http://127.0.0.1:$MOCK_PORT/_admin/state" -d '{"rom_id":11,"file_name":"Super Metroid (USA).state1","content":"srv-state"}' >/dev/null +curl -sf -X POST "http://127.0.0.1:$MOCK_PORT/_admin/state" -d '{"rom_id":11,"emulator":"snes9x","file_name":"Super Metroid (USA).state1","content":"srv-state"}' >/dev/null +# Made by another core (or with no emulator at all): no emulator here can load it. +curl -sf -X POST "http://127.0.0.1:$MOCK_PORT/_admin/state" -d '{"rom_id":11,"emulator":"bsnes","file_name":"Super Metroid (USA) [bsnes].state5","content":"other-core"}' >/dev/null +curl -sf -X POST "http://127.0.0.1:$MOCK_PORT/_admin/state" -d '{"rom_id":11,"file_name":"Super Metroid (USA) [unknown].state6","content":"no-emulator"}' >/dev/null syncnow +! grep -rqs "other-core\|no-emulator" "$RA/states" || fail "a state from another core came down" +grep -q "skipped: made by bsnes" "$T/daemon.log" || fail "a skipped state must say why" [[ "$(cat "$RA/states/Super Metroid (USA).state1" 2>/dev/null)" == "srv-state" ]] || fail "server state not downloaded" +# Two web player states for one game: each gets its own file, and they don't +# come down again on the next sync. +for ts in "2026-10-14 01-00-00-000" "2026-10-14 01-00-05-000"; do + curl -sf -X POST "http://127.0.0.1:$MOCK_PORT/_admin/state" -d "{\"rom_id\":11,\"emulator\":\"snes9x\",\"file_name\":\"Super Metroid (USA) [$ts].state\",\"content\":\"web-$ts\"}" >/dev/null +done +syncnow +[[ "$(cat "$RA/states/Super Metroid (USA).state")" == "web-2026-10-14 01-00-00-000" ]] || fail "first web state should take slot 0" +[[ "$(cat "$RA/states/Super Metroid (USA).state2")" == "web-2026-10-14 01-00-05-000" ]] || fail "second web state should take the next free slot" +[[ "$(cat "$RA/states/Super Metroid (USA).state1")" == "srv-state" ]] || fail "a downloaded state replaced another one" +syncnow +[[ "$(last states_downloaded)" == 0 ]] || fail "states came down again: $(last states_downloaded)" +# Saving over a state that came from elsewhere sends a new one; RomM's copy +# of the web state stays as it was. +echo "played-on-console" > "$RA/states/Super Metroid (USA).state" +syncnow +web=$(dump | python3 -c "import json,sys; print([s['file_name'] for s in json.load(sys.stdin)['states'] if s['rom_id']==11 and s['file_name'].endswith('.state')])") +[[ "$web" == *"Super Metroid (USA) [2026-10-14 01-00-00-000].state"* && "$web" == *"Super Metroid (USA) [PlayStation 5].state"* ]] \ + || fail "a state saved over a web state must go up as a new one: $web" +orig=$(curl -sf "$API/api/history?rom_id=11" >/dev/null; dump | python3 -c "import json,sys; print([s['file_size_bytes'] for s in json.load(sys.stdin)['states'] if s['file_name']=='Super Metroid (USA) [2026-10-14 01-00-00-000].state'][0])") +[[ "$orig" == 27 ]] || fail "the web state on RomM was changed (size $orig)" +syncnow +[[ "$(last states_downloaded)$(last states_uploaded)" == 00 ]] || fail "an uploaded state came back down or went up again" +# The player's own slot is never taken by a state from elsewhere. +echo "my-own-slot" > "$RA/states/Chrono Trigger (USA).state" +syncnow +curl -sf -X POST "http://127.0.0.1:$MOCK_PORT/_admin/state" -d '{"rom_id":10,"emulator":"snes9x","file_name":"Chrono Trigger (USA) [2026-10-14 02-00-00-000].state","content":"web-ct"}' >/dev/null +syncnow +[[ "$(cat "$RA/states/Chrono Trigger (USA).state")" == "my-own-slot" ]] || fail "a web state replaced the player's own slot" +[[ "$(cat "$RA/states/Chrono Trigger (USA).state1")" == "web-ct" ]] || fail "the web state should land in the next free slot" old=$(curl -sf "$API/api/history?rom_id=10" | python3 -c "import json,sys; s=sorted(json.load(sys.stdin)['saves'], key=lambda x: x['updated_at']); print(s[0]['id'])") want="$(curl -sf "http://127.0.0.1:$MOCK_PORT/_admin/save_content?id=$old")" post /api/restore "{\"kind\":\"save\",\"id\":$old}" >/dev/null || fail "restore failed" @@ -300,11 +334,24 @@ cmp -s "$REL/romm-sync.elf" "$T/data/launched.elf" || fail "the new payload was cmp -s "$REL/romm-sync.elf" "$T/etaHEN/payloads/romm-sync.elf" || fail "the installed payload was not replaced" [[ ! -e "$T/etaHEN/payloads/romm-sync.elf.bak" ]] || fail "the update left a .bak of the old payload behind" -echo "14. diagnostics report leaves out the token" -curl -sf "$API/api/diagnostics" > "$T/diag.txt" || fail "no diagnostics report" -grep -q "RomM Sync diagnostics" "$T/diag.txt" || fail "diagnostics report is empty" -tok="$(python3 -c "import json,sys; print(json.load(open(sys.argv[1]))['token'])" "$T/data/config.json")" -[[ -n "$tok" ]] && ! grep -qF "$tok" "$T/diag.txt" || fail "the diagnostics report contains the token" +echo "14. diagnostic bundle: the logs, nothing that names the person" +echo "connecting to 10.0.16.84 from aa:bb:cc:dd:ee:ff, mail me@example.com, /user/home/1a2b3c4d/x, onlineId=SomePlayer99" >> "$T/data/romm-sync.log" +curl -sf "$API/api/diagnostics" > "$T/diag.zip" || fail "no diagnostic bundle" +python3 - "$T/diag.zip" "$T/data/config.json" <<'PY' || fail "diagnostic bundle" +import json, sys, zipfile +z = zipfile.ZipFile(sys.argv[1]); cfg = json.load(open(sys.argv[2])) +names = z.namelist() +for want in ("report.txt", "romm-sync.log", "sync-log.json", "emulators-found.json", "emulator-settings.json", "kernel.log"): + assert want in names, (want, names) +assert "RommPS diagnostics" in z.read("report.txt").decode() +text = "\n".join(z.read(n).decode("utf-8", "replace") for n in names) +host = cfg["server_url"].split("://")[1].split("/")[0].split(":")[0] +for secret in (cfg["token"], cfg["server_url"], host, cfg["device_id"], "10.0.16.84", "aa:bb:cc:dd:ee:ff", "me@example.com", "1a2b3c4d", "SomePlayer99"): + assert secret and secret not in text, secret +assert "" in text and "" in text and "" in text and "" in text +PY +out=$(curl -sf -X POST "$API/api/diagnostics") || fail "saving a bundle refused" +[[ -f "$(echo "$out" | python3 -c "import json,sys; print(json.load(sys.stdin)['path'])")" ]] || fail "the saved bundle isn't there: $out" echo "15. one emulator per system when several play it" kinds=$(curl -sf "$API/api/setup/detect" | python3 -c "import json,sys; print([(c['kind'], c['title_id']) for c in json.load(sys.stdin)])") @@ -333,6 +380,10 @@ cat > "$T/catalog.json" < "$T/catalog.json" < "$T/psxemu/saves/SLUS-12345_1.mcd" -printf 'state-from-psx' > "$T/psxemu/states/Test_Quest__USA_.state0" +printf 'STv4 PCSXra test-build' > "$T/psxemu/states/Test_Quest__USA_.state0" # a bare PCSX-ReARMed state +printf 'emulator=0\n' > "$T/psxemu/psxs5.ini" printf 'ROM:Test Racer (U).z64' > "$T/n64emu/games/Test Racer (U).z64" cp "$T/n64emu/games/Test Racer (U).z64" "$T/n64b/roms/Test Racer (U).z64" fnv=$(python3 -c " @@ -367,11 +419,11 @@ post /api/setup/emulators "{\"roots\":[\"$HB\",\"$T/psxemu\",\"$T/n64emu\",\"$T/ for _ in $(seq 1 20); do [[ -f "$T/n64b/roms/Old Racer (U).z64" ]] && break; sleep 0.25; done [[ -f "$T/n64b/roms/Old Racer (U).z64" ]] || fail "turning an extra on must give it the games already there" for _ in $(seq 1 20); do grep -q "NOTIFY.*now also sync with" "$T/daemon.log" && break; sleep 0.25; done -grep -q "NOTIFY\] RomM Sync: [0-9]* N64 games\{0,1\} now also sync with" "$T/daemon.log" || fail "no notice that the games now also sync with the extra" +grep -q "NOTIFY\] RommPS: [0-9]* N64 games\{0,1\} now also sync with" "$T/daemon.log" || fail "no notice that the games now also sync with the extra" dirs=$(curl -sf "$API/api/paths" | python3 -c "import json,sys; print(sorted(m['rom_dir'] for m in json.load(sys.stdin)))") [[ "$dirs" != *"$T/nope"* ]] || fail "an emulator not supported yet got a profile: $dirs" post /api/config '{"states":"upload"}' >/dev/null -post /api/sync >/dev/null; wait_sync 16 +syncnow dump() { curl -sf "http://127.0.0.1:$MOCK_PORT/_admin/dump"; } saves=$(dump | python3 -c "import json,sys; d=json.load(sys.stdin); print(sorted((s['rom_id'], s['file_name'], s['slot']) for s in (d['saves'].values() if isinstance(d['saves'], dict) else d['saves']) if s['rom_id'] in (50, 60)))") # (RomM puts the upload's time in the name: "SLUS-12345_1 [2026-...].mcd".) @@ -381,11 +433,50 @@ saves=$(dump | python3 -c "import json,sys; d=json.load(sys.stdin); print(sorted [[ "$(cat "$T/n64b/saves/Test Racer (U).srm" 2>/dev/null)" == "n64-save" ]] || fail "the shared save didn't reach the second emulator" states=$(dump | python3 -c "import json,sys; d=json.load(sys.stdin); print(sorted(s['file_name'] for s in (d['states'].values() if isinstance(d['states'], dict) else d['states']) if s['rom_id'] == 50))") [[ "$states" == "['Test_Quest__USA_"*".state0']" ]] || fail "the state named by the safe name didn't sync: $states" +# A bare state goes up in RetroArch's container, as the core that made it, so +# RomM's web player can load it. +up=$(dump | python3 -c "import json,sys; print([(s['emulator'], s['file_size_bytes']) for s in json.load(sys.stdin)['states'] if s['rom_id'] == 50])") +[[ "$up" == "[('pcsx_rearmed', 48)]" ]] || fail "a PSXS5 state must go up wrapped, as pcsx_rearmed: $up" c2=$(dump | python3 -c "import json,sys; print([c['versions'] for c in json.load(sys.stdin)['cards'] if c['emulator'] == 'ps2like' and c['name'].endswith('PS2-like slot 1')])") [[ "$c2" == "[1]" ]] || fail "the shared PS2 card wasn't backed up: $c2" +# Web player states come down bare, into a slot of their own, and only for the +# core the emulator runs now. +post /api/config '{"states":"sync"}' >/dev/null +rast() { python3 -c "import json,sys,struct; m=sys.argv[1].encode(); print(json.dumps((b'RASTATE\x01MEM '+struct.pack('/dev/null +curl -sf -X POST "http://127.0.0.1:$MOCK_PORT/_admin/state" -d "{\"rom_id\":50,\"emulator\":\"mednafen_psx_hw\",\"file_name\":\"Test Quest (USA) [beetle].state\",\"content\":$(rast 'MDFNSVST beetle')}" >/dev/null +syncnow +[[ "$(cat "$T/psxemu/states/Test_Quest__USA_.state1")" == "STv4 PCSXra web-build" ]] || fail "a web state must come down bare, in the next free slot" +[[ ! -e "$T/psxemu/states/Test_Quest__USA_.state2" ]] || fail "a Beetle state came down while the emulator runs PCSX-ReARMed" +printf 'emulator=2\n' > "$T/psxemu/psxs5.ini" +syncnow +[[ "$(cat "$T/psxemu/states/Test_Quest__USA_.state2")" == "MDFNSVST beetle" ]] || fail "switched to Beetle, its state must come down" +# With Beetle the card is named after the game file: still the game's card. +sleep 1; printf 'card-beetle' > "$T/psxemu/saves/Test Quest (USA)_1.mcd" +syncnow +card=$(dump | python3 -c "import json,sys; s=sorted([x for x in json.load(sys.stdin)['saves'] if x['rom_id']==50], key=lambda x: x['updated_at']); print(s[-1]['content'])") +[[ "$card" == "card-beetle" ]] || fail "the card Beetle names after the game file must sync: $card" +# A blank card an emulator just made under the other name never beats one with a save on it. +mkcard() { python3 -c "import sys; d=bytearray(131072); d[0:2]=b'MC'; d[128:128*16]=bytes([0xA0])*(128*15) +if sys.argv[2]=='save': d[128]=0x51; d[0x2000:0x2004]=b'GAME' +open(sys.argv[1],'wb').write(bytes(d))" "$1" "$2"; } +mkcard "$T/psxemu/saves/SLUS-12345_1.mcd" save; sleep 1; mkcard "$T/psxemu/saves/Test Quest (USA)_1.mcd" blank +syncnow +kind=$(dump | python3 -c "import json,sys; s=sorted([x for x in json.load(sys.stdin)['saves'] if x['rom_id']==50], key=lambda x: x['updated_at']); print('save' if 'GAME' in s[-1]['content'] else 'blank')") +[[ "$kind" == "save" ]] || fail "a blank card was uploaded over a card with a save" +# Nor does a blank card from RomM replace one with saves: that's a conflict to settle. +python3 -c "import base64,json,sys; d=bytearray(131072); d[0:2]=b'MC'; d[128:128*16]=bytes([0xA0])*(128*15) +json.dump({'rom_id': 50, 'slot': 'autosave', 'file_name': 'SLUS-12345_1.mcd', 'content_b64': base64.b64encode(bytes(d)).decode()}, open(sys.argv[1], 'w'))" "$T/blank.json" +sleep 1; curl -sf -X POST "http://127.0.0.1:$MOCK_PORT/_admin/save" -d @"$T/blank.json" >/dev/null +syncnow +python3 -c "import sys; d=open(sys.argv[1],'rb').read(); sys.exit(0 if d[128]==0x51 else 1)" "$T/psxemu/saves/SLUS-12345_1.mcd" \ + || fail "a blank card from RomM replaced a card with saves" +[[ "$(last conflicts)" -ge 1 ]] || fail "a blank card from RomM over one with saves must be a conflict" + +post /api/config '{"states":"upload"}' >/dev/null # A save from another device reaches both N64 emulators. curl -sf -X POST "http://127.0.0.1:$MOCK_PORT/_admin/save" -d '{"rom_id":60,"slot":"autosave","file_name":"Test Racer (U).srm","content":"n64-from-elsewhere","emulator":"other"}' >/dev/null -post /api/sync >/dev/null; wait_sync 17 +syncnow [[ "$(cat "$T/n64emu/saves/$fnv.sav")" == "n64-from-elsewhere" && "$(cat "$T/n64b/saves/Test Racer (U).srm")" == "n64-from-elsewhere" ]] \ || fail "a downloaded save must reach every emulator that shares it" # A download goes to the main emulator and is linked into the extra. @@ -433,6 +524,24 @@ import json,sys for p in json.load(sys.stdin)['profiles']: if p['id'].startswith('custom-'): print(p['id'], p.get('extra'), p['rom_dir'] == '$T/porp/games')") [[ "$porp" == "custom-newemu-snes ['snes'] True" ]] || fail "an emulator with no preset should be an extra next to RetroArch: $porp" +# Each system's folders: detection says where an emulator keeps them, and folders +# picked for one system in setup are used for it alone. +found=$(curl -sf "$API/api/setup/detect" | python3 -c " +import json,sys +for c in json.load(sys.stdin): + if c['root']=='$HB': print(c['dirs']['snes']['rom_dir'] != '', 'fixed' in c)") +[[ "$found" == "True True" ]] || fail "detection must give each system's folders: $found" +mkdir -p "$T/mine/snes" "$T/mine/snessaves" +post /api/setup/emulators "{\"roots\":[\"$HB\"],\"systems\":{\"snes\":{\"main\":\"$HB\",\"on\":[\"$HB\"], + \"folders\":{\"$HB\":{\"rom_dir\":\"$T/mine/snes\",\"save_dir\":\"$T/mine/snessaves\",\"state_dir\":\"\"}}}}}" >/dev/null \ + || fail "setup with a system's own folders refused" +sn=$(curl -sf "$API/api/paths" | python3 -c " +import json,sys +for m in json.load(sys.stdin): + if 'snes' in m['platforms'].split(','): print(m['rom_dir'], m['save_dir']) + elif m['rom_dir'].startswith('$T/mine/snes'): print('leaked', m['platforms'])") +grep -q "^$T/mine/snes $T/mine/snessaves$" <<<"$sn" && ! grep -q "^leaked" <<<"$sn" || fail "a system's picked folders must apply to it alone: $sn" +post /api/setup/emulators "{\"roots\":[\"$HB\"],\"custom\":[{\"id\":\"newemu-snes\",\"slugs\":[\"snes\",\"sfam\"],\"name\":\"NewEmu (SNES)\",\"rom_dir\":\"$T/porp/games\",\"save_dir\":\"$T/porp/saves\"}]}" >/dev/null echo "19. every cover kept on the console, then only the missing and changed ones fetched" # Paired with the HTTPS mock since scenario 17. @@ -469,4 +578,108 @@ post /api/download '{"rom_id":13}' >/dev/null; sleep 1 grep -q "systeminfo.txt isn't a game" "$T/daemon.log" || fail "a file that isn't a game was downloaded" [[ -z "$(find "$T" -name systeminfo.txt -not -path '*/data/*')" ]] || fail "systeminfo.txt reached an emulator's folder" +echo "21. one-file folder games: saves named after the file sync; old extensionless downloads are moved into the folder" +curl -sfk -X POST "$TM/_admin/rom" -d '{"id":70,"platform_id":1,"name":"Folder Game","fs_name":"Folder Game", + "files":[{"id":701,"file_name":"Folder Game (USA).sfc","content":"ROM:Folder Game (USA).sfc"}]}' >/dev/null +post /api/download '{"rom_id":70}' >/dev/null +for _ in $(seq 1 20); do got=$(find "$T" -path "*/Folder Game/Folder Game (USA).sfc" -not -path '*/data/*' | head -1); [[ -n "$got" ]] && break; sleep 0.25; done +[[ -n "$got" ]] || fail "a one-file folder game must download into its folder" +gdir=$(dirname "$(dirname "$got")") +sdir=$(curl -sf "$API/api/paths" | python3 -c "import json,sys; print([m['save_dir'] for m in json.load(sys.stdin) if m['rom_dir']=='$gdir'][0])") +[[ -n "$sdir" ]] || fail "no save folder for $gdir" +mkdir -p "$sdir"; printf 'folder-save' > "$sdir/Folder Game (USA).srm" +syncnow +saved=$(curl -sfk "$TM/_admin/dump" | python3 -c "import json,sys; s=[x for x in json.load(sys.stdin)['saves'] if x['rom_id']==70]; print(s[-1]['content'] if s else 'none')") +[[ "$saved" == "folder-save" ]] || fail "a save named after the file inside a one-file folder must sync: $saved" +# What 1.1.1 left behind: the file named after the folder, no extension. +curl -sfk -X POST "$TM/_admin/rom" -d '{"id":71,"platform_id":1,"name":"Bare Game","fs_name":"Bare Game", + "files":[{"id":711,"file_name":"Bare Game (USA).sfc","content":"ROM:Bare Game (USA).sfc"}]}' >/dev/null +printf 'ROM:Bare Game (USA).sfc' > "$gdir/Bare Game"; printf 'bare-save' > "$sdir/Bare Game.srm" +syncnow +[[ -f "$gdir/Bare Game/Bare Game (USA).sfc" ]] || fail "an extensionless game must be moved into its folder under the file's name" +[[ "$(cat "$sdir/Bare Game (USA).srm" 2>/dev/null)" == "bare-save" && ! -e "$sdir/Bare Game.srm" ]] || fail "its save must take the file's name" + +# A save from before RomM's sync slots (no slot) comes down with its game. +curl -sfk -X POST "$TM/_admin/rom" -d '{"id":72,"platform_id":1,"name":"Old Save Game","fs_name":"Old Save Game (USA).sfc", + "files":[{"id":721,"file_name":"Old Save Game (USA).sfc","content":"ROM:Old Save Game (USA).sfc"}]}' >/dev/null +curl -sfk -X POST "$TM/_admin/save" -d '{"rom_id":72,"slot":null,"file_name":"Old Save Game (USA) [2026-08-01].srm","content":"from-before-slots"}' >/dev/null +post /api/download '{"rom_id":72}' >/dev/null +for _ in $(seq 1 40); do [[ -f "$sdir/Old Save Game (USA).srm" ]] && break; sleep 0.25; done +[[ "$(cat "$sdir/Old Save Game (USA).srm" 2>/dev/null)" == "from-before-slots" ]] || fail "a save with no slot must come down with its game" +syncnow +up=$(curl -sfk "$TM/_admin/dump" | python3 -c "import json,sys; print(sorted(str(s['slot']) for s in json.load(sys.stdin)['saves'] if s['rom_id']==72))") +[[ "$up" == "['None', 'autosave']" ]] || fail "it must then sync in this console's slot: $up" + +echo "22. the sync log and the tracked saves" +ev=$(curl -sf "$API/api/events?limit=500" | python3 -c " +import json,sys; L=json.load(sys.stdin) +print(sorted({(e['kind'], e['action']) for e in L})) +print(next((e['game'] for e in L if e['rom_id']==70 and e['action']=='uploaded'), 'none'))") +grep -q "('save', 'uploaded')" <<<"$ev" && grep -q "('state', 'downloaded')" <<<"$ev" && grep -q "('state', 'skipped')" <<<"$ev" \ + || fail "the sync log is missing kinds of entries: $ev" +[[ "$(tail -1 <<<"$ev")" == "Folder Game" ]] || fail "a log entry must name its game: $ev" +one=$(curl -sf "$API/api/events?rom_id=70" | python3 -c "import json,sys; print({e['rom_id'] for e in json.load(sys.stdin)})") +[[ "$one" == "{70}" ]] || fail "the log for one game holds only that game: $one" +tr=$(curl -sf "$API/api/tracked" | python3 -c " +import json,sys; t=json.load(sys.stdin) +g={x['rom_id']: x for p in t['platforms'] for x in p['games']} +print(t['saves'] > 0, t['states'] > 0, g[70]['name'], [f['status'] for f in g[70]['files']])") +[[ "$tr" == "True True Folder Game ['synced']" ]] || fail "tracked saves by platform: $tr" +printf 'changed-again' > "$sdir/Folder Game (USA).srm" +st=$(curl -sf "$API/api/tracked?rom_id=70" | python3 -c "import json,sys; print([f['status'] for p in json.load(sys.stdin)['platforms'] for g in p['games'] for f in g['files']])") +[[ "$st" == "['changed']" ]] || fail "a save changed here must say so: $st" + +echo "23. save sync off: RomM only as a game source" +post /api/config '{"save_sync":false}' >/dev/null +n=$(curl -sf "$API/api/status" | python3 -c "import json,sys; print(json.load(sys.stdin)['sync']['sync_count'])") +curl -sfk -X POST "$TM/_admin/rom" -d '{"id":73,"platform_id":1,"name":"No Sync Game","fs_name":"No Sync Game (USA).sfc", + "files":[{"id":731,"file_name":"No Sync Game (USA).sfc","content":"ROM:No Sync Game (USA).sfc"}]}' >/dev/null +curl -sfk -X POST "$TM/_admin/save" -d '{"rom_id":73,"slot":"autosave","file_name":"No Sync Game (USA).srm","content":"stays-on-romm"}' >/dev/null +post /api/download '{"rom_id":73}' >/dev/null; post /api/sync >/dev/null; sleep 3 +[[ -n "$(find "$T" -name "No Sync Game (USA).sfc" -not -path '*/data/*')" ]] || fail "games must still download with save sync off" +[[ ! -e "$sdir/No Sync Game (USA).srm" ]] || fail "no save may come down with save sync off" +[[ "$(curl -sf "$API/api/status" | python3 -c "import json,sys; print(json.load(sys.stdin)['sync']['sync_count'])")" == "$n" ]] || fail "no sync may run with save sync off" +grep -q "skipped: save sync is off" "$T/daemon.log" || fail "a skipped sync must say why" +post /api/config '{"save_sync":true}' >/dev/null +syncnow +[[ "$(cat "$sdir/No Sync Game (USA).srm" 2>/dev/null)" == "stays-on-romm" ]] || fail "turned back on, the save must come down" +grep -q "\[NOTIFY\] RommPS: No Sync Game downloaded$" "$T/daemon.log" || fail "a download with save sync off must still say it's done" +grep -qE "\[NOTIFY\] RommPS: ([0-9]+ (saves?|states?) (up|down)(, )?)+$" "$T/daemon.log" || fail "a sync's notification must say what moved" +! grep -q "\[NOTIFY\] RommPS: 0 " "$T/daemon.log" || fail "a notification must not count nothing" + +echo "24. save sync per emulator: saves only, then off, then everything" +path_of() { curl -sf "$API/api/paths" | python3 -c "import json,sys; print([m['$1'] for m in json.load(sys.stdin) if m['rom_dir']=='$gdir'][0])"; } +emu_root=$(path_of root); stdir=$(path_of state_dir) +[[ -n "$emu_root" && -n "$stdir" ]] || fail "no emulator folders for $gdir" +post /api/config '{"states":"sync"}' >/dev/null +post /api/emulators/sync "{\"root\":\"$emu_root\",\"sync\":\"saves\"}" >/dev/null || fail "choosing saves only refused" +[[ -z "$(path_of state_dir)" && -n "$(path_of save_dir)" ]] || fail "saves only: states must show as not synced" +curl -sfk -X POST "$TM/_admin/state" -d '{"rom_id":73,"emulator":"snes9x","file_name":"No Sync Game (USA).state1","content":"emu-state"}' >/dev/null +printf 'saves-only' > "$sdir/No Sync Game (USA).srm" +syncnow +[[ ! -e "$stdir/No Sync Game (USA).state1" ]] || fail "saves only: a state came down" +last73() { curl -sfk "$TM/_admin/dump" | python3 -c "import json,sys; s=[x for x in json.load(sys.stdin)['saves'] if x['rom_id']==73]; print(s[-1]['content'] if s else 'none')"; } +[[ "$(last73)" == "saves-only" ]] || fail "saves only: the save must still go up: $(last73)" +post /api/emulators/sync "{\"root\":\"$emu_root\",\"sync\":\"off\"}" >/dev/null +sleep 1.1; printf 'not-synced' > "$sdir/No Sync Game (USA).srm" +syncnow +[[ "$(last73)" == "saves-only" ]] || fail "off: a save went up" +[[ -z "$(path_of save_dir)" ]] || fail "off: saves must show as not synced" +post /api/setup/emulators "{\"roots\":[\"$emu_root\"]}" >/dev/null || true +[[ "$(curl -sf "$API/api/config" | python3 -c "import json,sys; print([p.get('sync','all') for p in json.load(sys.stdin)['profiles'] if p.get('root')=='$emu_root'])")" == *"'off'"* ]] || fail "setting up again must keep the emulator's choice" +post /api/emulators/sync "{\"root\":\"$emu_root\",\"sync\":\"all\"}" >/dev/null +syncnow +[[ "$(last73)" == "not-synced" ]] || fail "back on: the save must go up: $(last73)" +[[ "$(cat "$stdir/No Sync Game (USA).state1" 2>/dev/null)" == "emu-state" ]] || fail "back on: the state must come down" +curl -s -X POST "$API/api/emulators/sync" -d '{"root":"/nope","sync":"off"}' | grep -q error || fail "an unknown emulator must be refused" + +echo "25. a save or state deleted from the console comes back from RomM" +rm -f "$sdir/No Sync Game (USA).srm" +syncnow +[[ "$(cat "$sdir/No Sync Game (USA).srm" 2>/dev/null)" == "not-synced" ]] || fail "a deleted save must come back" +curl -sf "$API/api/events?rom_id=73" | grep -q "Missing here" || fail "the sync log must say why it came back" +rm -f "$stdir/No Sync Game (USA).state1" +syncnow +[[ "$(cat "$stdir/No Sync Game (USA).state1" 2>/dev/null)" == "emu-state" ]] || fail "a deleted state must come back" + echo "PASS" diff --git a/tests/mock_romm.py b/tests/mock_romm.py index 14ce294..9d1f811 100755 --- a/tests/mock_romm.py +++ b/tests/mock_romm.py @@ -248,6 +248,12 @@ class H(BaseHTTPRequestHandler): raw = base64.b64decode(b["content_b64"]) if "content_b64" in b else b["content"].encode() s = new_save(b["rom_id"], b.get("slot"), b.get("emulator", "other-emu"), b.get("file_name", "x.srm"), raw) return self.reply(200, save_public(s)) + if p == "/_admin/rom" and method == "POST": # e.g. a game RomM keeps as a folder holding one file + b = self.json_body() + for f in b.get("files", []): + f["content"] = f["content"].encode() + DB["roms"][b["id"]] = b + return self.reply(200, rom_public(b)) if p == "/_admin/state" and method == "POST": b = self.json_body() sid = next_id() diff --git a/ui/index.html b/ui/index.html index c06bec3..f6d5bf0 100644 --- a/ui/index.html +++ b/ui/index.html @@ -3,7 +3,7 @@ -RomM Sync +RommPS diff --git a/ui/style.css b/ui/style.css index a32c228..18c7175 100644 --- a/ui/style.css +++ b/ui/style.css @@ -1,4 +1,4 @@ -/* RomM Sync web UI: layout and components. Colours, shapes and effects come +/* RommPS web UI: layout and components. Colours, shapes and effects come * from the theme tokens in ui/themes/ (classic.css lists them all). */ * { box-sizing: border-box; } body { margin: 0; background-color: var(--page); background-image: var(--backdrop); background-attachment: fixed; color: var(--text); font: 18px/1.45 var(--font); } @@ -103,3 +103,8 @@ a { color: var(--accent-text); } .ribbon button:disabled { opacity: .3; } .ribbon, [data-rom] { scroll-margin-top: 90px; } /* clear of the sticky header */ #updBody details { margin-top: 14px; } +.tplat { border-top: var(--hairline); padding: 8px 0; } +.tplat summary { cursor: pointer; padding: 4px 0; } +.tgame { margin: 10px 0 10px 14px; } +.tfile { margin: 4px 0 0 10px; word-break: break-all; } +.noSaves .syncCol { display: none; } diff --git a/ui/themes/classic.css b/ui/themes/classic.css index 230543f..c7ffbd1 100644 --- a/ui/themes/classic.css +++ b/ui/themes/classic.css @@ -1,4 +1,4 @@ -/* Classic: RomM Sync's original dark look. Also the defaults, so this file +/* Classic: RommPS's original dark look. Also the defaults, so this file * lists every token ui/style.css uses; other themes override what they change * under [data-theme=""]. */ :root { From d2c8abc8e1b790374d6ecdf88e7dfa92854fc71c Mon Sep 17 00:00:00 2001 From: Pedro Santos Date: Wed, 14 Oct 2026 13:46:18 -0400 Subject: [PATCH 7/8] 1.2.0 pre-release: GameCube saves in RomM's form, Porpoise, Emulators page - GameCube saves stay in the form RomM has them: zip, one .gci, or a whole memory card (only the game's own saves on it change). - Porpoise supported; two Dolphins for one system share the same saves. - Emulators page: Triangle saves, leaving with changes asks, systems listed by name under their own section. - Fixes: extras got games of the wrong system from shared folders; folder saves missing here come back; web UI stuck on "Connecting"; sync lists newest first. --- Makefile | 12 +- .../rommps/examples/rommps/kit/setup_page.cpp | 157 +++++-- .../rommps/examples/rommps/kit/setup_page.hpp | 10 + platform/ps5/app/rommps/ps5/ui/kit.cpp | 6 + platform/ps5/emulators.json | 9 +- src/detect.c | 2 + src/gcmem.c | 241 ++++++++++ src/gcmem.h | 56 +++ src/library.c | 11 + src/profiles.c | 16 +- src/sync.c | 442 +++++++++++++++++- tests/e2e.sh | 100 ++++ tests/gccard.py | 158 +++++++ tests/gcmem_test.c | 201 ++++++++ ui/index.html | 9 +- 15 files changed, 1381 insertions(+), 49 deletions(-) create mode 100644 src/gcmem.c create mode 100644 src/gcmem.h create mode 100644 tests/gccard.py create mode 100644 tests/gcmem_test.c diff --git a/Makefile b/Makefile index 99dfe24..c5988cf 100644 --- a/Makefile +++ b/Makefile @@ -19,7 +19,7 @@ CHDR_SRCS := $(filter-out %microflac.cpp,$(wildcard third_party/libchdr/src/*.c)) \ third_party/libchdr/deps/lzma/src/LzmaDec.c third_party/libchdr/deps/zstd/zstddeclib.c SRCS := src/main.c src/util.c src/http.c src/romm.c src/config.c src/state.c \ - src/profiles.c src/sync.c src/watch.c src/detect.c src/autostart.c src/memcard.c src/zip.c src/bundle.c src/statefmt.c src/events.c src/gameid.c src/covers.c src/library.c src/pair.c src/web.c src/update.c \ + src/profiles.c src/sync.c src/watch.c src/detect.c src/autostart.c src/memcard.c src/zip.c src/bundle.c src/gcmem.c src/statefmt.c src/events.c src/gameid.c src/covers.c src/library.c src/pair.c src/web.c src/update.c \ third_party/cJSON.c third_party/md5.c third_party/monocypher.c third_party/monocypher-ed25519.c \ $(CHDR_SRCS) HDRS := $(wildcard src/*.h) third_party/cJSON.h third_party/md5.h third_party/monocypher.h third_party/monocypher-ed25519.h @@ -37,7 +37,7 @@ COMMON_CFLAGS += -DAPP_BUILD='"$(BUILD_ID)"' endif COMMON_CFLAGS += $(EXTRA_CFLAGS) -.PHONY: all host ps5 ps4 tools deploy install install-ps4 run clean +.PHONY: unit all host ps5 ps4 tools deploy install install-ps4 run clean all: host @@ -61,6 +61,14 @@ $(HOST_BIN): $(SRCS) platform/host/platform.c $(HDRS) $(UI_HEADER) @mkdir -p $(dir $@) $(HOST_CC) $(COMMON_CFLAGS) -DROMM_UPDATE_TEST_KEY -o $@ $(SRCS) platform/host/platform.c -lcurl -lz -lpthread +# Unit tests for the parts with file formats of their own. +unit: build/host/gcmem_test + build/host/gcmem_test + +build/host/gcmem_test: tests/gcmem_test.c src/gcmem.c src/gcmem.h + @mkdir -p $(dir $@) + $(HOST_CC) -std=gnu11 -g -Wall -Wextra -fsanitize=address,undefined -Isrc -o $@ tests/gcmem_test.c src/gcmem.c + tools: build/host/release-sign build/host/release-sign: tools/release-sign.c src/update_keys.h third_party/monocypher.c third_party/monocypher-ed25519.c diff --git a/platform/ps5/app/rommps/examples/rommps/kit/setup_page.cpp b/platform/ps5/app/rommps/examples/rommps/kit/setup_page.cpp index 03dd458..85c2061 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/setup_page.cpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/setup_page.cpp @@ -157,6 +157,8 @@ SetupPage::SetupPage() void SetupPage::edit_emulators() { editing_ = true; + leaving_ = false; + saved_.clear(); go(kEmulators); } @@ -404,6 +406,7 @@ void SetupPage::load_emulators(App &app) const cJSON *profiles = cJSON_GetObjectItemCaseSensitive(cfg.get(), "profiles"), *p; if (!cJSON_IsArray(profiles)) return; + ps2_cards_ = std::string(str(cfg.get(), "ps2_cards")) == "backup" ? "backup" : "per_game"; choices_.clear(); also_.clear(); custom_dirs_.clear(); @@ -467,6 +470,7 @@ void SetupPage::load_emulators(App &app) custom_dirs_[key->valuestring][e.root] = picked; } } + saved_ = save_body() + ps2_cards_; }); }); } @@ -724,7 +728,7 @@ std::vector SetupPage::emulator_rows(const App &app, std::vector *r "RetroArch's usual folders. You can change them later."}, {}); else - add({RowKind::header, "Emulators on this console"}, {}); + add({RowKind::header, "Emulators"}, {}); for (std::size_t i = 0; i < emulators_.size(); ++i) { const Emulator &e = emulators_[i]; @@ -759,19 +763,22 @@ std::vector SetupPage::emulator_rows(const App &app, std::vector *r add({RowKind::choice, " Save sync", e.sync == "off" ? "Off" : e.sync == "saves" ? "Saves" : "Saves and states", ""}, {RowRef::kEmuSync, static_cast(i)}); } - // Then each system they play: which one plays it, and its folders. - for (const Conflict &c : systems()) + // Then each system they play, by name: which emulator plays it, the + // others that also do, and its folders. + const std::vector all_systems = systems(); + if (!all_systems.empty()) + add({RowKind::header, "Systems"}, {}); + for (const Conflict &c : all_systems) { - add({RowKind::header, system_name(c.key)}, {}); const std::string main = chosen(c); std::string label; for (const Option &o : c.options) if (o.root == main) label = o.label; if (c.options.size() > 1) - add({RowKind::choice, "Emulator", label, "Games download here first"}, {RowRef::kMain, -1, c.key}); + add({RowKind::choice, system_name(c.key), label, ""}, {RowRef::kMain, -1, c.key}); else - add({RowKind::info, "Emulator", label, ""}, {}); + add({RowKind::info, system_name(c.key), label, ""}, {}); std::vector on = {}; for (const Option &o : c.options) if (o.root == main) @@ -783,7 +790,7 @@ std::vector SetupPage::emulator_rows(const App &app, std::vector *r continue; const auto set = also_.find(c.key); const bool also = set != also_.end() && set->second.count(o.root); - add({RowKind::toggle, "Also in " + o.label, "", "Gets the same games too", also}, + add({RowKind::toggle, " Also in " + o.label, "", "", also}, {RowRef::kAlso, -1, c.key, o.root}); if (also) on.push_back(&o); @@ -797,7 +804,7 @@ std::vector SetupPage::emulator_rows(const App &app, std::vector *r em = &e; if (!em) continue; - const std::string who = on.size() > 1 ? "Folders in " + em->name : std::string("Folders"); + const std::string who = on.size() > 1 ? " Folders in " + em->name : std::string(" Folders"); if (em->fixed.size() >= 3) { add({RowKind::info, who, "Set by the emulator", ""}, {}); @@ -806,12 +813,12 @@ std::vector SetupPage::emulator_rows(const App &app, std::vector *r const auto found = em->dirs.find(c.key); const auto sys = custom_dirs_.find(c.key); const bool custom = sys != custom_dirs_.end() && sys->second.count(o->root); - std::string detail = found != em->dirs.end() && !found->second[0].empty() ? "Games in " + found->second[0] : ""; - add({RowKind::choice, who, custom ? "My own" : "As found", custom ? "Pick each folder below" : detail}, + std::string detail = found != em->dirs.end() && !found->second[0].empty() ? " Games in " + found->second[0] : ""; + add({RowKind::choice, who, custom ? "My own" : "As found", custom ? " Pick each folder below" : detail}, {RowRef::kFolders, -1, c.key, o->root}); if (!custom) continue; - static const char *const kLabels[] = {" Games folder", " Saves folder", " States folder"}; + static const char *const kLabels[] = {" Games folder", " Saves folder", " States folder"}; static const char *const kKeys[] = {"rom_dir", "save_dir", "state_dir"}; for (int k = 0; k < (saves ? 3 : 1); ++k) { @@ -858,16 +865,51 @@ void SetupPage::update_emulators(App &app, const hui::InputFrame &input, float d { if (!emulators_loaded_ && !busy_) load_emulators(app); + if (leaving_) + { + const std::vector choices = leave_rows(); + const RowEvent pick = leave_list_.handle(choices, input, feedback); + leave_list_.update(dt, static_cast(choices.size()), 3 * RowList::kRowHeight); + if (input.is_pressed(Action::back) || pick.row == 2) + { + feedback.play(Cue::back); + leaving_ = false; // keep editing + } + else if (pick.row == 0) + { + leaving_ = false; + save_emulators(app, feedback); // back to Settings once saved + } + else if (pick.row == 1) + { + feedback.play(Cue::back); + leaving_ = false; + editing_ = false; // discarded + } + return; + } std::vector refs; const std::vector rows = emulator_rows(app, &refs); const RowEvent e = rows_.handle(rows, input, feedback); rows_.update(dt, static_cast(rows.size()), kRows.h); - if (editing_ && input.is_pressed(Action::back)) + if (editing_ && input.is_pressed(Action::back) && !busy_) { + if (dirty()) + { + feedback.play(Cue::modal_open); + leaving_ = true; + leave_list_.set_focus(0); + return; + } feedback.play(Cue::back); editing_ = false; // back to Settings, nothing changed return; } + if (editing_ && input.is_pressed(Action::north) && dirty()) + { + save_emulators(app, feedback); + return; + } if (e.row < 0 || !emulators_loaded_ || e.row >= static_cast(refs.size())) return; const RowRef &ref = refs[static_cast(e.row)]; @@ -939,23 +981,20 @@ void SetupPage::update_emulators(App &app, const hui::InputFrame &input, float d open_picker(app, ref.key, ref.emulator, ref.root); return; case RowRef::kContinue: - break; + save_emulators(app, feedback); + return; default: return; } - // Everything set up by its folders: the systems no emulator plays, and the - // systems of emulators with no preset. +} + +// What Save sends: the profiles for the emulators kept (the PS2 cards go +// apart). Also what tells a change from what was saved. +std::string SetupPage::save_body() const +{ + const std::vector list = conflicts(); std::vector by_folders = uncovered(); by_folders.insert(by_folders.end(), manual_.begin(), manual_.end()); - // Each one turned on needs its games folder. - for (const std::string &key : by_folders) - if (own_[key].on && own_[key].folder[0].empty()) - { - app.say("Choose a games folder for " + own_[key].name + ", or turn it off"); - rows_.refuse(feedback); - return; - } - // Continue: the profiles for the emulators kept, then the PS2 cards. Json body(cJSON_CreateObject(), cJSON_Delete); cJSON *roots = cJSON_AddArrayToObject(body.get(), "roots"); for (const Emulator &em : emulators_) @@ -1006,7 +1045,7 @@ void SetupPage::update_emulators(App &app, const hui::InputFrame &input, float d cJSON *custom = cJSON_AddArrayToObject(body.get(), "custom"); for (const std::string &key : by_folders) { - const Own &o = own_[key]; + const Own &o = own_.at(key); if (!o.on) continue; cJSON *c = cJSON_CreateObject(), *slugs = cJSON_AddArrayToObject(c, "slugs"); @@ -1020,10 +1059,41 @@ void SetupPage::update_emulators(App &app, const hui::InputFrame &input, float d cJSON_AddStringToObject(c, "id", o.id.c_str()); cJSON_AddItemToArray(custom, c); } + return print(body.get()); +} + +std::vector SetupPage::leave_rows() const +{ + return {{RowKind::action, "Save changes", "", ""}, + {RowKind::action, "Discard changes", "", ""}, + {RowKind::action, "Keep editing", "", ""}}; +} + +bool SetupPage::dirty() const +{ + return editing_ && emulators_loaded_ && !saved_.empty() && save_body() + ps2_cards_ != saved_; +} + +void SetupPage::save_emulators(App &app, hui::ui::Feedback &feedback) +{ + if (busy_) + return; + // Everything set up by its folders: the systems no emulator plays, and the + // systems of emulators with no preset. + std::vector by_folders = uncovered(); + by_folders.insert(by_folders.end(), manual_.begin(), manual_.end()); + // Each one turned on needs its games folder. + for (const std::string &key : by_folders) + if (own_[key].on && own_[key].folder[0].empty()) + { + app.say("Choose a games folder for " + own_[key].name + ", or turn it off"); + rows_.refuse(feedback); + return; + } busy_ = true; const std::string ps2 = "{\"ps2_cards\":\"" + (has_ps2() ? ps2_cards_ : std::string("per_game")) + "\"}"; App *a = &app; - app.post("/api/setup/emulators", print(body.get()), [this, a, ps2](const Response &r) { + app.post("/api/setup/emulators", save_body(), [this, a, ps2](const Response &r) { if (!r.ok()) { busy_ = false; @@ -1033,6 +1103,7 @@ void SetupPage::update_emulators(App &app, const hui::InputFrame &input, float d a->post("/api/config", ps2, [this, a](const Response &) { if (editing_) { + saved_.clear(); editing_ = false; busy_ = false; a->say("Emulators saved"); @@ -1274,6 +1345,10 @@ std::vector SetupPage::hints() const case kEmulators: if (picking_) return {{Button::cross, "Choose"}, {Button::circle, "Back"}}; + if (leaving_) + return {{Button::cross, "Choose"}, {Button::circle, "Keep editing"}}; + if (editing_ && dirty()) + return {{Button::triangle, "Save"}, {Button::cross, "Choose"}, {Button::circle, "Back"}}; if (editing_) return {{Button::cross, "Choose"}, {Button::circle, "Back"}}; return {{Button::cross, "Choose"}}; @@ -1415,10 +1490,17 @@ void SetupPage::draw(hui::gfx::DrawList &list, const hui::ui::Fonts &fonts, cons if (step_ == kEmulators) { draw_heading(list, fonts, look, editing_ ? "Emulators" : "Your emulators", - "Pick the emulators to use."); - rows = emulator_rows(app); - // Beside the list: the focused emulator's systems. - const int focus = rows_.focus() - lead(); + dirty() ? "Unsaved changes. Press Triangle to save them." : "Pick the emulators to use."); + std::vector refs; + rows = emulator_rows(app, &refs); + // Beside the list: the systems of the emulator focused (or of the one + // whose save sync is). + const int at = rows_.focus(); + const int focus = at >= 0 && at < static_cast(refs.size()) && + (refs[static_cast(at)].kind == RowRef::kEmulator || + refs[static_cast(at)].kind == RowRef::kEmuSync) + ? refs[static_cast(at)].emulator + : -1; if (emulators_loaded_ && focus >= 0 && focus < static_cast(emulators_.size())) { const Emulator &e = emulators_[static_cast(focus)]; @@ -1444,7 +1526,7 @@ void SetupPage::draw(hui::gfx::DrawList &list, const hui::ui::Fonts &fonts, cons y += 34; } if (e.systems.empty()) - ui::text(list, fonts.regular, "None that RomM Sync knows of", kSide.x + 36, y, 22, look.panel_muted); + ui::text(list, fonts.regular, "None RommPS knows of", kSide.x + 36, y, 22, look.panel_muted); list.pop_opacity(); } } @@ -1490,6 +1572,19 @@ void SetupPage::draw(hui::gfx::DrawList &list, const hui::ui::Fonts &fonts, cons list.push_opacity(in); rows_.draw(list, fonts, look, rows, {kRows.x, kRows.y + 24 * (1.0f - in), kRows.w, kRows.h}, clock); list.pop_opacity(); + if (step_ == kEmulators && leaving_) + { + // Over everything: save before going back? + list.rounded_rect({0, 0, 1920, 1080}, 0, hui::gfx::Color::rgb(0x000000, 0.55f)); + const Rect box{560, 330, 800, 470}; + hui::gfx::Color solid = look.page; // the page's colour under the panel, so nothing shows through + solid.a = 1.0f; + list.rounded_rect(box, look.radius, solid); + draw_panel(list, look, box); + ui::text(list, fonts.display, "Save your changes?", box.x + 48, box.y + 84, 40, look.panel_text); + leave_list_.draw(list, fonts, look, leave_rows(), {box.x + 16, box.y + 130, box.w - 32, 3 * RowList::kRowHeight}, + clock); + } } } // namespace rommps diff --git a/platform/ps5/app/rommps/examples/rommps/kit/setup_page.hpp b/platform/ps5/app/rommps/examples/rommps/kit/setup_page.hpp index f174255..5b2eda0 100644 --- a/platform/ps5/app/rommps/examples/rommps/kit/setup_page.hpp +++ b/platform/ps5/app/rommps/examples/rommps/kit/setup_page.hpp @@ -135,6 +135,13 @@ class SetupPage // Rows above the emulators': their heading, or a message instead of them. int lead() const { return 1; } std::vector emulator_rows(const App &app, std::vector *refs = nullptr) const; + // Settings' Emulators: what Save sends, whether it differs from what was + // saved, and saving it. + std::string save_body() const; + bool dirty() const; + void save_emulators(App &app, hui::ui::Feedback &feedback); + // Leaving with changes not saved: Save, Discard or Keep editing. + std::vector leave_rows() const; // ids: what each row is (the steps' rows depend on save_sync_). std::vector preview_rows(std::vector *ids = nullptr) const; std::vector finish_rows(std::vector *ids = nullptr) const; @@ -176,6 +183,9 @@ class SetupPage // system key -> emulator root -> games, saves, states ("" keeps that one). std::map>> custom_dirs_; bool editing_ = false; + std::string saved_; // save_body() + ps2_cards_ as last saved (Settings' Emulators) + bool leaving_ = false; // asking whether to save before going back + RowList leave_list_; std::string ps2_cards_ = "per_game"; std::map own_; // by system key (first slug) std::vector own_order_; // the server's order diff --git a/platform/ps5/app/rommps/ps5/ui/kit.cpp b/platform/ps5/app/rommps/ps5/ui/kit.cpp index b960183..112dfe2 100644 --- a/platform/ps5/app/rommps/ps5/ui/kit.cpp +++ b/platform/ps5/app/rommps/ps5/ui/kit.cpp @@ -132,6 +132,12 @@ hui::InputFrame Kit::scripted(const char *program, uint32_t frame) const input.pressed |= hui::action_bit(hui::Action::page_next); } else if (press.action == "l1") { input.pressed |= hui::action_bit(hui::Action::page_prev); + } else if (press.action == "circle") { + input.pressed |= hui::action_bit(hui::Action::back); + } else if (press.action == "triangle") { + input.pressed |= hui::action_bit(hui::Action::north); + } else if (press.action == "square") { + input.pressed |= hui::action_bit(hui::Action::west); } input.held |= input.pressed; } diff --git a/platform/ps5/emulators.json b/platform/ps5/emulators.json index 24351a5..9e87111 100644 --- a/platform/ps5/emulators.json +++ b/platform/ps5/emulators.json @@ -69,10 +69,13 @@ "id": "porpoise", "name": "Porpoise", "title_ids": ["PPSA99764"], "detect": ["/data/porpoise", "/data/homebrew/PPSA99764"], - "note": "Untested: the current build crashes leaving the app sandbox.", + "note": "Dolphin, with its user folder in {root}/saves/User.", "profile": { - "root": "/data/porpoise", "rom_dir": "{root}/games", "save_dir": "{root}/saves", - "platforms": [{"romm": ["ngc", "gamecube"], "dir": "gamecube"}, {"romm": ["wii"], "dir": "wii"}] + "root": "/data/porpoise", "rom_dir": "{root}/games", "save_dir": "{root}/saves/User", + "platforms": [ + {"romm": ["ngc", "gamecube"], "dir": "gamecube", "emulator": "dolphin", "save_layout": "gci", "bundle_dirs": "{root}/saves/User/GC"}, + {"romm": ["wii"], "dir": "wii", "emulator": "dolphin", "save_layout": "wii", "bundle_dirs": "{root}/saves/User/Wii"} + ] } } ] diff --git a/src/detect.c b/src/detect.c index ff46195..82e8a9a 100644 --- a/src/detect.c +++ b/src/detect.c @@ -457,6 +457,8 @@ int detect_refresh_profiles(cJSON *profiles) { /* The user's choice of emulator per system survives a refresh. */ const cJSON *ex = cJSON_GetObjectItemCaseSensitive(p, "exclude"); if (ex) cJSON_AddItemToObject(fresh, "exclude", cJSON_Duplicate(ex, 1)); + const cJSON *extra = cJSON_GetObjectItemCaseSensitive(p, "extra"); + if (extra) cJSON_AddItemToObject(fresh, "extra", cJSON_Duplicate(extra, 1)); const cJSON *mode = cJSON_GetObjectItemCaseSensitive(p, "sync"); if (cJSON_IsString(mode)) cJSON_AddStringToObject(fresh, "sync", mode->valuestring); LOGI("updated the %s profile for %s", jget_str(fresh, "name", ""), jget_str(p, "root", "")); diff --git a/src/gcmem.c b/src/gcmem.c new file mode 100644 index 0000000..daefacd --- /dev/null +++ b/src/gcmem.c @@ -0,0 +1,241 @@ +#include "gcmem.h" + +#include +#include +#include + +#define FIRST_DATA 5 +#define NENTRIES 127 + +static unsigned be16(const unsigned char *p) { return (unsigned)p[0] << 8 | p[1]; } +static void put16(unsigned char *p, unsigned v) { + p[0] = (unsigned char)(v >> 8); + p[1] = (unsigned char)v; +} + +/* Dolphin's two checksums over big-endian words; 0xFFFF counts as 0. */ +static void checksums(const unsigned char *p, size_t n, unsigned *c1, unsigned *c2) { + unsigned a = 0, b = 0; + for (size_t i = 0; i + 1 < n; i += 2) { + unsigned w = be16(p + i); + a = (a + w) & 0xFFFF; + b = (b + (w ^ 0xFFFF)) & 0xFFFF; + } + *c1 = a == 0xFFFF ? 0 : a; + *c2 = b == 0xFFFF ? 0 : b; +} + +static unsigned char *block(const gc_card *c, int n) { return c->data + (size_t)n * GC_BLOCK; } + +/* Directory: checksums over 0..0x1FFB, at 0x1FFC; update counter at 0x1FFA. */ +static int dir_ok(const unsigned char *d) { + unsigned a, b; + checksums(d, 0x1FFC, &a, &b); + return a == be16(d + 0x1FFC) && b == be16(d + 0x1FFE); +} +/* Table: checksums over 0x4..0x1FFF, at 0x0; update counter at 0x4. */ +static int bat_ok(const unsigned char *t) { + unsigned a, b; + checksums(t + 4, GC_BLOCK - 4, &a, &b); + return a == be16(t) && b == be16(t + 2); +} + +/* The current copy: the one that checks out, or the newer of two that do. */ +static int pick(const unsigned char *x, const unsigned char *y, int ok_x, int ok_y, size_t counter_at, int ix, int iy) { + if (ok_x && ok_y) return (short)be16(y + counter_at) > (short)be16(x + counter_at) ? iy : ix; + return ok_x ? ix : ok_y ? iy : -1; +} + +int gc_card_open(gc_card *c, const unsigned char *data, size_t size) { + memset(c, 0, sizeof *c); + if (size < (size_t)GC_BLOCK * (FIRST_DATA + 1) || size % GC_BLOCK) return -1; + c->data = malloc(size); + if (!c->data) return -1; + memcpy(c->data, data, size); + c->size = size; + c->nblocks = (int)(size / GC_BLOCK); + if (c->nblocks > 0xFFB + FIRST_DATA) c->nblocks = 0xFFB + FIRST_DATA; + c->dir = pick(block(c, 1), block(c, 2), dir_ok(block(c, 1)), dir_ok(block(c, 2)), 0x1FFA, 1, 2); + c->bat = pick(block(c, 3), block(c, 4), bat_ok(block(c, 3)), bat_ok(block(c, 4)), 4, 3, 4); + if (c->dir < 0 || c->bat < 0) { + gc_card_free(c); + return -1; + } + return 0; +} + +void gc_card_free(gc_card *c) { + free(c->data); + memset(c, 0, sizeof *c); +} + +static unsigned char *entry(const gc_card *c, int i) { return block(c, c->dir) + i * GC_DENTRY; } +static int empty(const unsigned char *e) { return e[0] == 0xFF && e[1] == 0xFF && e[2] == 0xFF && e[3] == 0xFF; } +static unsigned char *map_at(const gc_card *c, int blk) { return block(c, c->bat) + 0xA + (size_t)(blk - FIRST_DATA) * 2; } +static int is_data(const gc_card *c, unsigned blk) { return blk >= FIRST_DATA && blk < (unsigned)c->nblocks; } + +int gc_gci_valid(const unsigned char *g, size_t size) { + if (size < GC_DENTRY || (size - GC_DENTRY) % GC_BLOCK || empty(g)) return 0; + unsigned count = be16(g + 0x38); + return count > 0 && (size_t)count * GC_BLOCK == size - GC_DENTRY; +} + +static int same_id(const unsigned char *e, const char *id) { return strlen(id) >= 6 && !memcmp(e, id, 6); } + +int gc_gci_same_save(const unsigned char *a, const unsigned char *b) { + return !memcmp(a, b, 6) && !memcmp(a + 8, b + 8, 32); +} + +void gc_gci_id(const unsigned char *g, char out[7]) { + memcpy(out, g, 6); + out[6] = 0; +} + +/* Copies an entry's blocks after it, following the table. */ +static unsigned char *to_gci(const gc_card *c, const unsigned char *e, size_t *size) { + unsigned count = be16(e + 0x38), blk = be16(e + 0x36); + if (!count || count > (unsigned)c->nblocks) return NULL; + unsigned char *g = malloc(GC_DENTRY + (size_t)count * GC_BLOCK); + if (!g) return NULL; + memcpy(g, e, GC_DENTRY); + for (unsigned k = 0; k < count; k++) { + if (!is_data(c, blk)) { + free(g); + return NULL; + } + memcpy(g + GC_DENTRY + (size_t)k * GC_BLOCK, block(c, (int)blk), GC_BLOCK); + blk = be16(map_at(c, (int)blk)); + } + *size = GC_DENTRY + (size_t)count * GC_BLOCK; + return g; +} + +int gc_card_saves(const gc_card *c, const char *id, gc_save_fn fn, void *ud) { + int n = 0; + for (int i = 0; i < NENTRIES; i++) { + const unsigned char *e = entry(c, i); + if (empty(e) || !same_id(e, id)) continue; + size_t size = 0; + unsigned char *g = to_gci(c, e, &size); + if (!g) continue; + if (fn) fn(g, size, ud); + free(g); + n++; + } + return n; +} + +/* Edits go to a copy of the current directory and table, written over the + * older copies when done. */ +typedef struct { + unsigned char dir[GC_BLOCK], bat[GC_BLOCK]; +} draft; + +static void draft_start(const gc_card *c, draft *d) { + memcpy(d->dir, block(c, c->dir), GC_BLOCK); + memcpy(d->bat, block(c, c->bat), GC_BLOCK); +} + +static void draft_commit(gc_card *c, draft *d) { + unsigned a, b; + put16(d->dir + 0x1FFA, (be16(d->dir + 0x1FFA) + 1) & 0xFFFF); + checksums(d->dir, 0x1FFC, &a, &b); + put16(d->dir + 0x1FFC, a); + put16(d->dir + 0x1FFE, b); + put16(d->bat + 4, (be16(d->bat + 4) + 1) & 0xFFFF); + checksums(d->bat + 4, GC_BLOCK - 4, &a, &b); + put16(d->bat, a); + put16(d->bat + 2, b); + c->dir = c->dir == 1 ? 2 : 1; + c->bat = c->bat == 3 ? 4 : 3; + memcpy(block(c, c->dir), d->dir, GC_BLOCK); + memcpy(block(c, c->bat), d->bat, GC_BLOCK); +} + +static unsigned char *dmap(const gc_card *c, draft *d, unsigned blk) { + (void)c; + return d->bat + 0xA + (size_t)(blk - FIRST_DATA) * 2; +} + +/* Frees entry i's blocks and empties it. */ +static void draft_drop(const gc_card *c, draft *d, int i) { + unsigned char *e = d->dir + i * GC_DENTRY; + unsigned count = be16(e + 0x38), blk = be16(e + 0x36), freed = 0; + for (unsigned k = 0; k < count && is_data(c, blk); k++) { + unsigned char *m = dmap(c, d, blk); + blk = be16(m); + put16(m, 0); + freed++; + } + put16(d->bat + 6, be16(d->bat + 6) + freed); + memset(e, 0xFF, GC_DENTRY); +} + +int gc_card_remove(gc_card *c, const char *id) { + draft d; + draft_start(c, &d); + int n = 0; + for (int i = 0; i < NENTRIES; i++) { + const unsigned char *e = d.dir + i * GC_DENTRY; + if (empty(e) || !same_id(e, id)) continue; + draft_drop(c, &d, i); + n++; + } + if (n) draft_commit(c, &d); + return n; +} + +int gc_card_put(gc_card *c, const unsigned char *g, size_t size) { + if (!gc_gci_valid(g, size)) return -1; + draft d; + draft_start(c, &d); + int slot = -1; + for (int i = 0; i < NENTRIES; i++) { + unsigned char *e = d.dir + i * GC_DENTRY; + if (!empty(e) && gc_gci_same_save(e, g)) draft_drop(c, &d, i); + if (empty(e) && slot < 0) slot = i; + } + const unsigned count = be16(g + 0x38); + if (slot < 0 || be16(d.bat + 6) < count) return -1; + /* Free blocks from just after the last one given out, wrapping round, + * as Dolphin hands them out. */ + unsigned *blocks = malloc(sizeof *blocks * count), found = 0; + if (!blocks) return -1; + unsigned start = be16(d.bat + 8) + 1; + if (start < FIRST_DATA || start >= (unsigned)c->nblocks) start = FIRST_DATA; + for (unsigned k = 0; k < (unsigned)c->nblocks - FIRST_DATA && found < count; k++) { + unsigned blk = FIRST_DATA + (start - FIRST_DATA + k) % ((unsigned)c->nblocks - FIRST_DATA); + if (be16(dmap(c, &d, blk)) == 0) blocks[found++] = blk; + } + if (found < count) { + free(blocks); + return -1; + } + for (unsigned k = 0; k < count; k++) { + memcpy(block(c, (int)blocks[k]), g + GC_DENTRY + (size_t)k * GC_BLOCK, GC_BLOCK); + put16(dmap(c, &d, blocks[k]), k + 1 < count ? blocks[k + 1] : 0xFFFF); + } + put16(d.bat + 6, be16(d.bat + 6) - count); + put16(d.bat + 8, blocks[count - 1]); + unsigned char *e = d.dir + slot * GC_DENTRY; + memcpy(e, g, GC_DENTRY); + put16(e + 0x36, blocks[0]); + free(blocks); + draft_commit(c, &d); + return 0; +} + +void gc_gci_name(const unsigned char *g, char *out, size_t n) { + char name[33 * 6 + 1]; + size_t o = 0; + for (int i = 0; i < 32 && g[8 + i]; i++) { + unsigned char ch = g[8 + i]; + /* Dolphin's escaping of characters a file name can't have. */ + if (ch < 0x20 || strchr("\"*/:<>?\\|", ch)) + o += (size_t)snprintf(name + o, sizeof name - o, "__%02x__", ch); + else + name[o++] = (char)ch; + } + name[o] = 0; + snprintf(out, n, "%.2s-%.4s-%s.gci", (const char *)g + 4, (const char *)g, name); +} diff --git a/src/gcmem.h b/src/gcmem.h new file mode 100644 index 0000000..ceca5d5 --- /dev/null +++ b/src/gcmem.h @@ -0,0 +1,56 @@ +/* GameCube memory cards (Dolphin's .raw) and the .gci files of single saves. + * + * A card is 8 KiB blocks: 0 the header, 1 and 2 the directory and its + * previous copy, 3 and 4 the block allocation table and its previous copy, + * then the saves. Each directory entry (64 bytes) names a save: game code, + * maker, file name, first block and block count; the table chains its + * blocks. A .gci is one entry followed by its blocks. + * + * Changes are made the way Dolphin makes them: the current directory and + * table are edited, their update counters go up by one, their checksums are + * set, and they're written over the older copies, which become the backups. */ +#ifndef ROMM_GCMEM_H +#define ROMM_GCMEM_H + +#include + +#define GC_BLOCK 0x2000 +#define GC_DENTRY 0x40 + +typedef struct { + unsigned char *data; + size_t size; + int nblocks; + int dir, bat; /* which copy is current: block 1 or 2, 3 or 4 */ +} gc_card; + +/* 0 when data (size bytes, copied) is a card whose header, directory and + * table check out. */ +int gc_card_open(gc_card *c, const unsigned char *data, size_t size); +void gc_card_free(gc_card *c); + +/* A .gci in memory: 0 when it's one entry and as many blocks as it says. */ +int gc_gci_valid(const unsigned char *gci, size_t size); + +/* The saves of a game: entries whose game code and maker are id's six + * characters ("GZLE01"). Calls fn with each as a .gci; returns how many. */ +typedef void (*gc_save_fn)(const unsigned char *gci, size_t size, void *ud); +int gc_card_saves(const gc_card *c, const char *id, gc_save_fn fn, void *ud); + +/* Takes the game's saves off the card. */ +int gc_card_remove(gc_card *c, const char *id); + +/* Puts a .gci on the card, over any save with the same game code, maker and + * file name. 0, or -1 when it doesn't fit or the directory is full. */ +int gc_card_put(gc_card *c, const unsigned char *gci, size_t size); + +/* Dolphin's name for a .gci in a GCI folder: "01-GZLE-gczelda2.gci". */ +void gc_gci_name(const unsigned char *gci, char *out, size_t n); + +/* The game id ("GZLE01") a .gci belongs to. */ +void gc_gci_id(const unsigned char *gci, char out[7]); + +/* Whether two .gci are the same save (game code, maker and file name). */ +int gc_gci_same_save(const unsigned char *a, const unsigned char *b); + +#endif diff --git a/src/library.c b/src/library.c index 7f8c771..b48f4a7 100644 --- a/src/library.c +++ b/src/library.c @@ -707,6 +707,10 @@ again:; if (comma) *comma = 0; const profile_map *m = profile_find_for_platform(maps, n, first, NULL); if (!m || m == x || m->extra || !strcmp(m->rom_dir, x->rom_dir)) continue; + /* A folder several of the main emulator's systems share (Porpoise's + * games: GameCube and Wii): only the games matched for this system. */ + int shared = 0; + for (int k = 0; k < n; k++) shared |= &maps[k] != m && !strcmp(maps[k].rom_dir, m->rom_dir); DIR *d = opendir(m->rom_dir); struct dirent *de; int here = 0; @@ -716,6 +720,13 @@ again:; continue; char from[PATH_MAX_LEN], to[PATH_MAX_LEN]; path_join(from, sizeof from, m->rom_dir, de->d_name); + if (shared) { + state_lock(); + const cJSON *rec = cJSON_GetObjectItemCaseSensitive(state_section("roms"), from); + const int ours = rec && jget_num(rec, "rom_id", 0) > 0 && !strcmp(jget_str(rec, "platform_dir", ""), m->platform_dir); + state_unlock(); + if (!ours) continue; + } path_join(to, sizeof to, x->rom_dir, de->d_name); if (file_exists(to) || dir_exists(to) || (dir_exists(from) && still_downloading(from))) continue; mkdir_p(x->rom_dir); diff --git a/src/profiles.c b/src/profiles.c index a7d472d..a288696 100644 --- a/src/profiles.c +++ b/src/profiles.c @@ -362,6 +362,9 @@ int profiles_expand(const cJSON *profiles, profile_map **out) { str_copy(m->state_stems, sizeof m->state_stems, jstr(p, e, "state_stems", "")); str_copy(m->state_name, sizeof m->state_name, jstr(p, e, "state_name", "{rom_stem}{ext}")); str_copy(m->save_format, sizeof m->save_format, jstr(p, e, "save_format", "")); + /* Every Dolphin with a GCI folder keeps GameCube saves the same way. */ + if (!m->save_format[0] && !strcmp(jstr(p, e, "save_layout", ""), "gci")) + str_copy(m->save_format, sizeof m->save_format, "gc-gci"); str_copy(m->state_cores, sizeof m->state_cores, state_str(p, e, "state_cores", m->emulator)); str_copy(m->state_format, sizeof m->state_format, state_str(p, e, "state_format", "retroarch")); str_copy(m->state_slot0, sizeof m->state_slot0, state_str(p, e, "state_slot0", ".state")); @@ -415,10 +418,19 @@ int profiles_expand(const cJSON *profiles, profile_map **out) { for (int i = 0; i < cnt; i++) { if (!maps[i].extra) continue; maps[i].own_slot = 1; - for (int k = 0; k < cnt; k++) - if (!maps[k].extra && !strcmp(maps[k].platform_dir, maps[i].platform_dir) && maps[i].save_format[0] && + /* The same system (RomM's first slug: Porpoise calls GameCube's + * folder "gamecube", RetroArch "ngc") and the same format. */ + char sys_i[64]; + str_copy(sys_i, sizeof sys_i, maps[i].romm_slugs); + sys_i[strcspn(sys_i, ",")] = 0; + for (int k = 0; k < cnt; k++) { + char sys_k[64]; + str_copy(sys_k, sizeof sys_k, maps[k].romm_slugs); + sys_k[strcspn(sys_k, ",")] = 0; + if (!maps[k].extra && !strcmp(sys_k, sys_i) && maps[i].save_format[0] && !strcmp(maps[k].save_format, maps[i].save_format)) maps[i].own_slot = 0; + } } *out = maps; return cnt; diff --git a/src/sync.c b/src/sync.c index 5be6558..45d086c 100644 --- a/src/sync.c +++ b/src/sync.c @@ -11,6 +11,7 @@ #include "config.h" #include "bundle.h" +#include "gcmem.h" #include "gameid.h" #include "http.h" #include "memcard.h" @@ -53,6 +54,11 @@ typedef struct { int is_bundle; /* several files synced as one zip, see bundle.h */ char game_id[16]; char upload_name[256]; + /* GameCube saves in a GCI folder keep the form RomM has them in (gc_form): + * "zip" (the folder's files for the game), "gci" (one of them, gc_file) + * or "card" (a whole memory card with them on it). */ + char gc_form[8]; + char gc_file[PATH_MAX_LEN]; } local_file; typedef struct { @@ -272,6 +278,14 @@ static cJSON *resolve_rom_on_server(const scan_ctx *c, const profile_map *m, con return match.by_stem; } +/* Whether a comma separated list has item. */ +static int list_has(const char *list, const char *item) { + size_t n = strlen(item); + for (const char *p = list; n && (p = strstr(p, item)); p += n) + if ((p == list || p[-1] == ',') && (p[n] == ',' || !p[n])) return 1; + return 0; +} + static void record_local_rom(const char *path, int rom_id, const profile_map *m, const cJSON *srv, const char *md5, const local_rom *r) { const char *name = jget_str(srv, "name", ""), *fs_name = jget_str(srv, "fs_name", ""); @@ -292,6 +306,7 @@ static void record_local_rom(const char *path, int rom_id, const profile_map *m, else cJSON_AddItemToObject(e, "stems", stems); cJSON_DeleteItemFromObjectCaseSensitive(e, "miss_at"); + cJSON_DeleteItemFromObjectCaseSensitive(e, "miss_dirs"); } /* Renames files in dir (and its folders one level down, RetroArch's per-core @@ -419,6 +434,17 @@ static void scan_rom_dir(scan_ctx *c, const profile_map *m) { cJSON *e = state_entry("roms", path); int rom_id = e ? (int)jget_num(e, "rom_id", 0) : 0; time_t miss_at = e ? (time_t)jget_num(e, "miss_at", 0) : 0; + /* A folder that holds several of the emulator's systems (Porpoise: + * GameCube and Wii): a game is the system's it matched for, and a + * miss for one system doesn't stop the others asking. */ + const char *was_dir = e ? jget_str(e, "platform_dir", "") : ""; + const int other_system = e && rom_id && was_dir[0] && !strcmp(jget_str(e, "profile", ""), m->profile_id) && + strcmp(was_dir, m->platform_dir) != 0; + if (miss_at && !list_has(jget_str(e, "miss_dirs", ""), m->platform_dir)) miss_at = 0; + if (other_system) { + state_unlock(); + continue; + } if (e) { const cJSON *s; cJSON_ArrayForEach(s, cJSON_GetObjectItemCaseSensitive(e, "stems")) @@ -439,8 +465,13 @@ static void scan_rom_dir(scan_ctx *c, const profile_map *m) { LOGI("matched %s -> RomM rom %d", path, rom_id); } else { cJSON *ne = state_entry_ensure("roms", path); + char dirs[256]; + const char *had = jget_str(ne, "miss_dirs", ""); + if (list_has(had, m->platform_dir)) str_copy(dirs, sizeof dirs, had); + else snprintf(dirs, sizeof dirs, "%s%s%s", had, had[0] ? "," : "", m->platform_dir); jset_num(ne, "rom_id", 0); jset_num(ne, "miss_at", (double)now); + jset_str(ne, "miss_dirs", dirs); jset_str(ne, "profile", m->profile_id); } state_unlock(); @@ -941,6 +972,202 @@ static int rom_game_id(const local_rom *r, char *out, size_t n) { return 0; } +/* ---- GameCube: the form RomM keeps a game's saves in ---- + * RomM is the authority: a game's saves go up in the form they're there in. + * zip the game's .gci files zipped (this app's own form, and the default) + * gci a single .gci, as other apps send it + * card a whole memory card (.raw), as Dolphin keeps one: this console's + * saves for the game are put on a copy of RomM's card (kept in + * gccards/.raw), so the card's other saves stay as they are. */ + +static const char *gc_form_of_name(const char *file_name) { + if (str_ends_with_ci(file_name, ".gci")) return "gci"; + if (ext_in_list(file_name, ".raw,.gcp,.mcp")) return "card"; + return "zip"; +} + +static void gc_card_cache(int rom_id, char *out, size_t n) { + char dir[PATH_MAX_LEN]; + path_join(dir, sizeof dir, plat_data_dir(), "gccards"); + snprintf(out, n, "%s/%d.raw", dir, rom_id); +} + +static void gc_form_get(const local_rom *r, char *form, size_t n, char *name, size_t nn) { + state_lock(); + cJSON *e = state_entry("roms", r->path); + str_copy(form, n, e ? jget_str(e, "gc_form", "zip") : "zip"); + if (name) str_copy(name, nn, e ? jget_str(e, "gc_name", "") : ""); + state_unlock(); +} + +static void gc_form_set(const local_rom *r, const char *form, const char *name) { + state_lock(); + cJSON *e = state_entry("roms", r->path); + if (e) { + jset_str(e, "gc_form", form); + if (name && name[0]) jset_str(e, "gc_name", name); + } + state_unlock(); +} + +/* Fetches a save's content without telling RomM this console has it. */ +static int gc_fetch(int save_id, const char *dest) { + char api[64]; + snprintf(api, sizeof api, "/api/saves/%d/content", save_id); + http_resp resp; + mkdir_parent(dest); + if (romm_download(api, dest, NULL, NULL, &resp) != 0) { + LOGW("save %d: %s", save_id, resp.error); + unlink(dest); + return -1; + } + return 0; +} + +static int gc_is_card_file(const char *path) { + size_t len = 0; + char *data = read_file(path, &len); + gc_card card; + int ok = data && gc_card_open(&card, (const unsigned char *)data, len) == 0; + if (ok) gc_card_free(&card); + free(data); + return ok; +} + +/* Which form RomM has the game's saves in: its newest one in this console's + * slot, or else its newest one anywhere. For a card, a copy of it is kept + * here so this console's saves can be put on it. */ +static void gc_learn_form(const scan_ctx *c, const local_rom *r) { + char api[64]; + snprintf(api, sizeof api, "/api/saves?rom_id=%d", r->rom_id); + long st = 0; + cJSON *all = romm_call("GET", api, NULL, &st); + const cJSON *s, *mine = NULL, *any = NULL; + cJSON_ArrayForEach(s, (st == 200 ? all : NULL)) { + if ((int)jget_num(s, "rom_id", 0) != r->rom_id) continue; + const char *up = jget_str(s, "updated_at", ""); + if (!any || strcmp(up, jget_str(any, "updated_at", "")) > 0) any = s; + if (!strcmp(jget_str(s, "slot", ""), c->slot) && (!mine || strcmp(up, jget_str(mine, "updated_at", "")) > 0)) + mine = s; + } + const cJSON *pick = mine ? mine : any; + if (!pick && st == 200) { /* nothing on RomM: this app's own form, no card kept */ + char cache[PATH_MAX_LEN]; + gc_card_cache(r->rom_id, cache, sizeof cache); + unlink(cache); + gc_form_set(r, "zip", NULL); + } + if (pick) { + /* RomM stamps the names it keeps: "MemoryCardA.USA [2026-10-14_16-39-01].raw". */ + char name[256]; + str_copy(name, sizeof name, jget_str(pick, "file_name", "")); + char *open = strrchr(name, '['), *close = open ? strchr(open, ']') : NULL; + if (open && close && open > name && open[-1] == ' ') memmove(open - 1, close + 1, strlen(close + 1) + 1); + const char *form = gc_form_of_name(name); + char was[8]; + gc_form_get(r, was, sizeof was, NULL, 0); + if (strcmp(was, form) != 0) LOGI("%s: RomM keeps its saves as %s (%s)", path_basename(r->path), form, name); + gc_form_set(r, form, name); + char cache[PATH_MAX_LEN]; + gc_card_cache(r->rom_id, cache, sizeof cache); + if (!strcmp(form, "card") && !file_exists(cache) && gc_fetch((int)jget_num(pick, "id", 0), cache) == 0 && + !gc_is_card_file(cache)) { + LOGW("%s: RomM's save %s isn't a GameCube memory card", path_basename(r->path), name); + unlink(cache); + } + } + cJSON_Delete(all); +} + +/* .gci files taken off a card. */ +typedef struct { + unsigned char *g[32]; + size_t n[32]; + int count; +} gc_list; + +static void gc_keep(const unsigned char *g, size_t n, void *ud) { + gc_list *l = ud; + if (l->count >= 32 || !(l->g[l->count] = malloc(n))) return; + memcpy(l->g[l->count], g, n); + l->n[l->count++] = n; +} + +static void gc_list_free(gc_list *l) { + for (int k = 0; k < l->count; k++) free(l->g[k]); + l->count = 0; +} + +/* RomM's card with this console's saves for the game on it, in place of the + * card's own. Unchanged saves leave the card exactly as RomM has it. */ +static int gc_virtual_card(int rom_id, const bundle *b, unsigned char **out, size_t *out_n) { + char cache[PATH_MAX_LEN]; + gc_card_cache(rom_id, cache, sizeof cache); + size_t len = 0; + char *raw = read_file(cache, &len); + gc_card card; + if (!raw || gc_card_open(&card, (const unsigned char *)raw, len) != 0) { + free(raw); + return -1; + } + free(raw); + /* Same saves, same bytes (where each sits on the card aside)? */ + gc_list on_card = {0}; + gc_card_saves(&card, b->game_id, gc_keep, &on_card); + int same = on_card.count == b->n; + for (int i = 0; same && i < b->n; i++) { + size_t gl = 0; + char *g = read_file(b->files[i].path, &gl); + int match = 0; + for (int k = 0; g && k < on_card.count && !match; k++) + match = on_card.n[k] == gl && !memcmp(on_card.g[k], g, 0x36) && + !memcmp(on_card.g[k] + 0x38, g + 0x38, gl - 0x38); + same = match; + free(g); + } + gc_list_free(&on_card); + int rc = 0; + if (!same) { + gc_card_remove(&card, b->game_id); + for (int i = 0; i < b->n && rc == 0; i++) { + size_t gl = 0; + char *g = read_file(b->files[i].path, &gl); + if (!g || gc_card_put(&card, (const unsigned char *)g, gl) != 0) { + LOGW("%s doesn't fit on RomM's memory card", b->files[i].name); + rc = -1; + } + free(g); + } + } + if (rc == 0) { + *out = card.data; + *out_n = card.size; + card.data = NULL; + } + gc_card_free(&card); + return rc; +} + +/* The one .gci that goes up when RomM keeps a single one: the same save as + * RomM's, or the newest. */ +static int gc_pick_gci(const bundle *b, const char *server_name, char *out, size_t n) { + time_t best = 0; + out[0] = 0; + for (int i = 0; i < b->n; i++) + if (server_name && !strcmp(b->files[i].name, server_name)) { + str_copy(out, n, b->files[i].path); + return 0; + } + for (int i = 0; i < b->n; i++) { + time_t t = file_mtime(b->files[i].path); + if (!out[0] || t > best) { + best = t; + str_copy(out, n, b->files[i].path); + } + } + return out[0] ? 0 : -1; +} + static void fill_bundle_file(local_file *f, const scan_ctx *c, const local_rom *r, const bundle *b) { memset(f, 0, sizeof *f); snprintf(f->path, sizeof f->path, "%s#%s", b->dir, b->game_id); @@ -960,6 +1187,26 @@ static void fill_bundle_file(local_file *f, const scan_ctx *c, const local_rom * path_stem(stem, sizeof stem, r->path); snprintf(f->upload_name, sizeof f->upload_name, "%s.zip", stem); } + if (strcmp(r->map->save_layout, "gci") != 0) return; + /* In the form RomM has it: the hash RomM would give what we'd send. */ + char form[8], name[256]; + gc_form_get(r, form, sizeof form, name, sizeof name); + if (!strcmp(form, "gci") && gc_pick_gci(b, name, f->gc_file, sizeof f->gc_file) == 0) { + str_copy(f->gc_form, sizeof f->gc_form, "gci"); + md5_file_hex(f->gc_file, f->hash); + str_copy(f->upload_name, sizeof f->upload_name, name[0] ? name : path_basename(f->gc_file)); + } else if (!strcmp(form, "card")) { + unsigned char *card = NULL; + size_t n = 0; + str_copy(f->gc_form, sizeof f->gc_form, "card"); + if (gc_virtual_card(r->rom_id, b, &card, &n) == 0) { + md5_hex(card, n, f->hash); + free(card); + } else { + f->hash[0] = 0; /* no card to put them on: not sent (scan_bundles) */ + } + str_copy(f->upload_name, sizeof f->upload_name, name[0] ? name : "MemoryCardA.raw"); + } } static void scan_bundles(scan_ctx *c) { @@ -972,15 +1219,78 @@ static void scan_bundles(scan_ctx *c) { state_lock(); cJSON_AddItemToArray(g_bundle_roots, cJSON_CreateString(b.dir)); state_unlock(); + if (!strcmp(r->map->save_layout, "gci")) gc_learn_form(c, r); if (b.n > 0 && !find_save(c, r->rom_id, c->slot)) { local_file f; fill_bundle_file(&f, c, r, &b); - add_file(&c->saves, &c->nsaves, &c->capsaves, &f); + if (f.hash[0]) add_file(&c->saves, &c->nsaves, &c->capsaves, &f); + else LOGW("%s: its saves can't go on RomM's memory card yet", path_basename(r->path)); } bundle_free(&b); } } +/* A GameCube save from RomM that's a memory card or a single .gci: the + * game's saves on it replace the game's .gci files here. 1 when placed, 0 + * when it's neither (a zip), -1 when it can't be used. The bundle is listed + * again. */ +static int gc_place(const local_rom *r, bundle *b, const char *file) { + size_t len = 0; + char *data = read_file(file, &len); + if (!data) return -1; + const unsigned char *u = (const unsigned char *)data; + gc_card card; + int rc = 0; + if (gc_card_open(&card, u, len) == 0) { + gc_list on_card = {0}; + gc_card_saves(&card, b->game_id, gc_keep, &on_card); + if (on_card.count) { + for (int i = 0; i < b->n; i++) unlink(b->files[i].path); + mkdir_p(b->dir); + } else { + LOGI("RomM's memory card has no saves for %s: keeping this console's", b->game_id); + } + for (int k = 0; k < on_card.count; k++) { + char name[256], path[PATH_MAX_LEN]; + gc_gci_name(on_card.g[k], name, sizeof name); + path_join(path, sizeof path, b->dir, name); + if (write_file_atomic(path, on_card.g[k], on_card.n[k]) != 0) rc = -1; + } + gc_list_free(&on_card); + gc_card_free(&card); + char cache[PATH_MAX_LEN]; + gc_card_cache(r->rom_id, cache, sizeof cache); + mkdir_parent(cache); + if (rc == 0) rc = copy_file(file, cache) == 0 ? 1 : -1; + if (rc > 0) gc_form_set(r, "card", NULL); + } else if (gc_gci_valid(u, len)) { + /* Over the same save here, or beside the others. */ + char path[PATH_MAX_LEN] = ""; + for (int i = 0; i < b->n && !path[0]; i++) { + size_t gl = 0; + char *g = read_file(b->files[i].path, &gl); + if (g && gl >= GC_DENTRY && gc_gci_same_save((const unsigned char *)g, u)) str_copy(path, sizeof path, b->files[i].path); + free(g); + } + if (!path[0]) { + char name[256]; + gc_gci_name(u, name, sizeof name); + mkdir_p(b->dir); + path_join(path, sizeof path, b->dir, name); + } + rc = write_file_atomic(path, u, len) == 0 ? 1 : -1; + if (rc > 0) gc_form_set(r, "gci", NULL); + } + free(data); + if (rc > 0) { + char id[16]; + str_copy(id, sizeof id, b->game_id); + bundle_free(b); + if (bundle_for_rom(r, id, b) != 0) rc = -1; + } + return rc; +} + /* Downloads a save zip and unpacks it over the game's current files. With * record set, the result counts as synced; a manual restore leaves it to upload. */ static int do_download_bundle(const scan_ctx *c, int save_id, const local_rom *r, const char *slot, int session_id, @@ -1015,7 +1325,9 @@ static int do_download_bundle(const scan_ctx *c, int save_id, const local_rom *r if (bundle_zip(&b, cur) == 0) backup_file(c, cur, r->rom_id); unlink(cur); } - if (bundle_replace(&b, zip, tmpdir) != 0) { + int placed = !strcmp(r->map->save_layout, "gci") ? gc_place(r, &b, zip) : 0; + if (placed < 0) goto out; + if (!placed && bundle_replace(&b, zip, tmpdir) != 0) { LOGE("save %d is not a usable zip", save_id); goto out; } @@ -1055,7 +1367,26 @@ static int do_upload(const scan_ctx *c, const local_file *f, int session_id, int free(dev); long st = 0; cJSON *j; - if (f->is_bundle) { + char card_up[PATH_MAX_LEN] = ""; + if (!strcmp(f->gc_form, "gci")) { + j = romm_upload("POST", path, "saveFile", f->gc_file, f->upload_name, &st); + } else if (!strcmp(f->gc_form, "card")) { + /* RomM's card with this console's saves for the game on it. */ + bundle b; + unsigned char *card = NULL; + size_t n = 0; + snprintf(card_up, sizeof card_up, "%s/tmp/upload-%d.raw", plat_data_dir(), f->rom_id); + if (bundle_reopen(f, &b) != 0 || gc_virtual_card(f->rom_id, &b, &card, &n) != 0 || + write_file_atomic(card_up, card, n) != 0) { + bundle_free(&b); + free(card); + if (status_out) *status_out = 0; + return -1; + } + bundle_free(&b); + free(card); + j = romm_upload("POST", path, "saveFile", card_up, f->upload_name, &st); + } else if (f->is_bundle) { char zip[PATH_MAX_LEN]; bundle b; snprintf(zip, sizeof zip, "%s/tmp/upload-%d.zip", plat_data_dir(), f->rom_id); @@ -1072,6 +1403,12 @@ static int do_upload(const scan_ctx *c, const local_file *f, int session_id, int } if (status_out) *status_out = st; int ok = (st == 200 || st == 201) && j; + if (card_up[0]) { /* the card RomM has now is the one kept here */ + char cache[PATH_MAX_LEN]; + gc_card_cache(f->rom_id, cache, sizeof cache); + if (ok) move_file(card_up, cache); + else unlink(card_up); + } if (ok) { record_save(f, (int)jget_num(j, "id", 0), jget_str(j, "content_hash", f->hash)); LOGI("uploaded %s (rom %d, slot %s)", f->path, f->rom_id, f->slot); @@ -1352,7 +1689,7 @@ static int restore_missing_saves(scan_ctx *c, int only_rom) { long st = 0; cJSON *all = romm_call("GET", api, NULL, &st); const cJSON *s, *best = NULL; - cJSON_ArrayForEach(s, st == 200 ? all : NULL) + cJSON_ArrayForEach(s, (st == 200 ? all : NULL)) if ((int)jget_num(s, "rom_id", 0) == m->rom_id && !strcmp(jget_str(s, "slot", ""), m->slot) && (!best || strcmp(jget_str(s, "updated_at", ""), jget_str(best, "updated_at", "")) > 0)) best = s; @@ -1376,6 +1713,44 @@ static int restore_missing_saves(scan_ctx *c, int only_rom) { return n; } +/* A game whose saves are a folder (GameCube, PSP, Wii) with none of them on + * this console while RomM has some: a new emulator, or files deleted. RomM's + * newest in this console's slot (or else anywhere) comes down. */ +static int restore_missing_bundles(scan_ctx *c, int only_rom) { + int n = 0; + for (int i = 0; i < c->nroms; i++) { + const local_rom *r = &c->roms[i]; + if (!r->rules.sync_saves || !bundle_supported(r->map->save_layout) || (only_rom && r->rom_id != only_rom)) continue; + int done_before = 0; /* another emulator's copy of the game */ + for (int k = 0; k < i; k++) done_before |= c->roms[k].rom_id == r->rom_id && bundle_supported(c->roms[k].map->save_layout); + char id[16]; + bundle b; + if (done_before || rom_game_id(r, id, sizeof id) != 0 || bundle_for_rom(r, id, &b) != 0) continue; + const int empty = b.n == 0; + bundle_free(&b); + if (!empty) continue; + char api[64]; + snprintf(api, sizeof api, "/api/saves?rom_id=%d", r->rom_id); + long st = 0; + cJSON *all = romm_call("GET", api, NULL, &st); + const cJSON *s, *mine = NULL, *any = NULL; + cJSON_ArrayForEach(s, (st == 200 ? all : NULL)) { + if ((int)jget_num(s, "rom_id", 0) != r->rom_id) continue; + const char *up = jget_str(s, "updated_at", ""); + if (!any || strcmp(up, jget_str(any, "updated_at", "")) > 0) any = s; + if (!strcmp(jget_str(s, "slot", ""), c->slot) && (!mine || strcmp(up, jget_str(mine, "updated_at", "")) > 0)) + mine = s; + } + const cJSON *pick = mine ? mine : any; + if (pick && do_download_bundle(c, (int)jget_num(pick, "id", 0), r, c->slot, 0, jget_str(pick, "content_hash", ""), 1) == 0) { + n++; + events_add("save", "downloaded", r->rom_id, b.dir, emu_name(r->map), "Missing here"); + } + cJSON_Delete(all); + } + return n; +} + static void record_conflict(const local_file *f, const cJSON *op) { state_lock(); int is_new = state_entry("conflicts", f->path) == NULL; @@ -1765,11 +2140,13 @@ typedef struct { * (save_format) has one save: the newest of their copies goes to the others, * the copies replaced backed up first. Runs before the saves are scanned (so * one save goes up) and after the downloads (so a new one reaches them all). */ +static int share_bundles(scan_ctx *c); + static int share_saves(scan_ctx *c) { - int copied = 0; + int copied = share_bundles(c); for (int i = 0; i < c->nroms; i++) { const local_rom *a = &c->roms[i]; - if (!a->map->save_format[0] || a->map->own_slot || !a->rules.sync_saves) continue; + if (!a->map->save_format[0] || a->map->own_slot || !a->rules.sync_saves || a->map->save_layout[0]) continue; /* The first member of each group does the work. */ int first = 1; for (int k = 0; k < i && first; k++) @@ -1808,6 +2185,57 @@ static int share_saves(scan_ctx *c) { return copied; } +/* The same for a GameCube game two Dolphins play (GCI folders): the game's + * .gci files from the one that saved last go to the other's folder. */ +static int share_bundles(scan_ctx *c) { + int copied = 0; + for (int i = 0; i < c->nroms; i++) { + const local_rom *a = &c->roms[i]; + if (strcmp(a->map->save_layout, "gci") != 0 || a->map->own_slot || !a->rules.sync_saves) continue; + int first = 1; + for (int k = 0; k < i && first; k++) + if (c->roms[k].rom_id == a->rom_id && !strcmp(c->roms[k].map->save_layout, "gci") && + !c->roms[k].map->own_slot && c->roms[k].rules.sync_saves) + first = 0; + char id[16]; + if (!first || rom_game_id(a, id, sizeof id) != 0) continue; + bundle bs[4]; + int n = 0, newest = -1; + for (int k = i; k < c->nroms && n < 4; k++) { + const local_rom *r = &c->roms[k]; + if (r->rom_id != a->rom_id || strcmp(r->map->save_layout, "gci") || r->map->own_slot || !r->rules.sync_saves) + continue; + if (bundle_for_rom(r, id, &bs[n]) != 0) continue; + if (bs[n].n && (newest < 0 || bs[n].mtime > bs[newest].mtime)) newest = n; + n++; + } + char want[33] = ""; + if (n >= 2 && newest >= 0) bundle_hash(&bs[newest], want); + for (int k = 0; want[0] && k < n; k++) { + char have[33]; + bundle_hash(&bs[k], have); + if (k == newest || !strcmp(have, want)) continue; + if (bs[k].n) { /* what was there, kept as a zip */ + char cur[PATH_MAX_LEN]; + snprintf(cur, sizeof cur, "%s/tmp/%s-shared.zip", plat_data_dir(), id); + if (bundle_zip(&bs[k], cur) == 0) backup_file(c, cur, a->rom_id); + unlink(cur); + } + for (int f = 0; f < bs[k].n; f++) unlink(bs[k].files[f].path); + mkdir_p(bs[k].dir); + for (int f = 0; f < bs[newest].n; f++) { + char to[PATH_MAX_LEN]; + path_join(to, sizeof to, bs[k].dir, bs[newest].files[f].name); + if (copy_file(bs[newest].files[f].path, to) == 0) set_file_mtime(to, file_mtime(bs[newest].files[f].path)); + } + LOGI("shared save: %s's GameCube saves -> %s", id, bs[k].dir); + copied++; + } + for (int k = 0; k < n; k++) bundle_free(&bs[k]); + } + return copied; +} + /* Game ids, save ids and what was synced belong to one RomM server (and one * device on it). Paired with another, they mean nothing there: they're * forgotten, and the games are matched again by name. */ @@ -2032,7 +2460,7 @@ static void run_sync(const char *reason, int only_rom, sync_result *res) { } } cJSON_Delete(neg); - if (!upload_only) res->downloaded += restore_missing_saves(&c, only_rom); + if (!upload_only) res->downloaded += restore_missing_saves(&c, only_rom) + restore_missing_bundles(&c, only_rom); if (!upload_only) res->downloaded += fetch_slotless_saves(&c, only_rom); set_phase("finishing"); diff --git a/tests/e2e.sh b/tests/e2e.sh index 5b2e578..6b0b759 100755 --- a/tests/e2e.sh +++ b/tests/e2e.sh @@ -62,6 +62,12 @@ ROMM_SYNC_HOMEBREW="$T/homebrew" ROMM_SYNC_DATA="$T/data" ROMM_SYNC_AUTOSTART="$ ROMM_SYNC_UPDATE_URL="http://127.0.0.1:$MOCK_PORT/_github/release" "$ROOT/build/host/romm-sync" >"$T/daemon.log" 2>&1 & sleep 6 # let the (unpaired, skipped) startup sync pass +echo "web UI script parses" +if command -v node >/dev/null; then + python3 -c "import re,sys; print('\n'.join(re.findall(r'', open(sys.argv[1]).read(), re.S)))" "$ROOT/ui/index.html" > "$T/ui.js" + node --check "$T/ui.js" || fail "the web UI's script doesn't parse" +fi + echo "0. self-signed HTTPS needs certificate checks turned off" r=$(curl -s -X POST "$API/api/pair/start" -d "{\"server_url\":\"https://127.0.0.1:$TLS_PORT\"}") [[ "$r" == *"doesn't trust"* ]] || fail "untrusted certificate not reported: $r" @@ -294,6 +300,64 @@ syncnow [[ -f "$SD/ULUS10336GAMEDATA/BIG.BIN" ]] || fail "game data folder must be left alone" ls "$T/data/backups/30/" | grep -q "ULUS10336.zip" || fail "no backup of the PSP save" +echo "12b. GameCube saves stay in the form RomM has them: one .gci, or a whole memory card" +GC="python3 $ROOT/tests/gccard.py" +admin_save() { # rom_id file_name path + python3 -c "import base64,json,sys; print(json.dumps({'rom_id':int(sys.argv[1]),'slot':'autosave','file_name':sys.argv[2],'content_b64':base64.b64encode(open(sys.argv[3],'rb').read()).decode()}))" "$1" "$2" "$3" > "$T/admin.json" + curl -sf -X POST "http://127.0.0.1:$MOCK_PORT/_admin/save" -d @"$T/admin.json" >/dev/null +} +newest() { # rom_id: writes RomM's newest save for it to $T/newest, prints its name + dump | python3 -c " +import json,sys,re +s=sorted([x for x in json.load(sys.stdin)['saves'] if x['rom_id']==$1], key=lambda x: (x['updated_at'], x['id'])) +open('$T/newest','wb').write(s[-1]['content'].encode('latin1')); print(re.sub(r' \[[^]]*\]', '', s[-1]['file_name']))"; } +blocks_md5() { python3 -c "import hashlib,sys; print(hashlib.md5(open(sys.argv[1],'rb').read()[0x40:]).hexdigest())" "$1"; } +for g in "41 Sunshine GMSE01" "42 Melee GALE01"; do + set -- $g + curl -sf -X POST "http://127.0.0.1:$MOCK_PORT/_admin/rom" -d "{\"id\":$1,\"platform_id\":4,\"name\":\"$2\",\"fs_name\":\"$2 (USA).iso\",\"files\":[]}" >/dev/null + python3 "$ROOT/tests/make_disc.py" gc "$RA/roms/ngc/$2 (USA).iso" "$3" +done +# One .gci on RomM (another app's): it comes down into the GCI folder, and goes back up as one .gci. +$GC gci "$T/sms.gci" GMSE01 super_mario_sunshine 2 0x11 +admin_save 41 "01-GMSE-super_mario_sunshine.gci" "$T/sms.gci" +syncnow +cmp -s "$T/sms.gci" "$CARD/01-GMSE-super_mario_sunshine.gci" || fail "RomM's .gci must land in the GCI folder" +syncnow +[[ "$(last uploaded)" == 0 ]] || fail "an unchanged .gci must not go up again" +sleep 1.1; $GC gci "$CARD/01-GMSE-super_mario_sunshine.gci" GMSE01 super_mario_sunshine 3 0x22 +syncnow +[[ "$(newest 41)" == "01-GMSE-super_mario_sunshine.gci" ]] || fail "a .gci on RomM must go back up as a .gci: $(newest 41)" +cmp -s "$T/newest" "$CARD/01-GMSE-super_mario_sunshine.gci" || fail "the .gci RomM got isn't this console's" +# A whole card on RomM with Melee's save and another game's: Melee's comes +# down; this console's change goes back onto RomM's card, the other save untouched. +$GC blank "$T/cardA.raw" 64 +$GC gci "$T/melee.gci" GALE01 SuperSmashBros0110290334 3 0x33; $GC put "$T/cardA.raw" "$T/melee.gci" +$GC gci "$T/other.gci" GXXE01 other_game 2 0x44; $GC put "$T/cardA.raw" "$T/other.gci" +admin_save 42 "MemoryCardA.USA.raw" "$T/cardA.raw" +syncnow +cmp -s "$T/melee.gci" "$CARD/01-GALE-SuperSmashBros0110290334.gci" 2>/dev/null || + [[ "$(blocks_md5 "$T/melee.gci")" == "$(blocks_md5 "$CARD/01-GALE-SuperSmashBros0110290334.gci" 2>/dev/null)" ]] || fail "Melee's save must come off RomM's card" +[[ ! -e "$CARD/01-GXXE-other_game.gci" ]] || fail "only the game's own saves come off the card" +syncnow +[[ "$(last uploaded)" == 0 ]] || fail "an unchanged save must leave RomM's card alone" +other_md5=$($GC saves "$T/cardA.raw" GXXE01) +sleep 1.1; $GC gci "$CARD/01-GALE-SuperSmashBros0110290334.gci" GALE01 SuperSmashBros0110290334 4 0x55 +syncnow +[[ "$(newest 42)" == "MemoryCardA.USA.raw" ]] || fail "a card on RomM must go back up as the card: $(newest 42)" +dump | python3 -c "import json,sys; n=[x['file_name'] for x in json.load(sys.stdin)['saves'] if x['rom_id'] in (41,42)]; sys.exit(any(f.count('[') > 1 for f in n))" || fail "a name sent back must not pile up RomM's stamps" +$GC check "$T/newest" || fail "the card sent to RomM must be one Dolphin reads" +[[ "$($GC saves "$T/newest" GALE01 | cut -d' ' -f2)" == "$(blocks_md5 "$CARD/01-GALE-SuperSmashBros0110290334.gci")" ]] || fail "this console's Melee save must be on the card" +[[ "$($GC saves "$T/newest" GXXE01)" == "$other_md5" ]] || fail "the card's other saves must stay as they were" +# Another device changes the card: it comes down, and this console's file follows. +cp "$T/newest" "$T/cardB.raw"; $GC gci "$T/melee2.gci" GALE01 SuperSmashBros0110290334 2 0x66; $GC put "$T/cardB.raw" "$T/melee2.gci" +sleep 1.1; admin_save 42 "MemoryCardA.USA.raw" "$T/cardB.raw" +syncnow +[[ "$(blocks_md5 "$CARD/01-GALE-SuperSmashBros0110290334.gci")" == "$(blocks_md5 "$T/melee2.gci")" ]] || fail "a newer card on RomM must update the save here" +ls "$T/data/backups/42/" 2>/dev/null | grep -q . || fail "no backup before the card's save replaced this console's" +grep -q "Sunshine (USA).iso: RomM keeps its saves as gci (01-GMSE-super_mario_sunshine.gci)" "$T/daemon.log" && + grep -q "Melee (USA).iso: RomM keeps its saves as card (MemoryCardA.USA.raw)" "$T/daemon.log" || + fail "each game's form must be the one RomM has" + echo "13. in-app update: only a correctly signed release installs" SIGN="$ROOT/build/host/release-sign" upd() { curl -sf "$API/api/update" | python3 -c "import json,sys; u=json.load(sys.stdin); print(u['$1'])"; } @@ -485,6 +549,42 @@ post /api/download '{"rom_id":61}' >/dev/null; sleep 2 python3 -c 'import os,sys; sys.exit(not os.path.samefile(sys.argv[1], sys.argv[2]))' \ "$T/n64emu/games/Other Racer (U).z64" "$T/n64b/roms/Other Racer (U).z64" || fail "the extra copy should be a hard link" +echo "16b. two Dolphins for GameCube keep one save: the main one's .gci files reach the extra's folder" +mkdir -p "$T/gcA/games" "$T/gcB/ngc" +python3 - "$T/catalog.json" "$T" <<'PY' +import json, sys +cat = json.load(open(sys.argv[1])) +# Dolphin A keeps GameCube and Wii games in one folder, like Porpoise; +# Dolphin B a folder for each. +# Their folders for GameCube are named differently ("gamecube", "ngc"), as +# Porpoise's and RetroArch's are. +for gid, name, roms, gc_dir in (("gcA", "Dolphin A", "{root}/games", "gamecube"), ("gcB", "Dolphin B", "{root}/{platform}", "ngc")): + cat.append({"id": gid, "name": name, "detect": [f"{sys.argv[2]}/{gid}"], + "profile": {"root": f"{sys.argv[2]}/{gid}", "rom_dir": roms, "save_dir": "{root}/User", + "platforms": [{"romm": ["ngc"], "dir": gc_dir, "emulator": "dolphin", + "save_layout": "gci", "bundle_dirs": "{root}/User/GC"}, + {"romm": ["wii"], "dir": "wii", "emulator": "dolphin", + "save_layout": "wii", "bundle_dirs": "{root}/User/Wii"}]}}) +json.dump(cat, open(sys.argv[1], "w")) +PY +python3 "$ROOT/tests/make_disc.py" gc "$T/gcA/games/Sunshine (USA).iso" GMSE01 +python3 "$ROOT/tests/make_disc.py" gc "$T/gcB/ngc/Sunshine (USA).iso" GMSE01 +post /api/setup/emulators "{\"roots\":[\"$HB\",\"$T/psxemu\",\"$T/n64emu\",\"$T/n64b\",\"$T/ps2emu\",\"$T/nope\",\"$T/gcA\",\"$T/gcB\"], + \"choices\":{\"psx\":\"$T/psxemu\",\"n64\":\"$T/n64emu\",\"ps2\":\"$T/ps2emu\",\"ngc\":\"$T/gcA\",\"wii\":\"$T/gcA\"}, + \"also\":{\"n64\":[\"$T/n64b\"],\"ngc\":[\"$T/gcB\"],\"wii\":[\"$T/gcB\"]}}" >/dev/null \ + || fail "setup with two Dolphins refused" +A="$T/gcA/User/GC/USA/Card A"; Bc="$T/gcB/User/GC/USA/Card A" +syncnow +sleep 1; syncnow +[[ ! -e "$T/gcB/wii/Sunshine (USA).iso" ]] || fail "a GameCube game in a folder shared with Wii must not go to the extra's Wii folder" +cmp -s "$A/01-GMSE-super_mario_sunshine.gci" "$Bc/01-GMSE-super_mario_sunshine.gci" || fail "RomM's save must reach both Dolphins" +sleep 1.1; $GC gci "$Bc/01-GMSE-super_mario_sunshine.gci" GMSE01 super_mario_sunshine 2 0x77 +syncnow +cmp -s "$Bc/01-GMSE-super_mario_sunshine.gci" "$A/01-GMSE-super_mario_sunshine.gci" || fail "a save made in the extra must reach the main Dolphin" +[[ "$(last uploaded)" == 1 ]] || fail "two Dolphins sharing a save must upload it once: $(last uploaded)" +[[ "$(newest 41)" == "01-GMSE-super_mario_sunshine.gci" ]] && cmp -s "$T/newest" "$A/01-GMSE-super_mario_sunshine.gci" || fail "RomM must get the newer save, as one .gci" +ls "$T/data/backups/41/" 2>/dev/null | grep -q "GMSE01-shared.zip" || fail "the save replaced in the main Dolphin must be backed up" + echo "17. paired with another server, the old server's game and save ids are forgotten" hist() { curl -sf "$API/api/status" | python3 -c "import json,sys; print(len(json.load(sys.stdin)['sync']['history']))"; } n=$(hist) diff --git a/tests/gccard.py b/tests/gccard.py new file mode 100644 index 0000000..9bb8384 --- /dev/null +++ b/tests/gccard.py @@ -0,0 +1,158 @@ +#!/usr/bin/env python3 +"""GameCube memory cards for the e2e test, written apart from src/gcmem.c so +each checks the other. + + gccard.py blank CARD NBLOCKS a formatted, empty card + gccard.py gci OUT ID FILE BLOCKS FILL a .gci: ID "GZLE01", FILE its name on the card + gccard.py put CARD GCI puts a .gci on the card + gccard.py saves CARD ID " " per save + gccard.py check CARD exits 1 unless the card is one Dolphin reads +""" +import hashlib +import struct +import sys + +B = 0x2000 + + +def be16(b, o): + return struct.unpack_from(">H", b, o)[0] + + +def sums(b): + a = c = 0 + for i in range(0, len(b), 2): + w = be16(b, i) + a = (a + w) & 0xFFFF + c = (c + (w ^ 0xFFFF)) & 0xFFFF + return (0 if a == 0xFFFF else a), (0 if c == 0xFFFF else c) + + +def seal(card, blk, is_dir): + o = blk * B + a, c = sums(card[o:o + 0x1FFC]) if is_dir else sums(card[o + 4:o + B]) + struct.pack_into(">HH", card, o + (0x1FFC if is_dir else 0), a, c) + + +def current(card): + def ok(blk, is_dir): + o = blk * B + a, c = sums(card[o:o + 0x1FFC]) if is_dir else sums(card[o + 4:o + B]) + return (a, c) == struct.unpack_from(">HH", card, o + (0x1FFC if is_dir else 0)) + + def newer(x, y, at): + cx, cy = ok(x, at == 0x1FFA), ok(y, at == 0x1FFA) + if cx and cy: + sx, sy = (struct.unpack_from(">h", card, z * B + at)[0] for z in (x, y)) + return y if sy > sx else x + return x if cx else y if cy else None + + return newer(1, 2, 0x1FFA), newer(3, 4, 4) + + +def entries(card, d): + for i in range(127): + o = d * B + i * 0x40 + if card[o:o + 4] != b"\xff" * 4: + yield i, o + + +def chain(card, t, first, count): + blk, out = first, [] + for _ in range(count): + out.append(blk) + blk = be16(card, t * B + 0xA + (blk - 5) * 2) + return out + + +def blank(nblocks): + card = bytearray(b"\xff" * (nblocks * B)) + card[0:0x26] = bytes(0x26) + struct.pack_into(">H", card, 0x22, nblocks // 16) + a, c = sums(card[0:0x1FC]) + struct.pack_into(">HH", card, 0x1FC, a, c) + for k in (1, 2): + struct.pack_into(">H", card, k * B + 0x1FFA, k - 1) + seal(card, k, True) + for k in (3, 4): + card[k * B:(k + 1) * B] = bytes(B) + struct.pack_into(">HHH", card, k * B + 4, k - 3, nblocks - 5, 4) + seal(card, k, False) + return card + + +def put(card, g): + """Like Dolphin's import: the same save is dropped, new blocks follow the + last one handed out, and the edited copies replace the older ones.""" + d, t = current(card) + nd, nt = (2 if d == 1 else 1), (4 if t == 3 else 3) + card[nd * B:(nd + 1) * B] = card[d * B:(d + 1) * B] + card[nt * B:(nt + 1) * B] = card[t * B:(t + 1) * B] + nblocks = len(card) // B + for i, o in list(entries(card, nd)): + if card[o:o + 6] == g[0:6] and card[o + 8:o + 40] == g[8:40]: + for blk in chain(card, nt, be16(card, o + 0x36), be16(card, o + 0x38)): + struct.pack_into(">H", card, nt * B + 0xA + (blk - 5) * 2, 0) + struct.pack_into(">H", card, nt * B + 6, be16(card, nt * B + 6) + be16(card, o + 0x38)) + card[o:o + 0x40] = b"\xff" * 0x40 + count = be16(g, 0x38) + start = be16(card, nt * B + 8) + 1 + if not 5 <= start < nblocks: + start = 5 + free = [b for b in (5 + (start - 5 + k) % (nblocks - 5) for k in range(nblocks - 5)) + if be16(card, nt * B + 0xA + (b - 5) * 2) == 0][:count] + slot = next(i for i in range(127) if card[nd * B + i * 0x40:nd * B + i * 0x40 + 4] == b"\xff" * 4) + for k, blk in enumerate(free): + card[blk * B:(blk + 1) * B] = g[0x40 + k * B:0x40 + (k + 1) * B] + struct.pack_into(">H", card, nt * B + 0xA + (blk - 5) * 2, free[k + 1] if k + 1 < count else 0xFFFF) + struct.pack_into(">H", card, nt * B + 6, be16(card, nt * B + 6) - count) + struct.pack_into(">H", card, nt * B + 8, free[-1]) + o = nd * B + slot * 0x40 + card[o:o + 0x40] = g[0:0x40] + struct.pack_into(">H", card, o + 0x36, free[0]) + for blk, at in ((nd, 0x1FFA), (nt, 4)): + struct.pack_into(">H", card, blk * B + at, (be16(card, blk * B + at) + 1) & 0xFFFF) + seal(card, nd, True) + seal(card, nt, False) + + +def saves(card, gid): + d, t = current(card) + for i, o in entries(card, d): + if card[o:o + 6] == gid.encode(): + data = b"".join(card[b * B:(b + 1) * B] for b in chain(card, t, be16(card, o + 0x36), be16(card, o + 0x38))) + yield card[o + 8:o + 40].rstrip(b"\0").decode(), hashlib.md5(data).hexdigest() + + +def check(card): + d, t = current(card) + assert d and t, "no directory or table checks out" + nblocks, used = len(card) // B, set() + for i, o in entries(card, d): + blocks = chain(card, t, be16(card, o + 0x36), be16(card, o + 0x38)) + assert all(5 <= b < nblocks for b in blocks), "a chain leaves the card" + assert not used & set(blocks), "a block in two saves" + used |= set(blocks) + zeros = sum(1 for b in range(5, nblocks) if be16(card, t * B + 0xA + (b - 5) * 2) == 0) + assert zeros == be16(card, t * B + 6) == nblocks - 5 - len(used), "free count is off" + + +if __name__ == "__main__": + cmd, a = sys.argv[1], sys.argv[2:] + if cmd == "blank": + open(a[0], "wb").write(blank(int(a[1]))) + elif cmd == "gci": + gid, name, blocks, fill = a[1].encode(), a[2].encode(), int(a[3]), int(a[4], 0) + head = bytearray(b"\xff" * 0x40) + head[0:6], head[8:40] = gid, name.ljust(32, b"\0") + struct.pack_into(">HH", head, 0x36, 0, blocks) + open(a[0], "wb").write(bytes(head) + b"".join(bytes([(fill + k) & 0xFF]) * B for k in range(blocks))) + elif cmd == "put": + card = bytearray(open(a[0], "rb").read()) + put(card, open(a[1], "rb").read()) + open(a[0], "wb").write(card) + elif cmd == "saves": + for name, md5 in saves(bytearray(open(a[0], "rb").read()), a[1]): + print(name, md5) + elif cmd == "check": + check(bytearray(open(a[0], "rb").read())) diff --git a/tests/gcmem_test.c b/tests/gcmem_test.c new file mode 100644 index 0000000..ca8d66f --- /dev/null +++ b/tests/gcmem_test.c @@ -0,0 +1,201 @@ +/* GameCube memory cards: saves go on, come off and are replaced, and the + * card stays one Dolphin reads (checksums, chains, free count). + * cc -Isrc tests/gcmem_test.c src/gcmem.c -o build/host/gcmem_test */ +#include +#include +#include + +#include "gcmem.h" + +static int failures; +#define CHECK(x) \ + do { \ + if (!(x)) { \ + fprintf(stderr, "%s:%d: %s\n", __FILE__, __LINE__, #x); \ + failures++; \ + } \ + } while (0) + +static unsigned be16(const unsigned char *p) { return (unsigned)p[0] << 8 | p[1]; } +static void put16(unsigned char *p, unsigned v) { p[0] = (unsigned char)(v >> 8), p[1] = (unsigned char)v; } + +static void sums(const unsigned char *p, size_t n, unsigned *a, unsigned *b) { + unsigned x = 0, y = 0; + for (size_t i = 0; i < n; i += 2) x = (x + be16(p + i)) & 0xFFFF, y = (y + (be16(p + i) ^ 0xFFFF)) & 0xFFFF; + *a = x == 0xFFFF ? 0 : x, *b = y == 0xFFFF ? 0 : y; +} + +/* A blank card as Dolphin formats one: header, two empty directories, two + * tables with every data block free. */ +static unsigned char *blank(int nblocks) { + unsigned char *c = malloc((size_t)nblocks * GC_BLOCK); + memset(c, 0xFF, (size_t)nblocks * GC_BLOCK); + memset(c, 0, 0x26); + put16(c + 0x22, (unsigned)nblocks / 16); + unsigned a, b; + sums(c, 0x1FC, &a, &b); + put16(c + 0x1FC, a), put16(c + 0x1FE, b); + for (int k = 1; k <= 2; k++) { + unsigned char *d = c + k * GC_BLOCK; + put16(d + 0x1FFA, (unsigned)k - 1); + sums(d, 0x1FFC, &a, &b); + put16(d + 0x1FFC, a), put16(d + 0x1FFE, b); + } + for (int k = 3; k <= 4; k++) { + unsigned char *t = c + k * GC_BLOCK; + memset(t, 0, GC_BLOCK); + put16(t + 4, (unsigned)k - 3); + put16(t + 6, (unsigned)nblocks - 5); + put16(t + 8, 4); + sums(t + 4, GC_BLOCK - 4, &a, &b); + put16(t, a), put16(t + 2, b); + } + return c; +} + +static unsigned char *gci(const char *id, const char *file, int blocks, unsigned char fill, size_t *size) { + *size = GC_DENTRY + (size_t)blocks * GC_BLOCK; + unsigned char *g = malloc(*size); + memset(g, 0xFF, GC_DENTRY); + memcpy(g, id, 6); + memset(g + 8, 0, 32); + memcpy(g + 8, file, strlen(file)); + put16(g + 0x36, 0x1234); /* where it sat on another card: ignored */ + put16(g + 0x38, (unsigned)blocks); + for (int k = 0; k < blocks; k++) memset(g + GC_DENTRY + (size_t)k * GC_BLOCK, fill + k, GC_BLOCK); + return g; +} + +/* What Dolphin checks, from the current copies: checksums, every chain + * inside the card and no block in two, the free count right. */ +static void check_card(const gc_card *c) { + const unsigned char *d = c->data + (size_t)c->dir * GC_BLOCK, *t = c->data + (size_t)c->bat * GC_BLOCK; + unsigned a, b; + sums(d, 0x1FFC, &a, &b); + CHECK(a == be16(d + 0x1FFC) && b == be16(d + 0x1FFE)); + sums(t + 4, GC_BLOCK - 4, &a, &b); + CHECK(a == be16(t) && b == be16(t + 2)); + char used[4096] = {0}; + int in_use = 0; + for (int i = 0; i < 127; i++) { + const unsigned char *e = d + i * GC_DENTRY; + if (e[0] == 0xFF && e[1] == 0xFF && e[2] == 0xFF && e[3] == 0xFF) continue; + unsigned blk = be16(e + 0x36), n = be16(e + 0x38); + for (unsigned k = 0; k < n; k++) { + CHECK(blk >= 5 && blk < (unsigned)c->nblocks); + if (blk < 5 || blk >= (unsigned)c->nblocks) break; + CHECK(!used[blk]); + used[blk] = 1; + in_use++; + unsigned next = be16(t + 0xA + (blk - 5) * 2); + if (k + 1 == n) CHECK(next == 0xFFFF); + blk = next; + } + } + int zeros = 0; + for (int blk = 5; blk < c->nblocks; blk++) { + unsigned m = be16(t + 0xA + (blk - 5) * 2); + zeros += m == 0; + CHECK((m == 0) == !used[blk]); + } + CHECK(be16(t + 6) == (unsigned)zeros); + CHECK(zeros + in_use == c->nblocks - 5); +} + +typedef struct { unsigned char *g[8]; size_t size[8]; int n; } got; +static void keep(const unsigned char *g, size_t size, void *ud) { + got *x = ud; + x->g[x->n] = malloc(size); + memcpy(x->g[x->n], g, size); + x->size[x->n++] = size; +} +static void got_free(got *x) { for (int i = 0; i < x->n; i++) free(x->g[i]); x->n = 0; } + +int main(void) { + const int nblocks = 64; /* a 59-block card */ + unsigned char *raw = blank(nblocks); + gc_card c; + CHECK(gc_card_open(&c, raw, (size_t)nblocks * GC_BLOCK) == 0); + check_card(&c); + + size_t za, zb, zc; + unsigned char *a = gci("GZLE01", "gczelda", 3, 0x10, &za), *b = gci("GMSE01", "super_mario_sunshine", 7, 0x40, &zb); + CHECK(gc_gci_valid(a, za) && gc_gci_valid(b, zb)); + CHECK(gc_card_put(&c, a, za) == 0); + CHECK(gc_card_put(&c, b, zb) == 0); + check_card(&c); + + got x = {0}; + CHECK(gc_card_saves(&c, "GZLE01", keep, &x) == 1); + /* The same save comes back, at its place on this card. */ + CHECK(x.n == 1 && x.size[0] == za && !memcmp(x.g[0] + GC_DENTRY, a + GC_DENTRY, za - GC_DENTRY)); + CHECK(x.n == 1 && !memcmp(x.g[0], a, 0x36) && !memcmp(x.g[0] + 0x38, a + 0x38, 8)); + got_free(&x); + + /* Same save again, bigger: replaced, not added. */ + unsigned char *a2 = gci("GZLE01", "gczelda", 5, 0x70, &zc); + CHECK(gc_card_put(&c, a2, zc) == 0); + check_card(&c); + CHECK(gc_card_saves(&c, "GZLE01", keep, &x) == 1); + CHECK(x.n == 1 && x.size[0] == zc && !memcmp(x.g[0] + GC_DENTRY, a2 + GC_DENTRY, zc - GC_DENTRY)); + got_free(&x); + CHECK(gc_card_saves(&c, "GMSE01", keep, &x) == 1); + CHECK(x.n == 1 && !memcmp(x.g[0] + GC_DENTRY, b + GC_DENTRY, zb - GC_DENTRY)); + got_free(&x); + + /* A second file of the same game sits beside the first. */ + size_t zd; + unsigned char *d = gci("GZLE01", "gczelda_opt", 1, 0x90, &zd); + CHECK(gc_card_put(&c, d, zd) == 0); + CHECK(gc_card_saves(&c, "GZLE01", NULL, NULL) == 2); + check_card(&c); + + /* Removing a game frees its blocks and leaves the others. */ + CHECK(gc_card_remove(&c, "GZLE01") == 2); + CHECK(gc_card_saves(&c, "GZLE01", NULL, NULL) == 0); + CHECK(gc_card_saves(&c, "GMSE01", NULL, NULL) == 1); + check_card(&c); + + /* Too big for what's left: refused, card untouched. */ + size_t zbig; + unsigned char *big = gci("GBIG01", "big", 60, 0x01, &zbig); + unsigned char *before = malloc(c.size); + memcpy(before, c.data, c.size); + CHECK(gc_card_put(&c, big, zbig) == -1); + CHECK(!memcmp(before, c.data, c.size)); + + /* The card reopens from its bytes, with the newer copies current. */ + gc_card again; + CHECK(gc_card_open(&again, c.data, c.size) == 0); + CHECK(again.dir == c.dir && again.bat == c.bat); + CHECK(gc_card_saves(&again, "GMSE01", NULL, NULL) == 1); + check_card(&again); + + /* A spoilt current directory: the previous copy is used. */ + again.data[(size_t)again.dir * GC_BLOCK + 100] ^= 0xFF; + gc_card fallback; + CHECK(gc_card_open(&fallback, again.data, again.size) == 0); + CHECK(fallback.dir != again.dir); + gc_card_free(&fallback); + + char name[128]; + gc_gci_name(a, name, sizeof name); + CHECK(!strcmp(name, "01-GZLE-gczelda.gci")); + size_t zq; + unsigned char *q = gci("GQQE01", "a/b?", 1, 0, &zq); + gc_gci_name(q, name, sizeof name); + CHECK(!strcmp(name, "01-GQQE-a__2f__b__3f__.gci")); + + CHECK(gc_card_open(&fallback, raw, 1000) == -1); + CHECK(!gc_gci_valid(a, za - 1)); + + gc_card_free(&again); + gc_card_free(&c); + free(raw), free(a), free(a2), free(b), free(d), free(big), free(before), free(q); + if (failures) { + fprintf(stderr, "%d failed\n", failures); + return 1; + } + puts("gcmem: ok"); + return 0; +} diff --git a/ui/index.html b/ui/index.html index f6d5bf0..311f960 100644 --- a/ui/index.html +++ b/ui/index.html @@ -336,7 +336,7 @@ function fmtTime(t) { return t ? new Date(t * 1000).toLocaleString() : "never"; function ago(t) { if (!t) return "never"; var s = Math.round(Date.now() / 1000 - t); - if (s < 60) return s + "s ago"; if (s < 3600) return Math.round(s / 60) + " min ago"; if (s < 86400) return Math.round(s / 3600) + " h ago"; + if (s < 120) return s + "s ago"; if (s < 7200) return Math.round(s / 60) + " min ago"; if (s < 86400) return Math.round(s / 3600) + " h ago"; return fmtTime(t); } function fmtEta(sec) { @@ -394,7 +394,7 @@ function renderStatus(s) { ' '; }).join(""); - $("history").innerHTML = sy.history.slice().reverse().slice(0, 10).map(function (h) { + $("history").innerHTML = sy.history.slice().sort(function (a, b) { return b.time - a.time; }).slice(0, 10).map(function (h) { var result = h.error ? '' + esc(h.error) + "" : h.conflicts ? '' + h.conflicts + " conflict" + (h.conflicts > 1 ? "s" : "") + "" : 'OK'; @@ -693,7 +693,7 @@ function loadEmus() { current.then(function () { return api("GET", "/api/setup/detect"); }).then(function (list) { wz.loaded[3] = true; if (!list.length) { - $("emus").innerHTML = '

No emulators found.

Turn on systems to pick their folders, or keep RetroArch's defaults.

'; + $("emus").innerHTML = '

No emulators found.

Turn on systems to pick their folders, or keep RetroArch\'s defaults.

'; $("ps2Choice").style.display = "none"; wz.emus = []; api("GET", "/api/platforms").then(function (p) { state.platforms = wz.platforms = p; renderOwn(); }).catch(function () {}); @@ -989,7 +989,7 @@ function showHistory(romId) { $("histBody").innerHTML = '

Loading

'; $("modal").classList.add("on"); Promise.all([api("GET", "/api/history?rom_id=" + romId), api("GET", "/api/tracked?rom_id=" + romId), api("GET", "/api/events?limit=30&rom_id=" + romId)]).then(function (r) { - var h = r[0], here = [], log = r[2]; + var h = r[0], here = [], log = (r[2] || []).slice().sort(function (a, b) { return b.t - a.t; }); r[1].platforms.forEach(function (p) { p.games.forEach(function (g) { here = here.concat(g.files); }); }); $("histBody").innerHTML = "

On this console

" + (here.length ? trackedFiles(here) : '

No saves or states here yet.

') + "

Saves on RomM

" + historyTable("save", h.saves) + "

Save states on RomM

" + historyTable("state", h.states) + @@ -1023,6 +1023,7 @@ function loadActivity() { api("GET", "/api/events?limit=300").then(function (list) { if (f === "problem") list = list.filter(function (e) { return e.action === "failed" || e.action === "conflict" || e.action === "skipped"; }); else if (f) list = list.filter(function (e) { return e.kind === f; }); + list.sort(function (a, b) { return b.t - a.t; }); /* newest first */ $("activity").innerHTML = list.slice(0, 100).map(function (e) { return eventRow(e, true); }).join("") || 'Nothing yet.'; }).catch(function () {}); From 03998081fa69d96b53fb092d42744d289edf785a Mon Sep 17 00:00:00 2001 From: Pedro Santos Date: Wed, 14 Oct 2026 18:26:35 -0400 Subject: [PATCH 8/8] 1.2.0: platform-first Emulators page, sync fixes, release notes - Settings > Emulators: one row per platform with its emulator, folders (Preset or Manual), sync and platform settings; leave prompt; detection retries; default emulator is the one with games - Sync: only this console's slots are written, older and other-device saves per kind, missing saves, states and bundles come back from RomM, per-game state folders (Porpoise), shared folders keep each system's games - Notifications name the games; covers retry and the cache fetches this console's games first - RommPS: socket leak fixed, long requests on their own worker, wording, spinner, shelf count - Web UI: acrylic by default, per-platform sync kept, TLS wording - Tests: upgrade test from every release, more e2e cases --- assets/library.png | Bin 1540089 -> 1649697 bytes assets/social-preview.png | Bin 0 -> 812888 bytes docs/releases/v1.2.0.md | 25 ++ .../examples/rommps/kit/library_page.cpp | 4 +- .../rommps/examples/rommps/kit/rommps_app.cpp | 30 +- .../rommps/examples/rommps/kit/rommps_app.hpp | 13 +- .../app/rommps/examples/rommps/kit/rows.cpp | 23 +- .../app/rommps/examples/rommps/kit/rows.hpp | 1 + .../app/rommps/examples/rommps/kit/screen.cpp | 17 +- .../rommps/examples/rommps/kit/setup_page.cpp | 361 +++++++++++------- .../rommps/examples/rommps/kit/setup_page.hpp | 15 +- .../rommps/examples/rommps/kit/sync_views.cpp | 1 + .../ps5/app/rommps/ps5/sce_sys/param.json | 2 +- platform/ps5/app/src/rommps_api.cpp | 7 +- platform/ps5/app/src/rommps_api.hpp | 4 +- platform/ps5/emulators.json | 1 + src/config.c | 2 +- src/covers.c | 36 +- src/detect.c | 52 +++ src/events.c | 44 +++ src/events.h | 6 + src/library.c | 50 ++- src/profiles.c | 6 +- src/sync.c | 187 +++++++-- src/util.h | 2 +- src/web.c | 41 +- tests/autostart.sh | 2 +- tests/e2e.sh | 63 ++- tests/upgrade.sh | 125 ++++++ ui/index.html | 24 +- 30 files changed, 899 insertions(+), 245 deletions(-) create mode 100644 assets/social-preview.png create mode 100644 docs/releases/v1.2.0.md create mode 100755 tests/upgrade.sh diff --git a/assets/library.png b/assets/library.png index cb6014f9d227963c267f13018ecaebd15584c295..d27b6cfc27cd3d16379fd40f2cc1367531f0eca2 100644 GIT binary patch literal 1649697 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

E+l4W$D+dZZ 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�Yg33}L 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

w4n5qQh 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�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

!C(aAOWI?7)C_x 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

V%_6Z;R#cN9O|7(Hm4!(aQ?fBp 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

o1P+9=Q7izvkaG&~*ZC9>6G?-l$9^~ktLT)Q0F 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 V`WROMRKaD(CM~=<8oH)ZLe!Z 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ɸJ_3l@^e4g68HLi3|qe}YVqfF4*=r%>vD;>{l+GbWzlhI2yuSx z3uz&fJ9%_`Hj-QwycKoAsH0ku4uh;LN>8m$0(<$%(WKdoH&^xcX4Gn$PAkePo3so- z`{3w|eHAx?%2s=WoEXVKgB5jL(qg3a;A|uv)7x0hTp6x6s!{nIhNneZ`Vt7jn@NK0 ze3X7&9h=gn&t{$OW~N!P+3I>55}1`|{cVkn)_BaP73(Oh*rP40$vBAPEH8wCS?V2F zO|g;1w+j}j-z9TDF1z_f{P=WodN^ry8)1Xq|M8upozaJX`Bi#SAqbS|s)8*Oh``9> z6AOEyEs{~e&gQL^Zs+OVqta(c#-{e;U;IXg%Cc>BqtV%TIv9^$jruD|=UaDGPYOF} z2J2;7dY7%O#(S>{S4Dq#uyQ(tS!p2%=4ocPhULxvf}!gZjf{k z=r9bLNgT&vUQ`}1YBm8#Q5*&hrF9q>Mn?2;VEU`86lj8U|2Qj#c~G*hoUj9NEZRrG zO0N-?W3Fb#pw^_6CR9eDR-}|!TU*x`@YAb`%x|%X$aQ6E_=aEpQ-UK`+52w*FV-`S zC2`<_0&p4Oy4WxwE?J&m2X4q^NA&!LTEvUscfNHiP`dOD#KtVk2U*%#TkFwwo}XC1 zkLdcn=8oq)uQVkM9b_mJ#iG2=op>*#C~Uqs&5ysB`F1m^TquxsZGv8}Z?t~-^5w@LeROyTEY6;iEr0U-oI z5CrCpzA6!BMno1EjYfa}5C8D*|NXyz`t=iAmCifn`ay}UR{NcY592sa(=?32D2_yg zQBDVgJTGqC>7;p<7I|qaW)=ahD2iett(C3^edlQD;bHJy0T4Y0pZ$OjUc{G?A3g@ zT8##%Md|a~_Vx7HTm&W(&_F`Y`Qzhb5LsRAhhaGPM+%{U5F;WJ5-DLOW>89qeEl(A z<2zqB6u4YNdilSwJmSAFN-V;3bCV+oibqtWM3EPsmRz{PAb~^hRj7j9PGYJen-;xh z5+sQ&eQvD+A66U{r7{dkfSEK!%-hZI>v6tUlwLlUezjFEcCg?#oRN92_3+y*haM zyz%78)4}Wow(g)XR-gg!uu+17@=xrw*8gY|AJQY595iGrzyDL{tc6-J@zuLU=6zrS_+|Gu&Nzy9fedUTL_ z)G?Hu*p!0od}Y~LVTL3LgaA${=0rZB#ZibyqwpAH*c-p$Q(lfYe9!A8@ro~mL&_q z@y@N_%ai8OFul3XNGJ>ld>)@g)QD=XPzzaC8*Z3MU35-B8=WY{0{RlM# zq98(GLIMZ~b)BOnAO&EYz>7mdgmrCEcOkgBXU{NiX7+RS*)#Aw z@P*94P%F`RkeJHR48(;M`ei$?deF)28vIlb;36*=zC=dvxz@r+7o^m*|T+%ynXM^_y3@|x~53!Fwj~@ zap9dOFtaoTrA0)nhu_=P>n#mVKqIjdg*9gJ+De=MqWT#aTLh$#n|8K6JAP(w ze>7cbK$MWnES}mh(gC8V1@e?ZK6^>X}Hpm zD55Z@K%qwTrAi0i+g$tQ@#uxkXNBtOFlx7Zn|-JXC@QhuJ74$lk|Et}U|br+P?6Hy zT@BW@6Kyb0-E?4Qlge3O5zTHxKp{{yJQzHUmFkOcZLrbjrN9@(*c2%Wn!XwEq~KWv zrB@7sz#3JraW%nmt-1BJO~CT%&d^1C`mnV{Xhw0)9*Kiv+~K|EUUaa->xrBWNUubh2It=ilg=I8|z!QTAjYqAq#o- zzAB15%~ID&*ZOICauTM~agpbhNID%I93Q+mICyyb)}7s*vu}N1XD6L*E6cOE5&!-_ z|9u^XaU3^%R{rYmvsX`ONozbmd&p8x-(oC%K0_7+BtjD?9(-25`h|Ua^-XL29Jhtn z{pm6+3zsCgd5j4!{<)6bcPUhHfrh{<^7c9MW(gN|L3hUMbyBI%o>X@!EY)D)`TM%G z%w4|5Wf^%Z*W3gm@}`2Y#pwypY2b_69GSy-UqdZlIceddtP9V9*6`YDeYHbK;Ob0& zS$9A8aKDaKS>(Mho%H3pt3eh6X}KQeDgdB@$TA$Kqp4J2Oj%aX&xXfE=`t=zr0_3Z zj=uA)jn!VV(&2V9DzdWEFr#t)YCj!Ligq*YbUO&Ds(7{Ux3`;zCuZ+uUX+X#p5^G9 z?#BI)X2Gc_-O(Q1EV9^!NuC2ixDshb1Om^EsKJp@Y$W4J!D;DJSLueIRqU8rYyBfT zd3iKFv@Xey8&V>mbMB)rJ|?R+R@V(t5SlOve2f4}5h0$_HRas4fs3Tof^Grg`1s{X zdRm@7J$1g?eQW#Z)u_xFb!e+JMv0V0q>0dR<)2xfp^l=k)9Uy7>#bIEHJcs}_R2hq zf;bGr+~)*7n`UCEnpm1tZ4^8>^+Bi`WI0t~GMSG1y+*t3CzFh{LOu6r*O>?A>g44| zy%w0(hNTTav&3oxBqAkB5epNYW6&=Pf^TrcBI4^atHtF*MV22PyjovvGM88lJCV!N zNt`4rofUD?Y4tXHon{ob`-7vwFs96N@thY{ zYZZm+)>iZ3ZbQ%P;RudKP%f`%L40+F9xW;(bu0TX2REp~5 zUjTrVa_q^N(ER^M`_C`Qvh2DOJm*~TglTi_Au>eD%E}TzK@o%?2(IqttXchS=F|L# z(>;o800h}2NQf$wKvk;B%*fCY9{fMS5n0yPLgt-@W_n z{oA=?uPA1gs%kWI6E`Qu5I8I*5CZyI7)Wac%#i_=>a^N&_wM^2ynizHqqBvStb?e) zAdaQ>3ba*iVVayv?L%0qLP!vqscFVmq(QD#kN!sP<#kr>#gg<*{e{1o%|O1P6YNd9 zg3FQHTD$D)>x^8TYT=vq6nI%vxQf(Yc`d5>&kG>74$`>rzVt$-qfHO$F-8Lrf`oR* z+}dp=(MIjG1`!)XRjzU&pk@a2w!OFW7S-WobZ!&T9TF510Lbj#e`ovckD|^N^ZB!9 zPfN+lY^UmMIcWdW^WdnSR09v$+@QDxMn(}uq)0WWB_yp>sl9fL6FWq6pBQff&ckEB*uzfBvoD{#IGX#YJzxo-8MGpUVld_!G(}RxEJYPU#OT3jpxjP8mW~3dOqD%C2Je7p zY>!VXDkm+naX#)QO2u51Ck&bPTB;=KKFl)r?Dp=!SpDGTd~MC9qyr$772Pfw1I+pRoJtX#~IQ2 z`Fv$YLThXcVLU#!HW2_0tVjcpwF$?_5<>`08O*hl`m#{!ayeht&oeibfq*C%yy&Jx z@C|^36=|c{=f)7vPEQrl#>UWS)3gi_sU;GcNJxZ82@5k}gRWWEpy5~e2rewK_!=s@ znJiq{P_hWfvP)z+KVt>}Vjm*1D1{No`+y+C3OJsW^&P}PE04h~>X>Qkp!S4yjKthd zw2q|`AOKR>&h0IhZwbv`9M5X+P-%@K!pn`CLJ>k~8KYDZYv+9^BWFp{ZMRy9J)O^h zMFAUYVvH_&S5={|H(GYLzxm$%{b|hm2e1UjY6Vg@U_&Q8h1Z88dH>>KFjmJe>pign+#1dGWu&@B`J22 z&WSgenF8?CSWhCVI-5_Y(*glm&?(T&lhFj{#hnj7L~UFBuI_DCgF(wsRC@HIA09n= zcH?(%-rV0idHfhcef;dD%ZILpR}Y`hKv?7Y6#un7})*2qR8&uyM@&K zqd)n*yLaBQNfKk&+1}aQ+)`R$3;Tn?{kPu007jcB-PzEp@qN@YKVb}LwVM}wO5%|5!ubh$6x%crWWmg zTXcr8QJ;C){j#z`69&uf{Kql0W{FKi?b<--PXaV?cU&3Yt}ZTE?aZ$8)TGlMnod*+XFM04wkY z?=@Vn`&r7d1Rx0f&(N{gT}MR)dw2J~3)YLv5`!Et>{>X~xhq>6Fr8U_JC1wdwL zxJE>b0#QH!85P44!37{BEDb9hq9B1FHKV{r0tN&yvaEH%2unIw)7=A;xjCQU2lvXQRwpyIGb=(6YNfEu^T&eO+aGQk>RR#KFBA>Hh6l zR{#-6vv*ZF;=1zK4cINqKy96LT1gM0#Ep`7YuW*o zG_P8Owx|t)J)~Q;JU)TZUMs*Lps_|bUJsqNG-LFRj4b9;WfHBG=cc`@;W~3WH-B{B zrY}DI;=%E_y%$wNt(NTVJvw}t$?5Gj-IsVg-#iKT3`3F=`}Fe>VcsUSQ#>PeS7-+dHwE7d((@Z2%v@zL83SVG+qP=5nN<13_#LU zgo*$nH6%?~pNXLbe-BS@(z%X7DlZy{46sNYn4x%8)rW38tExf&?LYqAo+f+uz?9oy^Y; zUGzq2r8J^afXETFNo+_O8&%-IF-{lNix)4edY&X&DNRH+F-kY#63|LDHRFV+bpj$W z1`#BQ9HtO+6tlD&$%O`uD;g4^Kmv1Q7n-YtFzckG@$j%3O+8*hboq5V&xI*txUv1= z_kZ`DkA7#c^Oi|kh^D!Om^pgyy|29#wVO@HMX@Lsvqf11BAw?_&%LW}?`$9J-#k8a z)5T0F>h^lAtVLQISDgR!$MYu-Nbph%YXXU|s#9Frv;+W1gVG8SBr-?gusrFwxU|H{KzZ`^KBC_C3 zZu84OjkqrNv%o5~ipw=ht`%myImfiLiZ`~n*Se;g<0h`XCf^iwc~cth%F%JHI2w+| z^I1_Ijz%`g-n}XX z%Sa3F*}xMgt$e@?^AU4MV;~lNRGHIOtH^>H#MAQ^-9e|7npdw5)FR8%t^p;oK*gA{ z?vT#Nq}pVpi~!j!0-sGCez}kA8N0r(-&cUmncz!3W$3%_}{Sn&fxn@Y*i@ z^$p@TnQgCBks=~MV($D#w|(d4#)o(J202d8xC#TG>v&q89?nk+A3+&~ zjHr?= zl;;_%d^`;TNvMmLPahw?8nKT&J$<-1>gDJ=x9deD7l{Kfh}0||Y@RUCbP~%+l46pk z>?%ai8cma+*Q7}F)e#u}TAR+rqVX#b&+tv$v|oGnlIvT4#Mf#{FLXkD z+_jQgc>~SsiogEKrBxNjLUKNjFQ?H3G_9^q&3tm;>T^V@Fnu)-3ret^p$itOoBgCc z4ad`}m@a}uL}rB^cr-pu$F*{iwID&FC1@&GBnA<+n7S_?ygWEQPi!x4?N`~Y7pLXR zmoJ@Gp!XHKv@=jN=J`=T2gHbK$*)oh6_PPXx^W^A=_n$Agc3nmz%wh62qH_fYr{}P z1W=k#qiSdd&_s2C0fm{MX$=(5;36;(p#lWpNF0@F#A?u>L~y4+_}1OMy&JvS&q3P& z2`Z|+KOdjZowtH5(t=9JX+wfEsij~WC21?v3Py+vl?6&S)Iwo_;*lk^EN}EHZM?9F zx)vf#jde=Fd@2TH&{zAJORFQV$^?}Sngv(|VU_4~@76oR?Ry^6H-x6}`bc7}edP7< z4Y0_wr%!+Slb@U%9e3L8EX|fPT>t=L2Ca0f)fSGc>R!t8%ozPmH!YJX=FoKStUwiDljQE*yPI2^i^aUIU8|KhDr#AlC&woU6gU>+QL!k>s){i- zK8HL@h^Q!vq9}s*fRN`IAe3c+h)rFe)*5i>oO88{92F`=P+Eyd?Oah77d}KHvc>>l z3;}83oZ~2+PPg4^)y`GXi$qeWlqLd1WacIPf4R?+wR(Vyhqo}}g;VchB)xJ*BjWlN z0k7=g2z&_V=Vw|`x7Syi5Q!Q|8!=J?f~FXeC=y-tVawVva<%Py{p5j{3RbfrTC+{# zYQKpq)pF@FP^8xO!i^LXeT*1M5eP6LYDJ9t%(=s=+}hhZdNq%WdTY=N(GjUA>C5wS zCUCc#*chC6(%x7aB>48Q_2@iB)LuY@2}y*J5D7(qV}K}zY`4>a7+qPhccCPsbw6*1 z5HJSujEE>CEDS!gX)mXnoB44i=d;2o%LFwS2-C@sGfhvg* zAs~D9MGYZ>PymdPiIpW*3JDE^3gUvI)0&UY%3F#3uw!&@@M^jkfz-P5Y(XMg=iS0b zGe7mSb6+lM2#dP5%BF~ej!CQ?9Uk2IfgQa2ZADa0=eE~QvV2sAxyN7r@(VNA+|Kj6 z!@+x78>h4S+2rMXHVb7nLWbxGB&?kauWdco#u9k_QSzG5+1Q362m>etLSl#v*ceP@ z#h43`&lgh{eWsF&aOAC9x3;#oPS4IK<8cU~>6++vyWL(_E4^lyy`-3dfYy3rW8(+i zUc1!}|J%R&<Eh}cFL1}Hfl=O5{D~<%rC<2jH^b~7BiJ?Gn>8^m0lcw`G+5cKmM1=pywe7I1)$T z5KDp?!4zc%Qi(!Et+v^{q4#cJw@2D2q<+7jCRQX=K0H0CoU&C_fA_tOdFjf!+%Vl@ zTpTFDc6^gF-%=lAd5N21@znYel@>lkNctOG;=AGi*o zcHuPx&DC0Zk!wB(`E?}N*F4y`_BY`-xN3e=;j64+d-tX_2B9RJYdI$v8M`LK00961 zNklU+#vs2+_%SH%wmOe8~OL|Ay0&=*A10v#YllsfnDlTV(OGXI~#2jBm8D@jne zxdOB?oz5TzugC=N*+-QMDFUF{3leM$JAabmyJts7)#=ys{F#0a)6MpNzW;XjMn6kZ zU4-$o*)P6$ay0FK%MRLTyXEXansE#fD1oLrLioSqM1pTPdjbIV6DS-})Fd0z)0^kd z57Uj3QdtUMTr&cIAq*l6kN^@;fF)}tAfYS~-7L!)7y>H6?YQ`mUi5ejk-;}`JQ5HH zSRcFM>B7zY4AkxqKHA($;o;BV>{Xa8LQ#9sxUpS2Th`U!y&I%~&yH27F|nculm?|& zop8&|6ru``(K|+)ZP3yv!nYQeme6e4iy;Qw}R9^dt4zxK!~CCSbrDoc&F|d1on;8mM;HS8$RRe39V$;a@_e#LwNjdGifK!u zB_JTgM5~Q7%W^Y1spiu_0W`6Vo|GaQ7kRilNK(bZdg+G7?ZB zS*t53X5p2!aqHIIz5Q-QjG*8b+!>Ddu`Z>-I;R;S&|44wVcFQ#98BEb>Sx^!vtb4sS1Y z2)z8(@v4e-orrOn&&H*cjIVKE@WMHVD|7~|Q7;-%8kY?BbbBwlqCP#rxI|6L)egan z>c(Vy&ri;{SiG@;5LZ-_3;lbIW6+$pT!FH5GbfDf?0BCBBo zeuF=sK_Z&D%M7qXcW{xXn@(%3m3Q&@WU+9u)lR?l zUi;+SJ*nbhp=Jmh9ly6hAuA)AGsn|Vx6(AVO)QXW7f_+1NCbcsDSZ&wRsn$^Hqjd* z;7O=m$~v)*Vu3X=kFF{;yQ&AAAgZDQ&OXtdIXO>|+AB;DzByt~!j-A)f)6;zMX3I3lRt$(L2DZayre* z+U0CfI3Y^fZDS2cytO&Fv)Rg{8=cHw9iA{ttKS;c5+}YYBLEVhR$5!D6gFL7Sced! z(h7imU2B_=GT!^ds8*VAh$Lv!l;r&iy-v6HpBvtZ6AlR+o#x6I~7&t!v> za~C|G9zM+z2+p@L?DeVL#$h{5t<_SXuRv-<#T-a0Es|CM|*0b-b*I$xkdss$n|g^^G(OK=sS93GEP&Ss^DkhhdcxIS`|=ee!3v|Ch4 zgh&reHVn{a41#AuQ6v&u9Rs>^H?mw#l}^EAmSYf#ga%m?I-y2Z_9zuVY!E-qlo5HQ zg+^v6i-1N2h>MbCUK!w2VT|lhJd0-#RIC&ML-5Fvg@q9r81;BsJ%4uE8+5<(osWL! z_cmS~olX}M(t2DjzWC)=v!m(ljjhd&spc<9S1xiXW{lmSI%K@UVlL!NN9R2Sq|k{E zB1r8_bvoi>kYH?D6t#|YbF)t>dGX+cOGtXk5-JdFi@vp8A#&nP^x~A(omM}FI6HlY zZ(^EXLqA_tpD&3|%`^1DmtTJR>8D4p4%_W^p0@~>tY<(Y-(NgG2%0q%A?@4f$imgmRE$IiLoaL|0m z)7k9&{9IcTBfHwg7-NXc!ck&~4fnaz>10_p9*>Knn9OD?Rf=L{r8Ecy9|VLDeTd!# zButWolm-B$6ti~DhY$cjYpb+IBx952Zi^V1ImX~!1;9iE2u%Y$0-)BbS`ccE@gYPX znjB!GvGej703gCh)VxqJ24+x1N^52Y;3YSDy$1jU5Qwm>>yxuH(yHBVH&ET?2X9c~ z@j?MY0)n;5?_U>zU-tuCTN1AGyc;OosyMecN(i2L^)-=5m?{^DDWd5lw$stI zcU6qeaUEl7OkyoDqrya)vaWLto4r;$rE)%db}&B~FLc_`B0jiPOilnBb-S@zi&6vt zisJ63{qXK!h*VF#tpGvT)zJkBks~kyq={D)9D|Mm5mCJNWehPSMWj}e-|Ns@x|UGl zW@qjhJ#~G|N$jvS9+k!DJdVyZOOA$#Noh?SfyW+Z&kk=KJl+1@Z?l-$%LntL$9ik) z`2^3VYOI|guRwqo>N8&5yI#RAz5eXF_?M<} zvso{qU}O+k>d|I;d6KTz9i?e{^Tz(o8~eWC)A8c)HzyJRG z)+X2N9qYMArSv;*zx#jtU;pj@```VCPai&o)-3}m)CH*TriMo? z4Wb-1hT>Jey@$gaMF3cg7Ox(2zD2DqWKqnzX&q#4q-SKt5HQvdN&%9zHGB2T`#UFp z{>OQ*Q*!|Hh@LPKIf4RVPBJH`h@z%E*TZeKdlUPcXwv2$>Gk`=wtfEe`R+S6Zr|8` zad0qt_Nd)TkIsr4H?v+YxuN7vesUg8r|#!JI{Lgbwl)!t57OAm2Q{&HC z&N8scrVt&C>2$(BxD_=8VTGb#IdJn!7KUcv8dVBpKqo*7NC6o^BVbspfN6}+cv1AU zER0z`JwTf8KzZ*Ku{PQXEuuK&+6RG(G@p%eVc>E)hL^(vTn17aS%#622(%KTn}kg> zg8#;Y#JcYM#*U}vzuwfxz5cdMPFy(!Di*%>QDv>Lm5l%p)0)P-1Ll%vQ_$A;Pgn*Nl4F=Jp637+9?8OH*V4BU#+6T%K)6_}U zO0?m+u9yRG6x54CJ^AdkKA78yZy&qO6Sp<@EgujNK`D^i02@;}o69q$=1MvWQYU>O z3hGp#4xA+F=y?pkrM~wq6c=7TNB>KFH&Pd(19U(Ego5m&>;dm1RS_&pPbrYNOgUkL zeN_Ozi@hDx1ngt* zftt+~vk3l%>hl{9F3aC&f>cr0YKnHUxPA8UVB^-~{01{B1tO3jdEo$(5>^}u(2(*m zA__Hyl^|+am&HplMIe*vJ@@h+yt26$7G@@)riD06xp-N|d7S!a@4mJF!CUI|As#;q zvqdPJiwd^)Pn{hfPWxK7_cvrd!o?VLT;9fw@mbbc1#$^=U0P5`NC7Ei0$LH%*7{L! zd4dOEP^7lI=FZ{hdF($suVPtInt`!sYqSa#q7S&3zt!IvJe@#*o85Tl{hL@!aIpX% z*@qCKG#-{bSyaB7)tOF|f;3Z|t+w5=p>|v`F{uPP8)OodoR-rw7oF0?Z|VBZtvq=r zxv}LH^99`hx=C^MTQW#(%cbK*wT$4wH-@h-*8Me4lUz;Dh&G0Wqp%LTT@P}&Q`%AC z<^*=Dd#j5()ubqARn~`FAEf>5q}@#ulfQc8&kj8iaV>e>X+iqzpNgZ;UPKQ_n5QO4 z%v&bU5*H^B=YpOz5oi>lW~&BaFzjfhM8tUygxYAO6akVVtqn74W)M-NVvHdmGYd$7 z5OIu90&gI9V0HCfb`=OMeab7e29j1rP3C?)udgblfI!VTXsJL03PPH+-}~^l-~aCK z=lvZ(+hk-odRapM35j4SALEkVAqYT9VZx-vKR-OlhdZ}-ww@ntmvb>XwKmD}w0{2e z@z4K0EM{6=JeG-B2&r}B_WrlO(;D;@*XU*#W*AEi9x*5sjQ|{7S zViDKdvgJ}1zR)q20xqlln=qf^`8h;)Vb5zMkfx<@+0a0$_1?GUUw-DxvLO_pye7Y0 z_@3a;WZlSl@G$Tj*m+;^~D#y!W3ynW{r&+o60Mc zYuhpTbv8(O?O?b(;$6B71OUaNbHRe5)L7kNMAFue!~C=i5i_Loh5PiY^S5@hqm$|R z`8OW!pW%G+?4xowcowdbyN4blanHH z^l$H*Rw5}O2DXXGtks&dLWNk)JQ`(e)9MOUUDZkIT@gGRO(wMwnSeqLhD;PG>jE<> zV~DePVr*-p-NcYd+bmZoK#0JiLXK79=5;-Cwe_NkRxedXp+S|9O;j`eA&{-DPN&~$ z_i|r^FMj%U>g&5hTlhGOI)G(i(YBL!IfM}XWH##cHgDg4Z#Fxd&BsS)2fz#vhWlBz znQd%!+U=GmiZvX3_PnD(yqh1L#9}e;wv%>CnacEYRC-a&Hip~9WN~sdYT%KOwq}#r z^!V#uUL>hGKIg2p+q{E>z;bEsK|-yyM84K12fxx#i&qhVvS!Bbbn<`oum1E~-@1Q# z^r|ZEo}M1o=VzNY+`MxC^ow6;V@#`~v#t-KL8?XZ^Iv>iPRHe9j--@US&|i{(=oDu z7_AhA%7@?!ERp5KxG0`VyQM1j#*)%FtHOC5OGGfrTANs_wC)djK6qiyI^Cjh968BT zt!XivA}OV9RhB4{*`zMZ=v@$w$f!tbC6USsPtPEZ=bN|Q`QW4P_4+;FN=uQZtqm2Q zJbYYL@zz`Sj}MN!;q-%Brr+0UBmKHkhD)l?03w;J!SV;UNXTg|Sxfc$Jq9f62m$~O zmf0GZObdO*`1P7*EU$+Z*RmD(D+wF;Ya2b@v<6%>|6Hnph#=R7b#h@@y+B1To6SV7 zAb{}os|c^uon6V?;I+^d07T3IpftSL*qACe53%hj&u^FYi^XEf2E5fA!Iz<`q*#EP zjj5FA6EPs@6>`Q9yFQwRar6Tg+6bc5~_XV=r|rjCG#Q1I=SN zE5pfooSs&5XMB>WxDjMpfeRAbz_&9|JekFMF@cgz30Wzjg=6kE&IQtlETEVTGe@Z+ zM5~q~T0{{gLW007Wm#HC14vm$RXdE{A_tA$MFC+@PNQ#gBiyx05G|9{qAG0b{5<0-HR^hKeT4wNRS1 zH&mJ^e=t&+DU?XK&rPc|3~;3!Gr)X3nH$tCh7>((7fzc8n*b zViFsDEMLC(Jjhp7IqSZ5HRJX21$pg?l=URlkAC>0`D~WhB+v3@mz$(nyWMVg+9pX5 zDTHu79#wS>fFPV0+wXR@R2`hfN*|xHe1X$w)d4<)&PbO5vkFaoeN4S;n?l$%rQg&N|I!0Vlsvrw!e?ZN5=;T&y+%A zlNdP!&&<&9o)Hz1vep`{wL&BxV_o|YLkxkGvewRL^AH&UZDO-LOViZ3dNLV@5RA2h zLI3RREQHYO4gg^?nc$Kf-Dt_n-oK)%PS4JQ55^b~iOc|!rD>X`RaKW|8G`pdurM?9 zujS<7dhzk=isJ>7;SwJWZ;~Z1SuR&r5~EdOZHPVuA6O7r0T^p0Wq5Wn+T7@Ya8-w` zUSEZZiOoja0;5ofq7zfO$bx|Zg5S*Y=jZ2(;7rq4EZ{;E6eKiC`w%_LqONOS4D&3r zsfy9pW#y{6t}3PfZdF~ z{q61ccK072ozuL0E7P}ggTXZolL{EL(!=(vxjP)sZfB+=!qG|10T_c4GOZ5g3ZnCF zF>TuYArH~Mi$`Fenlc}$KFc|kf`F!`?52m_v@bK%| z<4@J*;8mHQVxT%4cb?cW0=3Qyy2nthViUFIkMAoS$FT42o zfB7?ebKjvb1i+}HQ{xea8EizIRE8Y^8!(o-eY1T-4R$eUBQ1sFy}i8;Ke)fyZ~gh7 z|M~Xr&U8Ba(ck^;<1c?qSpMl-H&C+{>UFS_>zh6;9KAU6zkC6I`se@V{SQ8T9j1SE zTJYM;03k#!Y7Uo_2w7GPte=6d*G|aA2J|(_Sbn_*eP!RnxMqg>=c&&K4KrZrRYveA zHDCa(&}i@qmRDZ`d%j?A#^zT61)vZT009Zh$P+bqozO7(FVLS&pW*W7R3Or{x-a#4 zR0=?eu|N5u&NJ1?>eV2pd9k>WzXcSa0&JYU3=#pj;WXotd(bdF+=_N&O_??k}P!LHGC=wzd1)7iu zl)kXh%WIg&WmVh?upk$ok*lBpz(7C0SP^M&-%ry3SlbkKZtvE`pd5$u@d@Ds!G~z3 zv6WV>G$yD#B4MJHwJc$YZCaYfdD(Uhgm{@*Zicj;84}~Q5@ZMw1W0_Q$fI&dQ8lFR zP(p+bxA_#u0VEKxXM6H#%>VNI?O99%x4fh*gaDv`1cZq(AZS44rBm@;gWCi?+6l-> zh&jPWL}`H2iT&)eFuJ8Ta=*O`#{()(BqOKBukN2enq(X2XeA0ExEQorVlLWR1(qn#(aLjV0VNoLK$t)nP*4~M zQEuV*`}XO;Po!p08v7Yo5*N9I;<%18_8#Vmx%r*@8BgHg5zl6RQ9Bo5d-q7P2f=J? z^%PHROUw9BMTbhQZoSpMW*Ht}WVza`*9bM#44szUIoCE#&9-3K`62Cga$8j`_Ad)q z%%?BR&S-m2~S;|IdGs5(hh3VPOP7vmcAC7!NxZ9b^r~FG`IGek>pZVyafJ-!o%F5 z7oLSTJ0IoshyOLh)g?NXh&V7HFqTQ$-5KNjSO7;p*Y zPgNA=$vl?czll_G*?Q0zKDM^^?|0HGszO=QIC;fj#q}IETy)`Gf&s6ZuVGb31lK<;EAAiQI%aycPe6Ii3Apm8 zQ?k8Rrx`!|5fUUi<~dH9k{fCulBQR z{%l#V173RKWbM9_6+=U0H4RuZ4P0P$F6lUHXELFS`bb#z-qY$YpSynh>a@; zIs{mkCNGg}E9{6QT6tHgEWyM8H#uORSjFws%?lgp^9ScY_;B;)e)r$}>Ams9C7L!j z+Mj)K{@*@+d0a#x(h5-#Y9cYkygqa>hGOF;OcKPNR#7i1e_ErjxqzC4T8TjvkQgG= zkwFQfI9E6Mb?*X)NLnuzRkPn0C_xA`q|u0nXaV$*Y4|HR^0+ok5;u$*sFvj3@z)pPx-%j)tkp(lG2M zXN&mN;moTRCEfmT8&Kwx$>GVfv&rGcU<(m^tTfHu+DY?N>mDS7*5=kA@3gg2$1l&^ zbllEVF_~$W%q?JgPFbq+tQ?<;>6W@>Z%aE3=kBGe98=0t9lv_0!`b#m3bys^z@(kM zW@dnJp%GrhyHRV^G?~B}X-0mv&tx6$yJk^QN)3lwAH4Vd^X=QtErKsO_^4Iwxh#vS zcHW1obo2RQfjpg;2L~^!vb1?tS5>I$Sl8agx+)ofU9F8ylO#(LL!iB%o{r~6#YC$- zCH8rm%&M?(DsOiMO_rs3s|BRGye)StpG5_w!x`WrAT= z_{Cu?PL(!_0F)+1ilmwQ?e3tXtff3nYoj=F<2@%LMQE1c-*488Ul(3pZyo%Nx^=$c z9JXS!UaujPHKX%o@*U)wDgI(DxY*^c3D|4R1Xq`Gyln8i#-YCgjc(S)lSOA|kU4)^ zrpgbqSd>$g+c(~>W@pciK6c83=om2gI#!Owj)Eu!WJxG$pn-vo0U#~f4EDB)@nUgu zJ_l$?aN=Wx+PUazznI(}w%)tFIc$?%5|j3sVd1OuVs0QV))t z`*?oh{j-HDwA3y>IPyoS?Wm}IIV~%%k;%7H)|MxehXrc^>b?onaxId7ZF9NyAQJ$X zjmOs5PAhMvsZA1NOq%6sma_0-K6lQ0?}87~;Qg4}?bg=z7G2GZ%d$omoO2(4{K;SZ zAAfOra6q-qCm6V6oKR8V-ugr_&t_hl74kD{B02go-o~(&~(I!J5G7 zWULU|?T!G{zB+n!Sk(mrTceexvU0+V2-X@z65%Eh+}I~bsTf%+;)rp197UxKplGG? zR-PoLdAbu(voNJ;hDgkk_EX=pnK7D>vLtP^>3|{(Mq_4_kvN(b3iRF2{PPnrGL0Te0Qg1w8V<7_gdIXm?(N&#}4X* zFtX?fphS7@^^&Pro|a|dqJUnw?TzlUIxA+!YF6$nMmOI5-jnBhvsY&ca>b$WuJl}s zlp=KiCGyo5kGKEkZ|9xi!v{~w7YCcu;;4r4Y&s6|$>H%}I;&X5-q$`N2L=fu;vxZE za9;2YNuBjf%r}%_ubnmibU6I^eDPUP1HdeX1Lu3%@G6h!eH2j5-{d5?;8wxI%K_BE ztAoG&+rPEe{J|gmi>=LVrPYh)&p-X_(?^dUz5CvKYhjF4*%=E*4nDY|swY)nb^qmu zzlZ*Z|M>aGF5k}wccd;+1WBRNNV05oYc5x5n4=LT5-3vEFJ@tJUOxEQ;^>HW-od1U zF*f845-T9jK z^czmquXE(DpU(a{CTMALq*4N$Ae^F9z_ow_jDQhTM8&`j$5SuS8BIH}2tY)POGOxx z2KCTr!2%3Kf{fTqmq0=k0YJ4p19|~MRDeVP1VX}y3MK`fobkW-zDlh}K|ls%00wlR z7)XP$U=Mq6T3Aj}QqFL<3q8BhY|2%<@(wLXqtOS0yCkqh9)Wm^EQon)8y zWovI}?F>bb$h7jT)oS;2(e01N&)FwpZh7nkPdz~+#1a`KibTQ46eGtdfg_`6#R;JX z6p>JS363zL7!vfZl$noQ`Dl}}0Ih+H6Fe&8kyqW+5)}Y4buMi~E;U6jifSk0FH7|w zr{6x4l+lrL#4`w9fqSfMnoejkkNup52Sa` z+}wrwJ$bsovQ&#GB}9S9A`6BENJ_eoh^iSmTu?ikLWGqRz3O@Z1Q5;z_eAjI@RNV{ z|9#Nv-v7b3&(F?|UOZVWjujrySO(QLs+({f!f9O{ z$NJPsfJKP<*6!x50lfMO#^<4^LhZ3Lm?XVVt97HrMhm|GgZI>8B-1nWF4T4O5d;WDw^Al`ax~SV5+b7^>ll@5G^mx5)KE8x<4R^8 zgJ?x{7#i}6Ug69x9 zM2>6{x4WNO-2rVTv#Oj|B)qxR9qzUgRFkJ}KB-;Bh4D#_+UUrXH)WkmO;TyyK+};(m_zVY zSvu#Kr70?J9)=84Ap+GyNf8M_39pE20yS8#D2j+k3u25st9-oD$%N~!cvwDLQLAKo z@7Bi79_kbT=Vvc}_@Dk?4?g=@T`rn6fryZlwpqG$JL%k?O%jRPrb(71hGaH9dU)`K zY-}bkUcR-zdvkl^`0S)`t}JHfpZ|37=qm{kP=NpgC%M{xYa{LDhxO3(HJJdVl4OJctXOa&617u6xQV$AC@b zV9C{4(KeQK<;&cGS_3K*qP%9rmS#MRYgoLCS@`PPw9j@Q851wa_mmf6}*3(llW|3wUXrjb9il4|$Aw9G)rE-H zoq@QDu{UhQ)yqwIwT4G7Q|{OKc$Wjh^&VbCT0YTv^#fd()K@l?OKT&(VeW|d+Av_< zp}oA${A8w-R!EeH*TA(8vx=)oU~M;1p{tI0QTW5->i(_P{X0G9`Q)Vj@y}m9d0Cv5 zGVw7XGKz#ilxz(0@n|uh!sy)1G*>rM%9J70S+daNYVpXd2uOTzF^F^QBaqTsG(?Cj zh^Va=jg3L*6^ah8rqxkWk$L{~oLp^MX;G9Y>?=V6 zJyoWiwz~7A)2YFne*OwE)2^JJOy(hJ^|$Ns%N|zS+c%ybx{|kAXn6^o5fNw#LoWAz znhcribEfMF$Zu4lFRb?hR2J1Qe)hB7t*yQNy>{MWHULc4pf*5yX(kFB>N*5pdtbS_ zuH9rb9*;+hVqPwax~%3!QC3yuTvb&*R3z2St$|L=%NfoX$};9g1?O8pJ{ZT4CW&&9 zkz5_BdQth{Vsu3@5Wlmz`SRebm`C9}L=O>S;1Fs=Ss<|U!k)!MVW=J3q}9q6^Rm_H z=i6^}2U}4h5O!Kw(%O~KN1ZE5!Ox9wp4p*lzjb>{^YkoEMiavKtaU;1A1n! z5Sx89pa8_TZr=K>cR%QK`X7J#w|l!AX^Q2@O%Hu=@Z#A4GP@|_`3S=-%gTrxRi@Jp z5Tgo0M(JEBRIW}W3WMhmiA{9*bar-D`UoKGjW(wLblh3ES#W{aGpV^xN~ek%k`RLN zK8xChep{<3MO7;>-NB7F5@F;D<@HLZ<^{|PSJzUWr5hU?yZU> zXHTEC+Z`YZQEFG8oSX{-3s-ejmSt5{!onPb00K0&>ktAFdGE`!Q$bAgY|!7xk`w_^ zBm^IVCn94^nkEh#YDJ)QX76JLkP?Ci!WaF*6Z4=ZO>mO{a6E z$QavdwOw6T)lBP#>_LrToB?BO_Q?{Njn>Y&1vJ}SlE}tbhUg`%-|Vtxa{eX;^y?SO zvdVDP^L!Zv!Am3b#TblPLWs?{j|5V!b8C=eY7BFzC5~rxD{0jkJf0TqJY}OH#6?l7 z$dK6%=x&nzeUwu8FO+88w@`x3Oia7u<(!pf@=;L4N!SK=X z$>?ZwH{gt=EXxX{j&U}dfIvWEmenDYM1<+`{kf8yTC=Y&;d;x-lc3-m51sA#25(Z`v22n(&die+zXY=C&*!>7M-$MY^sLw3O(m19mM)V#+AzZLF5hR>_{)gW! zfB$z?o`6F!_4MlKf1qnbNdDkHqfRGyPY;JBf zFbzc9*xdM&Kl#`HsXBlB^3_N0wirDqLJbCifS6?m` zi@J8d|NFoH_B-!f19Y%RXj^(rJV!1eItXETU{g!SEHDBn5CS1Uh80>F!2u{h3u2(*#Wa3>WK;wf zlRT|}nzb1ruDS|A2_m3EArt^j&tC!x^xBbB0|;$ytO%Y#0T74=G!|4!1Q4Bg2Au+X z0FTN88U#nc2!X%>>If-gBBB8-f?n-CNKl2yF_v%L@HYl^rUi)`2@@}9<{1zbyDB(OaI(p-)uJzp%bF0k7xhCb~O`MKmN+5)1051@Z z(uxsdh5Z~E(<(8oVXI6?C=IcF_~@kio3D1y>`aQNUExI2_s-@es;@eL||P6(6{Im7E^Qq6~#+(lFe5Q0Zs)K1y3% zy%@E222#w?RiKtG{)V0b!oU%Tmb0qMy^z2qljFjUxs-91n$pFYotORQLQ#<#B(yOt zzYfD!XT`nSJV0r`YojGEKBH;@wd1;ZTNte}y-rcc=xCm5 zs|Za3`7oiZnI-`mA*(QN%f$1jz{+Woe9xwPDUq@pDOdy&q;D*UU8;nUn5eTtUx%1z#*`$OvceeSp{av+ev$?m!+CCaE*CtTUl-mZSQsm zo1M|5eD!kFN)ysJnw5)%FBh>aU0pfvA}Q<+^qsdi@4P*n6=#p1J{?czK)l(7tsQ5EMU z8p|SrF{1NQIn9u&i*j*{Ypd&OtS4e@(jRUmSqp$Lx(A>B;};+Qa6TQc&`8Zc=!^1v zWJ}npi(!m{=n-cG;NxtxINgY0wy5*g_SQ#s=lc);%m45E%a2!H zt2YY*SC5UC5Qg<@=E7i$EA#W!>WH;SvNV3L-SSv?f-J6XAclpJdB5VK@ zly!WVtnSV=gWd8S;>OyZX4KzM&LL@$Rmk4&f)pyvCN<`$F5U>~58obsVw(d{_0Rb0KBgatHUbQkU7-HbyLI`Y8w%cL8 zh%@)%)wFa&o6?I{^S}Jh&mKIU{QmdvI$Iw;I|VImO)*MYx=v5M^WNa(aLy>wqrz~E zp+p7NI2Px*X}MtF+WX)oM2Z3sLx4y`F)|XcjsOrtK+wi2h#)R-6*;iDXsjir1W|zk z#%eLICoZ)uGP-mN9&s_P6e&Vwj3up_+?)Usp)m#(o*&Qm_jhmXy=!&v^z4AjI4z41 z$K`0!C6#UuW}~ClMlTo@L)hxjutlKNxO4~8`e+7~6C%v9+G)qMr*~WIXOr>Nr&jV* z8BH5$Qlot}T4>-9gNCS^?IDAYaW*N+nX~Dl)6TkS5+Z?U?#Zjk?EG+s)o8Fu0_Me$ z(OWxFK!h*ethH3zg>#uM{b-jS{^i?`Z=}P&zQY&rA)K5Z{NkVf;rMX>{{4Hyjg2JF zO_BhS5A1?x_6X6SSgQ@NVr>D^jp4>%;379RJ_bR=;G_5TVm4z}Bm~E!iS&1-i*hz! z#K_U9vUJQGg+Z&dlUr>P(nK0eqBGNO*}Hvf^YrkLYv$V5Rppr@Av;$KJ6AKu05McC zXsZoSNg5Cc1;Z>?bw8(WW|YF5i~{W0Hlo}(uSz1%ta7p34w`}zG?=0jgf;_f$^_#Iq+8#pT9v+UN@Ai zc~4fpFIfA}YiKUHa{IrDtFcFI7e%qtw$2+LOAj!l2iF_~60c|Km@&dhfm4+lgi$;PiYvs{E^I{l%xhY?<`;zw^OfW@M0@R7e2U z#4ORqXpD_fE(QS~qJ*kh_XB7Wg#yH&V$gn}m7t22y&E5oW@j3KyjK8WHT!NvWlh+$ z`{X9cbUK<91Vo4im0|_aqXZ=&F`@v8wA<+){mb9Gv#}F6{?Q-*0V?(M<&kp87{~Sa zA3p!_?qECBGMk4;j4r3=seFdrRcIbP}q52R@I_dOed4N zS}48T+AF16d8?|5*=%Z*O7bLlR-}~D{eHhc?2pEy@o3__pH64YQrFH0A7Y4+8`Lur zfgm@heUwH!Uat5=O@2@-6+E|E9cz-vF~$Ibv)MF8)=B{g5s65Q@$yK}jLQ`%qkRa7 zXp9lT5F&F3%p4i?#ZY0j?~&J-f!8qbSFebrLIJXFQH9r004p?@2nPWGvDCDZ2ZflY z*4GjuJRVPaS#p1CQ@lH!l{1ozl&fRHViflx=Aam{j?sXmif^XI>C+0k^q@Sz5F z;1y}h#zm>UGlJbLYng1}edTH)Od9nWQBY!t9G!})mt=sn;Knd1f>_p7tKBw=I3Ocx z#7;_gZ*LAZ`twDRC+Ye5f)?TJUZy9-J|zF*)}$y7$YYmk&?QX1nL3jh$`N z>&@niD)_(X(%JlMd-1Yu+HhWc7=PzFZVG&q~08kK&$PLyUuFM1A5=i$t z@Nva%y1>=FRy=g2j}Sra8htm*AG&dkuwbaXSCL~xW)Pufvn_&N*u^Vno5^(Y!yo{oZ%G-R{LzX06@a+#HX`P~$LOrX>aXA~$K7ah>Prv*rruyFf z`~3BT>FmJt-;pqbSRp6KnrZ1JX@pa3OfABQ0!Z2XU*F&F?(Y2d@BZme{{DZvwI91}!br$~8V`>A@htt` z{_VsjYXEMUj3*y|{ENfG!*}0(_vX!;KmPHLKl}Xio!#BxU?5j4(ozKpe33kFPC&wZ zb;G#6c@elAgnuLU^*1ywUw^v%vo+{EmzOUe&FB4ePyo**I&l$w(`~&Z2scY8%C*I+ zA!9@kVp_t>0h-6Sh+?1y{2YOsgIW+~5e5{AOK7E#LZv{F5TMq_=g@Ae#0Y`{WKami z7+H{kaA~%NK`5_$K~$KTWgbU%cpt@ags>f)Kv`gf-O+LZEtR58@9H@ z%@(73D}V81;R8CG&IbL5JT=2qA0>WbP{j%q@4bWj--BKUAw7Ta{NV5Y_x@S@5-QUU zH@ehmCpJ|&$#kAD(QIBkJ}G{A9tKnY0q8yfGelqotN~b-)Nmw0h?=1lNH3@?>{%(V z9@jTadiVX_z!Dh)Rzt2Ovut#bSQPQ_`Rwq~`Ct|{BBz4-YW};K8C*!71e_BFksS`Z z4?lf4dGg^+-CDTwbD9m>`CEgX8|_wZz*z~slf!ba*RmRfgMetFZCmWV_-r;mxD6*e zJw(sYRKnuYP6$Gc;42(yNhuX-CKo~ESKf>A8YygB(P_AZSFj zwjAJ_Kvn>;a6GLjuz*E4J^zt#xPrqzx?V&LVmFbNI+Iq z&V?93p(a$C6p=Crh;Y!=$sKHX2_Xvs{$${N1mfdh*&wPqXIyY0BZp&Tq91b;6j3`d7T76(pKB#9hgl) zcr}Y^$}-Y&u{-r$0=2$Yvvd_~jgO9xj*lL`czJVc`{wr6+34)-=~Fm6RV;)=2;Gh3 z<~utT!Y{u%IXth%i+TN{pBj_hdHMzgTXt$^LEz# zoJpSi=rt4cRq_U2b-BG>R=tjCxZ+@2IWDo0kC$$hh6KGqc4 zb>$oSjq$>uEtgL$06gIxO1 zuRPqPk@DzL3SZ4Z@!|xxjz|-DJEjtB2Iw{YlMy9)zDG~ZeF@F2pE;Jz`T&?>qOWB@O*2kVbHyb^s_n`T@M zz2R@L?`Ouk@*Mn&#}Cg=4ts0kuP2A&MOGIj`HGZp^)nxX zbLIAMxY*W9~nW+Peq_2PiAR^KWYhk?uJ!{yWq)-Q`I>FISq^%WKU z+KF;~@OZ7``gPMAe)-kM+xeoGyROx5wOXxoFnav;xc++oMx9zu9J?*EyP5k}H0-y# zosg%}>m)}#|zhzkTcO?(NapsYTOjX8Zpw#-I1n62kVqDmt!3u*L6=t z4akuh%p&T!fk3RlYY2$m&Cj9IX<$YO8l%RhP=C=_ZW_|r$w^RPZuOImew6U= z`dfN+1ai%4zuH`{tgRw|s1#OJ!A**rj3P~n06`Jut$cHH>(;HCckbT4b?fGEIBd0Z zW6brkqt$b6JR1GukA5^Bjg(SE7$YuoR3b!l`_|3P&5gx;KAp}E4-bjZIX~Ro^dU^9 zGe9^Wjq4D!u`xyht+nyqi->A)A1EyBgJ)(Rf{hYFblxFSRaQt8f`4`RDzQno+wJ#< z%fsD|E)C3W;JTHp5(YlqTTA?<&)3%6;W4v+m=HcPt z@$pIRoU7erBG;DpMsddFE(DaKM)p7=5MgHF7?>e~2SlutQd();M)3te9?G?D?k}Y0~8~8 zJrIVM9&19SF>*wfMX}H#c{^W-pV!r5KHF}0&K8R@I!JS+t#dqya8^3x(A>o?2n#6S z9V46D`E;ny7Ud+sB*MZlHS=5wjySI5z z!}Qf?@cEaWcfZve^ylZJ>C7#Hi=aG6Lq82DMc}W;6PS(87%S$ABM1{B34std=bmPr zTh^!vUb-tpt_?n~dXrZuXjrxBEI+%vX4Yz$5`-OVGojkEcoGNEi^PVRDXa()K}kf8 zaw$O9b^XaFpKNSweD^z7)aT~b=(O9`nAvQ$6rh*Z3<2iof?w3-xLAxAkDfpI`Ga4G zRsCL1X}!I*J$d>n_#M)jL`T7~vV_R0DO?e1o~zi1w+y5<+UCO>z3I~$BI+1LxPe3y z3kv8Ml&>*VF&2zobnfTR?`%B%pZ`qX*kz7#cA}p@mBSZqF_E@5xBJ;mU8W54wnqpq$e` z{rd1MZJ)qo%gs7ThX_PuGM@bS$3LD2X>d0dF{W?#bln4!ag%wm22@Y)vNgJ?Bm;jh1p#cdo z5O@K_5Cs~~Cy)rCnonoK(^gt5E$jYsTvv_-*Sm+-6}^i<@kO^Aygnv`b)@HV_OSc{ zB3HMTc;$d90$>RuU_-1Cktk6l5JwK)OAHFw0HVbDB*Z6fFqySfhc>rq3otQixXldJ z{A9W~ogKSljFo9|o{m@*r}=i9_WF=&Lge*3 zaEAW7@!21_&$jUt5JjR0lhLS@6rnyU!y+OoK&V1c{cfvc<>?s|WvG25Qk~x8+MMp* zu1#j=i_|*<0m?bX2nv7^SdbYw0DBOR(#%gTwN_aY+Z$DjSLy#%xz0s*2@A4F^Q#DO zL=l@%3uwIV~xVm*Ti^X>1xlj;CRFR(7TcA*NvMPMOAcGwT151&mF zvPPjYkamskSB6{BnlRTFme5rc;+s}!WFL53Q7I?{tGVQrR+vkh z(|Sb^UaTLN$APsYMDU&?Gshq?I6gc$vKSiGjT9-gM3yuuMOrJRNGWxAFlFY-1@8j0 zQ#vL&bcbMbQHj_zWT`-+YSu-KNTRjM^Zc!wH+F_?TTg%TxJG3Z8KsuhZcUpaiZBBr z`{1MV#bUw2)@W>syn&#Zk2mR+$b=wBgbE3pCkU})tT~RDu$KG`R0U}oV-{#$h7bcl zys+itrE~V;(TFTk*Y)W1v?}L$+84C%eCJ=7r1ek#@E>11`ejutM3_(^V1QP{ZG_|+ z^n}nPc5gmAK0A8#E3+rTmSa|fq(s@ z*Mrx%=53K{#1UNIFD^^SSA|p}4d-T6BG8OFmficmnpfD0D{X%l17TUkB`z_|D>-LH;*hJ~?y9j6Xx%Y*wUd!o>>NgH zAWpb$guaB6i$$Kn^(WGE0o-e^5D`vUKs(WEg_Y!$sPI`kk`r1U&i!h>X=bB@E zI`fq?nFa+`ThX@m9=Zl*`fTF=^1nPeoEB#lR0Ph2!=uTadprHj^ms8*naULCR0ZMl z(KK&qXrWkEinJggYLj9V7oFA$l|~2zWE7&X011*J(m)!UnUo-lN|Z#X>%b9-2o$Kq z2q;42$Sc++>P!nu^pS-j1B}S?7`%@JB1(~39Y+`d$w#Cp0E|v*!=9*H)3Ii^^@uIYDrP)rWy=ky67o$aW>ZAmjS6~%rt71e~x)2{uCzGsyqt)9} zX&-bhq%Ot}>v`DMt!T>w0>T@8OY2w3#orP@j*mwl|KgW7_I8Fy&bjGiA_B8{>AfeV z(llweTK(ZhyVJJXDy5Xs#^y%lB0_|~%n~$_(S*n-$O3_dgjI}yL?&yet!`6wBA|rZ z8e7P|oYz%dMXr$MRXs0ev-x_q?_B?oLwG^z~7FSk|+{QJ!Wt>o^Gk94HE4JVO)}S;|>8 zKAR4*>|1ZYoh$nGySMA}ql#U!d8^xRw@mj3AH1JM_tvc&WE4vzRLqEs#4zmWw{K;$ zX?Xg4?tMy1nP%48sB)mauSHh5Y7_w-q6!gW2!h-+4`GZ^vj9cJ*{rHL0+(5=Zr|M5 z&`?dv@bWmI64HgRxP>To0cxhm4O?vRT&KF&As8P z!>^}fKvC%RFvT1_<5)v!SXd>291|NAEJpSMQfHaz_VamN1J>O{r4|7!g(R?NW>3UQ zwuUVXYBnw-x**ZH+A-9=KZAkFYnF58RO#aD4wg5m&#>--$7?0WEOB|I5|T=?q}%Im zZEfDTv48jOTeoiC-q_f%Hd&4tQNC#+Bh2S#r_Y`}l?JQ19LBCXHbst(kCmdqU@%{l z2d`cs($4PgowwgsHmSS^08sj!_uda7C}l)|MHY*N^EHBSj0D*1N4@ikP+RM2=e*+> zF9g}h(K$CBpP!zdSex_*!;Rr^cXzue%jsk?pU>*Lj**+`Li0ipP?Dr+l4fbv$}^5Z zE40>HYp2uM-roLfHXDsc%zQDOZur;D{z)mNlvYY5NouWaq;|xMRDv+arF}vq#u#G^ zF?b({P$`ur8If{zEx=mo7-J0K8m?U_rH%F8NenSYSu-PAW6~^z`fRON@LJj6)rAgM zji&2vhlX*slqXh=Jp$Yq4GHNwNKOz52}DpU)oHg}S-7$?+5{9LxHa5}uA2H<1!c1g zN)aTRBtdxQ>*Jy(v?(fN)`~(D1JFXB>)2}HMwS&G7NtBxKM7Uk0-!adN<@jya@^Qz zZQb4fr%#?Nrk(_X_eJHa(ovf9Ocu3H6J>!7A(4u~S9K*Q+8_z!hW3W-a_pYJC?<0l zcH^ymt84GQQbv*0jya%fhu98Md#P2t-|HXv)^sLWU0C5^yHn0WJqIKs+SVaXT{$~H zP0PvNZ+-vkm#-E_=Q>1_&OJeHvxK3xp;yjnsEOR^0`V%r2|0V z;G;t>6Df1;Iws}>9D|P+cm2~RPrdgaee_Yc*TvVCo-|EuVqINbX~1NOo@4qby6p_kUBX(%k5@-x=x_ zu_cDtR~guP^`8kvsnG-bcHg-B|lyeDaIYX#B7L z^`C8QY&5T-wKmT(MRcvbCyK<#7l#soi?%Jn>wt_k1mZV~!)w{B|DG+-|LBJ(B%|El z|IJr>n{T~$Gf-7QsDUFaTf|s|0U{uxFbj!@ri)2_Beg^jhp0g*&>#u{smWo3knmEA zK~hWQl^qfwMGj7UL}O8uus{sJvg{`faaEQVfdQC+Xj#|{0=UXkHI$Cv86&CYt7JeH zL;>2Xy>1AgE`r=3a`fsblt;D`@J(Pg`6gHSN|L_f=lll$%BAn&O2O0>v(-1XOht|{ zN({omYXJojoTDfyut8RcS}EXU{KCN(r@N8T_CW326`MdY6(rOfI&HT%Znd!3nVt<_ zK6>!#)nVr7R?8Xq;;22B@7}-nZemGk+IcG<)<~v>I^By{o}IO!#M4s`zDWIx*%Lmz zTfIDa^phW|C!hZQ4YSp2tF58F^{(pQ07_%&;^8#ix)p*p1u}O9_Kp+@te1Z}@yyud=euCOix2JC1u($4!N_aL4$A@x!9H&!p5rwtz z4UC)jyU)_%#mj1|h9NKuj00*VIYkx%0Rv(LHHs3+QG>uh;vIl54;Dus+`rdjJDF_S z^4aKFy7oq|TVDExV&pA-?I@U)h>Cw}uCjn^P8g2({Ga*1zQx%&wK zymQYUKfe9=;oYpGvmx5fy$}Dz_N{lm`1#*{{Nw+6`s#Ubju{rA?Lzwv3pj$-U5nf2 z$A^bUuO7dAabt61Z)^MD_6J9gK9k8|yJLoX?XxmII-Jbw(70HPf?f`R&(Drdj}L?e zK}ac5T3c(AG|Q6Arm0O^dEV)63~$`IbL;+ld2hRa=e;-D&*aJz;)*ljy80|{O4lyY z&$ON&Zy0`r0(o13NHM23!Aw^u_DdV^rTC2(t-))dg_T+F!l8G)wX69TQhN6-^Y*tx z(&p6Jx88Nf2QofiS&@0k5fKqWy?xW(`BqexhP!6(4kZ~>#rmWd*JHw$h{6jAyV-0v zrEhDEZ1R5=^%9VmL^X z9*rykVg!efXx!=K{oGC$1tJj;Afp0JrkD3OJKY|5UM!AhZWd4wePAD>LW(Rt3dhjK ziQ!Q^eHP|JZf!#ARxlgdcF5#NdU;Lom41iyD*-RA<+UpkziC&9q!23~9=~|?^5~@9 z$~&D_uh$|)RqY}(03^l^2R)&*ypn%YrB+ojnywz%@X)8xy4$K_uvTU}+N?}JO ztdtjt5*Z>eu^1m&8OV~vcxScE6C?yMwrtC|YP zee3Gm0^JR??g6m478m~j$sb2@$idtg6&1v~YRU-e$%R$34O$ zGOHW6!Ke>amBPcrk23MT&+EN1Yf)6=qMYVs2#knGWG@=4g{xoR^b!9SlW6^~iXp_S zsV@qb>CFqh!Rt0ST+mj}K>TM9pP zG~ij#g4KqBswjX}9>gn{NCXkAstJN#)UyO>T5(cP0!BdQ`r!EVc&rimt$4h%q-(7; z=lzLiK(fI7$RrxZ<6Y$_uj;@U#5B9cFTVWx_kZ;Mjh*G;=?T}<-}{}9qbONjUmFdk zn|IciuP@u!jLKa@L_*+AP_9SC&8A0jG7o;Pl&V<^!;Vq+iZ=Vj0=K(>Y|v& z0i#|km|}8Tcpx?)!LP-!Cz~6Z8aSzRdP1l9vZDD9O+Cc>L%(3f`@3xs(D z1$5S>t*qZ)+1lE=dF%Skn>V+%wtD?u97TBb^1*NB1nGD*oKDAN7S`*kGoU2VbUJ+tyVipGbFlw_wMigvwvo-ZCWW+`Q8tH*o@woWv-QEKv0pHGG$@7#({-7aA>5& z%p8KB=99z2!t-&}d32yCru?z1@mvNp2D#&MEmS@SCmpPHFjS>+;q@!St# zt+md^8jA>X@FDmR5YXDFv4GaKm!{A`fX3TP$ifSq4^(O3(r!Ys^)7(^>CF1EvI(RRGP z)br&KLusw68K#BD7}GS#^J>JB1n3zeW(!KFB5KhvLS(QNnFOV+;%s`Tey^HL@;Xa0 zv=$AQW$x16+D0EggT$C#6oJO9qT)9?$;L|W#FxETx`ds`rjaoKt!|uG+U=}%$c+ZW zmNimqpt$mRH7#%TZ&eiwLu%Q&s0Q#7ghjn$MKh|`%~Y3{$I1HWpj`E|)aryZ9|p+1 zW%5&zLX4Igzu4`6n7{j@AC{xS?d?WuTTc%59zA(9mQXN1J3gHxFZWMQ2hDaA01=2# z6@zMEZ;*)))L4aPH!>r{p(rqdAzWNP>S9*p?C9Ylc4;x6BYPEA6o>l$hqrEATl)3?^C!46q~K8yR7unXkD-Q8 zXsA>@xQOe)iuvNN{#ZZ!z!>zQj(+j;Vmn^mYMC$!k$BeD1A_MjY< z)Oo%)e*E(E)&0LNJpILA{>9qrT3HsKeDdqbbn-9%@Q?ca{)L}gWH1_5weR&;wyuBt z$^HNG(YxKxzZ(AP$?@`g-QEsG2F~(F|J&CGZ?C-{4QOw7_mBU@pRBH~p1;CmI_)p@ zqbOR0J2&VOmh;pcI2Z7J1G;Td;(8Gw@dnrZH+ZEkx$3`hzWv+DpXYtOv=TZS*Z<+) zKI!~<``U6qk@>~Z{J7MNZdqYmnn{7{%i^eM6jYTja)X+jE@VIfApk<)x!!T1o+1K> z0GW&`3y4==10YzR#%W%Q1_sA~sMt)V5CxSLNYD~G0wfiNzz7}^P!nS_`Bni@1W;oE z6U9iu&NiH2QDX&a+Tpaa^%T4};-fSkTSr|hv zxN{e`Q}aJioRw0s3zQnpEF{Dv!4Mfj0b)TGb9Si1PfxCMl(sSe%LlJQHKD2i(12f% zjUh>OeJ9y@cYWz*`|0P;9^8NUa>6%Lw9{9|&o*v;H*Ie1Ozs)OZwbm+)sbF-RmbNbQ5^%ZhYrs+t~>F`}Nnq zE)QOe289n`2~&{N5Q-w0l<=MH))UZ|yM?bXQaDr*2E#}w9Z;)KBeV^zD-YZPd-&pWeE#TeGUyG)U%oo3;_LacjS`(H*O-I%h@_?g7K#Q%Weq`rf{3w3 zMGEi9nkG?0RES7~d>shD8nl`WbnghzeJW_ zt-f>M`u>8TIy2-qj%kCstkduNC%<2OwrwXAlT=xYF4olKtOEu zJ1CV_1q2oWij%X#PkQ|-N*oAQ1*xE~fa?a50}Q}2n?7?5;z8^j=4xi}nr8H@9>jwL zP*x2n3=(Dr5@~=?f}$v*qUX~jV<=Kq(PM81lWJ=@Q6ezJErZ}icP^$?qdFp2r z+qnRG7Vvgys3*YFTFwfruj(AXsZz&9lF@}`>C(o!8KQaS8M#PAP|zqN0~#QU#-Xj4 zh>RhdI1?E&<7Tijk^)honvX?912YS&NE4fCoi)~2GFjScx7(exWeqLU@uV&$wM!Br zGJq%?7zGItP(+#$U{#c$N`{QJO{jOHNK#ZX1_=c~g+UZRIk0sWR9O^-35+U`plSXX zPz7dR^=KkSCACTBBr`rCv81>V#jO{jSJ^*!@#~-dB#PqgJMXw`2`TRMH@^3W|N7cn z@BixW{`$*b|NQuDJoT$A@f#&T1aay%2gCj2gZ;<5yKi5=xv|_|zj^0u^NtIH)wT9C z=##_Iv;sogC_oel5u5>MW?n=F5%mB*a1kbhe2l8V0-j}3ppBRQ;xGT?_x|M1v*qne z^yPmbdurhqburIpF55i^J|Swu8#>>J;=(`y32m!GDq%W0kCl0SiF)zbE?VVg@W(~n z{`|BQI1fWVCj+Vi!90&Liptt2Yhq{Cbn~f!$m|eQD~q2wM2LMazE+xjN+zp8>Vld)l1swGfC00*NIPPS z8brXFxDkp*XhGBAX3v@gQ6U~SWDisa3C^?)vKb>gH;k zSglJgCVqGp@?1h)=DwL4FD2S2%*W$V zRs~VxUVlt{;XXLIG< zySGkG20y!h`26WOucoJk4;93qiAkM}#0Lsum?oh*#p-4&BK2{^9%}?v6vKHjnH(J) zLLdct`StTCNjEmPs?pSOB?^Q_8owkp=|AT1IH*j~hPsx-#0WAcejh~5|mB%LMkq8cPr6+qC9*uU2g{g$G0d4XqR@0*Askqj#bG97VTj&sz2M!{G^ z&z|r8>Nj6*to=xX9PAw!8%^?qEE6B#3NjMDNdXNPF(a2}6z_ld(fa!O?c2AnU%$S-zSik_VzXriAa(pWnLI-q={8PM4COXjiChz zuL7A1PT2X|h%N;usE8_y%8eU0-hKDo7cXA^R@oz>$IJV2SttMqpmphs$`3gN1SKHFQN?O8Mu|{R)e(jYEMqLx5*t}#LE5Od zy6vZvdN9pTr+Els+RjGF{_)w)bey%^%ab8{j!?1$u5Wc(nLEjg!%4o;X}2R?N#pIV zy}rHCYWMEHIBqZZ+L2M!V&a!pT2X`mJSoa@Sgb59anK}+(oR(66|!p>I4WYi;Aqh6 zbfc|zD#ehWEVa5tr+gXE=b<*Ch^bJh3qJVlL6Q9DwfDcZdH2S&8$Hsnd;k99M^DC~ zw5ktIhKCFTU#raeV?k6E6`k>ZR4||+B4ezzAR%xNRc!LtQ2`Au$}|?MSA^HW-WMq^ zmowe)0eM%~6#57t#Ng zA3eN&^CRzx46SdhlX>&tBZ{J>rKKPL_{T{2{qKE0juR1pP0>!)_?y$e_gvyWZUX<6g47h93Y^mas^z1vJwiHt4rxW|ATv9 z+<*Sb!y_tkGzl@I1mp@spgkzIhw#z1D|f4y(594h zjPLbtfAIa@%GTbOKLIVCoFZNOC|=+HXFd0Lvi5`Te>ZX#K&R7uI2zr#eP?xT{Sw~` z(K)wwe7e*#H*UT2Km776k975;PPXYrTr8RPPA?l*_0PZjn`kfnt3Uknjg5`P zqcs{0(=-XeA08e6V6WGWqWA(;I=d$4{6z%w21DKXxN(u~dC7XK|0o!64h@DY-WPoX zh2yu;ULt@J!BPiLPO5+NAN>FB&sv*H4bT~YNYSY>DuE!P3gC+)JMnaTyNpZ)P3j_8 z5Ti(-0Ky0g1S*8hqhIv`5!>9^nz59zU=W=s2jv=>LA}GMszJ1|4HGKQ13Ls+R8cL0 zA~FLr1m9?$!Nh1IKnLIeNgHPJ?872ZqY#5;3JC%MA^{yAPxf}7#%^lN<$$3Dd9uzm zPxC(We37v584Jyc9Ew-&^jC$?3YXLi7iYtK(toL`UMta{Nm|AjKoEpjBn<+kNKI+2 zR87t3;n8}nX(tx4As=(7JR(?wphne6X~t6+o>Y5#bmyb&?eE`KqDP-U+Ar*lWIWv+ zkN20C*U2{GBdx1)cziTGc`+J(>7!TGs>=gs%dRfq(S!R_o*s()=1h8&emuy&yI*gd z-lvntQ0JBdB5<4xvz3iM_$z8H{m1|7|II#o@y~DeZuP0$O!rRfHiMmIE{iwxl;E+Y z8#|qQYn|9&SkBD*AIA57pE#`^{kr<U+W@sI;g=9elBnM@cc_1NJg;Zdx^3Ohhe)cE-di{f2eB*g_|L4n( zzxrWrzj|@_RbIdU!Dg?8py~*P5Dj7E)EO0)sz&cYg0MPc=R-(AOCpM-0Hg?nfN_L~ z?7jK_#{l|o+8_Oi30srL;03xVI>SYQ$WcG8N1;1B{eJz6c2)dz?fnd8m#`&6~S`0zmDeB9?yQGz1OYAg;;SX(?5b zGNBPgu1P)CB>*c}FbWcYJqDv(16Rl%&?o|GbkX;LpzwV992(P1Gl>QfU`1wSK@nhS zKpYpkOH`3sRR`XkPI80<$bgHcz`DM+{myM0COACCJlAQ(6Yujncvb}0j@;_mg>e6GSrPtVy#hi6cwOQmb&(s*grNO&l9TNUF+&L;`S;WbW%)Bp7Rmj5Q7k zjWILqGO4u|kyM2dHBuDdSgdmjO_sNyh=PhJk(ot=00a&QrWOi};~*9&bDo?x|=x_e>FFt+H;u;Bc4l2AP z_cgX1`PJd!@!r9~lfAu-)un6e8wYQF7@Iwz{Kave*V@DzpWE6NwhD7gH4@CS2oM2C z(He*x8i!v$-TUd^{QTa#?_KY$zM0r^8E$dqOu+?pn!=oPHOK5UBVSm^vY-DwAq7w~ zZ+zxehhFIyXDE-$qTB^X=i(Ep0UJ_;HWCgH{ERv_2mDAA%LWsKHrth^w9*4K-3JRjuirET)!qUZv6t+>$Zs{rFXq=9fzHr|->_2O0a zn;2>Mrkuiy0Td!gRZ)ym1@s6$u=mwq0>;=Z!Pvz~QXC8+h;^8@O$cBlBr)2RPG+R6 zCo4;xJN?#C!N=o**1G^Q?sDx!0V*JsSTV9_BWiMGX77_4BTJY$R1km+D66W72qFPv z6Az}K)*4X=!GjVK86(mlZ(6aGBJ4qktWgD*IPX|cn_f%hT*E%||B9;2lKcb^%BskV zX$oyZnOb5@4+nYiC?1!FVF$r~AjJ^$^R+hB2d1E%%cC(h6*ClrInD=!C|j zh<#?M*Gh(kPhGati>k?_)lE)~bI4u7&0cqaP(MhMilBhA zpkq}Cb%2_!rNCO%K6WN`&KMTv(P;eQrIUf4SH1c6;qkH_oys zNnPYDkpc*d__{2LqACH=#zY1gsRqoedOVs8_Ydl-N?QG-+lR!Z#t0LOXNKA{s}HpV zRwOh;szPMqIE$lhY)!x2Y4>_ANm2d9gR=-~b=R-guYaM7kk0=5WwQtlr|I;#a z{(&|N7gAvsVh3M0Q7$S@@J)G8=UV9tV(;Q@0xwk<2yZ5A;G6#Uss;*7RM#I7M@mG(h(`lS$H}2dNbX8f4D4}VPvq_S;$b>3@ zah~1bnF2u)J3)2?)FekEA~p)8fJjIlNQodas6iYGng%a3dx{1^Arq18M8&n#7j->3 zu87Ru?%DC)fPxYe5~8X_Z5yZ~9QY7sAFg4hpZx5T)#dJc_in%U!N)~WK70PMEPR?+ zA`Kk&Uhcho_5ww$qayHBZLV>I?8t)>i(!h8z!@-5ssN+OgW&*it5aA0cwBbSijB*> zjsVyCuF6NJY@xS0()i~3+xBobpB{433Ym>iSC`^WDlZO4qY83sTd&C)5#Ml{&iD*^ zRkMtU|EK@+|FP9-r)grXnOkz?a#Zof*5XY;6%9d2MK~`CAHuxuoK3JV4LT89tt^RS zKnNjJWqEjbV8{q8T8U})U?B7lfY z#^dp5WF5tE9LKS>)?_It7)17=nFybroK|HWMQ(L%bu=Ci$D=$i8<;o|T5IDdisRV1 zNENE841q;vY>g&%xS>7+09}rP6a`e^fb)TTb0(9uhKND{6>ZX%7dGX1Uin2)+-bL0 z*VZ@I*O!+1Ns@?gQRE_WvHrpyAq-NX-%gAX3dT^1fznTWARai?y~yCaeMfH+wXqst)G4V@afAjTiEig z!&38Fch>tK-CKX~=+uDA$CX4OX}9Z2+BRA1WP?HBD;gE`o$XYF)ti1V^J>e&JMaNn z0~TtFA~(CQ);2zrZ+&m@;P17SnRaWck~2^1FwS}Gr3ey2{_L;+%leb&*zMJ!J{jc) z$H!-bld@)u=E(EO{*e$SN$LO#39JxQgQy4?V^o1fMU_>IF+}9h&e&wCtO!cyB8<5N zU$0aPS2j<2c`tQ|3bv@XoHOQzr~bXSuHC(zPK!NOo=&D!Rkm7SDX3Je6=L||M{>L` z1oprCGk*2*)6ai>zY4ei({Q|V9&m&%TZB` z@^V^@rqk2W>DH!QTb>@DvG-9NNT15eY<9O7OXm zRiY|C+k3^6Y5mUa_2-Wt%J7+O-yjLVm2x4WP*gB!U7qyg$A9^U{)azwM3sslkgtId zEpi-VZL&ORr_qq21OP@SyZ-144Rw{>dH3BP)q6kFz1k{oM!0r+0s+7b2MiUxW}~)N!p0qV`nYzVq(wJ9n>0Q2M?8XPK;FOF*y0^dcVe*#2Xe2$;}mhVb5O}K%aLD zG=E0FPRm4HwANi5)CCjXqR;^^CJu{>s$MK;5DbeFi!0Ry>J{3nup@4zvhCrMN8RJ2 zZk7fc6^i4me^~nyDO}eXkk~`N3hUsrP{8RcE~Z+2H{N=GYj8FlKR@w^otCf{VFhY_ zl8{dio_*qrXYDRax(;biSSRJdvoBwu#ict*oETxLtMN}h`H#E5YW>wUcOwmC6v(Iw zE2nGMJL~rzJb3cgKmBU89)EwQzn(^E2pz{H=OmOptuTzhN%|L}+ZdzYU*`w#z1Qk<+L6a;gnX}~gz z53}4>^*u*zR%BJ08C+X{fTZ)q01+CY*avz3`0#K4x_@hj)^_3#{{?iqaQ~NY%h|79 zo;+`-@4mZc(W8PPtEv!y452X)lM8pL*7n7=wV+j6~oZqHzgmE}g;P{o>c@VDRg$4<0S;45PLHqOyh1h3PxE|2zET z&iHX=Jf^WK%e27AVmks68T)F#3L{3H*%?9?Agz&E{TbtA|D(jp9`TZ~zI=ER%$R1%g1B4WQ3EZUdkS zJ_Ht>usa&o;uVR|MQ%CS>@Qm`;ByR#lCF#t;xGgAYMf&Wn)Qb4i*Rku-7K%{Gyc z5J5!&z(p35L<5Jq3ZY7zZN(I|(!suq;%1DE%o02q({vS#h(6Rl)J;r^A!DsYLPKV* z@lmTm?^!ZPI^6J&A5wp<3 zHfZKep*V3HfLAI{@-hr&o7({i7%!pw)$Z@@l~xR zRiZE)F-yFC+n?;AFKPCIig9AvJq3lS&^ zA{j&0IRFSMsHQn0GqIKc#YPPqs}h(H$Qm`Inc6x^IE7%?3(u4WG$X4>QO>Jyg&Z5v?S#r3ox|+r?9msTmEF&?e!bxTg;^~ynN;U+}f>n+zHRx{> z11RP-RxHEmG&NJ3*yWYZ#+q^Q!MHjb_+F6pMdZTkQ$f9=DZJQ0q0Zgdcz!#WpH}MQwcWF54cVyaX@l3gnhwr}A-wRlfU31FisLlP(pIb2TWYmityVkB z+DRPE1}ur2Ov@yzTQ;&TwP{D95vOS_T2_S~m$O?EA_6uzrYMTCII%8{oHNcgI|~s7 z!YGPOlA?`~VoOE#D+4xDj5} zpe@{9UfWOOC62GY#!9%@doSFkFJ-k}r7pbzEPWYNt#9r0Te0=#TDrdS^5g|npc=ds zK+&r~{j*>0x+r^oT0TGi%xYJ;L^s+*-(|Ly2jy5PF1)2WQOuMqNe&PLCMh!^DS;@V ztuQ&rIYrsNecRgXKyT(T002m+I6eFN#jEE>$Kb0JxF{KdiBt(ijA2kq(r(8t zZbxOMS}`&xSj2<9v;WV(`Ma~1XSc6!Qx`6tJqsN$JsM=%JU`TkDAeJs#niOJmdN z_Pee6q#n7E;Zf}|iH4(+tB?~}#8hY&0$;I?L(#qwRaQG5NM+-SNTM2npgC#Y$P# z5K3c8)xl_bbpHWm89A&<9*uJ^p%L5EiiWIp2CWG-my9KVmnNqL8}o+(tAdJ(GJ+Z+ zV+_o6_p@jbyl^$*<+Amvs}f&lEL<8;FGdK=emyeA(zq;-hQomfTI-9vD2k9KUbR-O z0DO}2AN?NHrDoCL+qckH*;&4_wYiN5D&m8;))JX3=NlPw`}XZGzW8i39tn$7Tu-WE zT$Gcts=26Y&%WDO@bO>_&LtpzPTt6>@}z?g{^AexcYfduRod(*1(w>B zBvb<=T|6x#wVmVX*-CtR^7Y?Zp5obk%9g(Soj;BHo&CqBMO9Oj&c#g_C9zAQv*8&t z8)Gg{-l?5sr;|bu-+$-5lj`ftnlqjj97@$m$X$Ng9gJoBW0%Z)|MgLX z3tgmQWTDq{Up)>)(?9?HbaROooU97S2t-Qjz1qa^@P+;Rqv+NKURz~{tfXii5JF?g zow>?p|E&NsjE6L=*m(}Zxr)hH1Og7Xw&~}e@&1`x>lP9Cd1MfQ0U!VnR0Tm01R-et z8v((nT40)0X9lntf*U~$2sHtcL;@M0Lo`*+&!0avdell9q1aW}~3LeK^XXw@s$!32m(>6PY&#<$h1DrIC6GcI-S zSF4C<(o>C2y6g4!yGP@r-IKrXtd`bdC~1G{4o>xLaVy|qGVu3*F7N*!z46w{XGi1H zP_Juj4FNVE0U;*s_U(7R<*S=$$wuusSq8)xk3av#(ftCFGb%0Uyd|Dl9s8U;JYQEFOI(stl zyHjZmLTBLDa$QC17Rnd}wMdBSRiK#EU;mg#t0 z5E&4V5SSn^_@KUqx`f%Ir&-!klUFs53h*FaIe>U%4_+P!We?u zcD$adGeEdlODlnvUQVW_5Y%R%cP?{9EP@p?)qm7Wzg%vMboTdOxN z3eS^BFV7>-fg6{2zN&y2e5nEgVB^R|5fH{imP`YN7Lf*EGFM$FhnW|!c|kH{$QWad zwbmMIZDgY;j?yHK<0y%fPN&mtb<;R)C6z~0)NvehqpJ3v8}f#T1VBWo>*h7hEOW)0 zhC1A6t^v^4S>O|kI72l{^SgEF5Z^;Fat)9^-AOs#ZUn}R7L zj}lZNuzCg-WdRlq?DqzbAG|pF;Oi$p{K2>1dGEd6+9pM9qczCkExA$!C@cZvAZLe>A`s((O@2eK)J^kWy`?4SU((uwo zQMcb)S>N8+xxKl4v%9?EqAct6XQHleqJu6ZV_k_RTO0=mY(nI(Oh;##BFYUw-`wAVJy_*u}JE+Z`Sc zXueJX6KQWrM+1=npoBs*RriIC2jR7}XGO3M5YT%x4iOs75yC7==UgzQ2q1FaYtw=( zX#QYcxGFD-1f7qZ7d|Sybix3_XzpuwWI`PZNZilu!q#QL(<37>b)r5j!YNvWT`c1nOcpoaIRVd2&iXZ zHKOPPu~R8bZ+AY@5VEgH*#1c;&bjG}0;HpG!bYmtaOBPrTO?@lNRsKyvUKnKPF zmm10dWKC*Z$EBLI>P%}2wbXTJX3$MX-ss!s%y2+ZQ7OtvbGJdF#v0ck7J!;uC<&#I zm_$0lB|D)$*d;eCMt-lJ_E)-DyOXq&Znr1359PEdvm{$4*-|@(Ndae5UkheN4G6PT0)|XP=tzU07bu0*kR=+8}d;lHO8l zEvvzf7uJq%&c9oPGU&o-aQ^oi#yg=RHZr;MoO1-EW{g2d01T;3b zQIY^uWmS}A6~u?Ks{LRv*x%bX#sHBjh_WGa&c#ujM9KQb#;rTIuU*^e_PXPu9#+An zZEFmI&eqX@AWBW#8wajSVAk35i$b3KwLC_eo5vY++2WD30Djy6_M#Hno zXjqmdgCJs(#95k^A_D;^f)B!VV@%YB1;8v-6*jgyt7~hMS3_n76<<|N-=_k`5U5)G zuj#OUTMaZ`az$S9JmEqwcyU8o90uX#RuM1#MT7-w3+ly=dU30*cnS80-`pSKo3e&3 zee1Q&Z?9~usaYR~!#sa70vY>|b17DQ501*gNh*1hVs>a^Fh*w@v(he8G%SAJR+-A+aT zqNIQ`oSebPMsXAYNacM9*s#EnL=;)c1XKi}IO{Hx2JcTzlC`_56<77-M19q$;mM%O zlKofttH&>KQmw=oV~8;VAPWJQMWvK5t*h~5lD1MbiB&KnE!WvdS2jESeinD8Y4P>2 zOmQMb8N$o6(?K!aJ2(ev$j9|4$)88jS-cTFKP$=!ti-FaM2Dw)1NC)89_{OX z`-QsV65#Dp!qI$i*$^Wx-;XYQcykz1Q?N*rZh+04e-X$G0IF5xtFoS13UOwAJ}+xj z6+q%RO5&(_MPaV%DxXe~=zL&3)Bj!qi{gCSH3xLenRqimI$XkhHS%WwEKLCnwU)P9etaXts%IfIkWHg>ML!2mz+MTvF#(Q6TKO>m3 zvZ%0}lQ;B|T|pIRh1q;_*t~mL$hyD=7dzLqHj##8j0wR9W@X8e^sTqv+SuGm(*yxS z2*Nx!qs>rN3m_7_uu{D7me=$u3wAKP8fSVX#Avqh6rDw;&MlS~zbzmD!U`;m2EmX4 z2&^xL#etznv}I`pB{GH)5Y&-D#KMQNtOvesz9B0SVr0kx#LQWMZbDs>j+$#(veya& zBLYw{vzI5YPH*2>@3!Opkw>6@yZ!XpUg^mpZ};NN(c|aCQCY6GTv_O_3Ma!;ChFW+ zUS94U!KC(leSPEkz`r^?d~rNH8;sU&-R85>c)zrHEf0_n28lr4=14H+Y>QiqUN)ub%PWmWj#xeh*noQ=~*&$ud$s7$B!>ql{2SFLvIdq4PKxxf71 z|KI-TCO$1rH9zMH~R=;H<#%syueH0b{M#3wP0VVN zvctc5OT;iZJ>j#zS#4=QVQO{@p!FZAoAeDvu-{4&-R!sGi26PA)#JdS_|xCZ zcGeUd?k56}G*ejuUTuN9Wj=pwe|{fcEYrttnQq6c4L}BgU^XpAKvFc#4WFE<1q`An zAcD=RYgS()7;4@^E7P3~dhlHC?j+7l=MNSEnup5k40oUesDKi*F2Thp1RhZsECcu% zElL=TM-T&E(5m)9Q$X6?J=lABznc_<3xz%a0A2WJ=R@N2&VT+}2p58A(n}jgya*?{ zf^pMJhL?r0BsPo^T;N_dyXvuKdB_UrW3mO&b#*&HZ35H0-0;Px-O-CIq8#kY+SIG} zmT!G$r#j_lr=@l6K;v|X-fdM2+Pn~%QNUEWGZ&kkwKD`9p6LkNL= z>0P?gS-vI>w^u8wgm<4EKYNjOmcIS& zt<|F!-3Wj*6;2@(s0_e{KJoHMB^#EzUfbPjJ8se*TGn@qoBO=Md1Syt|sF zH@4sVvp?(f`@X2ks68Qjl9}h71eemN7xj8>$rujG?ER!FEA)HQ(_ieKysWm-_8R%> zToR`WfW!vl3<*m)eZ=Eq-ha#9c?;kBPAB~Q=I-&+&z^Ob-(Be>>I0~fasZZE09jcG znwCdIgl30{LkLmqnx1lI%0)mGW9c6Tz5dsH#TpJw@7Kwl&EjaOo=DI@K?C|>@YA3H zm4O6os8^16JH^@c!OO#)o6$1eF^5~>Bq?)rsHp>17!{BZB@wXlsFY!-b}Jc6qvj`r zleBez>%AwdH`n$K^2weOK^%c0GyobBFm^OV3Bks-b%8~F4QAdR1XZID7`#Vc0g-|t zFlYd@(8SfMs5ZoBkJ^l$19%TUXb2b>STrcgT>jkT69NGME0VNM8A@l$v2BqfV>_P=Tj4pX9a{Xzox8w)utBLcLfXo)_hdGe`h@ zWBZ5zpzLc^Bp10jLc%Of`~AKl@^#J3-h1zZ_r9*{x~@a*RmB<;#jfFqIp<;*$59l= zQI@8yRx61U>x?mE2wfB>apH^xg~;Kw5C$7ZhR8^huBjw~fzc>5zD8pk=CrZKQWMsR zvs)!0o#zcALPG;{&I$sFQB`9Mk!cp>)>plFNzk87v zLW@iWP@*_;Tjh9gw14pU#mjrwcXn2mo^RYaTe?=~Ls;A(z0OW)gdZYArqk=LZf$Sh zd~0*(_VUKHPJh+KEwoO-0;u}(^(XQ9Q(-nezU-BGT`VWfS`@FSS!RU<&Ska@5lvl! z%hyz2HH%}NO`jJNWZ;sXcb-MiY^DHYQKAbf(CO*Qc8w8q*0t4xvpoO-H4A?T)upm= zQ=-fxK?tBEHa6RLC30dcE+9lofSxBcXZ$&|7%GUpm&Ji>}wj(IZ~gK3~}G=Ype4Crlbd09<6jk_Rlt z1u3>#Ehy`rLe~Jb3<4J8$_QG}C=u!g&J!SUwQ_xsY5R^4QRyJhzN;n2+bue%zQ5WKKEDS3_L9m5KvIh$G8fLXaK>0 z5_lmo7;GX=&&nJM*M%~zUi#f+>N?!MUTZJX+F*$6>S`~g3b-c1<e0vT)twq6lJcf6*D;?Oc{{j$~-28W#xkbJ&i8K=54Ffs9wQ#+ty*Kn7Ss z22s^n7e%%iFcHomS%|)^}V<5-ne)eCpzMf~6*b3+@y#brk0H-I=6#f%F)r#Z$T z?fwpGIvG#)pFHZuC2%o09h%akk|#5bkwlY#E#Pmb)%Soq(}5F-8LiORz;0@B`#J|q z`W>(~j$2Zd8tVCv5k@>%hWnhJ1N8CXM0DxFW-Cn zCe>9@_ynnuj~W9mjsU2veC1hYOw^f1AV9<01Ka7YU%NLweKi@MK&#cgc@Lvxvj2Ga z{1F5Xis~gc+1Bm1Og=U*UiD*zScjFKj_OuIOG#=0L?o}{Ni9j1VU(SX!fLy>zI1mr zTDC!BYj>8eLs>ESgRfo;>gvhK!G0Kfqdfux)J&3Clx<>@w$mb39gA^M263WQi4s`q zn$?r>WDqF!XqbepWD>imP&%E+gM2(Z36(>v*px-moy4goeVi6J9F#U6^s^=HMMLjE zBf|7eQkQeNzrq!D8eToE5s_JD0Oh95RYgDnsETqhI2#OxqtT?QD(~wHZLgx}qMsL3 zHPrs$gU9SILhBGOVbq8)OH*qt0;;Hpa0s>ch}ih!paC#lRZm~a=Ej9G3h6S*Otlfn z8)FdB7(<9Iax=bIgD`F?9z+o-%Mw7XHA$R+Xjv4h>LM2ckH!-pf-0t2wzRaYAR+kL z`?{`$<@|GN#>+Z49X5|WW6eCHdp1^X2Gp~Z#GoJyh}4`i^PhDA+KJ9NYfW9%KKQz- zilPj`m&GEfM_?{Kf%9aH3tz=W^u*OW!hF7e)tohVKAj7Inn5`c&0XkoCFOat;yKX_ zl@S#{0$VVK2niKsHkm;Q-dAJJ;wUoKpi&49$pEQ>)V>wlc9ISAVq6DnttE5XiYW4V1W@G@l(8jtEY%8dGIIK95LTyJlnvE4L2@F|)E zNptoG2gl#t*sQ>gM`vqMbaQ9>`SXL}@$U1z1PF{FDZStyEiHYIaFQ(fCyMsV+>e3uIrk$!2no7AYvd!Uzcm&;)~^_*7931}qr$2r4sP=0<-y_J%JQl+{P3&4Io^Mi z^{>@zOxoFb>pdH_M7f!c${QHZxKJIO=j_ZZBp3PY_>a*x{t+oN{MIRiuZyTv(+Ht$ zzkU`%nEvG-Bs;4L8fE~)Ks>+ik{F-?{y;yG@4lUM+wpI{;=SYQyC1~2Zi6$bA^<$Y zUaNo_Z7kLTz_T){$)5pjQfLSi6$DV!SXBMid-mV{t?Zw++UvEEFuR(l*$B-#6Cg&N zsbo|H0|Qoo3Z@|x8iZ)(T2>~sijmP$bqttPg?@Se^Xb|B?Jdzp;d$N#DqYDT)R`6< zXNgO5*7pLF?P@fn&JDwtFm8BB>IiejM{_cqyDAq;&=d1Jly0C|Mrxx;fvl*i2%?#s zo#5UVYg7uk6E>s%&c@9TT-=M|){Pr~da&0SpWR0{Nm`VwQ-xu$CoNKg0>eWdo+Zm0 z-O;P0h^mqUh(U`0!B-MknoLEJ5Eu<1VXNC+YONieK8!L*5;O=^Ra!D)`PkU~U{@U= zvw$GrdUY`PM6`na4-B`ht%Lt|@$D^YMKmFPD zub#e3lN}E2BnA)(461k5T1(*TM_+z5$n(kM?CF=j4eoBQ(~06V67NCKIx8B0OtzYV zg5B)%cIV)idxxK%U7N^t!~~E50%##z8b`6o5*L&WA(R7t`m3rK#^3&4`W@WDpN*a$ zKl);~^MhNlZ8DfF2@`TNQf@91Vo`3)FhT^*S!!|tWVWr4M!%*1biUyE*PjeOzu(?@ z=r-=#o8Q+VmQ{V4ORZdrH1ioGLk3k9wJrH_`SRW2iA~}-Rj6vnYiK))tkhnM3ax|4 zV5NHO^Ot3H#Mn@F06DUcH*SBqac>%R`mN5{?jz4?T5WXB7}C00c1d#Z%2kEfh+_1@ z5_lFbNDPJ`Ab7%>&{WzKBO1U4FcFHGjnRZb1;j(}z%}?9yhrcVGX%k)$fDsqh^)Ei zkRp_|jJ(!hL|~AI(J)^^i*=1YXjRFyl2KWX%QCM+EryJ3r^(K>hhzOW_lFN@ zSsOK}gVx!m(uSG8RgI-4DD<4a2ZY91U@=76ROQw-@;YM-D3CFTz9EW;N)$&v5DMgI`x_j@|z4z93?sk?pqohM70x;SO}+4*4w&q#~;7cq$T-?$UxI=+L-Qsthe4} zmw{&zqI=&}4RCUVHm1!xy1dPw{4ItWqBh+7wto0WVg0r&-JmajCSU)AiUFQqDiR7C`nU8v88^5sX=9$jw`EyP`VvTx^!UJ zPfLoRjNM)wSA~zoD%xtq=#hZP2d;$z$6iw~2GF64t;^EH5U2uL<)FxG%%nmvD86ubwiih+8Xn`-AFa8X^<7ELjRk1gSxT7!*7U z3n-`~%p!^m8Uq#~BB}xvUM9JW@`8rtm9`MC=7C+gkadCadnFQcUS7x|KYpf?V3xcH zwXe%ElGA}P)O?p_5@M|}&NNegYg`pPgIHs%F~-^1yE3Q}Ks^Cj8yRPVul8TPK$hi| z)mEAnMOBtX2vzO9uY>0q0}4Sw1r@C`&e+%`Nt`5UoMi2+)oZmo-R^RnwQQUjYsfWD z8XHAXnxvpg;;4@E@nG-p@c8IRS@N=c_Tku?Y%EOOC5p=ph|Py+kZ^J^IJ@xuLz$PT@0ufo2J)OOD}7Q7VpLv&-)7r=Y=(L zb}P9sNnIWoUGRV2Fnv~76vNySGO#nc`@aJ+ct*02B;|k1Bl9@u7nw_OX3b-YdEbw9S%yR z?rPRvUYd@4@OozbL3wcWt1r4FHCbFy4zcQIW6`^)v2!-Dgt#tAf^gb zs^vJ<*osy)YelJzdxF+TWmObirQ|89EHPlp2wq#(>@2THH~RGG^l%am15Bp1Nvu(b z6-->)45c)Q!**6?ah2JEEwpP(n09xzJ-%kBSd1^dIE(etzGDvFQq||rUo>*yCR70t zLhWC@+Wq?L2Tz_pKR!Ahjz+%r%nTqi>E*%zb1sTSP$E?FVHtu+Hs5=9|8K{WtPY%==k*bWH`t@I<=#d<6P6L23v9LQq7D&gDKx2q+w(K|ofiH3ZcF7^JC_d&Wl2ZT zcR&7qnxykxp&T3>|A+tee>`~g%TDk5t(!MrzIgfM>C+$m=tpFzu7>MNB^dtBN8gI# z=(DdLogVJ3?cBu+IHAJj$mQ1(r%>k(Zq+woCiSvp`nR%;{Wk>?HVqcV4*DJU#lz{* zarrO48-4V)ZFK-OfG9vfKm`K~sVU#Pp{vX3=Z})V{^fM_DS!M#ONwd1g^Y%f7PMZYWw>5*IGzmpCb`yb^-$SMwfo@J{=?JihBZID zv2>$jja3a8TU^t!+W%F#_j%;Q+0igx#+7c8wrn-^k##j!J`Yi1sSGS=U3_*{moKaK zKpbl>QW+Zq2+%}e3UDML>GWKXfgfYMJsxlNdYmN2<#my-EU&EX9vAyhm*3ucw_ky7IU=zEZPkxMLia*5tZ?D z%m=6WwJ4?W7<`bj_LI7r)V>TH6p>6jORn!csm%ZM$;l_h`Y75!grQ_pYb0nrC?k`a zmeX^StSF!5a8?+v-;fdr3!R=)$$B{Tbxn*o4!Ee8zEt@yjFT34zOzJ@H$@OG_MtkT zQmw9UwA!ssr`>M1vm}k8NCfJt_LZ-y%7>sL){wJ_wKhqTBuU6n@S(0NQHkTE*X?(^ z-N?DXq4u>XI~&JwOk`$a5o;o&wfECf4B2MpMyk!!SU^!Fi6D4oV;h#&j42IBNDZl< zK*$&*Bn4qKWC4M!F~*8`gA@RWkca@OnRqmq5N5Ux$&e9oanztukO;#}Ho}2gt@w{W zSp8rpiVc~@rZP8$&Vwp}gXHD@i?4>yo=?C1{j=+L@4EInm~45a^H+cQ-egq%AOC3c z#yeSm)!G)2nMoH_5JJc&NBgh7e)#y+;px>z@QvoBOG$(msR|3un0YR)g3e}b&D2dV zWJZc;EF_&OTgLdv*jRi)mt%8ZSInJf`6&R;NsEBOWK63Moi*LM=aWwG0bC-hH%va% zgBO$!i5tZWh>dW0NBY;;S_QzMih<)U02q0N3Z}KB8`pJsg2yi*ie>$#E?-vw2qFNu zaohVslQxo-R#)SUh!CCJ{a*dOzY0q`iiDf@w6kVhVt)1SEtePmRscY>t)7$xaNXEK z5zr_IGqYC?zzV2Ml;&$b<=K>nW{Mufd9Z^3=zRKoZdhGN^|;JOywGP|vN|s^`V3-$tl5USdFZ3W0GG2+Qu@AtJ6-9(jh1f@6QWF_VS>%@5 z-~$jEi&R%N=Xo_Ls;X)y@mjBMB0KWcNZp=Pr*+M$HjQf{v1pC4v1R7Gt|WqBl|wKX z1QZNdB4KJi@W8<^d*(*@FAdmLW|SdSMWmVV3uz{um}&78i4Y7iptnht!l=mWflmvc z391Kg)zHD%KRhWn>a*5HlA$QVh zWtvcAts}9h36Us?0&9~cqDVj}0H}oMz!|D6cs}2jybc0h+-96d&*DPz99(%cfTEoD z{_}Mv&Wq%k7EZ(hc;=b|2oNH(NRu7agsKpwY3Az+k*srZ9Hm*7#EEmpx`a>&nVL*n zi#DSuit=Jy?-xqI!E*=-(s1Wl0MG^&&y`A0R-Gy{v#`$e|74AIE>7YsPSZ3=(l|-7 zB#sjoM_HC-Sr$iek|vRh>#AfQqByB)Kb{Wvk4{I!k!LRg%rjn`2sH5l-uv-rG&ns* zum^j)d0r@2fG9G{9yNr<82j5*V|X=$^lGfrLdw?_xISL^CC;@bcyVvJe6Lv0p6TK^ z2o_>bue`WkVFF!^E`5FAjSHcucp2J% z(rd-Z>GtF_6*n&7+5U;8IBXGLTNN1u)-x*C8+{X9m3;- zlP41yF29qtm(I#+IKk7Qud6b0NxE}A9BWmLJOU$#ph1Ix!TaDn0wj@h);5wq1r2P= z(i;FE4Ir!xiW)$?h^jyk6=79o1uCj=mQR8N0Lp`Ol_H^{YwmKFOVKd^7eoWslV=S4{5)mRDyI6XaWwOUaWi>R32b z$9bLunpQh=&c#s_#gTK)TI;MajoP*OGQ=S~`0A_4crvpi;ia?;1kBPbP10ua)tu+j z04Rt==ZnQfmc^UYb$ann^XFz)kf^9Y6vc6zTI0xIgPz;k+@bH-p#39D_aoD|$tsffwU&xWqYm?W+Mo>6~aPqO7I?O9WETfGUnCP9g#+d|eBc zK`{7{XJa8kP6ft3q*0Vau?Z%GIzyWpTYF!K1^~4Tn8wbPzOL&!j$;=`dFdmu8|_Xx zEID9rX=M^u-P9R0`(F1()3d$9n@MNs=H~Xg`}$E*);cJv)3f2bx8L3E9iE;JzVn^+ z_ujwvGC%zATOV$I^xgK(rriJh;TOL?4zm2#``)#WU%h<##cy_ZUj_v$I4tty^yGNt z&+>6hnySg1agiHO%RER?6qBkhS%AnN5XQnCIKYW?ivp;zK=$;9dAs&Vxmb z!Di8d3l9Zc$Pie(TD}STspml|i&h)G2pv)YyPZ7QE&uNCkN^1hO>%{nS&_sbXucFRk^ujwpX%egVDVob-wdG%2H3rv(1Vk zfCe_F$L4qsK6`+_|Chi2_B-!7Yj51T{q}p`IypS}`mqvwE zgfJYAfBE-+gZVGMb(hlBw^vu!t&RRLN$=dfLkPzQyZMCKkTrDu+O_?|lP5>x5Imp( zl$q;fap(A^js+J)HnX+l8%D>!70vm-@oT~JSV9U~zPwV4n{>H87+I7?I z0y#@&Ce8uRhNhcs-~CqW_Vw(uhyLIF=Xz&VzVm*(y`csf85KP?&W(l#J;T<`elQV5 z5NKB9&1XPBDj&QP{rmsqKYM7u`%WBTF)INZsOg17QRd>O3ON88Fh*?xf~Z!Jz?Og! zs3-;{M9m3gG+g`jFMiF%!{zPs+cwSXw1rXfg`)Yw)iB=}oSPo;!e_tewv#tyOyPO+ zFmD)eF}P$gl4#ax7-}hiD(9n>6B@dJ>6 zvGGc8wUf5rj$ekY;puk7DVl(E7P$1>IX&&fQ7gc;;aNU-X{ry=m{3EK#HFu{wIJes zWsEvQgfJaX>eHj1qcLMKV(Zk!;4&m*LsutWJ#vI{9uZ|B7zD9YL|xZV zr#~q_7=@1scBb`dNncKQcr)#6J7XoXQabp0SRFjuzm`V#HhNo$OHm^erHCEWepy%(-Mo=)ZZD0W?LRr%T))l?r^CQ1WGyf^lIP~gHGo0{6jnfN zY9|2oK6oF9sH%b}{@3h#5Wkt$2hgdqn+% zDMesb0i=d-Bce>_B)29poV7X*lf8;dK$=OW3fFnK^WJWMhfR!t#nS3H?(Kf{YU793 zvDY%Av8fBHNAGr1{OoT(TzhZ5J$^=7S3XM}C_}&*Pq`+bpfqb~fLWQ*RzT)L>!S)B zw1IEb9_j!!gAY)%He={!zCiOEq(N3V8|729H5e6hmeZ@l^8KaEjZ2*rzT&#{Tq_8O zv2nK(U*Gw%#Q*U(C%>L94U=_GkpUS~x?7ZiNrqL$>{c?{iGfH(c#!L9PG0aITiEIO zoPZf2qSQ&okk{rS0^}RSQ@DWCy*i7yl6Zz!YQ)=jZnd&jnk3Fx5vi&wFUqnk>$++J zw;Qis6vt_rI_E^B%uDY*8Po0bdc9tnW&l`}g%34=Msebz2#`b?MY91^)G#Tk5Y&=E zLQ$PbMF0`>`gXjz-um_D{^Tq`6P0qldPhKQsCLGnX>OIGLI#6~H5L}DC1aW@*BFaL zNJ5GTNX`I&b+(Bz0|7&Z5RoVZR^yrBc$oWD6%-#r8Q6PaZpIJ_2qK_Ls`P5yeR?V{ z4nO^8zdL>OXxMn`B!nE3JR^FW)~ooqqN8;G)Ju06=G#eRViKIeWRcyL)na@A}U6 z`sU%zz54j6R)wCs|8*v`A;hhn+u#1dAKZTb+uhY`#&whoD5@}k*HD&|v!neNyDtxR zk0+;-q7Dp~pY>OUP_q#;UYbLk$JaHt2+_H|cgBTNy;zdYv^-6fBUy`Ey@E2dE!*n5 ziKwse(g~~!^Xv;L5Ez)hXd|r#a4~M&4!up-emj^50t1jP<>~BoL?thv ztbA$^07ZdR8ba)JqQa2%w71T+M{-D((Xs%|kyT2TJOYyRmULyCU0XXV;F9w8$3<%c z{LH8zu4it27hl|`{jZ4T^y}tk(OCmN1g>Fzz?eXjUiJ2O_2$Q+)uV&Q(eS`repEMh z-1*3k&Y>E!i98Yj&mQ0i3N)7{;^jJR_D*Kp4!vZDTEM~TKRo9;_uXCy(DkySDR#r`a#b`w643~~f5W3)`H1)}Wgc*k=31hEF2^z=_4k zz#P!Hi19(V6y37$T+nmr>N%)oMy|i$vR)a1&IE%E3ZtmIyUl0%tphH83$dGY1ifxi4t#;OKXK|bcFRBtmN?#9$<7t&w%F;+8 z6_8LH{!&$eLSP=84NeYD45p*OnXl`H=YGznS5YLg|MY-CyfXA!sMuzx{>6FpBCSWi zfwlpQ>XSus>mq>fvQ+t;*Llf3@tWpUuV|lNlVM+MzR!maFqhVNgg8lWZohrBcMy}@ z*xp*-X#3(hPxrg6^_x52PDX?5(Wmxg(trQG<4IlAUQmfZCZqUd97dDVIwzs_QfqRu z2cSMbhQ1045EwGZp0q}j2J|BtPr$C-xY6zOAAj=Y`1q_M3KqaYZ6yexnmTxqnTN|o z#)qIF*4WrNLp0Y0Apr>m0wIe)ppApBSv;r^2&oVP83RCsYC|a}dnP|!S!#D$i9y}y zxAMB~XK`u~)RU!NyHAQ$(5fm4F|yu7m1K&@yL&&2A*$pR)ajmhq;A*7o7qY}Dh!m? zFro+0Zba=U2R%qJPq1#M955Hu*n|vy9hjtEbJ_KN>-i}6hT4(2z1cxmc*af?_bp4B zN^C0?uBFKR;a5Lq3I~jOvc zA3l1d=kD%vuPLTc%x&Zs_p?jOSbTkJzwqapr-L%HbFs4# zl2KJ(hkz1C+4bwU8prhPyDYp)6Z_tmR7in`rSqeE}RNU!^C^@6!J7eOz?A?w9>1FuLmF9I$Wh9UDJ z>HG-b0?KD076UJ6-3q8c0aQb%K?pGzQturBD=Cr8*99a3hOCR4HxnVo#wEtah!LQR zOi_oiuZ8R2qA0S~Tkm~YR|-(oQcdd3rKMp}1d)C_O$;7PruTPGE0IZ&S0|^xf#UZz zZoR#|@nmOb^56;AemtJ`R+n#l^wF0;`7b^n|M|c8!Qt)oJJ)Zzm8HSas~Yg|WVE;c z6Zqt7?(~M!(edFyQC68!FOCjspB8*Jnhf(vEKoO)4TOTZV6FuMkODd&LJSB2w8^ay zW|@K2FF3#RjJR(|XqhcP>0CfRU%@y16zPIwO6P!Dcn!w1;J13+hI#cdSA7Z6x1XIA zn_pEQy>F5@uu2d*J;BdE53gQC2rHfTYOmd2?Iz=KelQ#_uWTSvU5`Tj2-HOB4pDUF zgyayOJ$sgAt=l(maT%&)ZMWig^1r#7A9MwJ#Fe*85 zCa8Mmr6p=*Lcj}(FsMrR<)?V?rCLulxBLCoMzI5OY%s{Plb6cj-s*PECni0c9KqS(wB62LJD|uSA!w)5bGB9HQ|v0C zx&geq^In>^0kJHL2VZ~j)tA5Uqpv^S;liiA{&tqNvMk%&+A@TP2d_?#o*f)jYuD1z zXo%FD5~`v~(B!_J8#~Wypt;%mQndZ~LibICd;~TWo`i}~q=d}$p3`V}& zp+EkpecMfW5~d{$_wom?AWAfCnY0(T`_xXwPz^Dn)r>~B*6d2JwSQ~*m%o|(KmN_+ z&JFYaThaEWCP{5naZWC7tlIOBffj-{=66UU0O)1@);0LWC)4XY>2`Mkbg2!2{lZm@ zstR6-XG6C-01DU?C{kY`)<_EI5v^(&{PO3Y9DeoL-`-xU4WcN`t3|xfCY>9cuPW5= zqT!s~fiLklF2$KE0Pq6OO)sBtFXt~%sQKL!f z;z6>^>$fS&1V}+;Mmj(+F>oH0^-7eqOyw2#Ov}ChVaq1N#}7?_ERL6H972xFQSa=+jQhr<@^ahP{P_9V%6f!EDBJ`* zlVI(YgV<)+%jz6@X6ry^PFztIXSELg;<<47sDBe1`gNP6Dp;=9riV+_nONd=SDuOF zLJX<`1TKlTtO7F-qIK#8JR?~X0aPkABN9Xo3JC)qKP{`VHU`FqkS%H35xjN$ zLeL>{R!+MP4;~$yy|dk4TZPl1sePRfHd}6RaD4FBKkt5cOR{8=SN)!a#zhpGH%)+q zNB{_;5CmDk5)cBKi)U&G7y@`f@1YJ*1+5rr2G1H;XJL<`2x^e535*A4`PeMiLZ~`{ z^vm7BcW#;$*Wr8`Dz7Z4q>)ROd$6|k_h;4r`-{`Bsjdw z14RYcT;C)lVJ^!u&x@igs@ew*DuRg4x+IC>B#9!Y3VD%NWrYB(R=eNtwc0H*rt(!) zmLg)UP2$)ZD=f;|^bXCgLa8qE&`2Q8i_9i`HciZ1H!^Ek0g;-uJ&+*Hq1UzIS-|tFu9c3o}A8 zspGZc?8WiX!GjmiZ)~h@tSt35?hO0a>ivfdfGW*?R0J&An|I#+;UE0*je8%*ofR~Z zDuS|x+Lxoz>E7P+htD5>eR_80I@dH^Nm|_m^s3tJs&@8*>304oJZ}u=C(=2kY5o`H za*2y1Jpe%?QQx=LE4E}3-&%>P!uU$h^ChnIba;MFDw;%X1m#p!q$zoAENi#xwHvs0 zBM2dgD&odnEo;kyM^8;XZT8k0N`3V;A3h7$-T_rqKmi89Vyq8-?W!WI-Io3i_#nqG zVR)h^`?7W;keO8g9PH^q7#zkw_^ayr$I46}|FPWvNv*c5g)lT}E2>E9ViRK{HJw*R ziU=lBXd;o$>DZ?3ZjNsKh+WGPq?NbynH2t?WTO)|H)u*^^6bP;LCc!A7U^}J6Q|2k?L{*TGlGyaEZL_SjT{laHgMffu zu=EVZfRbavN?FBNBe6Z2mbTxOzL804a^*xd_p{*C^CbHfHaq- z3W&@rD{6S44Kh&>ya6Q>F!d3EsdZSVRNJ_{62IGPcR_%{*_26Ll(pR2R`1$!vUCRW zYWVyBC+6X9KK8njS*yA~shy+E6mG4?z0~B>YCNe~py9(AV*piDC2-A5s?HdLs5Ga9 z1b$;3e#IcER{c15Wivb>Kq8YwE=i&!NsO80Ts3YcZS457rWmo=6X-mTOSl2~NJD$o z*;`a#;q%xnwULPjE>3L{XNVRN0EtEGy2kS|A3$am?n2YjC;)--sw#_erneNuc@R3P zg0TI^0np#%Pthwq(qc-i;-VV*Y9irfzXe`u11?qv7ZI}O1L?(P1Yf5)zk#)IwQ>BW z-@+>?iRb(mJb30-SHe$e30-on&W~EcZ9NQH10ZM{asT&+ad)Wl=;$ zvT<3d)Z?RLTWVe8Cx?mxtVmY4?NmaOTpb}VC0xoBs_Awl`+MVw9u3Xe$?>=soPb&epmC`bgRsDyp+A~|!;z+e!8fEDUmLJc$?42UBi#pI78Z7*l> zajhVAjA{rGF|lN*G~^M*D0Hv_ta%pa05yvOEVa_NH`i{j^2ynx6UQ5!?z7S1?(Xnl zDoSpB119RLf_)Worl*IVUYgS?8s;^yDUM_kWUYU%Wh<0%)=ftE$r}$oULHp-(j^xQ zJphG{GD-M&-?nj5ubW zwb%OQ_x(Osl~qxe%%GG`k}S=LMG!$7jR-Nus;;zAP2UJ2AqsO~VMI7SJ~=u*j&n|Q zbBW`EPyxMmZ>>Mj+RU3R=IS#G^O7Rn*q<+wtj{I3i}})3Ie5O}#K;ZhnYqzs1R=_~ znfH>hx_MI;YivVPjN#y5@A0FDNGKx1;jk#n7#S|QfDy?UlVy35SnvF-nE7UF9^+gt zpNILVDUO3hi(*59cFt+7jmeFruI?sDG9Hhd^Yg9X%9D&SDn-`Xx~_+3XZu-Ztw|CK zA_#n56R^}R@VV5?=lG#7VW1a!6E4vwxB{JPZa)hW@q)FjuxTn^fzo=W)aZW!XNApH$J-ekACOo@Bi*^mX%A!!&`Um?%uko zuHAX>?RS6hgYW&5oweIp=9ENcX10r_uEf~ z_3-iGuy%~131@;XNE8TBoJa)Gq%vg^BAQ=$z=#YD20#{W({ljQf?ETN2FgW~q(r#% z4lFIwA_7gMk5}&evPy=M3pJ!KNJU(jUa#y(|MTDc-~aI4?>(wN`N@aVt<6?d;r@Oc z4#U0sa&7yozy0+$cL(daHAaL$_D)ZJ`sh)AFaQ8oA45DKS~qrpFW_$o0Ic-~RwdPF z>SndCz4sg=#|VMNM{xosU)#Oj?Qg#_D@Rjby>s7tOug=Q-n@nFfo~0h&3!Q{_A~EK z*HgXS(yauo28F^bK1vyJR-=ys3Zqt&D)w`GFmaBd-4dL?s>{WIo;{+&_m!FAY2}aO zbXFA3hd`i_h?ADuk8v%aOtolNfcH^Rfm zr=NcI-sbv7nxz+pfg&sr1iE?4sC+y-8)c<C0>3ICZ@BjJH~fZ=&}h~F4>blEv_P6bER)4F&Tl6H&nioyU^OZg2%B3&6Of~($K}Gn4-^0> z39sFR4?c;1@q_Yz@msc=`36k~1i(?S;a{RKfW*0(Eiwp$NuI7k$G z@80-_-~ax4>!_VVl*UOa3!cWg6nw#|aIp#Ye6zSPi!BokygYUaUiOwFz-qhfqU9X% zh0yLLPfj)KRg$l*Z{FQII#9VM5^s2%!ae7y=1~~5@-8YxfGiM#1mWh?;HoLrGZlda zW}^4a#+$GGZYN6;-In1YWo?mTo=hPGo2DuRj!`Sc!XXMG*{sbBqmz?^kKVmfob9^$ zOC57PPYlKgII6>=L;tjw4+Y*H`R_yo>tzs)NiG;|h&E#fx?{U>} zrqXt@lO=6hYZ=lKLqGzhC~aA`F=i41oB-?;CSjE+#hd@>aIGH zRL2-JYFo#4QFQ{O465O@G`kug5v+wBh(kC7?)2NaRZ|yvzEfetRD)k@B`tCM>|=B7 zTBqMOPsfj*gmGOy9gnh&^`ed~1q+f2BeAgvQ6NNP6d_xyP-$dV1|(6yj70g$?oM9N zc>iKd+w-4s5)>584ilogodkQ;VOj0XU{XtfY8ql>GYy!LN>H^d7?LU=Gqennk*Sl& z*wP^2&;0apRULT{5CUF|QPc78wRe8}vLYm{Fe;EZE$@%2hwne_eB}ylY(O2=tioz^ zr`P%L+4!yDhh0{a(#cK=z>Q51kN^~55CmX`puj|k5i|l35Y6whA`m0`2!SPdtOB?w zb-+469XU42x*#$WfKi}SISnV1FipBqkR&+U`Dk?X)`Q7!zP6!jrqhx5fYz#wwKLQH z-lu1O^`Ll4J4Lb{(E_5fDdcVD&R$hdg4;|G1gR1}Eu8o0B2~PILBNIV?M3f%)5FRn z&`!-pP6+`3&{rd0A~JU8T8RC{Gc2A?M>_7r;ur2TM_xRaq2eQPx!mp$Sl1 zYttl2v&GaJn?0)G>&%XP;$IPq9BQ$DbRvrzHPwzi|ym$M~wXMyat=*&T zyJvfk!BywP28KJgZhZ4Me&^O3U$gm|pb-%XWnG?~JbQTm<9F|W`oZ!3vj}Q%^<|T- zX=T;QRB^RoZnY0UKCh19!rCAp)Eu5*(RD40%;rLgrjT~(jhjVlv+$xZQ~m2$6?r*U z4FC%-98VUp@I{W*q?~5xDvSbv3?RyewX0#{2CGy&10kazS?F$r!PUg%0%y<^n~6v< z{1SY3ULd)8nD=pL4MFf@T zD5%JgWKxqK*V)k%z3nL~BV%4V(YO-=RL$$@`Xz~;uzl{>eyt=!~8<_E>$Q9O-_N-OdE zg*#^UQAnwc+@=&HIAk;Er^e9nSrwuPL+~+4m9|DF6sywJ9z?VTt(qb=WRd@nL?d2+ zl0R4PBIn?!b4BI+2DPe}%4}Ai9G&)hT@fHs08uMttO?94aoKl@tFB3GNau}}I?gX= z0fbQ3^>EVM#*t7pUq}jw6cK`eQbY=gpsA>B?(-t5AxwEM+3r=2uyulKH8GqWesHb#5(70h{c2SR04Od7=7{7QiBq5*(3)FQS6*C5`AeMlqj-8KIMNNW)qy#C5h=2p- zK#AC44#^E&)iowU>^X>wz~Zs#4K~pegh0lrj8OwX2tEL9?QGq?dZn(4Nh|Gjy2jec zIKZ^3%BsxRSC#nar)A{el&w|!^rSpG-A7MCZC}gbll}bmm93Y*?yUx*G5lX&ymP%! zZh7%qU&TEj{OE^2nya}iAq3}~2x@JNX&!T|sKb_0~*aCraz{oq}mx5~Nm=438|T+VDn!{B1np~)>)RVudl}#$K#Q;b}(2QkH=M2N;9!t zk=|pBN-1lNbMENyD9y9o?X6}9CC`U0VYPGYxe@qzzrbpIn9+n*jyCMT!YUVY_^^Upqdg2nO8jgGl;{qgDW z?R$@|U;E^n|Md4e|JlFtpw}aoaw5S)3^+a|fL6QBBDFt`JT~^K zR_O}_XpSL9VVRC6`_J|!Cu8)4F$qxuvyb8$K(+{=wrNjg115BY6%i>NjP_awQUQQ$ zS|`1u^3jbtXe0t`W{^>!^l(bE zVMqw5ugQ~o27&7Z42%L^P9fA4o@k;x1&?fs+Qzx(p- zTE~%OBbAK!WUR}e5poqsM+qcO$aAQHtFSjVZy)f7$1@f&3K?Kp!>DA5a`?B?zx~B@ zXUp8ZnZ0zowY8zw``m7cwMwB7FoFgUAR)wg1hz3|0(Dy9*S_BV_kUUa`H$m2{<>}F zRZ|xz6c9mJ%{|eJpyS+nDJUa>Le&YMhkclIW5p>HJyw;c<wvAumK%W+M5uvxGKfQtNMmLPGD4VY zb#;&(*Zyqg%fKjX4dvQ&J%(A>OfZ`cb-88NcI{#H?uUCtQe1tb?*a^`F7FWvgD?^r zqYwZzXshS@B_cpjO2dNiyKE7=JcGpN;2Vpr559=mL?{TrhPb75FQ?oln(a=O-5R*V zsXHvf$nh+Ou?GM#NU2knlmIG#EFzIq0Rn@H5~Ui|ljBOFUOcLKl2N(P@?%hl2&6j6 zPay-2pk@L2VwhDfwZhI%`H~yG(V|qtq7XtQgd44>F`gDwF)jvC7qqA6Cerv^Nbb@q zf#ub?t+X%!(+nHczuTa6_c7>Y^;1b4Hs%uixwUvn*wiVm2+SDsa%+BsR0! zh(Po~X);C;VhBNmQ7J`ImlBu&7Tswqzzoa^<~wiipPtpr+q58% zN_AM94xb(z9DMrd(UtYJ>)RWTc5mPR;GLs``%0^(FK4^oed9}Cz5dD@Chr3pgy^gB z!IOLM{_>|EzWdhk(S8U%%i23PU+r$)A(O&NCHo6UOskv5%lNicKp)IIGFW)gx+4hK zj87Yg6$v7NOZ#WNTcz$*wKtf#-YuC7le5PP!h-XKh?i<=7JHGj9a~*B8Db1`UlQ5S zSr6SEj`Oe%10V>e{nD;=bZ+LPTL6h55F>lf3o18=LS&KPLe?(_H!$f@cMI2VsN;Ja zT@1|7xFZ{!0hp}EX~%~M0x@gF&1<7{Z5B}?V^f%ckgBwsv==Pwc?(b^EOif6s^>d# z5P)d2X?t_*n6RdxqV5b#zTAhA00Ksn727YLrJGKWTRS+okwRo+^!S8CWc!AcGxP-_ z#59NgCd`H^V&ee0Kt{hg61f1;6j-93VR3qsbI=Lm=d^fSGNiv~tF{pi@rGZo$k~M~MT+U2O4G_p!JtxTvYHO^~ zF-9M`K^QZ0@FEdt5f>0_BC7MXl;<#SYy=4r7DfUh!c3>VRtJnbbYYNnHa2uCn~w7A z%GQmwE4$sDbW$AO|LEh5!C7%w2A@Rb^9^X_x(=LUl3NR;CKW&pE`(MZt<`Ckj3KL?mnH{q?o!tSly_4YVlp z006;12nbs11;z;x7)d2bYK>|F#EKLGd5OUXVTOpoMHV52 zR_PF8#CcDdu=o(mx@O0|4$KmOwXsA|IA*EY==Xaa`wu{Hh`gY6aE^;bcyT%Lh4kd5 zsqE#E!wPNl0#al7Cky<_rJBGO+T`IPVFNEAp+zp`s_-&PWFb!u671F^F;%dMB?I-u zx*_-yY|Lzt=*60R8*~dpQB4mx zO3XK8{flLR4_g{93mJ+sKo(NC?`iB{F0;V zcY1cPTa6~ZJT8lATaioKpEq8?OWe;zyz0W%WZ{MUqk!>4bM(( zVxu&~XI@San-@(hm1b$0rT}1!X}8LwEbLYV)SvD}@0=F>FWQZ_FR!a4Hy;XKC$QVMX{VYqlE)KoDvs6IuCksBX0&JEM^B{2$cWTYm(E&{^9!Lx~~ zNuE;(HqoTixR`-=2BBq4t`v#{2{A^CWECRm8d&+L0TOEkee_Wnk0#~xY`pvGoxSzx zXHOnpzjODCH+G-izP9(_*;j78^zDE8FMjy&@gMwu|NB4t*)P@3_E)~~tEjJk_VmHw zkG_9(Z7sOjejWFI{PyDqpZ)$f-zcZE z0#q?-ks8E&$ZR;e)^Y zAOG;@<@j4yb`oKUfrGEdQ=&AnmN~>Y0jP~liPWW9GXR*)is@t$tMG##|LOk0yH!=i zV(sqkx7tbHi8z*;!AVnM3EbqSkRo9q3Q9Sorp1v7lucuI=jqcAUv&XR)eK!$Mw4S6 zmasqNiHne8Q3t9+Wz|Uy_fN{Z-_F`?1mJ}cu6ZReM(`rz;J*4R{q2L~7eD;#e!u_b zm%gF0c3GCc_}a|a$@qTx$^AO{!8pxeYdyJs#qMk-{SLNUq!mF7 zHdEa}l2}PBTPunHqY19;cGRn{4gTPd_RmJ@cfM(M*FvIY;W82s0JTW>!CVAHAqavH z01EUa`vOerg6vI_|KX3H>^*$==Iyyf_niB@SPz!zt&8l%=O`(10nx^D_T#F80IQq5 z3#7gaASQWHWytvt3LLAzrFW?^+I9vz-_Fu&u{_z>;-lmDeeq1SYulcVj^2Ot_{Q$l zmrz+=+%^zE*-T98m`|s5e~|3L@aXLy)G||tpFm=T0T9I+r4@j9@0(#;nx=>(NX?TN zZ0-EYfBL`r_|Npcw|*v(ueB*7Bobt48~wVGTbVr8{MkwQ%bIWZRYrQ|ed!$%V+XK6l`enQi(8(d>%`Sh3$N9JxcTOcGLjbC^Xs)`~NNF`7re&*^?yUVpa zo=MW{RFq5|3?ey ztJ#1A1~1?vI0nZJf`da8iH!vpkVR>-Nd$FrT#Qv~W-^MAqL6UV?fXvt-|wEj`)qb& zvlG4CJDhwnQOA0>Y;_~rh$z}Xrw9E$m_%w0WD3fM)l`H4BBV-fVB4-p2nc|r5!Q0n#K#3z5gF(lpoSM&@XIX)J`dwsru0_vJg396 z7$OTRqC8F0G|SS|7z+SZRn2Czx~_?+)9&b^gGJcVK{O@cs1vaivu2>o4Y{(VvGV3d<2mg zIfTH>A%qxWpx~XSghGfhgyv^04Y{i6Z@}1GDWp_W@=Vx}9*KJR#+4)q5CX&?KFG|= zq~N0DB8mgAV2@zWBUOSW&;;aUg7564YgczR(vC9O?VJ5C-=beWdlJD0QcPONGMZHN zXOn~B>B*;$AH8zx*3QP-m7VMNuD<@{;bSg*WYmOTd-LYYZ@iv%)&MPl6w|YJfAOO~ z|IZhyO;VdyEe&QzIAR1LKo@8j5@q{sQiM!8lWHP>%;-Hc&6^s5QP&o1n*?|zMLUOows3+( zN;k+vZfNrWDn|B!LkOWc4MvD@!Mg)g3KS3mA^~#~yatZQO;n#r06Bm}m7C0%tnj5x zNVMerBuU$KwQe$Uynk?T@96N!TAw749vo@JcCK6cywIW(EB*}}^M7-!+dT}j8Q=2`%(D3ic zI|>9JLn!7ynPA>x)C62sk1LBy`GWqi0)$w7D6(qi7g^LPfg&ZsF)#u|j7=j|^Mi0PXy55XI&jIlPgQq&k@ zh@p`vtExUeo{+Y6UC%Xe6e7r5t(~oYLZPK6e~$qDyz6;sL0PpqU#JYkl_JSYG|lB+ z58)!X`Mh0z>36<3gbnrE}I z&01wO%@Um{GxkAaN0W|ZA}W{L!_5tyb-HOsVf109Ma8@F&eanW}8c>G?R@$z{s<@4rD;#Mwh;LV`Dsv zg2Y6E3>ZPAarA=*WmVegwyxbtw=oo@pH0fiu$-RF>M6yFLezky6f0svB}~MmSZAoy zw3V#)uD%JT$K~1ZDLY@mwJ)kyf1}K{NT`4M+2H99Td5TaNT7s7M3l7C_2<&BXjhU zGqtci5m+PDBA8{VQYaA_2r<(J0b>XWYQ^H~Dl#)6YH%J# zv+9jO>$ZOBukU^I>Bpb_&hNjZe*d>V-QE83t1rLw#V;M`MCG0PPapl)|K{I*=Wl)} zO3jWBcL9I>D{oFlV-TgSUGKMZLl4hJXP!L>3TMi)kn@f}rOH?(MiBz&C_Q6Pp#q8k zh@_jr36ql;grjh5?5+r;vI;XGipK(PRloLk-JAaXe;ps%8~E&&zbB08X{ zT5V1oEAIA7kZ*W_)9u_F(;VS)t2Q<^jt-8}B>BC6{Cjs^ddUaz5^vtV`&<9)pZ~?b z`R{t=^tE1#m?LwTmD06HC>(`L1TRtw#LEEa$a{Owo;-c(%cHA1&;Hr(gEIQBzx(vw zgJ0g*`YNcF6AUbk`WzQ@o`~Q9e1p(W_4HG*NqqJ7xOp}It3Mom z{AYhKy8rRjyRSLHr|Tq(jmMcWxm?JrPexai?A{1GfP$Z$M>dYSXr-+)XCrOefJkX{lQmnoNcv) zElV5FaEGYV=gK|(H=z^u@#N|0o$+{tk!5<*#R!X^HLL)$7;q?jMBq-5XBNj0OQ$RGejn zvWa^#Q&k|6n$^(+-+P8Xdlnu}>Ow##a{_V08krAw<^y;F03X0jWH>H9zF!g`DKL!( zf<;?ucWs`j^}gQOO4=<=tY>3BJe?d2Wi;`B_LK17sr{|5C2!pEgN`H$1OOF+f*7I6 ze;_IV7GwYopujPM2vkLd&ra-z564eFJ-M<0T7(6cci@$T-0EH%7i@Qw3mmuRy;?b9 z&KF(0uq2$9mtIyLF3ODZcjo~o&eh(P!Iea7Szjfc_U6mEemP0hVEfknkN$dg@(2=V z)cDaSKd>g>+Py^xk)XjjnhF{;bSK4y_#63C`qo_r+ zo$EG=2D+U~Ih%a=?w(xltMybg=-rMpCocoPzkhaQ1~>Yx?M&Y#Ap*}ZbYUWX68YWQ z-+TqWc)M)F7}i3#O8XD}yKn1|h29nU@>lT66$YTQp?vgFc<)20Cv-K4nezyN6?wr~ zfI?(O@&wc)Yc^lGap&t_y!FOc(lkBz@MpIMVWWf7@%XcQhabGR_i!fd)O2T~bkNKD z?X5x9+v>+C+NxPuOH3MbU2}tIHcX_{a)-w#IPcMrIf>+A_IfEspBGJDycAxTsl-+y z94RxP2v86Ogm5v>#!QkdvpXrD`S^Gw(<(TKHA6s-P5Ma$36O*(q7y`o78Rf&0<=QP zYHgJ^L>j>;Py`ADMY^VSt^H~*`}q40?!EWurB|=?Ha3;jRLr2PB~;he=xJ>ZPKxz) z3&2fW5}H~GMGzGPgLuC>|+UrdX# zt|G^IIf}6;;JsH$C5cs9M~==r5irIYV~y4VRE4Hi3qT|;pq>JpCD_gMY+O%gQ5M5h zT!h6M9LIvhtL7pc3n0W85ivIY=LXEj?7a&iXrsONA$UXz!3#hPp>eM89N7nQ-h#Mf z{lZD)eJ?j#I#J*PPRe*Tin9-3Dr@bKP~r&re3uJ3HU^y(|O(gQnrd~{ZyPSxGJ zcLp0*kTO8>_2d^n{{DaU-~RXa9z9b;3URxaUfX?TWBsbqhDZrOU~b$Vt7N9`|&1|np^hMHwl zM&$z|poz>O)-F~qa*T}$S`ndZ3|eyo35qc3(dO%i{g*)xJm~fPw-PCsOpy=9(5ma` z5m2cJX<^!)l#X7SBNRbIDwqlvnIi(5&gP_ZUANlUe}{XU#o8^|eWs5eLY9|zzFx0g z&7XdxAN+zYQ8HvnSc3~#?xov&aW-3MS+bl)E!$|GhcrIlCYI!>(iEdNsj&%xm&t4v zhLdEiTU$LUs%QLeWlsV0k2K_JlVT#~lT z=8l_wMf_o6c;5`?W;RXnh4U=)6pwUyGORMW89_-8@1iOf;O z7`#`tQ6V&c-*nS8%TWXDn}a`n2r)KA322lCl;ENS%yi2EL_p`Du3DK@Dy^qwae8pS zlbv1rs_t}|5I90znCY>ZJ>y~)IsmNTw4PEgt@`bw$m6Q2eW1i7N_DkXIu=0zM_0K~ zI4fsmyVqV{@7G097iA2Q2ru}Usmt=C4XS&6T`M6bBPsY{dy5RD>jNC=}=khN{vO*eM?(MMmf z8yBOK@@!I7Q{Y-5B#4&KD6I%Uk9+ zDh+K**Sak;=+VZt<95H@-NfQ(qHNZ`Zr5JoWNYu^UtrqB*4oH`xCnBQ6DlB|-%!(l+(WEm41q&HqPnU>@bi<600JR`F-f=IbKZaU z**zp)U+*PJqgkRLMs8Na#`TEH!_xwru|Nwg%Nw8pXe{eqWq}ZzW5^JqQc5Y33$(0r z${sGv)(b~CosR?&rqjujM-QE=jaKtQ!X>W^1q75*d7dhTlgYTMDgeacS+Cdc_Ii2V zO6@o}k4+;}lSV%OjL+HS%%T+LdA6~!ktFHf-rlSzLhwadxT+35^!oi)yB(Pu76-1H z)`SsBY2}gd^*wGS>(BH++|B@)5t+hKtYJ` z^3}4uzHn))#`*X{fN4GsjfjHC2r&i{VxsgN zi&BC_=33}%JV`X(edVPe|8)CD?|pdvl~=z0`~U1$e&yEy;z2R~`A>g5J3XU_;=|L& z&#J&3fwj$zVpyCVpJhf{o%l#k4@PI>889173WWp>O0E?HA(2u*2%#yi0j`2~K}zOI zgi%ES&+LVpvl9qVlM@XP*)t0f5dtD=#JJ4IEd+aJ#ueWY0Pu49Dd$#)MQ#aKI;G}U zzliu4gayEyA3E_lM&e?-xl%{D62lZh#Q)R(@xKI+>2&tw$&;HmZ^%Mbsp@#+_RBAS z>)Sv7%RkxT{s2)}psYFV$H)o=q(bzrJcz#3y0=_xVhGRnp8eqaKY0J$x4!XJ`tp}U zo;v{i*0<~*AKklmP%3r3)43T{76szs7AOE7FrbQvj1&QRKJWknNPBDk`WN5&?D*S; zJ;38hV8l8Kf^4;LTvdA~vpd^s?L4VMxPLnO;&0?T+mSFvfoFT>@ssd{*J;p;3gGrF zeYhWIH4O&R>Z_Npw|^z+&h|cj_TjsS0+p+KyS>&&rIQ3lY{i^usu9UuMSwd7|1ZYx`2mA^0NpYxD1gMwGDp=5%DlG< zP%8>Vz>FeP`^5(^$Y@pp(8tV(q7)H=Lb0i`Ms;!>7(ad@_ns85T-RTE#opKfr6kWe zO>qAhx^3KC(+4LcG3F_5b#($PRRo6;!tAt&&eo@~lh*59iWh2TS8M@`d!}64zArzU z^LzN^JX`~nx=?Q|t7egv8i419(-&{*mujn_2n7chi^3!=(*mVvHmwUUTDSATt=GT4 zQI4O?X2ZfeOa|@2fRS0CjIInJCEGEY2Rrp%s%cyWZd;uhjJ}klO?fWUNx?MD`-%(% zR>BHFSb&*BB&AqbBC|-~5N-d~w}1O*C#N4D9!r$X1oDKE#&5(3LR|x2*=`3BU{-*F zjgTc4Ts{JgOI7H+I;n{*xXFc;+3nM4?<)SQT=uJ>bK0tef|EAr5fTL79Hk&l0mox03s&! z80q%!{KjwotA9P%xf#I}qeD~%x#B>ry!F*Dzcg6u{Ore%pPacn9Ze@Er3;j%u^CNT z%OUv44GKQ`fB>~ZxS3Oi3*fL#iAJ^ zBQYohwYY6G$vQ!d0#U>w-@! z^v!C;xaboV6i75}v{g54p2a!l8Rfj%1yOgCsF4q6F!jg+3KzBZ=MJY!z0;RF>2PHi zA_4%JP0}>Y^E^pXr6`0@6vb>d^WGa{y4_y4+fCC%0E)6KtC{njMYJ}Fv5Hji5rDPT z#%j_OIfM{|#Ta9aFj2yY?q-h2`tE9|Hg&&<&*te!d zkB0TZY0zHQlxmS}5hef@zyN9hE!0E0qD=r9J{i$>eme6SUVTIL*KXe2F|YRGd&ggW71yp9Z7hmy_4IfjKKoJYtA!-9o^ZMvnLpX2y+Oos;gWGL>QV|ClgMl<)rdx z*KP0i=IlY%T9dP9#NqIv^f7H zop9wtAyB zeh!1}*_AiE$!X)RefqI+Gikct7N`B?ww^BZO2UOMu?t$(=OY+ibkAtiZDmL}YK4g+ ziW2MEDBRfHYV}%2byaXAr4<2swh?C7%Epp_S+llI?d{`s-`o7vfEW1+nyGF zS_UB?qPnR3WNMP0Qo3(#ZDW9PT-C9X#G9;+BGk=PLee2v&s4t7r!YF5sakSUK!l`J z<7sO?1r5*#0gchd8W9O0FoPmOMU9FYLgXmI9Aea=iCM5jRtl9i%%LtF_VPSw6H!sZ zXqbgOB<&%`X{?X(L1?!H8R}Y3$7*&!)t*-)>WCTS+)yR&szl!YlusrJXN zsC>Vd?%uwgWv$PC^cK6iD$24bTb;byYXQP+GK+kEyLln_;j#_)NqL2W00961Nkl=F>xFu3g>q7HFlM_sm>7=NmeQKw0u+GQ9|=KiBD%B2uJ`W&o3LIX(f9=w0*Bl*YBSUWOYfJw2rJ4d?Buyokh-bm;x8$ahD1WpEIyr7*w2x^ybrw#THNS1&Hd!pM3iECu{3B z^EIQfW_HS0W2v3x`s^4c51eL>1!)OPoLW|TpDP8@@Jy3#FZif*GaTT-$?PfAM9Ev|cy`lQOcK@V0Xcyz-r^hEJo&|ykH&Pc%@S%C} zV{i~WFf^Q907d`>O(X>cC@>(Suowo*01Uu{AOKOAfKt=j$@{fw7mm;RTN}M?h!OT4 z9Zkw+{;oloBT9tEY^RmVwF!#7m%s$d*ksUYZxY@qruFc6Sj|TD^vo5L;7bY7Dz7za zO2Dc_6HbG0B_@qYibys(08(6JiArsvgks3Id z=yrPbjR6oDV%@2z)7owukAjkvvzR-ZVYd zRV_=1GM+nkN$FO*ZIkqLcs83&`@QzHtDDxSdABb>&_rrZrc~HG7{uppgL53jf}U}{ zdM*B93BF*6+UN!lu@LCwyqn<#og3%NO^ET?-rm{ptU;*~taz;fK!AwyJXcyz#^bW8 zngdf+R;Q<@?RGoO(lpD zYl)GoDxRLMtqnSzjtJLvea`KL`CyQU6shTSc6vJOb~;I#Af8LW%YfYHY0z-F3jLh& zgiD5*yr2^oFC1Q$XcM{Ql3qG%nsZGbF-oWIxWh#p9laEW}SeB}L_02o4zF}=LE6=MJ)s{p{&?zVoNf`Bz?fwPE!DK=A&vd!K%E^6>PkP@6Y9_8;H83<*(Ku zu8tn@MNs&K&?&fzbU--=ar}o#%l`lk8ef2fe$hXluO39$Yw_9ifY5AjZ^u|ZemMT4 zKlnhQ9*t2PU)jBRaCp>iwb$2o?wuYyD4txqd+q4x+0oI#t=q4dBzb)Qg}61 zZyy~Uee&ri*RJ1S<|mIIh9K9jU(Z^tNB2Jxs8P3GdF72~&-O>7vsYhxbvPVpYpz|p z_T=%C@pyRa)-7wy-rl3x_y7S=wYN5}?jN3{X|`YKpZ|~d-gxE4OLy-?cRU__wtv#z z>BsA9vk&(BgSBln{P>^0?ys~e6{C^_$!uha7xmGTqgLMosvv}`L!X7FEGvnn=g?Uz zmWGSH1s8rV_<|+-a}nK_+pRB_6$t<;pjgiAY}_Wzt}4ZrQch>>60_ zN0pm0Y3D^Gh(}c)hrxyrkWc{i*A@qh<`C#k-1>kY`Zd{BTA zBSy3)NeMy|-Me{h_sO%_!M)>+7SF25sVUPzE)WqkqCrFvjFFoRyGV>a2qRha!6PW< zXpALPF-izt85Lugs}V16epi!U^1f_O-JfW#0 zq2-MT6cC~qfwk0bwZY(=lfL-b?AcE%0R~v8QW4>KAA=xb@PQOX=K&!& z-x#F!{Y8O06?M@Y%1XoKN~-J zR9xG#w{GgSPPhsZ11!B9XEne=CyGpsx^~>mY*1JjAnAp*yC-7_A_C+B zgUbE(%Zii>5G4{dUS#mCZMe0@V%S9@tSO(SJEu`qm2Z$n#DW4f<8gMSuOGGjsM$_Q zj5IklcCTn{otd?fUF**dyh_iK&6yL4OeBO66b|jcktN{M-tA`_uby^qd((HML*)@k z1j+!Ty{Xm3hTZMzb%`q4b~3msS6`pmt_Z^Bous>^j_xA>&-e9nPmhptIt|K#07+C5 zh=Yn@{+T+5G06peKt31Q2^WVJ0DuxKf<>gr;zOc!ubXFSwm%!6R26~B7>z)Ns;zCN z$OciQRi;^D3_*dkEp@C-w8|4}GzIU8*(MfZ7!Oa%Y2_Rz+1b|Bt9d(5vLwlESrvJ= zJ=oe*X$}xUywMx|*FHmg7;{$~srJ+MV{M7!mX_mSt6!rYK5;s8Gk6tC3U6 zWF)h?g4(OtG&M-lO(Xb8@TKRnCIBVCk;B~TGH+q!=BPvp=k_8%79d1YsFYF)kx)d1 zpqk|-h7i1pQJnLxcEXWRA*f>FM`^jX-a^QyQ$pC7Rc9?XOVinvYl%V(F-nBVnH)dj z@<3FjqSGfcm!^p**u+l5aRf3 zR?ezcJ5AEWIVTr3l(=F-lhuIKDywtVjfe=s^Lfp}#)Qvt#8r-{`PT>_C3T{z`YInjn0go$HrC|4?JC9l7HLsdt|5BDpFRn`~oRcyg1OTnTv zqD%nxfDXho*7pW;hm6c1pckFGQAAv100v}%C=ytTC?pUGfG9Ku3kX8mEAUFZn+^~5 zr+yq6(JBL~nEI;pnn5*DW(BB>hv-pxK{DFvpe-=7ctRl-WFoPxte>}f*MME9r*$zc zXT$RNK{YGXAT4W3FnU*c4#C)vwh0L!5>&mczIkn}*HJ9d#Rx`KRXwTwxb!|mR6>9x zN`OGMbUPCu1kq`G>(&=pn5n~T1O<>mV$%hA(WAN~e62tn&dH$X0>|o|C(kqQoUdJz zEm^Y27rRoy=Q98Rjlg=I{$3cl0OoRSr`z>D6lLK;owqhSopzQQSrj)J7hD}&U`434 zB3@Ptu7-mee*<1_W?s?Uo82J;a0S*Tb6U~j(JVgLm+%yLp=SeRJRa@u@5LC1K;g0y z@!VFHrm3-ZGMQ9W1q-o{g-65TWH9It2CY_WIvK|hn>n7=3KuUm3&#K~kr}frUt8Y< z(uapfv)QyPXSH+9Tg4*IxzT8}wzk%4AdJF@jgky8 zf(M8QD1a;hOh9H8xQP!DBEyOTEEigS=IARx1c|FvnYb9lG+%HIM`F1|*bv0$FMU}F zBLRXUdJf5jFQ}coNIyTXB5WQM3lq}nH)u?63a|<>&02TA^p#Kk{l9w+F$K}J})W&Y0R~{d_^a_+IE&=!sztuhky77y^lWn*S*eDNgjPx?%&4UD+mBeh3zfb+2BrF z|Ns8rc4w*)Zwi_8aC~-?E*aV{TAKsE}X3YX#};ciqtz653B5man|TpcOE%g-O!=)lwDTrgqu={5-#^~n*uM2U-~Rg6_6{QW=oNFSHA}@3n`n0s2MEE(%KINY zc>8{N`rFUG_4=KcH`dlg;NFAJ{^)0ac|RM;AXCTwOX|+=eB(E|ovzlP4S+!*0AQFi zF6Uzfs~Hfhl6-}&E}`PBfxP}w{BZwaIh(2^U-W`3LR2dZXj~aWT)b{%bw$O$Pr3Y` zE<^u)U%J?gurZKl22tL7`@PxZ^s`Uy9qk?c=l{ij`SV}={QkZBzxrGM`cMD#&))dr z7r*%C7ry)5zp+X0_kaJN{N-Q#$-&Y7Z~pf0Y;JA;-~Vs_7e@Hk|Jncc%9X2=$@CBZ z{U3hejW@D9|Ni&B=Un}3zy9m(cIW@~-|p4LNvqTQU;e9q{nlIW{PLH-_%Hr<|A!y^ z;0HU~yI=kKSO4gb{&;wH_OJfe|4J+U=+VRf&%gO^%3}Jv|KwlZy7|&~{_H!qZr^<-~Ef%zy6h9`;FiHoB!_rJU%{LXKAO6 zz91~}?$cR~ZmUfK3{4(+zR=<&+rtIk`_dwPLC;^-^Wx`JQZFTJx$H9ddsOLFSsDeP zPi(RjmCjo2ld8n5t(2PiDh8*mK?d)G^WLP!5V{yVh#)DzL}?@7$^!EKw7b1IJ=~J8 zU(Y@Y)?MF{jDtHwRkkxpKg(7T=e9eb< zjwVk5PIK4I?I72wASkdJuMgTdu^+uV+3Hby*8u@iBZ82CM8UekS*=f}bb3saqcHOD zZXMUPN`$?jN30Paf}Anmsl(I1`WvwM%U}OSr`>VE&8iBCKp2q(QABRtTL0|9@kc2p zgXr@t%@(^L;VdOb z@@XO*ipUy4g@Cn(DRplC)~|Axs=*imOrlzCFv-D_@uwqsWY%gn3L-)j zkf=1Y2ZxI4<0tFEcUrBhX?Htm9eMW@aFn)#&A8d+h%CLwD8i_`vD8AK8ef3UjHpqs z=RqN#%&3@;6(!NM-ctPx)p2woDO0fC@?(H*`r-rTr3(OG=q;JwL^_>L zjIk`M>2y*QB>-eu*6DQHtyW^Kh}2bG`r0`s9F-!iwIVH10W(6VNI)nk z)Eqc2YAl41h-9ENX&q$v*uC}0X-yhH8Z-C8$ZkMcex31gH5?y38hy~7bdrr$d%NAc zXSXKP{hM1^-fjaK0<6a;^2qh4PnDi56a0H_2=R5YwcgO{o=ZcuQig_=%;Api@J2w=Lt zJ=$HfMiYueM!;%tr~LBnbobNzymzI`Wj-7l}}Knl{EDed}K zFoHx}v_dOIAVGXUGSUn(Drr4QuTM&krB{f}bcB!u?Bl_kZ7!})KEY6tQqi<#x;0@l zso4u1wQsCZUE1CubZ3P}iH&dxT8&hv(Cu;i_9wgFKFW3-X&nUuM_|&rvDz`<1Z1oR zYh&5sW35ae8&z7d5dhRVCta}_gbMjw3KGFdw)t@5i=$)!0y=slb-O;fa`Jwwo)TQB zl@R=Vw}HH4ig`qduwIRZWjn+ zT}Y^vvC&6YjD1mtVkR+aqZ;2UA|olIwANW_b(U*utPc`H3>DWgf`JS(pb&HnfRTMf z<&>(*swjhpp5t7AK)5N2NpkJJmsQ@!FH3QVYMb$l#?VYx!oH%$`YMe^4|M8oYfO;wVG=YtJdTdhaY^7T?sDK zks=ZiHSOAS-sy4!FE6MtM#OoRp>Q-MXj*AkIYbsviytJ*Vu|Ku z3&C4sd+m;vvenA=PN(aGj(1K!-!TZVQqzDJe!uDS(h}e5sGlSPf6xMCqBlqjDl=(Nb*P;1Z}K) zI`)#5NHrQy38}lj7J{4|9UmW$W3ZIsoDl`cpa67JM=k)O6az45ltooplQN(e-bVyh zRHs!k=s5s-WwY69cf518b;0`(V+esm6y}Bw-^{5N)oF`ssM-19iu4Tg4naiJ+VuPV z>(_6bo*bW^on~47%B!#3x_z6FSz_~9s%x)wGMUYcHH!2K=m!_X7+5;^m&w2tD=s#g zP4kFc2u2&LlO~}w#{$j2pL|Z~s0acPh8Xq_o=&GD08ymo$i)>Rudy~uv$8D9vRp2y z&C5{N)zR@$yVGrVI>X^)&Sb#m zdGXS7y&N^ZfE$Oh{8z#kGGB`chk%ff(FPhd__SNpqpF<57$U?FSYoqvuv(9%g^Fo<4p^4VU>;lnj6_T* zggnpKV&e{1h>C!Klg#wL{POr_Jl((VW}~{U%VWHnCAOhhoi7_Rf}ZzKH7fm&g)y9(edHEpZ|0$Vh@gWYxC+8G;i;HaP?*X=2u{24ex!* zJKL{)?N|Q!#@42_rXlKu7_ClQ$#x8f03!ru;VRC8grENW(?9>{m&bR~J%4il-S6Cf z^2^=sIte`3d-SO}scu^x!?m;I_rCROn;TogG0i%W5Y_yHLjr=>AR-jb#}({gc8XaG z6$wNhWFqc(JRYrYwNc_SLIwEZ>BD(Rx?GqWEy3~lq7>%;JRpweBEXkoHglS(5`~kG z-ujEr-iP33RaH%gt}G|7ynMIU?WAdXba;@b-#9)x{HwqC&edzzTJ4UtRuN@c*2;4h zx_#%R>o;!v*>}G4wXc2cTi^QTcr?0tW%t*9?bkx^H*VhC-``ijt%Ra4iemQCom;1; zC+&9o=;-+7&0F{HefEo={qW|kJBdwx_OqXUeqf{I2?WB8{hh~@BGRB-h(fE z;q@#}UwiGfYuB#+`Jesi@BZU|{N|fqoX%!n`^K-n`|iie*j}fVS>vjv}bpU7qM#)ZDYbCQQFTv3-Xzn4tutGnQp^vsGp)hC_i zy@@|5XJe(?EWm(uUHjk@0R*VZVmh5{?(B4o4JtMZ95ZuWigzi>>1^URu0B3_{7MX) zx_AhYcA|?s9bxPCo&J??q`fsjB!ncfi!KOZj&WgaEb8#!$vYlC?QH}`8mnaUSAHW* z$M666huP`Vm)1-_I3^VoI>*x(yjHb?u|rUJ!?H)%n=*pp#IO#)tUwwsWb;fn5x>Fl z7V_BijZ_iUCajKQCs)LsE=1VO?J@kR=s#)WzGOzl5JeF*kMHX{zBJivGz z!7&7-9&tPcxM6Jv;OV`Oj{l(i(Y<^5&Q(A^+q?h8wcR9*K=T|zchHXAqdN-1jEO%tsIz<>s9g5!z=gb_8Z@EV^xW-RH!&)p`T8&fO@ z@dzR)49Wp}hqF4Qiq_kh80fdSj^Kj?p@`U=Oi84jLS}$)k;z)RWl+3;n>SJ5yqfGh zDlSB*H3x<&mg7*nUccAhy?f`@>#r8GGRA0=fFlb> zY%0=`02DPp1+^?7n307eV`L7IV{E#si3ACN5R6srHs!6N2p`-(`B-{Ks>8ql5kMFf z=N;(u{rEJDo>tXaHPmPMR=0a~EARJIx<~YwV-*odAaHY_UA~}I1d+xmD=#?ru>gtb zXHii+o`NAm zR0LE21|S2lL|QGpfXx*z^OarZ8?QFP@7TH;JyP$T#={RnyK~EhY&e`my*50JKmYmk z(LS}h;q2MgXo3MH0%JhH+q)Sv#Af~?0zhw_RG*x=01)DN_q_c5m@Qm2L7y)dvmr~U z+xf&~CW49JBR7tFW{z6B);1yps;bjNA0o}WF$olLlmG!qH6L{Z47yeAeqp+C7fdD~ zo} z(tg~3{iJ*IfHs3ihJY+2$RHFW2s1DP5}|X^Pirc`tY-n0r=<4L`8ci6?R=$^^gGYq z$*M5|%xtUFxv(6!UwW_m)tOENfC!KvcS9(~FS}0&!VBWie|HUpTrN#Q0F5Lffe18) z)Xp?T3DFpnW~vNoQe**pncm8iK{wSJtax18mRVK@zm9cnj zw8`^)&2#X@WP14c$>FodYa1KrV`d?>8k9m(zN$hsQF$J!f|%I{AWS=*yxVOq@yNlu zQY)>sGKsQjCO}-XwQ6I~niioB4z=bwdITaQ5eU&*leDvz4ikjxG=L<`5F$J#1s&Bnq;7((SjU3+#OSK6NzP;gm2qkdjC;=HvOkq8-Nah#Bq&FA?P zaHZ)IE^PWQ$8O|O`P6e8+_}eb*-VBj;`V&QDGWF#cp#FZ=8YhZ92cZ!tuzwG7?>Fa zXg-^i^I%rflBkeb00o=LXd`hm#K@#XDGJWzdE$MowPI$4N(g-nOP`hiD1%y~p$L(x zI`neW>b3L>EX#5co^erOzW9guT&3`HFVY2^Kb#xI8`LelsCDxBPTJ4mu&ofEQC5D6 z%mv7cm57(X9P&cRbR$sa3LZBX$17asTc?_NUZAG0XU-o#h?`4pADx3 zkR&=w(>yn6g4)u;Rd7T?^)ah6}ZF1(88WyN7KA*TS3s{{!UTA}S(N)*{^VPm`VTm!a@apQc zygKOx%MvcA67y5(xt9x}5T_6sn~bXBC=hviG~7QP3X&)wk(y-~N|w@#cy8J#`PB2U zsv}F3=Ge=PxgLN^=RbL}uN1`?7uKca&j%Dxxag!o6p^?npAdq`i}pXfcn4T{I&vOx zlvUcvDt{ROs7XIXV7Aj9F=JKz28)uOT{3n7|X zUbgyYpVlX@QtNgDP~zqSu$m$_LOwPfEfJB4BB_WZNb|rUAvIw(1ci*`L{+UVm2M6^ z8yD+x?5BrS>FU9??B;Ik+Jx}|t0Yf$1HsH4iGV;X{n@7v zKKYX$|Lkd>%T^W>+%vq-&vbmM0L&&*o>~o^NB*~Wzw-J^uW4gyC!MvcrAtB8%OZ#2 z8GZa=OjCIIHOw*)k+dZQBE-`Xx{(l~NQ^O_PZIgu8GAuZUUmz~rK!fEL;898+yA^E z4!qo`{(?P_pdx7JF@{5NpaEJbbm~rFMs*^>#y%#*?sir(eCcpPiiwK$gnJHYXhtlR_uMe&^kf&50Xtc4#Gp zb7>R#g2hi(F>G>P2)1fQS?M8!3*_e)(oa6;UA;(-TOCMXZLw8H7$ldNN#;iOio zSv?hkpG^&l0uWLP5dcGs(U*z%R<3iceKC>E8?$0|?~|VlFofKty+kIh8#lkWd-c^; zZ&#~y*`U-E&I=-m5fKzYq_UV+ey`nUqjd-pz3Oe=+PFI?kITm=`#RE5;d@#PLZU;m zUQ36L5AFR^xH-^=5uTOiY$~tr^t6>y6_tbr1tsS;VCjIoDG+?TuZzxl<#0ADQej~~ z$@hw&%^C7+eVHk|E z7`;LzfPfKcd0~(s5Yb9Qz~%QGUl2REe1CXR3{%b_XSfuJ1&yN2qEXNhV3rV}W^qw` zgcwBx^R&@!5b*-POF(=84$@Hk1R0S@P!lPIR;xtCaS2CbRYfjE()H5E%Ev_Oe681n zh(e4$4$el!aQEfUJ~wbB zQP^%%r^jGE{cP{up?a8Zm8cOK`5%MHV6Z_5*>L}=A73Mfj?}@0}?Y7(PJkOL;EL=NRJLkP)W+G*jCZYyU zPNYp@lO!QR<~a903u|p{VohR{R?WgjNQ7iHBO*4%Vc1Y2rTISwzz9JEq7N}Nbz@>9 ztTC(srKk`vG>kQ328lp(7$krKq;v5=kbo3|YUGS1XKik-M4&m5P7w&KYXPabtmVN` z1nD95P_t4pJPhCcvx(MZtuU+Uv}u`aKJZ#&Q;N3;gVMEHAB@}+;Sq5g^z(fTF9a~i z^T&fm+Y94ZAy*+JT!f%CNECn=8MOw6=xf#*T#RKM>PCPTG>I0ZD8d1#*+CK_LiB!8 zlzEya3PTLTk`Sq@MK~zc)><{h6D7zjF?bQwgps+d-NDiD_-qy;A!1+&&a6oqHeT@+ z^TaVADYDiO!RhI2Z|}r8&mv_xomI6-vOzZojy{M|=qh(|Hqpi~@X^ue9S|;)OXG+7EkGM2g>of_3| z8|QT8V=-}s_ep9wf-mZzv6Gv;qm9U9T1{OlNKvA05FElRfSwBs``L#Q*zWmbT z4W(hm)6ylmU(o-$D>ML z4y8V~>%Z&{SyA;@2E?m%(Rguo`~tG-b87Xu@U>)bzX;6t{I*ao(miAmKEm@f72=D( z)1|hN=fv&il^M?B+IlClQe+T0wJBjlR7x3?lugScYGr{D&=L!d_Hg(t(a|Q_X=Dv# zEZLNa0`t-FaZ;9Oj3imivM8<+o&p@XS$VcEY!e0bOd^Jn8mg9d#y>0`pU7ykp(c4x zwmYP<0_CY1_p+<|r3jp=HS`$x?<8)}S;_ZQV zq9CL#Ht{||ut*U&d?rxif;`J2k|JqM%g9L9eYk zt+vvMC`CpoRu~0B6a}ai8H0!tgLg$l<}?S}5@h1ax)bHjW>ry4>%5nO)`!POh&1T0 zr&(G#*Z2-e0E8n7H=-9cb4@~MM%^&aI?94n^nz=7)$RBKA?gwvuy)nleE>kJA=L^g zY9@h*^AJiSOs`C5mc|@d`Qy0GIxiy$M z93Ab?W>Z2?q~=69ncGrCAaCV1Nls5sLkJ)Xu>MLtpmT0C9Ckb1Jj;wR%~mS}zg#65 z89*D85V5sMRaQk&lx5+)YmSZ3*fAEeFGrb9CrM(`Eb+m^yh`!>Q%s}~VlgY74{bmq z4bKHVmPZO%U9_I3G%Oax<;_S|Awny!+^UsaUQ7jF)IK&TND_=FB9S9p#?8*xvpLRe z5iRA*MVc3yxdbmsIAPIAjmV8f1{)7u1#vl*Wnno7gIoxqHFv+7gY)P2zNIuf7rwcX z9+nIxIsb?eDXjpI8{xLm-0^ZQ>C$KIQm^9z{WN!yBZ{IqOaU*G%W>7g2C!;r6T+pF z311lcSk%du0?6T^fs?(>ido?CDHV3q#)cgC8wFVKmabHKmh!_Bw zh?@fd0wNHBB507FN(rK8DFc^5>IflXq^`6()`IF9Y^7|7HNnXVxsne0+iQRi# zLgXu(u)Q6QKfZtO{px0Ka9iskWT%t8H@{RKKD?h7+kKl?u2h<;F_+V9ZKFTmx-Irq zkr_}3jWs=@L|`Nk3pe}4Pk;K6J1sU^0Z3X&L406~(|@c(D+PoFKj&NEN!9oE{z z8Sb2OA^{`-g5XS%q9~CXt4dYf?N-@e+U2qx(O>Mp#eYVJ9dOn>&J>G>%N2-2xH&y?zLxuB)o5y!Z3@d}Cvy*XyMdcrqS& zwjv`lc=Gtc?w|g%FMa7tpWOXqGMg4fxiuU;FA;u3vxo!Gn(x zfSLOJzKAqUJD*p(yF1SLUa$Y%@BH4!pL{H$*!OsAleS6A97`{_@%G1uM3IRtrQO>3 z5D~-Ya|IWhFI$=X={d?9K4+i=`1`EY>k9da!m zs%{i{7OFlDGQ^X5v~%goAR_@Vz&gZ}$uWc~FLHydj!^dc>dN6@IJ5S{kABh&nS&b) z-hBD>@8-o&5fqUOxYN=YB2sD=3{?RMntB>#W~hdUjrh@=#D=ypX za(4{DO2d~ePOI@W>gQhh!q$doFaR|~a&9&ajkRU&MC0tVe(=fDH$H#qi#N7j+TF-9 z4?ddwagk|BnBX}r4<~}5NNjt$jF35yC zp&}xYQD)>3bH+iBH#Q;bKfHhR^ZVlu-OW>1Xcvuw%HFniX)uH*pKhH#xPk3W@`baP z%#Lk#e|G;_JDLt}UfH_Q%X%NiaF_}gq9r$jL6H{Y(&r~VE9U`rX$Xc4K!z(ZC-5B2 zdFAA0oz`|Zr%KRhmCd)(^L8)C*7+T{-a;;`m$q#abEDtyd+z})N(>>ip$SpUjM+JI zgh_sG&bd6#eC7Z(im6B&+8CqvS)S#2UO4BI$p;q8W}g?mvR_w~m@eiK>K$xvW&yI} z3KftURg|eyE&`Z}5hfUG(lBU>B}qaDGn0<>tRjK{5~WLnOp+P^5n;qAn$oC14J>h^ z6%a*0%|xO|OpS&&7y=aBZ6uPifdw35M%IuGi97W#q|XgN0aKF(*a07U1r!A`TL@NH z)&`5w#FkMt-MW!E)wN{GglG{$Ypux~0GMcL{-;&ZK_@B@y*_03Qtu7X#^A3*jjJ@@ zl}CuJksDX^cxSO!$$`~sY{K#BY}QC#xUA?ok7@@;$7NZ1=MRo1&XK9kX00rqBT?~W z-1K{8;Tb?dkr=_?bTqsB;90L%7P)WgIGR*M*e^3xD|^NDt2=qd2oMP8^XB2>qbOEn zKD2Q*ucz}S8US|}uoyl)p4fgoKAm?qDo;0WTqd(m?>#%6RSe*WRCGFTMGoTiJ?HT7 zbnKifGk-Fvh$koG@p#_ER@CfxGG*rhIs~7oCABAaYHtO?Y2A#c_3c}idW8pOAlJmI z5o^^f%A{%$AetqcKOqn(Gq#MC^#BA>L+a%az`7Lz7$lpafdC+>)uudZ=*nxMkth34 z$5k*iw1|*n?@i8L0f2^lV_5nfAQ-obV1UYMilFH3=GR}@ynTghM6%<1chbB-o0pw)v7Uz*T`^?urn4!} zlvMLPbNw>Q8G%%^uI4c`MOixUb4R|!JOfo%wQzWfr?b|BXYU%7nW~1^&gL!%xt=vD zs@`QQa=R{jA-zYA8B-!KA`!+I+cqS85E3vWq}d6I%V^-sD3Tt^NjhB=d0x8i?N^hi zqDbtW?AA@M3WJXhK0Yd@!|Sv$*o$FyaB}+Wv>k={r~3z&u5Rz_ZO%`cvY$;)=e>Su zEqciIZuLh;4In9TG0b0nWBaYIUNN@6{q(`;c(&Is2U#!o0ia&J`SHw3yYdV%d#(&P zyHJ>2H=@wR#;^0Hf^?!Sz{NyriAY)w8M^pDLS4_qeEtetP0w3}B-270xFB&W6EQn< zm}1A%Vn9_Lv#J;XGa_J+Z==H~qwwbf6X)VMkk548UiIJttsHW{ zAQK+Xsfnt{lxJm*7@!W3GbEO#9cj?qVctVRh%vOS76nXu=yBT4U0VSeXH0`4W0AIp zJ|FgTr8wzZsLQN%IhF-e?8D>|p6>O=TNw@G!1waDZIEcN(Pwg@ZbN7hqL((4#xN>6 zMNlvUWi$jbLjWO63|&M(mvpnH&jZO<0So6V&{gg8*;p%u(5sn=EN}tc#L+OdN|0Df zwipoGg+=rNK;ceLkALukzs<`s&x^Od_@(PNZXwWcqiNc@s;jzcnx+wOr{me^zc zJ}b*UA*x1Lo~vDEdiP4(ww=vpgTc^y7ut5Qwd+1OCK95$X{x3+L|$ZeuR1gFT-3mt zg87Vo4Qr{CpFwNI7kl^C9KPNE6DGrB;v~N)>}-KYrsqgewjRc7wlZB^yb-#nx@jdF zK2`n(%j8O24Ms?pg`T5N*xFTLYh*0IHRvjysqsM-1ijA)Eztr6#5pEnTeSmR>_A!0 z^)E=>Bt+4)bLiH@XR!|pPi0DAz_myRTg82!^I6;39v@Z|&}(e<7$dV^mt`5K5=`;VTy{lmYze(lD_#xT9sSvCLbzxYpg|J|SeZm=PdDL_Ffb%Q_qh3${8?_R$wUl^I#sqA-(fq`|OErY(VDh^ilXycCFDWRHIkkG|z|ke?I3=w|C3lk4O81FHBzj zoSi(?aD4Dae*OI)%&a;XD(8R(sGmA{> z6de$OJC)vX+^zGM{ngj6zVhbH*FN{^>$}^#W;k!9s%3n%@7ZDic7SNDNImDv;ASmW zlOUoD$(C%S(#xPxdwk&Y!S#*J&A6~EFP1g3av?v*45MxBI=n{NB#?&TFr|*6;V5rhW3{2>^WkYhND@ zhwr`nt9y6veB-yi{>T6LpZ(wdum4?)nzSv8U@J+aVpSas`d|Or*Y4lD3x&g-t#&)N zJj?Uq{deT#u-VFevW2Wi11}CYLtJBVnBh6Z^Wrc%!)w55dR)>`+4+YsUgWM@bxWMB zClS`+fCd0KARwZaJZxC~659|O)ksWv#vN7ctTIgytE6_F^cC-v=v zimSh?eO^z30S&jqD>vGgC+OKWhsuR0^6^Yxx&^OYZ?iJDk3xw#6Op%=^At%D7`rv! zf;0t$cp30;-#-1d^?%o0yVQ~jG9@Tg6iUm~G$XHSdUoQT+|}E4_PT>ljoxnr*%LCG zMZot(z1lUG?INU!g%G5v#8XB8nR0T>mv4mE^5XAK2l(FY-VLRJrK7V5dj~tDVVNAA4DM-7S`_NQsJvAck$gaos(FY#Ebj00tTHl}*|y)4Ddf`+(30CJo;^w3Cx| zaGKu&+u)EXY_%s3pFPU9_IySZgfO9daa4y%(>6spyL$WQhfm9=CttXg`#c?J0w$`R z=LHl%#a0yl-O8E(*~lyAhh3FFEO$SM_6#L;y#Pk4c_;i`134~=E?kNQ zY}V-hl;*A0K?r%PXS{g-UWm~*1F}gg2Q!{aSG8X-O;{l-Tp)9@&cOy}=^@)&Tm61N zFA5@-BxjCoj8Rk&(UD_zrVyeag3o;JbLZK>LK|X?5>-UKcSTX=Md4k7Z!B}}ES-#- zo12r#xT&kIk2foG+Sn-P0p_(ax+En|l}Q&=XiBLcAxhYQD!H4x-X}PGCq~*#HyJ#Ews_1m@0Na8Q`S} z29bb@E-i_$shj&B?^omM`t`m3AZN#*W@66{CWl8;8a0HJ26I4gGM<~F zceB&+Jo8NG6t!vE)A3vtP!ot*&A?J3Ga`b`rMY|mK%=ywlkWgg(}KiyGN~oymw+S$ z;Ji9IKAkYryp71z%YEI%(`nO&RwPkvOe8{UKuox3tu2B74b4;qi41{YHkoZ?nKy(e zT1BaYHljg?!u~AQ^p=syy%JsmkYO0#h7_>j^Zx06O zb3|&Z`FuP=)FN}hgk8Ip$>k7D-eo zH8W-=M(5I?lZeQBc8;ScB6#PWcZ<8m664-=P|_rFCwA-{;R0+dqER#i4Tg-RryC`N z$>E0+o>e#7qxhJ&Nqwj z+*ewNJn>9=w>o=ROuV0;J_8uQusvdjbEaH*8l|n<9)#Y2oFi*BLR$l|m!_b3Q?-p+ zJ#Ag9g-ASUA66sCYcR07_u5`jYy>Ygk59*KsGZ|%yXQ+KnJWqBW(A2lWWx+I4+Me$ zSyALg#@=Bt&cghewX;0rJuGqyGpifafNVw{$XO$zEvk_S_zYc7z}4*0D`SX&;7ce< z7v|8`T1Q3`cEXNSuxi+lf*L#IQZZ}D9D@&2RO7s`YzR`jdSa%QStPP7Lo=NV06AvDrj9Wt@j+5-<zNwt&7n0|V4l@27yfYIdQuYDolGENE86 zopw$Pg&lcSmq9gW4ggTYWD;8Tw)Wf*6FU>10TMZvslw@KQr8s{f9`W%==HZoqbjvg z0Gacyz`|v*ZmsN}#E>@43UoFaS?+1loOdNK{R~F|E2dLZYbACn?yfL1dyeDYy%`H8 z37Vc9AI+!Z&Jsx2(W4gxh_crs;>ma#LR>YAAkZSc56iOG>-XBwR#inz1cZ<#6hur# zSqz86*_39pxvEVjlYW1&wYhbAy4kjk+G34{)DgG4p(j*TQn;%1H z+olCG=)zl~MbT1ZruxboC=V7t4 zQM{3eAqFC5$EGP_U5V`68ExzI^>aY&742h^uyoI1)76bZQt9Zz;* zP~HNQ2UXr1G$}7atc>N4B%g)`VAX zl|TIc{MM-V1<-q;o}MV9ZEef5vYtLXef;cbc5C*zH?UV|?qz=X6N`++4J5EZD6zxNe(J_hOdNQj0e&3w%k_ne>!Y;D_pX1q=FxMW|5Mh^cMn?YaXn79bb zflKLM`VVEs5++X`KPrme@zJxUsgIA2X0z!JfB3h~<(O!PM9T+(NK9P;GlvjHqtR?S zefI3Bs$RQxeLkONndKQV<7qY8KiI!~c2Xfm43XXdhoI4X$9WIUd= z?bdK-!lh^$_X&Y98xm)mS8jdvAE`FZ_gvN&B8R?o*f&wJd1$K8qRW^#6*ROUUJN#O z9BM|bm>ytK`FebL+(npGB)FTHAxfwT9;fErPV0N5;AiWo#)w7sa5n4J#51A2$O z9``q(KQt;1o=tx8{tuJvHTb2UQ~)%}?%@lFp} zVcom6wo*dWSt|z-mNN zVhU|b%~Hx~Z|Cj7>12CQR&8veNY@>s8XBNL7l&uy2+Ty5uwqEJ6uA9zFE5AH^u#W9 zqg^nc!sq<_-9aVbJR2jR5t2jmYNeuUiL00e$Q2z307M3$92KMu<_o9 zx(%`QK4(Vn$(LD(!lY1|Z%q)m1f)OJ-LNwK23g|s?j_lY`N=0R6SW8~Rbb5$Nnsri|E~Fd@OtfM{ ziV#$yMKuPuRqS1D#*a^)Je`krZ*KN?dOHI@n@mG1CT1YbJVwNFP`E;`+#J?TEmGh5 z;`Z_VX8Nd-8vp$JpS<(w5$v&CR@~m0e>|H%3dg5mWgEOYB3Q?5tb-}em+&g0iDl6V z-IfF5Zj+3pXbw2JF}foak~0_?DZPCuM7bj%8R%Kc=%O7-nC)ay!fwf?>j8e0LJrN$ zgb9&MMWdODAYv3DB2lqK=Kur%=h=DJGiOFoAjO=aO znyF}9tPi^PiMe9~0D!1WXH~ILynisgw3WSa-90@KcTVNA=3-iki1Ed1!Sy*XBA&yP zJm+o4_0#=4qyx|W&I|7M_5N_x9D&cpSFHDLE9?S1`!dhHveno0>gR5{t>KIUITRNT z+fxUzv>rJ-K7RCgzCYGzFpbS*)V4vb&^Xv(H^fLfo5yh#Nhw2^XL&Kq2}09QZ9yGH zvS_$d^f&sOY?)g~6&)l`cPHs#AVsS~{bVxM5I9q26|uVIMx9dDiuGOF9}4>z+H5i* z5lEm45hP|&1ObnLs1mhmv{8zbsX*r1jiEYk65VXfZKFvdsR{xPfmDJ+QUsH>sVN2) z%GAt5+wWkcnbZN0a_8;>fN*jE z7n5MlL=CI*ht(N0E-osEsD!F`wuL#rjafLg4ORrCxDI_m0AO;=E<~AEb1)@9F}rvF z@xkF36UUyrS%*qIJv}~n_B3-;6dC9;`tOWPkRS-lT`Yesyf$} z4$LJ-6D@@H=q@nYom?3*10aMD>$)k+g1Jdi2Iow4 zsv1I2v$mc;cUIXVp$g9L+@6mDGc&Y|A;ybMF-xvDF{xs=Z(qw5SergO$II>UMUS#` z8$bJpjk2thu~|pE=m@xgi80kdrn&_KqH|87s4n9u=>_Aj#S61@dT%@Dfms{+n8hfF z;2aPUBdBVOVUZ}Ft|-IjZpkwi)#A~&n66{0de1^I(K@CT+QR>`m?XFvV1C;sC<{v!aGj3@8C|K2ONU+Zt}rjOdQ149dva)Ylp z`r2{zlYjkh-~QfTp`&a(eW{l33S32|4kiR(pbSPxXr_kIFoG!*3@^XLA3i$O6tjh> zh!HU&2_$!aC-v#-Y5+nYGNNeMsy2dAKol&duuud7@Q4|yBPGz6UZTTi_UYaB(kQz< zR~?NC2#+4v(Hs8BeVgBDUu*rzyqZnJY*hFFp$aw`5&NrU+4sedM#rbJ-`kWsAAVSt z#cYZP$Nm4}fAzoBJRQKcETLksXGc{Pja%h9ZqD#qSKj!;-}{}{U%ox;4f3L3rbK`V zqIE0tdUp5D2X{aDc(A$Cw)@mJ7|5bHv}@auK8L@2TVUpFY6u7p5fCCy1AXu)+qnFd zn=jv9UenkK{joVcTrPyno_j3VD)aX_2+v}^5nIh1|1Zqqz!x+?D?hz7Z{WhC%A~W| zbTXYfYL&v#(IGqf)vtc?)>~g$Fe(;eUbOLe?49rT`@LQ{nM_VkPL5BGKltE-rfI(Q ztt_@x?lJSkq+HbxA3o?0`lm-vG8Ybx4(s{sqYr-d`7eGswBh9BNw3!%4u)-Yw7-9E zG#Z?^$Cp7^}Ma+rRyr%U3RYM|bWu4{HKyNDK<0m0_-F1%-eBX-yF8oE3;+I6 z@!`*eH-Wd@JeUDp+kk7ALNxm5VLm?aukB^Kd8}Fqkee@ObP~ie?6Pxk0X#@==LXo9 zqCL6qet19Lz3Hyqv|c79!<9<_Z1WZ#9Q0-l4>CJ>*4$`#V5)}R@MT7i^pVP=P*246 zh$;u)r+C@(rD$6~qHqN9=^*xA8N7Pw#`T*!v1ueW>>RTL=RW@Qa0<Kn{3a)l< ze&J?vcqJSGkRSnQm&T)@s>zU{iF)PZu)vWyz|iypPe4^rJLk@)yDa3*3|9Qjo!7bK@(NC1{LZL zKlo9=_KoYkV&JK*tZAT)6ji$c*5a;8nF0*p5wZ+>8`RqbUqo?FA5VXL=in!^@=kGm zQ)B~=kQ0~JDzZmTqhtCWP*<-N|ExIe>LG(%m49iLY1 zdh>T?oW0wr#5-nfJY3 z+3S@=*fjNc(zb1gF{&5>5Hqu5CIl1}B2raEWybA|5-1-{M^RHKOQ(1PO`w8KU_qVQ z`D{yPrbOI57!5=;C02>5_s&d{8c#)1H=`;5nTU3|LbeR-faRPw{k>=A0R%Cq1+a!- zMldC9z#`*+2;@z}(0i5QNha{OT9lh=1vIx4nz`09}TTVX(!+ zy{;-#HH{WqXdA0%&`hD7YdzEX+^WjznKpB)Yik>68f#k!L4%kCivlTBv$IQqnVrVC z*e#sjcdiA9oj(ND5PYTU&%zKOLtrpU2p|CNO78TQMFb=ZWMpWImeWuWW_7HNtHW|M z+#ML`=xC}j<$rXmFY=^j7Ss|%575xMC>{jWG(23CG>8y1<#q!KqL`ZLf@wj9M5&P! z)Gmxmy4jVOCZP?ss!@s29GPembC@MxjDb%iNKA@rGXRyvRzm?v>+tB_VO_<{@p#nC zrcnS>gf3+c8BG8M04<84Lqv#ZfS_o!Ff<~Z1>0bvi7h0CseeJyCx@f?teIAAo5*;Q zb|uQTYF7uHQ2^fq-C<3$? ztKcI_Em4I$R7Au@1Ja6lFhUDe73ac;M5Ly!EVuS{vm#@cBlhaKwWGO3i6nUuQ4G}( zjLBtLc~YND<}j_H*eH%p=FRxH^mzHDjp6Rr2BHBlahf6_sEAk$DyFKwDDqy;-Y>kZ zL;w-U7z`vEP|kexXi`lgsF0_*M#niLI%PnI$lYGV6d6rb6AvJ{H&jFwz?@@t-d4hR z1{)hYd%K7b+Ys7NRr6|Isl?^MlGH-o*d+cZr` z4~q~&8VH!0h$3ks>m=EVS#rEvj4{hH024(bLPJ$6ik^xDX}t59&+581H6rY0Ld1yV zokv6!Rx0mJs;dX_OIL9#kIv3kdh0X-d_myf^Y`CbKH9n!YCYj`6{dME`|&ew?F-4x zYm5+Ej}~0JEEWK(KvcgA>-9Ebjr)veDmYsQa-{EUd~#P#cjis?`qsdqy#M6xDOB0u z^-Iik*nifJrT~>#;4=1yh}PB<=R=XHfkNi3HRsWRpG%le(OD)zj5Nza5#1Hqxa@|7 zWdN)yrUL2EO!;7G=PcNYoK&-?G8^|blt@HDVBQd98(j3Eog+1z)kML2M?~x(%g9ux zQ(#x9szoflLp0GiomtFF>h~Zth!y$Btc1Y1lBmzT0nTe^gHsU|%`!lYsxY6TP|p1U zTA+B!z9Mc3oXfb0nmHuHrq(E+h#?4j^2DHiHaBGG_a$Qy!O#jjQu7hG6#<-;Ip^#( z(5MzrH9%%-DLAWvvFf?Gl7d6yLIc-#Wq*vt&@tsc^R7h7(Msllqn;zr-MYyELi_B4 zRc7rl0TL8@7v9IQ}iY(#O%RIW|ird&2?(XgZSY0(DN@OZV)D0Gh$g`6u5@lm! zBhQP+j~^Z#?VD+q`@wKfH&qI9AzISiZ8pF4PI!5+F{+yB!Bub1?O~dqbX|Z1p zomYkz>qilu9SN%!OwZFi>T?vPGu^m!wpJh_HS0q1&V!;T@jy~de+GSki>{)J24cUV zobox&5L)+=Xk~J2h$xbp7)jpz3r>4HKb1MhP(Gg}zkqBnL55%^QH%|d5P6}bF(M$c zrPL13YJRgbCdgSmuza+y-dqW|vp|#M;u2Vr%DZPpPG^3AE==<59$rJQAY4R;L_ol& z_dnUXa{bxU{c1M-!$153B6{t$*PQped%I@cIzeJ^X;hxbqXxIYb{ak2A4kxE;x@YM zETaGc(Lket5JXf1wTKo$4eQ1o9ZL|_vK-jHH5$J=FDJ+@!{f9jY) zIpLjxWHg1Q87Z97lRx;!w7qQzLB;**9ee5KA8u@H)y=bRe{Ugb1E5VKL}zxVBzUVigOKYsT0-}>^##>RW^{<=RHh{&UdkKX$H=fC!~ zuU@%w`EUN_Z=;9-JbLu-dw=m4-~H})np%3SyF;E$N8kJR-)m+^yBmN;3xv;t?7XIE zu(Mo(=T^RpKK{89(LO7~q@KwOiN0qwMK;L1mX9`qiZ`uNjo<7K+~TKV-Yeeizo@aQW!h0vd9 zTS@V3+>EV0t;2MTE-MP@z24i{cCL;*6?fFC4mOW^lau+l6iZv6RmVD-0YMISOQnzW z-hoX@EpPMAmU)(Wg|mi6(@d1GQJIEb1g{8YjNpMTBlH}w{`s&S1C><4S zn?0Mg&3TibN$Iv~^2N7>;+Zl-2x01PRU0G&fJA_D1A=uyCnOC307%DMTO@0vE>acEmI_G1CBG`^7LyQi)%}UsB`0;LMujdZsOx17 zCB1qjLPvn88WP=5)6FGGtWN3A)u<|w9Vfy#8j4!1n`&O8fyAf^Kx`_YV3t-HL;_|4 zj?ghOKpGwss>5zvu3&`F;m|cfpOXA@X@fngCMP&eG}{Fk2UTP0EYc_q^(-3A~ z&>x-7>(l!3PT!O`D=5oUBAOymS{D$@V(+5)pihgIO4C+dp{?7K@hqTm>2kxNceRDk zDic~}jkVKew8=XT96&lv42jqf*+DYgrMM|cgDh*BS~W5=7>bwzT)KAcmDg?;{T`^Q zYTGoYrzZzbpB^6^wQaLri7h2Yh5+Qy14oHLBB{GQe67OjkZCjpW_GSi79v0q6)_^tn7h572oQC| zn}xI(2^~@5pCqDsl2aq0XV1utPSIi%LtI36kat-WVJ2pm`UMdMlNe)KB&c>#_sbN; zvR5ELT{YT0a{v_X%c`J3ivE_Qt+U6w8Pn)<~l**vgAOV06?7-)S8pT)E zk}{c#!3<1^1W+S2Rmz&Afwz8W%35_=JwB-eI5B6|f(9fr1QAIP6#@i>mSE;|lB<@; zPI85SzCmZc5bxN0h#W%ZoewEg)Q}9LVH?<*3{i3)oQt4lL~0&fZtM}Y4IE<5W>GOj z1I!4Wn6$y_8WAA#Ol$}d&6#?~NWqE-KiT%FZt5t(XU_X2qFV&#{|O9Fn}ZB z0-|AfZnM&jD;5jM^D&-F9`G^&Pi-_FS5>vd3@xU(m<@-@RnKPA#e2I9 za9yCcMOBrZ!?soI`rZ~zAutP66&Fn?Fh8Gk@c7B{~D|8itB&D(SO^kDHkxOIG z>k(Hag18>vcZM#&^BZt2`W(vr~pfe6u3^bIt#(lmDTbZwRd3=S_mQx5R=cV zgVDi48x5doKci{`2kY#2d>+hw!9#ETO!)MjpMUwg|M*+K^E+)dPb2p2?XBU)Mo_3j znu9|%o%B=*&)!4=+$7vEOi_r|1!iJeR;S87007er!=pp^^+(yI9c`oCxeq^ouRqv* zIpOh)Fae+iF~uz}*c)lSVT*!Y4Wn5Q43Y-Wi)>Ls%h1yFnZVNj3dWn1&u4XrFmN^? zeY5fIIL|#e#-~m5APcrd8{W@?wM`_eRU!nZfW@9}Z&B%^1b**MtixBo^Lu|h+}L<_ z@HDlBZJabRGqkpmdJ^(O{q`H*__KfXU%vd(tt`*dov5mHUC(Bdqr?5DkM17t-?{(b zD%mx27=@Ob)TR^B)~%4@Nit z@E`rz-nA=_PFu7y2vNGsMt9#?bKcu?17cjr=-~n}UivNdI1cu*f6x&5ADl_}f;)Mc zuZ#e>$Fg z-nq1K7Hqxzx5~oWat?|`$bu1Jw(g0 zg3tjvK-}Bg>-Y04>xCw02=(Mt$@whT#m&F)TM+=I5IASR3Ymo-ctxxMT7Ur97;G@@ zlzuvznHnMk*y-_OjZX%<7*AW@L}=@y{SWlP!QRWSxj*>Uo&2YFe*Dv2lO9NSrk<7V)bWuFb`gHNfx92U z-TU%r2l7qi0)yaq5-x3(1BaWEWgvJ4`4R%`BLQm0ct|+Da-;W^?@&p4_~h}A{^Co2 zIRE^Y+pNgO2fR^a8^d(Eu_8`eedp6>HgtLB!cp4~{Q28A-ne}=wv~xlP+~v^h$fS|dNN0VyolXJ4bkd$jp)7Fc@UuEmG|8Mp%$35`K_HxDd0Xi-?(&W8 zqRa~}ge5`@Nd*l=NS-+dD$IE`u4nGxaQ@-r!*@pd5$-)6T%GtqWKw1=3f$hK?LCYN zPakFb_gyVwCX7 z!DPi__E{GLzy(EG`i0fuGk@v&a)3*OXsDtw3KQo=UKAxdR2314Q9>KqHiQtEs4UA~ ze-NVFyZ>N39s{Cd_Rc%Ui4g!@_+LU_h^d$XAq;x1$n)cAT~)CI+Svlcx1e};!B&`j z)}W$b5Mso1-fAbRQxWG}R3XIG?#5Kv`>2AB(rf7E)e8xXnu)52q>9n04b!w!y99VN zi)Q9|*egvIAS{C{&!#cHJDs1j%~<&rhnH$Bj{#bu0xeUmDw)h;7kYz6fP}~h#ON5< zp?Byr@Hyuh=NV-gW(DRY6$NGm<~jKiy+`Lc?^#j6#x|OmMhh*3R@+9~N@wGEa`fQQ zDXvCR;aWeixD)XL#obB;ypc~1=GVbe;s`AYe@iF*;z>i$MJ=x0`P9iL5X=Z-r^r9k z@+G24Dk0M!DNAYQA{ZtSYrEH_E2fH6TCKK3D}50z%#q6+xrG`wRTh^1=s>XW@}KoX z!A#LmEk(&FAP5AtW!Vm>0opo(ftoS1ftnZsXcGYdnLGJ>tLRO6@um@&TZGr>f<~X- zEJxTS6A*wU6r_kLLc%&PKB*K?u0Wtkdu2=M4FD1_Aa`wrnnaBo?fuWhpczUOwBlfy{hb0BtA6Y8dNphOOd0Z>HS zHZXIZXGEMdVoJ0)7(~?wjhG#wik%!Ck55NsuaC|VfXlM}=5Y7&c1;oL2wHt<6B@7ldE_hxI zclz-Y`OX)O`R50Zow2H9WV6sr`@@!;f=@txmWWjYMAld(7$X8uE7&54P%uHW(t&}c za!-gVj}_L9nQ)2BA_6fa<6*0y1_aGps)hCU3AM`XmtmPw~k_A&yzff(K#}Z7$Y${@0q#i z^^0B~DLp3^Z&2?>e8 zUZgF+bz;VHi?YgxTI>{T5xrwc9ks+zxats zyng+q*vy_ic~UpCwr$N2$%8A{7g;|$efDhF8QZAa)FdW#dYy!5hD2asgi0U=4P)bw z3wJ8bG`#xLw}(v}*D)$?ZC-jUAM6Pz5E-HpD0R(CN9@5){EUPhVg;gF5NOq+E+lqf zhF}E7U=Ec#Q=`=l)(@l3=$&DE^^4wXjHl{PiSl1C}^vAD%>(Bn{ z|Miv2SDYh26p`6%dVG9x|H1wD-~09Plegb`x%%8KcM#EFosZr*K0IjWk00C}{g40p$iius z(ck>lpF5uOCMg(^^@}ANXZ--apyz! zk!M!};wL}<(aGs4Bd|#uY@9_RW6igp4{TP~Un z5Fmnq^PoU#o-rbbErHeuoRN=d3al!#*#Yn@^F;(ZsoSF#PsY`(`n0G{VxIfGtA6hm zU;ZK%Ol2Q@X<<@6`XxO6#44*>icy5PLOSUW2A}_(>tFizC-?S$M!(oId4nOBj-F#^ zD@Z*;Gl)^9h!90pLKDHvAu$koKqdoh>h^;VkJh+bcpk{{S>A=kW9RMnp0$l+ z83PzLYNxfU1p%zCZB&~l%bXP+^9;NL4?tv11XWnnQEAL`X0RYIw@gv%PNJxQoO`CI z(vesJQ@{7p&8wrM*WZ7LS8u)g((7-QxkuCGWML^sa2dURWwZ4B4#Poj`0UdwNB7^m z{%mq{1NS!bjb7h7V@lLNG9(d>4c4Rf_;h;zpt(DdyKdvt{-q-~tX;0en&mLupzR&Y zdoY{PlZXD~5yqLAA`-fC)>btcGW9pIORo;u+wr~0>3(gsF`$}VM)^h-n)YOLeDCs= zH)G3Xm~UaU<0{g?Z5K!efEG=sjULQs)}o=U<{Pgr*b%WY+n*=_@ASZ7derK)m4hix zBLa0#z{Oh~L_c~qT9+7nhVko#?QnCnFA@@B9Fa^-qNtejt}M$UFMuFulurCCZQHg@ zON3?F8w`e7UK}1B&8sR%q%O&!>*SZ{ute%qRZvAlb~NZ^U~qCe4-t?kO%{kyQ#M8y z`rXY)6Oty4$W#0jSP}#1(($Gulw!I&#JvFm5orv`u7?ZG`tk|6KtHDlGRpvZUCxLh zAP}}7f$-ML*T4GJFFt{Qqpv~nTU`Gn1LNShu)F*$QgP9@6b7P4w;Y$fDF{y zCQPe4$Fo(noUIAw&fJiz^*5diCIi^YPZ&)XvW8_I$#SCG$$d8DnM!)WN$`!JH(9>8JXB%x2GY3BZ_+Kjmx9?WOgv?^@~@(eChD$aHqHF*c}~CieWZ? zR&h?f?R@fdf@dl{SaZSI8j*Ev0Vt*W8i;ri`US*jpiHjI)-+8C0gPmz zNE$^XN{o`6(}buA@l2iCyvqelCo?YoL&^zQl(CK-AW5R&cS0*+<8v1Dq_yN=Onv26pG zsYL@s=g9*&Wbeoq-j}Tg3tINK8|}L_{h3`TrHw--7^grgh<;99{6?< z5b<30;Svu7XEEg+<8jsSz9hJ;gqgzyRIlX&^;{jY_Tt)T4^HEkUk{MC+1a1=ewVk?ahfgn=Tf>6d;pFLRAP)|#43#SGQ0h@?`IXT8GC|lGJqbNp~ znW_Y2?f1xe6vbwitN6?q!L<|u8j~|Lie)BI$L)+w%&D}KwrvDlR{ESPtS1fhsNZvO zI*lr}l?#)NBQuesW;z9;Y}m^jn$b+qTu!~7A%~{%ZOAz=gCW(eh87(D`TFX)ueK*$19O*vqieciU<>ytv02gQ~*>YPJW`I*LU7`I+`TGIul4C zGqZCdBC1Q)Mkmh26ybA*%Q~AdFP&LuPK9J;#5K?Hc=Hz5j*EJIrMM1RS^_rz`FbQ%+#rrHx zq6cbqU8g+R&CRXtot-ZBFr^lV#F$R&2xcL~wr!9|MLK|`tvoIeX9rI-w5y3UFDfj~ z#u9d3Z--`#uv74170v!$kt42uIZV@MB5ayQ&Ir*LiJ5GK(UC9OQnK4WipuKH9} zL}E_F;FOuLxbDD+7+iN(*&3u}b)sww-h-_}0_?e)Y;{(>GPF0OB$p9AhqGC1gJAhs zh0aT7xL|VN>StqXGsBMTv8vKG0MPB6`0OLGvvuVX(Sa8X0M{shW`I!5r$77Nzq@q% z%}00NIX<`}&4Fpuh^h|qt*uM9Z`^$4=_hx-Nr;rFb{)ADAuk`k+@=$#ft?3Yzh z&Ry2}%rHK?_u$gr8yj0M&jQq7fv8oB3;vH$l7Jy}&1x$77g!M_CSX<~1rmcGC`mlE zkUuBIv@(JQI-S`#^v5F#PiET{&NlI_KX8|>@O17z{5gF1A7@vfr>eyecdx;v%VE3^ z$G;43wdFt+6-;bk_VT3s;J!w;W6eR}!Im95QUo9b_U8Q8Vx^v&Cu!&n@ed7y* z4Rt^J;Y&C3x4!VX|Nhwi{k_v66ZZz&J$G}!;S&$=+{4x zdcGnqJXdbwQe%8h0evR$PyY~Yb{u{a5j6fo0|{3rt}pxw%gu;g*)3+(fvVoR!oW~f z_h*Oq0O|6Ov^pBkZ6hN9s81dn*ejPAsUAQ3ah~zsH9xCjY)`fZjtSx9c(a!|$LSU> zGq}9j)ZxkHy<83E)#K^GLq@zbKxhtMzkxA69F*Bci6ZweUGt`HI@>3JE3b0Y)6vr( z^>f~P*;Vy8Hj|gHbLQyq^u%Z2d5InD%w2Fn=GXHGg!9g%i^2n+pGRNtrN)P?L|r`G zJ1_s4f??^6J3ASc@#hQ83nG}c^Z6(5y#2*L{9|k9vwB|7#-PYzWafOPVv6Ry^NxMt zw};nU-Xn5?NQk1QhGHFzbV2tsGYuh_1uk*~OL{m5P#}oNs1?czBbdh6Hg#Li6Yy2N z8v#5D+6)FKS`F*?s!4o!$DTZ(qL1Yed=E7m2-GJOGC>HY=6J^LsN8h7zjEoVZ`JDN zT#ml@mH+hd2Vpk)JYz14@#u2QYp_6XAu9C{bJQCQDfhHN+#k19j91wg$q&Ea=p%Av zaDeh&zdZcfH_I=5TU~A;MBj7$EtAJ)AT3P}BWx2PAaV>cIyoHh;1Zl=N;F0=CgfK>L9FJ zf2unC@a;#x|E*h~X44jDEgE%71~CwWCg>z6RmKROEN3h{ZuPA-Qw0@FbfnG#U_fRB zT1T*?KSBVc;8Cu9xA#gm9354mR#hX= z>lnV-qwhC|?PO=W-Q3`6$BS#D98QptHav*vsMez?RnjTU*8tD9QepuhP%zn_s3Gn2 zfI%mX>`!PG5m=X4gf5K@e*NgAiE{pI#fv)M3sEe~wlReE;A!vLtwePXQA{Dre6QEf z^9;bEq}hVR5ZktG+ZF)IvNs$KiabYzqR4i4w#E}~>Q*$3o7ol-e-eW&;?xk45xwKG z;Ca(d#%=m!)c}b)-iV>70g%M7K!2Kus&#*nfryBRiiQwVP)ZcZvaAa&1c)LX!A#U= zSt>A1*APXEg1nPx7pkQ$$Cgl$oqFbB;T=DI^f*KzVo?#(X9q_`nSb>wZ{56p^}|o@ z-TUO>ljHIA$Tu}?#cWtxNmwGg47q3ACp6I3Af%fZkqpunJr(k#Mu2F5iim*WOvl(= z7K@LUAbI0~I+(++CQTjX0%hEVQ3U5wR#u>ROtM`Z9L}#UtM#+|f|Oq0Rjss0WLXtm zAQGC!NTQAG*T!c=VuSWD^*CUAg+3IJ+7{FtDV4X+-CN2p3Im+qBb3H9MULQA6}T zBX(7V-Ym|W*{B{L%(IOd`x2Q#Xs4BgU_=PSP1TH_JTt3eTe*z;TZ6pFDFwkbVK%FM zR{FdkLP(|xH8YDM-rL^Qp)d(CC`7d0&{f9sHngTey^#`Ft`gjsB)TeRQIyklA!rfuaVR9jXCeeQ9HqH_bc%Bj;3|hOFlxQ|>{YXZSE! zt8fNIT#Scobt1SLaf`TKui65I+VeCGQ2_{0)0qk293ha28Yqwx0SRVFj)tHT&`@Gf z17bE2ARuDsCd_Bcr-ZJj6txL}gx+~Gi%DTk#OylgAfnGYmAZEh5VDM&_n`(t1~g<~ zG((uxGe$1UGR8p6fYAVm9W#d*70l<}(i4H0nI#G#k#lX^rf=J^_dYiT(Ws`m%h=I; z-hu%k3z(5JWOmu--uygyBK82B7x{QPf;N=7a~I@#KHoyEDR2zewuQ?PudQqi*M@f& zJ2CTy$1MpzHRI(t!g0m;i=TxE98m><7ef8#B3OwgKY>+tUM z^rPdGh*1H`!u1B^T^$=couB}@%!wlS418gz;LMOF3&+F0xndrpj>i~< zeMV7Dh@dP2GYNVytD|W&f^MI#stFe_SMXoMIU*pe39+DVL2EecdEpgP}JHpfiCQx#mOat@q9sH6YI zofnFxup9QCx$NFH#P@@0THo7=Ukeyhqj%~=hNwAGM>z5(->o~*WcOQ1B6rx ztEi}S0jY?Y&zMO>LfblGM^x8U2Y`w)>Nw^8f&X zK)9Uyrj{Y(zS-K+%X@JBy1Q{B-@B9#H+z)%-0wfWZ~x<8X1HM;F%U&fL9MHvQ4>%Q zJ69?!A{q&h)Bg|{4KX6NfDu3ym+;4~0b-=KvX37!%&uSBeSLg1Ek-}zXy*O<`r!{| zTmQsw_H}DBJ2aD4J?dbDNAH6PJb9lK`070s%*;lO$?eJ+;jkbROJAX9T+D-hpd!K&#v!DNLI-Oj(a`o%q_^qo~uKo1y z{(oEBtxKpuluNrXI{LJ&-f)A>=xIIJ&3;39^FM$A{Tu70 z(}XM(3<`IkOdjz;CZI2tu4Cv|1v7}@tOHJnX=+oC_--Z|a8HqHk%Is-H!%sk}<5<@%Z zrw{q?0H;UPjs#$ z>6<;%o$PxjPp8%4n^$Ga0~ul?@n}leqe+9uwG#tm`|J!1>&h%{RSzZ#02$iBl;?s* z21a;hg+T)~`|FRM{5_Bj{Cf`MWeYsNcc-{?!vG{I02M{v>-F+HOM~6+M~rRLG<5?2 zy=#9j1fbF{OSgBaU-o9xdEK-C#_Tfh9CLbXiAo1TWoD)#huqtEGM~Tlm$&lK{^~<0)=MY%9GLJhmsoMnv zlf@!;@spJ1>8p4{w3RP~V3P6{&*UJBa8m^|6GKx_?LZ#sS4COAFiX}|1Y`mO^PG6a zoA^ukpYdb$0W$vK;l}4SGo>7Cki(T;{!+i_F(XnFM1UnmX{%7T;Mn(j?Ag>r1X}f2 z5RsUONIPpz4@aSiTYEeCpvRd*|p4@cus-SZh}3@yytndI7}h)ppSLqt`ortLv{ zz%H6aa@baF+0V;iPgLhsP@{n>9FP$aFtHkenGt}Y#V+gI7>rpRN#><$TZq`SEwrVw zbU~EM5m_hfx6W|9L<=sj%|wDRLsce>ZF{(Xu(i2amSu=B#wbz1Y|tOvy!p~6AKi&D z;DTgM-7X}lrl4ahnj!!(fnkq*zZf*ujO$aM^G?1!9*s_H#yywy^6_YT_uj$IrNPb? z&5o<5pPb%&Yg=1=a_{)^%R}#}x19sP$&W_Qi$B&lY>R?>T@beFmGAC?jU1&d;3&_laV&LLqtMK+Z?o|QTt5p*a0-0_o>`- zoTB6uxX26VT#T*Ha_5{%M5WLM1tCW7*fFP8-5f`WnRCnxDn`i6F-8OM&M{Fm6A)Da zG^RufVFZd2Q-dIC8bwqIlOu;b6^^LL```KYcZZujBb-d;s?vsrz{(;ipf8*ZU(^EF z8a@`6x`DG_Ys-Vg@Zw(Lf*u2575vHRT=38-}kw% zM8{+I!(Z#~dBG3Y(mU3c5DoQ4D5W<2*xPLhA4}27|6Ba(HKC9WKdvK z^%%U10JZa(b3O)$EhrKa8JGY7k#QC+*8qr-G4}eXN@(moA1=0r_wrzS|M0*Ag#u)Jnw0^T}KkaAR93GepCPq>9`` z20+u$D~M3r*k(n>C;KL1fG`7?vhhS9Q|{avtkeXOUu- zORofDsv1^dRz&pg+^1#S`S}II>gf3b2n;?~dlFayQXww}Rh@YEZ6Xci0qutyvAT>%w1j5A`s9PZ06Oa`bvJ@ zijXxK=+eQaEB2|gT)w4nQ~?-F=kr+%ZR$Qc?k;vUQKu42jtj65qp6C<5Zb10>bg#U z3n6F}?;SgbDTA9GA}~5GNY$!p-ZZr)^Cp1A#a}Ttp$Tm}8jYCPd+#&volneYWMU>_ zMza{A88ABtab4hz%#78EG}ZH?p!IC2MZ)AtH0cGzQG>$K)xLi^3%~iamzlFHBcdjR z7~{%;h5uPYs?Kf5OwKtGNx3mAz+$j-0F8@v(2_C)k_bADZ;6PRRhQG`^u>{xi=u!O zoVd7q7QW6^D8IcJp7b0b1`!cOEajFkr&xw=!MRBBPIKiYYr?w7@3UR!nvVJGb3FUw z6aX$4l+#%;yXJdXZ!fhnlo9TG7ee^qTZJIPHh5`iYJoI+q`Yul<&Bp_J@=Glz zG)yU+1V$K`Ly_y1%lg`D`D?caFWv0z?z+5)(dJF0CT7kKp6+At#h@R|B7i_LRO8uc zf(vF~TCH@B>?FhC)R++|VpI#7e2BJE&Vv!62|T@P?)cR|{=i00yzq@v~;*YW|zxH!jjp z{04WqeFli5yI@ytx&_Da3lt!a0AEDw6@I$vBEX*+`qbtC&Tke2BwOz9c;tZTfz+NVVC zq{j3izz6-}&ZR3SZ+@fr%6F~T$2hfEql(VPIUNjlLR2_C$lkhig(x}GZT;iD&Ue<3RDCQK?zmCgg7Ukp(7+#q`&&h`-g|~^}Vw_ z7f1P-SLn(RT0;R-Gyrt2ztiT! zkPooGQEgwJ`g#9L!}6K~2JiY-N3d#x^DJ{G2lM&3F@=66-@QuOi|-%LzP#HXkYbt* z8UJEcV0Uu-7ZuaVJty@Gk53z`NYcoMZ1Z z$4*V#wym0Z+qAkEPY`0BLyYxk5}Tk1q>Gq9RRdE~MF3UB1#qonv8tvtl*N2NL{vn8 zA%r#w>XWe@5mnVW7eiboIa|^TB#{br;lj3%LFWo@V0N1*4f@sDs|GK(`cY_~fz*jo z$f$^r7-C20(W(rN)%5ax)5 zQjU-#70r<4TLvn~rMhRcc3A2w#Mug}PGXRF4*6m5uzyA@u&VoJX$zJ}F!qry? zkDg4g87Ow6Tg3Cx;Y&~Ixq~51HgqwAUN)rkf=n!Yfmi+cd*t~mc4^DSGaV8>PwQCD zb#zft(2K2H1`9ADo~1Qhj9p#&bC=IrTNf9mr->~dIA^5}oUw(lQ+zK{r&2DFt<)vm zpt{5Gb;(JcP)t#cRDozfzj8D_s}#UHYgg+=gkR+%UANP-R*La*R%P2G;Zr?K;*qD<-LAZ z49FM6Nt|y0F)0<&d(H+b!6ZuCKx`n^1BZQAScFI}HnS+I=7<@|F}b8LN>z=fC{)5V zm&iinnW&5CD6cP#s)P#@_n2FSc7)&D(A%Q_mAAp*4L=gb(qT(r; zOVo@KqhsZ|UxtvHSqR~5_L)RtOhn)uMO7m3-WSD&b3Tpr89*d5GZINuKqKT3+7Q6Z zvdrgMjxDOF#GqzGoR+4U^WJ$?Q57{&GiGAv6MQ4f3!j5QkQf2jOuTns5Sri|6M=Ic z0G~X5a(e2C+^nvfcD}heWa7GN+{IP>b2Dh{vYJS0*!MCqecgVl5w*rr>&6KZaFA-xvA%;4U?L|^VG?ZL zUCe!QNjFK-h;5=I%zc}?qm`e&)kV zraU#!Za{X#?bB~EqGjxEz8`9NlK10$!QuCo*7%z?F2=@)w8w^XvB|OH+IRk4w#`2I zByFeCUm&*r!k_dtTW~maaFaSCB>F6>sup@t)v=_4T{V1%#+qT7zE!`}&qKG}jHL!@ zg_`AMMxi$ek1F&#$4o;nq)+IWEFDo>6iF6)X#R?^Ac?ylu2`Sv5% zCvKM8-lTtDTe;$(7VTVUxcvFe*Vrc$3X&xs5Gm8bb(s%TuBraQP5+)atEQvs=`_Va`#O2ux^o?goNOP z4&Tl5FY?#4H3yCvyS**^5Ql>ylE&PsBk%jD} z6iD}6WNzHCPsWchPu+iHZOlKwwxeB3+2oy}?gJ)iGIaf=+9>{0tl$B8ar0++wrG(1 zg*SQ=v}yNHby<*VVALC@^X-Dnu+6#6@d}Kf5^USimwu`-_#dx=3?S!KSrcMq5*Weh z-#Vd7d86?(#oRA+b9=aXJFHx-9`>!k?uyI5>vO?w1pLJ!i)EkQy?4;b)`^{4+n(3M zn;s{>2CzD44~+NC0nZ13m9N!Mq=2nP%h}&X_h1(Q_K9rhf3N+UCWD(qLM*kn&K(*D zh!qf@Z^`u&x_avPwV#iqJlNPg9`Rk5oPF&ag-hTr`|?U@$u+cNEkzqk5xi!!)|JrlfxJ6o|FyspZ2W%W1(Tp6V6tbEDHQe>e(NrKj01JzX?rqNZ1>QoMVTA zvysb2gjpK$HSV@`P4N1U8Y9sRbnA_qX|~zt3L;aVIHk56HeAlsRuC1c^zF>eJ%8b1 z>!*9~QsgaDw+G(3$L{U%l(rN~{o=hfwtJy?fAS0OfTJ85h&$DrF^|Z}!O1ra@@0lx zxpCObwfgYTj=!e;u3Cmy<8S>^7A3_R*7fkq9*;mH=X$Izp;N1 zDXz-2u&T;EYaLWC_o-u=;~mgIsZhEL;kS*B{ig{R_?{yLTs$P5u@hm&Svz{97`Sn& zG5Tt!cG}F|a?ppCd}-oeZ|$*m_d%CxapSPP+mm0MwY7{Nug{@&;WB@|P5P|_Dkia% zPwPvcUCV(xH~W@jG9GmDUmSXt13doU>5B^$5n57aL>mqWhK-|)D?tqg^k<+1?{&v^=`mo;TbLl04S|^q3#p%v^_{)Ye zD1H%j>sJctBCLk^?f+dq^}QhAt*Y~Yd}ky~SY8XMkREDfHmWYF;cPpaY}WVBulq0G zlh)L2DThM+;j)D+#EwnBgTQKBC$NtKu9G8Ly-|F7@@oEt|IU9sCF$rqn3{deNk&x) z;;bq`NI!JaQ1?qNKj;1gir3Zy?K_luhiGcxb)sM^cJJZEQ}2D^`&$HFI%qp2E{g6M z3dC^3$Qs zIVFL>pP~Yy0v_9WLqA2ORwE7x%MO-D(`#S-IX~tx0e|oQ;q;YXTBqImdrC9AbUAJ3 z6tx>qE@i7iir6vMlsyx9`uG zY};n})VYh>w|tL(F3P*|t0%1G%Cdf)tA*#q1)bEHnMZM1v7elhtP;zlbFjA&Ku?u3ucV^1i_%@ zT3Dktzy?J7dZ-QG&JLOLs=-aPXUvz95z3~RgxS689YpO| z*j?9oT8TZLLBSbJX+6AZ`S;4H?*4k4?X#-+3zCXoVl&+`eIYJbG#&g}==7DRtHv?v zJ#T*p!5;h9g_?C8RIIqo;ndC4-hz(*)l&BbC`7e9y`jsrpQja~iM1E=#Y=!6R+I*> zf!nZ>^`sg&AiXfW0tp8wFefyl9|QaHq1E)WiOa4h1u*cgPg!Xu4P`u6kKCw5aeQ+W{|D@BIBG%6;b*>5)zq8t`|F5*?3FVbn&NTjr?L0wuUA`tLM}({x5k_3D*8KsJbUglGKOi4MHhU+)i;fsK zY#B|}Z=^=`)D9`1KFG+gDBe00uD$X*fo-6Gtc2J5Sd+YBNFKhvqKT7?8PS3_Y4VYM zsv{@j8eE^@RbaQ|FC2C}0YTN;Gz3m7TK89!Hmu=o@yeO73gG9m1|=X0yRcQROZtu5 z*j`##8{VC%wpDFF0;VC5@GrFV@-7^GI6VJTjyk0=TW=C;PNK zbp+o?q>sv=AQ(ul(=vKW(_>ynX!x9n*=oCfkc`x09 z>aT!InOXLsy6`pSlOGSfhTj^9Z9I6W==sr%e}1HD(k)4g+R(SVu%Oef{^*~`M5CT7 zYs)GW3J5DlqTA)txy*okkWu+w>38)QWdr9N|Dl+t4SVM8tq3ZL%!(6Zi3eJEY)=E^gX7o{@vX~y3eiH z&W|P;J(UkPh(SexX0UqPHmA*8Dj?f%$TtU95lGpP{Om2S?E3S&`AczcCy^A{s446C zeL>TxN28m$w*Y&8BSNfqO4maw|JCZ%wX$=xPgx2&Nw1f`RGe?7 zzjl23XX-$;xD=YL+&PBGlG?p2AgO<#{2@qpwGyNC4lhkF5H_4GBUnt|1O>0ke7^^J z!pm|v+jaV;3t^qYJ(|SH3ZvEIZAsVR{D0QEd#n)-AI$Mh>+{P=VdrH*`KF}F#`WcO z0C$8`5jMLrp9biiSD$HtOx4bsOBu%}6ahoG+sx$j1J-6(cTWdc1SjUtOhE-E=tR;% zFLOKw&8(8pbu{|VB!7$+mZ&e*wRrFe;&*1b!?6+`vC)^-yjCTLXGJg%7E@4^uC^}H z?gS*p?17$3dY@|)m4P;3ug6t{a5!ZZ2HbsNDuCJq7(UB=+B?7e9l)eCqXKDLatA|l zdcoUMEBhjm6A4Xs_$;Ni192gxxuy z#|!<%>zh&9E<65J#-G9j+#mcLQdW&O9)qanwmzo>IM3*FQ*!2?K%^+UWQ7I zt(CZ(AjVCDoqpy)oUU5fk{e|^a8_D^-xsiFSSKuhig_=7&i=yT!qhi1B-P!P5nz5} z+$}`ecU=~`X=DF^S|~jM2s)&iT1H$oKyfi}!4$2hfR4$N0QynH5tq!_bGVLFiIR zWFv`Xu7i=26q9d57%pJ89UwzibA#pIAEM0kYqo6}$|r}8;Q|F2g=+%9Lr zfhT7O#UVAbgaKtbM?cK19>?R0K@U=1V{i7o*eoiRDhYlV>5IYDg))csJb@KquLh_` zw6|;Hyv|58NNU(#d27;CqlD`mi;^_*i>;w9cSm5sa<{6#2YSj<)K!KICiOf#aJ+h6 zC%R}_Z%Zg!#JU+ZW_i$>Pg5JI$g&_P1B+~5EvfqRO5s-@t}gPc}V=Ozao zTGoO;OpGO=h?*L>8b-l0YcrCtNQp1n`OE_5iwB93qE@J3gK@^AbLMh^IOCduo^c5? z45?P*j>U)uvi+|&4T38M*4Qx@N0+)uRrpd{cMP_yC=E`~xdb?eWw-;HX42JK@n_P7 zsmvL{eKx3Zyu|zN!nsERg|7FX?>>Y)d>gCRQ9(N3pg;%pnxjF?Yq#$&v*Myd|2KSw zkbSLh{qd=8eu2QkuCD@F3dQ&KnD;b3YP;zrCETpNF6S8_2xUnd)e- z+TY)AA=BttS_&1P+*(*-MVJvwp`?0W_RcVC_J*?@vaxAg1&m*wnVXwwC$zr^Vnz)Q z$4!9OHh;)_0d&A%C2EoR{FG2X*yDB+zxHuRj(3YCOu1dMmc($zKvck=efxZD@k((X zW?mT(fM=;y*d5NJ`DZFQCZ$6C^~a4!ecC?#NsX)*`&dE%<3X=xB#yg3KinH5CL1XU zQ0j9WQck_b)Q^2MFwnI6nUG@;5X{;xVUvR>H|V>0^6>(RGrp?^dOS~XUdl!Xz1&Wh zjCesD>`B(e*}$cjm z^&Q>aKJ` z0#eVfpS;v`BMI@T{ddeK5xuC-?|Xe72Zc6tD-q(tHl=ukUKPowCQX~{BO+ZlL3-Nc z^Dw#O;t2=p7s#UH*gH&uVrelP2(hzT`Qnd#AAb2K1ula)ljk@QZdcfHA@LAN^ye1Z z&L5*VK+E!MZ9$p|X&kmc*&=#K1?hqFs9pOWw^xxpS!Nd&Qnet7p&=mnxQ>r}VvgwL z1~jd~4XfJeT<<@>QeWHTU?yh}VozDgw$mgbrQTHisE_gl9ukQh>l{1PuxR8*l*)x3 z{&1!?PEuNDKn6vW)Y-0Ey^w2%k-m0#!W(~t@kOSi;kb31hMxsc)z4g}1Q-cnUVh?! zUcr&^+Znqt7u(IOMZ{ar>nfa3J*`1-+)C`%C;1p9T?-iQ|2TF;HE0$N3^_@9r zqqGetm_N^L?A8|7Dk>O46Tcplo-mW!$8dwfsQaTGx!xxgx>|qw&v-{mPK?#S35ZIX zBQcteCej-W@J(;X`*J)Qpx7g#hrVM{{$e!T6*GpBAR3zbRfeE z)^9*()WUD~2T;mHJV!HX-7FrdBC!z9lG#jwAtX^sED^1j?BpPO%+(=3uu=;IqDmSA zCTeL()urq0L*P)*xM9CHsx0UqmhYNrLij0zOHc1v`6_HIC@8mmPyM_%L7EqnMIRAV z*^n2soIl979YNr0;RJ@iXVj;feZ=W`<&N)ukxr+r#w|t*W9CNwM;wUXEZC9kt9fb_ z#UIlIejftTT;;rFQjxY6g9)E@EO(DsTWk0dks1@P*#>9+`wk@+eT4w@s(fX={#Mcg z|43Qa4CochJt3hUYzYfk#mj|8nDiU?pL*s6d!Fa5h=pB#a=|k8-KTZFGhZaonQY^Yqt94t1)le3+j1|Y|l4}}^d7oy6P{o>2&q&WldJ$8yfeh0}Y@ndY+e(1e3PgX*oJpkPe~nun z?ilMuzc}5%WbOat+^lALq*?G3P`6Mn*3%$(m0V85G>}s4UXKib zH(}%;4_Bya!x%&#rvqEVQ4Y2&nz&Q+z*d<5k)on0!@p~cBe(EDknOk9a14HaH-^dG z-ipY;az@n}cjrMhb`@b%Cda~4HuOue%V6wlb*;89U!G{xeKRH-6G^I}n-OJzCgii0 zT+p?J^BpQ%y=qOH!nBMsIsF~REI@AU8o@Jcw|om% z*1Yzbn?UUC0PQMqmw4oRz;uloG&4IANvOfLczu3d*mC&ow4#gIn4r6Wg4G3p6UY+a zwvckZh!<|HC^$K@0o(arns1gQt9U0-e+SY0t-In;4!5V<7bZm4iOwoZZF1$KJ{CX& zisch?8o3M*_rR0;(i?^H&e6JX7`fN_!OKSs#(9tdZsMd^Py(sEuGoz!9IyCn_4oWN zHV@t~rARnzG3FD@-{iUsfsm9fMllQz1{qt=n&h?4PICYO2tX5K%fX;jJn$oGewI;? z)8tPh?Nu0Dl=G0?9cbQO@BWRF30KhmA8NJ#M)*}^qV{HR{-R7HY87`*Z_Mg}yh)eW zT%Co{gzDifYtu?!oYkrHvN95v!E5u1u<$(XYfS@weI9Q5JnqkFP`y2OAdE%iwl(kg zVp0*_ABftRA4T;(cX3yN-u{9&U9Zc(@NWlC;!(UD*n$lr8|t4&+mdA`>(`G7mNrb4 zLjQNn=MnI_cdUH0>eiS4Bs%CRW>gDELlO{Wl5Y{C`Vzs8dn)HChhuwTwM|sv28OOjUN!~$?dFY+DhXHS{pFVq+(gfDzb-TY;VWR{{H^v$`7B!mlLu z>Uoj4{!Vd*RY#nz+L09(CKpEvv}#R z^{;7LInEdo6b8wGO}Z{m?DfdC_MO!Bp;!H~X8^j{f~ihf+mk zZz7KDOpS0_R&$Bg>~9-~kIwvoR3K-r5q$R=*;rNeqj~S{&q=dpr1tb~+$lV8*Z-pp z{F^QM9T@&+$5pJ`pBet)y-cPr8ZA|)V{#%$i9Z@OS1b%6`BT%)ZH|5rT3t1#HYR?+BJUPnR~35ad0cF&PW(8vAWond(p7!#xUJRtK|DSmM9 zUg`QR>6BSRNUts!yvlG6scNb(U6%Ms`;ESTWwHLz$>S&H1s+va_}q?uu@bJ$(#U2U ziar!_r^h<^U&Q)8Awr@+`Ony$yP1MVMPv#$2d2Yhp}X8J&(3C65h-iq)vO_$cBML- z_R1d3|IQ6X>$4VFJ)I^igE2qz2z*jD1C9v6pZZxm9>MQKd_qn4_em`E#zMyI8JgwB zKd!DfzB>N8$mI_Ny4Tkqq~&TfKNc`i>k)Se-5&y}r;qB>w}{lnYf~2bSe5b z|49=A!DfgR;nw0a3pp@%k-gX*`0*;=sZHCvptSzs_Ab*CGyizuiu*CV4)uB1HjTTm zzWFdve5*h-q^y*ApEX?oroI%EaFjeHk_)^GuVW+SB5trJUI_?%44B5&(i^tAktDIt z7Q-1qLE{IxJ==a`Ig@)IUxMzdF2+hGPT+V5KX&;lo84k4j;$%=n}S`dOLe<#twktHGm>%tsB2*p1TB` z^$UM&12A4jKAENsWbLmGIZJIhT1$qVn3_5p_sZHDTg%h>wY5Jye$_aw;cu|y|+a`Hnp^rUtEW`v(Stv zpR2xX8~rtGWZn)9^b8d;%O#f!M(l2^Iw~m|+CbW%_ndl?rB-RLZFV<{Z+8lU_aJ@- zDVItMVeevP_351XX8&zKD$1Z44NBNd!AwvlCifGX1AS^8yM`$GzOd~F6&x0KVrH~F z`Bvk=t|AIDR=rk8Z%i8T2;Bp6Iu>5+&urwledYI^%TE27lQ5an*iZj_(NNK?z>JWk zD5gd6+$4YcMUA@QZBkL!))>&Nzq7hN(EN$~DH**vxIKXmFD4Qfk*2V^nW>*9*O^uBZhf|7jLicC!OJ%eS zi$`hg-gCX;LgbkFUswd&U>F?AB<67Xv0;%p&3hS4P~$ExgWEGeV0&~)+8Jqq%Ky+! z7Z@8lei=tCWP{n|W}x8hC2aFnQiWVFUtA{0<+5l|7d3*WQbO0aEVyFa0xl=)fVq!FL3byYI%qI0V(4}`N_EGQT`!r94W0uv>e&VF z@cwmnYY3pa71bO)+nW!J5a)~@BdJ1wbsN5Tf9#2)VnIy)t=lS z{{$Lr*orxp5!C;%`-=^%0kPAXB)l!p7=)ckPEkrQ`4p|e~w{&Gk)nNQ!RhNmY zX(W=l{Mb$_Kb(!LMV^R>%{Kl410O{11???uEw|1WdBQ>`-E-<#x8Svl&(#r#VU>ZM zQMitFL5dZWl-PH~`oZ=Q?Z@rV&Gh_PaYw1Pi5F%Bi`BV3*zQ7GoE@YKKWyprYCM^a+Xc2ql)4R{kNHd0a2el@(*HB;&+hbnm zFZeu&*((!w3T_PWtKSLY&LqSTGVU#(a5i+Dex?<0!n|d3Q|-64kjcZ0qNLFE0Z#XW zumu>q%zE)R5=;C6l#iTu4DkN{XXs`ebOQHU3-e$$)toNXklVq{P zRzJZoey(Ezy}VhMAOz3!!%ZLRiKB1H(Rz?j2*L%+s-enH;sm~|798*v$lDXG?{9mrs z`3Evq53h&lXYrJf7`OeCPP z4^cy^Y%;TRYBFwh)snoe_8LkDqs+h-`El7U2S0Ja)ik3`GS+q6yGF0x3Nhw>GM|WPnvtUW6cx^UDcXuMx(0B_y_YqOJKGBj zOR1y#eX#AX_&63ObRLBQW@&heTxodrQ0In?!((+hEzvXEk7U%GYKX&v$NH`D`LyR$ zTGPtK+*19npP<=8A5I=-%4pnRfAgejx$JR}0)~dvxTCdfM9WNifq{4)n}f_}3TvFQ5|TFVHGyDC zPPsMN59dET`eHn;|E1>ZZ~CWw{wjj4fYN8iwFks)Eu8-6z|g^sMA= zxA_4(Orm-J^Rh+r!=_jMCKhL+CJCTMv-fa_ptZS76Ji(F#7Mj9ReYSV!G>wpw~xcF=rH z+=p6hp@Ftt)=rOZE)TOO%@3E2)ljL_WPjXvq-2I^NAi{Hb*TQr&z|-WdZSbB^M+D# zz#Y4jh)SQigT&Zt&;23?pALcNVvUB^QpfRUu9_WoJrCYXJqfVJncDc5Lb`--H%;lf z%+V8ZrXl}oPZ!X1)?*#Sjffq04Seh$$9Z7w2OYb^X9FdOC&<_a1;-QdGK3X%xRWMIW0qLkP$qo87x)J7@u_9P)NpZpjw}3wC3Hh5z5Q>FUf_0F7#GC(O$g)E zRD>3E^>1xO9N0F1XT~xvwAA0OlUB4$H#{9+Ti;nfr0DLs{=S5Izx{8vE2YMI5&3W> z(q^8|zXzgT8x_R!kx55;f0I>w{ZX~d3G?w&ld5m<>QY1>QbJL{TO2-?(XjOxQ9-Z= zBdo#Xpu|Ioe2ITAAXoo3@_2diXJyuNV~B9wriP{y@|oFLNC<}Hj?`Cbgk!}Wze&Eq zx*22Q@|?n*ug5A75LNcdTZjDlR&Z?GVW{V<7o)*$OrBK9)e{QaR? z%SDwF-PI51hdTcEXLUb>S`RxC1jVw^16TPdM-m~xN75hQ5v8Sk03)6Vx|EOXK@9%j zskPt~jY|>?kmeUnY(3#|*Y}*F9j`5@EAqz1V%jCwW8x&(%y$W9ZcM4!nM=1OyE+?h zig0wxj=$h?C&W2BthS25rF@-n|AykMh$6#0gi3$Y?hT4PsXpc5i^#ihDInG#2fw}Y zdkYwPK;U(m?!f}5rO5aUH1V3tiUb{}sVVUA^iR|?Msp^ODiuCaKhdhK_0u=`q@se= zVHQqNT?6)yWPu8!U+X16T>){7mCb1j@&TT*^V$=)y#otm#lcEEDIemYu6VZZ%wPFV z$u?GBUy)qc=7L4&W^0fqS!d^ERT;B+ooW!s9rg@fBL!iy-8Hwjhj^j`CW)5OyfZf%bThmuV_up|>XFDP&Zro+SL7D-^eOZ%{cHGe~ z4a`ttPNgWtu|rq4hI2R%PGmim=qeVx(KRk}7qIg>&AGd+8JV%&%2xGku5R>y;Vu5F z{WV|8ci+Lc%*$<;NZ!DL=aN7|;Zchr9yLrGHqCzE7NqzJr?s!|+ zI)|kOQz3vtx3h9MqZxoWK-2beGje?&e74tmRz~zJ@B(22=$3EY*L(bPgl{5|ae$(P z1^SLN(3(IXZ1*<-8oYMV#@WYznM9SnXa2%3yWDQ4(c2 zf=x}kez$Ex_xnk`!(k!peOi1EYvV~`qd?4H+Dyo*=!gkrYBL@@;F-;x(5#ggbi5Ov z*wTN*f(%S_^%rXfVJ0uU>{$_-E8ZA+<^nmR=h<)+6inw32bvr1oS7&xAAW`z*l9%8 zD6MB-?NU__RLUuRClI{(kZfvUNI3c@^qdw&_#w}C66|MUPCu3?9RNd}Y(B7)I~axq zy~e}|z>oi(_$&QIiEUwZ%MmPM_V1H*@V?&$^Pm8v}9J z_DbWyV1{Az9dz0^C+&Q|L10zrUJ-@Oc+IWh*-pIGTnynNBl35^0b5?7>1!(q=f7xg zUT&G~EkiYJ&~GF0eDAmqe1Qnd=D?bejfDc;BDLW7j$08#i2V;u3`4&m zm=NSD&77z!OXX$ve#!JjSnJmZ$dce)uM_1qQkc*tls9#Q7~5NmZD1{j?Y4n9J-xl2 zlS$bMt=NrMsLF3jQhbe@bu~X!Q$1{xWB&c)=c7=|Jghfx8-w~Cm$aVUs9U+L>V{&E zkf4v@CMItezvWY(arcQ#&aPZjl~k~9r#twMdV)ZdgKCcGVAZF8Bkv4(t2$n{c`b(& zcp%lcQQ@JPF&Jf9r3KQ}1?k(3h+3_5zfHd4*GO_lVO4HeBZf!f8le8nuWcSxLA#sX z!$lT^48&sn0HjM^*$vHKf#S8S(o9VRx!#N`9rAvEM>0x8I5D{3=hAbzP9k|I;P*et z#xB@Wv=NbogeGfWkCDWp%V-VF7Xq{Y=d00Kx_*E+YUVil$;3eRv>K)ku2>3C-%HNj z_GrG>a(JM6(tD#gB%zF!(oiPeB7NnQ@*)i-M@68?Ggzt%Bv zmN>e3`26)pa%bB!k9&W4cPlgYyN%EHE9u^`aE&Z@_ufI|P*AoY zOqtS%+YgsYypPMuTfOimL94X*;YaDJ;*&q?k2mj%QLsDnbjt2E(W$GHn>B3K?{Ksl zkM~$DCRHbFlxg0#)-8mti~qs01u& z*vw+Cbu#F#&zwGEk~YIWnbG>NACDPe_}>K6Xc<2t)HnP2+d31{tX8<*`_cX`oU+kwV2Z_@rAZ4 zQYx_;et!?)W&z2**)DSPj*CZX4s9Q7S15{okj7O=ga58HZlGVZ)Hl4js&ENuUbWKP zhKAD$Z{z*)6xaFSC@E)Ui)ZaaKy#c8kAOW#w(gxTF~*HEj4)-vz6}i*W=OSm*~*6k zcjqjv_jngjN+C#mcfCs3KH#WNUV@iBI9pet)G7Y6XR1;W+#N`}^|nc1S%#+!g6|~; znCggsd_w!W(tX(atBatjEM-^KOh_R*dtkNxIZiPqwqtamPZVJ@dIw;+xt* z6B1o#o%iJMf*dM^5=<@MO@n=}X#A`3gs?l991%zCp{HNEbDWrJJQrOb|m_UCMzEij!iX|a%1{0y?H=gDVgsr6HSdToIWls0D%q-cV*Y>!l08O zOOLAjSUee((Hz=MCUYZnNO>_6t*Rzx;GWUpXmRDJ&|H>VaE*;Jk0uea$JTffuy6b8 z`y4|8e0{4BeaBh3?3P4@ytt+h(gIQCD0spj4WvCH&sDed+JHU%T~hAb#UW6kSZl{( z*JzW*=@uDFjLqXJLn#;RY-c4~-jCG%k6_-FD1cS<8gB2Yarkf=nd~y;XD(Wp zm_au$7P2;Fm@$W#oYNK_r_}5sI6rVJDOM+6eJ*-`c6`7riqQw+j0SmfRy))}S)&JO zQ@<&kBy+~riaXgQtRj-tknb&)GT-?N)ae*%1YNamwDV!whCsE)S@2B;pb1ge$ zNm$mpS>si8L^Xekq7V6Go?N%|-Np0OG85t&n{AWH+8!99{*YbcbLXKaszb6DS^0!p zi3e|M6#q>oPs&GXRNB0k@xrzWKLDP}$(uKCpFDU8=f9sNwz2ma2CD;KKdJM9QdE`_ zcraf<;nB)Coe~AlowZlE??F7`t@P@Xuh>7>L;~^WI3lr*WY5{HIGB(M+g<=ecNbi} zYsYyxDy46u1dWpRnB_r+jdFp8VSp28;EH#Ir4ttuldN*oYsE{oM$$u=UR7?fxv%Oh?=XfI)7kvQaH-IIh9a%qSux5m`#4h1vP_k_vPMC}fl6 zIjS4F#@IkvEa#MO``~a*_RWpr#@iR7K11pj%O%sm=dztYL?>( z6jjB@D|>CM&k%A(Jvn|GRiHQA^|TBy>^->)?aOTJ4cl*G-xM!vJx%5QC%KjLLhBJ=q37XpIT0-d(k5=Jdbi(X6!~VL+DZ&&8%H&(?5T?n5!jm zFQfvb8j1)On2fSSVn&geo~J61Qa{Z!)6>J%Jy*uEM6E@$vZfE@npX!yhH?8>3l>@) zzMxbmdU(F)EpYPcf6Nm5PyUh6!=Euzs1q+BzSgRwDc$%IJU1jS9Di5DIr7Aq_C$Rh z!lMf;*1y_$ts-nPlWs(9h{1#|T?1|8gIF3L1#~aDYv;dW?*HqU3KZ(qy~7tJDQ-NE zBL@Aka$s!z$i4d(g;t1xOEs}bN!$%s5Ow&d+mq^78a&h(-ACmr(4^eo7=E=7kQl0s z<90I-HVL8ILln*qnDZCFP+MM-o;m(9>PVgbext=1cAx3li%eO%$K}R_iit7|`QXHF zaM)J89pW-Jua|T_v{B9Nh5!&$d~=?wOE3*Zhf3O#G8kg% z8A_)=UypDR5WO&(`SrBhZxy1W-X8M1SulO3oN56I<*xgR5!kLXa znaIR2Ixi|>3zf59)4VzZJE*F_t1{5p(IgMdxMqJ=X3llPev}Nlf~fhAq+4X2AX$P^ zO4LBBRTyJ8KF7eaNjOrb@*&qpXQj_w0H;)VS85qod7aUSnjc?YA!m^o!#_#%(Tviy ze!R=scCX3=`KPC`B(yLD;S(Kr(s*yXHKH^TpI>5M1#e@e)VPJrU%h1DmR_}21TiC~ z0wFcyeE2tWS5GyFYjtw=-Fa@HE#FfJYrMG?o)xM^WNGGyxGeALsQJ-7Ft6?iZ4Lv& zPR%~x{X|Ap_R(k}9EC0g#5sEhA}eg65D3g5^cU>#Uch^O*ok8)1*+y9G(o9x)6-K| zGe@s6Cy`ahAic@4!QZCzfvn#Fu=mH*Z+U$v5jA{VaP&u*zV~_MGxvVj-q5=O7yWv) zO8UQZ=wlaH{;$nNo~91#bqra`nUr9sihUMicgDMDTi~#}&0Ef_W!!2{-2P0+B-9e0 z1@!w>Tv59g*arby#jAcqjlr+n88{u1+k?$!o-;oBgJ-f1s(Kz>^*ssewet-d{1dJB zcDoMaWe3sDIqncG7C` z@*Rezow@`HF*fv$LmKB1PsN5H$ z%6hUzJ6g^Q9ed6FDS`7BVoq4L4Z4VH<#iZeEN);L@1Kr1GI-7w)PBxLD8fB6{^uAC zq|NtN-Y+~>dQka1wUXo$Pg>j}z`Su}uenm*1I_x;#9>u%_XiFp=kfCyo}4+Jd+)iY zCPe73$sErUbBzrP9MT@K4hdmx4z*cmW~hgL?*S|IevY7NZK8x`I@hjyq-XS6kG-`n zh`aLQ1NCrt__y{?Hd?7RLpQG|CwgdAZ~DVcb97746RzggF|JZBRkW$#`QWj#hw;Af zVV7n_EvBIE+WR1ZhriA#o|a&9Z|!V~infMmoymF~p7yBJ#7XgG3nT{A_iOL=>9$CZ z8>Y)gUYNxF)}`286;ENGSTwuEo_VW??!8ZoNqg^ZY5EzZo1gBfaKI-KSM6B?iqF82MIQV#Gy7&fAeag^;hG5e@_4lVy zvLQ<~^Sx?W!3`Uzrrqxw!&Pr$d`0AIWy*;^$w>1k58ngsPS`<@76%CeXZeLZ<093#;ra8=k*xido2Y^BB;h0@y2Gizg`{=>V z?LV{djvqeuyA58vPcPoyJcr%3z4~W=@Z$$>;E7u>!+A87yP?>=)cxWw)aQ40t2V#Mln`QXz}9zMMK+zEP*i@m%Y$FF^n zZ`PlD|J?`fNqgzfueuO zJ97Qms=$Qv7|+mm!I^pTSgDOdGwmjR`qP_-@8INCeR5GXD_=FvRVb-Zd=>!s|6e5N zXGNuRc-nGYOyevcd$AcFIfi;Kw%fS54%biG%g4LeCEV+Q>S&tn~VE*e*ESi{N%~E zy5+lEU4_T~`j7uiQ~m81?!CxFG1ATU`lk9Y-u~qD37vGOA3yzrZ*6e0IDhTMSD3*J z=Iwj$zwy?mAGC|7oA$dkf5IVz_Nk+m{O01`dUq4nPvfn7e0q+{%gVKPu5Vtezwq<1 zZm5go$whFau8SjQthbxkzZHkrOL=h|^zkA&3QXv=9ea!feVf?zW#WFQkr)&M1yI+} zj@os2^zQw$_wPQxfeV)pPTcy{TNlrD*H624TQ4eK*Nl!iGA+D!9$ktl*9qvgPG zy#NFU-dh?nMPh$*(|!Et=EIM#fAo`w-~G{p%{Gjz=d`=QHtL)zizi}_%7_c;wT33f z$CvB><3In=|K)ey{P|bze&glauiibod$C;jW#s@iM|a1AZno|Kmeju9JmuXxZ@v-f zOW(YI_jc@Q!%Q(m?&~CwC-y_z8pMux(}p*`_apw%cb;E=w4@z+l{b(l-|Lw~BFFJ_ z=k@JJ-P7&m`N?w+;dV?Ra5%m5czODi))(Giv2UAI+q=|MmG8ps?fPEL6`}U-3m0yA zZ~5qhoA)+PF8tl?wr$T|`mGNh{LEYJ-~5?+=~|94IHFst>eeY5K$DK9tvcaDAZBvx zZ=cY*rAM3ni}%3!(%(D9Nd>1sul2fp^62`5k1pT*@uxq0h+%^ zGa-f;BXQ)tB6JMB;URMj`(NwZrVNLk^*nIq3FxQkr%@r^k3UA&k2msuF020of#^d= z%yApK7Q`N-S=RV+_MgZTdFR+Ih->0H(38+T4DA*0Vc4B{zvz`@D@PTRXT+Y5z^G5o ze)gMZzxay;-y5cJ*V1mw+x3(0zxji|_YXD?E*S_MdtKEXg=-f(7f{jfG;KhuK24TM zifI@w#spS$m4w&C77cdc*I&B*|n z39=_5LsdLOLBp(xMWbd11BspQ@PF)R@A)#^(j5I8P^3e{qZkFz=z_I6Cgq!9#1o1q zH3$=posFE%GuFmL4qfGM8h?3GeY&bYap;)ktb&T|Oqu_gYD({y$LLwBisFf&X*}%1 z$GiXgue|+F{`2>~_Jz~0zPkM4OXv5WTb-QL6uDz=16^LVkDgqgoch~$&Oz`F@Kq%0 zx^8=OvuJ#`3ybB+^7Moph~O6Wvfi7#fZ$wB^@5l=Y}v)rTW9Mh*VnsUyV<#mRcJSG zjq^)#aMTfEMST7A$@=DMb@$%&)z#(GheX}&dv{S+S2s72aDH(o#MU`l)+bHVfc%r| z?Ze9$8I8LIoD$bnYeXrxCcHBjm7TXo{E`c zq=6OPRQ37k`Q1Bhj4`yEM^CSJKYUbeBXtpzu+n79Ie--)O0^Y|wJ=Hc$rP7aFbK0j z113+r3R~W^T-BYg1A)9F5XdtTTm@GXxPo($yDku1<9e%rSb6LVV}Pjw&`+KN)Kqos zh?t!xra(;2JMSG6`-(!`F`;Ve)049FEMg?k!cn{3uETEYIrbiouJQy9A;hqA z&Yhk%M9eX4ciYGT;Qe7#RbAI|j8*M>RN7Uwcc>RlQ#)TFhHcyKs>%c8T*WQ-j%6r9-N3MtZTUMfN!x}(BL z@~YYT?AH0C*#SIulk&-w10J$RtR%Lz5{|f(NTi^a4GR^HlH{W#p%&W{8Jk`qT)Nzt zxcEk0#07~M*apSfo>iL;ITO5W;UtguoYDrU<-ZT&$;uJzP?TTR%swh&Kf+{`bR;+i zB~dJ9h!&T8SE&*PC{_1KzX(KLnEu_QFlD7Sh}Jpk2;2C^JwG0cs|CrP5&;aSJ;XVs|hZFPR{9fs5Cft{_+u z_NAuyeh|)s9%abB2aS|1z`848%xDaU>Uv~0`8GcbyrFueew}EE|nw{ zY{A*A4rb!aWltpE*=vR|%l1q}?NSe)SvW$=zEBS1=rUqYVEuV@U@=*Z85l_sQGQMpl7A!xpEUuImr+mxjMlaE zTEm=gT6r}XVT`E|WQbEtGhv@t5!N=aVyS49Jm6@xG!NuSh%MROBBYGB&9;^i3(q%I z$naFhwHFufR z3@m4-r8*{ZcXKlfVzS=Va4AYA!&ndcQ6~JCoi!PP&!Vd{34?HHopAoH4sD9G+$s7c zCn~S`Igy-9MtmC&cUX%d*@Kiysi?gomMBpcWl9Gt=R;l7yW)Z3ndGqPI+6LicxX}h z6nZeT&{0|omj>Am^AXgM2gz-P8f8sD9MXK*1k+Ge*vwj(TUUA3iYZOaU;BuxCP9Yg zw+|_0c|nv(Wd_;YKE^R2O9!x3Ysqz@rD5Pbt|QoK>TxtE5(r+9({hWQZP5U@}Ao)XU&8+F1U)#wMBbxlkCBm{p|G z^0RLW2UI99vvso`AWw9g0Zmh>1JqH-5&(zEo#C_@!E<+n^oby=8KxZPB`%ysTD)d| zm|+;X8w4C!-xZQPdZr6HPVX^M1|Ibp@Q?-Z;ilR^0#hVgD6YjYl2e-Sch0h9ouJcv885JdWDjy;kylz6GhFv05P7@MO0qx_5^|$i$Kd}1 z(f3YN+LIGkCHI(9C}$NJIBV*$*tyvAXH`SLm@^=+DMv#ynjR1$TpCDm;r~xNYoC;{ z9*!GxHJ-~h2dlJw$9jh*JPfq67l##j?Tls419^IRdH zmwLkd?4T@*teB^K20}$;d|s6HV)?Y^wA>m-7iqTIDFMX8nSdn7z$kO~2XTr`v)$c4 zl&KYKx~1ED5#g4JEdRJYf#D1}Vx}Jad|*^0fC={|A#uLE^FwT|1{?7NexOdQV8hGp59j zk3MlR1uNu%fpsk8$(M1$QDpid)7ZJL%wP-5dn=dZQu4jSz++hr-f2?%fvhu;%TErV zX*GxwXUGzjI%AH;GMnHaEY}VcQ3fLpu&pL;fjuxQp6p@+Ee24~Q67+4cYG5$V$S06 z+`1y&y4Cx4eC-ggU7=)Uw-i{B0fkFpw$v=_M2!Ea+GWZ@_Gtr9s3vUWNWJ!Soq+JA z+b4N{RKo{}27%dtLDKeTGPHNu*0$%AQfs$zayrb^^pheR&q}$S30tzac3_ycM1~o4 zM8vh^TeWyMD0G!dO)tgAJeFi?f)CSZF`#);hcgdOSRZr!EYnEHRJ=Ug4o@((;Xf10 zDM-2m9|g;%+?m2Q8KGxIPZy-(q~V9`TEGm>qdPKbmXIOB+K%u@(BJS7wI?C;Pt>GS zYZi%fCO77maJu{fDlzLz+d;n*d!0;d^z5EXgk_~0P04x2lKXA};yJH8X&%UkgM&eA zT){bsBe~Rsw<4jIS$pSDoMGMQNIzW!x3%ULGCX?g)-{ipOf8+~{ z$&So|%fm*hCMo&qgPAS8k#?P-_NZp=YVK`= zj`?FiVF9M;hjF~}QM719sGt91$+tb=EilKol)4T%utOuG4Rioa&+|CrBw{%{L2Qkf zsF#ro2`OTjLHf-|xO!`YtT(kzaCL_XMPf&E;R0$J9iChLXu zOluUXpkqCz4`VUteLXs>9h~#Sfjv0a@wFZ>TkPO;Q&?H|q5b@s6Gc4hpG2{~oB4!L zpdJePcFLpJL}U1fnK_a`jeY=^0R+@ zH=q;9d(ki`k>(hUM8sL(mdLd`2Y${dSIRUE>AxUv zAD8n9F6U)b;KCkYNn`_-ebI%HJ0MvRNWcd^KzNY6Dp(;pfx0J2Wy=Z}>9yuC3&BrC zQNlU_3V7N?bby+GT-Upms)qLii&C4I0dd5tk*Kd8cF+BMr!30%U)wWh& zRcBEU5CCQy;prh`H=HbGjDg#0kM|FpwW0czJz4$fhZ_`hdm|%DRzfj~7C9_9BC6Wo zFF#69#tvZQ`jj^LOI#HROAN#=PDmALf?X7}nAmwxp_o%>b975NSd!aQ4xE9PdkTs? zWD}mBIv;SD3|4wqh48`CB1}FZG&3&6k&X2muILSkfKQX zQdYN*jr1Zp1(9aVpkxf$Nb-gCoNzukTmivCKVZC&BK;(Jf%(1>%LheuUITWh-S6=b-tj z>)!FtS|Rj)z&U$XeK8kGN&c2|-K36!261z=`EnK>EU zkm-ggRRMX>vH4@6lLpR~7APy)IiqmsoF|#2-+z&bcQ4#iSX!kW%6n#$jYfGdq>vSojAVS- z3cOmSWCp}XawS%wCXaU0#vEChBjRtLh7;^;1T>9vfGi3Wn+3E63wy_9soc8sZDXkz9PF^7rfd{uq7LYOPG-Rk25+(uz$~c?Jstd)7AEAwXT7?|$ z8(d8WcSapzm5m0*HmuIpGDV^CU~6m4WLc_lqG9~}Oc)Js$6?8o_ct5>NpGQ$ z-iOZc z(&uE|!V#yW$jC#oLC=rUsIlPT`NpcwGFdBWO|&)WCsb$0G$=IFX-j*NBO9HkaH*!YOZ2l+ z`%Ful9R0bW+M_(;ixLMF*@z+$V50g-Rx*Z2HOxLwcy8hw0FX)Qf>hAp0ewxEgB)l# z^gm=<8Ko#Q`h#g4EJ1-aOGJRkLQ@X&INfB#O=`cJxYFb^KgEjF)`ik$5QHYoj1Fwh zt>*G{6jSQfoyY4w4rNfq_uL z!@zxdE#Ww=3-$e)<-AvjEai~PoeNAxPTSff3TlH`c0gepHW16jaLQT@4F(E_!ZDHl zdbSJorcMI zBh4Ni3gC2e+N~EZ^uQ#EQ)Wcdo@bGO* z9g?;^aY~`TFd)X-MWLUIeo-M&diKgkE5KX%913k{{kDaU8-xwWP+Bu-xg@6^~j}mI~PXBnZga zOb(3Hm$PFi12eMMEKx+s;swY|-dLOq>Wr2rz0l?!<7txFu_VP(HtC;~XW~%L0=K35 zA|XYl380*Y>?9)zk`BODca4RS_H-nu^S}%sELQ$@vuIji6gwbD_)qn`i=D9Ms z=jcnu!zx`ZO9YT$gUqw+B+7*yIpwgk_||23CjVZ@Pp=8$kdn4ZqRBJhl~MX;=-3>) z>gdYw(5I6%MABlB?>&>p=6QAXQkTnkA$%mddc*^&P@PkkNrlm=Us@U~U<2_ohg&$I zpiYwloc;K6y=Xn_@s8i=P&p@Hk))Yq%|$Yy_~8tcqbB3!H2+OCy8)Y3q&+oq(jLTb zpqv=b*x?GMAo8gn>q;mZbYyiVs3<%Pc~Y~1SwNRDM22|21t=JIh2n0)u{+&*mCD)+ zW)2|0iQ>tY-2?O#RH_ibhfd3xMh%-;LuMMBK9wS}@9EB?;vqEy#Z` zQ1j8{p8c+P_F9DyIFhEyKb6a!fN>Tsw*zJSy&Kd^vzE5^0fgs6AvMJ8_qN}vMApoM zUKVqQe3>}G+Qs|fl+|CF`9TKAC&8Q#Erx7~&H*c zJ_?&eG=;6x*0ADHl%u>2GKHCGxX|$0alYn9 zosmjGYVI$y(Ur*F1JB-Cu7_;sd1s&rW#py|vNmOAfCQc(G8AHQO#HwzyyWBjjRjE7 zrEP~%R&pGUkkohpGqOfv09hsfsb_jY7g)aTRQ);iTAf0hbX>*Z%)6-Hni`T~Y|v&} z_+_UTXro(QshOhYf_pva0w${MtjAGlR=q6|8O14XHW@g3q&=0|?I9Kkph6{!=lH-HhU&aca zniP9>&yixXT#`W-g4ZT)zy<5hneNLNAI3Y(mq(6Bru3EcWkH(DX?+9C#1QMYQ4+uy zT9yZBpn34IC4^LF&Pp;=|r1droZ2?1fH&LVIZ24u_IP1U2(#x9-AW{g} zB=+uO|0%UhBul$ximPNf*9(py%;bVoK`t#=SQMiyk1i^&4^A#?X8HEXSx$|(@Y(+4 z>cD1XFw`RD^TD{Sl0fwQx%An14TsG4T?torHyn^x?y0xDRs!40LLFo(=8cMH2H!wQ&G$|TlkqT zWyg=9Z%Q(_IN{c? z^-ifEJDa~##n4)QN#s(GeGhK>pyDlw)jiS@ZaXAJj zHOkCi;#qtzbwGcXB98M;$$V9RDELch`l8CkfeI^gt=q##ID9D_606UgPPF7&n#ph) zz$CeXi?N+cF<*#55BVf3rFSDO{49G%0Th|1$#MTUq$%JtL5PYdiAm)dP_m=4uZRP~ zBtpV%k_%@xD1Jv7B^`x0V}|6CxWnTR`Yh%Lm=!J$t=Vl$2(mG5EcvH7(62{1rfV8? z$v{U#BABRUDx}>fV7VGRORAXYNY1H0qws>u6R=F2s?Z4W8jJ&(DH{qEdhwYuAEu)+X^aG9IRdE1HU(jslPGi0@E}{y>q{`!%TX6k>Hy01%>hhKru@e zn^{2?uzN@-?ZrXXISXv&aK0LnH7pDzBNS>T`=Cyg{RJ^a(NuX1q9`pLI$HWcA6}Tf zlvP!U0tH!rnN?3T^?;aN3xDJVkN!Ix}5o+ihkpjvj2_B%45ffS(QSy`ua z4NMcP`)jdQA!AEtWU6ktsK`oMRdq`0Fd60*V*mjF07*naR1^Es=NphZaJj{4YT%G6 z0a(z^4vY$9#sxVyg$Mm-q%=64cS}>6IRN_5zD3C%W<*74;<1xRbeX5wII(7v)Ho5t z9hX(o=>kwtp0}~lqnoytt&!DXn=4zj;_j$GmAGQ0&ZbHJmCpMmbUbP2n8465MYk|C zjdRNJplv#6L{f4F6XnzVn0d*t+Gj*Z(0lcp7varDBGnnDlX%I4o{%_UyFsbk5|JfX zlbL-ZX*|q@?UC1zYL6Pe=jN6ZdJ9>-lnFp%hFJooeO&av5SDghFKkPsa$x4QauX8L5DvxQ!#I$Tj^Ii)dq9@Ox3uK zaY!)5lAa^7mH~>64V(x!lb)T2*%iyaCe(R7kp!V<@)H+Edy7lFTM3U(#qC@=F8B;t zb)loQ1;bm#Rems}3uwHnqHw`cAZ@-xkGY1~kj~Ys4W(!`dS()Pl4US^`W%r`f{t*D znqaK78Je|4OQJ&sUp3B{_$2hr%=bB#gtjIU&*NES2EMuTQyz}0HA{(37e;yBy>68> zyBl~+(uZ6bYNaX;u={zbz^fUrpxpBS5zIA2ZP;XjP&UOih|Cj$H&K=$HZ_zAa+U%} zQxsBoH!G|yl_JsY4H(}O7T$y$$1bD|Qz<-WA)7){_Qa@~0huT>lb8mlK!5@TM*V1E zxIPpS>QEoM^;)}zlKLyrkCv8(r0OJAe_s4_kOkTf9gEzY%^0EN(r-|bH;QlvJHsBE zyxP~r@-VeO+g!cGg~B@*kwsbQ#1M9$^5Xr3LHgHofzWALv!wM1lT(x&hKd8tST@d}1eatPgishlG#lVh9*UV) zFd@Iy@hs5d1_usbou5I8C`%ni&hn*E_+m1x#;8;?UTSPtPHC;6!DXhlnF5=(R+t+k z$Qxne-cxE((Y_2UeX3K!q`E7GI+k+)9E=QFx_TawEtSZLjv3E(zQ&rHh0G%tu-VCz zP)Zw%F9IT9mSUH%yycOjYXDdQ88fOrc@CxkDi#_x+?7fqKy}a{4jM z+U|4&BJy{Z^$}S%3Q4v)Q$-C1k~xiPU?K(ZCs(DZ>6$o7D~9o;w}AXVOYaqh0d1vF zTX0sjq!u#?sIg6f$vlT-Em`WXVji?P+rdcWd?#%=+kDjN_u*2%rqxTA)DB&??vZQj3i7bpP z?4Z~!D5#K(XJLMqT+DEWnZZOIB3o5dsPv4RG80Rwom%CrA;n&AOO*+bD#Pbrwz zQvsBF4jDh!+z~KSGW{|+15<&dA;#7tB>nDy7(Ael;6i~k1O)jA ziGZC<&rCd=xsfn8-Q`*A~~>!)Jr1Bob9Y!;1)UnQkH&*usG3ZBwed~5{bJT z4^z#JI;c05$c7bDqT|$`)CZ7>M4nJl#_-JtCzfrrw2*_MA+y$62iUZHSbv9($H7Hr=)T-1= zDVsy=L1^y=b9G6XK@7v!fXq9@Y%yybHmf*zrVAsod?2f(ke@iCVxiQFOspr3`-tHHlG;6 zFcPzZhtoL@(vYU^l0Ylm>KakYQJ6dfok-i63{qJ?vD#HT@k2x}J?xb|1C}4&n3X^A4s!c&j2Uo;{L4gG%U3$kkcf~x& zKk`w7Gx_`FSv!n;{yOoEVbhj1d6_~v3}i93(+{ktlG8@c;65kyOpz`~Y04f}Ovwqu zUS(=bNw$$_UV|`$HP5Zr1T)OC$b+(^n09EV8H#*}`X4P^4`*7C)+#1)yxK{2Bh?LU)K|?w}Nh$si(0 zhjEEM0YHKmuwKKMj^Whug~>pH#-<@`(Xr%GW}gA7tCjR}AbX8a>NMu|Nd_vUi7Oy4 z1*_X6wa`_K@aIrpyR8PlMH}I#djz z#0{Wgn*~Wbl#A#}3Zzhm9U`H!C!$iKRe*G1*a_N@&6HKtB(oBnCCW(n{IjZ*n0rWl z!bt{GV$L}Ts3m8%oUv!O7k`3su2n zZan{ENEljbHHh>>h@=VpT3KC*zl&_~u{Hvgq;ahzpeNn{WD~%1TG2@5yi)G%{=d~p zshv)FubhCnP6Ix01D&(gYC* z*$wI3Ce?uCqCkq88_wZ?3hivCe8~$P2Xa_?PQZ4zWjPW7t)jp}^^uvOCbbT~cbkUD zhQpTeyO273DvHYZ;$~?9a<6h}$VeQkECU}Ok&KeyzNLD*qaKdZl;!N1k8&F1?7V~_ zDO@H+%wH=dJaVRAF%5K-+uJ;xOKgJvigu7^A;}amGPp)qF(H$bVrHW=c|>x7LpDWp zBu56ItR5azo~N5cK3>NO>`^#(a!G__&|0EK#yn<$pdo!vfw4W1wB%Xvvi0{#K`;3P zV!9r>+DR!X>N`%>S3LjnIalS&OLh^iF>)wGe@L8^D3KpHw?x(tnAA$@%o@Ye$|$UD#z?Yd*=XOHFuEGt8&v*M%sT71CEHY;I^!|Mk{_vG7EeQ?+| zi)M&uoI)k4tfsx#9D^DY0+Qf3lAJ=_4f8S34JUhWQgli!C~UZe^^VJe0w3XGXRZr- zvyLS{Pky^45D1tYpGo!UCoNC;$a4iD67eEXRtt!b38qv`B9vWFiJr&ppd~)GNGRYQVFFZ z>%1qQXLcg2)CDgg9yp-v37Q@C&I5;n+BxqX(Xqp0iLb1P3=m>#M!Zd7&H2O^gXU9; zC&@B($~kXnI{u^V^R%uQ@@?e# zB_o;J#y4xN7LLEYoF697vUl4s4{HJb{B-FWEP2T}zIC&x~lH1b;|391SBE zG2>(_49v2rdqH_UUOtbK3eS8EJTw82YCc+-w_!|cAdr}8qmH?#Dv>Rpn=wprHpVfA z!8vZaE>Sgl$7qmFenj19L0F&Ub z=ITzgIRe3H?5iY_M&tZ5w6>A_HAww?W~4{}DKqjx$2yTJ8w-Z~LyEEMqZhs<;&Dtf zG(QfLYh~R&mZD7t2_mIi!xB4V%pLg>s?Lf{PAJ($K?2B(jhRxRr6ZD>*%1E>lsaT^ z85g}+2bWSwb4FI(>bFs>g-pA$!bm^cy)>kqTm$1)wS}r1c_N{k?=9_Bu+s3zrRE2b zTx2W{KJ@xILHyaac}3RT>(M2-RaMSCnL+0%gMnQovc`tL4ob>_Y#^ILSxL7^CwMGB zb5ffSy=yr;eR;C>LW;N+h_}<9W7Vc)tCZP?1{A}`UJgFLO+@f)Pl(-4E2dPD(^NozoTG@BrRJ(wornUwKW83XGmSDJB~EgR(*mx`Q)8W=OhfrOQX zQq?ev0YgRy+51XTBHhPCDkWxcGm|2e^Tlm^K@^2Oo^3Sg&=S^XYc5fm`N9@4@WUOu z%(yhI#hIe`tzKzzib=lQSc;WN!Ev2hAzL3{t! zmX%O~gHq+`Ekujw29-^;6l2BC!lsP?8d7h1lgHWKQkI6}vYl_3C z=N;#xcqwI=XQ>a<$ts$}e7N?px0>w6ast`zZFon+=pti@vn-Hh2S&4XtV^Y{%d&6G znyWI|-b@W8*r$z=of=kKdN&^`h&kzPOF9CCXf5NAvj2g-KQs237$BGe9mWLW;dYw@ zuG1D8r@ai!oTcV=&R@IX#dW+Vf>1CP&5uO#8^;}NdLVn!r$CvdQZo1wDs8OA#fyd| zB}qJ4AF7;zq*i7juFCe08U#$fs4b;^Orun6X3gV9Y2ye15YDjzPAMv|v30iMs|+nA zu&_kJ$H0K*v<1e69RU8)r-M`wS4$L!z%?AI8V(#2g8Vf(9ak_dBALwRCbuoA~0CD6w-joL9t zb-b-lUJ|_VdohzI2S|#?t=$);-j#Gt4At5r%t&5fy6oSS{n_9A#RC|lX zSDMx6E1X6-rp-dmNeHq}p$W?D*yv!1$O+|L%z2fkifPGQ-UmA7LbsnLPA(wOrL5e7 zP=HEadr#gR!MkxWXeg7DOIeZ5A|m3r&99d&QjrH}yb7lD+yM7#5D>B*A)ExE>xFT6 zDnAjExGviXJ~2fFF&Oky(K7NRVS=-Y@fh$SZuvra>lf zfa1)xR2fPJ4&(>r<0haDWd)fCq^ujOn<4Sgy}T032KL~>G*WHZP;!T20qgeM(5r#) zhT3~t8Y7%Y-j#uvs=JaBpNVq_>ANZ!K=i%U$y80ws;8IIW5T+v1(NPwWu<%NBLdO6 zwq2JEJM9yXb5Sv-ph?I8K@}$V8?1Xti#EDVw$jc14Z}_MK`=o;C$bq8May zT^PQbQK*;Jei>{8l{8w}6c=8&`Nc_7jA0>KP=e9Of)LNbE21!lHU=md7(k|B$z5ga zekE6JC}K{vXzGuVZKk44CmV(6@mshEb8xmGnQa~$l1WMdC+pVH)Ycx622RijWSut{ zUZY5kLLnP6$}R!Gv(&t7sxzzM1*9Lq)^lZxCU8XO-`WxS`AU5$tG!S@bJ!v`iUNm} z7jFTsRoB|1cqq-2nbH%9jB<8f0>vR(qZ%336|5KotwUXQn?Q<9Xg5qVg3R@<#@KI} zZ6sZ=Tu((WH7y&+Mc)XS1whOtBEKt|MjkD5wu7gY;GT>F6N%raIrC`xdMnh3X^uNM zfpW#5siPT6n=rL?KpDOsk5)Bg58K(nn!LdTf$?XYc_$nKoewt;%+rNaY;2|%${IS; z{gzRih|@t~>+qW9lgj|iAcZk4WMo6=P;C`XssLs-NN!p)Fv$v_#p7pa<7$}T@Rl^1 z?ko#8Vr#7SbvoJ@?G&H*Ccu=Ropi_esM zMq!QeOpYQlA<+EH$Y?vJBP{Ekr)+R-uQ}FY>edc~i31gdikK7b31`hlCWB9gY)md$ zijW~uvZxQ{o+xp#(<4Y_Uzq<|;(I1CI4Gj%^H<8tcpTCEU^8CId>%?@gH^mrp)Xxu zNW+*UkE3!MRhRKxdTZrfV80#~X2?9@%Pf7>`3SU_*r-SN8LB)kc0VPpI78C;I0A@a z2Q%X`{2DHJ$KJ|Hs))`r#)S@Qk? zb5(J+mbQgP50p4&81Sz}S4}uP(gvL;7*x=r8FUy9;2cC^5hplvsunF-WObn!9-JD| zqr}71ePrXNAo`kFxE%4DuQRvE{tqDqSlMShWmhI}+~6M7t-2Cn`|4 zboZYq(E`dU3Cr41V)05epDD#E@>p*HX-q<;dG_@p%_s{$Q^08L?txfp-G`fmOW!5Fi)g8&vg{!nc}33XF&-ky%*9q zru|VhaFeeEaHbLY^dRD7-xiNag|LDv#z{&M9hrqC!7~Z`;B~1 z!@x7t>LzAsg+{X7&L*OW;)pqOnHF$}{lLl?VWJF@&?%foKAvGS^O3*HC6HQS(^3|B zJhasr1QU%N%5PS6vtTVvVq!VIBiw&R2vU(p4+WMoGmdrNQB&7hqt>?UR52j)Tr(-@ z_Q>ZOo0Ni8S&j@AEN1_TycBDR3pOAfy@#feATC5$6kzD_xQ9Cal5*J2p~QV8ngA%W z;@M!JaV8`rf=#hYR^*w2GPy69>c)wF^_GX)c zoQQ&V(82J1tj5|A%{D3-O=*j4rWpiL$v0V>XBwog8`oRT#7@0+gl$wpPoAe9r zCwNG@tz>CH31@)@Y4bt$B&C3%0bUAyFiVLk;X$U*ph=lT?5r+AA_|shhe(wmA#JIZ zXQ$(KFG9yT`w&*;UocC7>9LqY$0cNi3lKi+s%av&O8yBeOd~UaGKNq&f#VYqg?vCh z(|1PFLN-bS{66uYctdGz;Bp^Ry$F%6LdZcwV( zsdK|{Em+NH5amWHd9yd6Cuglvl?CjXk0`#C2?w`wc&HvT%i9DcvUhxpg(NcF%@R#f z^zlU>fH_kDf z%>1}42VEABx@^DjG>5Ic%jOSvnib&U;xlJ$21}DJU8tN6%2|)6F2{phsosHu9&n$L zkCIKY%;TbyCMa=~VKcphkgi}(2Z)d>yCzzm*naxYr-gGiWsN$OX{)vlvNmfe-QuTzIYA4jvRM%jGN9zXDSQdZnQmjC z)+Q9%<8tDSQ(;a+7F0ohQh9qcdS$^7;{(UU92SoW3x1Z@Edyp!%?(43`{5o=hPzVC z3#7xiwBnw`eCK@CK?b&!*m{eJTP{M+Go`bT85ETfC+XYlrC6SU!{H^Se2Pz4n7K!q zr3=klNUz)@hoX^sJ@oIr;P0BZGuhZ{5}3xbP@(zQ*7>vkV}K-kJf97;hQ{74XOr*A zV#peX#{F85L2{<3D;*Lt&Bku^R5a^eIX~MA7u#7d!e^gPGb)Tr@rWiLvl?=}r|GS; zC>3!Cz2_vq1CTky9!jz^tb7EOGd+Hu%uZ($>l{SPJTbV`@HtY)V`_J(d3RFg5GZGT z>5#xplx*C;WLXjhr_BkM|y6B_$Lc{IhDW;HO&B`!0YGV7Cy zlsMN8pRm~&Tn4YC?~3f|Ew`SOiF;^7E zpXkgo;o%l;M0D1n(%zJ#kd_@;BP-9#kDE5)yaAA#kK=eJWzytRc|c|o0a}by#ch-Z zIQ3uUT=p-4r_&mPg*6h=$HoNr@3BW&U&DTLN5AS~Ks3A5$CM&_&EgS9o1OrBBA%+{ zCNHb$OMuEhd{8u-ehSKqhYKW?xnp2|pE_!YFUXV%r^pq_iS#pDptjyI(A^7Cq>;or znJp(}B8`s}uB5_8=I2EUHoy^k6I9rQVmTkV24U=`^j83~#u=pSMbh|5^ckhd1~9V` z5{;B(J45vUtV=;-ImbL8Qq}WRW|lLvaGqz9m%TsCkCF)?W?#0H`ew16ne~xDvT7Xw zJ3z$0y#Zj4Qg9As6+Q0sTLccTD?N>1d8N!K*6H|;wD!-81ZT5>l0xW|$1}}%v*;oZ zMk>bH7ZAS)GmGX_cG~U)!{Bk-lj$SqVZ1o;@7apXTyr5A(v)lCPN^G z6~GP+RskewvgWcpcqKmc^UQE{3}T}~N8xFi606ko_2()9ObIEH20|d0>S8HrUs^(X z7i2TLDL9B!T~?~M&%X8}VL_S0?Wu)je{bQ9W^`3Wua%FNLbQKTe?g?blbk;cqLK%o zS^J?p3psI_bIBlSYXbS$1?nZGtx@PiC{^3Aw9B(!o4&d^I|*cxU5UpjC9+(gS$iAI zp7W(l6}odh^SKXQ=|EcaY-otso0xw>HZqwk`Y<1X_2lJ<|O9SXf`od z&wmydlL5=bC~ayKg@#$>Imv)0n@f}h;YTMPEEX112`8uGZyCMY?C=tU6!z3+;bB4c z63sp##?1o4v#n8kJL{Z^jr5hQKu45l{jp+o6z+;GzA2mANj0^&nEc51g##_CX9M*< zQ=ibbMa_^wpol!6+)RQ&u-w0P6sjg8^hwAd$+7mZQj(MNe5gpe$(xB_i&2(>c_M(0{p-w+_@E!)AxM-|%gHVR6eB}b)27NCac&C#qxAaZA} z*>^KDE`ga=2+SVC)RNt+OeW~_v}svzk&^;~bChY2H=U$%t#~fgBgC6SdgCSD-~JIa zk*tV5W5k`usbnU*+n9-(fl?rQPi)Ni0P^FbEEz(XZqXrT0aRypirids70;K0CG$P+ z|BPeXhJqukRQ4v~B__e?IkhT9Oh(~PC$^XBcdQ<(c`0bEkHp#_54o!83Z5ipM$RM( zOj{iGD>207jA<4UVgj7EnvIk?cdKGdG(MySsz#q>b<0D-$7-Ba;F7~?%pmyewa=Zp zg8pgQ>SbhS&Rggtd)6qPT!}xE;q6JYHjtwj3v#5<&;eJbJjqE%>BLWRSFDeH6UR>C zmcmQNKO=h8-%7SDViJpVbpczZV$rKha>XC#do!khS^JuB>R&v|Lxl?N|LL`cL z!2z{KVP!t)1eOdhx!5)A29Ib4K>BPOY4xO^3pM$g6!Y?+FU6wNwSsgW#3}4$%HN`N zq!tir%mjlZ6PQPz%g@F$n^*!B3U^oQU1CSb6cXmqXR?*F4JTGe{4jjs4MNDpu^Q zqJ!m7S?SbGWW7i_-Y6a#Fh;wy0<~Z+V&ra%k+M9s9EjOkJ}NcA#-u`IT6&Qkk2y1{ zNWP+;n*!{^Xy!`!0%V(iG9RsB9nPajM@~;=A#Kj-P_N+Fa(*c-D#>O>j5IPBvvy)# zX_Xy?76VGDzX)g{?>?kFW2Gyax>=AExi%E_63VhEwMmCUzqk~0=3qZ@n-k^zR0jhY z`Yb;Tv^p~-gGCi5>k~+`heB2%YtJbnO?6NEHqV=@KTgPgMWn&%nNFPE{6p(#EfR2~1|C8E!h&PLp&Tqmk zDE)Ng!aP#GUTxWZa|lT$!-^{}2mM&cFRF81dIFisVn&Ih&Ox=>k*YR`a!GDMl-^_} z`e7rRa<*!+my{e^AT>^m9dxMQ#PX<| zcbb}!6i{-a$%0M8rCI6o1W5yj+> zT4c!OqW{sAdBW?~t6Ghl|HUl&ri zyx{95TJ#FSC`b+EN?T@|1VpBCbh6Gd1G*F%@@yWd^ND97mdAPPPEoN^#a4^TC9NVf ztzU6|Fnzh&}^kO9vw-oK0>AVvbepQ)Gpgu8z52ZifVMoq8sm37rpV z_TV~OQew*hrQEqsKN|)Zt8^($^R{e_sLKpW6G#n8IIQkp)^XKpLt6WS^4dx%Xo&e& zf^^r+Ub~@I#YDOBlL6Xr1{I@_2`yUKnXr#jRVo-hV1xhN=+tVABN2d*il zaho}njl#EV6x^1I(=%4|w6BpJX|i=T$a+_>e7eR{DKEDY zwHhJ+n}S0MtxK+->Enfqy%Pmw#mYD5^5tvKoJ|U*B59mSAT7}B+*m4g ztkOiCH72i})ubZEox>~{4dMpUw+cgR*GR|mq)7eA{Fq2=0AVLsIToCtHcV7zfT%F2 z_~UFb?`AbvG0y-1QoWvZISAPb0L2c(IQy&=W|ECl07qr}!+jBHgxZD}%1yaCaTGGft~IR zX|*+_Mn*P^^e)ERVwm>6n6T+Ax@AVPy62JUIv$EwS-fZ2z~e&W_fQ#PbdUI`rpjz4 zYh(L@9H4(lvZ&`Rogk^WDjU$ zqEp1iDau)wiPPdG(@(xB_ z9IR(yWO|15Eti<13Je?H6!eJVCnu0J}*&f*v9Lam0 z5v@b1oP(+RoW3h&q60!UfUWziWp`oF3A5o36x=+NhmuYQk6D=JQk3ww@T(;oEmMJz z#DS5*7)odbhcgvqCB>LJ&woc8Y`_dkbEedk{FgkW%pw4vMVE{9Cu3G~A;pMl7f7SR zpw5-DYYC}4H3BEp&BS+{P9N1dMBZ8;E8F0tUzl2?lOYBT%wEb=cDGc*Q{8!a!ob>X zNFonNr=Hg0%+MKIQk!O#9N9>V*{TFh@CE51NCGYw+j%1UAPFy~DCpR_mRSlDXQTQ> zOBnG7rY`uXKs*Ss8H=5*oJBnhKjL66;es&#m^Y8cm^Eh*&HTwTVz%efkZ|B4EsL|<+rH;&8!t|w6Y|p zk#l;$Tx^jw!5|O9tbS^;nAPG;8ja5oI7G#pJ2{V)(DkoVg)#s>y@!m_X>Y2YFAK{;g(gP+azljniW)89v0T*D`nT5io z<(hsSnXNz^lj?w&QJ7;h;Z{in+uxdXcQZeuIUTJnr8kBP1+z6}Z{B=*kmYKSJO?1D z$2pi`a4zG0a68L2nw{(tVMI3NI1aYvuR32XC`&?%2?{PW=#o%@+>Ok{Qj$w4{aDt8 z2ir9K`EloeCDw#_yaI9!y0qU=7?nc?@a`32B|*(xZAIfN65pS7>Z#XW^4d8I4Q$s7 zdfiQWep>!fs*EzvMWiFY;9R=Rxd)ak-1a7f3F^ceB-M2+Cyn_e?_q7PBrCDWeePN8 z??_t#nW!`yVpoOrjjZHQcoZGVt8=Jr=4X?(Nta8{s_$%~6RTvC(+_N7(Am*foAi;?~$w5fM zPUSiEF;ts0@6VCl3lScSsq@3wQQ%n*D8qxo<{xHNx{NlZg99`5Gm=x_kjE6vU!3+Z zN_UkkCZYpAta+OQJKmqnp4j@WcvO`c|)Bx;5LxlUeK`RYJukxUr0 zjb^Y>j3JrbOPw|g7&I4)jU)?XR>`t~L1z{JoRd$6*cJqvRJ>v%CE`4<=fSQ`Rp!ix zvJ9R<49s8I&7N(!BLk5juwv z(D@n9o4K|n5|d9(ni)y+UY(>?l8Qs+LvDa<=jt%RQBq$XFp($IO-<%$Sx77&A|M!& zpfJJlgtDJacPVUCK?xWS;sP-Wg)|tM}OR4k~gV9bK8AcG9o#V@%)B{Cs zMLU;rpUGG zn}|B4>pwp$3Ox&58%|TrDSJwl{DG|PIE=9LI%EA&YN%hyZov@;^ufFe&(gfo4wTc( z^f3L)+4$|m6p!jZ5t4pKL$*f=6eCTh0nM<#Ku8X1lO;9XPN8Og<%S(icrYQ^L zXAI~1%+t&yvjRS5Kd)T#$<+!EjzU9blsz@DCR0b!@Xg5VVvjfiRH+4I8NihLvh^&f zYM7zK4^_68JFQYZQ;RSTRhZ8bk`P5w7BIV%VkJlkZsWEr^qKV37!@3sA+_(1MxR+7vq}J()7u))fJEmF zT1yrwe@STVWg3Nv^urh;V0bJ~^ILW_(*hc)nXuBPQ0=`pd(286}3*7p=_F`aBWG2lpI|_R4{xaq>*30b>t_|LGwoVU|$Ad+fCTH8hO@;qiKas0Be6^^8jC5vZe`2rhNGW1Ha z3`cE8pnL>B8O(#}<)zT)qQnF8;t%=45wTsZQMPhJrh;1TJSLL+Im$Scw4+S)IsJE5 zCi6^m&`Z?7?}`e(N-3B})lHc+GpFvKgfWUD4J)!t%Ir#cE-!2T0K+e$V2z7R z+db2_g=!jUCk9D}&h#si@Wqtc4FW=m5=7au8dDkdr6z^Rp=gAuG|0KkASey=41yUH zt-C_nZ^Lj`ur8I`Kl0&*B?%#0Jq(qoo69^_Ka(nY75v1h)R;aq`QTm21C$K|Nv2%o z9uvN)fKF0MX6aqAa`$0fTug6Qt@cFk8WO_Mt#+c~G4rfQvjsXC=yRUkajG-Thi;1} z!=dSSS)Dm-xw7dV)wC-}n6N-&gV5Fn8u=>|p2WtH$!NA1gwPlr%I+kKl?}3Y+7BzQ z2A+TufS8>ufFWYP&U^>yYw_!#x#Vw5vWrLxo((kNBY;tB;@Sd9*>JX#yjvajt?xi{ zQUVfHk&H_y`w*lcB(gGmtb&Ker$$sq_=QIoPMcSrpT370M>r-EJE9gD-Osc5xSuSZ zoMkw(?&G9ezzW6~HmaoRBkeQf*BYA1T(ERtI}0sgk%H@yS`$xL+eCjp@UHS{g;710 z)yB{K6r|ukbHW5yc?5={As>FWhg6tzM{gh(B+P|abL^W706~e2USeg7FPQYhF#50w z)^lkUv-*NaIYLGK4a#O+WScuelShZG(8SX?wlFx#wFyh=dd!)Ax@|=~bxMvgqESQ~`2{)GQngI% zS;hPWX&A$;KpRjJURQpMW21pb-d;j-Oxi^=KCh{n&{$6hZ%lPpNOxK0E1me3jNwlG zI8m&Dg=sR)p5s8#$J(A9AADsgW!|ve#ZrhfPuMi`jK#Aa^k!07Y0^~7(S<_rAAFuQTEqGBEkAgv+lkrs za8jfo2{LlE@nkfgs znPHkyF{iysllW#1=IW*c=RtPZP@HffY-hWf&^MjbDR7U%dPUhRz5D6rp^F+?diNx@jlXs~I6Ed&oVk6F;I2|`mdVm;4OYxAp^hxjqU2Ta@a9<^Po;Q>F^Wow z?J?alx?~!QnhL%B7i6RaEbNadPCAavTs*Oub9qU%u+k|6YkmRA7fDp?nYawtllei% zcQslV5fR|;EGyFL+J*<8bV`vOA*tmtWYr@HTFgO9vq8<|&QWyc9Q`q!Crk?(yKI0e zcvAqUXimcRi^YNbb5d0!i*G^Mi_Oz~2?bAe)bvV6*2XyN1Ul&S2Pzj2$G8sCjK1Ei z>!AA7ux@H{t6@V)KI3zUy$bOw>RP(-h-^gNfEY0uV$44NSg`|%@}DIm98+OIYMDi_9ni8O{j|8Han)jnbw$pyS*L4%re+*UMB?6oReq z-1aU}E#D*6pR-;*Quk9^!&iqWwu$jlZU>)Le*IZqCQ+)nfy^UH!A=LhT}IVSq|LO? zBP(h#*uM9<_%059J@_UToh_V`Ay7aGN#QL2Mz+#e{c&qSnT}P7Im4tfMsrqUih(Lt z9kiW5+J%BONT2wzC4Hrdrpz$M)p%~5r>6s}Rc(!pr^!H0%1}Xm9w)F?zb5Y@!Nk-4 z+U&kkHZvJqF6Qt}{tt}P)9{}dJ=O`t8Aho2V9A^ridsfFdBboiNJE`^S4dM^yTvw* z*74+F2%#U%bE1HD`oI}pnouv&MWdS?#)=hu6gDNQo{=AMP$`cRO%+?sfJnP46?Iy) zUcai9)tnD(Tu;y4qmTk}AtE0<6*3D4t1PnQM_?AzxyS4=&b(q$vo!J#W8)jL#WSi+ zWXW@>FKnUAV<{%?M0dPkoxsS_b-~_5+Un3Ckq8^c@Jc4ZVP+8!c8cW*EZ9{E5~($0 zn(e6!7oKIh>loPL7zb>l$!oi(fDe_00~y+ICNv;C9J8Viv_Xt+8qBE>=!w50@M|iY z#39l0U~6%arH-c7te722B)J&oPdD$XM9<*DStwD00|jw$R9Kb+C{+OoLuLN!B8?Sn zWKTF|N+q=6)?K2N{q(vlOQQj~V>osP^G88wdID7UtTv zl)iS;_50aWDFCx9$cLR^&Dw)76R?oQ_LglPL`vJ6J;r^6@lrl-K3|p}1C?SDSV(lj6>Hz(JEt}g*wcTCax2Hu{}X>> z%>gfVPH9%PgvDb0EbqzK#LS2PplnSWO5SBVL(wYAhEoTjJ;<3OR`hU-rd?zt;yKA$NVO8v8D3ipPiyuGoN-*5B{Jg3zn7{G36RXm z47UXZu?i|Is(?%nj7Rw+TO@+D=3wFbakBVPI9K;MI;Y!&(@@XTYtIGf71YJa-qL<- z`7Gi7uX2eGjNCyc%LkybBWQ6Y=(=X6ia|EFFIKD=XA|iyCk_fY5Ys3%29=WqF#n>Q z+)Q}i>G%@T$JQ_>OPK-anRVEkKuk{1O3fjm70h;Rv7c#ykS>kgib71<+~|Vj8ygG--vDbuv+PS*=d{ zX1O#-k-sUB@`axf%ANrRdD1q3GKY}5XnF1gbM$(c|JL0twz6vxXpl?a5A949aG8y6 zv5H!SkDk2*P8jP3V+{k_mqrB&(O08!h-l(YkIPj|@**E&R3qW}Nit*~B{rd~ar2xz z-+(MTJ?SYw{bpWhPWif~LbH}-=)>RiqUJI>t?|pYsvc*XkwiPwz*6~0yHf>(r8m5uW*5RjEJQ;n5DflxEdbOZD)}LAfreRLOLv@N(zgHry-AA#m97kM0%LR z%CeAE+nFjA%9{N`tEyDcGQ=k|S_Z0qK@qVNqmvfV9O)z`W)&%<vq?uJ9SmpLngakT-o0KnA%=%=`4_oLd9mB9XOZ{8Y zV@n$HYOn zy%UkHpoBZ6!G=}mKnsOU;@at1Rq|`sfS(~u0^@Fu>cHtpmgLDw*bw5hfkG=(Eh%4+ z)+WpKi69ukS~oVQx@9s}qPvYmgTRa#<@`%$5)iW#V1W+j>Qkv02_@_vb?);tt;)%; z)x_E2q`pjZV2JXqD6oRe0YPN|iZ7~nG_2jqR+}MtK+1pKZ1I~p%PCp(Nmx+WvL`a_ z%Cid)$pI30vM2&hxi*DnRzPc{q`}XU#b7!0W4RG#+4M2pBF%0ss{yM=m+oSdMyLL2 z`bFrmx71)A18zI1K0%P_C!s7@Di0(kLb-rO37+rtBM0(~4vegyp){PU;4MrOpgoqr z`m2%Bg)cD+bv$N8fj3=&m{O2HiK(W(cIjlEDC^14ONBMPz&5%7@jlqP6q}s^J$A^( z&LOSnO9etkfinRGt)(4~0U3vZhahPfTAelpMw^*zR&Ck(Iw?`YNc0Vk;6eRO=u1gH zOR8JV){sr9`vnWLwgiM==SeAx6UKya@&Se5gkoWc6IneOAJ@OMrA`3D$xZomW*-m* zISsR!TWri)l~7V_u<`L7MSPYMiPVMIymeGv{*Qeaj+3Z#V_Tw zwajv=JTU^vt&%h&#t^%oP5>kgV>{JFo?+x5faR0JY2e!HUW&WQVR<=ihQydtwV%g8 z$C_NgNqWE;^pj0yApKtAGbCp-Q0k&Vh(gj9X{Ak;GnTSAyEGm_o`uspK-GNRE zMs)?w@Do|{+vzOwvUHSY8dbJ4=}+SbhMcEJMJE#VN~;&~OdvBoD@!_Y0#KyKOzzN> zbxIhVV`p_#I}|g zJ}#)thJ((*y21$WZHr8k*yj2dsvFJjPEwqN>cpwT+Mn%6U)88-wBOn=8hSrTW zTC2u)VQu!}Jk{I~m%$~=gP$U&&CK&k;RK!;ggWd%m@lhb7{4@SJl8Sg!p74XGv}o$ zPY^@q$V!ROJ{3n5$F-dyxjf;LQ+^;J$D@;$iEA|S!&T5_s5S`9o_Sig17@9@8%q@7 zAZC$YGL`1mlkm$HUYeaqsT*W6GG^2D3_3?XKAnvU6Vtd_uS8UoQq@fQpGT_pm5XKpS#IUB6wd!%g zl;1wN2FYWmaJ5nFGRM0$H5`=51u3QfmN72EaH-yXRn1P`T8JO*$Ovi1S<>!fb&vu6i zre=XWB&NZ39W+uiv2-;dwS%L9rIG3oLg-1S#6T{vlS_76NFp&$%iSs|Sbq(mBomjs zcAjVqAmIWcNzk$rGuL-xqphiaI!wvcl4>+&@JH<`A_jx0Fh5`3m)5mXAV8qfQyVoy zWFaYy<@p0PPh_3nrej0G8C!QHG@Pj4Zz^66%dG&WY3<27_CBV%Y~xghIiX!)gWTBqtMyKqdnPIp98J!g9z! z7wstTN#qTkK?rnGcD1wi)OT%oS4h2+05jK6OiDxPD=9$)*psroXOxs|osk^Nf_5&> z0cGfS#p<;q<*85ox#Vo*8BCBzk!I*#B%^d!!wHqdPtM*|=0R;V9IZ=<*$$=Rn=+vi zp#$?+p<_IykB6Xj`$GN;XRk_+x? zfUN68WGz}?-WAfosyQpvVJnY}V!6mHzxRve_1h;(|5g5rg0LsSS;?eK28#+XKU>LW zv9-hIK~{nuav9iR;j%3+kUyCzQB)i$&RGIbF@5~;c{`S~#Xg>GkZ*FPfSGup2dkVz z!mS5BhIOq`Y9^Nfw{J?$eM+bIjD0r>2Pc!!Q@)}d9m_cg>zA)1GFv|!hsKkQZXqnA zKbB?l7`PpN%~E_8h8P}7cYojkjc<|*b__fM^IEJj zp+j=Tm_csK6Nn(AmzkNvAZsC*oef4wl*+mdE63)frZ^T+wG!Ms-t){~vq`tbNX7EU zDBf-YQOz0fa@jme{`Hieqix^F65yV8>Y+^mfihT!9c#55;81q~3S?u2sbzm2#+J+k zpc1cQwG?6N4`D8v?(a%F!KMoD){aDuh-(YhL|F*HQE^ObqfP8t=ER~c&DztZRiSYx-Or{D*dA@1z9<)`RtxaD#z6_5xaqs~whE5bqaet;BWR;Cgh~dno zP@HVGj2V%GBeprG=vrEJg=PVd4G*@pK_%A|l;rw3p*UlrS*1~4YtEJKgZG?F5;905!pNI;5?HR2@75gapY@zK&^R#t(7 z=``C(+H9Sm3hva8BB?!&xK#N^=(gXpmD$gNxgS-)94uII#LdlSJEY~qV60cxZFAtz zaSxR}Dc9!Qb&wL)0?h8C4B$5Si$alX`s!GB&MAtGBwXvp`Jo~?H$P;a;Y=LrR%mZl zDNMmx`B_*C3_L^aauk_~>;VUqm=A@eJ#(!C514gQ^Wv5ZwLBLBC`rD#1xwSu*Tpu( zK&h;_`PF6hmo!96H6xkbnj~Rl%L#M_&X`5W=UWz>rO0+;6LS=~Ss6CD-ZU^R9+EYP z%jPF$-DnicW+q!;jWc9(i<84JbGf%#&YF^U$jk@et;E%6^sz|6asjMocx(Qn6F-aO z@Q}A&>Ke?~ORSTSl!$1M>$p^HbJkj+Oo=f8A7}UAKoTuBJdAaLgOwifp<+FE%!8HB z9NvUnn6zSzpB>2Fj>|Cf?Ttg{L?()8;a^#WW8}ze5391kk=Raw)kHKO`W_i}ZTi>n ze2Q#PJjnLik|s;A)j?ABvc-TdoRpkQgRt_EH=^Ulu?LPQz(P- z%|;GLaWv*v3TL_P#C}6E&Z)DOq8BQgYYa0Yn3C3)jR=$>FqS{XY-31>Ed#N{bb_(+ z3!FzBs>aQ-Ar}!VxjheuBB9V@%^Nv6^0fC1ocb>2yBc}2#lF?}OF6Z3o(OL)26b0C z3tLQ!BHPQR^R@AoxTLRhfWUDWXeL!jCgT}X#5w|R;BpuhX{wk3oK+REZc^cNFqx9N z*C%5y^oab7M#dKAI;7kjbr@x7O_AM`XKV?fiaG14rx_QhP*8C;cbAiZGJrcp zk&{l$45N)Lk4Lt^hk^LO+G(8$WIi(=N{b9GjV;Aw6cSuW2oAQz+3X{VGe^MC5MIrg z8RU?$+CG5jFwB$$49+B*OC5`>Uzct|)^Dq{7!tZL8_NNyifK~C8**xMIrcmQ!^oMH31MOQ*nYTJV3A9&4v~Wlv%LhG*Zjjkv-{+}SEY{oRu$!IY&C zl~lbM<@pC?q|D;m_QlgkRr;$;l z>SjxHT+9R5s+PKv4^>RbaZ#&jfrw5+WNMZrdEI(d)W{;OL*B3B*5|00q_#r1yAgq=E zPpZfArLy6ZZs9MrZr4=5xS&sG;2cEE`fjRqB4F2t=@tC_4!_ zg!yO5GY^8!tV}~$r@8iv2a?VUXI}D(j)_8|{u!!W^PW&3Fk87QC&{VyI!p>d)eqCQ z7KsHaN|}sWGGl3pg3CNqUY?zCFsca&>X>Od(zgX&*ym_&D(DWCy-kTTiq;UOmv*+( zxb%}%A`Dg86~3+FUjVugAG?%AxjmRhRj^x^DOX#yzwv}uVya= ztD|j6uCq;>MYb59jX(OCTTCU$3wqyXW25tJNDIlI*?jSi7IUdY>0K9Qw?S7b`Tsp@V)d?18f_k@- z2M4P+2?Khj}cUqMUebf>Y~KiG#Agkld;2~OkIb55-j^nRotS8em)g+KvRPjtLQLPU^|EzCjj5=vK zlY_LG1RIl_>YBbLiY}Js(Me)4$VJOcwxWYgC1OtAmGF0DtJviOir=ulAeF3g4PaXA zjJ+9mGTmP&t&STh;fZRYnF3nD1KJxm$!<6?>Y5>;f@VwsvnZccl8Nh1Ca}dSG$dLL znbsbxOWCuqI@Bv)bL5`qJUa(fpy!a}Fzd69ilS}_vx!CioecK!5o1QFHThU_v8||; z_<+GIF7j_wG%q!45i7;aRs(c$T}lgK^w`Zo`>CCuf;7^Lcrpo_gM=WeBN(Yy>YV^8 z4p+^DWn|4CD5uW{Zl!^w)@tA{zrZs6?ibZBJ z3ehtO7qG+u428S0L7lzvy|T>8NDnqRpCU^<+-l-oElc;iIS<=m%J-hyCkj5 z)Apa*%RpIP4pR#q(Wnu3U-JE=!nag(h0Br&%@*faitNp zQ*Y{EGwe^;F4spoYll6~&WWR@zL7jahTH z_i$K$+0yGyV3flTr6LNB`zgl99p*-@Yh?x{nENRxOW)#fkWH5%r?vx%)SSt-Bzp#h zm7Lubq#fEbwj@h&$vA!!u~%4b24!K_lw~=21|*rW`T?Y@Z%Vm@rt?}cCQXuH`4)~N zuBCu71MnR{Z8GT(So&Ti5;RHYbW9@e$Pie;7berzFJ;0i;j}UvOxgM|(tlCYRC~Yd zvW~n-f-caak<#tUt2@zA;iNCFK{phNcsduNzl8DK!Lg4jS*uwsddy(Y$jrW#{OOpJ*p z#-AE2(by7OG$xj4G|^~c3HEMcK@=>Yq96i8ab}p#%$>P+{r))Lz2B#-=iU3siZ*NKST!^9$##kqeRQ*|hLWbFF5R@hYUD;&K9OugNiF zO_yTo3-)qZY<60QF9*H$?a5%FmPbXD7V}?5&2EsLQr&={|KQ5ki++nU<*oZsV9RGbQmsbwJkl zP?bPO0;_*9*fP`RdKRo=GU5+g3FHa)_VZ~0*%U7*uP3h|@=Qd&+ z#dWhxUx--Kv-gU174ojTAiJMpDEQzC4jy& zlNxD&l%PGU{iNj7C)cX7!i9mZUX`ip4)0i~$hWm>;Ckbqpc3oI(byyX9HxZ^7;TRb z+DQ)S{-&Hs8n;XjBe-3?!5P(5d#f6$)$ec$k2f)j-A1Vawp)hAHqneDOgH@61bnPp zSZ*()HUL+XpR-<45H)M9Sb*$%SmG2w02vVh88s?cReq07yAusJ%slF&C$K}G z)vIfX#tt)1V$hbIVKre)-j$!DMGB1@c&;gfrUO!$qCg?##;riPj_ZWV8bQPSv%+9% z(+*ph7(pWSE@?d|#@Q79IL{r%vieI1*QB-Z>>lbVxJm@Y+@^IQ}hqow#TrnK`?9WB*&DE2&%2*nMN$5 z^m9`kjMjxQAw&UxmG1>?mY0^@I~d7!avyBSa>$q377y_;DpY~ixXn&bFk$r1{Sra5K<(Mi(Ty?8 zYmohX#};Xlv%PPBtQJhsnzF&paLRk?aHdOk0jqg~4u}3Agq`QUgi_?2Ai3;cNsTQf z^@J;@jjXPTJjscZ7LME>YM}?}u8u}W2I`)|wNa?3rE$j*?5sIT$5S3T*>^-uMOdlw zUMymE($Vq;+~O%7eNI0es|tWVIT%<^OKcITVaKC=Owo7W#AY=XC@_N8Hq9Lrdsny! zZQXz7+7QBE;c+Q|idty!v70*jOL z6M_%)xUWNbtn`42XZI@rJ3z$0I$X-d@95jcbX)GyA4*b=$+`n{etWgYk&JRbv?+eI zYjHD8ux_MM!;!_sZnZzNzU;g;gh0(paF7Qbo4DU36;!fJ0JvR;erhHxBKD2}@%azu z&pQ6}F5t{%XErDjqqoYjC{LUW>;4~5q!3ZnAZ)LKCtJi@s18csy+;P_wBR!y@_!aT zZ&XAbMP)nVSpu_Q@BPg#<~!IFmx+j`O+LZbN&0-<0THTnShmxlRf))2=N@fMwh;w9 z_j4@?F$#$V`9O+L2E&RCB0!`wx=C!-v2bAJ0aaJ!nC(U-*g8`rrkJi#U5V8z*|NA# zgJRRk8N|1|p_^FsokA4Ni6*&@5H{#k6pA0CcbH{JgJ)>xSKtpR-w zfhNv6?dnd%!Yd5hBZWPjgNv z&6MA$<1nq9b=Zf!b}9)#Hx@FkfrGjR)s9m)rbDz+u)9_G;^12)$VN=33`GnWbtYC3 zH&&s)<@p#OafgU5;t=buf4D6)mBXEFE^q>w*cAKj)8u)|0C^%;rNv;W zLF+MkNpT|J;8u#R2p#_OgVl&ZhoC}ySW+EnJ5^)8aV%lm2@g{bRSAT0^5cY(Rz(Gh zs;HRlrdpu9*BAP0Exu6Hm^sqi8^kHjr9*u2ph%XDu!qgSk8EfQ7|NG|2Cq|3wkQ=J zw4i_t-sBX`O@+?SZ+E?Oi$jp~MySsL*hpQu0VK8;631Y`NvPUcD4P#b^~p_AR!@;- z8|4Zd`OUY9>Lo8DSzJ(^I6#g+3X|h-S4YRkIm1CdM9P9vp$t)@jw}kd!OJHi^wM^) z6~c2;8oWoTv_(4z^W&mUw&q-jXnpoug8+qCQs0>1rB*#B9+&qN|5W`dQI%M1FR>kq zc2I8|)&_T$1UD1J^St@off|-mDQ>6o;VM=&cJL8nBIOT|;F;2NQrU7yFOb3trjss* z`K%s#YffcKTQh&62^b7nZgsUsBtkB>rFKENv&sm>LVtm}7E%is^eNf6d#2n3eo+80 z(Z@O9pezfV*u;4f#ue?CGBz4SnTFlQ<~t*x+tQyXXPXw;cR45KC&6qxLy3-BPr?F5 zZ;Ixls3=D0sIUV#j~7@g6b|$$1vhF;#KkJ^BrBRNWQ`q!CNSIaM_l+$K$F^>B{V2m z>H@dbr@{hPr4wCQa|Zf^4erEbKUlC>I7GQ2x+4iGP>w!EK5dQFZ!#abC}MGJVANca zk!>GJ)u5Q&`O2JszO)gsd^QksJp^42r)TaJ|ADSjoGtirDtZ8dfsy-{^~|7%>x?NH z*W6hkfa)p~j1B@r*T-~dGicjMSOum4CepJ*bU>Kn!l7+`%(hMg^FF95uJPLlZlTXD zxML{da-5!^>}EBsFxJ-1YTdn1S6N>WjWJp*r$ti=>U)C3HER8@4?*Sk{PE4W`5r$b zR6&m}4Cu)LNvS1bwX8UGHUUP6v6;FqR3}H_oFIpzOG`&vJ&8UN9w8rRomQBiS>wrI zz!fL8AqC>ut>^?(hj?wc8XKF+mf?;8NVKDX(M)eJ>RZ#*Cu4p(v@DzuX9*~h`lzW! zqPP)rwgyp(qHXQCFdmT|>&E@7uq~gO|_tW9EV?nhTg~>65k3YC>;l>j7@IV-9+tujsoYX*5)2kFH#g zDTgRloZHd)U0u`TTxny^enKHU+8|IlQQG%?+R1)3FfqHQ;e+HGo7(#O;H2g3B(Vz^jytAF2i%pkP$h> zXjBor)kJ;+$QlbvoSqFS#u!Q~@WW(V#jqTr0^J5z!pd9)SRXLDW@IBu3__7Y)7Lsg z;bbGTjmu0!Byt{GuN+PwEfPqim=Qq_Hf9{61UYxg; zpN}0mNES}4mETY;z&5Vbomq#~86oh9WumJ{IO9R@LWI(WH0yNqakhghyS=s!CBz0l&tLr*ajIMBbHbYdO~9z2tY20 z1+Vi$it}MvSkBQ+E?2x}kyY455s=Z?jtt$MR2!guZiZakOlU_So_jX&unlZJH>A&- z!SR>|X`@10{jasWFjg40Ls4)B${iNtI6lk{7`^i?-0c~viP+Yr>fhixPct_#x~?_Q z&QcHuLTEuzNgdYE34AmcPK>eg73}p8oCwU)>WO0txwa}b!>Tsp_Gfn0MOw)uSN_X! zffEeWt%z+{@krD*Uff4%kYmzpIZ>b5a~wsx_4ISa5<|s~=sR5{D%NGKNIMgK9Lp%b z7RzR;EEGdot}QY;jc#ghaWSLT2dJFr$cg7ChT8<^xjnHXiU%e1{|zyRj*9uzXApW))~kBO*Om=@lRox|Mt@!W6B= z?@oZb@(sd7fX$^dW1FgyZqL2A%vOZTm(~5jVH(I`q#SmI=1?y|SYy(~lJn>x9Pwj$ zKvV{vxD-8963lC%khpSFq^i~+uAP0+2+vD&hcz)_mY1Piq$%mHPW9=3IRnC}M0gl? zLvNEqwPPjrl=a2~Ev5j2Qd&T_iC0Q6Zqk(-oG4IKOL z@B$`7t1P_aHYo4uLbf`wock?irXChe>dcXbYM#O%`kci*Q?ijvUE!56Fqu5UY;e74 zgdU+$_Dk$uh&&C4LYJYyI_iC%X%Dlj`%bC*?VI-HpJaI41J>L)o!4_u~5>v|R zLpdt&Y*I4g6!wMCwkqk-vb6Q0-5beaz&_17>L@dzSjc_XoPh`y6EjBfpj3@s0fkne zu*2t}ymx%jG{$j^d|=i$*f|IlV~(gb?X3vY2botRUS-6J$48DjJGaa3us@I8tR7H$ zD=S`$Vzzh@zA#qVpkvr~n11O47^_bzIaA+h&26dS6vCD}MgqAIipC?P7Eyo@ekb&Yh~5=b4xnkFj89|+L{dPCmy#7AY|?=I{;_VfrI|Q zw3+iWvp;irKqW=Zt=Vqg_(VylXS;StYOc#`TnM!>!n;YnG!@#0D(o>^LSiC7U)fdYZQLQ35YyvtjXqPn^1oau%O6 zy7}4>vltMvLW#%d3!yPe!$xQMA)JC;F{V=73|v$}chv{!e$7-kSwCTQvz6%_jxGG^rPLS{mB_xg-p@i0P^D^DP!&*mBtSq~%% z(E=wE?xVwlB(nA#@4*t5Hsz8-E{UTT;(}kot!o5w<84MORa0{} zB#ZDL827_SYA(ekCTZ+UZ}TlO9Ib!jwuX`bh0&jcmkP)NNjP=0EDuZ9c#3cq#wYQy z4Up*Yof|D|;wnx5>o_csAP0z4PgGf%fc}%}2uHYvNRTi6YJpDRDc*34@%Yq&#~fYI zXSx^2aWJtx5*jh$k&>b83}L@XO`y_{l!bpSTXND^A@;sF?XNmRCkd(RbKn|g;4os| z%ph+vL$;XAN<7(#AcwLjQxug2)HE&zcP4+SG{HEev68EXMXihEjb-fPD^wcCnjN_L zA4t49YfEZw2u`%2Ah+hi$aMe7$UcoHrP;E zcNIZ%UXr?bpoGfSJk9UOW=$c=G59@sQFLq_c&%ik36{)t+%;@#Ur<3AWBy;RMD)=KuwmQfrMHaf8)|($|Zq zv|0;Cidwl^sfbyT<3u|Ynkhy}lYz>;>1dAHkrg>_X`{v+4D{M_VAWg}hV|a=u*!gL z=Dgzwm%B=Z5p#zxb6A|$OIn0f#R+bi$jCJnsb_kunq5;ovgSum_ExoJY{vopUdHK9 z`xBvYaz||MSZD-=(HA!{jX_tYm?yS#3$wfTxt7y$l_j|`jAoq(je%G0`g3e*w~=xx{e*1jB@o*bXmFw2GX1E6TNsAGCL!c z{t_m>c~1FDv4~$Y-c>^}uvy$9V|+B_ZmY-Z1`QRZfxQjR)j{vXps{Oe`3IcN(XGbe zCj1Edybqzd$$2cEPBEMdKg@u$i>?UBZj5<{P`7u-2OPZ`@%gF^wYeC+L^2j8jA0j2 zgQ)q__F`bd$jH<1kmk>OeCl8|dmkxwW{MX|Gi_Ox0+r&GElw!)SzH;dj>J0VXsm^3 z43F_d*>$On)05?hME#Wc1KMyMs1N8F*fE~8mTQ#)3i^hC+D00|foX(-N`|5M)aI^I zr)hGY32V@^Ew?DoaLhvFOL>nd?rIhgdpkL!d`jB;cs^PLh0X^GYj{UhNsF5${1s0V zQ5VWGz=>~b9V|DkVp(79$o`;bjZlHj_t*5ww!0`d&j~lLj{M^`0gNs;BKU8t(#bmx z^$t$=L_qnJ)A&7ek&aEoebCXMv6gu^jhH&w>EbR%4hL*ADM{om*#w`Rbo`Yn`q zCF(a&6QOt~jFYbV8&Y&J$b17M5hu^a+jUxa}wX>B+N|H?J#I8pp=ySrw+&i z^-%~#!ZvM0^aD~=k`c6_wZ9D{7QLgy!{7vf7WHi$I%dckWEuf4`)6jFyyN0^6We^( z=`Y?r={;A|kv|NRYN055C+H{4A4H3W-de_;aUX*(MO(DSimo?SWO>)HlPPtDP>q~M zl_Rg9sN1`23R`FjQbN7nqW3il#xFA#S@l)Qy%&c|L5fp)t1GsGk9oGo?h(}0%_O-2 zSTux#bp@+$QBY-Xv@8dbasnsBAmhPE94t> zYFNkTKoY`^2j4;_WrrB{K%H3-yC!0eY}VVXlq4eGrtu!m~x7a>xpEX0@4ADfESM^OlmdZD#Xi*>C*uDZ>I)Q{$zT_P>IZUec6avOa{z74JxHTkGvf`ENQkdwzwbOkyR9AvxPorpng zJ@$-QrP6!MfVQniH&PoY{b`kpc~M%Q2>YI9&)@fmMOi68^jOG~-;H`?4eQ-6W^AE1 z3;k4FUS$CQq8f8FJp}Y-%+=Hx4%EIXKx z<+@S1l%b6$m~GutfLaz#kZ$)LWMLDH2l@#h=sm|O<`@#a4NdZR&n@jEBkPKM*;_Ae zU9@~$`R-Gs9hoDQhwlBvoDrzHn^fv<8L4VwP599`a%mhJZg)!X*xebMLR1^)!>ZTK+VZ>@MeGD+g_X zgNp2DKHKDw$_w-&cNUvXk!pM}Q+@qe(MzV6m~O<1V@t=%4Dk%wAW`#1IY*z#>5Z&@ z4J@-P$Q}aoad$VlXEHF^*Uw9Zv}gfG%AV^f3|gKKN-vn4-S~Dr8hsKmLFg%b64a-A zR%G}b2ImSrg~?fcwVf9xB2{n0b%>mxsY9EM5>rDS_dU9@oI+wLOncG!$O(5O6m3im zb;U@7!%dIY*y6Cb8~II!C1as*3~J*!n3x_$G|?jDDy0f{A_$o(!_q()`Eks83=Hu1 zn95k$5GRJRK?Bed*0V$fCAJmvE_!ue|*3tWP}PeS>mDUKD(MR!lIHA7ys>5 z2R!s0bF0Rn@C{5OzTD(niYrlWfVt+eLZkvOGGr#UZWLe%xi*$ ztr= zPVCTi+{MjQ4avYZ$)D^-olTvcEi;j|n2AA6MdG#~#_q+cdSe~ey^_TnFpa-5p)Iq~ z_Q~b0bJ5##QYK9FmE){mLmlrgdHe!)KZ$zCsgtaZknv@4rifrH)TDTSXT>L4vYq<07X`WMbEyfy>T^?d5$H|l2rcw9&=eIcGksG3 zBI6Wgw2P$4s_&N5L*yRyRR2keC7hs=qtxrE zMA>|6!=MRb<5StT=!*Ec3@l1*DAyO6^X*7%5LfDay90?4lM^~6X`E(gW20fnqe&<5 zFPe-B_w#@vplE%lJwmx0kWfXbL0GFK5;hxsgk>`M7YB`RnF5#9%?@v_1h}*b#?Mua zf-W7H5;Y?nFLS`CV zWNarV?_5DUYHO3kNX-_{2zC_ASxw`_oLsKc2PJBJsfL0qQ*NrSRoWa1FwTC_X-BRe=OXqX``xj~Ej* z0JA_kLlouLa?d+t>98zIL=ypo(_|h5y4OudSs`bbR#_7y(T3=`WQG3_LBgRz9Gmk}X2YqIbD+J0yj?S`AGG z8F|ifvid@Kb!EtjLw_2TKz0oxcW$t+8YgynE_3Rx6DUg_h%-UtO;9OqiKS|QAn;8n zz0A(u$pZn=Jj0sMi1QBS>^xFy7+Z*8EUc~eJBHNb$oW|xua)iI5YE9xgdS#1^KAQw zFl@IrSneK>NZWq9+z#MkW_X-f>6Yfj;h81USK`r9*dnV+pxjX@TC?}`!g~+tU?>yF z72GFcBB_63@LgvCdy4f@4bdXX8;ApRunH8)O!pSsMdG66z-#b)XQfezy-+C8G-|<^s+>I&B~~BaQ*`1TuaNAvprPvhbF^54%jIfwyU9Lo+18i5KeQww| zj^-E&wOK$V=^Vp0ocq>dQts|v@mwv`nGPw0=xyRwQ5TuV7=}*|k$at(M(cn-!uO^j zBbppsWbCLz==iu>8?`EOdjX6ngTY#{Bx6;ACiAZr z?XYFiYTqr2fLiKBvMdjTdFv}X#g)so1GuIWW>P;Af~d2#q!ZWLh=<8Q=Pw52(>WK1 z1N8|yem=C?m=h+(LOvQC@&N5c2S+5X=i1-7R#J~ACtT|mV{g|0$U{|8YCw|`xoX3w z+$uru&y|B9sQL#6wOA*k$?j(69(SDd3EASrFB{E_7aMs|r?7^d4Nr<%S*1 z-{{HE>2z%7?ITlNs<|=0q{C@*MDB&xT8Q7bjITXHj7g}M@^G8MD(K;tFH9Q@pfwM( z{Kj*tx@yM}D!R4|l%t9)`vs3I#|bO_^`jA_SE=$_9~pM!U>|pEOBF>xXP)egXD(F$ z!3}VCkKC;p`{XgNeOl|9NZKTZC=D2J^}A(7%^B8B1N-7I!c{r6f(-gWo8DsDN`FGr z7U_PyETm-`9q-5tPpFj!a_W?daX93?OkpHFLPFP*bdknz8=xsQ6P^3k+O z>KLx%gz^)ecp0i{@t0;9v%N>$)VR)tj6Je|(jA!Y8)wNV_~FlAs-;lWkdtH{(5GA$ z&7ToSp1#CGN3xjdu$5k-R26d%7?IDlR89su0?eSSgO}OB?F}cQx)gBNio-<(LT*v2 zsLqx!E>kvqn`@@JT1^yOT)(ymFH4>tx~p|duJ(vt+udisB#7 zoY6JXbQK&$Wp^p@!34icMTzjlSd*z}dTg4a8|p~j;GT=zCFgn-8d;Xofki4L;z%A^ zDv2a8V#i}zXaGdL9W$LEE<0bDtcQZybJvXXMva0|mjZ<_j>bHcbBL-kki2nfH*jRF{zm{8v^smF+xt3;t?3ZdkK`5TNb2$lpT(IUBdI}5_stcb`KUcK4IlGi?qu768baf&LJ&iwwgc1Z7nsy zi^PnSn2koUo#S6eB)W()7`f)t(?utXeI;sI+ zT8cr`=W*>L-OwY@0xW=Z^kh8m>^^f!@MXztxwf2B!)yZZI_lwE(voOEC>COe#=bSu z4AJA{{57J~PJnWg6bZ)802xmzh6h?&&sJeI?V?B_S8gX}hc2hBkAg6d zZbp#-@h%~2(BBVu4h9-tZ>sE~K|?LgVE=ZaOpQymisp%Yo{e_txFK`Mg7s}cn3l%< zF)`U*5Gw~AGt)YS-W@zoI&InMQ%?f)Ie~xZ z?^z+v$BP}U36}qld=eOnq1j)SVp+mMw7NzQ zF7v>Fc^w)&7)OzHhXRtaA42I#h9_`cV?Kml8VeGA0(ud`+{q%1iw6e`eeKTb{YLA- z^?l_eExPeg?b6YO&=aVmSxtP0ihcz|;59y=^+A;G?xYXWus9JR%2!m^kQGeHa?^YlPSHuSWVh18W zHNj*nn~=F$!$dIa*z$jtLU!26?5n?PxI;Lc9@pZ;=tqVXB3^lIHd6%AeRT z4LG7!jFFR;>;C>2pYKbnq?JM(ZG1RKAW)7GdP55C+ppI4H6PZ}ZCF+FVvWHElO`pjw!A{*nveCv&R#$50!O%=VJxzpBZE-AKk1DoFxrYHIVa2ceU1T5+lqBosqOS)s% zzd>JQUbovt|0J~4rc1M+q4M6?d4mK>Vd#@$)No0kzH~)T#bMz`5_7}Gz(rmO(I|57 zq!shm+}h@^a}0Z71WN1v%hutuikXkwLV{$M;{V*>!C22l7r(PX)MU|w%?yt%9mhZh zfW}qB)#Dk1A6QeEEIEMc|ML_cl;Eioxdv2tjMkF~ZCZU7a)2fClr zW&uO;j!(Jyl)IqRjyBWAUG9PD`iyxS`r2Q@`us15qm}~Yu_|B+An{G8vscSQ}=3$2=yml7v)5;J}P8?i^1L6*dACCfO`XF6(+1FXA{DUVH1Y%n{oD895siTeUypnF}4o7i2D&?lCBv>7taEN=U9fjZ+{-b#U!^w{m)!sd-hLVAuZ4vRk&N)?lg) zhfhl#4M|dm7$WRv0-hoT>c9*bNV)^S|#PK{j;w8OfQT5hclUk4Mr8p zEM^(37&@_dlFywq(k3$$8aYHJs!kyayPZne%EG)tIC2I*DO3tc%U!^Gnm90r@Jm{h zwR{pC=PjTf^f3z}{ z*}1+xxEW)j3~Di8lGS{-_jE~)J1pR;ca`peGXGufh8SJO)+D4WEh-#NHg~Lx?kz*D zk!IMvNL=1z$!cXU{*16VFo;%kc|9S?ntoL!vUNG;Bd;`RBMDfMady?Y)>h_>hpgi; zqr%J|sbNqy%1kk;u`kb}0Fkwfamaj-)=l@u^G$J9wwH@#4#J z*3+9S2f3+H%qp+b)lpe7EWAI;85Jj#uQ&-A1C$C=9BIbs&TiO|@2Y*+2_0kSsLzh; z6QI&f1k!ixRi28M2J%wJDaLd+k60DyK$GNa0?ZCZ=f}iEE(w2C;S)+6o-0ekqy8=}X zL9yn>`Woj5WXX&>W`l|5Oz~s!QWPMVQ!iyaNAf8XI1Tl6L@H)02ATpPHn5Asz{Irj zkZKgGi*Y$KmREnpVj{pX6T7>juft_}fV*8rCm)%43Yt~nA*Ex`XM0pb#wH=AXUXJf zT3H8gp+YVeoSI;zk_1$un9`+Y8>N5iRy;%8rN{}w)XJ2zdBRo^IK9O!qSPMnjXnCY zyuq+~VB06oj_+?mpDajN0KS+K2~_xjX2z3*YwTgg%^V?TOU9$*hh$|+(%CQsiQWyT zNTmIb&c-`qv=e-H4$3lBt(oqGztIE+NN5dKl#Dz8r2F(s(7EvNH(A z&kf8gIS^s9H{oEM8`CNq+BQ0q)!-3}R5UH(2`sERW-NGU;ip}|swp4CzUuP<=W*JaQ)RM1PDCPhx}wE! zO6#oGYN1=7?ZFr5Eoe+5Y3Oo(Q!z%d)U*o;OPlO&&)fWzED;Lo-cLn@rv-j0<+o1$ z$~(tO!#(ebR|S7nRWZ98unpaO04L1-(3+kO&s=%|+`Kcm=H*sh4ME!u4Q*|$$Ofr4 zM2;n(_y5U*!!#2O-aQTaTx+~B*VW%yx9Ve_?Q~a>XK#>*f?Ce51Z9{|e3VRuPdqvL z99$^7CYUTf8Bu~&UI}T2W{VYXdyWG0x%(je&mzz^A=abSPOY_c=HC<9mfAusC|dl`T`=kwZ?7>SjS)HZ!y0Kmf6~qtr82!&?*#P4wc@6l+gT25$C# zYQ@HE8*YOBuVhO@8_|JKTJ9?LofQcV3}?c`GiEe^)g?3qy$plsWw0Fnl7^jg2?3@_ z=*2wH?+94IgrYj6x+gdJE>(ixGW&Hb9C$HQ*V|BZs;GnGIvZFFxr3k8&@q6z6oM`3 zIJsg#ixgyzRzfnnXQ_-G3P7wj(N+(OioDiyBtkK$`yg6jtw^fSQHYloL2&Y>%iPMP zSnIZqtFh|o$6=QTllAuF%h}{M8P-x?V7yvn$}`9Uj7W{#jYBS>T8NOnrxv%0lPt5H zg9+y^r90IZQ!cn)N6MG{rI0#r)Ud0Ls8FfRVt`@}i@jZ;Sv#noEB`Mf`_7qgWJ~+d z=h}Ng1=V4*aO#=V-cXVLJtB4$#?5x8MU<&~(wRF@&3Tu*^5Gng%9h2l;>Jswg3eSy zSq$nt@iQq{a9fNxr0LoDAQwo?uz7l=hC>Xk%52w=i9M@YbV8R(tq5-Jdh7%nsz7bM zV>Oss@4_3M8Ulh3G^l(EXsCVUy$2x5B96y^Pgb%I-KzY!_zE6(Z8K}~a-rNZHa$e` z(&S5+g{aq!l5>G4!jwu0Yi39rq_&i25ksI)wDUlfFQF2)qA2f>gQ&v6sY-%Szve98 zUU0=UR*03cWY#ULBf{olqBOxt^2vyu2Ps0Rx-XsjCxn?S&37ct6Ew)=p}`{ftXDha} z7Z6gsq8+LFgoUZX-NIJ@GPbf-XcRpuhhg>kLKj@I#2zS^4D zurmPYmubo(yp@VSFq(bZ(K!#bdRQtsg^6*VFBU)k1=BgF*jDw7VRZ45lEOjQ8_pqVS}$&FXhj{ zUgaDPh^W;>(H*cQ4-eBlvQfGk4#4g63}hT$JO%s$R~s_aUN~@COgGT55Y}XiR23pY zC4}S+hIEXITa`B%VPect(T7FWbKK7uT&%hGFs;6zUhB^(^QiK)uc>(M>Z<;bk6y*6 zcjnbhv)#SmRhZJv_I4Nb8L@(}R3x*Bq|!F|yE<5MX?`MMo2zA!f_%^HGn60?NRY0( z0X0QOIXPHfhc*Our`&e*y5qOdy~0t%%|AjCZ*l$Qu0%5g6R<}VqU(4&w9~(l`5-KeW2YNZwBXrj>rwT0khs{becl1gXU#7g+5ZX94_6s=eoH|*^oHt?58Gwww1CCEuR z)x~v7S!ogD{m`1pl_P$rS>%J!L!Hmv145?cH*lX_#Q2Qa_swmZS^r{Mcw180SjOuP z4pJ|{wPm$zIB1FmQ8jn9SahC{W!TeL)#+M=C)T>XFX8RP|{*D|S`@@`ec8&32(< zC1-nxs@Ynfq%|13aasK6)(5n1`PRtQ8$Ks_iAF}FS)J=gL*X8q^9t&=!fWiBpD(X-3YDMwjdV5o;GNVK*5oFB6UVpGi;zm?So?<ipUP@1$Uwp zT3d6PBDWdq_Ppw>Rpkg(g`66lCe1^EHf(30a>r_71~0ViDio~R4J?H}S4gUdh|{m& z0Q{F@f?cFh-gSAorH;@CEz?h7Hyb6!NO2CXRCl(gr;5WEdR>Jw+DyUBlG-4p9tgDD zgq7LP4P_e0uuovWG|~n{{EsrJF5p&*V4FQ zTo*5bl&u *zQGfTmKx`_I6(_1(Dog3BSU4x0LwLbt>+VW`);_~zjXvqIy?Et~O#nKS zKWT_r(~mS(&RHv?hi$3B!AToa)Iqis{u9xMB{V2#VvQ;iI1HMhuXd2M=mivD2|8Nw z1 z0@D)PCTkP4T#ltHD(t6X__cuEXlRrFV=j?olHka2{2}t6ZoH7hZQuQzd^rT*?5rbL zP}cl*HnEg9JTgkK&4$+!v-2w2U7(ZZC=_eiqZ+}MXmU=sl>BXT!RkvdZbGEDe)j~ zsC#i9_JwK{s#Tv46w1M@8YBtPat+#!Q?;Q-Y-o{hAOHg2mIGGzB?S7QOTuWJqf9bf z0b06pA`P8L+PF+!$ofTjQ?OETN7`wD{LSX2BU;Fy$T}zYG^UON!5Xb8>^NUi@OGYq zCB1q2y9#NOEdcaBV3aMxtbTA5i|D}HU36WZ_;A{RL*^DO4?_eKys=NQvC?28t{Bz@ z`aErVjAiHxOtMcI=Yz;~gQQcluJ$Oo~~wszPr$e=vPl*lH$#DLYMJxYt%t zR=P$(l=^9eHh*0kN#rC&2(cweG7=&B;)HfgQHW=pm43D-2c)qZOH4DRc902{A|&nD z)WGvUM?|ua(KI)CWcsUD(;IeC#k}a<930wKFd_Lsoq3qo|N5z;P>DqmZM?xC zgq-A|g5O}$=tL_MEcG*z4ZvpRLum(VQ5&Q-MrNpqsTXACMwnHU(w><)-J59~RWLe& ztwdzrOq}8pwdpBZK9@pz8_B3e**)!KtL3zcT9{-Ndo8b%&8bLkcRDo*(e6NT8tZ8C zbnAMZ67<@;J7Cn=uv;aV>tUy!SDBb5vuIkT83ubL^@(hfxysm%>hInMM?BJmbTmPS zT4LBF^U;ZV?_Z}3DYqNTLaZ|D6~oll3>lNP+_N&>)6z#Eaj<5@%9bhThY6#+ z`B)*4pX6P18Y;bM9%=jIz4QT7?h$5TI}5wTE18DAN!vw&rqx~|Zinu+<*YgZ;v-R5Hl1p-t!xI+bqat~>Ae?caRPi(dG`v_F63$3F9hhd=zm2Os?5|MtCi-Fe4(sBH`~THN~{ zdGpQx`WwIXUEcG(kALir*WUj0C%);qvuACtm!=4Tb9MppH$)5xwzkH8U({Iy^Hh2Q_3-}X;+)iqbY?+1Ux+du7{AO46( z-goc4FM7f6{p64Q;Ge$u#f=`8Y=*Hez^w$FNgtn|!%*Vrg{MjH)*eamgA}|+e1kQe zYZIZS_+mn891{;YKcVZjhWO6}>p&m@sg(6Zr77(_IOQFy>SZid*fwyy$GrYTd*nsI zpcT%waWK2G6Vj4o(cg%)L}i%V6(Bh~I2<=$oCTpZ5~3+=OD`U^70XiJi{(kUZr>2) zlc=f@!3zv6xsWs=1`@-xK(%}CUk20+1toQnxX(4NWf2f>&>55>4Z0;T?Pv|g%1!9G z6heGbpQ0{=Kn#L$oF}7X?>f77uh^g(qAL|zDdA7!Z`L(9iVuURlGGU7lTFv4N%f-~ zEK3ctlSi#Mub-jz{;mZrrjbYP`t^xAM6DpbBcE?2?iGu5#hQX<3bsppwbNqU`p6vG zv#?yU#E0HQ_Z|}ggYGB8-goSnFPjkd#?k2l#Yq4F)j%r0Cc#;>VZWj9f8hfyRWkI! ztm7`tEWb9<=dHWSf8U5Iu~hW8l*CFeSIS3pr`x0@Nk%nnf<~M5%wf`G3F%+qQhjHM zJYlF%N|jiew++m!YH1z>_ji{ahAgFduAedSqV^PDC5hFd@&HAHn}a+1LTlH7f$mN+ z1R!B(t4*%ETOTZ)=*Uh>i~(RwA{t%C$!wogFB;iOMu-jQflDWylyxfDn2xN6LT3o(IJ~UFX8ON1>fUC) zXD>hg`YU>Yl0A@ckdrKQH?3;AhoTiVJ9BAt9-0W6Dme|&ghI;tV^4jz_xR60{Nvqy zKL0m<{qz3er@r__f4KhIFZ}Kw-SntOnc0WD%Tr$RM=v^2Dt6uV*T3O@27w1ZJzv;^@o4<*+2RZ|HjAZxQ{J{<<|UMO1nksfJ`he!Kw2svp z)y3ju=*yT55}|;Jlk&(?5y%IJoONP5D8bjYR1K`{P41E9(Mw+dXs&if^on;&5lga} zB$n&fAa%eGrh(_sfc9=N9#8!IMg zLgLKBhzc(jwyQzkFU8_JG4cF><*qg#aN2$+l^;swTrUO2w_UfZyc182DFg@LG9OQ0rKs7Ni2az6-Bjj=tA^lsxb$i^p$dW=1H3DjyB76 z$7!M&H;0|daYbd(`jQ5k%gWh;?iKE$##b3QsW!CZ`8omMek@%WfW&b|aT6N`@Kox_ zCd@6?!%OQypP(OW1&)1y4QrIC#is-*tU}pN6PQ(qBH(>8e4;=HgA&)ehqUx?srIHA z$)W0B!Yz+rDMD+rESl(Q%aMW6L^t27DG5_HC(eo1vz+fuN{EQl>rD0po6IEqKB{ za+G`MdD-OMu~?O4e3^jWd59 z$A9hX$MrS zRDpoaAvZ5bL~HU)|Y+MC;W|)!5*IPo!;#|zW%$v|Mclgj{o77m;LEA*Iswk zHP@KgCw=NaxaQhxzwjS_`dSlZFpUi1E=8shr?%g03i{m9g@^j{XwX0*5t}c(!?ch} zBeWhpZCSMf>dvo3;iXPm!HhHjGWa;z#3>_dKHXb%bm<{BPi)nM>$Z>r6TDsB|j4Pr#%#!eY(Mea02UNv1>| zxQ;yJO*F$z%~ncpL>`gJ6;K%J^9w#oOFSvRBxMCV&UW@IE^wzo3pRif$$)r{qO6GaMHjGp4Lfvv@q{vt8J23Sc-@k zCc_lJE~I^SVs`LqC^+n*v~kjnRgh>eYr$ZQI^CkuT}r}Q1ELg?wC4g3nk_)A;+M>1 zNs}Q4*XSkO#eu%{zizlniV>%1?XQb>&ShI1ZXd~=W~?~1btdEo2742*u8G|M4A>snE$i}HO`Rj4!>V&O1u$i3&A^$L%**~lqf zo60%R^zgHGS{!ep(gUz4$L8n`Q*fr7V9_IJYP5ckNE84!jp+ev?x#dstt{68Ln}AJ zRB-{uUW~XyFYBvs!(jT>0xQWsk8 z>QJOw_Y}1`2UtrDWosj^uVkTbGKOuac|mIYZ+HOu1R-_0?)8zzTZhb-F^}*VcbohZ z{VR0A21DCu$^lTQ1s2cly>z{9>q`nO`RJ9Cp*py7_>4FY0@=8jq$qI;vHGn!s{G~Hx4U#xi} z`sw$+<8K^!{NC5kU~}PEE)#*kh?C*|TdqhaBDSw$7{JroEos~A3v6eOSneBs)f_-{ ztquFCTVC;z@A=Lj@${#C#M7VlvCnw#uX)xN+_r}NHc+M~X;&*+^H~sR@{?vj=(JIk`MVGIr%35^9Ajxu!K$>if@8-4 zBqh9P9U*^-5vF6!0kXT2PH6+k3xY+U9Met`c+fv)EnH9%#`?hVE{qt@#Eu7Ah7p@! zfJ-P&9oNTBGRFQh)@#+S@cAU+WLqtm+JIRpbD=6%b^z24i-JNqUi4rVp*KIsXb1CR zx)S;uIGj@c_NhM`g>Nwuzj}7+l7K^!%E!@R6N9|~9iG6tMYcW)kGGnT_$A)izIBM@az_S=0MJt_!7nLbrc9 zzh78xR7cJm(CrNHD-jEN0D*vX_fN~6fCEW|4rJz+ss#!4)(#u;60eR?1kAeL^Ewt- zW8+l@$`@|NU@?M;F5<8f|W2H?27e=Dx!7yfm$ij1G@o+$Y7PICYbmgkr(SizD$AMp>cPz^L zdgj1pnnmMchX;h>A;F#3KsX+9&4TXsIjz&RPU-HbF;oY4$jP9eo`-{QB>})7iJm_B zYq1B8=o4sBAI#%1F7N{n;Rg`=2YvYt&3?Bzs?%&bOeDIft#W;IC~OF&3USCAU3`V86lAXMj%mJkfGxa8 zf+9EU4V>d_cU0C|TmiQ>Ni!|&d(y9ELuLgTR*n~P{|P6TD(%$2KJXS&})&^p5yW`TW^c_r$Rq_5pQx~8dcq@Gw{M*FIm9xB_|=BW{m~LZizPj;03?Ce$a3K=5IXzxzG8|ANnyfd+R5?{o6eGDZlsI z&x?CbCY4`)+2wEg__w_Nh8yp>=dKsM@P)6t@80$KF1!5l>u~=7Cp_`SM?B)* zd+zz;KX~DN_uP}l@UqLVxbB788_{ zT*7mF&8u!Pvzs3Is3*SdlkU0u?&tr;ubn%0U=Uw=>BHXkDerLQ)z`fIPhRqp7yaQX zR<&xI8tv%R={J4+<8Qp_5f46a=H)N_lRta)D{Jc-s!;4GwFQlZ-uO`u9=;0K<-pe{O*UlXx5_}O*X-M&Hw_$M@kh&mfP9 z9)w6dDKH8JR85#5@0d1gi-*9-G!EoaFmk^9o@#?~=-H|1AC7~k zTaKf!Tu_@`)AT`g7nx&wWAy=%{V>pO0dq)$P6oQX0O7ZQ09NLGKX2qS%h}jLAMlD; z`z)hgr;C@xbUvL~SL8t5IBtBIGyBYn9SMW_^NIt=xE5{Ny3mX<+VaVfm&O($%dEFC zE(k|t?za#}s(`Urcc%jgOQ%Oc!H1B)>=;`}-~O{=QTPA{1;(3) z%6-JEHm)$+vG6KlisSV0vW0^Mnk`s?c%hRMwPQ`Q->Oe}Z3^*V%S0$&v~4mk9L9y? z6a1xh+~OLD=cd|Ve3x{U6H6JRkKL2pf`QN|vCx7&!H+hT4o7r2v z-IIRrw|}ea1bXDnkN$`M;`2Z7!$10ptFAi!&Vy&p{L;_-)K~mJ|NLct@)E$_>g}HV zU!MKb>(4*!J>K)DpZ7vD``Bl^*FXEBFMX$Xdyn;>-u->v?`NL>`)2m_U;f44{8e9Z z{DGHUcKIj&qtAZk-}}^SuDx!({?Glyv%m5SKJS*7|LJ-=ANnyL_eEd*b!PTWU-@N! z{0G1Pg&rgjlRx#Ck^Q0< zzTne7{-a;@ikJV@Xa3E9{Q3Xt`Wqj9e8FG;|OdDSb|W&N$cat`g8yO-~RFc@!u)HI(wU^ zyyNlTfA-lwa_4Jr_h;!3e)o5L_P_cv08e@6cf0nw>+ZbcwXjl|UOlEnV|l~fOFy6g zpCL`~i!k{RMnCi%VXz5{=M95NZ~!wKPq?HlT3U<;Y+Df-><5vLP*<}PqTg_h^MyU( zg4zz=qQZh;jf_?lzFft@4iQ?dC(vTrPl>OMqE;^>!*o{_c5I7_ln5YqFR3nQW~_ls z8>C%qxr#W)!=M`8j9|vNk>9iW`}ga8{wLZR6hWZKmy#%il?BHo>XUIz8Zdi{1Z{tMM(6i@pFuT2EsVJ(F9()q%7L!@klJ!yv zOm*<3GQncE;Qk))cZRk@<~8UGB#xq%gCfg4uOq6V5Tj4h!D`{uigja`IoLDIY>Kur zPf=4$fQGG&Na4JU{t*#+rf4LM^AC!e6QM|KNkW^b^Fhm4#9-5_EqN0+j|Cs6d~7e} z4(GM};O$vkVRRO{0JF$jx0-#juhw9Z);FcpMf2@P4vCH!v`+-bF3L1TS7wO6t%Mh& z*=0NinF%d!Ud1)I2IWHo>JSOc=1gK;hTM4veXYK^SQj#b9hE%BG?axL7AI+JAhbx6 z)8aV8(uF$TC4WLFNN4!6mpl)$@N3~t0V%8Sicvqd(zqtmw0uU2^HAf8~QdVXXCM98$Fencv7@7-4mP^C7k>5Eeb7h!wSV=s-?*aB$0+&Nf7gF=fExep zxBr*F|4%;0qt9mcly`pD@A#3Qe5)tDy)On}<#_?-jsAeCBHK2K@~qGP%pdz7|D9D* z?10o?cKr9d@47RA8V}rm|JjEgI=+Xue7h&XwQuP)MQ#y>{OWBtS24ds)fFxb0x&H? zHAr;*sa5%;0t*}sF+?OBgv1M8TLnARQj115a=RY_Ce94wqevYg@5!YiaKbsnSVe<> z2W$>Tl&S)(ibuM>IyOZ|pe^UZ_LgYa?%W&T5$5bV^^p)AtfTEqN;7)ab^?%fGc0w? zEfEbNryMXzbytAz0LYSy;&eiri_J;|gXn}@&#}G=P2aT>9B>Y`B4pOjbe|+vxiLJza*^|5j?Q@#E`}3cU)V`h5K`h$WuJpw5V6sN>w%S$DrF_ zP~?jd8%kwE5DaD<6_&U<`S8$K6WrXD<=gCGoo{vZX=mE+7OqeE*1HeEPO#!}&?vTRG(BFCf}xl(5` zqt#9}-Os5Ce@X(*65N3-*ut6BCuDuh7R|S~9HA2@=q95vvzMtCE=7@dKm*dQJ09b! zWIG``M0-~wqN)$bcqVu$yl!f`TLgl{&FGBwjfS!l2di|koA2R5J0v8TVvMwkF`9%5 zc%io(cnOoB{OFcX3_>sli<1K@{axv}itRwtx-wwM^$owBFU@MUNt- zBpptaYUx2dlX1A*ve|RP+|wOgXa;@GGb#Tt;XA17h;`kgx2grqE`8X;-ux|}c>Mj_ zZvC@vpZNSQ|LR9P>Si2!Y_I0i~s2JKl4*R>u-PJ&;8i{I{wMGe)3bE`tDCZe$4lL z#s|H}`#!_WZol=N~#CjqmfeZ~mYE{nwk>l~-N$IbZy*5%(Yrc^yNZe>Afz zuDtRQH$Qq0#^a~>9k0DjDO?|p_dk2ptB(KvwoiGdq?z-icY50COAY}2BX52T!?BBm zAqISc)PbyLf?#V~_elG7kb^gdPsxgR#+meLJHcMnw;I~ChTWyDe3NUkAkHRb( zo82ZZZiOpB_mdhTO`4FS&yl&f;e^R3>yBEnzK5HW`vnEi>4qK9fQoYmDqy^D9miru zk>{o?a(K%Xm!gSYKT!e3(74JAp24X_slL=%!7gF)>$HZ^DNsl4pKAxpXZ_hKbvR_? z^foI;(>Iy5#T&;NNnDn&&&073+i4~!VWWa2)lJ7vvC4f6OmH~|L*Fxzb9}nQ8~vV8 zr0$qrO^`7|%qA8{kE6#UGH)|}B@k`fnpUFFg$833iFg+xM@oWh|36?7m;{Y3ao*Bg zj6ZlRdBa?MM6;-3Sr1CF9^tOaeM9C8hlv&NBMWDkd%#wLzpHSl+Jv(5lR#c1oshaz z(7$LWZLv0g<+Edv^BRNJSKvHg94mZS-5w$IK&{~#52V6{Z|g!cub-Ta`-%oDz1)7j zRM0NRM&hS-E6_tmLIh0L#Diozb7dNRnI9F(VZPMbVyH%4#3fFq$z6+#S>93xU}ryw z{D9NV3Qco6=EI&%)?IOeO2Y^#reol9dGe}<5H}0X6D?e>pdVr|32`XGCJNuQJQ=XD zch6#mc6+MFt;A$Pb^s}b*DM^^?#WPugT!|xgXOCs6ICl0i?Ca$YizK3ht$&OP5Oa^SMD>1KfIGT-}kdM@K=JscVzhz<)s_7iS3oEgmz_oRw2n4zp65Ab^ z1d$Wo2{gr2t14{BS4zMFgq2Ab$xJ9SL@a1ecfVYjV%`RWqd{$^#RWQv)BB>PyX2P(EQe~|Eif? zdF7SI|8(nXUj6ew@nh?aJ^T@m{Mf(!_m2PkS%2pff9;ok{`k+&`QN|vKYrm?Z+g_t zk9*TM`@oOQ}zPXg~d<|MPo)@)zFrDeq`zPkg&4Kj;7avKim{Nl!lh^`H2mAN-}C z{z)Tmef6uq@(Vxjfd}q?)hk~9+t2+CW_2x-!R7Ify!}((`J2A?2d}#3n(zANZ}`eD z_!s+U|LV<~^C6nSe*KpZkNnhkfBHv!+$a9Ok3w@ zipF#y&va&fZWKI~XvIPaR}JT=orAt58OZu*)?l2;{3*p+JR_I0EhOoYh{MX!BROOrV^ZDK&`cZd%w6#YjsDEI{bd9bG3Ly@7 zu17oQQEHV^=6Jgyt70DUg)(-OL(^T&rBlwWkzN_xn?WB-U3jTA5t@6Wfmj#~5+xp! zWk(f9HjP}faVu7YL8S{pq_J2@vqB2N)G%%c>nsY-a}c12&Z@Djg=q9B`paZrt4QKu z6D{Ks?`AoBFW$|S5XX}c^WD!cgTL63)*X?lyuuAV`w@z?y_Qhp5?GpS9OowjN8N7Y zG*U3s0GqtgiXAN|4monVOIfjY?QIaPu;jdk7NZ1aX2jUQBlf*}@3{`%A4r zb861E+{0a)+q05#sx+H&?UV~mBt&kyvsH4C=2+fEg<{(rVkS7sk77Ah~4z!9Bp3D)pqvcwpx$25&X?|J0~d` ze5aFWwbgV5vd^#Pxq?oSmQ#v=LjNJW$`+!^w%glTkEQvEkG#_{yO`|>7}9A=i63l) zGPME`A7UF;@xg*9;c>?^>=`V}E<8a%S6K?M%8o4vuHV~NL1sk{g)1u@_Z~-)s&ep! zK!J_rPfQ_@r2IYFMM*%6fe@@|&p(LZ6`vBe0fy3Ub|F9#!qzXYYF8o6tJVE%Jq{!v zGqJd=W~gq;r3A0J6qTAyn@7$9m+S{0)W1_?-sFRBBCFio@o<7!qUNr0Qd6M9k7g^m zG2LqkcRv27|N8CU`r6xW?Mi0P{ncN2?yvqz z3eGOS;s7XLd);+0cQl)Tl;!Ka-v0wnpFVA7zx!Ly{ncOm`Sp(Pxc#>O`t9HP5C6p% znAtNv{3DM6==EQJ^%sAxL!Zs;r+)N@*7DtNJ?GbszxhYM|H4<@^718r#qU1vH;)16 z%Pzm-c#!Y7{r2OZeD4qV;Q#dl-}n6I{MzyB__{CsSAmO#0l+yJjuC9IXMW13U3JYh zX7)*+`VYS8-+bx4_uS*Vei8#R*_2G0N&n=JUi72i|GgjjF&}Sc&-!=&{^{@c0l)QY z|L2B>-}K=h`^-n&{ODJ{>`!lg?Bk9r3JxfV`aqt=TTH0nkF!fa}Z9B zcnmD+y)rCDss5bTm&>r}Rm$853WxL|97-g~cA#6lhsPh%jidatBFijufKdk!KIs|9 zeCd{I(eDy1QDD$Zjn==8ptntN97dlKj<*Sagsj`YWv9)_s&9uh1INIV%VdPui5_b=XwW%iJ6p$>S2uRV`=u!@yA`a(ww4h0~zcs0mrnb-Gq1oEk!3msJ z5ZQdfvpCv$13HOcL1(Q6?vJNY5T-}mVXMoQdRcv*h{|mB!3nyPULKkp;;`XTak+{z zK#J%x);Cf_Odbs#k01)|j@Y0-`VlfyH1fr;I*}HOb)=V>?59FWfv!oVcc$vOVM^Vn z>$RF*$|uNVu+qwHeCv7SL#$3>)CXWN1p=dyC7wM>-aQw2Yo7(MXe}@+fm&99l}%+0 zUYni8nb{<%o}LNgp}{d)Ku`AY%))`dv*gCoK8<$aW~Ju%$$(M6LWi%-1~6$2LdBeW z;B)<2Hl(ym`RCZaV)(~0ZiAtKMdyVGT{J+BAJ+j4yaFFfYJy;rkfHcqFyf1ARNU3F zvT-O$xd)&Wh)q>Rs#i#`{DX4u_GdQxw*yr$2n3iI57yWzy6a@i40)WTdYIVg*<}fn zY1+3MYqj%uzHwIUtpNR^n2daotoB(Kb%$D%O3v1*v6j5XVC-xq+ zSwcSzYMN^S=?rwwNao}?Y4fjj#Q6TNyz1(I@Hzjoe%f>X&oBSmFa1|)c)i9TpYpVK zdFs1A{mtLPCp7)$zPa-7GTd?Cdef$&B zZ@=c1ubf=_!3WP^n1&s`9(djBoP|Blo;~Y!P#F2s|Lcc7{c}F=`Wqj9^BX<(yPy3t zxBb~`e&;uz`+Lv(&0qP2pMCys{5n-wta^kGkMN=wyx;>q;;)+7EiZfNefQogVZ+%t z^@NbG_`J_~lec)nF?#;~ANG;&|6w0_{QYnL`mcTT;~sYmK;LuMT`r~a3?@TiC|5V} z;5Ngc>C(|v21O!b(1ZLNx2g=qbWojwEb}-HxGf#QXg_5QPOwd9KmwvtnRgjygpAL5 zJxO9X)UZ$23azP+!w+tiQfYHx%Yqp=9j&W1 zyVAlKiQ2}DKw24Z!U5BPS&ZTFWYI||B$e6IH5MlQ>75+>sCMKWqBidBNc#KZEM4oK zEUr?S)lq%_ILRueFbYZ)r}Aj)E2dzzr20Nhz}g11EUCi3^lWs39?&SuwV3H3v!{UI z@Wl(cE8k&7wK(YcPyg-4)JA9 zWY300<=@84KX^eY2;KAhK!NBB#CXTB`~3b8+tVOuT!&YE%*Aj8O;2m2YRBCNdB(Xz zQ+>)K?k{aXi=S_0kM1!f^uyJzz&R$s$U>kAVOi%@vpO3~aA%I9rrTo5Inb~g8iXbF zp<{3JnOU|o4@6qZ#-ujwrT2S_^rg{0Pzx_~Jdy}xWG)JZX1H=t47RRWzQU8B%^RHo zl<;YCbj($m!PZ(vl492pw$d)mFNb58?G)$x#x$u2re4Tyhp%?tl^MB~Seb4uP z+kfCW35OoG!Z&-u6Tjv^{^!TP)m!^tzvu3|SHX=nx5G{W5{Kbju`sFcyyNzir>vCZ ztFFFwUOK9!j&)PI+svzMu5P(H}ccHlekh~dHb`1nxh5MifIuG0jI2O)mo3cRzuiBm5=ISoT%ChUl zx*ytr4xzDrC3U-!r5^T%!V-Y8(%~H*XK4Q4 z0u5OFG`-N_48zJUld-R8MEtI?1j>+*)jBM$B?zQ+Ht&S2L?JOQ#2;GSUi_!{mRi^G zBPa}3;;{tl2~&Y(IfD@;8y-n(+%>c~vT}6TNIUAt%*)Z0dqeknn4q-ONF0i0L;-aX zs|^^SuusCFrC?HSnx@E$)@#|dZZtVyy3l%a)SzYxaUkb4^vc{uAd7{j71SxVrZ@Brc zINd0RB#y`Doyx@Ssv=oL;)C`@jbx@JK4E)>DoR22a|s!m^k7VVzR7wKOU;ECWNUR* zE~WGqBlTK4rEI?f_~-(@h8JMziL)_$>CpAcXu+aVSMvK+c?o2!f1x<%&M?n%{swI^ zx(b}k{jv34{ICO!HIs!Jl3E^Xj|k8`kLUtww17)0$A0I8irB3xqrmFEfhvd0&>qAj zjyL+cywU+h$paa!10$_rz0_EfY@+B~#Lxafu@c;CWH^b`SRYz1MQ-7rsqQOy)`>KO zh=H&_#}$Pj2v|W{A+WzYQ~D&`f`bwOsYxBpKVZmrxvyZA_I7`%9lHSfXUMArDI1?c z7EqKTl#)63+!V^WLV9jt6BErIP>JXa#scM#peb50d%wDFY@0=E$h_)uB_AMf^wR8= z@!X#b2D{n=0F6>)R;4}mD%2e5v?i*Ps|I4vg+K4P?81xcpR;I)(9;c)fXKR4$8o46 z^jF>TijV)m_j%}{hhTR0?Ag2Syz}fs4^9Dd0CxH1SN^9T_>p51!WaMHAN=?a{oo(I z;CEm8;upW}zI%TBIlq%;>&)dr4i4vh-PkOu9#8*e=R!}>GLwOKUShXm9v zkD&!Be9;SE@K@jaU7q|-PkV=VdAGNH$~!*!ot}2=BKS6M{|^7*`+xYu-t{RDo;lMa zs$mYDJ$v?hzV+Y7IfINoA+p`03`LckUt8QBdhpD5ee*Yb*EfHI-!C3^*=29}Hg9KU z58QwMAOHRfL(0ze{3E=n7PJ0_IoTh9+K32WI+HS}K=fq;IQGc#QO3rnRs?+G`QX}t znS%bR@<9c}&-HW4U9q6|P@ETENrFoNb9b02Rb?&j%pSO0ve1sUS*kUm{utpJdZ`)z zF+O~i5_KJ%TJMT7UQe->YJTa(oZ}H??Gc&UiX1@+J{4dpU{1@c6Sick=n7Tu2Jh23 z$~vD?LTH{GvLaZc^eP(>ME$fRI;qv#2dpTG7IPDo!O)avktu_b_(Mf%u-zd=vb~ya zM@@^WqJ%q{2{INfqPE94n1X}|#NlJssXyC9a=-R)=41eQX^5;TjJ6I2nqWH6j6+R= zX##|~7OIDRs2Czq-*&(n@?}Tykmbgr3%oBT9K_=($81oLex?O&D;C*@{11$PLu}JW zt`jicNR(h$e{99ER|g???Km?W=M}x=K30LtR3=5XLXs#)lvT2|6E-1q8~L1o*%{uYrAC_Rq@h?3nf6)o z)pR5?sux%v5LwS9Xk|~@0YJj~eZvTw$rtu-SOzqbK7_`5f*b!6+4E^#^Zx z#SjUN_=Zwtxz=ATxn$8|n4!U0(fNeHD5%_RuQwCsaCT;1b8Jen+AI^}W~jX3RXB;r zp=B)Ulw>t_(T9eSb+%{dh$_M<)d$YQa^H%Y3GyoOGuPABz_Ki5&*Z{FWC7|OE0%4s zI*Inhh`vCfXy3(NggOyNdbJ>5C8HiJHaf;B?t`kBA}hC{mV5k_oSV%$)#wU4eyzGd z&x@zlE3GwzL8R7QgI1|w7fyz*ILx}7PwQE3c_Rk8mxpb@7(%r7q{RhQjK|tRn@h@` zaRVp%MgREI{eJO`5C7<6VeVi3#h-iN{`)f&C#3;oyZvhIt;B}ZuOKtOy!e?y zo|d2itnS%cfiR+~!g?;|9MaI8F;&cZ&S>Za_)Mv1y9bP&p(T6F%_e}!xsbsgYisBN zeGV6M{i>-D5(?rT-b^@oC{ai@e7{91X-FqgqWi7%Kg~DaJn>UI5@jtUkyeKJi9$15 zQ!k)7{o@-H%Yr$SN5d?n5)h0f$&3)7xY8a`jqiAZr zD^nKaoE9+3hSeYUO)VtNsBopqm(&U0ifN|ZaS+2R5z}R#%GGS63;VdvKB1PFN zKry|gum-`@G6%=zrf;qZc{g0cY^i(sD{UJO?86nHM*V0_YL+fPihy!UOJ*ko-qjuF zFta{rc>tfWR_fMqqFeAtuiLw8jlUjOec?(EYly>{(So16RFxbU?bu1r%>MWfUwA;D z%}9H{5B@M~YO7{;>gbedJG|37KmEPdD_wW}4S)S_{@vrh z{QOTmJ2zo0fWjKXLA#p=&}EVy0eI#of7&;E_xJzgZ@yp^8zK3#&;F5D{OL=N|9aWw zm+vTe2OkV%#pH2Z2+t6U!fi@L>SZr|@zdVpJ>T`c{>n#w{3m_TNB{NpU*71A-{dnt z{~+Z3{onqr;iDG0YBxymBpoOTr_{%R(BAAiN3!rYoI|j7l!v(*Zo+zenX4ORx=HJB zrQj2}O#X~x(AC@a)SgyQkgOK;2y$4FPp}$~t)m4oGn4jkjgz%bVluB>Uk4L;EiG_M z^9~+kbGNjxIq7vsE$kHDeZH)6wirZuz_n`(jz%7zFKik+t9{kuh^f84^kS6&8o?Yd z9%40ym=(L>YlV?SokF4uROOk@}<}uiIsyi4+faWHw=tkX5 zb#4QhpuHiU6Y@rH0B{gWD9A3PBEcHFLlJ4Ed}XyYLynkhSaJxEAbcC*HX3Rbw1Ahw z9j4<zhY5(#TNJxjssuo?KqII)U zhU-W>7PPv06KSeckk2CO;X3JCEKdlail z4D_G5<+UF13+s+$9{~CaJ94cZKs-w=0sTO6s+1dXQ-dx+zToM z9j<<~;7XB2e)t&&1iJ|X9gCpniLy4jr*oCzDaOth-b2c;YJJ^&0A|s96Brt9%|YWo ziR(~V>LWl=(u=xhRGgmUFHfpiw=0*}&_<+P`+1l@e>k33%zBc*^?rI>^Wvqe?aOta$z&Kpw{J5ddCx~jLe z1WhLi9L4Kk2<}8rNdN6>UMhi3glLAr2i{Bp5w-ZY-W6PBj(J|WsNS79A(@8LpoXBD zTBTedjDRYBp$dbWbHi(-SJYVfeV%F?0IJ@a-(~3M6=pQS5mW>XGB)KsL`#9DTIQ~l zhF!&u*6qg;%^+uYm6JEdQe9YETu*w(1+Foa$>dLZ*H?HRqGCrTUmLkKv`%Cww#Biz zWSycsh}#IG=M<}P#0*KhYc(rkfOnPy2Z*A%bWxuybuiMUoogQ868b&BuN{L>^`k!i6F=yq z{@S(I-(ay`6iYofk*li%rS@Ash}{-1yJr;g<>UjEWQ z`CmWqeH9uwj>#nS12iFaPFm`{aN8Pe1P~zV>^6>X&YMdVm1=>Rl$l|^HfF>XF0^}%CnrHX~9us{|}z30$kkVW3aNx3m$Se(`4oc{n~ zlVV5_Wel*N&KAgC3=s;l5=G3zi*ar2D<1^{B>J5IZSAnOm0qA|3zUo`)e~cLk za7>E`HYrVH3d1Zb!#bY}d`UR!-ETD7=p!b)8!@h!tFD1p69#ub4h>V(3Ehe3=WE;z7V#DV$w2p&WICxOD z&uq$C8?2Iv;I~UJJycSPrwb~bDt7I(au`Ut)LJ37i9|j^s_im{wLY|FYQ=bvb(>(Y zoE2J-4#2q^2!0zAWj%L}ofyiYkF zphT?^y0jVSr94EE;s`F?oKl9IJrZ3fgJmo!W2%I)RPQ%x zfhh~)A>JTMdKqSD$RH51h7oSD0>gCJX)*`O#e>C&I-NTyM`6Im14x5dIB^+tnO2-s zU=h0m!&tFgE8!h!tP11=&E=Ift7K&nI%DaV^N5f=ugsm1sks8d1;uZDZf8%7FRn$| zK$R%ezDhpxB?7ugZL`a5;@*0E&C_dP%H>~WV~Vv)Ed&`1lrq$P;a_lFoW3}7Xi)VB z&!NkMK>-OHitiYzH$L*NKRJ1zO38)Me*br#|Lec}i%)xx_q_U=YyZRd{m=DZU+~+{ zd#ks75{{1ig@5B${?Dsk@$yGK=8dkp`sy$Fx^FhK&v@p?{QOV;7^Wc6zx|RgdYiX@ zhbO(`Q?I%1x_|mbU+RDC*4MoH(?8*_p1J>l$xXAh1We2Y42uAz3G%I9^8k53hQF2X z{frNO^kX0QCU5chZ~cKEP5=HiU-U2Ux$CaY_w3^hIt3j#*)2w?73)DOQOlrx!@qvk z+r8sc-{$S#0l)`-)W`TAd&!Ib;PXG@Q*u1AEXw0z=5W`D4TCUj0C{LoJ%5xfIUxfA zQuQrRtrxqVI94t|TG64$lNys+DaqJdOd=Cz&6IvO6zVm3U)9)`7A35p{A^$AwCFQt zRBwnB^Yl5^3^^fI_M@70qe zi-dSFpXONxd`DO57u%@0?1eEkW%wpscc-i1`eLesPzg0j69!>!gyFZoLuacv4c5Cl zT8&9c3$r0Q)vp8-b0z^n@p-)srd~(HOC4TrsAm(ZcueYu#w8nve8^V+PWndRs=(vy zq@t_mdOXJ{p7wsV55}hb&zot;9TYHde%lNm~?Aj417 z9ZmZXvSv!21l?qwQem{55UZ-y>T81Dp2#KONEl6sin+~2vZlV6Zf&~F4AUqsR7aTvyRJBfxFIQ$7Bo3H!Gt5# z%zff&8^PineSI9E$e!h{^+k&N_y5%?_?T`H6Z~p2pzw6FB)^9#|=FCt1$p8HKXS~;o|L_mi zdf4g#_|QWSd2z|(mGt0)$9H~qPzlV=@m%1_F7hT1+<*V^rS7}$-s4d3wm*B#Cw}l> z`5)i&UH8B4b^i9A{~N#d$she8Kk(h(IibwNj`&f&rPpepYN=4=)>SBK+~mD?uao(n zyYKotAMt_T^3`Ad+S_hjuXOiacYfzL{ku>4!1uZB*4LEMp|=Ba#2UA3TS52IdPNl^ zhW_gTB$A=eFP!f|BpYM5nbd~NyeGxrM!G#2=9IsXh{u6%v6k^#xq85tdj+q(n4-{y zK=d-4PG=l!oeP?bJpm>NfaWSTN1?%M#%=msibW%fh%5At>pi4R$tZ5ML?4&nIZ58{#)Hubc z7o!_1jJ`W$ZOf(LN8b`A`nhNkg{)SUaF`317n;`qiYjYY_YLw&EM=v&ACr5Oa8)i_ z>%Ir{s_I}uTRc)JJTxr1yc-M>MaagGrH3jcBxcs}Y#(Al>FgXulkG|B`+?{l(>%#J z=9HCavmP#opfS?4(eBRk6hhL08gy$0fR!X%SIo!zeVsR!EhC+ozxHOzLf6 zT6l^Xq}M33!$BPl3zl3nkJ*rS#hTv|U6CwQU(`B~J{rvFtBg6!nCr5Goc!ZDh#3Kf zlhz&nuB4yj@NJf$MJac2#=u3bipN?>u~zju4_S@G{{jPou;M1cV8PESOwms=1YGGP zPI?zj`LmVaVEUxxzoj(0sD+0I)caMvD@K}Oamd~-DAIkoVP!m9;Dk?BH60XtG53I3 z+ie!Xq0w$g0A&IKValBnLUoyK`$3{N?IWy2&Yv%!)*l>WrGP*-rH({m-K0THFpMlm z#g$+fU*KvC68}R`;qM0!4Pk8A9T+-?(rHoUh%L!1CWQ)=BH!o&p})LPQp@pV#P3UZ zAV^4!-~pF~Y_(7nq_{y>=Gm{ZuZ$`CGYG^^}2U1kxNvj=)1&ZV#h z=_C=-m4q8fq&lb7+;r(EKsNbTan$bCVA#9Ndj>9xj&VCy2VXZ1p|ZTUyZZEI-$^_+ zaxlag_NDYb9;vkK7n>-?(_6@q3}efb6FViDT<(X+Qn@YH&NTF0$Hf@5q}_5xJf6js z{4;VryI5%c{z~VA>zd&SH(cS!Zd(ltwowFTQvyBN<)rRXs2mUG+Ayg0CWM7f<|rXd zf40K^jke4*!>LoJ%5e%qS`slZoKiP8y<1fy?5Vz%gbN3-r1>BrWhIiEn-F z_1B+y;DHyt@b~V!=UzH5qvPuzojPqsp5r;5D-4UHqa&EXq31B;siV_oMxHx&sHGfl z4>&qHwS4~^oL|AiF1zeaAOD2wuD{{_`|tmgKl;NvZof?%Gq_g;<&~MwvrdRyx$hij zAM3jqgXS)Mbad*?p74b0Z@lTQJ6`+ZKm3D-9y}8>gyBhtfe6KkSn67#{B{!31mKNI zhW&yvbQTu2lIhX#WmYKAGvKrhhI7P%V}~(wruroezlJStmxl*T)n&INQ&l*jFL}Sp zqcXXxtn13azKI^kEMq9=BHbHYU!3rT!zK-+%OUZ6qj zHDXl>`4Zocm)bcFrZpL>>7#A#z7i9w3vDcxim3%fW|kWKba7g+uxFSdWEP4Uu2BAs zO9Q#NA+~2qi7EFyDLAf$rK4OydwNRu zPs#Ml*%8$ZVYQ|a=8(&RU=dhDEc1kIE#=f+hl>n7sU}LX@P0$;Ql6eUMk6jNjp|f6*p9Y}#wiJ*MC5k~^pq4GR;h#AIYCmK ztrFzH>R#?I75lm74CNf%MNXhoFc(G;n08}r2ats~VbKtx=qIp7GG#S4pvy#OKLndK zWD%!M@qd<;7K=V+31#U@HH;-f?Hi>l-`FU`cCSMOOt45e8?ykVa2m4OqqJhoxZ_IB*Pu8<)OU=77)e}$jsiL zPmWkNSfyUTNcp9pI5gyo<{Zr8Z!$_rd4<2!dN>Y_WqVqUNFu~w9{()%&f!>dmd`A8 zpv3c_1=y!^3L$;yA|k`aX)nBIG8?-{e^$npSyOL3J77=f9i>@s51ytiJd2}wT?fgO zKHKP;FTqPzMKqapFtD4|d8|gaTv<3L7^}ElOBQ@Vr+1mcC-N#B;J*i;+e1UjjVlnO0}3`U=f0UJ_l;8M zuDW`VdTo|eMRNF}%4(AX$l)hsO0;!=(~SjNObep1Y$tkO3|0MX^9kA9b3H=#j_5;# z7V?zU)Yy!Bpyx?Stmhz-!f9inVjE|MoOfusGogyB!}<)i z!CEx2mA8mvje-BRF84^0e6tnQ$IsTr$>CV+8D?oN1!<(18aAb}4G9gjE(F**sNFn4 z(|i>Tvo@mbiL}P(d)jLR06CS8fD@XQI8OKE!QhJh=TLxAUZbQ zw)Hwat|o^eB?$D>c$#14q$ zGXWY^#yf^Lso+`ck4}G%PNd`FwcjCgxh2pOhkZ^i4*L~r>V)vf8%gTgcL~m>)vW4S z-V7`@ftp#QkE9u3S>|F{*ea$Hb+6cv83ZL@xsDEX=0eq&l`0jVy< z1~D%{n-iD{xa}m?9{VKX>h@BH69|4gTtPtRYAM5ZA6p|NOVPHcRFE-qWG9+k4Q7N` zD^65`b-8^yRLPRLfVB+Z1E=(W9mc0cd;E!5D}@<@MF?dr}y#dnUuBT;bFj?m1A^ z_okZCD&Gp)>l##W@HQlU*xMnzk$Rp&o4dM8br2S*_XauJgGY}lgzp_I=Wr~u{kBb` zj8(iV^m+8g=Et~SMOYFd18A!R$fvX4r#7yH)NMys9T!_yGgLI21B%_((Sf+ZVps_0 z>NAb$m$u>-jNXGjrxX;(v@iG!z;||8?JBX{I5`sZgRp?_L@Q>{Gb{^O^(qX=G%s{$ zYeNk{k^1&ZFX!<(Q^VmZQ8PsA*7YN|hatM)(dVJ-fVG`uC?`63qa<*!0h}R8@i-kT z&J1=@2P-Hl)M6db#v0E0Nf|pF+Yu~s3dn}am;eV^5CeXB6=!*5Z*!Fj4O5+=9ut#8 zsGG`)B`%B$Ro>u#=+^~D2mC$(Xeuj@;xYnZG%}!9FUUI_1fq*YGxFVTrTU4`mXA|^ z65&OASg*y6Me7^^!W$HAp-zu!ddjA8WZZ{q^QbgUkf+M%2!#`8gmC*bCs>nCrB%5i z22I{`h!XM^+8P|XZaPU~m#&CK5cOM12rPV7i+|{9(B$mzQkWgwapR>z`(bh^>5#Li zIk0{YQ4YWfy_}#kD!oBivU=T-npR*cUMu(}<=5j>Yf9dPWQDZo=1@8}no}?cOfr@h z+Eq3N)VIY_SQQ~Sd^anmJ;}XXU?0t|U_C>oJ*2DirJU|WRGgG~b~w-U%SEE|vn+nG z@8_0H%a-1h%N^+zvO0lN+|>jK@y4WKzowV>g%ka)p#a>lL+wxDt_%)^q`p+pCbEfb z>9(*%%nf47OSz3Uq%K6aLQL2fCC`@`u0o;d3jAxcx^le| zt-=+sX#PZlg-&Pnuvs9&FH8abI!SBhc~w`j3%SxJPopxLngiurZXoQkEaL71|00TD zs6$Pdvy$dG?q|qME^E?Eo)sQ=g3jw5{Ah?vZA>h#gMc#C81ESf@r{It`sAO!^IT?Q^|&z9aottZ=8C3<6n#{y0zJylqzu@J3wT#n z2z$?T$m)$+oHuLHkvXxldhk-?An+2ulnFK2&iC4*Fo4S}XMkw|z1>$?c4KTx=`k;{ zAxqm?)$c~4oHd?!M`g!g45hA&aM<4|L8P_DH1wb>pd;J1NQ*XBk?Q>+5jdrxhMdKG(7t!$H$l}0iY^-EeeMAqZBmBmeW z;(uHmf&~Fl>ZvSZyCYRtbr?57z!y%k7laq)t~fHy$o zR%I6xbUc|wa-yA&0_#9Ice_JOpwC*R@_=2|y$Cu}*z5$9rmyHtc`+X==D9F>Eg371 z444;%Z~4M9i}t@zxNw*@vyDMloJ#IEe_j& z@8!24T1p3ycumEv8HaY$m>c2_(Q_4m^*OPiP4I`lb$VpTjhv}5{twv>lQ3DqLe z)Ds6Gflwwc3zCrQC@GCMSW19np2+<(l_y%qMPteC1gn8I-3XJ`PBbwRu*6 z#u+ps*1Y?>!ffwco$TX(4s&%=c_gAP3uU-evVBGbyb!7^hll9AeDz*Ay2L|)6@|g7 ziQ8Y3rwc?<}NnlXbP~elfksl->&sdxZnL$&HSbtksRz&5DK+vUR^DtFIv#gxE ztCE@Z_%pH}A1TlolSy1eUQ>kBhQOo;dIzGH}CaqDSfwDgC6Q{u< zN^w!1!?9*CaNE9bhh&Fi+O(isv!sf$MS~reqZRF5a)xMQ-y4iC5dMUYgN{(Lk8d#h zc_t_gvxaNszMbl%0YZW+L8GF85bqHB1X47=0zJVWk4kU)aFoCz=`M3$xtWPMo&;(_ z7hZWSE)ca4h;`4)3@}slkyf!MH0s0Tu&)irC}q^u-Oj*$OGfhBO4z{}iXs6NRUX3n zzccyvCIId(Ri>w_8V`qRK&=eGJJ#+RtEPGr>|jx?Eiy91u*pOl)PN|W*^kHNiqBR= z@Mr^Z%A1UJn~b1tc@tHCC1equawSY^$sJvHKWp}|F+bskE6iuqTTM`Cg*RuDeCG)i z#DSnyN0lOOK4Pn_YwQyrDNU4n7Uy(!!i?AS)zJY-#5S&zHL59fy^~&}EtajsdLQ-s zVHJI9Q3$q-s{4g{)bG=OTy;T~)s6sXZ__Uv zS&@gSBM;)jgc81$$}Ny{x=Jw9ipv9~c62AU+i6exh3$mqq!0&Pmu?k<*CH^pw_NPt z>R4$hD_y9d{z0cKk#(O#yQxp%$ESu?+~kpN6SIrs_ZRLeZh~HWCn6AKZxOZoB4UK7 zbQU++tis{7%UR1of^b^;M48>R+lI-4*PKiM%K8>pNa3w?Th`)7ZkkD;Bmkf#4Zt$v zfq3*F|CrT=ZUu+!Id;4phsR#eQ+%Tl!Zr_#coiU4LD;ZN^1|=Ls%XIqz}d$~nZIzL zsRqfsUM9&vnl)?KH&b3O8XVl=qrn7w#}OdC`c0^rF?PRmT5Z^~hADttm1B$YVZ zcHm~%(-icfZ>CL${!QPEskHL2yC+|5v#4oR#sVOb5oPULMS<`1z*nXp}pD%f_y!el26-f3~58SQ2Im z(%3S~o9T>GCUG<=N8gB9CT2{(P z;QX^vsa{%nMjM9>r6|5lw zU>BI_v04q`Hpi;BrpQ^Se87k*%y#^!F}pQbzDy=Ie~eTGd6TImvZ|I=HyO8gu?L7m zI#YJO^yl+A1)gyI6}$K5*=zF_UbX|9&bYHuFV$g+RhdAyWe%tdj3y*8TH5K)F&eFpZTCFsK zj@FUenEjaEwk%F1O;`s^3Gs;OfIzUO8;pEwjpRUK-r>?@;;lvELv?f=Bux)gz3&;&XIYJ zqYx>H!4*K;or#S->ovz?!kKND@bIV|W1R-ByQ|e#d?t4ntbikM8ZKqor%|TK@(u2D z{S}#qWx?)|3BvPICf9^h`%M&M!qpUQ%QV=s@wM=P=rHIV)fRnMoYh>1e@3W@rZu=j z7}~P#YG%RLOK~5rZM--zG_pBONc>X3-g&@aF?(1q1+-NhZgp^azSfD}U?sYmIioz6`q(n=OXai;E^ z4gF-8UTNL>8k*J#3zLHZz4xfFy-w%nfv2V;4gOqWEJP;a=^7CG3c1Vbrhaa1Mw5%5 zYlw!}+z>S9v1;_1LKSJ{bUj~=v-W!ofob*8h&isH+=kQL3#IpqdZQMm2fFjOVnHjb zTch6)`$Tm@ZiT8ec73=K*ksS1fFj2<)5x8yky+*2-J$c8Be4P}roVs~|UjxyD#J3uQ}z_t1k}dUBeS03{9^ zP>A(b_foM8HZQhYF#zciZI|sZ1ZeZ6W%$s}&LmQ$7pm&j=Pc-V79_1*+=jx_KYuv*uD#-M+?ZVEv!V4DG|X>Kx@BDnZ~rvnssTS?x#iwe5U@%MP59W3@^D zG$|Q$K0X-%#di-Fn9C7Rj)lDeVKb=~JC-!O=DE-XtYYUg4BC|nb}$gBHnoEye|a+{ zy@}(id`Yu8;buuHK5Zlu2MQrVNM@_uys{S50JJYzm zN1QMUm6M^)_81UyYnvU7Wor?GQ%*Fw5oHaG+e`*&65GB&=-K*RJtb`so%b<9V^wNm zDd9rz>ipkeIl>}78!^s3(0~0W{|19MMsr@2p8!>qM`JyznkiHZy1wjkhr+!FN@{j70^)SGQ&A9_U(J|R*1gQ}V(Ut@H^Pb2>U`q1;EyV5PB@Qs zrTXe6aKtuH2E!T*S2@qIs_gJ>8B;x0BQe2LQ9mc*BKMAzpuEX!Ah0bF7=Dw%$tQ!_ zt}b}8b2SqRH(_7MEi~TEG*ckXlsL$&9WQ9tG1lVd`RZh9 zB5U}n5>+@43OEwAe+sfg9c|9N`x4PcYo4rNckd3r8Bfc?h1HUM1fWX;CfeLaeg|kM^P47_Zu1GT>Tl$Cmv#e-o#U>0w^lk)Hr)~V zO3_j{c`l5lh72(SVF$=Rw!$u+=?Cc5df`#pcEToViZUAvcRz+b>#JEoltN^tfe_V~ z!h*X62VHkiW)ks9QtnEHu8QKC&fgP|xnUqxNyqLf*tICZlt*T}2B(vOueXVXX(Uv2 z+v+v9@fQm^ElFD=rNKVAr6N_upIj=@!_p*R)*UE7g#wK9wK$v4-e7^?X3p%^%u%Pc zHs)1{N05g!?4m`(r70Gp>0ha=#te{_Dj2rHA#_B6(TQ)dpa-=y;6t5gMz8Nm>6rO5 zXiuYw+DbCmftj}`WksOwDOw?C2L#cc-kpgHYFL7%5!$^Fh}9l?YJq7qKq&b+V>!xk zQqZ~VK?q7ylloD8gDjUS6(9%{h5i+c$^ZcX07*naRMy#~g-s^AYA3*>To-!RI3M&G z+uJ_k_E1M`u4B`&gd8>A(tcL*gnqy3c3&a+lj@#+Zx>8a_Qxy3`(skQ2xy(#^{LC) zBXS@m02+bOX$6$!2)hAqkxlGw33|Q)Q=T%f}0x9?dKuPX8{N4&3Bde0pbDw)b1=)_n6n`S2iU|c6 z1rLXRdjPtHH2e8rGo4c&`(l}b!zfe6ZIMKM`OW81VzIfunmIU9$7GAVw-pNwGw< zm0=3s>xX`do+!=EHD81>>Wmz1B8QpteW?%(Us+LVZ|N?iI4rZ6b)zL>b`b~>dsJoB z5^TH(xG`=_*<*&G1q6`k%ue2(QHzrdB6~bY8HU`R4R6a|HWv0G0KG?!!?K_!wDe!? z6=>!t^Sm1Es7`r|UJB2#WfYafIs#*7Xc0iu*aj=ozh(!H62~Jdg0F`aV7A^>xosg* zp(VAjA;brPvwA^*60{M+cc(FwLF*=)04Y5y>MnCl zw~jVZ^*l~i8&i`Z^`RmcOVQB-GG58-rBUISPNudg$NB;ptVj%7M^Lbt0MB{s^B7*! zYOGL~)g;Z?^^S%%4ttXZ8(qSFIH7U2xq@tVJYbL>3RvdE(A?)7UPg>-D|6MIXbP4Y zS8hZ(#shLo8`}N4PX}fk=YrLSVr>!P@CD9fB%kk!hc_3GRI<~jX0)mmF{yuo;zf$OjY=Cv+Q^v*}Rs`Rf19+=t((Z;3;1rGiqv)(3m~XAWNq8j#G z2C)e#HY7Msq8zuXpdfRni{+qiw5NEa?y*6Ib_X|)6u(760C$l=`ljjP>Jr*(s|d-^ zpVSJlW;5yQt*AGN`b^{));Hpeo5VTgdVZ6lpOku@tqyG3J64nd!_++33A;VEv!g(D zHfw?#`moj!mKs40gb>+#Y@G<>n+W{mGK_5%N?2EVPDtvu*`1<*ate*d5DND>bD~3m z2gP6jOI0t)Zb$&yPC}#GLlD?Amcg`4Zn8|mBNTaHI>J!Xa^Lq_+XCni?THnP1vi+~ z-XCW}JWvUlA02o>>#s-A2}^%^{-s0I#fZgW~}x--%iM&5fZ{Q zjesT#XCX@mJz2Ccs!|(O*|`XD_tol%1rzcWkn%x*TSJe5yPwaaz$i- z6Yp0@8&>hftoShUvDGR6)skB-m_Y%2YP*O=9T_FFybEpPYg@aw!j>jsyr(_;2sh2q zxmBsO11$u33PdPtu<9Hx3ORP@Qi;~frF@X=qti`g6)IkHnhxBkMvQGAt0S(UHX`0> z3z3`BJ!9dgMr&U`pi$_#LdL36D-PMih8XL<<%JLG_kjy#*4*lL(U;Y0#ALm&rRv5G zQMWU2e-j>QlUcGOA1U$Pbu%`{~aE%V=TP7m5jCuxCYQ!L8Y*khvQ1Vc7b0Ft9RbNrmI%#Qi&2M zifmgf$M%4MxUji&VWXrN&?r3m3_4rtrdX6iA+^IXeKvH!s7vCVqs0Lv))sc2F*`@M zEg5K5S3@XKi0rDlEB!#yF`fYtqk!aP2W2Uy7q#F-#J!T0PqN}%S*u?-Qba|bC>s?% zx5Hx_W2kr&Mele%KG|GhUZXb2=;ZunmJ&{MHF2gUxp>1EIUp18nQP!T|&ERD`uYLLjE+TAVtA*l-7G> zWzmJ9DlUuG7objB*w|B(Q`dq`htW1LXzxUHJnD3y#|lnIHRm;r4B8sZdANg^i{P$q z2QGThY-sMj@WV-M(wv!q(C-`WRmj@YB3^TrdO3uqv&aK%F5*2m(wNk_y`f)X_Gi)!uM`MFSFN z?Qt6#?rLk;a-psT1IXLb7_?1V&;md+S7zH)Dywh7F;gm?Ej=LTAj#oMK~-Q9M@^K7 zSmed3QxzwhICojpTC%zqyc{W#7PXevf_-{}u+;m-UfP??aoyVfwoUO5ZlYEclPk+6 z=g=bj$l^JBdj!b_fK~?wRV_wqK)E%b&!C?38$jM@#;fJ3BBh#zmCq>v?Z?U=h<%|q z=PyB3Bh&vK4vcWXS;DesOKd}ImBJ?iR2qtzFH-Es5!!jBf(LM!4^K)*&ln)TW201*+-jtUl(M zE;HRTBA}s!oKYjy9~-@li-o`*-rJ|-H;%rPz9TeTG%>3mhqX_YsxBi>B zk=TYwV+~EyZ?blJ`*0!WA6UCgXxa8UT`8RD4KHc`iG)36Qehpf7R(wUF?j+YA8^)) zjrx-%>2i34IvzTiA03XN2zhrs$XjvQrf*^LX_y}c8`(SH%1g|>QSN;2JT=FmAI}4} z%-1FB%tC#BhAuYNHGVvyT6%l%vhgUlc}K8}+9gB?DxyM^J5T!dWUUPKl!rY69VdgH zV{>THE-F9M6daLjoUE^=B;zivT>=++vi$M`jEp8aX~>m;S_CfjrOZ-u@qtuqK|4jk z2MYQZtChUeOdAfq58XX>0H^0}-z+_JDdfsd2lE zf3PRoflcGewnn%~B~~@A0G#c!mO-pX((08uV1pS2KS?6kgy`49i3gZQjG)p@h{;sS|%_sFypeP-V=}!fB0Hga>TU zP{{XZK*G1PE8Zz#6onh?S-Wgcaev@eu3|65F~vGrZ0@3&ZT|-AF}Y_lbgIxU@o;f| z%#<0^neLPn2jzPDqz8;eVhf5QEFTvOu;No@v%O;a-QHI#`3(8l96p0$obUb8gy^*L zN~7K^fGb)|T}o~(U06gPHKk>X7{u*SW+o@xotm4H$;0%f20e*2G2yPAL2tE*2bj%H zxA8CdeyNSEZ^r{phJEu&4uHP?iivjk$&!c7<0q9X5Lw;JmJ))u)Yut=K#w(ZTj<%k z$MUShLsjJ{5u6=H;1xDgdo{96c8v`VvaiZ&3mHn29Lr?JteBtKtu;*4G(~0?Saq7z^Ie z4(z^tZ!g?3+)?swLd5ddq~Zx zmKL08%q11b#$7GM=N;8rQW#E_;_DVX*ste(_^);5atflmkYP{Lf2ZJ^O7)WoylmNG zr}M#>8_#>p=k#aR=5C5dq%{%*6qttffYhE>U({@%7LK6BRBF%W3qrAy?yC!?*oY^4 z#Qr#9wE2WAnsW+AW!0ueS-p-m|ityBCC$V5yz9#>pU9YbX0fpi5FYjQ2oj zT{u~WthZU)4?y?YlP4Oh5jaUZ%067z^+{_dC(fx*s$|Vgc3$LZpL*-F;x=e%WYyi*=1bY2#5K00(*+Xokg{WCZ}-Ul%Ar zDc0Gp=na!0Tc z!rbv5cp!&n`CU*WX9ZpnJ)Rk+WQW1^1%|H3zyGbVI!Ss8$J(aZ`N@iU(BUFopY>7Z zGEWpXiV8;+l19*;Mu`^AYhaoxk))z4ZfuS1N~^du@Z|DZ!ED5u`jkb_a*{BTXD^dS zXPE%jOwm30Kneoqr&t{;sXCs0;Ar!^N)3zK+^ja8Dv1Kq+8( zoJuInA~b6Pfp-tlrMA?}8py1(S(dTf*sqq(#U%-bL3S>RJ`0rQQPo8%X)Bf@)~H3_ z$#-zdPsmXa&9Rt6@M>N)sB;UCkH+fDq};hTgV_L;|qCJ2FGH$q%EZPL8}UR^MBx~ z#bmaHw5&HJ_jVzs&}Q<@E1SaQ;3jKdQF2=T#vDgc-k|bQjc*PaM8&Eknwo)H zP26=@sj+Qx4A<2RL0V>)zfBPN9MXlOkp(zLRr>B8FhM8M+q$7LJJo3qKLx^UO%3g0oLSMv3Lj7g&;5LLlAg!53`JD_c%lruM8^W*$H?v&oVq4)Angg7B z`I0AsnW-n<`y5 zMlFmx#ATWs)lNgbf5E$g3IAiOL(I)Ri5JH&6ZP+1OQReHb2PGJ(X_*(3GM-7-xM&7rt0Gj5fSZ>rsCMCci&PF4VHt)FISABS~;c|(EAt( zRvyigcSJm~ksHokYm1 z-NNK`!2^;NQ|ov8kf!=+!w?t8%4J!DVygHySLYZ}ZzCx=L>_d!t4KpO3#c$-E!@j@ zD7G@)GNqE&2*XZEi;34v|Gz?oiY*=vJ@$IDth=b2&ND;8p4baJvC2eCm_U;vsR@p` zq(FnuaQDrmi!t~`#p#|X2>Zb3^BcD@jjBDvd}EL#l2YJ@-WjlmL0iG-u=q@kRX2~Q zNWkZFQw7$pCWueC;fmL*DV#s~D|2Fw8_V`j$4Iw6&$O;6n||y#vN^KQ#ta7>VPQ1{ zN$53TrrD8!CghB<#v11+4}}N*a=#qaUQI7;sjByu*l?ZFkdUQ zfgy%#22$*(KqJ*2;EFO>lq8omq}scVa0pU^E?~5L>dZ7Mt*Hs=O0MDp%jI(jKut6% zW3c|N1Vr1h+}u0rVDeV{L?jDzTp4w#su99=J+dQFxR2x{zgrbn?YW? z!?+d zvn-ZRB|CQ?9krn&{U)oacPtSYKA>>c=(q=*lasddN|6 zs-)9i2LnoKV}R6j`a-^^m|K@RSKt8WSZIz;gH-I8qf6rG5K=X3p;Q;7G&SA@KShzF zUxOi1Vv4`&R6z%0S)xA&s29Cvm+}S=++9RE%vw7^e^;SnB|byCEBS!zWoprsvZC!Y zH_kPY1dUo9V!M!P9A@iO<#pt{#>Z)O4^31ky|6Y5!`eJqeXHsQ}bz2v6fEH-R{KzJIY2 zFahy~bR6gq`!Kii%%Fe*(WortFsIGrY1tC}`ihn_4m6iL}4LRx? zZmE}e9<(asQ?W(cVO5TVY2KDGy5Skzs7vXNPSy_Fb6)dcd8BYywsi^q`wX9-6=iR`zstI5_W-Y}yn{ zu(L1r^L&lK*-FXpo_Yk8-;cu-d124&F*p{2===?z4Aehac_8ScY42vhw>GP0l@mGm zVNX?HF0LBub=^>)28Lt4&oF@YhRbI`TLg{|MUHLu7Hdv0*S4UK0O_C4Ziv`RG_7e5 zZndDT$CG1HC=SK@^?zA_>Q0VhTTE6om*wYksY}*+OK&N4?P*V4sjD>agE(=ENm!9= zTqqGGI4r4fK$=};5sb>b^THY{AOd>LjZn_?U^L?SC+u+1X)dED&hD{~URxeZkDC09 zoedv#ePpNb_Sg1+0y=Xm|9b+?bDL?Hl1zhPj;Cun8{Wb0Bp19=Uu8F#->eI-QFMP`+UlZC16LgwcgXjZ(fRh!ZYxv(Uq{!&zz z8klu3ZbEEKwnPgu(;_Y1uv2T)<-%bv@89xIOW!KhdAlwNv1I^T90-WQRqUS6T_e7e zt=@Fe@es^}O?lbaK1!%AJ7Cuam=%qBhUG<8@awiQcJN`2r_d+t$tok$CTie=T@Scz zO|TV3mi$y04p*x7=Hay=7q;*ITmE1tis-&4D%Irm4g!Xa5_3BhA zbxw5B&l@)rgf%E=$PAEm@f9@X+)L6oE&Ddg0_G*zt6Z}wpk~z!v1y!`vNHyLYj`U0 ze$(uybmpL4ApLpM_YON!-1AyE8*|lS=bV^REuP4!_Xu~61BKm|$wnQvn~eVbWg2;0 zX#YN1x6x9|CO42k2L*?QgeF+qbyITh)5%nh4v#gU&pW0;-%_bhpkhgEVidaKWU}9^ z76Dp%BH^N5i41|X#iL^_=!GPD49LSda(hs~3vM9Bzo2kC;cjrG_n#aEf6iT)J%1x` zs7eu~UTn}A1v%B9Wv*r8L<-{o!cPM(y)3)FNqzZ z{Xo<90&C>$)*~o8fOL%PDqamVz4v>}RZbE~<0M7VN`xVI`5s7h?wl6yK_^?Skkk%a zWLuV~XL#;euuY+0z7!WsYjo^aCdjCrBjO|Le0D5=wGYn4nvAWRbpJYs9+M_Y9<}4% za}|@2(O6~3E9XjUuY`&&ySe9E-z%*Gp@2jmzKz3d(WmnjA!Y6JkbP0^o zr)m(mlUAo_-5#(fHehuxLfhPDyPFMJ`x=}>J)CRkC_ZJG_7MGJ$5^3osF8I)W=cm8 zJ&=q_zB-1k`CCvQL2J`WhCEiuJuk>I9Z8&HA6|=X{!*!Vxxm)rfUk3sMPz?c4-h>1 z(j?HOHxxRjzCRr-jhzTxrIo78AuVRD5t)^s5b4~-s>$QwV_MXE1t71#${@ws6P%bs zmaB#e(saRHom8zfGAjlxx;G~4Ws)+k^-9)Y$o(P6fLe@TS=tb$%;a4*eJDlBPQWfa zZ(kJkM;=9(tAwXp6}yR69`|C<;aX`$V3y^y9!#!(CE|a5*N%VC7{8Sw?*s`$Rj0OE zRjt!%s${rJ(N$Hv zG?*yp`qMes3tQEgE(o}{CJXf2)!ty{35-ZBXwc31h8z=2lcZ?bv3;Rm`@-6ZDQ8#R znY&OYEY`8bmxDexW9?cv?t)l|9Tz0WL3K=cy%@cTTCVh`zVr38^)k6;ow9R2=sm)q zls%eYEcjv8*B0Faz1aX7F;n)3rP}%MmJWbE54K-Q+F|?prYB~BNa<+U1kVH3#y~m0Z}|HE#TUsl58Qw6op-$UHLrU0%U=4YfAqpX z{+;Lj!EgThefQk89wiCISfeZ=$w05c+{m}jMX1B(?h}Y1@d6671P|U3_`txiWcqD2 zTx=tu$sfv1M(xNG6--Zb@U2Z)$wJNw9cQHRstw$$Y9wF55!*>_oSDaH!kd( z-=q7jD>Q}1?b&@t+ipomK{QbbKa6R5Qp$~xmO2$#TWeQo8iX=(Gq4;^fbf|qV+!qx zeGXh+9*i!LrdQT>xq56I4w(L^BWeXBffuN^oHx(?>^z=)58czBR&6;eMqEn=aT=_M zbJ6)N1`kT_B6o<6)M!$bAIS!hG1Y{FOIu%646 zE)xyg-oRs9@V*5pWu1?@zR%_jnw_kX(Y)4nuGCW{&!#cKSitjR zplPsrLx@>>R)B(6CeZhU(V1$ItXZo);hW8JmRp199}T4-PG+0*yzw``7=3q-D4N4M ziVvfzv8*pwA-<)se}hoRSna;=vV$Bdergho`f3ep=zB zIvdiJ-F&diK054nzz8yrNzqWeloW0@e z4PS5gdOdxeJA3vIpZ^=r`RQl>@Bj6Kx4!b06%UU1#Y$WZD9P~-d#+&6Sky?nQ#V!X zr37Ax(pJ(zrr71ebv-`1@Oo#YfD=^ls~VswbsG3|AnFPxgZq?3M<2q3YXrC%mRo8D ztPFptqS0ZddU5Q+8@Feph=z7N)okzHj*d^Y)78)l3+kU~*i%bd!Bk>q>=@AdBX*v2 ziZW4S^jNjzLPh$Nr}oXvO$)Gh|gGVA01}$w&`x%Pf z)vQWMsJ2>4fVsRic%0&JzwvEuA6hLinRnAF4w>)5y z=df;}`C+6!Wi{@fk}R7|GaM=;$#!$ zg^ZN|X~%I@BbjNJCZkt`sr><&b22$5#9WE8_+C)k`4%=43#vE5s|CP{IRQD7G%DEi z!G!Pxd1uY@lPl5YXG=?r0N972fi5Iko7k0e55Y}kN&AoQ`Dke{!qMP9FAsGfJ1-`L zK@xfiJf8aW_xadQ`Sf>rpZ9+Q$N3FkZ}@t{*PrJX$>;szPygt5eDm}F_s_ed8;4%+ z<3AlE%ZTBf<3XE>{L*2-D2ftT&XzOfRk}0=vcn6M)9Q6O{ zoLXH1!hmQ8_<&K^Iy9z~jM>C+pk{)iGrO(1c;C*Pk=75_7TnMi8coKHxRC~9BB`J80)iSIM6jfU{=A4k2jH@rgkq;6C1&v&)t>N_p=?Q3lmQ$8;Z2< zFy13gOD*r|8jCee5z;+AH6yhxKGs$e+qes`b1XlX+w@0c*($q3q6S-G*e75_*i$?S z(F&T}Gdf*|dt8Ie)<_y6VO1n>v9Gq8EK|EV(=8jZK-VF2RZ2(~L)}9$0}LuA;fFQv zIC5G-Ytd-;OwQ_~WNRb82$zavXL|3%f;D?^-Zv09aj?18jag?e=0w#qLMSFf?=BPf82H7~-02Pmbdq-zZo{EQlH^1-)U=^-=X$5v>{y2ZqXOv( zYVNHbSR_Zs-#t3)e83=}4g0}`1PxDoUIHJOJ@x7D_4ohz7rgaT-sufM*c-my@b!kT zzre2-{q}Re=WD*?cmB^Wy5MhglVo$k;YCdfqpew_!o+6A%C81fBa$f40}FdS;?vxH`CR8P+IBq&pD?WniTDYrK5EkL~%RMZEgRPF*f~)vT|>2l#R{pCrk(Dj4M%uq#@^p*q^i-m2qbfP(+)BHWC-$tnck5zcrova z3-S(+J};_^vYcArxVR?6Jn$Lin|nef#O9_i(qXn6YDL>AZcpW^L)kDZk#(WcZ=87R zId9wnJBMaJb{~&Cy%+Z=c_)g3lfx^*tP$1yhr7i*CSYZzLhm}fC=Mb^R{^4HU48@X z-ykM4be^||(nGZgkKpzWxM=b z-0dKJVJPZ_f8nGl)ifNG0gScYc=|F-4YpJ9X?BI*9mki1-+TTG ze(Sk^@H@}D>-JmEJ@nvFt7sWAFe;Uxp>C$H3(2+XYT^guaR9AV=RTq7CeC11e%)Kqu!C0)tFc&wbnb;c z+_c%#w($)|O7j?8F^4qKTwlB%M#wp`-=xO1+1S2w_UyM(Y-`7igFaC|rJXag)0bRz z{lnklZJzx2C%?mE-|9*4`abU`KlwR7^X&iltbcy%D_`N(J*{_Yjfxs2^R&VW1FBrWN!BUn7-_RPD z0Mp8ft(9pzf^3^FLMIqM?gZf5X-XV%!?-xx5yMp?xU$+?m^f2qgBG99 z450Kpx-08#bA%c*&uPf`Ht&;@Kw}~)D^gAGvkJ}XNt)@!D+!RLU`!{$9t&&TJ=0tZ zQ|NxA)2SBa-u1HHwHD-glmz5sy7=Ad6Cwmw(>QjAnl?k5%3&Lnu5l9n>u?+-RxC6V z->NWojA=KY5AEZn^~E|Y>CmhiB*>QDZ3}f22-+`VuB6YAsIn)xlpHKo&E3^FNX{q| zkr-*o%skDK4SK10@;$_%S#BbWL071^e7g5ej~>6_*P~?uy8g~_h8}F5Kmk52zhCFVHylB!I&)0Bc_KKaGO z>9u&*VGX8cC92*p88OhDn9q>4S^b7ivR{QQrB>2vy2eAOpJ#z@!163(Nr=W0FK_OA zCkCJe(!NKmJKe6JGS%b9ddg0xDm?T9n{5B;-0_M^Z2V?X>0|LceN;QbXktB--bYVJEdPGP~2MEH5kQTrap zFTu4ptGDQ8T_}s5k(B!N;xyR`U-zKgyPq#HC~ZIgW3mHb@1-z%d!u=fEo)#J{zO|EkFzmSUjNurYF(>9)Db_&l<>Dm| zd)E*A@OON_53Mz@d+)sCJHO%!e)hlr7shak$y7QNrRn0*nGRBghXS8yVQ76A31X27IDXbOPielv^$#|Fo#B~ z6nU}dy#l*;)6L}rMZ(*^NpCK_l|42<1QvdoaB!|B6G^iyTd>U;(DMR#*{&LBXlEdQ z!99&aEyvn)bhq$`?;B;@!Nh|puWkB0pRMW|yMw&DR2_Gq9rw~^HB+d|ZX_MK0Rk2zt=*Qb`h832~%4HJJPqLS=Uc^x5K2 z^oE25f^QM-dQ5b@QN}JsZ+Ol~4_JkJ-O=W}i&+`U>z-AFK77V8jyBp%E&4FS&sEfW zl@fv1eF0+`TMlj+bSb!@$I5THLvy5ce%{vD*d({gJ&k?C=<6e8o{wP(U_xUSO*msS zndY&i3B4Tqd~kPlE2*&66P??fGjpEfA)YkWGmLPucgV!{h`g8b=WH9!;@#pN5Z>Xi zlaL;m_eo6%h35b~Jg}KZRmJCY4%PNO2`<7)#TSX%n+U3rUIDB!(D0s4$LGos-FKF| zx$LsbKJ$zI^+)}UzndQE2mbT7eb?80FsfS&0`toZ| zU3TTEOD{jV7VaQ zJTd=)l`Sxjp!d{JH(M4@DAIQV3&brMjtfa4Ch@QB``Gh5dU%d!AL4@#*n{`;fqQxX zJv?)t3t5@%1s80<>p1vk>ZCAao*Q`Jp=AFej~erkT7t`ld(Lma2g);7k!Ul}<-wKw zMZ>9wU2*#It502imDnd)H3U0^Vsp-QNegyQtofxZX*f{DrYB+pVDDbnPp;-e@#hx9 zOa(PA^b*#yrRO_xOR&B;!I0=n&NZVhI={*%Nl7kr>|>*|~bMf;|{30aR= zFR={*_{2gcfx_M6Y~NwgOgmq!H7|(Fbk5Ct(aPivUl%far|*MiJa_Kw*#{pw^T0z7 zyzb2F?s?$eyUyHy?~WKCY)vbJkg?qkD0y{_KLXLf1MV#@w?iAcg&Jx@ri}nt8V{%$ zn%u!_MN8e32cS1FW2nuO6`0=a8ynvcOhnf(C3BX%cVi)O6jN-1TpTj2Cdq%Ew{)R}#pqXk5g!02A6uN)>j3&FoK%u;6K>&jLSmYCaWh5ziD^V^{{Jiy7a0WjxM>>j`zuX z?|tZ@hqy1MyV%>!d53jVjTP%SP@25F3x>w@ulvAgnr}p)D|&;Wbxidkc>xFzj4bZg z|03yvgI3Ck8zArn#J0UT=I9wg__GzY=6tE{6L+7$;!@r-G|(M9g`{+5w9+NMBaa&x z*oD9Ds;4K!*?^jz<2Z6S%r8O$@VvaD9*J00*P z-wvE;%ieF0gCFfR_YdPwB57;*OC9f%mt1|rsY@>7X* zmRWY-$T-0-;sjgB4v6_Ac(lDfw>{WJI+|=+rkdwlug@?a*fB%@JjQK9BY0P+u4--< z%b%Vdc*#xZZvecfPhaBp$p_EgbNku5Z)Mmg`_XX`Ls+I|5u!PpqaYy!@`h;rWYgGx z{q|*79bI+f(Umvg^d)BYz?lbLckg{?cgK^Ps|ULv){Bao?UVRzrUcL9EarLq=pNj5 z3#S&uVK(1yt~7B_=f-Q|9^Bbq>g4a8QF9{+Tp@@caY{wM2noyo2Z81jL(V(qJdSYs z^yw?Fxbk6_Jhoa&rbWknu?I`P3|iLe7dZB7yI0DXZx*LyJnrNzN(uW@Z)r z10Ibd9Df*`tR@!Y!6PS{aRf8k(UCp;k&pWN@B7g=ev2opcXr#YfA*FC{Ga^VPyFyA z3~iTOeZ#|Uc+Ba`uR447?47TD?LBwjeeb>Z@Epx9O8l{Z$JtzkGcO<&fpOn&b+3O9 zC3W`m*a8>%7Xlp5M<3h9XeYq3aM9Bn@7&&(i7rNzf6>{F?WSPU{D7}FYWJQeJmH6` zj#ONE)m2wsef721U3co#Dc*lC@3@8cy>>mIp7g#S@@dcdsv91D)A}2)c=3zA@RL6B zwXb;Z`B2{<>4APMy2| z-m`byV)wqbEQ!hWoN98Sa@t+VEENOLteAWFeChjfZ%B!xt^6G1@z5d$M zr%s={|K5jQd&}8-ZeRa(9iM7&5H-Wybfc&LB{eXO8693wbvh!2nXwupTzUPe>mGe{ z*_CI{p1tFaJMO*f?tAaOXXem)9t)?bT2pFXmqz94!EkX8^oxjnbHlg>y70lu%b%gQ zn;>A(ZXPX3QImO!KAW;MjQ{Mr&L=4h3Hu#ECUPztc^iO(KbiPo3(O+IR#+(2K zUk@mHyY+eQhxX*QJ(C?rxaz8_uD<5#>#w{1)ag?X+;{g~uX*`>cilFR1n9asvQGVm zscXJhmpvm&9D*=RU297EE}caIJ~YX-ai#)p6N|M-c=z4_zU z3;*8pe)C`at-pTv?SFQB&C{1(efcBbnU1aF1tRZ|rFu-Gc6<1!t2kzyqFXh69zT*0af9|(@?-QT=6pulF{>Ojl zowwiWpbZCntYEYg%{Q}i=N6eW3<`7c-07B!2Nc`gymtj`l$$vC#=rT*jP=ZA}YHmKF-M_{))dW7?8> zp2NOp%VS5M-I<&HCHlI!_p^g8by7``$@eMy{`M(9&9&FwaN~_vTzTcW z`|mw>+e^>ge>dU*co3e<2~%9pG16yF4;;=0S9@H-HKB3(1y_6)(hY z-`&3iQQt*}BL{?V&9&EFzwDC_{@F`;|J~N8Eh7aa0UOQ}3^nl&bhCp;kh%7p6?|bY zQ8_;0va3!%{Ed$ucIAEd-FN$~x88N@c zVdlnDi=Lr7?tLPVanfI8#aq>R#T}on;c0qTqrH$V6XtIF1IQ%&oxZOG?5ZNGfSwhW z{+9t;k#FVo7DG>Dqh<6#o)0_*;M!}iz44|Sue|cg2kyJ)wYR+Zf&1>-czQZ11;uyI zXBV>Hh&KxM2&W@OARlYOn~^<^w{d(WY}#{(R~b6h7uQ}YKVJf%6WlD|^f{v?eg^>a zE?xbK<{m$g@e(4i!kS{z5986I}oW#9Az&-Th2Km8;B z^GiSTlkMz-FvHR5%WityW!FFIf&1@&)hlng_wIXe{{3QgCo*NIB;zyeSe~-i5*IUO zyx97?6Qz86{fiXuMMJDII^q3(1E82!qT%SJl+xe>ggI`NJP~*$t1n|Ni@5 zb;~XH+e%WPb?|k*y+g@foYk{nX6(=4&c|m=w_^iS?uX%5!Wj{Q}WHz_}&>a6{ z2Y$56foXL6&XLYnbR~2mc;2E)63~uLox0(% zr>}kF{rBJhs#{)p-#z!7EGwKGis*TfoHC>L&-RO7OW3u0_nvs{S45zna6TIwAa6JN zJSw2>c*8{gnF8IWhsHJm%E=G-lJo_>9p+(As&|QdeqNg2_LqhJymvueY{Z!-3WCww zXl{L7ef8BhKj!AkF1zfmKYQgJulf_7J3DdW@l|XA;W=`9biRv192fyAqvV4Rtxa&E zJ3reK30<$ovB z1aSQ7A-HjPTUbt4E)=ogZ7}d<9-os-~aQs zedT9=8h94O(ZjB|`f+b_=~dUg>Xut>dD+VzeDF+%1j9XE{j>WHF#dPZr_MhKd9^-> z^W$Lg^`uvY%}5CwP2y0G29$^0`CoWODSqk)PHo6}AXZmN|A+G53GUmY%Se*B~Q z6x2`gH=1uh{kcAbIoHhjaE@|JePZiBwV8V-L*Itt&3dm~RwYjU5!iA5ZKCAu?wi3p zH8uPI!vBnWN7hW2$xK>jeVuRyvomMT+c&}koXB5t`899+HkV#? z-7T-UN|WAW}x=&wC(?gUr+;rIY*?g5u=}PXpRV~vj~dB*#VP>i<~)g=C!xo ze)jCyt8cpb=&Bpe-FGL>J;dSq5ra_-SlU6Tf!MbMpkr6}PS;Kgj>icIYtQ5{Y`wJL z9ruaglFP4N_sN&N?97=ndShJUiP1`U!nf*kTg*BmsP++{-|k98iSwOxOHpps_&%AC zG~BMb@3)}#2E+{>EB<`aZR!nQVocC%57?1%K?&tr2+`0~XI5!OyPxAITyDKaQw;OiG9%@ebSJ;Qj{9hDZp6ANixN4VML+^q+ z@9NB%Gq>G#+u5@ZJ^WFRzT&!vzwYik&OP){{dJ`Cr-W}252?LXC_S&kxNgNi5q|UV zo#qKs&W$a2udG3))N(u^Vq+09EeZhS^9=wxox9>R&)A4!(^k{l^4H@LLz|N@Vx}GA zV2EfGDNQ6)A=je3Ov2sB$_G$>wAFvoyn)oC(Zm>WXC2$mT&U-Cm#RgTfE&IAj~mQ!=p{Gr zV?eXhmtT9$(-f`!(*Ij?@O*cPq-`!`=Jg}9HVb|H^?cwuHva&Iu zslkk_(-WOqGg-3D_p%ur4Ic6FU%dneWaQuVle0=euTdkD5D23XILdF?OpYUX3_9fv z4qCTwACDFZYirPgRv$j=Xl17!Yzc8>1{^A|N5CU*e$03M%&%O1?RCeO`Mu};=0EtT z_vb?o!R*qjZ@ls`kAL0k?*G#lzxdp_b7(V^3k5a!7oFjs-(6iydC_^y&c4gsL?b|% zgy*&MP1tnkGvx~ym;aZ&_l~oqs6JhPbfnGhw4 z=);VHNH7Bml0mZMA%nm$FgfSxeEWu~vwwe7I_K0mRdu_22K>HXe|)^2?t822R-M{s z@3q%n3*(=MQOK$vUs0ZEO)BUwm=51QHCQPOXL)$A1WtTV+B5<)(5RE>R$u>d~gs21=Xz*T_ zZ|U^n0Qg$V{(`Jp__L5k^`TBf#ELR4gb>?p2qtCa8v_ZijLN zC)q@jw7`;*SY|0EjO_XNKF=82VaD`^hN826F)wwYh;{nYk}#B@#P{azua2Eptz{ZaJ z_*sL4s~Tm23tx1bVtsKm;CV^9&NQTjO0gn6)K=BM*L(^d z5X22vi{xuVkfg&FP&LRA%ZSXk=a z3I@TVqzy?H;y^@6q9RM#OJW%UA_;?rk~^f@za`@q3DUkK%IkZtu*NjxAmELPKCoIE ztwhiSvldc71gH44jyxZwo3@grpH*&pkRT$4{O6!dKneQ|Lkk8%7EB<;qNwfQ^TSz) zJ_7>41;4yz$KB_6N8GY`(-+P-zB15{fOb=R^W>ceOM}aoE)BL%bxse>(*W5;9U$#B zS#mfNmo)2HiELtFv?}^v>@|S$^vZ|`aCnDR$kocjt!0phgJ2ka6D?!RCXbRXWnsA1 z@k^iWmJRK8Cmck+NQ59yChDOjGDiYcI3|?QFs{F0)@_*&g>^m`bvIDk$Ch(G(#z4K20Ktp2_0OX6saZ`49@}Aoa8)G!{NW#hhPJqZM z>@7%}69+WswQHAlsrKBu*NQNZ()> z9V3kxmH8x5Gwu)*smew|MibQ)jg zks}W5NMk>w)dMmfs?H^YASdeGU0qGht%Z)Uywp!l*`qLcm`s=fi{>SwRzUPfM&2t@ z6&osQ_^~vAm_aEy1ciO8v8`$H&V!}FWnMlhi|>o;Qg%$zO;e@`8_{-OqG}{e@g_t= z3j{&A5m?_M(8J>D9!ql0n{MS0H)BURivEW}z1oBWd{4azWJ)*Be>PsB$% zvV!31)e@VOm~^!uE#)>|cuMroqPY1Us3Hl<>&dT|h={tox|*9?iXG#4xsRNRGK(w; zo06c|8Jd!Uo(UA`>PX{W(zPP-&>j#55!Bsj8C&uq1p|bUB@rC4J1FVc z0qO2#9ZGc)_G5x*Ol5MyA4oV9rU0*X>^>BCg&|b}L)R*g;k=lz+%e4*ku;G3lW9Vx zu{O<)T#wYl_Jn#9_;T+SCj*j|UPZ0>cP3q+w~hXOW3;(yb6yQoWwKqs_7iCMRTGLo3}g)g#3$r2nQ z&KL({P7=YI>vF6ls zk*^Hu&}ZQ;hW#a}!(c>brR9zzaq1==8W<*j+_>1b%eIOc&r2(|pL%t}U-fo%H@39o z+sE+!Zs1OBu(Wc;@_8q{*Zb|H89Od~asGx?D^M*Wbbldq$D?SRhhoX1K-lzb3jABe z3dNSGyOqn8WlN%JA;k+SFb&5n({83A8m+)%UEz&JI9McM@PpQ<`Q4DIXUxYbaevH+&kbP{8RoSzUG{|O-R+EKQvLfaCg4;^K)v1F zO)V{j_OX1R3tZPvt;}kXND3klAT`l1Q6RAh3Pb@1LUbt6`l z4+AE?GWAfV=RbQWG-hoXfW7S++_Byulh!}LBn%rQES$7cfzq=qSV*C`h|<<58L@wp zzCk?~0Rg+ayP8^Bi|u2b{;d#r68cYGpuSJOe^PJ?k^Ua4t3l!okN|f3FBZ{f47s}A zKXb+W#9hkeiUEC&xBDrP2ZV{bmHK2s2yuSp>zfs#R!KqRPKrMV z#X&xbqLId0ra2!3o~A;xPCN*8qkXPUQ7i@W|QbF+eH*v?s}RWB@m4ITqHOR zMpS4388}s1r;%N*;QJNc*N^}k(Vv4Y5)pw|uyK0y=S!}-Va$Yy-k~44_pZPG>~cV0 zmesPu?llf8mMn?TXH5=5^4TTW-HCp4s72v57;+sH>eMt|zEP@AoB6VZmHZ%^29_Z?>K6k^a1 z{_RiN{ZL@|Nya@8RtLfgr8ujW{5+BXkg?XOvmH*$7BAt6R@4M>i}R60Ah&A+Kkd)x z-5;_kipHi|^)FAyO5{NhsUoLf&gsQUYph%%Y4@*cQof ztrVn!GSWPU*(Q+%nUzKI&R={O3dJ3hwD0_ltGBzSwWA~7I?CCBzTh)GGekhIPGcNqX3)=5GXtHU@Wc}BCY zO*)m8HsrGrRKexhKz%ZRF{vCteeXThM+p+kOE6DZK?cdO;iO_lt;lyo2s8Aw=431Pe<0Oqbx*S7s?M zzqCfN##RwSO~^rI@FbFgCLpny2f_}4y1gEa*D7J~BH2ES>SFg=f2(vK}fucalnWD5X zuy74a1EhE|D=3@-K*N|F^35Gfmn^B(97rDP6K*qYgU&ta77^9?eH|&6C@X-PMVurL zoefSAJcm)3bgcumBT;TE%Scv?0z9ng@+>ht^)>QotKJnR4lgDS$cnPfT7}$qT=pWt z6amvH*qFhCXj?|ZNPY?;q$KI}Vt|OFf{D1cgtt`r}B? z6v5MM4Lb#0TVoy=llhOBnQXI2GuDN5`k|mDg=);bN-A4K)9oshFuJ?Ixy_oJmS4lQ2NSz7TIS~d>E9+MiR0Sst}ZRXNjAw&3eTR zi%6W2^Ke2%#~qTQDPa=2x(ySgZ33gzwZ%&Nll#pnl zLHF9UYXA_@z(D_~vEzYRywoj~y@J)NL2o^jB9i;u!J7oxx4`2G1drMJ;d~d#k%56~UIg-1e<|RfMgJTA>we7G?n1rfBj4nG> zpVVDZki#;g(n=waa*~vcK8tfm#$9-r_%aMtNBbQWLpI(i?Mx$ONmnRCa%;>8rc->=n-hu#jV@uQcnd{cB8R+dp&0ec+t~xpL zce-#Do_I+{$E=cJV#brw-5#lY&_vQr_%9k{XTbadG$WoPea|q1Fvy5sDibfq5d8IH zl}Q%^NA#u-yH3E2pARxv{=Ex65t>gwecMNH9oKc-ma!A4)C+F4I?&h9Id3k6&X^yqWa($)PgVJJjt1t!~7j0jwuvF2A@LsTl zVQnY_N2sSiiPsW*3q3DVxxTtnU`k2xY?CG=0XQM#|%M{gqBHPN~_wpb0Sn_#Qcs01&E2l z`zy8-#!g?icI`l4A4LwfsGB(wdo3t=-h$acS9b?V)&>$gI3(Jx>S7}f>9T`v^Vh5^ z%Gzdp#~s?VZDms86(+tbCMiSOXU}jbe-&U>*^RWzDGK%mq zD@m+RMD-g`MxjZ!3(Lsf5Dpb~NKI!&rbE$)>;Pc+d~pN|Q-`cE>*nSE%W)jnbw`h% zSnBWQwMs?|THLBb9yH1bv$(ubijOfReko^=!?9?vD-jD#JAmd|VeFe2%9V^%sh1sh z8PymC)>L#!7r2A2B?-2TA^M(L(yG4_MMY6!h?3@Viy|?yYoyfp5N7=lBeygr2xPF} z4vm{I>Gl^EgtzLneRu2Guo?hcr_XV~Ui$XiAbBck!=X8~g>C3*jj>qv?!XC08b(i8 zN0_wLIADf*ZN7piZpHrQgM>zc<%rzDED%gumi+&oL41O=ET)p6gkNw;ZfphYTU-EvA1c*dLfp<9tI?W_F zl?RZEe?wZP&2hnA^w!(S&@=ppIYKMKZgGzbs`ADX^18h5JB^_J!)Vte*0|@0Bl9}gc9|O;$f8PT;NIXF^ynidXHo%15sGl z5hUuM7(Os7_^0b$56^KGQxq?gclBg-`Gn7tawzjT)psZ~_-=`8M3iE-@C3zUmHD(V z%SpXMi8rPuqxI;Ln>w5I=)pzkJMEZ5x4h~#1%W`(AXMZMhs8CaFj_=@ z+QdNwsr@uko`UlhO>Xk+8dyu-UWBp-iKJZ>iN%o$-3|>2#&j^%oH8U42WHZ5YUX(OsSdh0egwsF# z@dFM!(mTaR?z{W`n{GhBTuWy|=fpLuR#vN3rc0HyHjNnq4i2LN0Nv~qNjZVwIUI9l zm4AZoxKoG$Zb?u}Pmsk+Rjl6jsLVFCxx+etZn%QVN<(3_M0WN6VZbh$w>{8jJz|rV zv{2!;e-KjDcl1CK8nf+Mwc0*rEL8@nHdrh5jo)durv#0NU7I#6eDS%cD~h2*EfR?# z1Q3Bom43)r@k0hg=(E4;=bA<}jGDM=<;rTcsw;{pJx?V=9Y%@hUdDU0Z3Us@t?pp+ zsaG)oGp!9R%7%47p=i>gKz*K3pIIKt5-4OIe8Zt(XBi4iOf2q(R-7t_qNIelz6lGG zU}2=~qF|nUUrBP2AMytzGrB^Ff-iL)$_P)R$uAC|TB&x78OtjraLU1myD#Vve=$yEERS+jB{`p92*aW(CzMe%ZUn_A+5e1j(nC6?O zEf^{cMz%SzT40!JT0#xIc6-clz44W!k|fH*a`4Yg!%+lOF)F`q?i!R z{Oyhe%!V~~CU{a9@~cw43b zNt>^X?qTYOSG%g2)deBR6);?a1|ffnZlI}nl6OGkqa#uuhVy)-a?-WXF=oLOC>!5S zd#Nx1RZ3L0$apC2S%F!OyuNUm;C5g*EduaVj6%aB888e0MHDzONThWG(V&0TN@eu8 zah39bQyEOCxKs?-GQMUSFiqxK#r##a>Lh;%vJ#g-6uU&gkBVn(Zj`1(g1m zDE^@z#w6()qR(z6Ar+vcjeWS7Yl7&0MrCos=hF|ap&AtM9eNPRu=Xi?(E?Iv9O&yW z4U|~NMDLzH|G?eh3l2E?L?yQaL0FK4SwbHEko^5HCW1y3MsLD~(US%S2KxK@tNwtMhj?=?vB!6}V(Oy-1wG`N`NQpEq4`U0+dB@g}^esSH7 z!DAmV`ApIl78f!tk5`PX7S!u{05J~!IVom2~ZDCt0*liTXC6Olg zH9pVbnR5_Ag!rpqM;qwxD-8_T9TQ2ElJt4a!U7OOQ1qaMzwv0!z{BS;c<}vNJuuqx zK1rcdh?7dG99$UEl1514N>kk}6O@mHMBxV{kEsnH2VP%M#OE#&0r{H$7`}{yCiqbO zJD_F-Qhb(HpA%5HuDlJR9wF(Z=$i1f3<<0Rna}(mH3qcpQ)d#giZBOIol^4F$a(oBgu@@QfgGvAZBe)) z;z3XgqDO4|K*8YxfC%i)Ndp6=f&M-jHuNJE$#iEiYN^p8eo4ttRB9PcWQJw5*PZIS z1*uy+Y}<&TYzo0u*8DGOxF%mL`Q$O`Em5}16H8%@^%04=s3g&mc&$Pia}0OA1QBTh zAgu5CGOZ4ZeNQ^XLV6=5Zd3qtK#RZe@J2CUnhaqpj-p`VN+v^EU)P~%xDQUey)0BH zNV?}as%0?D$AUCVFis_@9~SB0i);XMsZIdU*VjKVFwj1Ba>Av8_}m(Xcx3n&F~EpL zFeU=)DAXc~UPJ z>Fs3hx^DYc@-P~u+IFFCjKiGbQe8Jfi{7Hdjq=0vi14~8?T%ex^1Bm%f+4Xp|Q?8tUD62-enW$~PECX#s|krf-YAiwp@f)$vSY z#=k?l7Ypr!@J5g+&KYjRyLPvZUs5zc_G0se1SA@Sj+7E~Q3Q=i!l~oE0sSJ>gEgd% z&3ZrCvUv+@Xof`PIaZcGTlrH-q0m~qW zLEl3PM+txHKlFd5k69n2kc`R3mvpFXBi!f^niP;J)a|#Zt;e#p8;5(}RbV~-=R&BC zM&NwRc`;E!ZWjC6vSo`^Y{o)!wCjjoZ|Uq{E8=38Dzdv5W5A6O47)+en-5p(C5G@&2_28OG!_o_Q8>wweoQ(zVkv_ zFE9DZ5QYCoV9tsY_C)Dni+wbe4w5Y;qy$V^E=A)zGGrt>P@U)yWsb4KtZ+y0Q0aKS z+A@)^2*&*UNVkiC8lpgTj@96rq@e^UX!4d#TMCUWg~n!3Bsd_=4wOQo7i!iW3AnOy zZjrRM!VC*2r~zs!K-h$c@%eU9k;56AY}Ts?zg zsbd0WY79qdKOZ4jb$AQ~(@27pE>H}BQvQb-w>Z-MH}*da5`H8@7EP%HJ1{o|wP^`u z-tG)&2}yxdGHwbYGNF`2`xlOcD~NTcmD?1oCT##A0g^@lfZm=S*Kw_uQ2+q7$}^8X z=)IO%)-HSRFDms28=N1Rg&{S8`zAo$2r4Bo-!|HD+@78up(kc$JqKkRT`i{l0?{! zB8^%#QA6dr>Oyn8?@98?r(x7)l!b{rq_{BLx;=JQNaosuV%Lgf4Rn&O6%LuIZ0e|H ziJ`-+pAAj$gn3Rf7{XF4El^G~>!C=6KvQ7o-ku)EaqO1Sa*+rMxl+1xT!e|_r!op< z5gAA11LoVtxUSpN-J@|_B4HA6*yyu1w=_RHnAVp{X}(cHKWo@eASq9p@f`y87}hNq zYlWCEhUT#nOPP96B{Da&hf}xHHiiIbh&Kun@#rDoE!kJOE=VE(@`%QSAa!IF#`I92 zrEQev(TF`a$p=BjS2ej`)7R7ExQ^X2n#`YHo)jUH2d)Cvaxi)<`>gt@cu?P4Eu&r6 z>Gk3y5k)sK7S<6IiXv%2e@ch`vlMG1H3B+h_$@nQ+8i%a=TG&>Yn%`*JVXL$gBab= z>@gXIJ zDyW2v>yoyNGp@UM-%q(CA=_2QYb1TDO5Hu(j^j49kBzS?@sB8LI{=s9w?q~8P(m@rB*GN997X+1H^|{wAeJLK0iaNAyb=*+ZrsZV_!{1a5Dn~BM@4l zo4*@>GprN-7yMlKAH@Etz`7W#(=cFJ3xiLf zon)xLLd&KIFr58b=&;qD@*0A&)Q>dFnBF= z<1yNW1Ym{Y=p=}PUqKa-ZyD9y-6e2slQcKHX|(>-XSKoknNwx=WzPT~syIVqr?GJ|Q_%yw8iX@iH#k-_ZZW4cccUQO7+zIiytN1ZVs)eJ#s&RfJP#6#Z0AMwD zc6W6{RN?zJh4C>W35)tq`^vypPH$rk=?|0ojhcp{#081ktx8FQ^6)|MfEgZu^i`_= zj1ihf2~L}sHGs*TCsbQm^$gHZVh2uA06+ySjbqZiWF$z=O38e!j?@}bBVZ($n zhPKheFw$~TBq(60$$dgOfrh_ z#L&~$KOjWP&yuW0bP^FqUA*!biE}I3?P#j<6f}7H&bx-cTJZ7<0ALlGST5h!*QY|t z2F*hhG{7UxeTq5yL|7Z?=D=l0CR(LruuwLbDTEfmh_MnU9EA#1Ur9f4fJvEcf}2wv z1^Up0{Y|b#$u38A9lYL*e@Mq3{?QT#J5YQ8vOO1-VA3mfn8l#qj4-cia_BUJ;~iwFM4ZJ~T;D7y+a( zPWJYNJwJk&lB-;wyiOG3ND<25C;kwlYf>J4CN7*^Li0TArNG* zi4~fdo$u@Giv>UoUrF)oKJ)WHhAT}&e3DYFaFbR88n&i--QUz;nECA##XXe%C6)$h z=|zGjoVvJ4b6{o0M3d^6>aX~(l5=j%fV&LyP@wCYX%Dq6y;F5tHtDWtN)tdczwgzv znqsW(B$PCdLOiX*dOo#wG^C!$EC>sc;6+a&S{#kHVf+U6_w|h$JsJy*R4I`>?=2c) z%U)gr4H~5n6TT{_Ya=HT%r~%HzQ4Cmmb_4uijr%ebUts!%Z}2>zj_A+Q$953;wAxU z1ymTi%bm82NID#XNt0HR_C?^Lt}JDJlX6ygFkA45KXkpl zeWOQ@wu?Am0NJ(=joM0jL71678)>DAW0bm>y_A6ClWF zsVp9y4$Kh{112F|2mml?hiT!97QXfh0OlH70AQfMUp<6L)I=y!NViT>pDe?NAfeeM zXNV|2f8s?WGzSt?pBqGdW~qycinDE9VQ9o~21@&8kX^6pzJ6uC6&c>pz^5G)}|q>)RBgyhp#am_&CQ6qY20hTv%+O>cFBm zUJYL`Zpsef2n~tW2hvoXtj;WYY6+l*_a9q|lax^2rcQOd`++to3deXPn$jE7S44CR z5w*#UHd&6ty_lGIq8TyK#>vogL31`(_ma<;Zf1YDaoc0HG^7^~Um>KfUI>m5a!n&4 zoSncGF!eE6MOK>QTrBN(#^Zm35`uqEVfHgF`)sjCXj-;7VlhkSijUoNM z=Cip2J{SR@U5w(Sq%4H`vK}%tA2k^$N#{%NT&N7}x(Ve>aR>_)LF25di>|8g90|ZR z_qZ)MVgbRlz=<+E%km;e!(u1WTm&_{AzkemN6ZyR(RvR>DTmV3dqd-+n98HHW04tH zpzNalD9(f>KsyL(=@sX^kj@Ctv@jArAtjnLpjdK}TA#%LE+rxgPlV8=p*YXV3tU#Q zxmJ-HbwXVjLIM;SiG)BcVIZ0rvyvhp;gMwxEksZn7ytpnj$?@FE_2aMLNo%hDVJSF zyft_wC6yLr01(me8YOm#!{?MSG>Na{Dkm+Lplb*FWuRzi8wu6(>y&#M;A=$sH&bGI zi6Bao8_z=(g|4T+0gC%2WeanpUst-5K!s`=Jn58pUI>}4O_sZc^_Ff!)~41zmgytV zT3%$j6J7@39MfP5nZ)PC$zoGW-{1i1SY=3wZTOH{ixRn3-lhozQI5#mPHKHel;Myc z9Z`3QgmVee%7|l)Qfx*kfs3LtA!4YI6f9-+P%;u!>EU zN+oO>P<&@oVOuc@MPPkMenvGv)|)iOertNR!rL6rgiVu%7<>B3%)Lwz>`1Y-HK^yr zKe6yQNVUtmiwl-;qo97;b)t$(GM{c}TR?pOKm#5{KnZWrQHi#HWn0fHD8n}(3eF37 z;;>+zEI_y!lT62VBF2t&KCs6U$HOBAu8@2p1uY4Z z!?ajkT7~9Hxk8*`LLgEi&$ksI{0=NXG6RCqHbYs@K1wddIEX4CTE8+#1>OM6-1B<7 z8?r*0>GRi34Z{p5wc#~tV-a=nmeNxCWV#X=gh1X6&68LN7M-3c`2(f}F`|)Z5yVg` zk-tZ#2Pw51C%*tq^90e7pjdxAVws_cn-P^O6|2xpupyem3*AP-<3w3Gg~Py{q6a-Z zW$r)AAn0=d5V0ViG&~DL@l1^%5s(vJ6Nvo{V6LMZ64AFl1KK_6dKJRo!K@kB5PHX{fkb=+xxCJ~?rElMr9R1?+}rw4aa=9y z^&vy41-hyTl9&WpC@AU*PxOZsazg(>i}`~S3KK)9ky)ffJ}hNfH6(9+Vwp@tbxKr+ z2f%Pv7i76n5>SsyrNWBM(6d1WUHsxUtjUANEErY}^Gen5OAd5?Qd(%LR4SZvh&A>o z%jeNGN=V&^zzh(Z8cbPMo)WLc#Q;7dF-oU2cTlOi#1Wc+gIDJkO@<0^*ovGq6j_!+%Y;yF zHQH)+7VsxXhW`}DMbvYmG+|5`*A3*G!%a$%r;z@Y+<&4C2|3Al_!^ zX=F@h(s$JQA=)9l9t}OpEXphjnyX*{@;^nM17$AM)yf{DKrg)$%@7VM+qKY7)G}g4 zZWERUO05kIKtQ!>xTQ6>wuhZR0v`|vyaxTuMon`GQM7%as4qzXR=%OXG!U@OPy;uS zR7-1WLFbR=>>gFe+4y%on zmgUmgd%YJY1)RqJK&Wbcc(pzc?j2&-M-Q!O1e9UQL9v1qZl;L=pF2XXA!s0^v<*_ zPf>gZ!xEr`szF-W#!Zlh)OXi2vxX{lMG|2VNeYb^>-qtuC?zSSF3DjiWN(T(WI&)9 zg7;N)LOe2jo*}l_eUhl4NJAtO3d2K5r4DFS!Z5|*3Sj7s6I0f$|0n8l3cd8famg<=yxFX5<^+@zPS8wfN85u|>br3XwZQWo8Q z5)(K|e1IwI5XDG-VQTFpW~5|zi)=%$&4v>eP&P6)5z6Gmkw>?*bc{M#NjQ{0GW4Sf zt0{rJufSs2`w03Z5@Xn$kRyr+ZgLtr^z@4ol9FWno@Ba-TIl;BUZ)JIZTKqVu;e&3 zw3`5c2`|bQi;^8c5HYyNp9!fj7-k&OU@i$IsL$;4;v}L>z#*mJHY#$UwpbN*Zyk$B z8eda1oS}_KW|M%JK#Hc56xUx&Q#D2d#g8(FWmC!>A0kkZm+adyWeZi=Mj}bRR=l2%OxbQ= zy-yjLfpk$xU7T1{kPGjJPR+rVCXsFGd zpy9&SL-UjL>_q4*dv9nc=sy|LT`+()tC5v))FfrDvVqM>c6iB(X*WR@_Fs3GIj9Bgh9;982f@DvzBNxBzNu}Qjd z2R*Gmmv{OGiP8mm$-G1bG2&%#f8PIx1cry?l#>In4xX0>sywdEqEgQ+U$#P#(;kpp=T zLM2}{uHKfN6|!ph8wQ3 zWz9s(k(4V)Tzgkj&uVd!digYwtjy%%*RPYLW~m- zPzR>VDZDB`U?^cx=hzV+Z9MhrfJVK_~+Ckxch>%5+5E=s|G4(f6F;q5?5oz#7k^DdE) znwBoe#aWb1V$63gf?6y)NKZ*^^OBB=MM#>0PnfUvZldS|W97US9mS4CnJ==!45bug z#n5vhRXHJP6GUSO#i%r(3`G;^V;`v_9QB6Qa39GYx+&>gqy4~RE}{lMM^(pB74c8y zi=$jtnFuXeyqMpehe}=ync<%#@HGmRCW&~H8M1N1z`C=!A!gC0VY}fa+*tpukl!fT zz^ddjFHTaZAc2uVwJ&-UhFKD(tue$MLIxbj{45H!C=ih4l+A#Wz&oK8C7-!Ufzf)D z)pOa0&i@@ok(I@zEg`Qn-uLX$Hd$>lGt{c%0qOT8!>_b)zdo{#0e9X zQR^)V3DUzrh6aU^QboqAuAkOS3x-f zC5DnE6d?Ce`_)(5P}-;l2@a84ZhTHLL-B%)MW?8Br64`id^`9fWr@X9|C4KiO=)-^ zDx0!&e9KX%NDSK9B(n;{i7G@*OwziA=&;!&!~!$nI^t)@S$-4aV6{SS44jjr2 zmNRxmVLTDA1|!oD1d@Y9co_QDLuplq7|Mpf?6>cpxLpGX)^}ZW1sx3yfJokpD04$% zL~cRcP$~Y5Di58eV;Mmes164R2SME=fWjP)rV(RQX+%qsf+G|SfP!)0AUh3M&QZxh zl4KSMvKS#VD9k65YEDX&F_sh0^v6|zi&b?}$@t5>qA*4=h8WL6%CR!eMM&5n#@f+X z?@E)0VCo8kF)jneW>+LSeIyi4GCv9xn?;?Xqym#;>X=tTCO5K&f)vu1*o#O2`_*4z z8m}wiMy1GttN5jXr9xTqG?P~IP!Yp-#v>Pjl9Lqk%qGPNXTkp?QF?+|GJTJv2PZ&z z1C@<114HpaC%L2}`EL1f5|j5p!2&Ztt4XsmM4#<qsYlH zijuMlO8^R!!P+$xt` z)_s?h>&XFOq^VDsS=}d0u0@NlDA~c7>;|gaSOPf=QyLTXz$}<0WzGPK)Q56vM{Q{2 zZxMkc*q$-PCPVf|**@JnWkfk-_*=2%!7TSt9GNlXWhCuZL`j81+DD7FmS}8@hW0!G~xLY)_z zWZXH6xHc)u1E~V|dbJlFFhP1^N?o6wQlIP$7D94fC`@;g4q=rubIphL^Hj~$qkum9 z!bc=ge8U(>VlILJoP??;7*F-9RxWX^VizPE_n9QkXG(uKDJj!J*{m}4z6uuRpwN7E zCy(_96u|{8(m>6KLdWi+q@Z2zIE(Vo%Qh__v@e5Fo&@BZ1i4yCgasv-G~|H_ACqJ% zk9V zHfzyP+Sh&AhrHioBBTi0pdnmuk&_12QdX=vtQPk!z~xACUx)Cq1{2WVMAP2@pl>3o+?2 zAX(NT!GVZ0WwRu+r%-+4MX6ZPOT^p|{3MDLhY{r^Ecz{@{OCm6uF%vA+_*_HtQFde zh-A<}@dzE_PCx*m31Qrz&m4Y48aswm>?lEre5NBka#TzV0Yr<&kaz9xcCzeeh?O8F zbBa(fgor9Kt=a;{1>huSY#~QCZyNeRS4u$>M(``4f%A@ocXbA#1Y;*LC(-bPNUfAX z<3eP_A;?g;L!y)+#YBe*Q!Uu*yr)?&9~wt+x0#}C+9K1)(9jSbgm;X(XuxOcy=K`- zg|bdLh5HBAk$R`JH9ksjA)V0@na9V~x&zJ5y@C$_FP==pT`j(_bPNK}A3cQdogBMfA!$6QB$m&6;71b$J zB#0Q$q+3IJ6fMDMOVIVJgBztR|9TbG%{wv0nQZdSq#+0yh3GSa&eN?PRA=P+Zv@60 zs73X;=E)~A6vbp11ULPJbPb&$AIb!Pav%);o1AzAm@=8nO_j5v^c+SKBbDWJ#fc`$ zfN5xuEK&W-!`)bNy>n&ZFBV5^yEO@x&)Ls$2@Wvxi)ZP>@?~;`v`R< zN~&WL&}Y(mc|eA$Bz2XR)P;f`!eYQuk4nU%FL7qk926Wt_|Z|DkAvPXO( zHk6deXtzpCL~JA~PJL?uwL`L@hJ>$(6bhxG#(7Eb#}mYyC2&=$S0KhSC&8M{ll1_Z z9V(q30+21Ii5Q!#H4a_K)dNO!5E4xY!-7B_35r7@vYDd<=Obp%Jqb-qhxAyZBsvm{ zsb~zy+HMAjLu@oW!Ghs!pYJ$$H$0eA%2u@AdvP__w9iWQU&y43N@-dC&_K-W8(91e zLgtAt53HA`)_6fsuT1 zA!GPvr8b6y<~t2Z!sR$zZD(fn`JT z1}rQWL8w&n$s;eGD+FK<^=MzCx5z@(La} z8UZ)sl0eh^Gl68~iZMK!w+96?$D^~m~7WWkz$W1XuQecD*IU_z|CM# zc@hx=jCJX}43V{3EiJ62fWv^v2)20fqL*K~ z`Ros!eAwZKO&C9R<*GFcUw+}C>wnpi!#&0qr;KUH+g4?ua?Q)to~mOrAV40(S%&Cv zZXpr?V+h32D~^TP6|JtX>8l}+V~TugOX1nIJv)tR+-IC^Ay^gy0Ozo705+Ckz@hHJ z8t3G4s)FTIDpl8Y0d2(g#$3U+AZHUnZ>d(QRLiw00kaVE`C^S=OJBLKQsZLsh9G<4 zC3a)TFj*x#-jj$ZQ`D(Y@(xu-OI!;vCWHJ$F-9E* zQE(|jSV?hMiV>oOL)jo;)O9lKi6Xy6|M3$Is-h1dFjM@0N-}#$BJCu?>Afk*IuN|* z`o>la0Ww3Go;0IJx{n;Amc(xyq<{?>60v$A!~~YO$;+<>NL=vqvdpsAR=KNUX^+E9GZ8RO+@jVrM0qZ+_^tipM z!fAwM#Kp-mp5m*Slq?%38kAGS!$pj-?-lZ$35Fv%jAE>Fm0F+&oX8fL<;?c<5A|ZfQ?^RIk$x!YlMDkeapS?mHiDcMxZgr|wqRE*sWk)lnvP4lk z-z@!=KvXtvwdt_6QGa77`q0Bh4YcU<%$*KA@Q||_n%cuu-+MM)PHQ)AnE&h@#~pXT z9&`2>J9aDpv+bPK)WV6l%lk{UQaPV*wyFdJjspNL5A7`g0Xb2Q1p*8JoQU~sG4PpV zz{DnUM6%U2kT}tn{>teyn^yI53vqmtuhYOe5y6HMc2%&aTf0^u;Ez`s@EH3;gqvZgU;1udivI_x~is{GME{ny)yR7iIC z%jZ>7bho5|NdK4u4NIT{ik2NAFdxFlK^ChrUERlvy)*7k|4#P z-{WXV$cT1URe_8kLg}PBS3B2@+ZC<(znLx%4W1s(pVr<_G6qZ%fe&*B1B^sJs^e@3 zG{k2gjb>5&)Ya0a<`Nj6og& z1JFW5L>oQcD0(POcwSz>$suweA9qG#NG9Hn=8#$N#(w7+d!#xjdFJZ70MK<=S7&L;GtlHB5763;F95KZ5uYZF-r#J zZbA*_u4nA&CP4KKVUonOArhh>qO8d5fZUPDEs*J<*y}gogF* zdiApUP z1Wz0>M)gtLP91t(*vGn)A&PT1LB|`)p2unkh!ic9p-6@N|6kiN#|Fh@Q2G`1=H?FA zv+9P>Foa*DRmV9o#()TrQQWS1TO)fT^yOl4Yi_?PcC$h*?W%OfB(IvPMun8Y^+r(oOm7qth__jvSXEdDsE$LML)P+2IvzK zhy@uYL$DZDT_R2lLrN_N2&vFQ-pH6&Dx0LPTXN8tV_k#Qra~@nVK`CRSB0$=EW6ZK z0{Jxy25lgrfB-5+o_As*O0w9q8Lz3MrC~TJQm|B^Z17=U6lu#bC|Q!~ z7vW~%d(ufIMJG-AUy-N*jY)8`0KH39H%9K`f?2MFat9Ypp=yWTRS^bFC=Bd~C<-E` z=BXhlOfdoIxO6n?ur<`RjEQtHhtwT9nNC5&*})RJVKkJDXuBCSzr$a3iBCcnIA_G* z>6G5ikp3*ykqeRB(MVltf)i;9eq=(Q1K^Rl$OsXEA#mhCRyfPSUCXvCk8sD`aA=!+ zsvKCM5gg|>lI7dCQl2q~$O^i4HljlS9wi!m2Uh}5NkhWmiHIROexSe{0t=!BLvPR% zfC0JaPhSV0#zM3JU7!G=_R$+}zoo!hmU);s`Ds2w$P$oc2 zyP`g&Hes5i30krB7Ine}Tui7ZXP&U&`5Cvjb@{P;ri;j@UlwSiex3I(=rvb&k^D^fShGZU^FNRC&iyg z(v-m@U0X%ITzziUA7LbUlx>yjdywy7@}(qQl&J@oI3I)IdZ1xtOv+|q?y%K|z`P4V zT-*kS+KwMKHi;Gee;xWP$Vj4?MENP2m#29{TnLPa0dPVZ-^O>}ZQ_eBuh?Pg=+~F@ zJ1&dpQwT)duWke6MXhm__)f+uT9`DF6k^1-UaYRC(EAuwg>(I0-fzz$fcDxe{zr{C zxd;$qNQrJn=?H09sZ%(VO;N*=m?*O0Ylj6NwrbOZo2dg^gych|Sx+FYx+v*(OixNwV=XRgC*RmZLMb+3JT z+(bO)m_v8jb=NUt$K-7rh$BD^Eo64jz+i8#HrUeO)ZCrNEt!NbQahL&x& zcXpy}`-v^0C?jb_$N{jxk~!%AM$TC*)Y)ux zRd_KsXt(fCGJ%LH{e63kw_5X%BXSusmyd73K?jNj%eMGH#R9MxYvw%zrJ4iGW&{ke zDW3y?p23PTi$MqpavT)zWb5WC1-cs`rZ8mHccVtB1{2<=FqZ|g2&%^w4yAy72b3m9(BT!~}6=Pl$c2=*3Q7^dm zE`TWMMiKo{<&u;3rq<^gq1thv#;+opaf$&2@1o3?i4U2uiffB&MpxExW8mv}gr4&RkOy)Y*4&`C z7Z%wH?Jn_oPH>M#6*&s9aioyq7l3NwESr|}>(j}--6PILF;H440eVhdkfcYn<>Xyy z(CW61?6V8Qe9GdYsHmT3!GyX%15TUoKbm9Sh{Yxp5I8xhBGmKr(O|R_H=c_Vkxcqh zWcJ|24BX~aEX7DPMMDmfaH5c)X{tCg5dpMY?W1y|!e=Vb=|eS>in1prkWO%{NT;B1+z9Pe^5|BcM6S&&$W2BX~R3ZMl50Avu% zXOI_|y0N-A=cMP^$oQ038drOSZ{E<1$k+YH`{>aB&G~&L|#Taa!>?E~ZS2 zWZ{lbF_7ZMM(R9DrlMCdWqhZTOppm5G^EffHNd0$TZcJe{0iy=h1uymWt`^S$>zYJ z?_6r6McEx`d&1yx^qFALo+_fx3<1yzG7|19=rbSM^jlku5PdO5hX|Qv5gXq@6%M;h zY5dgL2Q;`F-*d$5g+F_WV-A2JaUf2_iLs#PZc&i*c$jLqyt!Y^6A?%7MuUT}=IOeH z5D`Z4L6Y%8=J6I7pvS`Y%XxBxkV8zc+`ypEN5BGO3JQksV8EW0=UW@xl~J6O)S+-F z_ee~+0h1QZolsm1jahA@*-5P5j!t8j^`O214zIuaG5XXK!=hA04|}+!|6k*#O{4M>geiRnAM58pdWf0F1`+G7SVwP_c^B zQq1d}(yBmNJ`PMC;3$wi0%~tcIzWPoasVF-y2?NzcC6@cQ2eyy2S?&o$KDwH(AK47 zBqGkJ2Q;F{fT{onC4z&}Nr+UP*!4mg*9D!TB4)(Y(DXaA=vC&VShNgMRtdyg)^%a3 zXb$`T>HK9HL0CME#+Qu@LQylUwOom2A0;Jv!iXU|_@}*99qz{b9qnsImAp>#= z2oabkh~aWVU@ZDTVR+!4M9%0u5n&-)4Ul$SXG3*r(dC|J;HTbn#V zDa5cWz>sboPQwFO0j$P7k3k?8$O5nc0g02pTY8>Z{$QDRV&rLhpaa3NU4J4819F`U zezT1{9wb81rWy|d3QCUQgldSydYTFb3Tl8ghx+@7#3|si=$|eEG2SJqt))MXG>r7j zY`;mmb4QRM9yIhxiA2131RfmCJh_;6L|P$wMv|rpV8$0HZEe&IO;CpZRaz8H0OFML zAR)+5#zUpqYSq<;qq=q+$b5>CK!dn0yxtWXmmi06R;#2*0yQrjl|bR2goua`m<=K# z&=l0i7zBF&ARM0?-{bZY@i+$UEA9uEghxz$jd`?`Vo}&w4aED2WLTMu?G7Re z{aQo%iRW{x*PPUHZe?$F5=nDtl-Dx3A-|iX0*DNgW_33D496is{jUx|4bsL;^VDE+ z)9YQBU8A9$h8dcal!nP=LA)u=i7nFy31z-8!YK)?zT6&So6SN*wET>Ud)BBP{f;95 zphZ9y0s|sn%*f_0-(ghkg8w<{^~LL7eEPM4{_cJEobvK3s~n!Q!E(`~jc)0}xE^tpB!~y`~oO42MTg>4O0{~_r008G4-GE@wo7LoEnNj|vS7jHRsUnZK6IzmJGD8LR1t z*n+7-(3A}n9!k`X-9nXJs?TpVvxBys-)-;HSFET4fMwI@vCX&L`TDe3V^*%}A>y^( zH3Ow(r=4)Zn@;w&YSDN)z4yTCt0;bQ1OSA;CsgarEvMyjGr}O+K;~QAo4YDzwW7WIE*m@ zL>#QS;Wm-C8B~Skfk*(mOlW*{Wv|1zJR(bq%%C1S6bTNo&m89mtDhW=mYQJX-iE+z zY=xqxaV&60)KeDpC!$vbrz?ZSadxxRumQ=^PyE0NDlH$%PJLWR@^Vz5)!?tjbvBge zCZUxopwFaL+ek?$RZUxz=3Oz%Q=cp$X<8mA!3d!=sx2LQt8R=svD*=+CT@dC#=6$Sw(}wq)f|M-2L!-?M}Vr&u0xA)&cOo8 zF(mNyq&zl<&kq)wq8x#MtRQ-F07u{zFoB~T2w!mWtp$m|*E;3Iw^n&~wdMlY=octn zfU$slLo5UYuo<|V+`xhgBMUi+A$w)zm7^OZq%B;zhphhOj8HEgPUuq~U@yTlogrck{^*ALxf-E8j zXvj=yyMiQ?A@Y-4HHe5Yj@;ix<#|Ot|3r%#q>Y4WkZ6Jww$D(2>1~9U5d2^Gij9dx zk5a4MnulEIbn2UIVCan!+M=Qd{tA+Ak>G~+gV5rfh)3fJQ3C0s96?6vH~a{A=sE}_ z@TR?3%%syLozhK+gNFxn0f88>n(qCUWUM3NNDB2RUAa&h9*6vClG%xrAvquB*NDfzR5!~wfm2CT#afo@ z&J)dbiuO?TUM|s1ivr;yASm0D6xTs7npj9}O)$E%fdh1Pl?O^tEMQ|J3=FzG1H72G zJDP2W^DSM~9Vg`H9XzusSKfKYv75K_kL%2j>TKw2-TBScZ#3BMxK0~#xvt)Fx#G4o zTFmzFWMF8O1}nv4jsfSyT+YkoT7TJUF0l3%Ht1MedmLstquTRGY)engvY?|aUua;Z zG7Szm&5gN2-r`8e0Xg;!3^q0uEQ>ftWY%D*#vN8@%vnf;Y_N*GeHG%E%e%8Cw@#VT zS}r>)*LAO6H&7`PBR;BwwYB6o^^jX(6UNy!m)32 zASNY_TG}jz!uH{iIuS9HL08F3Tl0j*^HZUlM7nq=Y(&}>t~RhuXfherY}{&?i~(6e znmU{Fb_ zsMTc%%8GD`F#@AW$L$K?={Tq>z{;X(l{!hFJCv=1C^enPXb-`#>_E*0mH={{RU%P% zAH;D^8Lcp}7^Dd>in;*`sau5Q%tCN1K#pJ|V{+&K;y@k02~iRRV7@vj zaG)Fm0*~74$2<=>wvob5$K*|e5G(*7a0qyi#9C;%02ruEbMnv?LSO*oau3_#zG0yE zQvd+85gZ}}un?o^N`HC9SL-$C)bHCo6x;m~oT=6AECnY^4`KO&Akci2DyFwapX&CF9aN1eq=ZS4xP&EPf`n;A&M`kXQ>IQi5CjVa-frDYh{QYp)Zh^>?LwK7Z0_Cu^f_rTjLwIlzx5vqobSf+;dO*)pZX%_~?r1;|dp^cj^-_F8ci+pWJtL=NCVH z%!YLo}Wx2JX1?*(2x89Y3)nX8|YR zRl4=g#}3$k&eR<`oGKBgwd?z?`SW9q48HTVlb?Qd<*%-N+~)Z0&mGoZaj&@Y?)RNA z=j0Ri%N1~-;ynBOf?Z}#-eKw}#w?czDEG%d-gVf#eRkNPvr;Ai=c(rxEnc|#)1Nu1 zI#_jT4p{c>_x=0MdtN)?sF|Pp0gb;G;jO7@jlsN`oPQlE& zsI3&sPAFhVBkD_91RbYUC)Y1VX4J00OqyGhrc60_-l4nB-o3T8)pgy~D_6bn-1E;r zGrv}=$`w3QDTYg^2 ziRSD*ciMx`55Be9-rZ^Y>DJt|nja0AC-@F2ynf|nH1xN)-T9ucw^yG8{=*xmoqo{5 zrytrl0IRmTRU(I=>JSGPh!a`^6*ojD8*J9kfic$Ez*_Ug#dRM0G?% z+K(yO2AO`T7{;bjXB9YHfu!YLjtEAhYX1_^O+;iFO~zBgHlemJJ%&kC;n=1JHYA_R zeCH5-R`h=4b5eNPL=wAO784A1BMSX!lzHU%1;q>mex-I&HA1qRm#A!N)d*F$B+1aa zG-qT0|8>rXKKIoxhrfL0@h3j^UuRL=Pey)9O?^2`>y(CHrv>=VlpS{1_rU!hec-{7 zhMhq+GpD$-mF)jOI$+j>T_=CUZ4a3!uP|A=F$Sl3_t4vVHb0 zxS_H#`g@iq$$>x^3O6(4fer-&VgNZr8?i>fJy%1|Fae1OEJRP8!X>B@S%{uG2XgY{ zL>Lk$^pvSERE72hs)##IK4)7wt6FobKt#X^B#;?_AuvR=y^tuGVIUw_SY zn>TMxI7oX(`%K~fYj6qt}6@yIwlP{2@C-NGNng`0J{aEOAoCiyn05gsk5 z(fE2ELFq*h2uufwTL5R2rBzd0cWmp`I=mLz-ex2?CGxzR(L*FC|7FLnjd^TsD=P)R%@jG5yVNR6g4uyOeUpE zrF&rz8pT*z5#_6D{Eapk62Sz+^RA7DF$qo7XTYegrYSq@aNfli9Ce%~POe|K?zg|Z z@=w>@pd3dt7f*?3Q-&ozQiv^PK%W7isk!;5zxh>ioV?@K+kW<=`r_p9LsBLuZ7C=q zr2+GV*|2*Aop6=Dbg9GaFovj-P=^s@n5;?Lj-@dm(nRI4W2bEygvpbd_u6grs#X16 zn|o*PKK`)>7X0g>$E}9ai6VpX(4|%a zJCD6xkuk*wKKjwh$G(dIEtho__nm>cOaJ})%HH1IgAP0(XWN{JA#z`x5;^(ID~koz zr9lqq8I7=5zREdyzSKnIrJ64HIk*;jcHF=ib81~U>Zfg&y|C%9an37CcKOOF3!i^v z<3`uZzg!M3Ct^TQL)Wfxv=}1*#yPW@?eN)?inAx?`YZ0kZwoM$+P-43F&-W47Z<%k zq1hA~l!)UGXjo?kh*H*<&{TUmiUh`%4+_Y$W(X~UXF;-ujZO+9-A)b4EPjFr`;`vi zVas-gGzb+q2{pkTRhjCLvf^uWs8=?egG5AK35?kjVo3@=b_X<$b8!e*AM=nBwmGGc z*UkdPf!6q01wTLTl#|5YA9%>Y<0nj5ziyrSIZd+VaoAX2@Kd&_%ErdYhpgSb|%CIV48lNprX!{DS0xF@YR21{y)0n>yKu0E|QAqUGHV z3nTp`?wt&gM?K@jfq)AW?uf_<0;4gq1*~1}v4UV6Yd@VV|}}Crq61rLTYGBOm|RH@@=q`|iG1`I+>EjRA9&)(YiHZ(MR?n_@d^svMJ>(n#) z2l}%;CJ}!El%ZAgjz^K5I*4p|)b50dB0obF!#D2AscAEgT!a~pNjs%M?Uc9)Wvrw! z4Swncue}zUt@alpTV_z^<4E!w#}KntehV>@awy*%CZH53Y>1{SK{kbF<8cCy|u#7T#UjrJr)UGo=>ZGGThqP+lK5kraC!BoZ&#wGM zb4#-+T3-629~^niQRja0vwd0g)(k>VIGkr#ciQ0!!ps*}b7Ri7 zr%xSs%E|9}>9zF_JhQxSfLv~K&JY*_3tdjG%ejka5pt#2bfFk=or7!bqe5~%kw9b+ zB`_#5tM(O90t7?k*$E*S6TJ`=xE7PQO-u$Qg{eKgNI`fm$DMTIkAL}dQ=A+>VZsGJ z{J~*I9rfkUd@im_IW(4Ta(x?bX5)|qgoj_&H8eJU;KLs}?8qbDfAVQToZJRqsKHC* zZw#}4X+?)rdy@G=QR-f8s`thD^Sk?&9DmaOd(4@$Y5m4;ed~X2z3uji6DC-U`2vg_a<&bKcFrc^z>qt< zN}QGX=DsTTRV|?*SLWR%XrhLLN@RU0*Kooe_g;M24=(-O=g#fv?OnTe?I8yr^3*d= zA3ks1$tRuot?!)I)6;{9d+oLNxN&12dgvhlC>D!f`1}{H{PmUPa{1U}kA436=ZVuN zKk$HN>f1Y#adt%;KZL3KNofO&0rtIBlxHlNeU6?H_DDiogGf!L87Jg$@u2 zw-04(3{kf3mhTIOL?#mLn@FzGv&$=EeRSjz!+bT%gObo^sd8hM)ilX&n8!tDJ}^M^HdkCaM8)Am%ab5FN5C1{QZMMDFbhz!{>2m;>@gix_|vkgpkHh4J7F zxXT%YPFMjTWHDd>oCk`};B&6Qw-)qerGY&1BKZ`?Ah3IcX7t<$N#fi^rUm{w^uu=K z6C*^R2yP~wgt2~*i~yOe_at=vQBbIg=ko*_0qFSZqB?9(^qIHt6m3|)VZ-|M-uISm zPnbBNv$NCtXM0Ec@BVPzH@@=q8~^lI<**YcP5j&Kw~U`KKK#j>3*KC~;7x|O(=NO0 zy8Eu)52wwTe)DaAKlzvwH*VM^=AR?#18#&ey+LZ|z9r&ATug>Li z{(9m3#phpGzI0h*Q`4S%?KyeM6z}Ip9)09*uD$9bXPuL{hV^at5pE`79L%r#uf$)x zbn%jfZ@w9^hjsIg_RoEgOj}0O;$bO&coU0tXiu&lj;gz$Z^( zot>1oIdIn1gR55Ys>4T*wL3>ywF+(CQ0du9c7ZpyS_}!%{oCDYhy#Qjri|U%TUxwi zLk_K7r#Bq1_YSMq_vUK@mgRiq^Cu4U)(SRnZ*R27Emj6u-{zL4{JMu8di#}Ea*fQL zxYMSda*LaL?y1-39ku7z&pq{XAFD20yy2I>z5lsaH+oM#LqI^rAje?(r1q@;_`aR=_R+k!Wjzwp}HKmPHdPk-Xb^S^w2 z|Df~OGjCt=qdV7ab{H_mkog=gW}$`P6mphR0l)JVr1(<%O%}}u8FW#Fp>hVXFL5y)AAr1!Yf6#%yxaKM`PQLW~3oDi_Z)|Fu zGk5N!fT?i!(MSH`w^x1Q>~k_@s+o(mjM(vZ5F}f=c*$FDE)4JE_zC0Z3UTt%D}MCx z51zA4%h$xutI^XX$Rtvcd}BhdpnC5Y)qhJ!Db#|mTs}8@?wmP$&7Cr3Vnai|*wAR_ z^2A*LWXwW_wOVycSNF1IOJBS5mN8u$cPZdx+iqpN7z{WN01sGMUek#aaR3hBdZjoA zL|npH&a$3*e8sdKnmQ(Qy!QOkfh`+Wu9#n~t>1n3U0PdOs^!5#zCfHT#u!5)U_uco&Pkrj9n{RsR$tOPYk&ixb|NVy_c34kO&ofUw_0-eP{Q5Un9(UaF z%a<=-^!D4_b^iUzD~lH`>g(^HK7GcXd!1G5{(`-WTX~y-0}OKn6&_53pz9KX>pJC% z!-+WanuLS^HnJ6)Tm;A$n2<7hvm#WVTP`MSyd(=9$-z`!>>*Ll%o@}F9i*%|gO;i- zo>fd6S;j<3LCgZ%?Fdkf=jsNx0b4|$<8%i>Sq39pa0C!F`9$gG;3WLZ;g6CE^;NVf zLBxGlxm?lpLg6#TTLKxh;z6q+PH~-&WTFRZD{Yf(gJSHFZrXeN$-XMn8?U{#bkX8d z-*+YeoOb4!*Zt;dOqr-2?iY96oB#NyZMn^%&i)j$$v4SOM#Tj-R2z$1bAr^Lku`J$ z@H$AQ!ZoglSyHx;gWB%HP+P(yi_0jbf|xuNJ7yNg?BybZnhQkS<>a~uRw17+G!_BK zb!hC^FhArT`4r(o4AtT~)JoCBf*IgDIM z0X?;4;(;xSXW)r80wUxXGEb>FU|2+*I`Sc!BD2ceq0ny&0nqn5X9NtfN}M6)h&Xzl zgv5yhW1M^7HZku!xPNIp#SbqMF+?CJlV{{YVz@#;2=*yY6xw3wNt<$k5{w8oV9gJo z7?F%2!j*!vMvFzO6Uo;*#Q;}MNEob1ku4INI}q`)6BQwc zl14`>R^Ip8^`xL_dx0~Zhpks|6rz$ZZ$0SIg)&$N(}FKR>~ zBuoeZHUUGZ6?53uVdtlGd z)3?Zu-kj^*nMK8P*{` z;33|GI@D;G$?b^b*OBPUnms9SAQpu@STmY<9pnDSl zk(JjhD3`FWzwB0=d@jc<-kP&N^UuRta-W zgfzbXDKD&PK4Tb!#^6zwfU7CFk;= z-?6!e{o~Q4PrS5pw^=PmA2jFaBpUL{6B8H<&gKh=iv7o1OV@S?|VP>=}%pJ$;JC0aL_lu z^^IR&`Rkff+jZC7uDtSB)2GiU4GdJug9jXV;5~QWz5DFhxm=Dh>+|P+{%im9wcTdV zo;!EXu@fdNd~?Cdl`F2k`ZtJF3E-_ZLkce!=_GWvh zaRtj#S|X^n=LiYO8`!Sz0Th@(7&9CVYuxakKIJ+CFhmd!+TsH$c%rC>AQ^E*NW|I2 zF-q;PBATX8#E?X^#WY-dC_C1ULb(MQqSBGZooJ#I|0dW+2ty52h)l55-e}9e3V&?*sPl?CjjMapMz@JnE4Uk2vNS@3$+L zFJH1~k#gahnw$1J@PH}PrZu-TcXxHawP3-kFTUiut{L+n6T+gKTop_tNmxJ9ZY97m zia3n+^$8tJOj@;6PmVui5P8UDo`^mxyu0=t<~5AjwN|d6>$nU#x!yx++qve^9n7`| zy1E!~PB>=#n8D=(7J0;Fi#%;g;uZpOZgZC*x1fqpve2~{6!MU_XrSblt2H3vSRf+C z00BmR2fs1^#sUHx0suHZf&m4_7(kWC1y8q*ECvOJh|ur49R1+s>2-1rzY0F1nK!-;d|yB87*{L^cGDo(`xp>KcBA>ahem##(x@&%W3y8(skzrF)nWw0Cbe- zNUuymMJUCcn=~r;lz^*HBomJm@7)Qd5dzQ~uf6f*bHDiJ8wXdP@B1Z-m%R7HQ@gfyi3fb~`4>(<;gmc6dDjlprUAf_#~k&ZLl1uX ziKo2Z?swq+p+4X*fAWi!D_4RbW4~&}${$>C$<;Uf4gl<&z2AWc+<(u#L+dsv?jq*7 zaQ~K(0y;~^B#1+fKA6@tNSIK<^dk*{PoNAu#ZLsxzXik3$xL!d!tk}Y^-#%6nkiBb z*YQl6Ln<^N5qXU%^rz7TbTZHo5Bg{kXd7bAVLIsH1s=cHKUjbP5?CA%kSq?i2ktUX zj6$U}4?{&n0uF?X7@-TmeVRz9Sg(RoMBs1>9H zKg>%KBJyNlj1GlLgE&wMjOk@1*S{bC)F;P{ALo64_w9Fn_7k5`KGN;C-nMS-x?AtQ z&HMKkzxw46fTl=|5O&;o$2oiMIey}JB3QLzIDFKY(LG(=k39T{H$g(WwnpE+a3%ozcp zPpy4s{_56_ z!mQnP%;$ll<$3sVM06Q3>?y(hPc1L?*XGRL@xTLjdGLW}UDs`CY-AP|5E`2cJ&XG1 z?9%So`6pjp|HLb6EyS}vaC}ok3)T>kF$CrtT=U+(>Wd4v4h%HdmOH-FLI!WG+`4M@ zlV3ddti9$=-?VYz$tUgoz+-Pd{A|y<4bSd>@a)dkX3x~y_1KA?@ih^%iw?1fl@`RR zxc@2$>^_ukI3{n_s6*JK0ZdYcx>4mvkTPTv0B`p9wYp0#|*mKUf3FCoi)v8r5KmTG} zu%b{X9CXOR%(4LBtp#tcS-rZYwdL@mj@)tQoqM{wAAaD$B_bhaWa-^yr@M z?teY}$dW{R?cMj7J$ufaQDa8;_w~QMaN!HjKBvY>B>-Ti`})d@Fa7bl8@}+huLQOK zPV3gJjngG(%$hlO@4d%O@Z#k1=jT7$EyhU#J7>>3;t20w{r!EY4|cq`63eAw&^SQ*@>Dky!Wg#-*fmp0B~Fm0LYNpw#6*V%5fq< z3z=mx%d%LZSS;jhyQQs0;0CpjCC@@)tg#)YP8@&;EXG{dpSF7P=|yhOtHtK>ym|ZF zcI&c+#-?>^)^N^&xIggh)KdU(%BiRR?dF>S;J^b9oIn5B zuCA`5jywVYo`2y*0J!whOEzuVbjBI)edX0x0P!bRTu~|wTyVifufF=~s8ORPO`f!7 z_3BT3>eF7LYgyJ0F1@s|u@R^*gcuRg0m$dETK1V#<*M6Pbr~X}o3jfIHk2GJ#S65n&R4lYRgcI6pJ)K zMcEJIe&}Le9&31tmx4SKLX;i$E_xJQwp~T2W1lMtZ zb6||uTwbeL`Fu}*|K#zbX6-a{<l-0jld+4x(S`yX0x1VxF-aL*TsT<11KXm_y`1uC(X+ zjKB&f0%)-i0bKx#0rv+s$P;DuHrRq~yRMV7>{<}q5YfRvwi$>4G9=<;Au?}lUCfnz z&tlG)%@G~W-B2f#0|Np?PF@??U!4y5m@xt{0z$O?v8ez@LSkObMgea&#Xi|_D|wMo zD%6t5DbXm;lICq>3f_o5X+1R(2Cz9vy;*e#DBzxpH5Fd{>#Ghr6*T49+Tki7fjgNieze51pW6XJ9y}iAW>U!|Q z2mkrNNk<*;eZO|in(SMK$*EoXA)?Njg@o>G+!=KkoMY`&5t>2YY#%V;hZ%{&sahG? zd7@Njj7wHj8DEF|Qd$j7<~05~TQ<=Uc&n7Ef;G%^Ab<4QkH9z#tG_cJojj=9oA zT1l!zpFbHw0SyZyg0?^-H(Q-UC|-x8*CNuB7(V>p-gF3bcXgltt?z1&{OmLH@455t zlTJMu0H#f!w)3t#zxC!@;omy+utUH7z4PYoHCK7(laD{~t*?D^`LgBVaq@-2pKkt( zA284U=)}pBuDbTOA^iRA@1J-6x6b?PAOF(O&~WLGesI=@J{TVA`<+WE`Gt^#wq!qPv$&&D=Ay`9!0^4r0cfaU|m+p7q z0pf9Lwc6iry!ndDF5kLktG5gs$NA#dzdCpCy#S!Mr)R(2=T<5eB}RPzk_(SG=4b#I z7#KKc&OX_~D4AblfQhpnN?h$I(|x2vMRT>$k-VN$l#CE@h_>KphnjQfr13M_D^=b( zDqpPuB38>}+catv0M<6HEjbmpsf|sX+R)jFO^uDq7xj%BUuY-*AP$zf2YoOLkx{V- zg(7oHF6MZ9yWQMUAb?7l)~*=HONG z+((~!705a0;5oP6^Ze%S()97oO$EE9v0$N#jPiMFLP!2HAKt%EEFSWnJ)V1M`Lb18 zUwm=VamVc8LUnXgaomKqSAM^8^7zg#oO|lCuP*5A>O11lxlcUz>bf<(J5FiM=k3PE zM#3BctXQ?evMVPYF>c1JoqBrt!hbKxvs|H}<&Ha^J?*%4pZLhJ%NH*H@cRz>(EIjY zuyDnc$>Uve{`uhZ4iQ0l)Tmrz!5Y=pP#x%RZEGDf*2&wfT4O}6p?R(L>?E(%2$Ig= z04EKp1@5a1FbI0dqe8f-k(M!b_DB6V+0)&9!MDGw zJ-z3inSbA1_ndIbNdU0J^l1tY?BIEae&f5}nG=hXPe1YGcmL;`EBrVKUYxxC#y@-C zf9jl%PMkdHSHHV@>^MJ8e&hV}F8KC$Z~pUNiVY1H{qP6xKl=mW8^3$;h1dV~cb8od zi<1ER?6=>Am;Ye*J=8e)+h6_qx~s2AY8q&1#<47J+2SZpx~{84l->52eZggy#N*^G zH{N{3WtVqt+3LO0sX1Tx`d7j@xxXAIy;Jz!B^MoW%u#ZjRQBYc2ai(1M9CQ%rKf+W z)x}7rFQm@5k;2O%QD)2Qv3%geXCHRd5jDppav8HcN-f!TAzwho5RqB7$5H}9+p=@{ ze4$vZ5Y)J+sw4AFf^0`@KYHl1mz*^>6aaw8Eq5;&=v#g283)gtvBMpRwOSQix39O? z;X&sg(Q^*;E|FznOUJ01OQk9=yUx;Hwqd|!0E1PhwZZBg~rJIHyv`wp+C9eC)1`)KkCS%uD$Me)mrV|d+*+LmtCKI_SwO~ z!9x!{^xEsLTfTHD5sV!>R=Ej8#A}eV(Yq%7C>SM%Zb5p^(?; zB1FQMkxYUy<4ifh zj}qQHdCKIU|L$rLeFlIt&ib##Z@s-`^X7|we7W-aIeX2$;cqvda>UV9DR0(%jhisx z#=GvAIBAmj!+fFewe!BiU5-q{K^Qf9^v!qQId%H9_^(Ef8S}l%E*(8~%+G)LBVklE zex(wC1=Q*?Wy2^yHzRFQ!y&V{ig~lr7P1C}cnG@ErqitpefDC(sHt4wYgez zYBk>2+O&1!R>!Tiwze>aPPv*Z=E-p^8_9LKTidXH)9gKVcB-`vYu8%(1yOQ8srSC*|S4_4Zna*f5prtY#s#HeZoO*<=4=K%!ftI>J51E2>* zQ(*JQ&}GN~^9aPjLd<)JHTMKY5j_TVfLORhF2JA*Ib<$^17I^G^vT)~fEmorjV%;5 z)?5Z002!jiEbiGG5-|cB(IK)K*+>BBX+w1!0U=z6D9U73( zo0;IGIFSQ~LOZ#7_xnQY0&;kuJl_RIelh zj_R0Z=#v~%vlR;9a96zHch`FWGyoiZ+%Y#?djkUG3&nYd&GUZv{BzHX${Whp{HLE; z_~yc0cHIR4<{f?*W6aC@*9eWePk-(+PyFlg-ripE9#pHQl@QyrNi`*quNAgG3BG=zDzm2-6!#4YY*E8e zHOcppn^!UfXAo@hcKhceYgM5Jtkp5~nR*r4K2N0cH4FMrM5 zd#^D8iQ)EJZ`-_iv+0_A^Q+&u?BdG;sJbis#YaE>u^(P>x%OR$%sce1`|mmB*prqo zTP97O0RX`6vv>dO7e3q4+8Skv`TWH{y!7!$AOG%!=bv)=smjql`PomG%azM7xlH^} zXP-x*L-Sgrb zZ>`&L=IGyEciZO8-DuUA-TcR!A6dP*o7wgfoO%;$pUE~lOS|7@Z!DZL=cQF$RVv>1 zuQxY!ZJjh}3_$)DzrOE*#}*Sc0>fMGdaAqMwJZ)uPt1SowS`NGtgf!|udcrP$>-Ou z@5=w`+J7xtvS!+h(LMd8OMi6hORsHSKdOBFwf9b)F{YuA`_oO2-}mUko+m8+I;T{L-?OwSmFnFMo5#;$@q*4$v=tckjd3{98=iS#>8lI-85C`+vSwrLs%szUFS%e@fBM^#eFKh#j7U?ND5942g-e4z zr7Y$oxDJwrTLdA%68Kw-C3*n;m|Uw-P7Z|_h`KQ)q?w zzWYDl`0=Gb2%+lm=O6mmM=trXK2E;p&_iy$_wF-KIC;hL9kXn*MIyopQ@D0|NDabw=4?)(6$*e1nw2Z zwuQM|K3^#G0S*#X32J~YpdDCFh<|~{Y&r?ZYw8SEYn<0Ay-T~g7an!=9)}%%CdD!2=8PUa z>bYm<=W_W`W5&Gk`Wrnx-5>w>Cl)Mt!(vu@$Eek7RvmHpk*im)27u1a&aSSmTt4^L zzy1}GS$6Js*Zl6k|NG;=x$4(lJw3793@a|73jpBOc&SnythzZnXW4nqxtE`{H`>ib zmbb7W2Ln}dxJb7OTVy1|xnN)^)PqdQo3qLX3D=6K*AcHfQgWTBJE&T-Ca1%pZj#1A zChAfHL_*4_7mtpZ+j=H7M4HjIkb{$&iVH4nk%UipV<_Z@Xbjd#fSnB*BI+$ef!8YH z;ACjo>+frM~!;%+2>w-?zxGRCm(;x$+m3+z$ZWdIj2_RoZo-&i}zBA^QCI!;jp0)6Km-Ju_y_`qURcKYqdl0QlTjzI@*ucP(770EXhXP>&#@ z?(NxNZmp6trJoe)AYsg~b!GU>$+qIL*(Sx;N@^Z6D>r_p!yVTJz@F~@!NE$tkZnY=hg; zQXDsSLQ5Vexf=$%yVvAs*C~xV&1`vf`M|m@E^&tFx~@Zjmc?uU?!gxT-hY@Ud5R1H zEMH6+5WywlE-{8K=LJu3nTP{aeO$)JvN@0&8DBw#$VJcn4;@5g%mU^KHgh5dP$Sq- zMg)(1Z849`?M*ZiadJ3u1PciOY;UmLk7~Xh7w0YmV2HM50f5VibAQ}AV8Mac zjN_t57ZkbXn?H**HIiq%M4IODrdzR4LTR~yw3_)mv zKJ~mHHhqHLH$yE@=#A3ie_!{)aH~cvh2>dt%{X--K z;vB#x$Kq}yvvL*`8tp2_Ji+ww;}D@-trA$9yLua%noE_wT+XH{E0t=41f`neA`3a! zNTNQdJ85Fu@_2udXAdqZQ zw{SE*UIC4RGCfQo3LJj_uZJH^Sc=`<-Q6CZBAoxEDU&X`>|*cx-k#oTuKMlEFTRw^ z<&Qn#SWg7Mb5!SLS6qJf`#um)L_YlAA1M}#x83rOwQJVycffx8A9w%&6pO_xule=9 z`|r1T)8@PGxU*8O9D3NHA#3kbpZ)Z2e);R(o*wT|yYIgHrT_aw4^`Q`Y11FC|HI<9 z7qxY?z3;65+GoFg0pQHD-oNPWMZfvQuj+|BC~6db;GDD1`Iygq{Ozx=>hA6dKmU}e zQ-AvFUxquy{rCR!xo74#HZ~r2(h0NY>;V8%rcSx~_t&0!%n9D&x$W<_e)q!f zIOX)y6kz4J6Hl;$vEG~i@>gw77GtUi+8C*MO4U8M4~8UK=p~) zb`lBM0EL2#1jtzDl+J-cXG}+~=JLK?;5FVl&a!NDYF1abQ>&6?F#^|hvDEK0Gkc() z4-C51n(Y!1r+l8}3(To;B4U7OQRnDfwaW4h79!^Wl@i~)zFMpDO=}06S}i+=pfhLj z_;_1OaNC2+Z+mztp#?-1=GJc7`ouGvI0DDwn=1z1xZx#23!%u6Z?xLiW9$6e*IT&O z0pwU<08hQLe*UZL830<$;T9qgvPG-i#ee)a0&y%bvaY*jAp$bA0!xz|KyGc1d;Kj7 z&;o}OkwsuH+gMwE_hQ1gk)i7n1B)Yjbz%9{H(vrQAF)r{k1zi8*ootTERKBb+Vz+I z@XF_(TmIDRB?gRHg}a|vLr<(G%yV=ed1fnu0|)>XCmYZqsy^`Cdcp#N#Q>Myx`+V> z%n^wuAPLbbA$u^}P#9`?45;!_IZb-TpV-cjaOEzVu2impl6SW6wJ0Y%fk;{No>f^!*=< z|M{~&`jKL>;f`DWv2N|!eGk}w-vjmsfI_kOv#Wl+&;I*v-n9ANJMOAf$_LLobhjW* ze*Cka{_U@RHaq{@&I4Le%!RR3|)69^Gkt!Hae>RyW*(Re{{y+2i{D(gJk(`}lhycimJ2l6) zEdn4;h-h1$%rFu$PQ(BivlwIf=B65BHR4V%H7kX4;US}d`>Y`KgOysf+SRpX!EUoB z9COU!b7s%pym|8uJ51~E>l-&_oLj9n78~;Ug7=tOjFDfZGRwBT+eZK`1>AkC{m626 z>mV?IN(~wd3@i%)paNiV*ID1EmccH#$!33+JAD)>&r}(fiIk0sv1u@dObadBo8dU3kHlzx)->T>x0OZXF;xgI&Opcl$huL5GkC z!7W#+)mja$oNd`e)ZX6G)!m1Pg*>(uu(<#TU^A?`Fi?#o=A*d~60S08X7MSJeI}k_27f&e%0?}p8o##B>>Q!qelJeil6-Ie}Cfr z^OnEf`1`-#?EM@7zV_L3L!kN04}Rc>KmV!s{eg!ZoD4wkwcoyn1`3|K%mV zG9b2fv=keP#m0t8wOZ-#A;%%^Sb#{Bv#s9VQg2`1{s-^5{Ixf7RJC(RRfo!hw!>Q6 zn>#yO@_ie|46bg)fyO2{X6I(R8F>SgEvovEuS>4iw&l#{4RL~dE{9{@We)ZJy#CEIa0vm zV+a;Q#t;ZO0FOF)!0P}uLCL=JxELXyH%g=qP;5VqZ4p`oCz+{je$+4ln+2J@=v}m0 zwYFyU8qZ5`%G4>|`zB197`}7qlBLNH;?gBcqf~p!6c2zd50=0A)o=XvhTnO)@`Q;K z&%5CK^Da1l+0tdtJoWTr4?p_ILywdP2Zszjn;vJ3WMmb6ETbg7XgG)Ee^;CEbzED?xsx}ENG~(T+VJDtnl?)`j)LLRf;&aIlr~b zDGm1bQ~;Vg5SR-CqdMDR!08#}gbe&XA7hM&Q+!5GNiO}AG&W0xS;D7I$R^5%F+$!l z2*LUHf&>yv2+P#b7eq6A!La@(Pn{BezgYF;Fyt7*$Cy5S`ZG^Hz2{zg78@E)KK7&~ zix+!uc<}xQ8XFr=Kl8l+Fz@hr4ULV1rIK=(j*gC#k3I2?*L>l)i+_0O$3OiE0N8i` z{Wfmgc;b=Atq)SitFOQ2Mk(_gRq)9;Tw_Gke3+?PK8$LntB@9)p@#2t3T;n)A=kKXr;;jA5ZoU+4I02t`+ zzw&3l`pqwXDZco;3(jw9YVy9n;5*;_{qJt@9-ZI(;#WVp@)xJS?+mZ0dCGfFyYnBn z13+(g&ja_}fAZ<40>BZ+9M#a!FjyK4k9K z6`;EK!A!7>d03D%rVCPoOsIoHC&JdwMk{CK8}b~P<5I24OIw}xHoK{XSr)W)>SuOkjns}r`yTrp}Cnc0$|YC$OyP?fm@@VuF94TPOZi{ z&_KUa8gNF9E3}QW!IW|k5@Q6mcd1<<0Lw)dOmbO-44G#KLL6Kos6o#4J`@Lz$RI}q zE&#d=Fw_{b7#96f69F*~5n~I{gVKo*axN#=b-nP*!6j~cWhO&(h=Vu!#&T0T2fzKL z{~9}S5+e7;? zc<#kjJ%eL7Yh{)Vgq&Py@;~El86$(4Q5A~2=%N^}g5H_7dY9re5ooNF6Xxr5&~y-G zF;YXKgx2t+DU-wRH6qI2?(yd?zbnN zdI|s(3WdG)-TSeip?Kbf-}B<+hV|>uIR4~yYu0+FcGI8#dd;71IP#dI0pPP={QRG; z`~5(Fe-`qV~###_U^ln8#i|J=+6K7_O~{!Su=CzotH0Jincvz(u4@RV~jXw3~f7SH8v9w zacV2tn`+ck@kWlp0~b&&J(x!3AIW#<#w?z;e>ZE0!F+3s=2A8%V0f-`B-1Ohy4-oZpJviuHH#;@P7ao1h<7#QfCKmV!e)2DKG z0Gu0mSI&JU2aGo7oa#WC1G+A{oO2G0Ax8v)!Tu5wfyFu-SW^QB8!d-5<;kjfgND9j zXT-QgQ!_1o=S{RO^(jQ{P^nM}s8YwlmhYppq;pSG!xfUToc2_L~;NGCWIss&P8!Sh{_n50UcT&2B#BDL{eg+uHTM?j&|rg zg<_Lmx})MZsM^rUbQ$$n(%;q;>pBK?3fvPl)ndiIc}__93hf60;Gz5e>3#Fci!ZHT zx6We?AAicp7k}rwwOUR4_Wr)U-wON0(~m!~@Qnq#?7kZSEL!-Mh%(=L<4xyXe4#f1 zG)C6ViGLk)!tvqvKm7iMA^Hpei{5(chO2)2h5z}Q@)p;1zw_m<0YGC@lQJT-;I-FE z0|SjsO#m=y$`trd`>JDHhcf?A{TXEkR@C5vrc6-e3Kfo0nkV}MvAhluip zd}C8XOKTG{w`){;FXPp|KDWvNfLYAS*$oYa{_fuP*;C$g zmGi4!x4IYSuO9S#ir;GMUS2rNKvVu}G4EaniecuLSgtn{?4 zIe>$N$UKWeL?~F6#Sj4;B2H9ws78`^Oe!rU)r@+`3tPWnwW7~Tqkp)4ATsd4l3-hJ zcM5qTO-)VSFT-@%%Z8J)*Z#f;+GuKy-uTaZ?t9-UXZ-ZapHH7LJ;G~dOrJhu`q>}; zPa|1m94gfS*HiKGItJCk) z#&$Nf7xRPtl`XxME(dGKI3WWI$tsoXr7OABU^V2dhC)7HEFZDsxYa#d*7s9i-fC`Z z>>DhtF7-|>jIr|2)abN~ZGC-hFXt9RBC>!GplTr!_jm-6uv-W?Yr|m%%`9~xQk;ei zgs6w&Vlqimyiz1kQ0s>zm&%&*8nel$hapRhburn8Z=L_0Ns}kV-*wNOcmMO=e*(ah zPdxeL<4*#@#7Ps^u3jt7T0HagGadkqh?6HzTJ*MxZr^*?-68r60M}o0tp`8@z)gR? zalMc_{`vQRIysm$4+r5VPnmpZAe3~)UDv(v{O@}JbX!~7VMiWu&z*N= zc^Ie9oH0GH0Sv!3ZrE`BHP`mYZ(&fR(1Ero)dq;=a4@^={3CNfQoukFSPz>rHczCKigh9AgND0t0lKTkO^jPlgQ&MQm?lEiDL)N`uUG!Lz_Z0t<-~IW?Zk zW3d37gFUKP9V}M{IS~hBLuE z70?@ih;ei{kj)s8cPb=c20rP?B_d#)2b?O;yPCj3q zKn9GaPn~q!;rm_r`)4h?g@Ac#$_$xHgkUjr5o)6vH-GhW^G-bB=;r2PrE2}_@%iUp zbVGM#8i%4ItECNXr^l4m7>d|(6eSUofjg-f_h(r``$IxSpBG3kI!79~S}xsFV9G{q zoDAOdKi~cKL|vS`@2-0uyziet@br^UKK;a#05Ea#q_wNph+F=1Pe0=U(1yUqik0pM?cxpBj~_2EhX^$&mY0B8UhJ$9`3mWfj)9~{KV zpZ?H~linY9UH8)SFYo~9*0#2JM;?Cfop%o-PHz1DHP`ch~B(Z}y%yy8V|o?KJUGz!o4rcSrObs$nbuvAMIn)Re}}WKiRUJao)L z0CfA@T_#z8uBTr;rIWycJ*P830N_(P(BI{d0AQb;Li>3dJsn^WTP>QqBLG0HYmjJN z|8F~~m)O|WmzOW@uYe1@RI3*Ac5?&tR>JG7-yL#IMI5M5TPty5&d z@11wX0qE!i1_r|KTUuLY%$jxRkw=6ZzinIpDY$b&4LD5fW@xyxQmsn#s`!c&)Y3fe zvG;ezPTQ%urPIpg1_sKdff5qf`COr~A=gmYytNCt)6&sWXv+6)Ec9;L1e{wI%NGhw zEzQlXP5oQDcR6Ucj`5?){S}M34Gi)9$AZtz`=lZDK22@qZGbGtnWX&cca#Ms^`dNY#CO$-o- zT;Rb7W&N;Mrg&B-pr`UsMO~__o3QlqG#W!jwyr!O6Xd5>APVF-Zu~voZxfDd32{mB z6Mz2M=Z-jN-ti}$aQd0=J>;-My*%6dYVYXy^4Gt5`k7~Z@QnXjwQ}W%K)Ob+Wr%xH zC{UMjLs8@1Dz$P`{e6>76&3rnWIZB^1kW@lB`blYK)IxfgXvc^W`0n#uOS_3sfC&) z>>P~->>vo4sp9q6)bAjw8-cYDnmJJrGIn_#u z2K#E|N>8m~ak96Ra&CSjb1kfOHey?IbJqZ_*wS5PKs?Ve4~T@WTjGuRLbF{M*Gx^# zd8@D1sIR7XS0! ze~ND7Yu2pwo-K>9$x|lJ+HuDZedL_*^|o!tPieWVM>NnMrGKketrCB=b?a7@NTHC++R-S+RV@4%2o3fH`yb%m_f&YPDK5Vr&$O1bZP~o#$;Tc){-hHDVDEkRv25Gh8lL#q zmMh+nIpp%h7*@+{!@62aYp&Qpj>GZ=ZUg5)Xv64Hg|5xyRJmINARO$2 z%?>kn_yXyiP+i0~F6D^P_`MrI1m2w?6s{eG!xY4#Qr}|^07LYB;i9*CLqfu4 zYvboXe$Y8*p9NquaBUloKW5$wue|ohn->F{fb|p;XoxUL()lPyPn5n9%H#wNvv4d@ ze}fTLf}}|xF(EJxVKT~&$w=;h(1H8v;^flBOCG%MpW(xR2y0ib@zYMmCQX?Fs+SJI6C?8Dy|A~J@)uCx!3*`;9l5@fWIhW5=|&Q529VPMKDlbyUaPQqVe# z(Y^qHVEWAIh>S6A5u(Ky(%Ww>yycd^fA%wMtK?%C&_c;bn#eEEx`Iy(`NBPRgP zshH0xh02G}bFJQchquc z+%<20Gd{Ab_+4k@$sYR*1ypjCpjvH^>XwzMZeKM!yVPu;)6~8I%6|->4fb`bX9WO6 z-}cJKxBo&h1kBR5jAmOR7IFp!YmHKZ*5|LZJCcBCTpJNtX>ChNM;5rU_&HVL^Y-@| z_R6(E5USijxLNRCs9fUuy1TLO3=KiN88lw4&siZ*)S$^>KxYJ~vjT5OxhuOu0G4y> z1(zGS+yH8o+0fNZq&h#us{3%R3TozhQ12xURk9o0C~Msc-r$CUv{r?axp~%(WssYi zuAryaIIb4X##Y(hJlkbgT^Uc5;EW%a+k@qQ{xAff0pONfZ*2uY&$H=T80ECK&N4sc z@PPw$05<>}*t^ddL(O~$-ALrhYp%KU>MJ*G*)q6n$c;qczwLHfbizeO9&SMtcrKu0 z3wJ`UD@eFPJ78c)wRaV=o-PJclNn>Qv}7zEi>IRFBa`_|E*7(*5eM0lmW5J~A(Ui0 zZZsB6r=xA@I3f%z?=peHAkbqcpm++F0ASp(r?pbWKxd80feCQa(%7?y@<%6&oJK* zZpf396P2{M@@#v1`~2syI-##F04k9555M<=AAau#M6`M9mWwaD+1smtwn&S1Cx;|15|zVWQ_t)? zfOF%3;lztsIFY~S(Rt?oj;u~%kAmyS>!kR z*4MxB?mv2G<*T`o$i`}*bocgzz?0JITVMOeo8SIc0J!|BE2FV!K9>i8m)=$yXME_FzdC;GSpD!W zFK)bppWB7Pr{z?Fi*sS&CNHZQt&=WVHaQU?090T+Pm@FxCeXk|LlGk+Y9Ev`BrFI7 z3Iaej64*$|mSt?o5|My28RJAPsR5DwqG1no(fA&l!1Sds(r%J*FP-$G(W24(z56$} zMuM8>CCp9IlAhQvA>Xz%4y!y9q0T6%;bb~lTYbJXtEnO^mqw9@m^GJqL|s^aAL@A=XE zadMF%GYnVj!?Q|SelMr3?uqJpn8J|X%)0)6wFURM14_sk(E98=<6WfRVK-7Qt^s>@tg^I(Hgb=mi$QRkv@7OY-FeNmkRY;s|8t!oxG6DqB~s27(& zbHgHhIt^x=i*>EGYW4f>ID9(@3N}?kr2^t>2{Nh16#lhMj3=?JQYdA zOfEA!H60W^AyFx%wIM9c!XPt;ykTRA4X_D?lTB#k#CgF*Ae#Y=@)X)e3q;4T2H^l} zKt__qoSL4@aGI5!X#75}kdW@pMcIi6}TQR@^Z%30}hZ z1ywX^M(ZqO$Kc5W{=Q@S)U=w)qrwyjWpqIj5}^S`LSU8 zfDw!?vA2aJv?L*e5G;s%WmKi1iYN#r2*cW;Q2qjS2p5;b5(6j$VOP1+9Ut#Z&WvXX zkq`s+&R!+&Jq41`K!ucz5?N^=B!Q%u0ho}&kuc3Hi5S5p6o|gk4k0oSf-4XJ2`PfW z2!=UOMjMcb#&BSm0S%xnN*=+h?~bRXPbQgc3Z@NngAThHA3)h~Tz9)9)4 zDtDU0hYqzmK4Z*NPi}we$?YHi$j8n&^Nf%D$46JKSq%WoS1f<=%WnDB?O$J{7Q=J- zMe(%54nPx)#d6J9zv|YGA3|yDhX4Tp07*naR5i*;wJ1dqn|H#vsw!o9=49!)oD;SR=KzaF6;l$`}J+YRR>wVxVyqo|ElEWMC?ZvLVh<<;&;? z0I)%(sIB@t?Y3BaCPVv=O-^{erYN;7rM^DX*I`AHN~x*bOy=aFAUE#ivLf2H^4tr@ zMh=Z0c{=V!lI?w|RBybeD>-lmY4B(A-qAhzqa*%w?$ohdB<815?y}ylm>9+IQ>@!P8PG z+qh@f?&^2_!}~u_O%b^LTVHDgi2w5afBojSzPa(xP8>hczodU2Q1W?3xzOflF`JZf zk+1ZMHCb!1Q26POf3k1y-g|y|zvDOn@b16(^ILDe1sE!xS^$vC=Ne1o>Uq9sG+IgK zzIprCLtrHqi(Pi*6+imHoy%7&-@J88_{y(^wp!e}R-6Z&;?sy7t)OQ^!cQ#ql7rf9 zH&!Gh(()WhXEAFF&+&*$WnegYzyJoAfekVz22QzAAq7Z)=?M?eNSAv09kM{H(2fsm z2c?u!vb0dJm>rik8{w##0wvnW77B#1q}9<6!jUYs?Acv^30G4)-KYE*cd4eM}8ga)}@c%v3;k}$>?W-99+ge!#*LI@FaZQ~b}Vqjd}CRQ$qpS2?88~E%4 zqx+8MKlic!NWbSDmu>DV)LA_MfLdh3JT|WPe$JQ_Z z=YRT8OiLF6FYlq07Lf{+VUPgPAg~IiJqY&Sm5(wxKm}j}#*bj4*ODD}ZQ)eUs=*r4 z_TrQKdWoT$dU(Dvh0DqmRmar|NnLDd-EucjKjAz-Bt4I@U&GHj@2+GM^=GIpAgk7x zN~r^LRxpf!b!}6`I@6@NuT=ddu~xYW7m22DZ7yCZ66)1WN+yJ%npdr3VY40poUYSg zW2#tjKg7mx*SMw9>5DJFtZLb4sZHTVBG=w{;~iiB`fm&~t)$)U?H!HJ#uJG~^tq#} z^M8Hw>*=<(@Sl%A{K&(<{MEq&2aX&(xOexSdmnrF|3Uz|3Eza9%=9?PrEc4LL&QpB zY2`8q!m%vNwUOBvZf|d&nVc*ZvIt-c3U%Yk13xA78NmP=)S8eP8By675Cqy7ZCC*S zvu#_2f-2^VpbL)eXcmH~kT0?}fS|OQnJvWPZvQ~H_JiESlwe~aJE&u>=@)9 zNMU`0C3Ox|07&Q(fdpc(i4+?fNgHq^2oqYmpdsOrVW2Y$GDGB+|?RFd~Iw1_WC`V8Q}~CE?-_NuDQi@glpi zSWcAZyvmSk=YY7?icnppHhkpVEb(cSH?2D2jo-SSA$#*JbF_qa&l; zJ>39s?e*8a@6X<=lxn(PH{xD?)fHv*`S9q-qWFVPJ-Pk&Ui-$MKU#87Ip^H7zf~=q zho=`J7Wl1BzrWCW8EvwPHJjaj_De32bNLi5+?TYBd3P9PmCP1rS!7n#hLN8wvO%c_u2@YHeP(AqOL;=xn4CEHodWOIXEsf}IsO*?3f7ww89ANS$Ncpg~_gN6*C0nh^j zeYPVHA3lf>38{s1#AoE^awF8u>$P}8Da&2Nep{$yRK^T>@i^jQucKzw!_!YbHAicB z`7L*R^V`+WKKAgVmE(BP`ExVo!)1w#xBu}wD(Lgn%+ZTB9XWHuQDc-=U{~`>O_fZ6^u@P?~fJL%TtNmg7iCK~S1vF$NLI z5JY(9^{={UaK$QvS^yGB14bKQgz?dFVX$qm{?iS{%oY4u>y$%OAeI zf<8}AP2GFX&z{=0ZTRT$o?W|NbpClC{=~mO=WK03EVUZp{qsM0SFr{=u1Ta$R>?yz zE;QE0$-_r}`SS;^x;BiHXNPgJI!dR~sfJ9hW`Z!6%T+L+{d@Oq-?r_Hv#R3cOKzTv zlRvt9zS)olSK;S;MypNM%U}^l%*GU5v8=c4_#riGfKVy+r~K)0{nW~}a>M$e!KH(V zWJ;3I%*;#@nGG1lCNQ7@NNdfa!pvkgn!#wz1OP?@n^;5^i=L5!*#Js5CKT`qYbmAG z_}JL-;bWiJK<04{P()r_; zuKb6u?jD{BKL6p59eL6E?(>#`GSb3&B zr~wf?#aRW|w|s2n1-(1(=?F5@zG8s1BxBgNh36?DKx;M(1lo389rz4Lgowf@-x7jZ z?|QYBR1}+YAZJVJ6ew*>>_oA=JV|5+&ielF}qg)(9*xKr9k!BCsuxf{O*?1sZ@E zY-ZM41)c|*_3Q~J6-{@qvV@(_<^-YvWH4H3-%}CCvMm`1w6q^%(;iRv^rTHL7Zj)6 zs0&exB2koJc+!9eCYZ^>qdVnKpP-3MLK7oQ3)AhO9vZ3_G&aTe4y#1}^s$lx( z_x-%`h97+Q`@i@9{XPJ6_jLcx@4xYLpZrYIy6gA;;7#ovr3CuU@6E}KKDh0X(7fxO zAOGa{U-!F>dBU;M{2%~8G_)=}{o12t9&*|wrFr(*QahrYN>y{8tC!Cz)eD?og`x~n zH$U!?Ft5RB}Bi_3yB(9svR+gF*-p7}(K>BN;D~b7qUO*p`H$jk0G+Kq@nS zeB|iP-0U$Hq;oTaXI^1N&)o5=ANFlI^TO*dN_5B535y4>e(dMJy7a2^F1+CtKltHO zJ0Jh$vAqv>Em=LV{@kwR%k6VF#5b+*51g2JcF*z5$yfjWP1oFfo)7^FasJikeEl=u zKKjs;$G45h;$&BUw>O!$yD-vi`;)C2CUPy$ycFUBlVu>goPfSfs9y%~L?6P6ghDRTMxNa%k zP@as*=kljco~#Z7U;E1KVJ3XZWtZ8OeO=kO`_AwEAfL}SFAlgx*P+#G=B;d-=?-wN z_nboe+7=5vV#V0L`6MXLRfpW9t6VEv!=b2IF~?b77c(9kL}>*|vsn}f)E#I&)Ptp{ofY>Wa2+#t6CH>O~0RRIU z2B1(D3|ko?{Q59xgQ4SKs2Lp!?=uKBbKwU6FaPFWhE^;Cko)%?dGB9+=-GoAlqm)T zMq6G9 zTZfE*WK5vV?mdST#|$_7Edg3J>gE}}#umjfwR#OUfi_y;D%c=NGk1aVyu~>;w4f{3 zWUVJB&s*3Ye&(sCHgDYu09Rgn^_Hz$OOSMf>gkJLddnPaU5=%X+SC z8z)6eJm7^X$>-waV~;#?VDJ8gGXHseFBW)ZX0|F$CgM|*lZOr-tUSAZ8pv86(_L@ z9*vw(SG)S0zLoZh_4a{%fz}{Edn!A{d)j)lTehxQzHE7CS69@HhVPF=BaUSNNh!#% zHY@~bV;I4*BqgFsGuUAi3O$WVEp9W1$C)s)3qnR@V|?LEiO7r2JA2itRk3J<%BnzN z)HlXF^2npdPn>vq+Y?@~K!lZvx{A$+ltK_`$My593`n0&*<-GBds zA=P^V9>^UVh=!%nT42ZI-Rw`0#!AZ#w(zBL@$jaqcJXUXyXd)qC>Krfs1ul6J7_)?l? z=@Wz0U=gg<0%Uc9UnXT&z~I{G#EVP(u~`Au(r>PX4GqGahYnP^^39cKbzuiv$$QlN zw=%?8xhfbMd9&DnHnj4TZ&j~WQH~pSMa{5?@-TL_h6a}$Z=hx^Dd}%it4cR(K5 z{9nbE@Pdmk>h16Qjb&Yr{OZBVH+$3D-dgwUTmIya8{e{I>CzGgG&xm=K6iF?wRd#< z-v&C@_8#WS*tv!ebLWZ+I)=7JlZixo+HxZ#Eg>yw+rqY45D*%rO`uSSOg?Wr*3zK? zAuU8ALXs#2N(76*rVyM}E*0al&>qu0Z89B|$}f6;5Q;(|GlGi5+(^{5ZQHV3q4Pt% ziJtC+6q1A#l5E%M>`EjO(aDMFAfJy4(;L%khT?slk^G^j%)Xyn*=Nby3A0a{@ka?A z6ftSC$3}vG|1N&>k;sIfWXqONbj(EBn%dCk-F&Y7`fJ;7yd)W#0V1*h6o8Htj+71& z5)q*-C?YB5NY@swARAF4T8I%si_jv7NRr5cz<@E#lE9V1l0uLWghG%cbfh3cL1Ys- zgqA>?$RZSo0!dmp)IM>^a_EZ6smUCdRj0EaDkbfy17~hcpe;g>M>7ZnOQ0wl6C!~m z6odqf02U!p32%!EnY4r>pwz@BbO|MbB(Mo2fbM zB4Q31+J+Wed(V{@++v`oki6Za18D8E3X(>I?%W%-FVZDRWCmA974nbYs~Xf1zoU93Ruptnh;GI z8FF=yM7<>2yc4I`xSB7xtLmYp>gd_HFK&3;YSxJtJgjE_Y_v_pa)tyis3rlJa?a$F z3dj%`L}p}-tORJuT0$T}NoEp^!k_>lnaCh%K}t|Ss7NS6O`s7BSO%pgGKhc}1bWQ3 zic40-Hk}pgUTM7S;obM|d-ChEBm0L|U3$iOFKcV>m$7)?vi_)DSU%Ko^VR3xeE#Zl zR(CI5+ACb>?o4gkFtlmw>cQoGzA7+f_B?v`Gxz>5KX!^^(d5>(t6p;DIWN2VlIt!I zoX0{A3)yH~UH{6fVoR3nKAsyM_ofRxS||uR3bSzVc3D-Gt;246XLn0vnG7D`Gm|HqsEquR~lgxP`i)Op88VRFRt3QSV;_9q4g<3v_* zimy56*ekBvaqBg^UUTDKZ_-STB&NpXlCHcZHIhP92zp6Rrr<#_@8(VfSDkV24_^M{ z>u!2-b?3;w19qn1a!H<|)LsKLj0Vc4(!W9W2$vmVfj}c`!9iDa`cMA&wQDz>5s#)5 z(fAo#x4z@;Z*;^-2|j@@*+^u;Kn#LG0!knWKmdrwbuC6lEQuxo5-<=704#dGQV>d# z5(okkXk4DU>G~}_gF_^cgoPx-ACRP+nVI>;ubyT|8N*mh^Q01D&c7zOz9mOs9@nS( z^n>T?=+%BsD`Sv)Q{RQY?B_o5>B{3z{IAar4h_|GfEWPa>g%q3?HfyR^6^I=ErGub z1LZjR{cnG_&M9Qgx^=(StFSsw-t>}})a7#saP19saS~xsh`YV3J1CC`&DuB^2@fKc}Dok`Smv%B$XF677xwP=Y~+p33E--KBu?e z_KJFT3LKjW+2{NOAC|GvbIu)FxpGBMZ%;g)a9rEArR_MbnfP3`CDq0VM6Xylc=+)2)bxRa2Y^jDWno)F5E6m} zBN3#KZY;vgb8`lW2tXpVAVP^K5GPo8I49Ot*Y=vfQW!ZWLYu~LcH7FI zIJ{+irzhR`Sir?ce+V zw!Y{*%d+BKy}s5*4~BAj%1 zQt+V-!NZ%q?_Qrhlu$MBX{os9Djrs|n`m+9GcPFPhApTv*t{1v_kbIC#tR)4H{Kxi z#ZuD=(duKuW?{G*ifD>|H}0ycsfjfVk-220q)vsc*djIlgAKv1#3IC6{SjQGpIb8s z0&z~ntX8DDdPuB3Vj(u`N7R)i{5*4%s=Y6Oc|&J+_qpev7d}3?e}4sNuG{YZLCKjA ziEgTD$^N>xAKdYsimlD--}HO$`}_B=ShXq^k8j$#<>UYB^G%(CbGg#`luRZ22L>vC zms0-42mTKJ@7rp^Rl_>S4C&rAOV*szx1_tPr@g(ay}hT)O~&n5G~LtHxumbHyDOSZ zMiS9zd)kh;(zYkYr#d^^ySh81B`qmkDP2LXMYcd&7)$DirPC4U>uek9=^RSC#oVk{ z^b@Y^Oz|WS#V{MUxXb$+9J>v)WJ@u=nPVRirjVxDQ?7qj%@o5`uTSlCXYiMaV zzxGo3=38U0eQD}~^P=fqc<5k3A~=EsAOX9C5rJ0KfI_HeEdeBeg=i5(1i6wNTet!x zp+v9*IYgl|0wY-hMHmZ^1fe9fgb+eVLZr|a25dr$&=!aSI-}!f_VZ*8o;evkbj)Jb z%wUWu`W-(%Xm|FDZaI9-RUK~JWrTpi=eedM0Z0g|9wr1qz#;B0$Q5J>RLqJ&gs3zE zhHMcA0c<0?1U7*a{#Rn$rld zA;DmadbuT6Veu(sWp%(>&HkEg-THOw)~{W+e(lE1o36j{`hWcAfBeNGzt~tNU+mwv z{}UhkkLuSCA3gff5B*#C*md16e(lSD_rbs4yk)axS+;F&+OqlYKKOzEb^DiWyQKg1 zZ~yY)Qzz%9J$_g=6L($r+duryHP>A$%RCp?bzlFxzw^Nl|5N3~_ulif(<1II)-)NP zi>NfVME6^XPc>^_H<`G?=I>Z&Pt95(1977J<6(r9axOcn|Yq%cCTlq@YnwkBI!ww9K$ zgdqW1YO=Htnus+62az_hW*u%kBO7fSJGFQB<3A0ulQB0YEz3=(wc81)-c(<@y*FZP zlT6rtkn!@FwBtIA8Vw_LcR5#Fv1D*Cih^GLs$1Uo{}>$lF(j9ZvvObAI|$bM)c8r(|uVdwL3R^_tE&XnJp?F3-qPwo*^U#9|3$} zYvD#>!PXb8d2-j0Y*7G~dS8k{ia=^o5Fd z^gsQ>|Ezp+CE44!c~kX)tzNVGwXc8OueC)#J~sA~vcvZOc>7x~x$M&Fm;Aw7|Ho&( z_=S6Zao^5Ed(XSz{6*ek(P%UlZt++w9`Eb#yY`0bzWIaic6N1!FZkup9|-&a5DNLi z9bf-u_{U9KHoxaD-&gq=+S}Sc`GwC`h7`Z}xi4UKj6s;0nYs5T_k_>B?T_A3T7&lP z+rDiZU@Lg1Hnda1G^1kq<2_=015FupR zIZ;UxmD0izy#vWul5B?s+RJ;gtCmiXHpIHGed5Y^Dm#K`xn8 z=>V7kN%_5LSiN#BAuvLSJY9O(`Ile1n*HOpVKP~v3xr|1YA9qhGnWRb1tAF%7!nWJ zsBn;lNcetH8_6UDN{JQ%BkTS)@A_*lGc1sVKxAe@frv!#)b{QB4^9ACC4xZJk7}?S zyzsf_Bn#?OB34!P(1b9DwTTBd?6R!di8XQ|O-K81-cYjOom0Y&zw^ki9x5THOO|}^ zo*%vKPyTRd`LZxhZa!n{U;f?Se(FCzUx}0d`j2xtUL{U$*u1Iw!&j|Y{i@f$c44$< zu}?L5+4$JlJwN(!`1s9lf6K*}U0RJkP0qPR6RX zc&xX-|C$@F`^NXbGZ!ZxcpwM@0IZLbfAzlV#@;7CUlS+mpsSgg*-D&zYjvD_;>iV8 z)La$P7OnFwhq_GKz z#bWWu!Na*+{>b4YL_{P>d(wE8DO$!uoil#E=%LY(yk`o9K>G#}kdO!nm=L89LZCnp z$WovbNRoCBp1I<8{f!szU$$;CodD)Q8NW(OA&lWrO-O440E0`H-g?_Bue#>?Yp%QD z>Z`B4?)sa$ySq&}r9yzPF(w2FDW#A`v(|d70K-#eGN+IzpYtg2rET>j1ORBp<2lYL zn#}XWv?rAsOw*Z5BqAK1=6qlbz`Aa6{U+NY7K9AQh%CrKKrnWqjMu&19#i5^e2c$4|6%_xM4em9Kr@H~f?DeRuTKsfqE4STs6*^2Ag@dEG;~ zo)yb?{OHuNBSr%ujFRG^kP>oXzfD@^A!p8eU~KfdhhtLiu@kCuxc z65^}hyW>lr`~30YW8FPHFMs7LHf-MH`+f!G`9FTE*InVdISB>^B-y$AMd5monaz7e z-*T*YGASiRqHbm;Gn+4PCc{P}7^9R40^_TbCr4MT9%42sm$k_VAft^50;xO!CJ}Qw z+q+&2(CzG4NqDO)DY^lWk4UV8ipM9F`B$0?pFOnR#i zj8EASCWCCOQ`45x^1!UMV#RDMVzg2tll+tIuptFeivj}{u`MZKi=sA$*+vY2H2@$I zGZNaaZ0~Z&fo!gj&ne1Nw9QI&%B|~DwklW==fH68&9ZR4w#ulWQ4I&nN2UrLJ zNjG2c9Z5!#v_&B>5fU+9M{SxZYBt966%n>a#DefiE%L{$#c&tQaIvQK7D^OWc2&A= znah9;&jn$wR*+iYNKY3yMQlpxzWUm0uDGzuM;f`;9`(q#eX!T#d`lTiX1VkGKbRZeKAjLTUlGXjmk+Rr>!cNz99sxZVH0WF`G3h)-vmz|daqmh z>-5hU=UgSYR!O=^H+z1QuX!Fc-Y#|etXPFggfzhg^ny>TuU%FXMAT9e5HTPlVJHg- z%q13G`Dfx18xbq1X$5~^)CQQ0MgUEc!3~@aTC=*?-EG*SLT2~DN88%dgR3_md**4+ zA9fSI?2hz^Elzt}kqXG2$rpExj10ENEh};C8B4&_$N9+K{-uv!%z4zV5 zm;iek^;KeU}2>{%4_fNFeXPkBBt6%>be1YUJutmQS z0N(!>e{=qY7pBswNHqGDZ-4#g_uaq!i6=A-}m;p=a{vAd@S0RG22-gfnM*FN^hBhhH|(krg0=rY}X z=a25a=VujeN#%pT^|f!@{L)(h;H-1c3IF!>uiRdbJ2ys4ZqfW|>ap5{am9`QWEAF(Ls@IsU;zWHXB9_ z_D>ki4A9x0B`OiP8Q{>#r0XKG>g&#tP;3yGZRwx2arATFU0eM2mfnu+RTu3~#WJC% zGmw0GU+1CYiQfo;1QAh`)r<|GLUK%@x81+wg8u8SxGI`T02nNt854D^cm3fTwD<3O zc0RjwuxDh1hQ~SpNg^;BZMf7>1V&S0ZZVs1rXC25VFH{SodkuB6cWg=)&Qup=bzI% zxNHbC12YIFLSqat7Ycer8sp?QzH&P(!kX?mXq(kcHgSEN6lnEFugcEy zi!MzrUl-f4ZMwVPYKu!Nm6;vezh%6bE(E^NTAOK`(X=xV?6haMrLP02y0Z9kOC`JMzVrFC}z!{7^o*TS4x}T(3 zF*GHF;D$PFY<&FK@!`NIOX&b9pU;kskF~d_EB7`V!^}bu5s~HQHRKe>0oo%RafOTs zX^FgI=?Alg5^O!3QIcq7$~rO;2!a>&kS69{85f`oXvO_)@@Uqmvc|h5k(5%pC^2-m z2g=X*$My}{>20Uh9T^`_>*P3#1#?M!TzL8@ERfJl@;CB)|V@1$eP`UQuu+lj^D8&b95ZH$D>C`{wC*-kSKX z-FZpDZx@8T_6>!Z8O}}1h@>f-!LMyxU{h&6Xx-~*-rVJ?>5UqqbB)L|FA$OIG@yA- z6`C91P=;1k#+CVEt~Kt%Y89hKuPLriN3gXAPfZe2ooO>vfP}f%%c^@F=FsOd;#{M- zQToF3iZR!-I(OEPyAF>h=#pv_I{Vw^kO)fWcy97^9(FsR|=)Y&6o1G8kIq@?LT z5$aakdUcli?Yf)iT(f?9_uZ{tws-gLUC-`VziA@?tlzY8&AN4acklkqps3&Y@>gQ9 z*q^-b&+F`WpMG-tpS}GLAKCS6-RrkK_W1X|b;nD7>*WB@KQQp_zy7PrQ@^ zvqdExo6lPtrxCn3y$XP`Swfy!@MA+BT)t zm%cgKCS98hA_7Z5m^C~WA3tN2_4wYb8cSGUhXa#{CnvYEiw{G zU`df#12RKqJoe+C2QRrHz9Kbo!%LUl^^N@uz(5FW7y!`-VMmFhg;h(eTvm<@gYW_i z0g)xLB(y*jU7{px-XhQ2lrY--@PX-*Co~syj08&XTr+F@OU{cYlj78TvtvvjC*kXO0&q4kDt@T z=-0mTwZHqTznz|*Zi?u=?GN5^{MhmT@%FdOvxiT7?BoCNw;!la!9D*qx4r61U;oP5 z^(AImEEcOgu51t7_wzsdqjx@kL}oGA*=g>aPv=VDnkM%1u^T(BH`b&v+`t8`z`Rvi zNXz1l=e4h#2Rm;m&ek-QorSPE@1{6g@qKJ01D4W z=!-f>1ujeYg22ZpovJUu!Yi+Gl@3q~j{$h7xw4BV8ll^qFIY#3}` zzBH4GMJ&!woKnV`JT^LYcr=>#kMA6Q_URqQSHt5IkL(#fbIqEFn z<(#dDXY&2+(V_nCr5$O=jrx+va-eXW`V&dv)H=O6X;<{n( z(jU1l0mKE#1}(S>jUMmizs$7;vAGj`W5{g8{A#677urTnoqE}gFa7sVfBb@r=7gK; zP?aDE{^cM4>Er+Q@6~_&hrj*%i!Qk+nM{TlbO=KOfKuus|MKB?zUN&p2=t5%zdKe1;81DPoy(6bi_4M{uPS^zbJCS)+$J~kS&q&6TXrlKpC2@Hkq83qSt?kn_lnM>j&HPzlfQc4fj@ow zJDN88@Bi6-^>OlB-&$a~pJuLQ*88 zC8gy=qESWyFi05YeN?6VHAC^D<8~A#5D5Tg(48s7#-@9Fdot}Ep`dd`$F6inW@l!% zKlx-KpVwNCPmFbSb-(95?0lCS*hvC;=QykHk*w zxc$37MmDQYJZ?>$xc5hQ=8D0C_y0to^`ozUV|r%%(O>>Tt3VR$*!H+2EP6%5LM40s zMAxR>cUp;9!B@!U2HT2iI2ALAS!fI-j1)}FXrAU41hzqM!0$0f?LlgN2sH>BBzC)@d;x?KFRI4xp zL#xV*Tl@vN38$jw9LhOd9p_+(5~mrsghBHhbk5;2)1>5Utmx*<0kDC!Ja-!F%DNVO zfjRgeYoOyp2x*iJ%w7yqIvZGPle&_8_eKfn3)@~3F{KXj{O z%0bftwtPp%JC`A$5CVySP_t%c%d*^v6N^O;(DNsePC^YGGg^BvaCgkp?_98H`K?#L56O!-|d97Yg3gi5=6& zo}|Q(w&cXvNV+>^MIsKf&gzgw;C)9nr< zd{x{DV;Qk6l5Zb4%aeVXsqxI%QKkHmf+)!LeL*CC$hK`gk?LP_K~HMum)l};GHWz~ zAVdTS3;;GVAOwJIebH5euzlx=LNPMX6InLsL;l2xf_A9GVq^e|V$&J@^!}-o<+{ug zKq5MT4B!wIa@O(vvr|*-0@(~gpa}y*(tqh~sfh!HqbGzFi(AtHtCHx4ZvYTvSbz~a ziP-n=%Dn6eD0irX_#8hEqPq9mr20}27f!IVbhSo#BJk=57UB}FMZCxA~h3shvj0p@2 zM8n|-*JALyd9-d%9|EkXTUHFr>P7YH8lkwLVi7iUJLf;BTKnAvbR4wSGcz-LcI|%f zmk)jKj_)35Az@VFE*bNIzxlg6zyE_bz4;HWzV4b>JYIP=Gn={hr$77nM?SW5$Ihm2 zKY9Gb4Od?G+BdxRm9KlvhK(EQp56Y$lb`?eXTSUHJDwX%yjWEFbauPQlpR}LFgUM` zL3I~?p2?xb9PM1rCd*_kD z(+7Sv6=BwaEB$m|r=I0xBHhuRwtG7!_fa9MW!ze^G8M5pBV-?ZQd-9HY|9fwK(>X6Xw=x+G0Mk>`KfdekkA3)~hYua9 z+s~l`2XA}Ht^e@P|9Ezpp#}g)4jq2yAO4B&2TcKJt##7qYpoF)0Nl$@w?x3bD#W7Wjq*gq~P?J!4?0x$weFxp5i zky0wWqNK1w6^`)Z4fDaHM`Ob6AjoKCj9~*ydg#ov&H#Z#BD{>W(TuE>{?ga(m?|bU z3FL6mU~E!)HYZkLL%X(RmVtBWVdK45so@bZJb+R&4XfK~SOJe2YSp(I-KXcVpPP>X zJvX=4+>omF9vnF}@~T^Iz4pfI-}nb_I{QWE)Wpf@>3iR zG2Ei(2H(2<>u)W`$)AUDvJvHJxNPe{G@O@gidbV|Q-9qsFhE~=LnLAe%XkGQ$;E;y z`s#@td+hksIp+?pTD`Knt1}w0g($U+!z)n=6rtFKCADG%p;Q6U017}rfkb4q;j+VF zEN%%2hmTAHAR~vdBK%oRN!o~xA3y%o)6c9}u>ui?j}A{wPUdo%lHDpGB3gn7k%&l2 z%Mt{p)JiOMcOd7cPOe$gcBx<3KgstI_fnk(q!20;P6N(phPp41)chc|1>D33pk$EeLYJJ5G7WXMAnIIJQ6tjCKXvBoNWC z2@Dfq+M=1!BSW#s6RC|Py9e|M@O@7OF%X1mbUZ`IHfx6n89)Upl!a>RIUZY@IKFdb zSKHX$XB^ZH!HVTcIF;=?X^qAG>^;^>roC|!AGG8~Z{!KL(}NL@+MbFj50(-X9ku0% z3lVSbI-8S=;5iB51}U|jp=mXjM3dfrJqE3jTjtbp8{b(4!s1l;U z1`0);Ud0@r7+Ou`F=N=TZgxLcxy8=?S5~2=jHOe64cup}eNb7lDs1HHjvv>WNikGW zyDQvpY(mn)dT~XrN$2ZU)@n$)COq+c%|C4BmehKo=6MtT@;POOmf^F>cKG1I^-BiJ z$d8#nEBfTWee_cwE45*{jCTG0t6mc-cvSvU*i@5?YNXxQZ$8zoI*$f&LOGItg%1+MYrlx@n z5!$vLiA7>DH$OYOY|F|-XUfY5g0w?uWlo8)Js2N{WQ1)STxLS$>Eet&Fq}(8QGy(v z@->U7;|dYsp0)YugSoLCZQUzl@mM;Y=<2bFIg`oheKYwZ)8i;|!P04ry1I~e(j&5G z+UIO;B5pD)qn#F_hH0zwNL$ae0zGjkZu?`CJJ|C96Drwv;UyP>6&WiQTwAP++6esU zwlB_lfh#HL2*VJUk^wSGSqO~Sw=|lRv-dpc_jRUwlbJ(@$4{N4i(5XjRlIC8RN| z87c!AgqSn>)E+coADJ-i(-W&#B@XVA>?sp^?l8Mi=)Y;0_K?_kYSJKz1cfALrAH*W0c=rBefJ#uue zui2=BQT{zootpCu_}Z7h0#IB2!9qr|jnCpd@~~VV`##4@AozDa(hVzzX_4L^Sp)e&*jV02_Q3P~^wuQH4-RRUz1W_xNQXm12PNqFi z_I77eah@HCXA5l|sTpRe3F1PmTT#6C$)xQlrQ(PMLNbVmbm@74v}W#kcq#J>5OT4a zmlWC}AxS_3z{mthA+oBAD|=?&_wIM}_Vyzp%5aRLqQJyNk{P;t2cCLr=iA=&7v7BP z&n99FNkR*CL4yzA62?f_D2rK-SWu|}P$6t$KA#^wdUDW7xeSxaFdLy~&)nGE(bXOH z$e055gWY}+0_I=rVGCs+3khCfktoLswPS<^T*=hC zb&Q012lY~Y(H8F;n+(>R+cq;^=2!b#IJFc)Dnavi8MHP?Qz!(BVhMADCqpF>v=Jm2DAd{~B3p`xBrQQ2FqJ?Bh)7Q?Ip@W1e?q|2 z5jU0psT0K_0>mKb#fgJQ2F^V@g(5H^D$ZDu{s4evGI7BL=M@UYH@)$9I=Z^v`xoy` z#A8YusB)t>#*h$1D5PZ!_{xlXLJ+6WOiUJ|5tS3z*PZzNwLK5*o%!PZr-;xP&Uz{t zm~2L8XM-Y{ye*Wrk7rn+J~-+Xyh6;5mYe`p5RoD(SRjvi>`H30g+xvRoEYA}PVvsv zhW1Fe;}5578UDOci+lsFBxWYWz_38}z{-l~w1{mU{pCz5J>%=RVBdfkO2I=}?lx`hSc=M^X%btpJHa+BE=tCzU-pQF1`Ifzf_m%opJVA6#)9gv14`b z%I9+19((-xeC7YvTg%=D*R*2esWz|RYoju=Ic>C%G7@#8ad&EBrjRQ{BbMt}04$|M zLC8b`rENzdkwh|*Ohgf(XGt3?13_S>$H1F_ZeWZu_*#?lmB|}j1Xi%BFS_q|VgHO5 z7%&9dpVVFfg`I3)mLJ}ho7x|XoH5WBkHsQEF*ul?N}The>GfNV&&*7Wj!aFRv~4_j z^gu5Er03U0?mwfoC6yM5upgD3(qb_Ii2-uD#{DRA;wR zYIbVs;ro9Y;U{Ld_W4C|ylZLq$^9c?)G`_m9mtHI z;JY6zPR(jt@n}vhjsM6`LN$6I!@R+%dZ1EYoW|0Vg?Iy7^=Ih zEN(}jr zpwG3Zx4N%<`ts8Y9URUJa5wGwSM~I(SuxeHbp^cU1@_hKR^S%XWG(pvHMnCF369fu zjf9%PK10~PW@#!Gf$3AaIL@dzC}M6BRA9j@f>w|qFhHPDgj0eHgrG~cE-`3AgAB!~ z>F#gead_9Ev=Q;5fOtA-CEJcqOedp>&c6O)am3AL*7UobeJeJ!B@T_`Gn~yU@6^c| z)ZCHoUb1SHFCEsTj}6QF9|{8YvtG}V<=MOyh}fF78)l})r)MXhc=}{C)}3hQWo?-? zJrqY2LK+apXswMv3p^D|#Pb7k^M;kjIUjxeDHQ10;$&~{DM`W9h!xK(bA%Nfd3wL` zlKo24*A4|l-rXho=?se6>i8Q_4TA|O_NFFGY39-!LYn298 zKo6{D-pwH~SepH1tP9Ruhe|(}J8AxR7Yc=^w?B1S`#gH&=+Prb8)IfuRJYYmwAR=J z;R8U>W&!@eB9FOMY;OWKRoMz4%qhu3qZulKSM;_&v2CtisQSEC&h-~va&Z{}pM2oH z`DG9{s z4kr?^SVJU=5{Z;`@OXUPYLr;8gi_k->dYn6S_mnH03ZZw_+)!D3bCk<0ElvOGTqUp zz{n8zUB62I_*WvIB|k_Y84!d_f~mWc8i@7JIafykM1ZC=?aK%tiCiGXh5;EsFbhLk zP27ClhM_fUi~#~+KqG=gWJE>;L^g~FLaUXlR_Ylin(YV-xu{cw5_k&H0ZtI7NE5^K z_ylVog;UnF1Tf5+$H&HJkBtu48;%DeYm5SLY5I~ET}w_B(6B*3)J74B>FLS;_>a%$ zyiOF30O^A^MoXZ|G%f-G0Wxb=jn=|A&+s^&Mp=UuprFA(7@KK%Vb%XjYR@$arrd;R z2DQ*aO9_reLzNAQPoYqF=BcMnYq=giGCX`_`1!}l#XN=0#>|U_!ZS}jJ#T8*s-eK; zj2c={qmW0(eh_gI z#hkhGtCP_LUvzci7Y`ho(0ev-iEP-ga@o*OG8wm|0GunpO6P(YC6XY^kuoO`jUyvL zKGW6{i#Qgb2EuT76_Dd`8v%|SnTWbBpf0cWY|0p#(I!;J5JJQg3CDKZ+dGg10~=a#jolUj1L7z~@1GpHeD+`}J>5A32a_0`1|YH+2Goh&BkR1NOIov`oJNS) zhPP^{>?@+X-=F<3--rNi&S02ZNPBsVgaToONZpuMYe{J<_7 z**8WTy(^VCD~UWp!|zDnI%@$#8pNAx*Y8GhH7~j%#aeKwI+JOVUDkCD>!92kg^xNj!HPU|9e&%? zP!Ah5Jt}9TysNnzG&CXP@(dwkwVL|em*E{%fBv(fPRROAn?CqA z@6Tnk;ZuXlmi@zrKU7&Je{tV^@c*{v3va{3WQFSx&bfqDw4hJ`4H5i8keSJ_(plx( zRv%w_UmIiM5?6oMQ_#G+1HXEK(sB_UV@3OFhZIT*M)$Qv(EMPqV0Kc#mM2S-Nq zct*_@jK&C)V&jb;{l)CeSiYdOA;cgEvWIp*l1@gKEEyOZ%OoS%-=8>qaPr`RZO4x8 zF@90|#dI=y=~Wj!`tV~jlSTn{ceiiaGMH}b3VbgpPATmPYRl(zvMrWq>%8`+%hs(O z@O*vb;PLN&`HP45@ASO4&S-kt8_nrSDcfUZcd&dRm>A7xi@GbuKum}QOU`EU;MxJ;l6G90 zl20503sEDBFa>9b+al*{#pqI1RF(v{a;tkKOv zd=9AhX}@6}SC6{us&2HbB5%gkBt~q49yjT$H~xgYP@&V56J3pn&vn)p%j;=<)so>* zn?7JKKe`u>J{rWx?mEXhGC@J0tjJ;Ac0$D&2!T9{4UwZHGWjwP+DH}*f{_6kOc9x$ z-0nZPf80YBrXV~mrl@G9qDd$^&e0>5ZJ8@JwO#t2mn9R-*fyTWUp+eYi${ae>CphQ zlhYGN4`zzwM{Nd>17y>XxmOwa3Qa-_(euR~XP` zU>U15s=49^Ry__|zKm;Z?HVxU`4mkTFDv{TOo19pH(tc3$_pO>Ywv7^ImS>8Z>Uw& zsrn(RC%elN*<$tDwd12>S6+9`4L9EuzU*sX{)+E;2+hWX8sk#ke;4&TR#Qs3kq%R; zcL@ce6l6<^STYu|60S@{twhvL#q4y%M#Mrv&lZAQLHk-81}V_BMckF?PABg>6SJO^ zqf9;sf&hVBi;@x19=F?Kwk0T=D;^swj7=9adEXeFc0D^HVks-oCZ4cZYe}d)X4J#S zBffGRr&utSW?@GmCXFB$Kmw4j>?6lwQ5V6`Y{BF;95|XrdkN#X*&xw%$Y(fSIfHe^q&7dSn2T2+75fF?mNU%P0^CqLi%UPGz zvsoZ&Q?dzRU?35(-J~#ty1ek&w6s31`dtYjSFc+$K00>QwbxvK^Np1_ z>D6d>wmk35r>&t~GE6rOC$;in23fQAd1k`gbJwwHb)au)aOOE1R;^sw-rnIj60y2u zD*YA&KqwG}ZQI%?Wdh5IMIu%@9c2?BN(9t~5m`!##;s$=ry|j4u~1CL?C>jS9T=^R zVWqS-MhF3A-88L&P^$`&5Rph4HV71YfhZtLNQI8#pd@622!KV6vqkIKy{j&K(TE)Z z-4`{JIRGGrrT&SX0gq4g_Vg%3G{z8>1U4v?cxK+aZ|_&X@|82sJo~oazAa=ER_-n& zVx_|t2oV_)zSfz*N(X_jt+=GP1x1aNH#1WOt-lum1IRVg3MT>7*~n?j5WzJ)=3;U?n;(b z0vHg=CN}kUh|P)4`uaGrOS7-%X zFS2fK?!!K&hxX;YtU+_bP1kPPxGtWGxA!eccJ}Rl zW=Fn|zwK2oSvu73DN_UxmL;5+6Kf~YQB;w$&Rw@@%W4ETIWqCxZ+`dakwauzwu}=9 zLAhjvJdHWu7{L8w#kQzO$0*+6&*lqAsYnDzrgelI2DXSIQMqJI^k|`ApF|r`A{2aW zC#j6 zy|a5Kb8QeO1ON;WEMZ)Wk(m$zOJv)e?p)Cr!zg-t#o9q@c+z5K0f5LFKoDC31%dAy z&$J9o4GU0Rn#j%Q3=4Kuo0B)ojmnBpNxf`7!@RN$O`()Ur{bj*sG@UF&ppM(KuGw! z@96oUtmh$)@f^Vvd_LcX8xs54g^?Q;OMK2z@VUOcDR{^YVja~w8*?%pwO^KD5$1$V z3ny+UOj~x`TRYM5bM8G*cylT3dJyey*O`oPQTfv+KJo32;cb_g&GY={gnD_>Za$On3S(oFgsaX2F78EbmvttY)iQ(F)mxuY}$~yb2e3katq7>(O z9%rsfl*3jjU(Ll;aW|g<$V+W^~r~JcZy%^du<+P%HzsH8?TH9_oqpwMAST zrz}73NkWKPm~e#h)u9=GGV6PuXK^-VO>{3T*8(#@fGi_q6}47~3K5wltF*9u<^rK_j18P{v8%hy zDD(55{&>mK{*7DDWQM>C9)0lV{r$bm)~qwY2<#QSnaL@uSWFY-P}>%EN;4gZIFmr# zO)SCKl5!K1+7H~Q2<1BrGZCVcyLarfOl*SWtkxP0fwy`^V(F@t#ux_9<@0QSQB6;0 zzJ14i-EHfbB1LU9vj#F6nK9IsBP2B71)wy}8|9kxjG9PyHM?`MF8VdChANjOSC#H{ zlUXIsDneaO*(~&8?QnUM`y=$sUMN~N>Sz6LQ$^x@#DQ|4Y8_8;{&?IX-)hw^Ys8&T zkA-l>)mMJ@%k^>cv!D3XVowOxhvL&(1-Jo(W&kcFSSHZ<6XOS>>9O<9Up+Lq)Uj=8 zAtHEQ;Co&?5vwz$Btpv)v52jqVAw<)99YstB((OCfEk&Y2$LzRSO_L3^6ja3W+sD4 zhZz~UJ zGxpTZwhPXU0t2pcVJ9IlB6M;#YBHxr2YP$QOX@s;fJlUb5D^Q7;(Olxp6QwCn{Ix| z-hKNHA33sa?V67Ew#q8V%z+A>O@RbEAij@7v&VhTj zjsEJ82LawWp1<66)(%)vm#*4EdnPalblSn*Bu?i_NH;UsLdG5FN!pX1nwd4(z(k1F zbjgmG6#!bo&!3oDj&!(d^F(^6Eq91egQpxp+L(wSZInSOl5;dVke(h+B4uVrZG;d4 z5dhtBv18@xb^AGZ><}+dD<{BdULc=d zk;yf8DK_MIm5c*xn&Z_%5LI&dO>~=^-_3JltIgOuRsXG;2y3yg3Q}ALzL#kfb2$z- zvu?tMj#{%_m0)MtqN2wZ{m=&L5LW9uV=b_Z3*=L^9)nf8=PK$tGB?+aoaa)&7M}NW zvyqF>hOt$=$JzluZV2hmYrgWoe0#_5|G~e0;@>a5@=5?mrcxJQep%fMKL3eNedr%P z`2V2i(}SMMWrHy~@B-GXv!hlbl4={2LKgA`LNtI3td$9T?b?6&aGM7U-aO>vBFb(XNOjaq3#}LzWSO=ue$Plqd6Ll zgj|%YuVyoO$Bnu1gykeGJGOr93a#~%+xGw9yFVE@am;d)h$sXSxd}c%0Fn>^60Vr_ z^i)>GI<3uZYJ0(Mx2?c<7B~PP5d}gl>2&oblf#JUSpo!r4HQo~?Fq4K2Oz+#ff%9# zJY;On;mHyI+VkRfZp*l{kpu&;ginz#(M9dtv92ElsJB$dH z(V7U3jB-cJq~keZ3HAet2!sijV=+9OMQMN#VgO51sTr?0m`Y$Ix1=*um`Wv#K?F;{ z%6>XI#o8CMj`Z#P?6KT(+cnGxNJ!Ju+7BWi!4_ng4YMRfi+n{M>4Gwi0p@hlKAwm2 z)9TXXdgJ?jElYLaAAel)59^K*014tV!`;FU;VtW z8*bGjt6A3Z1p&KXkUn1BQB_SBK{I`edXbDecelnRo15h`^Y;_0dpu1HK3aG_VC^w2 zc9SFkBf>(WLqeIHwRU8DM&$jJ%^T&RWXk?lFz_^K7m7B~agoll6d4;9Jtf z-Jq>A058)W5o?!-u5SOl^Lt_rlFs_M9qe0c*F_^;Y}aJ!NL2rm!>yFzc~`1ZTIp)5~og8S2dQiC-Q(xO#A?kIzFk zOvsF&0hD4X(872kYESqDKTpg8ZQ8V);Dxifd|R3|5kr`inKlf&B&ZTo4ieQobq zeIDD!5Go^-0<%x+U5yal3Ia{)sAHHbAe zb#05SCJZ(=*n)X4=l|Md6B{n^Cbm5I0tbnfHAUn3#Jbv|84lM}bEtu26n?F%ue+xD zL#8Gt-}tK6O-@YIP~w|fxpE66dNBmd`PW@S1VjQM$+kq)vC?t7E9rD6Bgv>Uo$+=Z z&dlTrlJh;0lgm1fcE`t)R>l!NGk8kO7GuZrOZLoe+;8PK6#tI-@68idY)%oEuF?J+AJ zZ~y6!@3Mqhxn?y06n*bMKl`adc6y+HptHL>-rf!d_wL*G{jYw#GdJC7M})L6mS|&Q z9dsCu3DGW4AV{Kors(;8jIiXp1jt|%^Um#0$0&Iy&;?@{0Q}KQFE}?IO){eI74N_I z-u(v-APFh$jT;6xZ;1LvlVwSXv$L6aG^G`jK&>?(Ac)7Fo_S{1%)Dav+`utw`ts%@ zQRQ%0%MC-QhnXuwapgXpDY4cnL9k{9*_b*jE?jT{<)#6*RV~jg($fFUiuLN*aIF8P z&n=$v;$Y}juff)sH8jkY0RUcgZGD{l-B-VEa$;ifv9BqKh3EZ#O?abKFAx9#9GGBM zpU~FPv(D;WyKdEv?N5$%bYFDErIr=B_nx1E)>mG8wHu981A{^eA%yEj9GOoiV~J#h zh(cT!n6x$qj7=DeTl)`;BxBJNBN@k$z83)5f>0S_j0VKe{D2J$L4`v8d*A)OZ9Bg2 zIj$RxI-%GA8UsL@!8a_BEFvak1OKwzJ!S85qN-pFL_np2 z@rm&@i0yztgdvhfVe=kw*RI{a{KW%A;!~gekI#Ji6RA}Ci(me7M|)doxJzqowAKpB z0I5J$zjj~B7+VTJk&qa(*(LyBA%G09VWo5`>Rh>{{fT2Ixd;J6jL6e)>$zyPV}D%l z+n2{=?CRCgwn*W@{T>nuWRR9NLCnJbq_cZGW4Urh!QOHI@;=x0p)V!k6G9iJR!r^L z7h9gPXNJ5nh)7R?M3#gWf(95D(Sn;=;~j&bSo8w~P>jSn?pQCqdh>t$=TE0E-*WN# zc=7g~;Ok(Yz4D&OGo!R|yDdApkQ1F*h%g9KzFM5-Hw(9-(#~H!)Ly|@hKI3+Zd~`E z;>LH{cXPE~KeVvg;g;z~a}qSROp>t$5?XVvs>Z$Q5$(!rWNEmWs~I09H^znX^Ck{I z6|e7VTw}f;ugT9@W^`9|61YL-Wd6OiqAk_2A+U<~-ZHXrtBGcY3UiEGv?TsJZ!^== zzyGS&UUTCOxBS+vTh2VQr>_?gwbsXu9DV4Qzx?J`ZhvO`cKCl=%eB2}AvxE;cU;Gb zC;(K_5vtJN71JoEr!qtWfl*LfIu?yarp6{!vFH+~Z8OjpZEtf6$M%|-CwpQ@5m3ey zBt-|2B7*bBC)6GH;>mHxuwcPbXM~w?WwATOL%p&m9f`Q$FW+j%myk@fj~~~?X^$-w zuxsa2aNsD&9_c0=v@ORL(T-?72=d-tKie}hnM)?3UcTVk+HokIj<=;!v1rnfA{I&J zGQNQX%4jkj@9s+9@vR3Rdgy88O}lOaPy$#eq_ABq9x}j=Ktc>O#~fiKclYAZfV1s5 zONN4HNkDXfGzb7GC=#(lqjo`H0ZPOoM$X+7+rHZ)lvC(|vK<5$K{BRN@o0O*Kp}!? zm>EE`nH}>^9?3^iX%+T{nFWCaWMhCq0tN;IGL~knfDurLVu8m4zrQcCM|JGGKgMFx#;|SfB41gRj zI4M0Uo}8E+o%VgpZf{HVMj0qGHZpVEpFVa9fU^^Yr5gq|tQ*kIuZ}4-k&C9({xt|i zUr4{O)-PPgNA}JXB#uU4_Wa<;I&C4RXEOdXr?y?(>95ERkXYx~aqt5T0V~4>ib_pn zGl2;5nKA7%MhPkIbjHEgT*#Shad!4ptRp$G=dt40hmq5(%4+Kcu5#?D{$;W8pG|72`WSO;czE06PsC!e$%)BFAAb0& z|M{hnQ>U6pE^@Q^^*S7d7m0t>>u*&5E7UazO{*jc*AnrF)sb*}(-EWbseO~9GhU}N zeqQI!tzG;2QezRz5LGUHVl+xmWb;QiPCon4=taB7wn~KcL#d*}0@*^|?JLbPhW`2e zyLuBNDQ8w`9-nmuvhsDpDJJ3+O_Q&@Dc>HO^lZl_5|*pR$D~B*SOJ1GEEPM7W4?+q zTdBBn!{zYPpBvAEbV?^;nou7)Vy#@-fh>?Lr0Cj}7IJQ4$`#ZBq!1MlPtWSZhel85 zsww#=BO?M~;e;;i)OrFC5M7jQ5LxC?f1k8n*5gKM00JQaItV@HqM)KKEFX$@_w|ZI zw7V^dL#>bH*Ab; z*}8ggVDR3b-s2Smt&9rv(WA$em%prDo*M~Kl8CrAGBcZywja7jB4N?<1)>|ZCZ}@R z2eLTt1<|NgD4O;TODRul)`q2^@Cyk+0|NuSy?xVD)4mr-DbCosC6#V7JXe@0HcA`C ztQaH$Au_WeU}l3zz$?wkZIfqCOm%m6k9RM1cBk{P36BURKxgsTj!(537 zLq&*KJbvR%FV4-*GRc{lseSwQm@3-_V~jQ&C<91DqNF-xIBpBq2A@N#Y;8u%uK61!242}ea78u`G+!eQa zVaOJHU;e|&Fh)lgAKXD2;mM<5X>0}ACxtgmh2P`hgi z*$e|{!wkH#Cvj@V|HgM7cx>FGsG6#^*WRP`f`!mx_>-#}^{1O&)du=zeulNi zhFqsuh=8&N6fd8l@&bVk=cKU;M6Rh6vFg+|>l@&_v#necMi5&Un9bHpZfJ=j)?XOd zlovB^fX9V(1G%-&$bawcp1Xc@&s{$P03vc-w@@fB|F{2AFGwxabetQTt&>e-9O+^_ zZljcjdxe>bMnpWF%IAs`Qv?Pb*K#B&-wTRG$*L=5cP3p5vTFFiV7E%RE|{pFv$C@= zHmN#$C%cCR@>9c)?#Pd1T(B&GVp(^PpMvuSWm{(?7AGk%ThLGJDJ~t%u2|NGVC~wK z7hZCCx~*+&V%FETR8}GpzvrIqPi{YK+m@shFaSvd#Egbf8z4e3K*R(<1}uWM6!i~9 zou`7V#N|WjS>~)UEd=gC4Gh1Q32*2w2j4?L}%wgC+Zs&#O!sK_AePcrGlK}SefZ*gK=px6BBE@+Ire)X!C~74)!~c9l*%SHeH=%$1Y3v@ zHVOeXLhXF)Ty|T}(x`V!DQRmgm;lZ(lpE&*t3~fx$JFXQVYN9(1AM&@Prh73)L&OP zCm)Ev*<`a?6Te<^ANlCVKl0H=dE5H% zg9~ZSKW99w@m+)=T}?=`91)9H5ettUofylbgPCgv9zVN(cV}$c7G+KHxjh(Uu!z$M zjyM^|`nf(P_Ks}cI+#3bO_vZ@@Pc1$k55kofp&gy;EJ<)p1xw)LjWL13-DI16n>V4 z6o5ub?Cek)tbEbLoFL}t!j$xbglqdm62TGd2zGp()Ep6HU4D@jx7+W!j{vjMR?-Ph zp29$PS_p^|G1Ac<8S0=<;+xG&*Pv?9YL=Zq+JRW3!-jU*so7N31 z9S8zGbm-vTJrCt(dSv^#tF2@_fC<*fNQ5b2kWCTw34QRzxBYgqy*<&@{rE3`v2w-o z_U>LG(2|jz+n?HW_E~}?8x6n_SN_%;U-O?QkLJGgl{Hc59 zSI9Va)H9xq0t}-HW+x{E3KjUpLLR^ra|L8VbQ?`RZ~>g9>9iTvrH~~w0q2O$2vsW3 zO>VZ5kS0TeL^{r)&y}c%IBzD|1U9JRPP7^Z!4}W|W+Uf9w1Bzuxd?!Ekq(5|8slop zAZfHbY&y-c@UA}ok&k}-BOhBxnY#7a;99AG=NTzW2sG!4*-1XsKd8?>Yvr=#D^hJK zKn#?A?BR!dd%8To2)ePLXC#3_I*w&PD-CQ60R&o=jem;q2t{LZ*Y1(7_GFsT*HcyUE5Rnw**fN*R#a*YAaUhFu_CM4K0`fE~4a|T9 zp=`|%j2or*?HlOnD_9X1m*sGBGCcIY;_z5tGP!i9tXsK5Lo32nE0=%lV;^B{4jexE zo_GHl00=273c*SnHbyfOA_=lAyQp+v7?{yuK|#jnxW%5YJzGixelZYI1R4cGHc->E z+`oi^B216)uwq5LYg%F9Gf+op{O(yw{JOhn4IRP2vmd(k^T z_LFb_@=(S%0^w_SKK$_D@k`HH`P;v{Ie2nP?b;2)tY)XcM@9e}M9hIDLa*qC?@iU- zQcau2b1r;XE%n#j)1Aw54y|sqCULl0WH2Pi*55YRs$8m7$%NWms8+)WvA(U{G>R}Y zHajErJ<5i2#Z@41-Q)>Y8Rbc=!14@bkREH>o=^|iSM@=;L7jSGsJ1CVpsG7sZ{Ub6 zNJ!OUCfuO@Ts~5omq3AaaQb}DHjSaJVq_E0=D#&?YmCX4RiXbM^xTvUiHofk7yu4$ zze`5aUCYnGbXy^-CMPG;?Wut!?U9I8ECewcFBFQielkjsXp6Mjp6wm&j*JcTfE~9) z)XZl6T}N=oNp?xSBsIY^-n2h7Je9E>&<2^Uv5c)X4d<->flS0TMyrWwesDLw>vzs{ z97_nPNJ3kGFg@KydX@{LV@JGV-j;FD1xzi=bHsN1h)aO10xO@#qB4GwEOb0GRw$~+ zp4hQx@9<2XEg3iLY8FR^r?oaD2}ML$QDaOfcV*ZF${+#~1cp%qA{b^uOe8HQ;lz^8 znP+xC`s9hpqYwe`0g8qvX8e7Jc<=sM3u6p`gsuRG?H}JWebKpzJ5OcP1(}s5>!_6H z5WvY(*&yeSje6}OCIErK2YE85{oKsJK(B2@gwY1T03v|_&V6N)kGRNa!mV8B<1qMI-p)S zVUIlYCnTA+ywRX1-fkJg0u2KK5|*M@xKvq$∓Lmb}&3khjv!t11ebFhnX23Rot? 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%0AbM%g=On#)MKo$XvFQ9^w>ygz*}^Hx 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