From e8b3faec911d6c65028db8427d89c95df62d0603 Mon Sep 17 00:00:00 2001 From: Gunnar Beutner Date: Fri, 2 Feb 2018 07:22:50 +0100 Subject: [PATCH] Remove Icinga Studio --- CMakeLists.txt | 7 +- INSTALL.md | 4 - doc/12-icinga2-api.md | 18 - icinga-studio/CMakeLists.txt | 74 - icinga-studio/IcingaStudio.fbp | 2128 ----------------------- icinga-studio/MacOSXBundleInfo.plist.in | 38 - icinga-studio/aboutform.cpp | 30 - icinga-studio/aboutform.hpp | 36 - icinga-studio/connectform.cpp | 65 - icinga-studio/connectform.hpp | 39 - icinga-studio/forms.cpp | 239 --- icinga-studio/forms.h | 108 -- icinga-studio/icinga-studio.cpp | 66 - icinga-studio/icinga.icns | Bin 215406 -> 0 bytes icinga-studio/icinga.ico | Bin 766 -> 0 bytes icinga-studio/icinga.rc | 34 - icinga-studio/icinga.xpm | 40 - icinga-studio/mainform.cpp | 316 ---- icinga-studio/mainform.hpp | 54 - 19 files changed, 1 insertion(+), 3295 deletions(-) delete mode 100644 icinga-studio/CMakeLists.txt delete mode 100644 icinga-studio/IcingaStudio.fbp delete mode 100644 icinga-studio/MacOSXBundleInfo.plist.in delete mode 100644 icinga-studio/aboutform.cpp delete mode 100644 icinga-studio/aboutform.hpp delete mode 100644 icinga-studio/connectform.cpp delete mode 100644 icinga-studio/connectform.hpp delete mode 100644 icinga-studio/forms.cpp delete mode 100644 icinga-studio/forms.h delete mode 100644 icinga-studio/icinga-studio.cpp delete mode 100644 icinga-studio/icinga.icns delete mode 100644 icinga-studio/icinga.ico delete mode 100644 icinga-studio/icinga.rc delete mode 100644 icinga-studio/icinga.xpm delete mode 100644 icinga-studio/mainform.cpp delete mode 100644 icinga-studio/mainform.hpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 2fdf380c9..248f86730 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -35,7 +35,6 @@ option(ICINGA2_WITH_COMPAT "Build the compat module" ON) option(ICINGA2_WITH_LIVESTATUS "Build the Livestatus module" ON) option(ICINGA2_WITH_NOTIFICATION "Build the notification module" ON) option(ICINGA2_WITH_PERFDATA "Build the perfdata module" ON) -option(ICINGA2_WITH_STUDIO "Build the Icinga Studio application" OFF) option(ICINGA2_WITH_TESTS "Run unit tests" ON) option (USE_SYSTEMD @@ -364,10 +363,6 @@ if(MSVC) add_subdirectory(icinga-installer) endif() -if(ICINGA2_WITH_STUDIO) - add_subdirectory(icinga-studio) -endif() - if(ICINGA2_WITH_TESTS) add_subdirectory(test) endif() @@ -379,7 +374,7 @@ set(CPACK_PACKAGE_INSTALL_DIRECTORY "ICINGA2") set(CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR}/icinga-app\\\\icinga.ico") set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_BINARY_DIR}/LICENSE.txt") -set(CPACK_PACKAGE_EXECUTABLES "Icinga2SetupAgent;Icinga 2 Agent Wizard;icinga-studio;Icinga Studio") +set(CPACK_PACKAGE_EXECUTABLES "Icinga2SetupAgent;Icinga 2 Agent Wizard") set(CPACK_WIX_PRODUCT_ICON "${CMAKE_CURRENT_SOURCE_DIR}/icinga-app\\\\icinga.ico") set(CPACK_WIX_UPGRADE_GUID "52F2BEAA-4DF0-4C3E-ABDC-C0F61DE4DF8A") set(CPACK_WIX_EXTENSIONS "WixUtilExtension") diff --git a/INSTALL.md b/INSTALL.md index 79e3a7aa8..98251784c 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -66,9 +66,6 @@ application using a dist tarball (including notes for distributions): * Termcap (only required if libedit doesn't already link against termcap/ncurses) - RHEL/Fedora: libtermcap-devel - Debian/Ubuntu: (not necessary) -* wxWidgets (only required when building the Icinga 2 Studio) - - Fedora: wxGTK-devel and wxBase - - Debian/Ubuntu: libwxgtk2.8-dev ## Special requirements @@ -160,7 +157,6 @@ In addition to `CMAKE_INSTALL_PREFIX` here are most of the supported Icinga-spec - `ICINGA2_WITH_LIVESTATUS`: Determines whether the Livestatus module is built; defaults to `ON` - `ICINGA2_WITH_NOTIFICATION`: Determines whether the notification module is built; defaults to `ON` - `ICINGA2_WITH_PERFDATA`: Determines whether the perfdata module is built; defaults to `ON` -- `ICINGA2_WITH_STUDIO`: Determines whether the Icinga Studio application is built; defaults to `OFF` - `ICINGA2_WITH_TESTS`: Determines whether the unit tests are built; defaults to `ON` **MySQL or MariaDB:** diff --git a/doc/12-icinga2-api.md b/doc/12-icinga2-api.md index 7fd000c62..47cabf0f3 100644 --- a/doc/12-icinga2-api.md +++ b/doc/12-icinga2-api.md @@ -1846,7 +1846,6 @@ There are a couple of existing clients which can be used with the Icinga 2 API: * [curl](https://curl.haxx.se/) or any other HTTP client really * [Icinga 2 console (CLI command)](12-icinga2-api.md#icinga2-api-clients-cli-console) -* [Icinga Studio](12-icinga2-api.md#icinga2-api-clients-icinga-studio) * [Icinga Web 2 Director](https://www.icinga.com/products/icinga-web-2-modules/) Demo cases: @@ -1857,23 +1856,6 @@ Demo cases: Additional [programmatic examples](12-icinga2-api.md#icinga2-api-clients-programmatic-examples) will help you getting started using the Icinga 2 API in your environment. -### Icinga Studio - -Icinga Studio is a graphical application to query configuration objects provided by the API. - -![Icinga Studio Connection](images/icinga2-api/icinga2_api_icinga_studio_connect.png) - -![Icinga Studio Overview](images/icinga2-api/icinga2_api_icinga_studio_overview.png) - -Please check the package repository of your distribution for available -packages. - -> **Note** -> Icinga Studio does not currently support SSL certificate verification. - -The Windows installer already includes Icinga Studio. On Debian and Ubuntu the package -`icinga2-studio` can be used to install Icinga Studio. - ### Icinga 2 Console By default the [console CLI command](11-cli-commands.md#cli-command-console) evaluates diff --git a/icinga-studio/CMakeLists.txt b/icinga-studio/CMakeLists.txt deleted file mode 100644 index 2925ce95f..000000000 --- a/icinga-studio/CMakeLists.txt +++ /dev/null @@ -1,74 +0,0 @@ -# Icinga 2 -# Copyright (C) 2012-2018 Icinga Development Team (https://www.icinga.com/) -# -# 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 program 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 program; if not, write to the Free Software Foundation -# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. - -set(wxWidgets_CONFIGURATION mswu) -find_package(wxWidgets COMPONENTS core base propgrid adv REQUIRED) -include(${wxWidgets_USE_FILE}) - -if(MSVC) - set(WindowsSources icinga.rc) -else() - set(WindowsSources "") -endif() - -set(icinga_studio_SOURCES - icinga-studio.cpp - forms.cpp - aboutform.cpp aboutform.hpp - connectform.cpp connectform.hpp - mainform.cpp mainform.hpp - icinga.icns ${WindowsSources} - ${base_OBJS} - $ - $ -) - -add_executable(icinga-studio MACOSX_BUNDLE WIN32 ${icinga_studio_SOURCES}) - -target_link_libraries(icinga-studio ${base_DEPS} ${wxWidgets_LIBRARIES}) - -if(APPLE) - set_source_files_properties(icinga.icns PROPERTIES MACOSX_PACKAGE_LOCATION Resources) -endif() - -set_target_properties ( - icinga-studio PROPERTIES - INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR}/icinga2 - FOLDER Bin - OUTPUT_NAME icinga-studio - MACOSX_BUNDLE_INFO_STRING "Icinga Studio" - MACOSX_BUNDLE_BUNDLE_NAME "Icinga Studio" - MACOSX_BUNDLE_GUI_IDENTIFIER "Icinga Studio" - MACOSX_BUNDLE_ICON_FILE icinga.icns - MACOSX_BUNDLE_SHORT_VERSION_STRING "${GIT_VERSION}" - MACOSX_BUNDLE_LONG_VERSION_STRING "${GIT_VERSION}" - MACOSX_BUNDLE_COPYRIGHT "(c) Icinga Development Team" - MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/MacOSXBundleInfo.plist.in" -) - -if(WIN32) - set(InstallPath "${CMAKE_INSTALL_SBINDIR}") -else() - set(InstallPath "${CMAKE_INSTALL_BINDIR}") -endif() - -install( - TARGETS icinga-studio - RUNTIME DESTINATION ${InstallPath} - BUNDLE DESTINATION ${InstallPath} -) - diff --git a/icinga-studio/IcingaStudio.fbp b/icinga-studio/IcingaStudio.fbp deleted file mode 100644 index 09adf7e3e..000000000 --- a/icinga-studio/IcingaStudio.fbp +++ /dev/null @@ -1,2128 +0,0 @@ - - - - - - C++ - 1 - source_name - 0 - 0 - res - UTF-8 - connect - forms - 1000 - none - 0 - IcingaStudio - - . - - 1 - 1 - 1 - 1 - UI - 1 - 0 - - 0 - wxAUI_MGR_DEFAULT - - wxBOTH - - 1 - 1 - impl_virtual - - - - 0 - wxID_ANY - - 800,569 - MainFormBase - - 800,569 - wxDEFAULT_FRAME_STYLE - - Icinga Studio - - - - wxTAB_TRAVERSAL - 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 1 - - - 0 - wxID_ANY - MyMenuBar - - - m_MenuBar - protected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - &File - m_FileMenu - none - - - 0 - 1 - - wxID_EXIT - wxITEM_NORMAL - &Quit - m_QuitMenuItem - none - - - OnQuitClicked - - - - - &Help - m_HelpMenu - none - - - 0 - 1 - - wxID_ABOUT - wxITEM_NORMAL - &About Icinga Studio... - m_AboutMenuItem - none - - - OnAboutClicked - - - - - - - m_DialogSizer - wxVERTICAL - none - - 5 - wxEXPAND - 1 - - - m_ConnectionDetailsSizer - wxHORIZONTAL - none - - 2 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_TypesTree - 1 - - - protected - 1 - - Resizable - 1 - 315,-1 - wxTR_DEFAULT_STYLE|wxTR_HIDE_ROOT - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnTypeSelected - - - - - - - - 5 - wxEXPAND - 1 - - - m_ObjectDetailsSizer - wxVERTICAL - none - - 2 - wxALL|wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_ObjectsList - 1 - - - protected - 1 - - Resizable - 1 - - wxLC_REPORT - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - OnObjectSelected - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - - 1 - - 0 - 0 - wxID_ANY - 1 - - 0 - - - 0 - - 1 - m_PropertyGrid - 1 - - - protected - 1 - - Resizable - 1 - - wxPG_DEFAULT_STYLE - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1 - 1 - - 1 - - 0 - wxID_ANY - - - m_StatusBar - protected - - - wxST_SIZEGRIP - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - wxAUI_MGR_DEFAULT - - wxBOTH - - 1 - 1 - impl_virtual - - - - 0 - wxID_ANY - - - ConnectFormBase - - -1,-1 - wxDEFAULT_DIALOG_STYLE - - Icinga Studio - Connect - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - m_DialogSizer - wxVERTICAL - none - - 5 - wxEXPAND | wxALL - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_ConnectionDetailsPanel - 1 - - - none - 1 - - Resizable - 1 - - - 0 - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - wxID_ANY - Connection Details - - m_DetailsSizer - wxVERTICAL - none - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Host: - - 0 - - - 0 - - 1 - m_HostLabel - 1 - - - none - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_OK - - 0 - - - - 0 - - 1 - m_HostText - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Port: - - 0 - - - 0 - - 1 - m_PortLabel - 1 - - - none - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - - 0 - - 1 - m_PortText - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - API User: - - 0 - - - 0 - - 1 - m_UserLabel - 1 - - - none - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - - 0 - - 1 - m_UserText - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - API Password: - - 0 - - - 0 - - 1 - m_PasswordLabel - 1 - - - none - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - - 0 - - 1 - m_PasswordText - 1 - - - protected - 1 - - Resizable - 1 - - wxTE_PASSWORD - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - You can find the username and password for the default user in /etc/icinga2/conf.d/api-users.conf. - - 0 - - - 0 - - 1 - m_InfoLabel - 1 - - - none - 1 - - Resizable - 1 - - - - 0 - - - - - 270 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND | wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_ButtonsPanel - 1 - - - none - 1 - - Resizable - 1 - - - 0 - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - m_ButtonsSizer - wxHORIZONTAL - none - - 5 - wxEXPAND - 1 - - 0 - 1 - 0 - 0 - 0 - 1 - 0 - 0 - - m_Buttons - protected - - - - - - - - - - - - - - - - - 0 - wxAUI_MGR_DEFAULT - - wxBOTH - - 1 - 1 - impl_virtual - - - - 0 - wxID_ANY - - - AboutFormBase - - -1,-1 - wxDEFAULT_DIALOG_STYLE - - About Icinga Studio - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - m_DialogSizer - wxVERTICAL - none - - 5 - wxEXPAND - 1 - - - m_InfoSizer - wxHORIZONTAL - none - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - Load From Embedded File; icinga.xpm - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_ProductIcon - 1 - - - none - 1 - - Resizable - 1 - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - - m_AboutInfoSizer - wxVERTICAL - none - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Icinga Studio - - 0 - - - 0 - - 1 - m_ProductNameLabel - 1 - - - none - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Version - - 0 - - - 0 - - 1 - m_VersionLabel - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Copyright (c) 2015 Icinga Development Team - - 0 - - - 0 - - 1 - m_CopyrightLabel - 1 - - - none - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND | wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_ButtonsPanel - 1 - - - none - 1 - - Resizable - 1 - - - 0 - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - - - - m_ButtonsSizer - wxVERTICAL - none - - 5 - wxEXPAND - 0 - - 0 - 0 - 0 - 0 - 0 - 1 - 0 - 0 - - m_Buttons - none - - - - - - - - - - - - - - - - - diff --git a/icinga-studio/MacOSXBundleInfo.plist.in b/icinga-studio/MacOSXBundleInfo.plist.in deleted file mode 100644 index 681035201..000000000 --- a/icinga-studio/MacOSXBundleInfo.plist.in +++ /dev/null @@ -1,38 +0,0 @@ - - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${MACOSX_BUNDLE_EXECUTABLE_NAME} - CFBundleGetInfoString - ${MACOSX_BUNDLE_INFO_STRING} - CFBundleIconFile - ${MACOSX_BUNDLE_ICON_FILE} - CFBundleIdentifier - ${MACOSX_BUNDLE_GUI_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleLongVersionString - ${MACOSX_BUNDLE_LONG_VERSION_STRING} - CFBundleName - ${MACOSX_BUNDLE_BUNDLE_NAME} - CFBundlePackageType - APPL - CFBundleShortVersionString - ${MACOSX_BUNDLE_SHORT_VERSION_STRING} - CFBundleSignature - ???? - CFBundleVersion - ${MACOSX_BUNDLE_BUNDLE_VERSION} - CSResourcesFileMapped - - LSRequiresCarbon - - NSHumanReadableCopyright - ${MACOSX_BUNDLE_COPYRIGHT} - NSHighResolutionCapable - - - diff --git a/icinga-studio/aboutform.cpp b/icinga-studio/aboutform.cpp deleted file mode 100644 index 8315c10db..000000000 --- a/icinga-studio/aboutform.cpp +++ /dev/null @@ -1,30 +0,0 @@ -/****************************************************************************** - * Icinga 2 * - * Copyright (C) 2012-2018 Icinga Development Team (https://www.icinga.com/) * - * * - * 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 program 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 program; if not, write to the Free Software Foundation * - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * - ******************************************************************************/ - -#include "base/application.hpp" -#include "icinga-studio/aboutform.hpp" - -using namespace icinga; - -AboutForm::AboutForm(wxWindow *parent) - : AboutFormBase(parent) -{ - std::string version = "Version " + Application::GetAppVersion(); - m_VersionLabel->SetLabelText(version); -} diff --git a/icinga-studio/aboutform.hpp b/icinga-studio/aboutform.hpp deleted file mode 100644 index 1614acd24..000000000 --- a/icinga-studio/aboutform.hpp +++ /dev/null @@ -1,36 +0,0 @@ -/****************************************************************************** - * Icinga 2 * - * Copyright (C) 2012-2018 Icinga Development Team (https://www.icinga.com/) * - * * - * 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 program 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 program; if not, write to the Free Software Foundation * - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * - ******************************************************************************/ - -#ifndef ABOUTFORM_H -#define ABOUTFORM_H - -#include "icinga-studio/forms.h" - -namespace icinga -{ - -class AboutForm final : public AboutFormBase -{ -public: - AboutForm(wxWindow *parent); -}; - -} - -#endif /* ABOUTFORM_H */ diff --git a/icinga-studio/connectform.cpp b/icinga-studio/connectform.cpp deleted file mode 100644 index b3d20d5fb..000000000 --- a/icinga-studio/connectform.cpp +++ /dev/null @@ -1,65 +0,0 @@ -/****************************************************************************** - * Icinga 2 * - * Copyright (C) 2012-2018 Icinga Development Team (https://www.icinga.com/) * - * * - * 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 program 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 program; if not, write to the Free Software Foundation * - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * - ******************************************************************************/ - -#include "icinga-studio/connectform.hpp" -#include -#include - -using namespace icinga; - -ConnectForm::ConnectForm(wxWindow *parent, const Url::Ptr& url) - : ConnectFormBase(parent) -{ -#ifdef _WIN32 - SetIcon(wxICON(icinga)); -#endif /* _WIN32 */ - - std::string authority = url->GetAuthority(); - - std::vector tokens; - boost::algorithm::split(tokens, authority, boost::is_any_of("@")); - - if (tokens.size() > 1) { - std::vector userinfo; - boost::algorithm::split(userinfo, tokens[0], boost::is_any_of(":")); - - m_UserText->SetValue(userinfo[0]); - m_PasswordText->SetValue(userinfo[1]); - } - - std::vector hostport; - boost::algorithm::split(hostport, tokens.size() > 1 ? tokens[1] : tokens[0], boost::is_any_of(":")); - - m_HostText->SetValue(hostport[0]); - - if (hostport.size() > 1) - m_PortText->SetValue(hostport[1]); - else - m_PortText->SetValue("5665"); - - SetDefaultItem(m_ButtonsOK); -} - -Url::Ptr ConnectForm::GetUrl() const -{ - wxString url = "https://" + m_UserText->GetValue() + ":" + m_PasswordText->GetValue() - + "@" + m_HostText->GetValue() + ":" + m_PortText->GetValue() + "/"; - - return new Url(url.ToStdString()); -} diff --git a/icinga-studio/connectform.hpp b/icinga-studio/connectform.hpp deleted file mode 100644 index ca54502fa..000000000 --- a/icinga-studio/connectform.hpp +++ /dev/null @@ -1,39 +0,0 @@ -/****************************************************************************** - * Icinga 2 * - * Copyright (C) 2012-2018 Icinga Development Team (https://www.icinga.com/) * - * * - * 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 program 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 program; if not, write to the Free Software Foundation * - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * - ******************************************************************************/ - -#ifndef CONNECTFORM_H -#define CONNECTFORM_H - -#include "remote/url.hpp" -#include "icinga-studio/forms.h" - -namespace icinga -{ - -class ConnectForm final : public ConnectFormBase -{ -public: - ConnectForm(wxWindow *parent, const Url::Ptr& url); - - Url::Ptr GetUrl() const; -}; - -} - -#endif /* CONNECTFORM_H */ diff --git a/icinga-studio/forms.cpp b/icinga-studio/forms.cpp deleted file mode 100644 index afe31d6d0..000000000 --- a/icinga-studio/forms.cpp +++ /dev/null @@ -1,239 +0,0 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 17 2015) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#include "forms.h" - -#include "icinga.xpm" - -/////////////////////////////////////////////////////////////////////////// - -MainFormBase::MainFormBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxSize( 800,569 ), wxDefaultSize ); - - m_MenuBar = new wxMenuBar( 0 ); - wxMenu* m_FileMenu; - m_FileMenu = new wxMenu(); - wxMenuItem* m_QuitMenuItem; - m_QuitMenuItem = new wxMenuItem( m_FileMenu, wxID_EXIT, wxString( wxT("&Quit") ) , wxEmptyString, wxITEM_NORMAL ); - m_FileMenu->Append( m_QuitMenuItem ); - - m_MenuBar->Append( m_FileMenu, wxT("&File") ); - - wxMenu* m_HelpMenu; - m_HelpMenu = new wxMenu(); - wxMenuItem* m_AboutMenuItem; - m_AboutMenuItem = new wxMenuItem( m_HelpMenu, wxID_ABOUT, wxString( wxT("&About Icinga Studio...") ) , wxEmptyString, wxITEM_NORMAL ); - m_HelpMenu->Append( m_AboutMenuItem ); - - m_MenuBar->Append( m_HelpMenu, wxT("&Help") ); - - this->SetMenuBar( m_MenuBar ); - - wxBoxSizer* m_DialogSizer; - m_DialogSizer = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer* m_ConnectionDetailsSizer; - m_ConnectionDetailsSizer = new wxBoxSizer( wxHORIZONTAL ); - - m_TypesTree = new wxTreeCtrl( this, wxID_ANY, wxDefaultPosition, wxSize( 315,-1 ), wxTR_DEFAULT_STYLE|wxTR_HIDE_ROOT ); - m_ConnectionDetailsSizer->Add( m_TypesTree, 0, wxALL|wxEXPAND, 2 ); - - wxBoxSizer* m_ObjectDetailsSizer; - m_ObjectDetailsSizer = new wxBoxSizer( wxVERTICAL ); - - m_ObjectsList = new wxListCtrl( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxLC_REPORT ); - m_ObjectDetailsSizer->Add( m_ObjectsList, 1, wxALL|wxEXPAND, 2 ); - - m_PropertyGrid = new wxPropertyGrid(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxPG_DEFAULT_STYLE); - m_ObjectDetailsSizer->Add( m_PropertyGrid, 1, wxALL|wxEXPAND, 5 ); - - - m_ConnectionDetailsSizer->Add( m_ObjectDetailsSizer, 1, wxEXPAND, 5 ); - - - m_DialogSizer->Add( m_ConnectionDetailsSizer, 1, wxEXPAND, 5 ); - - - this->SetSizer( m_DialogSizer ); - this->Layout(); - m_StatusBar = this->CreateStatusBar( 1, wxST_SIZEGRIP, wxID_ANY ); - - this->Centre( wxBOTH ); - - // Connect Events - this->Connect( m_QuitMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFormBase::OnQuitClicked ) ); - this->Connect( m_AboutMenuItem->GetId(), wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFormBase::OnAboutClicked ) ); - m_TypesTree->Connect( wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler( MainFormBase::OnTypeSelected ), nullptr, this ); - m_ObjectsList->Connect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( MainFormBase::OnObjectSelected ), nullptr, this ); -} - -MainFormBase::~MainFormBase() -{ - // Disconnect Events - this->Disconnect( wxID_EXIT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFormBase::OnQuitClicked ) ); - this->Disconnect( wxID_ABOUT, wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler( MainFormBase::OnAboutClicked ) ); - m_TypesTree->Disconnect( wxEVT_COMMAND_TREE_SEL_CHANGED, wxTreeEventHandler( MainFormBase::OnTypeSelected ), nullptr, this ); - m_ObjectsList->Disconnect( wxEVT_COMMAND_LIST_ITEM_SELECTED, wxListEventHandler( MainFormBase::OnObjectSelected ), nullptr, this ); - -} - -ConnectFormBase::ConnectFormBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxDefaultSize, wxDefaultSize ); - - wxBoxSizer* m_DialogSizer; - m_DialogSizer = new wxBoxSizer( wxVERTICAL ); - - wxPanel* m_ConnectionDetailsPanel; - m_ConnectionDetailsPanel = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxStaticBoxSizer* m_DetailsSizer; - m_DetailsSizer = new wxStaticBoxSizer( new wxStaticBox( m_ConnectionDetailsPanel, wxID_ANY, wxT("Connection Details") ), wxVERTICAL ); - - wxStaticText* m_HostLabel; - m_HostLabel = new wxStaticText( m_DetailsSizer->GetStaticBox(), wxID_ANY, wxT("Host:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_HostLabel->Wrap( -1 ); - m_DetailsSizer->Add( m_HostLabel, 0, wxALL, 5 ); - - m_HostText = new wxTextCtrl( m_DetailsSizer->GetStaticBox(), wxID_OK, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_DetailsSizer->Add( m_HostText, 0, wxALL|wxEXPAND, 5 ); - - wxStaticText* m_PortLabel; - m_PortLabel = new wxStaticText( m_DetailsSizer->GetStaticBox(), wxID_ANY, wxT("Port:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PortLabel->Wrap( -1 ); - m_DetailsSizer->Add( m_PortLabel, 0, wxALL, 5 ); - - m_PortText = new wxTextCtrl( m_DetailsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_DetailsSizer->Add( m_PortText, 0, wxALL, 5 ); - - wxStaticText* m_UserLabel; - m_UserLabel = new wxStaticText( m_DetailsSizer->GetStaticBox(), wxID_ANY, wxT("API User:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_UserLabel->Wrap( -1 ); - m_DetailsSizer->Add( m_UserLabel, 0, wxALL, 5 ); - - m_UserText = new wxTextCtrl( m_DetailsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 ); - m_DetailsSizer->Add( m_UserText, 0, wxALL|wxEXPAND, 5 ); - - wxStaticText* m_PasswordLabel; - m_PasswordLabel = new wxStaticText( m_DetailsSizer->GetStaticBox(), wxID_ANY, wxT("API Password:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_PasswordLabel->Wrap( -1 ); - m_DetailsSizer->Add( m_PasswordLabel, 0, wxALL, 5 ); - - m_PasswordText = new wxTextCtrl( m_DetailsSizer->GetStaticBox(), wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_PASSWORD ); - m_DetailsSizer->Add( m_PasswordText, 0, wxALL|wxEXPAND, 5 ); - - wxStaticText* m_InfoLabel; - m_InfoLabel = new wxStaticText( m_DetailsSizer->GetStaticBox(), wxID_ANY, wxT("You can find the username and password for the default user in /etc/icinga2/conf.d/api-users.conf."), wxDefaultPosition, wxDefaultSize, 0 ); - m_InfoLabel->Wrap( 270 ); - m_DetailsSizer->Add( m_InfoLabel, 0, wxALL, 5 ); - - - m_ConnectionDetailsPanel->SetSizer( m_DetailsSizer ); - m_ConnectionDetailsPanel->Layout(); - m_DetailsSizer->Fit( m_ConnectionDetailsPanel ); - m_DialogSizer->Add( m_ConnectionDetailsPanel, 1, wxEXPAND | wxALL, 5 ); - - wxPanel* m_ButtonsPanel; - m_ButtonsPanel = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* m_ButtonsSizer; - m_ButtonsSizer = new wxBoxSizer( wxHORIZONTAL ); - - m_Buttons = new wxStdDialogButtonSizer(); - m_ButtonsOK = new wxButton( m_ButtonsPanel, wxID_OK ); - m_Buttons->AddButton( m_ButtonsOK ); - m_ButtonsCancel = new wxButton( m_ButtonsPanel, wxID_CANCEL ); - m_Buttons->AddButton( m_ButtonsCancel ); - m_Buttons->Realize(); - - m_ButtonsSizer->Add( m_Buttons, 1, wxEXPAND, 5 ); - - - m_ButtonsPanel->SetSizer( m_ButtonsSizer ); - m_ButtonsPanel->Layout(); - m_ButtonsSizer->Fit( m_ButtonsPanel ); - m_DialogSizer->Add( m_ButtonsPanel, 0, wxEXPAND | wxALL, 5 ); - - - this->SetSizer( m_DialogSizer ); - this->Layout(); - m_DialogSizer->Fit( this ); - - this->Centre( wxBOTH ); -} - -ConnectFormBase::~ConnectFormBase() -{ -} - -AboutFormBase::AboutFormBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) -{ - this->SetSizeHints( wxDefaultSize, wxDefaultSize ); - - wxBoxSizer* m_DialogSizer; - m_DialogSizer = new wxBoxSizer( wxVERTICAL ); - - wxBoxSizer* m_InfoSizer; - m_InfoSizer = new wxBoxSizer( wxHORIZONTAL ); - - wxStaticBitmap* m_ProductIcon; - m_ProductIcon = new wxStaticBitmap( this, wxID_ANY, wxBitmap( icinga_xpm ), wxDefaultPosition, wxDefaultSize, 0 ); - m_InfoSizer->Add( m_ProductIcon, 0, wxALL, 5 ); - - wxBoxSizer* m_AboutInfoSizer; - m_AboutInfoSizer = new wxBoxSizer( wxVERTICAL ); - - wxStaticText* m_ProductNameLabel; - m_ProductNameLabel = new wxStaticText( this, wxID_ANY, wxT("Icinga Studio"), wxDefaultPosition, wxDefaultSize, 0 ); - m_ProductNameLabel->Wrap( -1 ); - m_AboutInfoSizer->Add( m_ProductNameLabel, 0, wxALL, 5 ); - - m_VersionLabel = new wxStaticText( this, wxID_ANY, wxT("Version"), wxDefaultPosition, wxDefaultSize, 0 ); - m_VersionLabel->Wrap( -1 ); - m_AboutInfoSizer->Add( m_VersionLabel, 0, wxALL, 5 ); - - wxStaticText* m_CopyrightLabel; - m_CopyrightLabel = new wxStaticText( this, wxID_ANY, wxT("Copyright (c) 2015 Icinga Development Team"), wxDefaultPosition, wxDefaultSize, 0 ); - m_CopyrightLabel->Wrap( -1 ); - m_AboutInfoSizer->Add( m_CopyrightLabel, 0, wxALL, 5 ); - - - m_InfoSizer->Add( m_AboutInfoSizer, 1, wxEXPAND, 5 ); - - - m_DialogSizer->Add( m_InfoSizer, 1, wxEXPAND, 5 ); - - wxPanel* m_ButtonsPanel; - m_ButtonsPanel = new wxPanel( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); - wxBoxSizer* m_ButtonsSizer; - m_ButtonsSizer = new wxBoxSizer( wxVERTICAL ); - - wxStdDialogButtonSizer* m_Buttons; - wxButton* m_ButtonsOK; - m_Buttons = new wxStdDialogButtonSizer(); - m_ButtonsOK = new wxButton( m_ButtonsPanel, wxID_OK ); - m_Buttons->AddButton( m_ButtonsOK ); - m_Buttons->Realize(); - - m_ButtonsSizer->Add( m_Buttons, 0, wxEXPAND, 5 ); - - - m_ButtonsPanel->SetSizer( m_ButtonsSizer ); - m_ButtonsPanel->Layout(); - m_ButtonsSizer->Fit( m_ButtonsPanel ); - m_DialogSizer->Add( m_ButtonsPanel, 0, wxEXPAND | wxALL, 5 ); - - - this->SetSizer( m_DialogSizer ); - this->Layout(); - m_DialogSizer->Fit( this ); - - this->Centre( wxBOTH ); -} - -AboutFormBase::~AboutFormBase() -{ -} diff --git a/icinga-studio/forms.h b/icinga-studio/forms.h deleted file mode 100644 index f01f5b904..000000000 --- a/icinga-studio/forms.h +++ /dev/null @@ -1,108 +0,0 @@ -/////////////////////////////////////////////////////////////////////////// -// C++ code generated with wxFormBuilder (version Jun 17 2015) -// http://www.wxformbuilder.org/ -// -// PLEASE DO "NOT" EDIT THIS FILE! -/////////////////////////////////////////////////////////////////////////// - -#ifndef __FORMS_H__ -#define __FORMS_H__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/////////////////////////////////////////////////////////////////////////// - -/////////////////////////////////////////////////////////////////////////////// -/// Class MainFormBase -/////////////////////////////////////////////////////////////////////////////// -class MainFormBase : public wxFrame -{ - private: - - protected: - wxMenuBar* m_MenuBar; - wxTreeCtrl* m_TypesTree; - wxListCtrl* m_ObjectsList; - wxPropertyGrid* m_PropertyGrid; - wxStatusBar* m_StatusBar; - - // Virtual event handlers, overide them in your derived class - virtual void OnQuitClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void OnAboutClicked( wxCommandEvent& event ) { event.Skip(); } - virtual void OnTypeSelected( wxTreeEvent& event ) { event.Skip(); } - virtual void OnObjectSelected( wxListEvent& event ) { event.Skip(); } - - - public: - - MainFormBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Icinga Studio"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 800,569 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL ); - - ~MainFormBase() override; - -}; - -/////////////////////////////////////////////////////////////////////////////// -/// Class ConnectFormBase -/////////////////////////////////////////////////////////////////////////////// -class ConnectFormBase : public wxDialog -{ - private: - - protected: - wxTextCtrl* m_HostText; - wxTextCtrl* m_PortText; - wxTextCtrl* m_UserText; - wxTextCtrl* m_PasswordText; - wxStdDialogButtonSizer* m_Buttons; - wxButton* m_ButtonsOK; - wxButton* m_ButtonsCancel; - - public: - - ConnectFormBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("Icinga Studio - Connect"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE ); - ~ConnectFormBase() override; - -}; - -/////////////////////////////////////////////////////////////////////////////// -/// Class AboutFormBase -/////////////////////////////////////////////////////////////////////////////// -class AboutFormBase : public wxDialog -{ - private: - - protected: - wxStaticText* m_VersionLabel; - - public: - - AboutFormBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxT("About Icinga Studio"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1,-1 ), long style = wxDEFAULT_DIALOG_STYLE ); - ~AboutFormBase() override; - -}; - -#endif //__FORMS_H__ diff --git a/icinga-studio/icinga-studio.cpp b/icinga-studio/icinga-studio.cpp deleted file mode 100644 index d6e85662f..000000000 --- a/icinga-studio/icinga-studio.cpp +++ /dev/null @@ -1,66 +0,0 @@ -/****************************************************************************** - * Icinga 2 * - * Copyright (C) 2012-2018 Icinga Development Team (https://www.icinga.com/) * - * * - * 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 program 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 program; if not, write to the Free Software Foundation * - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * - ******************************************************************************/ - -#include "icinga-studio/connectform.hpp" -#include "icinga-studio/mainform.hpp" -#include "base/application.hpp" -#include -#include -#include - -using namespace icinga; - -class IcingaStudio final : public wxApp -{ -public: - bool OnInit() override - { - Application::InitializeBase(); - - Url::Ptr pUrl; - - if (argc < 2) { - wxConfig config("IcingaStudio"); - wxString wUrl; - - if (!config.Read("url", &wUrl)) - wUrl = "https://localhost:5665/"; - - std::string url = wUrl.ToStdString(); - - ConnectForm f(nullptr, new Url(url)); - if (f.ShowModal() != wxID_OK) - return false; - - pUrl = f.GetUrl(); - url = pUrl->Format(false, true); - wUrl = url; - config.Write("url", wUrl); - } else { - pUrl = new Url(argv[1].ToStdString()); - } - - auto *m = new MainForm(nullptr, pUrl); - m->Show(); - - return true; - } -}; - -wxIMPLEMENT_APP(IcingaStudio); diff --git a/icinga-studio/icinga.icns b/icinga-studio/icinga.icns deleted file mode 100644 index d0968703be884ad97ccbbc549fb277f28ca08103..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215406 zcmZ^LbyQSexb~S~7+`3X?hYLyF*8TIYS!ZU>T6>+n_gj0v@AK?qWA5+{fT%gxn2SmSz_aTQ+L|ilq>Q8h0FbMx zK70lMAi`e|0EZENj9h+N{df27nTjG%*vGs^xFK;;HFyUAWVHWXAmB?XJpiBpwTBO$ zdxExRx<47WyYbH70l0zp?C{wgnkj@K$AtWo(oq+NS8AkQH9D z1|Nt<-rDsbJ6*|(Qt39m9kBhkHJo_M55JZpdl7K860lu=G-}vfalTy(t2Bm;6&g=1 znEGs0qy?OY2GAGIwEJBijR65o7c={FH>jrtIHhmV06knDpzG*>i$#@L--F)nIl|ZS z+a*P}&FQm)6%T>w8jqdXzIL{N`ghk?mn?bELilTymmbEDsa%j`Ux`;GB_tYob=tQz zRYiO*V#JKT9#COxIA~*X+#Gp$=ei^Y>r92+7V+N;CqrJYX^Gr8Wh-h_@Y|lQ*-)KV ztXV%ib8NbFU+GJe4dhe=Zn&HX|Jf+CHS@WLZJY3hqqJUq6)ipJ;EJwp(DT{`2N=)Y zLHIqVU84);&$9;Z55{9-Y0*)a__3zO-B9Gk!sFg!+>NYD4U)^|^~`&H%e4W|S#gpw zTVLLpo`uH$rW&|*CAa$u8$Z2zcWHJmI?qax|8e6gW#8lN>x**UUZjB-UBa>dVHVp= zp`3@#@z3Y)mY~H=3n!|*`-yp6S}#;gigtI@cUK;-=H2vWmUdc`BML%L(40RS!zS3U zy9+Z1dR<>>250D1Io@)2CzGurRX6oLp0J*~Q7OmfcuYEf(sX^ft>wQT_iluw`?9;$ zOiR}~qv)JY{nXaYuQllzYJ->myT;BKLBN?H_6&=2d}TCdD!$#})Zx{NJ^lOaS|qXI zK1;Uj{!L(^5x<@{<2|hcUdhu*>`pn82g?~O#P1XPbyPUzCj~ya{AO#Wez%x%|EpAq zpH$(=PG}^$>*UcRNK;(-J5ipwr*+LVSf!PVoyPO+8udisv?7g&1D?aIilCb3ib&lj zR!T8VG?`>M{7XM&CpTnS$;*}NACr{?zvxPD6CX$vJuYIaDRdg&%sXtqga0I7*3Rm) z>AOXo+T?$UukrSnH(T?)u|r~(7|;A*&Sytn_A+{OAZ-P&?$+Y`E6DBgA?CUhd`Wh6 zv5$PKa}ZzK_;P`VDK!dz$4?qx?Y1$hDL;p34~Um!j?CxQ7Ae;y7d2ygSux1uUbJOa zXVN0jKDJb>n=JKJ%xdQ4SMvo#`s!O zFAp;FXx;j<7L}_-DRGi$-ZtX%1Q{R*wQ_B%JTFqHi8&nNQ3 zjYJVs{~Ebnr16z|#ihpDn#rqe&4o4}aNQ%Y=?&fwM_Z+(LK?sbW=1B;b15rYp>#N) zcAS6ZLTj|4Iy~Vv&$Q)ykyM&VK~-wu%~cT&%wwiLS&T_e!&OQ=wvzIyG_dT$nGz5& z!epm~ygd9ZJ~~*5@c1!~GKp&zC876m{KMc8_rBcT1K)K#QGYeWN0TYb{qjn2ZTH#Q z$xC_8di=1C*4E8&Q~v4cU;Se9WAWQOU$t_3GVV+Z&{Uh^>vY^i8c6lO0LQp9k>`Qf ztLJBIqu5IvP1pVFMK}96+~avUn%lcbuY-TRd9BBEc|BfGvrMlL6t(Z)Tq6&rd=QLm zNeJ{gc6(Ux2wS#UE=(U_rgDX7^tY8Kq42*x(29!|;mO#)Ij1 zxQ2@sS}kcw;%%Q7$0o}qq^I8s9lK0xFUA{kk4tJkgA;ktZ^M|qbAH*8Cxw7#CGtMI>h zM`far=jmfBDqYWqy6&#^f;u_%WmLta9yA>est4`o|IH2#=Lt&m>A8qbG-HKOBpk~8 z3WPDA8iMt8$I}BE7~!I{Z&|QjxO|~gY5*Axe20L1P|Uq$J4%+zi!>BchPx^OgM6p- zb$>=2Uco?!IJ@2N5gRTZ8~De|b=A?o$%w8Ff_o2;=M%V)?1v4JbyXccU>%Z7#_@`& zo#ynnyVOM|qd-b4=K2H8_FHn!eslir=+d~IC~-l1usaL4r|PU=D@v!?k2eJcD&UYfLIP$!!_FX&Io38?S} zwQ0d&-953L`YZg#328vmf&Z(Mskw`PQXTWOLY#zI&Te^ukacb$%X2>v;a*TzUMVi~jAyO1x&eGRxj*puzrZUgcbC;?s;vau0S!{F#Y{|o)ukw#`wJ`tlp!) z9*?6lo?oyDObZB7<{Q-dtm*}`a-zXaJRzs*FOsWH{q+~-^cGgSr?vv}6<5w!Nm36? z^Dy4uV21;Y`qtOY>^T&Sf(toLQPR53-?bN$z{@;E+LQ?d6eH1&0L!_{-cN9gwB^oXvgS$TB?21Y@c{9P9X-L8z zJjus6h<1AlHlsxt8Ez^XBjjme*u(`20mzn^|B3Z)A}Rc1zQe2?*Ve>B_ii8K@gSdy zLHSQpO9z|CdOq!ioSW^&d9JkgQ?;JYKLp=KQLbFP=zn)f@SKHR`G6PeKOL!Z6$LO0 zI<1WT#C>PW3$9qV3#y50yK)#kV;1BMa9E!~jy&lAy`g@8_u+y`y-OLhkLXZ0Uylj8 zGM{neH%C~drug2}Ht&LR#?Z;&+^)aI8t)E?bd=NqC4HW6^A5@LQ!lS^H{_8#<^$AB zP0wz#K%R*rI`=1Ihru;r3~2j)&%h5Qr`wvLu(w8(P`BQ&p2|Hed>3#yo7+BwUfN#oemkH|6_&k@vovh}&QwJ+#j4y_U{|YHJa5Su)h2|uTKc*{&@LsR&qkH^ zkIvT9&npk%W&WS$xSEBZaE+9tr~>It2wrVH9%4&Gl+VpQgUSjpv&A+YQvt}FL?85` zO%e^;^_-`GPiY%0Q!Eb0%5c$6Ee41Cv&v>IY%CUI^Bb9j(spn$&FwyV45 zW=M%GBJtx?oZ56|wkZfnj@CGx`ilwC&xt}V))?qvTDlpC#8Y1_*GZMkQLz(kjfk9Sib%^(a)ih%nm3&?w- z{T#r);r$SsO>vgUfpKrm6wK*E(_vfNojOrg$`{LtrW8;Bu4J`MQK{R5R{PIbc!_rF8_7Ur9BDG?E%rrN%bwrXav3b;SJ z1CjqYKOM>$LyRFz*%(cL=^nFjQX%H(Z6+<&`)I~+gK_*exhr`5=fdhASMq#4NE$Gj zw=?^446AHIXrfH6LifYgtbuVAT5RHXGFl6hd`xH}`Br*VAmU)@G_{29iEm%(n81Wb z!K09lyA*N$G^O_HDLSUm$pngHf4QF+G%Tr}{cog|H31yy zI85&qTFbElpMQ02o#_|bo`;XXxG$Q@WrloLZ5koW|8|%7%u}}$Ft*%ez0s?Zb)JKXLfr};Qw41+cmkdKGMkkc{&~9&i zAd_I$zB2h0)|mZxw)vXlbHJ+)CVckH{kG?mfI&@3K}GY^^k4s-#20faLgqtA@&+HVHL+p#(7Ro}byT>|rTe{ur>QKWF`LTQ*v5A8t0r1{!WkV^c+W?f1O( z$b-F#Ok0B%D_dqH`~d5AUokfmos#4n@mPW++dWiUF6F@5Ig-mKu*}2&qi`KZKD5nC zQ~5?(?0W6g`lsYhjEL;+7WH&_ALLGP)e;8YvNvdb-%Id3p8CfV;%mWzg7i@mGq)Lg zzs?vGRv@*CgdVKQ@I98t7b~ak9H!*I{HZB0Afb&S(LI+0E5ViMWbmRqWW+?o5Lfvx zC$5A|q_y2U&fynj{o+V7XNp%>(wP$YKo>EUd+v6$F-!yW`vlBHwA7h~!08<#?kP)3 z{&OS$^P^HJ!&Mzu5S_j%q~J#%$QA>djA(>|*rU*MZe4FAwtf__vYJ40J^`(y@wC&M|W&R4Q6% z((eOV=Pg6o<-XlJ8NGvUu5z}%!=ZwoaVJ;n%XPBefj(z6V?y#cbdJs zwdejsz~&jmXjdDwTsO$e%9lH{hf^Tb!0otv zjZxYSY8LX*IwCon3dKtF!^6W`R2W)l5@s3y%I;8gmBB%Fap_VG zB24N4BL7|^{jX}Y{Jd86Di`{}tIdg-%7NusM7yf7A-||@*%#67ehs$%M@!)jYvOtA zV*?-Bf5|-?_)rcg)Q05l{&kQokw<+cgcfq1fw?QpG z<+H5bsb8)?0>m7~#NISl32|o@traP(Or+1Q^;>0_LVuXAb+XY?JOF#5wGt;*)l;3O zIwWMq6P&n6(7!?a&39?V9zKjYr9#hKucZ4p?4s*$gOV!bqH{Aaxw0w-C|q&yU*Fg^ z{y2uMyOatnoCB-J_@fQTxDwb^b>;8WP`n%s^x{xCH0s%e?^9y6akpBv|9)wgb{uM7BF2?#kEY&iP?s<>Uw=2~anXLYp7KO~)N1E; zBbP$c)Z7(1RE|U2%P4%q;oxquGZgixAlAE+xL-&OgM=}HJ zC&S-czw67d9wRKyiJ_4}*s)X$KeXLe`^dkDP>Mtax#r>yH}T2V=?t@FnFmy;Fj0W* z+M$V|sdrHU%HCMlJBV$gK_%oy;5MN@3k|^lepF)i5efR~TgYm#K`yu^8yQG^<$gSs z|JBf#kvpd0M$1Qw2JM?H*1_zNjms}Wh+ofg0W6$7sYhJBR4CQV8320ho0VIc+=6*O80I?p9psisCIV)~C7mn<(K7a!4_oy~>pl51sn;;P14p2$K;= z$s+m1j?H8BfEe}$qD?ri;`C4+dxBuoLhiY?8Itc7)}3F?#E*Xwt>jy3TTolImwc(I z`0ZX*Cze6Z5#=Hju~%g9z2aW`?WwEEu{Bxklo1RPg^Li;@I`ppzjyRh;?S45%dxD$ zjWU&+;TVh?UP$HzAfF$IvomD6-;0%Fa(Jg6o>R0o<;fH884qsAZlHPqG-*6@K2~p$ znBQ(3LSZ#S3s@e_ff|dA@1@-!Ni_hAq7ajx68Fh(N#0^)4iWD4BMY+^J*4NF-^gOQ z-h@=Iy#6Wqu!df8zRLP~TOypC0e70QnlRJPua)E48?_qWh-Ql&ERxo|sGUjX0wB;+ z#i)I9P5N}@qz8h;=xOT{ssZV9Nirk(X+r~veV@`UOJ@_6~9Q#x=8a4&eoU*CI^=F21G4R z1&Af`4-RqZ30q_h%2kJ7+67+0QF6vL(U)nT{n7{`EdES!@w8F2jS>J|mnu6k?r+%Q zGa4&jsftP5Dux8WQAs1uh_3^=SZ4;U)eChElh@X?yln$0M@!S|Bs75MslPwglEc|V zml$>0yHh5F+cM6F%T%QurY^aqg#4e)dO5Et;S)tKHGgXOf%gS3l>kL&4z!oOgSmH` z@GCrgcTe||fdS8VNAKPSIl0$Vj^K~)aM8wp+ZLqfI8Ut80bc&jOfa~Z{^w>46Zc*! z=5Om>p#*!}I&(YG8w98FXHhS%c4>vR?vSN!i2(N;1_6U|YCbkc8#XYUM4zOZ0@P7v zH#gL0LoOjKl-wo^_CCMkYPY7fB4;Q*%iPdqKG#~|jLLWId~`jqLsi3;u@@_~_E*@vLp|CIq^@O*`$XXnKUzE5Ju_uO{*gq%CyNI9c1-_6~SVnSgX%x_5tnwsEp+%?Jsg-+Ll!_ z3|xz^HmQEGTv7cZ1bSz`g|<`rJRwK;pRhXJHc5X(jHVWY1@7orZ;9UCf`th^ zP$lF%?>opIaojq383k^{{bbP*duXp74HB0TxtOl^dbhGwHOCqjB{qoh7e~p2VeWX` zN-fC}$W+PPx8|j5QhU(8U!}0N9=;vCok&oR z@+7J1pIsdC`a)E~+%R+AnCV8~dKK73vv5-`5fAzjD@wr~!}IObbIm}pa!Ir((qN5) zZA;8(YeV2QyCLFZ$y!b$2grhs=6QfBT7lkP)k$}1Dn?nQjrhZt%h;cD&qX!c!Zpg* zR8e2{7Vo2$&9x2_rM>B*nXd@I+;;u>c3rc&URYux@8?2h*@v(~z5mAaQUVM5_4}^6 zj!cY&6G8zCG}%HZ^t*)qF2x~3{y2HsztNddbOs)WvJ5SGmFhtH!LL2 z_1qHA?P33`XOkDN;dS)AcbMU_RoXmLO!cy_&2(Me1m>-4bQttKGS*o_**ENqW@NUs zdB>24u7T^#8J>tM@n&0MlAnRI_nk>1RqRCel>UASko*FCW5(KAGmpK}A`Q=hTi$Zp zuj*3wI?72$w>C&Fi%Brf1CnFdPcB0i9h-gZ&m5TF##tNfafCF}05!ube>tLM4CPmw z$5pQXtg0Cw;016tt^@7T--{wBSs3dgo}x7~{zfv0WQYrao(z5P?XrHa#$s2*LhDv( zPIo_NL{`Xu5uUllZJq@Osty-k26mT8|M;9Z$ZwUNC7AxL{qb|8rEOyLUmfd7y;-wY zZ@N+6=M@Bkme@ikEkq+8)%4H^k+gIi^0Z|cT~zm3Zg&=39r`?*SXE)&Qjrvod*BVn z_`AseDjcFuyxOpJ<>?zI-UL~-@nP+|t4&62xEc!tT*|+?y0Em_GlNzUM51@vZtiY) z{zXUT__pgHZajdKw+KqH8bKx~(n}|oM}Dzved3S$8$Xb~Tw^Wo3@FYTXeul(ReTsu z?+hQ~^Lx=G_m|UrDfPv5{oPBw07Rl(f$dS2yuF0?!$)*oE{BV(YNYqQWwr{pkSuFW z3MyJ{K{=G(ou?h`Rf~x(>qc#zMe?)syX)k_tAjjO0HEM@~oW)_UI+T^-ITR0ZKl_ql-iC7Ew*;Au+bPLQxPrIr1<>P>~_f8z`L80+G+}%}| z)`pwS^bEFmQuc`mE)+gClpLJv{FtSy#eo)CgIT^oR zU-{jU8C2fQED_O{a%l*O{PY_8nVCpEWqB!X4)u?DjGeI_tumybrv^Ld&PE<2r~!IxbE9dc2b22T^5Wl3x9@+IY#ky|8dH%GWvy>#4!K>F^VNgSnD)j6BDJyX+t7quBaO6X6TEj<-){_)1`nZkZ&g-g9V`0)|F z=W?s1Xq$c14wr4$_t_S{YiSew)7nEzqaq*sjXH(Fr>-1*b}ee}=DNH-@25R9#UuB52g2XM3L&fB>! z@Y1+b6O%xzwr{Fsdb;%cA-?o-L}WGPH!an}F-xf?)1{@~8-tY0&jV-@i#23FZWtW3 zc^<_&TZiPZ^(D2y6W0!&cKD^beGhPr6SLw2c`?Dl4uPMGdl}htUVfQ6CJnwu+e5Rj zCbd^i?&SoNlSoh*kTA#V-}vG1Dxq94FzK%SK5RG_y{E1OOC}+Y@SP1r)+8IMlfePwUlwgu5fr zC)+ru52h#cetuFwgGuIqcqLSTsxkMHB2c&4P+?NLR#+-%skU&7%k$E73;DzEbNH_L zBPmVf+LJGG1)6ay(#`bsm64bj)3yq?rI%-iW2H#->szN=q^Q}fZP}T&GXBa(CyJ6u zKF%dIOQt`rJAMAa*;#Vr9$R#S0G)HaE zPFV8s7?#ba_nuGuis<$e8q^Kj(UV(WAN1@!M)!%*ds<--<*s{@m>A;44l(K&yFjv2 z5F7kZ9m$a1&QlA9wxjnSN~w^)x2fgMaPD`<+SH$Vi9;{;Klwa){Xt@z0Ba2=>HzlZ zRa7AQ6X!DX!-61KaY{$xfvlj7w0ye4-u3p&h^iTtjEPr?ewIm{cSjZJUBlyj=m?{d8KEQh1sQuuJRym2ft%Pk;#tW(_ zdx2k@+f0ie;}=+KJO|oW=G$KS6hu}_lI-#$^JX3mt)}ES0w)w9Y9D8nfXxwlxP)+5 z{@*@kkoGfO;KnLrmep|>wFHeq$X6pcAx&<;1Q0UTPz+puNw!y$?I;;SF@_Jhdp{)U z^kmj&$Bc;Tk~}$TPiqPC+{IIi1B&>507uo9f{Gh0?-x<3(dKN|!?}?e_~m<7_2S#n ze}aM4seGK|L1nfN-nz=*W;wK&lqB^&IPATIzJaospn~uTOm3`;(J7FSF-PogQJ3`urKs%a66oIbYCE^RgMZ;Zny^Qjh@W!sJ zE$OiXIGqt};6rXCtfkbiCqL)4 zw?W!};=`Ry9(hjSC8O-%oXb-(!(~4=prQ|S#HiXxb|Zu#YhOxQ=f!on{S@5{>9UIk zA}vd2JYk*v44d46YyuqfVOO{Kvnb9$EW3VTi}zWm*}o+K09g8E%wE~`TFU#+?hWE|Q5zLTJfpQGQ z=)axfHgS^N><IYKen_3QQ&Nss15E+ILWi%0O3umb2e~lO3DJr)QygJ^qk2nu`1VGrdXTmp~tx z{N&2iP4tN%p>CvT!9nfTk>TGv8BcjyLFZ=xV(0%_*&3=EtF%$}>1ld|uZ5P8K>N3`G~maZu1p3L#F~m4M0rTk z%Cu{Vuz36~=Z;M6Kmgus^RNYN2xzQ7&(q2KNd<5k2LZzjeq@V7w?uyu?|O-UiZ-%0 zIg{SQ(gBtGRcAWa^`a6Dz8sw1YQ~@fX$6;mtRVe(3rq1vUQ>%6x9ycqN&W^}EVO`L zP_x6Vc^x4zrf9=39z>fvmHV^A0ifd;B;s<26oY*czrn#qnY6d=q>*DkYx7Z^i3B4h z4A?%HF^L=S!}3EF_c%TdS3Lenxfx`a+TwaIduP1zH zwU=woWHx|4gH)FFctqJfZRZbK!D@7rVG;7nbR6h%jwdWOT+X0~l?^#_;@!b=GNXi% zdIR0s(+)bXMDjHVC`K)8+9mDu&~Pf@deU*36coenXQ&(X=)eQ4|6E6Y4#EgOWw?j? zK!$!P8WmZsVZPY~TKWdfRA7B0uKt63o)jx@8VW3tcYKE=y5c5KN#z~aDC@*(5{{Px z-wO{lu3H{8$}L(`qU8KKqHjz#3UT~-W*`d^%q~n%hJmjHuUo}T(lH01H&#`^^A1p^ zuOdp@`Xc647u#}07V|t5YlB<^gyd7K;|4oJplD5Ri`2nG#Q{99syd+TEE(Ne0i`-C zr(BKIYVs`QDAKJAhU$y!@S%Bbx{sE%W3!0aE2%rskPCDSb@<}_J-J0Xur&f{87FlV zt#k&Vy1uy{NU1;{g-5H_d+Q`h1CM?FF6wBJ6@QPMGWwV9pASCWbY_Q~401Bv@0{w} z|9jdIGQE2H@})9CMDG7zL>QPNSTX&#xLx5rGiQ($!t^#$n-gAEF6#ViC9`B8*kv6W zks{@|{U5JHw#s3KaUEo}yx2MT-t>hUt+MW`zbd^#eoSfb18J(=aCOmxs)R!dGLY;2Bl*@7xb-`5>nCJfu7V}>d zn+KX3`AbEn;>KEI5O7EE*8BW6es3RKM#!Av7fP6YH!8}1SkD$DIRYze5 z%)A#a^G;ab()3kD-JTgVm1$ZfWrtGz={HGDu8il|lTR%q0Hi~1LpoM(fPSx&#&X@cSn~Hi$%nwNCLRpMg|2$IDZyBc^yF6>VQ6xF2_~|c zcON9`WWSZE&p8b86kQmwuoIuaEm>ohm2Pzf=?_m7LXTTFe}n&nh|!Yy8r7jx|u50&aV)!2;7 zfBmL5dT;xYL&L0GS?NIocB#hRXdEm0CT8NLg67$93BpN7*b;K}h{VG5f_2k2lNKcv z9Dk3Bir@lb7NWf1`IEP{a8wqk(P_}&?C$SLm%?{Qp@8U&|CJx_8+Noh{4mZp44C%{ z!iMiSyu0gk?BDPI&NX12r)0D5ov&2@K*^y>_B0jW=U_vOCpA+iKCZ4K8V3bfdCudW zh)_^>49)!e4|V?+)!X(Mc7Y{d@`}?61MC3rS&y9{RC+#CvQo)fzgQEn_T1H5^OikG z*}}}kvSA^z{dJWaJ2%*ImuXPlf#bczHK@~t%xvu~MKF-@E+EsRw+?o-7mhT{2@_h? zo`X)me_-T6N2usyOEXkp<{9#USKZW;|4{xO=LyeWFKK{7DvT(0r~4|Btu0Lxpl!P? zp=)&?#=?bji;zR9N`I{_`1tmmAEfvt>ExdHWC1I~(xdgtld+YTgzNG!v3DOan6gK~E@LkX9#84d|PaxA{cF|+YMNn5by5zT!o z;F!hskpA*?Jvx0dEnxm6D{a4@M{$b)vk>+sf08V0$fmKl;sdfOIQumtGymzN5Y*{b zgd8*zhfmM=cXhfLP1$&cTPHa^0QDRAJ^x~6!gO$j5Abmi8lFA3Yt*8HKng5z`w)7Rw6 z>5$si+g>@^;l>Y78EFzIGYLauvCA-FRB4X_!CWp_jq`PX#A0LJs`bia2_ei0-25r| z9&UWYuh|{RBfGd2FC}gR^+k5jQ#Z0Kht)AkQf_)*T(K|HmV{k^r@O!J58M1)#-Hrkzjo z%`YL5m=tG>Myj_F@u|>h0W>NF=un1ztz0~Mz^nojH)JTkyxE@9#GjRFYqR!_l`m*d zY55ZOKNO^(g*U$`%0Y#mW9eTP53ZWDjT(t|tupITPz&JCFG&C5RMp1l17HabdL!!+ zb8r5pmQ`u^7~QZ^|NYr7zV)*?bMu?NX#^vE3r?5kb9 zLL-K#{{50@(RpHVubzkqw#?7>Hr}CDlIO;PG{K%@8|;91EJXU~L7kk_r}$K?memPI z{h{&PcW3-2{eT$nrK%FJ{?E8O&*8*~5A%SW=^%#|8}t=^dLWO?6y2uxg3s5iq)&OR zWhcVez^aW)M3Qs8)*(beRM_*Krly1Kx*ZDtG${J#;RnIO;O(Qt>1|BLCf@rJf5f3F zryZA3ull<}Too9PS2N%aot9p1@c<{8Iq}gGV%T?IW%7J9;)Xx|{8vsoBbu}CE%2sZ zE)Xyw)C|%RP5r%+$XmOc$0g1|7{`?v2o)Om=n37OyS|(whO(P9F1q4xf!PDEWZn;t zbx`)}lCI^P5KRk^wQvAy%*O1%9=^Tq*dKz;+39kxG9VbL=qoueP?o_X3^rQ=1)woN zI^q1pZ$pp;tRe^oU{8AM4X8T6R|!B2;HYdY1p<&Y!5n~}@@u>*C3YuNqh$k$+DN&8 zlYa;!1FZ&Lg%f+qbeM;_*G~Osp-JMb92m4e4Jgdk4~~7(2_lLKqC#`AqT2k8p(tK6 zyD1OK;(CR;#Aw#(4JI1E-Fa}bk#YAmSC>-|KrgC9LA}H%>bZu>Fetp|UdC=#4h38}-uIlMc{5^=4k`{?6{R0+ zEwxzD(ZY%jc)_%s=memnFru~q_$D%D@KlvDc1h->edfgEI*=g6-AsiLSr{8`mBDv| zq0z^S-T~-YU8b{=utN|;xAfF~rj4!NCIw+J%qLt5I4nVo6ohNP22!DGX+$#4^QnTi z@7JoGuiwZhFPFF23>f|P-y(XiJuDbI-REj0R%UEE+TuVh3LVk#!!^d?g*bus3yW)$fjtfI)&qevig&PzRXC)39qhcO4`Ncs0xVfx^iWBK=Yx1fx_3uWqHup zVRlC0klxqodcK&`9p%hx<3vKQPx@We0Td-X>JPmfI3|5r1PsuGhzOrVT|3Oy-@m}2 zk=JLq=5EwJ2qVWq!LB`eSqn!Q0>s}Zp^EH0NX~v!7m{TX>185+ulsAR9CypONW5Z0 zU0hoSQt&Ms0lKUl8K22J5yAM3iZ_Jq*^PVc{UFXfG!>eY1EicXp~dVZ<__$_GGCwr zSUC|Oi(6Kw04?x@dRaAVsuJ|6ereEj-w*`+vgPL0TGB}fcUWz88_W&{sB&tR2$)fS zqGbF*I{NN%tzpxDvl+M#h&q&gV<_@#)S&i4zvp9b~GeCaVs@zlJ?Zz^>S=+1i``e%rumOnohr0935>ej{HX|LA=MbsPg_&oP0GsUX7U^lnm)sh4{{|Kwum((1$fr z8wV(nw32qn@Q-Texz22nf{f36`_>UIB0Zi11{-T71yV9;_bTlhF7cjsi({eKVtQDy zSgQMvHzVvBa&d@~Ua74w&h592-yw!dMB=Z(30R*^>2syvJYX1b>NoQ7T+D3E{QEL28{E0mt-mxty z4yR^^Y=N3wuo>1qD7|RU`Kq!$E|9ZzFcf?dK{-EUkO#qcR|f+LEKQbewJT|b1dE_0#NXH$5j2{)hEg8dTF^Qz{Cer_3^A z?wd6waF5dTO#R%FB3r#Atwj-CZV4M*VR4e(pr+(6#Lv6k$~>){wj_+~IoRg#=SyR` zD4)UjrzQ;Z0SCQOp>%IcH>IZ3;&294o+lChQ^r_F!PSA&e&QLD*sq?oG5;o$dYP*1 z$EMVd92enePWr%P@G82$Xxnp9FdBmGOEJ!;sn1Rv0X3&AQvpg5Vlo?j-NJvR-Nf|E z8rh%^9>OstKkAQ{J)*WWkd7D2({gzv0`K!hsX|Jve+NTX!&uk)k_It*Ux~eAd9{eI zI}KV1^e|f#0q({vMua572uF6L8OFq+X8#gRjji6GVY5`g>j9Y3a%+1SLqWa4BhOhC zz{+P|Jx(u8@x(e9NP5>6!-R8RIO=7+cp>g1WHkX;B?q|_u8Amk z$&#c-xTVsAT2SJU7AksWE93d@O|p5^?azE;e~cswA0hbd!S#4gO#_t15l(Ty)I?azM%xJq?{WE!lL${TcNKdOB>T@~<7d*P@>IK-I>2SG1{`i;Wr ztjt9uoKO@o$q#5?yJFv_wRH6MNtQKI))!miem9i6^NXYnv^imvuI%3p#9o2!^zWxn z#Yq<6I1ub7VU{mG%inVQ)qF?oi*2o(ZM4des|U@VEgz669u6cYkBKXEdpp-l3b9J9wU(U3QO^ z1dww3*?w=)=reRFj%_!Vbgb{;pfm@&#YAqZFBU6dQO1}xmtc@j)Ra8wL*ZYckF<9k zJQ2(c0RUqIK5kWPgA9$FP$m z=%2}c44>zwiFYrK8>P|E&0}VTJvh6je0SefSCkqmO{|d$h4?gJm3&9It@n+2|CIQ- zN)dtSN%TzOKIdK7p?voMbptz4h6JOa=6;shF)xNI*PIffB>A^|?iM`F1*mp=@T^2_ zD;IE7{Yrp@n-#tUBrJ0fT}Q{zQWr&7RhNP|pxEdEFht3tDKaDv#{n`^hH`Y4TxC@S z9daVU9a*0&6*9wfBs4p^i-a2Mj%?>!;J_;VO()3xjF|xCgq4F^7yHDiPhXJDwg@p+ za>s~AWSGZH(zNOG1$SobPtjCzqc5mHenN@>MuRD0%J+*(e;8Lb_zeecAM3MZ?zMZzI@66h^~3xcMcCY z)PwbN_S^SuQpCdPz`+_~(Za`f=;i(lMiVBkM(gnsjp{?smDMfFo*lK0_qcSe6=Wd-{$%NT6LZ4=fMqbnt+ zs1EvuY{z{Nnp`xbDAj4`0ZL&XQg|iZO#IgT>s;Hb1ogSt;QvS7dj~byb#J405~L^{ z6{J^D0RcrigrcA#AR^M6D2VjlNh1BB1Ox%41O-KmEzj~`)`LJ-2Kd2BL&j--l zb`*7#yyjkUm>fRHaII$|eC=UCK-PN{hY)bZ?wiuh@>Vj3CsQFHTYJ&4dQl~UKL~y znv~N*JrX0oN6JtfB1qpGH2u+cIA~+tCTmKy?{D^qF@FrAL6!qk^BP$!cW$3ST@H8| zX8yGX?V-*J| z%y!-xv{b*!6pH>O@@VYoxghcm-B zJjo|mnXLR*3S=HA2IDE$jeg&z8rmdV5DX{Tw%132-uxsbaxS{9T5;>?1&>a`G~+@& zYnlro=wB4Pj z`y1^isYZ#9Ri~=nV+APXQ2ZH1dZZq|1Zo3T-2YH|@P=pc$$|yJ6Kcp}8e$y_SqLB{ zYlL=5jal_g|L4E&f+5N@cIlNpea;%{)K@WjRgaD9%|;r(INM!;9HgAdG7s;60crmz z5?2*i!CP7Uw!4f;-D$a5(QPT@$m^)nCtHYw%=Xcbeq=CWKE3~%qNw|BWa_z~*|RSx zRSWU;Uk%|l4&HATF0vy9mKPqx$&ADW^sS&w=eu8OtUYYVQDb8+G~nwgTN8D^ZPkML zfk<1)y*^<{OjV*u{&pjFC`)mk8yRm0QwRAP;tKiqGLNi|R+U2@Iw-sX&bl(Gj9lq; z9eH8;b1v0m@_vXkx(=YZ=l^>%Z=JRLeMF;l8D{!<+}o0M#nN^nB;-)Xkq4o)?*Yy^ zH3-Di)%RB9qwHXhiU-@VDi?Utq8Fm_I-@c=HO1?D-5*|aafqc6SXz0Zw0B_ z8+U0L%reR%S+sYcMvCdnxoMC+$&G4#Q2@|Qcln5x7@JkI59 z`JN>W3t4*1ySe~N_o8K-zJ7z^4V`hc46Wa*UKzdy-}~LeXf+F5(Vs9!hqkTYF>`Z1 z$OU%bBRwXt8EVxy)Ft~#M3;|KY1|y%IugB*T3K6)@_P;}*|E3-*#UeBI_LL09*-}m zrT~&sXX(q0owZ(F55E50++5wcTiH(#iM+@6NjFCb`E*_FGkGCDri1RFL|g@Grl7=U zLJd|cG=|AQ1`1X7lOLvufqB#qv5?q3}EUR)NnQLXj2;DJ(4coJhyfbat={Oq>tG-?Xm3# zt0=eh`BSgy>i zh>9mrlI)SA>e$y)4wx*)NOtNy>l>rLV!Yhk`<6Ll&oPLI#ca(*3YtCAvgt(MN8 zCT}wtc~ndjDTLfHB!OHs%tfeCS={#KX-f-xw=!~A!v>gZn8k|(O>JP5uHdVr@6v8&7uY?viL&zqCMd-r!&sG+lJ1g#x$AU;e zqT=Z*p2myCbub|S?JLMZhcju%{fuw1(9%T>Y5{5U78m##V)F~kue!ky<8+S1yBy0l zN9wz~-!U>Yf=rsX``Yqq(l$$7aOK=~*o{o5tqlQ&CohZE>%WE|DIc2qBxVXtmJG%) ze4r%5&G#>EWG%u=c2I&>Hk&R4+V;ovKRCBRSu@4fSglg@x2_N2dA|P%t8W&U*z~?| z^d8#u6a0Sj8uMA?>&SCm^7}5I?;5^e1_dC({Lgq(U*AE|b|7!XAV+*Ue;dNpc%2IJ z=O%UvbA#9HGK^IXFA&ELKz4&PvBWvY>a`ZZ7%+S&zPhmzLnB-pLP!E8^3@l$*ax@I z&{B_Gi;@AaOc84(4+-DhuLQ7CbqEKZJexb9&>Yr2* z#rR(@7h8z76tLL!?G3{2L-4axf-Q+W3JpPopPUz{x;MHv&nv>O=Ihd@lhF@FOuOJV z1Zhr<{kuqsp=88*2m}JKuqawJp2I`#&_f%03LqXsD#%QBr1BQ+x7E4J9c&$Er0Zmo zV?%||ZwD?TzA=3S&XB`beCE^$m9Nd;hzC=6uLr->}2XNu#pe zvTJUc?~%9dIdyd@>T)xVT2vL#g)rK$?54#^Au5UC=Kdi?o&=+m){L$C{b>aUeCqbw zbI6X*cKZR?qbU-L`T;HlPM&2kJuQ<_B=c3#^jxm=eO05N(pR%s8;ye*zhi6{)@;@A ztVSsin%)o65bYVp#QOy3b9U?hkpnK^bmd$A)Xn-wWmX95UwacDdd&ARs2 za^yp8lE?PWdMV08t}%T~ZKK=?*QbOS3w=F4U9M|NYWREzFRR0(VNFs8oNht)Pv zo^W4`V{48oFvqUK2c7aMfat@;E7g{XQzdGsG6eN#hK0V=e1B3;y8fmH8aBGJ4($NK z7XcKEx7joohF>$w4kg6##JEwcU}{mBL2M{7MGfQg8GG%1i~N}-fCYQGE{d`B_2&F| z&G>qOc=oGwRkaOnvzxFDRepcF*uH{Fbi}pl`lF~*GY8GMv5>kMXdJv;O|vGhRAn!s6wPxmYfe=MNs0(V=BPCUr` z9}VEDWHzIJ)*iCnHK~k3K8%yrSZk&B& zy!pqIA97F945v#U$vw^S(Zwk#S8t*6x#w&>P(-5}b<2*^t$TU9zKH?20L+iVSE~eTnC^Sjd9q`mgz2ohKP{f~(O*tS@7^s*fe!%B zZRE_~8gpu|I&ER@wrTEbcQNQkZie~lnd=?mr{1vuS$2zM53~1a4!VCnGYk&@v>xwQ zZ<$xg&V{5yzK;7Tb?xZUv9>wsRi*1bx!0WO{)%K_c4*gAIykZC%E)gpn7s>&dS$;< zS-f0g!(sYFrf$VJwb(&znS@Exh4vl>)LxQ=+lMSQYlBM`z~s>{ zkMM0bH`>4Tq@^r@A@;+DCZ7?T9ICtpy7hRk-B0&nY8?85!k9d=(1XSnL?Ck8f)9?)uu4s_Xiv=~xI#$2I1>O|7e^1hmymPnYojGrmB#n)J-5|N!x7eT;ux4gN3 zx*vxI+0?$b?tl4}nw`<=dJ%(c-%~=)Mib(a~!xbNT^1_^TF<57c*kK}>X& zX#;Ex0_*_1Hcd)CF({~AMZPj#P`$|HuV?SpN9iE%URzy+1P`H$rd+yJdyC_c@UT9Z?{A;ak@n81t+HHwA$f~60T1U@td{h*W;7#lP zp3GhYk{viQl@o@Sew%`XV&Jep;rq`1>n*%H{GQmBQM9fBV52Dsi9xeHAFebe-HF;V z)$JiGFMh-em79`LkCVPe)R&f`^amT&I|NwcHhqqS`dd1G1>d6->@g5as9~eT=ozCL z5pkq){N&MY8RFQDk1+O=T-8WzXXm1n4IM9@7C5jd{5!GOXS7!`GIXQdiyI&Y{+Ou= zlMHl?=7TR03QxmJbyro?HwZn5v)z;*zeL1=9G`n;x{;M20nt=&G(iy;2H9c=yfMo2 zqQ%vNqwhxH_Slfesf`noy8?(jKdvH-Ym|rbrRn=2uvkLq${mZc*G7*Umgj zdLRIvQ!JY^Dpa$|bVe9qBzph2ntIDm$MPp+*?%)sc@MWnL9#tv6_xq;o;vn`soYCr zX-u8&jLdAq#!QTc%>1s+GTC;xR(|IEhtQR6+)MjQVO8*UO+eZ7=8u4~+elw|NSK@) zITuNP_v5)HJonZ~-_IrOI)~O1Dn)ac>tr>8zOiWI`z8KxenYH%K9TY0ncq$T=fV1y z;I(~n%+QdRN3Fw)9N`zQH$ezDUw*u@SW9b=L%TFqe=K*?=x>J;#kjEes^^Ht|Msi# ztsI^TS^6RI=kcOwKS*8)+_`0NvsBCO1xSCX1OOAd|8M$BDEKPq|IlCV1pYY$|N1|s zzud^Nd}&pgf~^f=yZo|dMu(_)v6)&KlsVONzK*#}+cHz%%n}?Q7JqEhHXQp>(kM;L z=m~XOZ+PVHi)CNafTYo11&_>a!50fV~>O>xoBY)Wfn#pj9xtjTSdN-;VZxhaK+h z4CL!pLjoz}YMv<5yH#OF{%sBw$p;{xXDi4iAVdJm;CD9A|B<2MRfejD+UZ&ff_l6^ zHc&1eXAi%q!oMfR6oSXl8b*uso!J~X;s4}Mn5~SU`vSo)2)rTBn z?!F6q6;6GB8whPYm5-4gG3^J-v^bD=Gmc7LhF4&(G?rMJ_jDc~?Hh)Z3GJ!4Zr@dp z29jgjuZ$GRe;;Z@DssJg9V8axLDI4CXWt%CR}CVH9zAQYMI7H?3Ms%u@FAHbs9PE_l9CmCi4u0wg z&aLvUaMdN$!WJBHU|mbuYnc;P)iLm2or;l!jQETM3?rBkimu2#+-ysX&(ysL)@bUj z(aegUIuMm@RU*bde(Bm@mE-&JK%rH|pHz4o++ZbPG-vd!TI&JbraKqO5>@F?Zpd&Q zVC(aWZ+MW_|=MT`t}7`&DQ>8dDpv^?^^uM%J}6z9Z!P z5={g~oLa8b*RrI_#Iqw&SI2VS19~0}+oOmEUE%?rgg!8&$i{L7j0?>i6KZuBiRPn(GMy*@7#@oM$)N&GH*kXEX zA(hRUGl@-|4scj&Uc{vrxmC^u^Y>|aVfq%e|5YnhhVtmz+~2{&ftwoNPvPx2thSrV zFE22GdeRgha^BY+l1oeB{dp|F73wref4@NiVqYP{8{(nL{1}G+$!WVlD@fCI8P23K z%c{=e{r9IJ;Sw&Ku_r$-XNIP=aWN5qB?;un4fv)BbzK`D{f}j!y8;>BFF#ZEZTg07 zaa?}^-DCQLU@md0ZSz&Tm6n^?({XYeea>9eTCdT97ol{Upif%g8KHk+KQpQ63LNCZ zZFlEy3P{`Gi{Y5#b|91&y7=lC9*N+B?YQ^&LX#DkESExzyt2F_*g2~$508O#vc66_?eTkC;F`J4F38I zYiv7XAJ|;m68jgc63Ya@i7oqN?W!P-#$7~gI^SqLD>+M611;S90k?^_I)c;Jo!hxd z%MMp|HooN6^PBKrN%J!N`96t{{jTugixPdz?DECeSpdJ(_PMXNEr0Q@xL>2J8Z4>4 zbg+mp<(5Z3^&+GVUuljy1+ek};j?G~((DdahQip&BTJusDA1-+S361*%5|GtPM*Q_ zG*_B$JmeP#e0D8@s(KaS@E@zo8$)BYwQeC@GS_d(NdA3$*#cust)O?<2qI($^aj@9 zX=h{_<)s>g10`IC*Ts7~zIpr=lm|{rMRu2-#wb994(b?UA+vw_uIl%NKnkYL90mzo z2vqGYCx~8MiRQ8V9}ACD6qWft>_WFP`!IMk#g>rLLkqN0>QKKJ>MF`LozZjFNMqNB zlMi(V?W=s|tNMN=+OBs?yc)GPX+fyaN-`lBX{8+VtNN?Q z&(JFVbTpc7sErr}60{abdi`3%h1Ei_s1Asopzu8mzQ2{8B42gkvOqjaDs3bnqD<7k z;J=?jEogV?mOXs%fF-AS*iM%{B8Ca#PkZ!oPdDT&A;QPkb!!UbLe7RyaluEr(MK|@ zHq{HY0Ne5{4R?S)5-Xr?NYUhUDkCo|mtDJQ?jx!1@gH}nmX2IMxTgQ4WF(b^lTZg? zjp$9h_9Hq2GDBat{>!(u)Aw-L(j(^p4rQBh0Utc_GQ-#P=AQuG4_gPJSEpSj%Oek7 z$lI*nJ2&?2KWbI=mYsfr@FoX&o>}FEUdW63CS7h*3R(OYsq9z76P4_~5_drBnRKOz zbiiHl6Vlkt1C<%$hUGrf zl+dZ_j~6%b_IK^9`r>M*U0}^WM44`K4qz|yCDd`9PY6GxcL)ib&7R4c<$2CRy484~ zph=NgAz>&xg@V+jIgeOl2>fWHf|H=o>_mQk;s}EGz?qhTea35QT_Gk$2#Lp=Z^4tf z)>AROT8fEG8k7!}nVf~9aC|HLM*ZU^SqfqPbR~G)W!2espoXJc7ZQ&O5@Ugt{H{{L z7nn%fo_t8k)flQedS`1a=iUfflo9+!Miw_KX+ARvCWJMjR-(P0wGO3fxaud{G(?=w z+`A-ymdr5KSs$`bY!lot6DDz9O&mNS$l?yYz|3=?6;gEo6AG$)VL1j!()hFU>BDTP zL(;*ovG{g0xwSNI%P2Rx$xt1WABhyOC+BCAOQ@qyzsz^>AoEbQ#o4QQb(dOAR_Aqw|9^{v)UE5<}DJD4A8Hi5y zkgx&}?@4LYqK_yu&px^}SwxjP(CpT9l)2!V0)XDP!>%0FxP02!kdorhJ~Pmx=~&oSiq5e}^Z7g5 zROtfl_)&(23%>m!BuB5kZ$7 z)raLsIye(LTIAHU?SlLLQKjrHnX{=p#mQd65DXyX-6MZ|htLP*WdBJ;Fy75Q&=w5P zVhzyFB!7P34!pSG0iC38MdE+oB`IJTwYc08j;A`>hp0KM@;p&>6qW{4cbIVQ$nhmj z{Bk6n5me1N_+a8Y7>sA70`U^+OCiEM&}@1>amOc7EK5pB%3i&GUE-2z97ppX#c-n$ zrPQIT59=8x(!PQmbdXOP8XpZ*ox(|IB(L2U%N1!jdnEC3S#Hd6FuyC=MCNpd4l?8T z!G(N-G+8qld#BN|RO?9^*Qek}O=7}*_n%jn-F@W@DFa@m+i+&hNtU-^yv?)dF#emF z`@pnDgZ+w+HY@aIUL`bW9fO61ixa1kDz6|ogZ{Q}!RlZ-%2-J9h%Ek=qIeaIclCnP zvH)3}a81Ykv@n&V0_i6#xQ&4EMDbNrX16&#t@_gb9jmwxUg(VQ>%IFQ-nMreFNe}R zPV6}NEYK5@y$*=0E(I0~#1-iO3VOE5Yzs{gIW%d<$jsX+;_W?*=nOcvlyAD)D#rU)D} zVrFRY7X@7}c2#pa!`(=l9sv=n(YS;_${eqfiumq)UUDInS#_i zGBW>Q!_YM_rIp;adF13XGMF0JbwO!P7f*E2BDYBJaI)ge9*e`T5fcATcleWl7!VK$ zA>np^TCkkZ5Bj7Yc(dw6pT2g1m;OuW=~n#AKTf1A+Uety;Y9Z|AMviI*S+FB@!KZx z*?3L8%k1r_{yGL$6Z%16ga_>di{k-yGkxfngQpPLJ|Fv^{TxfQ02vp-;tg4{gyX+{ z{M!Fj)@(=?ZT`ed&}#-F++!irix}6isBOsr<~xFu)Mvk)N|2RH<`H7GZjB?}&b^rA1wE+A8@>N zidP=Ji4VQC4MRybePB2u+mT$lbdvOjVM3 z=1!ZdgAYn0I2_oX-^3Xy>?LNvwm+Ylh)s&FJtyxYq4P|F2MCUg@0G2<)3d#O+%cv} z*b~*l=^&TMbzHaKtR(dCJ;2L2D1m$(3NTs0I?+sVDt+PXNI9Kh`Er}kKoi}aBJ~T0 zCm3-wljgDevT!#vz8yf*vt&h>@cB#x8K|}1TCY?ST-{7Eg_iE_u-4o4OaY2}{m&1z z;AE82!S+SL0}?HF4;Laatc~-jmlSf=NxM-2N_6`ZTVdZgO?ai{YCf*L!72YTarMXK z+I82s^tMjbGP%(^17oL%Vd074lq}lBXavGNa( z_@k||rUNL;h1Sl$L@L{ro&V9gQq8Ba?`cAJeir%X3?uad53M{TjpM1qJ;lhEXbHr# z?6tV%4|XXTy1=_nedIp_x@nH?#|-v<8-(o#i*C`3K7{CKv`(ltfjyH1%47@mfS{0eF;9V zujboaq`aiM7<-lSecEJwg&ZRe*|Gmdw?fN2)z9|G>3q<)8|5GKob!d%MvV(?x!+_& z-8Tyl0shc=G?;OD$+M5Q#JZ2TJ%!;3?E>3$a8j{aO$@MoUeI98DhmJN<}`3K(@D6F zt7(M%j7OSw>F<>lw$N32=}>O+XdnF-)(Zt6!X0M!oOK$|z~N_N24h|Lpe9lu2SSoj(XYKhlt)80F$=V=msX4zA#4g^_dvS^hC zT3Xx$#ranH&(9R88}3Ikm#&$ytc`1o9zLUUIlU6BrR*j;^APcjMfIGT=1V$p#{xLB z1vFuCkWx={9>-hxn)B!7_G#1OYxG*x^lB>puQJ}RKz))8W5y7|o z33^eV>@Z<_=2z^sS8HGHYB%hnee;E^xIk64Ap5vt_nAl9o|#(}4;BGrQ@hELKQu8*Mc zr+!6khJNuGxSsQf)iM7*_&`<3>6Ldq%)~G078HM~aj8MmPU6hqszVnlv27BDF=%6G z!tTl!!>WJqc>?Dm#5S$_$LQ^@|K_LdbCW;!Me|pV-{?SwitFjH)d!FkJf_XmkpUCM z6#iDthKx$C)0=(3gM4Pjz5MYKQz+SCK#DRNGqZ=baE~FN6UjWGQK&81rG5M-wS@4c zcmws;16?ID&X7`MdrvEz4r%*$UWEmWDpA!J=qYDepW@b-&&;yx-Vc68Uv-$FbX0Mo z>?Tm@!ufUaFvFF1v=!X$MDICTrOgQPoIqW6-8vHxy6}p{YUs;FoW`2}ad~+1-kCih|^ET6+<7J?Q*yppI7ffG}ye>v^B!N#VlrEcb%s)iJyZ*n_!a!E2C8qMn} z5TfbqV(Xa(p9E&d8ZOemp|a&mjh?CEJ5Ro}B;Ho$KaB0aN+dcpNraZ`+($oCX|HMb zopYt}j4TpKDoj-TLi9a25X<9_9lbOe+uxsZO5kq3;lu^!Q7x;FR+Ni6!szZ!9)nX0 zVoeq0-}^r@9tHjA!qQ)@JpnRJsR*)p6VDfyB!7&0!c^zfXeT^Y$LPEQRJPK6;4OKU zM#jG@6pPt9uJ}Dmi_<1XAyguXmsUdeF#%9w4BLzJ7n*ieIKA08GU9rzwEx}y(Krq? zd6n};ZygvtfwA#LNP?KbLaV^`4Z~hx=V_XbLP&{t@WC+)GGHc5VY_a-SH)c3m-vV> zWI-7Wtg!ofG4@Z>n7TFHQYR2JebUWN0N|Eb-)uS`EtWm6E(1S^+FFtLuDCCx(%Lf#A?=?exT2 z@J<0OqpkRlRP&X!GB0hs1DU1i`Wj1C=-w8UvV{%gC=cYtwb?(~>vjje0;R`eZg%8+ z6j{mx%uUcvF+uL15AgR*&(RB?l8$V17cV1eMzUsNBhQjLQWYR+oYOf*$+iYItSH@a z3Hn5c*MpZy9w#utRR<~?P+`Z47W&z)<(DK=#r2P$rl^3|U`L@qH>!_Zv=e;;rK~Y> zdQNfmTg;(m(3*u7cduWpoa!dbS;C;_HiGv(4R6T(qX-+EhA$At_Lj5$_R)C~aSS2& zL*@^jSsKlfwM?kK$%TYxTvvtMbgM-Uv35N0ffJS56l4y*zMoJIHHDW#AI_ z8M$TDuRN7>NtN2O?^UpUd`!pIp69TlMEWf&e`deg0k=JK_;?=gkDrXI+H6Zn}LP_r73`2TKkE`g5hi`GoN9DKbYohTw}M>Y_S(~P{vUG zso=OCM(1o~jMJ)M^ttvpZe8_k@sRLs%&iTuF|bQ6Ih4YQBtLevnQh^y|;-lM0w=I?om8Pcp%ZomxdzhV5#!*RIZ{b>3!7sf2u#Oe#%MH<_ac*y}>Dl@#o%B-f@ zo;N#0H^}*IQj?Blt05o#eeP06{=127K>vK+sqvOgu?Jw{EI zJ0Og{si-EM&frN5=?O&9IzI&jy5Hp~ZuqVzI&YC()y%iA{L6}+* zY|GucF}S*o-AmmqLa6ogKL1;SBbDH&LP3VG>!e3wB_JxRE zeL!nZM?*QZVE$ioHM$#&cUWOS;G5{2X~5=F>J85N1GVIP`=X-HJ8ony zIHfEs0SRT-ax(P7UQrLFs8WT|leD2?{J?u^dR(rrJP@ba5EX>g}SoQ`Ep2wwIveT3QsGU&@ zl~`-)r=I0+$IzlEIe55;!OuD#ykys*?#k%zk1Up5AyD|ubA7_uJW-dnNHGFLi>5{Q zPfU%KGvOiJcYCpC2`2D{{XPsQKIdo1Y!C{~$B3BRzLe~eBu8fJ6HttG6qHI(5)T#a zJcFof>d?Wt-}|O|+)mRqb2j$cwk5LCN6Ug=KjFpE{F>RG{nsx z@6|=;8eqlV|D#`GldT5e%W>*?%M)X$9R0>~B`ynD$3P#xA%N~dB>Kt&bv!YIIhwv9 zFnG_?&4hC_+fdoP@P%bujit`K9mEJi&8Q+oZ_^5x70sL)R%V z3nOvbhCIJX(H%erh*10wSekwQ=|d3W+tgwM8x}ZY=Sg&0#7Km6R}BXTTirPoPkCsa zN^&37;pHNe2Hwe0w#!gc1!%%}trDMp__yTu=q2ED9&6T0EQlbqc(%XrA%Zz-vBb*5 z*{0<9h2QtRwS;@yfc(x*9#Je=?qRss`!-$2gc~j|)@c^M`j^{OMYDdGQY77UXYAOD zhS(T{sVW1P4N1uu&)WGEI z2X;CAUku7i`;*4`1M}u@M;Q8w;Is_Y51hp}qsxNVpR1}fJXDEbR{Xn@CdVt6g4fa= zbbseCdx8X&cw4%3Z`x9LDZ;stdG-gSAiLzU)6E%s@?BzZd9L=R*F3@QYY}crl{>V8 z{!OG^>?L_7#676vkt3~*^M-VJmP9;Wu?3Cu#elvs zq$TtEu=1Ru^En1xN+=DhB&kJh#VWA5z^kkM(b6lb7MkAaH32nSxDhHXICt-ZfJm>S z;HJmI>?8h=9uXwx=o-EBV)``jXHaI)XqBX|QQ%dAGU~HEh?hz1^pumU+)hb<0nENP z7R+skkx|^m*pj3V`V5a`q=~)4s{ewYUw4t!mTK|C*)eE2-e;jnwhjM8ntJ{DIc}6f zEM-?fxCOj|%=#`5yCw+hSO;uk6x&XWfH zqtzXQMxS`}3WqtLIH6QS_0AmcjcfhhjBxl-wrk#TM+^KBYP_tViI?CZ-5h927{u8gPZM@`p?9F)}^3H?sz>!%=mM1x%yqa&=tOw|SUL{8C*;?sZ z)+V&10Ee=RIyJ!$WfY(bOyf~^8!}-*FxI;9KXL~tYJc#HOpOm!(%(vbha3>QrG0c~ zlX&xcXc}J`_}f?j*`(LgYgTPI+5Nr9#E;e1JJHfzQ>(DQWI4xN~a zq5XYZ1s+3G_yK0qCsF|)4uzNxU&?XTo~04#CfiyQbP7M>6bMCw6^5GW?&#PZ(7c6ot<47`{ODc2N1)u$=B*3cGeLXzf$FHzxp&o{?)ccuzPTn-A;8k z;k$hKxUL^t8s`*u%WW;2!Ns>$JD%nN@0l9SKAzT__jS;A<_Zn`{h^((X|Xhvl8~4o=(@4kPbkHRP_44bSNr|KvafJj)MkmHF7sT{ul@Y%X8UL63+a7{ z>wcnDpz#W4Ry_A+>K~P$=1bK~UeH7)6j~>KQndVNR$TGzP!`bjb>81svTXijDI&Y4 z&GY1JZ1&mP9M-oNV0X$q_FGy!R(#eLr4ZAx;yHm~S(rM9>g;T<+|0{o)ay5`8k|h$ zzlE+jxEV3$;-wOOd0ozi3a_)*bwyBG))A)E_}`WCLR<}?EIA+nbjff+8*Pps*26;cJ;a=r4R{j z%$HMvk3Q=r7IbRzJ(ju=WK=dRJ5En7OYYOI zSy-XkECJzUOg{A@3f5X4SKyqiIp+>s zc^Ta#B5fZgH4>F@&9flx2jq<}sr89XOUxoFaLpm-i_O4y-Eh(hopTrLN&UMmL2r9L z*t*5i8=W`DA9#Z`7Rx;h%#Z)9VhVw)=4(KvPH+Xf5W3vDF`PG z=Xpj2djksBb%UK&rRwX5JME~}qS-=8Lo#_;Q70JzDd6=0>MrAH8>4IGtIAVihzS!0 zq@Kzv7P*U-0xqo6Rnax2){(0sv8p(so_EJn0W)I3F9TqW42=A2HrvQa)+)1z`9nIE z>Am7{YA;rWK_+SRy5D`vk0sjsT!_KfEQ-4iBOSxLT2TFXyb(WXz{vf4=0tZDc%1W* zbDw+s8|C`jOt|e;tl4b3kRM_`2z0Lmo|yDEG;1%K-Zjldv^S!-WU>`2A;{jx+UlzI z^^5;}|9SOs!K}u_Ly|mS>84%%7q#It`np_W$eolrL9fFk9|s&Q^4r>FOjSpXu2Q0Q%DLQD%aYeO{u{9fwZ189Ik8oTVvWrxr-6^tQ8c3U!l5^&Jb%H@ z>vF4}@@@5JoJxUizi)-E8{`}C?$%!XHKeJ0 z46Jgxq>CRB*Z^-KJ{D~5SBCl9^A`c#>Q=Xy&8}98A~%ELo`0-tnS(yBxZBO`A@3_J zFFkzG7Ws9+`=;y*=%q&MXv`#+RCVsatXq7@K0CkmAMbKM zJG#}oQ>~ul%XAnkf+57O{rxtd2FQDUi*PX1*ERHPTNH7B^Q~y^l{_%t3q94I$du*s zr^Cr%dF8{uPIe>%8Ljgt&j1ev6ohK>#~!4gde`t8l%<;$LH6QjYf>O>b|n!Dj?v?q}!f>T2iqavujqEyN$X2{ykf zRr{?kzSf9D*R^RLyiK9*ZBD#4RbN-Ssr2jnn0j2tX+tWZ19mgKi)|WgY*JdJ$*Ee! zXT^l3JCWwBLf%ZXn`O`h!^*GT@mG>U!BUaYOTq*||@C(B^w2TPuxya#vo5}`c;yo0Jk^^jLRbIgvCiA`+vo9QcG6@{!S_(+Vn5rjpTc4 zu6ff4?6s#VAOH0EsvF&bK45{9ldm1D7GfUI3VY`>dO&f@w8*-7eWV`>ghE;A8XkbW z)a+HPSh*AXN1bSyXnmLguR}EKZ3Izsg!RRD$wBuQMPa31Ws2)`9@-Fxyy?O6v#TYv z9y0o)wYDL>FOyB~>PgO19BdBu>w-k?ul_EqmKA2YkW5F% zzU&C76OAttMQj#Fz(I(SH!aT)9ssjLcFij()GM((BS=wGlgv;e;H=pH3$p4;pVx_Q zYSzxbcihD^^&7fj`%2(gmp@ScR7Z1BIHO7(9+!5m4$qeHsC)YN-++pw``}>|n>9DD zey90NBO|ZK#AeT^B7UDyg*IN1mY+^Pk^&Z>3)F&lR>;;6cc6hvIobv@IgRC{TEM(9 zB{YF{#)&!&sDdfDMLc*d=!b-Ah{mv>0V%$L1E&I=*U@YcVY3ZzK#TSBAl3M@-7WO& za@ZS_XKyB)wPy@?kLCg7Y2DAt;PD*d*r)fC)X%7VWjVU|xL^}bY^;z)K4O!7)_?2i zMT?7IlBrz(L=&?H|JGPQRg#g>@3{rDnivGMBa5Ojiq3(&&XHrlpUTlG)<9y6ZbbS8 zG_Hjr2v;RG<9xi^MOYHT)krNZD(9<=C`l0tkdsTvbp>nwHs_w$oe*`6sk-#W8nHao zr|6Pl`x+jA@vI#9&FT^UCEcsX{;23)T1;%+P6wpnAN+;NV$mI4J-hA`E0%t0dgwdN z4=D&!^6qn_YS5b`ulBg;plMqHh^Kc68juU+zAk%41hVDp+Klui)Bl&CoJWKf#uLrTgCPq}xm=o&Jb2P~w3FZ_QB zA+7OQU_uCo%#fTrtPX+;fCdgD#z4fV)UKgzlS^r;<^c>S#tMMXHBa89!7PxcG413t zcDd8PS_-9>(fBo*t|6YB8{p&ctM>NA4{pW8tKbT>CtG3C+7PyYDi}ezs)O10E}_vm`ZBck|A}Y$j!`Y%KDL>-R~1=d=Q&lJTdexuaIs2%p>L( z{CY@!!@r+?r|}m;O#>TRYt~MBIHXvf=1x$RxIOFgCoZdHrp9OZPXgjetFNo(=$;641}hIEdA`o47{&<6DV z$}+KX2L`*I&+S}mZ+U2C4+NPb>N=SKos2`xb(n0U;zUY{OZa{Dw%o5DW7OlgLkD+E z3`UB-R)A`G5fr+s{vT^2J)8_^FIqb6`)`DD=@=YlCzHDEJOEtGRqE&Z;k<~nlG)`Y zl=4U0|3%ez_*4By|6e;7 zmt16BuH0*V-#*{pryCj)5p883l_Mm7fgT3sbQ%lBG5vX5zF&wygp zG}FV-`6Ja5K)$HQ0aq`hOmyx02EfsO1J;PDo8w^C*! zhhdar+;+c$M*WUuyP(B>uumP?Zj8SZxgCZ3#uLUKOlPMSb`ksN8=AA%* zXb9crH`BrhL2MP-pSN(%M(#3qT75G17#A3?d5fujW1bG&`HmMmYKCQp^qibVl#C&x zk?n@tcZ32k#^|hM;HJb3Hia^8aaJzc(E5^()0s_xg6y~#6L01OY&V&gb^NCH; z7x$XugWAnEwA|k*r2?)^44L<|j=8S2;Ee=*&0)s+pDnBY_D`@({=8V=CNqu%oNr;W zXubkVc=Jp(Sr+fcRoNwQDU2+9IKHtu5?M5m1gf`ZcLvSUe|fCG=1BWj?c%|CKU&*= zkU;R`WAU>$cDg9p^LRt`eA);FD|tM9t{w8pq& zH%l9PudmFW2Q@jQmKhqa+5i8CIE-Yb ztNDS}_;(klvb6abXX>;jPb}r=5_6~MZ;tLbr#k*68wHOP=P&2Ndp4Uj50d+4SSHyn zf=?%q-AoAC={}#Ye`o*qbm3s{rplR7DvtKy!OBi|$Byg>oK=B1{ym^{`mn!InPu=B z2I_xCqk>_~o!Bj0*ogC4?dBHznz6h7)%Op!ErueS80CAy!skt7BFFF2`Q@3G5?=iQ z4rT@+a`fR;1w|eMavIclmSW^tnbp!v z%jXQb?}s|twQ{;Ls;vJfEpG_sl;xsi3fu0U^UbK!)IY;Ol;HyBW5$*?-e)kCueLn7 zD)lnG1nOmgHyt2Fj6l}d{yW#P7jaj3Aex^=C+wfm64Y}~*c}F1F4l9m%2A4zqr0k2 z3~@+(`n6;ql1W*NdQz{M*-)grELUunY0P+pCNj5{%offIIF+?Xs{5J#2L( zPH4geoj_m0YTgPErp`9UM~DEvc#*zU@*&tBuxY^IgY!O{U%}DmG!Wm|s2flroD-#X z3EhfE>T@l<{)3};mNT-vLzOvQhC5Fb_O+ZF&q$kXVvQ#f`$W+I0y6j8#--_})1kReEoTq; z!nueaCIKEq@xLX>$cX0U&EwD-@TD2_9$I!~h@u z;!eX$OzsD8sm#ax3>eXk7~{4k7MeYFAK14Q0md4uXBUD-1i#0)Cv!&x$2uml3Gf!f zK&I@1YznL@E$kL8vy?BQWi^@qBp10KWd)Yh)bN#S|3VTgE4j!vI=<%i8_moT|LK$C zsCX4sZ4YpFdHvq!TLf-==wJ?^vE}UW?GI?RB(NztUB26rRwqu<&s6GT2!w$eddo{0 zR2=2EJOxzdWTr9kqW&y^D^(sv`$027WBZ${-)Z~H!Cg;$timoFQ+k0&<4|GTXs>qQgTt>J1G zr|%;1lvF!4PM}-8nwRrLS;aTV?dj$Z9SsD{$H*S2C>l5q<_?uC?0yKHkH|Cf6O88d z0fW@Q^{!>wpTII1@k(_K4;N#|_B?8)U-x(j@S)c?ztr{urN)0(XULNzk&*WY5@zMq zCel5fMqfPoU;hnBY`P}+$m0#YA-z=0ie`Ju4^e*uMPt1mTLKn8)BZTq{*Ai0u;0hA zv$gK6tgJ8C7G|7mN{$+(ny@_q8vnIzQ53MjU$;5P8-Fd^hcr?Svgwn0=RuzeGE#;V z0UaK0^XiBGb^i_OfOzHg28wUnTmiqBJ=E_e%^xH-H9Pj50!dr;gK%kHrdvaUo0KuXHIk0cnFSD@C^~S&prp1+zqp%J{L-lI972 zb_@%lI3~HxzH7w2l@jl6jA%5kU-P?-HCd&aHQENHR%jVwWEIx98bf&G{~wTI0lY$= zlKMUiiF&%(k%>l6X!iaRh5vLezQaiw+y11&!cK;vVKrqQ`HaQoM5A*-rv5s8y^r0P zWz|G(bA!`K4Z#bjnDml>Q=2#lV$&FUKO7%l09nUJWZ>#)LERJ^n+z9Lf}9Ap@*ZQ7mg;^ugN181%L-ES1+9eDw!FNACCCb(D&=!VmK(UcnN{sq|%kV1A z9#$`|(NugM^hjym*Tjyf0@=j@%_-`jKKe%l4y6+UbwKsWEN9`5M27zq4vFy>i-{i* zNs3CpB(TJ+*U0$V>b9@Q2rrv+@%7(o!Zn3&CJTDvZQsB49KZAM#T#yWaxB`=c#HvS z_=%(RD6s!atL69U*B9m`){9876fdf+1H%UG6^hiujFpDs>rPId%GF(H0|B;b_sDbu zpX?lQ)1qrxXDs?cbU4m;0QsP9@9N_>id4TAf4!(ViWt7l($HntaFQhb zhlQH;KC5OA#VN_M{Xx>g`-I9xjr9bmxp(ZiQ{#=rXW5w>d{PHwYt=!+OJiNZq1mSM z<@HbfHDanm>-ZJgw75MI4*nC@j9r}Y8!M~iYb{+m5$^}UwYZ46_l61E-Sb=lK-(4( zXAtUN?SkVfbyh~!GZon>1bMDvT9ZO|FZ4qPxdXQn>nb3oxw%g)d)pP^>LEJZ!Q~}D zMySj<$=(x7V8;WVBIOt*7;1f2<1Dg9-h_(^hR@LZ8B2QOVG?Tl6B)U5z7@wOb=r~lF(%!wlQPz=? z3UTMC*W5t?0KRRS?eW-PiN6!&pzZM30!E2+3s#b#HI*-~|M!>NQb!zEo>x)Lt6Ejf zzX7m+k3trx7A?;PmGRiN;?51|dIBb1OyEBa-S3Or>_?8bVqklP539ODl%+Z7-U-|F zD8cpIB)H-q|N0xoxsO=sKI4LZw`>OuEYtERO+SirA^gep8~hkt{_FW>$~!I=m$xdN z59@6dINazPNPI2IPM{T-a@|kg7Q@nwD^`Tq7y;f^#;-ZPz+28}v7Shq?(*NoRs_UPNZ(Y3M)Vle#jmw*Y#vVj@`7`yR~cN2a*cyQa3; z2YSY~G;P_VE?O;1@hzk<)rNxQk^h(}tOR$brm5;t76Ke13bb0*&;fx|Ko{*V?xI~UzP)q@ct0b}Y=rLd1)!e;yCvmbg5g%;jlmD&#KTh{mETMseUP+jMX`a5ZH zL`bU2m-W0u)>(`esA)P5U{ zZ;?C2NzooaBWU-f756rs@M@^v@-A1|Er^stUDiR$PNbf1O#1s&&0(-2eVh08hEBBR zN4aeE)MY5dH;rB>N(o%hhs19#IaWbfTy!-$qxM=QGqM0&Z<`vV*uERzS-x>Uz^7O} z=>QkStJvzciZO<$BCD_SW%hr&!~{=-8{D7TV<+d zTKfpqn9QZG`0-ucpL+9dw4>r_myL7b#`(xBz=&JbTes>ksU=l^0h?Fs%Z7g@T zg#SCh>HuEAy%py=e(wnE8n8nw%OifgO)Gbq2OeP7p}jWE%&d15d@VcqpabfFLuO;f z9xC_N#g~dR)$qw`%F(&vAJNG^fDHFiy6y3^o`}4q(=kv**+_{t; zF-`1^Uk30cWl4JwYd}tcMm!N)kB{8x|COZzSk0wkrk}YYA4ES53(;tCW>B&5#?;x> z*qwDGHfgf36Rx&0IXY2fDFxv;8U4PjYBv_nTkCEzG>M}(2BFXZ`Ir7o0qH*?cgXc- zsmx!!l(l+RM@*8=z~bu>%L!p+zT>h|pK}4cla2?A@v4(iT_VmaSAovhs4gwEhB3Lt zJ<-x|3UX1J(P9IVAd0=Tqald@=J_7B)0?!s01^u3qQoyRjo48!{PB zF|Zu6I?@IYDUTOMHbk}bUA3QoDh8i5w+r`)=jaz zRARL}wg4L9)nMEF#LnBw(#f33+S6!neDYx;o;j3jZm|umgrwNL zuqdR#<$PuE%t;vkQ+3M*V2s$x5;cf-cQRh+Cip7F!e{p2dV z*U??UyJ!KdybqGwzjNAGG(jXyB+=>0#`0w*1X4Q*bGM=f#~V6Y^RYG|pr*hgCzaio zxdsN{=XPZdoFr;xgvXqO*HoGL*c?}Yxekhkkb{$9b8j6^7wmqbB=cDuF)8#TK=Qkb zt{^ls9#>xe;5*N3IVHCMn^GrcuWi7OF5q=B7mkb=kxPekqEyKwyu-5%aUChzH+KTp zmO{v8Xp>%ZV*AM0RuN_K{I~;vmkpYp*S2^)J$V|iBU2Q{=MyQQi|TpJt72Sc-g@|i z+rjavGiY46zg6U~#CtDt_>$FOwW;}yyZ1^37*O{2#H^y_d0W52lyW-e6kgOOHW}T> z5{-0v69Hx&5(BV^{Xp2%ML5w74|YQCDnT!Mc8SdL)pc}Z!aPkl+-zWeFqRi}+{%`D zFU=U@{~+DuhGXT&vpO*HMW|<72l$teeXOQ|FRcFQGVt6+! z9Gg?Yb+dG$W`-+ZLc`VV5SAJ<@Y2 z^B4Pj^PuMV!qW0ZkDPP2WOyp+O9v(trhe_`3wwa(Y(%;OJ!S36Q#OyIV1I7_|Wc5&G zuDFJ}&-+%7mNV^fr4rPKz{c6AA*@#Bn_vV$9zs2jooOW@&ssl02FK(HSJPZ~msTu2 z=ZcBHnb5>l0ml*GGDuAX2%`bPlzop67=At`IQK{uPZf_q|4-``F032TQ?pNQwXPZV~%wkM~msn1z) zZA~LdG}CUbLzAevoYSvV+VNc+p5kcnIVO51&Fg#W1Iy3-7r*P# z`Jfgd!D5UkX#T`&?U535eXv(sN~RtaV@TP{n<7futp=4=%l8znK^WwT|Jn)EFD&oB z#LP6mYL+#ayoa5Pz|NzNw`Swqma*=grQDxwwHRyES!M4?*dJ-i#QL*Qc1GOre_GxW z2JS~8@&8^e{ZK!KX4;_)YF49(D_~Kir)|+o{ndH3-;3XSAZN%TB`%4qE#aqtF#QKM1&U*%;^LKdb}>m!8hF*SVdiLp?y zFTU0y4qZYF*Ix~LjY7IupCyg<`5scgkaShtc%1wSc@uqKU1L4D>y|k9N(dXYB^au& zw@^9wH<*rLtC_jXu2yqo)k}cSJVBXmW{AeorJ0Hc8tb{d^b2mvQM+LRiqO9fw158M z9bQ#y!t!WgRN37?k!nn5-3c^mIp{KGOT1m|%)c5BNA#9JR&BGaKU|BOP%1r=?0+;h#)J?poNA&|5&rf&UwEFZw@xlIn>faS< z<-X6ZlgeB!nBBx+?XES(*$4^vm(57@A=XYA4F*;0E$r0M#$q(dY*9n*`kdBE#Iz%m zF0_&z1x&m`=hf`910@nJx9;nnNug`@!tMm(g@{6t8@^c?=qJ_r3GwP}BWa_=jGja5 zh{OLNKq}2=aXso}7ZLS>xC?gj;$~3^8-&Js2U~ncsbDQnvWU*8+564L45%1&m@-ib z=-A_?m}o&ct&tpF@}83O*Qg&Kuy5x?m@gePJUB4_p2a(4|KIQ zGE4xBhc;1r_9S*U^?X`?pDA@N<)^*9|^I6B(0-8&KrJ5|}&Oo&C zx?zp0!CboMB#;vRsZ&3f`r9wCybHfx({n%3H-}hoG-f#DK|N<}{@6cz{g`+sljuBxP?CAHlQYQkI)S3ZP}3$Td+_g~fs^O<-%yjuWJ)E9Q0mOk zh4`!^Ku>0ax+z&V3-qsBdhy|tKTnQp&=6A#r+-Ffg4T z`+m$xvUeCH?Jpu@mk9Bg?qUG>?ahIX-|H5;4ZZYb_kur)=EC+(Ubs^_cY4Jdf4dW! zxOni3w`kVxtN4LF2Vc~Nj27fL&V9;L{@=c;Y$nQ|qGtKj)~K14)(W`D58}LOKa?)5 z@qqAw0Dr=qL85#UJEY_OECg)<->U^imoNDc`d|xr^T7!ea~>r*BshwAY2^N(=cE#l z@y%7d^T>CusT4iWx)IQ_tO8|!(A(A_UKD|S^a81J&Gbtsb;@dlNfWj5moQC=ftD7v z$84O)==e~uVEopZEV#1xd9OYT6SkpnP71GMVr^-svu()?Tv(ahXlE3LOivvQ&kf_8 zjmyMq)7%L@sR%wa5VI+q7^OWAAN-cGbTyQnhCv+$sepg73x$ zrOWpWgz(M1U!Yy;XLomv>(B`}S!rbsb@J0OYYhYcrqxp3O}kq-f{J!#mTz8aZ;lFv zo6Pcsj~cM?9sSlqCZRo-{_5BN;_Evbw6HOn>HW0KA+KN^0uX&8^4JHHRmb&YpuUIR zAqde5fS4a+AW8t?c}~6o4o8WHjmrK}F7TdT4ztk5|GqukrIkYbY?$bL9z0kt{s@y^ zwh6y>gkAozR}nicrz&$(N)EW2#qZ9)9_AnTPLBf$$?0eTOQ zF7;}umS`c8-H}&~^(Sa^7qh^I4bQ2U9BaR$NMw$e?YZ2!x2gvCiD_M;3cFjuC0p6) z=+?>elFBgzt4ZB`XHFY%MvLHKXG~mEp%*SUgBa2f>0!}~^^La-L5DTI9D`BO>yK$J z%eb={kBnMA!s;GhimD)kK2~s4=<8t@xXbWT?m`yy4RKX+;U>xT zql9A^*5=q=%&~ohX%#DD8fFcZ2#sdLMz6I6{|i|u3O6Oga|U)m}}PskDNOfe*GXp(#!20R;AWxGacGC(+f#>FVgiI4Pud*iA^d zvPu z4i;rV%DNtYut)tuB))u_r;#%4UBA2s<7ulTW>8Q6tREU%w?ffPGtLFV$2ImV6SK@a zjp_ye#yqVj%d(i!IsIat@fR2cqs;GEw8?7|i}CEy=RNh9MvW=dlT{bDrJS3Q3%}81 ziNHMb?r@RV*|mN<@Z?1J^t%7*g4KkDedm+Lx0}L_uj1;u${u^JDO%9}UdPISNukyJj#%2D!C9pD@=(#tB-+Wx8}j7UNZfDYP>XyGSqJ%|5>dgrD|=y|o6 zKbe=X?-`0OYXsTVXQ(JlwQ9+0PKSayl&5d1Rax?%99Torwm^=MtxmAzcykm??6gCG z<^bfKEzlJwvmb~U=K!R@v)V9AEJ|C&oOy^MZI4+exS;}TD4<>O)8iSmQJd#9jjX6&!h+| z0?}&WgX2q2B!(n9tKAXBbHgjY0IH<{F4$w^`lJp%b&qM)KtJ7m+yt7nm8{kiEc!G< zaDEXZ93}1>_iQ{{o$cd-{Y;!nI@_q->~100ZEvfh(xHe2#}yzPbE8G%IlE&5J4Igv zAoF(y-3oO_-cA`v7hQnbKTp3@Kt?u)nYKrV}Uus?Bw>D!;ipCE!SIZ@UV0dKU-ockSQ;9SJuQB}N#P z-&SpLz|<;Cl*e>OG+t?QB!oenL9tA7&D~`i6jt2!GK2{6PMra5-!A7m1W>=tBKWcT z&+1vy7x00DX<~dN^5r3}Iv>gw%OQy``d{Se9Y@e|_w`Nf!%k_IvQKdmB)W|uFFWg* zPFL7m(sPtEs936$vDTvLW42iytOyQ@7}#kHZ*K8ip_R>dPZ? z{PdPDLv*u-Dx|M$X>B)an16x zNSL;U){IeS2BX~epbKAxkaI)SUBLAda{*6344u?G?V#o1TyTIzBlcGMw^^wm zLtfOg#9_*oH0@*&{Evq>&x`vd(y}-;;C6W?72C4APW%J>9nf`IuJY}?xpe5Gx zMwSJ@)GWVNbt->n_gezaFfgV!VDW8~X$#9x-w9 zO*c;3P;@VHe6!_t3#LSy6Y;3wRn1B(sjF3uT;jS5pUv~q(B%*OVtV;z8(*~-BIIf9 zqv&R?KBje#I~ki1V^$je*F41-C%tU!@$)>S#P?RF4A#M%UrNEd$umrdtOFx{jmLjk z<_eR!;M>`QsBei(5X5PNcHiNk((zXm7n=j*gLfwYx;%Rcx~oku5z4i)(xQStYcFGUBp2=>h?d9*sJJ~E+#R!)SPQVDqxZLUDwJq(_Fo52R&VB zQ%gY*wM*bNzK2z3sX5l|GOhyDKEYUIP;_mT%^8!tM{`+xQepAlAHEyv zu&)cLV#C?;Y=hRzU*!3v7^QpY1*|4N&Pawr(WenN{)5)%K zyjrIJMnU&-m)-Z#YM_(sqMX?s4BlRhko_quG@wS?OD&mcI_(F>5XiZT=up?@BbqfH z-_LUZNlhBsSiZmSCo>eW8KjX`sbjp22eQ1+BMri0|K;Lg5Tmn03eF5^&P4q*hw_sy zTKz^IV>T&fACESjR^!u}Fa6K&hk4x&EZPeT^i4F@p3&=BeKGUn*FE4*b;gTG}KiB-_3q3EIjF8+22Bp|% z)!ib8zjrC1YZ37Kotgaf=$pB&+=kVJ9*@GiuntL=SX;!P7HY<^Hro0w;w|5;BzNW- zUx5}3b|t{NWii&x!@4ft{KnhU%7youzoLe7`;lCW;k`E7uiZ=YUaVm@SQ9 z2qD?aufyaXzRN0E!%4ayX%6c`l@$`Th$~eMMlLT6Lrr{fHKM)31LJ-X_TiK|((|a*8?!A(y<`qc+NA+sQys%jc z0v{@G0~yc_!JVA8m(p_7@gq!yEs=x8l1_3x`jfN*<_#%cAHRjdU#&Trvn#joagn#+ zBPxCz>IdtjW~IWP>2tc45Wj#!oQQuzA`BTz@i(m6nR+@R63b>)(}44*8_k5p#{h77 zgP;1$TJ;puy7jwk?5d$fGz1O4;ua9EHwVgs;#B7B85d258%C$h>?rXmnB%6oTdw7 zPTRo+=6rIZ>ECE>9_{tSDPixN%Q@CMWdQuIv1{Bw`&$iao`Rg$dA?mt-FNG5kvWN4 z-n77~udo&+h9wRI)(-EuA9q_j-ELR!RG_tSZp44@ z;m3sD3LT4;P+M-G0bYy@Ni%H^;-Q*ec(M|I;Wt2a{zdBm+@j zgurJ*k@zK{R{ZGgo@F?Zp?lKkbCJ3DHG*Q=G9R*>Y`YAUZm3> zdT{p`(45t*nmw(8`o#Gl_%eL7^lP?~)sasT!piZ1-?}K9BT7aM_JtkdNG=^(U%VZV z0J8Y;-_4NqbKLsBTS-D0seGB%+gO?Wk`9c?)8ol1AW~LO?yDDG_sFhQGcdIwm|os) z6Zd5|b^=WTMyN`8Z%$*VL|vQaNFABW{x{u%H?pI8$*AL|!(aPQ$4nkSSx;LCkK3bD ztF%uP8w^+zSVGt9H~mfevMbPZe3$X2jOQ=j$LAZ>cc1!nFbyCjj5+*~nrlB0SCo$W zv?fmmN9kNF|0p{)2m08kaP3uAZOBV8njcbV4D?xZB+4#JyXV0`4zcCI4WT*Gk3+Uf zw2%1p)rHTW_>Og;FI!?0^y=nN53|rF3?pwk%a*%-EYxp~-w_Cu%b%bXGt}A#da(ea z&uFuM#iK*9Kj_-O%dcL=*e;XqfS}?4zR$?UxvFZr)-RfvE{_ukt-*dJ&Ml>8#w%Ol z12f1qH{MkFvpiB}x9!kVTny=)RBgr5b3u7fJt`1xhvm-gzqws$%^VPfA)bAc1N+lr zcta;cTGE-rVSXO^6*T}k^I3*qar9UWRM&fV@!yyck973>vPtc3sE(Ini91pFd8iG# zn!y_=9=RUR@5|k97eJd*FR8{MUZnpH)f{p775XFKOh%hlrs3N9r9Eb?j91l55JT7L zJnarrM~wDYE{hl`8IoLvF~fw9Tpia1ISzAO(D}+~%1{aQZ)l9!rw+Iq&w+AL7<%|` zWe1)y_w|I|29T)gSYO{eUaAO|nlWac_dLE%*3t6aI+|T_7D)lp<0-PH<(cDh21yAg zGA)S9dOXW(lv!On`5>BEEo$;C!_F_qJPfG{yAoz{?Q zi(Cio6>6gYY5(MK9UsUg(1=Gx%BF-pLit zMh5uYt^t}@$)8rb@|d>zS#6=)8-d?P;!jV|!CbPjd+pw>t?cTyzOuBcS~Px@e|0{6 z?+i>#3ZXb39Gp@kHTvS>N60bM{Vb?3cED z3J^%5@q^3-CCF>*qLICn?rOs1SFf%KY6dPb|MwLNQ0=ctF14*6K-i*!)er=y#1)>w z!C3gL!pqk+RuB)=bsB7VAhJFB%dYCwPlZi4Gj6fXkB~O&EKQ`;^tI2e#=Tz=$o!Mb z<}*=WJb2U_Bckp(((kBa-%)&H%Kf$^orToZpcm_cUp-k0gY>gG+{_=??V#1=giD#9 z`2-Z;`=CsOCd~!XTK7Ijp(72y^rJy!<&x50rc-MalI1=s4?%Hrjwn!?dpyqc z-03S5@nL~diwv>TQxe0Wenxd=#qxBK$A4(Vx8F9-BlzxVSSM+s{LXETe%!Vg`huv6LET*~9n(ZQU^%~~`U^<{h z9Bl+x&nu@T$}0${1l;X(Id94nYqg4jUc!Ue&lVZDe;x+IXIEwO{3-VE#v;2+zsP}HN4R)v)LROg_Sdknb12b7Li z>CIN!%!^j{I;0^kt&3&I1~41(VoeY7%36htV=EttZe=MM$jRVGo~{G?vhI{g4A>Kp zFK8)l50;x{_*ljsEhL0nPQmBkBjNHuGj;uIp5Sd&tpvs%{S;z%Fl2M`{(>b>w&Uoe z$KM#rM>4bF(vNBo(0sd^Tjo-k1-@5k9te~XSDh8;X=VD|w8hv>S-rV^4VA#oi=7D~ zS@wJ%XNq&aE5JaU^O2*bBSk+tI^Bnh%htzX6DVYfh0IgQh)CD_aE) zt@YfDq33pKG90F{-(UZZkUvZ)7@Blsf|<&@wu~76A;Y%{&@6X_9YmH?hU0H>0k*tk zdBNi%OKjnbKj(}e`(~|%f9b^;v#q#wtX0IAmmKa>lB*OHZ_v| z$=%8yYRsgkPR|M0jyff@(%vX5Y#pj!qz4$p$7EL$M7^n|6=80sQ${xY}m?t=FuUM{!tisMkC+g=x+~qe* zi?-PAEN&L6Q9%$qHeMXHNli9%a_feu;#Gl#s{_}EI?l}QHN3Gbd%n=6e=6XZTuprH z=)bn`<>K)(A@Uln>-wg33FUWuj!I^Sq|wV zC>*mup0zzRQ>yn8u!joGaXqdCJ8RT3`SqmEBi(KUSlGp?u&Q3M^)(zWlKa&yhwGfw zx63Wt68AN!&5s_p@g7eu9m>(2kyw`7EU~$s>rovw?Qkv~xM_D>Yy(8!h;}~U1TGc# zo({Hs0KAJnc(QKEd60^L*vW;sW1DN_mY82AV}7u+3&b&jj1`-8iN+*B(j}`%jDUN`F+xWnx{|owp=cRkY@1 zddaf6k_IGX+8;AQE$!qszgw)Ay0p+N zY_~%L1)C|%|2i2VaIYP)VMC_D#O{F7L4%p0!mOswf{VzPmxdS?P+Ckf<_Oo9-!(ALxKGnBx$wXhhp$ZYx-)WytN(MsN9ol4p|N=; zsy*v-3R4;MjCDFzNu#EnveQ;^)>T~ysAYQ`6URG>U0_7jola1Qk_W{Lzbr1wjT>L)<;)PGtez4G9y4cEFY$f%Ttsv@bHSHWXBfEZv>K>JBHi! zMW)JlG#XuUeB?N<;6Cb~36}1v{u06cwCDkbSj{YTOnXx-$G(^0yxOxDvd&$6l8iWF zkD=R(d-~%O_2V$@<3dR5jdb6hzQfV-QgEe0ti(EGNw}bh1oY3Mky@eB3;uge(S5c{ zUry=@?<0(Or+OLJW#U);5Js_#yBSg^qGtb(lpcv#BkxdaU%|FfZv`_cX|KGZDWj`7 z8BET~Z#>?v?H*tNML{woy4P~bOWUzc8h-A5Hr!*7&LpnutST9SKVoaHxB;!ydV;j4 z<+$bEkGv?%+z@~nR)A{&?`3rh&1q*uKivX}&9T6jU!vJwzxc=4W@K&LkBSocv#fg=xJuYNnewNy)!txvTxiQX}kz_X^JXo1Ex6CWy^{v2dW^ zyu{&j+s65wfr2l)%Bx%2DY0t_iT_v|<2u188FT%%5N*r8#S zXLX7@4r)@1=obz02pV0d4v2yN%j7*WcLp6C-7`CkS7O%iZgR03T+x35mn}^i^l8g> z&(=@=HTyPPB+R05o8Y3DBzZ2aEnmu9`7p(S2&(1XIyf7G9B4AQbXsKkh`;-cyhO_I9I#&fZ4OqsKWS7W$D!cstm-Q(o3atN$DBm|%<}`bP#)5#a(YWW z%o!w7g;2j8S)rK~gC5n-2(^3y31O<{56B~E$9br~Jl!C;ZuE$)Udj`H)-y(NXTXE$ zaNyi{#%SK7sy-jS)_3?x`4{;|$(sjy@txHx!M?-0VbNevtQSW@@P-Mz;m#Uu(^{s# z(!4R*Q2GMd?%8K}kjwstx#q+lhhy0s3lHB8Nq(Ld>nP#Ds zY;W1r5T>3r-?Q|F`5oh_?;UNV&R6>FAiiTJP=lea1eNH(@4dga-1&G zvcxhd`JnEn<`vF7Xv>ubXn2n%{_a(u9DdiMAP8PF=JM*VO5TxrrBVi0=Tkn_C(idb zKJQdYuI=#a&HXme+VD69ncEJo`{0K<-_s9pC-W+XoBbuZ=0nbruy(_>8`#i)q1n)}pVQmX^nV zI4kt7OiYU}r099Aq!bQ4`d7LqI$afmw%B=DH~O<|^4K=BJ>y?_=?^lb$!~~3t*CTP z6f}b+jz`8KJmaIhYvyU{c31x#e%$tSnb{zr)S?-*uk#|q-qU_-IH=^aIV#eSNZ6 zFGWI9$4;8a>fBEeu7KLtCm}P~Os9Bc%hgwQuvae{EN^Wu-qxY1KB#y zQjdQjeaX$|F{Fbty@cPUv}ecL?G&bCIM5L6_~J>jd$AI%N{~b?hkf z3T0jz^&xDuK&FueAPkM%*MwaFr5#m%jCi+M0e;l--k zyU~9V!T)G+ero>Je^6u}TWu$-;T)KM5em5Of8YS`lX`B_A44r=vMjxgDux5JP~8#4 zOIK0fvQ>rs5{3MWrgjU8za8qcm9#NIcJiDI3_pRBokQfjdu0xdGnw~E8s3PT$aReq zH$~0tIUCN)f?^J$Ht#*bc=8NH`~5W=AUdpDIHe+Z9!$LjO#e5BF?U^->8tNPnd6Y>R#--3hL`^# zoNFTrzlij6;2D7MERd~B<$=rm&6~2S4vA}e(snXuP9tZBtN1;1Hm>b>bGkGA{pPo9dN%JX&YeIo3 z=u?Y=(r}K`XUU1wQ69t^WJ;`NmH$d}Wk}DcI?es76tp$vJpEZrp%seR`A|@Xtl*P~ zJDYTVBpbd)_c#-8;t$WAIR38Vy@5<_KEB_&E$QEAt6?VJoJ_Pn=~^^3!uQBi+d{leAgI>H#WD`1; zP;XTJBu1j@A3F2$BW=m3bPoLF3MlC)YtWX3T`}Y8R_*|{yLkU|68C@G{Y? z#dkM_F+muucYd6dE~I*z9YXTT_?l5Awo@i>&U6cXG38Cuf!-G4*^-jlADw`In12&r zlrd}h*eYMKPC^~o|8Vu*foyjF!*C)RRbo_YZ*6IBwYMawefK6+?Oj^4C~9wFBxsEq zp_JB&)zW2@)+S0(D^|s*RU@%CHS=ES_xJt1&-479oO7M?+52R!Mq@qD=_{_f z%FIu~vt_4mT(89vq1_4wcZ7BhuVjA``nu0mESE_Z>-Low>$pZgV-oBn~921!wM09+J1DdZng^2NB-B3e^n_ zH6@vER*MXT0)z3$>4U)qeW6f=dap^wTPTaiIC#Wtvhw^*hoo21YP~h}2QItyk~Q0Z z)v~`NPaW6b6L0?XJqDP@ILN;Hvh9MGJC$t^pnzW=3Q@Mx%sgffs$ay_5#uY;kkR2{j|gXYi3v}KcE*y>$V17I*0lq_?9XV6%Bx+9IeetR8BvE_ zO6%uCrR2dx>HVOG%{MWX-{moVC`icWH?9I}* z6kAhV&8NbqHyFez!WAT@rJ5s-&x;N%W+U8vpb#wj+kJ z6KFZ{ofR@J2ki8P`ArBQssnmKQMX%0O;iPLAPWu}{%OkD)j#v#xE#?}t?PG{7wX@s zsRUAgE&t+axQwR&g!=|v)IEsdeN_@-`Z~uUBgjfEM}cy0aqFLKwT*YWoqjk$)p^aX zAW>{qF4?0-q<$VhDYz^D=+-)Bk$yVO=(QPlwJZd%dR~6Ia28@~gJ-r;2$q5EjUWO_ zzX#amfw^7;RAw2}Sp@LMJ~&+ja+JuZ2mfY1w6zguwuh8)@R}L|hbGBlXT+Rr98nV? z?3N|F$GS)joC*2f4gq+0#CIq*tM&(k(H%sv!XMT@^{6q&+$sBppUgSQw``jP1{?5& zYED(_Rsfe%dMM0?O>la48`!h%k)}4o`Jdb`_1Zp1nY5bi#n@gh6`L;^2NkdDJyBzn zXPLQ9?PFcaWakO>|EKB$^4nL!zqB)5482Oz=6=jJ$7i|KBcSPy>vIQt2=55=+$+{Y z=4_8{?R{3v?-rRYVdzCw2QvC2zq!XVV<W^dF{8+erY zs42RfN~9hWZ7o8%2q;J{sw}j8KQd(eZb?o|uTnEww|%|(XN<6Tag|Z#Rp5~#TL5B4 zX3vZPhy~k%#9W3p{4U`tI}|gqg0j=xsH70KP?$Q2zW-3Mx`JGqQ@u)XLlq*HuE2P! z+{EWw2u3`BTlOYimqx`8WOMTdH*B#rZ4l14W|1HAcATa-K$H3H)!WS3a5!e^a4rR< zhoG1UiG%6KEN}Rp{q;dvE?~p4gtSMI4|3N@ecu%M##EQP`Z)l!l0xxUG%HUL!mGLQ zE~dHuT5WO}wZY1s*TSo}>gN{~()gg2$GBc+bojUozyNM$H(vqj^vgp~OVMWAEuW9# zl4!c=ex&%B4o!Pub{t-AV!H@wd@e0QF94R_=_>ZXr9B~9W!Y`;QD;=R5qAeLc`GfS z13-N+t<^|?pR0F=HG@ok8mCbW47!Vd`uFo;p0UsgyO z@6v$Dq4Is-9;6RznHpmx+}F3uCB2M2zC#1h9Y>|va}dX`ps3*MIgDp`9&uM+q;bu& zFBi@MTw@B|`QRwFy4fHYwtxJVuQW#vfp;mGC!>u##+oQk!+jj4fA|Olwh2JL(#$d2 z=`5ZOMuI9atW6MVMF&AskW^Aj`>eRHPP#&^aIL7^G93r-&uSjpH{wg3qQhm%^q~qA zg_+&>U{~bb=E6R5%7Z0l2$=v7DOskA$BsKNmf5C^ zk=GX=0J+86ETLN}jKaO*;4jt(6s;<~c$bDX z+TsSeBo1uDKxQXkSHI-xdq9e8FK8d%4?0~r*!R_tEvw({S-k|H8Tck}Z$*vo4Pb~= zt6)pX4D4O}5|3=(I{tkLG3Gh5BJ;`%nq>KV-T4lZ&l_F}Ohbg>U@IOjG{q#ws+uQ8 zT58%Gb18ryR){+W7d2by$@2M-AC%&cqFs{U>*7c<%6t$p^(hzl^Lw~-N$E+5kl$@<{oyUrMM4iS0*}n#zH475jpNix5&urDW(g}_Y zFk*9>Vvv5=o8q9N7Bjs8p1$Jc^5t(wHK%Jc1>*?J;G}ZuXMVY5D2*~l;(@a(&0f9F z#JrspbC z`%nL2U438L$UDg`2R{VHLE5>3TC0HJKU=MYV_@cFXzD(Fo(H$(YQlnQ5<48yHeW7q7prZ3@_$~Q4kA^S8>a@%`o?XJVa~Oq^a zT)ESB7y)>Nh?@9KP&x?<7A_;04*N&RU=q{735wfYKfRmSHm5hYHjh;={@%t@;cE%) zI3a7%eb78(>gDR>LY6J^k^V_umIlBSA86LgHO24MiD1tAh@d_vRj!Ae?p)rx-{s#4 z!KI;DRGu2^Bxg!Zz}XI+b@6RIy;Fb*J;eZ;sAjh$zg-bsrjumqkflhD89yti0qNE-(I$p)AQ-1#X#j%c^d}@sGOw!$*nr7` zqn;HQWoT(xGRd}p0$}-`hQ_~*5pbGm1g6)YzBElOhW5J;i2{LvZf2g`zQgaz5Mye_8#muqa0DM zK6C+p6y9+X&aBh!c$}ECMb9n}QEb8g>VT$zt^u2UxSbMj#8d6wd>M1q{XS;LI5Yfp za6uP8LN1~h&JFx&70_7I{`J`oSGlZAh|6knaA2A-2WUy;cB!BBJ;yB^4ooH;tW7qF zgE}^j`(L3zi5{(sUfe3K0OV9w4pieNow?v*$rJo+ zrDrp?4OEJYVJOz8ltS`-CK$1T8nuBZsh1^)hJ-US>d*uwAAOs(q;UFqF|W<`gG;!e z`JwizQ?1VD`jw|vND^@36&y_@w!1xUi~@5WzmAb5#6%*TMiehRBz@nVknJNU{+rEe zVy?W=5Kjsq%~oCj^r<5t^m_G5_P>Id8uUP7i6n+!?7te0mOVl^_?>qS8bO`Ev+#+F zGs~Mz2Md|$a!aNqIebwK%uDgt9FS+-J9ds=Y1r3)M7>1ODQtuk2%!Oy->vK*fhy!r zhVMu!U+bYM&%HJPn85`~7fWTQ=~zEaS8Q-73JV8K4?s0rjCts483Wp}+wH&{+sd_L z5wYTEejbWNWZFHC3!SvpYcz4W7QeLZW)O)5+mw@h=G3QxSh`D_XL?eixrn9EhjY5d zkhA$Y8ckQHW3~1V5sbH}A+M%-I!ZG%m{psWq7%iz?%kRTmG}+eZ4y;NpC_yb7u=E% z!52BPgZvCIR2l7rF5NnffHAVA$rTu{h2sX%Wzs2uTrX(C)EpRjLp#qa+**helgE5{ zq>0q}HE=BAbE=k449S=xkGm{aoF+a9KwhM6Me{M<4_&gm$6Q9R>oDIi|G9Zsy+98V z!|8Wa(LYq#7@GnnwdF}SZnp7>UH6v5wxcXvp%P5zo!bqNB*t-B!ZG_xe9&o9=<#NI z3t@TDZiBJ=^Jcy&12o~0F8}SM(iR~GI4;g6$nNB0fE|14kSTJWW7iOqtc(Cc5al7 zgKRPyzYt0LW4#5ylz}zJ_`A#8kO-)t^m$^bhWuW&Pzwrll{9$rTFzJD8f6r^^<+X$ zxM}Mnxi>^6J#c$&ag!(xS}5=sT|0O{bq~%S1C*bK{11gJ(3LX-3 z#G4Me#Brk%>&HcdfdITp?IB5-G~>s>B7hD{nnGYoR7E!EK{`>SSFq*@quGJuT@Da} zdfC1Na0}-@tgq=Mr2)HRfg5=XWg#Hs+8|FKzddEmvu7cWG>ki{ZIa=xutsqPVXcF= zJ_R%Tp-f4+$3yM-O~BdQ$f7M22Nv>%ZLTmff`MCS(G2RWZwih{GP&WTSu)JmURbLJ ztsQs+v$L`Ln@3!(Q7bvuqJe`K9d#ZMd33 ze$3SoZaa;psfC;ZCw^53uNtgQunB*2-_37+$$YIN8gt+}1;aMIA}IfLt;>*5PV_z$ zg1YwtM^`3GUQWyc!_=d4DEj@q4iLhQ?Qb4sEu@|(2Dq~dA5COtzC})jFZH`j?;anl zq3w^aiKvA|W}|sK>>LxPjD)*$sCDa&>S3ng^{-PvUCDTw>9|O9@)vuY^%P`tqyJhu zu%pOs2?Hf>z&yk|6aAM3lm*DeLUuT>{kay{bM&u%n1TQcVBhP}tUn;E91_oL(-*@F z$Gqs}zydL@M0nV17DVIQl3Cfrn*CRfC-fMjO<)#S%?_Yx1GjsW^)rmZ`JVho8fIOg zL3g44(H%aSX+tapYTE{Tr{;9AO&cV;5r1#!NP_|{^r2DdQyP`taJh!K1ciesQG#|I zhM@N2Q{>5PJ1&~MUPRZb&D-U6m`|RXI&2@O0=gBhbOw2d6%u46aPd8%*-wCa0>U1_ zVe+*wZVDfLiR=>r<>Fttce!zb8UlXx3=@mKQZ)OQrW7Wx8bhMLVxx#DAh>mYlQF|{ zauL{go*wIUl%_#Z;ZbjfMI2*Q!78bBN+*D`L8IprugnbGlW_OnX(c#&?)MWGyd0ls z-|eM+w>S8d=)J?MGYO%HgTgcbOEmD@rH|R5>BX-0tMT%7fbnhP1E6pu>%CKnjOT=x z?7>k?gF3HlGQ320zN*>eJ3F$mq$o@4$;z7sRklw8NQzbQzyp$`?scn27%!R!r%IRV~j-;zNDLsPYXy8gm zpU8Pl{Nm98rVMiq>pcYCf?E)$ybJQhsDtEZo6Y!H2cV2i^)BAFEBes$490Uk1l!Gb z{LxLYPh@IcfUe)&Us6dfEaGj-q?R;$di-y80hGDQ{=7|fBmJ=*DM0&4&SLPOMkYzXHH4zsBaU##i9ds=l#KeL&!Y3p&yjY zI#^+a>UwV=Xq&^ga54L`4)tA-^3+ygjn$1YqyH00Zwi^NGbwA~JobiOycb_;eos{H z%VT=Z@Cy-PI_y zHn+>{%m zY3za4yKy<8`@fGCU_qn;e%l1doM(4v*@X`ArMHnAYZQo#;`kl|)Huen==qF1=Aj5_59+S1M znfSLvdMgLRhopugY>vAH7!3#HxN|QY17QL6g!|Dz?Ej)WN!Kn-{*bm-e(@NIY-!^4EEqY zqP>PFITsr4Xgj>kb;Jm&brA~k*rrD!pTz?RZG-xc%`3oLYhl@O|Q4`xF8&* ztb?yZZ1pQnL>N2grxU$%U!f_zBHQj8GOYcwhNoep^S16BC8k@I|El)nI;7;)Jvsw~ zK+ip6%X{+$(Z>2?SFR_vZHWUc$45g!!d3MqI>|AqEnz{yIHjD+R+GS_5BUw?jRHFp zy~Lc!*E#i+@8B3?eNMk!9fU?Q4?&_23MQUsJx^q7$;~MiFD;@lf?`-k5PhYj$-`id-*j*`7AjW!y&V~-gD(L{@A{QK6h?G1C;w3IHV{oKu%m3JduUO-lL zO(^Ph`>4;Q2E$60F5)WxgN#iT_rqRAi)+gO40a??Z2AvpSZfh-O{t3pKEAm==<`O9K^9dfv}wQo(^tY}F# zs5_@=F)=WtFqTHQ+Ldigr9&K`!(1}!lGai)aRgz70!fPRanSG7<*6?)M*l^3R(fLA zN)1doOtqV2^j-@Qc0^{Owz8G`u*lktae(FW996eIW`5d|evScru+Yz|HURj#Xs&Sg z%|eE5EcD?6;PItNXOhxPGD{D-Zs`&zdvIkX@0ef9uB681uZ`y$uH!KwP`TdALo z=Z@q&s|tf0zbydu20^dce``Wf-9lPAxUDx@JK3xQ!=!PZ7axxEj5~vfzt=$G;7~yc zB*_rHNFRPsSwFw9aCLm!DNeZe0Pt465*TU3&xl%k3;W0yX=#Dy)u<96-nF<*zJKaA zzC1s|EUD|8R629}mDKXQ-sL|6l$GXPGo&oZ; z!4#t`*Er~6T=%Bk9_U0j0>*n`jSw81Z+vL8alep-ZufjO{%ogy{%Ns?8aLE9fo4>> z=~;gbG&ArxPpa*RaM5W$V>ZhB$&<)#X)pgyne=(M$TW?}Pk@2#k?PkN$le|991Fov z2+A|E?8!n3Ni0;+yi(mq2%&oSE}S<3B0WufiKY zU%ws20ogi>w#k)CI>Wb7A&Q8@>`i%Yp{K| zvM9OMjx;|;pmWt}6EzOg-!kMdUx}3*K|GX6a#2Z3I=pIUY2%T3Y|5H=k7XLdL*Z`@ zC-q*9%5>Q|n^x5*@^czhn*M3%rlqj+4gF2FqV!w!VwE#GOzIaC!orb&X7jRj2BW5ZQAf3`o7^%Fw=BxArbXK$A9QrQ_3s zeznqH!lIA2Sk!QHvv1|2HzL=jP9~-jdN@PuLf#4?#v?U4$Dz)m`!KcRj9iP9H`esz z?+1OR4E@VZ0ycuXGWcO_^||Xm$RX-f%B@5>OCj?c+$s(Vz@yXL>0_q_u zn1#4*E8xO4poS-gtr(AvrQhve-t|sk$%Of8(q*zAf}c-y zC3%Dj2T}4Jk2(_O0HFuC7<^ctSBux%7wNv|cYigsZ~m6qB2O;_50v5bL15<63Jw}K z0#u=y3QRsEZ9T%aqwU`4i6cH#DZURFZrJYQgaWCs=d$eT!r~}VgcLgXjiq}flTOF< zr;-T_?mY57Uw<1eAE={*y)pC22M&|Tvim?LjH<5m06ny!fBG|L*IXm@u~YwRsjuA{ zYC7cTBl?pty6G#pAUq%+ixN9R=Nj}f8>p4~e0v_gl7PgBr3EEpjaMw0nY7EC3pFUu ztXQ>9yvoH9(v1tTl6^Xyo1bH(f`n`7`@c;c0`-GX47YT%S67_Rz;^QYg8J~z53^S) zM_CN)2W>E#+aEJSN+v>f6hfks-BmVb5XFHWXfRPy}7dab7L-PQ<86;O{av6Li*h=Ep8s1 zz3}2a>BzgAl-R!6W9N0eU9S?5Dvvvey4N|anzF#FgOjUt%&eS;-`DpLLZF~4*3w;{ zbLz!GsYOQcuzK{=fsK(ef*XL3xIb(q|Q?Z=98(^1buHrvnY2FBK$Oxf}1x`2-tA|1bUp z5(mElS1jiGVNz3jPqCD&yj+c)UA4t(`f9;7#B#Ee;RpmmbNL4$_RC+_xUL7RsNmW+ z)uguPA6&w_pnRuas73`Wko3Vr`h_`yAFV5`I(hrtAVswJM3GtrgItNFRI%hhRqSmo^RMv>cs}>e7QZZy7QX#< zzx|klCHIJ(x9Rc?clUFj`m8D1AMnb0epgy#CpHqZVjxe?w++6s`?C zKnpjU3^?f&veW3eVZHvxNp00jo#*?)cla)wAG@@`9b_7Fy*Cm4^oMV z4-b339`*DcI;iA((;7YD)X36Mjya2;W*W%8c47LK5fb;t>aj_@O0pLqUl+^bwlhi& zrtf-v44ET;(`-`asi8&-G$5rP$&JaBbpu!Hs+auR629|T@tMHY;>m}XjetQ!<7zuY!DQqu6)pKab; z&~OM`h*SO>p|iCED&<9OC1!%Dj@4B$CzqO!5`!5I;(d_&3A+Nye=UY`17nkcxOY}X z*Lf*^f$x_lye@H`cF%L(*}L}8OTp^Lt#z_niL>4HoxL9%vJ3Qn!=4}4I*2LZ2UHJZ zy!c-{e%!xBfDMk5QiKdFG&hva3d`XyKSKy1y1XVLy_d_gwo2-7%kDNcYf=7h5eQ7v z46B727|SpRh<`Py@gLhHm;H}G7SQ)cg>_g71_|C6)z~%Ta!9yo7rRo;Gkr=)re*h0;q<@qreBd)HK`7lr zk`hE5|KasLH1b_}NOowmR077EM3 zN)D7(OZS85HmWd3Rd(_O<+4o{5D*Uo;#IeZRh5b>Um``srw_zt`Hr2&tM+=TejXcP zLl_W2^?Zb@gkvet3BG;WETX*~OJx<6ka>s2Q2_eRGBMAtRX3cu!O=k($@hpoQ!|O6mE_mP8FG7y#rm1C70uU-EN_ah}V!l7>Ea;k+=% z8+OYwV%>Yx!LY)Qk);K;u|@N zBQ*uJaMpK9CU14(Q)~%GQB>A7#x?Oi*oW=)&_~F9NOFkiVVZtBRe4DnP0VHv;xXVh zvjK?v%x$HMHD)oAmt5EdxOh1Q2BeSz={riR#JlKFtpWs>=8=d$q9k_jfzJMw&DyZh zL`uYUQE|yUhmyx)LF8u8{v}(+qZ72Ct9|PK2D62@)tM#OQ4ujks8&eZ(JsBFPWl;x zp+VZiHA!A{nn2}mE37u~^*JlnsM|w>MQnO$@LNO!M1L4%RQ}&K$e4!`!$LqI%=awC zSIqcC#~7>v7XH<<{ait(OY5YzpSH zup^}B@8)X1>_4{QrZBJk!W5Cxmt{O3|3PN_V~WfZJ@{F;W&NYcD}YD3u^I*|&N+KH z^qmppw{Z}(mHM7xP1F~~GaK6uJO5qmVW2bWmBGXKU6J1=tFzakm-nD ztwiT}sSCgAZ*@C&ooOMwmB)rRTw8m1%)9e`Y%vIVjxIU)-H_kmuGHa6wXXzOInRIj zKrnbz7D#kC#sX2oh~7dD?we}}ma$8l5pS&Ds0yW z-V;TP-k!q6Wt1YJ^h(pmHjqVT?yLz7$SpWi5ukax7}O{SMVBcaH}PS z8j#|nJuhZd4S6WTZWi~;c)Sgvl>N_qS5rN8V& zAD55=lk(Oh;=~;$MAgt{^0hK`+y$AQ)yyiW?g#j;19}iDE4UT)*;QS1Nu1Jes<9e? z%R$bJzGt|dh%6Al-HXahLS=VItp9E`F$dzM9FL|Yl|b9awplT}a(%^Fa=hiExpr)^ zY3v{O->B@bmkiuIS()`e76^VdNo;iTHljG4p5H@zhyG^n_Mzyp%$Z_#222|C;w%HN;N+ zZdaZWDS%Vzz<{bj>x{orX5aI{E3>=xv2r5D(pkC8xy%j;5r&#LP1T5bK$R0+Jf(`- z7b+gWr5{=+Rj{#MW8K0*pR0O@y;5Izp&+Q}+*s2e+!Fll=wW8KS1Ft3;lp5j=-#MP zx<^u>2l}vLMj!7z84WzjdQi+1x@Ne3vn}b!GxOEoqjq*QNEn}sV>i+6eyBTFeEyYw zS}41=wf1DPY4|Cfu-?R>=F)O`mCMndekJ}$Z%k}N>O=%9wO3ekWhZ1HZ8jq}2l}gK z=ZND1KyzOtJ!+?uzX^~Sjz{p z2Mk-;Og=IXF)y=hO>T!QOA7XW-Un}M+w{H+2x|$ip#n97ZB*8ME_T%p>R^cUPv1M0 zEe!+x>#?+#*4q(~0sSWBhr{^6wDl&WVNlx*^>_{-WmD8kFn0xI>2QjPFG^77*#$v$xYgdtp13-beLJl_!Z7gHlXF9TAR|M!V#1 zeF`zgC{usq!M58vrCo-6tJ)j$^3z!|_qwZm7T&<5Gq8E{R_8}00$JVUpN(Seik(vq zwGy`$Q;LD|&roAime4tOHAD4Yx5JE2w$m@URpNk7zVqx5*x?63qLA1rD|LglrFeF< zU{+7lS4$E-_U)MEgLffVmly7bA6-MoGw#-t6KQYxY!?JW#crT-c}bHB;ysE|>h;a_q|`M%dj=}yO$PzUg8 zGJN16F|#!K_9;IM0x)$*0&~Q2qL^2gM&)bqspMrrXO0%B+r2O#wFj|5bi^i-(=7if zm+`FpLv>y#Wnw^d)KCwd0ie#; zueqIk(Ql9p>#VUlSHbY3%OvW!aig~Hey`X)xV*h&x71|XD%0kDjkH6~(Ni89WK1`E zxaw?hD0*`8VLu<(u`egmQ@moOqGmPft-&r?DZU;Ke^6whprGuDcUD7!fss!ZSj zv0E-|yrmAhFBke3;~q#?02gzgvz@-fO)!(vZL4C^uDw$w$E-vGnjiym zl6S*it*HTCHo29?a|(UD{%{|Je|-QPP#?0p$D!}7TT1oU+re5W_Ks}_tzF50V&&BO zpM@C7jCj^UI2iTp47bjtSFbpcLWjKe9baIJRrPPIX(t(j>NURbaJwz`M^*x{X{Stu z{Zw&K4tKXWXnaS^p@nc&j)n%)tZF-fl+48Cq)oTSnlk4Z1BjsdQeAXKT#)(urmpp{ zIcHhsEGWdW0o-?X=G*j-y<+A|`R^TB{STafo>LY&lhu)OTuq4^8Vl0KnR3vHUx9a> z*<68}Z_^%umk2He*{`4&K&azQ-slaLSogjmmtPquS7e$pEk*XV?-4Ll8eyiK!p z4uO#W@a3h=*)!)K9k40YEKd6~6XZ8*IY9Sk1ih@jIKNN>3OAflAo!V=4OF+Wn}9?& zX3m<25*QyPkLgx6`m|hLn+6^5J}0*=UbD}0v;#lhs9CdhFCx#QG0ZZoh*}ZP9Gyf; z6|9#UU)g^|@S{~2D%(x3D1jzGi>uqr88Hmko|DNZvUk!T{oqae@7nhS=8E{|!q238 zbw$S^y}82rzwut$ie;)-MmlH(H5n#XeMvSg-HjZ+p0BMswHM{F6GOlI53B9z&kS(Q znVI3Br3Rs5j6?vUvx4>jW@ z@82|OF%|?D#ybV|*P;Y?fGAu*SQ_V)d*4;N3|MNWbY~9^WHyrQ(x(Xjf@2pZRt7E| zH+|TY<)SBZuf5`6R@eu1@E2Fbh22i)11*dztn#iBrN$?8r%d&^ReYhnk06Avt)jZE zAa+@mz=M!AA?Y0;nX28Uc(A`d)g;-X^O(|6fb5LmmRsiPCm&vjn5E1*mOs_tvP?R| zGh`FT9W*B_S7P3cIUK~ZcqCiDXmNRhnhQ*&#B`h$%@Nw&m{_kgEW6&xUgvsgi#*KS zaoxg4nxL^yH}#zrO_Ud+pW0;enAp(OA`95N*W9CUtPYB=GwiOce^~`OK4_qL2qDn@ z5Q`hW(w`8a40bpxg_a6IxT&Y9p0WSuNn&F5x3o={K*dH%7Z+SKVAj6YgSo>|+g8wd z3Hq_!KZ&FNa!1Vx-`C?&RY><4@TJ&TAk-~R}pY%+mh z?glc;jp1hb6+(w?$8nu|PK?FsMP+J1v<2w5KA<9LhA~P+MX-JK~E8HK3-3eZc3uSfh#cq$??6|)F zgm}FBy8+c|wWdV+BCSU3R^MhiUtM%|DM5#pT`%jTiJM_PqUaaHN_Z_W5dFQ6y96dX z{S`#@yezZi&uRXvE=WGfot@*O5)kpPt zT4v;rb^lb40ixZiefd`&`Wlv>l`BhI+1?@`Qeipgb}eq)s~q%KK%P=*L6EQ@pPm3t zs5Ci+vp$&9|5wOEY_y?jGWzQJv5fv)WNMX0!->UI4w%g1o=zvIYI~|N@&i87=%nEq zuy_39!IFzTkd_W1(!kj$w6}GUY52CqaH8)c8@J|rlU}i8se-i)eA%Fvjb(4MSYe-lyReKS92;;iL$1;9ZM49yG#5tw@3-(;^U8zWBL(DetHRWWWOt zr7Myu)T&osT8V=PA&gYXFjbPyP7Gt6gXY@DyR1Je54@!_n*OR3=nsqO{AT$%6HV)4 z^-KdqYIe7_KsppCBEP5GHn2JaE<^f8rXnD?QTJCN7%_RY#H{wsleHjJ_R*h)1JBt9BY})^T77ZXi z-)v;4Ml0c@EwZ7~+)7O1AWcU7Srti(HAQAV_m%kXqEn#k#D>aW^z^@sB$fdVoWS|GXls$ukh7p>rdefNl7_y6a#GM=6^_uA9+ISWuM_XiaJ zTN_*Ul~CbGv>Lr@;Vk;=KfjsTPVZg}YPGd-WbW2GT^uYbWy8aRni@BD$7iWbzH&NCtfEvcOW+jARimz&&?r@_h7 zfO(F7I_c4D>rs9<$!`CG4Um}K<^p=M07arz1~lD!@ygfJ4nZ)cwakbsym@W}6cGjt zVeR@RE+nDQj6c@>0vnt)@`2Vy;N}6eoA0Ynv$U0Z4STxGZEnQUa%F+1)cJI4mICT7 z$(prA`q!pu^zYxBv*jkaAJ)OuL1ouv{s-5?G^Ax`&aJ!*ch9QXJ1Zn+JQpMMN}rk^ zB_z-p?k<|fjEScvic9^Vb+kRF0rB}D+AQ*`nO&;l75Yjdvs>5LYqQINRu>u6=+_zFQaJ-(Jib}~Ik8qWdB*~jek>)S!5<->re zYCkL-cUEV9NkEWe(c}-6d(x=fbK#dOdZ58C-VZnNo;(Kc=r0Rc@ymvV^EmyXY6cor zL(ZFi`@!r~sJOuGU+-s37n4P|VF-eUp`d-6^w=$6Z>(Tbu|>oC;1@stU?zx0#X&^s zO@Ri!NJZZk8*#-I`3xa|-)QXALxZSKNq*2xsLTkr53C_-Vm1sO2**spfEQSImz>c` z#|yDOr`PL%K0Vrk3R+;R;^jgMe<5E4&xCM{&$=DOQSUiWsR;CE(ds(gd(Hp;`5a8! ziUVk9FfsX zeyw*qP|Hwn`EB)$AHVv&MGWo!x$(1xzuJXRc7mJVKwFU!n5VX#hbd{?0-ylG zL1ef>PIgK9j?PKOb)Lb9<#F47Ei>cD{1B<8<;v9vULhEdo#=U;@qil=?Vp{+jcX2z zp2es1)o5R_UQiEHy%?-o(yx5~3eb`OaJwS3l26#*POt5~CA&I9hnc)qsh^G|rtTDI z+I9n}fTx4UWsd{9B!?A{(mOt5ZHqE_Vzq%$mQgI;4lcWS0V$e@;hRm0I+duoSB#e; zo*QIWLcNt9fmuoQHhXNOcn$AjLyRGf#q@MkBY1*O1tuDvvfzOj_Q)8 z9*@|(WN>Tc>*YVh%eBIwq!pQvp7;?|H_;asBmcC*Qltlc(5t>4Kj<>)9K12zyoLe= zGA8v7f-=EeA-q+l53LD`XGQ0~i}(Cm*X#+<+$K~R4Zi9B;yjfOQnZgx?%>vHx7SD( zGsV>!WTN=eM!yiF@8o!~b4!zW-Ibq)TJ@U>SzU$PZqt{tco6M(yUlwj`Hx6f@rRZ% z=&jJ395u5egGMe!`0MDrL3p{*2ZxT?D{&nEbNI%#fCGy^SplqZ$K)#`fhe&e?S*8e zvJNq>U4GTOxwEMd#s=d~wkp_=R>QE-QHPVzF`jyW-*oY{kmp$`6tC4a1mT&MgF$wIGxovjhuU7 zTL8l<+OU~tO}JI}?YI3{EzXHS?#gJE@PLxRs>N1e<1S-mMoal_hhJ4<(1qwv|C~GV z`l@+&+1m)|$ELHS=wYALCv?Ekz^WOzOo7L_Gb?OSTGS6jNkdw`jm9yJ%$ET{B<~0s z&kgNsv@!KmGdz;eRELzD88%qf#`)c;dusaGnZ{kx)Gg_ju7VV)y$R3&51qg#y9NmF zzvUV(`cbxJNEmq6vjNDIh};s|9T1em8~M;_;x8pvNi5=szY+QD2p*gIq(ngq{jIe6 z_g6f*W^3Q8DRgFQlpvbJHL4@EeX|{t`OZ)FP**C5QAlx+D+?U#DQ^=Tpx9UmbnXBR zEnJWZK^qR4ossj#NzJq(!;y1><#x)I@;0nv|0ZFj!qv>>oulO}Xmg!PkAW(MqmHH} zq8{)tIGwtIzEdic(cft}K#S|Do%wh3ztl;e;}qQZ7E{;@^fVNF^FuErb4WT`POCma zTB(9&banJk)iS2K%%@a6(`BOo1vtrUV;3`$A}Bl8p)Mu+Iy+BtSt7A$dG-0}-A@V1 zAdQ3Xs3>v>_4K6w`(&;_{`R(_99&E7+JHzro#3SdW^4#lCx~Hqx$ZF=Y2HLUS?O%0 z(L@e>`qgvR&7Cu-ROHL`{&)ic%CDN+MTZva?}(LN5_#M0ipT6T(W*~1`ZzAmQDTvF z8~|K9ZQ%Y4Pme0KIdI%{L!KWo)JK2!=UfPvI6Mnv^J732|67%@~w@mkWw zko3u$Uq;`0CM5Qw{S%&_9biS6*WdFuIeBu!Ten>&Lx6L>j*J>R447EgeoNex9e$-z zZD*AnNhuMj^_)UbeWurMEyx0u>9*5rJbjJfBkU-;jo&qGB~I3wa~}%E1WRC@AL4dX z8KtbsFCp&F5wx#Sc5jrMcPlo5cFIa32o5m;;l4G*5q*B?*X1% zx&bV_5@X&L=(3$?O^livaxUk>tu(a{9v4(1H4^WgPHUegeGEG7?0;J4Gr!L4p3E!@ z@DmfX(lOVcW$1Kf(T5j_2PLiLjSq)SOyvPFCI1iU)-?4{cBc%w@qzQm@u`{rYzprs z4J0H{#tPXCC>5c$I5bjAH+eTK)LQ+E%?mqzaW zF!}PAwUzIA#PZtIqug)7pLc}kKfjy(G4`?k-@3Hmi_!I+lXjYvop4*7v-v?lLA`|a zvDTwXccAbVmm2$3+mEc1p(%70(eq%Hvbm=|A9OS^$Tl~mt=cF=*czJo?3A7Foh%0o zP!jFTEVih0oBBnHbgYlB!xT~7P@v-Iz1Yg}f>nk;YFIiGOmgV=dvHf;znkq7&@anKK-5lawN90NSXJnXZO!mpUjq!K0b)OI@mlFZMv=tuf zGu^edhJ6Me`N3~}`VSm`Y%qy~xFBBXa>gLZJ3-uKNNK;W!R6r3zqy#HRQLs0vBBD|P1gR+?)x!&k**XW1VurJ5CtS)AVC5I2oM6Kx4VPqecuD~{(g7v%=e!=bI%M%+&+^$d+oK? z`mE1dd+i?f>k-EsT!_5A-4oiLY?JKbK>27olm7F&&!%<iol#oh-4X_mX= zZH8CS?OWSpRvCH@&DZi;9x-&ZaNr9)&EEFf&q`J8D{jxB56XFl@L;c>LARQGZ0m2o z(Fv*8;q^1wxdT_4x|Dtz$DOeJl5a{Z9U_U^R?oU)E@XL;WX&HRvV9tenIW6^h|UOHUL zZxc{BQSao!gU^l@g;y`CEuF8z_DOy*wJq_a^yRV;O9&!18S^egyUPmnwn;MX6TsIS z^7f*+lG3efa!jA!G%KG~m{)api;)}5-9Pl|uRi4S4j-ro}3Xj)? z$fr=&cj^4t5o)oV$uy3XKXjVwPIn%_9T!|9ZM564nzG4OMQpX;@%VoAoQ0RchTpp@ zV%U92fZf46aAoh2)5~`4sa<&-yZ7|SO1$CNy>(9;4qM%z8Ymo*zE_2KzpN9CIvj@e zuZ*z_)zCGaul!c|T#8f1aD`uFci{E-6r;-K+w*@yDDvxQQw~U|beq{*U zgIUocC0DMS@O1j=+}j1*Hw?web_GXeCMH~x%zZmu6oJiW6mGH zKC;$Bh}o&5jmlkSHU;1;_-h*D3>^Q;*K*kv{&^eumxX^|ZZsDJlWqVrE@gX22Li5U zD(P?6s}IK>(~FFgJ7GjAm`3+6AxAxkgH^h$AB;(p)9hi2*M~igE0r zAGT4r0*&GY%Z(sEC}t{8v#?n5U7L@4x*T^MxuSCV9W-9`PyPtQ%=5rXxe$j2i%8#> z`ub+uMXxojq9#F)rqYa;C==-Riq8fSnrt55!j88jIj{T%Xoq;L=7dvaWQ)Ni!C6dp z-R2vaPiF#&{N=T3o*UmPyOv70S3n}JGE(=9pDF~hqITcz9miC+NR}IA^MR&J;|nxt z@Ux%t3gE}nG^c}>9J-bHxtI3noQlJWP1?-Ppy1jIy~OsT!A|m>+f;DDU$c(2Uq}tN z^?NJF8!*N4r)f!W%yUb5-CglMOT*DWtcdHZUehn0LoF*lf9jZut*N;ukHw?D0qjBZ zUn}pbej@FGTnk3AB2`DOr>-=k?6%o+Na2IU-m4|oUidO{hm#K0hAoB3)iUUZ1p`WtLyGf;utyoII4So-mesR9di+X#cj27% zcbZ~v;k!q*QG?$IAMyzBin;F#ZvUl{y*7c}A zCK4`B$Ble>PWKoly*^4qiaoEFZ%ho6|FZETC9kE1)%!s~=?Z?k^l__7wDXd0L7T?H zHH#)%Juh0>T(wk>-L0=w@Kamq`N;ciHm;hgD=w>eu<4US)Z4rEE`C*-`=idw!H3gL z57yVXU9)jQB4nz2$t;U*0)pj0*{u@VOxUPyV5eIhbZ&%>R0SA3|E1e=1%e@i0dJUaUXNhJ)g#I67?k?gLoj1J;Ae6=W+Z}iw z$56+VM9#?=SGE|xe`o<+OWs^h00=?kES+}FX{CzC!%*$Lmn=lj;_LI?Y4Zx=jfqx=K1T+B zaFLvH>N6Yiyz;>J&*--VH^=9`Hnfl@$FjI?oA_qEeS56Ewr1##7zQkPqxH;*@qE*j zX_32uzs47bq!2_lhK=bo7%6uzTIc_ut@bhx^k^dC)XOVhxC^@P+I_eCuKLF<-Q844 zGwNb(qXRWE*^u$!Z72IBxsx!{B)}~2qDnq)UL$r;d~iPTba1qF|R=pscMp3?s~A}ix#8b>p_l6)oy{a{*4EMcFlZx*~=YT zFn;tRTPa>NU|QEH{L|j{d#I28uY^eZ$^Mf#(CCl7si9&4&=-{Kh@{y>$#T!kP;?kB ztocGh{ZxZeJ0Z+VeBq#jdi8wWSg$s-UfOB&z|^QD?xX4J(YiB>@EgVWV=L;2=9rL( zt|Vj8YY+F8pB^R)?&m%yhE3Rfm}=k|HtN`ooJ<-;ntL z##|JC`9Vwbj9idxOZrNk0bfC8wJUlIIhPWr{@jo4tZY?)&8t8`9~b!U+e~nG5Wh1i z0o7_5s=JPFUFKdBpOi%NNTGL1Uu41AODumvTtm{Xquz+J6epbQZPmh$SQ}8bf4W@L zl=xDAflc}2oZCMK0n1xD+2KJujZmF@*UB#`!5mWw>!Hs9098^Z(IE~_jrIm_IiSpId3l!wB)(OB>eQLL98G$U_^1`>a1 z;uF$)+xRp2L}&g>k9@LolTwo4J>5AfJ^0;sCC`HR2DvX7A(?s=6)L5Gljy=GKma-D zV9qKW($lwo)T(0yQ7LKCXehn&amS%wD-Xn;`MBf#rD7%C$Mbh;4nD?wj3@no(p@kq zWFs5z$?f+XR?tX>k%?ZO=_}Ad0VLK_$HmEDW^@rO-+e|~1HY&g z*%38_+Z;Nqrst1ET2-uFk)-tcYtc>5VVe&;FY}0c_(FHl24(-{Z#Zk=ps(9>n-5;_ zqwsB&8#;#pxWUUSE!WtULrB}$=~U5;qjD5=`ziLv!jaQ^yHbs8>U!tRhbpvhgbleX z#j7Y@9e*3H7JK*Jbi~d-kJk6TdzrDFqdieD9A_jqovLT3Z$+kNDv_H+*|5@SI+rTjubXawMfn_q)UI{60f>Qs%Zw>08z z6)!T5wJPdAWk*@Myq*CIGwnDXp%}jg+-3Hn_wy3sQKXx!qnO?Kw`9X~x%w@%GXJ9n zW4CYz3(Nft2Y!>cpCG>e>c}*k1o3sWHUsJA^{G<-)MaYaqctWSSDHxgIDX;W;|7-g z)s-Gyb(~A;-|>tn(~Xa zy(*Sx(BN$~`=*5z`!VC3i(!k)tshDraMEAGSQCXy=E4L`Lwgz_Z&{WhH5;c&$4U{rGSc zWt0n*zmmpvoeGe&4(bl;+_k$+=G=(9=#W9~E|WX}2i^fT(NuU-xcllY+|Z>$Q$NDD zjXgn;swX5x9@jffCmWO=caVNnrp(tZ%im2?d>pb@An(9`ZD0!@Ihh)!HGUr8_7i59 zoQf=SbI+RXou)f_H>&Yl6+(BT{LSFTpP;%QY6lkB4;=3>YZX~S7SuRGz%jT}Nr&ol z<#_t?p~$Zzye+Fj_KRC9kOwPXO0TDOe>rORU?fTKqI?gdbaOSLIxrL+ul`07m6I@d z2cd)Fz_TIWB&`c-%f_C|S~{NXJ+wSfb*Y?LjO`I>_7+Z~k_LBNV8biwtqxQ)+2x;jGi)`h>?T#jMUGv|dy^r^YDTaUQbzX4t z2hk)!iVVO*hn_o|*VU#{p8s-iiloL^`lZ%rSk!;1d|~RRHp;L>Keb~l_1D_H_cuJu z*sAa*cdv>a$yX;j%Og@(s?$IguBB;-%_bxl)k%uZMX=5G^;~hRRTb?s_a04@i1?Ua zeO5%kB;1c~tt^$juU*+8{PM6uO9-l3PC@zX9ce`YtVH_eUfq-r4mjv!I<8nx47UlR{Pj8thP#Vx^#MNKLSaUXI_ZPoSqn<^-K zin1!vw!!cuXBP_&K~pZ<)}O3QX054pHn_7cNmU*csSg*TDP?276-s8rrxv`)cl9!^ z;7kb~2Y1*`rr9|$7G+_(bSRy4BecOunC__>vVmdUZOGnORY>A+IQ;R5E_KYqm%)Qk zo21$IY+r8!C8s`8d>%UtwPO6^UORsScFxAAMPVg!z2&!kqpN!%`<7owJoIpB=J{nlte!K^BsJTsi!gey1h7|0Vn?bWf+c(%p8IwNL_P7-9lPlAr75&vok(x1t)=Elc~O)WM`Gcuk&4=AkfD+hMmUGz7b0 zHMQF88e(Y-_wLDl`n4@Q)SV^gy$*F1PL9Q_%#!-D13pM!ZLcS-Nfzb5ua9OqUOV2O zd~%WP(&aZ2Ld^mrB@%txk~llp0Qo!GuK?V@zLusc>BSyMLs0TqQTN?2&i1KK%KZbo zpJp=)k3QPsUZWmu=RN@~(2n|@;CQI*Dc%$nR9PRK&_G;4K$JwIb{>QY&|>e=|bxqmUpGy(-|Jroi2XCVC{{;^kN3zlCr6*7|_{ENZ#5ReUtRQk2+|Q*xUI zm2a}N&Hn;rs2QHPGHTJ?sMMPZ0AE`YXyKOpbN)n0UFr6#g9Np3yGi!-E&T)VKQH8d zPFlnY_Hd)nNPkQW_AIVG9lX^>H5#?nO%=9_uu2X4k zekKY3s;ptd&aQQs_M6qYC>#@%s0MD=iB^Y;CN7CFwWTXMH;VpR3EiW?GFGbm^TU^2 z-BvB8{anR~KIYO7;jCWr^}?9riP;(`d;x4}?;d>E$d~?xWa6Tw8Oy5=^8{0G=t?JJ zjWGOy)ViVMakCrYpZdRN8$%~wClZdzO_wcb-?J@Heup(`O8-xC?`Ku0<(i?6X3x9% zMHSiud!UM0inp46Fwm6O3bNj<_RGWfsT3u?uL(|g(lCUShtz;Pj932VB+SsNT?T8~ z*}T52oi@Uteh)x-Nu1XTOGbp)>wrOC^*)(0nG_k25-h-8QCAk4I&$-LKmxa7n zySMM~yU%1Pb+XQGE%u1zR8;KYtLW?2Fu9^B@kzxkTSp^}leBm>8*_%DH(eZXII2=K6To}eT^wR71{@T}7j@X#6`J)02Dd{~reYvgHxj&`JBimEt$Q-uBkDO#v zjH}H)y8I|Q{lrHUeMq`=hqL@h5X3=(GT53;qjTkN{L1~gKgpE6p-a5=NVtR>SI2V2 z&zBw^z`6&!zwIR_TWNTj*BZ*7KQ&dXQA;bB9v~pv-Td9{kUmfMk=Cf-jFXyL>`;yYz-!;dJHe-JYnUV#5%x~*aX#Ujv;2N5JN;8UmDp3oyeLV|t^-SA z+*+^S?K^dS!TD5+tkgeP2fohVRVg_p0Tkz%h#&BEr;afTinrUQ{b5l%9k(*^(=zNE z?1H-+s84VIp*n*tmMRoTS94+*iE8sAOCFP9{XR~VSm zG)$j#bOAC*XVIvZsSvk~hz)ru0ruhX7wwestI;O~`)ZjOu5}{Fe`@44OkpvwiFsPO z3da%qYU)czRzC`p<5|sHgFVX2*?CL<*|NmO4P8ja8TqUG))oKMx&QS--??2uu;Cx1 zEsY~^Q(O%fp{C;GAgRv5$aI zFRwcI;g*-Lm4NX|AOxEHzQOk~Ms;yG@eq;N;fDaX&tmfgH}pcV(0u#(h7*Ht0ApLlEs;7a9>Vb(dN zfsH8_uf0bF*gv|caNn)ct2N4QyPLDPYNufL!ypfIiCzOVH~DuCCATG-fgh@e>{c?l z-lU^*wW*F1uNl45uWdrKMbfzm(^{Tdn1oK6mu<@bg_NM$nQhK+G$+qPyuXU{gV`@| zfmiv;W%(Z*;P09?6I}OFKB4&u`Hs{`GIrt@6to@0 z$P5So!ukr((+%&`A3rJBGF?5EguH!|m@1n1inZaI^1}vhB_55r$GXBreecBgomWlKoS`4$IA!vg!{28xO>$F`3(S$rLQTsw4|Z60y|WXBqnspI>>UA_f;)I5*E zAugn7SCr&YT%2Zf6RqKT{imx+g?k2i@4cbZWxXV2vD(d;=N4{{zFe%ZR84u(z)SKG zUQs=Vn2_)n_OjY)k~{QSe?}vwb>Ntjd}V{ga|$ct*hiG$%~myMiqF4O4{!1@?MhBa zux||4jZSVDnlk^0T3e)ZRm)vv6Ti<;u3y$BNM?!7sC@Mm`Y9Z+9$AEr-)<^6+aK}W zIrqL6gum`53%zYE*AY|0-I_lX%~}tTsNYjeWdQ2zp-lM+i~T6(Rs?dg(ou!)<0rq6 z4=Our`GmhvH)xrQHt{fFC%30s+ZN^xJ@;Erm-VCpUznky;OL9n8g#ZOV>|XVUxDB> zag?3C>|7MD9v@^Jeb5+ZH1KRvqc*qm&Gq+cP9c8)6l{K4aq8;laK&1vLWk1h!Cnf~ zLJq}d8cxQ!)z_VrH`fM^*hs!#OJug*qs}1Z)|$WNcU!K5`_95W!XQcDx6pW^1m+;g zP>k+eRwLnV8E&FIuid&2?C$LPRFP-th@iLbupeZ^=UUIf1hGgKs@^5e`(ze^N65DK|UE<2dLaRBv9a+)7>ugum1ZxugZ0Vkb<|5t|&b4 zY26*=*I`fM#y;FVZ#c2pL2{*;E{ss_C9d^SsJ#J+fC10C6pt#+x6J!=QwOZy1Oe#y zaDxF>wBKKmm*xG&0{-Mws`I03eOQ!DtjC2u2QBxF{aYY95X_2-UZI|6_QHO}@72ar z3XdXYGMAtnNnhy{^>kZQV6zt8X5jkqkZP|RIBh)Vc!|>LqeR&jOHQ8Qq*uRS!S$siv=ReurXp6I9^@&hMQ5k2NYp{JQ8`XXUB83<=F4OX|uCSy`aI7 z?)l?-Dp8&1nx*()w2<8`J&cZ8iI8Fm&VrPd`z5DM$E{vYKK)$$0mws48`|7Zb z_pUZ*b>Nnu!V_uP%P%0!E==y^w&u}q9ICf~UfUX=*!nL87O7NZm6nx`b1kyJUwL%t zt_{UDuY}lC6R&FD$eT34j4BK3lH_sI9_$=^`GN+}cCuc5KHEcMdd=gSE4Qgi%T0wp z6mcgs%~jy{-GpDKUO|mjr9{T6sCAPY7g#vm36W#0+(y2Vz-sXO5 zId-~fA}L9*)Kk<@C8sM41I`~W6>s#;OB@{How9^XV6_GN>=!gNC@kVXT}k=4a!j$h zw~6#AVLPu_`KspEeqrq5FO@s~wzs`J?Lgax4Qq-zsv(Uu3AS6J4^o*W7O8 z?!Ycv#8?1)4fk66DGBL0u9Z;7wJSB zRZpCZaDGoO#FczoMH~2{R(T&u1$Jaqb{8FQTFj-=uh&FjMKpt(BG60=dG~H8i924! zOnhquksV70oiXCB8~$B>nd5D*z>H)H3T?mHgfpZ=ah$Bz?$9fnDz)Ed2?5QxGm zNOuZb`^iC%6Cy>UeTRGwRp)t-@1GB)GYN|G7q7IBhRDhP&-@Z|yjOmI*cKk-(XwR_ z@ZY{YPP+?sdS1QcwZ#kq=@`C!$jL!<;fjUepH%n#x%&tNq6mIfgv?h0e_-`C#)3cO zkVhPLLJC@RhrwSK1pav%34ttIEBle#cVx{31Y!@7rO3kNMtgb^bsLgj`bVCB^mO<4 zt*g{;CBV!qQF7E~Ue=&H$~hJ`5o5Oe%eFl%hizk~KWG-|thDCQ%a*5)H#wNij>7oZCd!DaX*fedPWzYlo%0W(1~mn#z+( zsM0DwM7JOzHIureI-J$VjNl_~O9e>L#IL%zNKlvk{#I^_tjXYWi7AE^R|Y+v%v@FE zdcMZNI&|$E6?ZySs~W9oXLV!m>_rdQ5608)wX6N(9l*x0IvX>XnLTmHIqKrcW`6c* zn<&m`99CpgDb{pO9_aLgSrD4jWDu&9x<^bWW)m@510K@%&)T~q!~%8+NT#_Q@f-J} zd6YpZSv!jSsP(0vJO5(fwMPx?*+wfNQJgT{%jKvbAQ>X$*<0l&y4IUHv4#2J}Mb_yQvJ(FY@?$p74l2 zXmB*mRdUS1k)7ml0MUCilltnLr*+vB+udcv%m1QsZ&j(tW#$aj?)nT}za&+4% zgRPZaXs0BnKK-(m{L7yzJlAR%8t&E#uX!A7Ia+UO_!L$B;+!wC_)&jH_go^jGcx^`AC>_%vRGg zkFE`gW$QmjK&q9q-2O3VU{Gr-=kt_mRrOvm@luRrE%uDfwk&bMv4F7tpOR$G(cAwt zxHlJ0>&V?4hqKE;lMmO11F%8_b^fUWgnM;(@u#ECe2hHksgJ>M*3DL8pH;m&5NO!L z%ltiQ0Zvk8iCF3=TF(+^TBTqAr$Bg~^3H9+G-e6zY_`TXpZTJ9*0-o0wNMC!dT7x< z9|VfhFH;o$uJh4z#>HSf9J_1tf7VszG-B>+U8D#a)p^&HJJUD3>xo)tkCaF^Bhf{g zKBag5IYom5z5C7tWHg5f4!m_YU<+Q6PWn5eROLXgh0;ZH_8JsiLfkTTOWSnzc*Tuq z9ms!sJZA882ASu4p_-Ttmwrxbp>-zhrhP-T#p9 zKPKnu(yM5fZAyY89{pK}h!nRmat35?hqy#_BrQI5r?43BHpfH8m@f`g=v7g>w`$2O z&l$sA3dYg%#+?77Ofng?*guZY@-gdg)9piGrqaDVWeK0ujE8vf7$O^Y`YfTVQi!Zh zK3WLdYQ$EF_7I)B!5`c-OC`4`I!#PP7_8`Eq{sO{{Ae{V%aaN0?|2abze!6MSF`;F z%YU>D3JIVcwlJE#c@_g{%CBBCTXo7012absKh``;4;AO{?(MKs=uPMr#BGpuWp)h+ zMR9w=w2&bBW*U*6Eprr`*6_}aT%W*x)G~D!37S<4J@D?qyz=nIn6CPAk>1zM?!lgA zWt1*zIvNy)6H-l6Q&&i*+nfoUG3|Md)wVgFx64`8=I)jYXQWztd;T_~GFFP$`}ns( z45)jk-3L!5Hw;UKQpi%pT)#gR?M}zwrry!R;8L#OF-e_tN*XCHai#i=x!EZAt933j zB{|4?AOwrwCWKY4&$b{ zH!ELggjH^$W9ucOU8Rj5vc>DNjN_V9j+S(9;)8k|n9!{q(IQPLZPiU#+u)stpDs_p z4kO}HC1p-2k_&f^TKeP$AyH`x?Yd6}|2PQWKeL>H`{kPt`*-U~$GF_BqWXL)XN75k z-l`!cqh2hgP^Aej_@kGFJtphyd&A{z;Zb&6)Qlt9e!mRw&tx|Si%arT30JE=6WGL* zDZHzJ|ClMsc}(UxsLP-Z*v4N}jz_SlocEdNA3%!H68aObRo%j3#^};AM#FQ7W!7_? zzi5n!4YetidZ@KNO6UokZSWv58y8l{1@2k@WA=8bg)IWZEe^!a+0WN5otIJ_zi}LS z?}yqKK7P40#eA|EzHV#f8cm`oMK^iu^XJQiSEnTf11W9z{vy9IQ&!5+sf#NlmEC>M z@%fTgY6ti!BLtVefLS&Fx+Iz&Zi80gOKsbLhDlN@V7tZ;uQvT&C5I&!oiIpVI!*dn zi%>|m2GSa{uxouQEhkHA0=lV8v6x!HCT9^9q>fBwc?Yc_ekag5B$4ZG5VBL2R!&J> zfnYF$(Iv;-3p~o$!KVYu*;gthmEe|~VD#INvUx5-!o07R__dVR)h%|6dCl-(3H9X^ zkDd)pjdPU%uc5{AqeiW(Jy9rbF7P?dd7Sy9S2g9ICK4E>iZo#2P9l%Q%^uHq2Znt> zSCXvRjhm1R*7Ou&b%KN@+@L=`?rbN1nITznUQ81fw{?7=5_=5qCAry4rLv zuKA1|wo0)_PNvsUb)|@!)0iI0rEYVnk;zl`q+;(`K@Fu()V_G zriY2D>%A%I-b~O+g5EsVrwvIb?Ga7+!lmWh1JU_^`9NI%uQW$(*&y z-f`G+F|%1J!9!!m=n}UkVOPy3vfe8qrMu=cA-v3bKOvj~)V-o~+5=Q85_kfY*s(_t ze`fPIro}tLr#e*=?E4Oc(9!2NJ`7wF!$m9A<~T44g_|9&JlZE6ze0OHsc|(MBe*pD zjzyvJIYR6&&Baz5V=#71IyZ}oRQ2dc;LmexX(t?!*yR~D&vAo1fAQuz-|AGu_6#7KsDH=?I7>b| zioO~4n(##sR**i0A9!ZMW>Rp%mhi6dYrO-&-g!dD?`)Son~>c1K$Ei`LSkqOrl%s{ zcJ-5-N*E$L{&X}23a8PdV8 zVZxFrjjJu?yM{#DrGn9SB+h5W`MS=YOduR8l#VAyNuc8gfGuU*_ZJ4^+8F8i_(}$-^X`&%%xCuZL}24-B{^EvMy$V(QN zoLB&qCQmK5aSpC5U$l++YwTT1?+>bI5K35IuA92n=sW?&A8lUf($e(VfP*#+dk$O8 z6skl+tE$>`GY7l3fm_LxYD=(4i7?D2wdwcvnE?30;aw22J6(aQ%OB)H$Ia!O5-PKy z+wm=UJGL+C@|1grxWhNz9L--U3$Env8PAz>w+v!)4MDfrS&p)I zp}fJUHpHc+@!l?016&eR*)`D$u}Fxc&(Q z>z+bM0)lUS$ECVI+Rq|_MrQq($M5*YX~)V9kHgZuBwap? zLb41+Y;PFshx$kfrg+y-fSW0MY{r~ylEGnDVJWq^2}e}Uq=tXRXcBqlc(N_r{Q>%d zJ+MB@4pdD=!l{1Q4Hw$>bOFyvDJccfK+eKxkze;zB?*qR8)3J-X;VH>LP8KsGxBk9 zKD7scB1N^sNQn{5G!j!4fm!#3TtVTXM)HqvR|V^~`AFGM0%YJ!$|!?8jbKS6eZ-gVz# zN^a)h7id6KLTY`|;;%L@7?JF$hObyVpZ45r=d>wm_|HcYVZ;lVM9-Oa$)~A|Bzci_ z4;ZUO)1py6nf;uOEzI7YGXv)U+AYgZBCvY^`o)r&=>vj5Uu-4DPfF&27p;H^9Mz;{ zQkiWx#RMR$)M`2rQR^sw`%pKyDZ8AtY0RI7z)DMLF;e_Wy^6w-xpI9pAINW=a+BE{ ztrmju3A;$n97e@wby5GGYT`q6;M|5T5FYUc4a5gcK7TTgU+dr%6{O7o09fSKu(`pn z@mJ?hkG{>h{ol8Vkd>buu`XhO=fIDD>cEA4$U|v$tvt|x01=AyiF)y22|{cdguL*R zdgS!)g-l%YEn{kM0@?u191f7CGH0-GIR-gxU~}r|c09QEZqcj8OsYhGYBdQU6!B(j zgH=QHgu!nez64v`@&Q!A5dE%c%_%!Iu_)rwqvJx~L;zfv^e6TC_>h`;{&+I5f+(Aq z(+)2h-0{8pB` zY9n-wa^?hV%(Y-Viq-XKHUiAJS$ofjWw(nGyey@xEaS#n`Z>ZCpx9-)e^JFb_z0z1 zumH~`oW52{3Nlzmcm%LY&;$*azCjV7ko^s0J;Z zpP_U?2nuZ&_nEQfftz9mA3_~UVUi^M{0*ry2wDP8{-(YPiz25>WYmhYAuuREsiR?U zKvxgnNgI4nQLOf(AZ+YaROA$pOvo6P>BP-M z>5BrmjK+!gZPISwBt&~xlcDQV!bfn3VQmO=<3;Rj&lspA59O#v`xp58Ha?-2nZlO4 zh^of02nkn;)AoZG?zS7AilL3^JSA|Hf+ZVQuM4!3$Jq_D9Sacx zmFNJhW1{qGF<3Iz2`tzk9iZP6!iAX1sPd-+EsTjnKy1P%JiBV#;3hDMi-`2R4%_kp zn>Lm}x|#KCa+zI=qob5u#>pNbEjsy`@$RhYY#G`2ev-LNmcse)*+!~&oy@~7*yBIT z@u{fD zLdpteb`3s722>J_zcKE+<3q$3Td?I}wj+FMxC=Z56mz;4P%SemDOG_#I|?f$)fIu{ z`YJ!_U|WWey$S&|Lkkr)Zqq1tF{4=;BCeXoA0OwX^4}FR>J6TKXQi|h+OF_k|dSI z6-0(cQiF&4(K@B@*;M1oz%&^`2X}=S&sN3295CL!KDT}j*toQC8?*Okj!2fP7_Axz z-vrZeY5DAfIMEqwIWEz~->v$tds`OArT2)tiA$jLXRr-qb4ZGy`7VQ6>}tGd=JRTe zR)5oNmgvz3!=cL6FkbUvra43q)=$PD`_kLs;^qpYthygEr`C*VFt)C#Hz#USQCW|O zdo+n0eLTi45+oarp?zUvE%gEpk5noS6SWlp4AG`J#HUt}JfOC*{f`sz4ajtrB++YP%;|0d!4zw`+F%_kW%`(E+$TTPmV^ zr#0{JZE-;EOvxoYB0T-2Hobw1!HkY*^U38GtzF~$QG&Xx2^E<`+;y@TLP3kn(g^Z1gLfvDeXA}Pt;fFlU%XjHdoE2C1K^_T|}>HvSb|A_S* z8*@!&dw#`wU7R!iLS}n5>>HbFdzMuc`#?exP2Hi?mE>BF#@L{ayjnZ+^x5 zMyslSFuHR_qM`HBc6C<3t~Y-VkeS{fWEr=wk)IWsW>}*YRviT!>ZyU^-6qWQ%v#Jx zWzkBe_=R6oR6`z_&Lh%maa>1up+#2c1yq8NUm%1Ah%bdTmB9-)E?8_;V^1Vz5pAha z=uSpM%geDa;gcXzTLCeO!FnP-h^9i8FIYQU_wwv{dV*>Gw}+t|m1uBK zm$;~nK`I1n+j3~;uJ5{u_0HLLZuMVxg*!fD)FYJZB-NZ0|Jirw=?Xb*G0K=hTvXX2)ep8`meZH}a zgBS)YnE50zI`pD2^#@lqnsC0_X|{3)+y$1fe8@9x;T-WC0FnHEd%QNmR-qRTx|S?U z8T8!dki#mOvbZ`JzAd1o0d$K`b$^c&hS?EX{!QlKbeV%+vEXJ!!k-}9i7e8A0^3KW zVuWL@RKQQ0^fjVKIpAhS6E@jh$PnoOMVMkp%v-z<8T}E0(vwm|*2y>`Tx=5peE9R* z_4)7yterAv>QoXD^z=&MWW%vFpY#wkOpPyA2GXwB5j+)vFpm947@k#<5V2pkSUsT% z109dV{Qn4}HUXG`Wse^IEselEF_O5?PgqN<_|(h(QY=)LSNGO@V6;Zd8FzF8w?3+i z!`I^NqJQV8^Prss5K)DMcBojB9B*j#jl2^%k9t~7}v+%54>Xj%s^8k)8*pnf>BrOrxO2pRP=)qk`iHi(0jJ_Oul3D!?W&$T+1u+f?-OfC(G#5uwA8k{93NrvP7Et?VAm0;!JvU?Z0~gAR(OqD9ZI}b6xZDV25x1-y zBNT!FL#wPFsIxbHqav+sa$!}Lck&~;3WlOSRr!LPOF2%^PtwQN+e*;bZCOF?mRUGf zIX*GW=7ku?`8#|b%~$_DE3OF9tsN$$guj=%cl#_G{ed3|r9vuRKZu+&k9e8Mr^WgV z%^80U=I45RzwI1MP!AxyO7sfU%Z%$B!{2OMc8NW5u@1DM685e6Zh%@SExn1K9c1ZH zP4g9Xfs2TmZVGX9yYZtnh*(>@geVkUY*|^NNwgAR(j!aJg?{2PDvK?8=}5y#{EcQ( zI#L}dT^ep^8$bjq=!(V74jf~WRs&UYINPycw%M{O04vqNCRxuO=B)=aLH%(dbB^<( z$+(pN_u>CfEVDHH|7vZ)i`L_YuKhN^yp{5@^W3SSI?^#vky9oGb<}QsvP8;lj~Z0v zC)qtPAe_4>E`y5!<61~VRFm*y1}7gkBp$}D80KAY zEyb~_3jkYCTe%RVRx0&jbMpYoGA<30@_LRvah2H_lA%xcoNWCX6#m)`fO7W9tSK0Vh3x$m2nJ9pbhvSa<(M*E|7h8kP}*lQCr+VrAmu<{)#ynNzgO$mp_IF@GZ3IDg1@xvA zR2939l;i7D+3nfF?mFtT`Mi-5410|EfN3Zlje) zUmE}Z6cEDNgtgp{wKZgN26<8f{*Cm+Hy)!9pY_6|Nm*TgQ&8+M)f{4s%wk=k zVp9P|bq4*SX zUxaw3G-nP`vN9dX;5xkS=0(~D*UwF%$_j`;SGqaWdZo<$7C5w2%o&#hd+y)nqqlutT4{F$ zjL5Xk2DLhIfXYtuOXT)Pd$6@3j$T*qYjsB9n_1bBXzb{KhzVA{KSo7Xi{-Ekyo{j% zq-QR4kWtPJhdPw!tZxaBn}Z$X{hXAy!7i|o>~56U{iZ--7R5A*vnJULQry=kAoy9J z1W1XWPgtX2uf35R0D-Vsa%NMn8fFY6Bu3q^7eL4Q<8u>%&p?=I^{Vcy*&K6IC(AaR zb$$1HmHy4TIPC{7;WQGsTxI5^E8OIpSrRf;Qg)ySCT-TB#--LftsFw>gh@aQ#9DA5 zNc&@)mT3y_n-65P8GFff2GBA$gLh#bd^vmGD+2|<^kqo4Y~4A_3$C1?fbnYR6QzH@ z#cvfKUKFlWJ8WQR_?s{GG5nUn1_Vwn9&1zs>u=ry2#oQ4r$cHIxPu-^ASaZNlpx!N z-t!Z(?a=T2m@JzRiKEv{fM|6J*bB9Fr3$lO$qFvpYRre)fbROIe8A(X(XoxAbKrT4 zGZ4;y9=Fnt8GHu4iGxv^C4IixWI>v5D0vl*{1D<#5?^2_i5MuTS0JtYKL z+{*jLH?^K&rFuPO+wI|3wSRsyV7*0(D1}~8;v zu(A77wp7T)mTd1|qB)~oOQf^++aOR{1ePp59X+4wJIVPE;33lp#eOw#jbEQJ%cLh&I zS#5tPaeaE7EsQdy5HzpLW>jGEdvxkoXaE+4{U z^#pad>)p#`o7@EzcranM|B8?Hfy7^%d^2xdYREdk zE=s_$Z~=gQvZ}1ZL12F zm{L1oIA`VaWeD=WJsxABAxKcgtO<0Izwfx+D@(WScKR;CXDyGfFXBpM{9V1Hm&5$D zU0oHhRIzoNjKymFZu4 zgx6K-LqKH#+xkfcFZ*OBH#IY9@iqW1=?reOhT1(7;9w_ifaz4n{F+lMALs%=c}2cM zNAd37Be|sEgP?>(0v!6Ryel;v|FP=Y`zUSq?=fMd+laAzrR`lKvWHW&p zg>Hnk3mAA*c$fm(tOJ}<>z`davo z0{A;WYFsWTHIS`eMh=il2JNuvQ;L<`@3wp?2khXD1(r*R}274v8 z{_$JDMsI_V`>j6>UbMVNd;tdc|9rF^vZ388Kpe{CBGM(!kB~t=Ii^F^Y;H|OQ?Nu^q8Xh>DDl?78Wv21J z)(ipD7^+n`yOKA?MP}Law`a`VZ4?uL{}5rUkw*(qL%Qu%VN8?N38@J{@ic!{>=J+z zDk-TLKHThyCb%t&$u z$A_4;*^Q&E(9D;D1BWH;pa=xqn|G}joE{gp`qBm`NHeo}Za%}3>23n+rhLCEX7;*e zWCK$`5BnPbaP~NOT&ecM`Ox3_$bTC%x>3ZN^&R5j6mD$TmOBqMqD7s-_-x^ z;miZQ>U{~LjD9^*ZCP?BNW25(3Sm^QgHiGfKgZ8AKW3pKHjeDC*ge=5u4CefUpYz1 z30o+YLWj-;^yYTn3lX(TGM4O>!zfw?r3?y?%=Dj|`n4hl{oR`jOTmw+e=#N+DN za4+m_(v92d^Us7VtRuDQ+|+fZwa3i2PtFBi9yE-I61blm*X$~M`HV}aW=wgs)V1pK ziNzb=9k8jhz1RH9>hsvI;d4qy$DD}~%40j?S?*6E#@>qbJwWuJVEU;#i+^=@V#_n3 zMl*BhH_XU!#@8sa>}Q9c;eHxp7fDQ`d#5LT+Hu!4#y3hTL`1w{evPS};Wzg(Xoz<7 ze_Jh*e>0i>@AZOPGzC|Q-m3a*y9K3=ptqAa%R%FI=s3ev#!fdTlD32gt&u%!fS;E1 z^3&Y)iN@6DkMFKc+|EnGIwKh{a6c-41D_6Y~ zA{F&+mdn4c_f)# zzo^Ke<2dIAs!36dxjP%v)R9AJ&eIYT4ms6aSH7%VH5(wqr^OPixlF7sqdo>ZfQ!amtIrdL1`xQ!S+Xkede-8A{+dg9}HpCoU2 znqDt5lMX6=zjbU2^mH`Knf!mG!h0hg^uNG~);=BU36<8Yt)9yLG0rZNIIIE2je#>B z92&TL%4v%M>7wKHaSiUYT(sm5Zj2uShfh!>`L@Ig5%W-|578^K*^1S%dmsG4`Zb+@ zSp($Nv2TJgU>8))c2GS|;N7zW3{G56!SqlcjMv&U2xX;6ERW0muy1}`UH}rf=w+BG zy5wuJ2Vz#fN~j4C&YnGXdTJVJEum2wz-LPgW|-m;;(?TqOH4?LKBnU1$b?=a!)%|- z5h(pw7f-o=3$5LXxX%K}OPhuTgdf&Q%`m;T^#Q2{3W-oP9;>Ihfmym6Ke60%QzFXb z);9VPO>u*ZGXb zmk@|AJR2p?8X>DIdEn4nEueNTP+Yva>OgKxUa~$aJxADhu8Fbop6Wt8pGhMl?>|;p z$)1~R9KuZM0RmJ!JSI`w?+~YEwjd3tudxj8uVBzgg}~NT9J4UW9dT>qJXww>4Lnc^ zk}9BVONN>V6FY{jG6f#0MuT_$*OrM6uwpSh`|B`9pD=v^`6BG70)f^t^?iagaD=Upa>!`#*tp}6cLeEa|5>lr0nmkS2 zeqS7ED)RKkrI}tB3LOkrW!i4SKf#B?`|Ic-&Mnm$k39Xf~m7f3lX12u_dtlMAyRq?`^;XADf>3y>|0=6!bqYnX$9BgjS)mIGA{{C2 zogYC*;yG&1GRje5N~*v3DOA8|52g&P^tWM)z3a zo>NVkyb1@rj{tg-T&1FhepRJZ5!!2u7NDD0RypaWVl0K8QP{bLv5fWZF{vTG#w>#qj9Ls zDRzvW1gnH#Y6k^h`0+WQXoX?UWEOM*j!A6o!|NFJi=L#z3zUd~CGPtshl4A7ug zk|ERSj(ZA~5G4dt_npoyoVwFY?=&WtRSV*?V`niH%LpLcdl^F^Y=8-27r2I7 z!R%@1^Q1{Q|1R=gN?JabWvmG$W@{39*O^$OLOQt6kHLjX{rCzR z*&7F~9eA@&Fq2?m`npZfp|*sC*ge18p=>?dtY_!T!JvCYDk)!dgDj*|1%ZP7UhUsg z1wTRu+7+imPaq#dY3izw!`>z^#VQyd00u!nehq?a7yCrUysL3G8S^;ZD%}jLErpd` z)W@SDrE?Cjsws^1d^!#9ZB8Tgv(l3fviWZv=rx@!syT1;%QX%QsAiY|u=n84vMpjr zHX#Iu0a_$tXhSdV5ze=fAZ_sR&I;u0mxL(l`jd>nkI`>FP}jx_ZZ*Tk2+0splS%El z&l?alZfc_;*&sb3$si;%4pTmDLVL6U8ok1)a>V@@)%aR=0mMeJNl%)TuGR7`Y z%=ghpA575E=Zb2~2cZk12?y;8PqhMzmon(ovWxAKjvDjbt8@XLl~y$@a_G9-P5<&( ztU`2~rsV3}#Ra2M^>KvjYcDsIMftO3F@pAu@HhmU>+B&Aw24ffjiBWS8B9e9XX--S z1?z@*F?A8*K|QT@C|x zzn}zH0Ry&*OICLVZ0V);nfjFDtvR~K^ZXz}K)yyv@~tW(Lw6>4zvg4Sdi}zA3wuP2 zT_Cp8x1LT%@mm#_yOGaN%{=(RaRWcE*_$rOprvu|i(0j0<-l#1LKdjV0d}uzgjc`C zd0Etj-dPoRqp?d}foK^XqzT+^GXixX`@LyNPP8x68$z#psc{B7=pBR8vd1LBWo`TJW%*&V2K z-nlp&IN84@x{uyKyz(2Lx_x@x~yz^sU?G;K4YloFD}f%*7qA3x6!`g|a_+IejZ zaVFHqqw7A=x1B>3TjBh}-g3;Fd)P99KoCe~^#9iGEAwM@_g@340Sjr%H9FZS@i-{* zf^$#DTOlJ2Dk*wD8@4Kx@jgfJANzH)MT7U}V)dgcUjGz+h3#}h-g+XhaHGJX{_X}! za5>T*p5`iJc!5MJMJ%etHX%u;E~;0zWpLF2eV^&7nB~wU0d;Y_Of%*di(1d+mMmy2 zJe|IWO!VQ_>XM7nN!yI^!`g0D4JTYzkiZiI$J_1Die(enG*tF40OX6PG9`HL{90+0 z7-=pRgI*6Ors~idZay!A_nDv-OA$^yo|{Hjm4xI=($2>25X2Dd(=FDaQ?p-E`g%|YcGfBKZU#6 zc6!<5bZk8LYWj;O_dlO|yyg;?{_X;o4JaZ@@8av!(N*RZF#S2GM_%G(u0 zlg1F$t5SmEfLh_)GAbCm26~BDg{eq13>_<=!3&|+krFd0>bOn)7Se%_GiMameNxYo zZzETle7$n6!(x&{nDde|qsWyD{LBayYE)m<)Ubx)y3EI!J?2nyfSj!Jylxgg*F%CW zaXkN@MF}{T%A2mPe}S_;*-eHmrt2isc3tIl-S|$3`LZ~cWiL2gnF*!877bE>YE+fh zVu+atNuRv6?+07ophtDslv7i>sO6}!C1j}qqUVwk(NA*G)Hnn5K|1T*59G!R<9LA@ zTv9J}Omfei(+CXUjNaA_(Z1j0A>oT28KkREwfU-^8DNe*Y_53WpwQ-@-Dva_Nj@9R z=x?1AGtM(#Jn7^|Td72?AHT`j%Kj8kc|dou6l$^1ks+EE@=kptgs7tEfX=kg8gyQ{*}W zf0g|Udtn_~EVW)MhAC!p@N4y?k-;Y#%}$^`O=x{&x_)&@yr9x@WZ|r03LzN@Jp`af zlTyXnC>|9MKI*KY({-lEbm=_({~(0{i1PoUr0QRN&!MC_fAI0P)q%wRo-NQCi|I1e zk%`%q@GfN)t2xHpF_2q>jp3%2ZibMK5y)ehv_3XEdC{=ZCSR^OJdd$}`>tH;%1Q5c zQWpsb3v#6DWm2!km9f4`2qz$=sWfzMTy)MebEO6a%qn^9El}VYjL{hUmNtGsLYu?H_D7^+;x*XPHSRawwIxI>F#c7ah z|E~$fS{m0AW9Q+|PFc4~F?ggg&W;C>icxyj;m(Q3rM#!R>fiXqxR`RQ|je@)iXO*4+4KY1M>VpFnbjAGS#&&+p zDo(1zT}4lKzLM=A}tE5v)$nn2a)_$qxL#!|?B^(-+VQkVeK=95|WgyDF~%pt3C-`7aW$5x}Puk%8hdk+r_<0Pb#KT%Vo{n4RO4C*F7VMzi4!H zVC3BxB~Y$+=&_V9G%29%GxhZw^`^^2PCMj+=*{h)&pstnKe>P5;@vKVUaeJ0w;02x zr7QT2bWc$n+n7}FcbTF}^0-%cG$r=~x z+D_zNkSDXCCUsFtMAQRjBzFt29q-qUXmPtL7i{fS|13=xn@nTSk>Q?{QIyw&ko1%(bmg>j0bd0hH?_ei z|Jofx+U{B@k!*&8TP+YJqn;g~PqSn+^R2bAo4=(46t0Ak4h%NGwm`kVt16Z}_U!k! z27itQWUGQ^sSz$y&-cjRQ1sP3aMJl)a+f)E>8%L=rQEO~RqkgoHZC0C@ZkN=max=O0&1--8sc5&y_p=#_FMI_{p<{a7`ul8Jj? zftgZlP8A(CZ#1InYn=w4+K$pW!Q8tPf_SD45tq>uGYR?k1{Q%vK#e1s+^1ca`4PS9O$|^yvHu439c?wM(kv^2s(4wR$!Vk)h9PaIiYX=I zm@hJbX0h})iSqHJ8xGAQqFR{Yz+O_@MhImJ8cb)4c>@=7*(!?WR+-tDF$Nq{1kLEx zE&HxZF^ZB%CzM30V}rn7{1^4^j;q()@XD9pfcXuvady5?io7wb9>HO8D&23D<^~^S zNj~?BsN7(V2nv7f%08+PbnXht4%b-osSB?1;VO}Fz9vPTlH{e1^bI367ar}Z6=Rcv z^P1H#Nh{}_BD@B-*5^7-En2n4v`WMhbk_LRS8f*Ji9S57NL4NqbWle3RI_8_pb*?4 z8yoGR7(oqfsQiOT95pBuvW+#+HYJl5p`I!7oD|IpXqxIvFH&?BNZZ2t->Iz7s5*XX zEEoO%i}wJ8(w{D4I^AQZ_fc<1yioCW%Vwm_9FVlFnqPAs>u>Zd%LzidVEL%=Qzjl7 z1-O$a+HEXownZyLCfjU~;|66(l@y4 zsvxp6&BQ2TDUgOVWoWO3nm`Lo`r?Dh3`@F^ zDfv6`8Cf^Ph&Yj1+!Sip5ef!E4D{`P>u3I~1HJ*!vr26oH4o;)E2dplkpq*{5UWaNE34@G};r~-OcB6sWnwxinGziQc^OU`CiWXJ)tA(9TdHeNVR)bF2DXkn zRFqU4tyk$zd*g*rK~=8<7MQVc@Zj_pDS!`)#JCINTF2|e@q7gMp&U;>jcFOT6Oo^~ zwCTDKs*SPf$C~qt%$Q3ot)KUx+ID|Y5lgCi($LSx8x5L9q%9$MVRDb-&H!-pIkPy1 zHsN8PeF2>Kvo98sPEBB)v-}XR<~R5ciqizXGUEYik3pBSS54;bjm(85KvP_|8eyW% zmfrK&!yp}k#M@~aSVanoO0h=CbW~RcVI1Y?7}s62Qm9YaFqcug0oAPRD%B~@F@X}xR>y3Ko zA^lDQ(>_?=Gl~$?Ck$e<`9e`>uX^yF*jpU@#Ls!!rZ-!rKa@Idwuvef3shbbqnST z^0cn2)P@nQo4R;7ty5j51SsWE4@0Vozu>6Q?5qw-Fdsw`p6rX5oA;-tWuPu8y$LJ@ zO)i|Y&J12sie`3%ihYO|fX2Q_1{QB>x4~4D;s9u%ij73D$xoCc8BkL*zk4q6uvdjH z_3)@Ht*;hq$Xwb4AfZ?WqE(?#Z+xHx1m+vN0r>u!M~ez4PcV#G4-xt0{h@F?QOepf zRf2zB{OeA!%+&g&kWPAM709GsRn%&U1Vu)-kaTIU(DSgl1Sj9xEpR?5Ozt-#GuIMIu-CY$Pcb%iEbL)!R#ZdsG?oSUh@#loqj<7WoltAy zo3*$tUf3h;BW$CPy-KJt*(qVf64bt)XnR!JYYx3y7$cZ$e5!NPzpX#zk z5(8ZT)eQt%{%G2fD{*V5v9Lp&U1P(Q{Ieedyw~f;rMw`DZP09``CMS2W!8H8Ob^J! zwUIK(FO2P@#R~_`(+_)(r1hyYeByW{fF3#{P=4Rl@oiI}A?zC93pk&Q@pdqy@M{1` zG1z}gtkm88sDlOhomULnxTCH?XH=N*G56?15oLpg`_2lVjoR08zb2k56kpGu(n+nk zduD!KGk6@74g<18gbTM@VJH;4WB0bl5?i2&+8Zb^bubLC%@~+WT=4crzEsk|(|X8u z)o3y(Y3-!eQIVV*4{;?_uNc$x(34Jc-W_jjvShSuzY!>NZ!J?^Q%>JNeC{dAtx;Lb z(dg>LR->l5OI|Plt;oVwBMA^J)>c-vNW<@l!VQ?;eWL5Fm1#2;6r~vrom8_1y4GLd zI7~4mo;wP6{$HC!N1JqL>c=~$Q|p>SVS%Wl3Fiw{U1MM6jgSvC2=K)BDD49FOi%1y zs0UNc-XfN=+xLL7AI|ZI+~g}Dq2BV+(S6>LQ&{vZjXfpVbGp?*`h<3 z4)Zw<*ku4SDCg`N%FyYrh%FVQ565d+XvB$YY%cKBW&p~FeLH&-5a6(J4ZKz3QzrZ3 zGUt#D=Vi%at=BrHMin3?h4!5UZeWO9>>{pRNfX5Vm(kz59?4lOYO!Q}kv>C{@cuiQ zZ>%@+`Z!}V9Q@B?tGw}|8dp13r&LIoxXnP z<+SH#hY$E&gqfVL4LiWYJUAwLJb{OK`R-0o z&VhO*11Mvn8%2!8e%C${YHrU%(_`kIQ>AU{q5dBD&QeV!_73-WEbk!kO9q{|jKdhb zkQO2dqVdLYIY6j>*LAnsvjkvX^h^AQzOZNy*h6) z#FeUH9pd+6*RYvVHJES7S+&Pnk|>p{kM6<3xb)R4P^)e9y0s%p(Mh2x)M#n>!He=T z%?j z`BgQHrzoV$s-fDtes>Zm`mVJ?*v_xz)GLmGZtmdls+$e`{q2t(_%ayT1L+d$nnD46 zgkbLq7F*LSkjvTFZtm|RV`(O?Leb@UrdA3%e?;e{tDum(Kmo81S~s1{;T-5X9MP96 z7%XjaW6cs6BKCS$_x6$GM-Q#4%(1BHw`TAkg;qU(DaXJt8m4fTPPVOBdJhVw*Ifxr zGU0}W4KsT3)3Nk+QFc0$U6Snjb`?x^I5!y}>J)FR8B=_B61}$zAO#Qg1e8^VZoMeU z=F1pgC$TQ`%aZ-$2JFeGnn{X`$cqzW`!OS^e;{w}Ak_2ff3uKHo^dxDm=d+*Z+>>q zJ1Aqgx3ynfDl&6}#Me{TTll$1l&Ki`dLJynveyvKbJYbohBU+f_oNmtX z&qErT<`C!kIFca+aMe3G5P4wqCrS5W=mA-SL+y41hp{)B>=$}%oB-=!>^B6TugxrCAXm-idFO>8@g`Xs9_K39QmAFrr!BEhPR9p;oKNYZZ~bqcjWIB z^Hi6`k@|o>#l}t<;*jbp#A^qySAy-}|dTqB=vo7^J)RuC4uggCsGgjTBUYA^P z<&J0 zK>AuTAq{2&p9g5Hz9x&Z>{Q;G!HcaG{G57PGRp#<X{zi3Mk5uE-gkCA_Xziov(=)ySD8s)_SuCXXfQz4|23c~Y z?DKB51Wkn;ZEkH|Y#YK}XXY`+7fY^~?jKq=tOQ`EzofEML9w^eu@71wL2}=$j!jQD zR*@jJ9kqjo)ASsfYa`-FL>7)D)BIvgo$)kdop}KpqFtH+DsU1oKGYEV56im9kp9~^ zo3Ha!zV&lFRJ+=F!=hSg00(VE{|n-OJ5#r{n|;6zPwXwc)#cD9Y1_s#We?nwBj!0i zDMO`ufr{#fr=~SRZ;HHZ+9_c-;a`V~0hRC$$jHMfU6n&M@q$(mIO_y#8i-#JyO@tE zLeP|=ZnRW{kS*v`CW-*HgF;7nwB7SibGi_+lFC&F$mv)S#P`tw`?yw?(Kj)jf2`Rt znSS-2`XVQ)tE3te4@M*;L5VgKDX(Etp3sSwy3Grrh{O6}_rdGwfxVh^G0Vv4BRYdN zZ5qrQ$4r8>6^cbX zR4j`2fy#+xMlFnb&v=5d=?Nu$c(Ok%9C^ z{8JZp-cmtI91PV+T75EzE#0VzvO6piL6@{(G%h`u-b|$BY$QIHb!#?iK!*d$+)*}= zZzCehv_O3hz&$8>RRFaC?rDv4)db`N?MbMY{_HXCd8^O&LNe+gx#%`AJM-9rT0vTG z?Y}pkqk_16>9M31$#u|bs}pq@MEXJIASE&Oxpauo6P_yXqn1T#z>+5~sFv*a|^&2!36^#@jr{>*g6GyocQSTmcu@m#Agn%_Rh{3Svq6w zLcgY|!y>{3q3u7XTD~!B5LW9-ZxtrtFLDmBmMd2QC(QR>_K%5mzq2bIIoh;_crJb! zJU7|8FucvHb-Qz8-01Q_Wj1D7Z9-@i`SwocXnl&8`Kbzh+D}Al(ybqZ|jVaA4)YqVq zN#$!~FNedtBKLaBk0jglmb3d`X6oK=?#m@f3Kof0jR5 z+}s^Hnje35p^Ujrvfzz^Q}lQe`p|{uV z*nKTDo7#7G<@{j=mIIxY3g!JZO!b<16L;^>Vnn=5FWqEy1R87`ri6vc_O5+t>$X`X zSTl&cSk>yQ)Q+}Ee1}dintZ2SbZ2Sp8)pV9S(gI_RVnC}1LP|cDXLZvseYud-mNnm z?NEFgfjU@eME`bo<&9or!;SAIzpYyEhSoPbTU9hqYdnRX*=0cxJ(&OJbK%sgvqsS^ z|KUx=!!wS|-`n}g#3Okw|A>=~q-w#Ym%R^LXWenKam!KRAGph1grcgV=(v?UlS_Zn z0!o*#n!Qa(-?N%S6e>HEyR`ENF+_7+?WhnIDlBM{pH1`%#`q+;SGx>v_JOaTbA9)} zUJB+8XBp%+eeiZ$cn};WA%JPS>*;%iiH@M3yRPR0{+fvYWobS*T z&CoH8-Q-+$OSw>zf+4tZ{INBi{M|f#hqipabekOK=^3?+ka75MM=pV9_QM(Bf03E* z(w+$G({-4FnLXss{pZVDboK3?>ShRbH8uXY#ZT?600`8IjHgA=d-P0R`#3(W*#jqw(9QNeHza3%E%ip zM>Nbj_t6j7>t~2TH!h}Td@01Yxi72ZuPtyW~5AO+OX=6mnH~i?68ZCVXmm>UTq7^9DBAmsW*$9a3lsElLE@RQJhcyA!XX+5~LUd!y+D>h(YE5m+#%c_5T7)>Oq`1Yw) z+A|e($sYOK<+F(n=SnFo`S9{fFJ<#r{+88poG-7QJq87iJ)KYjs_`HWV~%+dJ1`bU zf#Klvo>=TbajOaZe!j7)d1TR@WSf0d6P83iX0V&H4H~|COJL1LPUEE$t@%+BQcgG$ zSQ9V}loL?`=c`S$O7dejH+kB`asr)S`aH+!J1WSDAy`ordthCte#HXe{#;UX!BHA^ z6nW$7eC2NN`oF;$v^xUsUezr+$KSS)uiOv!Mh_8~i=~WAc=+KUuvGn=PAlhf?kCt# zOz`^~tr$r?Y-pJ1=N_v$k(l?N*&VT8ed5EHS*LKuK0C4`CBQD_OlfUe>+_uzxl%V` z8^*`SCw3>)cmxAAaiVGubq$oH)NXxa{4eQpEFiQ=YoQUy=)(vzywaT>4V7y7wA|+fj9*F zXeVHO?t>kMMO4jKadkwB!f}=i z;Nz6p&up8rR$Ush+RIW~uSti_oXC9nlONeW$3JE?`#TlL{mSu!rA0jwQ)0ZlX1r}l zI6Y-@*nHPStKk1De8-h5Q!&BgPyYxvS?m0ypt1deuGJ3}P($uHu zNbBE&=V<(ofyw(((|-0`&ONJJYXl2^nEy+X)yLUWVWpc-z8W~(v^J}4JKtfXP06F0 zD=RCz_MYX#83Ak6=4RHIr7ogdDO zIQR0X9L{R{iRobIv7AtL6jdHzc0Dz3^X+QO-ybcV3J2>{U5{0_76yI!(wTezHvTQI zf)rd1uJ((N7^^4%jpNgrw$Ax=&G;H*^-XnQ_z*`{FxV|cbb5_1pU2x{0G-*K0Ar69 z>Yuv!Dz2`Z)WuhJ*6z7r8F&RzrkrV_8t&C3hY+Y{`_jk6y?An)XR2un?+U*|e=@Zz%P z<4Y1Y7v0CtjMWoC=-alebb=mAge1hRL zCOj(*l{{JK=vd{;gJq#AY&{?vb07|unlGOgw<-l5r46erKmPD@h$;0?N~~J<=Ad-t z?{og+eJrbCrCxjEfPVJ<^wz2IT^x%8u*dfxK3ySgY>DtCOALy61bru&`!Od#d|7NS zAO%^D%at5Bg4Nsotwt8FL=DH^t@@AY5i!VxZQAB&6U+rX@%QJodJsoB17-AhHNL3Jqw98+Xncy+@J19&zv{3WGrV{Z%lXxi2?!@R7jOc7I_jjK%X3GEGsNTysynJb&B37d~2= zSYi&f4*J!V|J*xk_qFwsEBmQfX2HgE5~;tKoRrix0OI<~ zx5GC8^e;6p&xh?Mcy+PG0B&gONj?}JKRMG>8cf1H*7!BUP`Jobtzv-xon+U4i%a7> zmDy43m!`1^0pm+0R_)+(P|N$TbK0!l$k^nDfboT5t9KdiK8JvD^v$>Oo8Gf^A-EEQ zG1J_L`!L7cq*S?7*&+w*Pg3It6Eec(0rhY^+WZ#b*jjA`pM0iOam--4OEp8b*NiSo zz&6ecaC{ko_3wiR_4$vf9QzT5+&Z`U$^=(=q{#=o%0otRwbjR4QTQvK8NS>0?8iS~ zOAFcyElZh^ks&_}vpRco2?pp1PBH+SvWoY-lgyg3h?6hoYpa@J;7e}_tfxvvp(}KT z0G7doUAHb$g$0PI92z=!67Z%tnyq7QO31*P<`K@kyzhF19A4*BA-vrAyZzEvdp~}X z;CQ}$B;-YhRkQTWcfkO@TX}l#d*>?GOUm~9MoAhPp*^o>2&kazj%EqPwDXJ-iXFlh zc8c=n+gKWi>zTO%Pn(2{Kp&|9MWI8C$y#k2KaSKW(=!reqK4G=W_rBj8QCy)^$g$S z5-I?T;8c=$%%|O!aFi8;&`nO^Ix9bfNG{6`zjEQ@fjb(F2XKpgIw8W@WPLZ|#cw^| zz1zGLi89>G`d#aYKe>5`nxvGFJGGqv(?5Bg8jS>S)Wog{zk{95)^Aqt^<>N6(Kmv>p z|EsGC(a~}!+qQ?T-0TW3Mo$P`;m(#6#><&<5L7(nbdC-Wm)(|1rK>7TrF{-~o|Cxi z9H=`zKe)puH2>wq-Kp*W@Jj51&R9pj2M2KiwdkqPrv8tp7i{-W2mA`SJ=_Gg8`IHY z1*B%qMz)K*`|fX%?Sk{F=PeUWdIr7rUHc?syX>A7D{Kzr%$PpwTvgLU&9-rGl|5+4 zV@(O`@_55iY1M>+bJCdJw|VtzSUX(w*FL`EbYvFzHySj5$q00rW5SqO??XBfrC%}fKntg*WIjpTAuJhz=goZ zmd^N~$;3GiU#J2GpR3N%1`rfX)f3t#mxhURGzqD?m zSK5uHA#d5eB-{$9c)kf%n0w^%>_vw(lM5D8vA-3lDA-#Z4kzZl&6_u`;w{p*IvCr2 z=R25Tese`(S=t8yILH)A({}csZ3=nwv2<@cAK%%^4=05pB9O@AM}cMbSFxW8#-sMi z?Xc}zg8!rSe>S-HbJL4GtnL%7?`y9Hum91x0ZX(Y{u6V|gGdrVrn^)r;Zo)ho(hK|!7YH%%uv>zGt6MqiP9feA~I$tAMSQ~v|d{pY%+LBq^>yr+_`gO3JYM4 zG^vp>ny-o~dijzatBmkfPV*=7$qJm&!Tz}GyjzY8|ERRTSQt%iPYbN*DT#4hc(Rnb zDhoS3yNDUiVemc_QueT00z9j@M%h45+&E%8`^lpjN0w9+erg4mj|0#jUl7&oI}Uwq z_B`r9%cKe?8<))Bjv{_3pz_RRHD= zA1`@Er_%%Oce;t&+uM^20BCQ=i5g?#GfgtQNu~b~XU4LT7eVU|ur2P)%%K06g(F1p z^?wsK9LG^dQ;mBc z9&4zRyi9&xMRyYF*edzsH^=`mk_G2a6ZYdaE21xD+7TkMnQ5zk!1C0|d??=B{z|{1 zI;46%E9&R{O0~dTr@`x2REVqC-;AdU>mMCL{ESD`!KD+QI;?)+cSUV*K0?*A~8fs+GAUAafb%vBysIOAmL$j<^+njRs|_ z-oNwGB|=f8eCgNfj%WanSTiqW@OeOR<=yAq z{a`j9R25}4-8%M;@Dmqw0h+O~9Dl>`LBL`}RGBW*#uJA{Ysiq_wvltP(F6WvyM|YS zvnrb53f7TT|G_2lUFPzpRaHun)^c~5Q z_wmdCPbre_?(V91&rfO-vmiWQ_rb(YJN5`B_r(Zc8r_2dFYOR}ZPU4e&WlW+86j|7W? z&0e_Xo>uf8W^_oJ63`t`t6aXex&!n+_@MTZiHOSfEIMEbT`m8x+L|tOz+8(?z?bg+ z*Luled~k5t8=-p4W-p?FGZ67fFMT@+Mu@~*gUM%hN0tXjH@bCKqX3d4`O~Qbr5&sG}#1EFp<~crBuMPa=SXfry1@Vi`>+I1`slOzt4-p4dG`7QvJZqf=AUdM# z)b{tzRjnU<-n9tBb1=s>4&lAwNuf5@)?MxZgShHydjgX)LX5-C(0I5optI9WDu8fl z3>odAlhK$DH{!P#g1%ZjFJJC8HOYHn^Zqjswp8wXMYJ=DOn0BFZ*AqvEf0thd(k;>oI{0=WbPMyQ*(2^ zF~XNbqo?`==(~O8d{phs#{xHLjK%?7FCX-r6xsWK+dC**Hy-(y-;t)H)3nY5{^F8< z!TfIW7Y2tHBa>!QfOh+SiY z5_BgV1kwE;K|^5?6&MG#1@Sa~%#{FJ6vxI4hK8ztDc&TRARV>D;i^^@Mm(H6tfC{^P^o@^f}@I??C@AaDEF^kJnmWkzohnv zmdYI*+s})Z*hrPaTw>#mO<0i^%&hbznm7r$j0Mc+5Cl#{1w(0(xPX~f4QNPxxt1q9 z5%t1ekoq-;Gq5~B=*5mA$EZ|4il%8(d3sED={x5aZE9)g0wL6nU- z=AIWfPvB9>y6Pe1SKVFV(y$tTaog_;PI7t{mWtkRK3CM#D5&9y z5@&P8sU$%v9un~%>CCGseIAkKIzBNcyv(>fK%Ns*nL%O?YVai7*)8f*|MyDc|0Cz} zGa`(6GKAu;yKGJpz#}LPFcqTQeDdVUFXBx_DiBoZ&=CL;0abqWc{eH7SxU#Y+1K2h zITE}`;3OW04$m`M_^l8B362?W47lNd&jlXNq)Jiy>s5Mykg6h^aG16rQajqZj%=&J z(z4qcP)WOU7KsJM-%Y*ncM!HT6fqkdIQZg0~ zJ98*17$aLdckW}|piZKbYJZgaP2Q(Z^};Fspr%1s5>Q`-gLjZ-x{TT#iDXoFn|6D_ zzY;m6?5id%X@nv!jLE5&-rR(na2-!cNFqFuFRQZkJVr8KJBR2{D z!Z!n6-u~?Ku$9x21P;B1`rZNz1=|4LBCcYOq-j4d;Vj?bA*ATLJ{Ch!Ims|KR(l&U zE+o*8oP<+PgloxKyDTahPGW}ek!|woA7rOw`7(-(F5T?=3C_ zqdOw4sd!oR^vgv(xY5j0qJ{8|*-MuLVpXcsz!&@^Nsb7=#e-LQl-qSSEDsGp`2WEQ z@e3~aE%3-W>3u136!EiCXQoUJ>z9QewhHvlXc4~KzS!zxG`X}bJu};4BY)zc;m-lq zjsAM+-N~AuFcG%a8Q&Ov9^yFL4R8;{g&L4R!CrIVQ4#Ns6bnlcqmACTR&pD8bq@#_ zJS{6-Q=!fWR$F3I)AFt7+&k*K>Q*&Z&7bjDx`eOEMiZjDK9h7vQ_wpsm*YkAv5hO~ zKLx`4E^3p?AXIkQkgI_bm9*ZU-T=t{P;!i;&2T%Q{>h0CuKiUKl zdB768O?{4kfLNbJj9gdHlTDy@n#kr4ju?WOCso9nl8EY>gRGSS@{a1oZ=@uG+pLf)|-@M@IU_O5Os!qYKAFTw-MW4&*h@N#9B}iEc$YhHG7|2dol_U0?~(w~MVNr0zZoZoGBRe~ga}LNcXY(aYambf{?k;OMS` zs}6k#^4{+pg*n!%cn*EpmF!)q)32Gmd|aijdQT{bZiDC4pE(tD<2N`eYRA()mXMFz=tP{nwS z?~zFNJU=;G;%_7b>!X4ci+0Zyn0of7+tZ7Rb|M}v>Cp7&dW@7#8luRLqel)4L@9h% zn*Gb*K&!n2d_@<+s`w0q?DPd zaiAC}>oAlC^T=ha%LEH;)QaGpi-3E{YL7n#+`Ke?nboxLv&#TDz4mH_&AHz$u7Spx z8T)uoc2lto5KLY5Ans<)Yd@V?aMbJKNd7foV#~iA^bkP5_j<`^1S+lV6245?1>+@`NPMrjd5VCp;*^llM65&u2N6H ztDXF6VWe}7u)5}Y+L^_L!Wb#c!#uf54c*f*N@)Du6O64G#GSoRh^@C5cwIhqwH7gU zw<%rBw4EkM?$qMQ^n`>50}un|5PT0eZhTZs{87+K-=oZ{nRAz9# zXx3)_I4%a5=a2y&*UJtz9`S|G*KZJ{+E`3fGxoe^ko`*xY zUOX!r1QGu%2tSAYzCdLWm|kOFjVEX$L7yEg?=YRnZ!8aPFWfwMPGCAAOOZ2EqA6H2 zIP;V!go~k8a3YF^>eO<9vL|qGImmFOIMIwXYDXJDx~_JR zSV)|{5=FUQ%a)nl)i-!%Q3O?#91bU0XCGjeHRp@V6D(=Yp})aN^TrwRXM7>>|&Syfc>t3cn;gAO%_}7kY+5eZEu@$r*8xh ziamFcl#ZVX8c(04^6Ac&>2WQ$2pFl-rl@AUV2kfjk`a9UazFY+F)aSnx)+JEnP<8ZRD=Ljo*)7tsYsT!-ahh(WKd>#W!R{BV0P!gVh%Kk= zubaEO82R1TT@9s__ws+0*}6F4h;|r`9;UdLmss+uc*!UGeZwVQyX;c`BJNhCd7hn8 zh#fv74h23lb)U9vS$Wz{AL6d|$^=uX0nJC$U3DNDQOqzFf!Ay=je%NaiTz`7jyx=!*3Ey}?$A_?j_=-`6inQFmt6Hq@ktX?!$FnyUY@}mH&m6`3eLbiN z>Ect(8Jo9&G8e$%si*9JUdtGzt01dHw|HeM%GHT|*;X&z+=?O)Y`N8A6hORw?bX0k zeG&X76UtCGK@~)mx23jG%{Y@Xue=l{f&Cx$-aD$PEe;n9MG&P~5b0n;r3z9aRZ&q9 zu+TeFr9-5bfT-ALA|MjLj)H*nPNGO}igb`pA_NE!T0%%>AJlu5ci)=#*34UL{+N50 zl;mj6+2vQi@7qN+(9ZY7O54-GHiGitsSWhzbdH=4^GWP2`&K{dck;`ZFXbD5ChKmtYxD`5~6M<(Yo@s>Oy9FaON;95fXI-c2R~kSegSS)PCk znZL81CStui>-vF6D(5d%r5nYN{dWf`65=C5r_EohCDbvsb9 zKr5qV(hITr{rtZ`X7{s;09eHZDp@>`J=X>rtSAufK>G(o7*BH4sk9GOX;X-lAxqM_ zynOx!tzg}-9A5P+QHg*Sezlol{-#(%8yLV^kxk|gT+D>A&dxO6l%X90z4S=3b)ut6pp&wNZ%_E!abl*o!bVizcn^0(T1mo3xhy_^(&yT&6VFM>8g{Ofp)oByNHSx9NK8pYx^mMh!?+$M?0l=BIj2JV+ z+LBEHh#&;#+W+Rwrk9~JuAkr=H|u)$yo9I%JBX6Wjr{oLhE^1rTgswf_jIg55f=xaodm$e<;0?vc^t)yIvGc7SxAz7 zI%u9W& zUF#s!KlTR%{boA`B^h=o0&D%M5N%ZxFI7ogJBA*@VZR^R5AD3L2FUwde6va6#V8f> z$ELFTH?7_{XaxT2YEaH{Z^`EO1R*i#3H6{u*2@ZiQl(naO(-}SK+sdDbJZM~LSlw0 zYrl%cIAE~?i=cctGQU=>7@)iB(uhqYT#$@|0wO@Rl?v6s5I5@@9gs<~C{JvKJ<^64 z&!AMaFKWmkjG|iKb~R)W;t-S!LdiJm0!z&p<(g+g?YD8_Yd zDjM>`%VJ-vnz*}7I0+VJ%}4$(rqwRr zJ$!?iG0?GrU5hJ2$e~fdqBrNmDbayyZ3|Ri0*(e0%Ggd)o7&4zt49;z3jl;;r-r!q z6Q2M8;ndehq8)VH<4qNYns>C2ZQvgPQU$49 z>(3fCZM9C#;A-X!1UnpUZU|cZaak$VGXdy~>5HYoX;2Xcf>gx--7BcKp8)_>uU!!o zI2wd@{2dS{ECqNBdv=16lCdh{644KID{5`v`JEOmvWO?nw4M?HQT1UoZJT;X>J-ty zV97s=@UHn}n{P!Bl~S6KT|^?eF%tme!TSr%|e! z3Ehx){Dr{#KQSP(f`OvyRP%{ulF$RO^a^qt|GEpn83f0-q1pfx8BiNt$|TYT+)R+y zC!A8{X2A#yd{wpp)G&xBHteE+xCk(>NiUy*G;N{NvISiPmjpsr-vF>sFRj?=ood=r zWi0#$L>69;nKhOo+VoaYmAVF9V+qD6&-& zRCU0X@yPuXplIL3K&-C(tTKpTK{%HK=r~mj z!!-}MXZ(sF`@TWB*I(yd=~05^RZi!yos~X%X|_-xOFCB_`w$zTkJgt&Tyj6r%HMtO z8w7A;0o1mfqa;!)8I+T#ZJ3mW~ifLU7udpT=ec0{oAg%kv?a@DC$ZqEu`s&~#P@4;UTbxr6r z_MAhj_k@vQY2&@@SX=f*0Gz;oaZ2{YdN@D~lTOE|oLc=l*TjP{zsuOI@=XA3P_Qpa zBN;mA!IT8N{QJ?y!eG*Zoe~vrLiRY&0F4PW!<$JhpuG##sms}}s1HXmE(A3b<=Sw{ zL($REIRgG6YPLbH6Q+t!;8dQU4nJfvaQoHvEzok|{{W$~{5&_Gkqq%F4_a>`Qm{ih zKnxaUS2ytq4uWX;VD8*Z2MXUfk`oZW%bYc7R|<3rli?Y|en7ucM7+(UIUR_0SckCV zDT(UYy4jZ5?%BvzdvQ^KpeLqq0apsay35`V^Z~7nLXq)R9UYy%d8h=0^OJ2w4S^?x z`n*AXpbq3_EZkP7Y)K4iC8|Uur=cm-dPO{#N@9zj3)Np4pH6UX(?voNvWF2=CV9Vf zobT@y>G2vocebtZU@L{Y=iPhO(E4^thq2!JyQRFK zzk9zMg-tD}+WW|$$!L>-NdTYOv(wG3bHP$P9cu;JIK#f^HS=Vz+L>WamlLVLlcvC_ zM-$iY;zWLSE==K7ON{D*Z72xST9ibzoXHWh1kIi?l5ZJ6aacqcY%FYWq9h;>I0tPV zho#^3J5NvYZ{c4Cn^FMguZ-qcSUWIQUeri(0Bk!V2zmz1+YD(N$*&8P{06RXK1s&~ zvX5skZrhan*a3Bm57SGV4_x~Y3j$A<&jl5yt|IavKEWY)!c~<7oA11QH@!hUKIxnB zTE4)%45Qb&SFl)JvDX^WZ)T|5MK&EdodOD(+*$bCwmRV5#nL>L6d6gRBhg0_1t*O` zEYo~aSS=?hKNUV>11H$vXalMoaN5H<<#vePjW9ykYy^)JQ0i0a>@dD5^|1lQ z>bwStlr}$hM3o!sWUMD3rccOLWxLmH#P*mcVA0jy;@^ZGVHO6{Kqvm<$R;Cx3_RC= zUM&D){&2Vd;&ZQ~&Y&asgx6h`$$K_OJ;k^1yZ%1Jl&r-HduU@;3;+5%P&b^1dVQcT z8VLaBmO65Rrt}I&VsOaXBw|RM&DUQ@(J#Pke^EL8$MAuB85RbPQnB7n?#SPJ=L>lG zhv2@yU-XCpSsMR%-qTIT*#7`8-{9Esk89faLGc`TGhO+;Yl9}f>Z2+JVq`tzr>BVs9*iYfa&R2h@Y3hK^_$=`5-!EcL zLN(=>CZ{WZkLWY7v;O~K{xv3H|KA?wA^!3A7w^Nu0uRo$A*uN-3S)peQ78aO4jXvJ zD}jP_9iVAuN2&q6nwk0cX^R5C1QwANUmP zc3ZzqHzfpaYFgtm-=>$b00t>d+#;h)&se)f#z7UB7+jUtYUUuQ(c#B`{CHaf;&cgB z(1rBGuKo;Y&i%y^-57|X9dnHT$)N(?=3kom#-(640a5|LivAa2PXP84mk)77f8GoA zd%17s*`vi&P(aW63NS4+&_v1#g3yc9%vhi=^G{X$ry1T2+~LKqSAM~ue+P5o&>7gb zB~jL!9L5naDF1o2(l3}C2Fdt~tQs;c08?9E{D$Ne3ONA?bn}3AVFJqD%JQlFmLQ2W zfeuLeZ7TR6ccyW;=J)SE-@rVAvXg}=9;LsGAZO1daCdCacW(;4wDy3C^ue6e++D&S zcCO;oXuStE1_h8+rv!wAilKA`B#_SkN!Qx=1V9d82|Z%cxEa|6<;p)-+@Cin4RQGX z>uNuM1LJP}05EUS>ezZv=wFIQSWdLIwb8!y%zfJc4_9hD<0{(?y0ZYj2yg~aclO^Y z!2G{GDFI>4Np1XVkP8Gmq&xcaj(>-q2rb2+u21Lwd^Au_h=fl2u_@r)REHu$n^M); z`oKSPxADVpEu$NlaDc!0j(-LT7Is-+SBt_mVnCvc8U|T;ZST;)7(Wew&G{BO(BVKd zp%SVY;8!*{0eU~{2G{!SwvUqx(~A2nJzMgC>Qhk*@z|I$8ZQ9robC7*hYoH}nQ?(E zGFCBI4=OXL{N}MWYVg9FLHGnqsM+~V($R`g#>MV&S^M7K_672#NA_)cKIX$8ihW@e z>Ixbh7t$K$7-_k~7KqP8d17Hu`=SZTle|%5O{DQ4Sx{7cE6Y3qa0uNx#}LafY~ zRPQN$pw{yhQtK(1sn{Z~Ld!5qjrOlHDD}>7CCau9DWm@+Xo1ly5eTbLtyjzuT?l~W z7G~^%zU2okPaES$acM}m`JynurH;S4Q9=86j>I83gFkc=eoaT1E7&qU20AMLPB8S& z2jMW&KxT{)J0aVCqo7Bz2Y5tKxhbC{U0kZ4ANPaMc2G5Q;#W0OM)VNE5j+vdt}+j0 zTGVvvf<2pI5no(s8m24+J(UIYRQ5ow!#)M)T0mxxVT(Uur)Oc{B^s(_VsY+mRB(TxzVS*e{b}|VB#)(`gdb&%pd;;%-|s1 zoEnX&7I|G9)GPf=CnRnHAmuNzS3m<)tON9=9sx#pD!+THC~ghVznnGKLF3&=`4|05 zBMvVAlm0c3@Gt#q*^RMCg*FxVE2XL`DRJD@0)R+FN@|~FYmT?%Zv)8*u>Z{sZTQ<2 zsrC5Cjh@VW_O5LFGbhn86eRdT)Bl=M^xujpVU;R?eL5*Pdl+wd#raNht$+HvDS)L} z&t1Sr0UB7AmyKt9eo6$UCm>QF?Zg8Ycc=BEmNOmlD>)B-bGSE>fd6UZ5&DD}u-O4W z?0E~)v)_wC%k~Kgp%OrP7~_d$EdHb+oq#}%wUK=VaH}#7Cvb-FFCggxsrfptEv@(n z)XJ&>NTMqFR$r!qjjQ9}(#DoS#q|BDNVzFx+5+)u8V(XX$$Zzj{11IBg|?*fI4xS4 zh6u?z2HJ8zrx}yAeSGO8_6Kh144}+{0(B%j$FMfr-2}{A8GB|1JS{l@mm~_i@SBbE zdz3*&4#M4vk~f=3Nf3hO(TAVN?SEDhv-m$d_o59DX$tH=I>U)dNh$2(DF%iJE|Mhs z2);MzW$es%Z&YehJ_>&s-X@pRT-u6C1huW=BX0YgTTdFg1qb3eoroT}_ z08BZ;I&+PdhGMm|4TMzjgmP6~!S-<*d@ONtwb73eMxjeKz@}>YY9PO0Y)< z5#nwq(&Z6{y_A!_r9#gs(`8Wv$s{FwLwlta-W$VfsvyvT_6DRT@yuie2Z6EY# z0F}Fek|XYKLpS#3^y;Xjg4j*2l^-PCR8Uv{H4#{em~Juu;KXjEe=sPW_^Tw>`F8H* zb6>A2b5=7R+Vx*%6w2cy{|9M*kT?jR`TWnEZTv6{+p-K0mqRq_N~9=aPuE1xpkB6X zQ8HXGiQy4^Us7DGXYw@t%|$@sb$r>%KiQnyN^%$gnKsau>n2?W5(B-de!cXiRo>K2 zs-fzDedwZ|`WAlnqEcl;wf z^&78c6bcsMcB2Ctn>bhHP*jlljQsb*Skci30!!PbMjLpu1|$ZMMFJdxi?4{x9Id0P zo}V>$Ai3s^dKx+4duHtGVr(uWEaUmSP93!I; zwLu~dNen6Q_9R3K{Ae%DC@3JH?>;!kGZ!F1gG=+#6s0*ExFYClHRnR6Z-7ayTDV(n zLoIND2lp5eyg+GKQc;~1T7h^$d`hY7I8q7@oHD4(@!L}lSFwx}ns{)8eqgErx&W~l zfiL!1hno$q2b8vc8InTRWO`|=aT(?sg!J_GWu8hbB1o-MCh9^?5{FOHZm)a{*R|Z% zN$9LDG8f`NM;B26N^S1->LAUTyEM?_7*mJh*HLqV}3YkWI{vZmF$=I{W_!x$T#bPGI zB|(({y?LjV7>)Ku4kgn-jn;Gc94~l?GjXU?fD3Zx!oZya@h5vEDDMK0Kob?}k-p9R z-e(V(6v%LQeREe?W@W@@(-Dz+{`v2I^IkXZj^*lhDq5&+?Hc4XtUQ|5oymh+nt4UdE~&~6@$D;m(3fIzWfRK+aKgYE z%{S*|*c1}40hE^&GQnh1vY*dYue@T;^c21`Nh21{L3oj`u)|?>pN}nNZedg`O- z)vExW0kHBPTTy9UtDF^nUlV=bqnmje71sjE1rmhtjlbj>MJpNuN{)41YHblv*n`3+ zd!|~t4=zTp^%uMI8H0cWNL&tfkg&K+HiO^Wu_S^XbXn0tIKns5nhzAiH2EDK%2t!b zAxo;9yVI&cqGL9(z%ip=VNz+Wnnn2_o8usLEeV1TQ@0bsnX}N(vvR3@loy074FJ&5 zPT%+U8Z?RmW7%Y^D9qjngYCI?{`5&bvHhETjVV+X{7HuU?W@2P1Jb5MPH>&IL)2;P zaog7F=>6-J_s3MOuYC;P!vW{hl}r>G^$Duqaeamjj#Z-=gaAzK2=2aNc?61P5K`~& zHpAu#Fc8>_AZ4f{40=cXHMnanqeIELC{*)T9)SFArbB{*KBKYY(GcvJ_Ol{vM{zGv zB8zk@jpYJoB?7{rs}P%{NwGpy9QABsg`RW#~aXUgNJeKvLJ> z+4yWpJ%EY605xxYIO~gFx$|=1OX7##%ovU-m{*ZYGiS8h+~2Re;>>5diu!mUHvR7@ z#8h(aEw|uPQe~0MQ6sK&YV+}>>KR357U{eD?Ry^SyDG*ck?mFP1|qQkHr@2Y0Ouy5 zX24}6_MJG{b?YD2ZPD(W~73NqMp&@|_x!Z3Pp(HKAjJ(?~6a|jZvxfNU3uGYkkV@|{|_-Q z7ZYT)K;|ACdK@?JlH(PW0fKGEpTRbeZ1DvDp1txorC_X@6yW-c7v{@(QH8c3z{-Oo zo#+Y)5tLUE%CrD{C@K_=zx_iZG{f>2pEwi~%vC?sMqF8;tg9lZ#FhDXXe38B1DI-~ z2w>G`{L8|WFVBxO z8U>f|iVDvE&6-euA1I26aW>5fbBA+O8+p0R*w@4;U0yP%7W9(0un?rh#C;uYs;i=) z;M^LdE*fX?JcoWCC9g6+pXwk2Ol;DwIJj)m)i^kzcTjq;NDPr6o9-`;^M6kRdM#kQ zv8EG8v(MX-jvCe>l*Z=@%y~EnevWkj&moIb0qlbQ@)<=C??p#N^~C_t3~0nV)j_}= z&rD^;=|B!`}~=1--jqAhVtx>yR1fQR;2c%VgE zA->o;Xol=|*R(YlOW_!EMRRi0^-F!JrkE&Gs(Pd_XKQ62`pTs~Pt&gi5)KtrgWdjJ zk{K(VZ#QZE0WQY>u5_~)Vr6d-A#uTzF&W~ z@fbV2B8w(|{9(?zK%L0Si-}vTV=dJF)rjTVzBWly6jDJIWW5gdd)+hD_B@<8?4Uz5 zYDEArQIFq(Usn#P3kYji{Dc9YF&y7ocxZtzkcL7Pi~(M*lP5XSzqqlOb6iOP$TH&+ zi2$;=LKrH(3{e%tg3iQPOc?({6TIt(dh3wpt>2X2v~W3^NSi$?oIQ1y#fs3!qr8M6MjC8rS+(hX3qxxC(W@ul)fMtH|88bVgS%r z()~kw3dIl|vJQuX!Pyf%SYHtDjW(ZjVvewy3b0)du7lG6Y!GytH&7*y35@m2GH&s| z_~syvVwQ?Qb2y;T$X_Ef1me0CLl|z!)M6+l_?_%SguYu(5x&~GLNl=+KsM2o38@(Y zSYngpqyy-UT`znX|1%ofVgf(>G^)j-00+F5g~H~HOb;b;_+{K~Rc_DP<| zZzHqSY-jzDA*eo4fETSzEHhbu0w-55X_ZrXCEY_R%^ZH@gwO$X!~2;=VrtVaGy2c9 z`k{=zxS}f47nAjLZwT6zuyt>UklXr%Ql8{e`46G~GuRgn*XI6R3L9}9#ssXBu6D)W z0m`pYW7h;pYPGSJ>?WBc=Pf3Kq`oWL6+O-X=6;NARKro`@%9cG%>#&Yl3eENJzl5p zs7T%$Ig+hgVTSDNh|We&oyZvF_1zdDHqXw?1^>zfPm3Y#DZ+hx)0FSm z{)%(vi?*z(e=iu$5=f>Z(|meU*u)HJFaM!A{A(n`GPlUIQKqgm^(2FIPva3>h;Yrs zeP8R`nd$n~k%=*lsEhfPkBR7`^5dT?$XS%5#y9|!;xd$-Nr8dT6ogH1Ahq5+0xCdN zYQaJL_LVQLhH>J3GDZ>X*x~&S#stLQ|;a7}7NRD!^ zwIQ~R8LI`m2ZoUUNhp5M8;*|`18+8+X*jbm3N07pP>bIWG*~U3<%=j4 z1~ahz9dkxIXGh5I%%7Rf>xAYHO?AInQkZToDOBL6bk4$pkvS@lAGib%-(>q;^KoOvPZng%tTnVH-pG5i*aypoZ+x<)3(p5ge0EJ$?^p#dV z@X=#^5$mN~fDAHMHsdh=BaZ7pgP7y`7$3C;9jTTh^)jdC4zcXMvG~idO+6ofkn2bj zmX4j+Wahbn+1p@l{xx*c?qLbts)XkjYGnX}-zLFAaYwG1HqjXa3Y|!IDRrBA6KQXN zR+=&fmLaXExaUE55L&NB9CZ!p9qcux!~iLq1&~ub{IA)Z}|8I0)n6*StR%$nSN3_}38@{~9jRS}>IgjhIqH zAO9Wxb?31WD~q%Od?FNo+5e8e)+fCps^?!e%}b;AaG-ORw}-~gv$|&0$}Z+-C?pWm zx)T%Y^2XEp&&)g$y*B;VLxX-q0OSPv6*mP1?2uGmxbcNuo16e17`))%h9n^#uL~yZ z^)dMaURSy*cUjeM$r)cx$d|cT{GFf2%RXZuey0YzH(qT!+n6)5&Z}PKI{a9*Up`Hq z`n)oCIlpNSZfL$4^{knPx3+((O=WM>@HzfA`&3JGtk zCNVsQp9;53)&&NgH5@!}5>d7K$liZxr9cu2gxIOyg7 z5C@U{5uhvjzhj|6AXFOv=bkmE?rGcV37T+ za)frJrhoMq;)nZ7-Qa)X768;L#IS~_wV@~#Ar1KC0OmfYQ`M{eO7wSpZxrIwIfPWr zR6GNHA;8rJef-bBBg_txU)hkh{OfK$!~y4`H2-cB=rBP9z|{gx(#5=}$jCRydw%f@ zi0hWvdRz9EpM|xHf&;!Nq~VRB8RtJ5P+=`w?B~|}Eplv8-3tEeaow6TACIM_MLBTQs)6XrM84~?=~evW!L z_Tew_DTPBZ5SDLA+k!T}blE~}VyQDydt6lxoCdO1(1-nXF2}FCS%Eaj1Irf={jKt~ z0zstz^J?fW7L)QH!6lN23uEWHb4FLc#VWFI|I?v+*wFh|#?ALE>4E}?f3UaBu2NmL zK>A_TtfJDtb^xeNfGJB&pso?nG~C1+0O~WLG)bWgR=X{c<~7yJnN3Ub>!i$_DklJ8 z*MtCfc&BYLQW0NtM45MJqC>7AT3ZoB~CDO*bdA znV&MIKVuXRKl-aV9JP%cplfmKO1U6!R3ZMkh=n-;@*=d+Az(I;^X?Nw@=@|mH;8m3 zF{1ZR>VZ%tFi?*8%m=TuF2Djyz7TLUMWn0tB!`NRQ--PzsYxrzA zDLQ#_IO$Au3qihSRnmSc%-{DAW^CTEl2WL7$hFlhr`u=9C#ic$xh)4zd!T44T$9*z zu%<9Qy?g&||2Ol0z$O^00714b{rZK5j+Hes)e;~6qeXYjIXIU3@Y$dc=~cjCxARMv zK0Al)tfb+Ci~A+G#0zogE<^9&dDSpI+u7t#hyPwJ>Q*=C_+T&9L`a)PnSs#-#vkgq zZPVp{4C3Fx?C;d^Z!_@!U-PG}hDIYubC{!fu1`(>hn*%2{CED0>w^RyVKP96JVs z(M#RCq@&5UjdvS(i|zcm(^tTEVd&3RCh!#z5U>co(IKvAo`PkA&KUTG#p9eY0@SS! zLVxJaUpX)bE@*~|*hVZZ1}tv3q*-re&~B#Dsf8!Hs$fp*T#LA6-e+=3(I&7KUhmeu zE}D!Z9b8u?qj*ULLtL7{5}IA7U7r`9z?W4y&Q&T$rfchQU8g4tU&yjP^*xaj;DOUm z7z`IRY&%^TtlPJ>h-tm}cG0!|qM3tvw5-=6YDx?}b$ykedET~goyoFOfXVcAzQc0I za5~36LI!V*u-V8d!^80ozCVj-QpmII=eJzRl za+eZRUvS$8B(QakvT z&$ou?6T(cQQ(ECWu=D9>9GL7smx~MxwtezHmWw*LOnqayWL)>E|=|hpylF6 zH<4WDzT22HVyI`YbdRkx4+GPF%($@l{)hD^&j~Y%x|Q2+L1Mgm7?=+fI23TZnJL0{ zZk4$E@H|s&Zo}7c$4A<=%UyCexf#??BnZC~Er*ciZxww)( zhBIf5^WbOti{F?Qy9I#5pT@8NRhSy|2?$uQ*4<*+bsq>Y9t`c*Uq9p!IH7ki>WEQeYpeW=va>Emg=15lnP-o8Y~8h-P}17j*=gUF zszRq;{0esKvpDQ_&d!R7_Lv3Gal@8Noo1#1;f_XduX8KYxC^Qo7(CA z;x?3`=cjyfd1RI{-^`z`~A!?9rAr$%CZ9GUJ`(}#jnUXy_W7zv!fwk>pm zsq@fC>|^~TX4V%wSU6$lEM6S4BCHVkxnYVT%7_Phh6FXPi0>qzw$3Xb6FSepbY4qe zKi+A}GtR1tLnps>adE@M?VFz*<4u4uaH;w)*nY}5a_?U3fMs0j{rlSxGktQSh5kfr zWI)LAQ&Vw{6@F!cyI=+jJxoIyOi-x-)yNvFptwJ0gIO=<1)E-@BX3aH*Jt*a=plBZulgw=Q1FN_IF)GDPES_ zhP=t4PQLeMZ1qUjnH{&1&c1j8vkLw4#g_T=@qp#&cioqU{8;)m!%y7!@vIc)UnRul z2)59Xpbr1hmqz7$HLU6-bTC+Lu62gIm;W|y{Pr*W3&DKwRTq|-lQYK{vbDDB=nLg9 zTsSA7)`>===@K3=Y#&a-Rkc-}r>O#w?*o~0j* z)istg?N{;y_UMac(xFbK$W}5w$SWx6sG?&+pCs{ZgJC?M9lNDmq55=()bo>$CRID9Tt*qB2_6;7QQ!f^*K z264pQQc6}o25;MCZlv7ymF*N?l%NW)?`ri)zyiUWe7Omf4HT>&x7~7YZoavb8+L9B zN6Tdim;nh zt&hWCza9`JKD<5oD07%Ii=_{~lOEO*W1kUqd-vt*QWmH)yLNay=3ixeb*F6foW#e& zkL)F}AL}?5z9?3xofZgt#j}fUg!FEoouzvBlo-s%THFy7zWVxJ6wbtdu$%14_-rMZ zeh;yQ5s$d!xo^vx!;#tuaI~RzYQ2c~^CLGNmrAbj_G$JMIwwZqZ{)FD4^82`e(cDh zP@BaIJuAQ%7tWph6m<4ekJPQ>_jaF4Vu(MRCr|i5%-iz>Cm8yP6l<@PgbT5RSqUH5 z?M9znb0IWBL*vsT^H$SEdMo}&D|cW48Me{GdiA>Bb-h(HsrH`TUw&iIrhA+Z=7Txi z=D5rMGk{7L%AEcbgbjoV^H)E%d~5*296tI$CC9W_Cr+}X-)Ya&VZD{pVdunPR_ul8 zyswUq(`>&*PaXJ}^x<;H@g1iaF8Oz)aVBiL;8HVWc=!Gz4o-LLPh!TfoxNKlecdcC z!qRU{_Z*8XC1P71__BRmYv}PI3}#tB7(K`}p3KDQ^uc&kVjeE2>*|{3z!NU*C}5d) za_$Vn^uGCaJp`&@=KQs5A_sK2pO}1)j=Cg{=nD+m0(*Cv=M(4ot!c4uljUPR#MB{# z+P>^M7e5}y6xveaatbkCze8^Oi_?cag|=|2R-fgla!!C<+S1PbigRE5YbkZf){{rI zOq`PngfWgQv)>Evq(2%%@`^2T)ic~Z>UcS?fqR!Q;SE=f7VCpO6772e{QXOpS&H1g zXY{7qSnG?ICpkIzn=&>sL55&fIu2^Za}@38Uiuo@(9 z!CktgHsy^v&~{aaVP7!aR_V;w^1>Ob7whaQ*1e8@wxvIJtCmqP*=P3>T!&4m7XOX& zW61T(m+Qam(G2)nRP2{J9sQ+__OQX|xXKUeGm+ExZLeH}eYgupV1Hz~C?2U$xK&`i zhtuyE&-onV{If&YyR|`wuSyH@9)!_3Y=e#PCOvOEL`I&5y&osO9*PQoiNF7}J>#a; zlNVd$BIx>W)5Z90-G#v>MIXBdo0gh8YqYZi-O#>|K6E^{r4)g4>VG&<*;8dbe`C+6<12aHb;tkZ*879NB66$jtkfF~?xpYoBm!K`B=@1HI% zy~=V;Z`WOiV{eZI-uAmOT>_7xSKrCd@M6i^e}O#ATdgLF$^Fr9yl(Z%?fV)JB;5?(?WDig zhGOxwz1>0Jyw@5fpmc*E;F|l+v+NARjAmP>rBFxVM;r@g(s z?a_=K3xnLF+jbA8aL)(F$j!E^b?#(o-&lZUP=G#e`|ZI>5{@=sl3fmKo1Klxnt4l(I^ z&w`7nMo?{wjAbWqqcjG4(cbGXv)zqA%>HMfFAIZRq5Y46KJcwDI@m^_Z|3#Z{(mLV zSBL!!^k=>|Juu%S0{cpr^?xicwD+|7D;NdoSm6v z|I(`jy43VU>Bv2EzS~!EnNgZemWPqE0NTww6HJ~=SE3-PIOJ@_QkQ9U;o58&Q;|7C zceZ)|h-KhRVG43J0=YN)dtES4Y=I%slO0}1`%7D zhQOBzr}0zX(*vN{=qol*3b?qfK%Th*0azpgnT*+6uW6e2nltog(8;&v`WJC9M5|F( zTS1h}ye4JFA4>bGDO5?U<#V6zJbjdw8-wxW#LP;C%s<$!wmzvVwR=@4r%E+=cAyl0 zZunH`)FKIpCi#G*vyW#QOcwC6$K$v-C*w zp`)z9db=jMZy(8YfWh12F|oTsqt?Os@l|sXK=R~5%W~W9m+RUr>(x`wBChnie^81g$yTg&&z*0sM*{lge9ev9j-6JJXFx zxGwA?$sg`dqw3sFGc0!BQ+WM?+$U+>Vlcj0B zsm4mzz#%PXjazHg**m!A$rW|{p(C%f3Eg0TpV0}Y*{+d`qQm;*>)ck|tZ}Y;Z@w;5 zV>Vq7c&)U+1skaXjFayH1Df=>%&Un_$s`qeW#f_f1?J%TLXY=P!Y{7BaJJGq{()oR zxk7HRLiP$FA~Ljb<;)odbX);K`ry#z^6H%!4IBk1V9u6;FgYbh`yuh*;>*HYrFy5- z3@+Mh#GrRR+n#=8{H;W18 zip8&x64!Z;ZZRIINd49@H30Kr4BbjkZp^<=scdF(gss}thYCqQ0Gt3sMXn+CeQzkW zIxNIN<`uK&+FrQj$nE>(dbXb6AMr*T1}sZPzQnBEE)A6P9DFyn+<*Jb3GY)Mj^8!d z7dk{;E@sA2I`26&Zp}`d^I4BjpiS`}G0P&hBsN(}$&{FRa$l%NoUm+4dOijkE2IxQ z6`h%+ISwSFS})P1u3XW|TD{|Od8cFK(1BrAGk#`R>7cCu|Jfo>nsuno*%54u zpB}L-;z8OUQmQbxqe8Agk9ikRSL66ucRi&V~RMadExo@ zNE)z*oqR6fZ0p63GF|OOtiEr0)GgwwrCIg{x_{#Fjk{Uk>Pv21?yaDH6W#et>3|9K z)a2Zi$rTfoeHG-6tGY8>J(foX2Ht%+HryRQd+@n#MswQH0kNGWmgMrQ-cps@jGn@l z+elJ+;TWnONvI36-nO$5P8;)fjcdCwti1E^oEpd~TQX~wxig#n8LgiA-%;NYG@4=N z%lDp+Y5TYY-Q(EV4)G;S{&a!lUZj;Km9;8(x1K_%OTG<`+<=AeJ#58s;&pfXJ+{RM zg|St{0YqCRcNliQH|gFS6YmEz2l9l^M&qrH|E2t)r z#(TF}W<;r6PQ~aji?1-hc>A%+=(I=niOS4sRG2+$&!rz#<=>vuF*UEoz=lm(3Zm)r z17dr1Nm5m-qoKzK(zqfRdz5xst=)~$Dc#4w7yQBI)8n?6#JK@W{~&=Mk(jm%mN1)6 zws4P%NA!mKLa)tyzxEc<8LN4LQ;ZHwmEMo{wE6W`)&rLWDlR=MKKWz+GxL=DnNh5= zXld2!Dg$P0do2YWTP*HkLPCun9BcF18tUv&6&#qP@8aCv<8OAT>c{CI>utMGVkxr* z)Q_w-bxH? zrbH)N2{N!JES`85&cwfJN^fM)lZve5-73AyNdV*D_FiIj2TUy*_KJZnP@TUepP*qk zF}9Ok!E{a&*)F=exBOG5n>7<1Yn;p6tA}_mUp)E3M0rW{$L(9F#M>=IwYA>1JFiby zMwS=X2hv|v+d1pRw(pD0k*4UpI6{<+xGTMnzyZIY z3HdGYpmDcKS7Sp$%mq!gLP_8~Jt-iMxwRK5F zaa(Tt)z@s9w>~AW&}Hx5VVSj9E_aMjK_%l?wjrMoL#$W&hbUMDUnG^7ru&^Abq>b6 z`kfGhYk9eSDX-0=)iToj?MWp=2A`@_T-saZ?)xy*ie(0Vl`SiKPgws&g5bvpSZG&1I>yqTL%0@oB2UEe490>!WZ6dMo|4u9nCy)m z;$Oo`c#}hse!9~k!i_7$V# z9U2)?2@B|7UPiC?qkDta+!)S=1+Q?@J-+Gt04A7~Bs83seV_J*3A^OfY#3aH^Gzj` z(yqzP>7|TS88Fz%4OdQt!L|0kmo0j`zl8fjS) zyc%LOGGsV{YwDjtzCVQ{39_JwmYHDzFPIj;@)|kNs)c#PyZv{6$vs-!+cor>FM(ud zRoyP6?#u%BBfMwu=jr_Tl5Xzl`t8v~5g3yoy>t_U>NU=2{?G5)v}Eel%Q_p1l=g;k z1$bl)g}Pr{L}#}pT1a*ob<9Y9w>K?EF60UpP8}<-|iFTZ4dRnOmDS|)y#DIlsT))E+$Ok2)h`= z%(0LahmTtn$QMKxUlMNABxd_G1)BHV3M_0_dDK5noK~w4y)=@}RcD@gV;3Byt2ca_ z{;)a+j-vksu?}|5$eapNf9kC}XT~Y9u#u}ZykD4s;?T$qj5md|m*!Hyw3qiKgClIQ zB8^RLrJl}l$IauXM=UD5^7#X$zcqydpIN1O^9*S!b**S|YktV1q5aj87x#DOCZB_) zqFE1JGCas^#~KyLHE�NY8IO%gvWXXTxGdr(Y`{$~5OU%)Yh%lJNxlSV!!M{k!_d zzE#DTO<%T<-^(HF&_Z1_Pg9ZkC@kK-Khd-KNl9Y24OgB(`8`JAxC^eewxM#oqAl1| zX@-~rLANR<`r}sHN*L^|WY_GO+)h3*Rt@EU={X z#n`jV-Sq~Szs}X9MK#4vU-DgNPc7sPl?LqtFxtC1b*sH>g*qBcC#!uNV{ZjUroEF=iaMEcHVaWlC#R_XE`g@u;|>Lo+frRD+V5oQ!t-Z0lI+Rx-}Ta@zA~4*X*Q3kuaZ{ zXX5Ftq1>37I*$f*`?D0F?7+?lgSoW6%s6gWdaJr6f%>)1N|$CW8$B)3cFbb(k>y<& zsJ|Ygw8_N3+E>=>y<70)hn$m$G-cC_wX7cr^ERw7jvtsv#!yp~ae^kyzp3rAP+m+# ztmm<#!)IVq<{d}GkhXNIq1_kHuzLr%Ej{AIWvRpt5oo%pX1AYVEb{Axt7(C!Lp|y-O}ZA0m~zc+qh>^~6@AGUIPT^g)SF*8En2!q ztwH-B><(;zCnoo%KEKei&(L?QGscLi0%rT3fg*o=7ja<@)3;Oop-ZQr*icuxp#0%Pu#$1`j}%|UaX$K9XK%gP5t4S zt%?uB-A{6V5Y^uLc7dolu}{l1&1dvmh^@`Ea`MB6bm+3y`_AXBVpZEd&3%o;?t8ST zY|dcL!1p>#2gWDIZ~i1ZY{}`_E=<7EcT+rX&tbM3^gVA!etf#Y_TG>o1=f{G7&Pg| zoV^Y%Im@QW{l?j zsG+(Rp0oRh-U&U~^+R1Wbk`;Fd3l~ty4W^Xyk#+m$Xp<+I!txT^1Tl^b3vZntp#-w zf#b4721U}KKQ1LjSCwQNvt>9o_QnDc|Cms+hMpxW(Y-ev6CJRCon;+97D(^E4C4$H zqQNp8(t>?fcd&P>7qe@sx?Yb9vZnzUDl(m_)%k%JMj7`^;rduMZW_Vf)q7Sn)Y~bL zp^sj$HD3iM7_$&BG+es82J>%ak|bU6IqY{4*{&lGlUUk8_h=M6_wB=7M~04huYJy# zVf46`p;mf_VccbIBChYV>6RzPVcMyoUgkT~D`Q~Bez#5^lJxKMFkf)Js+0mNx_&(I zhgRszt!up*{tZUk`{F!_s`efByLpv>YDk~*79TB0>Qy~ZaL)8W$9LkzE--`*0dQjO|3%z+1~nDE4gRJOg7l(*^d>63 zcM?G4@b@9e!koUr3#iU^CXQ*V!S>{ z673#C+ty;lo%w|G-F2mCWg^^SgbVb$IfF|J=|k*&<@Fu*{6oevv{b`7E9om(zvqm- zmF$2bZ&$z?B-`nw)pn{3evl_SzYoh!4l;>&>@0|~duFcE#E4m`n^=iU?Lvzw5!UG^ zEBhcfOKaxP@V2c%TLmBC<3#$e_sGwMi;6P;P*`|OIR8~5SQ^c1 z8E|b`($kglM6OJG*qoteG0wh%VTV_ZKtZF5QL$! z8S+}s^>IR~_~$Q5D3~wjyZ5g}=6)S<1s?n*h#)v>q>h9+*vNNTD0deqk!}55K1mDu zI%yx0hF6sL9;IgV-lH1wTD1{`)x$yJW}NTfuXTSB>W%}+fVD&BDJ{$JniGP4oL|(e8FAO{cs72^|+sM=}bVyFJuU=lZ z;-Z+E_ZGF0=@Q>7>Nln7P6z2ZhUmE(LEpR&%iX|(y=Oe2Y|UaD*T0{kF{zwJ+$n|q z3^Sd}OVTbYaBfpueA%m_e`hYjX<70+_sGDz&V1!Z1MeyU)w+m4$$HyR z9MPO*D!-=w*Kdpl1Cr{ua008M#&sIJF##;zd>z#GO(nlw!lE9Xx|K+sJM0XY4#ohDj+8!`3uRgS#~t)2qwq2wAarSenbi_Q zU056ohFmyqy-229;`3|FxENanSi1Fh<|n};ACrhxr)}v{ zS19sMQLJwldB2D@8Uecs_CB0X_Btp8uJE7$jxz34QWc=DVfV-UUK0$?g|&%Q)VW;Z zXlSFO?oMC{$rXtVaWBB_tR1D=X0lFKWN*_U!^HuvbEjt3=3ld_Q0}JsUxSzq24qq} zByJ7*t=Je09Q~1+zC(d}_zJT0)~Epd;|n5~{LFK2qVSWk=~e!iMy9s+R*erXbJ)J+ z{?Ii4G?e_sG#|jh+nc`2_lpjxl|2O^o$^O190pw<1W+t?Hm3lB$3mAFK?gu=e@8O@ z;0C#>t-BTvZ*ty(0-Z8+s|9kW{ds^2l#;L`sOsw}BE}_m4V1kYixw9>WVqH8mX?G5 zz=vXa*}`&DeGVi!@`IUK%qht-a%BOP{%QN)q`erM2}s>4_35VFU7es9?nbgTIIiko zM+LJ_#ifVXa_=yvCKT5npG_r>eiW}3oa^|jz2qqSOjqr*OidStRoNNoCK9<-Vw77Y z(|LX3ta@Zw=|S2s8iB+`irx38@^O6Q?5)mYs3^@dugZ@!SDxY-jQ{;N^%?+4xFyNW zn(ZkQtIX!~S|=i}WO>3{AkjM!-1w!D?iSE||B>sSPMZ{dqiG0<(G4r&xHAK4Dm9hK zV4_Gj0*fQ5#^aKS)K_G$TxAax{S`nN?kK*)!iQhY;W%G|)GogGCVTq_i!8pz_IyJs zf|?a~khPRF)qg`T&;3`_QeqQ|D|WC%UiYMKDwPj_Ko8WSh}60)qnKJbmi6L;>KNov zNp$A6$`Dby!xfrp&(5oEZv&<)4Ss(2GA&EUUz= z&Ap8NBx$(i1I2FcrTsjz#O&u>e)Gjx@eVL8S9S@%{GMj{L&kvE)O!Sl*EI^%X9yVP z?CCshiLluYC~hpYqIlsr$f_^q=qRsNr1Vb5|dC_N0x8c4Qs@uF#Tq znmFZ`6A64Y?c=(vev~YJs{8GJ0GKFzst%~R@}PVioh*GjM4unQ30wMcMn(d;&c44I zm6c!6IfLK7#zmX{>-Z}_!@F;r30%9;l??`$vV2>MVdLLQNB?WzDwg7oUt#Ygdr8Hs zks$8F*D0^M+!H$2BNgPC$0}r0NiWFdY{vzLQy5az(txlP4l_f2cGOa$BB>psVBh1L z?hea(i^|55)9j7imNV^DuE;|7t~=)gn{+?8vbJL7mjCIyW&qb-ir}SFU;{Q$_a$^q zn4IwdZ?`!UJU>irza!hH=V{3eC_sQ0>C9Af5pHEplzQ=|Oh4p|wfu4w|&KSGC+ zxBDJrKCbZLIpvw>6`cG)-hqEkizm=H1reW4f6Q!dTo7+Yk96lcjiAIP+6|4FPkydW zKA}(o-DW&~4wJ|4-$}>4pth*D>^VTUjJTL!EJ|&D{Ki?Z+>H$W3*G5zeSnpC$8A$3 zA#`6Ua*!MusPnT*Rt+p6j4wGY!OycH#BzjBB$=S2(Fldbn-0lv z{ZBLR(zC9bZ14Qga3FhPDZLvE(VM|4#BXCge@W068xlj9yju{9+Ntlb`hTsoHHy zzg-_4$gm9%l8=UnfV9{;!+@oC(HkM@^0FF>SXusiBgj5j$eMM z?y7%lgTGHgw1K-_Hah#TZoCVO{D8Wk(wf63@$odKK*zY4y1;u~vY?mypMl-?#QQ$G zxxaq1p0>+dW=m+D_H~%A=$OHL^-Xp{azDhnN@@6qf7Jc(McxuSlfzRw1dt3IA=X#eS^5E82Jcu>jIzGF3nW*+g*?9@6 zt9U?m1QX{rWQASp<9_7C{wm(qWQ!-Xl>zwio8uo(w4$-fQtPPZdCQWv>GqKj&dz-?5E zaG+-A@3Y{Z3i+=I$%8j+GINA8KX=}Jg0Qwvj{f)9cHCgv;`z%SWG-G+C}fT+Y}`sb z^3IQ51`&!j?2bT3j>$=FpY=vp(bAT&UH;$$@p8oaCD%XN`CPWOY+&Oy}Ll) zDES)5ri0WFp{LgDj~!oAk&s*ECwDiF4o7y-5*3;F&5p~2RqubO4|)EbkExh$!KvGX zFrNrj2w}=jW>4{m$%)7!eG3+N}JK*K#iX z>3M_nsX-7`vT~9AZjOqhl<)03%-wD~vz*$O6nqueNmvSwWm1Dby^fGPTHme%Y-i1E zvfGMDM^}l;Gz(#cT6D?SWF^|6r!uyoVj#}Mo`y9}_v3wzJIf7=+|QNUbs&#A1z>lc zQMrG_CJ50w11dFD)?dQV#t>SH+=e~Sj1m|&{VJpZ)LOXLmG6l6x;JMX!}7?=em-6f zQheH4i!D)gyu|vz*qJKY%t1|2Bu1Aep!c9Zpq`SWkwc>?UUXuG99!}5s!F>}jF;|1 z;vj8+K$e74SI+QegQ^B>zDkp3kM20hiCw>_*)b@G0{BL3o*y!LAC7)RL&utX-IkN> zkr}KLqwp1EIJP zJkLMO(n8E;&8Izz$|H~D*NPHm0XT3J}_k1lbKMe-q! zV#BDx1+I5Fy4#!>5hc#u-S*0ou$_-x?JT9_jQ6h<|B)R}TxqDzb!G=u_OMGu_NAQ~ zLq5d4z$CDf>7>oi#m^uY*hjdpHlXe|vI2LL9A#};^Bpc;FJr4K zl?0zCca)J;zv!*~&3GzWz&8IViE5l!`^7O^PImD5o5lsR$(v5IaHL=iN_X*DXHE)F z`B`n=+I8>rO#j&jtnZ}^$1Ua_O16G|>G4RF*j44$;0eCF%i=xXZY|#77`4e~-<><% zCU`DycJ#1r$J(UC&vCV0b?~7(PoG1Z_UoB$p9EsYZPO#p#!`^y=X14FnLqx(<}+oS z=MryUm4w-!D#^Ap$!n$A9OdnSxkW3oNr3w$Wb7@t#bnp@f~QCFxC1k@V4IH5S``NR zEW}WM7G*NZAC;G_bt2Gn>1LDV<+)8E>Xyer49TVUmENx!?RI$Y#=6>u=5h6F47Q7WZZH-cnOY(HT*& zCmJ$+b$XsusTQ0f?MQ_EEjBXrKM9IRhLPUmbWO?6bG zig;U2llqNa9eOP)4Fx`)N!+y9=K!u)hnbu<@#`TM|c|<6qfFV^PaP0k3uJq$FPL^ z=S_W?Ir@o#oUvR5zdV=FLIU#J7%!%}cm62N{iy5em=292VNDGm@C!@3Ny)vVznnk3 z2Raw=9nbuVKGe!m5N;s8Pu&?>O3QNw_Gv=3-%qOpYr`yXDbeo2e|_wr2aogtrlqSn zHhbapQVgo0pG@E+Gr19c(Htra4L6)q`lZXYn+l;BISQ3l2u(TIpZ43dAfr2_PL0~q zn}a-Y^VZ{mQsr*Lk#*&u(k5$#5?XD>yp0ApKO*aBUgoSpawEFsEwD6Eh?Cu}{^ECJ zTVr&&5?XqRB3%I-{zl5sNJBzcRdgSwJkovDC75I}M-n$^E2wnR(im2p?fa?BXWFGa zHEeg|jU=)S^G@dYn6r7oQq`+Idsl0AK8Wr`Xp22bV^V_ zcUtZ#md#qPIB#bffwMz=x+6YSU7{4S1*r64g}-X3M~-NziXd-#Lq%Q!@AD$A@H>ua zkMztvHJbpP!rCc*%v=Y#VPlaEJlwd|-*ty#p`9}k-eItv;2O^q{Wryb@U zj#{jk2q+Ih#dV&;5HRjuZb>&OYOb8vz(47#s|b}80g-st+}fpAnYwdqjJ*w#E9Cy` zTdAK^z~RoFFBp(tI_-rjgpKBCS>{2?-<9o-LYb15(;8M%pImdaLpa6>;tt1my~mDZ zqa5J8^An1{E55Bl#cw^9pzEL@M2bR|KbE!QB_Hz#sCgJOe<>OGU|l}t4eRP>UE>et z65_#!pIy0;Lvsk?AOwWZDsa$qe@-G5gULUOxt>)Yg&#g=uupImu*b zP!V*mKN2nLZ6nu-MD^j@Bw*RmTT=cS?2yz4Q~Gx#Ucem5=F%r6u20Q<>yDJ}xuIv! zpt$75iehE6{_wVZrzG=tzM~`{%MH?{WZ&I#ZCnBlE9iI@YU!Vq|30~ zm^B3*a~p2)WLSS1%x(FVoPWttq3%VxKT^7A+Yw0G z(0gFB0)Gt!SUI%n0!6YP?ICs;@BuJoL5$SL9?YBmMt;1eyFNdPW#v{kvAXu&3_=Ih zsd4{>8_L-^!1Bx~0DPLrTcQ{(PHr8u-AYu#pEuX77rK7aSn2axJupKg(jHVX2N;34 zZ+xn557UZOU#*CHm>KDBrDr14`FSJ*`1-Otn-vMMrK1PY?ohO|5v-}K?!L~usaQ7< zbY!u%(}pqz?yo%g{`mVhI)K+S1o+JwKsh^fMf@8%!ACMK+QiZ9P<{);3{(?q4j-R4 zh)Xs4^YHp=n}UkuRoxaiL57J|){;%v%&mGoHWs^NZ!|JuphYagx>$?W6)K?-H9OYP z5XORuf^TI`05i`Z8K2V!3D`$TCLS)@l&uw)`+1JjcJFoADA01Efc>p0v-p7k%nhj8 z7SH?NRd>J9u7xrt;+dQQs*l*{t`yTJPeql#^yqj-Em{cluGP5(l)u4g6G*lZt>3j^R_!p%Cok# zNaX-*G}CyK2v5r+BPEdVm*UJ+82C*1yj{X96TJ<3X;T9{!Gf~=)sPQtPhy^TbIn)f zu;ZZ^JH#>|qLOACKiCxtMd^~-X$&M&V7)2gyW z9ig-ud><#v19$!Y%|6znEY1BeVX}}JSO`8?bLEEY5Aw1pbWQXT{~cgMCzr0DKGPtH z$n(EMgodes)iQrdIuy%TxPok`%&#LJ@WLx9#a;6kv&#nFx~)JX)8w2tF7is0NF`TS zS3oxNvt5I4%%5sAYUn@zr};}HfGq>QEl)>?&`}y1*HcdIfby(=BZU@o{w%TPJ3HW) zJ(2TG8HaJAk+D)Pcyb%${37cQNtDyF0~uZ*mDFUGfC4JBWC#0db@z+(Qa|D8Pbugt z@p{9v)y9Y8(z)39l3($@QM_wV7p7;*IUeF}xT+${!hdfi0+%K5Kx?CN>U>B915%%6 ztZlp6ygu&bymq~#i4d-G$Mx*##%`j{=$}|mMqQnF)f;+g=i;O{izcVh%=0shMc8FK zb&Sy_p9`P%>rj~zC*`?|jfQq`QuGQT9^$3g$0+brv}e!jX&iv5H=-53Nh|BR{#wZE zQ-kJ;%}bZKp>!?%X6dQbi2_?H>BXb~>5#|JW1E*iKS~Uj-?hRizwNMjy$2UoPm7&* zb)?9euRoSZ&Fz!D4dgcqplMF@bt243i`B$HWw8l{qBfLbqnvvEPO4t%bA`@~)1W}f zi4g}k`99p5GiF}>N_U9i@3CU&Ui;cl@I{Ci73Z6@DHD^5K*~kAXaA(dU^r6}dh_C@6a=W;1dXw))05vq+#+{P| zG~keK>Wjj0qAsJyo~h~{{w||(c`RxTIlDt)Wq!iBW}nT7lzW>fLq|t?1thG*uYvLV zuk7K-98iiz!?-PQF*mQa=?XnlxANblm zXhooGt?#wJO%OoKqeb~J{ix5$j{NA7g%0^%Z9Um2D9FYekGm&ELysMrTDXY1FGT(7 zxC=YMP|x|q>xBajfbX=|W(YE~5Gq@(ZfjVo3)p%S43>SBw$s+pQ?Xnah*E!j_39=Q zH|{h8sz0!|mAnjfIZ>RhyP^gLvR(&ed;O}1ooz)RjPt@pmLAMNC*RyM@nR-<^fBdG znlQ^O6~L!{;@(A+zt?rlJO3F2utSFy$87eTecKaI)sZ3Y7r9HD3Vawtez5uHcgk}&Az=j^|5c+as zWn(}vm$XRv+NGQ{dTLqA_(Uym2=K0R=}Df2UEqGkUt0n3f>%P$Ib63{P7hY1GsiQ6 z@cTI##C`#_byApxq?@#)SlLldVsNF~lr?bf^Q-JP4#q{GE>|Lzq1m{j%&dhoQe$Y^ zrbFBc#lbeH-zeb8M+-By%flqChTUlTy=;VpO=!A#?e2`riJl+qv{wp8H5bFGJLc#$ zpjWR(j6eitPV^wggeWMi#4x8u{Wv?ebCS$7BFj43QAJSs^K~)`Zn6%i8^Y&Cl7u8^ zx#o*RtM<7}oy;{*r6Pyq4ub6yX^M|Sc~DV*Nx30@R2EA%w@3rDl?{M7LA#7awu*l& z-A-A(Q9zQ$H`1k235YIll}q9$f5PByYIMPxSBbBAVpxAUn#2W$z=y~Kew#N9-|}m8 zGviwF$tM3#1<_OQxHg9blBa_7{JU7MebCx<%__tJf4<2(MkY?<+7n7FC)xRAV z?N^}!CONUQl#K-3!G^~!9Cbf+0iA-FSaN=hMW{3zFB$hD$K{Ww^Sgs|VjGnJ|EbjW zYL--Bwx;hG9hyUZ+f8U`3n3J$EC?aXo;&37ZhM_7)4rA0{v}B3KGzN{ zsCI!KB|mah;LLH7XYJ0FP{D`^J~CVq#cff|l(W$F68^>8jAc`EpIEjo0n%i7|v$QxqH6k!PthPr%tSh)>@jm6zf{-fU$ zCc31QnWUkS*m;;Jvb=e{}nJ*$1lje%PpYCfy zejsvC1dU1quo|#W)w8>|*fn92#;ld6mpk*CZ{(!g+bzH56b#u?pFhR@Cj}|w@5`Sw zm7rqpk<3rC+h@%WOq$3DHrWkGs1?wX59yzss9F7U3z&n0UMji8$lx#Q*_20&Fyr+_ z1CR{M6@fa7ZRCXR2)$=o&#|ND4k4tc78#0;-A+AZL2RmGo)Zj;O<1G)iDl8^cydXf z-pEL<>;#$B*T}`xnUN4(u=mI+Hy{}ck>9;luj~?+n2yo2+2?84F`dbEJz8TKkhpfL zr4FntnD%^k+BXqI-=b#Q&SS)ce1acrt01z)H&}e&_#caz6F$pdl3`q6t)@9L*_mIq zp=2R+7!t*&d3&RNlO`|&iu$(mPPq8(#%}WD20Cl)$d^>Q&!emSAU>->>t~gu7BHHq zZNwioDL>!l1x~SW5o96lVY&Vq)P*Q2rof}){JhMoDBiwTz{>{ZV8D#zGss9b5A;c) zZtrOwl{yBYofoGdbSU7xHi_b+P(t8n#95 zFkVTq^o@q4!bH>MNJrQFQa7Ko79c@z=gabf7D53d)lW_HDxi^_FImMy2A^sh1Y-_1 zHL}l5lSy~I*YB8mfd-zEBGjUV#D0r+XvE)+E#<~IeD@Y zsJp1%9%WU%B&laiGM)V(-tQ$ZWve?>e(6bFL-%_FTd&m-(w3~C==>q6Ome!+vey-$mbR(% zmU^{1Pi@ihd_`eHJUeQQ2Uxecj0`;Gv7C!EA;ljD6ayARR^EA)L;+Kc<)G$++^XH( z)!E^Tq!Ow(=r*lu`D)|OCr4}1lY_FMJz5Zd{2~O#69c{dLvD2&DV9;z3HklC)^(=q zi&#-sf*{d0(oL+_d%$RQxvWS|F+-->vGMfCTe>tBiYaA*l}e<0etkL2ouwR4RrX76 z{iAE=b<@{WL*>I#g(K#%=r1=}pMf9Hq*VN-eE>{L70s(MxMWq@xj9(+cks_@m1v18 z-W#RBTWJQ7!fj*-{QQ#RJ#ZJZMV)yE*-2!%>4M}v$0Im)Lsk+_&kb1zHM?Q5Z2gc1 z(cbu)iatJ&tLs^x3VY%ANKzG^-nSGtz0||POLp|tb|eF;>$D~p1+dWOSg`j^o0D>nG7QWEJW@Wi z`^eggQ+0bJt#*gU%l3epQ$LbF>G7!WwsBdPGI8YLnmIb28!15g4JJM`W5ow;|B?%1 zepS9EH=!MmGph04j|`kJ#W)Ku4IK27Pf^5v@~(?n7*F}dR^vD_p}p%o3rF#?1gC=pdKlqxZ2kv`cK|N!my%=3wrA|99{OcVQ=0m zYW+UK`DA`l`8$Qsn?iBA&~n?KZ=p-!oXdSFgXpbKdtBf_*hNyq+h>a0g9;!KBwpeG{zCK1dwmSR#aNSc_`TMRIQ z#OF!9#|A`-`TJ=rvu*J|8!J6;h-D0PxS-X~9A6K_o`G)m6Ei2`Ws7h;RNVXF)=v{u zu6X3P-qikRU#DyztvTfG#js^B2xLn}0I8`XlBzwvt_||InL{wHaTu923wo&oUNPFPL#`AM4ZE;cnavtA0WoAthpmXtD zgxE_XeYXeYdAO~{3ex>C7%8iYt2r}CMulX}spEb$fmMbGNB6;f;p|WVFf|h7*TOU^ z0-37AMbk0rS{4ud&nsjvZiT`YQep$$#ubk3OB!X@=4_L2ubXoa%VyXuLvB@_?cc53 zAfJa|_<@~aKsqrM9TI7Xz0N8UOh)K^KenX_rm7c+{?zjLM3ZY*Gi!Hf>)O<+z5c6; zI!!Mm4ZizqUMz^!Ec~;eM}g8s<8UzVWw{7Lo2s!P{SnMK1?pRB0Bgd`Bst+^uSp&S zUE5<<-GX!Ls`T`obw_Ci?4OW4)+`}qdXhboQs9+_?Wpt& z&^K}e6$mgAY8hbtCFbex>SdRtDA^n9e$qt`3jjJo?-3_i$KnYb*{~QSHNtXT{VE|O@_>OdHMUIq2PUY#r+3X!{5E)v+77wsr9546x z;Z1`K%Vf_Gt?Wj74`E8vhCDzU5A|MhJ6Sp!`{iP@a01Jmg z@v1eaVCOL)Z(Ef=`KUJ zkg7yT@tJ%p`76s$Gab*9bY^1TiU|zUGo(B%&dZ2|{m}*Ly28CR$Ougf+n@EOPvXfj z<%;2d-zhmU6YRtM)At}|78bt;d)=oWTi~bdu)1DJzxrwuU(>Rjd{rXaT=9Zx+3?#4 zOFC5?#RLvgNcK(yt~~MbO8bIlh&^8;1>ZB04)Kl=wL!*C5na>MGeU}qNM3WW4HzlX%d9>j7G;^d1LXd8X%8B! zic%doGMe`H)vE^Or! z#SIY>d7zM_PdTjhyZ@|%MVXU~;VARY#wFN>K;>E5!`4s8+0&Oh~*1@aa!Ckvb$Fnzuliwwu4x$~ec8S)G!WJ=3PKQEkL zr;XolPosT9l;I}uf%i$JC*7VSGNsz2ag?^av|1o{ndvzW@M}(Am3r=)bcWh|J$|OJ zcInc_oj+em)6ppy7tSmJp^sZ>5tBaqQ(j?NO)zgLihFMBC5kCzBZS0RnHT{bZTEbZZsUhl-XI_1RcaurWpnHzX5fA<9k=@UBO;c z_^GFaTGe*3Mc#42@7VRY>vcNMAu9d#{ZM_~5u@q-)H8X_&m&W>xD8*H#n#S6G?wcj z%q-nL&Rt_baV^e0dM7^e&I`AMHkj>+L#{k&%21)F$AgUx@!@E4ry_92<<7Gv^Czf)F0Fwi?(#Xv|hmki1?f>GP zCm;BUMK=J@d!9q<*{gJ=UxG1WC0Wz2-hC=sl`rljg8Ys&Y}kSn_MJ&}PEA~44UK&j zIcN)re&Jwevl1&?f>@tSGaYEM*41*+{CwA(7FldzoNtd=M9Ve%kxarSY2_OUlT%PfCcyt=}A;SM?5gzToZqyWLvv^Lb;J;ej z-qoyiPAgRIYZCnE-mhyN>+_=m>p<)CuW`J1s&yOu)W>Ur(t%8VxLKD@xkd{zpaguLRvUcq&OZNol2JgYt}7tcDa&VxF&y-Em) zP0kzKC~c2k`}#aD>fS-5gAukvVTAoytZ@DE%7NeIpb{cHZ0C~mwg;r5)cE!9MwRMF z?hYqj5D;W7JkjL5h`f`P%tb>lbW*KcnpJ{VqadLERSS8xhFJxJqC4L2o2#u z?dTnnSTr=>(W4Uh?e$B>&z?J$oCGwjovpq`WLo z2oDhL&do@Uf7*#}k7#|SrimU@0}^JRv2s#`=j0lRIzocR$!&;t85hltRd;u*vc#d> z)VH*79ocmW>&5o?(yJEDYbmyyYg`moao<-P%l%MiUt4fOGkH%JbjPwdNRkXR+P}7z zHjgOUL37_+|HsLrb~3~pb}KGPm*CdpZU z7?@bN|4L!ecCqZVeA8Lz)E-}=O~Sb1jNhW8h0aIbqDw%WJWPL7^Ob`N3BTgzTZ!gp zq+nO&#~_QZzAwqRTR*VLHTi6{Gqav+%Ji&Xkw=K;Xu^|DqMz^?bR*2R#F&x$cTqya zF+r<-AP_)HD{q3iOaN)a!I<7$kn^w-Dun^1xCyIV{&xdQkEIlA5RVD>=ZXF_a3iRa z`Wrxb64)C|mHM|!fVMoYbEVB;lT_3<*v0AgpYhY=fc9{IEN3nfl`R$>GE3Z#-OMkm zs*0R1w&2gd*LrmaJ>0M9fi;T+)er-XJpI1AY(0!^OWthUpO&*E#BYDPjKUUJ?0YpI zPaV>#9^hjUCx2-TE{P|97cZALxST2WK>49hapK=*GvvXH$7yqSv*EHH6S5faPwFRO zi1u`4RC~Xo!2VB1Kv<6}F6{!DRK@DxS@-U;7quj$O&^I-UZ<|@WBg#+hz8XKBG@<+ zdC&j{$b|?}@Ht$WfvDcjF6pjZt{C66Glf)0V*%y zU?ifhHU8q`l6|6|;y%IyjQBufXu`+S=doewbSQy_rvNVtBhrdLO>)C{`AS!QDeCW{v^2o^{ z-vxn++_pp`CLdawW&16=nD!=##@1m5nm0oeoX}nL!5_lXRmLGKHf!(M`k?f86uyU& zPcuG1;IX*Hz}nGsDGI}Xy*qG?a5zx6!o?()f6q9tdM=vWd$;ZT#R)R|8wrRCr&D>R z?V%bSd`iTn(zgwcrid6-i!wDq*UVk1!xp@0O5wY)f&gHs`J|_LjYNMjwd)uf?ow=GQL=YiT_-ZJf zWU79p0D$+(s?JMX-ZF(~enDS3vGEo%_^av(BQWc4Fx$BGZ3=UJ1=zGuGaGeA=Y6WM zyv%Kb%v2`<@VBcJvp;5}u!3ZtX@NA0`I0B;`_O})_Lq9Tf%&Tu9*xG?H4H2$a#ZTO zb`i;A{ZnIX~0dFlS$*5n9c@6C}Rk}`W2@;34LLQUafkr|_bm3YI_ za;$ee(bLSpY-GL{co8qHQVfIX^jQ zCF&(HdzE24%4EkxM;89>j$8N@0Y`50_0QDIg<}wLsWTesV(ZF5eBiBZt?UHXQiXpi z;7y8AcqDJxvTzuZj(jF_mXFMJdpzr@mmaBhC=ayPRbilX+BDara2_~LFr+@Qp4m(Y zXnvaJQ*#r?k^5kG8xA@+e{wioNC+;UQHt+76mtBUredml{TVQM{L49T+tCrW(RjF! z#x=~~Ut=>BO*xqy5u3d^u!2o|Pa0VBBaTrKl&aZs6Q8_!ptl}?Zxp0Mg3abr`~L+$ zB=(RO+PLiN1J55qC3?OzD5A`aK54$Y^S=g&zGnf)w9WekZdTNai5uVWE873w68HM7 znJM(FqIAd8)R>rd+I&N4_v}2Qe9ZXiLXOC+915~oadZS#)+)5#$&D6q!! zidW##P*&i>O^UV4EX~&eaP#5`rNHEHU9%Z@JqcBEWoaX!ztsj718N@QV&P~tsy0Xs zUgUP{bz6Cm^qLwo{2QJ1RR5U{I6OBvD6_-&=pl(tTJ9lhE_FnxHrEGfWe;}ek{5d0 zZ|cwc<(*{RJk#$&L1FBPQ`16`Q#S}R#pZ-M<9H&f%X*$7VY$N0Vr3VbhG) ztKHP_O!#dEl8myuy#rY>nxJBj6yC|ly`OcBM0-3w5qtiimH+Wge3sntH-&tEMY{I| zT`nABiCPU%3Qa78h6bQon7{{xM5@ITva`SG2z-f~4(@Eu{2jnF=}f?@fLv|%6eE;3 zNd%d|9}oOMHQ#g04QyeA9!B!Y;dkV4#X7fmO*PUb&iBhkTQiA{sfS?YI z%^~{ubSlZ#L~yHqf4bq)xA{%X$F0v?Gf0SSs~cJ>)~3Em@!MFles?mcBxyM5`V13h z?NOl7ZTtyQZ7T2H=!S(tvoK5YFRu38QhR)^G+o-|P%3QP>ZLH#v%BZzpBuN&KaBYO z?b1A2@>xnKC1sk1&M99?xDKA>ZA{GL9_|&549k?dUImEW)iZSg!rl&{9EgRj zyi15;&1EIkwXNPDrXEs@D?ULWNh?B|N z9vgNhTf2bV<$`26@f86qqvU6VHxEo_zRNdvc;q!?oJXH+Y@RvEuTbhoJ>nwGQy`uB zt^ciBgBjkShx`vtf1Ka(&@gTXEqbo|EAHV}&QSE$%lzWszMPLeqAqnsE{v&?Q;Pp> zTAK+&iqGzvEuNVFsh6F(^3{K78z1-ldO$6r^A@0JaJ$;8L<{9E3kr~yKFLJE?|!@d zlW=wOBJbzAdV^)#1xnEf;xPFm2#)!_R&|{-kW;Vuc@B~4_@&2=7xTetneWQ}N!akP zt8=~On+)DJsp}*YZnpGvX}%t&n*m!GYdn>{{crkKjCr04-*6)TAgp}{296XX3^ci zYw9~A{Wq={tw{z7e$?xNmAPC~oos=AhL;qT&}U!~bQ1Fa$48}j%yQqWCXIGmTia^6 zt!*5l`IOXAb$w^%Y<M6b9E`i~esJ%8OFeHq}qpp9P(t?vD+W3ch=exTeIp zCqV5-$b#vG^5H1g2QK)ZoRNQPg2~H3ggLG^x{&h=Am*R{LEd|IH5o2pqX|KZbWlKA z5YSktigXAa6#*3$lrAbDy>}8iNC^l6N>vaPq=oeGo=%_@yio`lk4c&D_F8vsAiZesO;4u$?^454kefA|Kw~j}Bt4r@*3EG> zU<9z(k$r;|;`jzjU_owVb~BtUvvnQ+cp`7j9TLnbw=Vw2c$F#e4Xj(Mno%K!rRkG9 z?@9GfcmlZXbtI|lzJQ_C7%^T4arC>#2tF2}o72!!%nMf&Ns@Ydl>c7|W_?6c zwpO;|-CJZl5nboIQz$5HDdW@`*Ad9QN*kUFJE>6YZ(UVk;orN8Mzh^@rQt?F4k%*& zm-s=?g6c(;$274DEojQ>afq-s|6wWdu=;9lbElfbv*cJj_AHRa8*mjTtaiFEgaI87k()$r`n-l=`NiB#NbKY z|HMj#u_CH2XE}qTt+rNbIm*zv5d-C(L=V;rSRuVvvL}<3` zpjYbou4|JM|J4liSHNR`E11f^&)%^55<5^p|CE6kzzaLEYLT?YwrXe1#>)Qbci=s# zbDt;(3!>iwY|`f5I767t+_Z)hh?oPn+F#O!N?GH+z;ll=pdbO7l{d%m2m~)=&t+h{ zeO|rptc}bEnJ}A?aGylpfJNcNiayz;g#RieH&f0}o5~Wt3BJKRCC*8%%|{}BM84l~ zF(&|zp$dEwLmW>3m7RPbW{+mVU7ur*!7%p&k35En(u5rkt$sr zFk>bU-&}i=YkcyJ!S;_oKFhby4~?UnlWvleXb|zc>NK_q>+AULx-BdRIxP{=U3NNG z9(quc=>PXEq}Y6bRi?OsSc2QW1|hOx zjVZH9`2}$G-1un*ZCT{Q&aiJ2at4A2WX3qHdOAMZvTNwZtlEZ2cJ)^yZeKtd6XP&Ffp29I4ic}=POn)YK) zaRb-?nnTqz5Vwjxe=AE;@zyDXPs^4=mOyS>UBe_|X!}J5g>YMfW zOekbnFR8q@;hAz)f2j*d(_X6Tp_K1!7`18a7EyW5xM8i|!d^te2X3VCDjlF z8~`;fgMXQ?sdfcEyob2@bn88^GpG8KTmemm1QvBl2isisa!ClT4Su8kX|oIkzjV3^ z*zTIj0tQse)vX7P3-!Oi1}Pn`R>l=Pl(M2ek_uJE>W;pJTC>G>!cWTa-s9sdTUE5h zEW+`@O`+H*cl)-{6m=(qB+G_y?u>&=a%aelGoAH;e+live@sP4Jdz1R)CO66LFZWc ziJF1cM96vnsxY(PAaPnBPC)~R)yb$-z}rR~21RZwi`}`G6V+^_mYW}egxZkvv&f|< z6VJacb@3zfLdlodTUNP|o4i13-jx9mjo<4vN01^pIulOfJ(FlP)Yv;K@K{%FU^ z-6PlQvW&=9W;#*Xcv^)Q2NeD|f+K=MO}gu7 z>kN|(#N{eK^6SjL)v<^K3!Ik;teZ6|A`gmlqcmwUgqJ_gI?|agIgur5bZfkjKIfF} zp8S1d#nA~6`JXWG>QzH8TWfRkA39~HL^jn+eMbq(CpNe9CP6LOQ%WX-IT|Ji8qs%> z&{Gk!tIFVHsXr8FAyF~i+3)4Pu1X$k=>x$5( zwbRB%lw=>yxxpTd7e(!5sO%@Hp4$t}RgS=lAEm2{zj+)(m!reU2hR{`nKwWNt(yHf z)%Sc=p)cj!F5+cbw_U@-%^h;x8{|?)^#@~Nr96xI2up9)fI7L z44EWAKh7p1Q5v9~8*O>Q>+J?E||C~*U{3a3-c4Yof%>_SK=q=5BT zGprPxGlKB6JSX}%K*)*wQ2KO-E;9Z2{<(a^R2frg8@q|}6pLwEr{_RPO+x%#mtT@= zE?%-mltK5hT{x@8G~4@NftCeSu#k4fU(l?2gALYGi=9S0uZqThGq({E0wc^MR$W2x z_-|u&AZUoLQX@ENTn4A30IP-wte>-6gOXwRYq~C{MNUY{-~s%y^Elv7e31;z=zh#V zr?&d{mU(QUJ1RZodf(r|_n2h}d2TVT-ZZ@B}EG6BN}7zk8uPky(g9s4bga%#}qC)3AjqR^Pw4-nu>OEAB%d=v9>&|3TKl8@z=vCP1R~s zXy2N`ZZ_fV$#;6aqe;PXTJyPcf$dL%n}qTp8!#mezxVR~(|T8$Te}exrzs3ET$JO; z#MN$u28L*h+mT3uGPT5|tNJix1Fa9ri5%7IE5(@`1J<7e)|?sH&~o+r|Mh)MM)b*<^3 zrH+6^wT17e;$>u$_|LOjw8av%1zP(vgK_oqg;!c8E_&_%4hPW7si)6EUJ>%UR93h! zyHFaqPDp$|T$JpXig#|y{ScVEgUM566eQp1I=-+}$O0*YH7alQ zijrl$zpboI=9K?ceT6ey_-(Pmb~Pf&LzG>XAQPq{H-8Sk1FAUhcRgtKVg&w0cqksT zR(}0qxR8JUS#Yx+Wg4tYDF`3f!~N4iW1@gO*UX2Be<7OEdjOn7ka%U=g4sA7^4iYglOU215C)@?Z6aE7hlW_KLN z5!9UT2)Mz4Nx3B#dh#K&#I^oSBG-GnIHd_~T+o%`Y6$$5UsP#)?avSKfbGIDA;=wU zMJL!x?NHJFAIGgt(dV;#!w-BSejiv*lRm;DdP+eVEy4m`bc}o`nr$1R?O$3C(I(qS zvS8>`7s+L4$ zEvS~s>&pb3E<)`HMUeTEb8uPYL{Zw_g)T=I=bwtVC0cQB&EJzhNJxk57Bfx7Bu3Sp zmGiu+Yk!p=6c7>DC-V)*!14ZR$8Qb%ftcpJE^>{G=Dqn28{Z>%A17_A2=wcahsX${ z#WG+g3`Gm$74$|GYwhO;o9SEp@FEg|+j*Y5OCT5Qw3_5; z2+kuh-)x#@@ozMp9#3lh;gNftu>Ny;qD%|#!F0ks3kH-&6Zy0?^G(1!qR|wTAi@PSjc<)(qG)%uJQVBol6m`Y*`}Ga zPp=ex9iO*d#`8WmG##i1n_@Jv<~||eBU;KEx*#Rlpt_~kNG0oX?w@Vg8bS5HZV&0X z7my=N%qQpg>EytvT+eOqC`7zQT}9YuZN#n>S|_LLfw1yB5M0a=d5$*!PQzl~4&AbW z7Mj`bRd0brrVk)j@!1R-1ByW|44RfC{u2%(X0Qzz|DDb2?ofr^-pbA6G`JDvULWZV zBBI}yvW(HFW4QhmPIWO$Zz3bV25=jwdbN}&t*WfVNK$^xKHS8Tqha7ZoA2~kI@Xy1 zjz@Of{@-s@e9Cjk7g3!sF0$f#mmYc7G$ar-LhssO%Ihx2IoTTHGVc5wg2Q8=yYz6< z7uDKm&@Q*I;f8r6E=+qCq@7_Wg63@=C)@K&(XDP@!EywxGe`yTktY)H=-et`ED9o* z6v|rc-~43k0h-`b4M+i?qvCY%(-V%%ilIw9{g3)xK`QUdH-RbOVLw2wq!EL6{1KCV zqXE-3fA7(h9f^8;z{pVYwd7w}E*r?gyj@B^2p}9UhLukh={zQ>sYm$VORAJ6Q~k7t z?gZk8JG1f%2&orN-4_?BXUKxOl~MO8Z;b`S+tNIMk_Xk;dVtzJ*s)o@mEl{|(>i{Q z^nBuFEUXDb7uyEs2_zG~7@Pk{>_cR5s>6!;mkMpPM$Y@StTh{_8hr`SQ4sKn?;2{C zSX}#Q6j;p~jH)bOF8dD7YmFP?0#dNMQ+VHoBI-%08t_d?c}oaL*Pj!PqK*VO%pdbuoEY9Pz{Iiq;t z^S)cBmuM3_7dTU@iNb7inRJSSt*y?&FhT49_gsmZ(ccKxvJF$VjY;*1LwkD1)7St_ zC1@fB#betaEd?Fxi{Tc4L^wo3ldiEps7x{OA3soVfRo!+qgC=E=MGR$ zT%z%)1Tue6Way5}>R;Sv)%cLrI778IqMjmo-iT6Sbw@LV9%;3`q|63*m7z7~7$|4h zpU-cwGA(fG-3_p3s6I?rJo-iz_J=f5MN6BoU?c1Yx^H|g1dl~J#jSAiA{3p4-eds< zEx%ziAN_i9UVX#oxFRI!VB`laANdC~Rl`yMUEm2}Tr5d(EilPpg{IL8*d@z6vMUb0 zZ`X8<;?OT5bcHxHucy?W4P{-l3*V*RdMboxo!+f@(}P;WLvJ|1^T`h?ZU%CAE{c

h9z>JhgnG`CG-0fltgw{y)1K86@kdK&CkbL4MrK|J5q|q3<_Jp* z)3C0d*I$SwBd*s;`P?3uh~+|&*LlMF(17;@_{JB(@fQr2+n~EQjQT_zW@$T$z@@MN z;xQZ2cP?0d7roo3{8-M5@Q5<{gfis!&ARep%t-UQW&}+|NOjI#DaV+gf(27Ew}N|# zo9rZu{K7GT-RG+m1ye?a_INl@j_?7#!FZTomaXe(<(!6Xs zXd^PSi@UZnml>Z6o=0(D7zlO1OaaY%J8_>*9%DDk-L-JGWVYt(8*G_D2RkQ}okl;d z3O|AQcAG~B-7cU?P}%WsXKQkPC|SZ4h)vMVuz>G!`}%mLW$TB`NJX@}z{*J)5$qX_ z5obspDe~Y{p4sesNmhoI?4f#-R~Zt(?)P6Ox>8|+lP-;n?>B39)cIc+P47hMYTj4g z8e&lQp^hSGcW6JkWH0JQsFM2l=|zS0@6m@E{u@s;`TD$LWL35x4p$9(ZXyIe(h3CL zJqov+SN8%1bG+xNzj?$>BK$@O|CAoVu}VQ&qO%Js_L5njjwoz}x7A$Clayms@j!5p zTq6xa+_N*0ALT&Q=^$^xRer0D_T<(H?}`-CC6$w&zwQOQ$H(*>m^@poB57Dgj_GfU z?fmZC;nO9Y4{kcPiVwl#2lu%~E`cJ*T1xO8{W=dV_Jv(LXG3*EO0zGgl-9E+%SH<+ ztb#@jK0uhWX@k>Rqt!;(Rw?(y=L9I%%hf#-5pB0F9Ca2G%crN71q%$>&DHq>5Cgkp zlY%HbNb=JcmJ6+1b-evXp7ryBwDu$2li+M`tp?MSzNH6JGyLH|B49Ph`Dt%+^4yQ; zYg2*^w7h0}mPf#>H(UzLsLxyQc;AA@i$7#lLs*inEmUO}Lu@?j;H!C}mT;+&xx<-M zu5qZA)W}6v40?(cmZ$Ikz``p_(F1)vlpz~6pCCBccK;4LOw*EISwRwltLfKkUa(i2k z*)Q=kQAVX2VdoaUNcnkOyX==7%d4VD%HwG7hVK8QBKDk#4ET6VgA@SBrEi4%#UsOkM?E)^KU9v$BF zZsB?`Nqa24cGho~A)&HHQ5bHMbmQ}Q&fGGh<9vIvjER~5_Ke3s0 z1=7H^&-ROC@kd_TAw@$8PnuU;KC?7c&4mQ=-R^5VgMSEb_}ib$gUkLExZod(5@be9 z?_NrBOq3;a^g|V5UIz}R zd)XgeQicglP_r|pxwIL+0o;Qz;+eD4j%l4X03ssdp;NC^=6=;qp# z;TOPjap()bW4$ANBp9g}GxV3T$Z@tfBh;Zd4*N&psCF45$+!8Q)0y0rZ(x8WUlUHf9NG%6o(Li*hLRA z${7gvt!a&1B6}@2&Y(x=keu%K6wa=VAJHf_uNkPzzIHqzKWn>_?pn-%|`qHPmkBHXU178g*$_5fAh5YiCZiX9qiOy>psSzDuTT$f! zn=e(=7#}Eyvnp)wrOFD(CgU{qhFm__E>Mx6qCjhxp0*W5fFhC;k!M3B`CBKIpKeJ% zkn6etm*d4WzvT~b*$8)5tlFa!_Gu>VH(rusLENEvarwqdBS|M;VQZIDSn3pKd-Yl) z=`uUtt?2M=eu}>`J53Fj8bZS@v~#Ubm6%^WN9z=H9-S3GP!RX_^FLViMy!cksA`68>(BF;EU{*>A^w}oQ3Dy#hUxI6u5U`9<9DP z(L^!Wy~T$v6#WU35?;Jh2o>#nA-v_fyzodUutyZhGqJ%SwURaq8X1xvy0=a;P%m&V z4ZYWIMU0b9=ya2nt=dga3j-~DG#1Wjh?Z8^&$S{+5&Mmfq@@UbA}asDPw#DHjhSlP zSXMMjR=_?e(W>E9go*peugQDKgfdQfgtPA(@Pd!L9?c{y;EM%cV0m9how~E&A4M5W z-=RyowFgr2Af2L$_qgS%Wp2`tPn6mV|A}X=eImgQR3nsPq}G}3@#orr2QwUg)NMxg z743Kfhck72hW5uHLIkB*X#wKLN51 zZZ{Y!*cWWeas#>f4LAG@+wx!mt{^{MLp7d@E;KQLkoh{$EC{LK%G_4+YwCL3_C7xw*akadMb|ley03!HZkhWv{=xDXJN2@lZt6KM}4ZxW5 z>6PXTPGWCrQa;Ma6-Ujy_k*Zs3BFQ3tNf%JeH-?!3fOT*I+7^{8@Ax7>3UGmtrr`C z;Rh{d1?FKm3V(!op7CEG|h`WrH4<8HUjf*I6P(s6`|&^IDkk;3IZ}CM_*!pjS`MweH{Wx6?E8_W$@J4{ z{UtA3EeGBpzv03GGBtJHWcN;Sdl=?#=x@u zf-`f`wl!HsF)QKQSTdDN zD}dO7#;{sLHTG_QF%W}#vFoV`WHPoa*A)YZ7MI>gzHk+HRQaI8&@|kob@fWRkyp{5 z#+MvLca$~l{w$ln{g-A=OF=S)({-iPG&Vy|c9Y}iy|Q55NvAL=^)M^SFO)2WB}uly z_s%o|vgZq$$2@MtGDf3QU4sj?%!Z_vclQ` zTUT3aw2KUCz};)8MmF8*@IF82ZB230y_)t(g`2icyzbe8Ja1JPA{BBfQcBNSeZKLN zcI+ychdJp~SR|yaBDTOGNn_Ckbmetav#69!u*7&|{57|N*q`8cUZl2XmaWk%p?({- z* z>6RTVo_(4_zkKCI`#<-nOajb9%frnqZ(~T|y>7VIrdV?waSIdLRI^J8)XX)%PwSLbRo1G>qk}T?`Su| znm;rzhGUvSd8M-ys=&y;r&?+%HuWp7e*BVrTCku#^?)QNShi(d|5bI2$v}_yH*zl- zE$n`n=xIAohy1>AIk&o_R!=eQ>Wt50-zEG__24|cNe%gwc)0CO6iNYr&LrOb2!)k= zleBviQp}P+0KEqSP_FQmyMv5c-#nu*e77*M3`l8`hCJ8M3V-)Hb!BdFCF7J!fFA$%i&E0!vmu=HsWGUeMqBMEC zRO9d~S^tv;`w zfCXq&-@omdd64=yfmSS=f6Xo7J4#je|DB?(hAeL+<~K)+;hC1v%b-D(JpZizB+$;&Fad0+;m-MrqhSpYWg5=!3huaz%=oz`S zuZX(5`(Cp6Mh>*pM{^33z>?`W(qU)2hAsSOWXIEyQMw~}o;1IVW&v7^%7nkhnOZ`g2sTiG2HitbuF{64gGEpTJ6)l1dm~_hUa%H`guHb*mL}*dz zX!7}%B~84Hi#D`qs-*@mKi3h>YB6r%0Fi!l%>+L&AY+B0QjBKwk&&y{Q0^^O?eggj zN0yeeG?O98*MrMY#$H{S*Zz2-c}C|PFqcCWl@;}%A1lP?GRoVfWaB^|rlPiD?~mVVu^p$4 zPVgNN?T{{xS%BE2xI&vf3rwxEqNZ#^Mln8~SAfr}A3iNqC zruZ1oJok7kcU;(2epDaGxJPIG*LFYx2oajojPklKqW{n}an&pMLgpFM_MXs_5(fwM zjQ;Ei?l{bHHNX(=8+7yIRtVKbjS7_&-*}HrwXGuRXL6T@N?%g{55BC+1s>SNGpO&+ zYD1w1h==IV51W!ZvD6>IAcMWYhwjtxT{g_jdg7jSm+=I!t0ZwKAB+U}W#QH$FjC;( z?F-o{W$V7%(~5|8gLAlha(%VeJZPZ@m=vYsU!IkEQ5`5E8=RbUjksQvd!J6kBcIuo zW`2zhiC!{5dWQl~C^Jpn6(lFIAlZ1K!jAKkZj^MC0mM+iHVX1SoS-qz9`-|g$R(^K zxU5q83tIPqC1KQq0Z2bPnbFjPCw{ioHKaAAT|hQBI}9lL6Asj1j|}&C{gYDEYz+Ta z160@-WXkc;TgrTMc#odqG-uG>pdN`ll}XEzvu`tUX=fliDwE>xvG(9(xick&8uNq! zCps`gTg>Bc-@I1uM^eWqLqK=xQk_GnC6ew8|bl~ke}SCj+T-TW@R*PKJ_db z$C3W1dvDyKBhTH1{5xqmnzR(J|<~4sgRO z+_|bRVtab}*41UKq@hpfLVyNQ&S| zO3V&PzH_JK8ZwF>NTdKi{Qn+8YLmTRd?1(fsH_VF4W9R<@f$<@1`wknMqSG?htgcb z4>F_}%Y!_xxe2TeWdeN~Q>kz4a;Hy?M5tI-@4F))A z>tEgnezLgqU*q?Dx4O;!1oyqpNrYP51a7h}DPa6Jr-C}8JxCGnK^Q$M1sQe(=_9$W zH*z&q(T}-9r0uXkBDxKK(OOWX@J`4es)3-782Kf2f>);O4NrwOFq%exuZwr4%EeTg z-}pGE0w-hj`D%vo!BKZe-uv9vWW*b}yWIPCNRvAcH?U~n%eSasejPME#i_u~XpfZ+ z%fhOXJP$AQoy>Y(TP^4ToD_c0w2})*SIfxadn`ZwfKR+Uc(psqd^en+h&N7?2a%7U z-bb#;k$#C74{+x=An!ZW18qRvtt!7zVasUUQ;gx=c+XEKLlkBWM|ZM-bkh$tHX$-i z3RB6+jv;r|+H)#DMXSZ~1r6;zG#vj@`3(@ui@>2f8H`xm)1Q|H^hIlj&A^QyUR}e( ztRzymwJT^oTJog0ek?CMwRB-^HB{-7m6G>E%EQe<^PIooBYMB*LXMn&HuHmq-Y;$H zT94K$BmS?8PP{|I+q!WhfG>zWTEiT}0$MQ@+UKNKOyGKuv1%=F|d^e9=kdkS?-1hpuxBVgbR&5#B1XLYnP6q#ka1$G0us1RJp!!&sRqx6i75g zZHt)ep)N!1RC%AY@J+wMabRpROuWZL$7-EW)h{iw0iEwmm8dDsox>+I^paqfoOX6C zVBD7x_Ut%t$LH5BB5QRF7ruuYSI5}b%dnep$nU!ocs@r5;J-7K17&Ad_PuA*n&hZ@ z&G~lS=1WF_ue7qrv*UvnU9F=YYb}I_VnG)2CPp8vs{Ztib58uAE^w0rdkDPmE8uwH zA}hn@scLYZ(8d|X1+FrAaLiCjWA!V)&;9A3dIw%t&@}Ux`$lWdjDIw#1}Ac)u8-=^ zUSPEM(kr-YfA+dZFX}5$g=m&s~rkAT($ucghh z#%^Uv#=LT@r0daULL9DVo$FBVU4Q~i(2!L9IR!3jw5n2q@h9+5uWC}>8>0SuB%$ay zfVlsEi%_|VEFW2h5|Frm{|o9=iG{xPoLHXaqmk;q^TD6UB?k^=LhB`Ib0jmGx>VqP ze+mb)lwxD&<_!KG4GpbunK&<23kNI`v~^T*H>=ck&$&7=3WN7fp&9~)8oOAK0UsM; zhu&1W@14PX=6_e@I@k7>t|_G!h8QH2g^$?PjA_;Xd_N0na?C6@Hd%A{e++T-q4^!1 z*Ni4T9ei*(3kqN6q>f+`?Z^TLMzZHzXR-@gWZ}7r_dC}wCs**#H*0Ud?VaMB;GteV zlj!^A{fM2;liB(}hd;-2d-#j$l!uvEM*Y3zozC_h#bHBk71G#OWZC3FUn87zpaKO$ zQ0UcBtoh@(Pjef|0V|yXVx>8__0pi#rM3jfds18wnN!%G#70BFF$EWxmF+)U1s-P3 z{;LuF-`^nxEPj)qM#{T~K0ni%#;8|T8hbeU%KVN7cQ?mE8s%l*sIBDPkytJhsT%$2 zTb$~yY4|Q}Rmh-5_QG>^A?B?tc|k8*8`W_gmO!1>k#HbwtDyaFC;6))iaBJcYCx*1 zQTTq_16LYzSrdmsrt=+7S7LJ!*F{+?^KSWuZvS#V`x$Cvxz8i`D?iuIrA%Q3?uQe0 z1?dKd5OFpx>?3fa)vSU+d6zslH8c6`&Y7Sbw2l!41%(@mo{XAUJ@==`tC!jd=Bw8$ zbnnwG0(sN^!`NZy8qdFXokYENmD`eqc}!OjIW1vbH?DZegBFVoylg(G#VawLxk-v} z%zRW@vJ1_nEe?55uanzet;AB?h~+ap{-$Cd;Z1N*A2r@LX=CSVmyW}6@?6$$btaAL z$cwpvzC_nLiSGZVY>o|+fcPTSefufw&U2eb+t6@eHej=qEB=HY8k7`w0d^VdLVL4> zY1upT36CWAWux1vdVEZLIlsP3+P482J=qEDMIqI8&%;K<38gdBwc)LeD`>!RKNH>H z7?$`RF)$*rn3Lxp1?O`c!jM&V^;{b%hnsCujpS>)BuV7HUw*{~!{npMsC<_eioS3R zKk4-ZkOxuyw1|>gK=zE{x_Y$mR4?@j3$ERTqo*y(vp+$N-UI zj4=b7*Pfwl?tKv!l;lQ&Nm~;qJ)So}zG7LFwbsUzN@#Q!@gDQxXpcR&j!J6+YK!GT zX1roND%|QVyp}D~wAS&8IvlHSKYJ1LLQ86Eg)48?_>q48nN$+rvr=1xFTIhHkuW=ZK)U<7*G>Ys_bRuTH&%bL}*zV)ipu60L-_4g6Pe1e;OKURxr>$PqOQ!PL8fsb| z2fiZEp4zE(0bT0WIb9&hEwe%6z%+Z{d{4|`6ntA<^`7fM{$R-*?se2`Y{A1|v3Q{X zE|4Zyy+`@Y3@(M76g6~%{(J%$?_E3jqRU%UIB|XROI8#jY@0ZNR%(4l~I=@=JNh0p4nizcB61Du1wd%_FCyuJHBa?Y~ zTJg)v>vMLWa>$$4M;>NA=6L`#{%hNU6!93oXmeCHDJ|cHHqs987#()cf-;J7-VLe( zJUr~?nb&>mhz&Yq3Vgi*QnAgCtl{w1l1`u9OKWPl4P2zM(A$?@Yb_;m$sX=!9WDN& zI!kWnx!fH;XZeF_quhF^Cw^A9itldaxwSJ7mWEPzp*hQ{zsCWXF{ER7|Bb77_qFmc z$xqAYd#YF!F5{1#Ct2@H6|I87~yv9JsNjs8+ki*r3)5D|a7Wk#Af{*uRVT7f7)LtWZXJ z@5jrMKA!eq$@p=d?ixwMAFjm`e6&fw9(=d7S72#ac{l54%IQYd#>^?ypJ%QQuphOm z8qaTTa3R<3`vQo`ARTzMX#*f0?ZL>Ql$0XqIw3X(Th9pUglufGP)i9u#PU=QB)%L_ z)Uat&>>PYykFH!LE^(gJg&v(do-`qetJ1k)Rkfv`NC&RLf`tOfCJ4^qOr*+%aU=% zxiVsC-C6?_8c5N^aS`{0b0mC-Sl4i@Z{a8fugyCX%yGa+z? zW=9*D*hcW{Tn`*>bLN4mFSVXWS_1F~?{u%+f2n$^X1>O{mKZy9m9wG4xPhE5x5`P! zt;?;`1vx&n`gJ>fE;9A!y!Lu3%)&ou%%$fS$c%_#MSUsztDS!?OI6&u;lRfmn8i8M~#?wsXE0&QEwT|ps# z>*kzS=<;&%Ow|>CyVK;WW;LmFcEet`(>MyKajyVmnv1)na;J`14{yn#c79(`@cz#n z@_W2gDlY-3DS{`c$Bh=92j)3e(I;abVt-mShHB z$RLZl&QQ!!XHm3^BB5~z>8NdgmFaVbW~Yb)Nu12*i~SA`8I(OdJrkJ~vXrXzh9zk0 zK%XWNwe*YVP<_r({uB0;;W5%sh@;kDqx&1V#xkF4G~W@+c^ISDpZ72#7s$a1s0B-S zmTebOQBye;bCh>4-#E=A5XT=UhSluoe0yquE4lx{jrk8uB?_}3H?F1+8wO!Pi;gU{ zBF&M;THDtj8Bu`dK9-Vg`)wh zb*^4#CjYpKLpS%7YkdCtd) zt>>p3s;(mHFPP-tzI2eoi+hb&P)f zbCq+R%ngUaEpQjmvOFC9BdEo=Y=hlqKPf>}sFk(!Ll9ugSuNMo7_;5}DJFla1H|~a zrn+X}t10J;^KA?s1bWrSHP)|k3bc*x3d^$38q9&LmmiCL?vCW*3kIt$bgyY{_JT}# z7ACE_v?Qw)Ar%pyGM_^@?;=Lc2B!O1T+P6TU|MUV#`E?yZ_%NlA zRK2v_nR~56k2LnM?tPg9Zcqv>51th!`83Ld^87EOq!T?D@^clsT0UnIF8qg}{g}GQ zN3uMy>Va5sDS%Hm**nS$Zm)AE*b?3uSZyDYpe^${h6>N?x$B3 zD*8x(F~y0ZwM|6L5(X)Eft%=6Q78ZI1E%ca*@WgZU3$MG-1Fb3=fwWI3UTW57MCba zkM{-|L3=GMd$rw)sfGnF;`qxiL1k6Yd3*16UKs=>WJhM|3~{M4xA|{x+=|zEqx4=Y za}fp&%3{78r^Z#(>qppJaIS)Ky4}&n#Nk`7=i~u#y=^*>>MvXhrgB3U8Bna1zK4wy zQf>8IL76}`{Ho6j=k`@Fuo5UAjb3q_(37pFhRv)00lNb9#v-OA=I`Fp zEua<JS0slgQTBM#l4$C8d3$PUm zFvJiBNcmrT|0A*YR^hrtXdD&o#jSYS6f(oYo5?#2I|G5W49~C+0*3qEWX0c0^Lj=>g*(bHwOv?l6=;_B88z2;hVhfxheOz-da=x) z4~}m?m3=OHw32{yCnZ2d59sE3_4eNdd$im+|9zwUv5wu8E#nAYu$AY=RHVo0_ZF*C zSL%kJ(0FowQaa6szkKH@=~K{#)2)Vk&9k8CPYWT6wgFxBj-# z!4t`TU7qsW%e6L7Rb#emt(7d}1zm|p&Y;=t=+(bu4MG#j(E`L;hd9PL47|(mbh0I-RV~V1tQ}^p%#T^e01y>?N%9ZaSH3}N4syU z2);yVG3i9nCFKA=0R(0;NHSGCOFYemePi)7o4eo5bd>b>TC7miNbQ@tRAgbtqe`^MRVeM;Z5t%ioaK zzq;KKgXN}RD=Tk*6`Zc56%gf7!=UhO{lQGg7sdQoFex^l$^ z0BTDmVl%4ApgHZ=@aWcO+Tz(UM<8A{V0Kd1;`@mF2>E}Qdhd9u-#>2ra73~@mF}6qKC;)b4k9Dt5RvSW9VOX&?=5>CTh=kpv3_sg`*%Mc_y6y4UDs=` z=d~l17tHDTiTf$0>m7%@Zn0tW(F-;k+gJ9Wzx;j80{=umx|3=ym>yN=8}bNC6mipF ztR;j@!(};|f54F$Z8Hdy>bQoNJZXZT?EVXd+!+)CauNIf@QEvOM%F#v2^2=cZn$*_ zOmo(>bz+0v^q8G3;6Cu1CN*p*Nlq3yI z_`06kQ;I=fH-Ci=jLII~N^;s=STc5-$tU#CMG}^|ZHED6kQfIPjQa0=+jsqp<>I8% zWE(DLFK6fO`(w7migPBoDdgD36JAa(bD`M{zR&h~o!rdzRJYGw(O%Z$c~8)>_~`*4 z1&CZvJ$MS#@T??hq|n7UfmIogu`fAr(B|hQhIm|7W3H^i_#e*?<}ljinD6#~KNsl^ z&aBHgN>P4RA>cVx2>iCU_hb~5wOC4TuPVh0rdrLkDHD{}GYD>>rL8;aV#tFpdy6hh zCkoBObO?`ZVgq`fT~}*2oO{93>4PN@g#*za$grW=o=_dDJ64OK%zd&E*Kx*8BS)5w zQ?f$4yj0Q}w6t1tt|gH#UWN?vbwNfYtdh?1rhsx+5S`qe^!2obk(aCfo6L?$-pqWC z>k{?i=w8%{SRLg*ng-r1PsJ|t&kG4pGgZk39A0+XB-NbGzi$sIo0IJO-VM)Aw2xOy zZ2Kjm`OVhodqnt7lKZd3$Hw3Lu8!;3<$&s8tkEdpp5Y7k)n`bC+5q>KZ>bvBXakGi z@(Li;nzhSJ7bOt4p)|6D?Zt#}GcwZdpuEr%19Ai7q>E8a>n5EcEC|VIlf2Hj)P)xXkhL%mdUw|?%QR)8_d9~inXLBPc7j3y~qw4E+pb_H%hfzzygM53g zQ zh&*R}BMQKiYX9nJ{=S~LQD8vLta`%id*COY;gYc#^R-V^~4okYw@0p1& zeQhvfa4QL@N84G?HTyn!bWeXrb3M%%Q1MVBsBM@yEyyDv)E1U+Gk!8XTI5HF*L>=| z#}kQ%@S-AH{Sa}fEi{;M%tq@l?UWhd^c+P8LB89ZC<7^<1P@i{LGaPwo#?%$VIzcf z7g5)KcdNQo;=D5m zIVYn!gRbN=W`@sw(}#Hp{GVSP-md#L=VayFOQ97JW2YCMb;uWQ7;a||a=Uv7F3?f7 z_>eyEZ(iHZZTnx4-gp8T5*$RH8Z;M^b^`R1Szvg@YNi4Fx&@QZUwzp#oIVWFHL*Oh z1HD$0Qjb!pS1YEXJdAlYcr6%0<-@ceahBi_3{Cpyn6gWNx=wb`fPD65K&Ky{<~t9* z^=5L{d=}1%>m9$EPHEri7OL-YIc#8M$IsuVSXGht0eug+iVbOvNY_~Q$CtmW7Ib(_5X82g{B|Hz=6-5LW0Am1@vY_wqe=Ct zwN#%Myz>@)*FODf{@t*yS9)F1($V>h55m%SExN+O;*l>K&_oa^y)%G1)IKj%<8Zxo z54yerNteCkN0GkV8G)md69+;vgIT7dQ}JpP4+G9h1CF$XEON(2C@(_>{?VD@=f6C8 zH;z{Y68i$XiiNb-TGJ2i7eV46!Z9C`WxM(VIcGl3Q7-f`xj03)sr#KRH8TX+`KTK- z2Sa)&RZ+W1!nwnkaC-*X#)a0#umDZHY0i)lZAQ+M9#wRFq}#$jt=dY?-irYviJ3g_jtVgw3Y==A>Dw4U_^pPq*qWm9UbqFGMw*m^b(vu^b$1e-YMjh|y)u`CBSU^&m?j5y9L^tHRuVtnX z0_#4x8a3j)V~hhMgX`ap!mm+ljVdonxiIPuj~GA0Jw3f1R!RbUj5*`e^7$J_SXcp?eJu##3-!AFa~kBxE_3c zCb<&!ZpcB?VQ3+9E)Dh{VOeaBm+16G)HWDracV7O+d53QjFZw2HiL-jJtlrL(z!t12x1{4mWEB13U&NvaAXR(cE-~yyBawuP? zSm{txE>`d}BgX;rH=+jnS{eLnk#EnnlRQRq&6oF}t{#f=z9G%3ge+Y7I*_i{u!iax z^1oNE%Dt&I_@H;UsP(O^U{fWgciBHRw3aSXa#8TVP5v$Oy{Zms=V+yio*&Lx~sgw!A;7)Gy2Dv|2F zC`0`Dn7M;d)oTrVo;9aa5^UKel8tV=i2_<#*Fz5W$V~)dN+#Ls$&$SKWL;^`o5ipL z8d?{9u&A0Pa3{rIRuDeAz7Iu6Gi-lZd+%Swt6GvYqbc?CLbH^Az*R6PF5A3K4vQ$P zTbCBcx$7im6j4i3k>B#|(twozKjoXD*w-Fy4x&4|X7Br7objLE^ZEGYJ-O_MtQL?lkF_$KpZ@VHQIT() z;Qx<)#wTA%XRR}=JZFLgUnZU-y1|Kp!SEiWh9#l#B@=g;3*IUMH3zKZqWq+quL2P( z5E}tx2Q7wG@#B_mL;r$2GLu9#+?xzv%!*of4aOALgRE*(S&3bgs#gYE~ppdWnePZpemS-_~B^4mMhL|EDO`tpHQi>S5f3L5%o!1T&3sYk~TbA8i zp5V46wYFS_*?C1n`kdNWK_~q61kqty)cf)+X85C0J=EyaVI^}l=Gb7UJt&G!rm?el z18mA>Ep-?w(yrdG=G|dm;|RoW(~ev?t=F|TljrdM14%-hMAF4U)*4T;CgVZTLajm> zYTMyR85J#k>)>;Wh4k|^Q6kmGpu3gXRJ#*=CjJe^9+WR$#Qg5rA+2PE5vW20M& zTGD}?Fr(jks}uLBV9$eTzts(0@79ua%<$1zya9chHYl5(8{lBO>003QR%WlztT0i^ zC*{#bkYHElKYrd}8sg8Lj=;Tqr~InL*Pq~ON~%*Y+f!&|wg((IOZn{U!i0gTpNOmU z^plXWYfl0qO@rDf*;(dn;NgyYOMTmSu0aRg$)^cJWKBtG2?F@vPk1l$`$Ut{Sd=ua zvh=Vn1SOjKj?jpU(>S=}(C)yO_^oUZK-0A$90#FQ_L@jsG zfNU30AS=jaq^eic

&ZdH90Q;&8qG%iS=e@|n#pOIf95g}HT#6iflktTww*w|#K$ zk=+5ihZKC^8osf3HUux#_ZL1(7Vde^80W^5W&~8~7{m`dTmxMUl$+|l?`W`kK4MaG z&+3N#b;|1}Cj06TZS=?Z?sk(MmVP7-T1)|5$g|CveF1A?;wOWy`2NF2nXw6MUWq4I znCA-h30t7X;`pr2ylSbL z*wOrmRP?R`r^TD1pvBKzLK@iy8$ZFciJ*RYuJ{z49Vn7ZZH%`z-OD^iV z{<#b+@V=iag|ji_5=VG6xCQf(v|&YVv->Ve(bE~;dp~^;_A`zS>UdtK)_XL7JpF-T zWwe2Q_Gkx^F0bE$gw?1;gIJfAn&k0Eb&s)k9ouivAfroJfXt3|K=9lU#dqx46Y;%A zcc#+udUTgJC^TY``2O45i*kz{TE6^rrgA0UF$2EA`}fw`tOR!Q9XHxdcO4I6Fb|H2 zLgwMa9dtsP;xkUMiNJ_NPfau3RAa@W73_Se<GP<5+$YGdM}ye7PI*x^-nO>+g&E_XUqO}((^I~53zV_ zp~LjAX+eHfYVMB`=q8hXV|4(ZD~}3udp5LD>A6al4M==k$HMrdijUM_=;jBdq%w8g zZ9L%ReIKsl7y6$s9t?eXaRg>bkz|R}O0p?A>!8%CXV+yEXYh1wQE%2guPW?&qY~`? zz&~#okZY!~u#lP~lH@R<9s>GiomO+7RP&=l4pkGkPfu#XtCOFGPh~bt z$28axUcqf*4pEkl1FD!Q+v;#LVaNBJ_v2j{s=T?Iu(%~Zv!?kdXIHbDY(t*+=Vfyr zl`F%BR58Rrh>i3>56lp`$8S4xuXqcxDWy|<@M~sh*}b`=m&R1n>HTCBt668zouzE* z1EqV!Q^s(iL~R14B6ojP8zu%{!)GCOu_4{@^|z6*uR@}D)TJj^Dz|hO0lx$WRfZUo4t1bJYuRirkGm)MfwfjiHh)+qy#_Y5kJjw<#P5u&iXv zG-XnD*G6GocMaIZ4QvBSyUHVW$H{Rc8r7rjxHJU!=duTY2gGx4C!^)9qzrk?FkNob zr-6JiJDD!6aY}B(x^M1ZegK>nVF)8X(DK)SrnM{#PkVuEhn%qtzYtYZ`ojfBuU z`^9L?fYM-V@-tR4@#6^5?NWbyhb6&zi)m_fZ%ZvL5@ptcUSLMGjk7AxU32is-B0w6 zgnI{eQaCC4anQ$MWkR*256$$>llgHnrF_z9{RfQat&ki;P8q@EpA@_&dtK2;+`~&5 z+iJTMp#H1t6y4wYUWuGNC*xg~cL!akaLs)ZJ3(V!Bb?&$O}#?O%qZ?5j@w@_xv^ZM zQ!Afzt$$lgaKJ<%q!hJRbIw0)Gk|%e!!hC#Ye8(CKqTRq$L>_umTvi}$1+t0cgA6) z$17Xa)wu|=Hb?P3G^9xFwa}cX)TkJKE2iK)&9JO^D5vRkAQ<2iksB;BdJ?;B8pUAy z$y;5zuzWz8HTe8jL>l>hUVSLHCzXirDZ6i-#H zs;vY?^eabxRE+=64zkA3f)VX~ew%2bLz`-$hYcFYEPgrW4P3umTR*-Z&zF+OnQFF; zlgch=!|J^{9WMtcW%@!zG54-(di5i1eTzf=8`~`+-b}i7pmAUjs!Y~{MHePo)1o|F zL*lUi^J&h1(jyuPnA3)%%6*t^D!Y%gn81Xk+rHDivGUX*mnf`e?LN&@PFG9;e|ZWXAVaA_&>U%v1jZHv5NjEmK%nZZ0s zi`1hT{;$1wvE%n#?dIQy-2O7zW0XQVs`~&I3()i#Zg8AGG8pxns`Z!b@-3|8BJm*z zCIaO5X&G6T6)ac#1mlur*SLeKa6bq$3yG;QC{w(D3aRqOf91Y6pP`s6+cf0n1KYhrW=B#ZGt^NB&$P*m`(re;p`IcsX3uOhI}7`P>4#o;E<$l@ z)Hp2csmJd8@#sr-$?(}lz3SZ{b$7V}7XtsAAdAQf8V?|NWPLunFQd}R9jQ;gpb+h7 zlH3!dJZw`L^xN-3N{v#g?)LiiJqFbj^NIzij?-k8S{tz~LhT2uQG~b@Q6@!~X3SHj zhV`mA4tJVU|G}b9QwH;`tB=?x_Y;m`#yB7bpByjkXr|2kIODPaT2$4|?(Ur~lm>`T z=`zf^o!%vBYx-pt&LlRC27@%%^UNsOXISk);{0)Rb0X5Nue0ib*{} z^2uZP_sXP($OH#tBBQkP6O76s_^5iei`!Q3N;xQt2ER7 zH+L$iu0lXHpZ<*(%nEEB=C>$uNohk5Q0qg>VyOq8@cQI?|MPGXl-aOgy@Bij7Z0&! znu}*{K<#-pWb-C=IW*G$zG3OZEJd);KE5}dpx$0S_2a6)OrK!?-OW9o#l$WBsgiHO z%pBNZ(5-z(y%+N7esUtXo8)^p>~Xn)=0(=t89hrqjpod*b|j&UE2(JdIc3G`>Rjjl zxO+}SUY$h-uu4bmwR$u+GbvhnOH(SSQuvhpQ~&y_-9Iiq5PUf>Fo8O?xl}&HEE)ef zje`x*HjMxd_f`yD%NT)*?h->0F}F)`PUGuKIpAT3WRM{YGMdZRD6hhAUmP6#tkp#(wkR%{Wb;GcQ<u&7B#mDI1th_k0fw9c^zC)QPu*lLkN8P% z-CDh;?7zV9zg-|;YCqx~s+&K9aCte)fsQPq^y~uzQJT|;x9_Su&~b2AM3rV1v@5zIS7;4aEM{Y&@8?gt&=Ne;3}iqP&RhGkZ~xJJKZ zd_K?aJ2>p!XBq7pAbcL&PFyaZec!_2oz^^>mN}QSC_Rzc4s_AeLal*VWdpSzP_wHj zh7w0q*&9x6xB>Yvo^`o=3ZCY42dP`PSsnwo0~$qBhC(#lGn&HOKLC+{i`7#WUfDw# z^%oa~xu~PZq~TCa7XxPdBwXLuMgCOJ)|0A+W@EYKh0&N#8~@$$z6U+RA|Fs#b*bL7 zW$)X2-WL1B$7nR{FC1^Sv_PTWYy#nh-e-?3&N%#Zq!+81vN1MztP$sLw>W59>-e+C zHd|Nxl6MNNHvyyqyd;dQUDz7|2xu$KWO_B-gl4 z3$nPHRGLt=C)V2YFftff z3`n&WecPy~t72FQ&>T~_xd`~%w0l}XMbDy=s4V(o?hu z#hX{SBc6FCsXl=NnYIv-);!}4R`K=$ahC{4jwdJ?FW;Sx+{_ABbU&gXEUXKqNc%Co z>M_9I1)qO+p z)EsYmipSi=gk^gKHKkOavzic-{v8iCZyhAWe!e|cAkCWd%T#{GF9aOKGW%&ne>m@V zTf56pe)0NW_!tIVVEo6ox^IWY?d7yUXdh9nEKesF{#;)eHT9yjc{nOY*4Ro6392H#jENipk3{d(6EDti>0 zGdONb2iKQ%Y8uvEA;C9uQ!I7_AABk(3&G!K1;+9cWNmkuYj!x~i@ot-rK4v6EblIJ z-Bui33ZE)7x}B{>VM;fc1IxjFB+UItu|4NmO5UHMxLOTnz|tiS&El$_H5AC~OF6dw zV&er{zkTV}&9v`w=5S9KzJ26(z-Ld?Xy=iy+HM+o;~FN4*uYxP8PIk=4mv_;Vg z00Z^HN8QkL6Y0Zizh@6^wwH|81DD~Kf@8I_Ahr_TqP#7}hx41ckFG%-*)80etK%Ci zsASf4F!{^ebGQ2M4z^twNYwpjT>NIPL+hN|Hlc#>%GP&vuJFqE=@B?yu0Qoo>fp<6 z`yQ6S1Wlrry6r$pCcOvTQRTtKHTQK)l!Xp}p?+uK z`Re_tm|t+ti@3V_T==m7`$bq%3BxKnT4IYn*&djK=3)2H)q7U7_bJ6{Q-51x#jx=q1aH>e-EifL+H^ch8 z3}UZTP3O~3yd~nTSDhXH*TUm(LeXHx z(<#wKnau)=yP2*PVUsqOlKz`kr}-8D^^ z8UUCHmg~FGbV*KKWO~+L=VOp73V)@doYw8P#Fph%XQjGH(plsCMWtGw)546cWHx^p ztrujth8#7XgqZmpnJE!JvaS!P6~MgAm)7eu4x&>l;2@xO0U)S4qIXB^S#!Nufi{4t zD17u-V@q?thT59WMMvwsL~KHT>%$)W#VtK)_R zi4q-?4Msf@!T{sHqi;`&R;laz_`EiM%RlJif1&Yh)cvrFS6Oo->%MPK5{X@zc&(S% z@TjmHReB0`cvla`|7Z-^)EyD#h}Tacu)*n(L+ZmZ6f#?FotAa?iWZtBC$YacrXHl` zB3k%SR!8oSF#|v{^Xt!3hv35u zI4J&8F7wL0c_p^N(4D}0n&`g%FLMXD*oIsRCdE5)QOZ9TW$q}__~#lurxT}#8P>U~ zrIzF?!1~$}WC|=JM~+6^CL;N%n%Y|VkXA=jHM#a3n63nhmTp~!s-O|kHaGQp{>a0a zxw4QyJzaD&ZXu%H+OYL69ZB2#LKA?+uAeJ$ zM@u`G31PEj6$2f>+>F3oT2C;;{ohOuc4>!s4}{+O+36Tzi&t0370Rs;ZJOA8*0@Om?&mfs&~lnlwqM?`=WJm zuV`1HQef?mQ5SHD)zm`Uqz8C0>Z26Pt**Vmb+-Jo1jiGm2&%p4SHHiKKMz(r&4o7e zBzt%D9*vX~LCO$OqU+EF{+v7_fS*MnzI06^;NNXIm+1~I8F6}!XIPPT#bVYQgdbXg zv_dJuDdJ~>2LFFidN_2IwCz#r60U`OD}WBEwq#CGOjUI@kdT&Lf4W`W*-rxsgQkdf zu4a@Jwc;9-d|Y}h*hZo4@vL|6$fx-Kj;f+}2B6fsKB!H~u*rNJHpxxh;D+mzLaKn- z%Zet7^Y+j_syQN~ZH_mWXrr~j1b}%6ybun%5JMpBe9eP{ zRo}gAq#8T>mVMoLSM8axQm~1~(wf;%8Nqez2S(rd-2R-)0-N(~3wtkHuh?L^)li#l zZidR5d!r&+d$)M!X;9xbdr1e5mx+s3YvnAanT`Qq-`hAE%uu=W?p@Uq! z*rlYJY!O4*lW#TzP&LQa!Nnl-K$*s&-6+*FgOxl=be`>tPWI+7qj|;_=WmR8OFTmf z37WYOs+V{scIYd7N8rwbS~mpW9W4akg|y+g660$*_PJ}Eb27QZzAjU;qThyQfc0u^ zGvAR}NxC+C8U(p}M{#LsQ#$m)sGY#dEEg~q%1#_XB{$W=?Lh+Nj*1UHl`5x2M2={s z1R1}82GUh<`DGodMY}4#J>NKV+UOEmzMduWx@#2tu-}#LsQ*%T>gB9!d2P1lYVXlk zR3+&bG2R1>nD&aL0PmsQ;BW{i%AGkjU_(!{?%^tB!)mH8a#ojQFnNw-_u{+e2dOc- zOR^=hLzTDvz9l5%VvRWla+mL)4Ei=O$Gb%HB*DP5bki_0#`lbm9QEC*ex+#)aoNU@ zOPp*Z&X)P?IR3(pVFrSn4&}rBe|1-GN8{yu`6AxOq>-vhqeY>z-@(GW`9<8X& zIHTSrYYeljMHkwr94_UD`mFYHw|zVDQYt?qDX%=BohZn&O< z3@r!NJ@JF>AF2D<5;){S4E_-vGHW)SXEG1dwa()<*#^iPG3ko*UKbq|0jLSkG)ZU9 zY~Upt-m0_8gRA~VvcpI-&thcQeOOs*G2mmQoG+u}P7+ZyN4P-*N|^ z9T)8hPL@YR8tuHT8TnH@erlQ8nsQuH^qT~&*8|nA7L?2ggQeVzW|uMwN%Fq- z;!WgcH8oy2ad%Yi`Op$h0)I!^BRqX`LiZp_AKNkRl~!a_S3Y(aSL9_Jk1zkCU4I<5 zc5+zi5!Cl}t^Ax})luZt!QkP&2G4_o)006}!Os*sDq18_?sA9mZ97Q<%QJrjSpBNs zodr(eQte{UO}EUg;N~WE#`m`uAI|>lg68V?Pyc=H3EjF(Q;ac@yzcDz9NNZ`T)<^f z)V1T`d=6LF>8}g0HF=RB_6yr+L(Hfv*^DBFkFC#&`_4_j*Y}kKO^JTRn{rZ5e%GXAObz5_dOS7oq~H#OvmHY{poIR*Add_oxnqft_`t!DVnDYhaP7`JQmRTSN$X_;p=63!97OWfoIu^5%4r!l%QIaE%bGN_8iD_{ zDNdJBMtrc6Wuc+@14woTfkl{pCUQ-0)-!%+BYG^;DOyAyGqq>0Gb;^>I0)O6c!70e z?+^F+XV6cuSvRsvbYy=#@g5lZ=N-ZdJ1kOH2yZ4VH2zA%3owe$4>E{*cj?7aZv02T z*HmRtd$$mk{m>G%yHp{GCS9=hv%0VyblVC}sZVkDJ|2*b~#eQenKq3m-c@|tTz z=Woc@mt6xv6*rVgwFsr`1bR*vw`x+gG4W7^Rp$0JYK0wv@LQ? z)^2dmU9P)RHspPzduMwQa5IX@Sa^1wFg>{uaJYJ4Y)K+^DgvL{q=4~@L#xhRF6mcK`1K)$bG*(L0){gx_EJSs5994aOzB1;@>+ zL17&$t>d1`n~i=qg~`ZhT*p|M_0Q6USTLu(zunDKz44t5!E{hsvz^~(MRSR621n4W zV$McPf#rmrCQGuBmJn)FzrVYQaIt`Vw4&~Jj6EJJL}6F6apm4Z?T0lai94wPhKR;w zFZn$0du2FvpntN+{G*3ee*NS<;%YCT2SncF5)MW;np~-F`{&1nPxM(1A`O1;(OY{R zbxa5!$QuSu(D$Cd>MzMw?hdnA9xYFa|Je6yf04Z5!d2Smh4Bk5m+3`UT=_*&|DR~j zAEy?ME>mv5Nh%&X^DzR7BZA36;qSnypr1A4WaV>4E1LTRfeMa=H?zc5ykMW;{NG_Y zCl~RG+SsNdUtIh~& ztyX0OkZr87L_R##XJJRJ7yOL9jH3|t z@>~Oh2dWtC20J&P5yOASA%p$7-!)ug>5uq0axfX?i6jb)w`>z!lmB=cl=5{;q_B>m z7q~1A*IND%C8LKUg^oSmHa_t!?G*DJ&;on!wK8TJBX8`ofBfUdMu(0`yI`5kDvD3v zG$>wh^?Acuj{k#SaW1BRCvI#|uo|@lY-Q+umJnbTYQzDLz;ZfUam1p<#DH;7S+yqL zcJrG3%@O0~#F0Z$moe&k{3fwf(r$U|3+nsXdyuBJq*$D=gA(;m6Z#s`#dWI z?pe7T4<$-p*@1}$LzPs6RO=WMz(tyWA0RDHS=0O4c zRx3O}v+$B;EfgoAlkGKx?n8Gm+14{_oih)9_a56>KCFml5b%9DSJeHxp6fj8GW;Vk zv?FBg0BtzaNe7-11-?{9o$U>%YWF@+(DUXAZE5yL$V@`*)B2P{)oc1^zvKoglwJ8) z$lbc+B|);^#lC#>7j|F=Gd&^=(gmx(ksgzqe+VH`f{bKR#MgA!@lTUwcJr0HT(KO| z%kteGTz*MutM-+5YnD@IIS$3%J=^hJC!3Gc`2L!yLIezWJzq<1T?d<*q*9xRdkNDV zjmxH*j?&> ziT>|FN4*XkbYROqzqUf|F{SY2AUDcUhQY>XEPIP0Y41Vuc!}KiOxK-jS>E6Qv%T?p z2-@`UVt}L3O@TPVeXa&jwHKh8doOyD3T)Zt*QTLZcz5L4{t?o{M)e3&2W?UFJ({po z1TJMhtq=Zn*?)P~Z))Jf*q{YY)B5T2>o~xB>Sa+%NS|b*r*ivF#dHWKEVo=Ekq@|} z$P_p+jn|(vffMsG1##Pq?7H5=mUc)a`f-TNGigP6)BDiKj*$%#B`SWe7N=BfHP~up z$!+k`u$0@vmYW+in1Qe?J6!pSi}gj)(ua3V{VLnQck*5b6s8|o%|Sr38SNGO)X4~h z?*?%xMoUF*O&ba$A)7ROUunHxCYHpr2H zDA@-^phBrOwZ18rteyMAWSHi;Ny>&ds%B|pUqjDcTpiF0OG(@fuw@e{$m?MW2T5@mg)pB5t&+=G{Q$*!bZ8DcvJvHnn>(@T|J6p_;I@WONm0WyHeBm(M>pk*iu>bEXN%{S4n_7~(20<>qCS4Wo zW;SC&hflD&a=Y>&E}ji zP_VSn`pYY-UApws15TEzsnLZ!n7t?4%YH^@n_>mZ1Lk8QW0TwUezy7Jq@;rLhQhht6F-)a&skVz%K&{ zR|I|s5V(M#zD-WuLnUP0^wMgUd{lM0h52=ruVi$x)I(+?rg7OT5lCJfwwBL~X#WVq z9$&*(z9;3F9HR6~sSiQA`aOYxa++VO3^5PnZvNVAJ*~XhUdWu1^Btar$Npgx-6X%_ z%<*tw?UFdYH&oOI%H_ttInDlAx;SoEb=}FwuC*|K-2o4?97w#-LO6aCtr7kSCkHYR ztbcNJM5rDr1VkQxd`h=fP+Z3{%Or{*0&tLK??El)0Qe8SrQr;~ob-u3CQG+xdcWhs z)T8!QXFK(x4RuTxJx4m9f-eUVi!Zflwd%QvBZ_*PnReV&ErI{<=1IYVKhwfw$dg)` z^n9t)4DLbYXpqZ4?9=l?G^0pX%O7K6{x24Qen9WJ$pMCR#>&&!b!ig+*Zso_3pG=d z;wv+v>#3FLbmtAVB$a5$>c{BI#V{fA5>U+F;Z+*ngBJH$56dhCbF@nms0Juf7S{lS zsyN-5Tt%(^Bh7%?@JEWh=K%{V7p6s(zPm@LixZrqy`1-n1Cy&SdsGb1HdPnHH2v;6 zXyfc`zhBiSJ1<7w=t?lh!~khJWK%YK>!&=SoGc(G2EV?vz7QbLlSU;)T+yd<R6;|hp;?v2Ep;TjNN}yayo=LiQhRNT_I4aV8@KLN^}murKeI&U(GHv(Ou6lJ zH>GZKPS^YT8U!r;vf9Tq0JjibMz(SYMfs6%{%p|s>lP&J8yQCuA+g^*?Nm>{H@}D9 zJCnYBvY&d1*p6t&LXEkOLCch}JQdMdwD{Fi)${Zu6d)9ZSKbT1L}x`L$(=WH9s^d= zjBoGQF*+S~iseHQLgY!8%$3Gb)@zmS*E^JUVEZa67l05ta05J1!C<(W_m69nRDh~O zWKCc^jRQ4C#vr#ZMRKwS%mQ~|F$b9omC=92vN+^?r>=9Lz&$8!#eQ#y9OZlh3Q!~$ z)8Hh5^zIzs15^f(8ae>V(9p1GmVQMGILm@7GCtN2m9$6`8j2m<4HF#a6n!?4ZL757 z!n})l-Gs5X9(UeJ+OCa?o_TnsY9G$2PJE*(PEKVs8D{a;_Nnnf_|zbN*5ArK)?ybt z%2*C)@AccK6zx~3@mWbd_3t?Mr&emWJc~@hlQFP=$TeU~AY2(Be&Az;&tt+hm@DiW zd3^co-uND9Ci;K(%Is#76aA2jU;-Z60xZ_NTTQYBAES|W|E7#60zfl{fHv+vFLpK7 zwZvnwB&%bD?b&)5sAKnRFhL6xY2UK$$Rzb1I60|*1nIC@Yo@;r5rG8l=5Izzrxx@1 z8dH-=Mlavh*J^A5gt^k7q6{@+;)C3Bus z)fyB5I&d6yrB70Er4EgLZJ=Uo2t}^yS}{1od4|%D1674SkL9`FuikKNL6$s1(plAH zJIbGIncH!%op2B9u{_dVexcCyS+(@S2ss9<_#gI4CAQoCR~JNb=j?lkNJB_~oYlC* zt+!*HhchArtC6pg>9qCWyS3qC?qj&pTYx>a1e9K%O3`r>h^kfv#2qIo}}@uC|#MJcR7wbUEo{1(XTb{z+22`KZLA6j3vNX2)( zGohY<%I|?&+}Fxti$)v>!1;TxjOS4saF|}1lDCUR=1J*F=6~-(Bse)e=7-4Tn>Cq9 zt0>*u{r1}d9NW_Ev%B26!EDTH1_5!p_P4sO-rl}am)qeR`?hKUek3Np#+;XA=R9b8 ziW?VtV}cp`i^<oNsU+zAEqNLl z3rZHBuAAb|R>HW&e9PX+BNY~h&h9#2$Yk_;f16vKvf2E75vlKvynXels~DqT z_0I;g4!vEy={;h_3K@tStJ+ac_Eu_lat=UhOBbr!Yh&ep=p^dbu4VY1{65u9>vlEd z80C~m!x_WZRF8`&pR>L8=7!C6vt7!bAH)&=oc3pBnNUJNs259+S(r8EoIAc>W<6s9w>=97}O^tS370& zy$m>9$t%A`BjMBR59WsJ^sf&ju4nnY3ttU64i3itT4hn($pj(1hqx>zsL`MOkR*z@ z&IbCWeoZEmzVM#A-pzkfs#EF#OhrQ2nl?vP&AtW;`v&)s1__b!iXr2#7_!^`zd1jW zJ6?>wBb9%L>uuZw;Jk{>!BL4<&X1abJE`B;oSbiw z^xa)DkW$cC0!`zL25#u=5CW3Bb`tNpj%TDh~%|*CV+6 z_3L2ED~emn?5!f+)6~HzI28za&Y26xK2%X@XCv*YdqA+cn{@Re40w?Rv-gjZk_6aw z(v?G<)GBTnC7k9zhFhg^G3QjM^i)JY@;%r+JYj~3)+t1%8Pq~pJcDimDvuO+Tp;S^ zpog#@iMZ%nntE1$9Ww>+j+AWMTI%F`ON8mX=apGV$+TjV2D8Y}RCCm)J~_5^UEa{! z?g;iJyq}}-t50ZvKj80HZ}`>kM1+#t^#MzVuL|%)CXvv{2Boa24)$4q8xBlQnBfXY z6)s<3&r+;cDl;(;Ip@DIXfuC!M%eZ=KjXhEg9%9XWa%)ojGWWp>`A$--l>zt==j%s zj{$W@r(U^^>sLYkdat#LxJX*?gAIb&nh2f~Xn6zh5MRs;^033%S976eSjXd~W}45Q zi-R=c?6iP?uX5%60cmCLaB7o*5Eg{*mp+IekmHI(V7}AJ)#Vl8L?SDX6D-fkd^Pp} zEU?N0z|x}kd*Q0zH2hfu|Bp6I;=MZEm6~@iScT`+{np4$+i3D-tZug{f<$)1bw^H7 zYb06DS6uq>ic25a@XOsJN06)qahP?egWAt7kmtB|Z1Cz%4rz-bOSdgCV|8wh*gka$ z*j9w(H6+mw%0bt_$QpR%KLO?mNPBo;#HwhR)>z4kL;~62xr=EpnXnuvcGnt;nROSz zEC2V(D9rL{f`gm7cOQ7INv7D013yF3apBR9cCOw2&W;nvMeIeh$7|X@<#1WhRe#{uMeGX`#vub zFJJO7b}<+-{CtQn6XW)I3cNjkbVU%a?Y<&&;|^x;V}A91LdSLQzNDH9Ng4a}7~cPn zt3MBfvW@z{@fl>vmXv*qib~e(GlR(Tcrvu1tc^ml@52~NS+b0YC}f19vPRi=A!O`h z$x?$E#=fsJ-+OxA_x=68-@m!nxx1Ip=ywYZvz5$m=auOOyKPM7V^JGiY)e z3tZ~#J9kjy~`_f%aSt z3F{F)DsmI+J2$;5O5Q!OY?Y;&7GJA`tzpga_Hz9HL?&U+-zwzJVOKTp2N?2&N_lgJ zf0=mbK@=$Q&{|QUj;ND;;(J51w~i>q!TVo#B)I`WXwe0c*jO$Dm7hgM2PVwMb~&M- zNNB?f_@!YDQ1o!p;1OM%XKMQP8UzP5O{p@+S7bqADp_}cOe}t9gkDZ}cpQRU@ zKjYQ<-m$-A`2&qeF~@sTUx*q>h(iyblM47_{)NsmL4!_3c9hV5??+C1$2{ZIY*%%*h|(g@uwL~3MeYiY{fZLU zvLwY>yD-4r0yUTGNe@!j7y()DfiLh_cYxwx=7^l|6##nb*(Enf)#QXS4kWXkz zu6BNSkA_9Ly6?z+q37;>Rw3)NO}kUU z9s-B-+Yn`EQQ=MwBb)q(Y@ixfY0zTu5c}z^zHI?ulJ2#5poA@(|4vH0RaXNJQa}QK zPu1G_vC5oU?ReB9>_fE18Wf-76ReG@!D~NyW0-W<6l5R{Wtdaw>}3yWL2HA<&4dyX5I;6XT8&8>-i-4Ufb_8tOl?CJZyBwutgiO2uPqB)e#kn98uaA(p zAPl**Q@B%Vxdn4hB5c-AKYHu_wZ^paw}|hs(2fh*p2iI>n>S|3F+Cb0m-MDq8H?Xo zFc?8ae_EK@Sj^={n;MQ^yqeg)Aq^ZkVfq#%T+(V}kR6xXkPs7#Q_Z?yI|WSoP+kM> zC_tDSBxX&$&#EK;0LPdb^7(D+L$$GjO)`DVVEk$B)A&=Z*;xhBCHZ7FPz={7w66ph zhWi|8AZ2*OlK57B@44DQdYx$60!GSV_mb9`yTXJ-7C?XX#QDc2B8BCWHeK`v8qe(7*=UKC`9GqsZ2iv37u0sC z@`fdu^JA;ePX`S~8s-y>8#YT|E+j)#f5U|I`0wO1?YAq6?Za*a zOk?M5ez|=PVACrt8J*B*cMUxE>lqHH&Y-YX#zPOwb)##^<%Fj&pn1aRcuIcaPZWqjF?e~AWiFx1y&dq8~M z^i;UVB#)&hjQQaM;PRy@7lP_%xA2jP@9%h8FN4558^(QAmIfA_eHKsgHsIC zHd4Nt&K@dxR^|mceV+&T20`z6_H>xxJ>t6hn2is*TW`4sMhFvvuL_UenRW%?_f|mC zV3e2)j9`phU<%)_sGFOgzcjJw94FDc4`eGXO>A`KXM?YNejqr6O|8^=~q=^&k2-CXELh|l( z=baB`W`ui2mOh(LCP<+q-9q6$H(z6Scw3q@=#tRDQ=(=i<#YP8=88?Ipzjcj4`=ml9QIaj~}9Y24I zOVCY7EsrEKB*KeutjiN@geZwK?L8J_lW>{G?tc(5O4mrSn`K(OI67i9B)%wNmI~<_ z=UU$2j7UAZC6wR%vPohJ%S~-O?@x5 zYzuY_SCb^wAP95gO$<-<+a*my4L6K=t(IbCN1+cDl3dkOlMXH+Z0tQUj&5@&T5!!U z3X(;d!wJ2YqB2~!SW_z-&i$H!m!y3eGO>|xxo${d>GzRhlVn`ruNsneWKv_ZzTN9J zhy%1Yk*>Xo<)N*LyC*VS`JPB-NlXbff+fD3+WZ_wjwPSoI-n=8Cd3F4c%gjzVjMEv z4z)dOIir2NHCXlD0E<0DPg(#j3VSyPmSD^aL%y!O1Fej}m z%EzY#{b^%5ABH^I;L^m*5t_)6J9fk~^ z1Mth~?j#SCL=ZX0>98|l7BG51iXj~4^Jd{{#{$EToSqhA$L8-Dt;$T|kU#}KA1Hb@ zHFv*ZEkJ`g;~KjULC>IR)5&3H?AQs1QjPBeh8uSHIKx5eJlR~^H#pS+~*!aE+mvVg^irGt{Orb{*)?0Tgx zdD`R`w%oeMUS-ly`G)ye**<-~^{+8pR`S(Fh{JQ=ce4OMw`3pUrc;2bnjS>I20dQNTh%=y~b1lRBhUQA-= z^?zn%Qe&i}(^y{OKZZR*P9UGj)d}(OEr|6HZnIeRtS_zqTANK;mla+;rC&^f!~E`- z6f_SK&%F9fIP~rzBzCO-M0g!-)~N@iC}Z}cEV^bilIMl=F-jFq85MJo`-UFkP&o6F zoqYG#tU75>O8!kqXdQC;Lbm9lnO&a9c1$XXnm4U~UA*-a;5pU3=!&$?*3kXiMIqHQ zIdtoJBSmUj^%ia$KRThAPkF;KsLaw?@}ivj!9|T(xpyv@I#B=hd~TwxyXmfyPq1vzf*&$5FR~Mo!mGu@2fkL4=l;Nh>Z&xn!UkzAN z$8@Y~%5Ba)IFECM`_8=5hzgh|7=nik^RmQ>>?&-#g!(MpwR;#}eKgcUu1NTWZ#}1K ze5=lM*+9i6l}P|4oJ#q6?rJW^d^$dnuUXEbRBR(xAUjYQdrQ}Yzk09L0L|?mNbF7$ zHG%ukon+8#AeH=68sxf-iwpTV(@ME-p9KZ?Z8oeh*%!&p4H?haE~uX##7zNHUP^Wt zE70-bp)XgXo_|6H75`{lVQQk@v@urV$P}T628!=p*}tcU#C@=RVji!K^#bhcLTTJ) zdh!0uU9X~$S<-i%Mm51|TC`|AO#ZRbxI$?Uu(a+v*?(*xTTfJ8h+Zm~dU)X`Fo>v( zx#Z*0+yK=t7kO7NBnzjwu^*b`u|fRl22setG4vg>xG?HZd;KhM!VpYfZ{9pq)%MsW zHm}cXKMI_WQ~L+1zp(`>5rS_dW`JoIAn z4^y1<6+u6Ny>q||j*^najjVOnR9PjIa2H-c#i89^labz(vdoR*S`5YAzIr9f|05KN zZv4${tqBfenFY+hrrgBvCc$;L2&e-34wu`77NcR{wK45&Oa4a*CWzRjD!~~l8B2Sc zkqN}@aAp|_&Aw!_O7Nf6)~0!SJfmTemX0bT$FZ`r2X(Rn%(}UZMfu^fghFA0cq=gPXof4@r+2vMA?^-hD&GS9$kwf`l1;bsdF*yRGmtnc7aRO(B@=Yv+@) z$|!-*6uRT0uj;A7g4`Ja&EoC7?RbLddIrs@uWYF9PS)~JWc3L)D=|2=uFM2f(K{le5;&iWB!4doeA4ga1X@q}!} zQ9aUnuQ;pV+^P}I$|yFzl^n4cs6#0W?YN#E!^46)qmw?v+>{V5zUo8NX^aKj(YHs! z&4Y-r;7^7$oTj&UlC9nbQq-F63g}P{=VNQegfhgtJ|b-aj@IOu2JR2hHmgSF#Kp0v zY*%~rm0q^Mdkg!n|8q7$GU{cR!;KNn%Ps(f*PD=V+_srt@;7lMYy;C<;}bxQ0|wK> zyedoO=Q=h!M(J-9Qm3V7%=NvK|3inb`bh-P7$}K(I6%bW<;$L2`!E`q#$8oe#a*?_ z`peFG6HS7$BXOSaY&`8Aa?+;&n)!grS@8cUyAQ!j;%cNOIN-# zvqGU}HtE09v)}DH*URfyyvtHQ>9(FPpLmDZVx(b2kL5^S|}&-V$B=b ztM%TAN*7@Xz$20W5X53)!GaCkAv2?UU$X( zUlCX;?R!KFmNBS3!HWoh=rPjqiUehYsH{$vxOg&iGcTigHL{{CF3kKwjL@yDcL>N0 zAjjV^$!pyDnarI8nT|DsSA-sd_?b*W3LBXqPt9yY42)ep3+k+`f4E>AhU^;7ecH0F zoE<(-i_qAnMbPAnp$hU!)_Nw})p*S!^C8TvG-h=&$0joj3*07J8f% z_hXs;bR3I0_oyo$uNp_EOs)e#A)-^$AKE>c6DNPhp`XGo@+Qwl;KrQXGYMpTWT;=B z2Qz<1E}xlAVDJm zOM5`MPux;HTWuL5d)}2tlwXKXbU+R!nzp67jK7OS>E=TDbq>$@LyKc~9_a60T(1co zOC(2Jm6Vo!_o(=ZR1m2dw0qux?eG{W_S7-u|G;c<0WA(09(Y7dKD>>w{cxK}M?dX^ z(a<3M;+iBc1|5L;+s0WF`2M6Vchs$+!TeJOsSq=~5wt&)Jf?iFopIblm1RC4kJFcx z>?>t@tZxcd2TT0>;-d@Q4m5`@el3vQ^0`_e^rxlk>FZr@{WvpTs&jlucu> zur;D7EoVDh?{)u?y#SeG=?^-ekVaAPeDZfQDqEAXF(S0 z!O#yjkl)&V&_>EJFTH(a8uc&W-wxC)1o9TSIoD7 zpi^7dM`8nI{VnOv0)`LJgUFk&H7D zf72pQ z-9i#Nc550FmtF!}O*doN<`In+e*P=1^6keIEmh{;CyWYkuDC&weuwqN@M~Tp^=>r; zlo265+VgCB<&cLOr%6G-g2%@Y$ByqhxWTU!oA}P)$3+Qap2-)TJA)g(*b@G4O?<+j zgw!Y-L?Xd7t3bptyi^3giv?uZ86;*JB!zE|B@;Qr^%o_f2z=vb;ZCo9)pxs}<-hGj z9~F}VlisaH#7RGzl+;98D%U8~3gl*ZR&l7qdmiAr_nAQO%-}Zo*QZ*Ni_+x&+uF+k zm@L@uvCk~G5@EU0w|e0jN$|IwGOK%S=2ie+%KLamRu!~)c{_W~m^y50#?kC75rA z^O3Ic>Y5VG2`%wH8eOME@!yXB-B<8@%8~h#lZD=i!ang41sd zQ&Bv6c6w9T+u>9O34_T4okdDnrR(92VFm8cU|ecc?)Y4o+)iHg#jTKmRAPE|7W1F# ztwY{3fX;oB^{Ae4Q0gPaxsob`ogMS4ofHbETqoiS2=H2=r<|HbwL%A9Im7037SHEU z)J3LMQ8&jFJpcVGtjJ>0a`_SNXjYndZKi&AN?0AoRIu9Kln{ZNpzY()FjbZ#A+Zd` z#(oShh!58NlX-}0#tc>E1@3v1^N?ITKgvDsRF;dD0JkwRSe;_~10VquMa~?2#CU5V z$%8YjqM3AP6=GFt(}wL}q{xc(e%%Fc>e=_c4hU@xuciT6!*Q!Hi5NcL}Sxo8$OlhkiF23iR`7*qIdf78MCTlyv4#=^^bYjesonFkn@vW6A?hH)rg+7!132hVc z#_V&&OFK+#z23PtGv$=P4qfk2gtyCJa?7V+S^y}_^mTao zD5z&MTKD`HOCGDb`55!|u;h|+hSA;<04x2^$cg)n&WCwyqV@Mk#bvu*MepePxbfn5U=(~nbkxvK1|z_o zuU>XL{$^M&8`@QEd$OEmxZ6DHs9~+9?|!e81w`3VwnuI%b(wwrzIN&X-xyWU9v0KX z6Rttba)7aAu6g2X9Ug~Pcl3z=Q+cFUi`-gRTA($+<8CKkJN^>YolhhRQE@p#HQbxZ4*HbblzWOWSC_&;+moQs)yyE&4O09_( z#ACDASH3$5>PqT}3mY+btXZGVl35UJwl00wDPDX*6=2Jopny>+()( zaD2mQng8+s|G$;_yj$#K_;#j$A?|^EIj}JIS%;ZB0!@~3H`*)N^=j@^DsiY1fF{U* zEbMmZn-xtU%OA%BPu)W0qO0=N&w?IYA@yVerJ)ef*OoTqd1k?yu^K!I9H z-LE{fYQQUcB_;Yc+|H~*h$d$wQj*r)p6Do?W(&ZB>Pl`P%j1HqJ~wu+ zhR(Vua%3_yI@N>wSbu+?8Qv-2IG^*`iQ9kQ<=06y@e`Sy$wyV>xS{bNJJ%bc?|R40pt~h$;;*hAl~JD;#;k;aIhRilKsMZ3 zZ%vjzolw06m+{F)_!)gMlfloH+ zvCaVi`Hx&!TqmA5{doVBYW2d5KSz`DdJQk={%Ymlj{qf7s+lXBes>W|mYzlc0s=O^);!mdh_mq+`W9sf_*Lb;loi7NWEHBD3Kq z(!9E(<6z$Wq5a>5&TquB*QvoC=>|0#V=KR5ZQ zTz%sANYHb1aS;3TAu#YqdW}}$mVFaKO{`nSL+uZ@!b1g@SHA%*%mV6u%)Rc6GtVCC z#LM0{F>f^$1Lws%2ldy$MFjyAE+90OZ`!@@5+a>5B}2aJCkA9WigoQ%fqcX8NZ>01 z7mpeX*A@AhNCGQwcsZ`^f;vSCD&sT@eCG6#jnF!I=mmndnsZT$|q} z>4e~reVjnhtb|grRS)`L5Xa?#wR_d-`V2lBm_m-}WR=Vk-(H(stuQXV+Qn1*^!x^C zgroDSwU2z0_AbNp4{ju0S)6Hl{glV#+6`TjsH1ze1(|nwP6DORv!zu9F1u(_M8Bpulc>nl#S;`_Vmj|MAcUsPUh(zB53~oj{(gl zH8okefh@CQ1i1c$Fobnr_)osX$A%e1W#}^Mi85^z!XxQ{G5nmmSjY0~8Q@&QG2aO% z(6%uuTgPo---WrkJQAl79WkD#^+b`>9K)uZMxv><0#{&|M1N@5R`5z3irc+6Y;)YC z^Xl$1{L%JaJ-p3!MV0VPUK8J=waI?EDxY;RL7!e-FYTh6n-K%NVo{79Svmwy7iWX`&c<2xkz3XyiN25R-I^_?ykbdmxhuum`A(D7^2Vz; zz*NN7x(5}bO;>B`hxnO$pNE(K0{Ifd2@#~gyVkXWNT{o3z6?R3RWz<_;cMCAyTf9T zkst)ckS~{~Tc@?S6bA`{-qav*Y7q3dV%TaQ>8upp<^EN%?=7F+c%?$LKQyN6yUo`O zB)yB(GZiqYZ+rAa)0hDgxy6n4fo+nnd~g8~wjJu?{2hfM_&@#?Q2SAvBlGfKn;JvD zS^SnEb8*%~OK!imSPTwo3uS0}2=wNpnt}?%p_2PqpuilR`p#wU*QLSCBOE38nSkks zPdI>*FOCC(ev8Ci&07J;JOI^-Ugw;l*WPA6oEHUpBmOe(OVI#WHLBg=at^3u)Bg`> z(E#xI=9|WvbP6Z^A$uA}ewT&;R$QSULc3 zhehqeg4zE*bWE?0Q8i52|NG%n%v^~;369JCpMiJ(`_LhsF?#Hi$@kw6OK^zLfm@MZ zDS3MT`_K*^c<&)e{px>T3lPZE=|FPTCFAJ-eP{^>ymtrhb^m|9R>9Mgo?d(2e#r%p z<^GD||G2TGEluT4c-yhN)-IBN{`;Gy!_4;Cpf(44CypKi>cU`t$tfHpNa;_&G-~(c z`h-WLsCSambjapUok7W(lw*n=O|$P{-rrv}?9N|_sp~R(Gk8WMBW3l{Id|L!JCvrj zl<9KvG~$?Lnn`+0Y&*;eCm?pu*aL;xO@5#!3veX5r9jiYmymKD{Ue%8=`AzT*FLNvTjM=5v;qIB$JFMbTrn52P zZwzTUQR1Rq;qH>D9O!sjqO{yFy`$|VU5GCSk(QAymWULUapVd{3@S85lg5Q8#Z!S| zQnVN8JP5@T2|slSZes_u8O}vD*SN79KV`B%_xBh72T#|pVPRJ2gaY0@@IV0I2d$W( zg+jO3vREy}CT&;6YO*f>?TnVDYml_s`)D)vH+C^{m8zLBI zltTejwVyK_!>T{GC@RLgVE$LjJ?UERIsfM=a-iNX-VZbRnKTaR>@N*i@_Wk}F6jJM zt6At;&3O9u_hAm_Je7F?|2jWYhL}u-HDeGY6wchY&J?x*ygN*+vB0|ibMUKQe|IK` zuEjxknu%z=aHNWFtG%?!l5)B@aNg+0=_g&HKE*jfCd>+>0zRDeQIo__NFW3~%?aGV zy1nRvR6UxH^`Ty^1^V>p50uk^t@79Nts;5C5rUHvF+QsZvXj9}fT;-dXVH0`?!8w3 z{CWwdzls-VXt-$#avyv8;y*^Zv&yj85=mhV8U7fR{GYuUhPzYzVzg~URg z#VTILbxhzEh})EPA2(6gN2HqnmLVd=IL=~Td+sv7XzoITfuvOZvyhx8gPysZP1cu0 zSKlg4bH$lxlG9fuWYHEzjj56bv9Q>k4r;o;^-N}d?|1O%g+bY~XGbk{%ek<44K&nqG@833oQw4g01;4(` zznS9ui1&An+lfWy1%8VEouD>l2?0xBW)eBY>MoYpc}x)WWLHDf;n|R`D?rn+qO~6b zh&G~EU0vwM^j9f6I>Y?++DttYj!y{^o@x)RA`DbZu;W)oZY_pTiYjgQ`!S){8mzvi z+0;xqGb-?h9B&g0om`SkYdwRZlnIA^T}#u*oDjK2O2u-7kT|CxLh`i!M8I{Kj;}7# zrqu`eFXEH?s`W0~&1;2foDJ3}?pM2i5ok#OPP+@RR?F$O;q-p}AY@)clAGvP73rN<1j+iv6=vTmJ z->{vJcxjXlx)qiEF5u4;V9UCV@37o~kI96zp)*-XC-mo!_HB;3hRZXj$sKCcX8BH( zzQ&@CfuPi!Y;aq}d&*zsbD6Kj=E;61+Ck zyaERWvL*Enf-=DTAwre6AKEpkuu9JTkpB5+Rp)1b&Sq2P&A|`--(05CKq`*$*iHf6 z4o7XQ)NM?SQ3hN%b?h5H`c9S?kAOTu$X)F@%C`Tuxa}pzTkVE&)(@inZnb+4VgH(R zb${kk7K0@w^TTEySkUO%2!DP34^S^RreM^#qbl#wzXu;2a(TmW$4fvo?u5NK8VHxl z*PF+xmUc?Iy-){TxazR!MY+FI6SP+B-YZTaqPPmSj-dxOaJ7`glLFOU9 z{Co1)t3~JFg7;0B-zoh?6%WVEKJk6tdTyOS3K(uZ?ep7TUFfGvp0*+1+MSy$w=)SE5M&Vj zf~aQ{x>u&{Y8d5E3gZNCd)5P$l5=L_+XG@sxSKudn(%p2dFeu z0G&HPLkmCSq?kRg!q(_%)1+oP$#C?fSQ$dCLfM{s{9aO+T)3u{vP-m*HGQsA$q~R( zIP7d(#2Ww?gEMFu89Jvhv-vxZ1nBZ#LRkHUHz%_oGjCpUuWy}zr@&sX_QxBElK)iS%0IAP{e-XZl6kk;p>o9YJ6hwpb|3HA zS#m6lVeNcV0Ju}SH>+`3v}>J|EB<8f8c4GV-P61SzJrff9k^TuUSqHeGR&^Hs=Eu*jd*A5LPZ#Bzt0lq54+17v^*-X) z6-VA^S0QY%k>uiYHJ;N@n$OIt*}NjaOm~=B5$tOSALW5FtnF2|7dzYO%ogU3ixqQr z6~=8RD>01>-)v1#1^K+cR$xvJs`s(B;}0IIZTLnboC9#2Y6?vJpJ3OJUw1-fh{oD~ zL&JdYO@997hc!buTmMVw+hYd8pawQGOu`G`U=7+g=j%NSg);G@W%NK}3udV{+}LoT z9|4~HHv+hXWX8R%k)>PFI%rKz*lgArvsBGOk2C6#+KCp_89i!JQ4qDO|9P#?+$x7V zmO~LZPwdPUPTBrkL)703K0+`YC~4*0#7OAm^g94k@-IxYqq~RFJEhEPg?xuj&n^9l z$wKEn#80i>l{S_?E8Y@U7twt?A{6EFtSC%Z{<+HjOZPPMm6{k`DJ2JT`UkwNYmW|t zQN!rO5`ipB|MSXCM^{MEkD?5(>_Mz+hqhFW{;aLt^KZO=BNGvJMpue&8bZwozWzq@ z`DDR1MOUvVBTewM3s=HU48hkdou4@XRL*5E^&}YpF0todo zc1OC8E8GF%EhZ(lMbD3KWLZnk&d@VYk<^~59MDN5_Oyn-J{B^_f8DPSre!mBId%m6Qn zGOs=?s)K-K-g=?lX?KkX9Tuvdc`BQlFsq{PUI%VEl;>Wvf~E!DXAHc>iBM^{a4&i^ zVeRV;%oXa_jVBztTSs=ELsS_Bo>{O9l3iu)?3oYWMTxI6)FI1mxBQdC!jmgPU@BV_ zbm4p%)Mfa1P;GMi)1paky)T0f>>cq2P7YV*$q+_bC5`tx$qpH6lo7%cGlYD9@M3u% zAD{d62U8cjaUPu)JC83Q$pevmNCU3ypq_QH=v+;O+tTvH4qxld{=aMN6?jcRj4U*` zmxuDEj(BW!6+3J;{eGWDO@1+IZi-i2w7-hNmwvW}sChox_%ts4s(llE>tK}N#bCBj zB4e@O@tGqi1$EzbMfs`9bXmFaC~%eZqen*_?s|Ayj=2!YyeUw`%<{Nq_vVdwNYAP0 zN1wNR*msZCn>-Iq48SqXr?^_}EQ!IYVvJ{~O$z1)8kWRjV7Ra80O5JH?3{{0%3Qjt zemrDBh@>+x6n;+1p3KUR5C|gQE}82jrRzYSjaPFD`q{i!OR3zG()LD-d&P7)LEB>s zg?+1ZP4nuonuXk=T|Z+?F=T;CfyXZZPXY8Kc7Z4r=D~f~b{o=gtK87`+EE#B!DdoN zKl;_2v$$T%#or|<9~C&#HD9%p?KFQ~5a0PW(&w<(U!w5T$HvYBWb&i5pLvF)P1_$l znA!>c3J&ykSSk&yV{a;F<=A$5^m*OB3yF0z( zb2X@U7>D+Wjx}z4OYOP^+L(#MB8uAi21QFGK2- z%$V@7uD^=F>gr`AgPGN?EeSqXfA`=S;R@`M=j$18<-gv|xMM z9d6`$UXCW*Uf1FJ=eMychO7jrty)uX1x8E?^QI6;pJS`U^C%{68v!d3lw zMC4gnDp($tYWdr`5WLIJ<%{?!gmyXiO@b^jbMx1{yQEl_`B9214}X1>0^EZ_DLb?E zuFauUhE;xS@opi7X=8}dgk?1}kos!3VyiR=T|_Cl5^90XMa3Tz$ipf-<*6;}G9WxI zZRrQgm;$62=mq~oq}|v4t!5~s(1@Edv;$RG~ya~@cb#qsDd?;>UWF`qSEr2*YC|Cn5HgAnhisP>x+5H z*aW0O!&3?zIaz4*1QybAW6VVFmLG@JSG9Ofqy0sSg8jb|U|+)y6{Kr{n3#g*(I;N@ z;0<6#Q+Z}Vh@6^c)pzkA-tE1871-YCSD!1RfN_X-8t$1^BYVYN4je*ptyiPo=KM`0 ziUgXt?5|X?SeH|G{eVJTHB#jMQ%(>_sL5Dg_YS8bRX`fI4`|9(V=*sL+oA1qvG(0` z-Yu`wW-)KS&k)}{ZOSlujicVXC+p78iRAn+gs;re@(u@7UfF(ceQ&xDKo5Stkic@b5pIB< zd55ecITxR&NhnO|LvENcHmev!e0lcCY1ZN`A}7l8H}@QCYCeoX?4v<+&1>t$KQ&U` z40D}Q11u#d$G+}d4A-^{i4;}DFUTW$5Ee3$pXe4*_am2CfICYy$bm@|UFbBDCOo%k z4%=nOyf1%{*AL7ZnF8x6JjjifSV{J^Mg6&Y~QlaWb|#yxt-KxU%vMB7Q5eRUmriz>L)VIlze^D6g=PG zJcvH(K!+RvB(EiR#x-D;KkS%Jj&r)Zeg#e4#I1S_Jup}rR+0%hvzG8=D{is#J;`o? z@aZp%JHJTYVmz@8SJtS9tK0~> zWf4j6ST~%~=kWj8eT7>bCQ|41Qa8(RZ!y-}P%uIm3=QCH^xmHLrl+T!M?6Eqe>+@& zMqhnqOMDr)@X#7Tw#ryP`kNxm4o~dr;r)aQXV^efr^GZ3_w4S3++jX~zY4Y9K5qPH zQ)VXlx+-hkZ|&0Yw)VsT)+aV1%+wq)Q-%U!?Pa`H0Q~c@2YRO*=RnR1+4~(mEnIiH z@Oc6dAsoSJTkzb0>Eo4vkf9kDm7~1)_Rn7h_ln~$$i1eEAGbAX^8Rlz=dvy zj*2f<+Lm5)OBrl>vIop)BGhwNR)4TP_=Sb_!}>YT#E9rmQ-6jyH~lc2M!u4wG*^sn z7fg(H{~Z#b;OWd!)eu=sD?Buq9S0|cEit%$1c0!)_x$!l9WFX^n92haRT!UT&C@dq zJJWaC1cW+rpWWA1JU|!mPDsyP+fZ!Ie-w>7o~9k5aSpj?+TrxzF9U}`&ZctoF#(Ob zmk-JvKvPL*>PT|f_}tnKSe~)repCWKL)mQWExtr-+EM6&Cxd6BW8|xWk{pkt!U2vI z%JnH>0eS9JF(#Y)KAZ_g(h8EuDS@HO+86V>Y)&VNfd#>D#T0!1qCm?k;W-aQ0L4Vt_9aU_AzJ$P5;3SSL$pH8Z7xycTI4@1wcclMymH)lN2nFA9O@f1hPiz7$<9`y?e(jJp!EujBD4u;0$uMTy6Kgg_`(J{DzKL;?T+FKcX)boyg)s zoDY1!<2|~6#+sT4dMl3o-nd~<(LW%Zmb0IORJ$=Q86zaIcp*lr?BzGvn&WXL350Yb z(AD@m(m#Rhlh6?JG(!hkLBP6><8r+ZNw1x!U42=BFvj_~bC{TJk7RoVCG<@H4Zge- znuI2$c3cuSjs8K8Ru3?0oTv&>%Pw{`zS?bTc>GoF3&2*(&^XSk+IY#+uMY#@QRmmqGcjBiC{OC5>4YQ+hw|SEVDrkoH z_LgLT&oMdm3RoHGNTbO1ueN%2a+JdGJcri|N7T1imyzmK7lbg(pL$B8 z?H3@;dkE#AcI}h4N0(UK1PXU9XajTIwg#OV4~9!BYHd)t6aX81BB6R7RtX|p+s>Fi zinsD@{~NOr6+2=r6sX-bX}E=p4pZ2k*qcNd`G?F>Z;14yD{DLV=-SfbJz? z!Gu4FIqi>5yYb=Hp*0Ps2`HRec zj0Vanm5<&1g8*#!=O=(k$I!7WnZ^?l!xI-%#(p_cy>!+RHg#5@ouUySKVlWc6n`GL z%k0C<_tW^>J~s4;Vlc;w38@TlyCU(M+imgXnEIO~m2OgV|ADt{AXhhTpL9sV@pF_Q z#m5HGRxM`vWIFiGdASk4F2dKHr-8e7#Z}$vs_n*FcU-vp8!4XB!k{T7l5#SC?fZ4b znDKSbBg`(XrG)J|*X+F+sYpg+yG{cGo6Q^7JNF!$_cWS69ojC}z35(luLJQ7a*!+_ z=QNnKNt|xeKs&C?;H~AC`_ZT1zjzr=2_mWlaKx!k{8=F1JW*3eXPoOpQV+~y*z@FH z335FHkK6&szJNZ&&3YvmqQi-~E00{;OAcOfJW#RyBh}cVAmg{(4ieN11bSZgm?ukI z-R2$~wU_Ll-MA2lkTUD^_!IB<#>2Qi4p>E4ki?BW^+owyWoBEZ`cjk2C^axdStmfi zxAc1RTq4C=&(q=BxhxDn2jb$bux#_-sij>t2EX)O>rHp+z`V$UFcua&u@i-KHq4y( z^^KYWG`s_`2`^(|iGD;(J=vv1{%LpLl}Rro=RInv-SbiTjSlAQ5yJ24R92C1Mfyah zY+r)|2E+YN;!y2Hi?jg#6-OX$zo!tITa~4(Y~P?cDz7_pg=>F+(O*BrO+ou|o0>>- z(;S=5+}#m{fg@EATZ0J*XoIuFn6>AF_rw_deR>x66wmqob39PxbF->|_B`!Z=WSTZ zBIe*jLpWqd8wcv64zM+STYgU;>F6+HCg90=)&@}~ z+^NF=%psI0GX+H%+Nn2SOSU=yNmJ+ecT;SyQixTJave_8GI1sjDx!2t1Bi{M-V-xu z)2}9f=b{nHX2_7->AiL6!IxFK#;};n--w@<-RT6{*cuoGPq(x4kon9*j2Su(i5ZOS zP;emZ_N!g%qC(W8yR!jIfo(HzHj81rTmsFS_6+t zduR0r`KMe<6jf9XjB?hEU*F)r@Gw(}u`u6&14eKa4$HDbiqM2RCJrwU`HvOWsLtF3 zCU~jFRh{ z13*$=C_znqTmDa>=tg{#t+2=%ak*+|^B~)M1iFz9Go`R+p~r-$MoH2raSII*%Z3SY zsn%GKK_n+AaUoDUdr@S1+0K=+r!n0{!@Y!lx&}~AooJ1pw*x|iR$2^TZsOaySAy9C zzJO;cV_n1QWZ-52JTmwB zC}&1kg(pwZwk|VVQ5XaIhZ>>V(aFA3; z+r63gQL~+J{?$=YO?%k7$+Nq&uPoT1X9c1X{1rTrRH_*COB~GFogqo^BM@$&Khe^d zMI--B_n7*;9-M3w3fD<{SLx>YD+jk)a{G;^7X`(xQ)uj+R1 zgbut=x5t;Tkn1-!4p7IBmR?1ZVtxzakGgjtpC~2W)T58Z`&LuhHsrNQYT&VeUwmKS zwZ4HAQeLnCZQ%HJQT0(`Z|;{^q8dY&DzvCmjlv~$&u>ZP*AM2IG$7y`!~i4QUX8P^ zeQ7P%jF|7{3WRNJKUbWc(>8jX{~g1=?rmo?MI@YAo1Z*YXXUK~;S3A8m=eIME;@75 zgkx8tB*_!rnjd~;Ou;(^kj1PNF}hh?(y4hp2jz^o@Awo;y9gelH7)uqb zbW{G%okRofuscD=27y!8{eRkf(y%77Wjl)?Ll6-WFbIsG4xolbb`b{LKxNSZ#1Vp`;#^Tg zV1OYc%@ROaqQfSR!y+?RuLwcZQQ6W0CK6Oe5fD*`EH}uSuw^BEPk6rf@6P;r-*F?`w^;xRUsXkTb^r=cUPvZImIY9c;5eDlYzj4gmdpAk7SkqN5 z_->Jk+*|wBLVn5EewUWeT;=iJC(k_IJG>+fi|~TMX`LtWLS7%8ne3liszqT{JL>Ru zvEs&_4RZ=Q)OD`wHTa38vv>F^fvKCQl98g8(Sj+<^!V1{SEc6mGq-cw4`JqhQ+u;( z+j;EQ&Xifhy?wl=8uoUkqunn;uT<4M(jVDnk1xSza=XTp`fuZuv0L5r;ynp9xphq! za>_ZQ(O9Sn*kQt|wlJupUwRmszL^&fmbh=1MGcd|mY2e3gRFK;Mx%or83KflNo;@CamN+4)AMH3wwx1iGf0VTVLXRqEftC89Nw#&0 zFwIBZTQg5ym91naLK_}!*SclhplZ3}X+SLX+i~;sbw9CpfAs8q7-^BSr5QIAt>7J+ z`&%dCGhE0emxjvsO@FdujRns4n>ScCf7?|PR30veeNmmSeXwIu&>jWF$hvfhFT$pO zy!p(JuMlOm2#>Osqkbc_kP9LAd3^;ATA?--l9);Qgw2@c0pxaefL3g z<;%`_ho$FL%U%^U>!@a2$al%6{cNh~a$+=9Cmq9_i!W!cB(~h6goN-%TpPqbmkW}l z`+|o?W)I55`H)Wj;>UpZ6*nW}9$?C<+JE=K zdO7ScJS--p9=rK=TVyWFIJb2T?G8=tirK)8i>o!3))qRrYIOZV@_6ow<&NXC^eG38TW7p0 zF6t#sXnlW4^q&1tQLwnyh%}@{D(~(En?XeN30;z`aa#v1=9U8Jhq7n-g;ObTpwttY zriz?%f&Ejfk~2%AItrHQ8sPjRJ)79~#?}|dVZ;v0OlgP274DgazpTk^GwY2WKY~s1 z+<5mLG4J`Q!Q&oLj-R@EtlGw0NsS){9&goXd~nUD5C2LYTt1n(;PK7YsoNjkEEy@| ziwTdaQ}yC+jJqztXC|A$hWf+$15Yx;&NxW z6>_=;w6mP-1Qu6>)t`jNRYoidPp8#U&bbwz#^nV+4tt%r!ztKjvEE&}^J)}1sdgR5 z{$|1d*idf1gvVKg$I^Ohyu8St&{KF6#vvdfP)QBWX3)%r6TH@QeAT28!+zD0Y3^9)L&EcM$M1R)dr%49 zO?F9w4XM!Q+B-x}=Dvh;>-dwW+%C}>`-Kf_XS@*!Idi8YbVGigabbNgqe zV{kR?eycxH8d7pvM{KTM%fE}WC|*+#Zqp*LNoEHxn8beenE`*sOIoS#7o7NRd(A{! zd_OtpmyDJmqT0G6mkj(JE@>cS#Y~a#?12%9$DE~<9;O9?1MNDG|S4Xt>zjg8POLrI*R0i=d|r2k|b^VyC*?ZqLsac2A_FR3* zn9z(wS=QVyB(-tVH}|UAK}{!K?twUJZUvlvf~>-2P&jj!4$!@^-{w-;;Wg83N|^Qc z0^jnjmQa?FnWG}8#v@TtoRy^wbB8!|c58|XbJqy($2)w!GM1$BT`eQ|SKHv?XQv<8 zX%v=o#EfuRtj6(3fkN^HPuSU1&}}H(3rEfoU8#W*RioVFIODAOgDS2s9GZ^YJ@G&@ zo*Pc;Ey&4nYl}C43pk^*HqDd`HN+I%5W;53pb2JJ874@niH;DSpOHo2_B)TMCuKX4 zq{oI6UisY2(}g4(-wBhpZ4m9FHi@jOMq%MsU?m!HgZlU!<(Ti!Sb?nusd0f$Mb0kF%F$mVzTzum(g1?j3AlY{8m*&_)m(R? z1xax2-hxB(rE88SirK6vbNGOHv;I>nkI$F>JxY9SH#*ANOvi_NFI7`Ov-EVi-5+$(>@%?3GRMcowW`jUy|Er zo!l({_JK*FZ-P7kA`fPN)Xj(^Ck!P*t>(_>2$y}OIEf8E_|)+F&oomo-7!5EoF>*X z_qT4mta>}HJZtjFl@lg{EqfHPFZi+qRbI!2FdUK&B{+haRfk2nS7le(nn485PtXp= z_$Q7LP40CTFD^NG$JVv{aFI`O+8~XxJ(YZFaF1??#jq7bgs5vD@nq{lOTQS#ziKd_ z#T6$kSuTM)lA+4sfuPRB^DlJy+ehgBF%4nqjry#Gz)Vqx40>A{$z7wt$v0X6!D8~6 zqD5Y+W-Vs)mvhmJ%I)T=0nPY;)}}$`@@{+s*B%$p7;)UN%aqW;+6W^)s??{!6i}EjTcQBz9&_eLbNHR%?NkrV>N%ykm$CVXmw-3ZD+=I_g>9v&OUx< z7rm%MQ+%`ppFhEze~EdkWxcO826EvoZGedzg~ZQ=(= z)cW&QQOtmArFy5LEl7*CoF>h68-gJg!>e1%7 z0tQ2>6DsG_V+>?*VDe|7ixwvds=gx z#CKIww4V>lQdd5E{Pkyj%M_xJ9tub18z!3dvd3N6Mnqm6W77CEY4;6iEpY z+TXt%8hN(jabENQ&?6JdZ_$b87DWSmdQ&1zK4g?32f?(WuUz@QM>JJGoqK;1r2Jbl zh>Vd%H~H*-S#i=0H~qu3lD4YSRB543^+EQr3+U!TcxA^x^S~XF13^l12xzRbH%bhJ|M!~@`UKD_n{x$Rl`wcRF#IC` zlnhhSEQ88ELw~XGFBbmiMqz}**)tG?Uk?5Gf&SZLsqVkc1sR~gA7v{G{FVPl9Qcbr Vf5e^thVk=<0`eyU_~)_>{R>sO#h(BG diff --git a/icinga-studio/icinga.ico b/icinga-studio/icinga.ico deleted file mode 100644 index 6ff7e9029050637e225f83525665b4b78d994f06..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 766 zcmcgqF&2U_4E?C@l?^9nMvvi<+{#8b*|-u%VRUqpE&c=og#(y2CI2T)(iWiLsOu|$ z3*IN-M(a+ksSj#F-h@6EjaHo{0h~x_{&1y9O&ErO4zURlwWu6Q>2j2i6HnlYxG@0% zt$a6v0mm%FWH&kDUM4!j8dFM7Tq(IonTWF@fp)vbGpLO*a}!J6leLteEU<;VC&R4a zVt9%UVYrhiHcL_655#_{(hzF>FrS2L(|vSzKeK9Ee|DEalDepiSfMIE4;|%ePgG(V ueb4^Z$@(k!bCp(wujOg13cVg+ncTUi)z_1eQ3G&J{MG)UT5Htnqx=B0zls?E diff --git a/icinga-studio/icinga.rc b/icinga-studio/icinga.rc deleted file mode 100644 index 554dd6e42..000000000 --- a/icinga-studio/icinga.rc +++ /dev/null @@ -1,34 +0,0 @@ -#include -#include "icinga-version.h" - -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US - -icinga ICON "icinga.ico" - -VS_VERSION_INFO VERSIONINFO -FILEVERSION 1,0,0,0 -PRODUCTVERSION 1,0,0,0 -FILEOS VOS__WINDOWS32 -FILETYPE VFT_APP -FILESUBTYPE VFT2_UNKNOWN -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904E4" - BEGIN - VALUE "CompanyName", "Icinga Development Team" - VALUE "FileDescription", "Icinga Studio" - VALUE "FileVersion", VERSION - VALUE "InternalName", "icinga-studio.exe" - VALUE "LegalCopyright", "© Icinga Development Team" - VALUE "OriginalFilename", "icinga-studio.exe" - VALUE "ProductName", "Icinga 2" - VALUE "ProductVersion", VERSION - END - END - - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 0x04E4 - END -END \ No newline at end of file diff --git a/icinga-studio/icinga.xpm b/icinga-studio/icinga.xpm deleted file mode 100644 index 271363db7..000000000 --- a/icinga-studio/icinga.xpm +++ /dev/null @@ -1,40 +0,0 @@ -/* XPM */ -static const char *icinga_xpm[] = { -"32 32 5 1", -" c None", -". c #808080", -"+ c #000000", -"@ c #C0C0C0", -"# c #FFFFFF", -" ", -" .++++++++++++++++++++++++. ", -" .+++++++++++++++..+++++++++. ", -" .+++++++++++++++@##@+++++++++. ", -" +++++++++++++++.####.+++++++++ ", -" +++++++++++++++.####.+++++++++ ", -" ++++++++++++++++####++++++++++ ", -" ++++++++++++++++@@..++++++++++ ", -" +++++..+++++++++#.++++++++++++ ", -" ++++.##@+++++++@#+++++++++++++ ", -" ++++.###+++++++#.+++++++++.+++ ", -" ++++.###@++.@@@#+++++++++@##.+ ", -" +++++++.@#######.+++++++.###@+ ", -" +++++++++########++++..@####.+ ", -" ++++++++.########@@###@...@.++ ", -" ++++++++.#########@..+++++++++ ", -" ++++++++.########@++++++++++++ ", -" ++++++++.########.++++++++++++ ", -" +++++++++########+++++++++++++ ", -" +++++++++.######.+++++++++++++ ", -" +++++++++.#....#.+++++++++++++ ", -" ++++++++.#.++++.#.++++++++++++ ", -" ++++++++@@++++++##.+++++++++++ ", -" ++++@##@#+++++++##@+++++++++++ ", -" +++@####@+++++++..++++++++++++ ", -" +++######.++++++++++++++++++++ ", -" +++######.++++++++++++++++++++ ", -" +++######+++++++++++++++++++++ ", -" .++.####.++++++++++++++++++++. ", -" .+++..+++++++++++++++++++++. ", -" .++++++++++++++++++++++++. ", -" "}; diff --git a/icinga-studio/mainform.cpp b/icinga-studio/mainform.cpp deleted file mode 100644 index 64ec975db..000000000 --- a/icinga-studio/mainform.cpp +++ /dev/null @@ -1,316 +0,0 @@ -/****************************************************************************** - * Icinga 2 * - * Copyright (C) 2012-2018 Icinga Development Team (https://www.icinga.com/) * - * * - * 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 program 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 program; if not, write to the Free Software Foundation * - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * - ******************************************************************************/ - -#include "icinga-studio/mainform.hpp" -#include "icinga-studio/aboutform.hpp" -#include -#include -#include - -using namespace icinga; - -MainForm::MainForm(wxWindow *parent, const Url::Ptr& url) - : MainFormBase(parent) -{ -#ifdef _WIN32 - SetIcon(wxICON(icinga)); - SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE)); -#endif /* _WIN32 */ - - String port = url->GetPort(); - - if (port.IsEmpty()) - port = "5665"; - - m_ApiClient = new ApiClient(url->GetHost(), port, url->GetUsername(), url->GetPassword()); - m_ApiClient->GetTypes(std::bind(&MainForm::TypesCompletionHandler, this, _1, _2, true)); - - std::string title = url->Format() + " - Icinga Studio"; - SetTitle(title); - - m_ObjectsList->InsertColumn(0, "Name", 0, 300); - - m_PropertyGrid->SetColumnCount(3); -} - -void MainForm::TypesCompletionHandler(boost::exception_ptr eptr, const std::vector& types, bool forward) -{ - if (forward) { - CallAfter(std::bind(&MainForm::TypesCompletionHandler, this, eptr, types, false)); - return; - } - - m_TypesTree->DeleteAllItems(); - - if (eptr) { - try { - boost::rethrow_exception(eptr); - } catch (const std::exception& ex) { - std::string message = "HTTP query failed: " + std::string(ex.what()); - wxMessageBox(message, "Icinga Studio", wxOK | wxCENTRE | wxICON_ERROR, this); - Close(); - return; - } - } - - wxTreeItemId rootNode = m_TypesTree->AddRoot("root"); - - for (const ApiType::Ptr& type : types) { - m_Types[type->Name] = type; - } - - for (const ApiType::Ptr& type : types) { - if (type->Abstract) - continue; - - bool configObject = false; - ApiType::Ptr currentType = type; - - for (;;) { - if (currentType->BaseName.IsEmpty()) - break; - - currentType = m_Types[currentType->BaseName]; - - if (!currentType) - break; - - if (currentType->Name == "ConfigObject") { - configObject = true; - break; - } - } - - if (configObject) { - std::string name = type->Name; - m_TypesTree->AppendItem(rootNode, name, 0); - } - } -} - -void MainForm::OnTypeSelected(wxTreeEvent& event) -{ - wxTreeItemId selectedId = m_TypesTree->GetSelection(); - wxString typeName = m_TypesTree->GetItemText(selectedId); - ApiType::Ptr type = m_Types[typeName.ToStdString()]; - - std::vector attrs; - attrs.emplace_back("__name"); - - m_ApiClient->GetObjects(type->PluralName, std::bind(&MainForm::ObjectsCompletionHandler, this, _1, _2, true), - std::vector(), attrs); -} - -static bool ApiObjectLessComparer(const ApiObject::Ptr& o1, const ApiObject::Ptr& o2) -{ - return o1->Name < o2->Name; -} - -void MainForm::ObjectsCompletionHandler(boost::exception_ptr eptr, const std::vector& objects, bool forward) -{ - if (forward) { - CallAfter(std::bind(&MainForm::ObjectsCompletionHandler, this, eptr, objects, false)); - return; - } - - m_ObjectsList->DeleteAllItems(); - m_PropertyGrid->Clear(); - - if (eptr) { - try { - boost::rethrow_exception(eptr); - } catch (const std::exception& ex) { - std::string message = "HTTP query failed: " + std::string(ex.what()); - wxMessageBox(message, "Icinga Studio", wxOK | wxCENTRE | wxICON_ERROR, this); - return; - } - } - - std::vector sortedObjects = objects; - std::sort(sortedObjects.begin(), sortedObjects.end(), ApiObjectLessComparer); - - for (const ApiObject::Ptr& object : sortedObjects) { - std::string name = object->Name; - m_ObjectsList->InsertItem(0, name); - } -} - -void MainForm::OnObjectSelected(wxListEvent& event) -{ - wxTreeItemId selectedId = m_TypesTree->GetSelection(); - wxString typeName = m_TypesTree->GetItemText(selectedId); - ApiType::Ptr type = m_Types[typeName.ToStdString()]; - - long itemIndex = -1; - std::string objectName; - - while ((itemIndex = m_ObjectsList->GetNextItem(itemIndex, - wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED)) != wxNOT_FOUND) { - objectName = m_ObjectsList->GetItemText(itemIndex); - break; - } - - if (objectName.empty()) - return; - - std::vector names; - names.emplace_back(objectName); - - m_ApiClient->GetObjects(type->PluralName, std::bind(&MainForm::ObjectDetailsCompletionHandler, this, _1, _2, true), - names, std::vector(), std::vector(), true); -} - -wxPGProperty *MainForm::ValueToProperty(const String& name, const Value& value) -{ - wxPGProperty *prop; - - if (value.IsNumber()) { - prop = new wxFloatProperty(name.GetData(), wxPG_LABEL, value); - prop->SetAttribute(wxPG_ATTR_UNITS, "Number"); - return prop; - } else if (value.IsBoolean()) { - prop = new wxBoolProperty(name.GetData(), wxPG_LABEL, value); - prop->SetAttribute(wxPG_ATTR_UNITS, "Boolean"); - return prop; - } else if (value.IsObjectType()) { - wxArrayString val; - Array::Ptr arr = value; - - { - ObjectLock olock(arr); - for (const Value& aitem : arr) { - String val1 = aitem; - val.Add(val1.GetData()); - } - } - - prop = new wxArrayStringProperty(name.GetData(), wxPG_LABEL, val); - prop->SetAttribute(wxPG_ATTR_UNITS, "Array"); - return prop; - } else if (value.IsObjectType()) { - wxStringProperty *prop = new wxStringProperty(name.GetData(), wxPG_LABEL); - - Dictionary::Ptr dict = value; - - { - ObjectLock olock(dict); - for (const Dictionary::Pair& kv : dict) { - if (kv.first != "type") - prop->AppendChild(ValueToProperty(kv.first, kv.second)); - } - } - - String type = "Dictionary"; - - if (dict->Contains("type")) - type = dict->Get("type"); - - prop->SetAttribute(wxPG_ATTR_UNITS, type.GetData()); - - return prop; - } else if (value.IsEmpty() && !value.IsString()) { - prop = new wxStringProperty(name.GetData(), wxPG_LABEL, ""); - prop->SetAttribute(wxPG_ATTR_UNITS, "Empty"); - return prop; - } else { - String val = value; - prop = new wxStringProperty(name.GetData(), wxPG_LABEL, val.GetData()); - prop->SetAttribute(wxPG_ATTR_UNITS, "String"); - return prop; - } -} - -void MainForm::ObjectDetailsCompletionHandler(boost::exception_ptr eptr, const std::vector& objects, bool forward) -{ - if (forward) { - CallAfter(std::bind(&MainForm::ObjectDetailsCompletionHandler, this, eptr, objects, false)); - return; - } - - m_PropertyGrid->Clear(); - - if (eptr) { - try { - boost::rethrow_exception(eptr); - } catch (const std::exception& ex) { - std::string message = "HTTP query failed: " + std::string(ex.what()); - wxMessageBox(message, "Icinga Studio", wxOK | wxCENTRE | wxICON_ERROR, this); - } - } - - wxTreeItemId selectedId = m_TypesTree->GetSelection(); - wxString typeName = m_TypesTree->GetItemText(selectedId); - ApiType::Ptr type = m_Types[typeName.ToStdString()]; - - String nameAttr = type->Name.ToLower() + ".__name"; - - if (objects.empty()) - return; - - ApiObject::Ptr object = objects[0]; - - std::map parents; - - for (const auto& kv : object->Attrs) { - std::vector tokens; - boost::algorithm::split(tokens, kv.first, boost::is_any_of(".")); - - std::map::const_iterator it = parents.find(tokens[0]); - - wxStringProperty *parent; - - if (it == parents.end()) { - parent = new wxStringProperty(tokens[0].GetData(), wxPG_LABEL); - parent->SetAttribute(wxPG_ATTR_UNITS, "Object"); - parents[tokens[0]] = parent; - } else - parent = it->second; - - wxPGProperty *prop = ValueToProperty(tokens[1], kv.second); - parent->AppendChild(prop); - } - - /* Make sure the property node for the real object (as opposed to joined objects) is the first one */ - String propName = type->Name.ToLower(); - wxStringProperty *objProp = parents[propName]; - - if (objProp) { - m_PropertyGrid->Append(objProp); - m_PropertyGrid->SetPropertyReadOnly(objProp); - parents.erase(propName); - } - - for (const auto& kv : parents) { - m_PropertyGrid->Append(kv.second); - m_PropertyGrid->SetPropertyReadOnly(kv.second); - } - - m_PropertyGrid->FitColumns(); -} - -void MainForm::OnQuitClicked(wxCommandEvent& event) -{ - Close(); -} - -void MainForm::OnAboutClicked(wxCommandEvent& event) -{ - AboutForm form(this); - form.ShowModal(); -} diff --git a/icinga-studio/mainform.hpp b/icinga-studio/mainform.hpp deleted file mode 100644 index 0e8363206..000000000 --- a/icinga-studio/mainform.hpp +++ /dev/null @@ -1,54 +0,0 @@ -/****************************************************************************** - * Icinga 2 * - * Copyright (C) 2012-2018 Icinga Development Team (https://www.icinga.com/) * - * * - * 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 program 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 program; if not, write to the Free Software Foundation * - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. * - ******************************************************************************/ - -#ifndef MAINFORM_H -#define MAINFORM_H - -#include "remote/apiclient.hpp" -#include "remote/url.hpp" -#include "base/exception.hpp" -#include "icinga-studio/forms.h" - -namespace icinga -{ - -class MainForm final : public MainFormBase -{ -public: - MainForm(wxWindow *parent, const Url::Ptr& url); - - void OnQuitClicked(wxCommandEvent& event) override; - void OnAboutClicked(wxCommandEvent& event) override; - void OnTypeSelected(wxTreeEvent& event) override; - void OnObjectSelected(wxListEvent& event) override; - -private: - ApiClient::Ptr m_ApiClient; - std::map m_Types; - - void TypesCompletionHandler(boost::exception_ptr eptr, const std::vector& types, bool forward); - void ObjectsCompletionHandler(boost::exception_ptr eptr, const std::vector& objects, bool forward); - void ObjectDetailsCompletionHandler(boost::exception_ptr eptr, const std::vector& objects, bool forward); - - wxPGProperty *ValueToProperty(const String& name, const Value& value); -}; - -} - -#endif /* MAINFORM_H */ -- 2.40.0