From 8f7b0eb7c49d7af4c14c27f397073c287fa70eee Mon Sep 17 00:00:00 2001 From: Dennis Eichhorn Date: Thu, 26 Jan 2023 21:54:13 +0100 Subject: [PATCH] org -> unit change, some new functionality --- .gitmodules | 3 - Admin/Routes/{Console.php => Cli.php} | 0 Models/PermissionCategory.php | 2 +- server/CMakeLists.txt | 34 - server/Controller/ApiController.h | 302 -------- server/Controller/InstallController.h | 130 ---- .../Dependencies/win-x64/libcrypto-3-x64.dll | Bin 4340736 -> 0 bytes server/Dependencies/win-x64/libcurl.dll | Bin 496640 -> 0 bytes server/Dependencies/win-x64/libintl-9.dll | Bin 475769 -> 0 bytes server/Dependencies/win-x64/libmariadb.dll | Bin 1066288 -> 0 bytes server/Dependencies/win-x64/libpq.dll | Bin 312832 -> 0 bytes server/Dependencies/win-x64/libssl-3-x64.dll | Bin 742400 -> 0 bytes server/Dependencies/win-x64/sqlite3.dll | Bin 2159616 -> 0 bytes server/Install/config.json | 127 --- server/Install/db.sqlite | Bin 45056 -> 0 bytes server/Models/Account.h | 58 -- server/Models/AccountStatus.h | 20 - server/Models/Db.h | 30 - server/Models/File.h | 0 server/Models/InstallType.h | 20 - server/Models/Organization.h | 27 - server/Models/Resource.h | 92 --- server/Models/ResourceInfo.h | 47 -- server/Models/ResourceMapper.h | 34 - server/Models/ResourceStatus.h | 20 - server/Models/ResourceType.h | 20 - server/Models/Screenshot.h | 0 server/OnlineResourceWatcherServerApp.aps | Bin 372508 -> 0 bytes server/OnlineResourceWatcherServerApp.rc | 71 -- server/OnlineResourceWatcherServerApp.sln | 31 - server/OnlineResourceWatcherServerApp.vcxproj | 154 ---- ...neResourceWatcherServerApp.vcxproj.filters | 37 - ...nlineResourceWatcherServerApp.vcxproj.user | 6 - server/Routes.h | 35 - server/bin/CMakeCache.txt | 733 ------------------ server/bin/OnlineResourceWatcherServerApp | Bin 3643152 -> 0 bytes server/bin/cmake_install.cmake | 54 -- server/bin/config.json | 127 --- server/bin/install.sh | 11 - server/cOMS | 1 - server/data/README.md | 0 server/favicon.ico | Bin 370070 -> 0 bytes server/main.cpp | 120 --- server/resource.h | 16 - tests/Controller/ApiControllerTest.php | 2 +- 45 files changed, 2 insertions(+), 2362 deletions(-) delete mode 100755 .gitmodules rename Admin/Routes/{Console.php => Cli.php} (100%) delete mode 100755 server/CMakeLists.txt delete mode 100755 server/Controller/ApiController.h delete mode 100755 server/Controller/InstallController.h delete mode 100755 server/Dependencies/win-x64/libcrypto-3-x64.dll delete mode 100755 server/Dependencies/win-x64/libcurl.dll delete mode 100755 server/Dependencies/win-x64/libintl-9.dll delete mode 100755 server/Dependencies/win-x64/libmariadb.dll delete mode 100755 server/Dependencies/win-x64/libpq.dll delete mode 100755 server/Dependencies/win-x64/libssl-3-x64.dll delete mode 100755 server/Dependencies/win-x64/sqlite3.dll delete mode 100755 server/Install/config.json delete mode 100755 server/Install/db.sqlite delete mode 100755 server/Models/Account.h delete mode 100755 server/Models/AccountStatus.h delete mode 100755 server/Models/Db.h delete mode 100755 server/Models/File.h delete mode 100755 server/Models/InstallType.h delete mode 100755 server/Models/Organization.h delete mode 100755 server/Models/Resource.h delete mode 100755 server/Models/ResourceInfo.h delete mode 100644 server/Models/ResourceMapper.h delete mode 100755 server/Models/ResourceStatus.h delete mode 100755 server/Models/ResourceType.h delete mode 100755 server/Models/Screenshot.h delete mode 100755 server/OnlineResourceWatcherServerApp.aps delete mode 100755 server/OnlineResourceWatcherServerApp.rc delete mode 100755 server/OnlineResourceWatcherServerApp.sln delete mode 100755 server/OnlineResourceWatcherServerApp.vcxproj delete mode 100755 server/OnlineResourceWatcherServerApp.vcxproj.filters delete mode 100755 server/OnlineResourceWatcherServerApp.vcxproj.user delete mode 100755 server/Routes.h delete mode 100644 server/bin/CMakeCache.txt delete mode 100755 server/bin/OnlineResourceWatcherServerApp delete mode 100644 server/bin/cmake_install.cmake delete mode 100755 server/bin/config.json delete mode 100755 server/bin/install.sh delete mode 160000 server/cOMS delete mode 100755 server/data/README.md delete mode 100755 server/favicon.ico delete mode 100755 server/main.cpp delete mode 100755 server/resource.h diff --git a/.gitmodules b/.gitmodules deleted file mode 100755 index 3c06c65..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "server/cOMS"] - path = server/cOMS - url = https://github.com/Karaka-Management/cOMS.git diff --git a/Admin/Routes/Console.php b/Admin/Routes/Cli.php similarity index 100% rename from Admin/Routes/Console.php rename to Admin/Routes/Cli.php diff --git a/Models/PermissionCategory.php b/Models/PermissionCategory.php index 3287f37..e04c323 100755 --- a/Models/PermissionCategory.php +++ b/Models/PermissionCategory.php @@ -30,5 +30,5 @@ abstract class PermissionCategory extends Enum public const REPORT = 2; - public const ORGANIZATION = 3; + public const UNIT = 3; } diff --git a/server/CMakeLists.txt b/server/CMakeLists.txt deleted file mode 100755 index 8ed8dd6..0000000 --- a/server/CMakeLists.txt +++ /dev/null @@ -1,34 +0,0 @@ -cmake_minimum_required(VERSION 3.22) -project(OnlineResourceWatcherServerApp VERSION 1.0.0 LANGUAGES CXX) -add_executable(OnlineResourceWatcherServerApp main.cpp) - -set(CMAKE_BUILD_TYPE "Debug") -set(CMAKE_CXX_FLAGS "-march=native -msse2 -mavx -maes") - -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -set(CMAKE_AUTOMOC ON) -set(CMAKE_AUTORCC ON) -set(CMAKE_AUTOUIC ON) -set(CMAKE_INCLUDE_CURRENT_DIR ON) - -include_directories(/usr/include) -link_directories(/usr/lib) -link_directories(/usr/lib/x86_64-linux-gnu) - -# SQLite3 -target_link_libraries(OnlineResourceWatcherServerApp PRIVATE sqlite3) - -# MariaDB -target_link_libraries(OnlineResourceWatcherServerApp PRIVATE mysqlclient) - -# Postgresql -target_include_directories(OnlineResourceWatcherServerApp PRIVATE /usr/include/postgresql) -target_link_directories(OnlineResourceWatcherServerApp PRIVATE /usr/lib/postgresql/10/lib) -target_link_libraries(OnlineResourceWatcherServerApp PRIVATE pq) - -# Libcurl -target_link_libraries(OnlineResourceWatcherServerApp PRIVATE curl) - -# cmake -DCMAKE_BUILD_TYPE=Debug -DOMS_DEBUG=true -# cmake -DCMAKE_BUILD_TYPE=Release -DOMS_DEMO=true \ No newline at end of file diff --git a/server/Controller/ApiController.h b/server/Controller/ApiController.h deleted file mode 100755 index 3987fbe..0000000 --- a/server/Controller/ApiController.h +++ /dev/null @@ -1,302 +0,0 @@ -/** - * Karaka - * - * @package Models - * @copyright Dennis Eichhorn - * @license OMS License 1.0 - * @version 1.0.0 - * @link https://jingga.app - */ -#ifndef CONTROLLER_API_H -#define CONTROLLER_API_H - -#include -#include - -#include "../cOMS/Utils/ArrayUtils.h" -#include "../cOMS/Utils/FileUtils.h" -#include "../cOMS/Utils/WebUtils.h" -#include "../cOMS/Hash/MeowHash.h" -#include "../cOMS/Utils/MathUtils.h" -#include "../cOMS/Threads/Thread.h" -#include "../cOMS/DataStorage/Database/Mapper/DataMapperFactory.h" - -#include "../Models/Resource.h" -#include "../Models/ResourceMapper.h" -#include "../Models/ResourceType.h" -#include "../Models/ResourceStatus.h" - -namespace Controller { - namespace ApiController { - static Application::ApplicationAbstract *app = NULL; - - void printHelp(int argc, char **argv) - { - printf(" The Online Resource Watcher app developed by jingga checks online or local resources\n"); - printf(" for changes and informs the user about them.\n\n"); - printf(" Run: ./App ....\n\n"); - printf(" -h: Prints the help output\n"); - printf(" -v: Prints the version\n"); - printf("\n"); - printf(" Website: https://jingga.app\n"); - printf(" Copyright: jingga (c) Dennis Eichhorn\n"); - } - - void printVersion(int argc, char **argv) - { - printf("Version: 1.0.0\n"); - } - - void notInstalled(int argc, char **argv) - { - printf("No config file available, is the application installed?\n"); - printf("If not, run the application with:\n"); - printf(" --install -t 1 or\n"); - printf(" --install -t 2\n"); - printf("where 1 = web installation and 2 = local installation.\n\n"); - printf("Usually, '-t 2' is necessary if you see this message since the web\n"); - printf("installation is performed in the web installer as described in the README.\n"); - } - - typedef struct { - Models::Resource **resources; - int count = 0; - } ThreadData; - - void onlineResourceThreaded(void *arg) - { - ThreadData *data = (ThreadData *) arg; - - char **urls = (char **) malloc(data->count * sizeof(char *)); - int i; - - for (i = 0; i < data->count; ++i) { - urls[i] = data->resources[i]->uri; - } - - Utils::FileUtils::file_body *multi = Utils::WebUtils::multi_download( - urls, - data->count, - 5, - 0, - (ResourceTypes *) {.size = 4, .resources = {"jpg", "png", "gif", "css"}} - ); - // @todo: flag for downloading resources types (e.g. js, css, img) - // @todo: limit filesize to abort downloading large files - - if (urls != NULL) { - free(urls); - } - - bool hasChanged = false; - meow_u128 tempHash; - - for (i = 0; i < data->count; ++i) { - // cachedSource = Utils::FileUtils::read_file(data->resources[i]->last_version_path); - - tempHash = Hash::Meow::MeowHash(Hash::Meow::MeowDefaultSeed, multi[i].size, multi[i].content); - if (hasChanged = (strcmp((char *) Hash::Meow::MeowStringify(tempHash), data->resources[i]->hash) == 0)) { - // @todo: do stuff because of change!!! - // create website image with pdf? - // inform users - } - - if (hasChanged || data->resources[i]->checked_at == 0) { - // @todo: download references + css references (= second level) - // @todo: probably ignore javascript references, they are not useful for static offline comparisons!? - - data->resources[i]->hash = (char *) Hash::Meow::MeowStringify(tempHash); - data->resources[i]->last_version_date = time(0); - - // @todo: store new version - // @todo: check if older version can/needs to be removed - - data->resources[i]->last_version_path = (char *) "PATH_TO_NEWEST_VERSION\0"; - data->resources[i]->hash = (char *) "Hash_of_new_version\0"; - } - - data->resources[i]->checked_at = time(0); - - // @todo: update data - //DataStorage::Database::DataMapperFactory::update(&Models::ResourceMapper) - // ->execute(data->resources[i]); - - Models::free_Resource(data->resources[i]); - } - - if (data->resources != NULL) { - free(data->resources); - } - - if (arg != NULL) { - free(arg); - } - } - - void offlineResourceThreaded(void *arg) - { - } - - void checkResources(int argc, char **argv) - { - int idLength = 0; - Models::Resource *resources = NULL; // Elements freed in the threads - - int i; - if (Utils::ArrayUtils::has_arg("-r", argv, argc)) { - char *resourceList = Utils::ArrayUtils::get_arg("-r", argv, argc); - char **resourceIdStrings = NULL; - - idLength = Utils::StringUtils::str_split(resourceIdStrings, resourceList, ','); - resources = (Models::Resource *) malloc(idLength * sizeof(Models::Resource)); - - for (i = 0; i < idLength; ++i) { - resources[i].id = atoll(resourceIdStrings[i]); - } - - if (resourceIdStrings != NULL) { - free(resourceIdStrings); - } - } else { - // @todo: limit memory usage by doing this multiple times in a loop with limits; - DataStorage::Database::QueryResult results = app->db->query_execute( - (char *) "SELECT * from oms.orw_resource WHERE oms.orw_resource_status = 1" - ); - - resources = (Models::Resource *) malloc(results.rows * sizeof(Models::Resource)); - for (size_t row = 0; row < results.rows; ++row) { - resources[row] = {}; - - for (i = 0; i < results.columns; ++i) { - if (results.results[row * results.columns + i] != NULL) { - free(results.results[row * results.columns + i]); - } - } - } - - if (results.results != NULL) { - free(results.results); - } - } - - // How many resources are handled in one thread - // This must be multiplied with the thread count for the over all concurrent max downloads - int THREAD_SIZE = app->config["app"]["resources"]["online"]["downloads"].get(); - - Models::Resource **onlineResources = (Models::Resource **) malloc(oms_min(idLength, THREAD_SIZE) * sizeof(Models::Resource *)); - Models::Resource **offlineResources = (Models::Resource **) malloc(oms_min(idLength, THREAD_SIZE) * sizeof(Models::Resource *)); - - int j = 0; - int c = 0; - int k = 0; - - for (i = 0; i < idLength; ++i) { - if (resources[i].type == Models::ResourceType::RESOURCE_ONLINE) { - onlineResources[j] = &resources[i]; - - ++j; - } else { - offlineResources[k] = &resources[i]; - - ++k; - } - - // Handle online resources in batches here: - if (j > 0 && (j == THREAD_SIZE || i + 1 >= idLength)) { - ThreadData *data = (ThreadData *) malloc(sizeof(ThreadData)); - data->resources = onlineResources; - data->count = j; - - Threads::pool_add_work(app->pool, onlineResourceThreaded, data); - - if (i + 1 < idLength) { - onlineResources = (Models::Resource **) malloc((oms_min(idLength - i, THREAD_SIZE)) * sizeof(Models::Resource *)); - j = 0; - } - } - - // Handle offline resources in batches here: - if (k > 0 && (k == THREAD_SIZE || i + 1 >= idLength)) { - ThreadData *data = (ThreadData *) malloc(sizeof(ThreadData)); - data->resources = offlineResources; - data->count = k; - - Threads::pool_add_work(app->pool, offlineResourceThreaded, data); - - if (i + 1 < idLength) { - offlineResources = (Models::Resource **) malloc((oms_min(idLength - i, THREAD_SIZE)) * sizeof(Models::Resource *)); - k = 0; - } - } - } - - Threads::pool_wait(app->pool); - free(resources); - } - - inline - bool isResourceDateModified(char *filename, time_t lastChange) - { - return oms_abs(Utils::FileUtils::last_modification(filename) - lastChange) > 1; - } - - inline - bool hasResourceContentChanged(Utils::FileUtils::file_body f1, Utils::FileUtils::file_body f2) - { - meow_u128 h1 = Hash::Meow::MeowHash(Hash::Meow::MeowDefaultSeed, f1.size, f1.content); - meow_u128 h2 = Hash::Meow::MeowHash(Hash::Meow::MeowDefaultSeed, f2.size, f2.content); - - return MeowHashesAreEqual(h1, h2); - } - - Utils::FileUtils::file_body hasChanged(char *oldResource, char *newResource, time_t lastChange) - { - char *t; - int length = 0; - - for (t = newResource; *t != '\0' && length < 7; ++t) { - ++length; - } - - Utils::FileUtils::file_body f1 = {0}; - Utils::FileUtils::file_body f2 = {0}; - - bool isFileModified = false; - if (length > 5 - && (strncmp(newResource, "https:", 6) || strncmp(newResource, "www.", 4)) - ) { - // web resource - f1 = Utils::FileUtils::read_file(oldResource); - f2 = Utils::WebUtils::download(newResource); - } else { - // local resource - isFileModified = isResourceDateModified(oldResource, lastChange); - if (isFileModified) { - f1 = Utils::FileUtils::read_file(oldResource); - f2 = Utils::FileUtils::read_file(newResource); - } - } - - bool hasChanged = f1.content && f2.content && (isFileModified || hasResourceContentChanged(f1, f2)); - - free(f1.content); - f1.size = -1; - - if (hasChanged) { - free(f2.content); - f2.size = -1; - } - - return f2; - } - - void saveResourceChange(char *url, char *oldResource) - { - Utils::FileUtils::file_body dowloadData = Utils::WebUtils::download(url); - - Utils::FileUtils::file_body fileData = Utils::FileUtils::read_file(oldResource); - } - } -} - -#endif \ No newline at end of file diff --git a/server/Controller/InstallController.h b/server/Controller/InstallController.h deleted file mode 100755 index 59852e2..0000000 --- a/server/Controller/InstallController.h +++ /dev/null @@ -1,130 +0,0 @@ -/** - * Karaka - * - * @package Models - * @copyright Dennis Eichhorn - * @license OMS License 1.0 - * @version 1.0.0 - * @link https://jingga.app - */ -#ifndef CONTROLLER_INSTALL_H -#define CONTROLLER_INSTALL_H - -#include -#include -#include - -#include "../cOMS/Utils/Parser/Json.h" -#include "../cOMS/Utils/ArrayUtils.h" -#include "../cOMS/DataStorage/Database/Connection/ConnectionFactory.h" -#include "../cOMS/DataStorage/Database/Connection/ConnectionAbstract.h" -#include "../cOMS/DataStorage/Database/Connection/DbConnectionConfig.h" - -#include "../Models/InstallType.h" - -namespace Controller { - namespace InstallController { - int installWeb() - { - // Create config by copying weg config (nothing else necessary) - Utils::FileUtils::file_body config = Utils::FileUtils::read_file("../web/config.json"); - - FILE *fp = fopen("config.json", "w"); - if (fp == NULL || config.content == NULL) { - if (config.content != NULL) { - free(config.content); - } - - return -1; - } - - fwrite(config.content, sizeof(char), config.size, fp); - fclose(fp); - - free(config.content); - - return 0; - } - - int installLocal() - { - // Create config by copying config template - FILE *in = fopen("Install/config.json", "r"); - if (in == NULL) { - return -1; - } - - nlohmann::json config = nlohmann::json::parse(in); - - // @todo: populate config values (e.g. log path) - - std::string strJson = config.dump(4); - - FILE *out = fopen("config.json", "w"); - if (out == NULL) { - return -1; - } - - fwrite(strJson.c_str(), sizeof(char), strJson.size(), out); - - fclose(in); - fclose(out); - - // Create sqlite database - FILE *fp = fopen("db.sqlite", "w"); - if (fp == NULL) { - return -2; - } - fclose(fp); - - DataStorage::Database::DbConnectionConfig dbdata; - DataStorage::Database::ConnectionAbstract *db = DataStorage::Database::create_connection(dbdata); - if (db == NULL) { - return -2; - } - - // DbSchema *schema = DbSchema::fromJson(jsonString); - // QueryBuilder::createFromSchema(schema); - // QueryBuilder query = QueryBuilder(db, false); - // query.createTable() - // .field() - // .field() - // query->execute(); - - DataStorage::Database::close(db, dbdata); - free(db); - DataStorage::Database::free_DbConnectionConfig(&dbdata); - - return 0; - } - - void installApplication(int argc, char** argv) - { - Models::InstallType type = (Models::InstallType)atoi(Utils::ArrayUtils::get_arg("-t", argv, argc)); - - int status = 0; - if (type == Models::InstallType::WEB) { - status = installWeb(); - } - else { - status = installLocal(); - } - - if (status == 0) { - printf("Application successfully installed\n"); - } - else { - printf("Application installation failed\n"); - } - } - - void parseConfigFile() - { - FILE *fp = fopen("config.json", "r"); - - nlohmann::json config = nlohmann::json::parse(fp); - } - } -} - -#endif \ No newline at end of file diff --git a/server/Dependencies/win-x64/libcrypto-3-x64.dll b/server/Dependencies/win-x64/libcrypto-3-x64.dll deleted file mode 100755 index cd0566c0311d5651e3ed25b0abf5f6ee43a4100c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4340736 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

T85)|S%Ybq&5aWR=JyC~fd@DpB{1}I>!*>Xo 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↱e#NZTLI^j?ErMUdKvJ03iS*NC=|};5VpJwBzN;cke|k59Nr~p*19+F zYxy4jWd9xGsHWei6VZ5yG1hJP&dy1S;~k%&-y2q8fJr=uP#ASTi(21>a+y0LM{&p@}7kz|bZEs=5dddL)rC)$$uXxe#z)yi% z<0b$f_aXqy{tzu%-w#|`GUj;SDSX~UT;_b$0r)jX!D0qm-kpr`PCks%huQ;4gM{dC z4cIf<16EAu$^6g=bUFJWaA8jyjOf!*$XiH%*v7{J;5t4zz3pwZ==DB^b@_du)nlIl zp|oazH|;1Yf1QYCUv@%AR}g6KC#byj3l!Y83c`?eEdZqQ(!p~((QM8Y=;+atfHI%f z%}K`ky~|C=M;kzmr{4omg`qFCG&=08xAJ8S&~iOKCy-!yj{|%2mPL;C2O z=;Kf(7;w@Ag1yYW`15yzU|J9KTf&PC3-}WGGrUd{HyV`(?L)oRkr?^6^8xhe{ScpJ zJn<}LD)eRinLh?X{eTLDwo~BV;=Q|RY3SUUilKI)o~d9IlIc! zXU&Z57|f?$^gD^CZohN`nM!8@z+md5`Fv92gGQjxyHOZI%mS#Gr>{gGPGYry-ekK6 zQ>{BaPcJfLWZrGS>irN@-q#j1{je<<)rzrOFU?1ni;n~Gi}-T*HT{tKZAA#=Z!yqt z>L5KQ|KnHi}2RZM<>q;6~yB zM%&!10}c0NjM6*{1syu0%KgoN=@op&=bJ$oO#ANv?>274eh$N`lA4c>ej${8voMbR zGeC&W?a=Hm6EOVC7>_>cXHd5$8-qFC9W9!^2Q=Q~R>4ZI-$Y8zgifIN6VIcMC9h+7 z*xM5`{yM(Z^yoG~SU)Ikf$acFqVsQrLptnRZX1w+b#Y>$sWky_@h}16J!d zV3gVPKmWp);=a29fA+rxCa-xCK!@J|D0k3F-j+x9)BXnV;fyEz;d<12b0F$v9zm5s z%|OHn;TYBvy^vSQYa=?NhK4B^%>J3^Xg;seKE-g^V!i?9z7>+AZN%q$D}m5x9d+2Y=AeW79(%+BuamN25l=t07cJ7K_{LNZR0K2Ui?$`0EWaGo9XE-=ec;s$DsWST%>P}Mzf(&0PuDO5E`%xe|~0U(pZjn<)tet+dkSVnBP?HL1x{Mi*QpTE3~D%bIb$2+t*xjy9jU6RP^y6O`KueEbq@l!J!k7m!~`!@8oG9`+cOOnR~0p+2a2D z0dzOxmJ(gG4{k=4ChdS#)+|67%ik;d(2dSpvGm(Y^t&k+#QyASFyM|EfINyZJ4rD} zz4r-*FnSv>Slt{XiMtJ~_?Q9D*Jok~KQF^zmXJ{!PXOLHdfHUJcNl#G>b*hvdpQ$b z#_&*CdmZF#;RaLIzKQ|P~y@io$wBd$qp*+(>bd5m4t2d+VM7qZ&@QQ21tN1*6I0W#% z1x@Er#dM=~S*!w~%bSC+53}CknP@SM>Ns3Om!tXT8M->V*J5lIw%x9rSN`Q51yV2g2hp?XWxm=Z=<(j z)LM+Z=x6j+{WA)7(lFfL3(Yot1Hwio0emstfo;DB&Pg*c=

NYP$y^D!1}r*mMgJ zIx-jluAdD6*Zu>a`(7aZxZxPa;U9Yspnm-uP>Xy9pT!Q;izw+;a=^J-8U!7%ZC^dgS5VdSmG0LtJYp!2U`VDcMRpha`8Di8e(V&^jm zy2Wl#cgsGMR?*ooly9vanF|KAruFb?Yd~HS1%hqtkAl*LXd8M2sl_*dLS^I8+hdO+ zZxlUz<4Z8248D)~197>SCugsIgLyt?3TET8-{bTB9ia2ken9OW-r(Mufi9bU0eGF4 zqU}ki8T-|nfmPaPArl1_XmHZX>4P?aNt)uW~C0kfJqTePA23^mepXkan zubYnI^L1Xv9ZVvwG4SW|j(~FDYm7XGoBr`uFlxtDsJDR6u z9nlMvJlX<0y5uHwblnM{yNwZ?YZ&($`2s4xn*}u7iy%4L9JJWMp9X7s9L-jTA!Yh2 z=rU#~3R))vtJf;P_=PN8HV|F*8;G`lU(WG9P5gR+IM;B4f0*H@@s9%CDNE5um*d2b zeS9(*m9O3n05cu|-)wgRt0FoPF8L7%op6Ed>O1IT`ETIh_dI}V&I?h$adVMRoTpTx z%B%`>w3?rBSzz8*w}S>v)}z__@myb;0)xFg-2JX4nqB%fx}3Qi_+4}-{=Cd1-7o$I zgbIjccm*oIunxj7{Uu1rB5JFNv(a`yQ!p>WhK|w`0AS=5s4{C8T3m5IddsDYaO*U*Xu{yRZ`+|+5i4I( zg3qbTQ28B3{C?gMZ68R+U=G}lj(+P5=Jn_e5$$j-^6sbZzG5lhb$iWVOXM;~|aDcZE*KxkKg4A9vP1q&Fgbp?M`cIB@j z;O`I+c19|yeES^eJjnu3%WegAU*|nsm5(QH;-2oJzXJQU?|^=3JPObl7gWN?q;?FD zYCIHBx^Kbfpy$Dgd6fG+`cRJYQLPjYIvTbaxE#9|z)}0v9_%x8S z19vO~3jp95R{5zPNY~zh)WJc(uOq!FE4VEkc`F7}O1pC#Z%yAm44^LRhu*gHYSddi z|5(b9@b`G-WGy2LE2cyAe%gV0kEEe=&t2#;Vi}Ok=9?TTT`_e#ZAQJpy#F>c44}#w zadgd4e5Tz5494>?Cxgwt91S#9>j0H|7+Ce@vBdQZUcZF_IYrBX!N|ukj-C5a+H5ph z%%=%a#)1RfJjPVwPZG6@!nr?s019rUP@4{b2D5qab>(9K{~8}ynzRD=B`2U@&bJt< zha1%8e2wHO{<>M%W_*rfpy5&%n!Pd@BigbMc@>wS%Fu4$%n{xz8qfz_M)1kd6?8aX z@-*u03`OasCE&;MRFEW+;EPwI*{GHHGmXbiB`*NzXnLnl)nYM)!w;zukaK8!C~{_F>RB^SWN!r!dr~NvroR!6<7FV_2>eA&@@?)ePc^ zag&=sgD2>towNo+-TN3ifATwU`q4_D)@DA2aFRiB4>R8Ei@A_fgKx0EG87$c;mh?^ zUjdh)r0#4!B6hGCXx#DuShj?5H+y42=ht1tkLQS;-v?{^)86fK43I}{L|g41K? zoe$iPf>WGZceX%*1LrT#T~_nDMIwJO&N39J4VZw``@Ml$$j2bWgKZ#itNNlvx0gYjd#Ob3ZVl|W z7XtkAKjDv=yYeY2Xj*#+Rc@uP`KMBJG^PXyJ06N9!x)=h z1A*Gy_UI#QEb470Nv1LSWC-2IH{OhX|CS1%-6=E{l4JvK=&%12kV8)6^SNFSn(x-) zvl|x~$7{&@UPo_tGzASd$77UYf8LjY{#|IZUfdBt7cml5+~=If<+UX}uCZIt(Su*0 zVBGTn@b@?%6irw0a30TJ#xAe=00r@Vz@t}qI`_hBD6sQPZYa+K9-$6sy&X_&laV*J z6fN%Iuy)e$dX(&m?gRWzc0scP+%H^3()HjO)eugw1&ctEs#WM?XeiLwN;7H(J;%0p z0W|$O3?_vagTFhBD%~2PU`=0O{~5Oc#e2}@Ti*h_nXZUesAs;Uuca~X5Lp+a*~c{1 zo@H-O(CwA}11c|Dh}3m_R=wFBAaQ4!baUxYyJiCj`w;`Z%vBg$IInj$WyIF4v;^Z+ z2+habIJGW9y_SCg&L(yP&l7jNI$1SoCphD;7m!Jj+cf)F02 zn{?Mw;P+lr4B^HI5T|N1i2VtpyvH1bupYb>L$z_q=z2S#R8y`x(K3JZ3ykB?-_Z7f z%RtU|%aOPFFF?0uIzaVhzY7w9-|n^e^XgS7c;q1RCeV)=LAp%h8j(zA!_@GfZ>-t_@^+J)gYlkl1l-p1+%$9wP!|9I0c49~-gWyMj1_h7^Do(;eo zabb9Wm++zqFS%iO0|M~IUKrk`5?&19?LFAwcuyz!$2jA)FuZOOUM%5NS2Z}^CVqHJvQhH_>(&0t#dw<$-g6DZD`YjU z2TSrV4DV41uQ}n})G)jW0eA~93{REtS`gkZMuX#R9f0@rh2b6RB*q&@c*`1ww}I8f zc$Zul-b)f*OTru3FuWN7cuOw~Z?J^ditwTuhIeHE-U`(G->jR1xNq82(1YwA-^uIM zlJ_}hCXNruYzd>|mEp*Mu`(W#*rUp5j4yY@jBhXr0-2w-@_NsuV1Y(>@e&@|+~xz+ zL(fgjMiH9B#<3<&BcLRvCNY&@?7JF$IM-<<=fbR?BjFcx6!-%E>0uJle+fV77?A(H z@J9sTKl^*(Z*BIw@Yh_oCz>_ay@~OfD>E^HR$=ULb*OraI!qm|tI?YKhKfzKUaP*# zuJ7^`nH~DUj@}S&i0avBUWBvi2xf)1c+3;zDOdlNFuPv-@Zga63wmpD@P$|4)=oz z%8+|Qt5wOJOMLn%xi9(#;t_cSr1Wj0IuC_fa&L!G z?Qmap^~PGSs+UT{$~8fwSgXF-?x~7b^_6Z82wkaquA4A5<*0Ae$jKvgwQ2a_*hk6b1t+R*(190L#rX(>!8&Dnpsn71T;x8(#{MT0ODeSlpjB! zswt2oj;0>OT_BO>IcTl}iaPyGsEPuczBrF#4D^aYLJIqGycivlC@J+f<)y`@T<%N<<#&+LZon?9Q?TAxe2`e)D=A`n`!gFw?&(ul0&aZPUxG zda)`d7!eZ;#L#wHRxRq8-Gfq<+k^jl_L&vTZoyU5^Be#razzbfgZ45*R7HkzkzVX6 zHhap=IS06ibSRA~R$aCbAJ+j~0zF_3NK8F&0vl5L>|Tn_>Seg;yxo|5vJ40kV-WB> zqX~%q+1+@~?#7I6%FP{0F(ggDJ+Z4CR1~H(#M@=#G%w;*#8d~`^TpVZC+S1VmE)_} zv!67RBr4}@)WD6@GjdgBP_*vxcm(D4OUh|_W}+75K|j&z7vteq(Y4sORR?qHL;#Th1{N@j)gW93Ki{yLIoJ1L?wVCkroh;tfx?^$LlS^RH*D3 z3YB<3i^}%JOrrVO3KiNxC{iOb5r$potkTS%lP_v{${j#Li zYiXYvGH#rueJ*r%2>ODS*%Me3RB3%!^-nRWu~1`;2W+vT?1Y+vR>S%Wq=hEss)#yR ziP0}}{K^PjOH~WycvOPqx+Yg8z<{pxL-m8JsjnFYxEih%0=fW)3RH`Ax>h!T;)I?B zMgl&d0kF`sK6U3uj+zpS6>JmYD(gfxvN|;>G%P_;!vc)YiWAxup!|xK80daQOF^qs)jlmL6fFPGS$*NIe3GXFF2>oBT`83y&-(gZHKcO` z>x{G^%>Sw@A(m%$g>jXh(bf6&u27r8o{;vXRK7?bgoQ5F4M|7J2k8b{_R(|2N(1_V zsB&c6gyB+hMu*X7+Y?gx(sl_d-~Wsr{j*S0hZH10LXA%F2Ec=WO{;N7tk;`YWXW%j zHC}geD`r!+d-jDnGRpIcW{q^X`*rX1=F>$iozC&*#{w zWx-;6X|9=xT^;TrVK4+HeN^kU>3y1}xo<`fMXFZ_Ka5f_fgz`TuH`{y z{4){h6Dcx9uXQM!ZLU6l5O|aG0gpN#@Mr*U^an6M8?YZHz%;R@NVd$MUJFst!4{O3T}8$$bL}cc1JxdwacJOWq^+$~m11 z!L#H#k=9&o5_3*xLmabW)G{#{cs^3yI_Go|{w<)he>G1eELLnSM7gSmq`7Z03Ga_^ z>%jAq^EDPsFWf$^OCb6t>`lte*q%@~d2_@Dg*%f_l$jeS>kC68H5&e&3Nu_jVgdFF z=uzdW>!xUlqa`l|nCsgd?v~cVT5sKURA?=mo;!~kNwpN#U@KRy=IjIFaEKrqinAk? zrWI}_VU}Vx*&wKPan)#nmx{&0Zc<@nx$JQ&Ty6?zt;Rc2_FD4p1J@zOdYeRuvKbaxYOJ8KB(UGP zCTI*Osc{W4AWq7ICC}k!KuJM^3?S{vgFnLnySs1FSxh)}OfUgdCllKEn2_LOLL!*( zA!=CKXM>U%N}8Pub>5 zuhF${h{vyjBO}k@NPI&a!CoP?O+y@MlXE%*ys+f8#d0O4M7Iwbs{uT2fK~4iuPfm;m<^yIRWVu|}v~_br$4vEG zn!f2;Z}vjs*I`-|sY(&1#6F1rH{5Tin>Y>Z2EM`k!H52H6SA^yLPGJYp8yeb`V$7S zOUy~^#MIBloRkuPqrdud67xuS=FKI}a-IN~|3~YaKWm5mZ)sPMgr&f!i4yu$b)E{% zY7CwvRb6v~U{X?5%MG>lkCjqy88XawKBDP|3bNU{P`1|eh=B|_P}XTK8}_SN9u#cDx0U})}^??SU63TGq!F)SBjjz2WX z=?$HV3Kg=#qq4#QR`?;_>s3#zw`8JtgDjpbi(CAJ;;krlz|x!s2$sA^7`~c&R;;FP zu{(c@wLDyd7HRr#cFz%$=2k6Q%B}|*!~8|UGo`uR-B0A$m}5^Vo!l!;FLme}9m$@; zSTuAbSB$IkkMyyuGKF3fs^*&j!5*qP4~Aw{SGNxMPmZgWiA|4NCWel)94S9;nH`m; zuhaA$n!eH4ngSBL`-{%teP;J%ldndJmi&w8N$A;CCQH}Q0O+ID?auVi0JH`Fhx@^+ zme@uF;eKd^<}8V|J4<6NSJ+nAoku_j3um5tSOSRARZ`+tkjCygYzp9OiS2t-b5=u{ z^s%7f64E9`B3C^58iCvnwSaU$6RdX_eiMnG-D!kooew_@dt#U$zq;X9USBu-p8nx? zJ!AM1{vR5@B?&m|JH}aN+g6YWcIROX9LJyDs#uIQE&ON86`6@+?cra52nh~%KOZ5& zpj#laD;(|&i%&GvA9~ZMB zAaC7%$9Nn0$BSXgA!9OV?yRCZd9Wlw4jkC`Ow;tVN=?~hq_+Vja@J*I=)MDm(IZC% zwbOq|mHG7rPSXSWVqOI3oV*YEqFrJ@UpVxvv3C6^&h<=b`YEW5qBMP&DI8hd_XK@aSxoS+ZTro3oEa6!4I&-~9`O1<@?E@>hG_^@tlai(3 zmb}%-fDVbZ>sz1)S2*;2&~ujD1<1x2iyZFRW{3M8v)_IXwY!JcsEVxyT1IvChw)_l zRZ-z->HjOXHYf;DU6IH%DQdLcJ*Wl+CS%dHKv*{=ii~dk;i{R9?Tj_iq;~5M>(82K zMgqo}H8DEPeOC=WeoAxS7ppmc2+eW>3lP<|!V(**TADS2#xNyXnuS!&#gM2z@IQ2A z-igc`5PxQgRnl-=?7ju7Y1#_Rs!}dgD~#sAKtr$NEECI+3usBTntNodrCEP0mFT8a z!frMzwyKMtR@C%o(CPyptQ_&HhM!5Va!c${uA3{2jYVAH1j)97WNCFI8zf0qf(`()*}zz? zO_MB1kT!?z6L;Slwfv&GHHyccw~zV1y+$FVDCb~ONMIF~@kUyxTtVCs^R7V(0ZT9( z&J)BmCI+P!3^J1ORy8349zcwRujR6jYhgVOML3j*gi^MNNTnVD9O^HKvVFlB?N4;0 z^%-d2zpX&x{OyJFYAj-sZy9E%nfxQnV@qxtGQ^5!MZ$r=q$HcZB9`;h-S4M2PeEf_ z@)A*`I%}I-a$6&1S*37Cz*G47@~7Em3*Ol>5jM8+XU$o+@C!O*kSH6xw}-X)LTj zbOCVjh?I18Aj{kz2OflibEu~XMYgXHpJDf8>K z-zYvs`}v~1E}ARl0t2O3M}=)XNz+dQLeBT}s`S?v3y`b|aEtxm5V|711hmCIY&M{= zP1&uSQWYH0mgDfvQv_%mq<={D9Ka#n236k;S}La)8>3eUp5k-2o)(w$H6tTb0NACJ zS(UxYFUmu01gKH5O1WZ-S9WX8^$2_UAae^+DZl^QpevG z=b_?DG|d%FabPU)C`Q+yI6iG4mVkmZPLD`;EO zDxZM`R%KMQsvwZ=7F19kg2Wd41s(~G`&@yC6!-*w17^Wl0xu*^2s~0`mntOd`~nXV zgZxW23PMPM<@uklwXd-h`+CwY#Pdu(>RTx&b;7;4;exyaK^!N}B0>z&&F6o&#KD zOW=@fF)V?)hXO}ohda>+yhz7VVKWDWQOF7Aj&E9nF6FW|#0V{;DjDe&&l!&@j6{>A z03XFO@iHDHCHS(%^x_VyYgDCjOSBaJ{6^y6*!+Gt9>F9q=l2UkpdF?~em@*LB7vd^ zkw6hDW9p#@lEFEc->AGD^{{9)nN{DG0y{C-jS!z>O2iY1K> z?&IoPE&q4ZIREa7O@-0vB#btB{(UG?oPX#20+pvbX+`N#`Va(`^+mAuP0^ZXpGgZZ zp&0~!(1Wp-*bqyzaF^MYj?;})Gfp_7HK!5lNU5q<&L5-d z7kM@S?vFO*FRG_B)~fud>cdSUZ#&{)Osc0CncIcg0W+yfMC zIt(BfH_+kefGao9)`6&phA7V2q@@FbLieK^97o|ausuM!hMV;bHrF7iUE~ZhA<#G0 z>gwv6W^zq3yT%7t`S1`NLx`n;D^|J)Xb}-Kl7WayQrZg=1h@yiKE_Xj0QbmJKM}}1 zqQ3zY-YXc0{U?{h01N-SNTKX-#p@dos{tZVeqEYLob7l0pMAFfXI3TN;Elzs&A z6^!7_?|fX$eD}jVF2qE9M$=C@53~<2_SE3S0igoZalS7$SCf!X-NUj^7WWoAsv-Q& zsg=e#UvAH@8;l;l*-Og*jZ)2yrynr5@j#6oMJX)d34bW@4({ zv)|+hFL$`^OzeRzP^beXT><6_8~i#peK3^W#j599Y>N!uK!!S1!)&@8)5n)LGcgHy z;nextL!Gu0$FNV)jt9Pu6%(+BV==z)j!goXslEMB5aZV2rbzLtdvTmqx=bM z%yxlfamZ`RS?b^B^~c^!?D(Y8wJ96V+?qiFV-~Iy8#F6-m?|!f$o&;iK@v6s%mFxO zR?e0CE2?z?gKC|o1ob-xk9`m<2H1pw<_xppr?6JBXA;}9bB$#h3}TlcnoA=_nkZNy z@hO^Pn}FtGmta*8I#;PG$888E4s12V9t99oeFxylusE?_5qm|D606F5A28U)0v9&M zD#NhCV}Oc<7OOk<8@{c;*ED3s8YgxGl_a5vaK~R65rVm>Y*Bv1x`sUqmf$TAwQLBi zWx-4QyQ+UP2*=%^(!@B`^9{seA6Sj-=Dsf^Tht|6Dh4uIp^8XcBocsF1X!~MqUd5k zdw@H;*=saTa0R^_zjzV?l$5XhzMN8CZYJ_1xKwd(0{s`9y2*VPeBWtvehpNG~=A9~{fd zhvirh(tA{?wJK$h3+$$(Iuj8?5GTwyG4*0?*mKJ5CO4&l{U)~ja?j~-M=0!&Fm{0% z(92(`$|<&2j$0K+V!Tod9{?5slQJ_g4wVGUROM$^uS6_PldP`AiTMx}gmQFNrX?wp z5}@G|#ReZEJ!3bhMb>GHhqz3j=iYAIo1eFc6^H2 zy2#g@n|iTU_@=4Y=3}zY_cfniuQ}(Zulan@+{%&f(MtgX_K*PM)k|&qmr~f6%oT9J zs#A*utH9}bb>qP;sh>m+aKgV2%OOF%dwfx|r6CqI$dlBG4#RIllq8 z4Z0LyOCf}lTmurg`)winFHt0T*MLN^7nj*!vl5-?8jvKA6*X0TJzASw13JTO1vuZ} z*ZcbIDwbJ6k0NEGYe0A5{qsZfsLDoxUJo`Vb|4$EYwsG+tFJq{H^TPa9K>eVfK-yP zy;ANr-3PXSFXgTQRzXN)qSkeSn3|v?azH^GDr|5KaJZvGNKOFt({)pLk!wJDfPl>R z6ObiC1^t*S=*O%Pl6=gQ|O9HgJQ_v2Xf@k6nX<(-V3Hsk>Y+&p>6R(zCNmm?YOVp(1j&#C25j~0YwH>?Q&1zEz=0%W zudQpI5MlNyvLTXizJ3nLJ_g}90ZQ!WEk*@FE`e!@AnLp&Y(?zR8!DIj zDLd~~S+Kt?x)TKu%Xv$g2`cggbna_&Rkw;6&H6bi~~w3_ovHo#dHh~Y?*kzU)X00bRKQ575j%vf+m^lM6#{bKrq zAtFmGB3rf@t^soT?`Lx%zr?1E<}AjP7d0iho1mrH-wmw>{~BN--m>>nAJ zBwI{=B25}t7Cer>+$-wqeJ#iakejH23G59EE@_G!M1*dTIb1}{z>^sUK(p35&%PGQ zR<2VJNi2V!Z@E6Io>m53*d~PCBxrx;1BumG^(+G9+7zU1t10eAsW8Osa&un*sZGsf||C$00 zeGel)(j59=a~dKEty)H?x*9wE5Zq-^>=~5~tPMprROzIp6hG7$QCHFNC$?3Gz2jAL zqr+52XJC`M$fJ3S5U({8n-fn-0o$MVc=sGy!^NduLi#yxlr@1Af@IjMUi^&c7$~A!I4af>1K_Ie5L>qlLn%^EerC%nvRbT1 zHC~xGhzib(*rQrT6g?N|^lOfAKNOm>b!HQ-XJ4}=FB>(`0@o~%&=7r{0Z0E$h+~Oa z^kq^=8Qu$d4F$$+yMZ=hc=C#}x*7H@I7N3yyoU;fZ?Ks==5C~o;cs!XSmYiUQy3B& zji-U$tVMWm^=S02uTS=Pi@?YjM@EqrzD3z?{NuaJ;c=Z}cBN?gr&{|n#x%gWRy zrTJmbl#p4M5s!NDA$qvCTzfjZmpLRW(i?>uvkwdIa&3l}4+G=cJQkGg%4_5Q@nZq< zOE`sMN!s|p(<1VgR`x!@XR)_79Qpycs#N_;)manzP=tHZwCXG^&zou1^ozl#tY*e= zymz7LyFgz{F3lmk-aQdJ{2MiIsp|AbPK{jqIdZFegPAo@UCwfIwC!y_TwIB;w#uv|kQIc!@)(Vy^z>6nf-7ZusbfF4Zw;X9>@iM_WeW&Wy zVvNTSEI|Asw4UvW}{)-QCWcN10mb@^+_;Y zV-NqCi~}x109Y-^L5VBbxF?K}6I0A(eNBAkj?lw3S9`mwdm?VbO05e03LYYM4?Ilx zZ@>BvFJl5QGfKY{oO9?uI`j%G16hsb?J0G1iI&lfUcerlMvUfIFb56v>9MIN%FLM& z&hI0uXK!DRf>R3!OyUUf`j_K97Wc-e25;&o35MW|e+ zO}Z%c>r(S6J$c(_B~wxnMYBcA*ki}yioi+Z@~<)Z!jFS_m@{2{>`Un9wY#qK**X{@ zdCk$18>1Uo)y`Q)e|N^&^GB|F+82WQnto8(tGS2r-JaVM6YM%(wK-))e-d5H1*RTqUqJ{O+eD&caWG*7#-Q<)WvN^!2gMXd zhL}T)%U%_;s~Z+i2S%cARo&?mjJtm3?A_=MSH(+~KQ_9&S07+FxV`(PS#*?CBNwLq@a4>igOR}|#pRIVw6X9QJq)2XJHagMt z&4SGo@dV?zAh=-nr-B>;oS;cvPrq9neeZLX?>Tq;Z4o7U{_)pa|NZhI&L|(2P|lE# zJE0vp+Ly}suTMT|5ep9aDEN%>aXaK=0a8ZO*UyxXu$P5=qzL)g?3WK4k3+E6LnI-D zq?D9N(DctJDVK8=Nl97$Ba{9~AZA2BUs6^6>4}|JF+I{!c&t6FEV#kFvqO-mPi^tw z)-6&k4lhWjjNC&jB6*)pIqcB)+w|X5{Wqf<9;VPBDwr-Q#u0>ygB+fnAjd7UK#ti+ z8D2~e+7)R&yW;qgTCdz~r9(^bc^F6(+@3;2AQ~D^Zc~jrpwrZ~*rCl9@&20rl|A_@ z&H0P@fst#?l&0k4nmg_)Gv>R~G35Rq{U+-;>=IB2@bD8RF3c}3Hs zgkiM|>o%;J=2*|Q@U2?PR?EX&%Aw^oeH0WxnLYd~&VnBH|4Hadc9(K#T$_&M{z)`wx~muOr*8m#J$*Qc1HiE&QmK z!;SB3%iQZ(+ie03%PbFH#Sdtp$ugebo^nFdzXVb3mi}LY&?&|nTp2~QH$am5d3!Uj z3dGlHI;maaqxOKKq_$;25vx9}h1Y1wyRtsFi;jCw2~P_@fv&QigOi9flx)^AD(vA~ z?PSJB$aLtZF#0Ook@p%;Ldpt7ptd_A;}a1=o``>pS243he$`uOVN7H-Iwh*8*^ROM zq?rVnyh^tEVFy~>&sMajs%IFzPzS|LQC#>oszPWtu+9M1c@P=Z!;E;s*~N6W5zX{A zrvG7tFujiH)?DK9kzv?DS{b~CDO`4Wl0@Rf{Tv{4mej*kl2QML1;U5Ctf!m{r&~s|Rzu!8NFDY{RE-BSoB{hsT~ZnE#B3$awD&I|LU%KRS`8z>W8-l?!JJ`WdC7m3^y-Ox zOYSq0bjH=#-I6mma^LeaEKca`6JkSDl-Yy|{6{GA>ICv}Bvx8Sz&5Gmv*Oc?G%PrR zxqCA&73_ia#u9W59gT=JBA#Fj#yi2Z9Z>)to!rX3(h%}Ph1rMuCvxBQ-8-mN3iBQV z5_xPHF=$~~)!40im!8hLFZ)zP=6D#l@er@f zF`7OCiM^S_Xlv6RhM}*z?M=Nqs3K3Gr7#(2{+`k*A>oxrj?QRW`-rtuBV%g;fv2j`0q ziIf7Gi>`*BEQuB%e?Z zi0-PsGS8c3f?d@NwkVc)tV)H#ILiE5Er=(5c3koa@Gq`TgQA z{gdUJ1**>JrufWAF%y%(@@?QO?~YH!W7Q4O$NxUj90>tVOJk>41<+Gv%anlr)N|!2-y4`UBR3&`e9dsLp%C1ps?lqtsBG{)cLP}kiPZy?>-Wj<52{^ z?)wol)OZVOidz5R2mH52+HC#t0b;#bPK_21V!e%&F&qn#PooL9&P|UAVs%DdJ-5yR zOij4pXt9A@`!SWFx!}?XM?SNKuP)%x!Myq19;-8Ha{lod+=EfK7tvnSAPt~AJe?i| zrs7a;8p_=hLybvXKM-jmmZ9yiQg2x$Mr;uy9*q%yRE81X^+aIALWke_s2Fj&5Qi$^SI+A1PxvtkpC4zwo^L-(R2q!R*L099i^W_N5VuV8N#QF%HDZRgAN@z_`&1^9)5;6C) zVF_!GKoQpVgd^N}{XWBmY$3d8*N#pRE%b2Jo-?4Ol& za#gOcX5UC*<@nW?m2XPv9!ud-v$Lj2rdhgY7wRfMSvUk02sIA=6o zga;mr`zM?OUD04Q#*nQRz?I;|n-6yQMfw#}`}_gZ(zpKe@rUGn*oYmF8Wm1`DU-5X zljT~*_CS@sIBl#G+dxXzk3S1ut3YL0Uc<*1>h;&p><8x8*E?km{Z^CS$Ar*Ckf9_0 zr0mLU;jEBbL!2erJVJ+;7*9P7t++Qc?Bp()5kTmygzSHsgf7N3C zg=Jo6?1s|7Z0oxY!Zc8DDQ0U4gz0}xdmzbv?mBRK>|-kUOWUfeQGv!( z=>9tYM(+CMFCU&XN$)*k%uhm)Evnp}QaSmMCZ;%@n+!A<#|L0ywUfJrjc0d7k)G8F|W*N3-XAJ3u zxq%^JMD+)Bn*{LJujv6l zEfVUQf)?;uXu6LMS$~uc4G~SQhX#+3#a4Xg7j^5Q)uoz1vei(IIL3l7Oz)I74Z7%<~Bzj6a87ENoJ}nWo###)QK}OIV~mj2&+ZfNv3C1oReG zor(_ua6hII0J?|#4bF1ovs^ZTS?jkaPxd#_n#qh2@mjQ6r)*^v-%jhlw!ezy7C7EV z2se+hDO%V!p5lUn@cwe+8*Gsfz;X-=CNk$HlYG}~t8p!MX3ipj-^k!Kcjqv%f_i=n z&pT|f8p?J&xNb~`m5pY-jRi{u5!2bFA-l|Fmy0p~gwqd{6zb^_C(us$QhK4^gU=3* zs3c-wV1WTPjWt}dEyc+dPWFeGS@1R7cDmt87Nq4E!3B8XvylsH`o@50!cfV@wb_9EG8vT`sIkRTNeC?B&gR zNW?FydZj&O!<4pXt|!!gjWw?)iiMMpu9O z+cT5X!Z!rgFZSxi1E*fQ7nL?D<>A}<=EucDf71WIpU>R~M%w^O{;k>MN31y7NyPw- zt5*v~!)Y-VpD8>?Xfudk6cT2Rh{T9f{S9{2XI+s zl&b|RFpG@L$?R5m(r%W4b{$_6OxucTg=KQ0U4pcsV0{A9e1UdXWTV{~fp*#vA&{Un zPZJR>gL59l%+XGlXk=c)T}zMb>qD|yAowq{DNHEDm%)eG1J28_46np4z5hp-13i3e zp>VqU0`i_+MYjs$6pYUqpn`Bb!gL|nRYv2{li$Pc!ZVX%b*#hS-^$nqfRW$u$IVQP zg)witW-oo4h^E-hNZh+At#@#WK@^*7&YIa%)5LnN7u&;&tJBr@yxI-fpwZOmdf7d* zlEhTBrxZ`IEM&Mae7;fJ@HzR%lY4Bf_u4QSa8nesLBcVM>gb*X>1Wp)v+o-bfs2YI zj_?ZAxi8e3e=(8ih^d1aGqkmD%J5?&F5HI~+wwzI+!y3R^raSxb(zD$xmN5s7H9*6 zXds)ahIgU;&fs=f_p$QXGcXZw))^)utxja!X#4|_2iSrvURk&JEkW8S!14gmV|Xst zKV$hrQq&kK05!;f%Q1MUY!$9nLe_$lSTNXzClZ=onqm78mW29qRR1!^|ZqBL@^jO5F<*JtEm;+ zwcdvQk|57R@6|1*IY=ANU@o4qoX($l9{O+h#g(yjG@Ln z9F7;gu$ZKWWHyG%rXf-tnUi7iqOCpjFC1vN-PO)F-%_b9>+zxiLHKXVPQ`P;@>G50 zdqUFSL(sO@*_dfM4jT8QWx!O&32{Z%HAc53g0dantrNV-D@5sWvd5J z*!ZAArJ8df8~nBNm0~-ly&b+ro`xA0)zCetDR2~ z`IuQJo0?f$rhzm0XjF@L8|fGUrO<8L<*j7zvaq zP1r^R)XoPeu&Zw-0r7F$|0Ztx{WazAwP97U!kp)^c1ANbXCK9u_Bails#{JsfRl{p z$d~OQD{U$RveH#8R7G6$WjhNrLABSg+-HpI#y8g==LvHN^i(P@$7}ifFul?84~s4tD}cVjd!Yl~g`*(O&{Y zjHC_EqToqX5#Pq2!#IEy9v29_2&Q#z^y2)o#M+~C>#URd{KO@oZeb%h)UfJVH@IX* z-rngJ>FLC!G=@py1QYP`Q5SdX#Ni#)t(H?2g4hB}E`!pXRrn3gbuy7T+j)xa*V_=_ z1buSn+mKq{dHf`#jq#YpTrigqAg>LKd_cHgt91A@Pn3ki7t&rfy@E{#pc+iqYuWTF zG%ciBp*|XrZ(QnYIT$VVUp(Hhs^?L7q9hbB_C6=N|Ms7N(MQ5KhO|+IIZ~M8hcVyy zVyf&tM!?wStsbTSQhh5zO!eb-{Sb`cv@`8*2W-Kv^31X_i>hkc^yH%&LJbYDu zKs5URO{=~I1RTktr%|+8{E+!oK72>PLu{OQRtz$PRc?{3quJWTLC!&jAk0Pb!Kl3mznrTWeG-+0(zFxiru3yLaH({!Dvg-rk{BQa3a{SiAHD0xV zF`&km@BpN_?#C~nbWvURo2rN4#>@wyMo;Vxeb;5KGwyswaO8e8EPN7;Ai6V8?!4l7*qDFKxVmCilGiC)vK%-Kwd>*b6P-hc``+DGOyE#8_xS4i5#GBcjf7&=}!?Gs0O&Bg@;Gt;`o{^{8a&fNE?Zm_*_E*@kSR- z5!9^4s}2IsG<`GP^N=$RZ$M#dBDN^~%>Dppkx^<21%p_kBW{ALZ&M<^o)>wARRx1g zu6(q_X<`MI#Pev5VAg+v0-7F{FE?14H|#vR65NVAYBE!{bFI>GFfJ#=M>e4<;k<}g(CkmsFhg2OQ4Qv9~&|? z9JfaW3TJ{6?C|5?sXqSB4PK?f7>-GU@QTRLz)95E$OD3Je~sTm7fzJ~4BXfQKNm-H!TM1j%ePy52AJ zb5DkcB-cSSp);IQ726D6k1s2ndPb}GJqu@rs{4T%ioOf^{w zk4GUVX3E7m_=cdyxaS50^#K;gV9OpsN|@Eau1SQ|Fl<9Cl!9F65xw6Kq;=t7wj6o7)vfys_%CY+xdC| z@!@OUt$0tU2_|~S@N+FKEw9nlbwAbYu`&RcH&Rc%%G`;}-OF6pgK#*doamci&TNY+ z2;^$HQ&h=hl>%8M-t}M{s)Uk6T{By%1=CT8n#)m>#|e+J+PTZczoeP;Uypbdt&{hu z1tTTYVStKLgJX9f8**^1@i~GVpgB(RK&pyAhlhwhJTUBe-kWuLtwlpFg6a0(qc3{b3bqv4ACf;cYz4R zlFMsAc%;SXD9%4Dxyb;B>qS}D=Xf7|=9!Bv55LR`9|^i6yO~i&uZg(W2C+qD8SnRm zulXG06gEK<4MBiY?&PGmC-9Ib z4vKRB=|kmvY-8M7qk_j1?T?+Ta`$S6%^06bX&+vbf=5wi^{1JY>PXqgnJ|})+$~>z ziI>hd8FSa6ZT|$dK-?_P;FW;6C<0fLjGIS-k2=oTG0Yyo6AqoBXVSkgTcY6IYPb%7 zblB-ya>t-*pL|mXZz&WI;-L5NSCVp3F+}`~v9~mFw&zGBYshlk#D$vc<&$GUB)_lSchhG z^<~CVS*H){yd>+?zKA-jSmz#Oh`kzi>~G!;Li-sy8HX97a?5R~Oopy1#!VMoIjZCM zGFf4Tufh|k05LPh>NxweCMHz(FgnY=OHrfHF8h9%eP7SMXVmNaD)x=GiD)a|+8NI! zb`qVS(|C7{YlSdFNbnK#0J-RH&RLg@0(h%$|BpZM@GsZ!|IHPI{W4s}$ZuzmGmoyr z#4#DJO;JH7hzl*)RnZh1LBIBRd0M7!m#1YPiqo=aIJieN%DmyjOz_3%jJPH&*iBym z|HW)^$2|Nz`TsYeuk;X;HfkO$~64S1GZaxd_K%MJ%8n9dpk zuj*?4S(>NvItE3@_y%4nG1`b}9|pADB+WgOBgUCx70!Mwxx=yaXwDh&A(mYJR48xh zK!I_FAWFgETA5gYq_AyN_uzD+5Q<9Q<*XTGSx|_A8{pxeJ?l23Elxo|j?Wf@9P31b zm?=mb$>XK^{vLVK8`Bm_fbKd-zU;);11Kr^#!1kN55GJby zjYXT5-3fRp&S|WAzc>_X`mlI}tM9{H3@@olgEkV;-k%w{sKd1)K})HjcKAfL&qbf) z>E95kqL)W(5|W_vi~e+|6DuDe>@G41pn>9P4I3(E)*y#NC6KX zExF{6)^mEiC6~wS`rtT3GVY`(;H1W=rty|>6wW70E}0J7-IDtb5;$)r4>E8RYjyX( z3?rTOEJm6(6!kH&Qhhwqj9R*!+!5I*bq|L&iW$awO~(li1+K=0!5ZXj;pvc=2v{da zVBYZdzJP}p&*LbHsp{%R=pH6o0{+2ynei&5#*u+ieMmefQ>xMVMH~%7l{VHg9*on% z;UKZQZp0nKB?2_NsRRD!D0}`^(%u~prx$3<*#zsfDi_+qSDoig;KT^vZS;|~>=`wJ z7038O(SoitgE%uU7xqwV=xa;vB}lvbV~9m+b}!7;`Av|)UlLmgIAV6f;v=iE<+vBG zG~-Vyc;4OkMjTIOc7)WwIu|%G%;-cW7MiBU_n(kW?d+kr0$Nga8i4RXU7mMVLUu}a zR&!b~HORB}xW{X8|9}(%0=y+DWiw&joWOa!I2_Gv#61Jdz-zgbi5MnJ?h)by+_Len zUGG9KWx7LuFy7(1Cq4}pQRAKu##!9-!>a|?V$HF-?g3j{_IaA>c&l;whXl11IbD&X z7F>ra#;L(zu$c0eJX)*9vRoljuc1oeV6I{Am{6pR)fqyl)PPhi9|Lf}7_a>Jj#_`% zA>~YBNaq>Q^N~_Md52RqV}R_y$__4-9V~eY9gL72h>PxGk-rHY;FxcX^QHtGhL$;8 zuZqJ5jjx$(HC|nOc?f7^%Dfu>7mVq4z`%_lj_Jli4pclM)KBE{$k<3it}`Ry7l-bH z6Mn?udXU>QhbtK*MA$NpQ^`0No)9Ui>W(GFcph^S6YME~!If=6jpI)O*=3kgTm*NK z*gU*=VYC=~V3_9@;{U<91xe(-`ALutnw*pCFmy~E!m`|WqON=sRPx#7<@L(@o>4B= zOYz=I0y}z9R#Xn-**5){RsWf>60;FG8Ozftynlo_k=mp4#aSm|a^KB$HkI(GqJZZEetQ7! z9q7UWo*rP+6;Z$wg)__Q2KWb4^1T3QF}%A-QcaKO_g+1V!EY?^s!7$;>>3sV|Al1X zUJP9AO9VbM%spGr8mHhFU@mg^+1G3I)MnYIn`B03pN`3lEVV`_bg4Gw4~X8<|-_Rvswn~G!b=X^Rj4!&jlv&&~!fv zJ|m+4o19t8g>CIKCjMRb$WwiH@aH@(XoVZ3Z6Fw#^7drc(XjCF123MA*p+8L6zMH@ zmjB8J;j;Ge#Vqkt8@Q7uo=e*Tx5BJ;3#~o6X2n~3ObX3vj=y19_<@Halhb2TQz~YD zjXw{?aM!^5^iYJCl{;w2&;4eEQik&#z%W-MuC0eN$Km`dMuT?)46yd-el^6} zJ8LlKM5@o)Wijk`XpZ-$JmtZ{QWz;u;aS` z4s$(MuIjLB;D?iLKNcs+gP8X30svOk3;OnmhX40O#S@5{dwJq`tN{g2bLCh3NJNyq z?VEmi*@9DfGB)9qL;uK(ns{)Dy^enLu%yVzT;?~;#cX@q%8SeAUGjrz5 znKLtI&YW}Rq6x||z5yY@-gQ%bx6RbQt|gtR!^i_v;?z+V?-_SW7CgYjrqiCMZLPT< z&b95lj~^39Z_~Pn^v=x^td2%}ibleI^_|=e40ae%ilURO@M+r5qJF#g*k9nZIe~1q zJ8%;P?r?!q=#hoHqw@@?#_r69Ea-+9F);_xYZ4L7ifbvo0;pYgn}vFQSctKb zBLU4-x-9dq(TO1I1?vXluI*cGEg7kfBSXm-{0&%6#tI_!NDJ^p=Rx4Yz&ylU3Q#ca zyaj3D9pKU1ckygyoZ+N}UK#mLT9|q&vIsYj-~2In#gkcHllE+NO@E1b=0IWACCoa| z56K!cfYWtDAUFPJLZF9`WY#_)xv_8qjUBEKlq@pw z(S`ZV*~PZu!zZX#c_TWH@%uxwkvy5f;~mXXLH>4Pko#}=f9tdwn84OaBDDzZZua87fs3#m>^eYOlHB;wxzRn%y(F4l?3Yn?scxJNoc0VX zo0yLJn!hcix-mKCHV7S&MLY|)w(Cbv*~M#ol80nF)BN-srJlQ!SL7gM>js|agi!Jo z^54?Qn>k4BPUN253{TYRbE4ooJey;fH{c1o_&J5&LF3eeZ$$jRNlaI>h}>&>(eBXW zm+}UbQcBvm8cVDlnYH{Uxj)IF$EON9B}%o7K;+uQM1|uxv#Q3wC{p9Uo0?b7#%CMR zfpUxIfYfmgsii!dyH0jU{Xfz=Cu_g_J(u(6${BJwf2Ew)204GJoR#E^+{Oexhfgr0 zT}4BV5iSU+RZqGdh7-O@&G+#b6(3M!yo%fwYB@>3UD0xLxGiKf0!l6Em*}g`rRG~4 z0%5bt(Hb(^AjC_}9M)wqJTog}#x55ABJ71l$TP;+VO2wfBCR0B5vd)Pnm<{gJbGAQ z7`EsJtrPXsVmj`D^6|-bp(w7wJgjU@C_bi;)AC-O)Pvmbv}&g23QNsvDcU;8;#V+> zXLA}uQC*yt5>5bx&LKUE?&OMAsc2y57go_df}&|VD37AHQMP%VuYOZrkY8n_|M$q_ z^cCfr?&RP7EK!IUOTGHT7*cNhX{VH zw||iH7h%gs=EOJbb=7#P-HlG-fVf}2j=7_w!hV({-YN1@MK17KJNs!2$OA`4z*Ux2 zis7lz$gfzI7FjDb<`pXi5J&4wnWWGT9=I%dyj1l(^ZFSO_maHOyVHI z_1#pmnrH46A>O{-C6=wT`$So;jN`9dCec;#jXAL^L+ci1N2i)f<`bsY>zWwRx2q1$ zyLdJl`;q}L6Kx{deES4@ywfSKONz>}InxzAUPXW5it5>D?Dw>6&JK#+Pf@9l+mx5y znI@TgYE8v6UgJzYJzYh5=!s%|#c{A-XkB||v{%S`tV^+VSPH*~b$4{4{ux0tyrwXP z(#BcCWx+cTx=9vopCsx*tN;_ znu^b+KX0i;T^I^%jR_^o1#5yusq;SVeP~g!s=~pPF-9fk5(h9Rdu>;%Y^t)f?$9Mt zuC>uhDQ%`|pD;zz{)!(lBxWyc-~+2NrugX5zYeeecgUNTrx5~?Tm#>r+puV6=5S%q z{f(TCJ&&NwI{%aFbZD_k_IY08O*GtV{h;^ddxp{V`!CnxJRD&$&PNA9w@gj8b?Vs6 zAC+T|Y|36xr&&4JR3hEj$YwK7fRg}R0^m@~p75^OQm&asS{A&I{&0~Ui2L!mbuW#S zM8U?{jHY>v9u34)oXI~PX9r@}C~bTr8b=XZsd<4dAhVMVb!3B;T}U5?T1qUeqWgj6 z=C?c9x;4Ev?TG{yk4#-v&eV|pwwk$rGFsP{_ptTHs)9