From b07959331e236324874769dd84b981967d7b5ca5 Mon Sep 17 00:00:00 2001 From: mckaygerhard Date: Tue, 10 Jan 2023 17:53:55 -0400 Subject: [PATCH] init the game using the mientest minimal sub nasa as base, remove rspawn * removed rspawn cos we will use a large area of spawn with resourses * the new spawn will be spawnrand cos must be simple and faster in a limited area * also no protection.. no houses no home.. user must survice with a bag --- GAMEINFO-en.md | 18 +- GAMEINFO-es.md | 18 +- GAMEINFO-ru.md | 16 +- README.md | 20 +- mods/rspawn/License.txt | 166 ------------ mods/rspawn/README.md | 147 ---------- mods/rspawn/depends.txt | 1 - mods/rspawn/init.lua | 249 ----------------- mods/rspawn/lua/commands.lua | 164 ------------ mods/rspawn/lua/data.lua | 99 ------- mods/rspawn/lua/debugging.lua | 20 -- mods/rspawn/lua/forceload.lua | 37 --- mods/rspawn/lua/guestlists.lua | 429 ------------------------------ mods/rspawn/lua/pregeneration.lua | 85 ------ mods/rspawn/mod.conf | 1 - mods/rspawn/settingtypes.txt | 16 -- screenshot.png | Bin 139652 -> 0 bytes 17 files changed, 15 insertions(+), 1471 deletions(-) delete mode 100644 mods/rspawn/License.txt delete mode 100644 mods/rspawn/README.md delete mode 100644 mods/rspawn/depends.txt delete mode 100644 mods/rspawn/init.lua delete mode 100644 mods/rspawn/lua/commands.lua delete mode 100644 mods/rspawn/lua/data.lua delete mode 100644 mods/rspawn/lua/debugging.lua delete mode 100644 mods/rspawn/lua/forceload.lua delete mode 100644 mods/rspawn/lua/guestlists.lua delete mode 100644 mods/rspawn/lua/pregeneration.lua delete mode 100644 mods/rspawn/mod.conf delete mode 100644 mods/rspawn/settingtypes.txt delete mode 100644 screenshot.png diff --git a/GAMEINFO-en.md b/GAMEINFO-en.md index 5d4f4f7..eb2fce5 100644 --- a/GAMEINFO-en.md +++ b/GAMEINFO-en.md @@ -1,22 +1,10 @@ -# infinite subnasa game play manifiesto +# infinite NSSG game play manifiesto -The subnasa game is the lag-free most faster subgame in minetest! +The NSSG game is the most harder to play ## Information -The **only hostile element is the players themselves** and the thrill is **teamwork**. - -The subnasa has as a **priority that many enter and that there is a danger of interference**, -for this the trick is to provide an **easy environment and without hostile entities, easy to access**, -this will attract many inexperienced players which will fill the server, this will allow -that in the face of the danger of **other players interfering** with your things, **you have to live in groups**, -as well as **hide**, which will make everyone think about how to defend themselves, which cannot be done alone.. - -This premise means that mods like `mobs_monster` or `dmobs` do not exist, but if `mobs_animals`, -which means for example that there are no armor or special biomes, but many houses and decoration, -Additionally, for optimization reasons things like `unified_inventory` are not included but -if things like `prestibags` and `ambience` are included, because the game must load on phones, -phone memory is sometimes not large and mods like `nssm` involve a lot of data to deal with. +Take a breath before play, you will need! ## Introduction --------------- diff --git a/GAMEINFO-es.md b/GAMEINFO-es.md index 1c88713..f3793be 100644 --- a/GAMEINFO-es.md +++ b/GAMEINFO-es.md @@ -1,22 +1,10 @@ -# juego subnasa infinito manifiesto +# juego NSSM infinito manifiesto -¡El juego subnasa es el subjuego más rápido sin lag en minetest! +¡El juego NSSM es el subjuego más dificil ## Informacion -El **unico elemento hostil son los jugadores mismos** y la emocion es el **trabajo en equipo**. - -El subnasa tiene como **prioridad que muchos entren y que exista el peligro de interferencias**, -para ello el truco es proveer un **entorno facil y sin entidades hostiles, facil de acceder**, -esto atraera a muchos jugadores inexpertos lo que llenara el servidor, esto permitira -que ante el peligro de que **otros jugadores interfieran** con tus cosas, **tengas que convivir en grupos**, -asi como **esconderse**, lo que hara que entre todos piensen como defenderse lo cual no se puede solo.. - -Esta premisa hace que mods como `mobs_monster` o `dmobs` no existan, pero si `mobs_animals`, -lo que significa por ejemplo que no hay armaduras ni biomas especiales, pero si muchas casas y decoracion, -adicional, por razones de optimizacion no se incluyen cosas como `unified_inventory` pero -si se incluyen cosas como `prestibags` y `ambience`, porque el juego debe cargar en telefonos, -la memoria de los telefonos a veces no es grande y mods como `nssm` implican muchos datos que manejar. +Toma un respiro antes de jugar, lo necesitaras ## Introducción --------------- diff --git a/GAMEINFO-ru.md b/GAMEINFO-ru.md index 3fc172f..8e368d9 100644 --- a/GAMEINFO-ru.md +++ b/GAMEINFO-ru.md @@ -1,23 +1,11 @@ -# бесконечный манифест игры subnasa +# бесконечный манифест игры NSSM -Игра subnasa - самая быстрая под-игра без задержек в minetest! +Игра NSSM - самая быстрая под-игра без задержек в minetest! ## Информация **Единственный враждебный элемент — это сами игроки**, а острые ощущения — **командная работа**. -Субназа имеет **приоритет, что многие входят и что существует опасность вмешательства**, -для этого хитрость заключается в том, чтобы обеспечить **простую среду без враждебных сущностей, легкий доступ**, -это привлечет много неопытных игроков, которые заполнят сервер, это позволит -что перед лицом опасности вмешательства **других игроков** в ваши вещи **вы должны жить группами**, -а также **спрятаться**, что заставит всех задуматься о том, как защитить себя, что невозможно сделать в одиночку.. - -Эта предпосылка означает, что такие моды, как `mobs_monster` или `dmobs`, не существуют, но если `mobs_animals`, -что означает, например, что нет брони или особых биомов, но много домов и украшений, -Кроме того, по причинам оптимизации такие вещи, как `unified_inventory`, не включены, но -если включены такие вещи, как `prestibags` и `ambience`, потому что игра должна загружаться на телефоны, -Память телефона иногда невелика, и такие моды, как `nssm`, требуют обработки большого количества данных. - ## Введение --------------- diff --git a/README.md b/README.md index 1f4b3f3..b3252e3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# Minetest sub.nasa-g0v games +# Minetest Not So Simple Game -The vanilla anarchic famous server game +The most increible vaste enemy provided game to play and hard to defeats * English information: [GAMEINFO-en.md](GAMEINFO-en.md), **WARNING: if you question why there is no mod "x" instead of mod "y" read the information file in the initial section ** * Informacion español: [GAMEINFO-es.md](GAMEINFO-es.md), **ADVERTENCIA: si se cuestiona porque no esta el mod "x" en vez de el mod "y" lease el archivo de informacion en la seccion inicial** @@ -8,13 +8,13 @@ The vanilla anarchic famous server game ![screenshot.png](screenshot.png) -For further information, check https://codeberg.org/minenux/minetest-game-subnasa.git or https://gitlab.com/minenux/minetest-game-subnasa +For further information, check https://codeberg.org/minenux/minetest-game-nssg.git or https://gitlab.com/minenux/minetest-game-nssg ## Installation For specific minetest installation check [docs/INSTALL.md](docs/INSTALL.md) -- Unzip the archive, rename the folder to `subnasa` and +- Unzip the archive, rename the folder to `nssg` and place it in .. `minetest/games/` - GNU/Linux: If you use a system-wide installation place @@ -22,18 +22,14 @@ it in `~/.minetest/games/` or `/usr/share/games/minetest`. ## Compatibility -The Minetest subnasa Game GitHub master HEAD is only compatible with minetest4 engine -that can be found at https://codeberg.org/minenux/minetest-engine/src/branch/stable-4.0 +The Minetest nssg Game GitHub master HEAD is compatible with MT 0.4.16, 4.0, 5.2 and 5.4 +that can be found at https://minetest.io -It may work with the older minetest 0.4.17.1 inclusivelly 0.4.16 but is not guarantee. To download you can play this game with the following minetest engines: * https://codeberg.org/minenux/minetest-engine-minetest/src/branch/stable-4.1 * https://codeberg.org/minenux/minetest-engine-minetest/src/branch/stable-4.0 -* https://codeberg.org/minenux/minetest-engine-multicraft/tag/v1.10.0 -* https://codeberg.org/minenux/minetest-engine-multicraft/tag/v1.11.0 -* https://github.com/minenux/minetest-engine-luk3yx/tree/stable-4.1 -* https://github.com/MultiCraft/MultiCraft-legacy/releases/tag/v1.10.0 +* https://codeberg.org/minenux/minetest-engine-minetest/src/branch/stable-5.X #### Mods @@ -41,8 +37,6 @@ To download you can play this game with the following minetest engines: * sorceredkid auth mod * minetest Auth Redux as `auth_rx` [mods/auth_rx](mods/auth_rx) from https://codeberg.org/minenux/minetest-mod-auth_rx * so then minetest Formspecs as `formspecs` [mods/formspecs](mods/formspecs) from https://codeberg.org/minenux/minetest-mod-formspecs -* minetest Random Spawn as `rspawn` [mods/rspawn](mods/rspawn) from https://codeberg.org/minenux/minetest-mod-rspawn - * so then default beds as `beds` [mods/beds](mods/beds) from default 0.4 * minetest floatlands as `floatlands` [mods/floatlands](mods/floatlands) derived from Floatlands Realm made to this servers, as https://codeberg.org/minenux/minetest-mod-floatland * so then default flowers as `flowers` are need. Later this will need ethereal modifications. * tenplus1 customized mods diff --git a/mods/rspawn/License.txt b/mods/rspawn/License.txt deleted file mode 100644 index 341c30b..0000000 --- a/mods/rspawn/License.txt +++ /dev/null @@ -1,166 +0,0 @@ - GNU LESSER GENERAL PUBLIC LICENSE - Version 3, 29 June 2007 - - Copyright (C) 2007 Free Software Foundation, Inc. - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - - This version of the GNU Lesser General Public License incorporates -the terms and conditions of version 3 of the GNU General Public -License, supplemented by the additional permissions listed below. - - 0. Additional Definitions. - - As used herein, "this License" refers to version 3 of the GNU Lesser -General Public License, and the "GNU GPL" refers to version 3 of the GNU -General Public License. - - "The Library" refers to a covered work governed by this License, -other than an Application or a Combined Work as defined below. - - An "Application" is any work that makes use of an interface provided -by the Library, but which is not otherwise based on the Library. -Defining a subclass of a class defined by the Library is deemed a mode -of using an interface provided by the Library. - - A "Combined Work" is a work produced by combining or linking an -Application with the Library. The particular version of the Library -with which the Combined Work was made is also called the "Linked -Version". - - The "Minimal Corresponding Source" for a Combined Work means the -Corresponding Source for the Combined Work, excluding any source code -for portions of the Combined Work that, considered in isolation, are -based on the Application, and not on the Linked Version. - - The "Corresponding Application Code" for a Combined Work means the -object code and/or source code for the Application, including any data -and utility programs needed for reproducing the Combined Work from the -Application, but excluding the System Libraries of the Combined Work. - - 1. Exception to Section 3 of the GNU GPL. - - You may convey a covered work under sections 3 and 4 of this License -without being bound by section 3 of the GNU GPL. - - 2. Conveying Modified Versions. - - If you modify a copy of the Library, and, in your modifications, a -facility refers to a function or data to be supplied by an Application -that uses the facility (other than as an argument passed when the -facility is invoked), then you may convey a copy of the modified -version: - - a) under this License, provided that you make a good faith effort to - ensure that, in the event an Application does not supply the - function or data, the facility still operates, and performs - whatever part of its purpose remains meaningful, or - - b) under the GNU GPL, with none of the additional permissions of - this License applicable to that copy. - - 3. Object Code Incorporating Material from Library Header Files. - - The object code form of an Application may incorporate material from -a header file that is part of the Library. You may convey such object -code under terms of your choice, provided that, if the incorporated -material is not limited to numerical parameters, data structure -layouts and accessors, or small macros, inline functions and templates -(ten or fewer lines in length), you do both of the following: - - a) Give prominent notice with each copy of the object code that the - Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the object code with a copy of the GNU GPL and this license - document. - - 4. Combined Works. - - You may convey a Combined Work under terms of your choice that, -taken together, effectively do not restrict modification of the -portions of the Library contained in the Combined Work and reverse -engineering for debugging such modifications, if you also do each of -the following: - - a) Give prominent notice with each copy of the Combined Work that - the Library is used in it and that the Library and its use are - covered by this License. - - b) Accompany the Combined Work with a copy of the GNU GPL and this license - document. - - c) For a Combined Work that displays copyright notices during - execution, include the copyright notice for the Library among - these notices, as well as a reference directing the user to the - copies of the GNU GPL and this license document. - - d) Do one of the following: - - 0) Convey the Minimal Corresponding Source under the terms of this - License, and the Corresponding Application Code in a form - suitable for, and under terms that permit, the user to - recombine or relink the Application with a modified version of - the Linked Version to produce a modified Combined Work, in the - manner specified by section 6 of the GNU GPL for conveying - Corresponding Source. - - 1) Use a suitable shared library mechanism for linking with the - Library. A suitable mechanism is one that (a) uses at run time - a copy of the Library already present on the user's computer - system, and (b) will operate properly with a modified version - of the Library that is interface-compatible with the Linked - Version. - - e) Provide Installation Information, but only if you would otherwise - be required to provide such information under section 6 of the - GNU GPL, and only to the extent that such information is - necessary to install and execute a modified version of the - Combined Work produced by recombining or relinking the - Application with a modified version of the Linked Version. (If - you use option 4d0, the Installation Information must accompany - the Minimal Corresponding Source and Corresponding Application - Code. If you use option 4d1, you must provide the Installation - Information in the manner specified by section 6 of the GNU GPL - for conveying Corresponding Source.) - - 5. Combined Libraries. - - You may place library facilities that are a work based on the -Library side by side in a single library together with other library -facilities that are not Applications and are not covered by this -License, and convey such a combined library under terms of your -choice, if you do both of the following: - - a) Accompany the combined library with a copy of the same work based - on the Library, uncombined with any other library facilities, - conveyed under the terms of this License. - - b) Give prominent notice with the combined library that part of it - is a work based on the Library, and explaining where to find the - accompanying uncombined form of the same work. - - 6. Revised Versions of the GNU Lesser General Public License. - - The Free Software Foundation may publish revised and/or new versions -of the GNU Lesser General Public License from time to time. Such new -versions will be similar in spirit to the present version, but may -differ in detail to address new problems or concerns. - - Each version is given a distinguishing version number. If the -Library as you received it specifies that a certain numbered version -of the GNU Lesser General Public License "or any later version" -applies to it, you have the option of following the terms and -conditions either of that published version or of any later version -published by the Free Software Foundation. If the Library as you -received it does not specify a version number of the GNU Lesser -General Public License, you may choose any version of the GNU Lesser -General Public License ever published by the Free Software Foundation. - - If the Library as you received it specifies that a proxy can decide -whether future versions of the GNU Lesser General Public License shall -apply, that proxy's public statement of acceptance of any version is -permanent authorization for you to choose that version for the -Library. - diff --git a/mods/rspawn/README.md b/mods/rspawn/README.md deleted file mode 100644 index 6fcce7e..0000000 --- a/mods/rspawn/README.md +++ /dev/null @@ -1,147 +0,0 @@ -minetest mod rspawn -=================== - -Randomized Spawning for Minetest - -Information ------------ - -This mod its named `rspawn` , it causes players to receive a spawn point anywhere on the map. -Players will likely spawn very far from eachother into prisitine areas. - -### Features - -* Player is assigned randomized spawnpoint on joining - * New players will not spawn into protected areas -* Player will respawn at their spawnpoint if they die. - * If `beds` spawning is active, then beds can be used to set players' re-spawn point (they still go to their main spawnpoint on invoking `/spawn`). -* Commands - * Players can return to their spawn point with the `/spawn` command if they have `spawn` privilege. - * Players can invite other players to join their spawn - see "Spawn guests" below - * Players can allow any other player to visit their spawn - see "Town hosting" below - * Players can request a new spawn point by typing `/newspawn` if they have the `newspawn` privilege. - * Players can set their spawn point by typing `/setspawn` if they have the `setspawn` privelege. - * Moderator players can assign a new random spawn for another player using `/playerspawn` if they have the `spawnadmin` privilege. - -KNOWN ISSUE - Any player not yet registered with a spawn point will be given a spawn point anywhere in the world. If applying retroactively to a server, this will cause existing players to be re-spawned once. - -##### Spawn guests - -Randomized spawning typically causes players to spawn far from eachother. If players wish to share a single spawn point, a player can add another to join their spawn position. - -The player issuing the invite (host) must typically pay a levvy when adding another player. - -* `/spawn add ` - allow another player to visit your spawn directly (levvy must be paid), or lift their exile (no levvy to pay) -* `/spawn kick ` - * revoke rights to visit you - * if the exiled player gets close to your spawn, they are kicked back to their own spawn -* `/spawn visit ` - visit a player's spawn -* `/spawn guests` - see who you have added to your spawn -* `/spawn hosts` - see whose spawns you may visit - -Guests can help the spawn owner manage bans on their town. - -##### Town hosting - -You can host a town from your spawn if you wish. Hosting a town means that any player who connects to the server will be able to visit your spawn. You can still `/spawn kick ` individually in this mode. If you switch off town hosting, only allowed guests in your normal guestlist can visit. - -There is no levvy on hosting a town. - -* `/spawn town { open | close }` - switch town hosting on or off. -* `/spawn town { ban | unban } []` - ban or unban a player from a town - * Town owners can use this, as well as unexiled guests of the town owner - -Explicit guests can ban/unban other players from a town. - -Town owner can forcibly ban a player by first adding the player to their guest list, and then exiling them. Guests cannot override this. - -Techincal information ------------------------- - -Note that the spawn generation is performed in the background on a timer, allowing storing a collection of random spawn points to be generated ahead of time. - -### Configuration - -##### Generic settings used - -* `name` - used for knowing the server admin's name -* `water_level` - Spawns are always set above water level, default `1` -* `static_spawnpoint` - main position the player will start at, default `{0,0,0}` -* `enable_bed_respawn` - from `beds` mod - if active, then respawning will happen at beds, instead of randomized spawnpoint - -##### rspawn-specific settings - -* Settings related to spawn generation - * `rspawn.max_pregen` - maximum number of spawn points to pre-generate, default `20` - * `rspawn.search_radius` - lateral radius around random point, within which a spawn point will be sought, default `32` - * `rspawn.gen_frequency` - how frequently (in seconds) to generate a new spawn point, default `30`, increase this on slower servers -* `rspawn.spawn_anywhere` - whether to spawn anywhere in the world at sea level (limited by the bounds spawn limits, check below) -if false, only spawns at a fixed spawn locaiton, for every player. - * if `true`, (default) spawns the player somewhere else on the map within valid air node and not inside solid block - * if `false`, will randomize around the static spawn point using search radius as maximun area for. -* `rspawn.cooldown_time` - how many seconds between two uses of `/newspawn`, per player -* `rspawn.kick_on_fail` - whether to kick the player if a randomized spawn cannot be set, default `false` -* `rspawn.spawn_block` - place this custom block under the user's spawn point -* Guestlist and town related settings - * `rspawn.levvy_name` - name of the block to use as levvy charge on the player issuing an invitation, default `default:cobble` - * `rspawn.levvy_qtty` - number of blocks to levvy from the player who issued the invitation, default `10` - * `rspawn.kick_period` - how frequently to check if exiled players are too near their locus of exile, default `3` (seconds) - * `rspawn.exile_distance` - distance from exile locus at which player gets bounced back to their own spawn, default `64` (nodes) -* `rspawn.debug` - whether to print debugging messages, default `false` -* Bounds limiting - you can limit the random spawning search area to a given subsection of the global map if you wish: - * `rspawn.min_x`, `rspawn.max_x`, `rspawn.min_z`, `rspawn.max_z` as expected - -## Troubleshooting - -As admin, you will receive notifications of inability to generate spawns when players join without being set a spawn. Those players will join but cannot play cos cannot spawn in a "valid spawn point". - -If you only wants to solve it, just define a valid fixed spawn point with `static_spawnpoint` on your minetest.conf config file, then set `rspawn.gen_frequency` to a high number like 120 seconds or 300; warnings will continue but players will join and play (withou a spawn point set yet, take note). - -If you are more hacker, you can turn on `rspawn.debug = true` to see debug in logs. Spawn generation uses a temporary forceload to read the blocks in the area ; it then releases the forceload after operating, so should not depend on the `max_forceloaded_blocks` setting. - -If the generation log shows `0 air nodes found within ` on more than 2-3 consecutive tries, you may want to check that another mod is not forceloading blocks and then not subsequently clearing them, also try to reduce the bounds limits area of rspawn in settings, always around the fixed spawn point.. - -You may also find some mods do permanent forceloads by design (though this should be rare). In your world folder `~/.minetest/worlds/` there should eb a `force_loaded.txt` - see that its contents are simply `return {}`; if there is data in the table, then something else is forceloading blocks with permanence. - -Resolutions in order of best to worst: - -* Define a valid fixed spawn point with `static_spawnpoint` to be a valid air node and not a solid block - * then set `rspawn.gen_frequency` to a high number like 120 seconds or 300, and reduce the bounds limits. -* identify the mod and have it clear them properly (ideal) - * on UNIX/Linux you should be able to run `grep -rl forceload ~/.minetest/mods/` to see all mod files where forceloading is being done -* increase the max number of forceloaded blocks - * (not great - you will effectively be simply mitigating a forceloaded-blocks-related memory leak) -* Stop minetest, delete the `force_loaded.txt` file, and start it again - * (bad - some things in the mods using the forceload mechanism may break) - -## Optimizations - -It is also suitable for single player sessions too - if you want a new location to start a creative build, but don't need to go through creating another, separate world for it, just grab yourself a new spawnpoint! - -On big multiplayers servers or small single players computers you may want to tune the mod. - -#### For multiplayers big servers - -* Define a valid fixed spawn point on your minetest.conf config file using the `static_spawnpoint` to a valid air node, not a solid block: it will be used if you do not want players to be kicked (by usage of `rspawn.kick_on_fail`) when there are no valid respawns points available. -* Bound limit must be little.. 400 nodes around is a number to play around. Do not set the `rspawn.search_radius` to a high number, 16 to 32 in big servers with big spawn random areas. -* Set `rspawn.gen_frequency` to a high number like 120 seconds or 300 -* Change the Cooldown time - default is `300` seconds (5 minutes) between uses of `/newspawn` - -#### Single Player Mode - -* Add `rspawn` to your world - * Go to the *Advanced Settings* area of Minetest, look for `mods > rspawn` - * Change the frequency of pregeneration as required - * Good CPUs, enough RAM and SSD hard drives might get away with a frequency of 20sec (!) - * If you find your game immediately lagging due to excessive map generation, switch the frequency to say 120 - * Change the Cooldown time - default is `300` seconds (5 minutes) between uses of `/newspawn` - * Optionally, change the maximum pregen to the desired number of spawnpoints to pregenerate and hold -* Start the game session; Wait around 1 minute or so as the initial spawn point gets generated and is assigned to you -* Jump around! (with `/newspawn`) - * Until you exhaust pregens :-P - -## License - -(C) 2017 Tai "DuCake" Kedzierski - -Provided under the terms of the LGPL v3.0 diff --git a/mods/rspawn/depends.txt b/mods/rspawn/depends.txt deleted file mode 100644 index 3c67c0d..0000000 --- a/mods/rspawn/depends.txt +++ /dev/null @@ -1 +0,0 @@ -beds? diff --git a/mods/rspawn/init.lua b/mods/rspawn/init.lua deleted file mode 100644 index 47039c0..0000000 --- a/mods/rspawn/init.lua +++ /dev/null @@ -1,249 +0,0 @@ -rspawn = {} -rspawn.playerspawns = {} - -local mpath = minetest.get_modpath("rspawn") - --- Water level, plus one to ensure we are above the sea. -local water_level = tonumber(minetest.settings:get("water_level", "0") ) -local radial_step = 16 - --- Setting with no namespace for interoperability -local static_spawnpoint = minetest.setting_get_pos("static_spawnpoint") or {x=0, y=0, z=0} -rspawn.admin = minetest.settings:get("name") or "" -- For messaging only - --- Setting from beds mod -rspawn.bedspawn = minetest.setting_getbool("enable_bed_respawn") ~= false -- from beds mod - --- rSpawn specific settings -rspawn.debug_on = minetest.settings:get_bool("rspawn.debug") -rspawn.spawnanywhere = minetest.settings:get_bool("rspawn.spawn_anywhere") ~= false -rspawn.kick_on_fail = minetest.settings:get_bool("rspawn.kick_on_fail") == true -rspawn.max_pregen_spawns = tonumber(minetest.settings:get("rspawn.max_pregen") or 5) -rspawn.search_radius = tonumber(minetest.settings:get("rspawn.search_radius") or 32) -rspawn.gen_frequency = tonumber(minetest.settings:get("rspawn.gen_frequency") or 30) -rspawn.spawn_block = minetest.settings:get("rspawn.spawn_block") or "default:dirt_with_grass" - -rspawn.min_x = tonumber(minetest.settings:get("rspawn.min_x") or -31000) -rspawn.max_x = tonumber(minetest.settings:get("rspawn.max_x") or 31000) -rspawn.min_z = tonumber(minetest.settings:get("rspawn.min_z") or -31000) -rspawn.max_z = tonumber(minetest.settings:get("rspawn.max_z") or 31000) - -dofile(mpath.."/lua/data.lua") -dofile(mpath.."/lua/guestlists.lua") -dofile(mpath.."/lua/commands.lua") -dofile(mpath.."/lua/forceload.lua") -dofile(mpath.."/lua/debugging.lua") - - -minetest.after(0,function() - if not minetest.registered_items[rspawn.spawn_block] then - rspawn.spawn_block = "default:dirt_with_grass" - end -end) - - -rspawn:spawnload() - -local function set_default_node(pos) - if rspawn.spawn_block then - minetest.set_node(pos, {name=rspawn.spawn_block}) - end -end - -local function daylight_above(min_daylight, pos) - local level = minetest.get_node_light(pos, 0.5) - return min_daylight <= level -end - -function rspawn:get_positions_for(pos, radius) - local breadth = radius - local altitude = water_level + radius - - if rspawn.spawnanywhere then - altitude = radius - end - - local pos1 = {x=pos.x-breadth, y=pos.y, z=pos.z-breadth} - local pos2 = {x=pos.x+breadth, y=pos.y+altitude, z=pos.z+breadth} - - return pos1,pos2 -end - -function rspawn:newspawn(pos, radius) - -- Given a seed position and a radius, find an exact spawn location - -- that is an air node, walkable under it, non-walkable over it - -- bright during the day, and not leaves - - rspawn:debug("Trying somewhere around "..minetest.pos_to_string(pos)) - - local pos1,pos2 = rspawn:get_positions_for(pos, radius) - - rspawn:debug("Searching "..minetest.pos_to_string(pos1).." to "..minetest.pos_to_string(pos2)) - - local airnodes = minetest.find_nodes_in_area(pos1, pos2, {"air"}) - local validnodes = {} - - rspawn:debug("Found "..tostring(#airnodes).." air nodes within "..tostring(radius)) - for _,anode in pairs(airnodes) do - local under = minetest.get_node( {x=anode.x, y=anode.y-1, z=anode.z} ).name - local over = minetest.get_node( {x=anode.x, y=anode.y+1, z=anode.z} ).name - under = minetest.registered_nodes[under] - over = minetest.registered_nodes[over] - - if under == nil or over == nil then - -- `under` or `over` could be nil if a mod that defined that node was removed. - -- Not something this mod can resolve, and so we just ignore it. - rspawn:debug("Found an undefined node around "..minetest.pos_to_string(anode)) - - else - if under.walkable - and not over.walkable - and not minetest.is_protected(anode, "") - and not (under.groups and under.groups.leaves ) -- no spawning on treetops! - and daylight_above(7, anode) then - if under.buildable_to then - validnodes[#validnodes+1] = {x=anode.x, y=anode.y-1, z=anode.z} - else - validnodes[#validnodes+1] = anode - end - end - end - end - - if #validnodes > 0 then - rspawn:debug("Valid spawn points found with radius "..tostring(radius)) - local newpos = validnodes[math.random(1,#validnodes)] - - return newpos - else - rspawn:debug("No valid air nodes") - end -end - -function rspawn:genpos() - -- Generate a random position, and derive a new spawn position - local pos = static_spawnpoint - - if rspawn.spawnanywhere then - pos = { - x = math.random(rspawn.min_x,rspawn.max_x), - y = water_level, -- always start at waterlevel - z = math.random(rspawn.min_z,rspawn.max_z), - } - end - - return pos -end - -function rspawn:set_player_spawn(name, newpos) - local tplayer = minetest.get_player_by_name(name) - if not tplayer then - return false - end - - local spos = minetest.pos_to_string(newpos) - - rspawn.debug("Saving spawn for "..name, spos) - rspawn.playerspawns[name] = newpos - rspawn:spawnsave() - - minetest.chat_send_player(name, "New spawn set at "..spos) - - tplayer:setpos(rspawn.playerspawns[name]) - minetest.after(0.5,function() - set_default_node({x=newpos.x,y=newpos.y-1,z=newpos.z}) - end) - - return true -end - -function rspawn:set_newplayer_spawn(player, attempts) - -- only use for new players / players who have never had a randomized spawn - if not player then return end - - local playername = player:get_player_name() - - if playername == "" then return end - - if not rspawn.playerspawns[playername] then - local newpos = rspawn:get_next_spawn() - - if newpos then - rspawn:set_player_spawn(playername, newpos) - - else - -- We did not get a new position - - if rspawn.kick_on_fail then - minetest.kick_player(playername, "No personalized spawn points available - please try again later.") - - else - - -- player just spawns (avoiting black screen) but still it not have spawn point assigned - if attempts <= 0 then - local fixedpos = rspawn:genpos() - - fixedpos.y = water_level + rspawn.search_radius - player:setpos(fixedpos) -- player just spawns (avoiting black screen) but still it not have spawn point assigned - minetest.chat_send_player(rspawn.admin, "Exhausted spawns! just spawn "..playername.." without spawn point") - end - - minetest.chat_send_player(playername, "Could not get custom spawn! Used fixed one and retrying in "..rspawn.gen_frequency.." seconds") - minetest.log("warning", "rspawn -- Exhausted spawns! Could not spawn "..playername.." so used fixed one") - - minetest.after(rspawn.gen_frequency, function() - rspawn:set_newplayer_spawn(player, attempts-1) - end) - end - end - end -end - -function rspawn:renew_player_spawn(playername) - local player = minetest.get_player_by_name(playername) - if not player then - return false - end - - local newpos = rspawn:get_next_spawn() - - if newpos then - return rspawn:set_player_spawn(playername, newpos) - - else - minetest.chat_send_player(playername, "Could not get custom spawn!") - return false - end -end - -minetest.register_on_joinplayer(function(player) - rspawn:set_newplayer_spawn(player, 5) -end) - -minetest.register_on_respawnplayer(function(player) - -- return true to disable further respawn placement - local name = player:get_player_name() - if rspawn.bedspawn == true and beds.spawn then - local pos = beds.spawn[name] - if pos then - minetest.log("action", name.." respawns at "..minetest.pos_to_string(pos)) - player:setpos(pos) - return true - end - end - - local pos = rspawn.playerspawns[name] - - -- And if no bed, nor bed spwawning not active: - if pos then - minetest.log("action", name.." respawns at "..minetest.pos_to_string(pos)) - player:setpos(pos) - return true - else - minetest.chat_send_player(name, "Failed to find your spawn point!") - minetest.log("warning", "rspawn -- Could not find spawn point for "..name) - return false - end -end) - -dofile(mpath.."/lua/pregeneration.lua") diff --git a/mods/rspawn/lua/commands.lua b/mods/rspawn/lua/commands.lua deleted file mode 100644 index 4ada423..0000000 --- a/mods/rspawn/lua/commands.lua +++ /dev/null @@ -1,164 +0,0 @@ -local stepcount = 0 -local newspawn_cooldown = {} -local cooldown_time = tonumber(minetest.settings:get("rspawn.cooldown_time")) or 300 - --- Command privileges - -minetest.register_privilege("spawn", "Can teleport to a spawn position and manage shared spawns.") -minetest.register_privilege("setspawn", "Can manually set a spawn point.") -minetest.register_privilege("newspawn", "Can get a new randomized spawn position.") -minetest.register_privilege("spawnadmin", "Can set new spawns for players.") - --- Support functions - -local function request_new_spawn(username, targetname) - local timername = username - if targetname ~= username then - timername = username.." "..targetname - end - - if not newspawn_cooldown[timername] then - if not rspawn:renew_player_spawn(targetname) then - minetest.chat_send_player(username, "Could not set new spawn for "..targetname) - return false - else - newspawn_cooldown[timername] = cooldown_time - return true - end - else - minetest.chat_send_player(username, tostring(math.ceil(newspawn_cooldown[timername])).."sec until you can randomize a new spawn for "..targetname) - return false - end -end - --- Commands - -minetest.register_chatcommand("spawn", { - description = "Teleport to your spawn, or manage guests in your spawn.", - params = "[ add | visit | kick | guests | hosts | town { open | close | ban [] | unban [] } ]", - privs = "spawn", - func = function(playername, args) - local target = rspawn.playerspawns[playername] - local args = args:split(" ", false, 1) - - if #args == 0 then - if target then - minetest.get_player_by_name(playername):setpos(target) - return - - else - minetest.chat_send_player(playername, "You have no spawn position!") - return - end - elseif #args < 4 then - for command,action in pairs({ - ["guests"] = function() rspawn.guestlists:listguests(playername) end, - ["hosts"] = function() rspawn.guestlists:listhosts(playername) end, - ["add"] = function(commandername,targetname) rspawn.guestlists:addplayer(commandername,targetname) end, - ["visit"] = function(commandername,targetname) rspawn.guestlists:visitplayer(targetname, commandername) end, - ["kick"] = function(commandername, params) rspawn.guestlists:kickplayer(commandername, params) end, - ["town"] = function(commandername,mode) rspawn.guestlists:townset(commandername, mode) end, - }) do - - if args[1] == command then - if #args == 2 then - action(playername, args[2]) - return - - elseif #args == 1 then - action(playername) - return - end - end - end - end - - minetest.chat_send_player(playername, "Bad command. Please check '/help spawn'") - end -}) - -minetest.register_chatcommand("setspawn", { - description = "Assign current position as spawn position.", - params = "", - privs = "setspawn", - func = function(name) - rspawn.playerspawns[name] = minetest.get_player_by_name(name):getpos() - rspawn:spawnsave() - minetest.chat_send_player(name, "New spawn set !") - end -}) - -minetest.register_chatcommand("newspawn", { - description = "Randomly select a new spawn position.", - params = "", - privs = "newspawn", - func = function(name, args) - request_new_spawn(name, name) - end -}) - -minetest.register_chatcommand("playerspawn", { - description = "Randomly select a new spawn position for a player, or use specified position, or go to their spawn.", - params = " { new | | go }", - privs = "spawnadmin", - func = function(name, args) - if args ~= "" then - args = args:split(" ") - - if #args == 2 then - local tname = args[1] - local tpos - - if args[2] == "go" then - local user = minetest.get_player_by_name(name) - local dest = rspawn.playerspawns[args[1]] - if dest then - user:setpos(dest) - minetest.chat_send_player(name, "Moved to spawn point of "..args[1]) - else - minetest.chat_send_player(name, "No rspawn coords for "..args[1]) - end - return - - elseif args[2] == "new" then - request_new_spawn(name, args[1]) - return - - else - tpos = minetest.string_to_pos(args[2]) - - if tpos then - rspawn.playerspawns[tname] = tpos - rspawn:spawnsave() - minetest.chat_send_player(name, tname.."'s spawn has been reset") - return - end - end - end - end - - minetest.chat_send_player(name, "Error. See '/help playerspawn'") - end -}) - --- Prevent players from spamming newspawn -minetest.register_globalstep(function(dtime) - local playername, playertime, shavetime - stepcount = stepcount + dtime - shavetime = stepcount - if stepcount > 0.5 then - stepcount = 0 - else - return - end - - for playername,playertime in pairs(newspawn_cooldown) do - playertime = playertime - shavetime - if playertime <= 0 then - newspawn_cooldown[playername] = nil - minetest.chat_send_player(playername, "/newspawn available") - else - newspawn_cooldown[playername] = playertime - end - end -end) diff --git a/mods/rspawn/lua/data.lua b/mods/rspawn/lua/data.lua deleted file mode 100644 index b790251..0000000 --- a/mods/rspawn/lua/data.lua +++ /dev/null @@ -1,99 +0,0 @@ -local spawnsfile = minetest.get_worldpath().."/dynamicspawns.lua.ser" - ---[[ Reconcile functions - -reconcile_original_spawns : convert from base implementation to invites with original spawns - -reconcile_guestlist_spawns : convert from "original spawns" implementation to "guest lists" - ---]] - --- Comatibility with old behaviour - players whose original spawns had not been registered receive the one they are now using -local function reconcile_original_spawns() - if not rspawn.playerspawns["original spawns"] then - rspawn.playerspawns["original spawns"] = {} - end - - for playername,spawnpos in pairs(rspawn.playerspawns) do - if playername ~= "pre gen" and playername ~= "original spawns" then - if not rspawn.playerspawns["original spawns"][playername] then - rspawn.playerspawns["original spawns"][playername] = rspawn.playerspawns[playername] - end - end - end - - rspawn:spawnsave() -end - -local function reconcile_guest(guestname, guestspawn) - for hostname,hostspawn in pairs(rspawn.playerspawns) do - if hostname ~= "guest lists" and hostname ~= guestname and hostspawn == guestspawn then - local hostlist = rspawn.playerspawns["guest lists"][hostname] or {} - hostlist[guestname] = 1 - rspawn.playerspawns["guest lists"][hostname] = hostlist - end - end -end - -local function reconcile_guestlist_spawns() - if not rspawn.playerspawns["guest lists"] then rspawn.playerspawns["guest lists"] = {} end - - for guestname,spawnpos in pairs(rspawn.playerspawns) do - reconcile_guest(guestname, spawnpos) - - if rspawn.playerspawns["original spawns"][guestname] then - rspawn.playerspawns[guestname] = rspawn.playerspawns["original spawns"][guestname] - rspawn.playerspawns["original spawns"][guestname] = nil - else - minetest.debug("Could not return "..guestname) - end - end - - if #rspawn.playerspawns["original spawns"] == 0 then - rspawn.playerspawns["original spawns"] = nil - else - minetest.log("error", "Failed to reconcile all spawns") - end - - rspawn:spawnsave() -end - -function rspawn:spawnsave() - local serdata = minetest.serialize(rspawn.playerspawns) - if not serdata then - minetest.log("error", "[spawn] Data serialization failed") - return - end - local file, err = io.open(spawnsfile, "w") - if err then - return err - end - file:write(serdata) - file:close() - - local pregens = rspawn.playerspawns["pre gen"] or {} - minetest.debug("Wrote rspawn data with "..tostring(#pregens).." pregen nodes") -end - -function rspawn:spawnload() - local file, err = io.open(spawnsfile, "r") - if not err then - rspawn.playerspawns = minetest.deserialize(file:read("*a")) - file:close() - else - minetest.log("error", "[spawn] Data read failed - initializing") - rspawn.playerspawns = {} - end - - local pregens = rspawn.playerspawns["pre gen"] or {} - rspawn.playerspawns["pre gen"] = pregens - - local towns = rspawn.playerspawns["town lists"] or {} - rspawn.playerspawns["town lists"] = towns - - reconcile_original_spawns() - reconcile_guestlist_spawns() - - minetest.debug("Loaded rspawn data with "..tostring(#pregens).." pregen nodes") -end - diff --git a/mods/rspawn/lua/debugging.lua b/mods/rspawn/lua/debugging.lua deleted file mode 100644 index 7765506..0000000 --- a/mods/rspawn/lua/debugging.lua +++ /dev/null @@ -1,20 +0,0 @@ -function rspawn:d(stuff) - -- Quick debugging - minetest.debug(dump(stuff)) -end - -function rspawn:debug(message, data) - -- Debugging from setting - if not rspawn.debug_on then - return - end - - local debug_data = "" - - if data ~= nil then - debug_data = " :: "..dump(data) - end - local debug_string = "[rspawn] DEBUG : "..message..debug_data - - minetest.debug(debug_string) -end diff --git a/mods/rspawn/lua/forceload.lua b/mods/rspawn/lua/forceload.lua deleted file mode 100644 index 2708ad2..0000000 --- a/mods/rspawn/lua/forceload.lua +++ /dev/null @@ -1,37 +0,0 @@ -local forceloading_happening = false - - -local function forceload_operate(pos1, pos2, handler, transient) - local i,j,k - - for i=pos1.x,pos2.x,16 do - for j=pos1.y,pos2.y,16 do - for k=pos1.z,pos2.z,16 do - handler({x=i,y=j,z=k}, transient) - end - end - end -end - -function rspawn:forceload_blocks_in(pos1, pos2) - if forceloading_happening then - rspawn:debug("Forceload operation already underway - abort") - return false - end - - rspawn:debug("Forceloading blocks -----------¬", {pos1=minetest.pos_to_string(pos1),pos2=minetest.pos_to_string(pos2)}) - forceloading_happening = true - minetest.emerge_area(pos1, pos2) - forceload_operate(pos1, pos2, minetest.forceload_block, true) - - return true -end - -function rspawn:forceload_free_blocks_in(pos1, pos2) - rspawn:debug("Freeing forceloaded blocks ____/", {pos1=minetest.pos_to_string(pos1),pos2=minetest.pos_to_string(pos2)}) - -- free both cases - take no chances - forceload_operate(pos1, pos2, minetest.forceload_free_block) -- free if persistent - forceload_operate(pos1, pos2, minetest.forceload_free_block, true) -- free if transient - forceloading_happening = false -end - diff --git a/mods/rspawn/lua/guestlists.lua b/mods/rspawn/lua/guestlists.lua deleted file mode 100644 index 13bd970..0000000 --- a/mods/rspawn/lua/guestlists.lua +++ /dev/null @@ -1,429 +0,0 @@ --- API holder object -rspawn.guestlists = {} - -local kick_step = 0 - -local kick_period = tonumber(minetest.settings:get("rspawn.kick_period")) or 3 -local exile_distance = tonumber(minetest.settings:get("rspawn.exile_distance")) or 64 - -local GUEST_BAN = 0 -local GUEST_ALLOW = 1 - --- Levvy helpers --- FIXME Minetest API might actually be able to do this cross-stacks with a single call at inventory level. - -local levvy_name = minetest.settings:get("rspawn.levvy_name") or "default:cobble" -local levvy_qtty = tonumber(minetest.settings:get("rspawn.levvy_qtty")) or 10 -local levvy_nicename = "cobblestone" - -minetest.after(0,function() - if minetest.registered_items[levvy_name] then - levvy_nicename = minetest.registered_nodes[levvy_name].description - else - minetest.debug("No such item "..levvy_name.." -- reverting to defaults.") - levvy_name = "default:cobble" - levvy_qtty = 99 - end -end) - -local function find_levvy(player) - -- return itemstack index, and stack itself, with qtty removed - -- or none if not found/not enough found - local i - - if not player then - minetest.log("error", "[rspawn] Levvy : Tried to access undefined player") - return false - end - - local pname = player:get_player_name() - local player_inv = minetest.get_inventory({type='player', name = pname}) - local total_count = 0 - - if not player_inv then - minetest.log("error", "[rspawn] Levvy : Could not access inventory for "..pname) - return false - end - - for i = 1,32 do - local itemstack = player_inv:get_stack('main', i) - local itemname = itemstack:get_name() - if itemname == levvy_name then - if itemstack:get_count() >= levvy_qtty then - return true - else - total_count = total_count + itemstack:get_count() - - if total_count >= (levvy_qtty) then - return true - end - end - end - end - - minetest.chat_send_player(pname, "You do not have enough "..levvy_nicename.." to pay the spawn levvy for your invitation.") - return false -end - -function rspawn:consume_levvy(player) - if not player then - minetest.log("error", "[rspawn] Levvy : Tried to access undefined player") - return false - end - - local i - local pname = player:get_player_name() - local player_inv = minetest.get_inventory({type='player', name = pname}) - local total_count = 0 - - -- TODO combine find_levvy and consume_levvy so that we're - -- not scouring the inventory twice... - if find_levvy(player) then - for i = 1,32 do - local itemstack = player_inv:get_stack('main', i) - local itemname = itemstack:get_name() - if itemname == levvy_name then - if itemstack:get_count() >= levvy_qtty then - itemstack:take_item(levvy_qtty) - player_inv:set_stack('main', i, itemstack) - return true - else - total_count = total_count + itemstack:get_count() - itemstack:clear() - player_inv:set_stack('main', i, itemstack) - - if total_count >= (levvy_qtty) then - return true - end - end - end - end - end - - return false -end - --- Visitation rights check - -local function canvisit(hostname, guestname) - local host_glist = rspawn.playerspawns["guest lists"][hostname] or {} - local town_lists = rspawn.playerspawns["town lists"] or {} - - local explicitly_banned = host_glist[guestname] == GUEST_BAN - - local explicitly_banned_from_town = town_lists[hostname] and - town_lists[hostname][guestname] == GUEST_BAN - - local open_town = town_lists[hostname] and town_lists[hostname]["town status"] == "on" - - if explicitly_banned or explicitly_banned_from_town then - return false - - elseif host_glist[guestname] == GUEST_ALLOW then - return true - - elseif open_town then - return true - end - return false -end - --- Operational functions (to be invoked by /command) - -function rspawn.guestlists:addplayer(hostname, guestname) - local guestlist = rspawn.playerspawns["guest lists"][hostname] or {} - - if guestlist[guestname] ~= nil then - if guestlist[guestname] == GUEST_BAN then - minetest.chat_send_player(guestname, hostname.." let you back into their spawn.") - minetest.log("action", "[rspawn] "..hostname.." lifted exile on "..guestname) - end - guestlist[guestname] = GUEST_ALLOW - - elseif rspawn:consume_levvy(minetest.get_player_by_name(hostname) ) then -- Automatically notifies host if they don't have enough - guestlist[guestname] = GUEST_ALLOW - minetest.chat_send_player(guestname, hostname.." added you to their spawn! You can now visit them with /spawn visit "..hostname) - minetest.log("action", "[rspawn] "..hostname.." added "..guestname.." to their spawn") - else - return - end - - minetest.chat_send_player(hostname, guestname.." is allowed to visit your spawn.") - rspawn.playerspawns["guest lists"][hostname] = guestlist - rspawn:spawnsave() -end - -function rspawn.guestlists:exileplayer(hostname, guestname) - if hostname == guestname then - minetest.chat_send_player(hostname, "Cannot ban yourself!") - return false - end - local guestlist = rspawn.playerspawns["guest lists"][hostname] or {} - - if guestlist[guestname] == GUEST_ALLOW then - guestlist[guestname] = GUEST_BAN - rspawn.playerspawns["guest lists"][hostname] = guestlist - - else - minetest.chat_send_player(hostname, guestname.." is not in accepted guests list for "..hostname) - return false - end - - minetest.chat_send_player(guestname, "You may no longer visit "..hostname) - minetest.log("action", "rspawn - "..hostname.." exiles "..guestname) - rspawn:spawnsave() - return true -end - -function rspawn.guestlists:kickplayer(hostname, guestname) - if rspawn.guestlists:exileplayer(hostname, guestname) then - minetest.chat_send_player(hostname, "Evicted "..guestname.." from your spawn") - minetest.log("action", "rspawn - "..hostname.." evicts "..guestname) - end -end - -function rspawn.guestlists:listguests(hostname) - local guests = "" - local guestlist = rspawn.playerspawns["guest lists"][hostname] or {} - - local global_hosts = rspawn.playerspawns["town lists"] or {} - if global_hosts[hostname] then - guests = ", You are an active town host." - end - - -- Explicit guests - for guestname,status in pairs(guestlist) do - if status == GUEST_ALLOW then status = "" else status = " (exiled guest)" end - - guests = guests..", "..guestname..status - end - - -- Town bans - always list so this can be maanged even when town is closed - for guestname,status in pairs(global_hosts[hostname] or {}) do - if guestname ~= "town status" then - if status == GUEST_ALLOW then status = "" else status = " (banned from town)" end - - guests = guests..", "..guestname..status - end - end - - if guests == "" then - guests = ", No guests, not hosting a town." - end - - minetest.chat_send_player(hostname, guests:sub(3)) -end - -function rspawn.guestlists:listhosts(guestname) - local hosts = "" - - for hostname,hostguestlist in pairs(rspawn.playerspawns["guest lists"]) do - for gname,status in pairs(hostguestlist) do - if guestname == gname then - if status == GUEST_ALLOWED then - hosts = hosts..", "..hostname - end - end - end - end - - local global_hostlist = rspawn.playerspawns["town lists"] or {} - for hostname,host_banlist in pairs(global_hostlist) do - if host_banlist["town status"] == "on" and - host_banlist[guestname] ~= GUEST_BAN - then - hosts = hosts..", "..hostname.." (town)" - end - end - - if hosts == "" then - hosts = ", (no visitable hosts)" - end - - minetest.chat_send_player(guestname, hosts:sub(3)) -end - -function rspawn.guestlists:visitplayer(hostname, guestname) - if not (hostname and guestname) then return end - - local guest = minetest.get_player_by_name(guestname) - local hostpos = rspawn.playerspawns[hostname] - - if not hostpos then - minetest.log("error", "[rspawn] Missing spawn position data for "..hostname) - minetest.chat_send_player(guestname, "Could not find spawn position for "..hostname) - end - - if guest and canvisit(hostname, guestname) then - minetest.log("action", "[rspawn] "..guestname.." visits "..hostname.." (/spawn visit)") - guest:setpos(hostpos) - else - minetest.chat_send_player(guestname, "Could not visit "..hostname) - end -end - -local function act_on_behalf(hostname, callername) - return hostname == callername or -- caller is the town owner, always allow - ( -- caller can act on behalf of town owner - rspawn.playerspawns["guest lists"][hostname] and - rspawn.playerspawns["guest lists"][hostname][callername] == GUEST_ALLOW - ) -end - -local function townban(callername, guestname, hostname) - if not (callername and guestname) then return end - - hostname = hostname or callername - - if act_on_behalf(hostname, callername) then - if not rspawn.playerspawns["town lists"][hostname] then - minetest.chat_send_player(callername, "No such town "..hostname) - return - end - - rspawn.playerspawns["town lists"][hostname][guestname] = GUEST_BAN - - minetest.chat_send_player(callername, "Evicted "..guestname.." from "..hostname.."'s spawn") - minetest.log("action", "[rspawn] - "..callername.." evicts "..guestname.." on behalf of "..hostname) - else - minetest.chat_send_player(callername, "You are not permitted to act on behalf of "..hostname) - end - rspawn:spawnsave() -end - -local function townunban(callername, guestname, hostname) - if not (callername and guestname) then return end - - hostname = hostname or callername - if act_on_behalf(hostname, callername) then - if not rspawn.playerspawns["town lists"][hostname] then - minetest.chat_send_player(callername, "No such town "..hostname) - return - end - - rspawn.playerspawns["town lists"][hostname][guestname] = nil - - minetest.chat_send_player(callername, "Allowed "..guestname.." back to town "..hostname) - minetest.log("action", "[rspawn] - "..callername.." lifts eviction on "..guestname.." on behalf of "..hostname) - else - minetest.chat_send_player(callername, "You are not permitted to act on behalf of "..hostname) - end - rspawn:spawnsave() -end - -local function listtowns() - local town_lists = rspawn.playerspawns["town lists"] or {} - local open_towns = "" - - for townname,banlist in pairs(town_lists) do - if banlist["town status"] == "on" then - open_towns = open_towns..", "..townname - end - end - - if open_towns ~= "" then - return open_towns:sub(3) - end -end - -function rspawn.guestlists:townset(hostname, params) - if not hostname then return end - - params = params or "" - params = params:split(" ") - - local mode = params[1] - local guestname = params[2] - local town_lists = rspawn.playerspawns["town lists"] or {} - local town_banlist = town_lists[hostname] or {} - - if mode == "open" then - town_banlist["town status"] = "on" - minetest.chat_send_all(hostname.." is opens access to all!") - minetest.log("action", "[rspawn] town: "..hostname.." sets their spawn to open") - - elseif mode == "close" then - town_banlist["town status"] = "off" - minetest.chat_send_all(hostname.." closes town access - only guests may directly visit.") - minetest.log("action", "[rspawn] town: "..hostname.." sets their spawn to closed") - - elseif mode == "status" then - minetest.chat_send_player(hostname, "Town mode is: "..town_banlist["town status"]) - return - - elseif mode == "ban" and guestname and guestname ~= hostname then - townban(hostname, guestname, params[3]) - - elseif mode == "unban" and guestname then - townunban(hostname, guestname, params[3]) - - elseif mode == nil or mode == "" then - local open_towns = listtowns() - if not open_towns then - open_towns = "(none yet)" - end - minetest.chat_send_player(hostname, open_towns) - - else - minetest.chat_send_player(hostname, "Unknown parameterless town operation: "..tostring(mode) ) - return - end - - town_lists[hostname] = town_banlist - rspawn.playerspawns["town lists"] = town_lists - - rspawn:spawnsave() -end - --- Exile check -minetest.register_globalstep(function(dtime) - if kick_step < kick_period then - kick_step = kick_step + dtime - return - else - kick_step = 0 - end - - for _x,guest in ipairs(minetest.get_connected_players()) do - local guestname = guest:get_player_name() - local playerprivs = minetest.get_player_privs(guestname) - - if not (playerprivs.basic_privs or playerprivs.server) then - local guestpos = guest:getpos() - - for _y,player_list_name in ipairs({"guest lists", "town lists"}) do - for hostname,host_guestlist in pairs(rspawn.playerspawns[player_list_name] or {}) do - - if host_guestlist[guestname] == GUEST_BAN then - -- Check distance of guest from banned pos - local vdist = vector.distance(guestpos, rspawn.playerspawns[hostname]) - - -- Check distance of guest from their own pos - -- If their spawn is very close to one they are banned from, - -- and they are close to their own, kick should not occur - local sdist = vector.distance(guestpos, rspawn.playerspawns[guestname]) - - if vdist < exile_distance and sdist > exile_distance then - guest:setpos(rspawn.playerspawns[guestname]) - minetest.chat_send_player(guestname, "You got too close to "..hostname.."'s turf.") - minetest.log("action", "[rspawn] Auto-kicked "..guestname.." for being too close to "..hostname.."'s spawn") - - elseif vdist < exile_distance*1.5 and sdist > exile_distance then - minetest.chat_send_player(guestname, "You are getting too close to "..hostname.."'s turf.") - end - end - end - end - end - - end -end) - --- Announce towns! - -minetest.register_on_joinplayer(function(player) - local open_towns = listtowns() - if open_towns then - minetest.chat_send_player(player:get_player_name(), "Currently open towns: "..open_towns..". Visit with '/spawn visit ' !") - end -end) diff --git a/mods/rspawn/lua/pregeneration.lua b/mods/rspawn/lua/pregeneration.lua deleted file mode 100644 index e3090ff..0000000 --- a/mods/rspawn/lua/pregeneration.lua +++ /dev/null @@ -1,85 +0,0 @@ -local steptime = 0 - --- Ensure pregen data is stored and saved properly - -local function len_pgen() - return #rspawn.playerspawns["pre gen"] -end - -local function set_pgen(idx, v) - rspawn.playerspawns["pre gen"][idx] = v - rspawn:spawnsave() -end - -local function get_pgen(idx) - return rspawn.playerspawns["pre gen"][idx] -end - --- Spawn generation - -local function push_new_spawn() - if len_pgen() >= rspawn.max_pregen_spawns then - rspawn:debug("Max pregenerated spawns ("..rspawn.max_pregen_spawns..") reached : "..len_pgen()) - return - end - - local random_pos = rspawn:genpos() - local pos1,pos2 = rspawn:get_positions_for(random_pos, rspawn.search_radius) - - if rspawn:forceload_blocks_in(pos1, pos2) then - minetest.after(rspawn.gen_frequency*0.8, function() - -- Let the forceload do its thing, then act - - local newpos = rspawn:newspawn(random_pos, rspawn.search_radius) - if newpos then - rspawn:debug("Generated "..minetest.pos_to_string(newpos)) - set_pgen(len_pgen()+1, newpos ) - else - rspawn:debug("Failed to generate new spawn point to push") - random_pos.y = random_pos.y + rspawn.search_radius - set_pgen(len_pgen()+1, random_pos ) - minetest.chat_send_player(rspawn.admin, "Failed to generate new spawn.. trying fixed one") - end - - rspawn:forceload_free_blocks_in(pos1, pos2) - end) - else - rspawn:debug("Failed to push new spawn point - preexisting operation took precedence.") - end -end - -minetest.register_globalstep(function(dtime) - steptime = steptime + dtime - if steptime > rspawn.gen_frequency then - steptime = 0 - else - return - end - - push_new_spawn() -end) - --- Access pregenrated spawns - -function rspawn:get_next_spawn() - local nspawn - - if len_pgen() > 0 then - nspawn = get_pgen(len_pgen() ) - set_pgen(len_pgen(), nil) - - -- Someone might have claimed the area since. - if minetest.is_protected(nspawn, "") then - return rspawn:get_next_spawn() - else - rspawn:debug("Returning pregenerated spawn",nspawn) - end - end - - return nspawn -end - --- On load... - -push_new_spawn() - diff --git a/mods/rspawn/mod.conf b/mods/rspawn/mod.conf deleted file mode 100644 index f89908e..0000000 --- a/mods/rspawn/mod.conf +++ /dev/null @@ -1 +0,0 @@ -name = rspawn diff --git a/mods/rspawn/settingtypes.txt b/mods/rspawn/settingtypes.txt deleted file mode 100644 index fc212d5..0000000 --- a/mods/rspawn/settingtypes.txt +++ /dev/null @@ -1,16 +0,0 @@ -rspawn.debug (Debug mode) bool false -rspawn.spawn_anywhere (Spawn anywhere) bool true -rspawn.kick_on_fail (Kick on fail) bool false -rspawn.max_pregen (Maximum blocks to pregenerate) string 10 -rspawn.search_radius (Search radius) string 32 -rspawn.gen_frequency (Spawnpoint generation frequency [seconds]) string 60 -rspawn.spawn_block (Node to place under new spawn point) string -rspawn.levvy_name (Levvy itemstring) string "default:cobble" -rspawn.levvy_qtty (Levvy quantity) string 10 -rspawn.kick_period (Exile kick check period) string 1 -rspawn.exile_distance (Exile distance) string 64 -rspawn.cooldown_time (Cooldown between /newspawn uses) string 300 -rspawn.min_x (Westmost bounds) string -31000 -rspawn.max_x (Eastmost bounds) string 31000 -rspawn.min_z (Southmost bounds) string -31000 -rspawn.max_z (Northmost bounds) string 31000 diff --git a/screenshot.png b/screenshot.png deleted file mode 100644 index c9a945856af0e582cc9b2d86c75ae33755daf2be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139652 zcmV)FK)=6_1@x{u_QV zVEfsy4L!;RY=9DAKrsAb*^&tjDU#-GI74YJJ=5LOx2if-b#9p%5qm8^?AzKqBJ-RY zwN%4qRh@GxGcscDwb%N-Z+(mYtADgrB7g{BA~*sV072kDU;;o2hJu*jh`>Z307MEV zLPr1*f#T0|d@TmxNI|6edjx?a06=&R5SSE93V@&h1PbpJB7#Z6pC|F~p5Otf5(Iz{ z1MC1|fEE3>g*S&K&;5 z&Vh-b&;vg~02EM(e?I&xUBmJ(1&G3R31RRa!+ydrjqsu%Vz{oyYPCk!F$m$aF#)U! zM?O4f()hdyLcqifRX%!6(=;DI7|~(U4kLOD;xGtd62=IISHLmBak^(X z_{{ISbb^A(fk5!8@I)9Dm{c(Wn3N!Kk0}T;O^|VdP9vNs*339vt#GnhW4!{rC?=1C zt2r#^`>!kg9LjI$6Cr&uJQuqE_On3T1R;Tf05C*c+z$Zq`c<$ho;+FM#g{K2(}+js z8=Rf?c>VGPzVlE234Ze9AL8|kF9A$=ba9TipF9CG;k$qK=kR{SI1G64;u&7QdWCh@ zK~+HN!?mhFMW8C-&q^4HAt6%cwbrh=^yiLp01OX~!13cy*hCbAMG9W|X2y@L05PEo z6O=+IRhyRL|H3Z`e~SSz-`DtVjtC%zBLNstI6yTnDu9&0#1KwF5@A!v*WmP-()&`m zeu_agUTFS4GzF7*L zFuhnhAQ2DF@(JVD>G=LBhmu(j&7a%Psp-B`SQQ`wX?$iV-wP2zLjcY9fB@2PxSD`p z-zUm{zVDuXCBKNmAx{#Xy4tlAf*NVufOZ39%1L~t(NZzZ#rk6qTmMcQ6|TAC?!2(PPYeLU>hXio6r`q%Jh z#N;8ZWQBkr*lh=_x*l%jFphit_=i8i5B~XI;QQbEF24Bm6TJW4yKvNFzuV#J>NRd| zu5fpEi>vEbU=W63#N;PzI+voLz4~&ei5_-v#9v)pCSaIFkl!M0Mk+y;D8}>bi+~hxIc1*&l5krQH?lI7g;JgVVGY4#*e*U| zPEVaUWM(l45i=-m@bHfnq!izSZ76G&R=HpFfQ<{ty+1;9JP;~{r^iZg9YeH4KPK}$ z$R2#*hA^W%BOoqbK1N0GPQ{ zD+>X){qJAPue8@lu_?k@)|fabaTCO1&=m%Q0Rosq)rVvEo=SYbFY8Trn$2Or zalfXkRPR9)GVP8XdM5P5=;9&ZMWJyI-5XS)54vUc+EeDI@i{*aprC z@b=qpVZVPH493Tw2!`Db>-8GbxG7a$N>Q~`#+oAH8x&Jr-rV`rjqpN#XqtmqD!)-d z3o%QkvN1WHLg}^h=^J4PioqT+=%(zN%#kSR`y4*7NC=1m26=^qlqf(GRI>1r^=b?z zCR^t^SlGtR?cL>>%EU`WQFAn@k_Lf2A>V%#sen7U>zNV?Y?H z9ausMM&#nNi3gB<4j>STfsE?Uet#x@I0#k;Q3^hg2nU7D3=P-qh#>iSgkVLg=$tE= z84o;%8pXv$5cvm&e^P1 z8#)Ei6m-eHCY8VoO;AESi76Lo@sy5>gbAVnj}<03Q3x?SDMU0bin#P6?pyALmiH&k znS5K;rC`G-ftJXg!r`j&g{%3;Ik+-FJ|8AkfKET3vmSa-;3ac#VOHX#JRxA#0D;5- z047OTVY>GMBF>+mt3Zi-e*!#_?wCC&w0>_Ds4kTF<}d~#bRNI1`E$hUHc&&p{}ihV z5%isl&ku0S`T5!Vawq^l=$`&d#}1A6Lu>en3~lmxfVdVnuNIoDaDZ@+u_IMz9v)gC0LseAJ+x^cc z90ZzIQ_Mh_s_Rr$_|aq4J3t2f$shj#{^HO72*32r_wnst`FAkw@6eyFaeeg)uU@{y zFb-fQJi55R=bwFsX__z&13F^#eQzLFYH+uo?@;R4!VGzFY6!L{!3uG6I13l#KNDCb zV=rL?8?2RT94nD;DNyIrnFw79EEMn?)j$X-2;#z7=Sks3AR2DAL@--47r7A+4y0WU zIw|ONUM0rIYtJegkuJ% z=0J*1b750({(VkP@!{+?Wy)2(qJfklX^>)yX-Fh=l;C2y;MhDrAO6B#;=zQ7ML947 zF6Ij^erA`UpSb)PnPjX__Zm7;#9#>qSWUH1ZWHG~ml%FA>~>foE|G0eFcVZ5UOjqd zkoxd?%&{B~S+0mwfi`8nHUs`wAAHLOM^Jkcb5z{zeySr0$$YuVg1O0X9SDxnCX)DiR3(jZxmNh9W{DXpmNgL=64hBA3MGYyfHjt>;2Z?< z;gDbiEpj;K5>UA!C`0B?Mn%B$H5AB-d8mZsY@h)GuSu!e z0mQ(o;l52V+0XCgV^Aa16-{;6qL7Jf_6fDDbJ_1oh9Qryoqo3@ko|cj%GoVxxz|O7 z5mumxhjZZ&O>h$l&7g)uB-=yOB40(|MM*yl;!qA@)qwYlPtVp6YzC4^_p1UeBCMyW z>e6!WgsR-utQR#bYN!`j!`=z|FUq!z^s!^A4qu8@2m$DrpgyeK^cq3{FJ-H=fT%U= zhG1`%<~@-MNeyen-Sb)&-msKyzK&S&dhyupZ*j6d$6Jq2@Z#AQxP0*iI;Xh3eu?W> z1D-s31XT~`fYXx=HtRKBy}rbwvoj3)9hexab&tvSQO2lQ#i6mXDH6#yg&IuOOfy#9 zO3j-8sIaJHp^B_-ph|+4e})Q(&Sc2CNCa4DLQN)>aWW2pHZ4j?OuPa@0#bn(c~?^3 zvbhfA!$rW=Cn8?KR^P11`bWo`I9$Wr2 zEno@{P_*Fw8vhdjOac+fL?fx1pi7xpv;^qk%@RKwXXM zGg(uBbOap(lSqa^@_JZ+8f-AVk3jn>c`j-XRV~@LS^r{cFR!uUaSo27&fb7Pjsi5zk@!@vS+&HCIw7ogT@JkMS|U>` zBveMViaQz;p<}O=lueos5{)&t=6jT~j|l>m5g+~J1|Rv$=Q!Q;c>VGU zMCVwqI;>V}oSbYR(}?ZeEnd40(>S2(x&k9XD|v>hdFHD1dU#0SbyinPY~TUOWEVlh zrggP6Bn4V$PJygWh=P5W<=R^0Oe&esAq4UaR3uQOsL3sR)8ir0MTR^q3dxvezVYcj zt;pXjP|9heRH_UzSe#WpaNf{d$>u0(Im7SNT(|jNF53*MN3HgmimdI(_tG`Fm?5O> z+Ht_!JQPemE=Lc7H$gIHn3a^ikf&AAT*Qd!QwO)A&D0=b;KVy~A6NzlPoR8h`ii{!g(vXM^wl*`MOQr%&+o z>Dw5F9nR0+#`@$OB8t14TXaO&@AtU4IKw!4+}vDazu#fCTGb??(Icm-P~J$#t48A) zn<3JIcTw_VvCs@VGyxHfDuN?ykxDBlLiUw#R}GzT71kQF(Yy?m0phZ${r+@{~C$v{DE#G1w8j1iUwOaHW0d zIv3Rplq-$|H-v_eSa(HbMBmW@fmefSLR6PXP*eKXTyp`(gACFhxRkJdn#Tu)f(c5@VR0;W*a<@ z1>j==_bY`O5>Xb3UBoUb0pJ06Ne52}wu@`1x;CAizjL8(fs?A>TM=DRA3c@*mdVa| zKzAH(ff0)Pnz$N@#jO&7A;Pq87oFAU0imt@JYqqse!S z>~9pc{}Vp_=DJ>y0$x?U~+sb*P47JgShM_CQQCfQ+4tf}VLujFV6 ztcqn4XT7HaRTo`d`Z7v08L7f+$W%2F=#T2Tb+R#;zlw)6eZJDb4r`|M|0Bl zfbzB8Nb#P{zehRvYuo9gg}ze?opdqR07D{Ut`MaxmQQ%Fkiv11b%nzw^p;b8SFM=r&n2LlA&<3Q zb8Vn)zuqM|7^h8}pa!kWYG)vY;)Osp!J?&!A_ZY?NV%*U$OMyZ+6X~eQEqZpBADtU zXwNC1{84uwv*GY{Qa~qxX8g94#GD_r!5Je+pLuCj(@=nXUEBoWsHn>Ll4ha&Li1XB z7fMVtRi&6x39bpYD1?g%yr$^qm<13cmgC`o>l{HOyhaznM3N7QJ|`B2Q)Wu&I4GIYuP1tl9P7J!&M*nM@7gBKLO6g!cAB_C9>N=y6a#1XoGK-(2Gnv&7 zS+v)95?c|B?VGo)%?qjxOCq+CsS0ke+WCb(iMFr8!We3Ti(0dv>b0~YvrH)T@q3Fq!kCWOuhrRo`5v{MSQX=6{#t`(aA#Oya}gpEwF(%q`osu&C7Dk}J{g`$=!MZV{? z+MdDKObI&B@%PPN`WAlo|NVdPlOO#Uez?UrOz7MS7Z*?P^70bvlOBD)3cQeN&_PS^ z3=!2r*Q>_oT~qjgQPR*{S!36m{d#BN0!HIokO?(|eWHltIkBhINXG~@T#*8}k$Ev} z%cvo+GDBK2*qDN5NP;MV@V1nV3nM=vr5SWuk$Y6gHH+=CX$z%=?q6y& zmUTN$y=j@OZkG(iOZoR8jho|pRkKB6sfkOe&e1eS0ZmR*k#WzNPA=oLKq^$&b_Evo z%H{A`zGiLZhABWLABM)!i5nefX~>~0LDB|Vyf1sb4{kVS9rh2{<~#}r&tEp(I};|v6tOzu)MQ4BQP zWWCiMuo~`osJnLg-q&H-8xf zed7!lXB%wqwpgv#==&AC7kKaCJ>bPdB>r6`R;ez_{=$E1w8Wb4IgVtywT>6XtH9Z; z)4&Porn%G@!F5Mhl60j2#c1`4SvryRfZ27b@>59P)Pi~Cf3I1mm_DfeoNR)eQg{d} zbm7#BH!5~oWPFC~>l>FYHgHNVCV6>**Z{*vI&J4_Bt6!cTV>XVlCE$*DFTI7#Pgb? zJ7pE8pctlS^4-Kth(_;UHJZns23h18vHJmlpbx z-uJ7>cndeg4I2`Rcmg_hFm+(5F4YEIonhk#?{mTyHR-uEXSh~wiX5yt6RS4xiZ9u& zTH`CynE3|JWC%*r(V=Bc^M(pE+%O0aav`I8UaM+diC)>Mi!~VTaNrssU?zO+=?ct* zfAiblM(-4_FTcd;ro+wEOZ>{We-*D@UShZ129NM)KvNmQAZ}p zm;xO*wh#vsZNxw&nu1pSu*o=nwOMUzOkUYESe)tsrqJ|&6?oj3EF5&f(Nc^4IWn4^ zT4Xe2T0Y@2q8UHUII$rXzlt)v&UougT21F68{>O2ZN?ROY8I^xs!M^j4Z2GK_N&Nv z5t~u$X9|0fO;|`QhO4SN>s`!bYI?IO=kpD=p@eG>JpZbS+F# zEUW1aZq4DK^Ptal&udXs{IF>}A%*b*iR+pf&Jn(Rw#UEmE5C|QKmHJp&o?;Rtni2b z>^u12{iitDoZ>YuF->E6FAZy?Ly+bYd zAfhJ2r)7-SbOC{uPi8Ww^1bWpVLs^b1V6sO(}JU_b-SG0TrKGEc~yOBHi`A4wdTBU z_dhf?*M8`wqfJp`g0>NitFP064EGqUaQr~C%`}J22aeqYs^A&KHdl=uT#0X})eXt? z95XnM4V?1Oz^hn-8%ow}F?P=0%#^3gbe!;M)B0VtotEnDq2^olb5L{eyjkF#Kfi_7 zN)>HmOI|njgs)A00zvWayHD}*#WN@beZR)}#Uo5!@#UA#vD@wAUXYTAL{i=7B*0^u zWF~;qLSxnkK4_6pvk5{M#_k|@gOsKQt+PK13nWRJqp4J1*Z zg*i^DDw)AeIGDuMRSMQ8kZ%XP5wOv70!+n1P#Y2OxWavlDV>AsHRCww1d5VD%8INA74$ma<n@lKVyD3vndgN3hFbdXeZB=WhwPl>jsv44q#DS?mC0l85H=ZO45ALo3ZXG-S33k}Di7fv!hO_cO9`?8po}7a1Fx_gZ~>d&=ZbF3 z4slTpo@W1LSb+`Ei@av7e+^s0+C2JH;@@|iW&hd*^#(^siPB6zDT*MDO+n0tlW2)D zCDT66#s5LudsEY{?RqYlbs}~pCvp$Zdg3E3<9XMIs1(WgQrE5Um8t6_LOztMr%+%*##nu$vmhEaxbZY4k%-l0r zBlgHB7THwl7}8AmB|ldp3xiN*;^RPo;Pp$P3q`u9<&A0x0!%Pywb)wqX44WTWh7-- zPWBi7ey~Sr=6KZ3cmjyK5DyptyQpq3r6Q+sO(D~rRN+YBId%k*pabFn)4F-Xni;js zb+w!E=C2#wkpr*onjS zUa`>*J$3P7BsbxZ7ENlY%379ksfwVgoy7(d1w*-ml7lD$BQ608lvww2v>A1#TQZsc zr>3G@=G$zkI;aV@Wg<7CX!5~L?aC5cRm0SXRhkdx%30@<+)NrWGks1?hlWOf29AxR zVzOV&4Gu6xHrWlMMviFU0HUTq)AI9b_y(xfM(IYSp_(+yv8&EBtq2riluqgXY}O9% zeCq?8t{Go@`!T-p{(D$;J^uWU{|M{NDMTiW;|Ms1b+^WJdyCa-1(7X?CaCxD-h*8q zj@MX0bL5P25{HHaJTT-kLk*fH=@OtMnFY<}A52wafRa`KsK%Dg?6J#nlCQ~nGjx$9 z7iyr4I=d7t7;%yoxj4$EwEerBjXQ(gRpd|%0+PtOm}-!4wb7;tanXj+Ewx;vct-@& z7p)JrE$0?t}Ipyk5EtJMIZnGAOJ~3K~(L868=vl|JScpaGh(~cyk2H z+(?p%g-WL-Qer?>Upa5pt{tU7XU(q-)RGpYh0SlJIj5EI2#m1DZrMAvx zX8%HPao&SfaCUlvw;nyhU;Wj;f?xRhH}Kzl_)`qy9fm@$t@|g zLsRVoOLfUWTAYcYNWdN^yI-487-#AHS=CFrGKQ*$VxvMkIQkLC`vxqcJ~9qpJ^4@Qld^~V+i zMkFGH7(&U_%fYk2bAT5ln}9HcT!0#=ho=q{-2yr+QFVlCTubV5la&I|W4FWA%ROFR zUgG_yZvi5>e146y%_&~Ke1)%l?OlBK>BqRexx(4`DZCFRTl@Wp?RFnBU1oG$Z-#Rw zJ$o2SMm8R5-Mx0~SN3Y)%9OmmA!=w;qPm&l5N@+Hhqnrv+3$g>MQDR}{yOPw4E#LU zX@xJsl*`MJ?g-&xs$#1%EfGX3!(!`PMoZU64T}2}8fFnafYvi+Ius{S$ijxG?}Z^) zZT5_%!&e*a<-_qjvOV|-qKZ{h=_#e6tftnD!Ucm8DoO&;G!n+gDZi;JDY#ptpszDK z8ZvFTg}TXq&c-ZM$TPLFJ&D1ZDj()no=A2*r|H@x*;}^4)s26&>U{kZr;gI%;ukRN zdz2B@kf(xTY{f_iR3uc{sNVamD@#;e4E)w)ibxj{jMBZDxgSL)Xsg+@@#Tlzg#CWR z*T4Q4>u!bJ-H4z4>=XRK?|%nh2Luh4ZJ*6TI8u7gN%ysPAl zFrE|kS?J-ss+Godc3MRCU&vb8+Vq4BV@LOJ`7?(lqN>!eMjSL_qqLe;Ml_cK*iqs* z5bP?)W}0hu62`{yq1UBK{m?Pf^(tBbl$QD+TL~22d^q6Ip!?7u9;YmG^bx3nZ6-PE z%|r$g0yS9=YTpJmL6|^?1O|)OR2n2w*HnRygo?c)p}|jL28%Rz%LJ=rw3g~L*IJ3Ad~Um*>^Lc+dgMLT-JRT4O0CssZVT3?(PBv+7rQu9^3Ls$ z)B_ZiVA=B-OAROGP)b!wk^4PJZ@QDiJ00 zs}2_z8|-c;eD8bT!|#3PpW>sR{1{!wIKOxsryGZ^Q@nWj93Or3G0x7;(Dyx@b8s%m z$l5k^wHr`%rW3VV-b3n|j?7I7fHj#(v}H0XWmfa&PuHxWcHM4ERfkHgw`_4uUDRfh z4aPQDTk3crQYGJ58)$RjRTKkj@-uB|+jl>U_w;5`nxEr_KByT(&B!L_T%KE2^_1H= zdeoSk(^7R|JL703HzUvkx|EW4FIUqgU=8e(cSUqgN!e}OrO`1d*}8`;m`UOk4hCy5 z$WEi85cz@RrI7kfDMJxap^yz%GzNCcLk>e0-P(W_xFDH0acogeYcTU5ZQFTe=s`<* zt(wGKxOb_8Dq-{Y?L#3s*j}BUfhDog48A2gtZJx}C|g1?FNXclZzTsE9(?- zTQd`N zn_1gbF%C6M)7^+>dP1V(b60sOC^dwG8Zm=vEygavx6$b3&q9@<2OmJVTHW7Q5r`|_ z+k5YSD2ZGoxt!xD$qTG?l8G_FjAEh~Ko-J5<*m!v>CFPd57GOwDd}NawKdM?OTvGF zGdR1E&De~W9DLk{s%a=>%#`CvD$3c!hLS3W>gjgrpj9g|gk&vPB6u_z_D9^2W8hA@ zbjPk>>6M4c+^Zp5L|Tkfb=ERVCZlJg9Y*fD(yHbE*xKPXs|6Ovtg8_j6Xrqp0q1M2 zw>5-EhHj{_4prlhtz`sO8Xih*rJ3Vbm^DWX?6(6x{p1%b@ zV;dWWdS2Zy2Sb{CK3Ef}1wyv^n$hY~nqVB0W)ZE*T-%VMrlfz!+NtDTOO;vG62AmN z&;hQ6j#f8?G&9(5Rl+yjUoiK<=%9hvpkwsMAWAkbaE@_uvcWWrI6Yh8{DSe;+mG?q z+Nstv$YGBC%;ft^?d)dCFiO9_DWAy%Cbnia znRL>ow0K~kXaXj+rv@#d0%`#E_TSCni?-}P=fJ;Mry@7NN zIUEMSf8OA$jen)FzNB)$WJZLPE+>GY68uZcVaC*Xe><+ z!(G%6cx`_XH2{S+v()B$mrT-?y6jlX7Eb?gweIo$2k+wc`VMDjYphm)ipOqyi>sF} z@ap9y9zQw5e!s=d-4$+bu5)k_r{5(b*%Rel%Q7PCk$)^87u6ZKUK@#1<#Eax<;{QWxIHjMu5426LD<+GUHqS0Rxe z1~kkwTg*DV)CQ`wMydWcV)%pnZH5^uMwxo>BDi>TitF2JICp{5(+ws+;d_7iU3}w% z_n;!!ZnwC*yTNvMm$lF*CnxCp9ux;(dhgM7-Mtg6lL|!f5U4?INtbk;3FFn`PM_9< zsiUon5fKhby((b+nW@v(?(wT7A{mcRb@6+nX>$cj!M`xFFG;pr6!Hj!?-g6)hL^p zf5Cw@LG}o2WQH0MSBecDHgHLv8YqWlC$sQSkkyRcQF4|}lW$WtsX0MN+@HnZi7?ZD z&kmIe=Uuw}_S(6Y`?XQ68iQi?lbO>-Mr1t~1Ziarpp7w2oy8ts&(?&1%;==rb*{~l zF^6(=t`JI{fG{#Y?ts1{ynOKrn{|iXc8mAkdy3!s&3_v|`SCvoRPoVAKLxR3oJNQU z&d<;B`t@tUYr^PECXO zB=qpNaDGqazU)-i~4 zF&Hlgx4Bot{O74M?>)@y*@{{%RKuYQsEbDF0naMTb84oTby(&0P{k}Z+Y&2}>{z-y zT2yAFj=?k$x2G`0bP@v#a#@#EIcKI_E7ARk5p*g}ihraL8_kGTMyRJjmh1qM(}yZ8@jM$g5-{T0TzILZccxL(5<(30 z>_B~wX%g&q1DNCJaw=GMj8_5Ll=iSgL%0;bQW(k7LFp30*z)w6K90vG23D&cof4b} zc4Hy`gbgkMzj;c-uv%hzuV((dy7B$lRw5E{{DB+ zbqvuFPoKVv+wENrs>3kg8=A(hnj|7#UI4}ULK%dA;GR<55aTf+*|1ZEhg{ktU~k4^h+XQ;K% z4N*&?&PP(U8C$7}XkOjWe3Q4t=nOYCuSeDFw0N+yR_Yw0WSXrN4p)sLw{B!=`4Xw0 zJ6qCI7rMvdd-Kv7qvrSeYgrCPxM#i6q6%YCfl}Rv`fIfkVp$=v6ai-Y)y{HLo8*^C zDykm4{SGglU83(CK6w9Yc<1fMxO)8xKmO4V@Ya*Zc>VenhTSfDScCv;eJ_%#;gGTU zq1g8j!BUr`W84~nS7?h?_K1tT7BF*=w~Xw)1Q!l%?0Gpp|NIMJKUG}9Je#!@^O4hg ziMvXIy<|kLW+Df*7B~ys#sgdx4T@>OKAAJTvmi)sfGJyKv^bjC0G%1z>_&GCFfVLW z)uGgg@RzW_q*GNixM&_n9t=y=tWyAsQ%o#bcGPY682@DDfO)!EZE=)|NY#bCquDJk z_3&qnbT*BuNg{0q#aDP|g=~`<9o6nRS~wVwJ$E{|7nd5~=3|H+u8p)vpjK;l-n+Wg znA+mL1=ZDJL6Ds80Cb%LJI2lRHDuc3)yqpffA$P_cefbFJwzvnFL&JrUBtgHWx1uR zu8uo)q?a!In?}_@Rbxb+IYw4*s|Hpm`rTr=Nk=#3Lj>K_GV;aLaXEXP{hQkJflxyZ zE&NqYji@l-xx12a$28fy_1&SyYc~;hrUWz_{ee?Z7P4H-L^f2h3@s|5^~qDZL8_lm zMm21LE>kr}AqE$kN3MnI0?iKvYkRo-`E?HHnX1b{g2uvFkXk!ZHsTaAW7De)42Q0( zk^e1(uxwALTDACEhh!@?EVKJ4R%SYHoG_BiB{MOy{pHlo$fJY7QfJS4L7HhbwAAb+ zEgAGur)Zn~>YIqtZU1v+ltZ)NY#{}UyAzD!!Q3OIXw?|wm~#%Qf}ei;Q(V2e#9#j9 z_i=Ug3U9sj7+-wx8T!s)FB80<0x4@UU7PJ5%XI7DYp?wtBXrJ^D23x_wUMm-%p5E> zLD!D$$(7Qg)CY!+OEg=Gpg%+JK=AF~((Yz%~O|321AQ-gsO*FdeHrQ`+^TYDX;w8`%swl);~qpYYEFW zS;rAMS%ezu6S@qzq$rQ6qj?@!85wOQBSfcWy!Qh#Ud0>|xc{e{EZ7=kU_L1sI)@qT zxD~~`b8Ds`K&>fM)E#YVOV6xZ)WrdQ%TNg|O0GZ$KEIYW?~>mgxNCI0;>=RA7-`$d zy}6`QHRUJO@B$jvf5F${U_*(K0kyDHnjn(KGUbdnHc@mWaEX&>8$6=HJDaM7O*Wo0 z(n<|chYuw*Du+@^N<6R#WTq>}2_RHAC4q|9L9K3xazA4hV&{le(r6f+tu_foyl~Zp zal`kPRcd@xsxr#R&1&n;#zFOAl)m-d%`L+72?N@AS}E#|KIqa~De^c`#p%f!-}>fz z_y>Rge?#XOFQ0#o%gbl*e#F()Ydn5@fv)Q??0xPCyf5&!T3oBls-P!4sBG=c{SXr{28_kxGB!)hx#NTgRipc_js{9T^uh- z7F;UTP&UVBjT022PZ$-_FElHt!Pt?>KBl51$Rl^mgkWCiaBR6mX>v!c4sSD++pI%w zgFMxS;Jl#hDDPAPNHV_BTy~K{z_tFI6 zL&mLofX-dSt4%1G{Djw+&+zd_KgHW`J;C$m&#}F`gUE;%FK+Sl=~KLZeFf1nHnTM= zw}E$g;xU!!7{D8Lt})M;P-jYbj_L)fSl2px(*xNX+1YKTqsC&SYK)FS4+rV3Y^*W{ zvASexaMgt#`S}gArr?I!Scq^5?$Bie&c(4gb4Rh|V`ARCKnp)J-!Mm6*L#A#bG#s7 zvt?rfR<$8UWOl^a&p00)bpO#~gmt+a49UXNJWD1DP=mpFHQpB{ogK(*PJkup-%RZw z@o1rsatjVfSw7QW_Y}!?;Sq<^mF{rfA4?6&GijPJ#KGrKuqXe2l0EHtk(Eq zcLxyyb6ZMRtLgj+PF-kx97;u}g=Co9bIuwo9@b?^_b=9T?~mzt^#Q)UN{d0#j`_(Y z7HjQJg%*D|i}0XU-Nh?BAv$5b zS>ffY%Z$fs9Cam90xL6DCg=}RHB=I+b}iLk?`ru=bAl>CMKZb2Qqo!-f3*armZH#% zF@hz{}LhPEG?sCIL^szPSRyg#eo?2#$_&+z^uxmb)BMk zH2~4$6!WRWfG^S`r3^7J>NaHSylO_<6rvhG?nXDq6VTIwTFxZe9( z+QbEQD{fi^9$cZn5?ZUksc*D3Q&B3ix{ORL$e|8`cp)GtC0_}x{WtxT=b9xVRYU)C zG-wd0xbXg31L$)mf2rsw6A?hgHD99JS;$X)X!TXi%_tOoe9PRhh4EEX9KtH1(=5Jh zBV@+aH-JZxSdsCQhV^5xN3zV0>1rx)j;?X$ot7Qn#h}hyIWOd_y48@%`K*YL-G@`r#-@RMNGuOXhW+umXl#j0nhaDb3v zRa+p3WCZ_kvOl=T30yYP7l=kE&Uno-fR4x;9WNOrL=2!Em66hBQmDoS$QtB6Ve~O& zy)WgF(FB&P_b3x^RZ9DjVa;VSQZJ%PF%TAsfW#GPjuE0~19viGX_~mLQI_Q5H<()4 zj9FBfuo1vps;vwnOt6~(@CtYjumk!&?ET#?WRh+b{yq-C%0&qjH+o(1fJ}f0rfCer z^g4#?R&f0aKKN5%QecXKW#t?k97F}fum`cjs$WHSE`^KtK~z#)m`y_t)0QXf?zXr% zJBM==GT-R`-SwQe>@cO)?&u=s34Rl=*w0jsVX zL3@VdR<3^-^Gxm0E@s=_C-@@9d;sbI;yz5fhD5j{PGDBWI1EskaCUNvRlkY@G6`NL zbkv0@xp8c8QWT|V$Bsc9U_e#Hu-`>Ei?aMuw5T7H2+9oVdH{@JjAq{b3XT|)Oqg_n zI;`D-eQCyyTE@BHom5P$1${0;nf|LuQ`Pe1((jtfD%IXT68 zwZYwXfEQnJJZxIy3pVQw^r182jKCQ7I}kJ0>kXXiAf7Ny0`G%LV)7H93g@~sfkKo)2qnXp-a@;9e*PrAnp$@$ zYH`>305+nzaKFxmB!7-Pd7-hab1nuoF2QNl*9jVP*vLeU`IZXcN2s5m5~iC{A0l+X zp9Dg|e^e+~-l+(j0~`g1EOKVHSX>w$3MS6uu$KxTiX>IXTq#A;^Y#&bNE;xHOG^4* zW>;_8JUdI{K?10k2pJgf52iZHv1nEba101BT;Bo11a=)eX@NXzaVR?t#;PCM zww*fsMW<+0>~|iYeDWzi`|NYvT;JmKbOk1laU8?CRy_j0EvpjJ+_?EK!8#eKt3ak9 zv>{IurfGzqJiK@?G1xhz$6YH0XpY;>6^?UkTWLOhD?L(fdfACM;C40$u^~JvugN9Y zK@GK2N~HQhXjSG=v$E$6cTAoYDzDo z*@r6N`W_skwra>oJ!^Oqn-gkmY#^ZTT+G*fgurd@yrCc-o+VY0+lIbeH=?|On?%mX#|MSuh${Skk0k?t=y9ebkH${fZF%y zJ4VMqzarq`1g~FS#Q-0MdG_qkbq>TGlHrVaA7dTgUou85Xd1#eMfNM0u~0D@(s&ZZ z3^#!>l%Y38=YY=jU{Xxe051Y&2Xf`w@@zI_j0aE+fkA`OC7956ePuph0x$B!ZuN@E zhgGnm4#E^o&jD6OhYs`3PCJt#jZmjj*Aam`Mu$+IlX{5v0e)=!bmxSdE+}#jKLI+X zL%&y6R(zfP=<(UJ=lI9}_@ChNyeOQfnrjG z(vAsT+z6_SH38yBFf%&l04exTI`uJArfAX~uu3Y6uUTka9|l2U8snHT$_`Q@3hyU4 zUdPg|V9a@vM7;MQjf*D;E0h%y*NAEt-O>ay3B1;p;-RA~l&VU=1c6r%h=RpqMGE%e zE!Y7L9=qEs{PJJ@WjOA!+f5k93F9;bNU4j^hf{P;qsclN%yZs_$1ap6s=(wuCNJ=l zKs>>V03Bo1b6LMC=#2a=>xCU*z3KwqH~CO@vSQVB5cm+Dl`hRK z*;_EPzKBYLWOSP>t(VP%nZqfqjN49GV6?_N%dH?%;l0y1!FwOd3h&Xo4y!Ir@DPwP zl%tJd7HmgChB!b4>;Te$r9$CiA8g5i(DXoB^qTHT*fW z4=el>PK&o6dGA7BMP1VU3nr8Nq`>+|vyje;a!7o_p`sQ-V#9RiGY zpAt?j44y`ktXW;_miU$aIyl-|xc#ZeTdX3Ph8wLF=S= zKuV^n=(-LfX|QVez8xR5*=$S$1=zUavmux)X-|fMq*|h-X?UPEYDu%9lq$BBC}y0- zR#6Fy4FW{g+Pc6S)C!ie;cHQdT4NDw;!UKK;iAT?b zz9%>rf*{5T@Cubk0>qKwQe0``VH93%qJT;E95jE98C}HGNd?TBF;wQMp41bzNxNeg(ghMSQjs!#=4levokqD8n-kb>5PC?#>+ZfqdM-F`=t0)Cq z2D6V7Ihvqr0>F0MMj|F|KAE7(aNRn54h0-5`mEumrsK{0UBfd{KY}#E4iW$M(}>Om zeXmCvW~pEV7>-;{rXi4w*&hAnBm5BoR~Epj#LSd}nQ?|lWC1A+IW9=x;Gq=Su^~e^ zt$gO>?IT>Hd~uJ17n11>Kw z@h^Vxg8(f#7odjHen?q>USWa;3@xS@b?F@zGsTRz!GPn9^IA(yBn@IAH5yFL#yqVp zol>FJ#A5NPAdaV&mZh&`wTNoEW@$Dkv(^0Cme+J>2x-+pL&@wr+R^n6U=HL)*E`UP z0EuIv{Qwy!C>Y(zNetp0Jh^;M*)ZTEgC$iN?%{_mSUji;hotWJ&}j(Df#8J~p2)a| zAGdJp4zeHNTnAtkFvD?(EFU3LxYHC=6`M`0*anCfh-WxBFcCI=VB~PbsZdc(V&RtP_zb~ zCQq1dg!DD;ta&Ak(}eAA2WH0k`8h879#>aacz$__Km4OV3h&!>G4P`3Rc*|nx?8Yv zf3I~voS}x6>K86@*+l3n0H>irKvY4J9HZKE)3isTXd{d4Awmw0qw7CaxFsDMHEw5; zHT{oO36@j@C=N|U{}|1JkU+;!&P=--_&u=EQ(&4f4SR?W@PoPzr<)E$9l!)fVZ`_p zatU}3OdjYvpmRn4OX9J;y~6(P3M>;gvE<%ux9D9UlbnlLtW1!*8(iPq;`HnUDhgh& z0T=LJzuSS?ft>9A)N&@^Hg_So(AP)}fv_fH8TinCRR zSI<7fQJAVSdF=NS_QQyaw>N-EH&0%gWH*1Sf>eY8^O?t^-a^0V4R@8w|HM01-APtGRE6 z3C7_d@Ud}4Fm7+Lat^pS4GUBiygtLmt>z6=Rl;VclGG}Iq@PH1p+?wK4eTqGgsW+1 ztDuHBJ5bYW3p&Sm@BOD(t@|u7R47)f6;`VaPEI{``vG2RO?PUbVCI8Fn{5qFYK?Im zF^*#-+QTRz=N!Zf?&742ux=P#>us8C@yyN4hJ=-)mw{%q0O(|(R2!f@3KUEnw2OJl z1s8>ZOPOnHd`_($dti1QnILQ2j#3Ac=84Eub;oKYS+VjrGjf`&gdJI6qgBw2*Pe|nz@h;+4Ol_28}~sJO%AuW zTio7k@%Ygb{Nx8e0Gz|4i*u~kYphOJ(8+^3!ny-iPO)M|PYO+NMG7=zB#b0@{p@p` zUOd9d={fu`Vz{}+w4Jb8uhDlaFa%yls83y;l9d3(mp81Pad!*q*HEu`{qhonS6p0N zKvdCp9aLiJP6~{-7`9g!hcV2X>pCbjZ|G^4?vN~Yoj4`Xs91B4$*-{8Zo!Um`n9it zJBRV^5_hj(!8wO%%kylPYGKxXKST+X!tZyuI6FZ^ys{KL)u8Teym2tLKFhiTFMtPii?Dl)y-d*A4%NKa@;yJFa!o6jO zZ1b3>cUaX#)7+yCtO>0ZRAl0V>pHAr&>p4{It?%NpMOg9nDn}tkGJmC1@j#*XEfCGgV${YM~RWOSE>2WZFIF zuISB7fObMcEXyL}3qRrd<(GK=#V0sFJ;6z@xVyfBs$j+EVO;d~4%2vtZgYyw`6F!3 z9|tWgt@fatMAN}YDc=qf|ynK0y?e;e4;Z-mUL%?{=AcGb-&ZIik zpGh0doSF==>pKt=y!Y4-L#}iw+SR2_#*PgkW#vKkmqU{nXw6^>Np=`G)UYa=rVoVE z5iXPltPwZPS!*+o3$?XgnOjeFBZN}beKvQ+G0Fx5_*YK+519R=*4rX583F%dVE5un zy!hlpyngWvk59gVM`s(bAE183NlzGt0sHHh7+y^{IeP^1BUX;#x*pUKdbrT>;v8OH zzJ|vNa6N{bSGfHAV{Bi1iO23KR*%p@LQdLX%D}@!?54MA(V`_S6AU0-gz72?iS8<=z9iq#P04IuP$GqXU4nV_yDXE zAYEj9Cg`}sxV^!+-(kfb>Q6w9!7>7V#B_Iy+sjLw_bWgqOn28M(Cv1yMTigFdja~W zyqNZ&lT)mi&=W8Yd%XDkGyLHD-v#*zcQ>!F`u{0=vo5=`>^kq;&1r8R4FZ8C0c2)X zRu+pCRV=AQHzNI@7t{U){&CiW-u&cdNW&g(WIbq5ELD*dD=S;{2q5~~o_;re*yr8| zAd^KI7?~q85D~Z$an3qxuQlg4wZOI|rYY&@!tq>qBpEW(&^cUH@7##~dyI~-#V+U9 zWCA*!V6Dd%n=pQfBUBWJd0AUy+Oj96-K0gl&!rF{={QLM!Dcn*?Clw=A z4BJ#VThOdS;Wfq};sh_Upy&2M+@x#)s$zb9!KNrUeE68*WFJHnMlM2q zAK@r&jRbz*Ece!F)cFr{R=#fx=6fszcdNL&e)N`da&kgdl{jyRB1Nn-j0y5fq{MaI zEiTFTC1kf{wtwH4;XN&LFaHZtH9?xDXst2EP*oLe*M{`s?J-~6Vw`S^uyaAb3BR8$ zCU2z;d>C+WBlYh)#_c!PZ98GRqp~>R(byi?5~M&%_PdB%yCBoMX8LFKEuMbA$?uD- zw>P?6xs%HEy{o^;z>@yf5pk!w2s?!B>$lEgogq~kB?Q6;hnd(K0qPBxC$A`0bENNB zT%Dn88z3CE{n>AUUQg2qw7b{HLaB+FfXfnYI#eBIWACCC=(E~0nuW1+8B%@K#N^WYrZHZLa zns3StrYX31_Xg=b)4>q;<_+&o-g12RE@rc&uq}f$;qvsHuTI}G%!XuH3SQ847UwKY z(;%fpX}w!p7~4^-7Ho=|y}bjR^W^!E$sj{GLsPEEk{IDFU;Xa4{N~sHfh0}H2N`ja zFdXJ2am09#F&X9vV6|S5XF1jxloAXE1L8Phy4A-eM9PUjhS4+l&A;Mdfmbgug zuU6=;V|{+cU;pMe{P?pUGaird-V?_WLP$E(?&N;{gCn-@Niw5+K%_LLGdw&#WU*S2 zNXMJ!-|+R<-{2km?2rDC(nHnO%*In3o=vgA8;4FJ_9j#6x@9q6Q&&w`vYM8|!vpH7 z;-lj`yt|n5&2N9p&+k78r&MRLNKpC*_CP`3s=VyYDcor1b{wF7h~gaXR{DhZuGctk z9b=BFYKS6@jwE&662~z~5_5Kb#@Xo!7iaHi+M3yH%F}1xg;2|;K?qNzLUXg_HQzX0 ze?Pawx$hGIZ}WR^_C5iczWtc(m}py!l~N>0g7&uKHc7lkaon(Z1^*!0%ipp@dAEyy z+{wt^dlHoOKek6tUOto(X|bi=jXgRc}?3? z#B|i_A%n>t^?HL&Qqu7VWP~kCd{v>HL$w}TwKVH%l&MIi#nmN6)gkg6osMbCmZvXH zI6uGO&i)<;vspNy7(-WAoWFj}Xfz~>f{f|v`jTf)zu}W79}y=pd7_axx~61xeaU9A zB#k19s^;aZSBz&fW|Ij`v1W65j=&KQhTuAUKPw((32$G{0Z+ME69M_*5#?sh*{hd4 zI6S~q2H_0DB*xVh^S5tl@&S34qm;&bfiZ@%DzVm*CduvsHn!zze#K(G!gU?iI1Ubv z&{7dAfwLWX647-n7w4y(U!D`k5!2a(!C*i=8za1DlO)*v8F8d2iw!glRaGLS$4w?= zc}}rh^7zRoEar2JD{u}j-n`-Y*I#pQ|B%h5#0$@GIzmK}^UE`e^@{OmOp-(>6}Kl4UcBby=?nG;L-gIFFpG>L zbfl@vvcJjubcDY1b>8h9e!gsWSi?KB8C6m7=H*MCJ%7%N=Pwx!M--19A)IGZl_(qT zgUx1x?F>RIXe>?BvRtmgfmV`Yvm%jTt>NhSJ{Q*uuFlUeS6AqR6pzLU%?*s@{o&Ep zvh2OTQ78HLv30&*miqqwcU$YW^Sk%mLV5y8&tr^5DZ>}ve9g1xPnlm|P?c+}wY)ox zIX^$8t^?yjNg0wPqzLzOZxFh@O!v2zYy3UM_`?qOra1fWftQTwwf()BLTeo~zpkxr zj1up`nMH5U)c+va)Aycp=PedTP}l@#%lo|3AEX4_ASHbdXXzJL&V>SQ`wz3*VY}-c zBDbTBM>7ISP< zp>@VE%NdO_A}Lw7E{M^)j(W4=inEI%`lzCwFOn|fjES`-8xBavclfJc|0jyoir@a--!U2txPR{$DI~)z!wbQ9I3P|F z%Cev?ORVYm_Uo_s@lSq4*CwQK#KHa)DKz`jF?*8{N(yXS^WB$U($x(gJ$lS~evLF8 z;^6}#rEsRDZEA*TLbYC@wPKhi=$@2kO zKEO$h@(G*unpg^AtfJV0dyB5?Now8)*o+W}mSjoH{^4PWM%R*cYgjFov`x*^ z@4n-cPd=tDE2Q^~(u~cfB#VRFE{PNop7r92`Q?y*@{6D2g+NI`aq@;_HYFMks4vec zmX_%tM{7x*rC}W79nv|vvZ7opk)t7rQgph)cOAndM&(1+>owZLAdZ9Hc06X2Wn^g< zj-|q5ykk5Z62~cJ-5`V_j$>BKHFaHad3niXJOLcz(Fh&K7}L?&04m7`Iav}DS;I(c z@;G6(H^VtYq(X-i$MJ3;hBcI{HN!hOkyI3`HKuM+LNJ@{F&YhNvA9UEKbw(7nmo@* zlLXttQIwSAX+jjoq*+eYwn2j}B1Tz?5FT@V&h@)@klGA8*1Z(`oQzT)0Le#|tD zv7MzeW+xiROh;3-VaF}Hps>I(84VfaDeLuyG)egUCm-?E^ArBxfA?>h-G9t}K1RiY zrZpG~v5bSn%CvYTdlp4+x$!}t9O{+4Rg`b2U|Z+8_n{!)4j=XR)0qEt{FT8s1!)mu@!^^&XeGd9aPi4qLbge-|jwMKf6?=_EEnsTsz z0M;-WjZi);F{Z;I<2++^e$I099OGe}$3#g2-Vh7RAlBF{1=}LAXemjPjM{kKygtEM zN85A=*>QPs$!IVj&C;ON1#Ev2ltn>V6nN`c6)Thw)OCaKJz2>aBB|-B5=_T1OPLOb z46~HI@tCTqiIn8@-3bHRap&GKby=`lE*Rw*NvuiY2<1I(S>c_f+^p!@8rvl}(_y-X zx+)nA2PAPsQ>*^iXlZLh(>649gK67<(UYNDtgD*Mx@1$7SPy%92Pmb8lawS$SZ~%K zpsOv$hv|RVVjK1j4!CnLLksBImevbwXRzK-6lHHYcQj2M5R_%fa=BnKnqr-!Doa+& z73HR2kPVPRVY`;5m)6xy8{}StymzWuoaxY7G00PdcND7?RZ$YBIa#E!bxGH>U^ZvslNYkG;cxREsOEE!KGcn6!Jq-k0rt%>58I2zJ*HJzCVPeSUj#!m2U|DL6RT zXT4srFSZh`U@iAvV1>sTgOa+}_}@T}wkjt)eW&YtPL$tCjkfRS`;+i?Dp^$xO2TNA zV@$`hXU|YdqNA9)+_2fK*%T|HSkQJ2N`<+rlCp>Uu+yPSDR-s|dJ12#-{07V`9Nak zZ;csl+lq~`?}cTCd3C56x7~8a81x`hI|1Ro8wEy#2jGs_*-tLMk`;`AUSS3TH9OSLPS@9{Qn>3+8y&)ZpS;Tw57 zJ@w`ZhTwgeq`S?65X34t!kn|cVL{@%ip}{cmuF{q+o7WbO(>|&7_9S{u0u=3-gL%f zJPD>BZ^_~u>pY{unDJo5#nqfw&tEV-JfPW(pi96zd|ML^ zMY&-x%xSx-2iXXkw&Ln?&dJFeAbh>s)0B=h%k_rSvkRQ{G@aqoAAc6+ygDM!b52f9 z$Oi-7zI(^Jvs1E_=P8c>03ZNKL_t(MqiJiTf^0ZI3ddfSg{vupqAW4C76c}uZgF&gG%X&O!oeRowB z13X}{Cj&N@T$(_ZqTCb5(a(HkTty7#WsH+aGgG%AsZ=W$9O^Bk1#d5`JwI)dt zX0sWOAAL+!wpiaW9OQuD^74wy%PW*ptTrWiWytrAxO?|FmZT&i5_CKX4^jzQ z>zy&eS{u60t)M_|St@=P=ftg*rN0f|zqL%;o;bF^DGxzKW8Lm!!hG7jSD>8>O^{9_ zbqm*c!*Ufu5UCiK=-<0pbHdZw4&#EM#hPFM2vRYNw=I@<2Q|5g22!`xwmXg`Tb)9$ z<8`~AhTnnMt(TZy92|@WH#Y0r_CD7u7sLm0AHU-a@Sfk=i<|e~g;;vOd)?dg36&&B zWocGdoV|O?YB6V&rATL~s{&y=Y!h^XRoh~$BaRc2BqNOyyfHkxe#-g9HG|@`88!-VNA!-(H$I~&KT;ZCRU0;l9EO-)uy29I`SkXyE`DsGv2;_g_nYF zzWtU*j~}C~=hb&l84YvtBg z4YPxs)AI{{{p;UwcogQm!|9Ot#dAiZA%lDO$l{n}IKcG}ov)ug4eF6NF3?# z@G*ug%NPs>{PLguDaS{L{Q9r|1|4f$vEkk8*L?Y(z9bPDfBc94h$xD1IJDA~Rl%#* zulVZAFLA<=Mlnc;Dsbf z5kgQ^;ca=IqqPWH-EzfrGGZ_|;O)CNK~^Rt)^-@vVLG$JLT*D5wiVrrtu@)-ph5js zJ$3WjdUw;&_FQb=+l9A_xet?ycLlu%f@$GysT#PwU<+Mu_^NxZj`oSWsIxa9y52)r|aGA1OnhH}2(`tl0X)C^|_bajC<2B$362YjHn zewXAB2x=OkBi_8d=mkk_wXvtBHj&SpfBrfVHiXreen$C}}I zgvYa7Zn#)%DC&kdw!~4wARjOqjd9L%es<2i`^ThdMp-(Rixu+3n`Am__3zM!pYo;-O%n#2s!l(S8NYddV$(s@VQ zb#&HH)-{dkh|(CHM0gqEdpc|BtR)-d42L7KJZH7paDH{c)nd-jw5&F3HdRTM4?qa2 zy5-{Hk|fDktO}N^4RsS9YFR#@ZccDs(6k*_^9C!<={m!)zl*V!pZ?@?;xwhTmezaf zvY_i48fWRe$0>=3B8(7RuNLSu4L7@1%nlFnT2Xc_I?IqrjEo|z58Zcb9mYCZ9Gx+= zCLAY=&6??CjJJlzA3b7_WvrJA{^0Y^IeqgAoac+*{w>eGd(I#H=x5}^EX?N9jIL`) z@)(^cT3eH*DVr)J-Dbj$YsoAGT`7~2EsBNWu$3D*EO_VP21KS z92{~zzoxn_Fvfy#7~8Sgtgx`g~ZCKDb!e8_A%B~D_#d-jYD&7c3- zKW8u)+$_C&uN;Px+#JDe z+ve^=soAaYODQGV+2%$N{2r6n_cSN@`?T=2DyrAje^z1Tp zP*Kd`!2wz+vLq!-Q?yn{p%BV~>CkCHI-F9sEm!LcE*BfpY)DnNAOiS%IGP{@lvRPX zL2lD_hUIF_acIHjIxZgt1Hqp3mSH<$;M+k z@3~qo8O`>CbvRAXQA{=%^7zTe+&wyCn8r-T1F|f|Sxd2;bGW~UiX!gbIYM|(Th|=l zJ!V}LoSmIwlfp;3`SN{y1+8LGs0?gk9KL&Avrb8k}@Z6Io({~ zL1-y%G{v_(*YDXFZ#@L$d!BXiJ^Y+-;gvPTip$e?TwI(Xyd%#tyz7F#Q0wpm?jt@F zl1NFEjEUo%)u!Q_?_T0W#BA?~uB#}@f)_7OI66A+=W+)a7rH2=qyDI5G1k*~$)@w1 zUah!ZZkSFFcz5!SBuOw%kY)oWlQFCHg4SBD7fb4;lVy633jpI-~8);&Ft_F&O+OEc%`VimUovIeDvf~ywZ53iPMa| zNOR}#fQR?)akxJvNpvvcdq=xmfV0HYDbK$6g7tF6Z2y4eV$RXsWB$Xx|Mx^%F`5o3 z+7;KEGpw{&mC=ccELJ@D_?U;E-s7W>AF;T++Ktp?AMGPmxYh#9CS>ewR!hz=&M>}0 z#wnBijKTP0Mx!xYF%w{w2p3SBtP0|oS zWgSIPvNt>6(WjrnXv822WG#0q9?bR;R^S30rib8jJ4?;obif{QW0XMlW4?ae=(v%7 zdXMp;dC0PiB#AI~#GN~b%ompdrK%@*3|-fuwA`_yb)?Z!qk4l$)0r@b{a^;`dL_aS zb-mlSeW=e3fdjIq!hK%@{C-XKXtnc0-&o>iv*)QrLAisDUmY5nn3+GwxzQU z(}(>bHY`>J>taosr1@jJy?g9U#vmiIEaLL&8iyyz60$*#N;GtWwzC)~c3_>d zZYkRur6um}(L}^NA zEmCVbYj<+Kwlic|j#QdqItb$e7mn=9^_tn<0dyU%3Rp^=4lxG4`|a;Yvkd$6C6P{8 zuL_FR@ykE^Z}>0&#lPTx`d9yo-+lL-ldEfHUw?y?kft#||M?%WoL_VA@Bra0byH$H zfmWLN(lQv1Fq?wX7~&-5#q;Nk_6~XQlb^9!uDCiqMMMj9meE>^PNV)owq&u;IMZ=_ z_YULnh-5f`w!&5|N`;Wh+89p1{T6F2_Z~fB@1w_bI%4_kIY~ZbFc`92t~k9s<>c&y zk3M?DrrEICEI7M3WilS|>uQdSL0NoKPtfAJT8LEF{5c=jzSju{SzoSweh&3L6y$Vd~%30ft(Ckre+YWDo3svpE7$ARc){NU z@VFhBsppG&8#-Sl5vfKig-hY;dP7xLL~)7^v8}s#%66WN2$GELKwkC_0l$0l1t|6Q zfv}aE?1=pRYZKe!iM(;(NqO^kh&~Dp_xE>Brp zykWCEBOWFwG*SzsSHw}qVzJ?yZ@!^5jt-9%jtK{voUR ziWjfmayj2H84tLgpHWt8?mxWCqmMsA#)?h3L`MU*pAkRtDl;h(g?j9YXl;G;!3G2n2D2-W`6=|BHw8A^6nvQp;XG~{%)NObGfuyP$ zobzEO+LUM=V@Agq%(SP;lOrAeONf_h_O}XLx?Q2e6y@9sHR0ZX75%>yP5f6s6O~YtBW4_$rRt2Aa z_BrFDha5c0nLc>J)$$9f&J(3WR1{Mb8!oRdh?Jr(N@A@T4|2-If^UEK1(WG8*vNr6 z(ll+&cs$|DFTdf@lgAu9dV<(HKvXT4%MEw#eZ&`EKV#Dv;=zcM(@Pes0<9JE%PY#F zK;n7x;uXLAkXZ?q~kqazdPsCf10E3rs%c{OQ6n> z#tEtQlx5AMPd=sT9P{;t@kryPr)@pUWl6CrQNwVTH$vi-=H2N9ckbS2QC58W?Nk2v z-V@Lkyy$2A2B9>O3JcGwcEoXn6Dkl2<&7@hZE=v!-4r^1ljnY86MjD*&I55A_xWZW zb>+B!|ByR}cQ`qDg>!=8Xu_~4!!peFHe}~$Thq^wx68i1A#`Et#$iN0@E!pYJ2W-`mtlL7GJYj3OMq zk5~~xqlHGrq2Lv+cISR@@T#K-p0>=M-{A9T)z&Xw)T@fHKEx9)~iTd|XX?Gy;N zIYWJ*!p{1PM5~*WQ!jST#(wi}dqkz&#qwAeoIy&22pozv%d=B1PhPN|zr%GaoXPMu zC(DL(wM2@9{LR-GCvXv197Vg~(UXV#`12p}(eYj8=X3IGj8-{+dGZ_n_V2#w zpWb8Yc16=J(YfI0;Q_)6jHyVHoVF@?@!eC-PTrAdiAcf`ElwrYx3s1SSje_x|L~CO z<&v*ozGk(l(UHbV&EC;nPA{%0>INN0L~V<4^zePy35G#OKs?hjW%VPAJwT z)9H+&DNsW3=;33Ye)9||C4<3$Vp9;uYo^mM^Bqq2x%=5qv0fl_iX2Wc&hq;837`D& zFL?Y1KSNlKW+XP=F^T&#GK z=7{M&Sb;4XDgy`i9>b>cu(7QSlbdsF;d9g(#|?hXDm(I(bUaOjbg3a@gs~ew_?xy z4qP5o9I8J-n;xG2LorA1|I*9FA}pxHR>pM$%Z!uYyzzaIp2hBt=k!k}Az?5W_p?`v zu?-dz5?+Nuh#1fu9t@eyhRm0SM220;RJsNY{dAa-u95T)r<_RiJDAp^alpO5u z6Gc$~lDC>TiSgdkwk=4_csyb_9wViqvu#+a8b=f-A?4O>oj#ycgteaGa7>zJ)KwFb zh&zL`!E6%gnCUbDFDQxvAtY62Fhz+TPa(}P&TzF{Q~NM#a$bgqRDTqV;s}8yi6Rme z5etFDAhCF7`*epsirp({eIJb?z;#SU6Rx6juC6XPIK0El=TCP)sli~to!N{*o@0z* zFc_j^MV!SXX`qo2#Yi1<^xz}1d;*I#trzIQn8V`-crVGuGs>5*c=r4?N(%Bc!Fq-B z5@Q_G=>eZUenOrOsH%cI4G(#x1a)h0n4k-d5=P@GjrABWDVvtTWXj7IulaQUkZ3dr zdQTzx`FX<8@iEo9LMTm=W{gKuUcY+7-t3T~sCoDHoY^qv@ZgZ^)e5N;qsf$u%Q+wz zAb^))~HuaASwO-kY<#i^LOv3LjBV1ThAfd2bESC5+nL~#1Hu}Q1|^8 zE@YU&Dy30cVmsTjG`Gc9zL(RsLn3cAC?Z5$yIc7_0vF<^YzQkhAlMMQBz+l58odc8p@jgX$EX=tj7L6-N53EKyP zcH~)(GZrHVU}_;qk~nCxdkg2LSoat^LE9Q+l=RNQF8DlkxQmriOs11?y%-tn&HBN#lg5r=8(K(h06lIW~4Dbf@bemVG{+VK^A0v}U#5Fxx+1U6j;qFbjAoX^o?9 zEnX|^Eylus@z4K^Kl#Nk&{E*6p)Ly! zW_$c!|HuE%`P&nsBxO^#ync7e;lVyCN@zNZsXL0Q#d?YLj>dGXi#j}3d`FTd%%*!h zefpHabV8h_l&tkx^yG!ECl6qHTPd|fcyl$>2&202}t z;0ST$<$S^4{Q6fs`tfIs?tg^VeM)CvX%W`@x{gf9RL^fyCs$x9}<@-{aVNu^o)cVB@rA7b59yb-G)BwG)oIToc6!gTa7- z2nAC1vFpwmtO-C1=TqWHGM%Jkc|=`1+Sc~ToZC5(+exyNR5zmn)dyF*o&Mo_KxlDG zE4QT^1$ank;Q$f;{j3$ ztg{>(9&!Kv0|tX3SJ!2Lad#HeTHd}rr6?Wr?#sJh;l5d>j!)efpzt;0@k-Vy#HyjP+_0B7L^nZXrmMl+7CAC_zcpLznud z!3J=V>ALXRyr*qiVjbgc+rO3^ts<(b3B}4dHf69Z3mwxKSZ*ph(~^&;SPG=js3-*) zqI){)iL;zdS+VIX*=UMbtVr@9%kwMl-h04wJS2@Y)*3F)&UpOrAz%FV3pT3_!h4ow z$-9dyK6?CwY&ZyQ=`XR?aD05kdb#Fzzx|TEy@NpBlhAaA%jJrEJVxr6bx|=?8XYT=I3m`X&1%8Z zFaD07PNu}!1lzT=Hl#EoC3PDB?XKUWY=P$6x$Z7Va#wiW4Fcen;pukq?TjT!!x*z_ zE!ujCqBnng0d3a>zx{A&9y#6c(2#1VDa=fB(ON{#neI)N0P2> zu*Q>R8Cfbx6Ga*+s!G!|{Qw(J(+2;$)*7v&elFWvh^?bD?iLt5bj&}rJrrBY#@6?} z9bfn6ie2P-tkEh$OVM);LKtGC!h#S1qHQTI-|_OrcdVC7Mxzn4{X0ZSg0Y@#kTRUz z;n~+O`Q5kQv07FP2V(|lg7XcZ{P+=1K6=0?Pgq9^-)R<$1@rkeWx2sPgRm`iYtdTs z_{kFxlKEmq(;9S~Aytf0aJ^X3G$w$Dq+>SSBg-;|gAt8!3EepZuKtg9EOv z&RH#2be&~99usR#)wWb+Ntz~jr`fDGIOj;>gt91i9`&y4`c1c?XkCfv-cRajJS7sVApLO{AZB&54jnxPSp?(Sv?3F&4C zVE}2Q8)>Pbq$P(A>F)l{|KhvglILNV^X{|Xwb%OXzza&jz*}rN@%uM?S(#O#lk3<% zjOCc*1ExdUEK*C0xGgIU+s?oB`0>(Lrs$lmxqK4RL+TuCvT16uL33Z53-2N$5^@qP zm^6@^H~Rq>@OF4{*`$yNN=KsZ+++iWrFLg}{q-}-MZl~3m(}ANN|yF94}QT^Bbu$x zm{@2jH~|&D;`jGPRIOO(=dagn4w7Z&)E&^KcxcBXw)P@0FOKmy#y@K09SVZOa49MXGX!@5xANY9?DvaN+IO*R61n(QC>DC{B^{bWnh zoloc928P*ny5kG0;wYvy7(B)O@8o8}V%AQNsT0Hl$)s-g34Y2Eg+R^D@>En zuntW}4q3z|3*o6&4^G80jxrsj0m8|ZA35J|z;G2WC?v44*F3I<);gQmPplz1r?+3V zb+pIyg$b5|%B%pW+W!uZ^nvuiT~^nVFeD7Pgr>zHJ=6yTUPlBCn($a8V%kJ!7CV$4 zBwx8H6naz(V$hZYoE*alZ|W!?j=@BY8l!5TyK{U1B8U_b;f?V4A>KAKe8BR={_yU_zXcHY-mvmsgly`2{h#s=mQdj_j(27WdVRAv_#~ zmI3&E)0flK*`uisnX@%r%@JzY<@v>&6bJZUWG#A8j<`rR@Aly(Kx67r$T^nu9+_-e zRH`3U0qQ=dYeSM*M@0wxuwT!Zdf6|TC;Jex;D!c}b5-&GjMR)zm1Jnvf1H@zWKFFYNqH6mDQ z1NSu>2aJvfJ-a6hmnX4tv7s@!QAm~^_Zn2 zXNlEacWJ9nN5u`4JC!=}w@ zZr$l18gkz8va%0;ac?y|%Qf`LZuv$G|NO{GtMemu9!cs;6AqfU(m(2`O%A1lFVb^w zHBye0GfJ=xXl&Dv8Arz0kJQQ{aNh-gUU#>)ZOE$eJE##(?T=W+^CH-RW7`S$BV4W} z9`X0xyv1xz`RRiK?1_`IDL(kEZWiy=YytAq?ORm6$_AkZcih7E(ej&Eb$)%H; zl1~2T&$7&7`<^&MzAz83@fSIG7O$;W(VXx2%EOjUbpOw9_#NG>gbao@=Z+F=zRa)s$D=*d--$j4!a2-EI#Kg zIQ+CE#zvv~%0k6;ApFn{?ywjAsG^ZfCq4Xiw3up~;W^aosqyZ)1I(lS?Gu)K|MM{g zTp#{;J08?Gxz1*(m-K;JgL$}h^VT1{VyA^w$4h=TBu9C^4>#UiEO(}{kb*ZsQf113PfCUQ=XWQ*F~X0S^rR~B z{*NAyTF7OmP9Z8cx-8!@m<}>mZWRQ_+@>ap3Z?XwsxdmwisxdgB+M(D`7t${Ajj;d z_-vR)MSr_i^BzvLJcIVvI=1Kxn2Xt|qRi&c!BOin5oMkmMT6C}(IM;LWC`)x6&{f0 zWI9n4QL*+Ta~WMzyP>T1KvZfm2Cg%!RsSlxIv!o)5AZkWOI?>FOPcD~;invS&T zcl-=SIGtS({OcLAV)rl{m*>R9(8GMv-gE!4&4?S{``g!2x^+Ay{NY}jG}>RI@nW=x zB662^{9C9&Zhpw+brO?6Pc}W2v7C*a;@Wez=N|ZYHjpmlD>h85Y6jJ2#II}Y7_Hwl zpW?CLA*a=rHzd5Q+Btq=K#^()pOC_12s4dE>zEZGdFWGJ_2ls!T^9CsnN?54*UPN! zYL+9DOXr;i9_tcL+qB6hQR@qOnrNHG54p;^gh=lx#n;n2&))(mtm^ZA>)iE32gjqY zjfJ-HjUiX9zrRRgh09Y5h>Kg+pI4$gPNVBeO!QKhG`8@}y`%nl5T4H{(k^lp;hJo9 z`2}|%r(nN(Rdmeu6C-LWjmPUeZKIOo0EB5T(T>Xqr&5tpS(Nn_>W=4RXH9$VzjeA5 z;Z?S#rK`u_fCY`pIO<6A5P_m2jBGxKVYJrx%1YuC#$rZ(`Sp=Eg*d=?*vs2%eqljY zf8=b66{`2EHOO>~X?>UfAri#~S9iy!A)T4bPxyrX9P9i^?zm}@w^aEnSDQ+$Fog*70 zO2dtXH@$^jjFJTH}NbyZ4w*TEAVd1=K8- zsIVpDXj!z(Od5WL=NVd0f{)l|yPqDkIC&8GORuYRzr}^;33;!rYp|Qt2$9ifvCoig zo(;1Ups8~GSnJffwYsMWzEGbGUfrvhvnY29^$ck(8=S(n%}lW(=2ElStc?;_Wu}6h zGe;n;hdTgBA{%SALk7Z;HbUgnnASM<+{!l`douVPqy$!jO8X*Jlzjotf+;8v+#jZ{ zO>6ZD;u{PnT?2kCYxnE14m{_VeoP7%s9eK8+i*YuLK>7w)?GU4u*nb$MTFRc8VoMwP{_F8Fjf0rGkDllMCXa0a< z)^Kdo_Kbs-QbgM$kStzCBCg>9qVhdY zY4~Rg-;Ia4StY3hR?Wq?h-Z;Udyuk<2v7_05?@aQx1V$=LdDfc>N~ctd@I1{@%_n7 zaX4np8w+EJlhJD~l)bi`As<-JAz**|F=!j8w%<8PwpX?&2OeXB z?$~{w;^ushvYRu=DJ1nmYY_$1)Y#JzTN$7#)EYGgSRaSZrb`S&g|?iZ8@pszy$?@L za7teR4Z553oVO7|0|7D8rQvwO>I>)1vB>W)LpD4#$;s38f^rcLx{g0bqIu#b0>&4H zm~;}VPJzj6la;B*MtxGe4+#D5`2!17X6??^Cm~N7T>_d$a5X&4r#0MNpm(J&6A^!KrEPNV=!Er$AEy{Yg;FwT_7uD88 zI(_N>TWb31&U=z(rxmGh-5g1FnZ>_<_th8(F6D|<}+W>H7rCa)&JRp7GVcuNuV z;QWHIAs{0VmyBjjUQ%Mc^eZq${JtQl_w1MxDAp2hqjih|zMZ_BM(DaKa&<<3uxMo3 zEyMRd7T@}pDr$zGOcyO7;9;oYz;}3be7dPBPQ5B-(G-+@wu0e?KV=IleQWgHQ#z?P z260bDO%Y|=zO%viXEn%xqLuw@Qa$O1_XMe09u3vMhm(N863U>jeB?kOKUeHVrVQv? zxFgGZ1oCkDi%kVb;ML?KBfCtWsF_nPx!afYC>?aF?^PE{O&sXP(MVmdW(1I3$&8Hv z&i`N!b?Z)bywUr!9MByO!<;#?=c>AX%;X}!;8r}HQUqTFwNwS~;8zLM97N^wQT2p;Gj+Z^cXJ;5{bOi`h)qJA**k%{~M zDL}r_W!*7=i?$-R3)69(%HEU=Sd-St_#M5M>Ph?*r|zmqCRx`pVDo}j(4SoA z95oG<_;%T03ZzVQSsAmE%PLVfiGDtsmDuu>YY!C+44~jo@B!YgWGiC86(ayDJxJpr z2aH~H-*4n{aZpFAl7&N(IV)U|kv5A>>L|AN58k2Y;-`4vpr&h{>|N!G-k)Aw)Y?g*u@WOd(V z&)`{tGPkv~WvVd>h7cL(xKKC)5^6i`9l+Lvp%<MUlVQ`(y~*dwDUoN8^kxwFTHtJn}a?PW9@iJ+>e&pOut8o96@5NV@K zHdpw73*nYWS7#jBfJo>fzFh_*higPjywybx#``o}!u9^zt0m|KHAdzes=sD0P_K8a z-LG%F)HL$J>{lMyA4cTD)c>4a;O6A!a4att&xG&I^2Jz6GAP9oOg z3nNnhoe2l2=VzOMt&t1FcVfoHH%Eb~>;2VS659`hnXLjc$R(f1&O*Ej$*T7Uqrz?@ z7>42PIxssb`6o}o-Roc^nJ!#zTVQ4!t*N) z0G!c=5qrW2+qP`tM^?8Z#Y^est3gTPf%gZY9P#arB`mdLNn6AlQpyxzHkD7a&R{N6 z!1kZ|^7}eq+(yJIu=CXD4^PnvZ|YBVE(t|RxK|DzAKh0Zf&%?AG>27n{@Pss0z`hg zObAxzHZ|TGS&&(F{z?0v$>z9fyZHRqwgP{vNkg&RIL=~5c$U;a+pIEUT^xN91d6c0 z+DRS^Jrr9WDb$hk$JmIQ6Ac0-FE1-y`(H0>ul0qIJw7Lg3AQ#vp==W03SB?Jy=)i~ z)jyGaQm%(QsOFw|zuceHd2bWAac#p$Pt=?~+n54h+Ku>QVy^!+?qU-?<+he*lqXs+ z4Z2ix-TGO|j+XX-4G)6QK1|;UxXN9zps&xe#0wH@_xB^ajA#8Rw0)}U?gp!BOfCU5Zv zXjLU@Phv+$09HtT*}TK7#ZN1qVKsH0+tvXHeB@b)>z^(rHQ9(}|?-~jGx?*QgH;y!#fQ{gWP$fL3_k5cm zDwj0Z$2Q30tSG1!AyB}lt(ylLCtGM64Mg=#chf}|ZDJdV4g_*@!OMT_awqxI`rV?? z-t5;EpNRI>o$#ph5KV+)6^Y=ey&u7NFFHr`aiT*4EyDdRc3+?AaU+@ip0KyCi6W{k z39#GLb9!QyK48wL+L;KPsey$-0aAjKv>x}6?!F=HWbS9**D6GTo)0mR`DXrr7FT}s zE4kZX$aQ%c+xeS?p}!emU;iG+~3a%{E z=1}YogEb(1!@YP6<&ukc^QmLas|>sLLQx4q231u-)lB>0qgK*}bJB|{X0^L3l33Ih z@^G+tMNNFS(-H4|dR0VvGj$#ZN?Dy*Ei+01>c$4iFuA$6i!#WGjoW%M06hj#v-Ts+CA)ERgps{T(C*Zz^#V zu5;LG1ntxWj2t^C(&1;_g^ZsBc4vdV=i%_pwbS3LpJ*S|f9{mH9frAm^&+blLSD170#gIl> z-F1B~lnGd{79#UyO3hUs{U)>o4fBZ8Z>=b!d)cB=+^4*A$G?%p>?!^P*!bx%oLqkw z!tu4tK;7XpJHbBspKnTYA;g%n4^#e6^(Fe=-$5=fxg{&?&vyso=1;IB)wDmxVM@LbGomvg~TSQm+g}+efc!#RagQL?7kBG0|pM^WY={*7%kx|eSZv!vh z2tHke;PWu+an;vDc8#VyB;Z^tEUp}7X5G4AI>=2W%@#nzL%HtZ9!F($uR7W18hlU zy@~})TCbaHpTN!ymev?A^Jxmm(*R z4qVR}&s+0RX!7Zhv1@&sHo8Lxpip)qP;+8lkU&L^h29?U^b+Y%J0{cB(it%&yYuH= zJbc#DWtmNUJJ)XSP_>s6Em(oq_E9#u-?AnIzu*k-08tWeGfY|r`yhYIzmqQ7JhNCD zWyrs_k9tUUGuW;u??52%8VVeVB#C5;OV|d4W(=3a{5z%i=E4x_ZkmxaQIR};{@>rG zY1Ff5vA7V>h+X~l=`Dv@$Cs4CWP#d-jtIuQ!V||BsU}%m9$rIhlwOpBwZp^Mx>BMY z?ic-vFlX}9V4sRh$L2Ub56oB;-8pjCW+0u`^}E{#>&$J1Qf?PTQU_UL0YZApIvR>Es)Pa7q1b*C>aR|rLI+ZglWY`wPRQV z)CBX(;ub>Lu2;j<%!xog%7xFkuHJiaRL7WML{=XA6qa>ziX3!Vy|5zOw=8VksS9Xh zN`;7q)!(bfiMLVbP-?jH?dA?;QJJSIMxuKQXun`k2A%Fa4zs^-!NCtjbsDE1&t6`-0S<@JOF|IG$+}G#mVYfXoyayq$@L()+dP1c=uALz8yQ8z%b{ z6w`KizFcHeK7OqZymIv06lnGPq>lG^8gX(LKF(p))HvF9(mB$-j-Naa<`~#aGA`5u zFT`BuACCFS_5x3>bgv8CF_L!GkCZVuc}2{t`>~&7ip2zCIQTAFTOB~$fu<+CIQ4Rp z=!w-KM#*z*JVXq?EN&4j6uuq^-?!2x#Wz*muHSTxT$H?D_#QhrMYQSXXFbS(yTMXY z)zN9e`{q&fgQC=z<*6o&>>?c(QUb%11Ss)f3vA6E$I}# z@};#pa=@@Y2#)G?yERIdC01sOem>xi^^~WdUtFLW!5LHCp~5$#DoKByW975gB2)LqP{_oh|7raWMJAcCtS*m{IV>^o_578<^4aAX?c(c% z^ljQ64l6P79gj{EzHDq+Y)^RYBD>%u%KyCpc*;2A0)us&vuOLpMMr)#n-ia1+?uFV z%x1HaSpaqyc3czVJIm={bkq&3nBr0)t%9U(lHmL*{iQpEW&O|P7%4-2C$Hby#6tpy zwSy7pYo%_d)R8}j19q^^)j@ZLHH^Aav%(&f@lPb+8meQQRo7PE|MYNk*X{ibsc!dzAKWXN zgb|avgCH?F26R-Ku2js;FoB_YJR~h*062C}q$ksv+Ff@37YQ=0DLYjx-%B&G_zq?w6a(;L3A% zqRn*Z7?=O1w0U1Y&%QmFM^;*MbK$$=CoI3tpNX&4cZZ%eB-6f?ntUR9Kszlft3(PqF5N*E7+CfpoB~1hYW> z1rgRjv!d*b?h46oqcG>G{5e!Y+`$R-GIy}%z-$#66pb>YJS^op;(QO$ z{JtH_fa_=e^P{sTYQ;Z?&aF!al@bilw7NFN9UTlU#x;{pRUr#ne3O>l)qttC&Pk2=pUF#NtCRdDglFh2Wsw97RYp%^ z4kPA@MC*6Ag(B3F$56?-q9nbM)e~Od)xlf%&<<-|)M^MApY(`P$b3Iy5QReX2`d;) z%`_H8YPeXYA2ke3;kQTA&THYfumZBmfW8(M($*>l^vyi4{`_zT_8O18%=A4Iy`o}12Mwk)0(}6op>`dU;&3qoxija=A}tDi zWw@W=wCD3ZxwV>i+KK`c{b@ktR2eyB9vt~i6~k%xtyUO1u2~+IZg0>(_vxf z`XHCDcsQFpk{LfXfJV9cw3o77F4M|DP-yF{cOdqh=%l*p?YH9Rq z*%xA|d&qaR9?3E6SXn_wesgO^jQ zYv^6Kmu$YzUx7RI!z_ZMe0|>lagniM1UGg5ods!3&sCR4M*d1FHOnM+K%g_-&Ci|mXe=L+R@h$whKZQ^T8lG zR?q3v?2|`*k2#KE%^o$Jw;_y5x*qs>Xu1_UB0iU4^%wLS^hVYdiq-sWX_Y>2HR@QD zs=Dq;tPe7IDAgO2PE^eF~q{9f=yvWj9f?Kni5CT9!j*jb?^v7Oo+9r}y^NcNhWFK3Q3b%EjE#tu%@_ zv;E=P>Jwg~wq))eE`3&wrb0Pf!*Z8~30OZiB0=hFVLzONx2$?+uQ3&JG!Jr$Pf){$ zrW6#C6ZD*!q4f?wBlGP_Gt)jY(?!#GsD~gCf6}GitCSAMR$lc)( zU7@nvB@`!sOtqKBQ?xHgv-}l0U@+Pnz4hGrj)90R2@Q?jtthq=a@%Zf{zAIHNci>s zDYQp$m6|_GWzuk*alCXSB)>wBfLFhsDP<4R%EVNj+~nvY5aRO*#~M&sj5aNCRRds1 zoQn!17#fIwbm%ocecFp$?k$JrvnPPNg?j@l{1quUSWz!Ti@NklP1flwlOFYJ7h)SddPCa z4!0C|v#~VNYj4V>?Mwf7LE$sVbrY$Xe{?6e!_o12#rEEXCWV-vl%~#>FYIG=r{c7S z14wqM)ib7JS@aKwdOLdFsjjSX*c|4_8|tNZVc|2oofoSP3{mDW9@NF85<8L-IsIYk zYwwHd@+|Sj5zEw6M7R@A^mwyUx7vyE$|d)(D4UvP&#`X5=Xu z36C%;+!lGSTsv5hWgiO~{~;bPb{GyBau_ZyV>}3FR2iIxb}R>o`M(S-{qp<9GE{mH zE)nb^s+volk^qZk(2O?g-Fu9kw2-Q1EgvPJev@g0TSDv#tlx4 zxE|JP6Qj}n716Wd%k*FJ7{Ho%B$&;<3(w4F%y2wH|MRZjt%WW+Ux~Zp7z_#P4HX^E zH?il+TXNt)iTjv2ZEJMufMjsH>>MWZm`G*wtQJ}o=7(CAU=#}ibqDq4uwlE zwq8VBw4mCaBeNr$JS4C1;z9f#yX(>W8IzVc_LKsL56EPDaMqvd~FaB>z`9h5DyTC~SX?zZcx zg+e?jtV(y-K%9X|xa6?v7q5nbkIA}7kvDy{Y^flrtz8(^Rhu9u7@#wuWnV+C@vEEU zVOv4RU>L)nN#yLJc;#hRBeXWY_y|i;gP%19ko;70&H?tJ_`~rH(=ZOc{0Twgl(>hb zjJwzX(ZPG=og)GDLcnZ3WTCivv(y1jND#jdGpqmCbyxkY^gP{l)n`Mr)Py=9o0e*m2F`NFJ3?mHBi47}8VR%I5K#K|2 z7Y4ec<$E@MCd8Nvq?Ab_dvxcnE53+_2w-KZ1VPID&Kb-CLF_#;B>`PcjU`)O`;!E%kz|5`=MJIm1-7bO8}_ge75*GMg`?rF_+OB(yo`D40W+18X45}eDM`UIR;i0p;)&j#n8A9tbWZUxEm_~zdVXU6o^S#wZI@KCm6*e!P% zjHn-T{7?VDYI{he4N0uv+z^PviG#T^Xf<{Ix#;K2#k=3cVcgRETfgr;&+EhvS9d0! zrgDa#AZ(8@@)(O73SzK2-AdGgu#P8bvB%vvWB=T%pJb_1&OBU@02Z9N=IuupBB8L; zvndX=g@pzBDD&BJe9!6g{%m2EogIj_Oj?3X8-abF<-m7b!k#8_DkdYHG&ib+u1}@j z0%3_fptxOdAsR~0yt7<{+n5BZ1r9DUb*2B$bL5)O1|;V+YyfZD2_} zlp|hHP}ID&5yWSFen;p%zpyG@h81@D2i4JES4v^AQ*LO&+oZ9h+Qjuo9QDY609}@u z^c*>49_I{42km}Hz+8M+HJjWBYBnf?)RsAx>2L{oHCVg-OqHAC4z6;F{2aIwcUzI?CBTuVDraxPr46vHu zZwm`fNC2WXGx~RB7@e=m3=cGSRIh5z|A=%Iu~LsET`QY<*sVuEwjZ^_b1Cr2^S_7Q zRmFXKn40os3%5$SgaQ!{u}@*+jzY=@C1_XEf8+{nTKiWq0=>`n^+#PYOGC}(XqY^^ zBXcksiwY9a#}0HM0QG};kbyxj+q2wf zG`QZjyq@eR`suN2>5>p}>!E9etka^%6Qw^{x#CF39qwVa;r7A_)kLY(A?!(Eq{?QkBZnidPPb6&EJ0f#z;)PX z15Wo5p&j!6<#j|tBr_*;KUTxU{P_S|UszaxDMPt==p0+Bc&Y0qW6y`QKv=41upTei zy#CyxjJ@;M0Q<`@dp+;6?9W6IN>_ikVf~ZN-ug{z9!EK`Of?4~ilrbGb>_#sx1o@r2U}dE~ zo-dL1bIzQ`jy?yK&55R;un_TNq5!^gJhtK_sgejCPF7PlnjGZTV_SeUFK&A>6!{Q+ zdi7!&m#;s(vT{!Xmvrs3q9L#a%^4*mQOBukm_Kk^pJ;PJHU$Qlfpf9n&m6(QV1o`< z+>&;Gi!f_s-8`c4CS6Cq!$Sw|9FX8Ip?`~4`hasHYwhhSn!n8@BX%SwOiQcIwhHwy($sgDKS?ekDRBx*)EVO5pVm$X( z)=NF4Bs))070JiT_4wZzm)!NjV(H? zzpHBt>r%8&K^7W20jQzk514m0u*pf!va*6XtWSFrf7V2k)p7EBEOr_9qY4nA1t(wL z?+XZ?8CofF62}3?LSgUY|JFYbkWn0SQfyn;#!hE4#w1OdIwqjMDQmiDlkGhYI2U$?*Qf72aGp?d&||F zBnd4+H<;eX{$tti1ErR=+MmYYOYMGf|8}1>o+-TW}8%%uPiN{gr=eL_#%|I&eotUprdXqs-SI2w>AMOZ?C52y@xdM=S}hT z+{culp2>Cm5GoVSTz4OjzM!-Bfmw6LLD|~1dCW>19-k7&Zf|249@$?GUSL3m{fn#( zJ{IUh1E{;zab9d`JFDxN^?6J6IitAjuF?330Eo_XDXo6FH{vE%t%aQ)4w*l%89#}w zKCdL)QNEPCd>6mFZob=C5$(L6sXo7XzUWFolLmNHWs1r#2;JVne<&znR ztQkj=_k5(5|30ptyu5xH5Pz_aEjDlRYEBAOR@cI3M$b^T1|Z)SBAd_I$dAX)PZZAW zcLaK3Qp~E8F$EbB?~l(^U-rbefxN=w6Y&29n3r*ly5^|)DA>A%sPapY1hI$Mpwss+ z)T{S#s}^_>g?W9pq4;K{_!{XHmJ!aimE|yG1u`B`gw|^~91ai?BXa%!Gz0d>7VrsM zgie*q!*cW8$^+%;>eJ238x6&LMmh!DSD95-wYokTEw$;DNnak!CRr4)rIGdU?k3c= z@c{IK_`0z8EvL4&>jezdc?AzjZC-t*&*w2+_=~6)`DtSQ?VOJW`PU=Fu4~fOtyMnz zN(dz8Q7NP*qTd9oEoRW)9c8M~r{P4b;_m<1pfEjsQK+bS6SG`Loi^tCdm5 zMlvN}!Ux|x+XTnfBUa=&`XS&`Y0K9F-=rlY@hvQNglg_x%}D<$*eUMnyiW#yTrK#Y zZ|Aj!l?&l*LvFX1kDj9E7>0&)32MmK64ive(4Y%BGI9z|=YvWvtd%_i&>qnq3%ZbU!fnI zuQgzZ>aSp6Y|_`+sSc_)3t30lPDi*ZUIKwW=`&ViB{%WD_x|0CaX-s()&YV+Skr+n z9?YePl=?i)g>;!sRLORyrSDeIyV2n(KehEC7VWlZ3mlgZfBjJ2_AHuO)MfkNwB}|7R$Vieo1eI4)qD&bfhtovzd%uT9maXJ+u7mce5eV&gY=;X#k? z;z|eL6~H~{;3eGoxLxgXy#~d?X;wY?k^1lKj@Bz+y!v_Ccqdgg2u(EWOz!3QqW!MY z`P`zzs!^zCr@ur4EtTgX%H{MLqR?M1!J{@yPpHbKCd*lFM=1Mp6v`pw#BB$vqE=Th)F!8@-`$Z94M3Jf&`1PAg+!MEkfh88Ghf zS>YlnyR)^k;6y*|g8qw)#-Tzjt~4Me*y`u_J|j6TxAp^?5)25SaXPKGjm-FgC~0-G z7HGjJPJ_JQqbr>jpUbb_s{vWX%jdUeZx*dWXWs76akKaJwKue%PsJ>Wh^{XX8m--> z8*N?J-{`UtHdGC8l*lWoDY5jgXz)d_(xn!(XyhLWYb`!d6!!5-R?Fyvey>4?KV0Y3 zWz_1DnK~-Kc@zC&lkhG&?Oh6z(j(RV*x%{praOdAiD2}*o?rq-svA0~%^wF(4;-Z7 zMbH^pWhUr*0|TS8-AUq;&IgM0^mKrLiPa;osLF&LI=*Gj@kKKuq-msB;Inz$XyJ|o zT2k@JshG?4E$4em|KIS{C%zH}{#)nggH^L8gJg}wjh~+)oXTyDmawk4ImosMxjC4P z8xW*F4J2}7(W+b4zcZH`TKl0P_^KBd@{L@TmY;(nI@&rXDA+oOuzvTdpE&6LB`{~% z3IMI(w-t9I$+uEvhTvhaF$SKO1cmE}pAiq+jd|_7qMh1NCQA6KnQ6m3CQ3GLz2tuu zxe%w%67PHgSVqSddT)Gue245lD>6%>Eg8T29_0EUBlch}KK4G~T$9MrcQcOP_oQz9 zsGOYB>1P>&OvFKMqQ)A4$sK>He~DFnSz=e%7#I=-?!2JRyAJQOW%J=4vzU+!uTOmQ z`x&{#v9f_>x6w2iM(fP^q>HE7y{?2aho1AUC4yzX3$l3ss+mE*5 zmGnu^POYqPr-6M~w9}k>V~3g1c#HcEU)TLX*VusgHEJ>^Pr$gpk){@Y$Hn1d8tDN4 z-8@5JWK0Y%@ZR(6ysGSyNk;;v>qj#Lgnq{>Edv8VySVN5i}t|J!LKdu4po1VSiYWb z7}3Tr2`^0VPsBIitIr>*I?ROGxt=DmCJU)*4>^gY8t7P>GVAS0TE+5XQ{_vq(y(x2 z`a^WY?)1d&XvK%ib8k&4vc>;xtBP)9Uns2v`N-76^AsT8Olu8(;QlEvS@{Av@W{?T zz-`0h@G)zqZm>7o{dtf{XypH0$2cH0q5TqvUsYuSHYLRGW?nEwEDS=P+=`M{ANRSt zn!B5S|H1(`?A_Rv&%`tTj!!=<-#0l@-PyxEE;=A*6p#wPInFB&aa^rC7Ru*>#2|gC zKK)y0p&mNfLW1Uk2|yh7LbqN;D$vZ9eBh=2$(bkc7DdHw%Aaqian7iq!R2i0bpl1F zYMZ`hDt-X1(I{K^p+QM~at$SDPSY&cwgS`M-Ve>n#2E6D<9a-o?ztah{9sj9hIS%K zNJ!|v{?2&KJ8;K)*F9|9sTo(ng72TpSe(j{rJh-(RWlqbU(PlvgId8u5iRM?f2=Yk ztKlfE^Tg-)JNWTZ^%?KwDd=W3Sz~MH&Rps;Sw;VIOZ_ak>COHZSSC$auTMNDru;#Y zRq};b?xM)C9LgP79S_;myLUXX2Bdz4O$IM#_^aLR@IkS$6dgo4e@K?zW`ypZNl{`S zl2h+Q3;L@ylI5XL??^7jG^`g~8)XH@HXLYIW2wm32v!8ArT&At#m5`bc-=c0@LW@r z-H|!6><|(jwuZyKou@tG9-F>V-~V=M>urhOETBDJ=>XN^i#gKN!JQV4n*NjtHaq2N z%yHir7r=QkD74U62)UuF8U!x>BGQ{amusSE<)sy-MyZT=0q_(NGWLYha=~ty#p3RA ziN*?DmK~t+75?jq!RZZF;*3D0jvaepj!cri0cjFRy1 zh=ehDY^Rl0X&~aH!kEBp=hfC2NfA9idT9TDFF;-m1Hnb+=uBp7)w!3Lce|nLsyB<3 zJG$sMefI+NB~ihRTNs8}tbw7SYok#NJ-~<`NiHw{Xe$fJu_CkBaojspMEam0XAAka z03LS<^paf#FD(Drq2qyn#$2+XOH;rPHB(Dl6tk-km4dgpSZT7IeTl2~8op_rwew(j z#~J-csF)K~h;C&2^ExMLu-&g)Mpye&9(X(w9F&y-Z~Hm=@K<3&h_k=g;ERdM8HhihvS>*>!E- z1=|sS@m=xV$%ZD-BMpJYi|b)5H`>FNR?@*I2%X-aSjp=gD7ulx{o0C7zO;50WwPG( z8{b>{Q7#;jB(pJ&kW4f_q^NDJlL}cUBIW#lzz4-L2_J05s zLF&Fm!D6|hPjGhjh-aR8hNf+aF^q}G1C@Pxkrrji&Bbk+c85=iqNoW$x+A45)vV&^ zNchw-MtT>}T2iXFyN0F}LBwLUWKk3}eMj4Mn6lz{xyWvM;+(c?dlt)My0**d9yMiA z(zFexn9;e&cD-TUwoqzX3b7eQw(kj(i|+8IaMsWliQajOVZ+qzH>ZkL~znM zQD~jqyn%O-vaU(S&^E2e&mk1;jJ{Cl+sH+tg&z)N*+@6CC9lcX%ZCR~O zsprRZeJ}24eGim-$a1okPy0rc&2B?gT9%7r$*!vxP&a7pNygH+NK}z(z96QAC*o5g z`fLZF6_j=R@e+FVn_r9MkS)o?qo_~6{2436TyjWSS5p2 zfz@)!YFTmT&K-geSS8%wvM5P8-?6lo-7e7Qptq!WsxjNwjD5`fKd2G*#6k=NFP@~m^JrVpt*?0W z;Eb|faJ6X(AyU_KX0saK_w06;RLhcl29GIBL-6M4N3YdE2GeNVp5iERm5$a3IM1P( z@&O{Fblz}EQ4T|f)#TEMQK(CsZG#VyVzWitQtT3Sfzl<$Xl@)WB{5>%(A}dS1 zI6{{-28D}>=mSw%v{mf7fbTm}R4lX=zunGJXt;6X22QOhii$45db45cdal|A*Y&yZ z?k{Y0K+gdi0=5(HWFLBz)_9-CJQqdtuS-l}@og*Cg1SJN0v~%e=Hy zwE=>JLG~VP4288MRb;zGVRR&l$u&MTMvVJhI$hzFriqG8nQ4yqAKOuOCdLCV9=CCuy7T+Ji(gWMM@DKrBYgFfrCO1%c~@xk(5NcN2RE(rgh+Z z**g_l3AXQc6e?0x3X3MXkOOz2G*)=+Ndk7&VDzgFIw_CBC^WNjV2ZXvZm;-z7=zEV(Qh3EPR3yE9*Wvn(D(kYVy2fbB z#lg2RwE?BzNo5U+o&jPK@`5q z!D$vVmKaIYRfX0D=XzZ4h(U~zmC~amQJWH7S2T@CazjYiqNHA|sOKw8A*b=3+czWz z=l%uZa!cbnV#bkeSzDP~JN8eJ6Fnd0*5ii@)~v&Ed* z@`$3)I3Vmq72>_e8k0HDimr9+x|XW0IK8>RIq48mkdbZpQ)xw6S1cEr&^EmH!DCL3 zmQ;&lbc!^)4y80FH*d0B9kJbAf&$-lStxQuRn)Y*mK1tSQ4lbAt(YC3U~9v=b=cX0 z`OO;=IH?r3pL>?J?PToD5lm__=p6<<;dF``-6Gx~RphJVdUxTe`NDkV&nv z#SC4@)?62sUkc=6)8j>UOZuWwBpE$r-i}-PV(;%ezl50 z_ArWZnJU{FojsEkL_;EbcB3#k?ZpmRK-v(s#DNiou~b(jRu?D&YuC`XE#0o;^2s^) zAkp?AVKZ+!_<-{s*Gc|gW|d{i+9Bkk($nm*f2cBS|NX!J6O1vGRmIsO83F5BC@k~& zT&OHr#+&j&O>owbWt9PCG%<*wdKxg&vXB;CYg`OmuGhT$+DG}dU;Q;+|JV<)I$Gg6 z$FB8kn+;`QIX<}su0c(5oz-L{8KH*E$5nYYO-YfAEMx{1N>GZR^da~?$okX1K&Q#a zLmX0P!)P$AjmBt2VWcC98A6E&;a+tuCPFfi%Fn5*f|Hv^U@YfXTeiJN$Bsf-Oj#0x z=Bk0%L22Q54rZ=!ZDPCLvQ0guF_eX+uEiSjrm;95s1}y_T+;_wuLFG>Sycv$qOz7n zF{D4sP3*i-cs83YMjPhy8e=U%8Iledt1)QWONRxXefA!%_v~7acLC?2tSzRRVRhuu z*%{1gd=!db5fm=;Y}PvpBgHAHMAL5RbzrV4&~SSD1V~(5ZP>L^pxdTnR_7o@33_>| z_^Kpu$^7UTTh7^RH*D4$aST%y?-M>iJztShqN-}@x+12;X0u_l*^J33MW!k?mzUJD znfSq0HAU}<7@E#;x!G~GZSlc#d~`%PTL?X|C|K_rwoNY{0y@wpL)0ZPiS=lTni#bd z++1{HRJ5JQgNs6AiV|bQz^2)@^u84=Rl}^XXr&0A#R7HUcj=pcPv7o9e>RCmwRyyMt*lo7lJU!(nf9B^nxpjxO?TA=(Q4pNR zc?ETaAVrgcdys%Uw6jKN0+~Oju0JvP^Szg@_JB?{T6D_$ZP&{VHzp$4f>N82Qj+q& zc?C)vilV|RN#uxqPr@)SYUXv#X1yUO%dDxv##C0b zEHp|(9}~(ds!9%##tFTqQ_%MwtrTTdp$+&LcyhI)DildqbPi&a==7vZIl+nwWhy-4 zH4#wES4YCBMbUH~?;YBf9N#=4c*pV0oB0rxrJvdZMB|L9k`}&Z6b#t~u+@xewm=yp zOEgnZ&K5G2C9#y$T2oXrj%+ChX_Ay|Fp)<1~qPRJ;1TS$l$}5Z&%)TVyj8NK4iju3QB9(#4 zBzhG|DPS>Zz(+@^OA4cj)?ktum(PVtr~ttWPE3r1UJQV`PCDIziKJ~IKGnm0q0~Xf z;p?RvC0P!xoCJ>v;U=A&SUyQQ}?0*Z<~k`0KBJ6{|IU z+Yy{6dWTYx=mS14V(;F&$NLW+a<$za1Y4?ujyLVa92};WU(-pLFYzYjoJ<^`^KawG>AVPEW?*JZX$ID*6f4E=^Pv`!rgKFcRF=Xe}X{ zN@bpM9P^lB3TS1})}V>RY;idllBkr}?KYrGR&|Y?6(m*|V_EN7I`6=1s!F2^O{Wwo z1WX5pfJu&dt*J}HqAqB=z;4^%`-rV7s#;hBp;Ks^SQVP8NK_$WY?Q91_tN5T40!`FrkX>r7B5a#BZ%>sr>^mfjkQYLUGSEZS&7G8k={ zEi4L6?-QMml(Uk$UU2s0l36|D>S~A5uw2e5OUvf+lAAYgvD90rP6*2GPWrZS!|}D*lZ<+X;#-GJXM#)xa(0` zQP&l-*&J;Y&h?VA+yxcC=*9j6?pG(K1ilqRS{C&5Ely9dt%qKGzpcHXTvjeQ|~Jj;gLHZNat?%g&-I@y^pUJMl`k1%2@Nt|zG^2g0I88Q872m^|KlFU>+- zR^Ivc}VD=}6n2qR$>DyXc`%1ufDRAKNbve|8MuH)X_d#pEWtP*TFga9N? zPEJYDjk}-$hLo5eO`(;}@LDNva@mRVQhORsQ#e!&}W zeiNmHpzfS!Hd_dOoTSs~ePY-2G@Zom6m^Y@3R70tLPpy@L^e&ww(F?pOLS4v2N6-A z6>W}#cR}!~qAUo&tgh+3mxvb-qjkgqNh?k7#e&ZmLqa%($2V@!cTS9c@#}h zNNGq$9t1z)1|vPZ8jx!P{oZMSG5WodZk-W?vFJ*4lp1n<~x*8(pf)}Ap& zN^7L!*CsFL;hTT^ZPx3xXaS~vItOYqjW&wyc8f}pSv`|!%=@u6uCK0m{i7daHlK5K zd6}E1in1)}x{j_BK7LWib7fPMB@#)bzFHf!7mnaSaF-{Q10P*6%Mr@R&~dtyx8;xt z@{$gVlCEJ;1bz7{U%~Z%#iIw0`Op80|B4r0e3{+{`jD_nyiLQ|HCMdnSCI+Axnf**|Fl~@$26f+KI z^5RfsJZ{2YPV!n<1r!EU6y7q>=Nmy4VzA9X{ZhjOVMcXQBoS1aEVQJrp(f2*7umtD!Q+SMWaCy(mFTYIFwwynHOfymah9FD(vMfghupNqN zn<+VCZ1f~g{<`7Af$4)1z&-jjrb%e6s8o?j?ur;aea@HKZrA+9UwnzpreXcg_xO$9 z_)oa|%pD#-zT*7ig5`WBfq+I+&ngznW%gK&bODqpI6r>^DskiH4MK#~az)#=tamLg zM%mcrG~wlPDW{K>L|5meqZd0vJ1!QTa}xI0WeQj&ft$PCmd^E@9-Z>N_upr=TvFHd zm}nbPLIp`hW;iv07z56AsIEW-L+8Q!kjIkI;(gSqr+mjM;sgU5t+qzd$Pib*ms^^> z20VMxPM3{JDT0=$b2aj?<#rff!?CR98kHeGJ^akkQz1X<41x^{aXo$?#r~nIk&`(9 zMT0O#exece)nGa@9x!pj>D8HfG>mZ9)op5z8%|cTdyBq_F^LlOpPpEesw^1bV6m6g z1L<&^k`9<|V%{=D4DD$$6aM#5JnVj)7br8zSTCz;P>HHCSY=_5mn&IrIZ1=3HH#iwSzy((Ja70tqo13ROwy#g`-okMEu62AT$!o5nPuF<$ppaDC7A>WZV2 z6Rc9~nw=QR7lmNxL13?&N0OYqTCKReyrga0v4#$G#{q(|N6RHzDYm;Ebt(3HyROR> zoxEH+aI6{SoQx{5Fop}7JX+e)5>pUGkrxJpu_epp0<9{scYODK*1HW?mmAuqB_`;c zrzk3HVM$8U^a1Z$df%aya29Xgx=q)&V&!*o!hiVlKjo``{Z($>yeU?BM)RYe`84-V zZ*uGOCPi73Ql#rTls4F+qS@`(Y_G7H{!*6WDLb1jNGb94H{Rg=_uuFE_=wkDd!3jR zMNx5iwLy_sEf=g7b4*##w~nf+=zO4a+1cI)Lg(;wC}U;34VhH0EebO+3xTNRf*sCY zrPX-RE2L8xB$m?EkvWh#?p|GcjfP60hl_T)G1wQ%y=E_GVT~NxshnP2n|21ggRiu()n}))h5;L2PaHeJ~T1{47^7Unz zyY0!IIA*A2fFny)P->BW6SX8>1c&n;?_|joqnGv|5_|re-!TtLrYlSI#ku!hxPgUWm|BTwpy`|J1{5$xVT~dtNl>k-nveg)KjFFOo*A?5 zwbr;0m@k)kxg<_g&O7N8jToo&t``N=cFjBQzRh2L`7e3njjwa_<_T@vvfXa@);GVw z-IJUA;^%&zAOF$MU~I*%X(c_Q>#0hiTM6yVv)-&ZdvwOx<1@bfx8LTix8CCN>JpKge8KYw74GUGBg=SGky`{J7-PCJ@WS ziE8+Y?>l>@y|Y$O*BC@;IN;*=n3GnAM%+Wd>&R7()FmtmHSq|DS^2gvu98|n?kd&z zah-h)(&*@xgr$*VZek30FAz(}20Kv+b7kPsYL$=tjO&{WafRebK28p@+^wnsj!+ph z&v9OPI?;o@XC}#~jNiIkXc_#mbH|$|SC>-zVw{E|%)ao7BU{h$s^ZSw6K3-nA3V5E z-|YkvED9EjIgJXGRhjem1jkM>5Mm)@fx-}CM1{bCO!Y%z)MAS02zT$^<>v7bU;gr! zg*adY5}H*dVY}fQZ@ftWc5O3uxawNM&VT|~QOLw>fYWDYf?z|=`JDQ&zvT`#c1j2# zT`xWkd4+;T7DGhgXQr4P&XhRghpHoZ%`bfJS9tyP*CYwR`F&e%Erl^e;hbTu7_Vz> z&>EVyq3;_WKKOvY{Hwp<{)6|k^ixLp^T&^Q>y58b7X`Cf&5O_9pzc)hl0vb!oHjyT&2_Rk)9gan3Od=3Rsv@)YGBsQ-l$MP>LT+ zlKikvbtuO9T8*fKqN@fu>fcuynqMc8ux40ju-8iZsb^#8TUDM)gmtt3StdbgA~PK% z2aG7uRM{kEUw{)S^U_IbZ*iK`*l{LQ76hcde^wd-X33a2=p@o(or|qP4t=c^N`o1B zvr@PRrcfGx`AMiiQr{cTLI40D07*naRQOyNRgyzeXRFWQ$PCHglft7%&)PKjY>(Ph zxo=EPpAa?M-WGC_X-WuzqSPE8Eda&eeC=x(otV{PY8C5>-Zk91eVdRwd}FiVCX1xV zIQ0*T>=_nrec$oH2Oki% zmL)L-%Cca!TC!XUDP6)Rher@67fl>HEbqi5U2F-Zn8%@l@WJ=^vp@ecw%aw{ zb)@82ENYI97HB22m~(-q>9A$Z>gb61e8Ft7q-|Ty9-os?+`V^?i;GKs_h0=kXXj5S zih|=CH?g)Lp=f%?m;UlgoSi@6^z@X)av_WcC-j-3s3^;th!Seiu(cKYV%gAU)_~GB zce^>#KI3?LXe4qYqSb!fH~FMD`SXUM%qA!zSn`{wkuhoiz6FZmW5ef6K5zJ3VN1xe zXt;TXL)45NcN*o|dib1yWsy5MHJ%1(j|UETbnfDZ8)+OlM+ErrZNO5KHlshs4|==4 z0G^J;X}UO?_WEgF;ju0GuAL)B=d8gog%BDi(<&?xx ziNoJMVOLE=3n^PK1}DpNloqvPj^PP8e%)j6QRAZ_sDeO2BC`)tK~R>EEFl$yWW={P z!wEwHA7F-*Z7P)>UjK=O>qv^r-U=yD&nlX(;r;jDqbx1YJ$r}caz@v;TwPt@ykogs z;#`OC`%D(FqzJBe^nFj~vV{6zDmk=-6c;#|WIuTS1Mc6y&!e-4Vq7(wiF4dyPKc4- zd5XGbKA)qtrtkX^=N)Ld1Cn69_p+^1ip_RIxf8X|@P$5jRGc`0jh!#!DX)iRLy&eV zk<)zhGR0^`*Y+e^Fsm#2Zi6v~8#j)qs)7(iRkB*nsLO(;*#R)C3R$Xk4G@{lYV2x8 zRT@6{;62{??zd<*mxSOTIY^q#)f2Q*tX6Z3GTgs^pRd314L<$Z&oW=kc<|s6F(&%1 z<<8x^6t>{;<8!|Jm9OyTTW|6DM?cDTyQSOiFxIflG2@%fhJW*Kf1h9Z<^PD~aw!Lr zmJ3H|!)CXW=}HPDlf>uZzq zq!vzQ;Y0rcp`oW5_OmAq~9IiMB6Ix#npk?+fm4#hxQ9VJ)WbI z;O9kUg~j6}Bd?y#=zT|ukv1D8RdvPHdd-u|C-|SYv1!gLj_Yb}J<4 z?9Gs_QVclP()TSVC&!$go`}DwlHy#K1y&`Z zYbncuSy^X_Q=%v=t5r>mfy!z$fxg+$ZZDY4YO2!ULof0`6vm3V$b$!GJh^y+){3$$ z^OzyL-DPG>tT$^eE-q-hPSP`+lLIF&YzC3Q_rCX@xUR)O+jW#>C4vTH=$xan0$=E) zNEU*Q1RV$-F-}p#IF%0Jf=OW*R%S!3(P@v*+Ut0%f}jVsg1T0C_om_kPpEMK9s@n} zq}UBz*uoBfqCjp*dI}rO6UYO_YU)@PwYYL**M^eZLzZ{XlaPHTnK&xJgwS z<>7*#>+v}rw&Ws+%81y#GD*o^CaukZDhJ7*jOH!kfFbAdf>$NTPZ?fg(D} zKD|u}l}vUvQ(~`}^vD!QfHGE?SV@s|8kcN>VIqb!xI44Fyc69g0?Xz5awCXrRHNo-s-(?5rw7xvFK z7u~&DElyUlvYgy*Hz;cAy5{uO3EzGDTU=f~=H$i^+R7;3yPmdfXuB326S@$AQM97E zbZtKxe@zd{4;MXfpw=y{#q~W+CmI1s!4NxAACnaJTx5%)7(3m8dTNZpKL6ZvBb{ni z&uE%POw331#-vM06O1?QC3MCJIX#Aq;;4l09mUL!g}0tngcvzLe@xRl?%sKx<#H*N zg-Br~8oS*!xMo9bR}?A|Qlz$uqzI6gkcT1#1$Jbd_&5CYa(o_+RN?%cVBMUL>D;H7HbQ%wN!PLwdxk5Eh=fE3V1wT1?dPf zEzIJjV;bSdfrvk7*kgtl@@SfuFm_xykd1)EJ44EWA*nc0k4F8yin*iQca=lHD0=AB z2ADv9I9!?+Rr`-0mO-s#!>=d8(?Alc=Cy(<%g1X|)6i94&#OvP-F*6ikt)}$I!1VR z3geB>Pns^T_f8Ren?gRM@DBf;6;4wITDqRMC0`rDuw0B27NDB=Q9!`ZD4h$O95X?Q z@l#6TMN1N&g_r{xQ+C&rLY>CVKS|QB2`Tr}As?tw7H39Y4{ItBa%e3u7YUMhY6KNX zUQv`Y;jiaqU&xg{MFmM1Q>G<(FRIl~-Tk|M)-uH`eP5Zr)sRj)|hQV^BhE zXK1BaZ#Vhz9kLkG!L_Y%eb3e9R^Won%iV5-iB->P5n;td@PRHjZNsjtu4^gIxicP$ zx4pW$$}q!L(jye?cH%o)=P$f&5P=_zHSf)B1+q_q2TrnI;l<}@ z+lIUM?t+5z$7fWv2p+ueIXyk);-clwoxA+{um2jazy5k&ep}kMV>X-f#V>w|fBmoj zcdo9kI67J}pD)l_D>m9%Oo4?8P&wqsF;)viQ0mbFE#kz#jCCZj) zYf;t;{YPo~sPVBUq&+q(cG+pDX89xx1MYe8^}^6MpA}Nio0xQ^o=N$El`cx*9Hi z^?i_rbU+{D8oNN{?odr0L(13Zv{R4Q7k~#v{;3t?IEm==;cLc&#}Sf@?g z6$E9ok-9#>z|+J%FS2*rlQJqD7GRlnW!60Z_Nzy)C!Xlt0yXQBpKBM^(@0dq>lCXk+j}B&Ehy^nJt_F?WCR?W2aUQ` ze}{k9ho3XWQT;e5?hGi53fbXbd`;QVsUoqNx+SRRWx z(qe_S1-nN0v~?vhMb=tE^z`1LRHApCG%UlCJHt9L#Su~z)A%40dA{CtesQ%HlP_bf z_>GqZ%7~)VSc^7tdd8Ti9W4!#_YT{%4L%20_H<}#nayjI(bV-!icpXfLuZElh*elg zQs_HJOb%@a(~Cr53tS&$gX)vetdz#7NKppn^EqGro3FC@&Ug9br$5f}=A8E*d?1cd zMNL4{c}EkXm>3s^v#T{Py!INaC+8R=SM}wl#TY4myFO%U9PGLcg{|pb&+q--?_rGP zSAOMJ`OV*a31bRkgeOndoSxjJu9hej>3a_<&~+`Sh%t%~J)u|37c2g+fAa_2|KL9V zaIx%yG|-oNl}bl zrkW6j(!P5}q|9luxH{y|O4p+^K6`CF_>_V7Sd7%P+@{Im=_!rL7vQe>?vgmIF*GpPVdE~Ir z2X0>JfPXj`MJROM6$o6Dxx7kqwdt5GD(1_A^_Ax{KlanCFV9&nYYLrcwimqhjj!?f zKlptLTT>O9`K+Ybt-0D>vfFK`3yV)4TN+H1*eJ2=jhV*h2{8zE8^Km4i%t?DMKQ9k z>%A4G(e%lUmIN^cq7S6F2d-T9e^Cl-n(#Z*c#(;eGXy`L(!u12_faV%TukqsJfSLP zD#;-A+;?YMX~~K+GHiEE$KrU&u4`F+_LJOw=_5RP_yOzYk{4fmohMH&z!oe{j#%nr zg7bXwZ{FaIzkQ2$KllKx;CQvfT1{z7jMb1N^`dKAnzkkQz@ko^oZRBclS{t)&f9$N z{SPRs8QaZ{t98SlfALG)fAE0gqoZ+?x(~gJ`F4}Ycpnn$Z3B%&@FZn%QL$LeXxfgq z-~S#lKvh;0)(UJxqKE}bN31fGRyM(Xzn6xMz0uXxtu^9!L5#;h-L{4%A^0 zdzuffuE}bz4b+ou+f+BD23+aDmVY92m`H{P-vTvN01X}NB+6-A0P#9> zqqaFzAISx-^FgAY+Eh>eBG30A!Bu-8Wf(U{W=5L8C?nLv#NlhAZ@HdWF!|L+QM9rn zGhr$+nPSuX9m`<)&v*@_{KJP5s#By;D(?a&k10Q}!2?0;7IREdUUv;5g^(gD%5^vt z=HWRQ$OdVGXR9R7T^c3AlS@!vbLE<3C5}Zm?J@osBYoFX&+4o`ldtVMnH;+|Wa!Ay zIfZJZ13x;t!D_i+J}arL!susFD)A>@_+vusIKQ}LyER-qdC1k(Ik!$vacx7}H!P}J zJX&HP7=;evsOG&Mmu4yLqtC_!WDZT!buu!6s>2v}>2lMk7Z}iMQ!f|4JyrS~a3ZgD zT`_mMN~t`O%aavi$Tv|=2Sy7yI~%izY_7l-B?(C?F6)Z3^T*scJ>m4$DUTjK;xE4P zSA6kHU*eDc_>Xww8(-(a!~4wUHLtw#63Qsf&mZ%xZ-0}f*`f@D;6<4e!>BhOZWvow z7ONG@)ruz<7Z_vtkstdpKKZFnarXF}yLa!9fQJts^5o(?J8?-DAq6+(WZt32uxxe> z4*0pxeU4W@`WntTR>wzFb&Yc#Yb;e&GOKE;s-!F}R*C4t4Azx7C0R`n{b9ST)Lz1? zuca(A3Rw;pO2fFjUs6qk6&XL)6W;2;S5@hd!ZwEb8Oge`J%K>!kCciVuFg13u{U0~|hSeUPtY2k zd*L3d<0b3O1upcGQ|8)iBPf`&RvKN1vs%=!b1hHS7rgrNYrOi=SLuUv=#QQ} zV0B}Kd)Fb>t9jH;ag0MBc!e=~j*nN|y?ck3UV4!m$15%_F7d9#7KXaCs7hmOA(nXB zjuPxq1r&lT-X`Ppq31As7^JxO1l<=wCVbfaiyHTB$@igtO*`7By2)!KU3ERyV=^6$ zv*l9-FC8|->Du?2=6mJBpq?s%A5xzZ*J6kdE8qy(Oc)r0rQgWni0LV=g35(8WmskE z2oWbNh-(>~2O?(mePD)z$2TlQQ`-ATj0a^JSk1Yk%g1k0dqp)ux%?0mV*i7q%GkZ# zHx7AOC9H&f=NV%52uXRai+j_f(X)E+jY|_>hP3C}rjd(#4GSMBV%MIXWX2IrO|rNK z4zx-NYX(1t96a#xP7=zCRnPZHqODZa5M86P1O{rs0qN=oh?y_Z^kFVd#!r zZMT|OoU;bbx{5IbWR5Y*XUXc*qEA=|j`NlD@^Z!sf-WC%Rm$?r_;sgy3GB_Kx~~iE zS`e(z2c3n=MMrRH!4y$_TR)t*y52GjJvZ0a^h3vQe)BcnJI0*&^vf@~ef|vZJ@@zb z{2%}FU(k(vuCK2(s@Z3nZKb%i7>Qvdg+*>+tS#NRCGHP+U-Rwj@A)tP!9U<{{`AMV z#&P}pnm_xqKjUBg^MB5-fBkEGZIwMr#^f?5p2rL&FEryHqkIQFGCe7N)rhCb4Fi#Y!y!!i^ zCt{tR{)ICa^mN5OYfp0-A(diW?(~bXSBjpv*uQ1b1!Lu+>y;v-E93b`J@2^=bp4vn z9Eqt2nY?_@vRUC7*B>uqott6Z%wq;QKNQUrr^Ada%%}xqyz6=sM zYXwY^U4#^8sCJUf?%6ecR1xyk^$wp0un}8l`eDy$xaY&eTfTqu4aORN{CmGoG67o~ zLKv`KJ4|N`ChHX;<;<7@VDNR#u{-kov*-NiC%@0_%V)g1|AGJIfBvWZ5C7eNPkZ}J zy9=Wpc~iRFdA3^)9?8NmMsga7Y2eqt`4ule|Ag!74aN!W=89*}Z>g%L*b!9%mnGm# zg>!}+vkuoy!7{F18*3J!l38&DrU!q4H!j=x)sE*PmSnY{TNPll&X8JzDb2d*ua{G1 zzW#DX2D4|^$^|NOA*?cs65?#l_GA^k$XPK<8tL3wnx{MBvyN9}<}RPlS7j|bpB;14 z_+;v8rq_Ng$(uX0Ga!zc4~Vl%f;>T3S;;WxdN~(gneEl{NMj2B6m#}In#L-avgV)c z`*Lnol&Lt*V*zF1>JvWQ>C^zR2G{3Fu2q(lQU-=*}dy*t<1^e!f6q9mGy+>Rs*LF>PaJD=mBIU|dwzOi{R2#0IUGs1M z&Huyy_VPJD|HD7#%@42m=JmIHUOBd#ZP^azf+Nf&;yTY@^68N}bw|Gc?i>F6&;J?y zc;aV2{{=B;zWVC-c=r5-&Vo}=zJ&9d27t!I4>1ygCd2x=dBVPH&KewZ39BhW1G~Cz zu1&G#ktKJj9A`n2#;g`+X6||o`eu=f(ZKX|U3QO?&#Go4Pqw;t zwX8euewmpSW@0I?^w(yJ8e)|nqn}+UqpdS=Yesl8-Zw$NL72WBm z1i?woF-b1%I{s%VyveEpLb4vZ6M+m@m~0<4`YdCJCr1sk8a7Y=UVDtE-#29|okO5x zdVN=$Wtp{XRa3FqG`zbzf;Bum+_QUrO=`eSAbR_ldM=_t*5>%Dp-PFLK#vJgL-jUw}bGLJGi+h9Fj3eEqv zPhudsz)G&i2lM=S{rOkMgY(~eIYYj{rA-A!%=wD^sWF3jdiE=;gR3MD%?m%7i|5L5 zGQS_ne>W>-g;}lgSpquMrTDagd6{p@s@q-TRpoqk4j;i%7WIP2j8WxM;x^4{v&@Be zf{7~(W||?-!q^qC=<#6QSnYZxuhI0&!8vJlZIK4*sA@SB&R)BME|t|0q6bT!HOa=p zc2m=jgCZPL#5v3LbwkJ_IrO}J`<`lR2-5SgzvFPf=h*Ez9gf_+f5)5G-}CP68{WKn z#n*rJ9|_~Y)u!cY(~zRNXrDiS&grl(E=pb0nHi6}D!3vu=zmJ%Ie*Pp4aCaXd(MS6 z=e&+Gp7VUK*f-w*Vi20Qjy5p7jnQ&+kGY_A%Q{RwX? z?CllX&tI_JZAc`VO~o;fWE1AXXC_hl^kC1}I7?kQaGE7G#>ltdea+!?&*9YZfB(P# z3STw+{AYi_XPRxe|ORS0h#rcNYviSTbC4`xa znVFL!%$k^O*2xZ+va9?^fqTZ=HR}zQth(;Y?UtQND$;)h8mRT+$^T=f$P0Z|F&IN0$WmGQwftiq2 z=E@@H-+ZH{@41McLvI%6*8FuzG15#2lgSFNNhPXlnOe_H$%nfO_15XQKQ>@h@1Dm!XgL1R2<(uz+ z;N9D|eEsd${OX&(u=^JNqvguZ$Sx}3VY*lbS_K$xG zqc>~Q%4lIyH#AK%Q+6~$MCL@{^G@h|-zz9B$T&-gft%|c_ooLWB_8(oWRqw&HBt$6 z>qt3ZoggtWCe`FV9Pa6cBZy(My`u6OkeOnbuZ!6TDJO zzr!G$PJ6C4E#4Y7n--E2JXJroXr2`-d5qkh zf4+Vh%mN5kt$8Vwg`j3;&^GhP#a_(N^I9*P&0KJ0PM){`0GUP2vl>@_Brg0yKW$dH zMmhhuX$q5_{%B?)9TgF2&V{M4(i)p$MV=3MQT4;zn3-isJ25BBQkLh}R`V5?d9XE7 zrU(f!8CRTe&Z#pmlNAVMJS0y}b}riB$XP*LwuDc{6u7&4&;GEdX=+}5{~h-acbrZq z{=;AX2P7xnefWWWcgKhQJ3f4P$8hRt>WZpuk(?REfwAkUz2~bhKWE!+c>lu>oQ_8w zNjl5%c*I)EX4A~zd8RSJy8f}SOx6#|W)!0_Q9WNE2(9&bG{4l}>hI~99({fVyE zzr+wnDqqhtBQx=B^K|+|l4Le1swo!;VVvKOL+t9YHS_a!4+ue>#;&8aucRaFx^B_LVnbYGY9 z(!m;Yrb9K4NFB0@evva;7-egn5_o54+~8UsnsQ+1ds2>?SX{Z{bQ3~|gjDPzS3>Ag>OS71X9c!l&Y6?27r2bD5py znKNf6u=l0fZUusuv+=MwTh1)N^D--*Mg`?ol(Q%n6;o6XOGcRY@bepY3v~7o462{(#&$uLakj?e>{LSRJG^B z`*#Eh*vhiqZD_YG))_(^3EhBeEWXlHuyS^up;=c^)lGTua{)H9`r6gl;hZC;zz;vf zS>j=Gp@cd^-=C;zM>n1@2ClBIXsepadUA*iosKZZVZpuac3YBUwwsME0CFIS;Bkzh z({Md8q%`8Z<>uy^!3ay)f3ZKLv_vtqj%H87vvK@p9V;;IbcH?O~A7&>ltJ3f8+f_k?lgpr544;=Rgj4^DtTdKMurlg!R zSJBiho6U}@stR36KcDy7`NXI*Yili)FQ9s%>;&{-cg`xkt)%`g#bi0GvrL6|8aWx| zC5N727&NUlCbnCJ7&%*07S9+wb#19Ch+!$X=QHG$N(4o7#xxR=KJ$_@)>rttp{^^O zxAeX8N)S2Y`r6Vl83QS4$6R@jGma>kVF-j6$f-!yoTqKt0@E?;2?S>C1k20vQeOw= z!z5)xib760s+!g+u8bV}J~DK=v~4$)vQ(!0I5A3z%d*m>8dWf&6gKYXBRE4(*+`_0$fKiu)%_uul}x4%(R*bna* z$C0}a5A3dP`1HjmoVpVsjC}dk7l82U)%U#p;Vm%^oKDBN@a3GyqAG+J&o_t!96}fm zB#C&Zm9p#hoQ{IYdLy~ov>4#^>sRH%B(!af$wCSvwO3BY>D0}7eb%nDNzJfIbT&l; zZk;O!++z`r3g~2B);`vwn>pp!H%&7~5KkTL`p4y*;!*)|KHFPy`Y&8>%m2#a2${Y5 zlTBC1F%l&)4t6!R&~2*Z%-Hwrb~~!7)(1T#aE7L^L#=c3cp$}mHgnFC2}yE^KgrzO z?x;rLn;~-e)@m>fy5>rOH4qsJBPTD1>sD;W1H#gUO`swd;It_gO*_XV0`GWoa zp3|{sI0Y=8rq&oDit9$0kd05>O=O;Zox@*b?jT)xhXyMpW=NBbMHKE4LdWUwpe{cW zA|o;N#AtLplNJ791X3EYNtVnov1s;pT7d|#-x1pE4ivEoZtnV)crvC?mr z0#{~gSQox73FB!!l@n~Xgh9U#+ilGl0#`f7FbwpAr5{fG z`Zs^YzyEjthO6C{H*db@?c3Mv5BG>cz<$4{>rWg{@9>r5 z?(PHk_jfv9pJ;kHmBS)0bN=bSO9DwV&N1h-dH`g(UCko{yVzZ1**mRAcON4@%hM0m zZ#A+%_4}t^ch*sDJboQ)ITg!k#PF1;__qy=&3YhoA)A>Kb7vEKF0WN8Z&ZCqopD8v zt4am$tI{=DvcNb-Zgw~9c02Cw9yp#lVoGY2^d2#ar;IVpb2206S9VjnbaJL{JdLY~ z{isO1F_ccExPYt_W~a(X`mVz|@NGp~y6-Udq&V_7e*Z`O>7V}R{NyJ;W*B;vyjiQf z;)%%bG+E$s1!P!a0zs(!6f8KeX%;+QP9*d;vDr9`5ptYnn3~GmogO%y9>{6X6JE3! z_d`Zv#-JU8)}@h@1n2zRQR~8NC0`OQ7IBl-cs0o{#d3OM$n5KP^Js~+&wnjkFKM^g zlfYwf#9KN+i#c0HWg$P5upI#CvssrYOXy3$mv6 zSPQxMezohp_ulEBNeb(6t}N%!t^;#o>GuS ze{QDn2L-5}Sr%Xj3(AaQLtddn=Vp%ug0ULrEh5;bT!H6x@8dbBzokgaq7?DYIOnN1HQQ}V3RY=tsbsA^ z35Ln@NnO`faSN6QuN)MTlU~oW;9SM_s%7Z(+Uz{@vQN8<6V@cG1ChWubU?&P21&|C zon&q?7mS?(hfH~h%_Ol}gVa~&t6g^&SwB`zrHExI1gkQiu=Y%*JKIx}J`;IbT9v}B zKQa@_MJ?F5q#4+v<`9)TJ!NFLh&EblV3l>SnxB_vPUo%pk*m&>uT>#ZOCop92}x1_ zO(Q8~jPoTH$}g}Sc^qXs?U^P6jW*)ycucv(fO}uYJ%%m}IMeDumNJsEy1AUrVY^cV zZ>d_ZucnyttS`7nN_0*vi=>c({WLZ5XTX3o08&@5t9fxVQemJmY^TaCT^}b z{N9f~=k=R!dH(zpHjU-o`_dJ6Cw99HZ{EBDi8xmQnN4e`nwrY0bFA`ESEh8XX$GH9 z=^1Kdnz~x6DxsWL^>l^FJSW`GH(awWzO%w_iF}%;`Xc8I!6gt+9)}XI=l5rUQLCBm z`qxrQ_|0Z>wp^P4IM!NCRrTDpW`cFQm6)0q;FPa5AXpEL4iKL`*os^?~-<)o*t#K>2 z)(X3Z%pFaZR6esxf<%(uI4}qiA&|x63V>-gI_KYc`70}@ti^LhOPfot80AWr1H_>G zTujkHlsC98o+H)>&Z_(@=BR%*X>5+h>6CfB3cQ29S7?-R6E8azhuM-7N9lMKX0BKD%4>>*^M(j=oEOBi@xaBeKh?>ef$c7ywEV=l;qqgp7#TvucU`w~pe+`-DI@3{IAYFbyN^!s z*=PAU^>y;V&kemyZ#aF^*{o`Uafo`AbPj7ADWEC^rTWe1Uo@ zq1!B=@MXj>S+8>eT2H07+$g5GuLzTP)tJ&XmQh2_i5LTwU*vcTTrn?FKx0;{3zlo_ zblX}(q-N!T9*`;bjA1BOia;gc$yk@@hmH^;#(3I#gYykB>ln^?iAF2B^~BWk z{=uZ|EVXd&gdru5KRaLXU-&0lkTn)oO&H-x-hl4J++qNwx1zQ$-OPtYqg1}ja zyB<@`1MEeEI~_Ndgt67foyR|CFm^dNvCCRR&6x?>Ttq!d(KcV+a^#5-g`eVwr((J; zyqEBtb(i}%9)$%vxVEycv$_oP5>2K>OtIf(wD3w0ysM~vqlK$tBx7Doti70)7^n+GyD z82XNP?|+gwCu+;qGr+-X;j7SptK0|W43^DQuBWUKhmPMMPCw(rl?q;FyuB1~b zW#Sk)9`6~)9@vnxXBbYTIADxMoy3^ug;i2LIN}t=XU!zDl5(9h^Qd9AK#Dv~O`ER! z(_>e78M#pVC7UvG$YArMm>!)vmG66wNLlDvQ?8iPn4w4ja!QDe7$+qTsIUlfF6hfk zR&R0Ztv1(Yo!>PrbjuAQB`v(xTtvN_DUwFrR569(WHR$JWiApI=8nEtb{FZ`Mf{Cf zb^HXxjAR)IsY7zYxP~TaAu`U;_4nLA>@j$5uAgJvGrVgs#^6ehCIC@ zcDA(yASV*`7?7o?3HU`gc#J7W{lx$!`Bbm2kEV?&O7#J?_2&v&PfYpr9msql4O zKRIS_&ONdPUoO{-x$y5#eb6Nh#jKL8Ce5I%z!Z`&S*2mMt!dmw3$Jq;zae@GI&nDT z$+75!G1RugVu%v;0gGu4=+0x*<<2^?d=+b$vT%Fz4C^Y6`xD(!C1lRlc;Db`Ro>86 zHM#w$no{p*n^t3{jW7-)-+uco|L`CFL+bj9Kl#JI&5PYjjA?PXCRZB!$Xu9GDZF}+XWR-l@}v<~blfB+;K+z8%7)p3 zYUYDF7uKoEhUVvHBM(v3YmrMC8;2iNF+N+{ub5+ zWl@(?ASDMhWx?xKB{wfT351kKkP#yZV?r6Js3z9NKnRvtTk5(cq>jVkJvl2+plLmR zYpLsorZ(Ikp&Q3}vLR&#u1mpGU^IUcUSkUt7BFq)R#P z@!r#JYQm`B`xxUgs$K11$|$|;Th>?orO;g#U0D~_ixI(k6d*i4B-c%)d4ewYJ5>!& zP#LGsnzPWWuID= zE~T8g`*4S`nX1*L*M7ezK17UnJbQM_i-X|9NN^f2X!HFv)sysvF=Ymjlm_bB?NR5>1 z`YMo75{!X_)f9zC90xNqO)?-UB5A<638#w$B&y&kFOHVM(3Hk#Xp-uF_E2m>7n!Xs;c^7&sjE?2miKp(Bg~uU>zH zvx)D%{S6QM57f26d&|x36{pjY6h~_BNip#5?hb1`h;Z27V^4+{2X(Pl25&sIZwbSR z{xlFrRaQtU29}94kxO9cij6zjk|*SZ$&>b77SqgnY#@2TY0AppC_I82t;Yj$X@%rb zl;0CfUY-Pwof%{%=bB_Wv!BkfJ+g*8m@_f?qs7_8@RU5a?o*tMu?CaV9ARrNztEER z6_e0f4;f-eb5g-H*UVAH`BFUInS`~5+BDR@!aEJK8~TATM#y&23CkM4H*MjC!~OxV z46|q+9a|8vI9#o*!?8QzE5r4s#v02I20{$%>K#{Yixc5`v*G7I{TYA!2fv`LDok;& zx0NM{p-;NBa2r90tRaqSo>-8MY3$Sjok};DBIJM};EZmVt({`KGp0zJqP1GU%0zF{ z_L{OJJU22ZInH~JSVM@R+({Q5@!a`JI)AW?vLmcr&mVFTyvKQdI4cn*U9!z9v}9q? z7TvG%kn;+acws!B?#wIO@Eo^p+xQ*baZieY%DeL1Wi=C7uZzMm zF0s~-lN1At#_NQji?FJybzC?zfSH$O8e|4~Tp;HtV+vn@x+UYkYv116A%3!n}l;&S<;3 zCG>~xY`JNS(O7tIFn(d=rV!ZF4wBOjtrSUDqL`+9L2FB@anZld*E(Y{w!#{S#A0(b z#TKev-IQd@g!r2dE+&{tDM$n`QRQATxfXMgg@r{|J;7#jL}Ww=vq@sUROJ#0b73yX zdCiJgk+5b2;RP~rr9~Dii&V*!+3r+yNkxK{_3yC`pO<2oAb^a(sFErXvUt5A3aY%2 zL@FaRn~WM!X3EUM|1}e|UbN`u9Lj#Ej96CCdXYqoBm4b5hvSK^KhXChSps$K2(jb+ z`w#r)n{U~ldh(RXRysWec*_z@Yz^D(j(!~Z?29k?(eM2YjP<;L43x3BP(s&=u)r@0Wu$3#R>#V|-WmG7uwbhwT7kLC*KNHfdbM9sZ#nRDE@5OwE zp+Dz3^Pi@yoxir26XA5kyK({wW#f(J&lAoU0y1?MnVFU}@f*5+V6)wDb92kh^)+qX zkW-{P9JznE<8XMud&6eikfLzvkF>iDX$*9yj+irF{^%?I=nwyx{t$Tg?gOvizM<=S zDsd%Z-7=gar+!asTDF@Fjnf&dwT2v3%NoOo!_c@&XRnEiC#J9ivE5hl(jdlE; zzx88&{_;8PX^&;ZnwnD|Xtx`ziI6+SxQF8dhOyAFmJ>K#%+LKtQfy`Q5E+5zHyb{= z-7e_|L1tn(OAe5UG?6RzkrO#zt*ju5BWx2LXZHk&Ip+Z}DQRm5h2Wmg_D z1CoU(kr*N}#Ch=~BrRsYO(b;W6>EVj8K>h`@=iN5a#aJxzYtoiJUiXj>%D5 zd&ZJTb;33V=O_L}Am`yCo_#V&)~Qd zz&Sl6QVL|Tm{iDB&f+&tm$E4D!q-LmR+hXusbVIC0-7pcdzOJ=2#n)E2%74>Xn$-WW;N%?{r!8IrlP7m$K!#+ zanJ3|bFOc1x!=Fy_IbmXU;RGcz1lN|#Nlw_%P*ht^0wmmeqgt|VH~d*qA$~Q%>2BDC_Vv30LR8@typ0?Q#V&d4HIGm0&O{;RmkW06p z=P{@P$IZF=WQtfd=YDKe9>v1&RViaCs7aNoT1`Ta0ZB_Dw_zDc*;QZcoGt2`Jf||R z&1TkG)uUf185V4$eoa+XvE6L(i_N#p$?}TGzh0CH3t385G<^)-SDL(=Rc1BLLhyhQ z!CQlOwuJDh@Y?|1`MDEIF*A%Kcl&#e{edVWViQS(A#{Xn7(z$Nfe;PDXjYLN`l#ou z38}U9IA<7!H2bHWQC4r`EBdHcwZ89gPMsuG<*BX0`MmWCuq)RyW3*7kY^a+J-Kk@L zcgMy;l`~uKFfs7V8=BBFynC(56TT%6Lf%v~n;p%S&TH=TBYB0#@q_-98R;mO!v(thtOBO?p zg7|YFxwV3|S!eodSjh_8I44L*Cb2vdnK;KhiHU^`TjtTCn8hjXN57_sHTt9S3UJEv z+d~(p8IP303znEd841~yNhVBbr>{@sC)wqnN8cw z^IB&e-l?Oft}9%lqW#nH$S;5SD~^X#ky54dU<>`w&G}K@JH@{ZJ=R#FwOH$^iUi2a zv@Js}dQh7pRbllumBBkhKX$~J=(?V!-cZ*qb=zRFC56lov)&SoM!Dx;G0F4Ur=OC? z$g6K&@!9Q;+wG1k@7VwFn$w3Lc>n4*c5 zm83ihiRuoDIT1o47IQ!%&$6nRqgt>{nrHE~nWSbqcEUMqvSjD5$tm&7>Ox5Tyd7C? zR%aZ8Tx4m>C}E9dG;0@{l?zAUg7=%|v$>2jq|9_DW6i{wn60{IN?bNGk|GxywKb_I zJKRK|C1<-r3g%fKd_3;4*3Tmzy?&_sD~G5ZuqpFxqgQU@RD&KUN@oc=e-YJ~H%Q+u=#X%(cnnwxbD2y@87|FVB z5Tk{6a;Q!47%8~GSR&b7xiQ)7$kriq(bXbl4OA0gI_vFbTGGmV<(sRiu0ZAUjiT%VqySasrC+%^k{1iRHE!iRTLk!I^;J1z6pRz}*As>6C59wg zbW+xi?{GMlkx98G=W?*cfW$~hfvTzWeUOSyxEyAbQBBpfR2I@0sOpBQs<0`N#n26j z^x=*V4-f432VxX`&zufwr0|B&b#yrpQsmU1ICUL|W5@HCzoDr&?5_Vk<0yRh-J4>Z zGMx7JG%iy+2uTRyxj*!Ttk3PHc6fu1OtPpHt{^3oEHU!a85)xoU`>cox>rt_SO{^- z_cch$Wuf+1A)xd9Txy5^t%Vn0990uM(G@4c;`C2dRpgXD>M}e3-1$5LzI42k(ae5S z&UoQ&D~Ue-fPTP0J$AE?SLLH~{_7BUadWL**-+_4?K*-$-wjhubzy znZ-qjLbe&PnN((UF(&G!rm>nbJYm+NfK7$WWSurq{ZN*GkcOUd?C6G((>Q>4Y_>aa zo@|`X>cru_4*8AoSaBG!RMvA{x9sok814?Z#&WuQPxq?h_78qS>h9TA4wC|LIA9uR ztBf-Pl^+(E+Ih)kWU{)-^5!!Zi!X)_aHxVqa)30Ug=7vZoyQBa)jH35 zf}A6gwEK~i&;0!}4+6oF^tq9|C@M-7F-1pQS&MOol+^VatjrmyvsA1YgtF1Cy-AAu zOfl$uHw1<_;OZNERgol%=7L6?+na+{`f*7aV(x^hY?iFEEsLgM`U zawdc@V@;>gLMWeaVqi#0t33-JE#&e9HgervKgBQqSP@St6^e(*)1fJI(BWgGz#2jp zqq04%)2ou5dho1oq>vO$t~20>Z~P2M31cV^g)&>mZdl#D1!pYcy-LHfYI-YQQTd99 z)opnSODsz9;^!>HA?bq0YDYHa$g%6_W1!h=ba7<$C9q;~IJ~Ryw#M2@`5Yl*Lc}nz zkxaP1m4-_)hO4plXm^@(CfT4Mek(H;Qs-zWIWtvBq5rLWTjm0#QCwf{jM<5Ee z_r_tI6y?a7HDbOKS~C%~WIkxcfh`tnCw8_LTWgdUCY2hula3-{iskE47>@~NHgYJ` ze$cDGHEb$FZNZGH^_DS{#~xGFIPa;OmMgI&9LK)bVZeA;`teu*L!k1ngXQeMo#f>PU&x&Q{AWzwMX9>|cuigjp zs4!j@xT$EXIb-oEOg~Rg6y1;Ma7BLiIN@U`-ABF#&0Nb*V4ap2k|nHG&JcTx`q-95 zhjuWPRfHWfZ6)m z;%bedc0w|OcMfON%4=nsu_mMdV|3J`Yy-7HuVRc$Dh@cABY$jpGnrD{?VRq+obYV1 zYE*Dqgq@Wl_Zwz3rW8iRtUj2zz;Oi`DrpuuoyEK8-({7twO*h|nl0^+RhVUzh*s^-~uJ(Be1m!c3u!db_rX=zKu z7sfKgfshhaPSnn-(#Bc5DNAYJ0BZL(V)c7jc++Nz9l~JCj9gMC+w_RBfSuhmXLkC$ z+9>662*woWBK)x;>71i&TYc@qGUKhPN>Q#M(DyywxuS^Rw-(nm80;xX*vEc;`OiEK z{hd@_^AY-(EKOPM>tet#MT}lL9IG9xu@zUl4H$Sh9(4N|f-bVM4&4Jf10Ih(sVQi< z5D;Uq-f?w(#mkqU^7&_<@$I+Y@cNC;qe$9WS?BRqrBdEHOm@ho0vxXLG~0%%so3R6 z*Y{*eRHEMii%=UdK_xidgQgy|b<6GUhO3W{dt=b*=t{xWpgm(P#<`*eclxBIB|L9d zEt-|OP%KiGFTuHsYmOF9u>&cX+2=lKt&&|j?6u9?P9W?_e_LSQID@y^lg4x^ho{V} zRO}=|w=;&ia<&9+vdaI;3;Hsf6`@Vex*Tir95wH3qOx9-(2Qa)jYM)(o9i4RnHTm) zE{B2=&f+SZ@N%e@77oSau_&{1#XY8Z(Yp$K(*q1kxSWy0;Yb`u z#;Xo$vvv7~IV$ym-n19`r=Q_=^cWcZXo3ut3Je2`C{T?GcV#YjG z_@=SNA_ zvu$)epD8D@b++K`(N9`?PNxIpOw5VOIK&8{8>p*F$z&O_Bw`WgSS)Q3W*ZzsH&9m| z3pfnk7#!fUU~?vkBZyvwvUPZ=s7#~XhD*edAdL7FsI6gV9kqujiLlMo&hzQ>TfX|@ zOP=3elR{5ZS!!=N9S=z8sU6f_czM%cLrrZnP7;+UMd4<%BVlOW2A4fV)zeEDHRQpl zVZ~afUVf{{KC&RzEfM3>*}pEl*s_QUNVMe1v{Jy?7!5d-3FU3fDs7fE%Dlw9SX}KF z*HDpvF#}^P&OnGmvG=Y*0_P`E5uVmqoN*V^sfh(U*)^@w#-{jjme`{?08=On!)3gs z4zfUwCE2VfC#GDmT=>GdILva6%NE*}q9?3mLTjEwQ9mSs913ZzNSY?HnJtG}(ykW_ zMqGIgr$k>nt08g`{5z8icXxvJq`BjE67fV#j59elM^|N zq>CfExX$tF&4o4zUN^`gs#^~V2F&28nra^#4+HEVeAJ|N(@oR zQmA|}QrET&pfY{mF%A)1BwH?1Ktu^!07tp}{iVDXRzPCZC29%S^wtsc#2{HfUD(HI zH&fyD&K3%vJQ^#ke?ANY&N-dsmZCe3<6Jns_aBQcc~sQbhr#;uOlpkZ6%z3%Wmr~B zJz399ij`7~oc;Rze+&C;2@NcNiM&pvC@*r?_m~36xVpNc?@tWFNXn6>Zt&JZ7Pgyh z2}gu^J!AAbba*)O_SGAX`(ts`DZJZZ6z*NLfH50_)Qq_$Wi3io0BhBDI}QUjj#OT# zov^DtpIp^E+txI8gU`Zs+wjFFFZt?=FSvbiOEQtF_B?-f%i-aHp*vDLgT%n|XSaO* ze5+TfallwdWgIVWo^u)^t=*7%$RQwBxueDk*fhZv%MXLW7s*s!=IB#6rr5FoD$2sL z5R@sP(P;N~$OV)?1EWXo4GPA@6m07nl%g@2!ESi)t3*#qfkeO8vd9n|e<(%YFa3vLkf_7id zsi|Rdk1s)mGKYl<8Hpv@9FOb-0(ol$QRFd1aY`_!!QPX z)zG#B{BXzn!@%wJb54g7IYzvzXnaNJd&aJ#JDqeV;Tn9^=&m3h*)<*~8J8_x*E7UG zeYI0bW6o4k4#gC8xoQlVifF*vT9d%b0^B%92~jXAq*FH19F%C>zf z3u0XybIx;7Tz9;4(X>`I?|%*0jph#KvnAV9c-I)+-&K64ugm{+G!0K?ug!^?x;->S zLS$E3QBCI6hqgZ`nds$bpK^VD&Hep7$75Hvl$N$`>8l>EdC?eWsC|X4DzY^Uec+dW z^)-L_um6I&ZD=+P&In!%&VbEPGp~l8FbI)~diNF1S=!1|8ABch!f+su9oxq6Vzc3@ zaXi~peEIyEuU_2pY};^MdupJuhT5I5-GHqe;}AIJ17mmOv_CLd%hhJX+wbm`zngTC zF=jP5Y&JXc80Zg2xx5Y-MukgavOi&K6b3oJ7k!t1Kl}56I%U%d8GRYw!-7FNa{r zE4}f#KwV~CxSi7}t#L&SGqE}JcX*qrU7q{NoP;>jbp(;s6>loMl1h$F$(EaSyDNS z8iLyOJ!u>;Dd7z?bxqrBXxf_E`x#~wi$wFbuIbBrYJ1gidwYX1hKGlH#t@OvQxVxc z+p%r89EQZ}`#rfkva7e4>nq;9yJy%x@RPs!6W;&uj&2CF?S|Uz7*8ETcjE5DdtSVF z$q)=lB3IsE$By=_2rm2rK+1z-Q$T1!(TdR^De#j|Oec?{9_J=O1+@vaN( zy3opnbL|qL``dK9DJ6WAd~t4=vt`cO(kf={lV8n&%av~)~nTd`bJMlA=X-)_a)LtXzPkGWkMJ+-s4Qg7?UbU>IxY%LsE32 z_m#?t09V(95R0~;BKEO-ozvc98apg>tBC-YSCl9va%ruzMtgTZKSXx*>?~YZL>73h zDJ~~%7w55wo;9&74htnLPilb4EtWxSncd|QYorPVYjVkJQ#-a(V^>+El~|k0$QT5d zV}Zgeu*OZi14$4g0fP~vj0|Jd#$gKH5+R9pzbOl^-n`LqgITPsNXC)5YAjS0t*O~K zOXVGPRpV=?TYfaKHJOrjZ3eEdJi%uq_sAjPyrT*S;;F}z@iLH3BM+woqd0a|#nx-5 z9VJtxKt3J#&0qd|ayJtCo)4#!<_qSC13r8C33c5vp464qc!TQ`haX;HV$T>eK`LBz zO@BI(Ql_dru{#mE13&uzS$ne{JF+ZG?>nQJ-N7e18H|XG9I7&vou!h{1p%!A&;UIN z(4!vvKME2c2+$9Z9)$*4)lye?Rpk&7WN`554mO-g5Br$iOHW2twbTTNAcN#}_v>cc z_St)_Z@qfKH($Tzx4-*6Z$3VfjfG<5Ye|XKdPNKotu(9ks?KeTpa#mPv)*&Zz-)?0 zF?>>Vo2FqLNBOggm^^pG36nZ5uMt9!4)#a%zn?3h=iTh{Kc7b+=UJ7{O&8A}3bvH8 zM7W$@RQ)LG46U9~ddd?~R>fu@k%9j+}Chpn((;K?S_6db^m3F^fhr z$riQbgwsZp4GK~i<=C49hTdxU>8o4*>NmgUCtrWXo3|hN*I!-p^-sQLf7tW=x8HNT zpK#j_S0;2G3HJrpC@yS6R{|V&tcdi}5oa2_vczzN@rc6LV~|{A#u`+qmO-ru!;!|= znpq23Yhs*aj+^xoLy{1lZ%zX-W#LdzC|Zt~Ic3pB8;i{rtU(zo#UbSy_*kQPsv`{} z1&S~MUep62lBY@dELjo9NhDBY(l~+ASR?ahP++p)IAJNaQZ#3l>&!K_psQkGaghnk zJkOTrWfa0Eyy24ud0tG|(@}apLFrS1iCk0iJ(lD4O!TS;d8HTWS4uSikx~;Qs_d&K zC5sbH#wW8At(@z9&x&t}5mgd;$$N{alIzK$&Kb4Cn^w5cMXa*1Bym>NE-sf$nT~SC zFdAbkcf^QZ+*pfInWhvPGDgiy8!?E8NkyWRa*mLpYg?iU9EStp7{NKp*i#NY)_W|G zY1oUyty$BqFSuwdp(=o0tUOx>{oQ+-X2X~RhyFlDqwCIOyWTJciG(sntn^ML)VQZi zNAeWW?gFJc#yC)lr9TY#oEQ#AwySUW%YX7uc>Dbu3Ey;*5jPxrN-1pD8`%}iw7hzO zIBS`vsWx!sG#OK;f;e~0^RIKxc<-5}X|V`DU&@^q-dSEI*j2qKSpHO(Iv3IBbKmo# z`g|#PUTDt?@UmPxpMm^CQivb>#I!bN$vh z-|%;T_iy>%9v=AD?|1C`iQ5gd7KRTy(#FudTH}i*9FDyG_V=h1Ii`s|iCt4^i;nUI z8mDBomuk!h;=0ll#(vK@9LcJx6O5Klq7uEb0$Uu0Ev9Nl^_&Hlv&0|Om=~*9j_f%l zlo8jDGfIy6F%ZgxQidUi3h2mWB?Ulbp#~5q$!R0X);SqWiB-@aF*(YSIC5eH&l+R& zvVbdE1TaRGg$yQg<9xa}DQHujS>qhPt(R-#batw1G@H+;Hu@|g>P(%X%Yrtf%m~K$ z^E%r!r&EaP%-}6^O#DnIONvR2P*k0%rcYA|mWPNGZZ!vZrntaSX5&RknOLFwC94_` zU)514>J*$WUtEcmxklRmsa#QrWHHJKkQ_1E5Q7sqQ9p?G zI5~6}uwg_KWMq{BtjDtsBB{&Bym^reqlr(~nn%Atv@i56aLV4jiXU ze@t|(#%4>aBQLfsCMm|4xetzyDOcy9=7;wm`Rb-4h6zFTs(`|?$FA9d) zDM&8ln8Y<$SQI9@d?rLv{V_`6yt911^m^WrelEE8xh?qL<;UmP5a%D~yg;9iCgwl0 z+Nw`xDgVxew?*I)XiPb+my8nI@022GilX22vbYgK zUu2Alao^K+hM#}+C4ceDpYi8kf5C;)^Fp{(H3?c^G^m<9TwhaDBzj)ge7YnGgjD_9vuEy9!&ME{R5F^M-G{1Bl$;K9 z<>lHOaCw56#+4!|NU_y9p|hw3rsITi^~gSrGV_iW!i1S5*Dfis(HrBiBo2@Fa?FYW z<2rmA@S&$`wj5&MSOV5tR8ia?j@Y&(TPr7sf)sG8@p)vUz?#Ii@u=WA_L?zik}`Cw zbseEV4ijk_`R1#y`0bm2NeN(GgHdW3xv5;lSr?;>Doc?iX4L?5j^I6)wLZ&z{Co!F z=VfNkO%yywJ^lj?=0C;`{5iA4=ROB(>YU)YSpQRsyZX_rcvUl#X3OjR=9JpSF3j1* zCRO1|3m#f68(>u=J55#BRm^qdpd!Y2td=wfoio!Ihy&QR@Ws`ZuU=fy<&+Gd)H8dImb#>?T&m>$g z?#AcqEeF9;o?>0H2>VN3pfw_QJE5K^1yu$7Y8h;cZFhFH&9O4VbVw&ScJ0_s=@e3I z=jV^+#N9aWrX?97o#xOBiEARqP}4>Nq#6EG*~qGZO7fsa61bsY$#M#E(h$Vjfoq9j zLC1j2r?+s$$aSOeE5kZkRBR}I&4=B<_uo&HXvryxEw^N>hHdL;2hD{`xKe00ErgbL zLtyHAMy>F^A*Vg9^N9@hNfN9tk#5-cpCOF9&la9ruA5@h?C5Xj>mxqw`b^&GVphbVa(*HaVn#% zCK`=o9p>7-j5TgYp{+ujf=&hPz$AlB8f`_di_YW;awQwp^q2x+_J$KJBej4$@$-ySBGcd|xv|Yg2rM~_tMo64!aXi);<7o_` zW@EB5W4H8<{>Thn8cVS9ar85{oo?vBImp3sPdu%yDOX;HcGaDR_?4Ts~%>e6DA zmf+a}CCGb_w3f8)Bn7v`e0p4|KhBRVpYe9h#q4uxg!56vkIicTef}uV=Ea{=M9iOu zox=oAbGx%(o;e=nAB?kzpJv8snP)Dbj72wJ$y9khzL`bfFCzxaYO^Lxa#S(eimXOg zO=OT{2;*SWDAt|j%j*@LDXdiH)zt;viwzACpL_cI@7UOeR3iP;2m1XZes#gC>q~B~ zZpg|ohREaNBf}7I-VtKt>G6qa8dHfahNgI^`e|lPG_etRXfCGi6G#j(*mw$)Oo)Yxkb-gnGMvmIwLmoa`;SKUsSFL!I~rx0&$uagG;Ilwo*?rbCc^^zr05aRV|C`s?4FF zMHbN+Bev;m1&*Ud>CiZfLJ{&r%wahZ6f!Btnr1;ogeF1^gp?Wko^{hOr9fi~))bnR zW&M*^XtyHTmdBvT?Usz9bB6ulh{^@qXo!)uH~j4NOa6n_bIlGtJ+Z!i#d`1f>mLS& z<9DpLU$EQl*|Y|yWDz_KJ>y}hCj&llsii3QjMADAVl}ALn5y#;!~E-KGv7k_WGOb& z!Ok_h=iTS5I5<}oEM4+HBF*yOb^Q8|GEn@HH@KAZ1j9cHdwZUTQ0g0Yf^?sGndb3B zjhQ}?u+HXq)p?|fTxeI9mpnf0m_o!Gg=*wR4`E~&MnXSvdAs4&b;C{P__Nn9`NdCO zaoKs)cqHZ#s}tx*V+>vEK^wFH`9KE034{#Z8eHS)r@~=>prFMPIgM;KE7q$Pa>3h< z%gZf|^9;79u`;7F#-Obc2b2<+cFsbKvfiFzkLrU*7rmGVNFuaqy+fN;9DVcld-k^* zgQ>Vir8U0sSnH%C4Kg-x*5IteJCAo3+74%(bgOtwo%b5!D6KFSoUuzFrAWfWu5FDJ zyD%rR>e&b&KpI_D0(y>P31Oz-RGFCk9T~e+O=h0e4(gNi)@2V+??vxiE!dwH-?DTD zmDQ`N6sTy4Dw-X4^Us>ccVdX-8K5w0OqR6WoXr{2VICJ$TgP0qpM!nsIk%|1aH?}0 z2~)omUP-Z1XGyv8`CAq0O)+bWrTCUyO&X{_xnti7hOa(YT3(;#4dQl!x` z&Rb6d8BOQlded^b>IB4-GFDrThX*J}9&KhE27d9Y-*9_-&Ea^gR(=7;&tROaPuH{r ziI)0M|4fIwz`9OmnR9LIOd$K*jQ6|%&qeriOSu2PKc3HZ)t|st+VXt%u_R5YlSR1v z$^QD&7gnD>K=QMY?WF@+J~4fo@hXk8UU;b5(m8``8sYMe12F`-@M9(p3B2cWv*L@J zE80BL-`~TyhsNMn9;GcqlI5LlRy5jTY(qvd#UQx5D%G-D(RqhnccKWen(ev~(Y5w8 zUQ!dJ@Y)4SCn1TYVli`-rwR~7j#pB61xujO7+P;J)?1h? zFS($V#u|lnmbMW`QO*hHEVh1=y{$_)Ek|){wPeaInn;nqDW%Cd$-h%d7y~&}xs}*a z<>)U75sI)dkEQjS9gJ1yTBGUpvN$!1qTxJ!aJ~*QV3dCrOvxt}WHqPB*71v0vyvn) z^Io;Y`h42mE~(@zUsHe6O!7)+$iW)1G*d7d=SZ>M+**smFiAl+R*MbZd%W{P z92-UfhQ}ai$a;NwtJ%GOgIy1#_Ck0PIk0LRB?Uq@=r9o@^t&CqyN__y67~;--A7^Q zc8*o!(FMXd;jE{BIHEanup%A%)h~a^H{X2Czy8~A$uVKP7p_H&^;wkU>zQ@xIb*RD zU6$`jd5%IoODTCiXpDWUzGoGFE9M1p#=hO~1EfL!448`{87x$+q zI=U>mi+q9=TDscPKy03iYjuisncYn?yHo7<2gY&2YRh`F#dn_FekU*+rMSLck>bSL z?~j!Ik=^Sx#8<@FGaYugG~nAc#u)l3b9a9LJ+j_hve|SL;~B?5M6f{f_D${Pb-gJIlKrH$Y|u*< zy<`d!Wv}X^&{%=y#7Wc(At!mSjR7MLt}%}EhaJvYx#`u3z*Mqy($+iTG*-wsRhwy0 zDify>TLUn|G%<#u@;S_$G_`Oaq~jCT26`@_5~8TztrX0*bmDI zX|W{FoJusPj4@f}>C{{-t?Q`aw3sUjx@J|WYx$E@303vHvPsr>-<&$zlH}{kr%I`E zWcTzSoA)|?(@K3>cqteKjdxYMtjI-Xt#fL3sf)H8r-inriaZ2#)$GnPx?>0&2a)}m zGtL7kRd~Co1=j0LO--n-uM!sBa7Ng`3XAitEK{3_u|EnYIt8)pHw}3>@c6?U>~@0n zNDdj|#MNd^<1AyIyX(Zm-ABIvgX7`y2Df{|^zfc?|3rGdq4Ack@k}Y=n+|OZoomnv z`ood7X?XSW3*LNqLf0jxT>lail`Bt=*iS0#; zQ;NHf?-|FQ)w<*GFrbaWcrQz*8s{=+pVd&z-F_NW1)iedQG=l)r6VCdb1@}!FbMv zF$7jc=7Pt*uQ)}C^VzP~mF&gBf+*;jCq~f{3r;>UJXGb)%A%3VSCHH=>GIVlKFw{<4p>?)$`}IE@N||eTRwrI zml}g~b#;L`8#9|_{#?6xCGj&cg~f1kO2#b}j3amFhYtrxqF&H71v=MJh^|gHYYZFT zU@C-PGS?&~ow*36$iv4wj)w!LfHRgj1@=!nPzCQihrWk)k7-w=6iCy^?!!CQR^v)$ z?InO9jR|iZ^&^mSX5}3(Z*SOaSL}}yk%_MJtQw7Vh3$)LR@=m|_8bD(>ubK!4d49a zHU9P&+&w(<=U@DWOPff?2lm6r|MWlqFZ}-ZzpDYOa+-idN|Q7qTC&$lG2-;h36%vb zzc7_PA?}?OpU)J<&o+s3psYGYYsqrAoC9uubej4+DSkPZosrFE(d6P>%cVw3ourD3 zIz}n1HrUK5kA9Is)SJLmXVHmmEKl=XPVpQwjma2;*7I?%x_&C>HAgU6Q?ijGbpfY6 zZR6yrohOtED63FzqFY-oUpTIA9I9kKFc8L!iEy*F{Pfj^uWv7zo(evX?C#!S;{j(S zt{h!3-ZG?!@-6G8!PjJqX$%w%o9%{f(_xe_A=ayg)_e9(5#z1Ed$w!b$_v|5OG%lb z>CCs=OWLlJK3i+L)k@;z>u90tI$0Q5D?axaaMpnW-)I^ye>VfpH77oBeW=Rp^2AXt z-Z4({5b{k!jKYky)(Y@GCNvh0Spe%=SInXUtF?4IVq+9DP07SGQA);nNzah3-%9>n z$ZR%i>HNn)sEbA_4pb{eND-~6W0aXSk;qCo&DJ?a2hODi zI97EG7Lkl+2xaDmXswGCFjIA^rCN7s=|FD&I%u37>;=BC0;6sQ75~R$yzXH z@S`GdnJH#=yMgU$g)WNW7}2^m3}}qagp?$G!f2GWsBVR-*M2gF*sif?*4q)kx?t3f zWE@?iF-~!q0;$QQGSJ#g2=MNqWp53;(J;9cv<;WnS8S~1_IAyr2O2%mxR#8od5f2ai2e*6XJC4rcdysLRk!F_PKmm zos9>awIagLxiX5=k|dGy=}488M7mfbNv28(GnJIcp%5o9w3Ju~V?r0pdfTyXEt!ES z1TrJeDQ-5N&34VrWy5xrNYlu=32d##l)_D?2oK-0OOMz*a{qV-8;k7|oGusgb^Jq-v+RpLV)sPUPEPmV?XD!BBLP#8slK|pP z_0yHw*%pXFfbiXFO-cjK8?G-m><@c};fPU&DMr$iNJdl2gvJuXMAJ4hYXpq5gg9c1 zWsCvWcv8vqeNW0sFoxA{-*ugYK8_RHZcQE&ho>FmG!i949Bbr#j3r{7tyoc2Z^$6y z7Hh$mYM_Xxg|3n9g2;)h9=#OyyS=Cm<|yx+Dkmc@JlHhJLmj^}{92}*nBs``9T?5iFtF`3CKYl&$*f($s1#8vVkN_sie|jrY)G-tH5+s;3}xVA zyJdT^VH^TjN5~^MMb?UAD6C%G;F}djS#nGq3v|k%{f4f)Kqbh=(;As4e|R{eUpuBS z5gB>fW&U6^?@HovNGMvau5M|!TT}|HR`A2`{uYJjeSbC{DU~bYG^tGTl^BKdRufrych!X-vy(U(I-hQYE8{JXDEX79$&Stwn>FQeqm#syG^l zvwjJqlUNQ_FUGPg5>~#UKMYI^tTu{n<%luxc-WCf=-L$}2kC~irF9NX;&6N-rvq9C znkM5*hADAjEKS-oJ?=3X{`_{$pZ{kqz7)Q=Y*>@=VW3PsWgM|N(;CON>+o9PoyD4l zO{Ym{hQon4jwqlt7H17PObolg)BPR${SK{_bd=shNmyqYrjaQG43@^PSg$orv#uFf znkh^ihhAhuzBxU)=L3p9GnC9nrK$#)YUI&ov!-nuy!VXbSW$LT^wb=0kmXR6v!Ya2 znbI=e=z}aOW__m^TEurLZYv3CY`c!GYbhnMKkmsf(R7|w+sW8sitKj-ZM%`qdm4!; z;jG2CEhT4;<3LQ2<9;s%8+h71arf~fuKMA<_n;HU`#sKjVhFU|ii{XUeB%X)SXCAl zD}2?~qn*aL4JBvx{Q;E|PHVLF499-ad~Q}7HrqAEYNl}{k+`_HIEzG2OfgFFi&F(R z)hL}H^X^%op|dUOI1)La&`et4wPsQf^jvslFVZ%S^~wpBGiM5cVb~MG zk$xI^+C8z_H0Z2&d-tBV_YXv6xOw@S%Zp1G1G{%086S4s_!Th>Y_>O;($Z5BJ@+Q?sgdq;fMW;-oEv>OMR-sa4IPOSePuEzSm8r9L7VlcJ9mw^#rsA2vzaM$p z9Y`^-TDM$wEAH;@czE}o+ZVU^#?m#N*l*)R){gi4cZ4WQfu?OS*4A_ak@)12C<9B< zfy@?9Gt1@JqD9ktIPB3{)3q($X<~%^{*n8;_oOIC_xUlYo=H{a*G@$-rfN~HDZ8`$ zNx~n6C6MC8_F~J$#RWMh9-i)r<3zV!vE8hy!!0rNi4I(IgZ3U)T}Xag1e z&Y~u+ydZ5Vp7RtdKC3Kpmab+T2S|l!kWq^i1W}O)Pg)9&riQwfdR=<67(CkB8+0*f zw}Ivc&;(tG8YY!Vnk6k+rf~hL<)`sAhZHHs z;H|<$%k5@M+F6A2bDltPUIf)27sbM7isR?x3*|g{{WSbl{IStPorw&}vjRO! z1g!)iRyc7HikJ-fE#oj!>an!UxVCf_(~$};78<2!ln12=(~%(@8O;b*V~lJ^z4r?R zR@;%V-!qQT-57rP%@zOoKm8RyxxVE1;UkSwq$v_Y#2e3cwWW2Q5`_d+QWOhkij3M3 z{U|8~S;$^tl)_$8{kTfkafw8wjAPFkY~nK8}&&{S$+4v3ZT^5^)L)<48vF z?&Cd036`$yI;^wgB<2BX)QMk@bTkEK74pjN)xNq zN>X9VGe+F9jTLZ>w!Wr2l#{T$vI@weItbIq=p3W-W=3Oez72A;ysy zWd55|#_B@f53Dz9ObnvGE*WxU8Y8QwBTgeRjKYX0nTPv(HWwEhk3G&Anzlh3S;mDB zC?uS1Fil&RWG8U7Hg)!P#tFzpWL|UU98+9Ufm5}6mRX{h6=8~uVUn?jHL@7fdbwvd zoAt8b@!sMaM+lLkG8Y#Y#4tg&IMd4NO((L>pkvLY%V-j+1RkH>ljDJrBL+w*5JMtS zxZb>AvtFS~L>oo3U1K*bhcxkUcqB|Co~I0QKsaPpjb}^^ow?wCY*}U4godm2 zmwfZ}Er|yno_^qW-@f68ci(e&_W|2@y43|KD29~qn>8srbkwpei?aX7Q5JWQ2vZaj zg%($;wsskFsrvi5^Hrv*oYaZ^EQ>icn=Uc3F%`D2a}3jnb$(fzX|4ZJ`RPj|{HKS! zfAsfx_V4B(pQ1khLCPncbHS!*z-c4SCWP3O!oWDqr1a{eE)v6oEWU*%7hGC%V8g5=((Y7teVdUe7j~ovNF0VFXf@nlu)AvIy zloO5jTwh-?jfuWLkYdJI;nR*GvfCY*f&}GFDf8juM_F(=hdUfjkRa!PE;mnyphGEQwn9Jm=>*QyN=a*g>{aLwC3vS3Tq69<3Z-OIb)rJ zoH#r^F-`-@8KN#2t7;eARi3P(@m{ce+KW3*3)Cm4jHaQaiFI>DtG2ReQHF=dJuxQm zt!(R)7(ZeRJlx-7v}V8C;k|>hrfIyW269GeXq{!d>L@XD3}OW@DG@>@gpqL^8Tx^7 z7;3apKB0DUT3EbG!;!&jhtrlYMM9DXueJKbPOkIF%Zn{qDPjt=ZA06(4C6>Dk?``C z<6&g%L6uel=5-{gL{>FGl7uP3TzGi@9#b+ZWjT$G6T9P)!xVV+y` zUF(|enlmv(LKq1l5<_COYT2w?O0GQCg|S+-k{Ozy86JMmZa)&rz}0QTFMs-q(kbr8 z2i&UR^-sQH>?hv8`2%VgxL$Ah)vv$g_CH?p>z}{m*FSs3N@bqDdxJ9#dW?j_p5y*V zP>%K{(cQjc%7yQKcuUi+XxkOOSz+5X#u@sccH`sRv}!e+gqz1Z?+U%r+ZsLG4jYW!=9V#Yhscds&g&i>E{foH*&;VG_Z3hbCo_- zA^P@WQ!}UrQc7%AYm{bT56tNl(;%@es;1p4t;u2H@uN7jl-8taD?r`eF4{q06 zL0=w^IAw5Jb9;Tw?U%19s_^3aimU5O?mm75rSQ&StY((uXd{XS=NzWhY`c~eW%(7R zi9QFi(G+hmT8_-?)tVUtA+$DCPrYhES9&9AgcuSjPK)6)=gc&X3}eqYj_jWvWu`ez z#HnZKExX;0X&Q-r&*N^#7&6MXLKagAYT;E#ewj&;Mrr=+t8Z8}D{?56&SvRjX2^=w z#RXm0vUM#wCZ75o{jLa~VsnXhiBd+A@5y1}LkZ-yV$VR+y(B+=t zVNV!$#L)Bh?hfw^xdc}0HP$v*+v1xIu5Gb2!k(TLBf9c3bj5>)BpG${Jh$X3y_^3l zqk-dbSmcGX)J@>#iBzxW6qCr&5E9!AKX*|cjwxrf{c)X`dfwswsgCy)Qu1ln`^U;Q z&Y*Okby>`#MvcaXhh5#?%GMSVje-VfQ^rj}jyzfY7dHQn_EwsE+wW&7fWo7)@qhaJWkrfIBpUBj{OajSqey3UT|7_XJ^7u1qOT&O(>*bS*=APr8VA)9Bk+Zc27@)5OJ;N?)^LV`#oq) zx9Z5zuxeXO*U>tM_lEV=hW4ffQwZZE5iB9skK;*W6p*-+V9d7llvL<^$Jh^b`Kd@T z(jO0mq}cEGlq#{?tXE=HowMo4tk+#FrUTQEMd9E*8buff4!b9e(s*M<3N{Wh11>VR z->y4+bAh$CE(puABvq$?=H(9Zw!s@ujG2<-C%~3znrf!tz;@k;6l|K7*J-R_94EG` z6{RGC0^PMlC4@DxNGEiOn4B>w(`n6@uWsnvhT}0XO^SpgXH5u&Z{P2DdU(&zZeQ{G z>XO63@NwF6e77gInP3CO2AWp0?mSb!XVt7sP0@e=03ZNKL_t&-rziH~j(z;Vzx}w! zechsa7}rra#G|mD$28y@L(UV&F;L)yKg=N zgfE~sV0&@3B$~vSn8G9{l3^egK}qIZNF^;MuNWho<*CV_dA7WKx(HK$Lbv<8OMPBw z%URU?`P^8Yf&S0g!Ovfy%#vNLvH59_QW|d*O{3{nhE1nwJ4cF%7y{O6tW!8=X&RC2 zIOnj&u-2Miy!rwi0~a?Ne)g-M@zu}21Yh`Y_nO1l<9*BZ#SKPT#zRl%Je@V9{s7aF z>9AuO1}KFoReLZ6w^>t^VW9ACzawK|)p39K$atK%REC@F7N-qQXpYvwWy|XNhQ=wH zFJ2S+1FmbhY+E)lF-{|0*Rr|T$Z;=>>|-Df6T_kBX}6ammLjXNMybO6yLaS6PwS-P zO+f+>=LA!Y=y4ZF$2p>VCb-o{VIeTZVUcgoNvK`h5mV&DhYzxJ>pB@*6n=!2tWerw z+)AQy&X#NQg{^87jX^s85AWZTb7FIO!K!IFjsw#$qDo=2*>G`j!Eij**{?WpLf_Nx z_oAIG9ZyeBD5ZFDd&}kJ1tCRR?`fT5a-L%36tTHjQ*>r@1KxY$Bkf_Z(4@qz%)(l_C1gLCvuLA(@08zj~@%i314+D=+52Eg{o>05pR0_UnxVR7#&h_;b-MXVc9*HF_F*LEpyysG9 zytxp}z*sw8N?uZHwb5u@Xq?69hL^WDHH0-Uu-<8!NHJoaV~QiuDN5&%X>9}*FeHiM z$r+cx6@`r+gC@qz{bSE=DD0!*u8;g5|L4Epum9!u{8xYVAM)S+v;Tx427dqe#NWO9 zj{CUhs77?FxOsKK>({po{f<|!UeXVNk532ghs671;qvD%DM3MLNDl!M8ocUIreIwm zM#nUb9F7D1utTXm)~-;vszfkin9zVpLh2*aSTD;!rG=QDa7^TJ$fg8eW4 z@`ju1D{d~YxVYM~UN<70u_B|f6@h52!8uFot;`0k#TbRvh0a90%@iV2IB*zyfHw=<7)--&PL?~TU;cz^1-0fl2aQ`-7vZ2E;=E&|iV8#)>-|_wT-*S0# ziPF&b$9g2sJUu;8N@BHHF%3P3_doE{%S*0X$wpK4@jQ1&rIMf)j%_)ap{W+>6Wury zkR)8O6dQcyQ^aXxIF6zR%}S(8oW-`IPM{&B$z;M|tn*{_3E!ylZpgs*-+sq#zvJ=g z5wa|>x~64HksRgo82W*a@82_y14bJzF1EC7D`BN2;k~7EmRG;{IhU80TwPxS@cj>O ziPOkoU%0#bzz_z;a>O*RD5elY!d705F&1wu+AEy(qzoYiNo95pWj*c1CC)jT%>`kc z=(YnlFKs`;JMb_5<{iD$u=XTZ`0ahq=FJC&@rkc~qH&F7%$X5I=o+qn`W0#l z?CuA4@1BT{6RojglQ*(JG^XMDX2T2Jh`xKsl;Xtb0hMDMDMbu5l*Gg&4$iD*?EM)# zSp{p+CzlQgz+t%^^94L6hT>Rx1qR#F)c}1 zcE-|&#KRN?;Wz|-`0hOcO)Q!|MwBs(G4kez9~j3#x9(`WmJ$+S82FpN`8`GzE-qS9 zj!fgk?aOO!Zf|(=u;=mjZ`mJvoKyVlr?0qu`GUXxH-F18jJU=VhJboHlD>Xm*R^an z8xiemO;bZEr*Y)4--{K{*i+$EXHVRE0VI;dajU{=wW4VnN>LmRJ@4MV=gpfpY`0ta zIL>N;kwkjx^3Tt7;)I}UVug|m|0TXY5`Aws%Dj1JQAW{uH`VN6)7Fy1qy z13x@Ga?lgaiw(P?iJjx!(DU8y!1aq;4yNJzT_83c-mMtM#PNQheHbv#@Gw2$8evHL zbxU{I;a4kOt{rXZx&Fls_N76E#1xM_KHZbjRJqUwr2@ypDADaDpAFY$(9vAAL@qWn zIu^Y0?1rpWG3Ua5Jl0b~U9MFC(JW;p7pybbnpb12VaTHd0!))Yc$PO0uU+ z(c};rvc!59GqO9}V_l~89;XeBZ)tVQ%6HgoQPwa_fv2Y<$3CEpXSLB3of%@}F!b#E zdtw3CcI*y4MH}uO5B%`)fhlKvx8m_I@o#_odmauw%6q!?il%LNe|OKf-+fEp!}h{) z`|_4m)A4Zk#P5E82RXA|o!+c(e)^iPLuS7p_`AP7lHF0YefW-U2O%+Pv$ z!NtWDmlqdH;T4X-*-v%ytxJGrseA-iU2E07R+Ch_uEkUaX{m0nrWLxGQnhGT^+OC{ zv1aBP8EvcdM;k*wjqLY(rn@`dynV~tH*e`SYpyP@*lad5jpKTIiA`GMhQ*;K!8T4Q z(yK}0zFnp$&EtO0u^%ZY`f=iK{`Pmo7+G&NglXieTk(spzM|Cd$D6BbwwrBz|19gx zikB~LdD=Y+6JfRt=S-Z$j;%B_RdbwUTqI>i8~L79>r;fRoT*YE83(#?*0NA`hi7j*+I%L^SvB*4jlVq?J6Odgfk5kb7EFh z*CRF4E?4%hQgT`l!w-uBB-bPl8SCT)t-8<;>k>|~+Qd0HGl&;u!pz;sYKfrIXGeW? z)}!irGSt*W>$B`WRX&fv5w6Gl+Uk#I3g@GVI_5an6rY1~lv3E^;fT^O3_avT%8~Vp z7eMAP24W1XH?7E$LS((!()Wq}*khfc**dn{8Ux?c#$tFJ3t#-=8>V3rEo&HwapJe{ANgS~7DUrH z>^3qg$EZC2<_~Y#+X-F!t~9eoG7Jmb#;YOil?V1`u>Qun$~-Uv0oO1F-5d7Y&ILb_Z*K$(3*be z+3iKjcXM;Y#q|{zmls@JU9s7$$tm#h`;T(%Y_~j(6Db!Sb~_$+2i8~DthQT@Q{XU8 zJnr{&>ovxA{Ez?Z{|*{{{hOb$Y8=0K{RLm=%)2+=;hbl^T2ppUeE9g0hldAlZm#IM z4(l949EkmZGaBDCSnrr(ka2-hv`veqRO@&klrZP?2y)ZOLu*nLWnI{QhA#U>&sW4MiEz=Ee!d zfU^Ic|7bSDQwk|9Q7 zjKnOeh@29E31#Gd2$Kx(4*SCbJt{T1#aa7F0Izx$K_#amvz%f+mm+bBZ!gP(c|N|X znm(dxBP1D;GM}Egzh+*(S0#<{-(fGo6jPkX+2earvz_rGWN^hnz{+Sc>- z?heR!Z%Nu>m1RF9o<7{M?$;c`k@p`z$egl|{J(6y*^{l;d7t;J;T!kV^O0qqMG2~-j2(|hl=*Z01^-}7|49*rgunzP3jXr+1S#g{oe zIONjq`29clK4}icWJ23pI%C;XhL0a?==GY{zx6uz&mZ$>TOsFD)O?0iigF6WZcCcR zU+!|-lW2<-lFoXXZH*lUCgp_r-i%G_u+o!d6Oyz*c^98}g2y^TJ5(qem`vw*FZlkC zK4ovA$+Cp+{N`UrDarfqyiHg>;OlR^#4o?`I@TD{G4tHDElMdSMaj_h6nP%qZO$Xc z1(zE!erb}RlN9Sb>s>?e#0)6*`ZguMz}Mv8(?fqj&omOjoHtZeTzDnp&vk{U3n5VL zc2spknr3LF>4*NB!x4bC9rMyjtY~g`Te_~hhLR^~LT?77RAaSzjMFK_!NCEO*_5Iz zK?=^7=X`eWGgJ^vvYcIAvA(Ej+7=r;o2uesS5Zv2=&~Heii%y^vK<`h#B%$En`A}7 z>%a01p1FOK{Vb($hHAH_X<8nhKE^xGdb6gf8`{1@YQhmk8z4&R+HkSlvR+t*Pq`hX?yC<}jZ(};iHEHBzuSZ z{OrTWtk*4d)v`C=-)Q5G|llyqJ(O*Pg#s$GQ;g2`ltGXrKY1nUWD04woc z(RH5bY!)Y#-jSyX#tt-fMX()0feebF>sc==NGeh8=d|c99&2W|0SU0fQUeI>!m^jIYK0g!n1ctt)X9@lO>8>)kOE) zFd(ypbhpDA%Y(;{==XcdNl79V&cxAKp5^Qx?2{BFA$Xdu#TmnNG9^iL{BYwzC;|}z zWX(XH=i_6uy~cV55!-F}sMv`MA5WeY93Led?0W`dXqtxYb_=ZWzNTyYcixN4xPF8F*?^RVqP<&;4v zdM{{N6AvnxGGENNdFxpw&A3Z+jewaOOteD zNl$QrEFZJ&_DO#CYPlAF{{dWFs6Anaas3&&D!#Z;7v*`1(eMj5Ux-F*@zeq>d{LTm zy)0Amse|`AnkJqc(1MY6cIDX{)mbt|Ca)Ik&RY7eNB{Fb{ywYAK-)UL^wNw654IEq zWEo5*D<)+@nke!t<+FPa*sS5rH(%uVxa5S~R=k@4kU|2D^qBlcHY&Z{4?yZtn~Cz&KinsK%im=(;XehLyTLc&``& z$$0SPTG96%_aA(YagpRTnM_8=xgbf>c)*&0?JnL_jq}m)AtiQ%#DJhE1cSBo)`Cz> zrgO^a1gYXMRZ3TX@m&unuek42~v?-hZzQ}b#cU?1byGr z>~_p%VdQn>X#Hg5W39oO_{C`K03p66Wl^Ga8iDfG(sdne+taoUpMLr&Vi>T_0$;&NAEY>w6!K&;p&xk9BS83_o*;3b`nRsOmcH0z$vmY4kCgP-x?>5}aD z2HEj3=evrg>p*}`GiIBfU1ceYDb9JiwjnPqMVWJa^O)^=&H8c6ZneX8fm9Ua>4dbH zkO+;Go>XOcEFu_u7_e@@xmcxlwj=n8)!7;$5|q+t754#2Do7H6(jcTKoz2l%ajm)4 zGUmTi9l0nm{SeWl-g~_D*eidWiIweONaY;0_n2;{AK4bloL4PUZ|l$N&C&f5<$S{O;fSZL-B7MtsV5 zzWXD5GV;{TCi76sJ0uVg`4|Fy!y(Q`OUxb>%9G=w|M{E zcWJwpR61Tf$|&+Qwq&fOYg^i;p>JE7w#AHXwW~)_?>)UA;+w_!YZRf7k{}Gr)rz(o z7zTq&yY+P*_bQvHwI)j=4Bh&I&3477_Z}b>>@DVm5GaZw!qO8> znr28TdE<@O$AwQ3M-Jo9I}AfSc*~MBPcUx4Im>i1ARum-D2`bM)D`cJ_l7xK$eehTzC>As9#gae! z^MA+dZ@$6neUEVw3+l`e;pij(04d2P6ZSdABhXpO{d@Ol2NUO}s|(hv3(BITm`(^P z-a0NB1n{GyWP@v9eJL|_*|Nx)112Q5TYd23TI-;#Ro^G6Nq>p0b6^VGptu@E-o(7 zI%VN97J7~#qi^8x{Vj55SqzfPwx{WPgc7Kv=kl!L-iP;4N;91n%w{E7u2HFHHZ7R$ zX=E~|JjfVYhiwEyYS>0i{7F8tDX5JDd#&Cs8VgppZVYMU0KiEGc5q|k@=095KXn84 zAw)XaQ#CVjbt{%n7HQu3FU)+ebNAwlyvS=~@pbT5{D(DY&d2|Fk5|#C>_-)X3~^+k zg+vd!Ab5{)9$)noV*B<_xqtrwwNF_!jvxN`r`&n& zD;P25#xu`jP(1q4yUY&{NhbSz__NP>aIwY=Ep;C#3Rs?Z6cWn4J-+idzRTTbU*>QA z_V4g`dCA?|w>i7Gpf{FGCp>fKHmA!aW-!!MO;t5GYX~z*nq+95lBYRG2S?n!bDMR! zp>FS^#~Wf< z>w0$U4Q&&%qRv{#RjGN(w zBTFOUtLd7^N6_i@jaN#6))8Bor73By*i#GMc=I)cg!ycb#bPmz2;!|fO*4jJK*?nM z`7}uq4`pi|P1E9iAW7o_#o7&QYCX-mGNVB-mF+EBMvMi@4iZ}yq`}n)i8l9#jX@(l@5lRUZfx2l) zvYbMu1eKB6`1@NNS?)XwNm(MC!?q2*HPlT-)3>+~=-j}z-f_CT;QZ`@ES*rB1k04p z09F$^7%=#`B}LOV9mZQi0>K5mvt(IHK+=21Zq?AbhND{xbf!pV8MDJV!7KX4vEB3x zmmTaJ%Bh%2@eUgzBGrc|>hwNHj1+H|AXlkV*QBEtQh`;k|h0jy=;Q(I*R`H7h3vu1<6e1R-u9mNSK|S@w z_Gxhb3p3)_niSV#jBw@s8#x-@IfV0A4{8k9hw+~yf4VE-hl+yy?EY=PYai;}|PND2?-CHNT`pPS`yA>b5eMaB3T>2Jc28O;P(FybE4C^Dv{Axq1MlNmFby(+O zmQ;;VE+J5vW->3)nZnv+v`7@p=0$9H*#w;l4i68>^ZYu3a1>?#Xw(p{gp3iEIX;V!Tgj$+oVks)}v3BLG>R({?TQ z?%g9xGtwd>&2sWQMyA4b_dd=A8*5niE%UM<%@TB;#NV467@Wme8i+~zs@T!zrZ5T2&RuDIxQJ`i@AcIU#aI4%``9AJ2>L#=maUj4TkmQij%XOtS>I9 znjPEqma6Hfx(+E6b!W(WL)8y#tA^k_!(iz;gCy|a;bXESq24tdA0JWXIbGee-E7cW zb9i`&wT{htJGK{7ib+8+nUdu>LMfaN4Bk=I4bw%8`bnKrW{P4ujjvytGd(##NDJMD z*7U45TP`ZYY_d&p9IJB2p@03ZNKL_t(qh_Y`kghSuVmaqT*W7aiU|lI(Sb-8yvpZ3<=pYOYtFYdb~G*f z_-7a-cFeI~#Q>uPJQ;%};S1XL>k+{f#Qqm%wZE8f@Xkal_SN!Dit9gz;3->h2)_^= z6JHRsKBZWP@$e18A+Hd+PYFGP_vm~wAxSfA@F=A@TdsKS?z0FfIe+|^zVCVdh3DBj zIN{y*-e-UBfP=%ENUhnf*KD>GU-?@v<7LaQ{rcBAJh{VP{ODay4(B|0{E&9NqQLX* zZ+(lefAdxT;xB&4@BQAt=DDvN^7UW-CV%utf6D*y$v;JloEwM7{7?Vm|Gw{P(Az5C?ll*8i_w!0k{%OzRWVw@-Fl+PcYvfb8bozOZ)CA~(Q$s=A`C8a#niCG^JN2FJGAF${(x zD@gK;X4k|K!Fcc{MaFb*PMXJs&gFK?a=8R4WAsc)RGQHY1C1Gws(C7E<09EiYhO>GELz1)zLfD%Znn2iHYvGztB>@tw#N*H%gZ(E^#%}}E|)yGf1llE zL!M+D?C(b#vlI{%b=9&>YmN_(nNMb51CKs`6qyTNGMmjQ@(EqrQneLz(~?&mI?Zqd zny#ZWh8JFbnf-$!q#j?35Rf{f?K?L0n#LP+=J9mMM3KxV?9WP$R7#eXC=zUA85&2f zO3qJLY}Per%Qfv_SZ_AmKfj=_w{$~~2o`NDUF&f`Ihi9+46VTn$5iKJlVdikORAxv zYb_V&8$_znNk*1UC?<1edwWd9oWv#AVW8`4hPI~dc9G&XSiBRMK5%)yjrrza$82pF zl{yxPwcj+!MuYg1GLQ@qg2t;r&?67LRIy_1!#Jjk%W3Bg&czIMnw3bMJVB&Bm1wxS z-8uo%$)|V?PbC|k0$ACr0>x9e+$(q5)qg*&YX1+Z+^_$hl!TzLLO>WtC?hoJ>c;D@ z4&I@wdH(t5c;od~dHbDrQNqzSTeQ~fEvD3!^2+P zO%*jirl+sBsA>mjDVu^}Yl?{NzKlfNFg~=UZ+)d&2p{6^}1=?ClkN@bO3d z_Fw<2eEQMPIKMpQ%P-vJWa1h6mZ4q8V768q9PCq;`SnaU((a?$M@W!LP)-U?ZkJFtflVXAkp1vK}?zTARnN86?gKOr@mjW6e3u zV%F6R9rf-Kl_cDK`6WWvaJgEO1c%BqWRlVi25-zLU6&C!u44_?3ow0mU0jjlBc@7H zk}Q@|1aNqAgT9Y|^tP(`(wAQ$I2UJq!$7mE*ljkPoZMuyTG7-U4<9_H-9-k(!v~KD z&c|ZIXga=Juc@jEsT7O-1Lk}Cs4PS24C&$1Pd~?an9LR!@93??`M_#@N!_%}_vh># z&nf0vbiFBsaRKQiRw>FfBb`mibAcEf(|JjzHOEJLy!`SreEZvPaIxF6>l@Z>gUAzx z;5dD>V)b}KbT&~>nK;Jy0uXlFVW(~{@z-rm7*uGs&=@cWp?v~+2K5X;G2dIKK>9DJhLKWakQYA zm#|z@%nSBU_IddD5x4H%;=P}|!>9K? zOAs+3f`DD!u)18w*?5|hloJxA>5Zdqdrr@nB;}MFNsb4qwxw=59-p7lwLL*;WLYpM ziS|*{+Vwrw1k$8ql9x<$MiwN>MSif5o@rTddw$5v`Lo#IXiOUsmziJ)j`gbI@=?vj zgNn2JTOL1HvpnCit2!DxaM5n)ogd#%0|N#}v{wW=S~;-Q6(Q9mc}iKPOv;?1Oeyk= zRA(p|!SBVSBsfS7xI8B}ImQ+kQ{qgI_ZAfdDnwR8s-uW7HNXFmOl76C+<3CMb6&gA$zlu z!3U;`gkO5|MQ+?UVYxhIwOP>)o=1=GGb6Spj-f*qO@XFS8SSwq9~aOup(e&z$wVGgk(}Mna@#4iq13k=L^z2 zjsO<(IX7*5e5EzW1@1n3&N{P@Zh`4O4>W*sH5Q3+!TeQ+Rr|8=O zYkGWd2_vW{O%#PrdGy&mtg&o&Tcl11s$yL=*I#U9k-?E8QIe1*v~5eht61#q#hR`f zZ^71GWB81<45OGbLf61=3UI?^~e zWxLx^S1kg`G%uOu6H1*j%S&wEW803puBh9F$!vnm5>SF!kdBI*2NPmuu8_vuJ~d_Sc+@= zgi4}^P-%tG5*5_7X!eSzCZvjsX>Sug`}8rN-+N58X-HH-TQ%6WXKxy9x5KXDE6+d6 zZ+-h)eEP|U=%M9ze)HFO{Y!T^na|igTG5}wt6$mUOV8e9e}2T@{ky+PnrJ?{_fvlI z{(WW#3yyB>@x33s!&`5E#B{EB_Qe-@@BJlTd*#dg*Z<9bK~>e_E4ZrlYukx$k`ZeBp=UqPj=pz=3J-+eg8~pr( zpK^14K;L(qp2wm=mL?3+QWP^j`}{r!izB}J`q%M8%l2}~mtXrT+omJUH7bE^wPSg4 zhQ8dPhKfWdOeRzMzUBPvl%kx(1VLV0a{;;`R+D?v(e)LjPsme&wE=HBgo#oTf$<&{$$F~6xdeMwk_?bU+N|$B0%4^Sm&5dW|T#F{YaXo87V4a zA&p^{=g1<*^c`K>un-KQmic@^*LqGLu6TIw6oH^DCLD(&ibaObA^>Ixl1<%4 z5kOv&9!cg06O8lJZBJdr=A*6#)N%_-j$^C|`9h*{;!{8fNP2{<@tITcV;;68LY*afxb6%;JpvXrQ+M)`Z~7{=lt}&pRjt+bLU9&#%nM0(sR$FRL1Jo1x?%Y z@x4<%c+~TEUVDwhn3Fiy$vD+My@SOIGVGwl^^wsx@wC3BJIYp5P454LIAA2$*IC(=?;HT%&?unnxPg z!Tuh@;J8?Ac26m*=#``g$xEM95H_aUI@IDc$wgZr0px}?IjQHea3EEVQ%y+iaEK?@BucP z4ZFJH;P4PBHFhv;H`{3RJphNoT0_^gWKuIvOM-W(M2+fi8Fg3AMiQB^EYD6!@&qqI z&nBcLLDzN2sl(3paL&@TJ>tBu{g)w1`VB9b08(p~)8+vxDcc;oICixxwk_Ixd8(mb3FU)vjS^24r3` zNwaw1NC+ZE8;v&@H!!#mjV&eualAD+8(~H!cseyUzNDm?4P;ptm$X`Oo4Fg@@LqEWfqP?d;#B$WO#(}+yEq6?M4zAtPu+CKLpPd( z#22b+fq)2-ARL}irRASmwrTa0Wj%5RpXTv;0lG*qKBjLR<6KvYt8@Q}PAUX+nr3lZ z=sbxO;0=S1ZK|#taDB(&!JOT8%lH56ZQg(HV;0j1M+bAZmur6h!3TJk@N3`t5;t!g zQ8zt#q1f9$pfzWlT{KKH#VcR?8d4g5{>hGKp2^rdI^io{`6|EhSC9FlKmH#7?4SJ$ z-hJCcAsR+)~HVw0KN?sQD5V(2kHfN`2494;Phab^26}N93@%Y|n>`hWMg1a}5 zNz)uHJ!Ls%CIW}kgrmbF_V*7diU~q0hQZQyeY8247>@5vM{gRER9>eP0+QezA_R1% z!Fk*`hq{trBSob63x!HGB52yWXS=J|Zgx1k!;EjZ>10MZnNl|c28k{T_Kpu(93GHO zC#W)`TujL4Q_>; z`i{+JL)&)fL@}GpDas6xqfuiZNu$cU?ks~Bq*>I(c<%_-poE~`UJ`tdmOk2lrNSo( zD2Z1dp%YBsQ*Rqg=kQkG2Z8A&96^Z!G7_Qzr8%Wm%9FIWlNmZ)v-M-o~4g?F~3b zXd2QaCn-yA6ccU;i9p8>C=w|&o6Ak4l6ja+a%S^_8_yhbes+O#hWUI#S!6N#cDZG< zx}a;SYloh5hNh|6Y_>c;J7smbCQUM=)=Xv*AKEr8^=^l#97!(7a!pZ|OiDvh@FYI?h#zkReDg#BT zQAq|;FnEh1j>U|MNde~_&IN*v!qe8(v~n2rHz0Lv2c|_rR;DDGilYt^T<|y}aD&7d z4L&Aj^0c7Lazr`cyB^yQbX_d%*v??gRjqhzirH~i?4M}juThVq!t81kD2WJM#7H%h zPYjh2axddJ&_|Yp8azvB1* zv-u)U#1xh|Kj)m zfPeab{yralbf2S}1;%^+_)q>V)3W5%*IwcIm!4;{*|A!!5om7TzRmf?MO;Hk&0rep zw&$~Z_hWQJDy;Wxs|w|bnwlUeiZYrF`j#MITklX(bN89sq>19u!^b#lSu9R?|DAhO zmm3Zj1<$|m9M9c-f!oQzeg>0rg4QWRA7{p0*I}#!5vf;oy<@N)X`z`+X5%d|pf%Tk z=05nSML~_x8Z}x~1%cS^IXkAix9)v*(ph)@CQ*` zxZSR4+m0j|nG(U^T%hY}jIB}1qEpRg*V7D!yj)O}v#3b714Akirb7_f0x05bKV*oY z@p!!HIXpPwt1rLCYI#Z9wqw0IWiSKV%ZBY`MYHQ@cRi`>sH=u*UBw&h!l9hRcaF_+ z%OuNCC(%*YHVu!@&KQhkZ?RzC#bst)SM+_4wTj(lK#KT2xoTt07jv>SK`9TyQnzcA zOel+jEGv*&jbhB0Urn%#8SazT99TMDKuG@ zBc!9Q*F1WBpVev|=jA#hij1->D2fuLG<~-v zNiwv`$a2k>zI=<9UcSXJ{05uLip$-OcYpFeKmX)Yma9wdKX}aYe8(_AUI-44_SrkQ zNtzX$EtgS%>jJpAdyq*^l4Yc6N}3g{)?4bjLyo%vf*@E+-3;uO8=Q9tC7I9WpcF2^ zFgUuwVr)R_gtCyBLXb$0_5u-7QjwBmWh{(@050BUtud@Gw-IPQA}6npL_t&s1&{Ru z&YLmKAPF+U@xxQI+~5Mz$!pZ5ziO0T@q|a)kaa0eFh)+l7(J5+go;aY0cbI9eyiOU z)3p4(|Kva7^3KjYwF53O_Fe)j{as^TC2qkq8q@`6AA(Z6F-E_m~s z-(qNA;V<8RpYQ$PWAb9g!O00;DxP`v1^&x_^bh&wuYQBNA24Cy8^3gyo459P{^gh1 zR1H7>^d6htCFLxon9g7@xPHTOwdK+21yX06FVC?qw(H7C$z(cZuny7 z;5r$B79P`doL?+aDv7u{8y_dn&o8jnF_}!!3XYEs$d%y!$3JItS#feSquy*-*&6jy z!p$4caH3jr-$yBBHBh%LO&hbgkqsL`?bWWvg@LTtqb#SSX*NP_5`+j?*U^j%!zgA< zuI&o_Fwl1m*22ZblD6p?jHjwvx~4}+Jqjih{Ls+u23FfGukL@H!{_cIBr(>ONQ4v& zgJZA;(>PoRSRY3rN=2)5GNKD{0U;H^1a`YE_wV1M$nzM-86!2@?Ip!HrZ8iJOlwJz zXH3e1$#jC03TtzmFG=&jWIAEj46(3KF2+o0jBb^gB3A(=EK2y8@Q{L_Qi4)=sqsNk zBvU5If=LmTFjrq*!_c$0x5u5^x34{CO32Y15M6X;7}%{>T%4V8`se{ihX=Ue=$ekz zo9?jZOlC?P=PWXI{(~%w_?Z z=s0@vKDM^%3LhMKJ~A?l#Roy2r%aP*9kxS3Stbl-&e3s?v;Nu|?R^+aF_vPI(KQh+ z(+@*r8JL=Ws3ONB&2cUu<&)P<#n1_DFbqQk8L6?n(ROvrnuhqL7pZL-#Z;1(1+)39 zy#D%gRCU8@wdV2Jiqq32XXoc!Uaq-3{fxG^SQjwPV@&)!5)?|M=qw}4a&*#ABsr7$ zVtjg!N~$P+b=aV=c$^LN>z*XdNpyzrDZyIkEv|u~^@z-}>vwq9qtzAoUtYJ{l(@IV ztG4{>KY5E!?$><%>o+h#@WZ#?K?%*RyLb5f(J4Rw_!B;Rc#p%AIg`acr{@=3ZfjQS zEz`XzLDkfqA<1**dxDFLHOti{ZQpab-k`Lm>3W1tkt(@%Pl04_Z=brZuQ{|@MWcdn zu-$GrJUpW9I*fOeWy!_GCBb|0qG0G6oC_pbM(~39Y>$_}cAFpl`8zbbHEB{%7BgJa z)Af$N?P$A>u8%fmAHucK)C@7ukBG4GJTFL7J!)VSLIsQv@rJBq{Qs$V+wA&*YFD$} z*0lA2G4auMv#D8cYWl&Vvy5UgA(xWD^$fzH_omoPQ3rzxaZ(zL!w(I;9Z-pm^G<8= zM6qKKu_ffKizFxO$P}ocXxf_P#W|C*L@Gs*=aiEPd7iRZ%$P4`@t|4Eq8o0cluag+ z2o;h6V{4pmS?n+99khKwXVZ8yah_lXCV4`pJPL~>uDk;QCpBJ3oRIjS5MHC4j-`q( zJSwIv_RDKD;AXwXdrw|Sw6-|s*xQ?+L?B5V^La`!(G0$$Zd*3>md->45+Y!%p=nw+ z+b!$MHA#{&DdxyjVXUFr)@-*sv`i_|5*q|nZP@IZIOq2XfdrjK>#g$^F)GMW;6gs4 zDWmk#i9E)kq$LrWa#E1{oDil+A+I^j5r7^cF}H5t80X|Yb=|VvMx9gJv=Im++_gzs z=_I-my})~gb0Fl{rV>yTL&Rdbm;=Aka3v~XGM!Nt1$&DbH;#|u?KHeV-S%9pRy=%o z%IEhV^XT!Cs_w}03DyY)>*;z+-&xvrpy>vN-oygZU_fbv8l|~cqp#~PSs0vUSG8!D zk>!dMg>({Opzj@_bC_m`r3&w`GM0a&h)Sk(gf}S_(?T*Ta`3p(q%%gygumvP2|30# zui9v%Vk`C@^J$w*001BWNkl7Q_V_L##PCpgpdz3;!p&p)}( zqy(V_|L%uB;@x+?&rg27qMQRs$B*9ofaZrkrfZ{$=fR^>mKQ6!!H^dvH+#$XfAnM0 zH0Sm+cbM+&^XUANrf;};r=*`&hNGeZh>NOYV4@t5TEpyU|MyL#rX6OwWf>n z)(m~a%a;(C8Y&Wg)9ayrH3pqsHa&@_^jN+k=NFb6`GgH0PqCE%PTsl+sn zPzsxF&8qHx;x+x8oYGoTRnm6x1Pqr_+M4~Df%Z+?8oZ-4iOAAfwq!{Nj~{^LJ!_;jGIYFy>8RfRDYV}uC<3Y`*j zh*$y|4_K@(xH(foCg(^dvR$t*u9FCQl)~CD2cilRS2h}L1n~0&M^~jR8ZIa!z#6eV zCXqSRPY&M2t-w+uTS`V-{RHM+_H>G(Wp4fq>yc^MC|O2IU)}=Fc}kxyNjke;Z@648 z9F7Na>Zn}B-~Qd-@tfcNhO6D4>zg~;^_IW-tN)F^{L8=OKmN_%@#f8s++5#~O~wEC zKm9MfyjxSP3a?+ipxa*YyEpIo-H&gGDf9aEYySDypRkpoZd=Bf7<|O%B0Sv>_hevy zcguG-x7;Ro)^zQfAK(7SFwPiT5trqkF&1qsDM=l)HV$KqOdK)NILCIs zW3%1j>UybKNu-pS{e)J9Znffg|H$FpfuFrz^Zhs9@%G0zJUl$|)ytQ>yuIV`{*fvq zm;-+HToX9OHChzu)rW#T~o-p1a#yZf>3Q z;60aqB%gw4)z;!F%X;^Mm=&lFQ?*1a)0~-tLS=biEm|gCl~F1SS5F(zcJYNOd>9$e z7pa1G^0EccPqjrVV@MqPvrLlFql}{MYTC}BbY{<%o0m7(rXy>M_nC1Vndga;B(#!Z zV!K~+eY5B8_J*!qQ3xCk7cS?XdA^`ZB>9o^>5(xc-rqlR876WHq*%yFv)*)AD<=P3 z5|`m9O&qJ1wyQCfbQjKZ;4)047*R!IS#CzgK3CV|%;)xE4R7AOk&V4EOZ8CAYQ4qU zYsT@4^SNgl3;mFJJe;`y^pVHok#L%+D$8cmvDvQZx{lp`jkSi$rRVW@&;7@Hl+x_4 zu1G2H@bHmsy<*+0C?Vk)$RXhEfHH1j7;BWVY`1%?t69}8+it_l>owng{enOL)1PxV zo*2fN{@inTJn-htJO1Tg{)J!v_BVX`_>o}(WuS7Fx>@mRdqpmWOniRHx=K-OMJZZR ziph)ArIC(9Ybj(>mcuzFxrxfa0}8p>p$bym{n_OpcF51cit=3BUY<*1jWIM`OIi-` z{M^L11fay8gr!33#b3MtBvOjMUuLjOy_TicL~BLewo6;70m*PIiC6cmOt#XkKsmcmn3Pv01w!$_m>`o4yk`*~=P!*Oxh zYR6YU`-&GY@7Qg3Ym;*NN&#y%Rb^;f2`yY_!+K+A+d#XLPPmjJS|@@Z7)m6i zn!2i)hLO|Z%!l`%$f*!~;rbe^()f~@lU&oaj%e$##-o@1JtYJj(mZ0E#nlbHUIRR-*A0>OS9Tad^HvJcekjjAr#BwWu&+>F~Mqo&DG5ms zj>F-^6bt+9igBFC+Muh3d7i;!${hId{cq{oHB}|csDhy%2b#WTyW0_B;^E<5rU2(q z#*&#Cr&&r0X-b*AODhn_?y4s-~Z45 zp1=6zA920gp>pQ%@W5)WyD)h!hcovdKXDlbTvM~%ZzTtx1KoPX?d>hw?QXFl zSz?M3OC3kqvZJ9Sl+xJBp{=DZ_2O%^6tm*~T=<*6|Hz@AS?%vgrQ$LMc|mGJ44yyv zzN2dlq=d?{Esg|Pjw?gRp4GbW>Tbh?VNOLXT~o#yP1`IloGPJ_>hTf-(a#L2kb)v4 zdEt;0ahU1-gm$ukC1pyAXk8>)T+20a(`~RyGYu>0)pOOe5z;jymMFGl#_a@j}XhuIXTBFhzXOhsU0e?~iDunA@4L9ayz3tM!_uuF+=socTZq z9#rA=>(?}k7d<7BDyB&aX#ql*u};%=2ICr5>swyDT+#O{9 zB{f9)sbXk(IjRgQWDF8DPD$jlQe?=}%U-2Cxf;CplD7vQ9v+zHnVjVVF5|Ig_K7(h z8U4(5555$}S*o^OyXG`ZwCj$f6(1gt#E{r-cWkb1`0m(sp0{t`(GL^X*H`Rzdxl{`Db3+|E}vm=uTQM6K58N4qLGf7FPLM+Oy?7k>Tj4et&ou3x{T-EN8MOfay&x#I1I_l(2He!Zcp93@C) ziYbb=uF(Z@h=gh8ays+y@e?23zT-0VtoJ+Gx(2&s(Y3}|$2^PnAC_A~vsil=Y-}2`DBiox-6y4F!g^b1;!#Io_d&R18WIvN*zz5Hq zG9d=$45J_T?&o*>SO4ahgbxR%VPYJ6DrdO8x#q6jp>#zIv(yY)M=sK(mtvsHl`vOJ zBnLybnP?4Ah*Ma?L512`oHM8*jFNE|o(7J`1CRHgnEi}Fvu-(IrJr_6Yn$tf)_O2>!?Mq-ecNX}A` zGtUztcn*&zZf>rhk)c{^oNK6SiOGi$ndgz1CzL8QjiK#!T;J@M=R_ty?-Os|ykBCq zhMSugeDkxPbN_JU@c2kh(g#?I!jwW|6_s+>Y={wJnn-;luEcZ(%p_1Q61O7a~Qrh_h*m?H(W^uY0Ew>rlcHOh(AuMgERaK#l zXn5LKw5vp5)`r9BvTO=9b4ZjtGYm(pQB~hab~ODIgU$vC^W63 zTh**L9o?$I)rM79({>dg^nGiU6jCNZC#EQqqtP0xYn(FZSV$ofbH-4Kl_eL_oQPp$ zo)bfg495%S#{<9ovp;3kwoD~aSxKJN&JnX0%w#F3T*xVrgIH>&evlrqC`*bLH+S-) zTXjs)%LhRluJ=3Iwr0IvKeJ9zV%^e4Tn0S1u$Ir5y9H}qvhbHp)q+d>kWC- zB%_$3Aw;p(gvszv@6Oa#Q9_`kC}Njw7g5a=i~AJA%vb3B1S8&_FG=QsJVNr zS+$aSd;8`GYHM*?UpGU_2jGrfV+YMj7zT)m~%`^w`9~;Ht z;hugNx&L&}aK123Bf4Z7SCJz)3w5nAMm|S5d4|C=jsvT%<8%_@S5;R_%Sa_R6IV&{ zQ6)-=A_r;nOwcM%tXXBywdHERM=ML^TCA-|DRaK`JlsEWIbR4NF`m5G=z`}wjVL8i zVCUrTBdd(o1zj1?1)~+FC}L5Bq|s3=on{J+!RqQc_|()5uBrs9T5D`AjOnIp+3hQ4 z-!0ELQd{I5cP}m9O|Li}Jm*W`d>OgFzvsipdp>?V^6BA$rSFEhMK9BGaO)#WZ1Eg`Z`MZSB%O z<}6lgybn-hdZ{Xr5u9_Bl(@USk%}Jg(MXp6?&g~LZ1K~;!>9M?=vf)X_g{U<{ktFe z+3QzaZ#zs0O#P8*JYma>(VDtx*=}2Qi>y%94sFWf)y$;qmvoMjx}e3^2@0znO}oO_ zisU1Gf5M*!Y|?bDqqY?#6~-}$H&Q8v92v%u93r>Z*K|!w7zHLW4+E8v63XYdy5ia3 zZIm3AT4}5@tlAZ~FJ7?UU$Ncq_;CM;FxixsDcj=wy-sZ>md!o%fA zm`8F-)Rkj@toV35v3Z+l>k6wC|MJg2P&-HCEWuBBFNfcEr-m0VYP8OTc*3Uxg_&P` zca53y1XFXYaOr2TR6=co0$^>ue z>YD9(&8wGNLdwfBZQyk7@g6qo7OmA1LUE*!NgBDLCWtW;e5CIuj*n+9eUH%#O!C0HRg#BBf-leROx~?iZaO0tuwf6Fj-@?qJ(7)QbeRPTHyRuEr)OADs1&s z_bvz8FrAj4FF%Snf~qFqD$8Cq>~}4Gmg#z$UvoNL`0(+8AK!l9$2TAN`00_;c@(?f zWm=fHnGloM>TE_Q$2|0`))uWD0ohZO#r;rXCS?|4Clru3EN(mH#$OcNGjNF#C zO^r5&90ky2v{>8}$Z!=SnIv^pPl9pziRm|$EGPFLl)ovZWQ%C@Lgmpy?Xe9gOH2i| zKu(OQWJ#oCu@+*IEvOd#R+oZCGcR7n7!##PVWd)qw&_qxbgpR{<%&BDQcGSk##C%J z8%oajdBSK-Q;DurS2g1}(lw$X|Kj^!FpdN7-@lVBW{mvNFMdw!PgDlhUB$Luvv!*P zbkDx6aRhdo7Dr_04_wX<>^jGGvtxg?Wp}k?|M$muxc? z&egPaN4wdRbK%$@IXzrBe7Hx)!n#>g*$O`eVa`?+R26ehT+Y4d+66Iu=fc?c^y39> z4Yg}%stT(#B_@&;i{naX%?ei=w2>D?O6vDgH%|qc z|NsAdhMg*<@hNkjC%l65JW-q>n;M@r^Mb|;XquvNOHJTYq%#%}(~u%2&2F`2dwoNH zzA*M9WA=oz;y4XBJIT>XX# zLiT8tAP1Z(thSD>s=?OeG7^)t1UnR!H56A7vtRhbGB5-mxXc%v)-)@_cDKQ4jmk5| zMvPT-UCaJz{Vcc5Au-L76yd{%4?H|PQdKpjz&r(}QCdSD9v-;Azvptf5JTen=8C(! zmdZ6KrSM*eY2)aZn6RU6ER~ZQ`l>Q0ELutX!P5{>irfZszTmz2NrOsZv#r={Th{9p z!7H>f#OOJn&)nbN^Z58cKMv9*mz_;@yV_ ze*4>Zynp|RhsQI=^CC*?!rxTBd2fDW9SHJoNU%a^E?^Wh} zJW%C{)y)-cx8>~*?5aMEUWF7wr(g{Hq+hpmDKmd zh|`)X8=}gB;xmfqXQq%SNouPrTj8uDXC*1S5V6J)&u5go8m3^G3UCe_eNT*@=rcJv zj&q>cPiPWh?$Ih@b*8NpZ$Cz^b}eVV->EkG@X?cTl)ofcei4TjADlx$8mWMi~M>jjN{Dd zD3rKq^dbp9*_U!6#Y_qiCTaMs>xgrjr7W71qF^vfX0`6n3akNR3R)*npTi$1W!hEC zYTJ-94GFxo2FVMJE471GHqL-TeFk_Xl7sVPU9*~*IHs!T&742Gi~z? zKl|znKHeYrmtX(D?|yhsh_dY5tZ$fR;SlS^9yx~~4B?c}O4HV&QD2Tn;!^8VYl~~F zz;qVMpr**uT%eS{7Zui893X1BMWzt3c@ch<`aIstCQhy-+6oR&FWLT5M7J?UJar}8 z1wNgKi|+cgba@h$=O-P}T2f3TBZ-rogwU>*tH=`pUi`Z&jMn&hB6>N*=XsVxMl0rd zqCcN#ms*%+y(Y|)G}5L-^zt=dzj(pJ$4@*w3Xo*eHN3jLrl~A{^!>Mtr$!oBdMd{NrK=c9QEEdIcnYEE8s#rrZ zig}6zRj_SM zs%}}W3Nc7ibBt2K-ZV9B+p^tm>HA@k1M^ap`iOImrf#U424gHaFR7|r2y-UP0c%+% zEvcvXVJ4?YiV0THMuzgQ)zN+ABZ#3kmdFlL!@i$X3~k~sCm5`M2b2=x=dx>A%PopCnhrQ7Q%0=GonQWDM0lx2&L zqU1n%!lISWnRtPg$T#%qp*6-(mdIob@p(4#-b;h zADPEVBDl&C!^}Jm)Qh>it!svh(6O`wqZQEyR!zhE_wN}l7g>bW74tOEpO5?(|Jk3D z{lNX3-!dKVAr0(S6^$yix^Q>B;+wBuaJ^|r{(`fD5R6gmJwi6h6t!$DjU|M{`7&_6 zj7+1X+;SGp&ig>gind)zlf|OL&f`Si_k<8>+lI|lk8Wh@ND`+>R0ASy4jf zP$|JusbY*l86znfV@L=&YRUmqORGfVYUW`i&k1YSSY;STiJZ1gMM~-UMf}qas^@O2 z|Ig$0rx0p+K$@;$x8KNN=`6Xb$fm*R29%QraW;?xCTCQZq*rG7-&sDSC24Xp*p#V! zAT6DD=2-_6&VbGp$~oB|I9UMc0?8SYQh2QixM$w+$xC}J+LGeLG-doWa}FnR7+7_V z%0P}YMkns>E_^t_Znq_;o@sbT^dIQz%vY~o@<-o&!_8(*Qkf}?s3i8I)pmW`o8CU79^)w$)rlCuIq(UQV2!t z3o(Fm3S-JMu5_9PLi7ydKviqn&aqn8bX`r;2!p~Ju|TGh33(C{7X_^>wyLRBcD8|z z001BWNkl3%I4J9AOUJ-+yHG6V4f4-rjI?z2oox_OB`a8-DfeE0XcN8IQdE;n%bzzWd^i zKmGn^e06)x>zixZ+7PA-T~mpSk zOQw8-YaJy=j;9mH;lQ~c(Z)z=rKJA7d5={{jnn0!yi% ze4PGJ>s>yuNj%Kc9LQ=WshN^%lucx%i7`@Hxqj(fFgf$o37ZzMdR`VXPFK%?mlz^( zNiLP2cq>@o+Ny`LDj?cDtuqcjz>sbY@Hrg{0H6Dip&K zwOv|xQKaOFNdQbwNhw#!L8??kPQskMxxHeZCr+m`5BCq;KiqRZUpSvnOp~Rm8)B7k zw#67rT`Q_e3sfm*a+;Y&&p7q8ZOuGq#!=DthPJh|tEYOOnyMD4Q)LWIQ=^n2_=ul9 zlbP%(75yk! z(+?l+`EdWp!{Z|#K78QqyN`UjADKNk2kpwybt^K7$J0I9IJBu~YKt}wrJOt)i`1i^ z7HvTwul&0Xdt6!jrW;T+S%0Q8HO!1h|s(;;Stb zT|Vo^0zZ@#7i!s#7pdxAd~G5h$U&B4mZ|Z4#yN|h#Ys@ISYuKMggiq^tk)fz^@_1S zb3PsL^N3c8O3OqMrkT^>fYzGbdWExw!{Yy}nnJ;Q&ol;sTKh!siQp9}80M)gCh&;0HC5H2 zi)QQ-&Gnju<=lVd-N%E}xNO%b?>Rp_(5+gE2JI}Ht3BDwHDAh8y$uAkcs$2QXB;|Z%5cH=vwR;ajaM_{G|@EeLiCr1pp+t2H)W|+ z`8@>mAO2e{gnwDKlzt?Ui6v630C5tD7&696P5Dzd))TBmP^kJj<&%o|o?RtZJDsE` z^!YPuG&xD;P`PFtXD-1*5JyIenN%eHI%P|}Sy7y%h>#Ky{hq0Qx`$zo2Vt>bAzk3g;?xQNlsd zPhqVLIij*OUYo|!)HSQFVY_bFZd)$r74y8~G8`DE3n2(U*Uy=f<-n}#hT2KXwtjB! zl}yS?=qLs!ilbsx*QiV}FkpOZ56~)SxVp>R1pW8u8$%}x$ zxEYLIvd$8xi{)vA`pJ)+DJ3%u1I{dmx|L`xOQS;!5)ZAc#b`)==6E@iQlP2DORNAt zPE=J*w`#cB??}<}_WfI&R($$+;-CNV?J+PK;wB=SWjG7*%1ECB&H!3ZwVjKb-jR z>3}Z@y;@;&#t##50n}`+cf9!GC7bOAQ&&shm!az#tkncRG0zj(7+mF0&T^Ut-aXv& z>3qhg#N_4sR^|x4@M3qx>)kCXB+j3X7!>WMCK4E?k*aDj)(EHfdHK4eebB!*-9ABG zo^bu8$jjJiOILU393X2-T&QSTlMCdiNKfqmr7W5m&rKW!d4O_Bq!MLwyl829ks^Qv zv|{l|WF1-jiR5CnTw|>*IKbEjl?_oPhG9T2S$|zLIvUvxpzunj=2SG%G|(uDb$Hc4 zQFxUoc?GEuRL4B`{L}9u^YoGaZ0Wx>eD!k2zH{OmC1Q0F^yL#MTOnzytf(u6tyuo9 z7se|^VzNt2Uhs{A>eRNdS+}%J&3?b*d_M8;aNu}4(qDRf9ML8cq9O!~HDb*ihn~yn z!r^ct`i!eAUDr@jgT|nWCQcdjM9zuTCeU^PV+~bRQP-_p?X9Jl<%N)vSnU?-nNk^N z!~xPa9anot$s3Lr$N5q*3x4$*L!hpMBrHpyvJq>L16kMXb<2ypEnmF8=KJrz;@l5hPCf7M z54?N-z=w~I91bJhSO_H&B7`VTmx2|*xp8Q1KR*`bGw%TjP_b9uTpey%eH zG2m;na7&gM=cyuIE74Fj;yDc7lM|?{o~K;twb4>#Y^>-r&d3+fiLkU6Khc9?kbJeX zOO11uh6YuNSWtqz{ZmK_Ohglcr$3+N@R=r&JSfB{cAu02Kl}O@bX`MLTi*Qm1E<50 z*Dv>ccza;gb^Q1L?!V;E{^%Pz9f{`$N}5=;ma1(qab}**93CH_RFY76s(oIThaqP1 zGG{{!g&1I(6T>AkTms{ipg44a*~%5G?J9;TaQ|@N@z~=Nm<3?oZg^S}O||2u#E5C6cSAJE3K=~k@k zj%~H(=dZuwzx&I7i%p7gnz2AukvY%!G_%`*(ISP!BuxU605Z><*w6pypB%z!IY14q z?N~QkobeQD3NZ@P?f_d%a$-soTowTKsl3BLAwT3RYWZu2;7#C zEIB!}y+biD%x8Z4qi4K4a6BlE-(uUV}+Ru2uQ^8>*T=mJ_#-C1+ZpUgZ4bMtPic)NM zYY8g(Kn#C)pT zoQP#?$pu?-UY2T0w-BEhlG8K^tF@}c2N)wtLtQVMaTN2C{eGHIq`C9Sr(Hgy?VK2= z&9bNo!848%-p}ML5!955^jle(rpZG6Nih&}5O8Tb$!EXwW7aV_~D0-C{_52zxY=eJeS7-S>QpV@9 z$N=KVD9;t!pATNSE$QWhgP8Y=!BV4=+-kBCsX?hoNrpHlTxFL{wOX7lPv}0GTG5IW zqA+Z=Myt<|k+LK>v=&mANI`-Xj7b)7=?R8}Xvnq#S1F8b7AA>e_9N3c5mTb+I`;b= zEW?ENVQG7QlDS0V3|SF9ggKEzpwfm_eTCK&A1)K&w?}-koF;I1f zc=h@fFTdDRb!*YJ<7ug%$%}ka&?YS`+)UO>a|lV&kU8S#k&?v?r!h!Q=-3&oKF+|WoGDSE~kN< z;sen0+E9miAwRG7`HFLBdMYI8$_@kOGE8ELBLG?HX&v z9VM`w71mYc41@J364pr2ZhL1`n&`% zp7P3dQ-e~nya8g0Sm$ug5mO?BfKP#9tR%jISZ}mh>S>C+U2TRCh~adY#6 zn^(7NZg;Hq9o@FY)s|2u+PcPjfuNY;QAyEO23kWQ6Oz=Ihbe%nF{UGz25aHvi!b;$ zl_lhfrmlE>_X=BT{`o)s!1(J6p(HMch|e=VkE}Y&PSsSY(AWx-AkR^3UCIbdXkmKf zCkV9COV}cb1t`c)AfZqhoT=D!8w^UyJ&ggUDHfvlqIqhOo zk&u?pm&$0n$PHRvIz?H~8Epz?anmR=nj{vU<+s;Gp_LP-Mq;tG6%4YScE$;JK#882 z7hRx~B6hukU>z02k_5tH45hIo1<_~X9El&!Jop63lj4A%E`%_lHEg$$FNYOBFSks< zm+OjcX&{fJoGB%MmiTokMQmB2P_mKqS5r%OT3OIr8JxA$RfVyJSQ5&0nCimpJvn8X zn5fn@-E}Jv^}|^VoJA4J$ax4D?QmM2ePawUM}}E=3{PK2qwv!t9`v>&&56*@SR*Og zLL?SXOcGnOP7nm*W3RBTrnWU0N7oeEwx#Q4#xXFBp2NfWIk7qnGt)RTEoVbW30D{L z!i3Pv)T>HDCABnfNJ_1gKqAR5DogA*27z0}5J*vC+%e7zoV`GnC1Pb@zp2@6TC}e4 zA#=a&q!2b{ra5pqkAmKOc;xVSq8|f?)0W9E0hxJboM)oN2xl zZ&`2TnsPjy2uYTDDMJVWz38~gXmkiY;dj$n9(}e3flG6OicvH_Z1RiPOmFJ;5jDpcq5J zD!8gDauNowvJT^xc3uVJ^RU z?pvljl5~V7qg>?l@DZao_<1Bu1Ga9YdARGq7#@z&GF!Wj(|M#@U*WndGLDinx4Rd- zesN8TXZqsJ>T`rt^Sui$5_$5*h29 z6do!tR#6g!kkDA>Ad5$|#TKxxV!z&Em3YCM%Ay-55$JxVsVa;~&l7V}vUbv?pvuw^ zkTS{?oHYU!FZo&B&_*rJPfyGchUq!R{3NcKB?td@xJ0@*Kyd4^Cl+HTnF zT2{J%N))2p(sCrknfs3qOvA|KIME*`=CLP6L$NK+t*KkboO}BIBHq~|hkj#gaA z-HyYdo4Z+0@Sv52qG$F=AsOaaht_E$O;7eLpbxf=?CQklF4!-o3l!=G|NF z?zil_UiADiVKmfLixqi;klIs-+}+(#RTXDvYe2~yR%^5tS%l1JnYDQ813A(A0dL1{ zSFFEj_Vt(9q@f5YGR?6jF-wdOrks*UInsen(a55t2qEB%gfZUV-SD07{2ssh)#r>; zq+mfsF0Y>8{m2i0_%puwoo~?f2l`>;VzuJc=b!Vf>owo_W$ZBu zd7>soEHznKva0X_(%^|%LL3*%meyL(h2#s}*WgNEY-3mS+Pk^KCqj1G|Evg8#><;!-TOKWn{P>qo}&8szMouF%8SL!&EIP z8<{DmfvhI18BpO4-|gA&zhF~c5pMV7?L-U{W8I-vhQ*?#sf}=jV>xvjMJr6wLQu03 ztDTi72WE3H##vfh5o4iRis~UzlXcDLMYl>(#NbJ(mk!g^a@5l9WGE=}@IoPhgoZp9 zUwLpJlPUhmH}$*ZZ4aN6#214u_Q<&Aw+3+^+Cok*=aUjsmL@U=u=T7*&yZ7*1!9sw zOPN7xv}?i45j5Hpim%|Q2L;_J^FUVQYFW}%2-&oFMuSyR^)P1Qis z_%Snf11e8cR$w#DqCr!ntC}**NytTIAk0gtNKt{TBF1ID{*4z*qi4SxIou5#?t6yA zgdYoo@94&aTY;*Nps9=|%IKvSDpiA(ngggN9lsG0+tUxG5J8>k4$6a-P>FI6mYJdm;Xkb4rp=Rc}`?E z@BO?;)mUq0C$8+9ntDly6D7pcSj3yiI3(P@pOA+}|`K4Y3D(Tk!^ z9LeKA`|$v|l=4p&;G;xM#ujBxjYxzTWR5(G_O;d|(y`_~#BuN-O*_V)U={765%`O< z+}_=Zki2P_{K#U_@Mr((PdMzi{EI*NBYyMh6?eC{JUQF&)h~aEDxzQR4jt7H$el-d zfm;j#Noe(&qztVAuOk#OE-0(eR#9}pr${#p-0tsDMst3C$j&A7KhaI6Lk_A;c5|Pmq+IEFM95BYvx|&M6c`lyk-=h-~LIGXZ6r~uZ ziTi!eVb~GNfYl>9-BHE?Jrq`F=aeaux(RIp`Os6@imJ-gW5!v>YJG;S8+2{ZwxCp$ znWIuTm9Q$yu?a;<4%e(ORn43GTWqzUVDL#ZjT3JVw`>msAwdMua}&rjK%LVF>sa4r ztED=wgv&#*``u2B|LAt|&z_ zOp_!?C@r|f3_fMTFjDTe6z_;PI}Tq>Y`Z6P>XPecOPq6L(}4EEMo~uSSvk+U6Gb4S ziX>ndB^qF@4UI8mlt8#=8+SPlUbF>eSuPgTRZCMXSv8(+InZrK4!eP&^Gso)A9nbD z6z#dGkg=qLV(>9>=zBC$IQ3-7T9H*^7&F}v>Ag4|%|2qy0&8HKM!bjpexz+{>e`7C z;pm#B$ZHoH)@SP(&Yl>?k-i%kN6%)nU>ZHsTvW%tBMk9mA~ME^?C@y($-=29^8+%5 zg0W>j4FPIa%gnOXk|D>8RuPBg5u*SQ2w2r9xRQNHL?) zn5spian_Q%f$`9xtwUjiVTytxh`jsTE&FauE)!0Bbm`DBu(k^+0>i-29k@KdqAH0d zMe3NTLSbbbmrt)SMpM~>GX*ur@)!eFXPhc{KN5=ktYy_Sw3W=XbM}l=hgQht=`WWe4@+fn28ver zF`|%yYL<@LHZ1DEvK{EUi78Bcb>kTh9;GZ<$yg&$BmyZFCMC(v3Lqv*lrzf|kulv^ zh)HbDoAnZ$#gCr-US{2O?N}@umP;{hI4f?~rWS4QVy+W@iqwr}u@I)WQC3*n_gmh+ zear2;$l)N#FeMvMZhknqxel2Jb5B;XvrsSQe3o}D$k{QAdiF3!MeqRE6D zP?aDXi^>dsU>_36M%uF_b-R#M;MS4bnv^Wl6wunz6^n@i1#gVws$F87B4&@HLMub? z9fxj*(KUzd#NlqsIP@5u&_+^)9SY?thSBr(_Lg0@Lfz zKt75`l?hX_h~`OHRWKA{7)aSb<%k)kG4rFJe~xPQ1XVL-N7uvcyOHf-Vu}UVI&`(b z=!%TS6eE=WT>g>PHP1<~47zdLZ)50rGk*@|V|vTPRur_!2YgwdVn0$)@`&J{isQi763+`K3^ zMs@@-2-wGaPuB^BEEh3Govl~2i&km~8S4;LlyNhIB4Nymc44`EvX+#MZk$s#GQms4 zmDWOM6F!DMIdnm0^?s6bf$$^1+I%`~%VmuEtRv3Ue+G^s2M(GcOFL$QlzJGCdE7GvJ3EH(&jlSD$@Ge?Yw1MO<>hi~A&@Ng1Y)==#FJ2h`Y8JJ5d57&Bd{ zaFfH;j&|8{adFAhXV;uvY&g5vpsZ#JejZ5(;JIpqcN%kK2tC_jhvB}&;Q#<207*na zRJ(48Me)V!TfX|`9bJfwu@FM0u?^wi$^C>4nXBa)fB3C$qf+7S-8-6Ex&uFr!o9MI zup5cH0p%mcY7npL?Jpc3s*H5o#s={gsi?zd?ugJO(5Fo5A2~`4` zfJSD^IVGG{Xj_r%7F^5d6+i#{hEWepv;=BmFic$}CMDKNEJhjm{T2;II;f+6<~YI< zlW=(?J};-SgevNv-}N2=?x#jKzn5*sQGb4v#+@quqY;S8bLW&OVP;p%HhFCfMeIwb z|0a7mI{>2qaHeS@crR*&6zPTuN=2!k2rS+w4zDM^JiK996)F`VkCZSl9d@kiJy)A8 zFP@(9;`xT_CoSvMg38tCB6|7|C#*7amnuaxm4dPsJ(C5EYiDYfMF6dmEk-2`mPv}2 z=P$X=aCdjl-J2V3-`>(6I&zBmIKh}nrQzcI0%f&~dUGKp@V+okg+nLHsMu7ru95_X z>iEFW#8^<1)B>$DN+&`XICMMOwqdbY(6%!EEM$B*Dkd^bD>AUnW`Pfpu@{TIpAvmP zar5R@0T@rESF1`%O!8#yb++yqmjXhxO41i z=g`I@M4d+?hWAjDkH!#3fX?GWE{s}{hbY$Lq3F$9nIneAa>*9ZEb(9wWWoGojt z3-XW9)-2ac&Mz-``s|wLAHCrG@*HK2gf7NP0P@aa8;f=_*UU*AU`@LuI?da=dw%lS zXZ++>pRpZ0NlOX=Nzs%VzwMx(`1I;IXUiuv#+kRzTXof8GCW$|j&gZ;6pTe4db zt23fqGxUMi_Y=FM7%5~8M%UPR!Q@Ouih>@@DiHx^^+_sK%EP3$lzejcs2MO)5IGR) zpFeIWHp z+7ubRrPXB#shFwuIN@uh!6pidqOhaWWR&~Q>ea2zG zW9&PoNn}|?C6p1lUkr)KM-GR9{k~_rJ+Rw%^u4E?SC~~Jgs^$^qtx-lAZS@_GDa7C zo*2fSVd$Br5$`2uPHTCPRL)|pIR$`%rb?Bhad?6EOjD$;Tc$B`*vro&9dRH8k>`1p zsjKA!CzpACZkS>0=A<+CK9Xluh;+V17VuFMY!s(m66W=(@G3=emJ(}9s>yLe8^fy7 z*yVD0n!8?KU-Kt_@+W-!@yGo2U;i~f{_&5AG0ySQ`u$M?vySrQMSeICJ}%UcJKqn- z4v#zN6Vb59m?6*Ua~heqJf1U4#+v2%^XEK$`jnsl{O2r}OC~=`=;h?O-`?@b^9nzB zoHG3U=U>wAJHGwtCFe^;m_`nVJgp+99rpa>m%rgZ{p26` z<(IGV+EKL|N;Zs#kteNT+<7=mJl`lnFu1Hx*^qoDB`_)jNj{FAv>zx*iOk4k0-zeh z+it)w7F5qKxZW&b(=s*8g%pgFbYfo;v1BQFb7yNUGhM3?Q=*uPVpk-+V#+o9A#(_p zo!5BfP*p|i77`~P6U8=+K4O$e?GgoB%XM?|`rlIBU)QmNr4!KfpHx1ArVxO z7#%dWh?ztuEzZwkaVTstR8)*%WZw_mA9~*ICT_L^?+$^lf9)wRpPsSNGhjv=iZb}D z8IwGOE7M?0i#08E)6AfuK*^qx0?1v5(iy8YF^uRm&tk8iaCvct9|sPH9f$p%?r^|| z06LH&gqRp+ROI2%$@{*eJ4`IxlFG<3yh@f_q|+|S2oR}&$)cbsb6R)^f&E^%zjf{A zI;1$?tkKE}X)ec^M=byT#tJ{$xti5#gP#)JVPby}EAW2bOYrCDMWU7^TdvG18l}LZ z(b{5-rK$|ML=K0;yzCbPi_&6`m+PRAm7>cXmC}!Qx%i-&rV-PL!K|ulHk&hSO5$6O zbBuc_h0DuJ_WM0|cXzB-tM}%!$EU;bwN&y0C5qp^06$!?#TZY_(W8<=^5+vNL^KA2 zCe8~GH5cEL6Hjz0zJAU0txxH+X4>!Q_j|$=Fs|l&ea>}r#$t2H`h3IL#>wIS7( z;uhGIA+8rR7iX-jC6q*N8)EX5#?hRuDM~YJci7o=CT0;s1d;vu#Nc5J5KLy&p00Gf zdOI?PmYAg=E4>2KfHCA8(Y7M_EW@JtSf`9R;T_dUEc<>fd=I;GT88Q0O1yY@?Zcv6 zeg{_~zu(RNzb0z%k1XM&%Qeh$s$=BR35+5)qDX_&Lq|Mczpkq0gj<74nIRX3?3q$v z3=`I97L}v1Yji=vOQ(P{6{tv21HJDU?t1p)z}L|$;nV0D)f=id2ViQ_~8$K$S0qCa+<+T(=?||NSAq}nUzz%e0fh&raw?M@W{z_6nckQyL&9= zW#-bx5IOqaPT-yy5K+pknJnd`Y8b|mw{PD9neK2Pgo)bKJiU6tcRqc|qF(dofBLWa z!QXw4=m$(mq;cZgpMJs@zn1US4LyC|lPR>DHCIosdGho*%k>3yyTY|KO`WLRfz77k zY_p+hTND}}B0dBX1&rugvy!cGWR|aFv3C|S7>yqTzj<}X55E6P{{F|W7_vgIR*ZYa zyW1TlTTC%THPXH9xUdx^TgJ{a`2#LRbP;n##u7~+5$OAl?e?CMEGUOnEwMJ#O-p^X zW^AEXo~#3h-94Mq5chk|t>f8n&SrTg+t`@N2__UViTo-?==#j|5b;^#RisNJhgA6D z&a)p3LDwi#qg74HhHi>;)|&xsF?EBj8o?e~M;OP4(bVtgK=UJcmwE(odSF95mVfCF zKED6CqxSZsEc@r~<|r~2)8@S~+VMJm{MJc5fRA+; zU9ntfp}R$C#I&|3G`VrKZN+j`6a0!86PwL~t`o=WZnxubI0*W3N~B~7L0oqsc&wFJ zBc-JC7Qo^Rk;<7eheZg>Mv^Ixa@afrkV=*@gjGt>wk@R;ZfdG<<2PqN-7ER4JzV<0^Z|?a0Z+wH=E*SSc?_R%Sp%gEly+HYaQWBF-D63hY zZFqY9l#gD1%#){2shcGjOHl=DJWbWISk+W*g)#~sBK6_-~O5}Zf_`6;qLAoXHCoD<}FQx zKltQRzWdGJ<9cz9o)?T+J5ZKk3cPu@<@K9;wtd3q8ealk9OzTUZI?+bPEy3CP1$4)qrb09{KQgCs3K?(`)6EPquA4z`p6dlVUPC%F&9#<$fd$%xwrF-129HYRT7FxwuDJSVB5w@UgKDZVPqOJ zb(N@_nx<|=X)%L_od(ZmpjFL0M(Br*l@Lr%DwV)gQIPvby4WDU?Ns3?n^nd5i{)<26?U$d?ZQrtN zmRMzYa(O{_*t1%;T)(*H>9Z@YpFL%Duk(7SCkoA zUAMAXRXL;0TqL3glh9U?a$pz(C0c6E`N`kC!Y&A}bJ{1DsPi>xV;R@*qwoC# z|M3^!XZ3W&IQ6XRmfh=jr0vAj^~an)dr7+QS-AzCj9Z-1EYBHkw*39)U+^FP?&l=6 zWIqESbbXP<~&Qgig0d^U+1ye=b`96jMW|& zY^4fDmy@XeXsK5+Vwcq9oax8mL|n5+Yw}~$Q7NQxB$t6!1?t)moTelwu}FtI>z(_4 z66B>4-bf}BQ(*9jVL-LS!^rJ8ia{tF^vrY6MPbT-Nj;6b;buGV^t|Ea(gsy_1zBd>@0=k8-sSJBRl=WF>LPu5wJHWRH38!9Z2lB3mn&uJ0K7o*VPn;V1TPf-q7<%b(bhuBjDu$i2_GcA!8*AhhpCrTQzLIv)S0_&FKx~8m`m?umA{XhI2H`_a8C=t<(L01;rE--mXvMUB}Xp&`&nOz?! z{eU`D{Q7mrFTUvchc5%!23f4BMs%7=a^b9YCzXpF?nN(|k9rjKNcVc|Mk$n>PFCR~ zZuD3@(;V`sw54(tg(D9+o|1Bpb6l;Dyw>s%F+V#TPb^^+sYEd)&j}gwIZlC*dd7av zYllY=>)$TCAAat4?KVCfw>@4gKYp_c90Jfzrr>5~Z^Dq0A!|d{mYA$`p!4`G>m=a> z3MjHA7RA(hTwlqtm!f}W*d^1fI&#%Y0{ z0$tZhJQ7wCI+VlN8s{v|Rx>CoGRBNCh2Vv^Y~}_>VE6^^1Fv4anhAe~sVnrZT!owZzCt|dn<6n47z5pK=-eb`|q92d5 z-4DO6#OcgXYkvT(2~lFsSIZUsFpyJbH|+4!h}DXc>p9d;Q8`PVJXXy~v!iE71DBUq z_-SGqNBr3H+IW13C4bji>*g0cU z#^gfE;Js{3eT;+{u+CD|HBjh=Jt0hB@;tMu>2`@XukO*I!lnilEjDKwt0`;6ZjY`5UYKl=&8 z*wa)NQlP3W7Q=F}!MP=+EO~P?;O=+WSh(GLro1Or1HXCK^Z8BS-B3f-QrQithN6tj zx|ERPj@X%_{`yp0)PqJ=oeJ*^lh5V!|Iu^G3F+a)lu|m;tppt@N*A$y=6NeGM@a!u z=Lep?68f2R(h`}FLOzWo-aqoIhXPz=!%$A+hX={qQCF;#qzIQ%Q2L*68zap``Jl@! zA1F4Qa#Y$vjwF>yWRilU713y!=~_ux5UqJRJwOtLqB4m{CXtmRDK~S81sYE-sFcwu zVKTS^{@%0idb<9=VK~r@8%BS|)y0BkCHGWL0@u+>%^8DYo7bw~oR}@NHcZ)|v!scL z6gto23g&pDBBw+nNxoH5)UBdzEsIsnG_8pt)Au8vfA%H0$O1h{QUcK^ax#?4;)*#b z7*Z4oT8sr_vVhaA!di$au-o0?Dos^Md{MioNsER;J-gd9DGyQzoyC|+mSV+VU4?UU z(iM4HV!2+>G!5HDN8igRBBjDO4y2rLwMAPA;xuy%mEa(cryE5mP<#-}@Z+POF-D*m zGh5+tv3);HRtgbEj<3@1J<%U`$;T1IaisCPbiI1+u2Tjd678}fWH}CMYdCZrsfcI0 zsT`Fx!uT8qK6>_)XHTAT*xu9K?@%#vb#cLAH}TDHe#$rvXcDW1<*?sDZ2A4)`xYO4 zaz)li#G=vQ6vfRmw+fV&sO=Q95Rv95eJP4Kr>Y)yJ-dA`9M~xH-nvPYB5D!ud$3@g z##zm{FWkM^VM|R#OUmL#tBjF2c3?<>blA}idzzJl>otqUuxeMV)-6^?>P?G%e#x7v z@NV4l%dc)wUXdon&_(w9iQXrYE8P1#Vji(25qAgdVnI|6#|m3k?C;?hzj#Y{{S`JT zZV#TZRFwLH+aBKTpl3zxE*SHIfgDU)NKldzGc#oR87$bB~2Xari56vc{8Rpduy<{HQ~ zS1b?fTvO&m=m#Lq>CZ=PaVZamjw0Q)$PbP>vxkmW&0SB1Q<}$#Qy~F%7+uS5Ly7t& z=}0V@qzk4fQa0qGakcO{;%vSMInTOMPcEKVA{3dI=A;FXFRd0TL`ibaV2dJZ#~3~R z*s<&O-0yeXZ8v=K{DSMtHLGP!ik=kxJUS~99Tg^wRxDRb&d)1WiwaX;kSI*Ckc>1w z);UT}#1QDGo~o{e-Kz=|Ln($7YeHye@>pT$CDb!`ndJ_H0NlOz5->0(A*40+oO&^j zg0f^irj*g4pmYKiNh!#jIV)0*#600c&p6KGPYbztj1`@^u)NDDO-CDO8cVeDpguoe zv0AQq@j{k>UDtDex99Hep6z}|h*3@&QK6I|7@U@vFk{81fKsHw1FPY~uJ#n_cvKyf z_m>QL4sla@?nvg`?_;MDLXcVQT*Qxxh+{!NvLGHW8nn`MeNW60S4&`HNReC$QwZ`T zv6|J{ipE)PZ*Dl;ANcma_!{5*Ee&U-S zpYw13&0q4-N0%IScj(4p7Y$g!7h31QYI2DrKhE*ruwI>Gt%IylMKg?^-L~WIZqGOb zw04q?n=?5DQVNXIM9Nv7(nU*l7rb7+!}bSk(dz{=yOdU9j4yknscV4NO_)XmKlqo z)f__lAS@{Jpy6S(aC}Y8VW|=?HLrl@PI+EJW?|5JAMiw`DawtN6Dg)g3)-W;_YwW> zcx{4ke6yhxPf7waXa3&Domif4TDfrrB^g4Rv$S|9>_wzOqA?Ynt20)9-WVzK_59(z z^5Mqrv}opGB%+E#QAyOjin4^!agMo}f4`+rY(^EaBa@3ffaZ86Qv?f1F~qFN#Rx4e zXQWY85EaBir6iF-WkZOXyS`(b_H4I3uiqYc`RtO*%N1>-MLkf&G1he*ejIVeaB=Af z8j7xIt0g)6Ihaz-bJRqf2F9UhzuR-RIb-4ML!!CT(sZ5zc11n$$tN!*F!SI!>?QxK z?O5n^dpFJad>sxeP&-3dmZr;7+et*OLSHI@^`5Axu-M`@F z)sk<2`--|Qgrw26#ncW}SGYzZg0v~8g1@C?>~<=N}(8qa$riPXd@iq`MN&l@tqo&qk_1U_kzCF zJUdOr5V8?oFmom$nyk`{c9d~~{QV>nG?gg2pfc!U$i)hRGfG;7%HsY^`JoFxszVZ* zs4U91!ds4(L+qJ$p1mKq>+U&wJ5X10ghv%g(e66Ne#9EX#f9hj+sO5kiRagsEGorj z(PEq<=>laUszA05+b+O}=KZKS75LHnh8KzGS<*&m+r)CYV7->5+0ai+li(@GVPY6Y z;qL~S)mm$?PGjtRfXa$6MU>7nW?)tq=yKBDqB7$&(f5|+GO=9Bh(Jz1hN_YbIBOg^ zLtRUQxR~>$Qp!xDr|$>)VPd(e879x6>)7pf?Du=7aXO`dM`f7CiNk&`a$^Nl1kIQ=^zImfN?F*g43*FG&Ec%YyaKpD;G1KNq$J_F0ul40mk#xM>8 zSt%~h)-0dY^oNe$9DdEmPoD6dZ+(;d+dB^1TekZ*DBDB4=a0Vor~J2n_Fd}S6UIGC zd9JU|iP{paMb!V-MNYasIZTa}w1%L5p-{mj<%RlDge1(q#A$i=w zvA#TGpGMwox6(a3%gYzntQRXbi*uIlj7Be6x--^I!=eHhuytf{R^t}uB=dxuTf_hT z{fRHeEqmJ#bjB%1F%`;GkR4M}#4M#FhUt{pdKpD=3;+Ni07*naRMd4Eqfm3gseYDIOK+Birs6 zzpZ6?BG<8~29$!NGf~UK#AtW23O|elW~2IC$YLo_{Cs^E^cqXpP0qHO%0PA_TF|ADi5)ARAe9 zW~>Ckrb00mRExF_R83A3VM=uG3U1p|%79WH>tyaZjU(eA7=iUW_~It>vlo^|Ol#QM04oVsoXK3n%)oMxbiE#{chmn35 zi6L?G)jJM{Kq;ANN=%cW1B4hRi!?QBZ4L#ubc%oZhXe zaIR2FB^+{>PDv!zg0)V#968Slr$AAGi{_GC6#K)0?Y3pRZP@QRhG8H~qR$@3f$esO zJ*pNSn;eeC_A!y{amRX!F3vLCAIA}G&3hWjW5GS5(;m-_KkTj_Oc^37j}*GG$7O-h z7&OcElF?64!s!BT+lG&>p7D#H{5?1KTYkAY<2#>z1K)T2pWpkxNDIUD%O(HI|N2*a z9K24_sYu7_y>^g=8uc3Lg?B223f`#!_2HZ7NiOX$aii?dZFSX-Why z>95Hbf*&QXDvJXqrigP277A4iDMi8;AF8Qnf@qZ>dSS%~nt2IrvfS}18SYOdzY(8$@L4iy8|IQLRk>h8LP#@?2WQp%!OSTcT(sv&`8ur<6WsXb1#c&##4y(~{O5jhKL= z(!xQ`hMdI_mX&1;fiY!FQB=02u2+D@C(n?)FgC2EaW&S}6a(5uQb-JF-u0F~Cbowg zF4r|T?>atyw&M9!!;>?|deMlk)@0H+K}e70{YNcynV0bLnsat0w^e9u$r=0~UADlmxvOW^hCj63^pB-0?zm&QaI(@08kn zSbRPSz?7AYkLq3{_!>w@LoI?MTb&3d(_J9G@)z|;@?@cTca^Z`GP+`b$5tN-cW z@SQ*Sgs*?=85a$xzCll(u7AtfX2Uoh$X1HX6cbZS#GG+O%~BcZa(oKJ5ZG^b9QFr> zJ`e+hso=**7$x^h`E<6}%{8p9xZmEgC^fBWv0BTxg-q=%)@ZCzD4jt+gi;oxWVEOi z(af^Id8}|89~_J8sqoGPUG(Q=UV0sk5Hh}St`gg5Qs`nHLLYM`goxJDywKIem}LHb z^gXJKI)T9-lsct|o2it1D!d%+=<2v2KED3pXpQ$cB`HQy^ti00AUb>6d*nysgy_>l z@Szn~qO}r$sOK?TG~jcQ+%J_y`>i6(AbK?m@nrllBOkLqodS#!bfrRJikE_I1U!=! zGFq5(3k#M!b7@1)ge*Ghh^3f@$~jPwOCaFzjHK)^v64|*DWsB^LSYDn!&uq)LeuDsD+M}vKq$ww5ncVZYK)+ScV)jawU@>o^@>lqa0ig*I+$aUGaPi8%NAx9;s zf+9@b6eHm2yOHkDp^d0H7K@s;buwO5S=K!@u2yg=W8jy@3ucK_vZPWonxG> zG31h&{3M}uox=MGtukQ>v`??uTx|I9_rA|CcC?M-&FceqS9g5p+uxvhvf#h^um2Ta z`{q-cGN5&!Sz1Caq#UU#D{?hmgOVF0#0=WtTutK?wghq*nZ}9TuII4tnFi7Hd0!aD zNZ(I{DWfEPagOG;*!gLwt(%W{nve?Bvf;ab`iDGudd=n4xqzV8Emv3PTt7L(BKb}g zilzeZM-mZ~#x)hrG(=;-Io57TiJm;jjA@!8GzDEMLRX*{l75#0Mn^)(974}z#L)5C z=Wp2d6WMNvw!xbQqieKs#GJ_?p>ty43~gEjXhnEWD47a0|m^1xr<5&Mz% zyWb;g`N%yzZstxWEhXZ30vKganH0{Yxufwo=jY|Ed$g-akDxgZU+-wbcu*|l*#IH- zUu)%vdb|gIyYL>f+ax9{rAW#8I3mas2b~{b5um9kVT>Yd)kG7+@Hr7Zq*y4)qOzN(ppqPE*yEX5m<^8v66)4COh{9eRdwB9K%59!s3$F!K!ew1|t$ zi-?C#x@2*R9Al0t0#1>^e>$EIA!T&Qw60>xfiaAvRocFQ+}6sj5dbx(PI!6hP3HNLvi~LUM%dm++M%{B(W->lti?bYX|W ziV#H-#L(!jLQQAda}K`9+^2S(Du7S~>ZT&9y6a4PugqNQ|G)p=fA(j*`sgP-TFwaG zBCyQohDB-Usy&_E$80N~fzqflW7`i51XNj44UWDYpy?QzJ$1FE8ET|a7&D+K5Y}LZ zj6!6be|?VD0WSu&-GDDVzHj;bi!*L+HdtMPo@0s}p*2AWoR3F&=?9$22r>{<>?sN% z6O$tKZ$&)D3301gWo#!L0`$URALvDlfR8^Gx2f={SW6`j1hp@5s^x6k^6JH7o}bL{Pc@-17~xTxbgE3<`%z&M0VSRK z;RzH)#$r+M#LsElCEHDOnr*gws(s78t|J6pIh2Y$=0x%ljBhe7El!zSFs8j6n%Q+w}xIQn*Q5EFNvTwqxj`t+y<4oQ_)8^Yb$@lcTkw z$g_Bvg@CXF$_A|O5Lk5ZSS+?1D9W5H6a4bmKj*Li%WwGXlQ(?x_P4aV4c~tAj=%cP zzv4gsr@!L)o5z%=bB4y#4VKf@DYdl&&ImKJ(`kvk`sp`Pj|NJFq7i|(Fv?#Yl2!r$y0%EkJT+UDu zbb4>B4-`hn{$x7sBuGcx!G&8uji0a-!h;Dqw~ocbZa6l6qnd;$my#mJmfMt8G9C+^ z8)Ay=L?sh#yOI#p#M;Z@cT$f0-TRpq)%nFor zXlXEVft7*53idae_w~R`UhwbUNPhlo&P)duiy8CMP^95%a1KB8Na0zOd33GC-CJtJ zhlxbmar$UQAnsEAFvN{Z>B&__nax?wB)h6$y>IC{Pu27^O^q8O+^EP6^Rgt%3cB9L zT|2QY<#DuK$6!TlgM>&qYo)_FfgreATz6(U;nf=~YRFiM8RVOU1+*bo>75qB(cY=P~2 zw2(-nDU6BR{ca%imU*6&7fZ5P&ZB3Kk-6aS{^5VKTFvaHg^ixNHieb2t`8N46?>f?~Z zTU_5@yN;oC41=WaJ-rkR&av)VF7_1{O$}Os3KW^dYOvDL2N5&cB;+~}GD(nQdV>8Y9X3PKi-RIog?AUI0e0zC8 z5Do+}dPL=HZYnahqZdy&UBJcp4P~~7&}K)(G$MI>wq;v+jMC(V!er3e;qaMi6?5LA zU!Q}D#flM9bceu;)M^2kM| zWV&ug7g@Noll7@*AY_<$h7aM|xA8y_6Eu7bN(^IuT!^va&PPOGoJ*v_??`FMKJMb9 z{VpvA9)Uf;Rz}QfP^o{Dt_2z7f!7wqF{nK)azWrwu`QCGw?DjA4mRmbt6Rb#J}&yo zBZW`ln91PcQwu}JBzq~w_ddRsK%n>Wlhi_DL&gv!os-n9M05h<22{9ad%fZ5D&zUH zz_Z6oPGm-5R8o2br0*HLLI%=qKg5Q{2%bqNDj}omOe%+DK!y0&7(=ED@?28ROUl)f zx^ZlGE!%BPQ+If4v2LJkqDp7L;f07~Gi{JM0YoRpjK~HiTBrlq5bqHQcpY0$KEU<$ zn!X#D&t|b5>+FG8T4+V4H9~q^Yom_$7;=8RyPXcg?xjjhb}wSm%R7#F@4HAc%8a4! zI>ym}NcLeRpmz=>qATsEuRmt>=!BQAUs5az{_gMp7fMSWKYhgW7ti?oi_iJ?>>dC8 zzx`KUe)t?E{+#8k1S$D;d&OqA!wF5>?0GkI=%M9tW_UiE5xSPvwN$&FrXFZoOYdT2 ziBKX9D;&Y~xPHL(U|oTglGekvZ#mms^Y;3Ji~R;&l-RCdhD+Ah2))irO&&^eIj{~L zv>Q4c>t>H@Ysy`XySYZ#mXCh&0neVSc=Tw63yv%+kzUd{aKzok@4kG?AHIIa<;5my zP08>HB<@6p42G)j*$<8{->rGCdd}Y85S$`-g-{vgY)M`$sA_>tgr!+gVu}n~C)UKs z8I`y4C!|crXn80;;ZG#~{wV^ZAB`2^u3Yi1e9@<&>S*-2D|dX@r|{j7^Vr51b-B0P zg1veC9Xy3kw*hnzK+c(8G^a{D;ZVxP3eE;a@t{o4_6kg$Q{$loVj zuN$?(Y2z}XUEBv&9+X9Lx<5|}5+*XvD4(&z%RL9-ZOwzMo(4b`rqsVe%q#q}+1*T$sg z1Z$EC6e{-C51(5!);JrBu=Nfxcx-POGEH9Sr1ve@tZ&$Dx0JIPMP3}hOwL8)Po8H< zZrVji&J^AF5XAgAON|Ned32(LDMI=VAmn!EBW3Idd*=?l;}I|{fv)TL;Q1rY&(HbG zr@ukxhA+PQ0+|V#rsJ!x-%@uK`CRk<{F*O5Kj-Y~lJn~eupPedaDC5ix8wR|O_tB7 zHXCfcqrmZRUw_13e)=ie4P+jq)EHgHh?LQ4>f?Yc@>UI6DtZ}cY#~7IzQ!v_xw}S7iT82mVw5DC8D`5lS!oCg20T??v#oc$dh!Ib-jOvepZ(cS`SjCI zIXO9HyM8=jbU%(o}TTPDe|{(YRIgb-y;LWC4cM+D4q77`zt;d6y9C&cB-y3a7K4uIo~3F)2ob z!`fT5hzlLAYp_(bUBgY)a(;Egi>E7IJUivt;{~USoI)4$DeRVznkv&(OQchY2pFxH z=PC9|ctYrt{+k%+prVRFWg3$UX0rwDa!FfN)Vm%1eos5JT&_2CLyz;fa{{BXs8^q$ zMI%+w5`0v0NkW=2^njj*0MXDlA(Q|~ZthM z)x`>ayt*6iQM>M(rV_r-yW2uLwX`3*Apa!5T*TCe5V&XWoj$%lf|=i65Mr){=P*a%IEGE*@xbXhZ_C{@KUWRfEZM8awdeqXp$j&X;HJBPh>1cDp@Fz?0Kc=CcKLy~8_6-+3}U zdf6p?AE%9isHV3*I(c01D5Ik5N=E9w5HN&5i(}XIyjySi>hhd->nnDy!xsi+GEfq+ zC@^`35;D?`a)HniD;?H@a}tvmoaQI^uH$sI;M1SJ;b%X4Ls^#8+jSc5gy@K~3OyH8 zRmVU5zu)rtAHKqsON?344lRT02r9#R!O+Kq)20Fu41I49Iw#9AhLq7JgpLv10i4qa zSwxhbDi9(=E1Qy0^}R6Chl=BmS%4q9X$kS-_0}B#OXG!Yt-V(ue@Nk#QrxA5J-}9Y z2ncnj;02M6r*d)}b$8yYu{ceY7RQA*?${HVO+>)>wD5{_!;kmm7(V-bh1ZxU1-sof z%kNzUZPng649hmNEB#ArlHUR zo26oE1iPl8Zab=dL$z<{yOuyq4%W&XSj$o>RB{y}VuPsf98!#oahLarg&-vA_f5o%s z&)9CZciT$RZ9aQpC5A;=u*?yZW%-cSHY>9q&Vhgo)1E zI(u-bjf=rF&EbbUpV-rs2U^&1q5ZyA!@cJkZX?3Izb(4sCT3cM+O~bLkWb}mT1QjC z^eBHUg$p61BmH;3U-55dcT&C|I(<%e_2CHKbGPu`-*_FrS0M!QJik|T$Hy4kjh)v> zr*Lvb$a92l=;^s>9rd>r?=E-D^DEw7RrnAobk14^>*y1`%sPkb8~)-Ga6uh_HOoR! z$N@vZC=t2VMpKpIYO;T*hNKBu*w-M(Udv*jk+u-{g6U5^_qLvIm6 zVoVnG(NZMbW2|k?dYY!E?FPDDrCxm?&kaS97Ail=AT#>jadY$SEf#XjKRf0tOj{85 zb}9Z=QZxp>9k&{$ANpV|{m|cKbk}Q{Vx_VC#p1P|D!m~PEvRuu1e|5%3 zzkbb!Z$4yxx}Y9<`o3fN|f}!uh z4gxzUnhK=J5?*i_BY}j$`;4}Y7yYa_K}en2Ljo^ik5UN-GVOr9N9c&!n{p8zI*R|; zyWQ_9!sC%`s<0Wa$>aR8ALHw|V0}+(IsyJw)EG|&&(j^|v?u-G{gX@_-V;+1m?|v% zK^-#oe#drR2oJn>B2M9BG?u;d9Hs^Ip`G`?X3>1;^qXbbogVg7^Y5GkrP;TZ8jBVY zgQ>F&L5~d)JsDibzIXJhPK(B?q66VVy!al#a48A0$qxgyxkPW0=in)VqeNYUr9i#TkXnsse|D<>N-m@zTp(0`o_Fdka%f;diRy?^0K zDXI1mDd)VSEOMGA_B~#{e93aLKqE5WE&upW|Hwx#Ur`M$)?2=M`!!Wt^XSzR ztb}^#*tZqk(DCHS6W(225u7E@GJKX%_m*n6r(M@9f~Khlv?`D?XSZ#z)xh8#wokfH zp$IxUvu+I~@rEDlz`l2UeYxSAi%V|m9U{{#W^?3n26;Tbhm;yCjlyfmAQE9qL6Ffb z5VXX*9_KBe{qh&Qe*G~7Pt!DU!2|lOql7h~?Fj7}P*Wu$#2zJ^fA!m4%T*5YGy^#eulp}f8CE2KZPI3FMJ zLpT=uiaUM8=|Jsx$M!=aDw!~KfB5rw;4vm7w5iVhc$Yf1*dC($9p|}4N1RLy6b_~m zpG+koN$c)N_PD=j#l=b7>k&^etmDFUTxgHKM}C5Pc(^|KztdVVB@&Kpk`N?KJ>Uk9 z(F(1j)Y3?Wk{UqQq zS2N*{!jvj0ih|{QN!uhg zaOY{;fz4(|*R~9OG+HRB&?+L&ytB0J5PQJ6M#{LGZkmX&jIr~95b9K0GyXqp7Ym6P SOtB*X0000