From bbcf210c944a7d8ca006ca0383af739272106203 Mon Sep 17 00:00:00 2001 From: Solomon Peachy Date: Mon, 1 Dec 2025 22:37:22 -0500 Subject: [PATCH] Nuke maemo (nokian800/nokian900) and [open]pandora targets They haven't seen any work since 2013, and likely hasn't compiled in at least a couple of releases -- not that we ever "released" anything for these targets. Futhermore, upstream for both has been effectively dead for about as long, and there's been no user reports of these being used since 2017 (and even then only in passing). It isn't worth the effort to triage their current state, much less uplift into something supportable, while the maintenance burden of keeping these things in-tree can be demonstrated by the diffstat. Change-Id: Id93bd450679d1b75e2c74295b3ae1548cd241b24 --- apps/codecs.c | 2 +- apps/main.c | 4 +- apps/misc.c | 4 +- debian/README.Debian | 7 - debian/changelog | 113 ----- debian/compat | 1 - debian/control | 82 ---- debian/copyright | 30 -- debian/maemo/rockbox.desktop | 9 - debian/maemo/rockbox.png | Bin 3110 -> 0 bytes debian/rules | 80 ---- firmware/SOURCES | 10 +- firmware/export/audiohw.h | 2 +- firmware/export/config.h | 13 +- firmware/export/config/nokian8xx.h | 91 ---- firmware/export/config/nokian900.h | 88 ---- firmware/export/config/pandora.h | 91 ---- firmware/export/pcm_mixer.h | 4 +- firmware/export/sdl_codec.h | 8 +- firmware/target/hosted/filesystem-app.c | 2 +- firmware/target/hosted/maemo/maemo-thread.c | 172 ------- firmware/target/hosted/maemo/maemo-thread.h | 36 -- firmware/target/hosted/maemo/pcm-gstreamer.c | 451 ------------------ .../hosted/sdl/app/button-application.c | 22 - firmware/target/hosted/sdl/button-sdl.c | 35 -- firmware/target/hosted/sdl/lcd-bitmap.c | 13 - firmware/target/hosted/sdl/lcd-sdl.c | 8 - firmware/target/hosted/sdl/system-sdl.c | 33 -- firmware/target/hosted/sdl/window-sdl.c | 4 +- packaging/pandora/PXML.xml | 64 --- packaging/pandora/pandora.make | 31 -- packaging/pandora/rockbox.png | Bin 3110 -> 0 bytes packaging/pandora/rockbox_preview.jpg | Bin 101646 -> 0 bytes packaging/pandora/run_rockbox.sh | 10 - tools/configure | 222 +-------- tools/root.make | 4 - 36 files changed, 18 insertions(+), 1728 deletions(-) delete mode 100644 debian/README.Debian delete mode 100644 debian/changelog delete mode 100644 debian/compat delete mode 100644 debian/control delete mode 100644 debian/copyright delete mode 100644 debian/maemo/rockbox.desktop delete mode 100644 debian/maemo/rockbox.png delete mode 100755 debian/rules delete mode 100644 firmware/export/config/nokian8xx.h delete mode 100644 firmware/export/config/nokian900.h delete mode 100644 firmware/export/config/pandora.h delete mode 100644 firmware/target/hosted/maemo/maemo-thread.c delete mode 100644 firmware/target/hosted/maemo/maemo-thread.h delete mode 100644 firmware/target/hosted/maemo/pcm-gstreamer.c delete mode 100644 packaging/pandora/PXML.xml delete mode 100644 packaging/pandora/pandora.make delete mode 100644 packaging/pandora/rockbox.png delete mode 100644 packaging/pandora/rockbox_preview.jpg delete mode 100755 packaging/pandora/run_rockbox.sh diff --git a/apps/codecs.c b/apps/codecs.c index 73c3b20fc1..575497b16c 100644 --- a/apps/codecs.c +++ b/apps/codecs.c @@ -54,7 +54,7 @@ #define LOGF_ENABLE #include "logf.h" -#if (CONFIG_PLATFORM & (PLATFORM_SDL|PLATFORM_MAEMO|PLATFORM_PANDORA)) +#if (CONFIG_PLATFORM & PLATFORM_SDL) #define PREFIX(_x_) sim_ ## _x_ #else #define PREFIX(_x_) _x_ diff --git a/apps/main.c b/apps/main.c index 6622094e13..70f4cb5b04 100644 --- a/apps/main.c +++ b/apps/main.c @@ -141,7 +141,7 @@ #endif #endif -#if (CONFIG_PLATFORM & (PLATFORM_SDL|PLATFORM_MAEMO|PLATFORM_PANDORA)) +#if (CONFIG_PLATFORM & PLATFORM_SDL) #ifdef SIMULATOR #include "sim_tasks.h" #endif @@ -151,7 +151,7 @@ #if defined(WIN32) #undef main #endif -#endif /* SDL|MAEMO|PAMDORA */ +#endif /* SDL */ /*#define AUTOROCK*/ /* define this to check for "autostart.rock" on boot */ diff --git a/apps/misc.c b/apps/misc.c index af0cbaf519..ea4bed923c 100644 --- a/apps/misc.c +++ b/apps/misc.c @@ -639,7 +639,7 @@ static void lo_unplug_change(bool inserted) long default_event_handler_ex(long event, void (*callback)(void *), void *parameter) { -#if CONFIG_PLATFORM & (PLATFORM_ANDROID|PLATFORM_MAEMO) +#if CONFIG_PLATFORM & (PLATFORM_ANDROID) static bool resume = false; #endif @@ -737,7 +737,7 @@ long default_event_handler_ex(long event, void (*callback)(void *), void *parame lo_unplug_change(false); return SYS_LINEOUT_UNPLUGGED; #endif -#if CONFIG_PLATFORM & (PLATFORM_ANDROID|PLATFORM_MAEMO) +#if CONFIG_PLATFORM & (PLATFORM_ANDROID) /* stop playback if we receive a call */ case SYS_CALL_INCOMING: resume = audio_status() == AUDIO_STATUS_PLAY; diff --git a/debian/README.Debian b/debian/README.Debian deleted file mode 100644 index f322765ed1..0000000000 --- a/debian/README.Debian +++ /dev/null @@ -1,7 +0,0 @@ -rockbox 3.13.x for Maemo --------------------------- - -Rockbox for maemo technial preview release. - -Known issues: -- Application exit is only possible with CTRL+BACKSPACE diff --git a/debian/changelog b/debian/changelog deleted file mode 100644 index ca04675a41..0000000000 --- a/debian/changelog +++ /dev/null @@ -1,113 +0,0 @@ -rockbox (2013-03-10maemo1) unstable; urgency=low - - * Update to rockbox 3.13 code base (v3.13-final) - - -- Thomas Jarosch Sun, 10 Mar 2013 19:00:00 +0100 - -rockbox (2012-12-26maemo1) unstable; urgency=low - - * Update to rockbox 3.12 code base (v3.12-final) - - -- Thomas Jarosch Wed, 26 Dec 2012 19:00:00 +0100 - -rockbox (2011-12-10maemo1) unstable; urgency=low - - * Update to rockbox 3.10 code base (r31165) - * Patch: Added software mixer performance fix on N900 - * Patch: Added pcm locking code on N900 - * Patch: Assembler optimized software mixing (FS #12421) - - -- Thomas Jarosch Sat, 10 Dec 2011 19:00:00 +0100 - -rockbox (2011-06-28maemo1) unstable; urgency=low - - * Update to rockbox 3.9 code base - - -- Thomas Jarosch Tue, 28 Jun 2011 19:00:00 +0100 - -rockbox (2011-04-16maemo1) unstable; urgency=low - - * Fix premature idle shutdown after last track finished playing - * Update to latest rockbox SVN code - - -- Thomas Jarosch Fri, 16 Apr 2011 19:15:00 +0100 - -rockbox (2011-03-18maemo0) unstable; urgency=low - - * Implemented RTC support (timestamps in last.FM scrobbler log) - * Working sleep timer - * Working idle poweroff - * Support for antialised fonts (not in use yet) - * Update to latest rockbox SVN code - - -- Thomas Jarosch Fri, 18 Mar 2011 22:00:00 +0100 - -rockbox (2011-02-27maemo0) unstable; urgency=low - - * Fix/enable assembler optimizations on public build - * Change play/pause button so that it shows - the click action and not the current state - - -- Thomas Jarosch Sun, 27 Feb 2011 19:00:00 +0100 - -rockbox (2011-02-25maemo0) unstable; urgency=low - - * Embedded album art support - * Fixed bookmark handling - * Prevent stuck up/down buttons on N900 with shared cursor keys - * Fixed Last.FM scrobbler log file - * New threading code uses less CPU - * Fix rare hang on shutdown - * Small fixes to the metadata parser - * Update to rockbox SVN code - - -- Thomas Jarosch Fri, 25 Feb 2011 18:10:00 +0100 - -rockbox (2011-01-26maemo0) unstable; urgency=low - - * Bluetooth headset support - * Ignore preinstalled sounds in /usr/share/sounds - - -- Thomas Jarosch Wed, 26 Jan 2011 22:50:00 +0100 - -rockbox (2011-01-12maemo0) unstable; urgency=low - - * Always show prev/next track button - * Bind enter key to rockbock's center button (all platforms) - * Bind more keys on n8xx (maemo4) - * Update to latest rockbox SVN code - - -- Thomas Jarosch Wed, 12 Jan 2011 19:42:00 +0100 - -rockbox (2011-01-04maemo0) unstable; urgency=low - - * Update to latest rockbox SVN code (regenerates the database) - * Test automatic garage build - * Fix x86 build targets - - -- Thomas Jarosch Tue, 04 Jan 2011 00:20:00 +0100 - - -rockbox (2011-01-02maemo0) unstable; urgency=low - - * New version number to indicate this build is work in progress - - -- Thomas Jarosch Sun, 02 Jan 2011 00:05:00 +0100 - - -rockbox (3.7.2maemo2) unstable; urgency=low - - * Fix duplicate database entries - * Initial rockbox plugin support: - - Small tools in the context menu - - mikmod (.mod, .s3m, .xm etc) support - - Credits screen - - -- Thomas Jarosch Sat, 01 Jan 2011 19:01:00 +0100 - - -rockbox (3.7.2maemo1) unstable; urgency=low - - * Initial release for Nokia N900 - - -- Thomas Jarosch Thu, 30 Dec 2010 16:18:05 +0100 diff --git a/debian/compat b/debian/compat deleted file mode 100644 index 7ed6ff82de..0000000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -5 diff --git a/debian/control b/debian/control deleted file mode 100644 index 42d64bf150..0000000000 --- a/debian/control +++ /dev/null @@ -1,82 +0,0 @@ -Source: rockbox -Section: user/multimedia -Priority: extra -Maintainer: Thomas Jarosch -Build-Depends: debhelper (>= 5), pkg-config, maemo-version-dev, - libosso-dev, libglib2.0-dev, libhal-dev, osso-af-settings, - libsdl1.2-dev, libxml2-dev, - libgstreamer0.10-dev | maemo-version-dev (<= 5), - libgstreamer-plugins-base0.10-dev | maemo-version-dev (<= 5), - libgstreamer-plugins-base0.10-dev | maemo-version-dev (<= 5), - libplayback-1-dev | maemo-version-dev (<= 5) -# Note: This is the -debian- standards version, not rockbox -Standards-Version: 3.7.2 - -Package: rockbox -Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} -Description: Rockbox open source high quality audio player -XB-Maemo-Display-Name: Rockbox audio player -XB-Maemo-Upgrade-Description: Update to rockbox 3.13 code base -XSBC-Bugtracker: http://www.rockbox.org/tracker/ -XB-Maemo-Icon-26: - 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 - rkJggg== - -Package: rockbox-doc -Architecture: all -Description: Documentation for rockbox - -Package: rockbox-dbg -Section: devel -Architecture: any -Depends: rockbox (= ${Source-Version}) -Description: Debug symbols for rockbox diff --git a/debian/copyright b/debian/copyright deleted file mode 100644 index 381623dc88..0000000000 --- a/debian/copyright +++ /dev/null @@ -1,30 +0,0 @@ -This package was debianized by Thomas Jarosch on -Thu, 30 Dec 2010 16:18:05 -0500. - -It was downloaded from www.rockbox.org / svn://svn.rockbox.org/rockbox/trunk - -Upstream Author: The rockbox team - see docs/CREDITS for all the names - -Copyright: 2001-2013 - The rockbox team - -License: - - This package is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This package is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this package; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -On Debian systems, the complete text of the GNU General -Public License can be found in `/usr/share/common-licenses/GPL'. - -The Debian packaging is (C) 2010, Thomas Jarosch and -is licensed under the GPL, see above. diff --git a/debian/maemo/rockbox.desktop b/debian/maemo/rockbox.desktop deleted file mode 100644 index 9539c2d21a..0000000000 --- a/debian/maemo/rockbox.desktop +++ /dev/null @@ -1,9 +0,0 @@ -[Desktop Entry] - Encoding=UTF-8 - Version=3.7.1 - Type=Application - Name=Rockbox - Exec=/opt/rockbox/bin/rockbox - Icon=rockbox - X-HildonDesk-ShowInToolbar=true - X-Osso-Type=application/x-executable diff --git a/debian/maemo/rockbox.png b/debian/maemo/rockbox.png deleted file mode 100644 index 076f349c43d5ff5767ffe5b1fb55c97db018ec6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3110 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 ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2010 by Thomas Jarosch - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - - -#include -#include -#include - -#include "config.h" -#include "system.h" -#include "kernel.h" -#include "thread.h" -#include "power.h" -#include "debug.h" -#include "button.h" - -/* Battery status information */ -#define BME_UDI "/org/freedesktop/Hal/devices/bme" -#define BATTERY_PERCENTAGE "battery.charge_level.percentage" -#define BATTER_REMAINING_TIME "battery.remaining_time" - -/* Bluetooth headset support */ -#define BT_HEADSET_UDI "/org/freedesktop/Hal/devices/computer_logicaldev_input_1" - -GMainLoop *maemo_main_loop = NULL; -osso_context_t *maemo_osso_ctx = NULL; - -volatile int maemo_display_on = 1; -volatile int maemo_battery_level = 0; -volatile int maemo_remaining_time_sec = 0; - -void display_status_callback(osso_display_state_t state, gpointer data) -{ - (void)data; - - if (state == OSSO_DISPLAY_OFF) - maemo_display_on = 0; - else - maemo_display_on = 1; -} - - -void get_battery_values(LibHalContext *ctx) -{ - /* Get initial battery percentage and remaining time */ - maemo_battery_level = libhal_device_get_property_int( - ctx, BME_UDI, - BATTERY_PERCENTAGE, NULL); - - maemo_remaining_time_sec = libhal_device_get_property_int( - ctx, BME_UDI, - BATTER_REMAINING_TIME, NULL); - - DEBUGF("[maemo] Battery percentage: %d, remaining_time_sec: %d\n", maemo_battery_level, maemo_remaining_time_sec); -} - -static void on_battery_changed (LibHalContext *ctx, - const char *udi, - const char *key, - dbus_bool_t is_removed, - dbus_bool_t is_added) -{ - (void)is_removed; - (void)is_added; - - if (!g_str_equal (udi, BME_UDI)) - return; - - if (!g_str_equal (key, BATTERY_PERCENTAGE) && !g_str_equal (key, BATTER_REMAINING_TIME)) - return; - - get_battery_values(ctx); -} - -static void on_bt_button_pressed(LibHalContext *ctx, - const char *udi, - const char *condition_name, - const char *condition_detail) -{ - (void)ctx; - - if (!g_str_equal (udi, BT_HEADSET_UDI) || !g_str_equal(condition_name, "ButtonPressed")) - return; - - sim_enter_irq_handler(); - - if (g_str_equal(condition_detail, "play-cd") || g_str_equal(condition_detail, "pause-cd")) - button_queue_post(BUTTON_MULTIMEDIA_PLAYPAUSE, 0); - else if (g_str_equal(condition_detail, "stop-cd")) - button_queue_post(BUTTON_MULTIMEDIA_STOP, 0); - else if (g_str_equal(condition_detail, "next-song")) - button_queue_post(BUTTON_MULTIMEDIA_NEXT, 0); - else if (g_str_equal(condition_detail, "previous-song")) - button_queue_post(BUTTON_MULTIMEDIA_PREV, 0); - else if (g_str_equal(condition_detail, "fast-forward")) - button_queue_post(BUTTON_MULTIMEDIA_FFWD, 0); - else if (g_str_equal(condition_detail, "rewind")) - button_queue_post(BUTTON_MULTIMEDIA_REW, 0); - - sim_exit_irq_handler(); -} - -int maemo_thread_func (void *wait_for_osso_startup) -{ - maemo_main_loop = g_main_loop_new (NULL, FALSE); - - /* Register display callback */ - maemo_osso_ctx = osso_initialize ("rockbox", "666", FALSE, NULL); - osso_hw_set_display_event_cb(maemo_osso_ctx, display_status_callback, NULL); - - /* Register battery status callback */ - LibHalContext *hal_ctx; - hal_ctx = libhal_ctx_new(); - - DBusConnection *system_bus = (DBusConnection*)osso_get_sys_dbus_connection(maemo_osso_ctx); - libhal_ctx_set_dbus_connection(hal_ctx, system_bus); - - libhal_ctx_init(hal_ctx, NULL); - libhal_ctx_set_device_property_modified (hal_ctx, on_battery_changed); - libhal_device_add_property_watch (hal_ctx, BME_UDI, NULL); - - /* Work around libhal API issue: We need to add a property watch - to get the condition change callback working */ - libhal_device_add_property_watch (hal_ctx, BT_HEADSET_UDI, NULL); - libhal_ctx_set_device_condition(hal_ctx, on_bt_button_pressed); - - get_battery_values(hal_ctx); - - /* let system_init proceed */ - SDL_SemPost((SDL_sem *)wait_for_osso_startup); - - g_main_loop_run (maemo_main_loop); - - /* Cleanup */ - osso_deinitialize (maemo_osso_ctx); - libhal_device_remove_property_watch (hal_ctx, BT_HEADSET_UDI, NULL); - libhal_device_remove_property_watch (hal_ctx, BME_UDI, NULL); - libhal_ctx_shutdown (hal_ctx, NULL); - libhal_ctx_free(hal_ctx); - - return 0; -} - -/* Returns battery level in percent */ -int _battery_level(void) -{ - return maemo_battery_level; -} - -/* Return remaining battery time in minutes */ -int _battery_time(void) -{ - return maemo_remaining_time_sec / 60; -} diff --git a/firmware/target/hosted/maemo/maemo-thread.h b/firmware/target/hosted/maemo/maemo-thread.h deleted file mode 100644 index a0996b4945..0000000000 --- a/firmware/target/hosted/maemo/maemo-thread.h +++ /dev/null @@ -1,36 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2010 by Thomas Jarosch - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ -#ifndef __MAEMO_THREAD_H__ -#define __MAEMO_THREAD_H__ - -#include -#include - -extern osso_context_t *maemo_osso_ctx; -extern GMainLoop *maemo_main_loop; - -extern volatile int maemo_display_on; -extern volatile int maemo_has_input_focus; - -int maemo_thread_func(void *unused); -void pcm_shutdown_gstreamer(void); - -#endif diff --git a/firmware/target/hosted/maemo/pcm-gstreamer.c b/firmware/target/hosted/maemo/pcm-gstreamer.c deleted file mode 100644 index 33fa6d343f..0000000000 --- a/firmware/target/hosted/maemo/pcm-gstreamer.c +++ /dev/null @@ -1,451 +0,0 @@ -/*************************************************************************** - * __________ __ ___. - * Open \______ \ ____ ____ | | _\_ |__ _______ ___ - * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / - * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < - * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ - * \/ \/ \/ \/ \/ - * $Id$ - * - * Copyright (C) 2010 by Thomas Jarosch - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY - * KIND, either express or implied. - * - ****************************************************************************/ - - -#include "autoconf.h" - -#include -#include "config.h" -#include "debug.h" -#include "sound.h" -#include "audiohw.h" -#include "system.h" -#include "settings.h" - -#include "playback.h" -#include "kernel.h" - -#include -#include -#include -#include -#include -#include - -/* Maemo5: N900 specific libplayback support */ -#include -#include -#include -#include "maemo-thread.h" - -#ifdef HAVE_RECORDING -#include "audiohw.h" -#ifdef HAVE_SPDIF_IN -#include "spdif.h" -#endif -#endif - -#include "pcm.h" -#include "pcm-internal.h" -#include "pcm_sampr.h" - -/*#define LOGF_ENABLE*/ -#include "logf.h" - -#ifdef DEBUG -#include -extern bool debug_audio; -#endif - -/* Declarations for libplayblack */ -pb_playback_t *playback = NULL; -void playback_state_req_handler(pb_playback_t *pb, - enum pb_state_e req_state, - pb_req_t *ext_req, - void *data); -void playback_state_req_callback(pb_playback_t *pb, - enum pb_state_e granted_state, - const char *reason, - pb_req_t *req, - void *data); -bool playback_granted = false; - -/* Gstreamer related vars */ -GstCaps *gst_audio_caps = NULL; -GstElement *gst_pipeline = NULL; -GstElement *gst_appsrc = NULL; -GstElement *gst_volume = NULL; -GstElement *gst_pulsesink = NULL; -GstBus *gst_bus = NULL; -static int bus_watch_id = 0; -GMainLoop *pcm_loop = NULL; - -static const void* pcm_data = NULL; -static size_t pcm_data_size = 0; - -static int audio_locked = 0; -static pthread_mutex_t audio_lock_mutex = PTHREAD_MUTEX_INITIALIZER; -static int inside_feed_data = 0; - -/* - * mutex lock/unlock wrappers neatness' sake - */ -static inline void lock_audio(void) -{ - pthread_mutex_lock(&audio_lock_mutex); -} - -static inline void unlock_audio(void) -{ - pthread_mutex_unlock(&audio_lock_mutex); -} - -void pcm_play_lock(void) -{ - if (++audio_locked == 1) - lock_audio(); -} - -void pcm_play_unlock(void) -{ - if (--audio_locked == 0) - unlock_audio(); -} - -void pcm_dma_apply_settings(void) -{ -} - -void pcm_play_dma_start(const void *addr, size_t size) -{ - pcm_data = addr; - pcm_data_size = size; - - if (playback_granted) - { - /* Start playing now */ - if (!inside_feed_data) - gst_element_set_state (GST_ELEMENT(gst_pipeline), GST_STATE_PLAYING); - else - DEBUGF("ERROR: dma_start called while inside feed_data\n"); - } else - { - /* N900: Request change to playing state */ - pb_playback_req_state (playback, - PB_STATE_PLAY, - playback_state_req_callback, - NULL); - } -} - -void pcm_play_dma_stop(void) -{ - if (inside_feed_data) - g_signal_emit_by_name (gst_appsrc, "end-of-stream", NULL); - else - gst_element_set_state (GST_ELEMENT(gst_pipeline), GST_STATE_NULL); -} - -static void feed_data(GstElement * appsrc, guint size_hint, void *unused) -{ - (void)size_hint; - (void)unused; - - lock_audio(); - - /* Make sure we don't trigger a gst_element_set_state() call - from inside gstreamer's stream thread as it will deadlock */ - inside_feed_data = 1; - - if (pcm_play_dma_complete_callback(PCM_DMAST_OK, &pcm_data, &pcm_data_size)) - { - GstBuffer *buffer = gst_buffer_new (); - GstFlowReturn ret; - - GST_BUFFER_DATA (buffer) = (__u8 *)pcm_data; - GST_BUFFER_SIZE (buffer) = pcm_data_size; - - g_signal_emit_by_name (appsrc, "push-buffer", buffer, &ret); - gst_buffer_unref (buffer); - - if (ret != 0) - DEBUGF("push-buffer error result: %d\n", ret); - - pcm_play_dma_status_callback(PCM_DMAST_STARTED); - } else - { - DEBUGF("feed_data: No Data.\n"); - g_signal_emit_by_name (appsrc, "end-of-stream", NULL); - } - - inside_feed_data = 0; - - unlock_audio(); -} - -static gboolean -gst_bus_message (GstBus * bus, GstMessage * message, void *unused) -{ - (void)bus; - (void)unused; - - DEBUGF(" [gst] got BUS message %s\n", - gst_message_type_get_name (GST_MESSAGE_TYPE (message))); - - switch (GST_MESSAGE_TYPE (message)) { - case GST_MESSAGE_ERROR: - { - GError *err; - gchar *debug; - gst_message_parse_error (message, &err, &debug); - - DEBUGF("[gst] Received error: Src: %s, msg: %s\n", GST_MESSAGE_SRC_NAME(message), err->message); - - g_error_free (err); - g_free (debug); - } - - g_main_loop_quit (pcm_loop); - break; - case GST_MESSAGE_EOS: - gst_element_set_state (GST_ELEMENT(gst_pipeline), GST_STATE_NULL); - break; - case GST_MESSAGE_STATE_CHANGED: - { - GstState old_state, new_state; - - gst_message_parse_state_changed (message, &old_state, &new_state, NULL); - DEBUGF("[gst] Element %s changed state from %s to %s.\n", - GST_MESSAGE_SRC_NAME(message), - gst_element_state_get_name (old_state), - gst_element_state_get_name (new_state)); - break; - } - default: - break; - } - - return TRUE; -} - -void maemo_configure_appsrc(void) -{ - /* Block push-buffer until there is enough room */ - g_object_set (G_OBJECT(gst_appsrc), "block", TRUE, NULL); - - g_object_set(G_OBJECT(gst_appsrc), "format", GST_FORMAT_BYTES, NULL); - - gst_audio_caps = gst_caps_new_simple("audio/x-raw-int", "width", G_TYPE_INT, (gint)16, "depth", G_TYPE_INT, (gint)16, "channels" ,G_TYPE_INT, (gint)2, - "signed",G_TYPE_BOOLEAN,1, - "rate",G_TYPE_INT,44100,"endianness",G_TYPE_INT,(gint)1234,NULL); - - g_object_set (G_OBJECT(gst_appsrc), "caps", gst_audio_caps, NULL); - - gst_app_src_set_stream_type(GST_APP_SRC(gst_appsrc), - GST_APP_STREAM_TYPE_STREAM); - - /* configure the appsrc, we will push data into the appsrc from the - * mainloop. */ - g_signal_connect (gst_appsrc, "need-data", G_CALLBACK (feed_data), NULL); -} - -/* Init libplayback: Grant access rights to - play audio while the phone is in silent mode */ -void maemo_init_libplayback(void) -{ - DBusConnection *session_bus_raw = (DBusConnection*)osso_get_dbus_connection(maemo_osso_ctx); - - playback = pb_playback_new_2(session_bus_raw, - PB_CLASS_MEDIA, - PB_FLAG_AUDIO, - PB_STATE_STOP, - playback_state_req_handler, - NULL); - - pb_playback_set_stream(playback, "Playback Stream"); -} - -/** - * Gets called by the policy framework if an important - * event arrives: Incoming calls etc. - */ -void maemo_tell_rockbox_to_stop_audio(void) -{ - sim_enter_irq_handler(); - queue_broadcast(SYS_CALL_INCOMING, 0); - sim_exit_irq_handler(); - - osso_system_note_infoprint(maemo_osso_ctx, "Stopping rockbox playback", NULL); -} - -void playback_state_req_handler(pb_playback_t *pb, - enum pb_state_e req_state, - pb_req_t *ext_req, - void *data) -{ - (void)pb; - (void)ext_req; - (void)data; - - DEBUGF("External state change request: state: %s, data: %p\n", - pb_state_to_string(req_state), data); - - if (req_state == PB_STATE_STOP && playback_granted) - { - DEBUGF("Stopping playback, might be an incoming call\n"); - - playback_granted = false; - maemo_tell_rockbox_to_stop_audio(); - } -} - -/** - * Callback for our own state change request. - */ -void playback_state_req_callback(pb_playback_t *pb, enum pb_state_e granted_state, const char *reason, pb_req_t *req, void *data) -{ - (void)data; - (void)reason; - - DEBUGF("State request callback: granted_state: %s, reason: %s\n", - pb_state_to_string(granted_state), reason); - - /* We are allowed to play audio */ - if (granted_state == PB_STATE_PLAY) - { - DEBUGF("Playback granted. Start playing...\n"); - playback_granted = true; - if (!inside_feed_data) - gst_element_set_state (GST_ELEMENT(gst_pipeline), GST_STATE_PLAYING); - } else - { - DEBUGF("Can't start playing. Throwing away play request\n"); - - playback_granted = false; - maemo_tell_rockbox_to_stop_audio(); - } - - pb_playback_req_completed(pb, req); -} - -void pcm_play_dma_init(void) -{ - maemo_init_libplayback(); - - GMainContext *ctx = g_main_loop_get_context(maemo_main_loop); - pcm_loop = g_main_loop_new (ctx, true); - - gst_init (NULL, NULL); - - gst_pipeline = gst_pipeline_new ("rockbox"); - - gst_appsrc = gst_element_factory_make ("appsrc", NULL); - gst_volume = gst_element_factory_make ("volume", NULL); - gst_pulsesink = gst_element_factory_make ("pulsesink", NULL); - - /* Connect elements */ - gst_bin_add_many (GST_BIN (gst_pipeline), - gst_appsrc, gst_volume, gst_pulsesink, NULL); - gst_element_link_many (gst_appsrc, gst_volume, gst_pulsesink, NULL); - - /* Connect to gstreamer bus of the pipeline */ - gst_bus = gst_pipeline_get_bus (GST_PIPELINE (gst_pipeline)); - bus_watch_id = gst_bus_add_watch (gst_bus, (GstBusFunc) gst_bus_message, NULL); - - maemo_configure_appsrc(); -} - -void pcm_shutdown_gstreamer(void) -{ - /* Try to stop playing */ - gst_element_set_state (GST_ELEMENT(gst_pipeline), GST_STATE_NULL); - - /* Make sure we are really stopped. This should return almost instantly, - so we wait up to ten seconds and just continue otherwise */ - gst_element_get_state (GST_ELEMENT(gst_pipeline), NULL, NULL, GST_SECOND * 10); - - g_source_remove (bus_watch_id); - g_object_unref(gst_bus); - gst_bus = NULL; - - gst_object_unref (gst_pipeline); - gst_pipeline = NULL; - - /* Shutdown libplayback and gstreamer */ - pb_playback_destroy (playback); - gst_deinit(); - - g_main_loop_quit(pcm_loop); - g_main_loop_unref (pcm_loop); - - pthread_mutex_destroy(&audio_lock_mutex); -} - -void pcm_play_dma_postinit(void) -{ -} - -void pcm_set_mixer_volume(int volume) -{ - /* gstreamer volume range is from 0.00 to 1.00 - * input is -990..0 */ - gdouble gst_vol = 1.0f - (gdouble)volume / -990.0f; - g_object_set (G_OBJECT(gst_volume), "volume", gst_vol, NULL); -} - - -#ifdef HAVE_RECORDING -void pcm_rec_lock(void) -{ -} - -void pcm_rec_unlock(void) -{ -} - -void pcm_rec_dma_init(void) -{ -} - -void pcm_rec_dma_close(void) -{ -} - -void pcm_rec_dma_start(void *start, size_t size) -{ - (void)start; - (void)size; -} - -void pcm_rec_dma_stop(void) -{ -} - -const void * pcm_rec_dma_get_peak_buffer(void) -{ - return NULL; -} - -void audiohw_set_recvol(int left, int right, int type) -{ - (void)left; - (void)right; - (void)type; -} - -#ifdef HAVE_SPDIF_IN -unsigned long spdif_measure_frequency(void) -{ - return 0; -} -#endif - -#endif /* HAVE_RECORDING */ diff --git a/firmware/target/hosted/sdl/app/button-application.c b/firmware/target/hosted/sdl/app/button-application.c index 8071df201a..1f908ebfc5 100644 --- a/firmware/target/hosted/sdl/app/button-application.c +++ b/firmware/target/hosted/sdl/app/button-application.c @@ -37,9 +37,6 @@ int key_to_button(int keyboard_key) int new_btn = BUTTON_NONE; switch (keyboard_key) { -#if (CONFIG_PLATFORM & PLATFORM_MAEMO4) - case SDLK_ESCAPE: -#endif case SDLK_KP_7: new_btn = BUTTON_TOPLEFT; break; @@ -47,36 +44,20 @@ int key_to_button(int keyboard_key) case SDLK_UP: new_btn = BUTTON_TOPMIDDLE; break; -#if (CONFIG_PLATFORM & PLATFORM_MAEMO4) - case SDLK_F7: -#endif case SDLK_KP_9: new_btn = BUTTON_TOPRIGHT; break; -#if (CONFIG_PLATFORM & PLATFORM_PANDORA) - case SDLK_RSHIFT: -#endif case SDLK_KP_4: case SDLK_LEFT: new_btn = BUTTON_MIDLEFT; break; -#if (CONFIG_PLATFORM & PLATFORM_MAEMO|PLATFORM_PANDORA) - case SDLK_RETURN: - case SDLK_KP_ENTER: -#endif case SDLK_KP_5: new_btn = BUTTON_CENTER; break; -#if (CONFIG_PLATFORM & PLATFORM_PANDORA) - case SDLK_RCTRL: -#endif case SDLK_KP_6: case SDLK_RIGHT: new_btn = BUTTON_MIDRIGHT; break; -#if (CONFIG_PLATFORM & PLATFORM_MAEMO4) - case SDLK_F6: -#endif case SDLK_KP_1: new_btn = BUTTON_BOTTOMLEFT; break; @@ -84,9 +65,6 @@ int key_to_button(int keyboard_key) case SDLK_DOWN: new_btn = BUTTON_BOTTOMMIDDLE; break; -#if (CONFIG_PLATFORM & PLATFORM_MAEMO4) - case SDLK_F8: -#endif case SDLK_KP_3: new_btn = BUTTON_BOTTOMRIGHT; break; diff --git a/firmware/target/hosted/sdl/button-sdl.c b/firmware/target/hosted/sdl/button-sdl.c index d8564e12f6..00b1016f2a 100644 --- a/firmware/target/hosted/sdl/button-sdl.c +++ b/firmware/target/hosted/sdl/button-sdl.c @@ -81,10 +81,6 @@ SDL_Cursor *sdl_arrow_cursor = NULL; int sdl_app_has_input_focus = 1; -#if (CONFIG_PLATFORM & PLATFORM_MAEMO) -static int n900_updown_key_pressed = 0; -#endif - #ifdef HAS_BUTTON_HOLD bool hold_button_state = false; bool button_hold(void) { @@ -288,28 +284,6 @@ static bool event_handler(SDL_Event *event) case SDL_KEYDOWN: case SDL_KEYUP: ev_key = event->key.keysym.sym; -#if (CONFIG_PLATFORM & PLATFORM_MAEMO5) - /* N900 with shared up/down cursor mapping. Seen on the German, - Finnish, Italian, French and Russian version. Probably more. */ - if (event->key.keysym.mod & KMOD_MODE || n900_updown_key_pressed) - { - /* Prevent stuck up/down keys: If you release the ALT key before the cursor key, - rockbox will see a KEYUP event for left/right instead of up/down and - the previously pressed up/down key would stay active. */ - if (ev_key == SDLK_LEFT || ev_key == SDLK_RIGHT) - { - if (event->type == SDL_KEYDOWN) - n900_updown_key_pressed = 1; - else - n900_updown_key_pressed = 0; - } - - if (ev_key == SDLK_LEFT) - ev_key = SDLK_UP; - else if (ev_key == SDLK_RIGHT) - ev_key = SDLK_DOWN; - } -#endif button_event(ev_key, event->type == SDL_KEYDOWN); break; @@ -463,9 +437,6 @@ static void show_sim_help(void) #ifdef HAVE_HOTSWAP HELPTXT(EXT_KEY, "toggle external drive"); #endif -#if (CONFIG_PLATFORM & PLATFORM_PANDORA) - HELPTXT(SDLK_LCTRL, "shutdown"); -#endif #ifdef HAS_BUTTON_HOLD HELPTXT(SDLK_h, "toggle hold button"); #endif @@ -586,12 +557,6 @@ static void button_event(int key, bool pressed) return; #endif #endif -#if (CONFIG_PLATFORM & PLATFORM_PANDORA) - case SDLK_LCTRL: - /* Will post SDL_USEREVENT in shutdown_hw() if successful. */ - sys_poweroff(); - break; -#endif #ifdef RG_NANO case SDLK_q: /* Use reboot to exit without shutting down */ diff --git a/firmware/target/hosted/sdl/lcd-bitmap.c b/firmware/target/hosted/sdl/lcd-bitmap.c index c50d5fdb00..4f44506f3c 100644 --- a/firmware/target/hosted/sdl/lcd-bitmap.c +++ b/firmware/target/hosted/sdl/lcd-bitmap.c @@ -25,9 +25,6 @@ #include "button-sdl.h" #include "lcd-sdl.h" #include "screendump.h" -#if (CONFIG_PLATFORM & PLATFORM_MAEMO) -#include "maemo-thread.h" -#endif SDL_Surface* lcd_surface; @@ -125,16 +122,6 @@ void lcd_update(void) void lcd_update_rect(int x_start, int y_start, int width, int height) { -#if (CONFIG_PLATFORM & PLATFORM_MAEMO) - /* Don't update display if not shown */ - if (!maemo_display_on) - return; - - /* Don't update if we don't have the input focus */ - if (!sdl_app_has_input_focus) - return; -#endif - sdl_update_rect(lcd_surface, x_start, y_start, width, height, LCD_WIDTH, LCD_HEIGHT, get_lcd_pixel); sdl_gui_update(lcd_surface, x_start, y_start, width, diff --git a/firmware/target/hosted/sdl/lcd-sdl.c b/firmware/target/hosted/sdl/lcd-sdl.c index 641fc3f1c3..a2c5cea647 100644 --- a/firmware/target/hosted/sdl/lcd-sdl.c +++ b/firmware/target/hosted/sdl/lcd-sdl.c @@ -151,15 +151,7 @@ void sdl_set_gradient(SDL_Surface *surface, SDL_Color *start, SDL_Color *end, int lcd_get_dpi(void) { -#if (CONFIG_PLATFORM & PLATFORM_MAEMO5) - return 267; -#elif (CONFIG_PLATFORM & PLATFORM_MAEMO4) - return 225; -#elif (CONFIG_PLATFORM & PLATFORM_PANDORA) - return 217; -#else /* TODO: find a way to query it from the OS, SDL doesn't support it * directly; for now assume the more or less standard 96 */ return 96; -#endif } diff --git a/firmware/target/hosted/sdl/system-sdl.c b/firmware/target/hosted/sdl/system-sdl.c index ec7ba8f36c..639f2baeef 100644 --- a/firmware/target/hosted/sdl/system-sdl.c +++ b/firmware/target/hosted/sdl/system-sdl.c @@ -44,12 +44,6 @@ #include "panic.h" #include "debug.h" -#if (CONFIG_PLATFORM & PLATFORM_MAEMO) -#include -#include -#include "maemo-thread.h" -#endif - #if defined(RG_NANO) && !defined(SIMULATOR) #include #include "instant_play.h" @@ -116,14 +110,6 @@ static int sdl_event_thread(void * param) #endif /* !HAVE_TOUCHSCREEN */ #endif /* !SIMULATOR */ -#if (CONFIG_PLATFORM & PLATFORM_MAEMO) - /* start maemo thread: Listen to display on/off events and battery monitoring */ - SDL_sem *wait_for_maemo_startup = SDL_CreateSemaphore(0); /* 0-count so it blocks */ - SDL_Thread *maemo_thread = SDL_CreateThread(maemo_thread_func, NULL, wait_for_maemo_startup); - SDL_SemWait(wait_for_maemo_startup); - SDL_DestroySemaphore(wait_for_maemo_startup); -#endif - #if SDL_MAJOR_VERSION == 1 SDL_InitSubSystem(SDL_INIT_VIDEO); @@ -151,19 +137,6 @@ static int sdl_event_thread(void * param) /* finally enter the button loop */ gui_message_loop(); -#if (CONFIG_PLATFORM & PLATFORM_MAEMO5) - pcm_shutdown_gstreamer(); -#endif -#if (CONFIG_PLATFORM & PLATFORM_MAEMO) - g_main_loop_quit (maemo_main_loop); - g_main_loop_unref(maemo_main_loop); - SDL_WaitThread(maemo_thread, NULL); -#endif - -#if (CONFIG_PLATFORM & (PLATFORM_MAEMO|PLATFORM_PANDORA)) - SDL_FreeCursor(hiddenCursor); -#endif - /* Order here is relevent to prevent deadlocks and use of destroyed sync primitives by kernel threads */ #ifdef HAVE_SDL_THREADS @@ -246,12 +219,6 @@ void system_init(void) /* fake stack, OS manages size (and growth) */ stackbegin = stackend = (uintptr_t*)&s; -#if (CONFIG_PLATFORM & PLATFORM_MAEMO) - /* Make glib thread safe */ - g_thread_init(NULL); - g_type_init(); -#endif - #if defined(RG_NANO) && !defined(SIMULATOR) /* Set system volume to max with amixer */ system("amixer -q sset 'Headphone' 63 unmute"); diff --git a/firmware/target/hosted/sdl/window-sdl.c b/firmware/target/hosted/sdl/window-sdl.c index fce800d471..05e2772778 100644 --- a/firmware/target/hosted/sdl/window-sdl.c +++ b/firmware/target/hosted/sdl/window-sdl.c @@ -212,8 +212,8 @@ void sdl_window_setup(void) int depth = LCD_DEPTH < 8 ? 16 : LCD_DEPTH; Uint32 flags = SDL_WINDOW_ALLOW_HIGHDPI; -#if (CONFIG_PLATFORM & (PLATFORM_MAEMO|PLATFORM_PANDORA)) - /* Fullscreen mode for maemo app */ +#if 0 + /* Fullscreen mode might be desired */ flags |= SDL_WINDOW_FULLSCREEN; #else if (display_zoom == 1) diff --git a/packaging/pandora/PXML.xml b/packaging/pandora/PXML.xml deleted file mode 100644 index 6b8653b67b..0000000000 --- a/packaging/pandora/PXML.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - Rockbox - - - - rockbox digital music player - - - - - - - - - - - Rockbox - - Rockbox - - - - - - - - - - - - - rockbox digital music player - - - - - - - - - - - - - - - - - - - - - - diff --git a/packaging/pandora/pandora.make b/packaging/pandora/pandora.make deleted file mode 100644 index c0a0ef991d..0000000000 --- a/packaging/pandora/pandora.make +++ /dev/null @@ -1,31 +0,0 @@ -PANDORA_DIR=$(ROOTDIR)/packaging/pandora -PND_MAKE=/usr/local/angstrom/arm/scripts/pnd_make -PND_BUILD_DIR=pnddir - -pnddir: - mkdir $(PND_BUILD_DIR) - -pnd: pnddir $(PND_MAKE) $(DEPFILE) build - # Creating PND file - make PREFIX=$(PND_BUILD_DIR)/rockbox fullinstall - - # Install Pandora build files - cp $(PANDORA_DIR)/PXML.xml $(PND_BUILD_DIR) - cp $(PANDORA_DIR)/rockbox.png $(PND_BUILD_DIR) - cp $(PANDORA_DIR)/rockbox_preview.jpg $(PND_BUILD_DIR) - cp $(PANDORA_DIR)/run_rockbox.sh $(PND_BUILD_DIR) - - # Remove stuff that's broken because of missing keymapping. - # Otherwise the user will have a hard time to shut down rockbox - rm -f $(PND_BUILD_DIR)/rockbox/lib/rockbox/rocks/apps/* - rm -f $(PND_BUILD_DIR)/rockbox/lib/rockbox/rocks/demos/* - rm -f $(PND_BUILD_DIR)/rockbox/lib/rockbox/rocks/games/* - - # Add docs folder - cp -rf $(ROOTDIR)/docs $(PND_BUILD_DIR) - - # Fix up permissions - chmod -R a+r $(PND_BUILD_DIR) - - # Invoke pndmake - $(PND_MAKE) -p rockbox.pnd -d $(PND_BUILD_DIR) -x $(PND_BUILD_DIR)/PXML.xml -i $(PND_BUILD_DIR)/rockbox.png -c diff --git a/packaging/pandora/rockbox.png b/packaging/pandora/rockbox.png deleted file mode 100644 index 076f349c43d5ff5767ffe5b1fb55c97db018ec6f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3110 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%0DrusZLOE%q3 zE*@aNe?2%NC~Gq%r+U8!9pd350=n}9iyZ~~^i#6=&G=Ek{R<1i=#XSqx!3p&DkaMc zNVM`(M$Y&;mlfa>#$NsW1htQdUr-qsD&Z}^ASS6H1iCd3P{T09`})(`xKHF24xA0$ zdSBl!$O!Kc#TQxV+y^cehfhmlvMoZXkV}P5f(_5i!k3{Fv*(c5*HjhKC??LI&yFCz z^$vI%LVNXd zgkJ{#!40BT6OrRcH^fgtWcd|r;{^z%xR?n$hLT>b!TTPXeS8!3$DP`#?GXu;?WAIc zcU^JM7mxMff7a#iL#I?x-pBzv)5It>DB+u6^Ga`NJi5NXSxMl`#h!^A&M<9BtS;^FWY&uO(Sc~&q|PsxP@`)YN`PHN97hIvM=(i1&|;e^{s@n7m@Ox3rqrqqvC>_y zldap}^HIMdDO1a3PyAI#I^`hTH^T?l|1?7T9!talg0OETVpDhB!2PDMTeg z2AspuIW9E^`CPF9Fh8oS#ObG^-T~l3!_?nKN5=2tk0l$XMPz%J&iKESsV}0ipP}SL zZ-4_*$l_t7Hr7`GS8OLw!TRn7lHkgf_|I^o6cQ3SbhH3*Cq{KiA3udZis2{?Q{w8v z1^|>#sQ+r@7TU4AoCRS8qBGCV zf++KxPpRPLKf>n*5{1Sl^#yzxIPWy8_kbQl2R;Cl_607>tbru8eFyaZ?H(FUkQXIVco2yd!XfkWtoAkaL1s9`U#;5^zwHk6k?} zI1K`!q?5skzgTxjP(x8Kdn9KX754uQ&uTkmT<7I}))KLG!1+gI!_AQ0RmY zMFTv_rI^qGh z1cfjOGYYD-CdT^~sjz69}y!Vu^6rrajdK2fsLk+sO$ z>Ab8k*V}LWhduVY+*S6Hrut;xtENFG3YgN^PlSd|wBBQ`L87(BZ>+R8F);AB!VOZW zPkF!3#da?&1#x5)TDYeBq9TJ*NEw&=#D^OU)_c<(tL#kAxwhBydg;6DrzGbt!Ad5w z#n7=~=$FL`;7?X>BmzZ&;0e)rFH!$4Wmib+$xRc(6t1j}+dA1L50sro;}R#r^dpKL zq(X4n-a8S;8y50Em0CH|71PvA-P2MiTGq#y$jFlF-R4T1pu}KmF0OZ2-I!LMU zu_7dd*Jlzg>&Q2Bo1uOxwPAEeCO%HRbji7R& z%p6Wr7CUF6cI|Y^%U9OV-aACYO_uWwllGEXh_ceO4YX|4$_6K3Y4*3-&YIXn#p+Qi ze4MB=*5e_`PE?yP{45nwHTkjHON}M%`DHpSuyB8FC#ydG!2x0v+6H?Y3Zq-63C4eR>Z&LDAN3(ayYJF&JlSERC; zP{wHHv#j2JYMaPEa;OlAi3Mw62~|w#voop_w~f1*6|a@b@RgiIYKqBJq#9OKsEVYp z3|(AG!d#^vNUuPrlo*?GFfe*4b_KDqvNm}1hzz64IO7X(<>iF|&K?5|g}CO^wVHOL z`d%R+`rR6zqa0gY1;sB`s3T6SI<#J|-G3Mjw%Vg*wfA##lc|loESE8@*VK~Dbt5V(W6|Nn$nsO!iiMUU6Kk^_Ahx#wnvh>BEn|4Ou3emgQ?U1C@1E& zu5wN)Sb(J?hVSQOpQKelGgaj?lNa+UFo$TF!;XtyIhxd)J8bCP9anqG{s{J@w^k(+ zdzF=j%d_}5yeHy&YSmPolHG+g?O)~>37K8I@zW>s%Z*yd!zXeL9l(I2DP zVqOLDed&+7DHVLAJ`^QCSr|V-Mz7h7{4#}&e<^Kvq~vw5RCO|y4qJJ->WlBTQNAS$ z+6BytvtI)0lY=yB^-mtta6skiF>2-K&={N9wQHQD(b|0X*b8|jYmp{#(1kdF1yks1 zfngUa;be$69V$PO)Xf?>!kUBdNkjBAxbn~`lCU~gIax4&_IPGoP!Mi|q`~%@rE06A zuoq2OM&unbkJXZC6EoNHs;?ePM!0Hz9F?7$H+eai*zbDb`bfY@$3!Jo;8g||G8dR`0awiX${)JYb@}Alp+cD;npVuE*P3KIn+zar> zU?#4JG+5pGihZxFdYY_TT*-mSB}mu=eV;d7EZ&K3)X@mVELY3xZYva^LN2FlKO(~2 z*lqOo#F$!m^Im_seaEd5Wek!1F9?(3U~i1Pq8Z3Wig@jtYWTeFovusMq)|!({IyZq zf|ny!O+VJw@>#N)wm8i(5;CW7-7cYo9v*Sl^klK+Jlx>2w!^bbmDpzwor+l0s`JKo zR?ko8D;pXlDzk|nt+yWy*Jls4t)aB0JaK+PpDOZQV_bRn5A{nMrJ}5Afl*Hz9LVzW zW3YGPY`LeOI~$w~+o&4dRfji!sC1-~D=Jx&L*RtTK9D86^NTrl)rYaYNFar)b zpdqRU`=D9&)$Dz}wi*^y=ESJa8^(sj^c~8WTg;)!j>_`lYII_fN&nPk7P>nVQnysJWW5UE}7aF=tJ%IUphk!EK_V z_tI{3*ax`E8N6uu9+;``T#c;UerIO1u!D}T18OIgc+B){5-%(S*q>Gki|i676d3s* zSz2yys0*yk%S3gHk zxeK6%d}^}bco{SOo&@gHb%eZk7NUgLaq zmc}JJ*5~`hEsg*9jYpgeE=46UAkv7C%Yt)gGBe2XPF6tTD9Kll<=y@<;Y+;k1JilL zWx)|AG#QfN*Bwe(yBE3{*WtK;d0=LPeWJCEx#Hz9_#a4p$lPWc-%_N-OS@Hcq-oUe z+oq)wzQT7VMee~K+&;T==jK#XhGc%kLm;wfUE)uLeeg~;ygUBq#Cga;-Ze_R@3Z>- zA6Hg1f+;1Vvo%p24bHW730G!oS0y$g&ffI)k4n?Y&QV9(9ptI-+nH|Y?Xo`PquC9A zeTB;%9-NOjQ8Gi&bDmGIoos(qd(m&m9enaGE9pAgG{Q_EX5sv@rODBR-<)RJT`Rr5 zoBhw+8{ogY90&HFd;chI$*UmSe`(=ujq$EKyoiyXDz3J(lGiRK$>){~#+b4eci{Ee zRDb!@ zb(;}WH;uJ^Q#@&9R&Gts#R*WGVx7e5$TPmmN?)hmz;bCBqg9^fJG&Ag;G=6VA)4;3 zSab1e)wMkvTpO6iQ!GJl4id#U%Mb*$%I7%OkOnvx+}{;9SY!R zGhYjM-c|kXo_+EXA!pHBzAv4G`5yHsFqO?8L-(>{0?T2FMxHqj6@T8l{0%(`M>@@2 z)o3lSD}S`(dSuqAbKbPrUR&7GX0H6&mN?tR0@)_R`BZmRHL&<%+njGMnTz>@ z0`# ztb)c!)n#?uuf&Ze@9d1Y00|F3qR6+SEpQn(V-xD}_S52bPoQ3mABlO~^Z`VQ@$p7!&jE)ShAwe&-7u$H|I6wukYjiupQ4Z&*1{o>g}i} z^VL7n;5s`tW|w=DNB#AK?^Dlj6i>;i{k2Ei zmQBt}H&$2?zqbs+ElyQ=wHr|<<)OJwrk$me5-RWR%=PiDDv}dgJJuGl4L*Idv+_;N z?jAlbO4RC3nES;}c0r7qRWG?1m~wiI$#>FAXp@6m!akK%xPFTxoezOCMJcv?fo@V~ ziDYoEr{>KXp9d!?qCvF0o2K=O1FdBkOm6O!rDs(!r2iT9@6D{)b z-SK-+hGNG(T_xGmYiLdccak5F|5T+$T(}bxOlr2FMRQ5(oUU?jfWWyOr<8!zd<_M^ zYp^556BxtNc!+XVq=E(m-yhxawQjY%wYwNXTnmA3!}Z1KH3i&(Fz zTmaq_q+jRiyvfA{G=EdfFvg2d^v>q?EVAbgD9J5wuBd0H)Kz=;F~0r zN5&*fx{aCj7l~N#0b0z>#Vviv3(X?WzDf>PWCjVwcc?S>Ie?VD5=Rr1STiJ9{k{X^ zsUWj1FP$O9n~2+utu3vx00le3T;N%-zO&zf7MrpqHU(aVx)TAtYoYXXr=ui6s3Muc zSuL=Rv)HP-%nrm$B`oB`QRymaO@=0bR**jxrLUAYdu(tT0MC&kDFDS_ZSMyK&LZpE z0DTQ`u1Aq%hSP`39}602kPm{&O#+@`{1WeNl=V5=vfNF zop|%Se!MCg!L1a`hkko~n46dYU5>EudI2+L$RN|y z!8?XKPoVx9Q&6|{U9Sm5M?HUlz&3#Hu(HBn6NuGyYL_2b zTmN}GMGrZhJIM>{9Byb@%OTm|-doC>fAD*jBo;k77H(-LX}L>>UQqv49?bD|=Ja!3 zDc(QnT4+g&2m3#P)n(&F{dRG&eCp?>N^g1iU5lCERIqx2smEfrYC`1)?^QfF!<;k zPk@(LQkc5Dv9G$$#{>LIimr;^>)`JmjkWT_!s?IvhBYd;aGUAl8HuA$jc<_)BlAFY zMqZ#xYkq?0sa13HMlv^ppYAkH$-+S-4YhF7}^n0pnKeyifT==W7*A<~09-nr* z)BbK}D!m}86BXuQbMP7C+)GgEs1u)>FHX0#@DQP2jZc7GiO5p9rkg6rnK4g~*x5@+Vi^O8Oo4I98{hQ#aqgo+ zp!FevJEi@%IkJ2L#+-?LN4Xq3pF6ZYpFY;1e&Cidbi+d=tNtS7&2~BV3bHRj;k$@fjz!#H)73 zr&Yyfn5_wpUh=fV($u0i1Q22K+W@jTv<3d@pWF80;ZcZ#f9Uko_Aj|@TbYuwcL&5Q zRTVc2yGx&iCW@eJTrj>sKMw76YAN)T^QN~ycJFM`E<7yF@`B%R!cAOiVpFk7IRpYk zvkfq?g@_;tR73zFWSMygoUW3(b?=5tHzxmE>FzTNltF@E*&_Q!azF-srjLf9gI(OK({9*W;)mbA_=RgI zowiOCT6DLW3mWZ<#X0=%?#WL7D35tkMa>KO(XdF!T|`zl`2IQFupaXKMbL8gmF=B5 z^5;DUcI2H@#6~cK1Nk zfYp}AGT<+bSvRoNF?ujSTj1%xz!oKS0)IsAtd_vE72^cKBV0XaoP3Cc4+h)OFOiMok}_Lq?cR5McfL#$kt=X_kG3@*vP#up|X+8I8C!1v9!es7YHfL z)reQ;QguQ#(k*K0PF2E`ky#lZ1x&LjCR{Y9Q|s2fk-aM>;h0n~_b6KKV3RGY)Na*^ z;Dw2v^hmXK8p`l*zD0lnqRPZ-^UrJUo&|v#Zwh2}4aJLpe>WeAmODqo zrS`q}rPAPzs7Y`!xA%7|X?~z#a{FGPZ?2O=d^_y!9Wm~wK4FiGG)tD%_|6=~xJZ6c zULHOG3Lm*F{sXy-Z@>KrWWRp9PG3*V^zV!eF|U(P-Ocvh3T;`qVq7}8DesCKtInm@ z+RA?u@e#p%hj~;MNta1?Cb^v1ADsRt#1rUi?s~k&giZaM@5X#QDGlk2x|-&@LT2s_@U z<~}YcaeID(^zigjh66 zI-TZ^uc*BcW)x4Rrr+&X<^m`Na`pw&kp*XAfc~jrFKPO_ARVjID=>M1$%CaH{bTDzhO+6ARw%31q`>yU51^!yAmMm& zP`(>SFo2aqn+%ifqBB?FVeVYXXTX4vAtZ(Q#BrzqQZsOz3@SqvxoiMrGIuZVHLT_$k&Y(d(w!hGgUh?)II!Xb#h#gk0Og@)Lb6mv_19!~H*R0K!Nl`a{=%Jn zAg=l#B!#lzjPHOP2bYKm=qnIZ!vMECQZkIA?$Dp|UpsarKuVS}vjV8{WijU-$R{;s zSx%j5cJbX_hA^@(0xfNzGX3)UdLw{1GhNp+0bt>HR@H0TS2YotbM@O7MB6_SgCvHVDk8AKW#$NghnaC8wyCQei&@>bw|kI$BvKzpYIOn-#o`E# zf)+CyoZ>`HuO7K3W*au7Z)=mj%m}cUv^l|o3y)nA+;kIPX&+9)$_&m<+cK4;uk1?^ zsX%v{5*zug@}+O41H;0CNau8jUxImCh+h0ehRJLd&jG{3Pp$N^0)5y(7&tvwruN|+ zL9k+0ZFdGhpkuM*sg~}2tCzdm4>G+AN1`%VwR?`k)2InmE(k*BtfC(kwJ$A5u|00M>C;}^}Y1fV@r;q^rqdP;XXl$ zTz8ZF>@Tov(~PDzLc)Ms-f&>!d~zDXv@hvN`-}OlglLC7T}s(|hmNDZd5*}6zb78| zmD+Fn`1m6Kf9)auxB0LyWSTkIzWJK;Pmlua@IP1rd=BIJ`F%0+`C#F+?qTEEkxjV; zm)sh^BZO6p9cyVlyQ5rB^#O7=z~64*0?R-vyek zxSte>{q1~eUtKYorztXhQe-5u* z)6_ar3qI>U|0DhG%E9Lj0}1>4q5J_0N6Wi818aPtEc@!&mber8i)=}*_9|r;N@Ox7 za`l}1zNS-rvdG2B9z-w0Jyr-;X`OfPkscrxEu41*#Ec2lu4y#v@Dk2owy}azTiJr4 zpe2RuQVl)aOY|fB%Y+t@8NY`tu4CJ(DFn;F(7hSD4P1_f6E3Rvp>@rfBh_EPe1I_;_QXZQt37vo5Ushi;zUF53}iRaLzwGc*wYkyDxUA6o#r*`zl8qqNddn-6?f z38}Z>+6foqK>$33l^d_{^9M=0reEM)oE1iFJo-*@2_+4^xz;8PUYLL;nm4L+uGUg!D|^f1M~YSYo6XcgC|^-I+cl3j`}M z>s88fhKqtbWD}9JGcOzNCQM57*2j1KtY3(W1usj@+{y0Vy8Gkg?H#Tn3E0omG;Dbe zqU>fx>+QqZhI4-xj-~}xN#{9yW*v&p?V{2;&UEeU&UH=tbHp-6&Xtox`nhxSr{2!7 zAj)5u!(F2BgX!Xm%{ZY+g$RU={t#NoV7lD5n_pyi)JEscFE$`_Hh(vNrWDQ=Dz4%Z zcz7|`7_3E5RnT3TJDsZh{()(X6a{QIY~-^|hG1v*!d>5!v+FHQ@WXMQihpB1d$q8s zdX&4D3KNH!5Q=}xs$})e&}M9pr9^Hp{W0#~@8x>(S8lrDmQZn(;^Nj0qo&b1?QUp9 z>Dnd=y8R$tXc_7D-0gdL=QLj|QDo}tl!?APb*-xJtX!k6Y`~e$d9`Qdwo>zGg>%*~ zAKfU!fNiZjm*LMQav=n0$#8Cr2~r%!8EGGb#2NSt%lhWrS+D8j_#$@WU&Wg%|ADks z7qiPN7R=G)yEG za!50Oiik;pk%^2kDR5PAF8R@o+neG%+B&jTSYP3iVT-idxiX0zk>(JX=u8PnULgD# zuI4gNcnBH$?0fDQ+0n}rTyySIeL58`(qte<3!FGeJ7~S4Eyfd!c#7#@Tfu4_bf!t_({XsS#mVn>wg2T|`@WSp!Yw6QDena;bt~wc{Vpe67%F-Q~*OQs*-UZjE zbNB(&R!vVPrtxk5%{jr+XqII=o&I(F^hV*S{?qT*sR5NuE^6regf!x726ALr`y znJm(NKc8!KyDTB%$Nen$m|1E;E8`G*GSzoFw@=G{q$jw8!c3E7zDoVAju8}`xCBa& z)pq%N%y|PykUe+!e*n$7E1(g9CLVo40Lfj;1s;7D%z1~^u=ZFS1kCM#jNa}s1jt_m zn36@zeU4_=e2YH4JTZs3-YQnsbV*kI?YD5}DxcyI>7^m7WC?I4KzPQHy*#wTM z*(3qyiw`{Rdb6R>oEje_zbx13$5$p-8uc0N5_|APEb)!XBlwohT6+pf+3ikTrD+dw!t2qh;AitURkK z0G0X;DzbhfU*;cRl*h{+uhmbHkg={v;-7;* zKy3BvQi4o?(xHt)MNE8BvG$-}5{v-U2gCP~dH{oRRaRnh;IGBO%!xfw=Dj(1x~lDk z7_nnZAW(YZJ4BEHptS?Aaq(-+4!fm*2DTV5bfJf#KG4#P)Bk~3xP0CS3e1wmt@5`W z=>VIT61O)Z3drF0##fdxXDY{25KV0EvBW1d;a6>)E@vei(uF~?N3L`l#k#c<=w6eP)2^S6yViK=|LNfWyU!F| zE>%tj6tEeqJA3A-6 z|DoY2hb=Dp_UGMYx&Nil-UI0~&aUA0y9DOD2<&$POiaDL5KAErQM6=#S-$!e=jD zqFsy8CpDN=R>tWJ{a~JaLuO~!$cc}9DV>Y*iVeb91+>ZP;l;`_%)y9}eu?!CX1KL{ zBKH!siRY@^q{U?3xodqO$DUC+LS^MnlJ&wto&A@KW-GYj%Jl<$#Ln=J8ec7`&V247 z-m8#CR6rZ5sUoa0OxsL3w*SsKAoqV8zgP3Mn6XBM2iv>4`C_l<4v);w3p-3b9DbHw z@7v5)?3U;|+hRWR(7(!*`}REuQqH))<_B-n@6H#hJdT6>C)Jd;U?F2taSr2pT&Jl#F5@QNLot>>qB(;hgSvhJv7e3bg_mmMLj^yMggK4bWChxzS^GW8l< zU8XRp;POM{qZ97t2F%DTv>$u^)chsmC8KO+GU-YjcXyiorOs+S?E^ad^MwltbU6|U$5CQC)P`-8=ZdE3(si*3)sPQ=}=Ld(bm8;!AT_Y<~dFDdz-!7 zrB(fQCj5Y@cLV-U#rEmxQ4v+^mM41-A9db-_WN73*3AKqkbqtc=hLKeIN3(gnQr+$ zkUV6&a)<20P(#4*vkr#3R(7@r`OF+Wtx^vd4cDf;9g@AS(iMxv!aLc z*iB6}FxR^mPyaK2`Ce(K_52Tc&j)FHq$OOWzt+wo18H>j_mX-ces!VS%ck&OS^NZviC#N>@-CbvJZxUYYvC zOeN(Z$5B!@!TxW*-%{X}*!zQFQ3u_tSA5s>Iu@!t%N|62eytX`v(!>Ez24q0y_h6M zq09xu*I%eLdafSPV(tP+W>*hb!zGF@zcqF-u{!tY6e%@V1y4jGrW*tumdelDnn9A(W0I?>yRG|w`6Zn8-@2&|7k)(&-63ng`nh>Nz5X>wuG{w9- zc;P3^xHJq9w`o6gYT$P{Em$3)vP>MnW0rbiiYEIwL!aGf4p@nVQD}f65XOn*uyx)| z<|l=*t$`3HWR8(ti^*|IRKd&-GoaF-Pt#M-uz)44$fdy~_$rw*04&I2tqip&nKM4NI^JoCXRen~%{*#1HR40F639 zSL_IuuJSB0C}F<PPVACmkf#4rA@EyZAwm;ngJ83Y3$V&oaO*n(hUxSYKP6>=C6Pd*wr3DS+omog(#TEMTYN%dh{MkAe zp!2vYCFQ4?q>6h5OaZPNfZ{{p{@N-)QD8HeN)pUAxDZ4l-sCNof=5GM8C>x|A4Bla zqH}&{KZFz=PZWoFgII@v<8}MIzQrt}Ydl2{J#6*&ar~W0m<4v3pGo;fHUlwb^y>cq zX1o~h5Ri04&fWQqK^vjN)p^uHNj#{qCe0?~sqcK{;AtTwYymScp}%oiAN zG8e?5AVG&UE#NNsw3{lDjC?uCY5=$yu-{6)r^*TI9gmJ95plu73es`G-C`Um?!XRG zwT(%ZL(=4S#SlaA2S{%PK=y|i0%uSL*+Bfi2vsB#nXLu&Gb=bW4dHh$5QmVlg=@}t zE&%r%^mn}c{`2_bun4k0T_%~WH4zM4TA=)mGccNpcnAsx&OeUJhixhrA_koFYBbP2 z_y>Vo=Qg}Ml#=-qlI6Fuek397+$#{Q39=-e?b&X8LJjl4X0>IZoUqAVWr#^}<{c#^iP+R)~R-rvX9mfgz z9^a5xCwMtR$*d@}sYd=@VowT}uh8ExE1>Q%)S~=7HhXWgOZlGM^8;fY2U(zs)q?s3 z=o~?3FZ~Vo}rzMaeEWjM<*(>GaouzdIXMxSraU zD+LWe2@3?U_{-m#JmbsFmp90eF8L}Mp!;ETF85(x+x&26$b%~l@SCrc&x!mB<1#O? z42yH^7YUwm3C0_V5C_wTs-4#18CltSve#W^4VxY>Q+o2~+Ay4Z(Acvg%j(V-Fpt5R znvl*Moxe*_cc`tQI*qm7=r_!aQg#iyivnrJsSr-7vIrkq;K?s|1adp!Dp1v|Kt8-9 z-NzcV{~ArJN8PhC2=wrB9D+`1Rb4q{psxOMXOgTyFU1CG>|_a0t0Hoo_Gl4k2fcNKDe?_ zb!J;2AOag~hfKLDaAj}4HaV%&duUdtzg=ZHs`sr-BG+4QXa|p82W~nLV@!uXbhlGi ze-vA_GdCYRv2lPs_t0O>3~v$7u!Ej0%aAk+U*Bc_6X)Ot*YG5&m;1Ex)Xv$9w<9sE zptZI7;g7HUSr-7JLPnPw`(aoZj+T|}aX3!sNg<#hI zTHSp5&}Lxzo|?Q-v0P@o|LN58JW(FAjur12wWXFmp$Dxbgx`e4{5gv2LCN1}YbI5X zG@s9GY;}jiix4kl9t0_xFSRcp#n_KAuk^~oCr;7nq(GtrgFWfGmzjtCl(@`8rdxt7 zgtR}auLLnXCi0y3>G_jh`uFDCYTkyt51rLXVOW3j)$6SGTIj0YP)(grvAtM^tzD;~ z>F&*HB-22UMt%{nCWhOEuJ4>g2fCyU=H36BXtg_Jt)r8IyA`A8nQPHKG^y7zi(JX* z+kFydJyej%NC;P8&oZD36CjV23*Ezo;)?{?=(0;@ph|t{hm5Q(p0cPSV+NSf3P}>8 zlsrt`U6@OKS%g*mmhB6VG%lvt$%=mS6%o03k!4z`<$d%$1ePp;oR7IJcbF*xi>MM- z(<5Aj2|QOVLBzl5m-EjFu=hPFIlvsFOYr)ny`k+MXa_Ys2OHPm9#q^K-pBkn`z%u4 zuIhT|`3B#=-H$nrp0;bxVR$TWdkF%beo@xQ(G~Q9OpjmRh*D#%^_aQH z;}G8Tcv&Yjk({0t&7>@AdT7`XX5Pg0n`ZI-ectsAFDbfk=FWxD>wLK78Jk;DFUZuD z(u{8p?y1b>N>waEA9@VNT=y(jjqv4u;evF-l|hZT?b#|J*Odd4W%Z^KEb2CMjjT}E zQ%#(~DGN`$UW_*lm`;v#G}ue6DLY-m%J}$HnOSn3)Y@_Vq5WxdDNHmA?|vzi;;u?m z716Jg&qP(cD81;BH+0RK?sa3{;$;4LMV}eFnfBZaf*oZkd`@Xd;;;nDs|WR;o&Rb7 z*zmIAcGu(Dx+@=iv8K1JEySlbeDJ?-=$EN~&XM^=Bl_e53<5K&46Zv_5R)CfLXzF^ zSV$B^NlqzcbHTlOuVr@qv*NfKBg*kz4gReZZuDmdfEwL-JgZKY*)r9=~9UvXqv#EebFSH@qVWxPtX}=;_F*5S}UI z2Q^B~ZH>IaTNG6q+~hr6l`}y2hYWnujJVyPz~3Kfp~<>pW|PnH!O!nc<+N>tjlk3n z-6^P13~(0pe|)B{E~`otvcf+6PQAXaWQIJ{^uQ3CmFuk@oEmn?PSxJYJ;%bzJ{f|f zf+toS)SVw*Gl@S}ztSDD^1GWVWh(U_=*u>+W@vPu$V>c?L0J)Bv{7%)62Oq_BgLB2-s)#qJ>&41)l3;ZwPj;alz zO>wmC-Zd4_(( zTKgtPwd(Xq9y1sYlOZI;#VTMd!FEyc`ya(e1&z8__ec8JIOcZX51V&3sqTE86)L5z z?p`PDXGZ7Ic@V|<7K2K>;_fAnmIRQvE?M8u$dgZV=TVeT_`o7Iz{^|Nv+M#T_!oiWW%Gx%zECZ)_#?Ah zi%+rW%fwrYsgzOkt?YWXGF23jN$IT5yT}gea>e6_e}q@p*TNsZh-_=2zirkaf9D7f zenroUfWpl@iDT=uS4HOt7uYHQo|*KhNM`RPpb zbl6#Y>w{c2`NW|TuzK8BuEZS-cLoLNM>h-LvqZj}60mBleR6`(z>}A-d?}Kq-a?p= z8>>q=-Cb-+EAb)(A?d01&28eBz(OYvA5M`Sz;-I=xJ=4fFZlK4A2RRN8W`#u8vWLL zJa_YYYo1}P6DQ_2PeSRT5w%w5yvrs%4+zEg-@W~o=0>`Nb`l`K6vZv42+Mi@D52M> zAD$$2C}8FRxDH3_PIzz)n}rWj&r0Rcvs1A@eK*(qv&{r|W;joeF5-&EErLejha(=$ z{^9UXx9zdV<(5^}=#G*Z;nmdgi48NKfi5hvdLz{}z@^5ZrP$2#6&%?)aS<%J`l#AB zagmVO)KNlN=%_n#wXvp?s)TP(e9z4&zdvaac`1Fb>U zHL7>$aKGI+EH~Lzbe6{4}EQ^3E1*ElLy+eWso!bAJ*~M;BE-`~WTNtUr>_ zRh_#mt69{tu-%xC-xW{6+FTyk&WczH-<~uzxnxkeOt7e%j%E8*4`$tTzX0H%9Vrjkl51&4fO+phSEKrZ^td zK$w8Y;%~Tp8~%II2a}X6jL5=$>p*Jr%;3OOb;Q4SyVV_z&QoQjQ#1?Ws036_vFe(= z2E%MypjHQu!Rki#u zOQ>QMSbUOjr#fr0xzDe%{TVWLuD$eJw@K7NLH{04=HjDn^Mze}L(@#`i=|82&{A`e z)Hh9~=*ua%`4>g1|9%ZeH=WWjKZS&38nqxJI1MO2bs8j^SEdtiNlCwLUUq0X`xb6( ziAS9qY9(jAFsSy9Xewl6;tYX1OIT{<5?Blr`(L1a`Yp2#>Dx5f|VtoKH`@^=qQuO<}9O zN0eedpr;d*k3?7depUZyTvpu*v!S(!jB1$Kpe;=r@ClZ4RY{GL@>zPRc~$PF=Fnm; zx5Q6f!J%^Kk9%>+U4RIV#fVvFs^3@q=2~dpDq~(g;%jR&SlF~2D;%X1J(x;@<$xwP zt}R#!O#09g(@?_yfg<6Y24*bw_LndG2v{;oC4bile=lQaFGFbwnQDFDusc)Xauv|0 zr3nY|!p4NqFhwB(6fTrSddHnH{L|ps>y@prP?-h4!odJCmAk&adb7hmu!5rQQBh*) z*@C)q({dIf@75c4F5%johT*wKQwhv1WdJq~pUCR)`C+u&9~gRW)?V*pKpH?knVrnF z42!h#o1(g+0G3#_{AY>joV>n=y)Xj|P?wWr8c*pYdU=1>Qm&KAq*znhmPex0l&7pk zaz=4fBbjVtLp;b2m4_t0mI zFg{2 z&eE%Z2-fha(|=lXC!dI z$3Z^a8g{}s7N*MGStDGP{SH~kXnk)7$Sr?9b6cS zUjeBSJbINFFQ5wr3IxP>xPX27ZY{7lMAMRZ23a%#&li^EM!pRJ!xHC>2yZq+%gMkc zh!#MaGU1_q92Yyq3$5P+siGYW4FHE4JW~t=ZXl`kT9fxeV#L?06j%WI{f8^oFD=|O zU;$>w^)qz{!&@2P6>SEiP9LE=RvDupo#Z-Ki0eV!7AUFEbO!Xf01=k?tw$?o>444) zE7)ySPQZoB`!HNze}C~KHIP{k0F5Da6I@pL7XWhEFfX(uwy(joQx|Yq#*kr<5gAPY zq&(M?WHGaqCA7j(0VK@i?X@=>Mk)cND=Kedt6xSb2f{@W(8;N~1G&C=0#G%Iwzvz< zNaxpd0v#(#Sxm?>S0s7-01$Q)lzo}#GckT}JS8Yg$QS{T&ECjePHY9DKd;oI<@2B{%U9lxpoQe$CpTzCiY*Q4Ga zfZwu&oF+j`%m6TwVYY|@PY6ji$Cdo61EyJ}ocx#QeIUQY;$0-rqyhpER#w#jvzIP_ zTHJ`Oijc$_DAWp=C%U9S3y-ysByBriDYygL>8V%`z}@4$yvg3`IAxmrfB#q)L>VN> z9k^Vs0<>3b2oa5B7D3%35)_O0`3m2sIa!9F>3J z73KCUt;$R`>2esj z4ff+vcFzyVvQG3rCJgPqgk}(aro5RR!7biYeA;J<2A-O$o2@H(kNJv<0qN{c%Dck9 z%_vngS6HWkB@KSAW+p1XBV;Zn*jX(&UD_Oh*}r^xm1IK>ISpt~mnptLCR)hiCC)y% zZ{heKX#aIL@@>dMb-jFUZfOl|vcS>C5-)zr@SNg8%dPl>oD4~#K|qdHfIrur0m%T( z_ZNCLlDY>M6+geXD$VqGdd`6)In=mC*?%h@PBimzbQk_Eb$G$j047|0Q$y7j@Jrj@ zH#AsE-OWVR4NRP)7m3|&fFD|Z?Fq=cX(8D@CgafYGGi7ISE($UPJcsjxpJ!k zUiz+P6*ClkA{8a8CKM5+R8mSoSg^8P@-#?yxJ3Zz=N0g=rs?Jx_?>!cH5^8)>3iqm zbv+YqLsVW5ausZ@K*KI7nKj*+UUu!$yKIDl)cV(Iy8Tp< zUjimorY3bbk?PKqQ@u$7mhp+a5$_!?6IFrqj6-2fZCRHLwTi$Fp+bDui!%LJGsNJK zkOn7vsTinZ_#^H=DgU@^0qcMRtsxuo68%IIObEZ*={CtKR8;`4HVw*O;gzbb?FQ?7 zqu9Ty?v7Lz^Qrn?*z+#!^9f{~U^#6#Hlu>o%CjzeN?$+Z)8);KeG}_{t~XZ0(Dl_* zv#%xDf;?W^Y-|ntia#BuOvJag%v}GLWLDsN`-u(uaFzP@b}Z-11M@(=3T{UD-q(Mh zTE44^D3F|kUQPvu?SY?*3KfdU;|o;hcSK^ak*7V|^DKnf-#ru@E!|QUV|~r(&shF) zvBT*`bwMkCr?67;{PaclQ5<74QX7jRp(R<2RoUboaFmvHLA(NIR-D#!0`|nSUrP1( ztwl2xR{N(dqn3hL)R z^ZO^&+_|PmH)2M$Pq*6@({$`zMbr0{b{5r>qXU?{WFyHCLCxu zavR!98gg;Q16GQu6K==fggfepH8(DKflpL2&iah}q%!LnGw*n+(@O?cjJan1+78l7 zKFg>XZ5(#5Yxrw9*C~%xPVSlUH5IhDlaC{F^R0=5O+pdplcS_S^XKusi(C)yN`?QZ z4SqNh#OGBmuU%AH`x(FfH`V@v>x8njQzt*f^4?W9HvY|)DK^IBs=Yqwkk_w^hu#~n zb0$A1M%ABIdR>@R`)OMC%vPrf>U5s*oq#GnzW0>8oEx^5@`pma3s$SQSH$cwv6mf~ z)+atftO&Mjk44jsj6dztoX&(?)t?tn$uO{HeXEca`Nqegl|)f-I{)zjdl2AHPuaAg zZ~PQn+Ryg1HuW`jLOT;JW?1qn^zD`ydIb|>XQIyDksq|7mi+ZO+O2;8%|+JIJbWA) zKEE=VGjc(@&LrwOV+^kRJ)P(yD|X=-zU<>vkEZMPm6ix{{juTslg~m2ZZ4(NeZe>E z+-OYHbgN3S_$yz&l<(uhD+y39WYE>^AH9s?Q$*-g>qE!qm>LyeO1(faKe3NflHIww z(Y?dX&QUITJJ1%dero|8bqS4@@2(-&Stu1%uX^l8j>R9#{%zX4!`@3>wb@IL*2!IExp^PZcH^4TluC4AP*vZe9D6g#wI?NYZ>KO z&GV-h9tcBgxrTq#XNu&e*xZY-`!Bor)t}E%EtfsIR3)y~EVlY8Uis`o87S`@8tc18 zv~c*7m8d1=Yq@^<^bW$-3o<{6)bC}1N)lCO}#|G3BOqA3Iox$4f;jJ}0wT#qo>ZIy_L-KiEj_0h-rE0DvCw)Z( zpVOYX+H`wE;pe?Kdje zo__N7=V^hgaEn5+XrH@oTgCWdrqT;okON%3wrB4ilhm<1=C=K@g6=fI!xxm|Mpat~ z*ZuDjvJ2dY+x}k7XS~I>8lRelt?bvXAExL`Ci<#$#cT!i=Z`V%962uTDX5f2M@T$G zLemA&`RV{bdW|+^NsN~M@(=gLe?dv51N%YU327GSML?KKI1wsy&CIicEYFeDOV@xi zxXWGSFXRA6w+i%_X_)b_dvSAu&c)e?4DTJthpIL|o1E~CyMD#Ag(CGQpZ00ZsXKP>ji<}_3{XdQ@f+@cc> zY4)O_C<@KOs`=^3<_JpIf9_vtC$muX+|!O2`P}{rUsJ5zD0_+3eaz~*6`rbuaVArk ztKM2>{`UX#UBm8%@f%wSGR=9l{LhCOY)b772TQ*dM@J0B-$%Le?JPVv#RFFNBA#k7 zNhS;cE?KUyYvw~LBbJ}>zNxk$P@I7En_&Y70)v$aJ@6eJ$&_VIpO8uIqXlNx&7igv z5Yma)pl%A(6)8a8v&6Ve0J%)8@efgO(l6anm;-^6J8_N zMedD_IH%P1Z;cC?h!zY;6m#MS2s~e_7y&x9i0WlO78D1J830=pLl)8dMt319R`O;9 z#trI=HIvzfXmsJ}CqTRcHq%`+eg`O%Wjbe?z&~2s7fxOI=+J-5UrlT}Q%V%4A&|TD zFdzdU6>FCbQD9Mij!|DIM7pEvq`D^kUD8h%f-H)n7fZv9Q7>P~jJWp(!1Z8J4Ecl<)1bQt0UHt)v}+8(j;RwmU0fgv zjaZQ(7s}{;zYPcG2&|+`LWbN+`bu8OHaMO&SztYrKFAU8m<6*G*i1Ds(oGcUOK#PG{Jm&myrLQb@H49c)-P@PMW0hoQJX;T z7KB+VyHXw*3>IJ?oG$Z~4BjVEd8|`wL@)UjC?1T`L^(LH_cs4^_aPKR_m`YZ^H zjrN`C%v|+tlapL0Fvy$3>61_AhOoS;fhB>RH_nwl`Oq6AONf7q^e4x+ty><5kuG^v zqUqM;hAIe{o}QvQopS2>+SQDQAlXov=m8!a&Qriu_~1Q#n6RdxJ8RFS2a^GH#!?l5 zvK@xc=wm?R_Sz5<(oET3n}YUy4O}7!25tYw6};9=;1=mX-*VbclrbG+G6h)+cABg) z7mYz-1>@3DrlIulYdQ7NOdfHoXqm&KG~9?w&Q$H?AIx+p@9O?WhJ7`RA^sZ2UAhEAk#t;?3*j*BJ#%SB{;iO_~Iu_c4K$cg}G&DJ+Jlr`dbdK%esvw%hAcTqdZrkdQ4@S^f^2FBt|5d5fyh*alp}c@U?eC%lb(v zaD|;T2|@m|PmZK!L}P|JyW*oJiU4j3S12WM2jNhhR)-+B*N z4>Wd)Pe|Vq%MKV+U_xnZ*5iTFDZJ*4?WBfA1Z)5{vj--3X%&XvvVXmAY~Vo3f~>K# zvHOlQ^F(vleq6jC46iZK=jK58S*{3a&~E&DYgJONnc(O=o1((v7&}3x=V4xS!JMHo z%r#4cb`5+-DA}9|(^p*-i@typFdB3fMB3h==?VZ7 zR%sPJfo?t}VyC4CGWP!M`hVnyqDV#FG+7LAZ$GCa4uLX8$1#Bli;!A!j8Ny?>iu|$ z6QLf|a)YR9&P#Qm+D7><93X}CAHSwG%L7Ysx9`NWUCl#rlDR@&- z#M9S%$;rME_}WHFoye1DBs;qVEj7#;cJ`PEU1}}zCpI7}E^FXz$3*rwA7Z!7Qs>YA z3JbsfyTR^J>fQ5I;@;6PZmg<1hN;zz+;p#|Z&D9>+dgsr57e8H4CNtQ5q>Z3|xQM+f~zQ*4CiS_V`l6Rb)e&r{65OLVu3Bg$Y3z2K_m%yCYUmqW)ajn0Qzz~CIH=LvjqX=H=26Xq@L^0kKQDYr!K zy}C^0q6~~)_CYPrjg8jC4yoyLwYktPC0K5Jy>QKreJ{d_<~%0i^=U(X|Iy$0srO_l zp^hgsBk?qi0e`i`xj)LmaUE!@>!z)2j!}!*iLzlC-W#p0qhoS-zgaE=O#B5$1WdPA zfKA}AUC~|`H`XZen3l+^)l1vEyHHt;@0c51Q|5G%vbPy3LNvtiU5`!by%_4&t{*Va z`+cxA*GpXT;zXrf=+jcvB?&udT=X+f{70RPq5_TG(6luf-k7Iw#etp2oBWi(&bbrs zn1)urW`!Alv9QfPPjy}?%Rjan@-DMtDm23vG4$vyC#DCZ(Uz=@(3ty^Z68}LR3V|^ zWg^&ab7YbCJVZPm7Jt0X>+P67le>m#kyTDrpM9nzx#bP|=<%ob%fykHK`GRt{`+sz zvvWLwiZe%kt!GqI>vzW(Efd<8EY{_dAj$P7w*$k)O&$)K^xd)O7#QgLZsJ!lH`ZA( z#V>9byrSYcn#n1CE~0G+p@?YxXkuO1Pxx3rU_BmmvHeQvt`^S5F0X%5D!GT7I+&Ln z?AqR*r8X^=w^6P3<>jPfNA9(ZVSC(Sb?%g@$G&6Ps9ay_#TdsJRRPg7{cwk$fo&fW%z1l$Ml zT8@5|ojdEHQ+Mivn}jlil$y6uF{7t__izdFpav| zUtLw+)ck`drxAl0`x-N1D$T^L^Lg#3_xnqy{Smm$C9iPdo1@rrYW|T%+n}0bQEuZz znUfQu;-qCC!MtZ6^$9Ct`E}bDR0HMVnBWFB|6%pt+AGidPKt(6kR5M zJ}KX;L$tg8Kw&Mk^Pf^!@ZYGLE+(VDMry`5@4r1>=At7Z)=1i}_mr?JNWp2pw{M?u zxS4v)5T^Z(Q%C!KWqt6_()XM`ChSf)YT;$-~sToP+&(Gy721BCokVb}j4%QMn;#PYpoyK`YvNmbKT zMQ1wMGtX)Gda9SCJ^#MeF|ZsI^~kq9f3~s0)}f(BE*RyZLUuAPVSHrYPTu5iNF&H{ zqppNqXzCbv*qgRn>EzL>h4xvMEvaG@uqYZ?7nc&HqOdSmXZJTUkOrAywVU_5?B$HE z82X^z+x^L@Zh1bHpI&5_30GtAd#Z=_l7r=gbw8O8q8w5izGDc~Fuoq1l(^ z@8uiHQK>*JE|U47LS_k&!#`W9M!;opK8-lZ&~Q&j8s;6b<5CH{RWVsu%f=4) zu3)QrUQhbQhfXU^?U-SuN9}TB92v_!p4CKN-=dYjz4@n8^2d@+O6GKC1LZ8N5I!^5 z<3!{B6j|^iQ%irOXlKaCx$wZ91as^9td?2q@kURN1kLU%;lr)N z`i$bp_LJ1IDDsw31es0E@}1}Y&CKVct;F+MYEAF*Ds)D9^{81NXMK#nuD!E@Cs?sOZ0OY-|ga zR{se;%bYqAXNvi^X2AjM-cSZ!XkZ7pL>jP|KVTCT0D0dG&w-}u=^IdrPobXRxym4a zT#3#s=E)BkU~1y{Bz74q+R>{?bLea@q(pf$;IwRTBe;Sjd;-Z-BcyPj&iL*mh>f zj}$yhL|O$*Q59m~V0nocJrO-d z`k%(0QyZL0l2-<#9k-3>-AXxh`jVpw;l_2KL>8r zu)#ElrB@Po;ITjs#TkN$X>qM&kcg6D6T@zIopgZ4#<{BmnME_wL9NQUxH70oAe|Tr z<0+DSe*P<1MHx1pT(5z+9jAc)5Nm{RF!IHLM34BV$?}gj==S+JA_BWq*3Bt`D19v_ zFa9SzD|(TA03e1G&`CRl($yp86|A-ted zMn^m{97yeK$3dSlibD)_gL*hjT%>zLcw!U@9Fk)ZAJXzL?A!lui7-Sw=OCDJ5*eAO_3Qqf8-8y`s;#CCm7l&R~u8b zb%cC7Lof{il#Cqsvfy5mIOE1VmfRhzwcp-3hQ#m4n)z;GqToh`vh!cX3iYkwm`UPmf-4L)viKfF*P=xvsEk zEQ8$x0T400Yp=#8b!A-Ew?N)VbV9Xs7G#kv2aF7$8#ILld`*G^D6jlJbEWQUkc|N; zIK;&P_c7oO0zg0(1NWHY&tddl*-lGHlTN(UQ=ttuc4RfZU#LqwZo1okdLl#!J$0k4 zfR(}`qs(~hHb~$I7BjG9Kby2cf9>?U1M*%9On}Ga=Y!Q*1q-DCZ5}-isi$cFF>q1= za3HMA44wJKl^et#pk1BDf_e}piHtuK5E542z{_^&YkvL_Mxnb7AYTCx~|F}kjp}z`xaEVP5{x6r|6uBbBxfJq$cyV*gHoLkkI0fXVAItc#Rs|VMKsJqm zrbtL2_~A}mFtQg~AQ`9x-V{6kn5(6U`zY)L17Cf>r_v4P=iQELv$_VsB^$X(5a&Sf zF1R6eG0wm;4gnfiC1lL*bToKZ7;R2?&b<7vt(`+hC8IUgy9MZTWpE<`5lOlY2U#f4 z+2P2fFw0C3gAtvc(7$8m#~`%@PRBoUk+Bx>2;o(k&&ogRgOL3A{TwLj@y|J(29$nZ zhERc#=Y;fhcp@#cu#Oyta$(ebP8E zh+JNaYqWe(rx?AM0G*Q;PCpjW^$LWF?Et#CzHay}5(ghBg7L=0$pEo#I9sb2DBr!* z{|GJ9Vnbo(l*DCOblF51S5bFQa7(eE-4jJLXz4^ppOMU7646}-@@NqTHcl={Bbz(Z zjH|qY-rSdBmFC{vs=l?I9t})s5`^w0#r*khw|!DDT=G(E-CRML8xBw?K^_BR*D0x1 z*lQE)1xc$>@3*-SdoSOpm)WT58`a-NGPRC=I3Sj# z9_vit^G@RJ4KH3kb@wWEZc6yY9o13t4fCRrQKKTKVx{8R;#zc)fvPzsPFhEH-Qexc zWG3GK)&yw8ys{g@q*AHxGd6Nw(%BYrhDiY<;;3UgJ zmaRMkL*^)STphVNX2yG~vEa5|kam0Lsjxi98@>@)2V=IIehrGxE(_ZEMf3shH#IRb z!W_yB$xiI8#nBpws`YL-TOqP+vRQEh*LBlkHEWf6OIV-084K`DSjfLEl102aL#8@N z^klzU)_QZmvglnu_%t^m(qUZimo?7z=6pk4=(7;q8f`LQ?A=@{kJDsBBS>u4R;Bg{1hqz5H?i~bmpB0q&RU@~jolXn6W3HSK%~BpS%APFHUci)~{q%U#y+Qx}khF3~ zo88T=l<%>EBqbwqxpxSGz|{E%PMDrNc;3VJU*~a0XC*a?Wn;Z<+E2=ad`q2TL&ZAh z8BS_Suco|(5cfCk)IS<&(;;Q}<>YGfOO&b5OJ;jiw=Bk}Ymx7EN;g)Jcf{M?KZDyQ zkuBxtE$rr;4y;!PT(c&J2n(s6jAIPgIY!HJeUn*zv*zLm;~mVgQ-riROx5QfRq_7j zWEB!7&r$w8r6|*eTxIK|@~KlMCCv*?1=VWR&cNF$f|+Sw_jTVkc*-rg|~1V)(ChHzZc;Dy~h@(+BDfKQhvWuxxgTbRPP2Ww7j zy~#|)g7})#1G&NTM)6$VU-oZpTI-y{i}&YwtyMbImtMe^3=|^~A~+=*bo5bcch*h9 zwCuy)KdlBTck-+q*zX;6FILy^d~>|H{yk^l;{ z_WmnEgs>YA&MHT7?SG2-QTIOxaqoJfsLLrWuQz?Iz8=kkM*d+p+PTi73hY#zc-swd zUx!|CRwl-ql4#+U_j!ZXKfMrcyq{E{d_n7LMNe(pJIg7EpCZX%@@6Hw1SlR>*=nWWf4iM`dHG zB$RYlQX6ERKNI`3d&T&h7SEc_q#wG;XK~Q5@n^+~jv{c0S^yxl|Fxe+R=;uM7?0g$ zhnB5FqJ+Igr5eXWMzs)gmJbI(rD2ojb|+p+IC8aOpqx&p=}4WtxEy~Llfnslk=cZc zp_}2A2%SYF#c&2BgGok7DbxXukG|Le_mti64Yp*dg_$!>_EEOBPV6zrxK8~`u!?G@2QgOIkWQl9<5H?}G8XjMXTLM35LZMb$7uaT6Nl<}J2e3)H)5T3Rpu63P|J?phYFWcSEnACBE% z9GdSuub%i(B69C%k>j0jxZGb4EzqP!M-N-9uu!aLro65hNy)6U(c4VlxpC8BR7~XL zHWTNPwgMUb#mRz%4oo~ zeyXVQ6RNA|<83T!F7vma%Df!Hqmg33`Jmo=c!xv3x{8y}OuFS`tDSwa_WN(+Arigy z^UoH)WS$7ts;I-&SI8;jE_rPDFUnFXaSfjxntV}JWp7u1Pa-Njn{oxKE{=_~y`Mqm zW}&h)C294-`ZM##F01Mc*oD-L+WKPq>kpNpCto}t6?6K6;8B$M;rA#)Ef?_y-Sc{; zURY-a$8cF#=Z&3h>8Q$eY=47_2SdfZYlU@f!(-y_%|6eb+-@JejB-A1JT;iS1@peB z_qld zZ_L}+CP%0TRR6lD9;>>|3#OK$OAH4-*tyr=@J%;1pS~Kp$3oC(`~Br$IBWien}hwI z-#4=3{Xfo%BQ2W$^4t^2YLoBdp$JVcvp&P!ng|^7u|1JPf*~wcD7n90I%||_k(?gy z_#s~1b4}+A_oX_Z|5U7PZwZl+kdP(%w)F~djVv%t7W2Q=GPFH=4?H_ZleJIz{~%pK zM!(_8>j~+DtN;15ef>Kg@%XdGbZYk2hkHgpQMA8{VLv)h`Ju5PM;X*9LUcF5duVNs zC6{b1TJHyq7dG;9q`>sf=po=A5%AHuiJi_M-%icb0=S+H)Zhto-Fexq5c^<^_PV2)=&PSNTXVj9R9c4ppWvQjhWN6X#@X|6ZHvU&jF zB;szUalE)QKJnFGcvtPTZzb*O6e0J5c*s3ZijAziAI3%u?(ay38_8j-JGS&wpK#R( zHP<$34&AK3@gZ{J%o*G2jMhJM<4BsGZDYX&W!b$R`I6`cD(M0T%ME`sCus_&!Q}{q z&)sb;+k}fnx2>i^L+59CR_43>*Yob#QGuk%wqBo-8Odc^eTWE_4I|`A*rDO(J?F&W zdd&6k44r_YN|UCQR*MCPVIDP}jyyFl9^nz(dHf{~#8T$$-RZAcsj|ve-$z^Wh}fDXYNH7P4utFSO4-GEhz7 z;pa5RbT8bAR?0p9YB4o_O6yO9tuKBd4VmJ{l33HyFBAfn0@(Nq*U@BnhGCt1 zR=wv_A5(bUJPd|Zq{L!VJBAgTTPV%1s?;|8t5Wb)pJsE1b8HK_9nO(P%e9{DiB)l? z4V7xX%F)HSvsZt|_KeP7lGa}Q>5xvR*&^uY^giN&Q{Q>CU*^GkwYaI5WMRlM+eTcwG~5+p_wWx5>J4XpCB33?UV~_(kb4lg`XII>SLZL zfzOp{+#8U)c<}_&D1a%M^t0gW(#cvJbb^J0nZ*(lAWqZWD4`<~BxPM7)b|}{2$Z24 zIwdLQ(ec?h%t;RGq|ID&^`^W6?JUTsX~Zyixhhz{{xkj!Tw z5(f=7fO6(^n$US$HywNmSg)~sN?OVR9Eb!)yUcVmejO;?OEuM12G%SR8IV9Ht;orX zllZ~xgAf(ums1mj(B_H+s6 z*2CA*=Ea$AMHHM^A;0_eoPuRZJDM%x%9+B|^s z0DSZs;ZZo7sJ_1V7T`2MIrT6GSt5&c(4N!G;F_e(&%IdCwlE%OUO~sXbaQf*z7qDT zG~7&zLMLUoCV6WrI^0hH$n}X}{VSU31(lIBgg&4rh|^k?L2Exo`;sn_LPQ{I^n2o; zm5x1a+C%pikdZetu!oqzdMdsSVxx&G@*M5XT9LBQg!W=Mg+*G9P0|pM3v^bA_u&Y6 z)3dh?L9g~~#ki->Lb!UCXs7$e(kwr3~TaAI6M|5x2d3D}(n#Kht;)1cV@^E#bG+cF*}C0+y8zP?-0 zKm8yKD8=B{z&?UNE;Hj$=PhR927wk7Z_H9w^WJ@=7GTU+PQVe7(SS2TXMljQzo^LR zZFma&Bv??HL;A70VJmnItj5Nc<9Cy~mi`f>3{_e`+C37z$WCVs!2pw8(_P>~*w;a1 z7%*Xw`LD_{C<8DjXzX3ZF&5vM*#DgwIzc*30tIEd6@_M2Fcdmz)~cT=X=n-@9@?{b zOc8K*e%aMn`t7~()3Jvi$|H@LOpImsZc-tme3ALK8O0-^&+^!GSWC4|m0$0fw^ zUt6U6ADEzxxQezR*8-=WY$b_DLp6F+OCWt?)1@>{0u=D;v2yydU&+L_f|Jax3LIdeV*n|V9 zG;9($&H+O&Og0C%CI-;+f%rtvlsD0lUO;nil8&)Gtpf$(6Ba-lILkoO#{efj=IBX; zbXj!Z1G<%gqk62&x5!5Myt1E1ZOF95q&?qc5m z^Z$BX2{*8}S8*yPkLP45)|CAzNzoq&XxJyR-#$HxEj@gCp4PdN*yvNcxz?RwWwjx$ z;-ROEauQCTEMhQGPxz11lT;@0cKko*S-tY2-fqvvQs12KoLLVJKh*i}Rw09|?FEVc z<$!ca(RZZbqpbQC^51Zl~Ik+ZRs8Hmv;JuZh^%Og%R+HkNbeg#D;uC7{t#uKtnYH9g|d=+90# z+j;GZ>#sai^;&~?f4#3o1)gO27&$FhIalT5`6*f#^TsMk_Ow*dW}HpX1wV~b>oZZx z6&`;0HklODYvsewuN$E~;EN(t$0BB0zJ<=xjBIBgE?%fCPd(G>DOX_ixIs|7EB;!s zV?3F~d}5SGg4N$8tb~6^nvK@_QFUt4-{Uf6gH?r$L*Y1$q{^|+{oWYK>yPQ7?n9-c zqZ)_SH-B2KYp#Vh7SZ~y7**ryy%TmP5H+e#gMf%^=;6_W%mR>TJv5S}b^Gy3ciWAi zlHdz2v`;-!9qNyvv6-70uG!gN{a>l&@NQIMH}{$g9LcOpX_JLMSA2{;Z5nMneUK6g z+$hIFe5m65>W%W(mR~!_ZVnS6QYWj*D_Wt5Nq^RKvXIqCDY;l;VC_sEJ|T(oJPfkj z^tz6?K&@>+y~#3-$TjjX6!frmq?qCRo~g%|!E|?TT!lPaYQNr8zW%{}Ds5=AawW>t zR>6{Dfg7a+C#2wP67D~?R?FDesghySeNp2-H`bKvudMEM<8X5GX6eS(?_XCEn@C7E z*ZAy@E=~E-C{xRqn`G68pI?&4{TjFM_}s+HwSuUf9LLGGYrCKKs$|olLrB2@C3hmy zu^EKUA?%YePZVisr+lp~Wk)c!9*?cXYzG~j1hTZ>uk({)phej%8e8prvOLQ1nw)J{`3T8&B4HxotzCkL$L+B}c*)T@vfO3e63=u+_e&q&o9Yj*laRQK|0YN+uuzN@8qewEq{*&d*Zs?5!t#iV3nxVQ=T% zUl*q2mOndowfS0n=XN@mqM7>blyV+d;AS>Mn7YOU)NQH}$kXE|WNT-Gr><*HCx{gR#TJKxEij zK3OO=jdm>it7lU4e$ZAl>&oN(0}y+AMrO!}6c4Wa62fCI$)DmUwtc+01b z>dL-bsCwdmY1ISaJYO zs4Z7hj?ImK4rwYqiw{=C>|t`K_kHT(IIk6-K4h9Wg|q>$&E40MWjU-^}zNnu}h zd|ZR4U7XA1x!0wD5Y#nKgpUY#xd-CoSKMrPIHgL;U36r(mbgw_&$XiXIgEkPPW@l%6u(;_y zHaWZgxvXFWGgnEy(q67lXpmi&H_^+py&zrho{;2u|D8gy!AvULM=jA0f9J!@I$NXN z-lmU9#d_#*1x?lj@qdsAp^`=G zJ3=hgM%VJ3$EF+x=H99nQBpQe*@4t-!HK4uk4#W8f<*&66T+ppZhyF<533c?!#GPu z!K?J0>gz(Y!&HZ3wG4DeABh%8UGwyFJ(6Zcvf}~1vZV?&I z@D4*rx5;fDDiCqj4cZ2@N&F!aee6xPY%Mmv2?fu*K24CVl`tpa9_yP4wzi~W{WoBTY z&NaF#OFliTL7A+CR<8B-e$yKNgX0=iPWWN=Wy={dO-X8!j)N29AZJ_8htd}`oWg^V zPYQ`j&t9=eJh(F*a9HPW+@R|DpWcE|BGsl5Uod4~R+NY?fSbE6q&Qq~B_Ue5<}Z8^ z?qA2eHEzP~e42l5$2(WIn3{Oxgv0u}8T;6eh~Kct=jdP@7?ltrKJ@0eHtEj;JC%o) zeP~mX)SC69LpaIbc4Q`+Wl1V&Jt4xEdm~w@8>b^2HhwigB3!7-9$mG5!gIgX!kkut z(rj73Ag&*PC>JYhL1MVZG<91(GS$T-i#6`3=TUqY#G52q2U(}u$~Sd35JGz=^KfLd zYjLV2b_x_5&rG|@IpTe9_6RGqQr7*Dt?(J#%cUQ2cTa}BYu()Yj%f8oJ6f07c~BiY zu}Fv9Gpr$d@P}gNt2T$4WkYg@A%u)IJ?hFkgn0pDOD$Az)j5 zV)1iP)oPe_b$PYggQ-+Aw>uoz8+AU$sPPC+dS0pJNoJ`W;Rg97oSb01vT5vgT>aGL zXz}~Oj9=)af`p+ZT%2!I_onb$d+J_W?S4ribr%olAmcOmpLRlb;5ME>Ht#Nsi5IH3 zGFlG(Vh$-HRi3he*QK+e9DqhTLg0c-La$R~9NSeuKGp@!T4y=fj4|()iIxulWnAt3 zG7LzRvydqP>0e?O74}xVNg9ZU!UFEUS zxI{lgun5+JVkQ}SDX%JXz;=Y)k15*n`@b)eO6%&fB85&$NzvDp4p{+y(~Jbn*v5Uu zIIxfgUR{=qx|Y0*GXKZJm^C}8?eGLNwHM+&vR?86FJj2oj_V?F`eSKr!jN`@wRV!V z#$dMMt*bM)zAbccRj+Xx@EYI>&ss(UvICychw-bO^vPuao_@`Dm zIK$S#@|@K}<^taNQ8>C9Gd*xTee$J@x)$AC`y{y*68yx_jYbzLLn2?Fs^9<}2m))6 z0TgKkHg5DGbtf9wT~l=VnT?^-p_XYwEqYQKbh?8KP^m+NSKrd5#f4UIp8t#xSfhnX zcugiVHP9R*l@tqDET>>~1W5Z<6WCeAkZaKdpoQPbK}7%&HvHB0U!v_$=JG^z|h&gKE8;32#$8+vw)HnO`K*lbBrZ% z1XIf_NQRjzpchN+g8|QqnF_ASex>~XZatc1M~j&(2Y6}|(Z?c&iQqEKnbeSp5620h zN%(1cFU!~%z-}==^Ax<+Ao)BS+oME4vY4p9mFawrK71K%MEMf>;BYi=@PDCHKJ&cv zkAh73w6iB>!3cXUCGv#EhSL1S?q?N7W=m@ZG<7U)*N|RWF445kp|9%fiV2BgaV?4jJk-M2>ozT zO-3ACTJw6{zj_@gBXU9+W1pOie4sRgN|7WSUtCmZOe0csrT!fOgdM_|kEM*~+UN!9 z1fD`D~6eGBmB{Kb%l$&d$e@JoCNqU^XQd!*xU=*2qz7Y@6LaKfJP}?OF2WpAGkIDW0Jv1sq0}madci{2M z_&=fxAD2*{2wX&t^?P{Ug6#HJ=S3r>(i(r-4F_B09z4F}_MTXWN`;+;qB5C9c1JKH zL|0C`mkE&p_kJ68bH6jc{jb^PZoudH`u(}%Uy<5*HGbEPCrW;=IGI%TjExDW^k-dmf?4Do$sZSQ#4%IbOurE0%`Hx}{TbW3 z7gKF7&ik=SD3v_F-UwE*tQ$X>*1)ym5)8 z^I^kYK5OTt%W9=}kd7BBeJ<`@-z&H!xiP-S9w~5>6+W+)u^js1;a^U5BJI^O=i6DA z8^5{l-0`cp;a1_@PP=aEyEn8|zOs>hZ1gO4?6LN;?M_C(z3`*FWmVe4<=J<|7Ud0l zhL_m?J{P zUhqAEI%xOZXdSrmBJyH^RgANT&Z^Yy?tKsK({jN8E~Rt8a*i%2&hp!$|D z2`LP@&ks9GXz!qH50)xYqprAFh>wi;8=2u|{~Pen-ZdGcj^Fd~7?CrAeI2m6Q>?Vn zMBopt@b><~*pOEAMH3XH!ySj2eFS+{wvS#Y@|UOlEib_FEZGtxv#vW%Q;Ru;#A`{D zlaIa2JMxSxL@55hcFD2lB#W{Ztj}e~GwHB?Jh;>r<<({UKS)!PPvv*goCLpL>Bk|r zP5(z&Fo3@;9?nibM!$A`YgJBwDSab3)NZ#s)yo6DtS zwUF~9=Q?X`IQ0=0et$&md5g+3Os|p8BYhxLZ_z@-dUxU(E6Ht?%720th))ZPmhDWx zwvQXWP&hv&HKXtO_Fn4dU_jBpjP`uc>E@K8dP-%&Zh7mQHVHLnyO&Snn8#j%~o;>~#u8 z{rK}Ar#x9|4C#AXgM8@gG&3)c=Pb&`s@<@)iOC(y*bR~L=ghHc`5X-jW-*z!QW#LJ zJ4@(J2fQvs`xFd(U*G=BeQ!~`7r@U1F?~hA-i!cyNzz27ADHym#}Gusu2< zG4z;BLh6Cd65&`rFXpeRb<3lkZ_AZju%G7?4n|MJhWN>U@DvQVp1&UucJ$8p&(ROH zX9DKyt3JR1mI3|^qI1F%JD~|1u-NeyXs}dgVXWc5x+G#i= zkG;1VSywxTKA59NNKf2`-KntdZQkBwpATo-yjt9`l#8UOevxR%#CJsYr%1k%=k69I zj{Q1cD|mT+3Otuoux}((Htf#(2Kd=C{grZdnYLxmcT>*5woY@e!ZIGRmCN&kG z!xZ(U8h=#5DQn0(aGl%^Z&E!-8paGGC?U?jBGlF9f#5KpwanWl_weP&LqnhaaF z-{%iS`c^dDv&YFTxIdjjaNa)t4kD38G4w{)- zj%K-VxVIp}Xr~o*)i9v;KX#kLQHkacN&e`13tyu7pOSY+XKZDuMMxeA7PWmD7@7qo zxo+y2@Nj}K8NpJ&_#xsV=_rooy!X@5!qyopwcvp2?3(vw+pQPZR;}EJV|aw0e?g$G zB|Pv^Sg0tR7F2{=pd^Gfv`;17ncF_qdxhsHrUvP6i??ciSF(E4-4LPzYpS%Izp6Z?gW}o!&gU8KQ7e&06++toyka*}UiBH{ z&!b8hn^ZQiQc4Dq$vvkf<+;%?szngqK^+g=I7!KdT_T zqZZ#Gaqd;9jaC>2IP+}FQDepRk-m1B6l?~?a>(wPe~x6E@2+gwMBRejE= z85gM!FNf~*s(G|ilKDuE>vv<^Q9GixE^U9gepb>txABS+VQ29QDrDN7crq4S-B#@% zQF6XvFNB9GrCdUdh4$&Eq7``d{mMw^kvIi}kAdGH6`3H<{+U$z3jZJ+pm22ypF8LG3;5Ciw_F2;@Xm@ zFDCH~(eA!Q_!Z7)kY=rn^S%eGgLwE$oH>nL(P0P5Vn)(Um7_us!3PZ>v z^tUdw6Dm?<3UkF9yvm!RT6u-kV-^~Bn-0ecs1oh(6~E!91WU3)EYKF3RBOAHeCT~c zeTuxdtSiQ=4pa z8NLz$MhS+c=Y{IZs`BuRqRJc57Z?jAQ|!1Cj&a^+mb}q!3wy6?HS#|A>&Rfx?K;1o zVK?4~r;A?Qy;k1&ROrpEZjQ;aDw}r~6+q{&JXss10kzGmFHr^UGi;w}5A?mOv}>lTdDxyfzEA5-n_s_pD7 znGo#WOG&j49(?bn;Ix!dGZm)$Wuz@@Hq%mTbCi&a0m7u+@HZ zI~lJ-ckSYe^jew|PTyOa!5ldieqdeAW~~s7`$xGyw#Xm!(xmtcB}JJgBzr{00Ua1W zL8?a(DwwaT4tpyJGcMQN$3L?=wc>FSsEL7ZBnsXYKS+Z~N!nWrL7;nqM6_5(8~rI22;!i~H# zHXf(UXlYEsbci|PKX_&3yOpVcd&D^vuJSspVZD>&NK@c~d$yKMor-8oKzs#l`mWdv z3qErwy+CPq2rgn{xDPtcr_qHlF3M{v;2FV@N<4h}s20ak$OK2;7)BYCfiwvrGi_Eb z_cdi8sPI-51N4VRPdg&G8i2?VJV%*=KO7+dH^OY_A}cE}$B)f1~E46(>c6TyBE1k)ex0n*{Yp6`f#agnS&S zH=Ad0|K2P0rK>YsXP`qsje@{=RhZ;Tte?`PCPL!r02%F(P^3S8ewEy>&j4MBb`+46 zSlqYTd{$PyX_jTZDW(}*#R(ns;w``gnn}P3VXJ9iLOy5D;yPa5%((AARFETV#WNVF zol!+-%4K0{X-T&pU7E;{Ci;?w3iR$t>m%X^nM5LS3*GF&p-W+KbZ@Dj&ti63+!;g1 zt472~ ziXs=AaBWP8nC>eSCz-ZcS-IvQu9gQ|tLiWTZElp_X=!F&(0862rE3T?IKk{ zJI-G89ucaA2zzK;v!WvC5InnC68mYc%cqNK^=vHlslv+u5M!pb9yzz2WmHZhq6(yJ z-Yy3y=8&*F9CdpP|fYzoSn(QqyIFO$CC;EG&^bJUR?aqN?wsKzhsS(ONmSTJ0KivPf zKi!xfuFAGZC@`My***AW59I3Re|<5hUrD{T=G5VnZI@?$+}Ju=zEnbkO)%}g#9V>Q zIU}X+%YDKZ8&~MS@TQ4AUQe{qovI~u+I~n)MkuHl)OdGe7tY`X!LXqWX-K?W4tfk< ziqMwTTQ)^NwSMpnOeK>Kx>00>z7PQ$aXG?uc_J|l zp)Z09G?R`8gYeRo-7GsgwMCSrhcym*SpWsFzy4>58X;hPCGTU=UX$@s?17Kdo zfhK|@EVV!CFMyNf#+lZW z??`=Zg1mi<&qYs47^qhs15+mtZlOC|sF%il)*%z6UW@@S2crpO?p4uSMg(Sa6J~!* zEv5aGG#Yb8dl3I0vl;abc*x+wD0XsY^#IM{tHzlH*wCs)gKNUppBYk^2o3Y+zDNx^ zAZ$c>qT#(tgRi4s1^-fX(irv%hP=fXDOZj!q-r9@v8v9}s`fh|me6Iy<4a2NY5++I zRyH&ryUTYj<)a2(k$g7j8t~f9 z^?8JI`}MDFBezPI_BxgRamLK(AbT*!uP5A|l=jj!&7FlEVq)0EI9Y5=HD0O>^kXVp z6Xoa~?+B&{2@{a3r6O_fY6&V?-JZr*hI?X&aO)QTvN}jT;+#)qx?7X)deOH&@kn6< z&(0Lvl^&P~66BYqXi6mn=k!4HaKeM#p?CihYovRgZ8URAl)@=$_>q#8Ol+1urxd;r?p)e@rBK}X(fkU* zli`jk=bE`pT?hAr-ltIYrD(sdzz6AMI0KM2Gfj)v1RvYi7nGjH`qHM|yiGm~fP9;j zDbWLPElo&VlSK;>1Io{tn4s=LbEe>3&PU8vN?`!blODw|JE_zO-MSrcOd+Nr&Jr5K z#x4{CZa!QryuVu>*|UU3lsirP36PNpR36bFz}1nYqtod4D3)c?Fb*-u@WAS&2?DKQ z$eg_r{2T;Y4K5QSrt0F&9}s6euuh&w#=Y3FQ@u6d^hd%UXr%k7b#epQ96y0#jtgQxeHf<-u^Gcng%UTsSL* zT3w3zCJUa%NIA$E%q|9O%2B=-YPh{)yq=A?6EAQ<))s$UtTsMgdK4Gl>Svgi<1uK1ZJygdig(bA?M`9NY_$ zsVckTYuM1r308CZOGxY%8lizHC+AK^>ZVg0qqt9Qa5FbEWuuf-#MLH^D>7${heiSsl6Hua z`K=Hmm3Ra0jAx36vxVL`E2$7xF@ItG*Pn;QCEC={!eE&=8pnG1;phi-kp+=on1$@; z{>T&Xnf?FM(L8XYf-8PY-6kve&Soe&KMYuRWAFv3c~9sHwa2@zPY(ER!uE*v%pOqk zdd)4w>}=&(F3kkSVbj%aWMLdH?!D$i4!xLLG}L-CE;Pt@Zm0LK883%;zPZnoPryNk zhU72oMmDcJO0Z<~ko!Eim0|9wp!p?ydYuPsq4$**^bOqx3(Vkr5HFvR{hOEdp{=#^ zGN=&7W(ND|0%#PRI%Y)s4H1udXg>Q{Q z>VN|k74Gw>mD8K?)%^L{)fj)mJ`yRzP07~;W6v%VxxTWX?EZbIWNcdj4WF|4mQTpa3UX=?O#VaR$}@T&EShMH`k2wSesmqe+H*h zX*akn2`d}pM_1lR$cPkHs_lxYe4m<~RzXka5yd6Q zZ)8H!_HkKdli4))*CLxz>sIKdF+but+b2GnTrXcoOS4}=x|j@_Zgi32B$E3Tp7`kr*9=Sfzb%QW@HB*_X>Hls&9Kw`3&Xjk$**7yLZ7MzD}A zho40hbVTyDJ1PV(L>H*)9}=$=zXSO-qq5LSc`Ek`#aKvR;7H4KO?3Ad95O}ctWDox z6f2cbbZi4yrzg7{Go&_61j9y1%{h%J&Xxy;D^7lTWkIV-^ARdC4BU#WI)%a*Y+@LU z;f?^8J=AmGI3CLaI?qc)WE9&7%lP!SL!=dElGx=eeLCsH02+=xUXL!Uz2Ao#Ag!u$ zBvaRFSoPt?rjCypMd1U6a-%4#Jw#k0hoUZ>z*P7khMvB&s^&=k8dr+JnMNp~jPep6UkS(mV zxD@ESCim^gQ^Be?EpR7L7)SetDis%xri3MKR?4iN0yn;n{ZJX3Gh}v+_EjUY!sFDt_4EyP2zC z7uqnH3yHF4jUHW$jECNBVjA2R%+9|+ndu=EUh}lFam6qOY#uejAaB`FMfd@o1ewB> z#0flW7|uHnXD2c?M@FP_W^Xz~q&oFsRv2+PsF|K|951E1<24+@s`j0swC2a_`%MEy zTx70;u3r1094(o{=ZR;CWdGPvRekTS3`XDfoFh_tjb3<25*S#TW$HdO#JikB44LQ( z^pZ!RpuqcEfIN@&%HAO$yF)`K_-aSjMUJ;|#zeO*P;K+PxPnG!b9ak)p>BhGG={xz zWz3*jbaEENNV0nHN$b^G#Gk7{ZBdP4JF`i61u{e=ds-)^*VWE>S&rHRlO3X(?1L{* z4C6VaJcgoKfgxShmr3JkpGqn)7D>(K&D^2%2kL(qvYf_d+jDt(El2jFx>Z;>NE(MQ zlw!Y_(=ca#WnP7gB0NH-O0>wuym~Ku+RB)iv>M1h0d2+EV8J^?<@7bRp>3Z7sgt^o zsvW`$bM=7@H4X^SMPUtCAT!2b32L8#bqZ_gpw)qpTkWJL8-YIla>Btk(`Y$IzMdv9 zq@Rw+=;+v?*qxh50YfgXch5CHq9mi=`6e5AEF` zC+2dZ`ys}FS2eUop zqZu}1gut|wRGzs3=p1dWwz1Evs)avLZo=02#f`IGH)sAjWg)n#&$)D1lDPAwjF(@) ziE6`!;k75XPyh6He-g3soKrWwl2II$ZX&pQWm>mKZpBJ=kGI8TTBnw2H%Uf=9@=%v z=;5qq+jE!C{yIM4$x9hql;cX~y3~Af)`(eWtDSyqT~{S}zb;nkLL`5PoVU{}|9z8_ zuj6{EA9l<+9!|b@-6inTt@r0k9(S#z+RnDj;C}CGQ?P`4`>ay`}e&YTIR32d8%O@d*vpsX(Ezm47fu z1uD9OTOC=stKQAe&Tk3iPcG}ud=?O zR{!-i*MbL|x5rnt-}+-ueOJ@k?&%K8El>SU_g*$UClm^%RxLjL?_T53%KQ1AKuWe9 zJ74AE+?$GpvS`EIuQ$J|S|`_`+_vuE$@xyV+as%CBfg8e1s3nY%nPttvxLj558(JNox@V4qrYLWl}YKT!3vI@724?P2$g{6402#@I8yVzL!&%$efb0Vx3J1p3pCIF21g+d3Od z-PlY%!?EkodxYCk)FhaBVhs44?nf!wI5OolYx@y_4fnQNUVvn-O)Sw+4Yc+P*Im;8#`upr|jp`baLoljC;&DfuZMnxdH- zlTWW5g+S+sY%n?V4r)2ucMg(u^fkz9DA&p?ZZ6ADbq7bQ&$tNLGVidid4jM#Uw<>?ls-6!BfN44~{ZK7yo z;aln+!L`^Lg0gozkY!a7hD*DMyfP@uD~eJPeN}??-Nxg&JoeppRF{o~5Md^2vdg)? zl6XN|(YWjgmD2|A0sea+z>tq%ai0&l+0~o9F<%8*hj4k~Q1jD}elGc9z>T?WQ&u*a3g+5j&#{^U#a{3kb8{7^0#Zg*9=~<}%8Z*xuTo0OPT- zH~LFhTH(>>_gof5-~D1DLx&q-4_)8H?Ul||B$kMh)qrKlCb41c%V|i&!WHy4G(huY z!vi=a9Re23#|QLX&{L*|8g7LRbCXs5fe!h&yY-=yfQ7K*n0n@?0cd+&b{A@n+<7`^ z!Y~#G_D-4+JKEA-XeTea2DVkkYMSqwnWj)9^0S13YH4Jn7?TDB?CPUZz;4EiW)zqeF}+<*}vXUmjf!SI?_%VZokWD59;M|^$54h#C^+}0Af=W zNaVW^g@rsqxolVk77<*IK)t-{ehkkYa=Xw_SLiZkQe%wT0qY=>g{;J^gF-gK+R>h? zS&qBqya1S2c~eYjt8~-T)fop4uNMO|pVEv;2IJu6QK6JDraD62+u9iJ09LaR%o@YS z+W_|xu&`ISG62-W($qcwl7?@V|LfS6Qv=dHWrC{mnvozzV+v7$Pnaq z%%|L)D&V|HdS{1HergIY3WDTfyo}zfL)X_=#Yj6IUb8=HuT;EQ3BuU@vyE`WPmt11 zo4M$9h$6zTkHBG#Z_vGS7tn@A`;_#UyM`l-hhA&!wKlhUevpE-n08#N=obu+#{-@r zszX#N5({$>%`806uV%$xXPReJY@>0Lw}ckqkOf;>X{aTg4X%Ujuj=j&^D0&QrUA~e z2Cy%umBMCxJNYgNwo(~Mm<4SksuH%PRP~Yalkqt#E2p)glM&YkA|C-jry`PQ1;+D6 ztOwSB8fG`Seg@lV0pw`_6EfjQn<)H0qF}X-l-^VvFG!5YMB=bmyfRfX=T*oO_Sg2S92_<>~(n|_1X=W z?-wg?KO9%=y}D3XpVIVVJ|8+zS=k%t_58xR`}XwGe_2hnGa*yvE$T&zqU%u{*Wr-}8} zdpD$7mlWTv%A?$Lu=~??$Do8izU-9M_N3%z)nvtH@wA&tl@0C%$E4qVg4buxcYq8y z!n+1?t9d%kZ4?^x3p4Y$7m(8Dm-y$>sh#QJTgah|oK3BR|lDDFIOGRYeAn^!#0QxM_W=jcSS zE%u4l9#x?Y5{bI0gxh=1x$Ncd?s3#Fi*|AL_d1?Y;bBy|lFiz}kb3meSKz`gtjH%R zcJNmG$k8sdkFi)-73Y2Z1{W%`4IO`A@BBDs;(hB;Y3P}(wFgA=)2I#(UKMZVUbz{) zdSCGJr|eAG)sl0xyQTh))j}n`p&nZ;^D6Snrf8S13}lnr#-4i$@2_p1lTUfBG5Or! zklC80n_LeugtkA+;_uHEuihgn%c9|Vf_IO{Q-)`bJ~{Ek^-smU+2Oy(F}LZNtv^2u zgQKY%4z3zY$UVoG_nrLtMmzJ*YY!4F@HLx9tzE7fUM)Rccz0kM%%kb^5B$Mri-J75 z;+>L+PAvD29**BsW~GYvKUbgIrfv9126p>0K#>Ez^t%M^`}0v-MxxnrWI5)|*~ ziwX)R3OTa4v+(gBd@>r+)+q5%Uz1S9{c=+0>ALT@)2M}28eWHBf6#qMp4v;40EI>NkKrvo?J>a=Gyrb`zlyA2W_e*!AEB z(1?IDkQjXn(x?H`i;ZCw8w`;RBfOSEexyLz&Y5B$fq&TLN>x$QIw~@LnlAe>IlVwd zRPMFZ8F~=F`f-WY_=^O6#J$rQfM<5Za+$RALTEL0mEs!Vr6EdweP_~Grk5h;p!`a& z3~STmVgoPk`~Hua;snf&1Fq;W2$YdOlHpiBmFUaZI~dGFnc!FOIyS5MbNZAfd@|1C zf*>i})+!uY9`vy!O)r?dgH(iu(?X0WqO=vXDDat`HP=ujk2dZC*aVtgiTP|whJ`u*B^4MFG1q`f^a?Z?1G~sFI<{IY+mqByQ>C|gxpuwlbG^R`-RtV8< zN+p|tZ(fFOSuHL)>VXalILNzH2-7C(FoH=t`G<_+GHLt{ z!PiItX_-2OD!ouLzhk|YyXcT2Aj zGk-23YXcb?DMddeXh5%*ACDRydA-emy z7=21V?3FT3?yEZts844TQCT=FFyzuzK3aq5h>36`N>{Lt%A0V@GWAf^Z8Xz3AU7_& z)of^F(_jXpZ%4=#6$;%tC^)(mfYLU8$u!+T^1xS6Lub8}QLK28p|BwvL}}lVj|-Ut z+-g)#W917+!oI0+7ib}K%#0j<5xlM-ZSr%kI4s2yD54=*2n{Rt#~nE{tpyt^OL`ZVBgw2B6%?dqQ;LMu ztZnMaT6X%PnwcrVm-~G8cNC83Q8Wi@;iiuO%&Ee$PwjZ-^yjD9 z0whyemRXlM2R~DDz7(~2B^U_m-$7!Fr5 z|KTuDrNs5ut^q&{lAooCb%h54cT%8@>6 zC4C2k!#0_@6=-P#rwDRV$13~%R}GX9FiI)t;CD0-MuPDp65*^uV*r4XY;uk@zT^*d zXc<(+!yOT?FOS6HSV`O;H7j~(5IB4VXz^V=t)#M8mo|RwV zD9gyyYuo=DXyhLuV@H`2X{=(7py1I>7} zMNf%qS9+D9AOpLpa1X5v1^@)SCibk1oMDqdUEyM&!A`(V(>X#&fm4WdIP!*cr9Jtz z7Oqfw$Yr*+(Zhi%EDbCw5yU+>5&IQSs|c*PNHvj0 zaD&fHjBYNuOE{ovKIkp4L6`@+q*I%F_$idhpUc($SK%vWA$I9M5vJvq6XoA186OIg4^M+iDmumD1f|u|xOx^U_ z)Z<+ofx=mRZ7%ODD`+|AM2d@Uy&Ab7&DWFtt-h#@8|6k>+b~$-uDXpwNHyf#t`X53k0Wa^W-ry3Li4W_W?Yksr{gvZm5(l??6wwGBSjjX zL9k(WJn70M;9n1CDqC&khd#Qwn=7Xb}Wxr z?*ck^uoj9UXyH0BIAz3q$FwRixU_Ax>k+ms>NmrRyQ3oY4W`Y63?1tJ$TWlj@@Jfq zIUntl3ts8>k<1e)|C8*>SMKF^8 zXog}1;V4RJ7ux_$KrEW^p=;R}gc%lG&NBH9!0QzZ`eG5(9U?B;LzvOvZem;{Y(Qsw z@&a@Z3EXp(BP7J-@lLBBN2#Os! z*48Qw3bkNL{E4c8+$V+!a99}5e0;s^W{V~YecnRNR*b}HB)up~)yr$WynsMaRo2o2 zGjZLDVA19}5c9F;~8(uC6}tG(0yod#6u<|^cJVV=NLl!C+ugzQSo zCu3ToM`4Ox15}1hPaIm9&^p_AXe~ELVBZ9mYz*e4c?ktB(F!ggFw34sEs%8mPK6FN z4*7t0VZN7QRlW}cx~u?htD)(jxlbO}XOMNn6c}Fkfj*BRfS!xJ;uxDGPM$(Q$n_O* zd`xwXX+9P)FJrc?1eyj=*VQFJ7={eKw7MX}om?^?yh_*)WP{ z?RC~^gM$F>5sA=6!R%2sq*;Opqtf-75mL(s)ML<6fv;5s%}zoikTv2p{R1F6SZ$Yf z36w=HB*xV@h^f=X^)*9`x(lw_E`wxclLqfTCh!+P$|Ko4lh5S4+4@@wf^mW@$x-3- z0W*kcKwgdo9g1n1M4)(Fw%Drl31k4|aI0ml=!2(91XwsLmv<+!EXT@v9N&66C()_D zfEHC&i~xBv^XynL$o~Yen5-enB02=ujcOe9qU^@>?3>?$%KqV8XjAg z07=24@jH!!JDUbsgH=&EA2v4}Oiy+F*i+@|7t(bacLAu2f!*`>FfpSY<_U#G_%w>5I#=5};aGx}`wH?>1C*7&_|dz!apsCN9q&V4nW zQ!|L>d3{W>^cS{JlXq<3XGqarv8VZS$9CR(O;UV!@#OUL6U|9anp5Y#{It91b?T8x z_pKE=n}4QjG%sIv%(-;La^mBRVOMIElG7M)7aaSi*}5 z1Q5*?{f%Xdf>{#xYWn!P`b1Jh27 ztUq?+sPXkbKP0|4Rvf5A;Jp5&eN}GI!Xu$m+s}ezip-%ZW|_fuKVIQ5b$I);i%tljhYiTE0? z2Or;0_T;gzhk8W?^c*Gp@%62CW_{TAu=>1)!i>BLySW~r?tatz<+e^*!y&0ZzQhJw z?AO8_A^^qmK<0G!ZR_#$T%XGurmz2b`t3U5RpyhgY<9&qpIbZsG_}TFK^!m%fN9wM&ocxH!y?d~% z!geYxKPFaJ$};OzT&25mwWY;7ETnEfG~#enJ>zBx?`^_AKRYM7>)j)7t+02q?}GHy z!=2^-`m`-xarF0}LQmNRcL6=l3V40?@|qyt??<`j%x?olU$NV%2V3hZSwF+K#jDE( zDlz{@AyHJWy_8M z;bm0bmeM?SeW(d-Y3MfY?%n96@O}O099XKN*itgDx$HmB@V~-V4@tVch0kwPYoM4| zM#8j2SpuhGU^0%S#cxUnw_6#Wq_bJ>`tKWoztPco zT=Ni3ziz*Fa@CunUUfe`^>xl{k>Q@B%jRm6DKmq&g=FOe(~-s{bP_}FClwp4@aM4ZZLS`ho?XLaGv7$(Rt>I=rLjc z+1HB0e@m8a5f~X>$g8+_x(%o=N*n9+8kfx-yAI3P6WebH(@T4-Ksg(XTedWNz5@*p z?FXqef}H-PoK(9Yg1ok3Z!K(i{wT8;A_m`kcKfRj(1TrZ?tI`&lP$N6E`P3BRL_m`&!$w)4r=jbaT|PuRjNcYfT`K9f9%(Wv|tDO(rEV8 zP#W%g=r*R{&A$cf0P10lJwN^(a)y4J38>gVQsfHv4`iZCT(4tTWlC9AvQCkj&KWm8 zcqhr!De&^Jj4YZ?)d-mUp<LPoVridD-J7c3e77Y!VYh}$jaHfBJFV!OGLQ?P8LKgBG7h=!^ z?=*8oRrUEpn%uEW?cerlEzuak<7K>*Ba=NTNxdtC zFAkt6;J>Jv$VPPizDtYOH*Nxzca6E#aSV7-PE*U(L-P4n>JCZ4;@`wAUnL~YbPg>_ zr&iy%1Q9ba_}yr>FxY!z3yNRJ&U(0r)jHpkkHxRzjH3BLZnas{ExymN1t1(BQo+Re zHfO@a9MATsdx7^d#I@X>%}F(Vek+<;@BhG(5;n=mb_$#tGP#=tx(zt6b&c~x(E1^f zc|F+kogKp8&XNg%XCYr%0VBvh`Q$m8^Q!TOgB3;!TnE&u83c!FiBC;u3jg+7D;I5% z%`c5l0v9sa25Cr^xljO^1;}ZUZJ6+{{dikmYxI$lH^*r?8maA_ylwNJpi=ihxteHI zca0^0H0jTDKhR;|LOuG}8vLylqSiH)C3^!fxEv<27~4H3oA_oYIp*~{LiXC}G-6BV znVKk|R$JHY#eyjR#17}l)^~%)*6)5qUW~{noJNTZ4|1gYw=&wRF-#WO0*pd%Du@L= zidOKnIrKf?48tk#3MK>}0?5yKxW$wcJCLg^+Bqm`OUr^C#FMGzX9uX{$4lf)Z#}9i zQuYriP~u5xM3ICOlrM+c^A5UdM(W{+lQpC%dw9_G)ms!%LARF&sZS%@nKg&*}eH zU?1om!nkRR{zjIliPXSWd|rTgfxGpiuuec9hkxRP5}2Ibkg+h>S7tS`drxNvi8}i? zvGFpZw=29M=|`tV_(!MWqPG>hK7FvcE;~CfaBB9oR)9Br)B^MK*q1|1;A{Q^M)tRb zfohrRVs~LdfTCaxCLAPOb`gH&*>KHm3B==aleLq##ZFz)1}k0klgB;r`h(B#HHn*l zha^zT3ofHdi!OKYugz|Simn`=;Xe-b*y(PUtwpLszbD_UiupTgz_`#ukzN;dJ*C=S zBYMalK5H-rokrnc2WYCnNV!EnvArqAp3-N*;P<7pbZ3SF10& zoJ4i6E(+jreHm+)t5fqbdGHMVjOe&QiMgB!-psdnE1mr@M<$XQ5L#=oj_T-odHK!v z1J9J~{$!*To-R~f__=|RdVtb0L$x@7HJrEX>U!5Fb+p*$>dI?7txx8-I1?g562uT4 z`Z(2MaG985TqnDnt*K%B!AEOTeAM+VJQTk=-i;wuMcOhz$?SpSYy1Y3WMTsLL^7uT z2P!l1YFV3?`-u#>W)o2b**u!7MWGVNlICv7&gOTf;UTN<>G1HY8KHnBYKmMx^YeQ& zW(v~dN=&;SY^3^~T`F3XY#N{N{L|OC7!Q@&7NB6u%jxp8(lp#7?@>FsiTHf9GV$_m zoy}pD=j3hu9tZF!r*zVNyH0diuj{DN__I_X2wSc7UGaN#r}``FO3%k@-=~ZBPk(aU zNLX@wg`jow3+<8{!yzHo!!G4tp273`05 zsuHtv=1y|fD0}%1uQz{Tsm=UsPxwb!moKmVE^gT;QeVftzt#0n3y&=KzPC?2o^Oz| z3w)7zbcx6(s1=#~I@hCRvCb+ApB{HC!#wmCHh$>dffpKmN1~r>BfVJo?pObpkou1g z*M1I{ynnOiDkR7*{q{KU)m(w%Ta8~>&-Bs1N}vD2((>l+-2QR%`p}ID!`H?gmOqID z>e1(aKjI)fV#SYPc*G<;;^I`?|I;I~BnMYC?D|3Yg?UYBD1QpZZ#> zjc>`8Ett_48ulFhdq!0o=0CYr!%dcdB^~>6h&!?L`Ni4O$4bu=fHSQBC(H+?p_SQJ2W$sS(kDDi7>C_+lnD#%nh_r81b-PZV#8?^E1m$RK2YI`dDW68fK(lnqR z|F<-ME2Kh!tk%43TDg80VU{D`GKhs zx09~~oNHe;SufNYEY8Gwp(eoL-V%eF)s-!`VxG@?-g|#`u;Dfu(*N5;7BvC}Qf2vH z8d1EpE1Vn6!|ry^^#4xdzx3hPXV6d8{DnPV;dk=q+v>dwjFXGjZ4AQwg|#^>Y=1TH z*)9;6`tpx?{IT*d`Vhx3&fi=9S@mn?A)QdY6Y>>-TYIgfo<)sNg`P}3w=L|uE*!l4 z{GWwN-lZn%rWy{Oec{Hhv3J)LX)sBxRxqt&m8)EKr(bXyjvas1S^R9LSCp(O)VA~$ zD&D9zJQYwe?iA-#A%*YvqEkpcyL;ZAr*<6IH+Dlwlikex7jJLUdZW)kwJ+geyInPIW zk1~7pxAQ7qXDsm_h?08{A@)>Md;V+&>0d+P^0&CD>6;C$2VjL`x)W}L*SWwOXf3Wx zc!t;)J9%xb1nHxXZHN-NT_!@}t59Eh{J-AqrMB~a)pYc&g8Y~I+exrO;m9Q#y{tDU zrm%7gw7Hk>`tLzDs_lHhx#!5Ag=ARX!J9k&W-;J z=)0H1#2=2&K64Rv+$!gc$lBtnkH8h@Rr0I2h5V%H{uWUL-<)}w#k)S&=0;A1z)*32 zthKwkQ|_&u{ykfS(5}6CS}9ILo{Q%Ly34*)k_~qy7r^tEbB3zeiOMEj@*k)A5Af+F znI!yZf(x-5g3)E=yEA(UXn>plYk>Ujoo4HRof;-}ziJ$Rgz@8^Ev@CNpJ~7$C9^YY zrWVI%^*?Xo2nGLW07eviW{q^pX~eG~dGqwL$+P;%s($LMRB=wS#;>uz%lJQuuO;ij zr7aUkV&>1jdd08ahJFD>@!R>9gQAQ9NPmj`>jC^{%B!YxLXY2FHiZ||DN@!rh!fdy z>)KOX7Z}BF`wU0(SiIi=$wY!9a-&kv6B-c3?&=P?w;KBQdI><&`rD8ojp+ZVD7gn- zwjr&8#<26Rnr`Ad>sGiZbI{aHl{NN{|L-;-mHgP^Dov??-FRAxb6alzYRqH%(E>)qVzjk@-2!#Cb7~EfOH^(b>?H(~xpNteXBuF3lDkNpNPes9lcC`OlPS z9MZPz(Rd1~5g91v>dQWo;V*j7^BVfi+qBZvikus#g{F$_kUx6Cy=@powPLa1V$9SaM;KG0V6lRO;C|)mh<2B?D*@++tVI*{pCxX!T+MHEY zsQyRl9If$K*!HZwiEID+LN+JXP=3F-96Vpx-Zuw))_#er#ze3McQ5i4wIzS-fC$02 z%6HKvxB}25k^K?DW@C3&4uU74Nr~y?Hi1Oeh|0t znIkZ;iDHf<{uZCrm1pb4E0;lk>8JRA#TlFziWC1R6av|QWC^k5`WA+JC+!OwANDWz zlK5kX>sMOzqsl48EhxHZ9K@uy{_Tg1f5i!|f0TyvOx3ZwN?SJB_d8}fa(wD_fSZsPKM5Sw+TpB)tY#5=$JqzjN^voN#!#->axYl}Quuut zd^wO5qGU9la(zc8U!LDd*b$vNF8`_=}YeNehOt#a+vjK|qV?T;zy zX3M&(MAN-YH+N@Gro=JvEOYIMhlb&%`A&{TamD=n(f69+1m3>lO)REAtYI(;Wp184 z-SNBNgx3deW~#~LzULqV2{MeF?5=U1k58_np4o%M!*bhSL$O>Ft25WsgzxT#r3Xyk z@LL%{77jh_u#TZL>$R~UoZ*jGw%PHr+R`oZHBz1JxCV4~RER^@O>wp$A>{Kio+6C@ zP#g*6g{Rb=ONn7ZX=qZC(%#1}J~H=if6#NKN2$C#Yrk7plaF;hhV#vgrTb7E zj;F{(j8ZPAhFsof##h%BcIbv{i8m-hVEm^1IJ=ON|jN?|ioo1V}#LeBF zjPa(ZvsHQaMdOxwCYy9S*%P~c8IS9g?pX70Std6!70v$(i}jOWRadS3G(FldIP<|b zq%QFNyQ;H$Ds#*8I-gU{Z3q~D%#iJvux;-DbVXcTMkB|kU1QJL7;X7d-#z&KY^Mj| z--yy?vuQpv1O7agREh`Rj4GevN6zm;k+%bFjW)fM3BT$(V{oLQ^mws`h2^6oE1VX{ z{;r!=J<$eA`Y&k*=>sL7mS5@VbO;@j5~UT~_)${PyZ>dM^TEdFJg#cTBi$LkJvuo* z^a?~K^p$0cSMEOA-Z|yno=rLYERmt*v5Ide&adLZiZpg9{#a14!JLW=D6Mf5mEtZZ zJQDNzuQmW_9&T|mFWzXyP{c_=!>a?3j7pNDH5#DQOIPLmB5+V$m0R#sR_qZz_K&L%2TW)e~BFh*2D)$UQ1%U<($ z1Qn*}tH153Vxp(%9#zf}nN7V8x|6V9V_(NKFh_}cltAjZ7@rkN|15WqEM1?U?&mSz zoGteYYd0aHaa&R~TnP)qTjCe?3*LOL;q4^ak-2=)=J11q|?t&jo%w6+A_}TF@ zs+;EWe@|D#U4FjV@)!03FdUe!bHG^-B6;Kc$T;Y4mCw+v`p(lv7#gH#*Z3y4!fmJ}r>ZKFlWV2N(UG`g zS!^T}F&KXk?&oot$lX4ix9+I24^l#Tj&G8mt<)o1jQj}$Z|j794wW$Arp6gnqVcCp zBoqQXs!Ef49~5BBY(&Fw+EHr0BIh~chE}0>V|DD)1SWb=E=A0*v(4HC6B$u8>6oLS z={AYA*|?C5Yi!~4VsR2qJ2W<0DLoWLcjVA<MIsI}j-CCE89#tv^0t2_LH24`y`l$2rok-TU1kNkYYlS*__HWvZ@pYy+K#LHJru+~3nl zv=v;H0CQ%Ocf`alIoAqzXXk1#Kti9>Zto*^92;9%uoxD=qWSje{>P$86|7Ss%xOH_ z5JUA4Wtqh^g1A#Lwub8gYri+OKaVd-Dpf+N0df0vn0=D~kd(-a+_I!tjcC*5BL}yh z;@`~H6mRN6no0mylFP614gMz4vp}N%?Z8(>UO1Cs4mUyV*^?!Y=~l!#+9a~;hkpiL zZCN|3TlunLos*Y3J@?XEwSxiv?#~S9gH;N}MdRWd`1d@^w9Efv$J2q+0>!)9sp}5h zz0zgXFk8SQR_oAa?OgEcg_`K!<66>Y>711JL4xqxhYTAa@X7g~Xnig}GwX4$V9B8` z7v7Jj9c=IJ|4{FGH~-QfC6e8%12%bOO!=0WN>gpS`(t?bY?aW+GhdpxdvnJCG?+Iv z&-#wC)$!Jn1?ypQRK9&4n?m!`AS!qjL&PzQeBsD_@vjF1AY}eRNd|TxjsdC055FHA zjH;fxeOaVd%tN;5x%xI|$76JUE#qm=KDv+PSZ)3NG0ou2vX?e9wG)YgV!lOtTlcej z%K7$b3;(U&CE#9^#+l`!=>;hYAojkwqceSRC+>gH@toNf+ve1e?-XWwhF%;Xr2Mih zuFj19GRZDqJFrB*D1q)|K{Zo`=9+o$Ut+q%!_?W`o8LD#_MMx56}M1wqI>4nBj;|{ z!pf?i9&6i6)rHRD8FtR?i7pPl)Ay=xSgw5>aHb$v{7#a6f2@l9=_TAco2VM@U_RQ> zgS!tIKG!g51{)b-%(uq-aDMkr`e4y`XUYEhypo8EFI+^|h95jscvVBTgrBFRMD;|; zWTAb_5T$;ashaNf+=`Bca(yK`5A%H^YO+^9epmYHZy@(nx zbWlnHgf6{HRRKXjx`1G%i>P2Zdftua`Mv*fd6_$#-PxJBcV|9d<0@nqo~q!2#{|pC ziR9<;%{c-Eh4@B0PnXLb89(=_1zwJzJ4x*{t&7ik`><~{1>|#*n z!GI2l8BXJBN+Q9Dk2o<4Jl6mDFyASCopb_-bvj^1-R+!OY=zGK{lG`Yz&s+1^5_2r z8L)>O9KM?aBlBgYm<4I*GeSV{58~*r6KVE0o)Hp|fKi$^a)#x_5DX`%OnCjCC2{!P zAG4(F5y_hW+*iCLp`Zb}uwvNN-$L1sjn$*xH>8=z3>zr~L@{&YPU-83bO>O;Eu6+R zAeC^1^inhF4G;c*wCG{~JsjROL;2!_>L#ud!fg_AV4Xsni1M1HB9P97LtxxvG?{)U zK)4Wpv0_my``@^E53}ahaS@2WUi)v%v$Ivjx(bvi{be8`jaJ2YF+ex4r;hf&amT|} zEMT|mB(H+?I|*W(cf>IxE(FXM#RA>!teOzi>4roKS3;DljLLvOO{Ad#Zs>0+AYMZq zw_+9t7Uq9m+qnh0#bG7<^S_N+ot(UF1%qHn&^jRogc=Bm_>HZco(d{T8X-|LgZjrP z<<_Ua-%JCB{et>4#kBsLu_|8y+64m&t1*|LiiQUZo~Ld?yzG%@FO$CvJmotA@Y$il zKgOjgArkl~2l`vVr73?G&yTTcgfx|fx5=QaRTgOJ)b)Ji@e24ozY^3!T7>%$ONGWV(Hqp{n2@i}Yp+;4NsB0idagiWAvSM#^f^_;+DpwZv z=~C;v+8<`sAPGuiV~zYreD~?n-?Tso0fFlaFjm@CxS8?PrU8}nEYIKAT2Rk@5zH5` zh`-sm4Dd;_AZ~4E|INk*$<4m&c$^!7vMoT=F>FW;``?yo0c%?NV#Qu5j7TvLdQtGn z0~CK6h$Qp>v&Jt}{5T5}zLo8UTK&gJ?L2P2{DibB`10Ual_jcemb?5W{x)+dz z&rSW=(7m{E8dz(UcH>f4)|B(upN6I!Y3N!a8rAr2ccr(@rrUvP;bea&6$4C8 ztF*o}pofY;KO6-Qt_KEHrqt8R+*Q(e@8H0NeN=y(Avfpd?zfGbCVQoN2fSh&@O42= z-(H?BRA%N=!Vn0gD!Y-=y|OgnP%wbekmD0`e>a;S41}s+Idab6v;4AdZd3{cC&sD7i0o^;)TChx((OcyjB6{P$9uh-klR^`u^^4ziD*;}z#B z>mkoamk28U)6MZis*1iXIkoY84Iy)`8PSDp(W8|IHC=1iS4^%!^OdEQTl~~!O)bl6 zjs;glMs2rG@hzULz_-C|uvQas{^oRX{&`;lI&-M0(%LF!$b=*;5IwxZ*W%=2QpbfM zlwGhj%a;%<&SYYM)1cQaK>2!kldly5W))5`O`{e};ECzrkRnRonT=c;gYQm5^Z>zK zYUf=QXb=?;mIURbEnWdsSi+i!@KSCdQ3cy2f>>7+1RI1dKTF~3IVW%q!GJZyneG0? z9jPYQBSlQEAru!PaM@%93E`@tmmBL(i2YHLySV$z!qOD3*s?2&E!T~?&vl(U;=a|4 zf>-VB3ul{WF=KVLQqTMc2?HcgQ$rI=r#f+Y-a0W7+Dar|pA|O;_Y)&(E8RqZ1{K8a zUU`eUNneR`jkFtfyKAPlLYXwzntc&t!)T1aPx!c~*Di}BsW@}uiDWTOLOjE%a#)WR zDk3Gw@p@)Z_?l8%>!9q|!{~2Mr`2Zs)XQ@9kF-b1wI!7oWqzG?XLdqn&uFzYp)9B3 z!UwKD2>SDQ{W#k^jjuiANMW+6{1e|0lk7!BlHCr5cY4RStS-osq-0LpOhsrLuw*iR z&FEs1?rd+1{&mzIS#+n!=$fqE;q6ZvH&6E7ubAn)Z5XH-cD38ip025WlPpf+E!LI0 zZ{R(cvvga$<>SoJKVLl6d`xXFOMT0Ev{vyZa^Q_*>_7USgM#)1^N9=d*ZUfdqYcV! zoadR`VkcG9>@1cZm8(jmC!f9&Ns7m&YeOy~RQk#iF%#2H`zn!NN*4o}+bykM%HI*{ zpW5+t%WVGYtHzp-b$oB-ZnN5l3BKl>b@})X8SWKNxSxPtA;<{ zjC9YAIMVaBI-{2p`3>GKG?C+xDwo&KH#T=}n)az`memG$ef=J|MshJ}|GG@I$92rN z9BS>SBj;$n`PHboY)t5sdcbw*XKR+^j?dxI7?MaO~$e+^N(%q#kLQh$QD1w(~)LKb>}IkeWUL4y<C*hmz`4W@HN&5{acTCC}nvq@bBBOY&d z(rWBRJ|X6Z(wMvlRDC^b>g~*~==UW3qUC@a%E)v5l{oZ$IN{TO;0VP zk?6(DD8w^s12o2JLJ87Sp(_vmZG%El^HvSPQACclWn3RIToYO{g98t@MP45GmcvcCbRtIX*If;194Gaq># z!$BheqNM{y4=`kaDmLRR&ng3H>t+E=6-?e0LN4WL4!JGqXVM!C2KKOT!2qu#z9chL z7H$Bp$4kZ>LTQpZsOKo%k^P3IG`R1^zbPG|N~OMMPKH5=cp5+&@sreNpO%JDUT%~Y zzED2U@5y$WHyo6>qYRD3#Mk3LQL{vNQhAU}u~Y0PM491(fc2$sRgxGN!JE01bCFq) z4ogCz*nUX zhbcrgUG`k&i(m#1Xr4Odu0rg=H2=}WW&{Wo&~On26sV7%5=+4|?1H0NTFiJq?d0iH zASJg>4iRKBz!)!Rj=VDf-OMGm^ZGEU#8Yz=G=wKev&~#mRYL#v8G0Wx?SBI8YCRG( z<4Utqnp6UB{)~E7UfPu5q}PWM-UGzpr7>sDD#+9|7!0uA+*T|l^#`bbDb+0}JE+6D z>E9-T<{bua7;8e~0cdqg(68x-ox691#1f-u5&%h~ZJHGlD;t)Kea~jy5D`fc2&Q!2 zo!Tu-G`YzOrWik)L=*qfv%j1l?i!d} zA`hf30y^U!CIk3i*GGEjnqa~H7z=4p`#FM8SaA~p27pUig(*-gQ@D;i%6yz1VmN@d zb0Hf4gbj11GI>}WucPrW6q|kE@c|^zZyPiz?a&y}B z=Lg>ppT2l+mF*a2kL~-6^>!_&K zNP8^*W?!P%_GP=L+mi2O^-p!&a(aPXh*1gqK*P(hvM7R5xw6M}Jj?t9fe*=j;zbJr zoSCQuQ>^1c?EEX%a~IArwoP5*9jfH{*7q}FIK3>>E^r`;DT44y*Qn`hmm6=dU~7;W z=lXQ9N`Xf^GOZ_D+Ed2EAmN4@!fPsCz~~`pThUKT_pLP7ta|(M=0BOy@5vq1>s@JA zeVKH-mIWP`m*$zOcr`8@_}#E%Ofo0g`1E``0q^3w9&7YpOq}CZE)Gx?s=gey-X{zKc_<709fXIV)c^l^a4$ zWbq>NUa_>!f4t96u+R6^M}rb@6Gs9 z^R8{U(1`7{tn}E zzwNG6sf7vD)rIUncvN zssM>Y*|C|5${Z%oJx+}ArKK9KTt0DG<9E^$+c>LCDE@?hl+t(H26c!4zsruA%jYP= zmGB<{N##EF4UuxkA-&|;?WU8ylT?4o23^rB6 z176WtZ0=@_qzXGO-{m9Y{rT>tJ-*8yr3(Z>Zp<(2YYlZ$sw^|Aq-~X6>A*EY)Y7xV)Zm$!5QevZy zR`i}J(e2EhHeuD=fZReNm)lI%i4awtZkya$Zo4d#erHU7_~u?D?scmrc3)Z#6c`n*p2I<($iGeR722Or* zDt{!81BTYN<-f5`9?T7ItkoGUS6wwDEuXqf4&!ddj@y&%xbsNT=5F)e9(}?5mBn2G zR&Mo(7MvhGvqjO?&XJ57#4@qbiWs>6k3wOE78JN5^`A>j-h$ZIB>^le5AM5OSOc4e{Vtg0H#W`BPSNFA z7oa#@9QQR5PRP`eox;-8C#W*OMkf0Ky3Lcu+?3;`U?jL0jbr0EtkTKlNA!>_q6am^5AdO{-OAdnqTbODJ-gVt6QvmcKme7hz3nEm+Jhu)9 z@GbGQ#~wd`Gy_9&zouB{H2ASp+lDe%vX06ebMbAy8QRdg>zWz(!(qcVCn zbP=Eg600=do&^Em1njG{PnT^LeL`!cHWdgeR_;q6nJA`nYDIV98+TWMkMC!};;C$@ ziTisu+#S$W+kCL_1L}GT-aSY# zSGU~*h{nQ-FWr=8!#C1MCI;AM=(SKV^@22J=m_KKuU~&?Gt=VSqMJZO1!;;EwAB%| zM#+ViEm8(&lf=bYsZVNy*nepgR*i!7>(o)=zTyCGO1xi)ya6VUuM93|6$Q#hp`W%` z2tvL6YdnynVH_2m5fhkV#QL1E5I8YW1SJazw_d!2zuEWeJAJZ)w}6<7WE zf@)WNbB%NcIV|9c!wg|C(}<|-Y(G(>o{B^Rn$rK?0Yeq)zeJ4pPJBD$X>5(&Tq`EF zwvvQzb6WG*+gJ1kohK@nS3D=XXE|$N3A{-y-X(Zf##vXP@N#Lles<7(N)cg|a{LUt0x`5(s*At*JF}PJv|JR8~J3SPmWJ}J1*27P~Sp&gQ&2fF=Fi%wZg~0K2{-~~c zq2t^k&tmenS1Z>yOY`rB=9P-R)o%Qtpo?swTWsb{5IvkV_*5E%z8=VqUi+seo$JQv zLHng`l$4zye^QN#iz3;(M5Ro*@?`{=sCh-z zK1TPG^7JR2$kq{;9_O0Piz8tVOO>!y*^jl%v3{q0tjcR8^UD+E*?dQ~#aG_eS3Fsq z_z;YIa*MvZd*wBE490=KbWP#o?+S8tU7f0hn6G=H^mOLh(t2Gu_qCYqCXI1^s>bU>f?F?=w)~m+P#?pWMLHU&Kqp*Mr>Biz+ zFRv#U9t|4Ub`!$SY#AU!-<&yf9Tjvj`GJ;3K<}N+PdA@7uAZcioTF794AM?{=ryHm5r|`<9#z`GBcK_ zETx>RNp!erWuI{T&!;X?{?{$d)W2tmz+EPnFm*uPp^r}hbD=lf3Sx@PX}FQ|vwJPJ zyDqk`wWm4}@8;Mco?OFPf{N(^)MyDKQb z4bE%wMi4c#kvRC`lPtD{Wc2-q0>}qF1%{|x$o!#zAm|4sd$X_qAyb-;p>?-@Y8=5G zund4?33X}=%`k9DC1cL3NKxuj6tQw@^Ln&3M?a-;+=CuJOG0Y6NoW3@KQ!79N1%9K z0xxF2gEmtdJWywVY9B{!SO{n zM((gtCXsM}9(blCU~UZMnR7og)Qv!4#smcCR44@}bn#h?uFcd7U>?^?BLt|=kturG z^ew6(Svcxu`WoE`!x=tl1ypeAwjdDLz}1v6jVwL^eclFKSb^-!1wz@W2Bax|mI%4A zmILHsqAGG^a`J1U%0eigITmov&kxmrE^I3H_3SEU3PqBNmrcbN7>@y~FlBv9Jw+H; zR{(VZ{6_ryD+^#*M5LueE@}cpXb`6}tbN5!W!Qbs>&8BgkCU_KZUY$Il#@Q3Nkk6- zE{fO1Nv}$zCzZZ~kCklmcOu17wKbCet|DhjDr^;W+fP}W$2&&~JqKKgQZv{AeLaO5 zk%A{dc)AlYqy_?qtTa4#1BP#`yc8J>r z;uzqV1ZHHSKp}2;$(%_}q)Dl`2CP&cJHI!@Fz}v2NA-{*!eZ`@gabeX+$S_~UG$j3 z8?9RRxi%R(GzvbsA5S7p(J0=2LfHxg@+9}Od#Jos9AS`k7zK1i;BK$TXrWV- z4LN3S4VCFIlbVvgctGWv9YUcxAkBp13zY)%(nv(?4=8b*#S`!U+z#>A>+<-t5p`L%s0luEr++bq(`*%d`}q& z26av4mIr{pNWF2+an~qb@dVjtl@0D1VhDb!nUEk_y<16Bg^Nz6V+=rM)WU||f#0e0?N$}dEg zU<@uOg01Z~xlBYzi|prS z(0vLD+|+3_ldCPKY(*%c31{ACxApm55dg8pa zlgH44XXr$!c(>M=VsMB{(Wp>hy?o|Q5>6>#0M7kP7zVU;-tG5NseoUkorFhF_3wc6 zZF5tU&lRH|9DW)cq9wR{ia>6Q6g~$7pEN7lAyN|j37tu<#$c&Z{NDZDn1NK=$!ucJ zfVnGYcMiNWxdc{zG-wq$FvvkC3jRcCazijGwDlC;@555b=1vXnt*ZSe9 zV+#`R`zDePM4!pqNAW(|Nd#Q339HC6!&>m4v}Uph{g~LLol#=_8=Uz1Wgu?{P$X4U z$Mj}DfM2r{ViC#Zkbc|@G#y0zf{6%4ih@pnJfncnMkWQWLst)pWc~%BPzji$@a*Qe zP=M73iyGHh zpGVPY6F z6fZ!Ax80!T*E2->$C@t}fnrp<|CYl{sxpIm z`+L{_vaplm6t0PC@?unq)NsgIxr)um=U_>lw5hnmcV>lwP89$a8ye)&cZ9|NeLheN zVOq@uel;r();LR%Y{3lz?_5hIkjm`pE}suIv$9gaj>YR~GBD9ExR6qC_bf4WmakJE zStO_l{x3un(-b|&3U!!!U08=vu>xeH)1@?V5vq*{ZZx3oLEqk$BqnOY6q&`_OB(Tz zg$}EW;=LN!JI%{m44~!-ZVg_#rlL~-7Vr?ZJ{8Z7Sl<>2dK z#1&&`uCnCoe^_}?-y^ELfX^b*Br%*Z*(nC_I!8gKYYgV1)D<)UQAPu;;~|`&i)s=( z6}C};ewEM!8uQm!(_llCx(MLQIY#;c=5!3ehCR^|4MHv|Fc#78;BBlMGHsSXC+-$Aa zEcmbbTM@9P_>>;EmNC*fc^VJ(IG#?ok3M$J`$@woxG!^cVY^QG29LyEc5xcu@-*qk zIoe;)@Z2HI3|O+5g+i>6;8p+d|3)$|<~T3eoAPb%&99+>{P1YnVO`~?x+LbX^Fawm zqCW!O{39Iww$YY~DVKGEAkG%_!(T5*<+MylA3t(4VP>D&la?*A+b7K0N?zdn>N4}? z_YuV;I}fJe!Sj*~JJz)M1lcypY|TWH_-b(hWw}?oK5DY2jeFrf%uv5q1{DRx1P+a? z^>uOnCa~VmU!@+}h0<{8PYxV_PEs>?FhekV@KTO17DBV8=IsJw79-$v&hC=ne$P~d z7(=qy*LM{cG4Y03S%Q*q|1rQAzx3(Nn3G=@LlzO2KsiiiY`DI&?>t%f!moZ?s+r3(jW&=?ohEG!B+ z3L0Tz0R9-vCaRK&alw*0J)azNRQ@?Ko>bCFKb?P8eXF&Jo+p)B)i?UQ&0@7hz6h>IRnltAuG_of(vWtU`;rQNvIX5gM`c1{V$x1Tkoy z1^aCu=P!gw#~84`p6^xQv>d@}mvrhUj4De88xiqAH zxY^7SkwByYPFbctcO$FsQ`)&Ww2}1^s*^l zTwlZHl(Z>x(>${YHQ8?J#Dvxq1z~w;WedSsd4WsTXQL8{qf~lzLEeN_`kF_BKyFMQ zA1Z8+?nKxi0-s?RXQKXEzv%8L`=JFgWcHH^#;Pm*immp?v+e z)T@~$79JbyQh>07irqY!!P7Jqf$ot*fRSZOXvL@~cUIh8TbZ97G-!DWh za7XUF(6AM6tC}aLs@!-O;QOU#=ArMb#Q(Z_^j0D z^a&dOK`!jhJxFUYV0!OsaOWkB8VAC{oU*eT2JLyiJXBh)yMN2PiGw{!^|b~A|M04* zj?0|I#5J2{@e2#4SHERo1#WnUv*vAQc_@sXRIxuv-q48AX=BH*Lugz=Mw`1b?W~HWr{_Aw*fF) zh#Li6@|5;3Jx6t=3f2-_Q;*SSXG6vXmT}}0)&0>b}WGDw$ToCerb};Mn*0YF_i*O9l#cfU{pvN2$ zPx=*m-Y8Z(KJ(AnyF#{t$4ifQ3rA6)7|uvQu2wRb%Mqe~cSG;iY`Op4X-DS=y?v`$ z9HxO&?5!lIw9@S>;=Nwb(}k12yGVD9xc9PNANBrfzxzUmL7Gd3*ZTBEOQVy)mzb1k zd3*EtkZ`B0_Fh-c;EySxZGVE+ZmQqWE_#;Z>y5>trKQ>EYdlUSDIrJwKbnp5-%R~s z*vX{n`=*toy=)~D=PutW@tLcvtUSru=Z?i4@q|HVp{B2L{THEt5h2wdYTs+uojaT( z2Hd%pOI@M~vQD;1>NT%=I+2#pPm(N6tyo^?zQV7-aupsC(N`)3;?QBk_966q)J$kEeHMr_`RbHw(;S&C?qrdzI; zF+@hhgwy^Y9P0&FT6gm<1V0Mx#&3Efv480_UbyIBDRr;& ze2t;+bZDr|rsf&_>G7-BR)}^1C~7W?!#xzy$ajciIDJObJS)iz1*K`d`#lXZHf`S8 zJLGkpNYW@n@D7i;rvU-~t_0d-w-9fJBSm!AVL%e{ZP=ZaBsBCn zzQ;6jKC+9TF6<&sd4J7m0|C?sbEzRNSx%$1v`aZjR>8DYa!+LJ7O}gr~UOm|euMhB+ zc5ju*sh0Addj25l^mi8b^#0q_LK|O_Fj@0XPwZbts*}xO$x8NlUbInd8?uW1e@Y-E3x85pgniC$`P;6etsvfR$DGFIS zgxZnl*Mg-sGIk=<)nmMLd5av8<7Ij0E;h3)`FCipCb(#!E%Qk;-YwfYhzfJ>Ik7V^ z+7!L_8=o~)oSRpLS>}@JJn#kPCga}OQpWERCHqsl)rY_)O~_Jzad>ik2~i$^y@zX)t_ z*PqckC`=g|Ad-=j|C8l2lz8o#Uab)jROrN4KxoV0Y4mDo@xC0y@S=GmnWw;648oR% zURG<6v3}PAhj>ib0FZGAMz@VpVBJBm-|b^f5U)a~@8jH494berIM5!sTJD1)kDCGM zl(mEeQ3-$e{j2@EA`#PH_yLjgN zo=jHx?l!GL?)E}N^79Rs_&_nu@z&9%?%S(-qD3PtRDO&{IY%eME)?0W;Y-65?+irw zMi|SyN(t(br3W7p=d{2o=qX{}mnPU>N4@~~{Nz`i$lllCracur$>Q+hSQFRWkq zlrWD#Bz99hncRH4$zCR>CEI!IXGV!MbKl`+h7h+|a8}ZMP@K0w_|`|s^ZPfy`)qv6 zW{T=T&3L~WY8B+li0w*0n^DTa{is}eqZ-If)CSx@kqVg4W44_=A2!db&V5tkD5OK9 z(U=oB{Hr&|ecSf8mpV1Le_$W}`hu*rygml1#-%^JgDrs?ka{g}?P5#mFZrOii$;g@F@FjYRX0Y0+x?@6j^%(m~FrMl8}GEiRlHy_C^ zH-pkk)}!6qcXe)rXD7riIm>9<3e6CSM8mp*wtsGdlEl8&usObor5jnfPWGx#O0!wx zQ03CiUOUPdcARZFoV-oc$LH$?T2&+)@%mpP{|lizjmu+y3D!QPr<4Y>tBm zE)dh@H&mJSTo16%hr`R015bVr+K?D})EIqlwb$Bu%84esxzxJIxymentFo@?U&ykI zP&?fAI(DDrk*-<0K$RThOP)xZF*;pZzZ~M4^~>_Ehuo9#V2iSRzgpSOi&1~@Kd$|; z5All=Ug>sB7ti}g;qCQVwfY)gH{osnZ~EtbOiHINoc(f%+GJ0KoBh=9Lz=_WX%lm^ z(dloZBMbAJLzgWj>Y8#UA60MvG?t5>v*5uNsCe0k}j))w)B4&{4i_~P`&w)JERAD zJ;bs2*eP~%A^XBXo!vv@z=DzLspa@=HClAJ%$-o#Lb$Z$*OteTCpGUTuOtv_8MX7{ zMS^wjAAFCzS=A{jYtI>IF)`ZcTXpC4+;_cyAjh~>Whs0e&ORG$Cc_GPjhz)TAo*Nmwz5XJU+jc&O;hwZ9_1#y#SqC$$u^M_PBd!uZ_6B6YJ7bC$}16Y|SENSIkpV zMSV0?MXF|H(#N7x#RAqIuk<-ESMQ&z9w;=p614SB=U>Rzp4nP#SyIBJ*wau4yQX7>HdU|p$IhqSTr=2Q<@?f6a6iiUsFODcPpmX}{D2niMOsCb z-urPXvN*f!-F-jj8T(`5>wk7WpV|1VT~D~_JvMuskf?s&zUqRt_5JeKb@aE9Pld(l zIagR;Zk_BURnd}~n3ttgT90DWmlZ)NX-mbe!1T`8zPMY)zSqM1O6oTpLce-EN2tZIi-2oMfmt$M!{DR$h{C~f_u{F zqpl%ne`f)%vhQ~|)ovds_~VhW$Kx1LAtjW;Le|+S?IacR2S8|oBIQ6uz$xH2A6Hv{ z_oK5SiX-0{uxbKIJRFOKbU7sN%ipY3w5EBgZ?1~FsCORJL&TSkhPr;V=$%PhAn+PY z;Tc`Q?d4LPepEjM58fHGTG+;^tiCI`Jrz=PKB97*)-Vf-E{XvP7z0y2jBptIRM`z; zD5#skPD=+vsAtEZl2O2nou*4M3UHoyQDzJfkJh9ZsN!T+43J0UGS!DvCYFS~2R8~h zDpa`JgMv^R(-typz{C_#oWg}e!4QP$!yddipYqQ|7->)dFL2>daBl0cp9va<^uGcW zfhJcX#8@m0BD~_ji7+MDB!Fdy3x_qfkoq;XuO}A+#Q8LG00jY(J4={*99Ke|1C9Gn zQ2GffIXvhuoW6EI_?FD0%9+?XF!>!+-pDwFA;*xzC=l-bU>v)gV{Xuy-ek?ii_P`MEH{-3Q zBN11pV{MNdO79u-K@ zV;u@fc*Z_>E;z#Tb>rmAsm)`@3j74OVSO@=W{mgdz)FqBa7p*x z1CDcl>7L~^+}{5=xa{`9xmpe16sowKjdr!Y!21Xl_P#bvEc`5r3eE4r1n(Ex@hzY_ z;qMc=yqstAtyG?Kw19I1;w2D{tH!P{VdsQha57I`IPhm0I}XM_!%Br7)k>#(KQk_M z`}HD!Q$8v1w|7udGBq7(~QC%x%Bzm^zrMovafTQ+g@KMkmgw& z`36a1Ty}+Y!Cr8Pj{GZWpY4}e#~Gn?AA7GZv#yW1VS4cMj_&cL4yYc1%{;W>%l8T1 z-dMZ|-8o9tP@Lz~ppPa+0f@coC_Awu42Vnu3R`yI*{9QWf4=$33S!I`vE;2I!nbDB zN3I87OYRYrL@FUDN6`7Vqc*>6!nf5o%Flb)sWInRBM$7l_Q$xYJVG(!%_UCNnJhfk z@lKDfhGk(>+zec)3`@=mPA2nue{Wljy;om2%ay(~N5Hu8uIvex<=9T_BlmSLIJ)C2 zifHX~XwPllQ=)9&j}4pw3ZM3;wfZXx9=vG06I05JRap46x>Df!`^_9|sICIg-G`W$ z`#)W;Xm9nC`AMwxo-OEYvgN@pW+5=<8Iv>|zlB*HlE@+w?7D8Cj+*~<_=@Kr>0@Ek z>bIO`@wy;Wn@iPp@+(6+6Sj>dup9T#hUM&+1?gz#6doKLFL|~{W9vH_YT7vInD2AV zCTZqtii`D{2(vM!JwA8FuiL?txKzBFHX3z-vIuY0(7K0;Ex34+_O?E)6gm{ganEbK@_N+%RuXM>Roi5jp>30Rrf-E2 z?WF_Wl<#R4muw}B&2K0q#%~VyVeburA~Uf>TowatdYf=QWt=Xn5rN2M*B%B48mJp5 zCO#QzLI-NpxP9=OSi_Q!SC_U9L!lOtlz#B81l((ayYYaC)@r2BYvz(PM~s0hMUK{j zW;je1N`sgu5g?Z2W@T#eQvWTa8RX&sBHUAy+6|i8RX7&CPpN;Sx+`vm;xSveT`axB z_Put7;UiDUEzkx%UvyH20pje?;i1%%vtZdQvn~l#t)|$wYzP@SJ#1Lxl}4Lv$TeDv zq(8U|+P0fa!18 zMqRvEEZ3^XwO6Oo0{oxxW2IV>F_%_oOWnr|W)4g)?Ii@A2+6^|nr*4Rd*617Jj-}R zT!l0{M-osg*T5vCyOy{zB#@Tc7k`HQcrAagQm^h?_5^-;oh*4=w@*Yw)2U&WTIuYNws4~#UZ#F&Z}nBpbW0@j zb^A_ui;ulS=oOFCq9R8DB+c@T+t;HHSARvH?EA&!;9RI@W;f~e=#th? znOO!Vk2wV_r|5ek$t;FdMds@+&78u`CxweQUxqq!j>T?Xzss6h64@Yh{)+c!?xdH2T_3icFIApe{OA0y ztJSBBk{Nm`jb5~0;ME_NhX>mV1XG$y40KPDmbI}Thkxu~ugSth#0Z^J+b{cg4d=^o zDZF*ktdXo|L208q5U^v-$hiKuHkMc`A?Wyx2j~=IW^o@oXA*%*JSg~-d4MRxGb9xK zLxS&&Qq3~ZXkV-W_w!tt;^?#V;HF;GS!+=7H$@sHK(tK2+#pv3FF3yo6pxb4yT?Y7 z9DP`P;noe5QW3-DoUVz0{SQl{{ceBFQ-`i)dLv z+#8FZ^xc^B+!puNg1Snp$(#jW9$rOVN_G$R)L)16qaX1Ny$e#9x6L`%+0;!UJAL5{ zZ8J1UD=<{tDgDSlddk-`^_!HsCM}gsUX-+9v2TlCU_H{dlAXE9&=9n{nD`d zbhaj~bcUzJe@XPrG}f@0Eoy&^J@u*PAhFe_Cr8%ClxVetgA=GfR(Z0K2Z}GZac+OO zOO5wln0SxU67f6tv& zjLGO0ox*av)|@T5U)mE{_EPU!J)_QbHCF0fJY8x1sA1FPX>HAo=rDyObV;eI@rBK1 zWKj33`ib+te$|5|8)NZfH6(IY{*3J?Mt?v?uhx$xtvlLZJ~pGKX0DyK+#b^Cx;gkn z7*+~TJzHE_)qZKR$*rQ*RtDk2Ngy!>U~I;4!4P%BTuP8|iVK^cFUh7hMBSDz3T;E% z>}@WQ6}K%|?C4(qy@)JNa`$(fPrJO9iIT&nEAtTX6IQ*j44R*fLmt7uja#x6_BRRq zMtn$5j2y4(FN+!Tw+FlXxQ_C*{m9rxEGZCw zmSKEaoYUi1#1gX~S;G_}Y+9F?4b%9<$qjO+v~>&nN|IkxDCwWZURu|AIwW;jKyJ={ zvbuq6+vO(MD^&j>u+{vM;leSR{xO#5Scq6X_|pB#`0AWtbM_U!z9KFrJ_Bc|I4Snv zuZV%$mY3Rfx>;TqEVnjixYVba!VPAdqiPJ+nI0~bCVLk|*Y|o{x^mu|Ph#vN^KE&I_m=|rT0hRrA~+4z1cVrLgr z`S=BKS2{C=Z2g|Br#MuZ$VoRtdP;}$RLcSF$R z3;KVm1k4WZ?dDuaalOg8_(T>)%4{ekTjZ#Tu8|!$Oe`iw2m=#u%7mg zztb&?ovCl}pT3!SrRGVR=Q;C)u{_~s3_8Q9u%DhR9r^0;0)9WLqWi(TRE_te+VbR< zq+7}(pa6LqZ?q{XxFESClA# zKDgL*TgiFRJPb|V{qS`M^X=w{kL(9CjL$5siWl#+BQ|@wyh@dYF+b};Fj?a8p0O@R z^>L-!jH7z<>`|I;&T~GMzPaP+Da99$gC?G=jfeCKJPJ$*xp3^iH9elJcJ&E&y3Y$A zHG6j9G-moSw z-8tV|(AS0LbiO`hYMh=uBg}Jj=kXa=fy1_If`gwPIlgi_?-S^6DJbnB_d5*Zpl9eI zzDvmZ_NYsQy`(KLvO~o5e8-iy<-se?b`pSu)e;t9;>BlE+v-JVtdmMONf#92!S*>L zJxl1coA|59!ejlGk0BY7w~9TSERws(p?f($MQhbUt<}Tlb=I~XEAL5M*L_@me3;v- zzFN2OZQ|$PnY^m=QfA<3D5oT`PV#Ku z($QZ3zTWbMx0TU*>}Tgc*IYkz`xnXq2jJ~5k2%@~0%xQ@OBE7x6DI66&(c4f8C9^% zqCG$IQ^mT~TPrJWR%v&>^ykHQqpcG%_2&a7tU%>v@tR#q`M*%(x!3t~_a{0h6AgcX zdQ(097`9KCJD%SKRt3)$oYq30+pjLmYMz3ovo5%uSo-{GHt@Z7{P?BD=jrlx4Z=Vm zw_#cc$1(`fao6fzFGdUF#1w}$6gewh%2Q>uz;nbO2uV>^OAlqEAtZR|221>Z%u5` z8V^mRYor{ifS^evfb?RN7D@sb0-=O1y@L{3Kq=CT5g{r~TBrf(NKpal2$CR35kV0_ zARs89Sk4{J{dWI?J0J2qnVHNaGnuva+WYtJ7p1|{emSCh^;OIM%83J^gwDceMo8Qz zEWGZ<0IX6C{Fl4uJ@TJhc~7X_8p_gFl{>b@Rih)m#ci^Y_wjg6!fT@UL9|HS}d8flq@l*^h7 z(ozIzE{ROdr=tS`*yLyIMgHdFXL1e(TD2OfJ~03Hq{(qKegvE4&frN)v)aA?`qom_ zq4K+??ROgn!^?&IbKkNp`oAV~wv;4~6`1uOSZGNw|Dkgnz6-7@!SwQ?)mLwq_KSk2|%rS4hTB{!Kl~w3v2EI#*KPe6l9M^s&N<4I^?he36nm| z9aF&b){?b*p$cKgbUg=QT1Sfy*jGm*mkP?x{tE1}|EUDc%9X{`cihdUBB-DKX+7cC zu(L{5J|sBlm{ru_^TB3|3ngL(JP$;5(&a>B}JIv&3cq&x{>D$mQ<@ z2P0S>>bSk|NGJj*%YlYQ>GlT9Qr)=3mU2_yExI~3wK1UFkE~6revf&|jrO6h1oM+5bT5D6Dx@jByxF>< zoLq74vDdXqRjY03I}O2`AlFL0e?Ddo*}TQ&Lfr}|9Uz2zvvH>sxj?%m#&r;>cJIZJ z;1>0nvwi?pq*sL#cS#pnx&Q{FxOzbFJ}H~}?31jg<98CWqL48dx?II33~z=XCFN)O z;j!7GtTD@XBuTkqf>vK8mUA^K_3dho9(clem}wXto|+>!7+UC|vmU+iF5W0PKK2Wb zQa5FKJpF`9I&~8HwwbL@Jc@Tz0~9BKQT@S()&c}etA=V{R7WOns-X^AL|f1m;z?Qu$ton@scCB} zoemX2#^BY_FgQnAUYq|EU}UC0de?>ZFoMg}G!8cqIv`n3S|c>0`vLSQ;cB94JUSCT z@%T*zIHP5&q~?cr3psCL4*x51Ci{^&r2b+>MRge#%4Yh|0`sXvZt_?4jgJ1RSk5#F zr?rfk#(J2j6t=b1dZx`yx0pufr91-= zXG<9-&j)lw$>hmxJ>BXi`5=2DY>nHJE|p483QuqEsR2Uu?zT9XjS) zA9JVBs=!8q)g%i$s5rmZ@HAlMo3d-zRQMZzaguNevB>Jj;lYJ1l0Ib3>s2XxCIaHH ze0P?^;|Z+tnIS)8FX-b_pDqzD-$j*qTiic1j6*qVv4BwLhVx;1?AXZ+*OFLS-*{6o z9nE8!TOVD|YBHMv#K$C`XN&=RvtimsSX)QysrpuTnu&*zx0P*0h{88Ah-oI6(5da$BKjoG>R z!lJ@3dm^zc8L`LwytIfT)2z18K5zvcOuvdBN5AvD$M+@R0XM?{*TkdO79It{D#f%n7&`qqgv4$nlq7;gV(c>#&0unBycYP4U!Fp5c@ox}9M{Z?0O85q|P4@%_AKEsuQseecmoW66~ydB+75YB-{X}yuA zL6M(hg%%<5H^=@i33oR~D}5~@A7~Q-Y=fldi}}d{1eq97o4N_2uTBL1@uBd0MfEhv zzo=cW!JX3%J`1OP4_5<4u(K93WwSPgN}FXnTd2>yyEd zZgSqO^k^PUMcUSK-*jDIPCyuwc?JxosH&F-b9{Jaw{FU%-5UZ|2wxaof_=gfCX%RS zR9VnJ8sp2?RTn>OsaS+W1P4a~N~180Pj=2J>E(YxCsP1{6JRW=0s8OXQ}T=S6A62* zi|qMFTL@4FdGMLOIfN?l0@4C=Aou#NXGc9hJQjH+YMht6jXuuQm0%sRa* zY3BU=&DCK`HL-<@%Tm2dXXS@{8(L*2Ebf%SV_P{OeHOEVCq6Bj|M6e7!$^ud z8l-3s9k}xs$sXP`!rL`buz49)d6$C8A#Vwx(c&eIOU=yro%12;I9QpSzl$Fu4P)#* zmmYtHy6tGAec9tmrcifVWUVT&TLH%eBk5_VQ;yLp)>iS3yeb|LS{KJ3Y=2( ztRAg7f8lo9QWZN-!N{&j`G_#hfRzF(Ed%W;U=FbM{Glh!?vY?6@+&S&nvLG(K2P`7 z<&M|0vpRG00&0(}r-XsL4zH6S^%i^gcAZG%@@#P8&pjE>tt+b9*y5vVs03iR9qvDB z7vFC~)g)ecS@`~ zaIr5_fxj**l@?6h#bN8LAG%lD#GByS^SxlSfL44-k}&OQj;4)E0IdAUML;S|+x(?z zPp{%XI)|aBo0X_ro~K&Nl-J4d-<#p3g{f^zC;jswxWDGnpjoArQ@!v{zkp|?T4B2) z$X1N>oO00}>R#jEw{yfh4Il(R`#l0rXH#lo%k zeeeejZ>>c-ZE&*jUo_kDM;H9>aaYqeAvfw{B40o^cA=d=UH*0F)c6(DrjVSljV=U1EfSqI~$?PKjbN9U|Vz-JNVYXVG?D+P7UbpIY`XmO?$3HCPI8G z6Nohu!i-NU()vvoZ2j-N;EDa7O9F98E!v_Hv8|U8?x5om>phdS!Bz>1?Ss*fivUb& z!m?2Kz^mz7IY?JQyn!4U@OiI*U^vo6d$@+^_7LylqO`l^%?rcW zgiZsE{jIx*8)P6i80l;{GGQ#RkQ;n$F z`FbiaZX=3(kRvb8J({Zid?OXMoyb?Z?5k&7@<^={jAB3tHWU)K1u&o-Ug&@a)fjoO^#l+bePr@sor-wf~no}*TuS<0wF`9#LOOW|Pj-b)FBjg4!6c6Gy z*^QV5(n{j+_xl7|n9Hce={a4?0s#g3*6ScXgqQ0dB0gc>hA_~_&V1vw2bZm)63Y(C zZnMkt{d$W3)hdP}dvR+iYJziXVNo2ICjcptkyuyy20WezHi5}#fTT^X)_U&1t|^k2 zP(%39kA3q|0`*lQ%4SNjv#KumW=`~{kK8ZsmbI~j1l~{JvT$y8b>7i?*qQyrmJ`W+ zyNxVyo?H0Y>=2b*uV;>vJPF7+ctoE3xagt3Mg0>WmGj}k8IbaPjH6jG6xM0=nvJp@D*Xoy(HDBO z*WTQ@aP|dE)fP@5n3d*LseH~w20y#Cy4LL)Oo(z#h|ioTk<52>0Eu~~0OB5ht$-_I zc1PNrX4EzTf>oaWOD5YXQs1A2_WC7E_gZo%W`vg5yeRGPXUFb&3g7RiFBPW7J}eJk z(399`*L4jSON-j7^D(8UQ89N^9HF|yC^vSdRE4dV+=Z>BWpfwd`1vEE4p|_Esf_Sm zah0D|>03Ayqj<3KnuvqVH8bx)2=P!J?(!rL)RnW%db`2{EaIPVk7LzN zq|K*WP>OM~U9JSmB@@Z46a+sr6R7_wKGw=h&y6m2Z8RLYiy8+ z!@XtKbA+PZWu9^kvI8l2Hd66|%TK^=62=cCOt|eSRt>_)yCv%48>1!b(3TFd4(gO1kJn=KFLZB0~ zMPCCdw%UcRBKNL9UNT)-^54NWm;N7K$8PZ*177+v`)d z*Ann?ty$IcPM+^)ruuB`vG)~fOf8VCR}ixOn#R(Iqzv!#**>k5mtiI|@hxfo1ndW* zpP>AO-wjodVdyhvA7X3+I|zjW62myy@5i;J3PWeQ{exfjB5Xy2CKfnx(QTI*oI_TL z@J+!LHmFeS^#mbk2@0K_D%q9W?X&lMSAC#a%Okzo=U-5qpi~F;jAxCAUIGd&y&INm z%xmct|B(bvNHaaCB`{)~@KGP{dk4TnP*mvmK}wx`zF9f6)^ki5J5!2E-MrwPf2)2n zW}wB*pfqXP*V(64j(>;1)pH7Tfv6YM>-H=<#{F|0OC<-hw z8Q=6MNU0SLp)rr=rDFWiKxGS+>UQI}qUrAxOiGNfxdl|`Z-Awd zyP>^bVP@78c6L^Y zCo?lMRt;D{z`I!%H#awz|5oh`GQy`ju1Kk?VuJEUcH+lrK+B9x^h=|8y=|kT)wEo; zh*CLQ)lHNMYiPmOj}j-faoZO)eZsXntlAoWOTKwS^l&ccr^92sM@(uVqYvIFM>xvr zQx|pO*n%W)l(_}narhOtzL>O|Mrex;OEqa{t;kWNIPeE(4PE3