From 2cbea0efa06ee21146846ea66f98fad8a59dfc79 Mon Sep 17 00:00:00 2001 From: AzumattDev Date: Mon, 10 Jul 2023 21:44:17 -0400 Subject: [PATCH 1/3] Update to Project. Autozip, ServerSync, etc. --- README.md | 68 +----- VeinMine/.gitignore | 9 +- VeinMine/Functions.cs | 4 +- VeinMine/ILRepack.targets | 10 + VeinMine/LICENSE.md | 5 + VeinMine/Patches.cs | 47 ++-- VeinMine/Properties/AssemblyInfo.cs | 13 +- VeinMine/Thunderstore/CHANGELOG.md | 65 ++++++ VeinMine/Thunderstore/README.md | 20 ++ VeinMine/Thunderstore/icon.png | Bin 0 -> 64479 bytes VeinMine/Thunderstore/manifest.json | 9 + VeinMine/UpdateManifest.ps1 | 9 + VeinMine/VeinMine.cs | 94 -------- VeinMine/VeinMine.csproj | 326 ++++++++++++++++++++-------- VeinMine/VeinMinePlugin.cs | 208 ++++++++++++++++++ VeinMine/VersionHandshake.cs | 124 +++++++++++ VeinMine/environment.props | 13 ++ VeinMine/libs/ServerSync.dll | Bin 0 -> 48128 bytes VeinMine/packages.config | 2 +- 19 files changed, 747 insertions(+), 279 deletions(-) create mode 100644 VeinMine/ILRepack.targets create mode 100644 VeinMine/LICENSE.md create mode 100644 VeinMine/Thunderstore/CHANGELOG.md create mode 100644 VeinMine/Thunderstore/README.md create mode 100644 VeinMine/Thunderstore/icon.png create mode 100644 VeinMine/Thunderstore/manifest.json create mode 100644 VeinMine/UpdateManifest.ps1 delete mode 100644 VeinMine/VeinMine.cs create mode 100644 VeinMine/VeinMinePlugin.cs create mode 100644 VeinMine/VersionHandshake.cs create mode 100644 VeinMine/environment.props create mode 100644 VeinMine/libs/ServerSync.dll diff --git a/README.md b/README.md index b6c6abd..18aa0b7 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -![enter image description here](https://i.imgur.com/OAfRGXK.jpg) +![Valheim VeinMine](https://i.imgur.com/OAfRGXK.jpg) Tired of mining for ages? With Veinmine you're able to mine the whole ore/rock vein at once! You can do this by holding down the assigned key (Left Alt by default) while mining! @@ -17,68 +17,4 @@ By default, it's set to 0.1 so assuming your Pickaxes level is 20, the radius wi What does 2 mean, you ask? -It's simple! A standard 2x2 floor piece has a length of 2, exactly like its name suggests. -# Changelog -## 1.2.6 - - Compatibility with Mistlands and fix for Silver ore exception. -### 1.2.5 - - Tentative fix for multiplayer veinmining by replacing the use of Player.m_localPlayer with Player.GetClosestPlayer. -### 1.2.4 - - Fixed an exception that was thrown when mining Leviathans. - - Added veinmining support for Leviathans and Glowing Metal (Flametal Ore). -### 1.2.3 - - Fixed a bug that allowed players to veinmine (and gain exp) without a pickaxe. -### 1.2.2 - - Possible fix for ore drop quantities (Not sure why they weren't correct, as I don't change drop rates) -### 1.2.1 - - Compatibility for Hearth and Home; - - Tentative fix for ores spawning at 0,0 (unable to test without other players) -### 1.2.0 - - Replaced 'Even' spread damage option with 'Level' as even was useless when the mined vein had a large number of sections. - - Refactored code. -### 1.1.9 - - Fixed incompatibility with Rocky Ore mod. -### 1.1.8 - - Fixed a bug that was causing no ores to be dropped (hopefully) -### 1.1.7 - - Fixed a bug that caused ores to drop every single pickaxe swing when mining manually. -### 1.1.6 - - Fixed a bug that was causing no drops to be received when veinmining. -### 1.1.5 -#### Please delete your previous config when updating to this version. - - Damage text when veinmining should now display on top of each rock section - - Veinmining when Progressive mode is disabled is now instant - - Spread damage now has two options: Even and Distance - - Even is the same as previous versions - - Distance makes it so the damage dealt to a rock section is based on distance. The farther away a section is, the less damage is dealt. - -### 1.1.4 - - Fixed a bug where if you had spread damage enabled, mining damage would also be reduced when mining manually. -### 1.1.3 - - Added config option for spreading damage in progressive mode (divides your mining damage equally between all rock sections affected, as opposed to doing full damage to all sections) - - This is disabled by default. -### 1.1.2 - - Fixed incompatibility with mods that alter the pickaxe's durability drain values. The value modified by such mods (m_useDurabilityDrain) is now multiplied by the result of the previous formula (which is shown in the config). Take this into account when editing this mod's durability modifier. -### 1.1.1 - - Added config options for durability and xp multipliers for Progressive mode. -### 1.1.0 - - Durability taken is now scaled to the player's Pickaxes level when Progressive mode is enabled. This is meant to (somewhat) balance veinmining so it fits in with vanilla. - - The formula is (120 - Level) / 20, so if you have level 50: (120 - 50) / 20 = 3.5 durability taken **per rock section veinmined** -### 1.0.1 - - Removed log messages to avoid spam. -### 1.0.0 - - Added Progressive mode. -#### 0.0.1.4 - - Fixed a bug that allowed monsters to veinmine and/or give XP to the player. -#### 0.0.1.3 - - Indestructible items no longer lose durability. (such as items from Epic Loot) - - Added config option to disable mining visual effects, which *might* help reduce fps lag. (disabled by default) -#### 0.0.1.2 - - Added config option for veinmining to take pickaxe durability for each section mined (default = true). - - XP is now only awarded if the section mined wasn't already destroyed. - - Fixed a NullReferenceException thrown when there were more than 128 rock sections. -#### 0.0.1.1 - - Mining xp is now awarded for every rock section mined. -#### 0.0.1.0 - - Initial release - +It's simple! A standard 2x2 floor piece has a length of 2, exactly like its name suggests. \ No newline at end of file diff --git a/VeinMine/.gitignore b/VeinMine/.gitignore index 2f36f26..d7d1412 100644 --- a/VeinMine/.gitignore +++ b/VeinMine/.gitignore @@ -1 +1,8 @@ -libs/ \ No newline at end of file +bin/ +obj/ +/packages/ +riderModule.iml +/_ReSharper.Caches/ +VeinMine.sln.DotSettings.user +.idea +.vs \ No newline at end of file diff --git a/VeinMine/Functions.cs b/VeinMine/Functions.cs index 3c3f095..51bbbca 100644 --- a/VeinMine/Functions.cs +++ b/VeinMine/Functions.cs @@ -1,6 +1,6 @@ using UnityEngine; -namespace WiseHorror.Veinmine +namespace Veinmine { class Functions { @@ -34,7 +34,7 @@ public static HitData SpreadDamage(HitData hit) { if (hit != null) { - if (VeinMine.spreadDamageType.Value == VeinMine.spreadTypes.level) + if (VeinMinePlugin.spreadDamageType.Value == VeinMinePlugin.SpreadTypes.Level) { float modifier = (float)GetSkillLevel(Player.GetClosestPlayer(hit.m_point, 5f).GetSkills(), Skills.SkillType.Pickaxes) * 0.01f; hit.m_damage.m_pickaxe *= modifier; diff --git a/VeinMine/ILRepack.targets b/VeinMine/ILRepack.targets new file mode 100644 index 0000000..de9853d --- /dev/null +++ b/VeinMine/ILRepack.targets @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/VeinMine/LICENSE.md b/VeinMine/LICENSE.md new file mode 100644 index 0000000..262826b --- /dev/null +++ b/VeinMine/LICENSE.md @@ -0,0 +1,5 @@ +Copyright 2023 WiseHorror/Azumatt + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/VeinMine/Patches.cs b/VeinMine/Patches.cs index 328c9f0..69e941d 100644 --- a/VeinMine/Patches.cs +++ b/VeinMine/Patches.cs @@ -1,20 +1,19 @@ -using HarmonyLib; -using System; -using System.Collections.Generic; +using System.Collections.Generic; +using HarmonyLib; using UnityEngine; -namespace WiseHorror.Veinmine +namespace Veinmine { [HarmonyPatch(typeof(MineRock), nameof(MineRock.Damage))] static class MineRockDamagePatch { static bool Prefix(MineRock __instance, HitData hit) { - if (Input.GetKey(VeinMine.veinMineKey.Value)) + if (VeinMinePlugin.veinMineKey.Value.IsKeyHeld()) { - if (VeinMine.progressiveMode.Value) + if (VeinMinePlugin.progressiveMode.Value == VeinMinePlugin.Toggle.On) { - float radius = VeinMine.progressiveMult.Value * (float)Functions.GetSkillLevel(Player.GetClosestPlayer(hit.m_point, 5f).GetSkills(), Skills.SkillType.Pickaxes); + float radius = VeinMinePlugin.progressiveMult.Value * (float)Functions.GetSkillLevel(Player.GetClosestPlayer(hit.m_point, 5f).GetSkills(), Skills.SkillType.Pickaxes); Vector3 firstHitPoint = hit.m_point; foreach (var area in __instance.m_hitAreas) @@ -91,9 +90,9 @@ static void Prefix(MineRock5 __instance, HitData hit, out Dictionary(); - if (Input.GetKey(VeinMine.veinMineKey.Value) && VeinMine.progressiveMode.Value) + if (VeinMinePlugin.veinMineKey.Value.IsKeyHeld() && VeinMinePlugin.progressiveMode.Value == VeinMinePlugin.Toggle.On) { - var radiusColliders = Physics.OverlapSphere(hit.m_point, VeinMine.progressiveMult.Value * (float)Functions.GetSkillLevel(Player.GetClosestPlayer(hit.m_point, 5f).GetSkills(), Skills.SkillType.Pickaxes)); + var radiusColliders = Physics.OverlapSphere(hit.m_point, VeinMinePlugin.progressiveMult.Value * (float)Functions.GetSkillLevel(Player.GetClosestPlayer(hit.m_point, 5f).GetSkills(), Skills.SkillType.Pickaxes)); if (radiusColliders != null) { @@ -108,7 +107,7 @@ static void Prefix(MineRock5 __instance, HitData hit, out Dictionary radiusColliders = new List(); foreach (var area in __instance.m_hitAreas) @@ -134,7 +133,7 @@ public static void Postfix(MineRock5 __instance, ZNetView ___m_nview, List 0) + if (VeinMinePlugin.veinMineKey.Value.IsKeyHeld() && Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().GetDamage().m_pickaxe > 0) { foreach (var index in __state) { @@ -150,7 +149,7 @@ public static void Postfix(MineRock5 __instance, ZNetView ___m_nview, List 0f) hit.m_damage.m_pickaxe = __instance.m_health; + if (VeinMinePlugin.progressiveMode.Value == VeinMinePlugin.Toggle.Off && Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().GetDamage().m_pickaxe > 0f) hit.m_damage.m_pickaxe = __instance.m_health; bool isVeinmined = false; MineRock5.HitArea hitArea = __instance.GetHitArea(hitAreaIndex); __state = hitArea.m_health; Vector3 hitPoint = hitArea.m_collider.bounds.center; - if (VeinMine.enableSpreadDamage.Value) hit = Functions.SpreadDamage(hit); - if (Input.GetKey(VeinMine.veinMineKey.Value)) isVeinmined = true; + if (VeinMinePlugin.enableSpreadDamage.Value == VeinMinePlugin.Toggle.On) hit = Functions.SpreadDamage(hit); + if (VeinMinePlugin.veinMineKey.Value.IsKeyHeld()) isVeinmined = true; ZLog.Log("hit mine rock " + hitAreaIndex); if (hitArea == null) @@ -219,7 +218,7 @@ static bool Prefix(MineRock5 __instance, HitData hit, int hitAreaIndex, ref Effe hitArea.m_health -= totalDamage; __instance.SaveHealth(); - if (!VeinMine.removeEffects.Value) __instance.m_hitEffect.Create(hitPoint, Quaternion.identity, null, 1f, -1); + if (VeinMinePlugin.removeEffects.Value == VeinMinePlugin.Toggle.Off) __instance.m_hitEffect.Create(hitPoint, Quaternion.identity, null, 1f, -1); Player closestPlayer = Player.GetClosestPlayer(hit.m_point, 10f); if (closestPlayer) { @@ -233,7 +232,7 @@ static bool Prefix(MineRock5 __instance, HitData hit, int hitAreaIndex, ref Effe hitAreaIndex, hitArea.m_health }); - if (!VeinMine.removeEffects.Value) __instance.m_destroyedEffect.Create(hitPoint, Quaternion.identity, null, 1f, -1); + if (VeinMinePlugin.removeEffects.Value == VeinMinePlugin.Toggle.Off) __instance.m_destroyedEffect.Create(hitPoint, Quaternion.identity, null, 1f, -1); foreach (GameObject gameObject in __instance.m_dropItems.GetDropList()) { if (isVeinmined) @@ -271,24 +270,24 @@ static void Postfix(MineRock5 __instance, HitData hit, float __state, bool __res && Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon() != null ) { - if (Input.GetKey(VeinMine.veinMineKey.Value) && Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().GetDamage().m_pickaxe > 0) + if (VeinMinePlugin.veinMineKey.Value.IsKeyHeld() && Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().GetDamage().m_pickaxe > 0) { - if (__state > 0f && hit.m_attacker == Player.GetClosestPlayer(hit.m_point, 5f).GetZDOID() && !VeinMine.progressiveMode.Value) + if (__state > 0f && hit.m_attacker == Player.GetClosestPlayer(hit.m_point, 5f).GetZDOID() && VeinMinePlugin.progressiveMode.Value == VeinMinePlugin.Toggle.Off) { Player.GetClosestPlayer(hit.m_point, 5f).RaiseSkill(Skills.SkillType.Pickaxes, Functions.GetSkillIncreaseStep(Player.GetClosestPlayer(hit.m_point, 5f).GetSkills(), Skills.SkillType.Pickaxes)); - if (VeinMine.veinMineDurability.Value && Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().m_shared.m_useDurability) + if (VeinMinePlugin.veinMineDurability.Value == VeinMinePlugin.Toggle.On && Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().m_shared.m_useDurability) { Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().m_durability -= Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().m_shared.m_useDurabilityDrain; } } - else if (__state > 0f && hit.m_attacker == Player.GetClosestPlayer(hit.m_point, 5f).GetZDOID() && VeinMine.progressiveMode.Value) + else if (__state > 0f && hit.m_attacker == Player.GetClosestPlayer(hit.m_point, 5f).GetZDOID() && VeinMinePlugin.progressiveMode.Value == VeinMinePlugin.Toggle.On) { - Player.GetClosestPlayer(hit.m_point, 5f).RaiseSkill(Skills.SkillType.Pickaxes, Functions.GetSkillIncreaseStep(Player.GetClosestPlayer(hit.m_point, 5f).GetSkills(), Skills.SkillType.Pickaxes) * VeinMine.xpMult.Value); + Player.GetClosestPlayer(hit.m_point, 5f).RaiseSkill(Skills.SkillType.Pickaxes, Functions.GetSkillIncreaseStep(Player.GetClosestPlayer(hit.m_point, 5f).GetSkills(), Skills.SkillType.Pickaxes) * VeinMinePlugin.xpMult.Value); - if (VeinMine.veinMineDurability.Value && Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().m_shared.m_useDurability) + if (VeinMinePlugin.veinMineDurability.Value == VeinMinePlugin.Toggle.On && Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().m_shared.m_useDurability) { - float durabilityLoss = Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().m_shared.m_useDurabilityDrain * ((120 - Functions.GetSkillLevel(Player.GetClosestPlayer(hit.m_point, 5f).GetSkills(), Skills.SkillType.Pickaxes)) / (20 * VeinMine.durabilityMult.Value)); + float durabilityLoss = Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().m_shared.m_useDurabilityDrain * ((120 - Functions.GetSkillLevel(Player.GetClosestPlayer(hit.m_point, 5f).GetSkills(), Skills.SkillType.Pickaxes)) / (20 * VeinMinePlugin.durabilityMult.Value)); Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().m_durability -= durabilityLoss; } } diff --git a/VeinMine/Properties/AssemblyInfo.cs b/VeinMine/Properties/AssemblyInfo.cs index db253c5..df3271c 100644 --- a/VeinMine/Properties/AssemblyInfo.cs +++ b/VeinMine/Properties/AssemblyInfo.cs @@ -1,16 +1,17 @@ using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.InteropServices; +using Veinmine; // General Information about an assembly is controlled through the following // set of attributes. Change these attribute values to modify the information // associated with an assembly. -[assembly: AssemblyTitle("Veinmine")] +[assembly: AssemblyTitle(VeinMinePlugin.ModName)] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Veinmine")] -[assembly: AssemblyCopyright("Copyright © WiseHorror 2021")] +[assembly: AssemblyCompany(VeinMinePlugin.Author + " & Azumatt")] +[assembly: AssemblyProduct(VeinMinePlugin.ModName)] +[assembly: AssemblyCopyright("Copyright © WiseHorror/Azumatt 2023")] [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] @@ -32,5 +33,5 @@ // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.2.7.0")] -[assembly: AssemblyFileVersion("1.2.7.0")] +[assembly: AssemblyVersion(VeinMinePlugin.ModVersion)] +[assembly: AssemblyFileVersion(VeinMinePlugin.ModVersion)] \ No newline at end of file diff --git a/VeinMine/Thunderstore/CHANGELOG.md b/VeinMine/Thunderstore/CHANGELOG.md new file mode 100644 index 0000000..eb58382 --- /dev/null +++ b/VeinMine/Thunderstore/CHANGELOG.md @@ -0,0 +1,65 @@ +## 1.2.7 +- Fixed mod being broken. +- Infinite durability can now be enabled for progressive mode. +### 1.2.6 +- Compatibility with Mistlands and fix for Silver ore exception. +### 1.2.5 +- Tentative fix for multiplayer veinmining by replacing the use of Player.m_localPlayer with Player.GetClosestPlayer. +### 1.2.4 +- Fixed an exception that was thrown when mining Leviathans. +- Added veinmining support for Leviathans and Glowing Metal (Flametal Ore). +### 1.2.3 +- Fixed a bug that allowed players to veinmine (and gain exp) without a pickaxe. +### 1.2.2 +- Possible fix for ore drop quantities (Not sure why they weren't correct, as I don't change drop rates) +### 1.2.1 +- Compatibility for Hearth and Home; +- Tentative fix for ores spawning at 0,0 (unable to test without other players) +### 1.2.0 +- Replaced 'Even' spread damage option with 'Level' as even was useless when the mined vein had a large number of sections. +- Refactored code. +### 1.1.9 +- Fixed incompatibility with Rocky Ore mod. +### 1.1.8 +- Fixed a bug that was causing no ores to be dropped (hopefully) +### 1.1.7 +- Fixed a bug that caused ores to drop every single pickaxe swing when mining manually. +### 1.1.6 +- Fixed a bug that was causing no drops to be received when veinmining. +### 1.1.5 +#### Please delete your previous config when updating to this version. +- Damage text when veinmining should now display on top of each rock section +- Veinmining when Progressive mode is disabled is now instant +- Spread damage now has two options: Even and Distance + - Even is the same as previous versions + - Distance makes it so the damage dealt to a rock section is based on distance. The farther away a section is, the less damage is dealt. + +### 1.1.4 +- Fixed a bug where if you had spread damage enabled, mining damage would also be reduced when mining manually. +### 1.1.3 +- Added config option for spreading damage in progressive mode (divides your mining damage equally between all rock sections affected, as opposed to doing full damage to all sections) +- This is disabled by default. +### 1.1.2 +- Fixed incompatibility with mods that alter the pickaxe's durability drain values. The value modified by such mods (m_useDurabilityDrain) is now multiplied by the result of the previous formula (which is shown in the config). Take this into account when editing this mod's durability modifier. +### 1.1.1 +- Added config options for durability and xp multipliers for Progressive mode. +### 1.1.0 +- Durability taken is now scaled to the player's Pickaxes level when Progressive mode is enabled. This is meant to (somewhat) balance veinmining so it fits in with vanilla. +- The formula is (120 - Level) / 20, so if you have level 50: (120 - 50) / 20 = 3.5 durability taken **per rock section veinmined** +### 1.0.1 +- Removed log messages to avoid spam. +### 1.0.0 +- Added Progressive mode. +#### 0.0.1.4 +- Fixed a bug that allowed monsters to veinmine and/or give XP to the player. +#### 0.0.1.3 +- Indestructible items no longer lose durability. (such as items from Epic Loot) +- Added config option to disable mining visual effects, which *might* help reduce fps lag. (disabled by default) +#### 0.0.1.2 +- Added config option for veinmining to take pickaxe durability for each section mined (default = true). +- XP is now only awarded if the section mined wasn't already destroyed. +- Fixed a NullReferenceException thrown when there were more than 128 rock sections. +#### 0.0.1.1 +- Mining xp is now awarded for every rock section mined. +#### 0.0.1.0 +- Initial release \ No newline at end of file diff --git a/VeinMine/Thunderstore/README.md b/VeinMine/Thunderstore/README.md new file mode 100644 index 0000000..18aa0b7 --- /dev/null +++ b/VeinMine/Thunderstore/README.md @@ -0,0 +1,20 @@ +![Valheim VeinMine](https://i.imgur.com/OAfRGXK.jpg) +Tired of mining for ages? +With Veinmine you're able to mine the whole ore/rock vein at once! +You can do this by holding down the assigned key (Left Alt by default) while mining! + +## **Version 1.0.0 - Progressive mode added!** + +### **Please delete your previous config when updating as it might break something.** + +You can now enable progressive mode in the config, making it so veinmining is scaled by your Pickaxes level. This is intended to be a less OP way of veinmining, where the tradeoff is taking higher durability damage (and less xp) than if you mined manually. + +The radius of the veinmined area is also scaled by your Pickaxes level. + +It works by checking for rocks in a radius set by the Progressive Level Multiplier value in the config. This value is multiplied by your Pickaxes level to obtain a radius. + +By default, it's set to 0.1 so assuming your Pickaxes level is 20, the radius will be 0.1 * 20 = 2. + +What does 2 mean, you ask? + +It's simple! A standard 2x2 floor piece has a length of 2, exactly like its name suggests. \ No newline at end of file diff --git a/VeinMine/Thunderstore/icon.png b/VeinMine/Thunderstore/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d7b01c445254ce0a7e1baab1e7d40851275199d3 GIT binary patch literal 64479 zcmV)aK&roqP)Q39ft1YO3BqSkGB4Z4}CB%SZF!;z3jDkamZS262 z-~^K#;3zS+A=J=|BoGL-)%L30o!y<8o$}7x+tZ(ax$pbB&R^b{kyuHzotb6dS+t)| zmc%!F!#DiOl=+5l_=aDxGT-nG-|#C|<{Q4@8-B&g+!2{CGoS(jR?we1$?pI0BF!>b zGcbV+WMF^^Bwk|NW`G%lz<8PXCB!dfyeJ`aK$rpuFm6jAZVN!XNZghk5F#RwLBb$J1p)^Ih!+_UfB*v=Fbu~q zAb@3y+yfIY$$(eGiXnm*8P1D37lXk{fFW>0AxusX>~0ymkDTT74=&mKclIcNiGM~i zaVKQH;mgE7mvLJd5i;Yp00|^;!1!g{F*h882yg@OGD%1vfw;{uz5!tvzl;G!WaBuA zBF8XXU>If)4n?AIV+!PFQf2X{k&JA|MHAPj^6<5v^|tAHd@1#<^+TL1>l*skQtN4t*W5N_anSp^1Q zV#a%#hKD_)=oz*eM!$ZO(R7K1iU6xd-S4pw!T`gQP=(_|R0rXLVb9RgNZB~*3Nb6J z&c()DWFUcoc##ab__~$(`e*zC0R|W#{wd>S#xE9zKuMHss4EbyBMC5=jxaYuq6*R~ zv=ak~sHjO9r?L4b4`IJDX(!ysnJ;v6uGWgv(*R>&oJ~n)ts5gZnh2&ilTl)vlSWmH z`(i`~62FM}H;pjFO9Geybpxhjx4a86h`~gkz{ldK4t#P^cpj(-7qox@1qh%3RbuEm zVhoch4BO(qGfvuYECS0324O?S-7!y)M_>ju*vKOzx1eBCfEt!ZOFn(^CVPiYvxL!M zWjr@V^T3XR(F~oKVVl)3US#|{@pU5eb;!U3;ulE#Q{p88Gv_t~17y6!#ZaU$;ew^Z z%CA{v^hg2>2ynqhf-DGL76yn0gGff6P`)_h@UxZaD6?bE2j_F1pb|g=oR`%i8xX2J z%>Ywi4VWskN^4sIZy>mTJW^7HIzR=J876KM|0Xa@4yC{XXeXGzdCce?Q${mb{^&l7 zL8Q&ZVUxHx>p5%&>pgL*4?|Ki@B#+7gB&8kbaP5O8F76&FxeQWspsH{8;r)m$^=r* z;00gBJR1okHOuJ2xUt()V`R;!C8f}00(q2pu3z%SlS>wFXo!?Z874zwx@Y8D!Rqy} zdoKtXc#e`co7j#FJ?FzX-?Tt>t0COim zf$^e(xL$*PC}=3G1J46b(r`Mv-8Gu(Oc80>K?Il?AiiE1I9RQ41k9( zmDZhM28srips$7T%7}5E&_`j20hv<8Sj@&O4l5<*&{VkxVQ`R8vjWKmQXZrhXh3bl z@IdC)eTmtd8Yb5VYoF`6_X2uw7p8K+jN8nR@%okb_Vy;gg0G>iEnX1=i-09ixNQvM zmBy?qbjQLSB0~VZpcqu3udqOLZkU20MDJpB*3GvP8E2Y;3+MODuSzRzkOPn?m{$|k zkPszc5Y#HVWwqHHdV@L^SB5!uLYz470?pn zfW$MyVCx0$8LGW2HF{_?r7b;_9wZZpuRn&M8tie~-Nx3pt=RZ22{sZO^z=_1aqVig zgL4?ES_}(I)nw~#eOIW1pmCzXY8BolLqP??gAzeG>WM?}1fz**+^*0j7&Xpll$f?o znye6(lughC#Vf64*4oyNe4*u{L#bF%Wf+1JsnOPuXiLRvFjpUQ?`_@|9jz7}uVuRJ zM0>{Adaxxw>!#22oV*k|xilJs64-LLDh`9!p-Gn10t;R*1cZ2r0m6!)2adO$_Tj|Z zV`k~zH!%C?E#@CRpiVOTTV@O3;ATYut1DPDmMJCW@z`P*$Wd`~a>ke!`ms}!n9qY0 zP%}sn1}VvM3n|0U!?HJ!VTiUBIX86GxPG%|(N&T_szel)D~?h_-7j=q(1oaiB}PYB z1uEbet(kf$7E~IXB57F)d!^XLJmK-tRCl?Px&;O%5dT_;uPy^&P^pNW0N&bg;(N!I z&H;bWLTI1fdppIHi>qW7>yFC zafu9;SyWNNX{|whAS+-H7E}{`1nv-xD{4b1Q^VB>7#gTjG2!OWxQzsPFjfzX7PDED z&B{S@p!rlh_vR5d&yG3u*`7B%QFw3<>OQRfz=o~-sw2Sx|00sO1KJD(uO|XaW-UU3 zW1y~JlgC?5y?qtCZwx+%dQ5XqkY{dvX&JJNFgDg4)$n1E9V;}b7gQNsh!=^kCIw$r zGQcPVbFk67TGqdJ8#~#-!I2$Zs@%9H4);lI)3CMGTB(C+5Izd)&0NS5W?ev$Q>rYG zMLK}RK-Vdg{uPZe)WSPd6$(!{p&G&M~V`?h5l_jh$LM#pOzy|1-qZJ+-AkWG5@-)+fn8k>YLUQZ(P zdQ!nwlcntu!{r6NK=)=_`Hl(AV}J@A9#9Wuw=N#BcPtxPQHHsv88ici8GVS-8=dgt zAj29rg_{iu&m$4ptgk^T(B=li4T7AElpB(@<`}hBs2LNKDrz;W<`hCh>8*q)7-2wy zQlaZ%t{^<{CKD-3*>&#^-I62- z8JO`^qu{Gc2I3INZymAmo3>!3gNqA}u2pvDa%*AjgyA)LDaGbpPhUuwSusqWyi{38 zRLMwg;Z9MtP(@~VP6UZwU>I&9B9MYMC6c*9-~wS(2?fZ&%t)9(3`MF%)DTsYTa_n6 z3OV5-VJhL4(8$!~9_2BMV=)<@aD)F%ZoiOZC%&+T`l85Y@Dr@AK4Qu5SW2@ z9m%|&BpGiXvp;QEu;9M;x=p@)6;38NJYYB|9PMF!hwlwo=g^F>){J^&9zY#LC|TRO z8M0~tF1w8kxVe=uRLzo=?Mmf6+vHv zK@d1aL8)k{5PhL26qcZIMK(n)Dt%x<5D16>3Bny4gAE}Sq`7%K7X{4@X;xOaZzR&Z z!@y*S*C!Kj$ZZcKTlsZUm=w4&WA}3JM?Ge(TP(u}^X1UlFkp}zQz~Yr#;gR^4e|lJ zBCB#jZYBYS;btV^LMljMAr}%+Gc}x|BqW5)$(X9dZGs3vg^*Nbsu&@Y!W0VRAwkF- zOD?%lFt0hulB*i>1c$Q&t=cr5UO$0%qj-9+*HL@S_S=^{@Xmk}ZfKAJ#%& z*OeX~Tw(UegpI93oBW0qn0A!w9eJLt&fO1}p=HIIDK-wXp_BDswG|<}O4cZOt&Xa2 zyN$srvcX`KS`uz%$uI+i%n)X(fID_u1r&kZ779uPrHUcUieRW=g+y4QDySHPppyuM zOsW-1pdo@vNahMhG~mgDswjh03)Mt5BN0*pCKv-^t}r9%d{kn7Y~MPb>cLSWcMEPa zK)jxamn?yPGuig{tdY+3aB<1;`S3%q&ao!knv}h-gI6$la^xBCLU@sR!93ipx=a-p zZpd8%GXZWxK`DvU2w9~DW}XCzD2d3X8W3SLf!y4}gBMjPszihl0X0wwq6SnUFbO2H za3w{U3zNdb-D4O^G|9YK@t85Ebg({Jw+GApzC5@Pc5mhI<`Ju(KVgdZh!EC8R63|K-w zn0b*|fK|ytfQ7jwqy%zIA~1yHR>8r^s2GhQA*upQ2nbMAQxSwrfkl9VurNyS5($Nf zFw70YO_7Yiy$-d8nVYpax-yrVYMX1@Ec#VHKIr2VmEnVjjPIMmT@Df4W(e^*kRyVx zIq@<9F2D?0hz%P)`W(|bgE1_wEiC6mGqrT}*1{IRc#_@C-FsXG3&$HbGbcrMtHP>e z7Ul*XhG7Y)Zb~N1!okg`$eb_>Lt&;0?pO&S0uW|ll3RpP146P|D^<`JSyw7Uah65& zI7LQ}Q!y2)dQdS`g$7UxLQrccEO4@gH5McpVJbZmCLuYBk-2pqu>hvt@O&Nk$!>1H zc{0|i&ae=O*Gzm>n1Cg>-Rm}b#|Zj4!_}UHCF)z;WY#35t_#B(_td6RB88MIo~oH6 zWe-cHNHR}>awsf3Sq%{hj|jprb8w6x6BtyxNhAr2K)5V2SRg_nP@or8nW|iY z6tW1>1d1>VTp^2Ucrx>9O0_D58Rnwql*4edQL2LtX63-9tCN^5HxY@ncf{gDa~uE0 zb=i0hQNZ~n%#1rBudc50HCOpXWViv_^q(7;e|*N;3}SA0hP)!%oA=g_p)JXqp-I)S zfpFQ#2~Qw5t4Ssg!!4zR3)@iGvGwo0Y%23 zY|C1$mo#8>h-C_fB2=7GoTX54qmQDJtk#MYia}IC&4#>sC8&|2TEcv6HOMIjBGM36 zWnNv4yZ0&~ph;Pu8+sm0#&?g$FkcuTUL!NUDh9zpW1M*J1f~_P&l&cs_l9*2lZ3}0 zGk5bePPHfnk;APKo()R@jS)%aIfzs(QkYC;Ua(Xn2p1TRhnYFJ;bve4vOo@Gs=!V3 zR!L!U&xTC0P$-a0DyV`gp&F_YUMnb!N<<|rsuN~j9DIAhXNKhv zA!qgE89N#oO`o*FgQB&-UHnkXS^!Ripy5>|^-i&H`jRrCQ1M5oX)P%)>_M2!*ygp3LVqC`*| zC}y$(W)(!JX~`i~Di~0(aN&*6LRG6xL&)@eKiF~GYBeQL0LH5&1B>9RKm{zF!~B6& z=#S|RD#w8pVPujw*~@^VoJ((Bt1?)lu&kg_)J9lS!3HV!@{usfq6}dS;kiVZ+;g}k zxslw=G0XsS!VE~DhAg85vXDUvg-I^STs2S)h!7E|BGpQ%RU)N|s4`U(m7vJvQdF}j zSTTWBPqoNq=&~~5CX&a1+&?VJ0VNrYtH$3 zVbH=bX7=G-vlj}}lMOU(DLRj8wv0qOYAltJRmm%)P$UtFM5fk+TauA6InW3^z$;2% zZlq)$1~P#O3~*sofrMw7xj9It0LgB{LWz)jl~ZLl$SCSP!lO#`xDSF7&;d&i^)8h# z^&(0TwQ8tPC8|M~k*iY+(L0z4Gr$C-GK5JMB7*{%o8u(wRJDxCwwYb4!Dn;kTbhKH z9o39i#SD+YYVaBvpaEEaG?CVOv>SBC*wV2AHg2-jiWNL58ZSfST9s-c*PY)rc74Agx=I z&*`)d=`YV1bsI1qLG6(lzaXW=oshW$tX5uf%R2jb4-~Ht_ppKY9qHa zwkUF;jFDuP%t=t2u*iXBVU0{4(3o4cgh`gc5>gH@1ZJ2387Xj67(_y3i@-3z#Tfd~Y|;1gS<&%OZBg9%+AuHDA_{#Ki;B9UD3vHe$x&k{3bjB#z@iw% z+}uT;gxWS?6(mBQOkfIR9brvKV@sCZyhPMd%A6w^ z?ll-!;-FYRU_D^TNaofTxnu^BP-HVQ@*JTNloaz}mtLn&KhS)Cwb5jDd44sz;nB%t z^lOs0dA3+wE@2CKy4FWr4inkUTdT#)dc#WJcc3zi6Sel3%sLu{J8PaAp46Lslu|?}8nfEC zF>Xvb*=#VT?S@U7yVQ19;Kms46{KB61#w4Z?i}MKiTcF8O=i%XZGd7n47PM^Suk>A zgr~5QNF_;1RBO!1=H8gAk&`iN2nAtKg&COaHq1QqqUu&fRkd0N!!a!E zwje=2ELTFTRgniHEe5It<26<$>!Yo$+NPbo<-vT`)fEQ?8X|FAt&Ne{C?z%7COxs* z%MILyQjU(7x;7MDjWS%D4_vO$51BP@XfR}%um;t^5+*GrT$M1H2@24e^M!*WZcQd^ zfte&;gK%CG18RlIHZ&VR6?HjK1mW1oZX3d=W)|i(A}N$qJqsI|bsWuyy{;ik#7O~Z;=v7FQgwi0fo znpc^Zp*E!qT6ROXvc_+E(|14mNACIl?>@^@Ptu=%4qvx+?cOmrcb6Q@dP0enNv18L zmOdxTGzmsod40s_+=@7H*BX<}%xq$u{ng(Br|*MHccJUgGQ>c8Vw;#95X&PL`$s-r zS(&bF+5<0Kxb?tjb&4BMoyl~CbT}uCjF@*^zq&iDo;$sF=Fx{QY;3MRzc@Vj^uhe- z@2-y9n^+`Ai3l|i*;?ym3=srINtq~Xuy+CODIq(rild#hD^TT1#xoP9SadSF-Y}v)QMs8=F?wS`{ z?Mn>{Fm7SF zfX1O8DEoVWQEnbnOC1F*U7m1bcge+_IXm;hP{q9VjK>o$A1%0eR5+{)Mh+_@I4J$* zy=$xQJ9~EReRX8tGrMr~pIoVYp$6lT$s2c9V-bTe3=rZaHb}~&h8}ULTk^K#lr|G) zyjmUuuSq}vbz=+-#LzJS1!z238AKUmZtgWmA$b)ElxjEZ=7#Th)BD!`A6wt?wnV>R zdE+L}J#~>=`%CV9=x%1Q%lU&j%HnwFX>ukdQEP`fSo0A+ns8-4@YK^6Nh8=kF=qQC zpJwt_Cz=s6-(Vg+TUuc;n_gD$E;g$&$$!CXqD%8kJvdr zm#Sn-F52SpZJl#|64!wlOHaPZT*>cy;(7nSvVNCi4aB& zkf<33G9y}05%Us-fyR%p zYRfY0FNc1-x|M$0$(8AE8xFg-ce6qXC<+ex;II#dQm`6K8z*NmEGp}pd35gF`snN< zr&)RD{iJ8lv*?yAZOPepzm>H&J`AG<4C3IBq3@})LX%qtUuU*+#LksDPd$6ct=(X^ zKjPMWU^W=SX`9UDA=BoT<=ENlmh8>dwH#s-Mbedy;{-&t_#;RjeheU>IA)b})X zVCbADzxY```}tk0-KLKzGj$BvIZ(ry)h*unU5_)5p1U8pj|boNW?0EIHgNU)7kK)q z&(zxYw~#kQVL41LVP=pGMVQqpmlF(B?;%x)KoT-;6EBJg?u2}Ne9YI{$|@KJ#hLFx zlfarVIzZWoYKEIIGsJB!FoWc>k%(@H#o?^-w(YlX|KPpvdB?Bg(iJ}b<4w~@%Oxm)q6MTcRR-SKgNCQXXw{XV3Q4E(NY!z%fnsP zw@=b9JBFKwcyji4mh2w{Pd~Hd!d_;lOWc^v>D4fBo5Y9)g%R_@fLJt{GASH&m4q=) znXJmLoKYAvu@lfDyi}sIY8H@y0T7sD!VDxF7=Y)2TcZi9ZA%xyD;4IXsL;)Efs9wh zfhtHv!oq5W61-&SD^)VXDFtdVYM7U(nsxnbdnJ9(xi{bQtL4X>|J*g+|6}iGb9;+( z=g#mgzu|k?*k0wCC!Qp-Gte+7G0rWy!gASDvU4CP)mcf-Xu8U@f#aER>FPd@-!)@} zglfairJJm$hQ;oZPkiX}eE!KDNLzTbO1GHNP7-f<>>aFauJXX6Z^lPsX3Ha{D-(`q z2lxO-S1qDU$&EQFdM3RvO!jLDjDoyk#Di9dKFSfqE z&Yh4Kiv?e6lNE4t>}W}|7_b&_pcB+EMVJ}jZV(PwK*DH>$Iju=On!Fyzk2L_Z~FtQ zk34cW<1th?``ChI+NbmlySoc+9n9$Zfl=d(H=N>?V=ZV_jD8T8ukCZ;`c zA7OoMOxZu88;;q0!x=^^V-BCa!K52;czwa;&tD@|K|&b<(~|&nhXjQVVDP_3Oz;u z4kU>NBg-*~i@>e%7$3FFYw$`{cbZy>1CT(*t0F*v1PCI80}5BE;RY7rL`@9gR;yc$ zFd3ucs_XNe!`^`nO_W~dK>0|QtH4d9?9=zui|Kx+8Vp-tS$&<|cf!S=% z_S!02Cr)wg@Q~g4oW3j6Hu3fc?&7g~?_n}-X;(6nlj}VH!Zq%ho@Cmt(;dyYba{^_ zp1j0p?G&@Fus=Vd88>X7TxYbh%4lVioxLMI_UZR?e0YOz`L=iQj;(id^_h!&@E`s7 z-sucqn$b<}qNp2-EFO-e(y8XdZ-}Kmjy!xK^q4p#;uPkQIv$i?r zo4)y8*0=6r=Y?xrxp!%Pgx= zdqE0FnMJA8MbFA)mC zPC^KA4Y=4el+lQJt-Mmjolz+~ECUINS0w}vqy!j9ATr4lL+Oz@s!pjQWJDy@z*1s+ zwpc#-fuFwohra3C?*8viY_G3>=eIwEukP^SC-?aqfB&aBxv{}&lR2@y!E|kn!}*fK z{asF-JH=?a!o^#+82N~TnDtB6wl;Y5EsxL-Jx6`V;b1HR@@Rv}Br{6~+*&-#VThBf zD~v{!{pAt_2lF1kd4RVoeCD$s=lSQJXKS_L*`ND72RE-je`|N=e>l3a_y0SyzEQH- zJ$+w`k(PO6fhvZ9jF43NPPI7JjIdZzZI5>QBs5EYIZ50JnLEIFk%3{nD8O*2mC}O* zGEr;A1riq0y!2sdl>WpU-g3{s&qlEKx%YFtT;o*R$cy*tXciqo(JBNJW(@!zCF+&apD-aoBC^akVTjTxp#%rXHWCZ-}#*^RC(scE*GA=f@SBf zyU%js-urpx);=dsp5qPQ`d(u17T0(7nVh)~hQdex(NA-5c+7(jKf-g*U10mvDbC(~ zmi4W51}e1#w{G0z+T|;F0Uy*~zi{PmU%7JW&#kVmJhe8Rt{`$Zl)=5J9tu?yIU>x% zgc7$!kUbF+HG0Zgg>!q54v_#M9E>|Ba|al|n0Q%&p%RssNI|JV8x8_Ycvy}uMvKFa zroG9=+6w)pE9@LRMPHp$C(dwiIB@a$AI8{t1GO{m#m~!7Ry6&yUpDX+|NYMU>-a5($3H+$_h**Ao0 zLW?Regat|h2MN>|2*Z%F8HXh}2yp}W$o>Hnpz_M?10&%7mI326alnrk&>ML)($Ft# z7=qEnQ4zI5DIye9f?9(TUaOjMJI<$X-Yh@y^p_6a^ycZtzqi_qxofjwXV%jBh=chd zjltT+Hftx&lGoNa`QSrrzw=!jX~f_8D}S96+uOYJ-EZaEY{8SC{5)@a`-m5gKhEV# z&vQKVtbO_^T6eCTzs$Sd`WBwOaGBlN)AW9et&^Kf)>oO`xW=tpH#t5$rgUO+ef?(} zb$=`8(FfG#k}RFARYSp+$>?hxYF1Jbs-Y-)nMc()H_)`Yv2&BH z0|fCKm)H+;M`Z4pfC!bqTn3g=*AolOM&M@3B#?obASO9Cw(R=<`*S~c_!O%jdY-NImJ{2n#Ls+?2bRIg zd*96)U5u_=rg`kmY*b@@eV?O)J$CmFIDPsqn#nrXpWmZhJHfYn{}1r+tsQob=Y0H$ zC+Yl)^bAxp!W$$fqEJJ~9mu4%Wn*>BvRg8AN2Fw|uZ>Bg@$SXL*pmQ1pLjVQ|y#!fE+!jrfM;99Om-~b6&6lt4f7*?2 z&C~R2&YjrWI&ta*%kGeswJqNDp8Htr>~ZO0&$G|$VFss9+=9=Z=fo3V;#-dfwjQ{b z%lj9({Ad3v+v}S&o_X%c^DLJg&sZBC4`7_|+@eg7lZkGjtd?kmZ?MATYCc2N0?hgCnj z?)Kl@?|dl<5~zRxIU<{pGaS}nA7sE0aLB9oK8KM30^?OOXn^G&%6&2)Lpy2N+Z#yL zr~yN*5~xH{ElotNsu8N7Ueub>N*OqM_PM>k{^97B7`hMWdy$|uFr=MX_prnRH4@t(Nh>N>N?El;o z%$9RXYN=g^79Gv%h*PIe(=8TX*gH7<|Mby+rpcb0>?e@Ty+ns7%9_x4{aAk!|l7%9wM_yZRX`zO}{tcusCc z)UL3aoz5rhMa$m>(arm>se)9n-X9 z8iS?miJJ%W57Y{tQc|R4ji_1N5>klo+b#OF2k_r*!w=nO+-yMzTY<<;;xGsMWncgd za9+I%9B`X~c=ZfOKz9Vq{=n$LDQR`gy!6p5l@zEiQbk0dh^nGc3EhSQMF>Um)t&j` ziR=5vA6(nq`i}J!EJ~##D9Z#mwFEb=Tw^#`u>GEI;oRN#@bM3QfFJ*fpWw>PTdb{b zQJaSG+8VpNyYvQ*V5lTF`r{+69UL%DFiMV_m`=x>+*o7xX#UgJZtna~1LgW?ls8-q zR$^gT?`A!yH?MaR zEQ10J#2t_~Ha7U06SoOQ6ISk7qGylkXQm+_xsj@5QKhJ1mJA`PDitraR>?Akk0+xU zmY-eDyIZrv;llaPUH-1^bL;Qf*j_tV%D~8amSvxN&fLqJ-|_4Ci4T984}RnYHbzs5 zjQQ@89%tESb}rmRSM~`vrjr#;ojJ#HS=c!|;@A=~U8V1P4v!ZsP~NLm38EMwv=5b|;Uh+8%Ic@nRU1QcEqfdsT*&8?o;Sz~9Xqe*adP!-u!4N6pnOc6;n z6d|cdQ4}?T8mXBq`cg0L%zyT=&6D4{mU44_c1*E`(RfN<#TTD`hP9J-anIv#;i->& zn4_-e!=L;)ZXL|nI(e4aV!^G$Ip$7}z!K(;+Jw2YTn=>01+_KW$(T_#a!Op?J@}EG zz2m=FjAb+Ob*n5zEE}^2ITFX$aw8g6$C#sYOYSWD6;Y6)*b9tV=J+ehI zUF=2L7}-W17?r6~(}VY@1}{1|IN(mmw{d5jg!AIk56?J}6XOjiJC!J?ZQK_nZYu^! zNgl!@qypiDIWzP3RWjmk_WXGa?>)@`pnL3`Nht#?1p4Tiqb+2 za}!k{UL;=fV1+;ZQSmzr{@8D~^rO*?xY768Lf1%fO zqqW02P%&sjAyf&KP_2P#RaA>mxMUX95`#5quPav$XUpd|r_)E)yUI*~aPI$x4 z?hy~BmUq7CF@EI7e;lO-CR64SEJED6wTqIGnh{ZhQXzY0=qr5@qsa>62HLSPc4z-^ z_Mz*y4*#l|$7s|}hp?H3=&HPzTaOqZ1~V1+T&$|3Vr57~>PyMt8afN>D;v|XhPuyw z_l%meZlgTquroe&TzT5WgQLM7%2}t9@UBy?Fbo5CLYBnWnq7Qc#3{S^Uw@IC|KGVz z{?4)4V+rjn7&>V*cAQXGYPk1i8imP26nClCN>$J&%!=d+<>YQ{YHoDP`ZL3_zcAaM ze{o}b?Y(PT>u(=#ZQ7NmKga0A7Qf|x`yX-P;tf9iu@_i7X@n;RB`S$NCu(k3DtP9` zF74rhJQ}f~L@YX%Lr;|veK4efp&uv_V4^QeW{V|<^A1Q%#uM7HkyMy^Vlr;oJDh#? zpsTm6$!_k0s;WV)q-v%ma8rQzGVzl42>#w*iTW|y-~FR+$>Se8=BwwV@zo({x$S(g zJU?T)?zCH3o-50tlHH;drND%N0)-SI6lPSRp;DFF$#Gx0{ds?Wdpvn0N04*N{_F@( z4d45n-@?&Q_^F@xG2ZRajwaZsWgemo9et@RYM~bJYIt%?uqYj+8^D~vXw)%`5`CnL zm-hDm+M>qLwxhO6vm9EsrjAm3PYg-k7iln}SXTAa)EsE2C35f4hlP=uHc5W8ule#4 zlZ}CKS<&noJoB?N_J1xo4N5FnDM{PYjGF<%-MJGocfihXzXi=z>=TDP4EU239$drM zdX>Y0=&X)&5JUF#^6v5RUw6&%mR!ML`5<@<#AFTx~@K72JKzDcJ%!2tbhK# zN8j+hk3aavl^d6yBl1W2-M{~L@)uVAHt+wL&$4x9lQ84Bo3kupQF`XUAn4|Yq~zQ@ zTrgiQ8BbT(+}vh5TH$cEps$so4hT4$E$F&JGg=|1gb|dXFv?=mj=<91(QtUzuuhG^D$ zWOTJ~wCE6tktzmc6G=`cK!yFD7j~ERsu|`)L{T;Os6>F(WH|)aCEmzw;+GP?#BToXAcUwAB$(sX;X{IO@$+WKpn?nPes`NuD^KAKjd+MSpL5 zqJ4VjfODH;)=!+_$>*Qt=4YPZ*fVc@$J==J$uDx@{3Sw0!s$z;D}g*ws#tV$a&A~z z8)1#me1W@I8BHidd2;u7@x|h!Y-;*c=}a*Ucqdt3+`53?tPX zvf6A+e9->Y3yiwKPLD^d78et-+fmmyoV{J40tOhb51BjQ?0&)o1jvHssB-k-eQiE4 zvC(!*ceTSxQsd4tECQ&Igepjoj6hPAz$ELC2i1sLxh=5dmKcpjId*rtkN^0Oes1x| zV<&%aYHh9miNC}B-}M9hzCZB0`Q!iPpX9=g1L|}FsikR0^tBKb+#Q+YxuNmQ&~@w{ z9B^ z_!s(*fFBV2_rRY7j(HXSU4sc_v<2SO1bAOu1LGC3GvRrJH4 z!l6d1+nhOblF5m)+&G@ID3!kS+C?Q zJ>y}PyM!m&VSuCFvZr4$GlZ&8ZR!5e7&ous{eC7KVz-qPG+GjL)2Vya$|8dXs#0viK2C43;?3EZT+?Io-<06gQQgdpkMb${cGt?qb z!_PCrkUU@lHbjZt2w!g|x&-ec>8M zQK&g1z_a7#3{}(^=xU)Lz{u9px+B3*20%oJpyJ7h5SRlZYA{5ZmrxZXnL;820mx7o z0+Ss3hXuV4cmuE8eZXG=ei!gV7=M$mz$)+`^RGd6_6KLThgCNlO0^6$#V8SkC2#}r zA`=(}7)0$#hSfJdc!~VmzHP&Lc`xHcy}6?8A@n!$0TSCYC(}e!pyK_v^g;zC7L!dU^nMOJYU6-P%3ChVlXibsp*9cjjX784Oy*0 zND)!cFdU#UX3>RZn5<9B#^$&lEsnM5dPdGG;_loD`QYGyueBAv%nS*bI_CRD$3MDj z>%V1_eAgBX2kLh!Q<_>NEoQ|gD+9ui2qOWBmk2pVH3F$16-g6_EOAtv)jp$VE-ila zp_>P9eefOkocz*9pQg=oe)D&}lgo$i=VxD-!6a}4DJUVjzCvoKh#G-=#*$;nSZSt| zs4Tk$o}35~rGg*~!oWSToOf4-q1#P~CeQ#FFAH~57%#HT>_2=s)SnsP_X++}pcSv! zcLCpp_-Wwx<9vaCi6euR;HyWxq{!GWl{#v$#;8$g49j2{Cy;>|n1Q&>05^A*-7uWq z&Lb5XBP9Gv-ds3Z}_+VZGPtCpW^EE>)d<)eLQpi65TLR zqB5xR3uGV(2izc8kUiKto_}FB#7!)DMLkAu*ifY+C1*x1z9`)~-!|>k0DR8?5-DmX`;{ zb5jp2mJtp}VG0>Ea%(iGPz91@ZZp7SRn+m|JwaNg)Q)$T{qz6$C!YC>-?QZRtmVn{ zh37xd_I(fY?QeR3pL_NRmZd=3P-T<|N*Nex5Xk{U5>1oY*w{c347K3dnfDzMw>c3( z1bCA$ciJYM^_2G;kOO1bS%v@V2>$#4e+c*wcy+!5_yoZ}2L3RK zFY?dvy#nW}%#6Om5kVR`BqM+@EWl(Km|0*32DpJEc^O14*xh$eA6i=*um8-4u5fJ! z`jK<;#FWz~ws`u|4W4@D0)O!@{S9s`=Xld_aCksJ6lSwIJ(U-QgpAt^qJjdR;nBhx|1yqHy)lwxw8UaZn#LG;C zVRC_0$sr8S?jwy~xH5d;ul((&yYG14iQoOm1LsZ+<(RkJe;4n5{BAz@)Me77K_sje z3`4a74%v~Q^o3hDcgStSWHM$tU14n~?Cl>>CEP?UmExjACbjLxq;2nIzWAIHI4?2- zjN2q3U;qm+1J0R0(|h{eSL^WSfgc3Ek5_I2`~dK4sr>J8{@?sE{|k)Pov)f2hRc>R zj)AqYEQ%0V1yw*`0s{;%z$6TFi(#nahLyKGvi`Q?gB_kZze86IOAV8?b(Vd{Vt&NY zGI;jNP3p>+E;+NV;wdO93^gD*FOq};Ou{TcU}S3bo3n0szDF@KE2bzSO2vnOf~c)Z zaZ1I(fCkhWed`Q{5rP`QSA!((gv=cv{#nM01O_X>@=MZexo?wyYaPFL%1VQpi+$X< z71o>C$h>C5mkbtAVIn6fY@jNr5vmmn%#7rc2x>A}lUDQi(yj8*pZequZ+pvQe;^;< z7;Uu!-~7%;`I#p!Gom5fa4IP`tl=)OqE^<|d^CyZeWD zGDOhVpev$}%yis5H1fr?8pmLsB*Pp5VRD&!A$XC2nJ`rW_A_8V1@QyG?*qP@S8f&f zA%foq{4Rs@+$P{DH^BL-kRWB$z_qSW#%|-OQI_kieUZQt zuma33hUR~5-zMKPA-#P{`{-C(<0BoNuQp%6beiO;`m*cMZO|YY$T7JL+(JfmLt#i+ zvV|$9)wMdgxu?(n%m<%*;;r|kZ`z9`M>pWi8Z0buImw-jQ%qovd!ko|FgCX~SY4Si zH)A%Nv0N_6ZnRB8Kt&8uSPqp%mzj)4Z=5!Hd#}{}++<5ZLL`$VPl+%y&msySka3%E z$pV?f-vj<$z;6Nm3*fE1a^DGjT=4r1{`v&?4<(4gYi581x#3DP;&aP^W;$kNJh7d< z1y#6Y9ubbrG2DcknG4*E91)&FIx)6;%Kor@`Nlpek7&{g2mQeDY@h9|`?&iJ_u&T% zZe6~`v}u@ZY%o-icBv6yPDuPy3X&VyVAN!q(TLsMgJ=56k>}J16@wyCLeyl`oTzRV z$^%e?!{&y9=hr#a6#*g_SpM^Tu|r7rr!$ zox|d*n@R0Rv0M%c1&R@-Y=#+D`%pDXxK*60WFiq{mrttI^3;W$&;6>$AO9vTm!!jM zyz$(a&)l5T(^3lrhC)a}R(P2>K0Kn7%49NOb8~~k!$X$KB`GILt*8cp7{ciK!rEkV zW^<*ve{Zim7pll^lMFBurl=$*;S^OYFl1O36u!*hZ_4-^h#v(0GvFMr%t_#{34X@{ zejnHc%y{i&+}7p97nVJjfk(zhE!a@-2*5=ZR>3ecVHU`RxeS+r2GTtzR^Hq%`trjqHGf5+OHtOWCbfY*1MC%u0g8TB(5X zPZ`FaMEqso2Z8?-XnAFR1Mrb=Qv4_K=I>R+YvCAWlz3KQ&kQ{RhT8dT2DN4j6^kmX zU}2VOB^6T|h*agdnx~%7G_n5XH=TRz)Y&od%oWNJEV^Sxqu{RXb#jOsheuqxa-F_H zq!DE{CkRI43CGLy|Aw`1-R1#v zUH`;ET;5x7daZRgSE+-lx*BRsay&?haFg7zgfzJ5lUercd3V2FzI0{h!dvg(*gl>Q ztVM8o>|CD*HG!ECAtXV7Bz{3eP)iUgXi{c68Pg3teVr3-1fn=pH)<)2vcGxM*y=Fo z$V385fP+lJD>C!sq{2`|0-IW+In^qN+k_b)Kp0nnKZx`ffIkfUFL`Co0e{zG_?y7* zt+2zZV7zQGUg5c}*CE)7VeU|>QL7>0;kXPFVO7;5ED7@psk+ioshjIOygI3OrSU5F zJa{ix%O0s8c>MG^?m2yqgT80)XhGACsq+Pghey=haPF=%+$HB=_8e7E5C*sci@*$$ zpiPX;dGK)iCbR_=tnxw*;Lns`NofjhPaI=YPQ{M|VxhD7_0F%P}d^_frZ#m${g zD{Z1_GTnTsP?(V|LdC$Ga3C8LLxYPU3ttwN^OB!Gd;h)fIJ$U^wSy)1Zmje4&OY-R z6qDaNvTk4r795^UG2%a-C7wpcXxe%)ntz2 zVK~CUOe9N=%jLCVMPU;XElx-9Pswfz>8W-b~s8vTt^X~K2 z&D^Yl3Q&OnB0xeF2)7!IyC%u&P-|5267eGOqRol3Hy0myX2}~)j95+JymAKz2iysn zuM+`Mf^~;{YtY``*tPAWHO_qdHgA7d=nEe`V3^mMBQYX*r>ZhUSWu9=LCw;TOXMc3 zsiKUMw?nS|3)jo1uIwECx_LiLclYLaP29DS=ngAGKQL|*WTRw<8W2K2+a$*0hV{)g zX2-`Yj~7fQV>VV+IH;8(10^Di5{8?#8{_di4)*&`nj2x(7-TaN@Hn|;p; zuxeOwqo{bVa0wzvCGcuFRrg#ia>cS^jrEmD#L0WNHy^Hj=3`I3z-KR2ng+h}Th4Iq zuG4(@vlm%e--MlGHdic;~ngh$O%Cko!>QF0Y$%v>4s~L);l4V0< z42@G$V}9vYdH#iK2VZ#0RueBgwM9^)%vX50yxuQLJy zGzA-abn_?YobD!e<`!HJXV}U*-05k_(Y9toA3`2LagiFg8lt318HI+4Gu|s4U)hVN ze)S~Yz0MJ*$1Ou1QBttnoimF>F()f<1%V-RmdhnKZ|#6NQZO2gSzq5`Yi)}cBDj9z z1|f*Z3>GZ9fwfV(XJy>ne|$Xb%EE!{STZv=BS|SqR+>guhvHo+F{RO}8B1hB!g!hZ zSNRLT4+DQ1`1kqBeIM}M9{K~zCjS}!MGSHT?#8VM+wXfuK=Ncm#)c3jL=6bTWq5^D zr9=&{spJ9W0e33p?vtwzZk^m%d0}^#We0D(Z-rm~UGL<^-X1^xfzKctadK;ocf9vq z?DcRM4G%x^MxMKJox|BNW{$hl_dS^5mdVLz1>=-)()?(7{Dp9ESr`F$&5)d^wIy_|Dw4^rUI4Z%pd+y=j;DEioJ%$pvJI%@}qS9D1U0s>J z_1f{lCy|o7r(~9Z1eR2DQl!+hwR#h#5*B4(f_Z{k05g#IO6>vv0q_yv4*_rBE0cjg zJs!%tf&c7tr_Sv1%M6~_=oZ|&oO9icTM{dPJ1hy+>Lzn9l2K(CsY)qiNrV?gDn{-D zO%m((-@Wn1W_6WI2bFmT?|bMTPM+H4V^5st=5g@wqvtqzVuRUiM&v2`M@M|>i(lgX zANnvuKaeI9ups9IAzVf>$OfaP0qpXu8!m;T##11xf(llEA`xcD9Az`LE+$P1%v5US zE45*j-D>>QPRo5MXgw${5U)F#uM-Bem6tg$abRPBa(++?wi2Q{sIjp!w(Ik`Yant? zo-`;61yq-nEH5=E$ta_ohqZCdySs65_h|Hmcf9?+cg{chG?#YftT5v2<|=#Fk1>N$ z%2;c3fNI6fKti?B*oa!i-rg>K-!UGI+1T7<|KNb89kI5tK`wKK<$_V;k50$7KFDYC zluRU(9Fyb8RAq#$X)|5lTU2OMW<_B`R0)iiiLczB0sb!V{{;SRzH_FP71tS>f@O zrhm(4zW4&qTwmZ5n69t$g=eqwvCn=9o1A22b(7D2_OqN_R!%?k7C!U2FYu#3`LpaF z&uLetR6rr33PQL+j-buZJTE*`PE*>cbJgbTaJENY=!iUC8G z@!U{{4oP5!n^6e*zNgko&Y3b4%$yp9p;S_8D4Nrz=Kl53_<@~8|7q|>vh3zbRJT;! z!n~GnZ>fSurafve;}|Tl5PS!7pZj_{v-YehctNfd3tElCR7o!2kTt>sQ_f{DDuM zKC|F9VPu2F5M1k*1TX7_VNk(qKrNU%$s8}>mB_;KP*WNtPZ7R389lgnYrgr#o5w6O zG^?4{y*D+bi#iqSCstSA)ECi(v6MKT1xIC`5*oQ z*LM$KyhfGb22InD+m?<6Rw_9;*(z-k6+L&btQSI%AV3B40IPx~eE>~>__DTbxfAl?;UQmZ+x*K3Fuu(Aml9wyl!T4u&>R=mr&-O! z)Xk-uTsf;M!W*+HR56vRT0|Oz7maJaIq<^GgL2`X?dDCVMzB`~#(Biu8&h_7XVf;4 za-waf%=>{kE%F9QEc%{W3&|6PXvdj0TKcX73CRe8eyEhXWNn%so*enwysAsdGgyL@ z43cBXk`jt)Vb+cs>$@d31gq|LtA==y0Rrb$IUn%-z<&w+VPMQx<{iMt-hON6Pd&G> z@q?QsxLhkUAiI;QETWnvh>#&1gJR|bvcOWo(}2x?E7_I7s}x&@;qF|mOWu+!|J0bHrW#W~P zfq{_&v_CN2&T6Kao%tZiqj7ny5!tNDsZmv1k7}}7YbwM4pFKPQ{w+NZ`p)n3yze>Z zxBs`huibrb_wByjYDu;hWXlVY&9DSJWCCO$$xs!RA_apn%nXxBD$ZnK4<2Hm43$(d znDI~pgbb@449K!1%huAZZmIX%cfbFA`>p4k_kEtZ-Hk2VlI^xY_uobH`E<0H&TaeN z#_W~j1y@%KIKDi+C**>NTxF!603r`shLh1 zLQ&vBD61~1nUPas*zaEHSLNCHEWJz&K}7?2z$Fj}0>K@%>{^tnUSZydM-7B*WPT9= zoUg-wCi4II%kKXR@I%12^Y#ev{f`_Re5iuo`*%cNQ9v!@xOzZx5XolZCIKO2cQGWG zsAh3ZNK7swjx1MtzFW%i^>JqA1uX$nBNPQ11+zqmUFIe{^TI3Cuia$#aLRCbnb|y3 zr#V%ppoo#hye6eg0J>FVsT$D1IoR2MB^h%qv~;Hx$buM-t?`!+hShIg>s5smE&bJkJJX8i1P-!MNWgLno`?dW z43wRc;c!Sw#$rCFs!Do;A*pWJ+uNrsE8GpyKrAcF8dSomL9g@JBrRSbcqL8*4F~}@ z0aRQi8&U<4vKzFmv#TRR71=j;oHrR?pAz_O?))WqPT;$MKMnj*-Ub02KH9*izSr%K z{u%g@!Vxc^T#3}`k{gu!9MnNY2;h-yg%FD5P$|9Dkvuh>&DdTvEQ*50gw`Bfn9XKX zRUj6TMwD9{8|*F`_74x}43}Bt1==VfM(Vm|GMSUpf~Zc!sd_`wVsU%EXl_|XLO~WG zpZg3d-$$UdXa`dp;Mynv^lYu9I&)@j5FuXa(FoAaC}IrYpSxM+v(zMBBNLrs{Q~L zV;mR^x{vi1&8Rk?i)aKQg1SopRM6n=*>cvREG%_g$i^@Prj}>{;VsUuT@Uy!-r~># z-!Jef;I9D3_*DoXuxjwv|IhGydiWpsv)ynb_B+hxb9F~V!5nobWL%SYa3>(9){=XX zl~ZfOr)$gXBsesu1{A?9kkzTWBSI(0XwsZsm|9lhA4P&C*rP-sEeyOh>M7-6y1t;vXG9s^uecq z0mj!S0owtN0Sn$Thriv;d>;6(f&YkKh64gPZ*lnbbNIv`pXC4S2UpsE>}KK$?j8{d zE)on64r);YCZR}~W255XvJ+3=IXvW`br#~7B#KZ_R28wRh}95^4ibA{LhDcshLm|m z_CU(cyk4LxsDkAdQAfSNviaexd1;=R$10SFCx-;V95Z(}Rjg2TugzxjOdZsvA2Ke8 z^9_-Jl?-bM{%H?>fTI!lH;3ac0xl@hIBC&%rxeqYAmCBV%K#a%8|C zr+DJY$NA!O&-2W)&(fwuN-cxo5?U6__U_W}Ri_5s&c%6}-moAF8iQNJ2_^_2VybSM zlRHuhW-cqJYN2+kO*9|^?)=&*uqJ$!dE^@KA9oX<0RBth9KV3@)dUbYSv!B{`)<`g z_@0u#^g9N+=Yre^;v%jAx9BP%WtT35vnzx5P{g=Bt68K#vX-JyRt6(9MjChKEk+E3x=ZsIxkt&E!_YjN^Toy7X)dk0yJ%X^Ki0wMO0K&GM5bjHYlYNB>ut_1ii?Z2?kam0Q;xmnsf`llBf(3Dc zh^mVR19MjkMb@$_+2`i{7-V4TyV*bh7f^mpW)6Q-g#Sn&I$xzN_^U;0|6kz00{#fU zgaFQ4g!=>pNY3|tvF6|3%JxV9;EH}4Jg5*<2*E>W%!6S*i1d~_ihz=ZEA3O?qzHr?DxgGA{p^;!5-3d;SK*3pj5PzCr*294>5R{?1?6v;X0btjS*n2?lCHP?I7U zKI(Elkk8)Rov}T04x3DlN|cgC)3AHEPca6%M0^`1Pub&MG|-h%jRZ^XCZi-k_)(qSTalmB=Er0 zb#5Jl1<1(5mJQ}b!zKt z*Tgm zyl!|5inxj`kK)sf&4$}`VkQuZfG9MJhR`V~`hC18$RZ>c7HvyHC_=&R-XV9kHrYGa zr_G5F6#+V`R9aA#B~6{T_75g6nYaWz0|_Jxo*g&9LX4KPTbr=1fC`o}I1ko%Jmx4w zcjrM97rs#h757AUxuiK&Vr7kXf=7~9g}BeLq~a!$W5PU2!X*{%$&9utL#NYNcW zV<{$M=z2tO>&54+?1>P+|nb-o99zW@#hAiPBY;VlZNfB>!Y z(J$5fx*Gp)J~oukWY1KA{_(Z$m6g>#^^F}`fe>li5RYg%0%oa5kI<(nH zZQ|hYkny}`-X@Bopv{S`0U5}$Cs%deS+_N>^Psh@wZr?JHtVb(P+S=Y1y94ac{8{dHwoz zR12Pb>b=b7HIH4n!o!yzVK$$0 z1XKhO;?357;PW&8&);A0>{>@Jomm?`Cfz`CaD!n-CvS47I9@U6r77uw8B0|JtP3}g@kGsy1Q&65*=!qgnxdH0AM z0mu195pY3ROlk>>b;9E#dfQQKCwUS?JD6lMHPIMy#>kGRBw`|-gL@m5GQo6vbMXQb z|Cq)SpC1x@L{mG{$pW^wDT;u^lBP}6ZWL9Q;b=(Ez@#+COdSjABH}?rk=9L65ejH(=*3E6yKuwb zfV=Z{4S?UruZ_d20lpvjK>-|4KmY+mc#{YSf&c<2pn|;E@F(|ce)x}^>=pe=N6%hc zXZxVRfN%N0(+pOY`H4^bG|Rm%YiG{z`oQZbyt+^xVcMKJgIpOkU|V5rKFAZ>Gi`ey*};_!f+<@|n{3>?&2ZS~iN_z~thG!$g z{}|yT4!=`)ivR)$AbW0N{&%$+u6+yN0%YH8g-1O$R8RS1+pm@n$<(?z@P5kbf} z2_yp!#bXpy@Fuxs zGY54=a!|5ovOwD@HPq95@1-x?d*QuL9{W(#9_{Rqb7uzJoR29wLy`&e@sxSp5ITK^ zoes@($``)ySvs9A=Po|P)hD0iJ5Qcsdt;sPc%L)p&ko2E7a1aJg!2jT6KPymkbs}Kdt;<*8J z_JjPcrPeQ~@DbrHD!fSrR3HEf1c3k)0@>kY1+iDZf7&k4jt~QMOX!!*D=$9BqvzN7 z?cehoaP4yI!ddRl7HsYwvblH2-ef^`#Z|Ek;y`dhazZr9GJ-ne!|C&_voH}H5_l5G z2<~n!isQj^n=Akon2;?YyqiQ3;X!kEzL5mz0&=&7>xb~3iqW!gxa0IfpwjFHE-i?7 z7I#y}gphHvy5}-djStz`-><%y>+(b6$sy-2UF7MjJ%0AJ&tu6DBC(@%G$R7tpv>FE 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

jD&iJ!H;Gk{MQDAVks=@w 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 veinMineKey; - public static ConfigEntry veinMineDurability; - public static ConfigEntry removeEffects; - public static ConfigEntry progressiveMode; - public static ConfigEntry enableSpreadDamage; - public static ConfigEntry spreadDamageType; - public static ConfigEntry progressiveMult; - public static ConfigEntry durabilityMult; - public static ConfigEntry xpMult; - - - } -} \ No newline at end of file diff --git a/VeinMine/VeinMine.csproj b/VeinMine/VeinMine.csproj index 8777342..1008606 100644 --- a/VeinMine/VeinMine.csproj +++ b/VeinMine/VeinMine.csproj @@ -1,88 +1,244 @@  - - - Debug - AnyCPU - {B89BA476-237B-4A9B-837D-C6D07174918D} - Library - Properties - Veinmine - Veinmine - v4.6.2 - 512 - true - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - true - - - - libs\0Harmony.dll - - - libs\assembly_guiutils_public.dll - - - libs\assembly_utils_public.dll - - - libs\assembly_valheim_public.dll - - - libs\BepInEx.dll - - - - - - - - - - - libs\UnityEngine.dll - - - libs\UnityEngine.CoreModule.dll - - - D:\Games\Steam\steamapps\common\Valheim\unstripped_corlib\UnityEngine.ImageConversionModule.dll - - - D:\Games\Steam\steamapps\common\Valheim\unstripped_corlib\UnityEngine.InputLegacyModule.dll - - - D:\Games\Steam\steamapps\common\Valheim\unstripped_corlib\UnityEngine.PhysicsModule.dll - - - D:\Games\Steam\steamapps\common\Valheim\unstripped_corlib\UnityEngine.UI.dll - - - - - - - - - - - - + + + + Debug + AnyCPU + {B89BA476-237B-4A9B-837D-C6D07174918D} + Library + Properties + Veinmine + Veinmine + v4.6.2 + 512 + true + + 10 + enable + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + true + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + true + + + + + $(HOME)/.steam/steam/steamapps/common/Valheim + $(HOME)/Library/Application Support/Steam/steamapps/common/Valheim/Contents/MacOS + $(GamePath)/unstripped_corelib + + + + + $([MSBuild]::GetRegistryValueFromView('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam App 892970', 'InstallLocation', null, RegistryView.Registry64, RegistryView.Registry32)) + <_SteamLibraryPath>$([MSBuild]::GetRegistryValueFromView('HKEY_CURRENT_USER\SOFTWARE\Valve\Steam', 'SteamPath', null, RegistryView.Registry32)) + $(_SteamLibraryPath)\steamapps\common\Valheim + $(ValheimGamePath) + C:\Program Files\Steam\steamapps\common\Valheim + C:\Program Files (x86)\Steam\steamapps\common\Valheim + D:\SteamLibrary\steamapps\common\Valheim + D:\Games\Steam\steamapps\common\Valheim + $(GamePath)\BepInEx + $(GamePath)\unstripped_corlib + $(GamePath)\valheim_Data\Managed\publicized_assemblies + ILRepacker + + + + + + $(BepInExPath)\core\0Harmony.dll + + + $(PublicizedAssembliesPath)\assembly_guiutils_publicized.dll + + + $(PublicizedAssembliesPath)\assembly_utils_publicized.dll + + + $(PublicizedAssembliesPath)\assembly_valheim_publicized.dll + + + $(BepInExPath)\core\BepInEx.dll + + + libs\ServerSync.dll + + + + + + + + + + + $(CorlibPath)\UnityEngine.dll + + + $(CorlibPath)\UnityEngine.CoreModule.dll + + + $(CorlibPath)\UnityEngine.ImageConversionModule.dll + + + $(CorlibPath)\UnityEngine.InputLegacyModule.dll + + + $(CorlibPath)\UnityEngine.PhysicsModule.dll + + + $(CorlibPath)\UnityEngine.UI.dll + + + + + + + + + + + + + + + + + + Always + + + + + + + + + + + + + + + + + + + + + + + + + %(AssemblyVersions.Identity) + $(AssemblyVersion.Split('.')[0]) + $(AssemblyVersion.Split('.')[1]) + $(AssemblyVersion.Split('.')[2]) + $(AssemblyName)_v$(Major).$(Minor).$(Patch) + $(Major).$(Minor).$(Patch) + $(Major).$(Minor).$(Patch) + $(ProjectDir)\Thunderstore\$(PackageName) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105.The missing file is {0}. + + + \ No newline at end of file diff --git a/VeinMine/VeinMinePlugin.cs b/VeinMine/VeinMinePlugin.cs new file mode 100644 index 0000000..b5ddf36 --- /dev/null +++ b/VeinMine/VeinMinePlugin.cs @@ -0,0 +1,208 @@ +using System; +using System.IO; +using System.Linq; +using System.Reflection; +using BepInEx; +using BepInEx.Configuration; +using BepInEx.Logging; +using HarmonyLib; +using JetBrains.Annotations; +using ServerSync; +using UnityEngine; + +namespace Veinmine +{ + [BepInPlugin(ModGUID, ModName, ModVersion)] + [BepInProcess("valheim.exe")] + [BepInProcess("valheim_server.exe")] + public class VeinMinePlugin : BaseUnityPlugin + { + internal const string ModName = "Veinmine"; + internal const string ModVersion = "1.2.7"; + internal const string Author = "wisehorror"; + private const string ModGUID = "com." + Author + "." + ModName; + private static string ConfigFileName = ModGUID + ".cfg"; + private static string ConfigFileFullPath = Paths.ConfigPath + Path.DirectorySeparatorChar + ConfigFileName; + internal static string ConnectionError = ""; + private readonly Harmony _harmony = new(ModGUID); + public static ManualLogSource logger = BepInEx.Logging.Logger.CreateLogSource(ModName); + + private static readonly ConfigSync ConfigSync = new(ModGUID) { DisplayName = ModName, CurrentVersion = ModVersion, MinimumRequiredVersion = ModVersion }; + + public enum SpreadTypes + { + Level, + Distance + } + + public enum Toggle + { + On = 1, + Off = 0 + } + + void Awake() + { + _serverConfigLocked = config("1 - General", "Lock Configuration", Toggle.On, + "If on, the configuration is locked and can be changed by server admins only."); + _ = ConfigSync.AddLockingConfigEntry(_serverConfigLocked); + + + veinMineKey = config("2 - General", + "Veinmine", + new KeyboardShortcut(KeyCode.LeftAlt), + "Key (or button) to hold for veinmining. Refer to https://docs.unity3d.com/Manual/class-InputManager.html", false); + + veinMineDurability = config("2 - General", + "Durability", + Toggle.On, + "Veinmining takes durability as if you mined every section manually."); + + removeEffects = config("3 - Visual", + "Remove Effects", + Toggle.Off, + "Remove mining visual effects to try to *possibly* reduce fps lag", false); + + progressiveMode = config("4 - Progressive", + "Enable Progressive", + Toggle.Off, + "Progressive mode scales the number of sections mined according to the player's Pickaxes level."); + + progressiveMult = config("4 - Progressive", + "Radius Multiplier", + 0.1f, + "Radius around your hit area to veinmine. This value is multiplied by the player's Pickaxes level.\n" + + "Keep in mind 1 is the same length as the 1x1 wood floor.\n" + + "So if you have Lvl 30 and set this value to 0.1, you will veinmine rocks in a radius of 3 (0.1 * 30 = 3)."); + + durabilityMult = config("4 - Progressive", + "Durability Multiplier", + 1f, + "Determines durability lost when veinmining.\n" + + "The formula is (120 - Pickaxes level) / (20 * multiplier) where \"multiplier\" is this value."); + + xpMult = config("4 - Progressive", + "XP Multiplier", + 0.2f, + "Multiplier for XP gained per rock section veinmined."); + + enableSpreadDamage = config("4 - Progressive", + "Enable Spread Damage", + Toggle.Off, + "Spreads your hit damage throughout all rock sections mined, as opposed to hitting every section for the total amount of damage."); + + spreadDamageType = config("4 - Progressive", + "Spread Damage Type", + SpreadTypes.Distance, + "Level: Scales damage done to each section based on your Pickaxes level.\n" + + "Distance: Calculates damage done to each section based on your distance from it, the farther away, the less damage you do."); + + Assembly assembly = Assembly.GetExecutingAssembly(); + _harmony.PatchAll(assembly); + SetupWatcher(); + } + + private void OnDestroy() + { + Config.Save(); + } + + private void SetupWatcher() + { + FileSystemWatcher watcher = new(Paths.ConfigPath, ConfigFileName); + watcher.Changed += ReadConfigValues; + watcher.Created += ReadConfigValues; + watcher.Renamed += ReadConfigValues; + watcher.IncludeSubdirectories = true; + watcher.SynchronizingObject = ThreadingHelper.SynchronizingObject; + watcher.EnableRaisingEvents = true; + } + + private void ReadConfigValues(object sender, FileSystemEventArgs e) + { + if (!File.Exists(ConfigFileFullPath)) return; + try + { + logger.LogDebug("ReadConfigValues called"); + Config.Reload(); + } + catch + { + logger.LogError($"There was an issue loading your {ConfigFileName}"); + logger.LogError("Please check your config entries for spelling and format!"); + } + } + + #region ConfigOptions + + private static ConfigEntry _serverConfigLocked = null!; + public static ConfigEntry veinMineKey; + public static ConfigEntry veinMineDurability; + public static ConfigEntry removeEffects; + public static ConfigEntry progressiveMode; + public static ConfigEntry enableSpreadDamage; + public static ConfigEntry spreadDamageType; + public static ConfigEntry progressiveMult; + public static ConfigEntry durabilityMult; + public static ConfigEntry xpMult; + + private ConfigEntry config(string group, string name, T value, ConfigDescription description, + bool synchronizedSetting = true) + { + ConfigDescription extendedDescription = + new( + description.Description + + (synchronizedSetting ? " [Synced with Server]" : " [Not Synced with Server]"), + description.AcceptableValues, description.Tags); + ConfigEntry configEntry = Config.Bind(group, name, value, extendedDescription); + //var configEntry = Config.Bind(group, name, value, description); + + SyncedConfigEntry syncedConfigEntry = ConfigSync.AddConfigEntry(configEntry); + syncedConfigEntry.SynchronizedConfig = synchronizedSetting; + + return configEntry; + } + + private ConfigEntry config(string group, string name, T value, string description, + bool synchronizedSetting = true) + { + return config(group, name, value, new ConfigDescription(description), synchronizedSetting); + } + + private class ConfigurationManagerAttributes + { + [UsedImplicitly] public int? Order; + [UsedImplicitly] public bool? Browsable; + [UsedImplicitly] public string? Category; + [UsedImplicitly] public Action? CustomDrawer; + } + + class AcceptableShortcuts : AcceptableValueBase + { + public AcceptableShortcuts() : base(typeof(KeyboardShortcut)) + { + } + + public override object Clamp(object value) => value; + public override bool IsValid(object value) => true; + + public override string ToDescriptionString() => + "# Acceptable values: " + string.Join(", ", KeyboardShortcut.AllKeyCodes); + } + + #endregion + } + + public static class KeyboardExtensions + { + public static bool IsKeyDown(this KeyboardShortcut shortcut) + { + return shortcut.MainKey != KeyCode.None && Input.GetKeyDown(shortcut.MainKey) && shortcut.Modifiers.All(Input.GetKey); + } + + public static bool IsKeyHeld(this KeyboardShortcut shortcut) + { + return shortcut.MainKey != KeyCode.None && Input.GetKey(shortcut.MainKey) && shortcut.Modifiers.All(Input.GetKey); + } + } +} \ No newline at end of file diff --git a/VeinMine/VersionHandshake.cs b/VeinMine/VersionHandshake.cs new file mode 100644 index 0000000..9f217b1 --- /dev/null +++ b/VeinMine/VersionHandshake.cs @@ -0,0 +1,124 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Reflection; +using System.Security.Cryptography; +using System.Text; +using HarmonyLib; + +namespace Veinmine +{ + [HarmonyPatch(typeof(ZNet), nameof(ZNet.OnNewConnection))] + public static class RegisterAndCheckVersion + { + private static void Prefix(ZNetPeer peer, ref ZNet __instance) + { + // Register version check call + VeinMinePlugin.logger.LogDebug("Registering version RPC handler"); + peer.m_rpc.Register($"{VeinMinePlugin.ModName}_VersionCheck", new Action(RpcHandlers.RPC_Recycle_N_Reclaim_Version)); + + // Make calls to check versions + VeinMinePlugin.logger.LogInfo("Invoking version check"); + ZPackage zpackage = new(); + zpackage.Write(VeinMinePlugin.ModVersion); + zpackage.Write(RpcHandlers.ComputeHashForMod().Replace("-", "")); + peer.m_rpc.Invoke($"{VeinMinePlugin.ModName}_VersionCheck", zpackage); + } + } + + [HarmonyPatch(typeof(ZNet), nameof(ZNet.RPC_PeerInfo))] + public static class VerifyClient + { + private static bool Prefix(ZRpc rpc, ZPackage pkg, ref ZNet __instance) + { + if (!__instance.IsServer() || RpcHandlers.ValidatedPeers.Contains(rpc)) return true; + // Disconnect peer if they didn't send mod version at all + VeinMinePlugin.logger.LogWarning($"Peer ({rpc.m_socket.GetHostName()}) never sent version or couldn't due to previous disconnect, disconnecting"); + rpc.Invoke("Error", 3); + return false; // Prevent calling underlying method + } + + private static void Postfix(ZNet __instance) + { + ZRoutedRpc.instance.InvokeRoutedRPC(ZRoutedRpc.instance.GetServerPeerID(), $"{VeinMinePlugin.ModName}RequestAdminSync", new ZPackage()); + } + } + + [HarmonyPatch(typeof(FejdStartup), nameof(FejdStartup.ShowConnectError))] + public class ShowConnectionError + { + private static void Postfix(FejdStartup __instance) + { + if (__instance.m_connectionFailedPanel.activeSelf) + { + __instance.m_connectionFailedError.resizeTextMaxSize = 25; + __instance.m_connectionFailedError.resizeTextMinSize = 15; + __instance.m_connectionFailedError.text += "\n" + VeinMinePlugin.ConnectionError; + } + } + } + + [HarmonyPatch(typeof(ZNet), nameof(ZNet.Disconnect))] + public static class RemoveDisconnectedPeerFromVerified + { + private static void Prefix(ZNetPeer peer, ref ZNet __instance) + { + if (!__instance.IsServer()) return; + // Remove peer from validated list + VeinMinePlugin.logger.LogInfo($"Peer ({peer.m_rpc.m_socket.GetHostName()}) disconnected, removing from validated list"); + _ = RpcHandlers.ValidatedPeers.Remove(peer.m_rpc); + } + } + + public static class RpcHandlers + { + public static readonly List ValidatedPeers = new(); + + public static void RPC_Recycle_N_Reclaim_Version(ZRpc rpc, ZPackage pkg) + { + string? version = pkg.ReadString(); + string? hash = pkg.ReadString(); + + var hashForAssembly = ComputeHashForMod().Replace("-", ""); + + VeinMinePlugin.logger.LogInfo($"Hash/Version check, local: {VeinMinePlugin.ModVersion} {hashForAssembly} remote: {version} {hash}"); + if (hash != hashForAssembly || version != VeinMinePlugin.ModVersion) + { + VeinMinePlugin.ConnectionError = $"{VeinMinePlugin.ModName} Installed: {VeinMinePlugin.ModVersion} {hashForAssembly}\n Needed: {version} {hash}"; + if (!ZNet.instance.IsServer()) return; + // Different versions - force disconnect client from server + VeinMinePlugin.logger.LogWarning($"Peer ({rpc.m_socket.GetHostName()}) has incompatible version, disconnecting..."); + rpc.Invoke("Error", 3); + } + else + { + if (!ZNet.instance.IsServer()) + { + // Enable mod on client if versions match + VeinMinePlugin.logger.LogInfo("Received same version from server!"); + } + else + { + // Add client to validated list + VeinMinePlugin.logger.LogInfo($"Adding peer ({rpc.m_socket.GetHostName()}) to validated list"); + ValidatedPeers.Add(rpc); + } + } + } + + public static string ComputeHashForMod() + { + using SHA256 sha256Hash = SHA256.Create(); + // ComputeHash - returns byte array + byte[] bytes = sha256Hash.ComputeHash(File.ReadAllBytes(Assembly.GetExecutingAssembly().Location)); + // Convert byte array to a string + StringBuilder builder = new(); + foreach (byte b in bytes) + { + builder.Append(b.ToString("X2")); + } + + return builder.ToString(); + } + } +} \ No newline at end of file diff --git a/VeinMine/environment.props b/VeinMine/environment.props new file mode 100644 index 0000000..f56a550 --- /dev/null +++ b/VeinMine/environment.props @@ -0,0 +1,13 @@ + + + + C:\Program Files (x86)\Steam\steamapps\common\Valheim + $(ValheimGamePath)\BepInEx + $(ValheimGamePath)\unstripped_corlib + $(ValheimGamePath)\valheim_Data\Managed\publicized_assemblies + $(ValheimGamePath)\BepInEx\plugins + + + ILRepacker + + \ No newline at end of file diff --git a/VeinMine/libs/ServerSync.dll b/VeinMine/libs/ServerSync.dll new file mode 100644 index 0000000000000000000000000000000000000000..6bb8e90b4bab19dc716574cbdb7d8a8945159702 GIT binary patch literal 48128 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 oX6S{cAUjaYDp-1So_p{3sJ - + \ No newline at end of file From f4d42085c62f1032544583aa11be68fd81238672 Mon Sep 17 00:00:00 2001 From: AzumattDev Date: Mon, 10 Jul 2023 23:04:07 -0400 Subject: [PATCH 2/3] v1.2.8 : Refactor patches, update README.md, CHANGELOG.md,etc. --- README.md | 105 +++++++++++-- VeinMine/Patches.cs | 221 ++++++++++++---------------- VeinMine/Properties/AssemblyInfo.cs | 2 +- VeinMine/Thunderstore/CHANGELOG.md | 92 ++++++++++-- VeinMine/Thunderstore/README.md | 105 +++++++++++-- VeinMine/VeinMinePlugin.cs | 40 ++--- VeinMine/VersionHandshake.cs | 2 +- 7 files changed, 387 insertions(+), 180 deletions(-) diff --git a/README.md b/README.md index 18aa0b7..59773c6 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,103 @@ ![Valheim VeinMine](https://i.imgur.com/OAfRGXK.jpg) + Tired of mining for ages? With Veinmine you're able to mine the whole ore/rock vein at once! You can do this by holding down the assigned key (Left Alt by default) while mining! +`Version checks with itself. If installed on the server, it will kick clients who do not have it installed.` + +`This mod uses ServerSync, if installed on the server and all clients, it will sync all configs to client` + +`This mod uses a file watcher. If the configuration file is not changed with BepInEx Configuration manager, but changed in the file directly on the server, upon file save, it will sync the changes to all clients.` + ## **Version 1.0.0 - Progressive mode added!** ### **Please delete your previous config when updating as it might break something.** -You can now enable progressive mode in the config, making it so veinmining is scaled by your Pickaxes level. This is intended to be a less OP way of veinmining, where the tradeoff is taking higher durability damage (and less xp) than if you mined manually. - -The radius of the veinmined area is also scaled by your Pickaxes level. - -It works by checking for rocks in a radius set by the Progressive Level Multiplier value in the config. This value is multiplied by your Pickaxes level to obtain a radius. - -By default, it's set to 0.1 so assuming your Pickaxes level is 20, the radius will be 0.1 * 20 = 2. - -What does 2 mean, you ask? - -It's simple! A standard 2x2 floor piece has a length of 2, exactly like its name suggests. \ No newline at end of file +You can now enable progressive mode in the config, making it so veinmining is scaled by your Pickaxes level. This is +intended to be a less OP way of veinmining, where the tradeoff is taking higher durability damage (and less xp) than if +you mined manually. + +The radius of the veinmined area is also scaled by your Pickaxes level. + +It works by checking for rocks in a radius set by the Progressive Level Multiplier value in the config. This value is +multiplied by your Pickaxes level to obtain a radius. + +By default, it's set to 0.1 so assuming your Pickaxes level is 20, the radius will be 0.1 * 20 = 2. + +What does 2 mean, you ask? + +It's simple! A standard 2x2 floor piece has a length of 2, exactly like its name suggests. + +--- + +

+Installation Instructions + +***You must have BepInEx installed correctly! I can not stress this enough.*** + +### Manual Installation + +`Note: (Manual installation is likely how you have to do this on a server, make sure BepInEx is installed on the server correctly)` + +1. **Download the latest release of BepInEx.** +2. **Extract the contents of the zip file to your game's root folder.** +3. **Download the latest release of VeinMine from Thunderstore.io. (or Nexus Mods)** +4. **Extract the contents of the zip file to the `BepInEx/plugins` folder.** +5. **Launch the game.** + +### Installation through Vortex + +https://www.youtube.com/watch?v=Kt_6lwGd2Ns + +### Installation through r2modman or Thunderstore Mod Manager + +1. **Install [r2modman](https://valheim.thunderstore.io/package/ebkr/r2modman/) + or [Thunderstore Mod Manager](https://www.overwolf.com/app/Thunderstore-Thunderstore_Mod_Manager).** + + > For r2modman, you can also install it through the Thunderstore site. + ![](https://i.imgur.com/s4X4rEs.png "r2modman Download") + + > For Thunderstore Mod Manager, you can also install it through the Overwolf app store + ![](https://i.imgur.com/HQLZFp4.png "Thunderstore Mod Manager Download") +2. **Open the Mod Manager and search for "" under the Online + tab. `Note: You can also search for "Azumatt" to find all my mods.`** + + `The image below shows VikingShip as an example, but it was easier to reuse the image.` + + ![](https://i.imgur.com/5CR5XKu.png) + +3. **Click the Download button to install the mod.** +4. **Launch the game.** + +
+ +
+
+ +`Feel free to reach out to me on discord if you need manual download assistance.` + +# Current Author (Maintainer) Information + +### Azumatt + +`DISCORD:` Azumatt#2625 + +`STEAM:` https://steamcommunity.com/id/azumatt/ + +`GITHUB:` https://github.com/AzumattDev + +For Questions or Comments, find me in the Odin Plus Team Discord or in mine: + +[![https://i.imgur.com/XXP6HCU.png](https://i.imgur.com/XXP6HCU.png)](https://discord.gg/Pb6bVMnFb2) + + +
+ +# Original Author Information + +### WiseHorror + +`DISCORD:` WiseHorror (wisehorror) + +`GitHub:` https://github.com/WiseHorror \ No newline at end of file diff --git a/VeinMine/Patches.cs b/VeinMine/Patches.cs index 69e941d..21dfeaa 100644 --- a/VeinMine/Patches.cs +++ b/VeinMine/Patches.cs @@ -1,4 +1,5 @@ using System.Collections.Generic; +using System.Linq; using HarmonyLib; using UnityEngine; @@ -9,69 +10,30 @@ static class MineRockDamagePatch { static bool Prefix(MineRock __instance, HitData hit) { + Player closestPlayer = Player.GetClosestPlayer(hit.m_point, 5f); + if (VeinMinePlugin.veinMineKey.Value.IsKeyHeld()) { - if (VeinMinePlugin.progressiveMode.Value == VeinMinePlugin.Toggle.On) + Vector3 firstHitPoint = hit.m_point; + foreach (var area in __instance.m_hitAreas) { - float radius = VeinMinePlugin.progressiveMult.Value * (float)Functions.GetSkillLevel(Player.GetClosestPlayer(hit.m_point, 5f).GetSkills(), Skills.SkillType.Pickaxes); - Vector3 firstHitPoint = hit.m_point; + if (area == null) continue; - foreach (var area in __instance.m_hitAreas) + if (VeinMinePlugin.progressiveMode.Value == VeinMinePlugin.Toggle.On) { - if (Functions.GetDistanceFromPlayer(Player.GetClosestPlayer(hit.m_point, 5f).GetTransform().position, area.bounds.center) <= radius && area != null) - { - hit.m_point = area.transform.position; - hit.m_hitCollider = area; - if (hit.m_hitCollider == null) - { - ZLog.Log("Minerock hit has no collider"); - return false; - } - - int areaIndex = __instance.GetAreaIndex(hit.m_hitCollider); - if (areaIndex == -1) - { - //ZLog.Log("Invalid hit area on " + base.gameObject.name); - return false; - } + float radius = VeinMinePlugin.progressiveMult.Value * (float)Functions.GetSkillLevel(closestPlayer.GetSkills(), Skills.SkillType.Pickaxes); - ZLog.Log("Hit mine rock area " + areaIndex); - __instance.m_nview.InvokeRPC("Hit", new object[] - { - hit, - areaIndex - }); - hit.m_point = firstHitPoint; + if (Functions.GetDistanceFromPlayer(closestPlayer.GetTransform().position, area.bounds.center) <= radius) + { + ProcessHitArea(__instance, hit, area, firstHitPoint); } } - } - else - { - foreach (var area in __instance.m_hitAreas) + else { - string hpAreaName = "Health" + __instance.GetAreaIndex(area).ToString(); + string hpAreaName = $"Health{__instance.GetAreaIndex(area)}"; hit.m_damage.m_pickaxe = __instance.m_nview.GetZDO().GetFloat(hpAreaName, __instance.m_health); - hit.m_point = __instance.GetHitArea(__instance.GetAreaIndex(area)).bounds.center; - hit.m_hitCollider = area; - if (hit.m_hitCollider == null) - { - ZLog.Log("Minerock hit has no collider"); - return false; - } - - int areaIndex = __instance.GetAreaIndex(hit.m_hitCollider); - if (areaIndex == -1) - { - //ZLog.Log("Invalid hit area on " + base.gameObject.name); - return false; - } - - ZLog.Log("Hit mine rock area " + areaIndex); - __instance.m_nview.InvokeRPC("Hit", new object[] - { - hit, - areaIndex - }); + hit.m_point = area.bounds.center; + ProcessHitArea(__instance, hit, area, firstHitPoint); } } @@ -80,8 +42,26 @@ static bool Prefix(MineRock __instance, HitData hit) return true; } + + private static void ProcessHitArea(MineRock __instance, HitData hit, Collider area, Vector3 firstHitPoint) + { + hit.m_hitCollider = area; + if (hit.m_hitCollider == null) + { + VeinMinePlugin.logger.LogInfo("Minerock hit has no collider"); + return; + } + + int areaIndex = __instance.GetAreaIndex(hit.m_hitCollider); + if (areaIndex == -1) return; + + VeinMinePlugin.logger.LogInfo($"Hit mine rock area {areaIndex}"); + __instance.m_nview.InvokeRPC("Hit", hit, areaIndex); + hit.m_point = firstHitPoint; + } } + [HarmonyPatch(typeof(MineRock5), nameof(MineRock5.Damage))] static class MineRock5DamagePatch { @@ -90,66 +70,50 @@ static void Prefix(MineRock5 __instance, HitData hit, out Dictionary(); - if (VeinMinePlugin.veinMineKey.Value.IsKeyHeld() && VeinMinePlugin.progressiveMode.Value == VeinMinePlugin.Toggle.On) - { - var radiusColliders = Physics.OverlapSphere(hit.m_point, VeinMinePlugin.progressiveMult.Value * (float)Functions.GetSkillLevel(Player.GetClosestPlayer(hit.m_point, 5f).GetSkills(), Skills.SkillType.Pickaxes)); - - if (radiusColliders != null) - { - foreach (var area in radiusColliders) - { - if (__instance.GetAreaIndex(area) >= 0) - { - __state.Add(__instance.GetAreaIndex(area), __instance.GetHitArea(__instance.GetAreaIndex(area)).m_bound.m_pos + - __instance.GetHitArea(__instance.GetAreaIndex(area)).m_collider.transform.position); - } - } - } - } + Player closestPlayer = Player.GetClosestPlayer(hit.m_point, 5f); + float radius = VeinMinePlugin.progressiveMult.Value * (float)Functions.GetSkillLevel(closestPlayer.GetSkills(), Skills.SkillType.Pickaxes); - if (VeinMinePlugin.veinMineKey.Value.IsKeyHeld() && VeinMinePlugin.progressiveMode.Value == VeinMinePlugin.Toggle.Off) + if (VeinMinePlugin.veinMineKey.Value.IsKeyHeld()) { - List radiusColliders = new List(); - foreach (var area in __instance.m_hitAreas) - { - radiusColliders.Add(area.m_collider); - } + IEnumerable radiusColliders; + + if (VeinMinePlugin.progressiveMode.Value == VeinMinePlugin.Toggle.On) + radiusColliders = Physics.OverlapSphere(hit.m_point, radius); + else + radiusColliders = __instance.m_hitAreas.Select(area => area.m_collider); - if (radiusColliders != null) + foreach (var area in radiusColliders) { - foreach (var area in radiusColliders) + int areaIndex = __instance.GetAreaIndex(area); + if (areaIndex >= 0) { - if (__instance.GetAreaIndex(area) >= 0) - { - __state.Add(__instance.GetAreaIndex(area), __instance.GetHitArea(__instance.GetAreaIndex(area)).m_bound.m_pos + - __instance.GetHitArea(__instance.GetAreaIndex(area)).m_collider.transform.position); - } + __state.Add(areaIndex, + __instance.GetHitArea(areaIndex).m_bound.m_pos + + __instance.GetHitArea(areaIndex).m_collider.transform.position); } } } } - public static void Postfix(MineRock5 __instance, ZNetView ___m_nview, List ___m_hitAreas, HitData hit, Dictionary __state) + public static void Postfix(MineRock5 __instance, ZNetView ___m_nview, HitData hit, Dictionary __state) { - if (Player.GetClosestPlayer(hit.m_point, 5f) != null && hit.m_attacker == Player.GetClosestPlayer(hit.m_point, 5f).GetZDOID()) + Player closestPlayer = Player.GetClosestPlayer(hit.m_point, 5f); + if (closestPlayer != null && hit.m_attacker == closestPlayer.GetZDOID() && VeinMinePlugin.veinMineKey.Value.IsKeyHeld()) { - if (VeinMinePlugin.veinMineKey.Value.IsKeyHeld() && Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().GetDamage().m_pickaxe > 0) + var currentWeapon = closestPlayer.GetCurrentWeapon(); + if (currentWeapon.GetDamage().m_pickaxe > 0) { foreach (var index in __state) { - if (Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().m_durability > 0 || !Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().m_shared.m_useDurability) + if (currentWeapon.m_durability > 0 || !currentWeapon.m_shared.m_useDurability) { try { - ___m_nview.InvokeRPC("Damage", new object[] - { - hit, - index.Key - }); + ___m_nview.InvokeRPC("Damage", hit, index.Key); } catch { - VeinMinePlugin.logger.LogInfo("Skipping section: " + index.Key + "."); + VeinMinePlugin.logger.LogInfo($"Skipping section: {index.Key}."); } } } @@ -158,35 +122,44 @@ public static void Postfix(MineRock5 __instance, ZNetView ___m_nview, List 0f) hit.m_damage.m_pickaxe = __instance.m_health; - bool isVeinmined = false; + if (VeinMinePlugin.progressiveMode.Value == VeinMinePlugin.Toggle.Off && currentWeapon.GetDamage().m_pickaxe > 0f) hit.m_damage.m_pickaxe = __instance.m_health; + MineRock5.HitArea hitArea = __instance.GetHitArea(hitAreaIndex); + if (hitArea == null) + { + VeinMinePlugin.logger.LogInfo($"Missing hit area {hitAreaIndex}"); + __state = 0f; + __result = false; + return false; + } + __state = hitArea.m_health; Vector3 hitPoint = hitArea.m_collider.bounds.center; if (VeinMinePlugin.enableSpreadDamage.Value == VeinMinePlugin.Toggle.On) hit = Functions.SpreadDamage(hit); - if (VeinMinePlugin.veinMineKey.Value.IsKeyHeld()) isVeinmined = true; - ZLog.Log("hit mine rock " + hitAreaIndex); + bool isVeinmined = VeinMinePlugin.veinMineKey.Value.IsKeyHeld(); + VeinMinePlugin.logger.LogInfo($"Hit mine rock {hitAreaIndex}"); + if (hitArea == null) { - ZLog.Log("Missing hit area " + hitAreaIndex); + VeinMinePlugin.logger.LogInfo($"Missing hit area {hitAreaIndex}"); __result = false; return false; } @@ -194,7 +167,7 @@ static bool Prefix(MineRock5 __instance, HitData hit, int hitAreaIndex, ref Effe __instance.LoadHealth(); if (hitArea.m_health <= 0f) { - ZLog.Log("Already destroyed"); + VeinMinePlugin.logger.LogInfo("Already destroyed"); __result = false; return false; } @@ -264,32 +237,32 @@ static bool Prefix(MineRock5 __instance, HitData hit, int hitAreaIndex, ref Effe static void Postfix(MineRock5 __instance, HitData hit, float __state, bool __result) { - if ( - hit != null - && Player.GetClosestPlayer(hit.m_point, 5f) != null - && Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon() != null - ) + Player closestPlayer = Player.GetClosestPlayer(hit.m_point, 5f); + ItemDrop.ItemData? currentWeapon = closestPlayer?.GetCurrentWeapon(); + + if (hit != null && closestPlayer != null && currentWeapon != null && VeinMinePlugin.veinMineKey.Value.IsKeyHeld() && currentWeapon.GetDamage().m_pickaxe > 0) { - if (VeinMinePlugin.veinMineKey.Value.IsKeyHeld() && Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().GetDamage().m_pickaxe > 0) + if (__state > 0f && hit.m_attacker == closestPlayer.GetZDOID()) { - if (__state > 0f && hit.m_attacker == Player.GetClosestPlayer(hit.m_point, 5f).GetZDOID() && VeinMinePlugin.progressiveMode.Value == VeinMinePlugin.Toggle.Off) - { - Player.GetClosestPlayer(hit.m_point, 5f).RaiseSkill(Skills.SkillType.Pickaxes, Functions.GetSkillIncreaseStep(Player.GetClosestPlayer(hit.m_point, 5f).GetSkills(), Skills.SkillType.Pickaxes)); + var skills = closestPlayer.GetSkills(); + float skillIncreaseStep = Functions.GetSkillIncreaseStep(skills, Skills.SkillType.Pickaxes); - if (VeinMinePlugin.veinMineDurability.Value == VeinMinePlugin.Toggle.On && Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().m_shared.m_useDurability) - { - Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().m_durability -= Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().m_shared.m_useDurabilityDrain; - } + if (VeinMinePlugin.progressiveMode.Value == VeinMinePlugin.Toggle.Off) + { + closestPlayer.RaiseSkill(Skills.SkillType.Pickaxes, skillIncreaseStep); + } + else // VeinMinePlugin.progressiveMode.Value == VeinMinePlugin.Toggle.On + { + closestPlayer.RaiseSkill(Skills.SkillType.Pickaxes, skillIncreaseStep * VeinMinePlugin.xpMult.Value); } - else if (__state > 0f && hit.m_attacker == Player.GetClosestPlayer(hit.m_point, 5f).GetZDOID() && VeinMinePlugin.progressiveMode.Value == VeinMinePlugin.Toggle.On) + + if (VeinMinePlugin.veinMineDurability.Value == VeinMinePlugin.Toggle.On && currentWeapon.m_shared.m_useDurability) { - Player.GetClosestPlayer(hit.m_point, 5f).RaiseSkill(Skills.SkillType.Pickaxes, Functions.GetSkillIncreaseStep(Player.GetClosestPlayer(hit.m_point, 5f).GetSkills(), Skills.SkillType.Pickaxes) * VeinMinePlugin.xpMult.Value); + float durabilityLoss = VeinMinePlugin.progressiveMode.Value == VeinMinePlugin.Toggle.On + ? currentWeapon.m_shared.m_useDurabilityDrain * ((120 - Functions.GetSkillLevel(skills, Skills.SkillType.Pickaxes)) / (20 * VeinMinePlugin.durabilityMult.Value)) + : currentWeapon.m_shared.m_useDurabilityDrain; - if (VeinMinePlugin.veinMineDurability.Value == VeinMinePlugin.Toggle.On && Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().m_shared.m_useDurability) - { - float durabilityLoss = Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().m_shared.m_useDurabilityDrain * ((120 - Functions.GetSkillLevel(Player.GetClosestPlayer(hit.m_point, 5f).GetSkills(), Skills.SkillType.Pickaxes)) / (20 * VeinMinePlugin.durabilityMult.Value)); - Player.GetClosestPlayer(hit.m_point, 5f).GetCurrentWeapon().m_durability -= durabilityLoss; - } + currentWeapon.m_durability -= durabilityLoss; } } } diff --git a/VeinMine/Properties/AssemblyInfo.cs b/VeinMine/Properties/AssemblyInfo.cs index df3271c..0ca69a2 100644 --- a/VeinMine/Properties/AssemblyInfo.cs +++ b/VeinMine/Properties/AssemblyInfo.cs @@ -9,7 +9,7 @@ [assembly: AssemblyTitle(VeinMinePlugin.ModName)] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany(VeinMinePlugin.Author + " & Azumatt")] +[assembly: AssemblyCompany($"{VeinMinePlugin.Author} & Azumatt")] [assembly: AssemblyProduct(VeinMinePlugin.ModName)] [assembly: AssemblyCopyright("Copyright © WiseHorror/Azumatt 2023")] [assembly: AssemblyTrademark("")] diff --git a/VeinMine/Thunderstore/CHANGELOG.md b/VeinMine/Thunderstore/CHANGELOG.md index eb58382..64ab3ae 100644 --- a/VeinMine/Thunderstore/CHANGELOG.md +++ b/VeinMine/Thunderstore/CHANGELOG.md @@ -1,65 +1,133 @@ +## 1.2.8 + +- Azumatt begins maintaining the mod. (Thanks WiseHorror for the opportunity!) +- `Changes to the configuration file have been made. Please delete your previous config when updating to this version. Sorry for the inconvenience.` +- Refactor a lot of code to make it more readable. +- Addition of ServerSync internally to allow for syncing of config between players and the server. + - This addition adds a new config option to enable/disable syncing of config between players and the server. +- Change the project to have more automation in the build process so that it is easier to maintain and push updates out + faster. +- Addition of MIT license to the code repository per WiseHorror's request. +- Update the README.md to have more information and add installation instructions. + ## 1.2.7 + - Fixed mod being broken. - Infinite durability can now be enabled for progressive mode. + ### 1.2.6 + - Compatibility with Mistlands and fix for Silver ore exception. + ### 1.2.5 + - Tentative fix for multiplayer veinmining by replacing the use of Player.m_localPlayer with Player.GetClosestPlayer. + ### 1.2.4 + - Fixed an exception that was thrown when mining Leviathans. - Added veinmining support for Leviathans and Glowing Metal (Flametal Ore). + ### 1.2.3 + - Fixed a bug that allowed players to veinmine (and gain exp) without a pickaxe. + ### 1.2.2 + - Possible fix for ore drop quantities (Not sure why they weren't correct, as I don't change drop rates) + ### 1.2.1 + - Compatibility for Hearth and Home; - Tentative fix for ores spawning at 0,0 (unable to test without other players) + ### 1.2.0 -- Replaced 'Even' spread damage option with 'Level' as even was useless when the mined vein had a large number of sections. + +- Replaced 'Even' spread damage option with 'Level' as even was useless when the mined vein had a large number of + sections. - Refactored code. + ### 1.1.9 + - Fixed incompatibility with Rocky Ore mod. + ### 1.1.8 + - Fixed a bug that was causing no ores to be dropped (hopefully) + ### 1.1.7 + - Fixed a bug that caused ores to drop every single pickaxe swing when mining manually. + ### 1.1.6 + - Fixed a bug that was causing no drops to be received when veinmining. + ### 1.1.5 + #### Please delete your previous config when updating to this version. + - Damage text when veinmining should now display on top of each rock section - Veinmining when Progressive mode is disabled is now instant - Spread damage now has two options: Even and Distance - Even is the same as previous versions - - Distance makes it so the damage dealt to a rock section is based on distance. The farther away a section is, the less damage is dealt. + - Distance makes it so the damage dealt to a rock section is based on distance. The farther away a section is, the + less damage is dealt. ### 1.1.4 + - Fixed a bug where if you had spread damage enabled, mining damage would also be reduced when mining manually. + ### 1.1.3 -- Added config option for spreading damage in progressive mode (divides your mining damage equally between all rock sections affected, as opposed to doing full damage to all sections) + +- Added config option for spreading damage in progressive mode (divides your mining damage equally between all rock + sections affected, as opposed to doing full damage to all sections) - This is disabled by default. + ### 1.1.2 -- Fixed incompatibility with mods that alter the pickaxe's durability drain values. The value modified by such mods (m_useDurabilityDrain) is now multiplied by the result of the previous formula (which is shown in the config). Take this into account when editing this mod's durability modifier. + +- Fixed incompatibility with mods that alter the pickaxe's durability drain values. The value modified by such mods ( + m_useDurabilityDrain) is now multiplied by the result of the previous formula (which is shown in the config). Take + this into account when editing this mod's durability modifier. + ### 1.1.1 + - Added config options for durability and xp multipliers for Progressive mode. + ### 1.1.0 -- Durability taken is now scaled to the player's Pickaxes level when Progressive mode is enabled. This is meant to (somewhat) balance veinmining so it fits in with vanilla. -- The formula is (120 - Level) / 20, so if you have level 50: (120 - 50) / 20 = 3.5 durability taken **per rock section veinmined** + +- Durability taken is now scaled to the player's Pickaxes level when Progressive mode is enabled. This is meant to ( + somewhat) balance veinmining so it fits in with vanilla. +- The formula is (120 - Level) / 20, so if you have level 50: (120 - 50) / 20 = 3.5 durability taken **per rock section + veinmined** + ### 1.0.1 + - Removed log messages to avoid spam. + ### 1.0.0 + - Added Progressive mode. + #### 0.0.1.4 -- Fixed a bug that allowed monsters to veinmine and/or give XP to the player. + +- Fixed a bug that allowed monsters to veinmine and/or give XP to the player. + #### 0.0.1.3 -- Indestructible items no longer lose durability. (such as items from Epic Loot) -- Added config option to disable mining visual effects, which *might* help reduce fps lag. (disabled by default) + +- Indestructible items no longer lose durability. (such as items from Epic Loot) +- Added config option to disable mining visual effects, which *might* help reduce fps lag. (disabled by default) + #### 0.0.1.2 -- Added config option for veinmining to take pickaxe durability for each section mined (default = true). -- XP is now only awarded if the section mined wasn't already destroyed. -- Fixed a NullReferenceException thrown when there were more than 128 rock sections. + +- Added config option for veinmining to take pickaxe durability for each section mined (default = true). +- XP is now only awarded if the section mined wasn't already destroyed. +- Fixed a NullReferenceException thrown when there were more than 128 rock sections. + #### 0.0.1.1 + - Mining xp is now awarded for every rock section mined. + #### 0.0.1.0 + - Initial release \ No newline at end of file diff --git a/VeinMine/Thunderstore/README.md b/VeinMine/Thunderstore/README.md index 18aa0b7..59773c6 100644 --- a/VeinMine/Thunderstore/README.md +++ b/VeinMine/Thunderstore/README.md @@ -1,20 +1,103 @@ ![Valheim VeinMine](https://i.imgur.com/OAfRGXK.jpg) + Tired of mining for ages? With Veinmine you're able to mine the whole ore/rock vein at once! You can do this by holding down the assigned key (Left Alt by default) while mining! +`Version checks with itself. If installed on the server, it will kick clients who do not have it installed.` + +`This mod uses ServerSync, if installed on the server and all clients, it will sync all configs to client` + +`This mod uses a file watcher. If the configuration file is not changed with BepInEx Configuration manager, but changed in the file directly on the server, upon file save, it will sync the changes to all clients.` + ## **Version 1.0.0 - Progressive mode added!** ### **Please delete your previous config when updating as it might break something.** -You can now enable progressive mode in the config, making it so veinmining is scaled by your Pickaxes level. This is intended to be a less OP way of veinmining, where the tradeoff is taking higher durability damage (and less xp) than if you mined manually. - -The radius of the veinmined area is also scaled by your Pickaxes level. - -It works by checking for rocks in a radius set by the Progressive Level Multiplier value in the config. This value is multiplied by your Pickaxes level to obtain a radius. - -By default, it's set to 0.1 so assuming your Pickaxes level is 20, the radius will be 0.1 * 20 = 2. - -What does 2 mean, you ask? - -It's simple! A standard 2x2 floor piece has a length of 2, exactly like its name suggests. \ No newline at end of file +You can now enable progressive mode in the config, making it so veinmining is scaled by your Pickaxes level. This is +intended to be a less OP way of veinmining, where the tradeoff is taking higher durability damage (and less xp) than if +you mined manually. + +The radius of the veinmined area is also scaled by your Pickaxes level. + +It works by checking for rocks in a radius set by the Progressive Level Multiplier value in the config. This value is +multiplied by your Pickaxes level to obtain a radius. + +By default, it's set to 0.1 so assuming your Pickaxes level is 20, the radius will be 0.1 * 20 = 2. + +What does 2 mean, you ask? + +It's simple! A standard 2x2 floor piece has a length of 2, exactly like its name suggests. + +--- + +
+Installation Instructions + +***You must have BepInEx installed correctly! I can not stress this enough.*** + +### Manual Installation + +`Note: (Manual installation is likely how you have to do this on a server, make sure BepInEx is installed on the server correctly)` + +1. **Download the latest release of BepInEx.** +2. **Extract the contents of the zip file to your game's root folder.** +3. **Download the latest release of VeinMine from Thunderstore.io. (or Nexus Mods)** +4. **Extract the contents of the zip file to the `BepInEx/plugins` folder.** +5. **Launch the game.** + +### Installation through Vortex + +https://www.youtube.com/watch?v=Kt_6lwGd2Ns + +### Installation through r2modman or Thunderstore Mod Manager + +1. **Install [r2modman](https://valheim.thunderstore.io/package/ebkr/r2modman/) + or [Thunderstore Mod Manager](https://www.overwolf.com/app/Thunderstore-Thunderstore_Mod_Manager).** + + > For r2modman, you can also install it through the Thunderstore site. + ![](https://i.imgur.com/s4X4rEs.png "r2modman Download") + + > For Thunderstore Mod Manager, you can also install it through the Overwolf app store + ![](https://i.imgur.com/HQLZFp4.png "Thunderstore Mod Manager Download") +2. **Open the Mod Manager and search for "" under the Online + tab. `Note: You can also search for "Azumatt" to find all my mods.`** + + `The image below shows VikingShip as an example, but it was easier to reuse the image.` + + ![](https://i.imgur.com/5CR5XKu.png) + +3. **Click the Download button to install the mod.** +4. **Launch the game.** + +
+ +
+
+ +`Feel free to reach out to me on discord if you need manual download assistance.` + +# Current Author (Maintainer) Information + +### Azumatt + +`DISCORD:` Azumatt#2625 + +`STEAM:` https://steamcommunity.com/id/azumatt/ + +`GITHUB:` https://github.com/AzumattDev + +For Questions or Comments, find me in the Odin Plus Team Discord or in mine: + +[![https://i.imgur.com/XXP6HCU.png](https://i.imgur.com/XXP6HCU.png)](https://discord.gg/Pb6bVMnFb2) + + +
+ +# Original Author Information + +### WiseHorror + +`DISCORD:` WiseHorror (wisehorror) + +`GitHub:` https://github.com/WiseHorror \ No newline at end of file diff --git a/VeinMine/VeinMinePlugin.cs b/VeinMine/VeinMinePlugin.cs index b5ddf36..c410226 100644 --- a/VeinMine/VeinMinePlugin.cs +++ b/VeinMine/VeinMinePlugin.cs @@ -13,15 +13,13 @@ namespace Veinmine { [BepInPlugin(ModGUID, ModName, ModVersion)] - [BepInProcess("valheim.exe")] - [BepInProcess("valheim_server.exe")] public class VeinMinePlugin : BaseUnityPlugin { internal const string ModName = "Veinmine"; - internal const string ModVersion = "1.2.7"; + internal const string ModVersion = "1.2.8"; internal const string Author = "wisehorror"; - private const string ModGUID = "com." + Author + "." + ModName; - private static string ConfigFileName = ModGUID + ".cfg"; + private const string ModGUID = $"com.{Author}.{ModName}"; + private static string ConfigFileName = $"{ModGUID}.cfg"; private static string ConfigFileFullPath = Paths.ConfigPath + Path.DirectorySeparatorChar + ConfigFileName; internal static string ConnectionError = ""; private readonly Harmony _harmony = new(ModGUID); @@ -43,7 +41,9 @@ public enum Toggle void Awake() { - _serverConfigLocked = config("1 - General", "Lock Configuration", Toggle.On, + _serverConfigLocked = config("1 - General", + "Lock Configuration", + Toggle.On, "If on, the configuration is locked and can be changed by server admins only."); _ = ConfigSync.AddLockingConfigEntry(_serverConfigLocked); @@ -136,15 +136,15 @@ private void ReadConfigValues(object sender, FileSystemEventArgs e) #region ConfigOptions private static ConfigEntry _serverConfigLocked = null!; - public static ConfigEntry veinMineKey; - public static ConfigEntry veinMineDurability; - public static ConfigEntry removeEffects; - public static ConfigEntry progressiveMode; - public static ConfigEntry enableSpreadDamage; - public static ConfigEntry spreadDamageType; - public static ConfigEntry progressiveMult; - public static ConfigEntry durabilityMult; - public static ConfigEntry xpMult; + public static ConfigEntry veinMineKey = null!; + public static ConfigEntry veinMineDurability = null!; + public static ConfigEntry removeEffects = null!; + public static ConfigEntry progressiveMode = null!; + public static ConfigEntry enableSpreadDamage = null!; + public static ConfigEntry spreadDamageType = null!; + public static ConfigEntry progressiveMult = null!; + public static ConfigEntry durabilityMult = null!; + public static ConfigEntry xpMult = null!; private ConfigEntry config(string group, string name, T value, ConfigDescription description, bool synchronizedSetting = true) @@ -171,10 +171,10 @@ private ConfigEntry config(string group, string name, T value, string desc private class ConfigurationManagerAttributes { - [UsedImplicitly] public int? Order; - [UsedImplicitly] public bool? Browsable; - [UsedImplicitly] public string? Category; - [UsedImplicitly] public Action? CustomDrawer; + [UsedImplicitly] public int? Order = null!; + [UsedImplicitly] public bool? Browsable = null!; + [UsedImplicitly] public string Category = null!; + [UsedImplicitly] public Action CustomDrawer = null!; } class AcceptableShortcuts : AcceptableValueBase @@ -187,7 +187,7 @@ public AcceptableShortcuts() : base(typeof(KeyboardShortcut)) public override bool IsValid(object value) => true; public override string ToDescriptionString() => - "# Acceptable values: " + string.Join(", ", KeyboardShortcut.AllKeyCodes); + $"# Acceptable values: {string.Join(", ", UnityInput.Current.SupportedKeyCodes)}"; } #endregion diff --git a/VeinMine/VersionHandshake.cs b/VeinMine/VersionHandshake.cs index 9f217b1..21794f2 100644 --- a/VeinMine/VersionHandshake.cs +++ b/VeinMine/VersionHandshake.cs @@ -53,7 +53,7 @@ private static void Postfix(FejdStartup __instance) { __instance.m_connectionFailedError.resizeTextMaxSize = 25; __instance.m_connectionFailedError.resizeTextMinSize = 15; - __instance.m_connectionFailedError.text += "\n" + VeinMinePlugin.ConnectionError; + __instance.m_connectionFailedError.text += $"\n{VeinMinePlugin.ConnectionError}"; } } } From ce1b0a2a89f7fc891d998e0379fc32ee63c909bc Mon Sep 17 00:00:00 2001 From: AzumattDev Date: Mon, 10 Jul 2023 23:04:34 -0400 Subject: [PATCH 3/3] v1.2.8, release zips --- VeinMine/Nexus/Veinmine_v1.2.8.zip | Bin 0 -> 30919 bytes VeinMine/Thunderstore/Veinmine_v1.2.8.zip | Bin 0 -> 99568 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 VeinMine/Nexus/Veinmine_v1.2.8.zip create mode 100644 VeinMine/Thunderstore/Veinmine_v1.2.8.zip diff --git a/VeinMine/Nexus/Veinmine_v1.2.8.zip b/VeinMine/Nexus/Veinmine_v1.2.8.zip new file mode 100644 index 0000000000000000000000000000000000000000..0b3b9d07c017933e85f716e281f47a19c1e29e96 GIT binary patch literal 30919 zcmV)JK)b(CO9KQH000080E)QkR!2e&*iCo<000C501N;C09IvbZf$99WiDiFY?OTo zU{uxB@OjI;*=O=*CNr5#ARB=plY~H60)i4YMG=7@vMGclKp^DdOrl^&8bqyD+*e## z)ViS71;x4)#9FmjaVeE*5h~ic)aqAlYd?+uIp@ANGYRx-|LB~#=iGbGJ@?#m&pr3v z_l7eUUJD8UsQCHe2Y}rm{wBhI{_DYyukhzSc+&ZL@os6x>&0_dwxo*ICXE%zhBZZv z4Q*{kd(pDyqGU%~QA=CVl(XuK))-CARbH=akjZ1#RDcNZH$%ztp zsIOSA;J?sG`VZxEWT6hkPs_rq+MCz4YG6T+DKqnurT*n6^%t``Uz9nGo43Kz6gG1ofK~HnN&NhGJ?6iGavZC=%Fh$u za^xx$Tq+AIcXW~P<>O4cB2dWSGUKso8Rh`Dugjr0_SRKVCwJQL+dxxrxf1ySh}$vc zws)d}T}qA9-s!}I=WrqBxG+`uhr_-A^oEgR%y1*&{Sq9&Q_3CX$Tx@jnF~Y4gOB7* zT8(&R#X#k`I=v*msDSw;vJ&?Z1=GQ5mFI^{vW+FJbmyYbhM(FTEq5Yo7gpRlF|L!i z0R)AfI7+RpE^+;?bo@e>ydj9h4Iu<&Gqr{D5^aKVT-{s(VG@VRc7;w9fl}}8IQTnl;B2Q7sEqBI9 z*I{q%Ye;lBZwsor8j9o8aE*JCG!mq$0}zeWoY5U7WFR71A8jlQ+O&-Lx@r{SS5OOR z@giyyM_1ErqgKj_uG-@`fLda45@lU0V^I{ywHf(K@e-i z)*5kAs4TKsK9`nTBbAF1=v>xn8G*U5kT%(cS$S7!Vt#Bdi-=;|jiJ<-jfE_aRoejF zGR{o2IU|82HC2Id_VI)E@09KCKb(*E8z;ZuWsg_V&?XXcXB8&8vFmDCWn^$S+KAe# zVG%7gjO?k0a%kEnJPu#^_9Aa;&twM?K!PA2LLq=J5Gd5~D~%yZi_bC2c|Oum|iz&M5V(;ATD6RFqs&N{0= zH6oL!%4CxJbWoC)W(}^2gBwudQ!LXJLwvY&urQGuuxNI6#!wCewl$SlUWqPE?hU)s zE{%K{FG$zG;9XEk4au+y)_*AcT2%_YlGZ~*m!9(j6;?RflpRVj$9|%@uT?6cgr>z= z4@!kc69!+Y*eiWL8+Ue|PYcfpmuF0d75paxaZ)@LVZ%TZbMe+a??$i`_@ zkcD8uM&*hse#xBoqMRakPDdnQGftk+bgQ$ z@eSH_d;DzjU>=>8g;ypS^ZIsil19-(=Q-5Ed~#DYQkEqP`z?!z3Y*8VH7__$nuRBp zM($ih3SLa$T$09_XbCvu=TQ>Zfr?5YZhQ#|bK90JC&!msej(`AUAmiD#&H2o3{DKw z)yl;GQNe>1JXsa6p=BiA)i{-$ym2di;9{Ga5%RIMe z?W~YEzWYz}XRIB|S+3}Rv95jWHz#mCM=7Vj&)H9&OC^BSJuVTN zH)~S5wL*{6XvSnBM9J z*Pn56(&0?!=VkJfPHOuOXS(fBChtxc^=BVJa&w6u3OnO1WNvaN2Cb@QtRlBSMyHj- z2syr*47n9DaqD?zd>&szBab7XrrI!7CiiM#TG$P$u=Y60`Pq~tQBp*S813{G?;y$r zWGBXjqOn-D0`ttax?LpZIv zj%pEl7|a+Rcb-sC4heEgL5z{my--k~`&6Tg*O5wlvf2x46Sia%elbJL>lR->!mm^h z>yO1yR18S5;e?xQ&u$>AgwNI$C!~D2jQKu{a@}NiJu9TIOgd zk2%EGGP@xxd%)1aKBjlmr%pFSGm+0iuh%i>LG0<|4BvNlp=GF|ClmZ1>6d* z5?UGObk$IFmi!k|yGCY`7-FeC)P)ewq!7=F5Zixg=LiJx%`{+FQ6ZEz!Rju5%@6Tw$e|1| z6Y*;aiz0R%tqi@|^)wDQfY`hw%F)*zU+4P&Scm)yjtcF4bzv{HKFi8FZzeaf4som+ zCo8^%Bt_*UMA3VE=1QL0!tR^(Xxv7wHjYu6mVAr)NW)^>PBm}q%Qa#yjM{eN4$H^Q zH|<}YW!y=^d%H`?FpRqhkt62D;2_qPJMSi*TZ!8-QX?6Hv5lHYcKS2iqh{DhO@zz0 z$G21W2^c%5>W{OEayPac_hij|>)b)^yqBunM`DbVJAaDbg;C>v?hqq>P&l=}3J)Rfi5=lxa}N#Q~(T*lamV6e6CszV>|rM1;~ zn1)1rxlc429&W7Qs)5|~WF!aHQf#ulEHAl;(@|}ES$@*sbj-dz{)pAM-4TD35*C)yG;k+}%g3p<{7$NeE=S_T^z!l>KAz83m1~f82 z=b+3(NjcLgyPVFwI8*420&4AE>b20D&_H~gD0=~} zj|Z5*tHen{@3#2M=75u42WRv;j5{in`f`7zCQPNyk;AE9(VAMFHMk&n(OR#w&c+Zc zTuEP{=`u|2#BI4+F-UwH)f64SO1d;?1$&Kp_iJ*Xy-Gp~C+t{nKe<9zH}31zaIb{a z^3k#)+8rZ0KaDdh9dc(aekUY492zK)a+0OW>X#yjy;7J>rhvw#md9qCH8ys|c%Azz zc#IYELg^Z7>e;e~0QYTNUpvC3I)?TzPS}HfB0K6|Z{L4ePuO4G3GKG-KiX~G3GMbo z_1+5i45z^JH{=ygBAxfJ=2!KcN~3-N^&qne8E=ps9mpQ@)z%so?ix*6jR@t2S$T5m zO&YTCoP3Lt6DS$#n#h#5i87Uw?@)4D#-wPJM$m5KB=(xWB}XTx-b2e7O#Z;m=Svtd z>8XS4JLRt5QDmTWy-T&VPWqzltLD)h9RtaL4^e*SA&ylPv<0_)>`zH>O%zW3o+O~` z17}!qRq_GywC{06Dr3BlAibWWCbjKZ863QpRceDd9F60kCnB_F#V`orcDFMvj#4L# z4>DqEz1k5H;3)Cqle>awm;ncN>@o zkZWjSY1_$1eMFt_p&Z)mh@R7GT^YbtIgXKRLhB?Ro#gc55en(;B=7V;>)ltet=!sF({vieOL=rc^8&45e)Jm8*xsDUDKL(8GGJVV9^MhrN2Z!l8#b@`Cq~ z?m&9KR_u`_q{N6G!G6f``C?I4>FiJQfTMFZ>BC99^AgJfd2tsdqrxI9^*}W4MuHUs zq1grV_56xLFf+`r%o;1Ap=>gyJ(Tvc%-Dht6O}g|_6PEM!-K8EH+UaqnM1PpNq|^l zZXg!Vp=5!Og*q`nA5bv_0tIoMG6w1cJ1I=44C(_-nnCf2h#gD{eg!0Pn}GdBomYtEM}U?F|B%@~rRgD@oDKNhq4cHGB-GLO1XMnQ<3GAz`V8?1`J>c@=b>BnQoyXQqIq`hjL7(5Z%)L}5pUY5Acd~ExeUu&JY|4qp$UB?9KGnDAPcy!r za=P35X5UZQ1DF%#&<#bxqwuu$hJ$LYoo>m+zAS-11k0Da3Sx+A`V?jxm8&;@_Eg%$`m6#A@H=x~ttjJmsXHH|v%9OEJ0 zIU=Q%Df!8XOo{3C?PUeYIgAX@ac4O&c^)H$PV&TsuH-s_x{ouavO-UCv&i%!<5g^6 zv>A;TlY#v~p-Wv`^1hHMchIAI#$L^%ukk`Ds9xP$(FnSW4y^6Ei#K(0Cmkm7ZW#Te zuVMlucO#p=g(&z);_|yTIU<*~qI~{DwE2j}OC(DWfZBk>jjqhK8YQP*fsJ<13RB_H z#ZnW@iI9sCPFK(2un=q0-JL_%0s*5`67F&A-u{Dv>sX+Zwl>Bf!iJhyyiB6IS{l&G zT#MFB7t408Mxz|kLlq$md1!{~0qophmO8Nn23iB!oht^^PGfn0t{6)`1`wkYJAQBq z%&{3@$u&fxm@G3sq?eOWFLoTGw~(c-@$Nm4YsA^r>*2BcxtF=@N8=52j}__D=R7?k zx?8A6vU{3?XunS8>3Q5q@@#r8c5XBw-G`X#zN;P@^Nw9L_o zavk5@#4H$KHFeNzN~5OEGn=yg2Ze^h6x{V;Sq#aaA{Djr>#%wJA@bOV1*3_4baj#W z^mKv~mvdaa#(nm`Km0&BphwHiGvuIDGD^Ay_i!@Bx^(=LM=|LWW=z^cX2@Fu3=W?p zpHoi8J%FQ15#D-= zOB^WLl1dSdyy?uQ9%YGgj40f(Q6bU8FBsa#Dj%-6ZZH#OrkKE9W(9)<5gr4 zZ{Ugtz2Om=70)`S@xiFcVtJtUFgAqztoFJ)`g+_4GVZ^_a{tCKmZ?NDs~>Vx9cCkaL-rXQs*4r3obS(N7y(sF>6o6*5LC5vf_$-u%i|3rM}ck;^Htt@kYW8vR#cYqT4^QZ$sJl3)$}$ zvfn9Wzbh@f3MbJ~C+}&*-owse30fd-U&=7%3q|6MNOyB@`1HajEB5$8vbk{*Z57M^ z3qB$BzvCkV-E$6LKG~aG+WolVrPR|wbdr#u>#cP8f&Zp_8I>QLU0$Mbg2H~~<3p%m zJY8^vY@9-xUB1<;`r*Q_YBse8-kJrTErTIk7M~B_c3cJ&qfp%jC6|^O$ z2W;^(DXD=YbqC)vQTWicoY?Cc@20y}mJ)c&60+>Wd0%*}ySyv~YxkR8T3q&Z<74r4ysLL#KA#sVH~kae37 z2-iqq7atxD>uQIWLNVOyrUNu8%D`8Zl4!Z2S`Vza&))CZqJg&g)6p8cj?ZnTSojU5s0K8 zj`KtOTw+@;)~;qKzKo7gXq+5y7&kX1tjCI&BIFDzEN3P1pO}`{>m2(xs-su}tFkx= zu<15ky}CvCTI$poNZrkopcGxSZp%Cy)J1W#6_qhO}5I=jzpaFp^>8o zarZ(4F=CUh1--R<=_yZRDQP957!CM+U`YB#cNs^CVT$#~-oU0VG~!p{jhNMbEeGcZ zs;vr&(L|=zOufWtJvki}Q8>t0PIv(E*;#ln91JBYaFBJDFqo_7V3eK91Fi?ngt0T!=65!Kjuz7X>$32+0ozV~L@l=j&0+{$z_UcSIbK4F)}iGRO3o zo`*6Q=mnL()}ujhV(x)!(&{B^XeZR2AtsxxW#6udQA@3&=qB$fDpD4)ZpR=&{ zYW1`Po=;5;!ybq;4~&J%z#cL9U^IChmNqLs6tN=sh=}fyeTru9ts;1xlC_2~CvMK1S6e#+lrUFBf_7Om7G((ve8(9TYeUy` z(z#}yiDRE(2;Zp?8Hde*VM(M)P0)W`;c_{b%gd>DatdbvpOn+re{tm7br#hW#XBi& zT!8YVE+mhFQL$S44bOghsH-luj;N;tU$an)k#y7j>dW+mqe?fe331i&2y^-O&ETl9 zTo-X=E;Wlyx@fRK1?<&2tT?yK(?um5nRvJBOe&YnhY0Zz>HL|@hhUf-HF)4GG6!FLcozL^ZJRgyZyLOfDsp6Tr zBQ66ML)P?hCr04Zr0L@U!OGEZ{y2KIIenf~!5JZm8SzV;5mMh7VeRK)aLPhq`xnWn zACbamv$6D0at>tOqS8ASxCNp+Jl#Bv?lZlM)6?5-@VPNgTE674hsESgPtb$MO;B-w zX~`6XsyZQ4NuN7h4RFguX+^r zNebcrGgY>W>kuW9egvDncE@54l`34_8zt)|80YFhII#Hm#vEp2AkV6_%c+a8#%y^O zKR#hMHnFSX=Y1Xp9wR+!8$Et|m5PC-Ncue%{?r=Km-;ym~f%jxq-$j5j5M^j2qLgsJzdZJSB&FgI)DxCb^iH%cgTF znav<{}YQVY=>3X2BcT zE)u!q1xaG4k;tw0QP%UwQ?Y1XJkp%@ zNR8KOT*S7#xGKgL$-D^iIyJ#mNZ~YY6LLjBNoTNvjN2vikp!qpT}$r_oYUX$4OIAG zr@a3h#$5(fio4+j*3|951x)6vN?Z+Yrzw4+X)G#eLSz456I$*w6XdL!U`}nZ_?Dh{ zLT9%~CtWl(#p6(SaJ(2X=Rg?uOLZ8;Yp7!yxL&$4wPDbqWe>7IG*&Qfr0%3}M`+VJ zdepK^K&72k<%3zIEbg@F=*L~yN`S_NW0;%FL&+u7CWSKDam2YIc9Us8$?q)5o#(P) z7JgqPq6j(Rfx~t=ek-zhKfz;Yy$dHt=v5F}zZ~!Y?xlvM>!Y8-+IEUT>~dSHR)>L^*?nNrI+y%O%%R8z(GR;o`EAm z861pxota?F$+s39j5!Ys>=TSRv$$|X<}~hR^~oo`AMa|Umj9c8sfk7WH}a%|LubF> z5app3D#nWMJ~!-gC-K}~7Lhw?5Hpj8y^FBoM42dc!Xg}LWP(q#tFoyAKDM0?=26r+ z97bJ7al}>%qk1SOj;#N??J^gk!{y` zz~LedeZ+Nmg=Gd5Z7mbgR-^c85?{^Yi<&Tvgd&P@uYLc+55h=6kb83}x)ANhc{K~W z4m;%d&6Iqf&*|z4ApQRD-Lm*t@7}I54b^0p6{?g|jCWqYn2+%bP_E@dycObWWp?<) zXTPJ7ceOb8JWo9I;n4UPJ|RVL*4O}dR}n?yvvBiRaRMS3oCcpn~aEpy|Z zW`hHzDJGA5BQ8#N!>F zRWHq>Trqnr(g`b#YtH?&1eYs(K!uAO##g#yd)xA1c}&KUc8I z=5so~%7gQ(ho;a@jxwXp*aO=s>`m=99siFl$4`6M3oyS%ti2c0%=v)Wa0idrjmKIx>;NtFo)z17@(WDzo-n!iMuG zS>|Ot8e%`I!IvoGNM1`Wfj;|Ld%|A(AZGHG_7V`=LP@+*R5!ota#}vFC!1xe+)0F9 z8N0I*lI2mlawc75q|7{fAx;po^Z7~r?5C|`o42K(wia9Ttm4LFR3GIEcU>wR8i^Ol z$eG3Yak6ZRZ;Og>BiSo^9OKU57l_f1T$=4yMhKi8w>7?F@OxBRH-)`5d2%OdkM&sN z#`amQu0$|w82~petblx1{DuB8*~toPL+0BfoFv(KGv!WPqf|xiypmd3Ky|a?hs{>} za7sFU*lflR)jqB8yQ*RwI*cWJi9tAmG>%bB=W#^wD~>2cbn%K6U5LB2As`PGu?0oV z@+d3LP@zTv@}XusZu?Xf#6v3dO%JEg11||Z5w5MlD6@7fX4SqR!jFH6@Pq2fsa>>k zUB?zIAl=h-ZOkIj{ax3^V(^HP*K>J-6#?;m z^{S$44=AvzR~ARhzoiE(rG_s zos!uiNn|`lj`K-s_7)Hk6?HZ-3iF9zJV9Bva+l;z`tG_)80%(UegE(-y}@bL0<#Vu z^S>ZQix%ZuG7898^JS8F^p5TuSrhcsh|JegT{naIwuYJ~Zl(kxcTzu$UD*`slDG!2 zC^sBOAtkYXMDc}j^b`pu#79{V&KbK!jqB1)8&8Y#oSV{IBMZc_J;mn(QU5{}d6p_( zhqSTq$xlW=jLQv^c{)G-<#*Vg;P4^VqCoOoQe@VI;@#$^QNZ%L2KZRWV# zmL8X=Da_%?RuwQS@SyA!(}twml4ZBoq`PZIJioLep6qyMs3JaAypyzM29J7$#~gik z<_ycq-(u!(>64GX>#Baf>#A(umE|*T2lMQb=5q+A%ov`}w;%88QDwr{-_CRPMVhl) zSqK5?n!4*JSp>SN?jlFk_coo6O^}f&#-2>f&TU+4n>jnTiP@QhfrXfz9>>`Gc^ri$ z@8Hq|^G!?U$1S_=0S}L_i-riO*bMq z@-v#2L2pfGie6%QE*Y|9pd0&cjMcKQl^;qUiS|$qABYN8z1lv?dzPZC(KLC+&@t$C zZiHa>y1txtQt9WI6Xh7s(|J&03W;%ta3nNPk@ScOChPk$c{syleVPe~vc?PSNMx_G z^1-lqHvbkBenpRbvyI&WedBJ%r(uu=*0VqN0|$2We#8SJ36n5l1M^X{yD$t8@tM-~ zpqYO$hHso7#`@StwbIVz==S~{^G=`2KV+7tXCLX!>spGVvbKZ|M$_BH_%9^!TtPTd z(Yc4h#V0H+JkDD93u$35Yk_j&wR{v#v5E$@Kc)%yRMdPu)CIJ66>m5c78(1b%)M3S z)ral$s!gK%$-b?8L9M*RtxyiVc#|-GNk_;D-C?{;=RKe~jbBOP#+Tj7pZYupliBa@ zh5^47ci$98T6f&3SFmo+eaJlZDy4o(W_jS$v`)UpUc~8sEdH95c{w4}tG#PITw`8~ zVM7PefOhgsr}w|Q9)&&!i1!N%qXOO3o^1SD97kdZ^?%j-nV1>$#nCP^>cfHJs&(nJ zxlq@`VoE*2CQS9j+gu7H<{!t%BGAKU@weF>n-qQ^^0(O(ddW8ayKD-*lER|147his zJ2{HYscrgUfrr7`)nSa`1!11((Y%S1g>9zxbL2+lIT?Rl;S0Oz5e- znM{a^O7!Gjd%k#bj~UYQdiUg8&+8?o{d+$5TYMh=&wO|zOZ}XVlAlEVOuwi38^Kq} zI!Qt15EIPJ*7B3JF_Sr|Q7|-9=5Kh8QVzWamxzzI9xkH#^sd+hx+nM_b4RzECK)r+dbPh<^)ofi_ho(# z@i%DkI3V>sD4h{AkFG*d-qVP4&2rou{`>b!X^}6Nl~DX+@jwc#-ScsIK3SYcXTNYO zzC2;C5Yc#3qDLlbUj=%CJpPu%kCJG*ja{{Pl7XHbLBEH^q0ng!P%b` zclZEkCTR3jd!oRptGA)fb(?G)p{GZR`y4jYLo1RxPM#@3ci_PL% z1C;;LqB%yT0W@cpcvOl|=9q=PlX;LTqZDh>>zZ}QW7)WLA{)2PPie>dC;ZTl|NKSD zyf;E;0`z+xbs1X?TdU}lEcLn*1p$dwOD`8anjT59uYQ1A1j1>X1}WD?~KpEw}JAu6X|ggI(W8oEa~3;1UXwC<<+dgw37Mt;v8 znsVY3$j`n!oh>IWuZgjAJD4M+goSSrIBfGgdxOF+MiW zXUWI%nQVy?V!y<3wqIhA`=6m+tnh5B2rH(M&>G0UjA6cj-LL$~3YHD%)=v%KwW)v@`C1M{ra}XilTYV$yAHcHeq;GHT_pnG`XX-y(8H?p{=>2 zJ=xG&Q8cS#S!+w<8O`hG8mpVzCbV_5wrce1&nfeoTiVvNv^8fl8BtaH-!kD48z$AC zK1nivO_P3`^Ma8mMoo3iaC&G9Y(T#OO5uDdZm{p5m$Zjty1qTx(zYT+CAO{x=)w6} zdUib&T`qpRwDi=or%%D}YQ(=p?^-&k)mR37|41%7WFzLEGnXK0c{xk;u*NfXo)df2iI_<46Y*Bk=3`AsihlG&XM)=!vPJ=P#5 zCFubKX_}0o13rh}xm_qb1 zN~;`zcI9Hl1=|&>^*F=V5S|Ku;`H|nBPzfmC{n4`M734UhYbjQaH&chHmk(pPL=o{ zQAv`I5xU?z`n4|b*hn*zY;$a3xY@SDrokgND)WkMw5-8Fgf2Knzqtk9V>%yPTC03J z6w$9?L0n71Kp3Wt({6{Q8nxbuxf<-y9@XyVo@(%##vCwr2{`Q}`H$>W@@jjld@4Le zKXD4Z2;YN3`khla#X-5JJBZKa4wCa>rtEW2Upky8;TZkVNpjxe+UnBaaaR&^UvN?G zH?E770QlV}K?w|Uk9L>9M1}^!06f6-H{HkF8jSG}z1>6f>pWEJ6@(g;ct>OI$=)RD zWQKQ+EdY()ldu<^Ued{4FSWJbd(5jrzK_b3`l!|dPOtZ!gzyrCgW&@o$zR}~Cb?iX z{ctKQWY|JKR|su>>eo$7`4z)27*^)crNg?MTd>Sfy;|4cOnni;jhObq>HxL-Wq>64 zM<5W?pe#smNsuUOgByYa;UA&VatYj=%VU>I^bd3YnyW!^n9|jeX;K(EBBZ@*BBZ@v zMA%9h{*z%(-d0x?T$x95-ke92d-F(FkLT^l!!mhPONkQQ&9DaHv(n8`D*srNO74#C z$@9S*QPKcL3h=ZfEaAQUX_61}V`Q0QVw77SBMzOhN3{U-#z>Rr7d)zIa907fa**LM zrhHi-571!r0HSmZpjvwdjF!Xj(7+vNx33MP9^F+K2>ReqA#pyfh&22{G0o@$#gzMP z@ieIlYD&r4uNp*cwZ>^QZ-}?bKa#e^>DlU%#Gbq`oLxaY&#$0bn<{Rt2*cByb_R&& z+)8>QV^8HclqxZd=KC28TZRRKPssFRA{uNSMsn_8xQF2f4FAbcuO?W*@YL!>7@=Oo z@N%ZyTm1s2->v>1x`Km!89#%|*?v$ZTN+!A-i9!lvEMT$^NDE=43s5^qF1v)59X~@ z1?FPx37fz?pcLo8DRyAY$9c=`l!s9x@f*vtAf#wr+lm$5S1ha&bBV}oHB^k55mU{D~69IIJN-H0{8P#D2^uXA2G zo$q43SZGk770XTFl6QD1ubSdR{QJsD*l=7uHetz22U6cpgH>=TV$U!(9ae*aSaG4i z+8B!#6LuD^hE(q?#%AL_mUOn<#4coPBV+Zjj>|dFm{?cV_?-jSa0{1~61D)Y zXYBWkoeMW{y~TqFTMl<{>m7`(f;$;|)Wq)MlAj~?2Wb`Doz=n`*vdSsh7i^Xk1{rm zv2J*bvGW=0fhQQ-#@I%TzzB=Q3A+S#Gxpd}!mfZlLQckh0xvSAloPfYUSjMS#%>3G zR}^Xzr1|^cEtdMXm6Z1we3m8WLU`b|&Q}?{1{r zico`Rz0V>1m-i)vs_zR`1FvttHX6RlneEK((O~paucB`o7C7j{bu93WJQ%JIe1`M* z!$8C(=!0Q=@C$V?uJaWx2~G_jbgD2X_zil^VWF3_Fw};q)>$EHWiG>|3=M{tVXg$% zV@V0_<@7Fw2SYcwhQnu}+g-&V<=%tPll!nshl1R1WF5+KsZ4e5Q`q8!+=y#-&+Oc@ zV0KRf!xX||xHR_#to1P=c1iLkK$y zk087fp$1jOLqfPoDy|3(hW6sK5w3`>M#`7PlW_G@OHRuj43UzV2n$QTu+zBTk{gCq zrFUTN$Ns5yTyJeZ!}N>VE`+!Ff0LWtF0NFO1!44srRO31u5=N4Q174>n2rrvi?Djo zkdOou2X%yT9T-GfI-lX+gB7Ur?>xjIr;I33h9w9|hJ%qX#LM18IHK$$gyYM;MmVjk z7vZcj2d+g6Ik%}Si0L-YT~{^`(-)Ujgu<}7ERN}$8E!2bh3j)mu=SDtr zTIo@FKf&BjJx{qr?=1Sq{u}c$J*6?49w+;$j}%2EI4`~nS2J(Sr&{F~=5>U#%Uj%t zF3QjtQQeaAAo}#maw<8Y+=naB*_>`FCk`9R&&D#F%BjVxIeinSvvnSd(a84YO#eQ? z>&*GR@=G!O33HPY*J0Y1xH&o;CMN!haAxA$sKz!d!O{f5R)(F4EE{IZ0|}bZuOw!p zbXRwDeSvKHYFm6H)Vt7ak$RxK#7EJq#YFPK$C-s!TuGK}{m zn4iWXh^mIS{YO5jIqL4*hVEiJhkW8rR?o6FWzBNOrXAOnVOa zCu7$^iEX*$fV@(Hwc9Sn+^wZn-gOvvJvT^jsjy3m4)2z6UfwMGCM6e+m1TJ5!sm=_ zf^+OY#=Nh~EH3kLUXC0punK#RIsjT}1B-tCn9GG7cqbt+o13s>CRXktY*vN98a@B8 z6~jv=_Nix_RtkeEEo_b!hl!OLSt?F?fY1(gjy3j-}jkT z1>;R@r_ZeogT+-s6HfnF`!KlH#D*bO4KGz$y-nJO!>nNz_BVSCJUPtjyW24uj-;`T zjxjK@IwMOhjIYjcsfBB+MGJ0yopT%<87{Ex`ir*luy{nKf8$~0hzytU(4NL3h+Uh; z3J}}cC+}xzY=dJwh`*P;vjZPE$HN}ZyTs&qfU%byBJbUFy?-J0xxgH^DmyXu`Od_4 z29nMR;HhB@ooD(3=rQx|#k@0NvzhlyIOd)S zFPYd|h@A!BnI*pnFLup>k)s8sMHaheL+j|wNY8AkW!QG*;-WF0b4(51LGDS>8y`d{}E@hoX0R7mC9Q#1`gX?K>A7 zlZ8e0TWZDMt? z!klIpKh478IV<3jX`;PbVzY8u;K^yG&Bs>dtcGJ|-V?E(HZ2baQXJY#b?$R%WJ*Nxon*o)9^|13yAz5(X zm_R4&F|m;YPYZN`W2PusVp|sIh8z>48U7=9m$4h*&_F5J17Dih4+B>s)_#^Xej6MY z!zGLzm7Xee;YeL>Vz0`(5p&FD%&8SMx;8l&V(UsMZ?}ncm$HWDk zK}A;H%}{IR?I$T*B4-Ywyzdrf z?By0v7iH|_R`4v!*vqXDT9lDx3yfT3jr7CeEwC<)ofWwqzRoInC*&>8^!82|v^YDj zda>xkgJl!*?u1$sd#P+%-d!->#6B#Wop(1(F)?NEIeA-Qt%;QmJ~wY0w42!E!4vbg z!v+&;9Nd(*1A0ts)8N^8_rPWo+c9``-o0?EiT!%;n9zN&)x?etK0oiLu+zkP5xXCD zn^(2pgmhU2w^MxcV)sSm*ABNiVG9%snqN(vQOY^D-m-D9l|V#_#z!VT+e!#`aNY zT9O&tN1@%!gP{|nKZD&SHg)JF`eU$XNk+2AVgC{#%ddux2|W()XXQNse>U^J96CMv z1bnw7Bj=OgS(=e^7qlB%`ztnK^!?q6%P!bFM?A^J4|r)FG+OOq+jkK`ZXR(f5qv4c&N;G9)3d7 zo0DS$pZ7oKe&@-+pg#j|^HZ&%EbYgf{?tz#hNk7W;E790aCe|T|Ks72AeH|tNSyy3 zB#J9^d~QyT@*nv8JNOTV=SB$TlUO|_D{3rNir~AUcV^1Zlo0CJesMi$*IXNnvRA5OW!`TI*WQHPoD$;^JVj%xg z7hR9T?1BBqOGq0nr1a?w&n(VZ+HE{`WNBhd71q^>DDe^*;WmUaJjChOIQ_d4ngt(~ z&>h03CG@W(epAAIq0b$bbJ&4Oa| zMcU$D4Ea(qjDli#hVMkm5idu)9PyDbLK+E`@<wZSP!QtzlH*!9s3pVpz;B(BhM%wVl4WO@)=SND__Dk_#2jd05tV$Y=5ZwE#}s! zy|5QfR~2bEOEQQ#9EJPT8fgJMrd|paOc}}WRd`;VD!mD>VELo)wtBks75qh=h3T)= zdD6FFvn|AQj%^o6Qq;Cox&lVpl9E$eX1f4$SJ^rxUBdNR8ZLcdqZ1Hnu}%tTA$hoT zpE^LEf|TL%0%@8yMxKEhSSHV94Gfp4t>My{TDv@5ny+=r4bm#@1DGzY)sj++bg9;h z8n{90k;lW`+7!gtV8@UMv*>}QX*6?tNdNG~haA}L(h43ExYGFg(%Fu`D0`)4j=w1jpv9r6TcE??REJAKZ`}@`O8U`} zat)RrE^Tu})kD(Lj)7_`TS7bQ;i&YQqgGuHA2=qc3*a-yRJGld_8*Sj@GYoL+I>uO zu2-*wJI5@;~)S_CxTt z&u4#C{>T@?^p{9~Rqn;~2Gg!={xbWU%;%`w=$~r8gz2Bi7y9Sf4>A3a+~Z${+%EIC z+CP!6_IFC($~*lS>%uPopONx{{|mdM&@R>~z30C`aw<-TBB5oIhi`po{)4b$*2&V7c>K+39F? zZbnN^I*XNMj%%IYN-MC;bh%x>**RRfM!&;3RAFtvWbY14->%>991f(n%{-^Za_)_M z=X3|p+&h3y?`~u`9dip@3zU_?39bg^s^D}?AI_QJs#C7^)8318@+6mh4$}l*&E1VY zh)xkVDr)#k*Lo!y{=4fr7#`k<<*)W9oiBkHo#IHP`#R;6NR4|xh}ec5hR*MP7D)&b!IS z6q55hI2d^k+ajLNC}c~jB*uD|Ka8;|(d!g3$_MkV_iRy)EO=V{EnCDGpUi4Fh z4Op@ObFV-SG-`+B)zNQ}Ln`_`)*_D-k~SjceID_UbY)cb4l?DuFIwOw+be)WiUrX= z5l-{!>MPM%-b2ck$oHNKiG0^ciG0_1i9FSK=~gA_eL$x3+>z|@rf``VTxKqpnagEn zaBc<5Fohxc?d!e8>Tjc4yo*gq{uTYRw~5oOCI#~IeeIl%O5Xg1zOQgaSniBU>*NMs zvHG5WiJ2Yvg|vmNx^ zD3NEoktMuCBAlaA7U03>FV!Bfy&-sqY^V|Gg{yH@t3+K#M zNrwxh_SmSL1=5dWlMz0Q@Bw*W?1r4EbU22qgG_S1FUFlm_H)Vd01-IGTKb&f0_l_3 z*EvMr;P{%`{f_1NTq4h`%9K`RlK&V}JWP3YU1M-&P1D|RH|EB+oosC9j%}M8+qq-g zw!N`!+qSJQ&%gK2H>a+dshT=d-F0fJyL$Ru&Hrg>6|$N03bU>ez&U)m$gO36zY13ZY~-;d!BCb zA{_q}VJ5HdC=DLJmm9$P+FITxutoml6vRjHc@9LEz|*~(?;-MZV|DDZkt!IO=XMrNsQ6U z#0UOFG*C(x^QmY!n8Ko6nhY&zkPP)VD8E7e4bpEAe}j-T zXcD`47~9PzDG|AXVq^PRn5W}@bY19nclL@$(I~AePS7-V?_f>xD}@VUhrESZtqe1R zE19)E+oM*OXjJudBj6Iwr?8XbIANH1G*)1L>MJh`%T09L*llZjqehMFt4WP4y7@n3 zFD2yP;s<*Y<0tZA`!o8s(&?ZjS~U*_i+t-6y(Aoc8#XtZW)(N`I1H~UiY~r3xbXj~epXUhN|c~$rK!tE;8RayGC^Lu^CExp62^RM zYcz_xKFYIBBm#qP#?^8q%Y;MSrTf?IQzrHOR1N!Ot+uI}+Gffp>TGc(BZ}{6X$4Jb zmy;--wxi!u$Kb66Ts4e(pWOI1Sawv^AT{!o?#pyl^r2}sy3zK)gUUAK!j!imjSs_P zD8bI+MWjl2z5 zZ!z?wY3dU5`tUV0aEWof*ABbyC*tSkBSvwy{=ej%^6`n_*k{!;gj@cm7lzA6A{u|> zbTE}(lr%7n+CZ>;Hvh92qP|Q9upPr+*4r_^+zYbXtYV0Hj-a>8o&wQ)J79gj{fAJC zjwn*F>yGz8HgLS#w;X6Z1*ok3uGSoAvNu}+SKyah;KOG!65Z{Qr1JDI!$5+}7y7S1 zj0cjyKhODKW!uhQMuFuYS9+K5U*jOGh`vITBZ$JOx zjk*0(u&0z1Vk(!%REV5NnRr@Ay`T^(xyazfR7~!0X=Gm4Dq-2rGTLYN^XSs>Iaipo zARAwJ(!OKfm_9MJ7|>EE4#iGJ+`c{&a%~$W4cO{8b{-}ffp^Q@5Ae#^B#*~?WIPZm z@}y9#<}(V*Lllu0=7fyqlu9fJw5FV|Ryg2kNFM>Djwg%&%!Nk@O^FrR{$7$5*&2-U z7M&Y@cR0$E-FRLl^HQ{a2#kMJK@(poN`+PD-Aj2&N`&bR+!^Pj76|xC0Uu?Cqeew6 z_9LQ+EcKytnl0n-GFSYsgVVf;r1BD~V(d>Pqr}6G1EQXinBTcwxV7aoqAl1+2GLgi z*721(?o{oOlw2uwV3bF~kAFuHTB-{E(z6_n*fI4%Mrv5?-;2uF8vYBQe8a%geF zxl?1HVI!1Kwjh^IT6NPpXXGm^ec+^1G$qe+(z0h#O!^i?=80jw-|nZ-h`>QOu2SbR z0L81?@VEOMaRwxLvZI0xQgL_&%PtBBPwbo&M@PaOPsZiWz335DDQ`{Wjt+33N_jR; z4!19#E>6oHg~tBME^C+m&=I$-@qVIrXqx&Qhwwcj$ zL_KG*a8tC%ytl@-I31i_p5VcwQ9=LG8k%9ZgozJZmqdGUP^PsA|s z3`-zeY+@SwPeL|TEf4IAtB*RUs72F*ErZ*l_p-v|AEnZt`Fd58jlN(n$^9ajia zm4JWTNacuP2 zQTOq{Ml*1u?O#V;ivTbN_X7;rtW-$>s7UE8E@nrsMD}+_qyYTQQTF z?`SsTf+PIl?LO3R3G@q=2HqQ)n`0j7Rme>4a-hZb=#%v+?^=6DK9<&P^LYCB-*L;# zTE6{fw5If(S!brhg||**hfHM8-^lm_@$$J4)U{dRQI*eieiAM7v>i zkp4KDyP^?OPkGgYl-}!?Z1`LrGA?TN`2;AtkC56Z{WCEdQyte?B-*g5RU!YQZhUJ4BNk1dRlRn(hERFutBRLp|ms9Iz$B z5k@=W@5vv-5siOv4wgIc#3`Iy)cTmQM%IGIxcZ$*)Z>QO`zQWBAwTFMFTqA1<#~4_|CY`59gNX05tYb1+UE zi16*$?8vS>&&ksqE$O|gK>A4-;rto${43FDk>Gv$QQJw|u`Y%#@~;<9O)DuY)${n} zEkjAaRUsER`&V@5Ujg@5SHISs{M(YYq0HW6C^gckynh9K$rw-+e~GZYrhEFgGGjbi zySzY|jiAhHXD4ypxr{-LZX^%<)I*=Xf?k=K)n+f(Halntu*)?2o-7w?u5nn3?WXJvz+j%m3kLZ!5 z^&Z@5=YrzfyJ7b8Imq%(cckD`=UjisGxuIf+mf2NYMZ#SK767dzv?)AN`Kz?;jr(; zAXW*KveLY{gVeGt2Uw0xJOJW;I^ENn&a>G3267>$Vh4)-vEgJQrI>y|H z^&;;B&39G{AopGzgX742R;Q1iZM{|`_KAt#l^yrVgnh;S;f}ueCaz<1C8*;Q50>Sl z_W}8jqg^z0pY?j~$6FrdOXP9k=={5BVf~$@(d#?am)nWz3tSEHV}(7tN$}C%uJ?BE zMeM2?vIR2|P0b_$A*zLT6ZNxKQgoJvDk~dxFw^G7hU)CqCQvD5X|}itQ!HuR$_a*2 zw~PCx(zBe`2H-wczO`4jeZ5MRY$Hq2c;3UA;>CpJzq-^*MOXK=)u>0z32H2?rS#u* z4pUiKNTvB5g{%;BrsL*1Yt#Q)Ekvcta0kOV$@`v9i)O}v(YR|`945kZ$D^^V6Ju1^ zW!R$1Y_#~SCXN$zr-Sl_7P48bCh87~iVlj}9v*eZ>S7+u87s3XEDD3S&Zsq|Emf7d zzl~)Diujcc+hPMp2Gbg8DBcZbhLR|Yj^fjaVsm~#x&BIJ!wZ97J8h*F7Wj+JjIbe6Jq#H4#0qM8OD(eh~_OldV2)|cT6t_%B^_f}R{X`q#ARWz{l zEi{L)6cDH?yq%<|qtJY$&2_SPO7tqUnK~+8-lKpj1wCn`l=6@BhmSOn%h9CqTyZ0Z zP0r;Z+iWf$8Z67CwAPU$he{4!9(Nk-bN_PO$R2+b$(l=4vMS6|B953Cj6D=720_*j zt}X%}*hTYpl+r4dRT=^-8`yNG*VD+R^sIE4Q-$GJr#Gh;hZ`&I8wzSo(C*mMQ;Z98 zkdzl@NoGsV4rr;1ni|QM^64hbl}Jl)mmTKGUA%OJEX9~J7H4@2b2~sF)GZrwhyaVr z+xsf#nq?a#0G*W>D>Ex}b(88v8gmP^025Hf=kQmt{zlr!a_mLIvnW zQ;b-uFtZiF$H7E~m3b%t6X$B0f}QBytFfq1U8#3rtd;Hgu##YGtQamFF6N}tm{rM$ zaULBhw!HU@7ZqnmWvLr3z}B)F6J*!eJq2jb7DL&nJw5A5NRzR$&Kr%aX1J43@5{Ta z;2>oACYdK~$y#$?VRUz!k7>{YtOa zFL0A80{ew7eI1&$Q+kod0td6#L$Yh{)$0n}C0OZxx2r^;t2o>;30(X!Dj;OE0v&>= zFm{7UwdqSU8Joj`lP-o*Y%r-+rdg=QqEoh9YO2bf%NV^Cb%=ZfsyKjFsn6PAR63Lf zu}az1W?SkPX%aL`WCAqVC%a)%C4D2SI(PgJ8`#Z06_e@7DF@K$`|7#uP~)tV?s^Fa z2M`92X+Je zP7DM0wgoQfVNsYnbnC#A@r|O1^lU30@}h455^V2XkDaV+Q8Zjv&aoeQ@m95(yOS2h zr5CuGZTYdnq4Sn3x%+acq13Oh(Qdx!It^o`}iSKK6VJg`}udfq1Yx}CR>`zUIoktW56&N zNS&28j#`eghFoNn(Knz2XyW`xtD(|!s(K)5ndg_5hufCjI8T=%N>)t3RAMBbMeuiV zYcLqpzhY z#JM=&$p^K5TjIonw=$J#8-K9QHtD)!ieka^IsLbfVF(z7283F=d6CZb${T$Zu+AUq z9M~E=3sxOE>xy>=Si>NR;42tx=bUz!F?l)EmKbar6PKv?oS*^jtRkj`lUQ^PV1tv8mAiGoZ!old! z_zy~*IcJr$vnEZ`jGbP~Y8xct+D^?VRR?hF89JMV^50Li36^cOh-jR<_JaAP7ql0N zLy8aBzN1HO#1dulll`x|T(Dp%E_ZEmeAzhbPNp3#p#weotNj}av9QZU;=4@8Xf}0T zk8N&jnm?N!GNE6h)%o=2l#FM`|aYju#x(V$!JpZrp&A!K*o)YcvD+OnE0ec-LGBi7O| z>`Q!oBJ{fd^MvKYX;jWWM@(C2V`)p#Rtf0SZx@DZnsRJlWVf=3<*)_VJVx_e-mlj% zHELWK`BJ*nyD;M)lK9x*!y}K;V0?|;KXK9PwEkFrQw=U_ba_39bQ9T;6G5gOK{8KX zv1No!!Q>-d>a`g48iC3Mho3FrB4th6N+Az>|DpUhY%z_H5%0#^w%i3!H z9JPSQqj|cO|Gp3pc#NNhNwuDJ=RgJplhh{%f%23K6#7nx_g(FiMwB0*vLXud2gi#v z3k;sQRyqYyfC6=VOTeC_U#5;Uzyy0AL8cN<;yZ-hRr~v zVm*VJVQX(vURG^4w9QxAQ5p)*g~}$apc9_XGW&wk1PRBq9M-iIl0ly>3@)nDc!_K* zo9-2eK$Qb==`IqvO)uy&-9(z(O&*;N7SHd4!UvP8x>xj$9?6bQJsKgoHENq0i~Axh zrI+f3$dPiWUDZM_%w$4vg6??N>k-Hy9vrYWjR*UeL8wUNe&%D)3ciD`D0g5+1Tg>P z`OCw7BKfz^{G9d=&k(}c1Sh%+)dn2Jijnpv~hDia1VQqrHx$^ zh%#Y9dD*kyQS4|KyG(Yv)t9G~e)aqd{s_Ft-J*I864tfhX9-VgIfx4=6~^HGuFjhl z!i0Biq(w=w0zV%>yEw;Ec6RQ)kBlh;J#55n0%De7iyJ9~Q_}<^W=p{A%fy%PYz!R4 z9nq=5t4M$l3q-h276nRSa0tfQ?Ymh7$`aHVC;n`02PSSSZu5a+aMN@JtEiOyz9vIZ z@yNPbx`76N4HH8%)P3*l!trLDabpfo`&fr@nmcyl{$85dVEnEVY=DQyqo#7t0vz5^ zR;wFAFD+}X(r-)g%aCdoLom7Po2aL0>u9HRbg(tMJ`MIx{B|;Qdpyj1X)C{5a*9pU zY_D(N?y5shN)U8pQ3dY={n-ED?7c%)9=}>#Z++ZiyNZbMM$jy_?L>J=|K}F8gEYg}Kx_E5cr&m*ael;~M7m~c4X3fs_8KSr;cQYgwuaN? z$?1JtjK08RQFOR;itB0SN|CJJ(W+W>Ak(-2+pAgqOni&;bl!H(G22@imPiOOUq8~< zE}IU-(i7hck)MV1vCG}ty0Z4*)m?X`hOr^=ZqGqbu2WW?eFg0qbGYLdozJaIr3&e^ z`pmlub4VI-Qk)_T75Fp{VbEZ;-_F@FoRtuPOtD%+mdII$8IlV;t571*(LU?QQI)WP z1lu1C-T=sOIBBcjSn_7Dea+Vp-x_>=0sqzeBD{+?wI7All`n{Jt;o*FoWg;%PO ze)jgAZe&X$J7VAA8r4In0@bOp&mFAC9!eF88Phhq8G|Enf?w!y1AF~knd?=(SOWBP zS*qm^9eNB&vS2z_DlQ?q{J)grQ?#6<5FjjaY#H*-tNYWWGa=@Z!~g;@`?D{sfj=S` z%{F2e?2ma=D=#Wl1{9HQ6^Wn;i=pNcQ{GmU__o2J7@YKsVZ)YMM}@B&K~Uzm@dnH{ z@r;PgEQl_bC~2ksh12?AJicTgE$!L`AZO;@*m((dW0i))lXD=0&64&eoY@Kk=NDIi z{UKLLtqW!RT<5>UEY2&gx;=ZpfHvNZqj92tO@FLld!7ZxHX~#!mFhS&g{{%igc>Y! zsft`L6a2x;0zpB&P(Tt&Y`|6*^i?~YfHS2Q`GAf#W4di0Xf#g3RIVz}7BoUz_ z)*?e}op`Yt`Aw73P92GK0@?=;mAgNdxhqs`Y4#Tb$ys4@3*Bh^2{xB-UPhBQa1vxl zoHf-L0nst#ACKN9KsTEI^Kc#FUj{4d+)$I;!;4gj_rFTeFI!Ka=IE=(1M1(B)aE7M zA&TpiOz9+4g?a=i`>;T#u$YuQZAL?%@-)s^O>e{ZM|o6=^+@}pGgD=MYSQ;Fb&o5HH5N>e2p znXqX&@xk$$wfa30voJ{Q%N>~P%j4nJ0`k^;Yq0+`fVy7r_djo9vLa(sGHg>mIgk^( z=$be(%lntd&#cwElt&U+q8Nnp?uibjYmo(1?cZTa=R15%lz2&A9Sb}3G$k%BI+FAu zM)wz*HR;$q1A=esWmFsasUVKP>!3XLvGq>Gb~@?HmsrCS6Dv*nibznQ^64@+%wmKJ z?)BX&HT+E2QP1UU^cdX-fP`|$$xP55ry351eT04GH;5|)KH*Mx-oM$yZvU+z2W=24 z=-P5hhZ!``s#Ub5pd%}?lEZvvNHqIC&Nh+6QL(w~1EgJM^iTiX> zPW=TbnhhpNlFesLq!4wT`Yc~H$#8qQ^_@!XAu|vF<}o;^Z=)^!zag1WHPhOVA^TLV zXc;${0?rhwE2M=M+2Bgfo8;>X?W=FkGRY#Q$7w{cbhA%cv|^#zlzGz&7>E|pMv#`O zE@H*lWQwuSt!l-Y{h+5GAXxJSK(w{{yAN2O&4xpp{}=~~5Am%Y@fBc~ItAw?{??<8 z=bL7fP0j9^o+&rtJfRV zHsEMujlF19wErP$Wd{4AzS-e`9%|_bscJe&7mqz-s=wlB=S;`WMQ@5enTp3g$3v$D zJxZ6_$v)>re~XhTfbnLSXZmLT=_>hq0pLS2N$a{@yeP|)@BNDTaFivFP;@`^phREc zZo%V+m!>B>AzaJ7#H9F^AXAPj*|zki;=gUPFU4B-b0f_C@_ltBJNs18yY?&U0dp6W zbjzf5kHB2(_N{>&k0C&C>#&e(uIghx%Sih^ZpGL0Tw=M%^*#g^ zjBCVY76_#E-n37d@#rbSOa)tXgw+FOCfkLLt4?~bFfm>=5TWXkIOZwN19vev(4+0i#B4PB=cPBkK{V=$U_IKKRk zKGBYUBOsxVh^x=Rp>`J}0Imz-@j}CbF;|#>xl$HDqfkkm#JDm2k$H7@=;|Vs6G-p* z7Jv(Fp!k6J15rMVbR|VgZesy68LqIeN{DHtIYnds2x%@;oH^svCnL*tn>QraO;9z} z0#GJG3c0^{UpNMa-s!M+?89MaZ1u*`cvAWX1oM8oDTzQfG$}vSwd;&C58MQ{t2t!D z^b7MNpd91gLR5*vc%1Zn?*%quX1o6;zylgL)(W2%iGUt~o(5CPc}alFODGeD_)j@W zVujFI5J5A)e=BF-Zj)$^_rutD^1vC`(W ztvaS6q;WQq%LYx+CgG|J+4L~y_<`4jm20P}$=~ztYc)$_8%2^v4DTzwrM1LlQb$|! zECul6SRIU|XbS6^5tl#3p;~mZD8+AFDN`us9Ens(y2`vL{3ybF3hVx~euJZACc&Te zY?o9OiGy^pDwWqI7xS4R^QY?L-EjMLRVA{NI;s(;LpQCLc|%$Dm&y3QbJqdw76g=* zdMZqk&d?>hgVdrL6~UKD%}51Eoz0zK8~~ovg0-+_>h5qKLPsL*RM>qvqCbU`U z1`X@$L&*i<;o7NUqXzw|OpBTihKm0CTh-NLTdW1LrRPz-2F$I^A3ss|p(4`&mM!8I zjmfdioQzEwR!-|B)K+2$=qCzjUnyi^|%k4RI0r)Kic;C98e(MUlilz&Og>+l; zRf60(r)6P?7r9h9lOiyjXo=B=5UddM$}@99nG=-@Cz`F=>d|r`5%Nk-S><|%5|Wmz z?zn}2clnK}ZNstecAgUiAm_y?p7j*KcI9cU2@rSnjE3qyQ!i*l>XYqC6%Y;z`P z<+0vPt3n)=Fn;XK>wPVi^WoI&Z1WX1=m**E`p{l7drxGNK>VbLBwz;W^7Ma3flwd3_-B6;Ip&To-{Y=0+na-P0#L%%^F7#uYi3v zA2ipMUOe5oo!sBc@4b#+LB>~m8LQYuWs5)g!olD^m>^5;gryPJw|8W&>&n_?Nw|cE zfi}$>j0xvQB%{glow-mfUgqssA)eBiJ$&iOSNTry9&8L>90@W^XQO6+gOfLn@}_d; z4LKfbNnWwJS&QUWLr@oIl1(V*h=!^yo2m`1WTUG!zMj4D{X_eSt^%ia=hkX-l!p&G zHo^QRLgbKza60f!d?aH(=)}i$Tcj$^4WaejEu+SHAHyev*qKhl~ObaJt~cm2c~gTY?-$ek1w(Xmsc zZuuqGQGI~2%lR;>pQ&-M$h(AWnFi=APhOW6HlzD2f+_6k+}_rWG%W>>D2y%kPn|gC zeFGDV7KkXq%4aWHKsCwhT_21sc*CLbF=O&-x?mEc z_X*54Wqd`&He)`8FK=E7UdoNW2}ne5VQI}L@;q8L89jzr#LvBe&dwzG%ds+rj7z|F zA++Si=%_!;u}tPx(FvzBj>h~!5RhTA^B1&_c2@zG?Z!BUZz3?;8>kk;%-+XS@Imbr zR6Tj|O=C3mrm&?#?-U~cbm-?s?+rDN(@oQ?Ykr(oa6~2wQz;M8Rs{G8kAb>{8s*mh#si^5EQTk7$Rr5m`2zM1@Se1jtCTOqf zvCSon?qUw=KHmIV7C|A8L?UdnI)g}lu)K1R@+kaqoH{*^c8Ic%#|!>E9m6QmN-y#N zD>51-<6!Go75v$yRH!;TN~qK?8bz1P!s;H;AT4}()*+U}hANg%w9@)ElVa-~80 zMUmJ8NUm_;BJDRpKik<1Th?Rw#yr-Zn37@rB+Xf580h+&->3Xn9GVDlroJ30a&v}A z6_%m0TAFU9(4c<{c&7A;98H>m=y_%af}kl<>)>~R1%j@sXaqiQDjz2&ddLXhv&_C) zKSk+OmD5>vS%(o{aAA(Owh9%Jt|3oYX$G$4ShSzlTFg0SUu{5wZGLLn#@0f@AtfJ@b2brQ z{FJG|Smw9mx&B>AO*45LrKX`qUzS6UP1zjyOtbv!b+>wNhbmYxk{li5a!I|de5K2X zpAx7P=_!eGu}6*t0gH5$3>E($xC<7c0o3w_iHRI!9~7K=6s{?83lCFRHpU0=DovF)1OGvk|(0W6a;A|8Gkl!9&Pb(vEBtvx(LM31Os; zYqhHap6nT%Xn!qjpzacZQP1n|s-MGJmGoKyKwsMZs|Ety-wuqAs?Z0#H|6#hN^ zJSZ2~3B2&exsf);UH60&=r*Jf9L}{XJVq*f|EO1}zLg)|940 zVnou^nL(_~B}7BL2#U#y~%%VvW6W$J2C;^+V1q2<`aIQHn5~e#FF9Nc`$sbeHFM6oW zl{TFsQg+tP|Kt6%4<1hTFCiTl>PsOpw|pY_+%YLBQ1fwer5pZ3cfIIQAtxV>{rr%> z(Jg8A?yr#k;o&I|L~z!COmQKaKu*QBiz_YN{1m?-uddOBA41)KKP}CRC0AH?XysR0 zY7jKWxk_RYgynQh{VNcS!-9COOk*qiET*Mo9=OtMX7&=J=EAch6dGnvo{kzX6nPAYe z9;`GZGRjSlAPrjdo}oWq{a$u-sV#TG5@eM|etnke#!NNmUpa;bxfT247j#YaP6lok|X31jt^xt6(+epee%k=Gb13JZHR(t-m$0bEF@6-sJGPzzc| z>=E248B*xl^@DR%ZIf!FYFM($SR`0R?6EAtGir({TBGWS9FI$OXr1EtKR1M?BAjh; za<%K8HoSQGe~<=4;VfuU^Sn_w$P*nz>uf{^X%NWdNRCYR9CKpp>7E0f{~8-Jz4!@V z{>3qDUcK>Wjf;ig9i2cRF{GU5=->3r(;HwydC_OZ$ZyR6Q;<)v>{~R64>(Ww0DmC%A`8BRnRGApAhXh&ZHVf&+%DY(X8Zkq*A4lo{~CVDkza9MQI6& zz0o?$RGaMC(Z;D6MwRiIkTk9?NMIG1k0>xA*4UEBKW#&kso{@F`MNh9qzV7Yjus!V zi#9Z0tHwkN7w_($>%YqZUtW+E{#gEyIj={w_9{It;z1_GR{=j%XYr%)>fmq)mLppd z{t(UHHp*0Ut5^!hhhOaUQ-}dGTS$){{+SOz6yVIFFnS-;i*L81N3`^cpwcUus&C)# zJ^sZ0$Cm89B}D^%Gw=R=1p$NtmRvAuR#y^$W`>}#%a{xZx8A*=&a)gkshkk|?egs-z{b`^ln>A-s^S|3<^{A;ekesnD$c>Yn&k z!6y0GGt$;)81LpF?-f~N=JZef4v`;_E! z8zSLiVswH~Gseh)rEm)kHa)N%55T65kEFQgD$&Yb{_Ct)E+j7}n+O+FJS5>|<=}at zI+1xq?eaz=@1M8wAWWJSv-}0H?uts>l$rsTt-GLyDbDf*dg9@$WML`*>ZRR-U13)s zgc^{D9cH5fxM6|`Rpc|&f@cO#8ywKgrJDfQ%RsT=#`L}vPlR==ylq%9xTSR=mB?$z|0YF2s;zDC8m6VX&DC8_(GO)po^CsOW(JZsJf304ZBt>M+2 z8k+{Mj>o2Oq$9W6F!U`5l3*LM)JVnFdr*o-Wc%$wi!?8qo1JV{iIOev6+{tnbSU)& zbI%RQ2xmVDvw)=OObZdva3OdBQ3}Mmm!kdeTc+0AMyM+lo%NaDFb#aoQ| zVjX3hO=;vypP>A)E9Pq#Y;YLP%=~FkRmGEu8C446UC(kXOKQl(e)sef zs@LKI9}fibpfoSL)NvdUd(Kos`d4}|eSH6J4ve+eJyT`@tQf@zsXm`(7tERdfz|FO zhmwf<-8OC(SVRd zov~vk0s6Pq2?tT1oMhItn}^7vyS{yHblthAz$%dM`K6ageh*{AwCbp;f0`WbjY7wyW{B}x#yo0%w9g?H7rRfOqMdKB8sRea}QaiPk@eO*_ePq zPC{e15}-&%6CJ58c)m!lc;NGKp+XIVUS#4_<7eXlpB@2OZApx?=vAdP?ghE{`SA95 zu6nDsiFo$@`JN#d823!=axLA_(EBzDbt)czbw=fz8%MMxH{y`Yrv$KuBkDO@DPaGd zxzyLw=9`YYUq;^Ox?JrVk-_I|>&Th5-e3Fdm&$bVvo>T6Th6$v^OsqK8Tq>85vqeY zCaV>WK96T|`Y_ZC_200{e3U-u=pnYotf~hli0~iIAZ4V^Y_Q)tOJk6Iu<1eXnL#5lZev>r%t`q688g{idz>Rpf@J z{UG3vFA6ZJ;Nyx#Udwz@ehLMrDEr*|{n+5!wPJ4GSscwiSV?>ZB&8v3{CX1Bj>{Rd zBe}IQTnUR+u#1=hd4vc;n_-|wXSUYt^~4=c@Mmw4($Hg`-X3LU-a1C z8z|lzbDr(wRV&zo07^p+N)0#Ns(UB|TFRgFr9-4?kHuue6p4kjv3+s+ts1+tWAm6Y z*%d1Gfe&_HpcfLnE+G0&Z(y%McP~FYl8%0V#-P9R{KGCAz0@u8^KBiO9gTSzlc@7; z`Jis_(zD)Z=P;Sn7F-tD3~8}`*8yW-6?#12lsGv;v_H|1xKoBN+xi6g&&Vlog6*P3s#0%@iqLau7z_cwk3s7|P4BUj z68Zdjd9-&!r!M;#=1fQJ+A3&e)EU&$8R7PdYUkA~8W5u+Be!+Kco{iskVRstl4cpX zMG`7?|40y}U(l!jNoU)=5hoH1B2z~iQF^0@2jr$SQ$h&)A|V)hfb9NgR6qa11jjpl zUibvvda_0&f9qh|-dF5=oa*Vd^~JB7B8z|Km47DmN~pD&4kpUfaOcBSx7LV)0>^F= z3Ec!_d4akWdl;tbMwCW&`i$w-oq5F-L$|6^0MN;%WMyQ%w9H3G+N2(+-S#~`!=^)} z3*Ip)#!O+GM!@`Gg1-2mv`&Nw7{9h)NnvZINI2~(OKU2(Y2x9HCfJIv%X$#eLU9Ca z26_DmeFH@7((d#`jm$c=edYfxli3=Kfdu@8>kUZ}l`{~!lpqlf_1Z8>?%%T>1vGw! zh&3v3Y8!rN0lZ#*u*`i29LV`rmPY-ADk4ai$B;Eg-R8c2eMk=W+>$GSOru)2|!oKVn9 zWHeEm%7CB3wEnB_*w#A}>M0u1W2k_(^bcM=AN0h{Q5RsJ_=`E371{PNDH4H z88A|jE_rsK@@7ImiXH+9ApFY6TM-ar{8VLO+w)KeiAzhj|9ScoPiWI*qzuOPeOB-A zx!S5H2$9^S_)SQYn3qM5!{ReSR7N99{$&iE^f_W4xEPi+eE+cZq2h@6A}hO6``gHzrJt+hH1q zg_KT>;MH3uN3FW-!mXf<7r!H{1Y|K0>z7@|#d-oqZWotnRh=ag}y|pP4c$yP2sA*U9TXit%u97mrR}Tw63A zo5OVb`-OPE9C04?-@~lYxxy1yPI89($^km~vw*%Dn&+J(caufr%o*(d!~89iS^Usj zC75mu}H~b9asH2Yz9aYE?CRqwQz)Am3{u*ViSw&r1j2XYtn~Ldn#+rS1A% zZPXvhd(hKANiViA3+4B4ZeMVHkAKFuGQS<@%J$lG*ZbyZ|J9MSjwFgtS)!W%#*)_r&!tE2E&rfdy3)t*zm9hnG8DzUA zS&onO-m7G2Mq`9P*2iu)&rMb8cfGfEjlmUv4JDVq9llf8?8Vtv2%pVg)IPeggOU(K z*)x076Qt$gqi5WAUfzL6kbH;xfwBgauhil5mdXn+xyZUcJHmW*J$zsG*H5%qh9W+g zz1)239JAF9>GeHbcNUqhIlO)EDSK-%#vd`E)ncD{SO}*U++TPq)Cl{tvR&y(5D#u5 zx_qwT_->T9#CrF{KDP7IPMP>Kl#CsXQ4jZ?l%RaY&$cOPote?u)3WAdmHbk@VJcLC`5(9dGJ zQRym2uAQnWPdlDU%+A2GI$d~Y|O zGT%PHjkjq~1lRpXDJyRLIS_SVGRf97oOm)AJEqM)La1EsUIS@m8=k#S~V^zSHo~cY^c?bxDk=4C*?_3df8AR$W)b)pmF+vJe)o3 zYzga;ywy#!=COVCS-Th6j;^bV0KZ7Yc{h%xw3`1eA+<5cwE3?J}K zS=tU}Tqh6Uj4TKDvND1H|0f<_s8k;Lwe#**DkEE#k_ZI4kFHI{GFFZ)d(%{WxTFwN zVC;2d$PhLPXUHcU6LG|6*N1f~7l`2c$f?#k#2mvI+1t18RAWlAfew_ZxD=fW1|{36 z4jvBFI}LdDTTda1t^bJ^xp#l_&Gqd~(N@!pj752JN*o*z#&02_bVHsY`o84Pp< zB!zsQ6!NWkqKbt8cp2`ccaLPn`CFh4>Vvx=_|h~`fhx6C7Mxg8u2&`W0DdbE0F8uI zQFfF(eU?1Ec5R1{vZ1YsYjtZvY!G#-Wo@3s*n??MPsQ2MQ%ORQiNUL6@ExHhkzEcq z+rEh=(F5`^woOuB?ilb!mxJzmlmpedlaodJbK^?gq;Dy({Ny`|uNxOojr_wniciM? z0+xNOi9%bAF0uA*Ym>fnEZ;-=8V95pLKfT}#Tt6)Ig-xdtl;w<#K=c(3Ds4zZyVjp zr~i7IPa^wd5*aAIN+F4y@zWq65Gi{mHDeDerZ_!yb3p;r#_i6OkNRm^(aYrE&Y|M0 z)d7DlS>;`)e(SZ3Pyqxo`vEN}^mwve?-+g5o;=yp2q}0EiJmJ!^;T6*eoG1#E1nfL zA3MJI5S7^T8`2(i<0Rg=mcIHhKM)@@-s!DC4MY~_3pMM7$f8eFdY`&OtbV|162&4# zaW9+#o~JkH$EPsN9adGk)hikro6zYLm89mB^TY=$+yDm~ZaG2@8Ad2Wq5|a2b!)VT z9ox4{RzuBgCeU8UhqjMfa`2D9kSZBJ=x}29Dt|fo_rp9zc%3K`=_wvNRsrP0MB*lkQONXDG9NqcSftCf z!mN56n84Qlf4D5h?v9!fEB?%;WklG>*B>Ud<%er-U0ata9KKY{Z_(DZ;cF!g z(_J2zkj60D5i@)bNX|J7hlk6ul?0x#A&tcBx+2}kyw;Nx+5S=sQ7q>nHVP~j&^3!5 z;?P^5q(>Ld*>3Wyl*lamU?|wlq`sfN&l>>A!?orbiyWuo&a>})pkw}dE2Yy-$lR*> za-i0q@izDCGz+GCk?daLdgKNj;&|YyS!Fh+0<1#HX;@e&WTP7vD0~rw#~nrKy2eM& z2{q)!ml0=GI<~~39?Yf1aDP)4V_EaYJj2Yb(4YDvs4xGrFCm*SjH^g#=goZp%h6~R zsXR}sjc%|lB|6AwHehO#LI{1CEzUUE_GdJl>%EC~_CVrUK3p5@^m|r2$}n1Z-vLdYd&*ye7&*g2#w)nqAJqPtdz~ zmM9X{_&%%ksXHX)(~0BWFfpI!+5sRHk%Aon3Rsd7Cj<@|j0pNJ6(>Mv7;?|Ipsbl< z&y|+Yf!LhXCSYuDQT92+-bkAmH$}(oqBfC%Og!0WYp~-MiG8%M3JlLKE*I!GGIZza zrMg_4i-keW2r9*TwfJ&4e6>g?)z|8i;%ba!!r<(T7xiiDRr~d+Iy*Z6xftqnPp#wG z(l`hoXz2Xrs5j1VN6~FDzO@)v_qjrys0BOtP|up|cr7>)kC!}<;w4D1VxvFZO)Giq zAUCDA7EL9+K=6`;*MXMVfSj)80IV=XVHQ&sXV(jb$)dn8^E5zE3j_3-*XB8-tDL= z#+Cj7ofw-Ruh1pkjNUm8uNqN?7jN0=9g$xl)Wzki34OzH!82)ZQ~Kx~Iqo53$y&Cv z$#j;`k8Ldm@}R|`ik@U|`U6l)0|XQR000O8=#lDHTAVWPpZfp+-}?Xn2mk;8X=870 zE^uyV05m|$zll&zM-2)Z3IG5A4M|8uQUCw}0000100;&E003NasAd2F`=&`mK~#7F z?BNI4w`qFU_kGXvy6*d5p8mXjW_IdM+rFzUsDUITAyFb@48bMDfMYQD$PtW!Lx^qc zz>(ktlN{hEF}5Mp(2FDx2({Jrs@ahpE}9z|M4Qt zGFUS(fed6|fC(gCV%%nc8HB)infN8dFJ-(aA#*^O0thf}OCW9wK)guYmL21^63C%C zD8K>|UuN#$i5kK@VG>pg5MY2MaEGWM1A!3XP7=3OKokMyWL_j*CL{>H`jRL9wFn1- z@XCvv+r&#GUSizl1_nqVKp4MRHeMnFahrhw1{e?`B9KACAVdWM2Ly;084!Q~0~|06 z$1os(WsBSc6EDetSHp@Sf)^Rii#ivB!AgK3a6=(XP7v&F8M}|1<@66O+5C6*D1eE7 zMlx|HWWM3c#6OpDTNn{C3i3fq=fp3@{)&j1x2! z3@~0Iex3<1zHViH1raYX<7I{rP!RzL5W&mDiv$R0q9ULG2AIGbZgZl5Nm$AhH}()E zC2|!bgGpmFkpKsGLx4MkpaviegaG4L6a%Y(BvJ))2XR{f2F=*6*t47`Lu@J%l!;?^j<3m&j;euh$(9%fRIO+;9 zE3D4N#$03|fq{6D47vEamHGN-`~m?67$E*B<7LJ#7KT7clx?Uh5UnE#Fqn=oH$tKc z(kiqQ1Bs}pNg1cH`6mxyzcOhj+{l?PbaSrOiqq2oV_=+3NoK7ZBR84|rZ|&PVw{sk zRgC*$LBJ*{~zy#tKNc>acB?2?&HUk4>yu`&&q%h%v zrNhdvS!MJ{0t^Un!A62C2woNjhz5g5MxIcXlt>vSLt?sT>x2OYhCsZ;_!n`&pa6pz9R}v$LDz_*b*xNb+CgfK zmCXq>4znfHfDp_E1`Q0QA~RkT5~Ud3!cFyn!|R1|uhYeZTQ?VUN0sdgxj^lWPQn0l zCqRMmqJp?ygMKJzD69j|15eU$I=kI9n(9muY1u&pm>D3xUKu!8t#Aa)r_es0Y~`IR zjPGe+dqVg5j%QB<&0UR+S4Z?RI7~Ka-Bwa!KCkq(nj+|z160v837SM|U~R=1O@n!< z91NA#onZ!w29=<%h4IRWah}jeVTb{lQpH%z#w-piCFamnxd&lzkWjM%$p%s$q!wsE zZNu$&#=dT)G5*+mOPaSdX zYPExN7^zwe3rp2x>u!BlsDq$!qQPnv-X=pq1;T?8K{@J)L+}KniD}%f&?Xo)&S;dF zwoaO?5SElp&;-RRt!38Q){cCk<)TBWSW#sdf)lCH){tmR#cD8DA9L?*-WDCL79Fo; zy6r@J#@KqWB|qz?&-9$U6gs&y8iNwpaeRil7IMx1ILk z#M)zK>E1Um`{*s^A3dN>GW%O*3*g{pMFFcTSTmL>CFSwhVi?F#adUFUm>2r7QC43=3`QNn4hL46=AU=S8m6MY2k5REHpLnu?j)d?6Hs8TWE=Fqr}1bHx44~rJF zS(MGnL35z_R6O_Q5jW3{IrZ6|H#|{za1ZJ}to^`-t^BGZ!2$mwlDGrf3j)3ZN{u7Y7dKLN7TyDW243(jAa+h7lpn+mnuVc zx3hT{W$P#8tU`SJn$wHDNEU5KusYugoQ9n3cw9oK-^|#9mLX5Z%(b1x|s2+R@Uqx3pL%6 zBnTOp@l~VXt4jvr5Xf&GvGJR>V5NhL3y!W;cIR?yVeN$BHF+t;=3P%;NSIkMOrE?{ zSx8jLNN(XyQMFJ-W_V5niC$nBZXzO(f;J_RxkBIqVN?kP$iU1>dSo6z9YiQu z+qxODY5^|0jSRTCl`vGznkG>b^fHp%EH?}x$^bcGWd%?@c+R=95@ z(!9gKWQf-%6L83F4hyX02N+!wB=`(Ah9xkQ`GgW~Roh1lA4m z0lXrsazbt<0fymbB;i6TNMRut5>YcXoT4Nogv`m9s>E%A2tkFARAs6dA(O%s3gjU{ z$Q(;9xlu5$Imwc%8uA2(vjeT#G@V{Qfp?>Ldau_}d(8IRmpt&!fD>+LkO9VR;-6*Q z5t-MO9v)m__Q-^dtwWpqh8380lFW~zWYc3TA$f!!7gN(7~fA zZZklC{$?^H{L$J=VCfu5oy|05;FnMz18Sp}Qk$J&9+^xDy z6&G&ET>>)!ZbLySiPQ*Lr3Pl61c@k#$fg<)VKjl<+`@wwRVk`Ogb@KXPzj<2R3R`4 zB(rcOMVJed!o%HT7)mtByjk&>F{gB}K3ca2%l*DQxDa-4^3Z!Sq)hr z2MlGv&5+5$!l0TgnT!C6z|E8lgjog52w`Bz+$2#;SX2}xOd%pfDPg5JQJpBxfU!uG zE`kzL6;y~2)jAOEUqmq=R`BLboJK47QlFt-Ob&5Tm=iq8#gm2MRu#g zs$>@C1|EiC38-#LCd|UY&8WznFbhLrrV8#@2_XUyW?_nrF;s;HPzpj&YbY#mvV}DkBpG2UJrX7%If{|Fbsn(*rrz*;9r(#^ zZohdl)~U|05Qx`Id{vl$CAZz{HhRYh`Z>eZo`WUoTij&UB&Dtk!yEV1rcxq>lq;U9 znImNnOQuLNPl0kMEIe5a5ebh7!Z34ij35&jSph;xfP_gT35!6uEHYRiLLpF~7gd?6 zT!9p_2+;(JFbiBEi)wf>^J+@9Duo&5qUMytaI;aWgAHcoz^1E{m@PLEiL`gb;zM&A z|HgIMcn(p(`6bMZJ0Y*GuJSck`9);70o(MS8<>B5#@Y;GZg_^gBHNqy){mhr$(x}` z)v$qZ*~ke`AUCT?CJ)0crGyLzlgWc{5C#^Q8D>>78Mxylz%d~zV3_eT6S4?V11kYV z#-MD=TCJBfV04IO3Wg$7oKl>nP;sM=qLQrEiWG`LR6)&#ym}?5k)m3{d~7wyDF!0a z5LRVgU5&f6%i)G zWMN^LKtPxoW&$Lv3X7U3A!@(0SiQ@&@xalr_e-=5(9*c3Iw7= zP#Y*_vI1rmM5t-WAyq0EP_S^}jnG0>t4%}5^n5?qaocJ&B~Spyt0e=A;Hy9dES$K?;RQF3DUqPz{I>5vU^7N~u*MrHZIBRTGt<$mCK~ zvnW_GfmKhqV>rbjS|zK9ei*DDy40QAs=MVhdG{*ii+iMp$6ycw!}tZW*^E0OOX6$J z`FUZ`!Z2p`;a#&A3e%GfG;S$6k7~AzL_2CMm627+E2K~)5s5^m)`VMY2t2?m zN?>lJWF7`Gfe8$7VN`*HXPLPOI1vO7yr7f)daHOAqxf zl`!=pN)WYbs8A)UL70)NQwz~Mmv-3vek+eJSiG4L*!bOY9ZI6Cc;`% zjG`a28 znu-)fohivITPRV(n+U3hkVTL%x0FoDQDiBKqPmg>VRB0fGr$5FK2(i!qtexg7~&wU zTa(Y}v<~Sn&lq(ZFdjkekr}@rrNo_(xdW_LUXr+NOns(d{+WUGRbX>WnGLQAeTZr! zw=}jWa-ocoWR}cHP@AyGfn{NhOdimfTegHrmcbHI4lo2}m;f0ma8npWLS&1;Fu>#{ zB%{`dVHiSvmG#9K`p|6A_w!lN@lb71-1^!uFVZ3keHDv}x}qqRC_>3mV<-x>KtI5u z7{%P&MV^G(HenScLY_=u3S=E&O-N%)mfgHW)KSWuC-`t<_P9)2rIL8{OhU$MV%#Py zxb5yW7+2z;SU+GrV97}4))%>C29Z!?GcxiVp%Ii6^I?}>r%yl7e1EmkWOjLeHM-%^ z$z=3vlDB!bSX?e)3wgTMM_djQ+09$4#msucO5b;&GK>?o_L$5%8ihM+o>^-%O*Cmr zHj>)o{%|;0%$L`btsL}A^(AcZj9Z({!Ulyc+O`5yZc30rW815CMT|@B;%EMXD2kedhvVNit`nCv#pJoKXKRz+2{S_i{1 zEbO)*K|d^4LabGh2O}*8ss!UTRwnDCt*zRooxSD3eAd+!2L&1;aa^s9k=ZCEHQ6RT zvD(WG+=fz)j+eSN6kUxnT$>MEuFwyeHE(DzWSOuA)xi=bEhSu)FqsJo(3$gvgClND zCTxM3BwmAXUK0aqg~>KF8$cCxIZy=Q*vM`h!l-5z<~1TIlvF(n8<}++&4;~SJpAal z-Tj|G{A(WhZqkU$Kk;P${(o}5O-+yE^yuNH$+S(widnIo)F!vaOUKbt;|SI=ym_MtNLRy}I`n)wkECXSO#_tukb8J$t=7x^-NeXfd_*+Rn@_ z@ARV~%S=Q zqJ(Ae3b90Hfil<-p=oNlR(j^Cg{DH^gYl|~*GSL-?a5?5HZ+HM#fHG$A-P;bm`An} zZl#)6nU|q9r3_kjL$|WVZ+g>rKl(@R`Tp-d%TrI%pMMTtw|4E`F*kRY9L#z`iIqvF zEuxk_C(ASmMp=1%#OU0LIC0k+lg-R*Vx0Ze-vX!agG+az>(4U8Kzm}Fm>m$yBNqEd zK3-Xwu5H=_FI>3wz-V=f8&I9ebcJ*{Cyk7lcU-@^JFK2Ny?5r(hc9ewu0FpwJoxm% z{OIqlj@z49Bu9w|H4xca>tzfP1V%}jC~L5H0w0!mPCx~7?xf6};20#(I{MPWY(KEI z45I{xy;+68%=6d?5;1rdDI(<>%0fBt5k`}+()IJhVbHm0<)OwVm`^4`118>=vG zVYz_Dp&uywdw@}H9#cyl1ub2kaASAL#hp1j^TJTYy!MR86D}VuxOh}JtP4gCDVCB5i{Rl9z9!HVKJLw$B8RnI^auRyvpuQ&%sgQaK6W^TX4_06U1nh=Xa0T zIX>jg?|K`Lec$&q<5QcbAAIX0r_bGW>fN9Ck-z_2KlGCyE{$#dnRdNdF_T$17`KTK zMh%dt83r;VT2SRh;zi<4%4Wvbo&bk#gZXm>bxYDJ5Y+&g63KGH8zZWr>N(6KvP()X z+M;U9GVCvhe!RMse%r~F>2DhjySI0zjFW?%ew5 z>?5aHdFTD4XV0_fmMm?_*>}H{wKqNtqXrD(;EvX1~MoDToenQ?grksIzgiegTyNpK$1Aw6gAEmA zm}8VG`huk-s}UxdNybO=d8$j9{2`j7;nv4@|}eh|hiK=UCraaO&X)SU-K1CMDGO zG<9I;oF~8dSw8#uU98=vk0~>C4B0tQ!wSRfs?mGHw$uiU{t6e0+S&*V@V|7zV|e z??IEmnlL&**@$X}n=muPZ7wi_LE_IH--9|TW7v*f~FW~WQsn9b?cFmRj1hz5lb^TL2wG?_9f9Cek1 zF;1DR%C4MI7&EaG&?3B4qO)oikbnUYm}9~WBpeuk=Yd?vhV@=<|I3$sI^rc(Y2kn9)uWZ+Yw;tZlCHz@u-*M`LEoBc>}8 zj%Nq>07q9Z^O1k>W1ri9;np8LxpneGc@*nIp&HHLNrXg_kp;q#C$cI{^e8G27{M>L zzP`?#kQa*uUu%;UaC7WvNwXNR7I2^w)G$Su8Q^XZ4p>0KXo|A&eQiwHKcX9s*?hwpMk`|upS{7P8*zAj!R60iA?B46r_Zs!X!-b4PjO=jGjEv{ zu`E3aXFQs4RKVOBYS5K}Hwi{7)L{X^ZB8>9kygiCT+ILH3y0;O46vFE3KU_O2crr- zMgR^Zi3TIfF^P-7t??KiwajbqN>z87T8RUYK*p;gK!5}YB7_49SE=C!7U4uq4B=L* zTa7RoqvNXU^PR)p=^G~7?|SS$u0HnyANuKI^7b_jn{6Jv=M?|sgP&qq;MB>J%=>}a zY|i%DDqAN`aqaMs-T9opE7Uge_6P3bv3u`fGHz*CGLw_*JpaNq?wOus+OE?b&A4=V zk0+kI#Axjlv#zi|KcX2oY@b|bw6e-*Ws{w~BR=-&_j7!BgKzn^ckzy`cXRcbi+u1O z{rKOTUETS=+ zIp&+b`City?qcVKYh1Z_ohP5T#(Wk$^u}|XdCMEA<0-8-T>1E?_~PfDBP%f*D%YO- zEE`)>&Ya!i4Uay^{MG^Wc**+OS&pwBvA8wk=FJ7iM+I#pt}Wn3jJQQ`+*c|vL;}k! zt5JJF3P_nnsnkW!%4C(%Xr0t88LKcEHS8^yf8)~b{LdZ*$7IGb7Vaht+@SCxQ2`eq zv0_d_2yqR#*ff;UhD%u9?@ny5uYc#aKZLLD@Zl%-`5S-#r#ZQ?!D^E^vAw}`ZH>eE zlEeL7PMtf&Xu871Telebh=Q2)OV+kFc=Rog&<{OFeaGQoECTXqgUKW_O9$LqJj-E- zldCI?MwR{L5(EeH9=~~jw<~<+vmfXA=bmS4wc**H`#c9XuRnilcjtdNy0Q2FJF~t~ zve`X-UyG5Jd1QeqhJlQbRQgV}IM$4?SW<0|cKakWOMW>?+zFXGza*tm0Eiqc+(^B-fx5TlNkRKeg6?oo;b_%m#(pQ?FO{~dCbk7J?2-gaQ5_B z`aZaIZHMbO4!L-BpObgp&vQG6eBjehF}E>84hAa_8DS_jEER+WW(|EmFdu}Gu&!qU zOc@wYGc)3+FYnF%?7@;_Z&`I`8Gr$;gaic;;Go6;0hSpAbBP%iHxEx4I90?1NYS+jo6a z`L9o&I-B18P3zp~zr<5lkJ+0oSvz-z_4Q3sZn?R4h0|wG^UdG+oh(#&=Eg1;p1Xo& z=dQcYa^l|mdFIwWCr_T^4d41+V(%8$clMc_xetcINB_}Jb8vXfgAYH#bI)C1`_w7U z-hGz!t#t+}wFI|r+~nHjD|i7P)L*}Fj{3K`A z?q>BpXW4$+JK4Ej~CDzc{I|{ zFKifs(Zo>^wL&Q(6jXv*gA!h=nsGbMr*GaYKk@XJ4&LBhge+Kjntvteh}()oyk z`5}$L+Qv3(C(e@B);Rg#Lu|kET^wn|-}x(lofF&Jyz|{}<=Sk)lb`%NZ+rWQ7mh#9 zuAINjyWaX1p1p9H-PzOhev7S>n@rYMnccX?ty?!aK0Ky$Vsm}{ zXB%~YE9cP%)aH^bovl?v!IsJBYaMDDk#nW52 zPOZJ$2YX~b??@YCHqWhb-(&aj@H-Np{^;{O@$rlN*gyCbs~>uvt@V}@+pEOSe2@p0 z!ODBz%^O{eu3V;h?9FUcV}5;~qk}zm_YOFH`YxKuI@h1yqg^|}w|xH(@bIl2c8=$K z{D~*&{EPGqR5QXGBqyR!L&zP-q_$;ab;yzSvYrBW1lIGsFDZK7#L6i-L?T*!?_T_p2QM30u>;5<$B=zfE8{NWL~{7kPZU6 zMA}S@MhnG|(g$m@J7qqrxPiaYnm6IvAjH8U;fD1_`|cSxDR#O_N6#8uXX@gYM0jukL@^ zjc?7<^lQ$Y*xEXA>IBQ~kd?J9-u0gQSnTX^>0-~b&+K6ar%&91&z|SR6JO$6j|R3L zxR=ZO7rFdr|0>(-n>3zz?#c5kmmSYsST0?eF`HP2D zKfCVs-`wwfDG3s&fB-onn~^gd)?goGz!7lBtM@*KkpTkZRWfLRNY4LVMR|_c{ zZ++Wa$Qvi<+BJ4>-s0{D7o30oJb&r0|84qy;LN=b@ujDqVNsx@hD8ra#-fOeyGQK* z+!M@}b4qHdU56GO&FY9#r%%%@7GKyqIQ;+g(SN4No}26^kj=eBhbZJ+`b4!HwN)yq zM3GY~CJhk@i|KgXU{d$?Ur=WYVkI+NnrQfc-6ZB6^(jODW5+6B2AFXtWbUMC!)V=! z3(#L5$eqzlO`SxI3L0=_g-nu#BC1DTTb)euC^wfE?J%3o`fJ0YK6mw*Yu_XB=9Lpu zXK~2>%|q@wG3Ct3(>yX5Pd;^p%U2gz3pc)Sk!Sw+pJKGSPA}tlZ;w-_PO-kV#r$|q zZbsCuu$rCDC+tPb=Rfobx(|GmNGH?CY`I9Ra#o^RpY-S_bE4}E|i|B0XA%FSD> zt#47AhVj}OySuye2998;BscowBd#4BFitQ^j+>ZH$DG_)WA|wO)7Nh9{7(br`e>9l zTntuXVOZ~GJ*YRYgI6zkpeofW^BS&dsVHGlDhiT@Xf>;IjZVQqm-yrlUE|b8f{g+K zR=_NS0u00*kT*6q_?i>92}ToE?pdN|kLhQoAt1Sts$@~6s9}~2A*w1BFSS<5GKP;Q zqZyW;UCz5(v%}%S`OjVcuI+Q{@7dU1J6FoU$aS%bVZv>-dQef0_?|2HG&$cnJoHJFYU~K_OZ>A-@2A^bA5J9v4+ujN?*knpMHk5lXr2?<8R@q zk9?S;uIIy_{5ftN%-A}4mf2##t;0FyPLIG6=8oEgxwBjjbjt;`HQLFTQ8sc)T-`nR zk)6HczgUcAGxBw-EJZ9EvreK14Q33fGSphjP_4AZs~RV&lm}|ljOF1(t#NaCp1wV@ zMKWFNMcNqIMjjZIsZ!H}_oxOhIygAsPRO@$XPkud;?fV#IFS?M4JbR6D5!1R7bR{h z21!XC!Xu;t;e-!t?8;dUu$K}1N>!UZXPR841x!}UnPxAQL z4Svgi_?uw$qx{2v_;EJYCrsKEq7NcB_&9U4?ASRxCJs6d)0p)F^RCcLSJ>RxA}to| z&adFPrJ1ZSUoPoNVHhgY(HI#V93OFbcnk_wCsUFKwH9*IGSvFa&TRR`&amu;WJQY7 zLJe~hRUlp@Uh-gtKmAehI}HBVZ@2WL(Tup!_uA!UG7ztk3(=QpR*N7lQ_Oo4K+zP?U) z!_Mvz52luPzUeW3eG#L{3gZUau`zaM z|8Vx9>$eX7s+q@V)J})6nTF`9yq8;#7$62S757}Ms-$9NNJQ#O$>AD03+pQz)3JuS z&wlrenzL@BJms)6K6PAq+QfsS!5+$4r;_llQ?4)!19w7}#Mhc#d|bpSyZK*#k(>YD zxlaDhvDsq@?JO8NX*716P*-ZW_huS}$wL%(sn$wW&?n4_sy(NOrQpZGD}?a+=U*r;V5q6{5GpK_W#>51tvorR8E;tQJELbT?+tZAj0m9w66Eb(e&Tqd3%~k9Zhdd1UlNBCZ z!`FJ1!-43mj&tMva!~1u+`Pu%Pz_Zfg`3O*j1WXcGCbvRQXaalK3@jyUAuPl{O+uO z{=P@w@V$>e_{NnRm!2c?NBP~q|9A2iR{l2c|C!ISb!L+=SJ>R#W;$BoaJHbYm7xv@IGio$xcxDJn z!Z1`YisMxfVUFN#ei89Y3EnIC2cIp=zXSXUgO4Fz69In?@w*Hryhg^0#9q*VZA^@! zgtAeV$OcEXs)E8$HB@m1nW|7os#PlHz9jX%>W!_I75X~3d-br$@)|}&l2#@SjrC%-tF;IwUH0L6 zui4eY=^e?lsV!0q7$Au|EprF-Pv68UI=#dM>^>3Nep|KtNTzm!%EHO5$Q3QBM~dEB ztX8dfAE^>ufoc|pi5I!d83Yx^HKkP4&bwi_bn{BLb2LAHd1Y(z@7;a>sqHJzeule# z?Zf=8Kl%r`@%#TzJoEHLCa1P2A?AHBgwZq&DUS#WmNVW?NMz7 zSMX$XwQ#iP5Q&j024oXSP9{Kw{hk+gm-VU{=0rqMHTS4QfYoF<1lJ|r$Zg`662HW6 z27a^Pe+2%R!3(^uh>^jh!Xli=P8GD(5mKo^H8D8q%~fPku#lN#CM-#wIG!KfoUBEE zZ+oJBdgp+1n`72boZ-pmpXKIfp5WLsZ+yqwc=pLJa^d_XLPo;rOQkD;JW;AxbaQfU zSXmokjnI67yI2`bC_{O2_jvKe;-hS8`c&ymF${PoSzp|`fZnVQg3@{_7O4(BwJ~bS zIoz_^Y)pL6{?!YNy1`D5N30eX6S3P-*EgKKU7-R77_SeRJK*eo!UP1!g661l^x=JN zJ}|M-c1w4)!%9-)&N3_lsE~vzNRW&`QkB3Y>yQW4h+4TVu;i8)jYc_kce;=N_>X>W z@yKH*e{X7St^bL?!~Ng&1N^=}@Voir|K*?L!i@v!bONcRX-D+65Ea}Vnd7;k@yyV5 z>>eC&a5!VxEeRm!5h@kW8DaFL5T(#0k#hnGGw0xN_QZTBdrkJnpbroV%uIp8i3+;O zKZp1i`j3Dg5d8PRp9GG175-g=313~wAa{X|J8V?d041c7j4%g65g;H0LIg577+_WO z!=S>UMyuPLIdhW9iL=}|p0g;GzVzIE?i~Gc$;QcZtZ%Gy>G~~F&O|>@YEWdzD%C{a z^$exZCefx~GHPg=3A66#(oiUoy_Twu(11m676moMOobY~OT|Soi;}}4X{SjA2%>0x2iT z(34Ukc|s8cj+wwf615D38_7qtAIh~NO2*m{RYnM^iEvYdsRD)D#4B^8H&b1}!9JCJ0p;FDM5(*IpNGPyC2on~Diprw56ZeeIoO|S+(HEaP zpbKMvZ^rfgeez_)-Dl1+UKz8ydy8{#d=utIP$?mz1_FYhs1gPwQEE??7>_gKaSKi6 zU^zTDL@X@im3|QPVcwgSK^B8sGdNUvD#!{_B}z4_2x)P6%t(dFYPAta<`s)7kPI-s zB9gchvLwFNs)=79LF2~CAddfW&-BC!{_qB=?y2mR7%kkEgQepljoVUlYN$okNWwGJ zB2dH6GsBQPU;;KoiQNcaZzkjRXg2@Ag^LG|eA}Df@SWZ+x%I&x;T>mA@NMrr%TImb z8b?v6IU~Tc*3!Bo!B7T3M2Mi`$%qh`10rfLM46XR6(pHLA_M`* zP#6M}9Q%g_y$^T;uiSmWUjlv?@Ix4Xldr%k@E`N9L3Z{BXSat{HycW|3^c_k5ridh z1Mwmg7zP+b?MjB#H$Hgop?3QupZl>-^M&U+SlMDcoiffNN>nyapWy7nkMP4k_K$e( z`Sawqp@t|JLx^fYkwC)Cuw=A3F&-tFHZfo~=R-VS#gI@cXh>o(F$}5cg$<3YsCo@q ztwBf;QP40PpfP6Ag=LtmPs_&UxE?Kzwdi_A&MV^X+zI*M;DE2S6~4?2379(O`$fk; zx@+sdWs`i@77PdKcPdkwS|lxI#U?8Q!jK3f0g0CgIYu=CsUQ_e6NoHvRGig5qh~HH ze)OT62XB4w9rv94(np`B&2xV9cfOO$hwtZSUzoupa04kQA-cXoYN&`BfqTZ1W64-) zrj)2Gy9J({2oa@%APmC5J+Yj3SB9b6O^GJZ02nU|cT*TIvd!#2d^psf8Q}K`{!^e8 zuh@41--Y;T;P>Nvfq#i3gO%W`N4%uS*e{hjYOuzrQE3dzU>PTnff<;AxXl1Jcb45S zoZikSAA9uvH=X~&3tYX?VeJZ0gC=Jd^PaQ!J;ZPLxBhK@=Hs8@>hyL*x*jcwN}2?5-$^A+$MpHF;Fg4&HvV}O@HeN^4%M(_@S1U z2gY+#4=k1u4oG1N88mWhG^kJol4Wi)z+_d_@!&l{TBg*FcbEP1|M(}K`HSDP07-|s70Yef^liAqVKoJbJ;Mtk?9TK-W z5kUlalQ4JMCY|-1)@rFQxRQgwLflrt3?z^PW7t`R|LO?-`~ZIl_z!q>z61CK!9NE6 zFo`en&+)wi=c~+&zQPef8aX5*fG{k;WEhxPUdh?|%GlKKRsS(xgEo ztQHJIwE_;=0Ifh$zmcHyg+t7+9|XRSS8f9Q0Pt(6{O@u8-~2NF3yjvC zubLW$%a$^Zfwi$LiV#=@RX|_@0}L?0Bn)$lVW{JVmA5>y{dKfdIkT?fDJUuoH6S@Jl7s?G!Yn{wWNP)Bvu=34M=>%hrYIsx z#fN}`sI5wIO2xr|2GkmT>kNhwf*QeBgCy>R%pD;9S;mV51}nhwOVVt)ZHvfA}1+qpem>lsuc^&jO3CCYBE`qR`dAMt@6>I`s5C8 zd&^^gARpftZM6g6{LV-DnI|qYq9NRHDk(SQ5ab3@Lq7~0&yE;PCag@>ST2{;dF90B zCZzAZ66RwXRUcZsVy@mOTU%!^5hDFv&dJQpgfm z3Yi0mI%spk_PLG8gR_G}x=5r^1C4X>`VMPrV;*?JUEG`n$HxOli;i|>%49rY=V*_j zig_XcNf1I&d679J4^nD4Jm^1nIO{KxQzPg@Q5+SS3Rtz8icupu(PUzh&`MCK3^XAA z&5(J0k-!qL0?aOk=6`M9Cf_q5y?sji=vZ6hBORTuHebMWn&heavg^@p&>$JeF}V!f zLPm8%VMtlBg(;`iwK}=Er_cY)2cLZ6t@ovG+KVMeH{i?~EG%$2$(@W-Okj?CqF0A7 zHn%odU70dBV>X+yTrSCOv`s=lMGR3`4wXfhnT$qnoHluTuhjkAWJ^IpB$Fjii7+$I zA_^doahq_-0-3|#1O8sXZvp-b;H|uJ-wAwN@cRw^`ULn7C5XanW`G2_;Yu^&bIXBd zI%Z`&v7NmIRk&mx5su6;+=QE%3*3wx5uQUjF}8ck{;+-d#y%;JXwnJ?{lM{TpY5&t zxcd$F;Rg$DUB1P%X_#zmFjSCssS#jKNc>X@k{j7z)MT2`h~3?TXZp&K=hO%lgCbEv z)MV70sBRX?&!4h8b4-P&G=pRh+71A`xVlPpZ}O)Pp7W3@{U>s3a%h6jdxRWLOpyzRcin%J>_I9|Zn0;2f{a zN#L&ue#ZiSAJ_%Vc~qI)^PsY}IrY(aV0Ju2tpnzbshZVVFnKa5 z5lRHTDP@-$Q_3ZW?JV@vHs>aoqO!m*)j3V70MATx?@J8;I8d;a)=v; zM_jscoxVb(5oIZqBvAHYAKAe zzj@Ty>M-cYL;_2IgG|CJGV|o5!cav5n_8ne)hdYFgc%?}7*~Nmi1ZhLKMedYd1cN4 zf7fF8o51g_u*0ihylgRE;kmBYA=rvx?og^xt0CdxxC|3vRn;Rb3G)i6y3$aoo9jHh zI;nT1@hbN`crRDW9;qLA{Pa2QIem_UzGv@fLDP<@^96^8N7USK?yfW3CFfxF992*d z2Dk!?zzmY0O_|+!_v~!Ykv9NPK(D_!85E%^YB8f2R?QTqA(CZfH^zvyrYRLD5g0H^ znJV$68$FMl%Dj2%m>F|GymGZx?u5L#xyjd>ctwPPJGKTox{U4o-8mxUlx}0lAk|&|Gn=xx_FJXgC+NF ztn>8FKJyynCX-Ca00YBuOGrW24|H9}`sx~(!2r|gnAvhksZeXBDiIi6?a8^_S{XNY zcYS}=WRBxuIKsh9BukFV<+Wl(VG|N9PDk)h$#|J~nSBQM?Vvvm{0ZP&d1d|`;2jBm zSB0PD6*6vf*sH^*Y!04)BzyQGq}L!)Y8E7vq$u zRYynj?(@~n+^m8MP=Np{Pp z&C-xd>U2Oc|S~d_vUy_+_jPD4l6@HFm4iLqhyB~5JEuP zB*x>0_02VA$Hy#>7fdH(HdaqHS2yv=Du?GU(T-a7j^`X6&xn*Tcaoe?C8tDViIEMA znwHt1XAkGyvrRU4r}wbHtb$iO0#o3~KqHe)sal(iOOstz1B_py0YY&8R`A09z+-Fh zXbZIp0mfHG5_dwD#McV}0<9UA=IG!@j%@pcapu7lZZt=l1Iw<;vqvN9P%CE1h^Psx z8H%HlWkX{OjZ;%&e(6?u{)KA?UwF&o=iYtg2yR`Ob7nQuRk*njH5ry1Dd_8f5J;HB z+S)2jn@P!Na;6=Pn6y28Zs=r$gd#Bvl|ZbH^W!TGn~SPFbCMZuSaOjRa!i&QJU8Yl zc#T?Dviq`z79oij2@wAh{}A|x!0!P555VJm<^Io2)wcrwRk(eOe+3y}W~7FL21oN)wq`>gLLNYIks7xeqNGY0g@%bU z-YXnm*^8%s^(5ZC&Jm}_EkhnrQn1{eGmAtqCo6CTfgy92%Oy8&?SMH_FdB_nU*BSD zZHpHoxPIdXA&AHf7A(4fwNbifW!&67#s4?prop1X3L!`U%rj=R(MJ(%H^$;oI1Z0L7!;s_ zDkuO6szA9x31Zr&Vo;aEfF%B94CpbQ>RY;GJf1s7jWFYNEAw?K98CdTE*9_KWo=*V zuZPB`Mmo;L7srJ>aW!tW6q$vR$!fw%!fG~^CN#9p*c+D5U)cNNwJY9jw`ugy=7f!Q zgYNo_%Qp`=>bKQ+w5-Wf^ED6=>CUY;6QDqpZN-1PX zgcn6BM(zVm66^Qhz469ob(Kp8m3as6d*~icp4#SPPn_rGaq#e?=Qw#{gV}6G+`v5AaYKgG$;!NRF{=3FEuF1D5IQ*wQTC*xY3Q;DDwbv9_^6E^~(Ef>Gm- zPRF)B$Y=7DOeB*WljF%$WrVD0GhN?XRA^IXMPWl!35=JCuiT#j{x0zU1paNla{p`K zo8Nl#`v3LQXYTrQ{32n-vT1Bt8*YU-09MT@5tdu?Fl^q3$#65QR=gS>L<*D#k%}xY zmeHSC;qjHGf6HgS_yW&dU*Hp%uCMcjXRq?H&wdG;oMdHnlh1zkvz%R4PCxV(KJ&RR z@S{KZv+N(wX;-FHKp~Sw^ZH2yq0ipQfjAJF)JRj*lb!`^a~cjFJ^%F%3K0|3-CvP{~d6WugoLB|NPGD zSKbHwflr-2v*0#iWP`;JThuhHi=M+E?zo%_R5u8$7`$2YGV*(V7rAAW8*^CBQi=Y$wYFa$B;l0m>~(o zOJ>J2hJGODgaq^BIpHu;WilSGueABW-Q&flXh$iTWus;@xf>qHqheLE(YU4W#n2U| zlC6L(K)lQV@yh*i;4cF|1biP~x!(i4?_D>p|8G8X^28^=Xk{#bn-L^)B$<*>V6|W+ z@G9KFL--(hn0dv$H#Mb;Iu+|DR#)HD7tw{WlsKLRM`f3kTSk*LEF}&X3%==Be+MTY zc$6RcAN~T@cMo8^MwQ_PP1BIumW~BhDmgjXDs2)KJ$JCI7ebIAKn3#vtA>S}Rh)1` z8KMQUQ>&o}UNtkwKo!iUa0NJh08N1SvbJrx6Y}BVAzy3T{L2Y2zRdWS5@0fvgpKCV z92eH7Shz_jcdL+@WRc5a^ars=1r$YuvZ4gdBoit zQ+9V})HacFqHU(k`++$v@&-vP`kq<~$rFZX$C)--`mO^B$q0gesFb>7ZJHmR9QoS3 zs!Pc;Sb~%cl4Hq|5{hbJ){YwMyCpURtL}EIhIo+y0_RmZAMpLae+m3yV9ZzM9l*!l zerxAXJ-4y(gPSF|Tq`pmyOXLcqM9X$kRcp{V&(&~z*51}fYJb2z3TcXpFFd@^4MZ| z$iY%9N}_Wi!FoHvbAl!_TG_zbb&h*M)6z5zW(Fau1*>c8j3yKIc6S-N1*0Z0v4Ih= z)9JH^QFoO+A$348Q9u=oB1I&K>}Z5BK@mndGLZAy31R|Q)}gfU%{O7I8ezO-eSMuf zA@e$A;+2qrfsq5WKQP_SYNnZ;`5?)oae1u~*{sT`QB_-yYO-2uD#QPuJv;&aEjXnU|F^rZ-F>KgeV)19jV;@f?Y2Po-$nEJ zbhMbxZTsHF?3LpMS62%-zC6HsBX+WI{cuXHPFW~}s-SQqM3AzBc6uz@L~avErZXH8 ztAe_znNAu)QQ$!+t1hXTkyB#W?_TLw<=Ocxy-W;2MFV)iB@hS#!5y{iT9m3@Vcv*G z4TNlDeh~qjufu;P^8fhD?*9w$L%_H5_6YF(j~pC)sDj`7cSK)NKrQ3AdO&gz$!6jv z0U=~}F(jC%W^qkOOfDjhELVEITgvhEac1TPEdf&_6a^XuvqXqp<|aJz!YkCT-DLN0 z%5Zs^**sIHIaQ~ih>^v-CZ$XOx>aPU8qmQx*x7$28FMYPbf*=_f*6oZ%tYN)#0%UD zg-Wp!a&~b3H4xAY%LW?*`0MWcp2m1|EZ~m2a}=V8@Sq7_i}MEI>m=MK4o;Z5lvBq$ z>e5BDH5YM@+!w?V{5}h4ax{hLZ6Vqz)tarX@s|&V)o)(wRfQBS{ndgy(~9Q=4zf{5 zz;X+ohytMul%0~{a7aqVVm_y;N_vAKsczZZ+ovom+zrt{EGx_!RKlr2uk+X>EnXma zB~Anl2mv<%R9qz+QU#H+8?>#nt0O}d**ABbHyK}_68LTI{3Uo!;Jbi74g68w1_2yC z+Q6s2*X@t~8TgUH5ig)ziPY+n8@FJi4-e=Jms#Wm+9)AL>bhn!nUm9ks7}PGdPCA;aeKaK zZdpb`K^7t7k`c0C=Jx>>HF~Ld8L~?do8uV&dWnNO{Nq(;Yo7Uz0Ka>WBNI6aB78OH zEyCAD00#wGp2K9fW_~_8T|wGRscHnV2D7M=DX^T~%ssc_$;?{{%I$q#$g+0h%!zpU z*7{u*ogL0CuX1uwF`3i^$&?zQQ=;y)IkA`=u(WoJGw057csS;8d`PNmsEdl7 zqgWTJ{s0zZ92g9`kM$PKs5YOAXapjHx=R35(BSUba@L|OEOlJS#xMk?mS_RtEzYl9 z5BM(L;?M%$FYqbguK>sRRR|!kYVg5;I5ejQ6u~W!)v3B8LMRa}$Wky|?z6OL*_}5ShKQ2djC(>c z94Him7-q0Psh^wIc2}bmI5i>}Az_x0Y~r4yh8$ciFOtQm7D{q0jyc~D4<~r31OH+O zFZTjJz|n{t1>tKD{*|dC*;#6E4q)$M5X#oou~I}lh?!**byFo}p|tE)30YK9bc(!S zcX!;ryu1`I2XU6V9nL)R5TCie!z+6=Avi^VGDd<3lVk*Oq^%)0^g12J<1uwz^XOxb zvb?;+XFvZrL<<&+hSd|xAdYBa&@Go+@i-@We-HLXy zkdC?Z!KZ)$#@8nS+X0RN3*It^zunDz9{8_;|A=3P0|Gd2arpIf_{1Ndrf4blzB$>K+4X%UZ5(dg5?%bN4>zZ`Qfa2X`Y$KDwK#PhXlbKGj}&ttWb5Y&1UmV z9n_^CGA@Yo4UvGA3~LGgX%BvYqY?QxhvO~+E-2DCY0-G66w{I*;8D!W02#65ZsL+l z(cEUs0;!B*^U~Sa-+TV@!{u){b-EWjJ)vaEiGHRFXojK`lD8DGWKec-RXW|0wUt%+ z!&R!P!^zX9c;d;&`QmfW^USl)(xya8Era0_S{BUq?$Ym7rv}~5#d(_EupkN=gImN2 zCI}#6s&1N-J5mZ}E-R>Np?0fHG#~=*{Msq7CVZ87m{Em*mL*~aR#S8b zbgC{(qXFOafp6mFS4PxLO{c6lwzkUJ>MD2FHxL44*~L=BqHgGw1IGmVmh zgeZoB1#yCis*48$b5{#R*0L+v=jQzwWMJyM*+2jnP<~Bj4u4aG|41M@U!^Vht3_-7 zU*Nw2{s_N>0M1*4`ve3?&i8$>=HK7S_DBEVihdeAs1Q^L!9!@wgJC|1^p-p2W78(H zw=fPD(5SOC?6bT)WcP5wq;06RV83;WfzYBHPG-bTm-81dvc9p)&h9>;h@>_%uWKY{ zVt}d$jOX>M(&0vX6a2FoJu8q{;^p0ax%JPLWfaNGdlfe;anLhN?CJa8&} z!T*7i&)(aeu|0DRn@o;Ml#)f$uzR>qF&xny^qFO0e_nGqZ!j%5dF(XX zTl;+Zg%?>g3yLx_pV#DOL7zmg=ui|Dv;FDI3-g5p4FcIk5_ks7=4Og#A$XgT3%H0_ zGE4*{@W9k{%~6Ph!GH(Og>MjdKyV3wZ`J5=@v0xGn?w*iNB3yrSuj<__05jwJ|Kg5+ z=*fz|{L!JjZg>oexQZ>0;?s@IhTC;wCJ>5%C^UQbB^yNTz8P>}+rF+;h)y^{JOJr0#K}`2%IKw+iDkvj+qc-*+MtR;)$P*e8CgTh?GCO_9ANuor|3wLcX36fEl zR?RG=j9EZqDJEm+f)s+!9n>8`MMSyJc^l>kKP=7fTE1-9_(UOMNt&Y z7Bv<+wAn~);^6R*@w{fWYdflibwY>fb(FfDn}u5B#dt)2T~NTzU#OU$HbTRJ-Mkq=8N9K zI5a|ZPccJ4?{g6&DT+i5;%=f5A>zRb8EE#y*0@g`zt4EP1i0u94$j;5JAoGg<>v?p zZxKL+Hz^PVR0I*?&DMY5^E3a?-(T?TT1PLPSsOkk-9U11gJDM~3d5zL3Xp?f*5E{9 zr=&hSWM^-mS=}&i5?KTU4A7t`PIRMJM9QM@t;6{j+RRJ?0+N9YWDo;0$nM$AlM{f# z)EwM-_lO(;$N5GPa6wp1Y6**V!s8=)+fi&Mc@jiBm}E0G(HL^Z$d0EZVj`Y{dmEK9 z!E}3b@d6Y7n8p&H9};{-Q#;ei0=Bm)ih#tDrcKmt6jhhuXh_h&rAHnin{)m3*9lbx z3QNNwxG@?Hx%BWwl!iOkUSV~)JTvTdPN&)8FqY|I z75z#_&t6++`=G&qZ~4H}3|5x;iBJ4A%e^jZXU_2Y#vTXtl)5ou(LqB&-Au{mP(+d& zh9hpMK*Z@4CGNhvKb?Kq6c6GCB+v|G@a&KgvL`c3c!798bAh|_?h!cx5|wWxNr<=3 z{c6I^}{c{KJE{~aB_Hq z!`vXbVYV>xWJl zMZ4}1LC81>Bm)_8LM#_SEw}!LTp$Q|=G`T71hP2aND^^xk>+-Q!%S}(x+8o(P2MTR zV-!^ICb?xZ2X#eqP_k#TK-(!b)YE+Lr7zrj;k{2D`%u&#?d*_qX9nDyk10Ask_q$i zlzH6{I(>$n4$XAR7ryXWI-M@(EAt^OKyX5GLNv-Uf;!{F>GQ3# zFcBOQcoN76?rtuMlNka4oQ=Q2`_582t@ufCY;@Y} zBLdx^%-h6?)m1J%dWo~=F47w;apB@as0drzn>0^CHP(Xmp+hM>~%ADctFc1&~$2lyW zGVy;(@Cl$JyhQ~RP#`D-fgnP}2?DJ-7e>OjJhdh--e5L(E!f=Or`H?M=?^%#u|ZvDf)+F>V=0pi1SoI{&r~9mML=U%j2HEbtki{}{BQ-fQE3Q*i4?uv61a?TuuIG@jX(7MJqT&3U>nBRczH+2||8iFn`3<>VJ z#>8;IzzxK3GLRifCho4t_I~^7{!ZG9t*snhzr*33DbbADGPA`T^FYQ3(aCLQ*dOqr z4}F-67cLUZE~(9ca{Al_KK@gm;PYSj0&6#~aq{>Yk3M#VJfE_6>l$72V@1>_#q&!L zJAw!B03KWr?z8M_?&2AhAc#WIh(tGYevWgWfIGj68Sr;W{GlM=&aWzSpMWVg5`N|b z-7kFT6O$jv&Yuzi0TfUH5fGe!pg>dsoUX$A&o9wiUE|IdU*zDx8IF`EE}dt*x5L5C zArC+PG+I^M+`7S+ZtpS8#@fk~#QmCEcXx0%5CI%_M;yu!C>6?}%#*!3uI-KkDw4r7 zV2(NNrcoW-EN4@&0xXDo2ArcY7z{WHaXOvypmhh%T=8V1WF9}XH{q~uX> zLtP3tYcU`L8Au4NL&|2Yb|^RZ+Z%W8O5><$g2Gv0} zZ$${I8gsVbct9lJWOEmHlUS&RsIK$O2$4N;cMMzvaNdS4@Y^tG0pV+NK!6|u4hRk4 zy+~a&^7o(OFZ|Z$`ON~~t^y(;fC{L93Iu^5LNeoYPx;o%OFa9f8{ED-XE3NJ`*7^o z5@`|XbxQ{QF2mI|PF}po7w(SPJ2>Ftxrcb}@KthdF$9T$H;6l^5Q5T)N}++x>GTWJ zOiOvjM`<=ytmtg{Z1La2EN7b0J_fTZ#FtMEBB= z;W9p1$Ge^29?Y8-$KA~_$FqXrm#5%#6eFnDMM(TDSa`@BJRmo;$;}8+X~--Q~oo(|qJxzn#Hgz^6X(ahiI{d@*Hj zJSKZ2rnb;8I7h5=pg*I$W&e58rP5lL7+)L_h%*AqWH&L>vb$4gwbk z1z)-`MOCRf%BeFWmR6T|;e}25qakantIQX3j-5QiQ%@={-uyUQcQ)yk9oCMmvAuUl zYsQ;I2qF~f^gAU{wcb0dUszk9-TKPoJhcT%xzUilxM8Fk;Z_@zSju zY;3PHo6PYnSTf4KoGWtiu+9A%o(u4R5D)^OfFh`iOIAcm5mR^Er2~?|xzBi$0M4(V z6yeHJj~l&;JK6YJOh6Fn)(1Y+#C#N(lOZILh0!TQe&ng*weNYh`4iL352-*9P=O#2 zM2G?+P$^tlQ&yLHRJ|S+_LwZ@q`G4L&L$h1`}9^a^Kk+Od|J0Y6Piw~3 zQ1(Z3st&3Xa+5H3f`THHKoNy`JAY|9Pj^KK8YGb=0ok1-ip3}ncvG7P!%M+~V>s_h zkt1NC;Tum7vR4U-Hz#o5bXOxqk(f=Bg$N?J3l2D7Kn5~k4mset48)xsUc2?`^z|!o z{mH}iF~d%W#leEMXpm5WJ1IJYs$?)&!b3zfFy234Z*Pw#XUajJppl0kegtb97V{aC z`2@w;J3OSd7TjW#a5*5KNG_6{XrK<7-GhO;pa^2_gc#MzWKugrjnp}jc>4rcNygH= zW#P`(;(#GEmL)w_5+7Z{UfLsep(CQ+iPE&0zx#Cjk>C1k`fUy$6CenvI3f^4Fc*de zy#Gw(V6w+F)ksyqqJR&(`R9;3K)9#Tcw?Xzf%qUus1tZ!|xH<{C>7Rv@I zpirn&6@gF&Huq<>zTZThpPjIE6MJ>o^&*VvcP5w6v#M=d&WubWWf@Uw3Ko@@%`Hy&5Kta(9%uh2IE%UL}WvZ%6Rh67Laf0KgPP4MLK|nYt zDjI`Df^Mnr8Ify)@9dTo+4<#o5?5Tpg)GH;OXv;d)@uh;vB08Bn-f8Ue(y>BzJIW39}gm{B900~ z1r^8KIMIP8PY*cQKVUv>z@ZF6zc*lOZ=2e)h|9z#<_g;5kB>W7uegM zvc12@tj(ANBq|C7jEK`M1l4G__S3K1PyC@y;eW%OTL@XPjF_QfIg91SJc1WMG^_@k zcc;h^P~(9qfcYFxn~89>!_rE{`t9U72|;o3`@p{fb0-OIh$n~aUG&EGx-Cc0U9l?X(g@|U&(pYep3Sdr!Nw# zg6+LMk{QGRE{Hp7P65Q=^t*wBSuNvv#^Af>+25yb|3fG0|Avr7a2GOJTnvw3C0L0V z_c`xQ(ad3HDSE!bW_Q5Hz7XaiI+lG_GBxc>TU{Me8E6aKw_|F?7Y%xNeqM4`*au9n)Fsv1dEfjZ;-U zralLA+(F$@F$#rFjFe@M&HbsgZn*M><0;#poSJ=TSjwL;Br9r;=O9>gJi0iLg`+1T z9ECU>4tdbTg$F6(?A*YMtx~EpiKP)fnV5^?fVra%=I-W3b|d4O#mQnA5}35j;kdCE zN0%SE^3A7be0Jj{uDxcIh0+StiyBd(Qvy~ud_45!YX<>aZ8 z{Ih@h6FmRybGSK0S+cykLOnmEXfW_WIrj1EaMR7&6P|1k6n0Qc?g#P}A z!hieMZrF#Tu%aTE8z%?w;m21wbz+GdyRWmeH|IoAV7X?I8cv@*!6J8f^~GD<-kP%@ zkZWgS`z~AChs+jq*nAp9J2|83KjAMKa=X>~PA$<^^F zLIIZDagN?}I^`(Ds;YRxuasRMpMgK^(^b2MnqNp2Sm% zF_wh3y|tOYOltq#>cTKQ{P2+ejeQO#2P|Si?Sd?vz>rQ=U?EZ!0m0bX*yJZZ{*!#{ zW8cjaPhLfE4h|2nY^Xrl?JyV&srL_Pl2OI*XbgT_Ja4*7F!u-^9Ms(v5b+Sq#Ly(6 zM0{>iIdnm0;0^*fzk(&;Pdbnx@HL46^B!~_8bTG>S>I!tL{^7_HAx8w=4vXcP9SRh z@G9epdaegGd>rd%zk%H-`7*NCZO?zoDY3Z^1im84h-Dk+Lv z6ye^Uy>jFB_Qu80=*;<*iZeZ^Yr`VY3Y{2;sst65Mm-Mp_W8t5{v_Y}9pB0S?z_K> zx=oZt!SDD_eh*EZ_}tI_3@fY4j1Tt_jkIl|HlrAny{f7n4fFJpXAB5Hz&wbfE*b>S zZZ3|imeJ~I>l$1KQS%}hnV;wUG8Vwcf$!j#mw?_HbdS3*$tPvk?;pEhoAbdztntk+}gL60w27x1gjMr&)y+~g4JV@;Zn)U>WDMv&ayw9^XyBn zvpt?u43CjR$>D5{7bRLk*(pi2(Y6h^5ds7?)Qu37gNe~(5ClhfgX6rx;puU0|LI8i ze=6h%Ub=V|+<9jRA#fBTM<6N>mOz>C@hzj8ixk5SonGtX!$dYiRopU;kTpmSVkVfY zyGf8NDd)0~V%l)<%qu%zxcHu9XC8m@5gz;Eoa?U~va~!P^dcF<%~6zYRk1&vvA?&+ zl}8_CaPkz_UVV*TuSaJv;@AKBU(fh(%+BsMRn;SODm)7FrlCxcep!BSM<)NwU<^bc z2q=gG3J4(LhzrsP(#5@t5P;0j6W-$d5;gF*f$!j#mw?Xch^`om%|=odx?O0Rj0Qwe zaf_ltFeC_aA0qDhA3mgi<$r$7o?b2(K72gl(=m%CQFThnQdwE+aplP;uyVk2&%Va` z)&Xq>36TsGv81s`ou;Tl2#PfsJX3^76`@}RR5DxR8OB@0!Fh}G7IXjOhlzi(1kWpY z029Y~mx~+)R~{$<1$1H9`V3t=MqD$m*AJ+Y5X$I@Y^q7sJxB0hA&Y26EUVInf^xB7 zerGd%Ik);-I>$$xIa!dN2V1l(4@;(X&G_(uP<7F&L(Yl)g9ASQ>@%D>_b^p=K&Lz4 zaQz-xgu&7>*RNma;9!?zhL@2^oheeou;6@8Wo_y*HWyKMaT9g-U~b|Xu$;x(mKa2c zh-ddMNCDmeN)QBh%=sGJ;g|yI;C!_V1^1n*pzkbZQ&Q^`3Wb6=;u<8Win}W=f{Lnm zP}lJ2$PTUy{4ez?{Sy~Q9h!rh-k`^HR@0ghLP1?G*xQ~^6WfI)%SFzTp1I(SkZ*ghTz$fA?|9pIu;xYB1x1S5K{|Ql(2u8ZoYnP{qE%x z$Id)-ameb@4%eufFsmPd@o1oo)}emRLkaOG^}mlIoUvJRxPsW*TF7N-h0_ zd&odEk!Vf;Q87~yf=dipu-GxlGek_J3q;&A84v;GE#mwF9fALScHZE8h43ah0OZ0z zj-MQ0yIV91R0Z1ng3a+5 za}W_g0Ot+PFW|h%;4j>E{^?^Pw=@4%6cHXYR~|SA?-(LG4ZO5T=ht-^tf=p8nh!Ne zEbyilQ}z3>faIWJg@v5mTSZb;N~fMM-n`qq#H{&^-M(;g80lHd>~KykGh*3cMI)V1 zFz5$Fg}u#9e)gw7!}97HRj0yJW-#behRC;l`$yT_+~V%tI}CbXm|Q12y^iMtyhyuktI=QvOS-+}W6;TIF2 zED$*xpxdS1P!>(5QPbEF2|0@AG9=T0m?A_$qJ*fJ2Zbngu7}H9Jav9}Dp-dq_Svl` zjD}0}djoFYxXZ1b8Fd&jSQ@e#8}{#wQ8VU?1+&?d?9Rbt%E4sHVm_xT1D&9BLm&!F zlQCW-91sBPu8j*hi>B1kFn)SUdt?{--RjKJuyb{D zXZ+7iv@i`pEGt-WMKMGK@r<~cP(YfyR6(^e&y(!nxZ@xWIKR*V@W%xHJYOw4#6Aqp z)sW`w9|#GMQZPl-gNOxjH!(p?5OabH!Ic6_xHQ$;iRx0YY1nvqlj+RqFD-HU>=~w( z*&dHc9%;={0;{8Cx@+gSxjW&-n|BybTap)y>p9c;lx#w10a2<7dfkG}nX^ca@D|5; z8@~6;?vFkWuka2r8jUy#v94<#w4QS$1YALyU4y-r)s-dhEbWr(kShwNah5zcn7#hAl7iG!5x;D|Y5 z1Q3Fgf~W>ef;&-FWA@xi^izYS>TwEXR@WTPXPmrznT!9#_s+eDfDS9lPu#10t5}jD3l@7FCsgW8OZg*(4gANVUT z!gpT<=N+IZ3XVclRUWjEIWirf*~zrm7gSeI(Cr;^I7?EMft<_%FQViGmfg+74J50P zqkGn<(qIR-Zf>q0Ki9i(;oK4zPj+}^Z^1k}b=%T2r&APk21ClKPuc5m@9qu${@?pM zTzlZ`GHYrw%3?aFZCd)h4)wHPv6xXW7WAS%HmIsIdv&@iDiM`H4gql$ zk)ROVC7Bh3j*4^^!qlxRqPS=76CCGXa(3gQjtBIOA;kF zWhi$Rw(;Wa`Dd>#())YIJH>@_71gyV-Wb^;xlJ^)DMc*kj0Q-Nx&Hbq?C$JQH;L(@ zW>z<75$J?2)5(JQY(~_`aM&l$hwM%dnJ+S{!}6hir~B~Uytx&G!d!xB5kk%}n71ab zSz~ZQcCWqcx#0j(XQ*(G=(z-~m zaB)$vAns_QRhOVHAvmUnM<)bFy!Ey^zE)fvm4nWW*VftINOYD?ar%k(L$yL1w$Xl% z6^T^+E{AnZcl8AGJ7Z?^L@c_@Q$oclLPbssB2I}@xl@$`?oApN$q)eq-1(QBx9Ly6 zfPeN$_&o1Ykt2|lqa%2ck$A6x!v)7rRouBbvqjqw%b?klXE#TqhafpP!BC61nUk_c z#4O$2%AdS;efq6ekFUJ<(I?Ju{)I6+cWdfc(6ot^S}fJH^$f*nlhAfsy1gEcJa&b> z@s!&ew^%G%taau^McuSCZ9|9!ZE|Ldn$?gg|;#Cek;Mnk(2;p`I3c4#Mv3L?OKo{2GP78F4R zk476DjUWn?mc=}zmC@xBPlXF7@mo81YG|7&MQEWL=$<~yu@h(6e)UzZ-?_u7$B*;c zYuEVkANvFw+dItbmew)?1Q&uRszy+!Qv`~lWc}WR?4Y8!J8y937ju3k%fLVT68w%U z@Z-D-MUH?eM@Ae*z~W|u-AmrP(wE_2#{QubV}zXCO1;;m3|T&Qn*F^A|L~vuQ=a?s zE$SS}K-*>}i<&woM4g}zgHl!njl-mFaR*VrxzBln^A*llIA7Be@MAB*@46!TqrA&R zcjrMXj3XsLbBH&07IYpJ)>b>r>()cegdE&jbyfFRcrLPAb~ABF>XxEwvRLF$)a9*> z+4Bdj9xh!tGkWTYGkp5_4JJ*E2gs>mWiX^^6Fd8dg#G{~LD{|%y-t@)mmg(X8+Y#9 zrPJ*bLLgSk$&<%OmMA+N%3hbH)ioyD4f8h9AN8IbbmRF&J>T*mg=30(1QbV95fA}Y z&j@9dX4;TFODqZ}*C6~H0i63X@Hz&{R~YV!^d9X&(XfAzq-~KX(6lZg25}TK6_c!n zixb2>1VZ}Ld-@Pm2S7g?zCo+G6=Xk&V4R`BY^X3_Wyp#?cW7{?^B|4 z9xxH%C`1wAK@$rcEg@pa#zI(>EHC$cV|_$^8@Z{KjD&iJ! zH;Gk{MQDAVks=@wJURC{2){^HKp=6SLjb}^&|@92hRL)hwMYyI=6FQ1h?5X7zfFES{Ab8>KTHuJ7A~_ft(~NrdBuTQRs;c7Qw4Pjh`S!C;~$G^92~7#V(_1Av+oB9rC~LA@aR#Dgjv8Pxv7SbrRY1&fl1d@kHwfb zQ^Ig?-XMT;-;x0W3Yfzjq`DYIIz~Hbm`w~%KtiI5WLIh31XSG-H;wKRAr`pD?5%ey zPM$u!cEws}-r$9Q z^fHsljO2-aw@cCK)25o_FzR=%_B+Ly#U$;y#t1|aiGlTylo4!E_k$Aw4F@x=R|gh7|r?!3(Lr4y_j>+sV00qZ*lG$tI* zCse&IouXoE?*I`20n3>}gdzmGMPzp}W7=dy6&JwySMlFn68$f@&pA3NC5}RLcOEp; z%ux~`Ix;fQS10iFfX;G3vC-nei5;*;EGMzxg%^^tt67$ivr5)NQcPm~ROw`Ae(T=# zyLTS?z|}_|dgwIAx`A8ceO6b`F<2gQ;`j+HmOOuLgKS389q@+9?jFy4{tLYN$}3#G z`UHr47 z>4j5(#2rc5D1%3kt2sO|@54y5oeM_Wikx?)#iMR(bT(YYe5=;mtP8JIp ziQ;I=3ok-CcKX=y$7cHrZoaY$jdJqT3KyS#8hQF7l=H|bj&bL?=V^{gW)^J=2pSY}#$9+*%3#nN^$6hrCm}9?fB??h_1A#!e-tJ-?`n}Fkay0v%^$+5sdvfxR~5}i=htu`C?_MdBS z-TC*5!Kz+;>S5OB*O+QRQet*+!19vt#D%lWJ1dmpw7Xku+_}YKKIi1gv*cvF_S&md zos!e1PBCB1vFsck1f~ZEmB z*x=sFE$6RvSzT#-;rR9p@oXMrvOwYLVhSl5(Sw^CIf~_kTBjW7;lbgJS6+PSi&wwn zJKxt^=@7l4D^3U*Y)Tn=bYn$-ShBJXwv<)Vo2pbh@)cXH%ZVGsy^ z>(jjW-(K_c_ZpF7nX-$h31xKmlyS1VVCuLE4rXXD6}Q-WHYucTm`$ehO$G(lX~;H5 zy(PLcpN`oQry4elR*q2>MrUc6%TGN;uQOtMbB`0JPa;9t-r3>c;DBsKr`w^^?GiMy zSS&c0Oc`~Gusj^T_wL^8ryNNF5j+3^2!H|sB{_~6B4v*E=X_SrogGh56VPsbdLXN+fa=JN^JT6$GU zw+Iw5VD22uTg(6z-r#&ScYY;Z;LpD1{666OfFFNE$Q&Ve=O{!o<3ZEGi@YOLk^X;B zaQ4Sxa$}Fd`7SbRoVk0|RjFt0!PJAh8RBYg8YKrLYobMI8?UV_2rI`2j(=b`gnat;; zoG3+5?h~g|6{MUwoHw|DAb|5LaehUQ0sjcN(7-K@PzZse5DyLxc+ggQukwzN4C(dg z{|D!J{V(0&J<_6;8Zm3a(K1-&h2>^$qYt}&fVh@BqGy)KEsbXxP%|L`Bs)``cy>BH1@&AgfM`m5LY*`N7Y%2-fU z6;-Fhd@&~{W3+q%Nr|@2jAsiFIknO+9@=asn@|Oi03JjgSwn>6*j zJiXR`A};kiH(t2TVv-mX6(Z2@mn@$-M{(sz`Y+z(&W#=VOKXf54KKZVn=f6v#n$+c z!^wnfhKOQh5CMfCPFDlHDzZ6UFljR)!q0PX-r#&4{xEPabF`M0mN*L0%y{5(bE~LC-*q+lX3#uafw04g%N~&8AxLL*!&*IsFdvY{8oH-TL^$kH7XE z7e0FB(z!FM96z?f;oX{|?9nMI`u!2}4Avva%<<*^?^wU|Z!i4|?a7A2k1Q$_)y13y; zPA-y>L9g_3zMuu+z6|baP#7ebeQ}JQfp9!fr|kDhn~^9Y5X1yEQOyvNdIW;t(Q{*t z9Xobv?J_B|w>@UiTVm83v3z`)CqMWe`m1Yfy?mWC$(()YaU={FFLv47nQ(7?hrP*| zt*t#MI}|YxL%`K3L!cW2qi#V^W&LnYb`Sv^oUd?xG3QtH=`+X=@doEei3mp_iU!sdYmg)uky;5 zo~20(=JN$*3|IPt-ec2o^SPi!0Ukh9AUGbgc*amN;))cdNERfeq)SorqA^B5>&Q+} zKT`(WVAd6^6KIW@in%0*tf*xRSv({>xDySHnW#w#qZ6HniXyIDe{qA&y@q}- zAY#nsEjO;;VVF9cSUp4U*lD(|-(b9GIIL?Xiy2Zx#`PRxplzMHZZJ0@PBaHg#8@%S z$~-x55x~J6=MB!!ap&#$V;6+yao*J;Mqv1D~Wy?~(%l;v3PA1G;*w2P`x){p- z!2!GD8L{ef^6W#zs>i7_C%JgxB6rsBv6#(SSz6}1zWcjaTVCRS`r!j!d*O>LH3g$l ze>50$pV*u%p22efFF*_M7Cb|4aScL<*^-xqXkFlzVMzi;;$c-zAneDA=VrCI!}3bR zJEb<`S{)=gVo8Fbnp{G1*W?6O39bY~Vw>D>MyH=R{S?b5nBRMeyXy(dBedXv$5D@XVK8_k7zZpJIjn04KKa&8XJ34LM#~1 zF443tH}BqMI2dy2@@3XH*Lmid&$D+prp?BDKF4|`{a)wMs;ZXjx;+$#BB-GXF5m%B z6~sM>YZ3`U-I%XPE6d>BvSKL0OS`+`O+yB*#K^f0*q#v_ag8KUGYuKhY!WiA*$A!# z$79oYj*-)=W%nstpK$wL%_0>n=81BDLU((gCFyZSD}3Ja+KVq?Iq~vKFEVYE6iRmY z51GyvB!sp}q&8teZ~?^`bt|f<+}j(I9Yh4jd4uz{Ilrp!6y$I5E*H&=2QE%{N09`> zHTG=iVQ(yhN~k=z)QJd=nJY%HV8PY0xx0}u$>Jn&NrISwt>50e&Ge+7Tw9WYZ4M5` zOr@X!$|fOYMq1het*E$?l$Wi8#s{MadT$V1>;Vn z=nWt3lzMtPOFJ=E5i~kPKygGt1Q%SyGNPRz^&*L9(~*)3%VbqHnwkJ)V9S#%B^Ncv zUBpba6(fVXnYM0XZfZ_Q?lFtd)J;5dvj5ncRI4w4>KR_RvB%Cr2))SJa~J6Md#tXV zq*wO1_QFfl^9hS4v2!qGeRoXOlI`6C#Y0_b<4b+CIm9$0We-dd2X#V_B#7WJI*bVj$^r{C)na$-Le%oa7{S+xozd3jPt^0dme9 zg}Ah|!~^&8)4ZdIz^RIU|5@(c0^5mnmP+q;V4Mug;x6Kjo4C0;E{iopleB_}BW-qZBV=*S;$rT>A((qiXk0XzW0kC(J$2%#>CT+3 zojJp$Wx7?5rIkMG>)Z5uLyF0i`K)Gb?F3uXhK>CRyN6Q_rwhiD8H>8*4LN7T0dWe9 zj>2-cV%iv+(*^E=h~O9wIByZa`3mQ4`*k<5zj*=u-5jy~{e6x?xV>ql(perBtPO{Zn+31j-G-%AUb(Z$ z@e7X;2CH1Z_Z)i%`^=imtf{G+8W-UW<{3AqD3xvz=oNwI@9wflhNuG0o18Z}&RYa` z=j-shZeq_~K>iHxLebrM(CYu|Px6jZC^Xsi@4Y4`1j4N;T(Y?fLs)GV}RgfGom}GUZA0+TSP{K z4&ADv=ycgVJYakSnH}Rbqbn!Ewo?>a*)tE>VmqX*@@XDW{IH@3o}pp zseQinBd6kjJm1;n<=3~_S-`ZO5te#%Qp41g@nKE6vCht9&fWTTI>%bJCkt8uQ>V2S z7Y76t!EuTJ-7+%hc3HH>`r#BqPyu&vevb1M&cA{`eG~u5i}2GN5fR}iM2>*}xo3GN z>H%E=uFYUt(O<2+TA!26Jp{$AbtibB$c_Xk&F5R*o$*94!&b4tKYAxxKzYh>=2-u_*I;!I=vW z@$iK+{PQ3Chs^djShgO^{pyMB-N`3g3v(BuIUyhcPgTBB3;*q>w$6V#o+ z3}@Ul>`W6)b`G-A78N_YJM7)qWq&ruG|=P)ZQG(Qm;mk+LFg9Bpiuf%#jD$6ri~$@ zxO1QL2FH1Wz^4)JxbyD-tIpT$M{mFr7hu7=NaP4~gm)z2K8M45P#!wf!zHm;FrQ|R z9T5_acOGCwz)gM_wdE#OHV$2j$3!G^ZE5Xa&JUqnUFK1 z;eg&~z@t~rQT9e?(dA&WV10j|8#ix2tmsw+)+WH%+1;ko?J#dz7Ae!VnOWO1EaKHs zu%+G9&Rt_6gaEDx!6Arb9jeSh!NR&hFui!=$95WZov~ zwxMoY>bAiV+>~HKtO8}>^h*VVyZa5OvH-Y#A(wiYcDOEGeWwNWrCz zp{#0O9K3RK`)4mcG`w{F*fQVtk*jQe@+CIrN(hnuu+OO9p*3T9G@!qHjOF8Jnao=@ zKJ(Ko4SLirm^rZsR8>h;l+0&SZr-}hyfJbsEM^UB{qC7zw>-NyZa1<7z@kGTE-mir z;z5uggq*WWQJC~Qcz+=hiJoYsToR;L$#gz*b60UByQm3j-iDT-<`VXk_y5sB`^Tr| zzXgM^w5acBl`D742-HrM)LGwhMS|NEB8@Rs~g^zAJe-ik9zCOS2 zM&^qblpo?W?F&0}x*e96hYUtTX29mn8??w|VXQ>zE6cojgzIKw`h&e>(5)ej#b{ z5Il&9iX)1vxC@A=m+HAys_flvuyT>9F_{8cp>DIZNwDmq7!cJ}GJnQBZBx*Cpsk>pH%t}_n$!@Y;tixG z0}=B~5T^)EMMJ+RiABY&{hjS>{x8ZX&v!%kvnv!c$iT`}u zKK`YJ|3!uKQ6QVM)`bsUS!FUaZf-5OJAtZ%LD``&VQqPpX6kHhAJ7uW1}PbJ-H;J- zPNcR)P(+-lMiqr#p^OGYX4%%8#ry}V$lWRgSEn(&MJzj>+_0#)YVfvAUO*BwXPmR} zx9{N30Y3ozhy2?8joa|pS!9a`q^c^8LOeV?)EOr81$S=WBDW30exEkAMS%cBAOH#kgd~DA*)>P^wxeFQ**mLI79?mho?QYc5;U7gYp#EN zFa6e?#D5b+1}Y$cyK`wJaPioXPknx!-5E$F^p^%4JARU0r_bK@E{j&^E-i6*Fy(MO zp>7jqPI6~HU(lokCKT!v3Q?3^x1=m8?(R)KIceCENB~_Zp3FTvo&ZxY6}7hYjJpLP z2LYTnokv~*{tvg@KMDMKpycga2L4|v{3afd;c&=Nh^oqiCc-;fsff2QecgTJg`7B6 z`p!m6PPl<-biv&O@fbqRSS~~|;<K0*RFk;dOG2Q-~4_)^UO1B?`(7D-UhF{`Vy86a8jEHWrucA zGg~wa`rcdVb*^q5?0=z2S%naTs0tE5f`9-jZ$PxpW@R5CL#~uXZiU9AbOIr0MkJZ( zU)^ng_rCEbqk!-RA-mHN_`ro@jK_(WZ*NhDh-MIA);63d)>vLS&ieKN8Y_yPlWmWj zGmg@P~Vbqd5sAAZs8;)!a0h02U#u8v$^> z;t}D8t~oyq{LjF9c>8|iE%!h4i10%^0PfCFh#Ubm-sxOHY^%ku@3VSti9y+tQcLXM zGItZlK};=J5X%J5NjyvP9FP=3%v#2L@6O>XyLYyBk6paDIyx~VY$X;=;^kYnSy<-O z$zy~z^32bCinY7j96SFIFTe6-c7A5e@`+PyZEf?)D=*VD4Mi-NOlHhyGde|ts>8gU zliG$s8LpHGg4~nAHp1 zTQVRjL=l2GF(_3L=$4T-8{$O5?#HOppgcB{Z6nDZ9l7rQKc z_EqQC0pADwcf5Un{+jbsmxX8eH&o;ZnDdS%Kmgi9*ndS?d1S!q@}946xtAJ6CAlMp zs7r7c#4)oVlA@AGq~MauvI=#R)^~4h+&=dBqpO$Sca_h*_!(|*Y_gX#Y$y@t+moREK;T=YLNnF8N>Js+xF+O^PfZ!gtv$YxPUni z^(t1S;?>tTXoyt(f;Jh)M_r!0e3{!jV|ph}a^>;&FgSaU;<+!=+_**B8>1;<=9niC zL0pIusiM=Z0!2}>eK7uV)B1q~5pit|NhY2O)C4oYRK?rY$%cC%B?sr1_mD6H{`>33 z9`KiWdrIJklkj2w4HY>8s=Tu~h(I*Rw+;3eteyyJ&QPoF-s!ugX!b`ERm6u}K#h%vHue8_0j=ho}5bLZfY z<{&crdc6+4#oN=E0Y^52HG^|2=XTaa(^0*C>E@FX)5O5tHwFQWlg zOE4>#YP)ZV*XgZP9~O-gbE zm0*!X%*~rNt~z;i<%`v+h3_ghPiNQe+Q^ytK3Y1GI+hkz7>+9@Hf$iez)V(94MxPW zVrF`Z?Xl+g$uq1iui=8jc~6$N=;Q@jjj0f73@0$vDz5AKFj*z7%u8@a@Zd#o;_#w) zR3qY?C>jL3LPYs@tM;0O$ghiVz2|Ah(*zKpvBZ>z-P3JGDKP>Rk4ph-BHK4@W_rU6 zTVHzd5_@G!43A*IBHCdNfi402#Rz~p#E z`x|nZnanu8)|j@PNe~k-@5NFw6D1**L}K(#BFRM{y3h_w%frWx9(v-5Yl^F`nJ^<) zK!ub7ON*<_h@;UZ%F1YWHn3y!R;mUDYUFXJj#tX+(^HP96WN2x{2gPfz&n5 zIYP(~GrUCtiNa<0EMsXnyl=ItPn#nXq4M|`)S|Z(4NVHkBdQU@%mO5gm*gr~egb|J z_-#P=+6v%TF>d1(A|kAZ(CKuz(1c5cScXY+qL%hT!^REMcH-2cByT2OjHoJ}B*A%! zra@DR(j+vbK$eUYozJqtn8o8qPCS0~wwY^Ml9(tm;z~nwIqlFwB%^MOdS%Gc>KC!> zFec+mWP&eK9VeXOUaXx3dx+PM=YtSfM!Bc1LLLH1OM$1d>D8aFV0(^fIIfUhj|55 zRmFM;-ENl)&AjJQAV4cAr%#yWrwXQSY)iYRRyK$W4r`JL28J4{h$W{kIVCwX3KsEB zlXyFMV(m*!nclW}^F)}MSRfu+rO7>U(lcxl$r6nzYr|#MhGS+oZ)MA_tMJa4p6oI^ zJI(UqJd1N@n3|fw1)(05I23%&sE))`Gu6%awu0-9RAc6S5C|9oc*Mke5g$cFJ-^!@ z|5!ABiYEzA5t*x!G9)g*1p(UqWDjY@_fF3P{YaG+F z&W@hIx|x`Friz+65-EAZOz>^VpY;^?jl@WDy?!?)^#5-E8f|wFTE9cbw0^_p6JeWej(aJoX;ArQb zEQydXk~$JX3QjatmM|9XK;C83J8EAL_$5=4{;1=85A&RD@(ovX}%f0*bi=E($Jys+vAYB1k?Qa{Abb z{87ewDKOM$NxV#<%fR zobU_*;TZ}zfvdU&^{C=ZRYG@?W_gvlwIRI;$LP>eyu!rn45O8Uj7@p-ZEvO3?efV# zKEPUk$l}T}!*NB?F3@N|qUAlEA`qNoZP+|sM+TvAxfl^7iIB{hCPTfTV95*w)Ik#A zW!Visb=dep;09itpLqg)cen5bUIhZ{z;Q{jHZVL5%q5w+I;Wcrt*O+4M@^kL3#JKk z2{ScSq8btn7fmI4d>)PZ(9xy)Zk${BwwYGWhIXJHjfmF5`5YBT2n9uvQ`Tb!tIL%A z0Wlg$921=>yceb?CK!|@7=%10WRBR>WLb{65*7T$Ui-Dn{iXY&gk;|3&ZKhU!*Urn zo~hzLQR59FfN_=p0tg_0@Kp>9B{ zt1;JHdmUHp+QSzgdYITGR#(;-S2coQrQ$4+=SCpW&T__enqTNQ52@juSrj8VAz>sz z)HzcFOUX`H7- ziz}QU;mo+YWu;F0%-AG=@gxBO1Q0*~0R%w+;mgdJ48oR)9wmu|QJ?vGl`>>lo--=P z5CX2%W^u4ee>7rhb|a@w%yHt_8R|;u_xm^%g3kaUH>2eeErHBsERCASR?GUZ&z#4! zbfO7d!bC+#UPvM&O=70186*d$ynK7%a|hw)fgk6^`L@IGH}=B6;1U;D7s92-SU#w> z^_vUXvN3XE9;*!+Dg$rH6`GQ%VTPfA0ttvFM3o}+ht<-_(@S5v=Biz9*>%MVA$$izcZnyMxV)OC%+5KVN84q7S0QBAMY z-P`N7cB~HS(_nsXRDb(g6W<4PMFcZLc$xsh(}br9AOeCQVmO1HofgtGESEKv3B!~q z5uySpNZ)yN)lCF(!_>M$&7?ql+0&oETiK`mLKFz`j*`{?BI$A zPtrL)Mp7ihK~%&!NJgt@v)mstD97CThHqqTwa@Y6$4OO9Q`h(`AYQ-(5l6SzL%mRq z*O+#MnThrdr~9J^=7#CEakRe$0vN*63=p180O4r@h=7@q0oP9VhziH%7FcMEk$C!5 zO(W3lOdwf{QWFtJcXE=ls>s?6j>u>{#uNlWQNVDbv?OPu)g~&7i)(`~;zgWyNmP1k&)3n zzDjoU43iT%C)T2M+enjY#C4K6@1l_mqGFjT2{Sb#A*KpCHx~~tt&aM$*Ke5Evv)Ha z?mxwH)8I*1a0V$A; zlFu=7h#878u4|fVL>UuFpiau_u+QpvOdXXvC7P7Lc^pCzXa%9=Jw62b{n5j%I}Ps^&LPDsjNRua)7gwnI zLyD%M+bTMnx&@<^AtJ(49AG>}07FE0ieL!f1RNj&4iGT{uzRLUZ=%EU@p(#vqTOL! zHl!xvoFG0UDMTVT!Nd`p1}8$E7f2W(;z&senUagp@zx9*zUbHzsf z@Q;r$s!Eb&NEXO^4we`X`e@zI)D@@CoTQz#X{wqGN7+Pt$N(XDN2(*ks-c^;2r(xF z&lQs$POJ`53_&Ho{yNEvqQz z!IGL_Dkdf-CZNtxpHPR7-bs^Xnh)2iXh{k4Gd^k|svw2uTn_M%MAfq)Zn%v#p%9y2Lp_05#(* z0Rcon01D4uQd5fsfM);oF z-^Sjnujar1_y5l7${Jbl^ja;-UXLQnsA7dV2+q+89yQl2kD7x@YMg`&r4fkEh#<*C zRWKD346}rq$0--U)wto~=wAi?kQe8jz~AN)6Ich{xFiYC0#?_s@zEsh*LbF<0*iyj zaL&XOi#481ok{{xLy{oTsi{*mbEL759(i=}kt2^jF}`y5&h~ZNX8H63M_HI!r!Hh361P}oMM8F}42!-*x-#W?vf7iyT_ntg_gp((ih?a3|Zjt4+l8qZSB0gtg zVuFODw`&*I@7c?i&71kYx4)eeCr|P4Ltnz73|3e1V&o2jMKTi#-=bDMIBN7Xf_P_9 z)FlThU}Bg-!YpYtGsOg=Vh9(;UgVDsV!s6Z9lo~rJdXa`y~qJBAwgBS(8Rc830MxI z$H%bRX3LIg4$m!6j?8i|5}QV`;6%m5ygC&H61eD<=&Z~CS;5z8_A|J#4VGRN}D8l!Q^L{^ZhicBC6j+QB%+|wxnC)dUg zj$&H!E(>B-A`(%eh$TT2CJDjJRK-vS$uNuy>K_8%1zg9uIpFUb_CtIfM1=JaCMG7h z;M8#`YhmUM*#zC|2rn@rgt8 z55IQv%uQF#OmOWLGd$Q|K$B6H4PHET9Z5dnJ6)P4arlWNO!g+Z`E@tZUtOg?7*lHE z(9xre%NlQvg<;KTG@#QCq$F(Vw3#U~#!ZPh2WC7)c#?o1IKT-6WVoZ{e|c})e_pHD z+B7q}r|p8ASzW++$3(Y9ksMn$Z9;?a*r{Wjm|Gw(+DuROxMKTOR#sQ|qd)#MPaHkY z)YL30o){Yff;Z@j&~=W?IUSbeqvOapFUZA+fQq1EBr!_}W|)bf-cZ1}z^;Y)N5FEBGJC4lFgf8u!z-TGiPEhDc%K>go$Yq zb>@tOS@fpSizM%yJ9T39iz{=(@0spRcDA%TOgLDpNAw4tweg5LCMG7QX=|IhuDSn< z53;hn!rQ;|ZTy*U`ZM%;lN>&AlKF*2v`MH!mIYFiXmX)arHiq-lW}TT@)Qw4%y^n1 zfQXPedH9BQ_DkD~Y`&_;R`@uxclVapc6$Y7ldvST%y14?M?+!&^A48G2vsryj+Q~kE8RR}G_D@$539#R=DawGVniT1B?*`y<|LUZ zCJ6ze2V))F03Uw{ei8UF&TRttDGxuuOEeyjSr5U?xX{!YmohOZ3^=?be8Uu*W^+#G zCH=lykU$7QQxp|TDhU-u#Z}2DcgR_>-S!h)eQ=CvNkTusPc?M z%PS1(ilWn|)$VfTl~*z|ImPK?CuznFxdtZNJr>6!24zJPBMvA$bTXr8=gjx3heoB% zWm%pXj1fy1NiY>i;w?EL5m8H+feP#Dr+_~T+{n3o_d~Gr1~|$~;Js%(1lEB#<5DID ztpwx4iS|;U)pFJnWGI*^8YE#cs!Jg`oH~dOf|w;BVlGJtzO3Tv$(7NgH{IC2`iAL^ zTzzt$gQxmbnIU3`2TcuiRZ-*xTeq~St1+X&8V}riFD}nHdHfiw%S-s+$@7eMt4(mz zEY4R{T2s{(o7-)=!7*$aL>vN`fFMjb`A=`0%6>f)5uk{s5>3PQ9h>%U+PtYX_rz&B z?JkopqbVb+YeTBC0tw8|FVpR|x#e{?(_dQQrt5EH)3$9qar_ufT@$<~1cyaIG!ZhR zo#&{D4x4ybyfjWi7KsrwIUymM5HvWFsMDC#a3nyD^>aP+A6EW3@IlV44g9n@-pM5( zunruTIKgtD848^6QcFSxSSxc3htZr<0?wiabC7UqE@|>c5=eq;Jb5;pIe(V(GV8o8CTPcbH6Qhm^ zOGdZTqb}Dd>%??O%oZ6-Wkh(AfP->F=6>bIZuo?VbBF{%gQkf0^sc}0>eq?SIC$tZ z^J`<4nlW>u8VfD1*t(6?;h6r~GBe$cY?_+p%<7P(g#{KC7a0vlWFg0;h9Cx}q?8Dm z&~0~!YA2T0#)r+E3r?bHiiRa;B)lb@B`?k-VMzf;G%(iRzXbjoa4YBb!w)MzalPXd z7rDTCNW3bvG5FFdO=@U)XRWO*8JA<~QmvJHqM1d*K$D>AAq6D`&?HV>DBPKq>cJDo z=TGd}yy?n~MM2L87Lw5lIpe0Jv>FwGBvj)u)7=i!6BE4dwXY@M2q%SIdv-H-W{$yV zh?wC3?{gXx>ZEw_T+!=sY;8G2o7=R4WCbrXw6jxvAh6cGVaiabLt(Cv0; zG%*|-oh+x*>M%DNKQ^rOgh>{hYMDEi#3VUE8`mUpm@{VVS*!WAp zL!4U+_&JQf!bL8K2$y{w1cWCY8d-42^rk>e-iq8auA@3d9nm>66I?<Qv6L``Ogu%az_oHFyKRD58VpAd)Q&3iK8R{Wh|Y-KBq@S9RgI>Wj21)>$&8D_ zo8aNkz)t}Gm~;D~hm9Y96P)HnFf-Oe;Iglq7)C^T2x%!Y+F;h52s#=@S67MPoQhZy z3NOygnIwdik)kOvI*JI@;$r=U`l|Td8zwwgZEW%AV2PFFaG8+h1zDC8>lzGP-U3UU zI(dR7Caj5cdR^Li&R{qoHj$=oXcsLeI+Il65o_Zy+owD1>a;4lFAZiH;4o87 z>YR}|ytG}@+SDzsn>&1*6NgV@E~nS)vei4L8<_9+In(bWB(`kd!50qP%i8<`uetuU z%*@O%zqUpeJPtz}r5RWBaz{50bhC_D$5X4TqX)!i-Z>u~8l#fLP*K!5Q$Ph#z;du0 zFfJb74nOw^_yOP+URWD=XB&Qwi&$7&TjN5TFkUT0fEJL(P>yP{%}#=YRI0kR6HA6S zRl#XxlDuhB5e*PCRFe~18tJjssyVr5=hXIV{buexy~^TBL)M)j%epw{sAGdT&+2du zFt%*njth=5HJm(gf^OcTa2eyKL0w>RFodM|te}h~O;vK!hTfS6&WxqDL@urXi7AOX z!{J>pY0_+)*$sJi)g$*m&LfYVVy<*_HULvVtiR6Eo0(+Nw;5Iut(UlV&u(^Z+)5gb zkp>=n>>!<~DaPfPP~_xUPF|P9ai1zFU5Vtt>L@*4RxD*jK#U}Y1|%V=j7F7OT4+{jH=?P31( z9BXq+oIG`!yuU`7l&UOg=Q$b^Uj~`aq+h&I~a~Ktf2EOC~6er?+p0g;cEyXupWYQjtfnMR|^A#CkbF9B^zPwc4nis z$~2i3!I=}YD3X$MDOyr5mV!x&(1hT#kudn|@zu4PcXjD@dR)D=%d!55lOv_khIU>M zGEa#yyI~5NiYJaAWz$vL>9pHyy>2suxkdiRAN~>6G{o_U!V8Ua)J>#uLc$S(pPFnJ zyGP^kqG4Hb;+;S;#Kj~UDYk6ec+JKg8~o=FpJ6pdV%DN+l(p3no)RyC9ox3Badv_f zD+a?g%2;C$4DBfD#()1@&U|N2C+U!=1t5@L?dF+j0BccEdl17!#mRq z5*Q#{jBX?R{5`~X0B_)hy$ARmz6LX6Jp?X0Z~PcKeKBUdE#{c3%(A4WCP_&?h-eN8 zEE$>tB=z1t)%dshGtGB>=kl0acWvidgA=O_?Nx{_XKH$u%9O=&i1#_2tj*r5_tI*& zS?e!wYH^t?3rtK*aO&hKip(?FYGDZDGEvqIqslSWb8e=UUp=q(Kyr8!7o36MB-P`l z1Wqn5GgM`)4N(Gu$7v#?HTh3-W%;Ycziis&gC|IgSO+3Pk)A^Cr;Ao4LNl36kFpUXV#Z>zYOrQ{Hc!EIPZENAY1yGH*#5l366*y=B7{n`Wl6dk@^l+MuNJ87|}m z$p}f&l(_b)oown&aPo=ctgMdEWQ44sF=J_Yft698QA|{IO`hdUjBghN>4^O1NK{tAD96zBM@EDdOO8Kk~&R3*7SBoov`J!TpDha;6+Z z(IRhkF&`MmL>dfu_@Rfn?K^H~ZDEOzeE#2a-a6V~XyFDy^n%4b%#^N|z0}Zt zr6Ip(cX`F@`HIO{SVGG!Ah#!<$CN^^cBh5Ne`{b#0ECi*2U0+vAjw=RrE`hB-B8) z$Om;p(ZHJ?d8S6Ry>UHoB&)IaHt8`;syk(*ooCAzRe0JVaa0aWx_x)#W_|OgRyY94 zo$-rOgOCJ!j96PJZN6%*irr&2O$4>MA`8X6fpqjJPSI>%ftN>P04$mjN$(vix(HuV zZ@12)20vPUOob4F)tPntFZu0VTz>-_hbO-Rv;|WN0IBvDqLcWMEW|>$(qZm z7yvRv0?B>i1;w8hepKYBry@utyoA*5E{ACb!L3&Y4&>J#JV*yImey= zUH^!%+^bmWP5%7R7f0REUc_E+7qQ}_xo({?Ng@!_oRO*fQJrnO z;|CR(bu5cu@ZekUl+fkx&szigV{c?xvUJ)`a)*gd;sD#qq3k3w6ETl;K8GXXkzCl7 zByb2sR}mi^GTzhx1r52k^;Rx9@i_jZ8)}hc-HVVb1uBHa0^>kPOhnTr%8C^~!bjg7 z{=Ckiei7?Lcwooz>!5_@h(8O@(UlJepaMpt0E4y3@0^P4Irz4l|#g9ZVgoDW)@s2$c8fD9{vSs1EwDfUJ^upw$vvOCOJPs~7{2uV5>CVa3 zzFGTcG8P7++3AIIbsa-nS)6!r?G?g$!xTou=voZ+6xH<$tPKCvT(Q%c97Bum%|fkS zH`(>~A^$MMJzSEPh;`ibDM@v}`0EM@bTP@?zR&bGm2*vA$5}40W+Emz{280;?(j)+0tItx|J?u%zCHv2 znK>FB84>qv^x^M*!n4(%RllJuvv1BQR8I#w|CF%xVg&u&`O&umOVE_G3a#fF%s1U% zlGq#Tu2%O`^hQYWBZ#YO;&mKxIp+Q5OilQfsCd$jH@+)4@0*E8N-lYQ)D*vSeEKmI zV|;2TnM8<^B~D3NI&&~9h4*6E?=a%42dD0Uvk!ZfyF8mF1}b?1XREGId>Tjgpdd z&oo63P#AUkrL7c;enwIGR6BjY()sD$!oAY((mSCdwqHGz#8YV{jsn4&c$E(Z$K-TfwnY+d2J&`;11< zX)c9)`XTB5T_FRaahEPnwM4j#{8jN5 z^_CKcpz1uDR}sugm-JVFCo3?1M{vfDz0c>eoowR*ZMH5u^L-Vu47}bi$^>UZo6)^N z_?63FYTtyyeBoNak6nC!W9V>V5L0sTz?D(+*9C^VASweCl&pH?BZVJTB@?xd(P~(g zaIKi-_R1(KGRng4X6suRD1S6J(VhwB?vnZ)gPsB<3U_F6V%8WCI%PpOZMJr~> zF{R8;c>*@@9SK!vjd({~|NB>q*ar&U;Tzg<9WoqSUqjHt^N&KlIqV-sN zX1(iFQp@zZ>D%@-p}h~oauq} zznsLvz{!8x!+JQsh4mZ_QS6H+p$-DUg~KB=TZs?Fr6TsZx7i7QllHwK8XhH(R-lff zGl{@g60@`8ETw!e^7RN)&&cPLkb{v)tgR(neCqTzfE_zp{&VUM#Gf>(y`^~J^DTf$ z=(E(#SNWe?C;*}FoOYrrNtkz{m`I|nkQo){t|l&lw}qq}^{@4Y z7OnQ(MfM1?ys}Vwl^qE{!KyrOVVL}=hJt%Rb=-TGweF-WC8|pDWDzw)eBx>y^i24O zZdwkmE=?V7BL!q+(&xaF_qZLEc`fy~L(Ol~28`-I2 z^#mRe8jp#D5HW>gBqKF^6}778M1%<6)O%;Tb(yapoKSS&c9-_4)USTbHCz{l`9c#- zcGvzpW`V_)My3%G4>>devb{G26KM)l9)hV3@r#B7M5C+w`OXybO*dn51##Q zU=zAr6`Znb9^dR7?HPIujZAD&U$l?FPM(!V*>=tN@R^a3$zzXsjA2Uzo+K?AF>%^` zk658}pW@akk}T0NT_;ak74hs*Y`-7KK!Ahu``*STxXRb zyp*U(bIs->wT0R-sUSK5aM@;v%qt`BHkw-<6KYK&K^5=t<xLsI)nQoFQD{gn|0=-8a=5kd%;|C=SD3J>P->K_h z2h(_vuo|v@FX9Z8MXBB1iG!(4-3%_3b3=xPzNvSHKxaSi?pDleh9Be)!5==Wdbxjc)pqN(@sbot zo4?&*x84fFPmhS42P&n@91$DZ=2qC)`i8sM#J_ghRjbv#ZIi(;trxyr)Y?*to27@ zI#hE>WkeL3r4a`-N3le?b?y~ivevSplZcTe{u-)3E#}OCLinE zTp&`yT?b-gmf~?MYRHwUnkP5A<_Nuj+zx7%1YR3cF2-_mt@ZXJDw#c}*(mLOY|^_m zhY8STGe}3`u5z6ltdIZl$4~|$O06ADe?@ut`$1A`9Ai4Me2KwuDxFs$U?76Uf(*S8 zGXqR6#4d_rK_8xClN)Yrq3@MR&W-njgjI-< z;&WX;^yzYPWgp2PjZj`<>QK0-eaqLs-WP>k#Ysy%L{6LxG$Jy+%99ZoL+Jy4#s$Us zm*7=Fx$j8M5y*vdjL8i*2N!}-;fbT2JJmR69upt?UN~H~Js9$ivW36y5l}tt!Rd0l zN6W?4sC$2Oar|cDS(|9!p^3_(3oMBc$UcwmS=jx1&3iBP%p7r*I&&ddtvS4^z0A-~ zQYuq+A(2gH(r6{#g5tE9D~un8Y=+6m;#HPdMdHL!^lpOuJ!4WF^ejgbZWEJzkKB@D zbUXkxBO}AieZYey&Gd~0YGHwlFf5ITJ{EZ2U;eT?KyA;Xa-^U>vWRguya;moGm~V+ zZAQ+a%Q2t#Ui}OFP#<>(`Au>K<$PK0q=RteCfYm+&$7CPI`7&!Z^&}FrH_&y@D@AIux|~7K666?@m1yR1~WWHKgDteqD@Dp4cIi9{6_iN^Z_l_If zLiqKPp^=dZcGxYo8D5z#_A|;3ihmpow(Vf}U|mk}(7YW|`;@}7Y(fOKE&-(LPlJcT zh1G0${955BUqJ)pYBw(Hk`vLc12z()>#5Vq(uPX>2u*9psHp*5{#NWepX&hu?6XS8w7j4YI4mx%pCBOQ zBSgV{Yh3;WKw^=VtrxJBcF1w`{sR;<0tK6dOTg;q~tFbTEHgIr? zkFOG1IA9lHBE_7NShpn4ugf;fwHeEHS?TzsDIr=$<;;ra2g@-eI#IEuf(kfbzge*8 zfR#PS{JW3m^ADP`x>fBqlQ^_`QbEGcHg&{FF>SKZ%wIM>cl_;+^pNYX5ozuijvD|* zSr=M-ix^d|6$`_yj;0gcN^>AFVFj_mpP6|B2;P(s+O0p!my9vs^LSJ#@e{M4d=8sR zG^NhHs+@3p7t?daPCFQYT8A+kWrq0jvtRn}*{472%j9%X@FnkgPNafhiIy=a0O8oXxa z<*aJa8Z(1_%2Dag!y;og0`&MNM@UFR#W@&sfwz_xVU&QWStc?7`!-1WHtFHDp(|wy=-kdyv8W!}v ziTq)BcBOg-W4I$i!Yc09HWB#WIQu2A6os~LL$DKq{EBcKH=sokC6;H;WnA)0&xR^| zY8-KqRIX_{aLLXImQaC_b|q+Bcu}6gu3sW`BI_XZVI+)-gVF;Dyfj!t+Q+8}4*uR* za@bPpBII5Qx{TcvKI-b%utLLz<>!oqQg+M(^_Q=jQ;~xr|03XCUV&+lpnffVI=>Xq zu0E z!l4m5(Y9VQUSfhQ4lZZgZoAo+3d+N;5OXlqSZIG&07CzgrL6FLjO2ktjMoI%e<(d} zh+V;JEAJl2I6VwPSLtCe&@e$ZiDn@0%UQ^qWF~TQQp>Cm_DID8agB$|4ey%C;HxE5 zNewPF`g3%*O>bVKKPIz1!pgsjQBrz!~+wGed@g>qhd1AMh1nh7-A zQdLE^18Qv}hVqE`M9)-X*S%A{h%>zjk;`5+01;9Gs1u06A}64vH&rCfp1>%n(~T+c z`uA~(C{BvzzyE6t3_OZ8o=*UrjDIetU&NuovneQ{m-CkELFxeUrB|BLH|M0&_S`0c z(hQ+t9bWEX5xJ!ve!HzamI--&R44iwc+zlg(sdjAhV3yRrud@`7#P*le(=VW-u02L(@IM z?Zb82bb1MJP8w!+_7^^Rw>bY^BtNYGzIQvc+40?$djA{}c6s#t&>trDb2sl8GnLKr zq!93z%vlkwIH3(8u|AC5SREKTUxmz6!)bh-4mQ26s)#%SJ+!oC*qd&V!L{HC_Bo46s5fI|Je+n5#NTDoiz^_22@%Ve- zkv$2=f~uj*ii9iELl+s!5LFiIO8_d(60aBk5xZFVba<>u*x!0?kpp()0dn%xp@|;HaxO3-^#7w}=CGb1mgD>QxuvD<<*Dp77(9A$BuVtCJ z#P=khLkCPXxDYG6n(0T4)2q=W{rDN^szqZ0WR|RPD5l?vd`7+ zF2hF;fqq2w|C!|=7x75E`%UoJ@fi%ZwE8m*pK-ydm+_g> ze-AgAV>*LZ%Y^aYQY?CLGOky&2|a!cP&N_Kpj+m|d!0S=^ono)OKPY;O}vg++6mIF z#Ucjj@FG*Do#G(*VkiyFME~{UbqK!fwh|NDk{$@q?-0VCAlwI@r$dVVL7oCS7a&8Q zjEN{uk&x5;HPS$qK74p9kxi1GGZ;iyvm(u}Q%SSS-rmYsrm9r>_=@+a2=LY9UCVdy zZZFOe>G4J6iA0oPwvA&NOXmejjcmGSIX7<1$p7)ECz{Fma|{ieJto6nwhe9H@f4(d08V2o-lb-I zUEgy2hS7tOcorKV17-r@_Ea|K&NtI>OKE)*QdsSXcx8G^9f?TcUV87c&8@IY&T-Xt zEr?5Fq$EM9=Zr`wO5@Ots(z5HIbT7?jq4mxTwHV3eyDRha!|$sgc+L#Q6B6U z%8nLdyMOVq>{h{%Q(mp242!llfD*t~UX74JV|+a0@wC|HDSp8Ab#eLQT7I6O_qQ+2 zby^Gjh$~iIbRgO@R76swCHZgp^HRZ?S_VKO3FrQ(CGY|4>Z!p z+AeyI;*q1^dEAzv^keoPA|L^=3?Fh`y55*V3lE=K@)35fP3vGY3-*+mzKYiBRdA_DCPHZ% zF3YlVHq8+?K19X|Sa8ymjpTAe6kqG({#)uzu(0R&9=bLEo+KlmGGZ5)9u1pAwo>;V zg@DtxMofi?t!c4|my(*khu+Ky$5YlV`;f+xHH&Zpm6#BaBu&5&-yMcP~88bXPWQc^>oO9)j&2{2ZAj7Lwd*D9pq+PSFWwv*3zMxh>8uk|1NY zX_?PWkCE18us)MOuPCYVC(u|&Wtroe?8vy?(LPTLiM#WM% zC)E%U>f61YHuII3&fg1p-g4s;@{Q(L;B(pJo|;&25N;N=YOgb?Q6rklZHYVJOtmSo zY)oUv<=7hmUKb?atNVCHSBre@vD_j<^3qgKcZQJiILn(|m$1arf5?b-%%;JMr2j#j z^P=)!?bd6Nf}yEohWgWF75V~xsKRlx-sw+JAuG!ZqgVN)kv0z7{eh}5pr`rWsL6goYS;zeCF)5 zCG#tvm{n>(3`X&L&$TTM{pItwd#)LxX7>Ya)j%&Z@QGg0PRG&S#^fV0X8OO-SnG7{ zE5Kd}$V(-YzG!booc|NKrfrQ2M8oA1O-g1eLpnMw4m1|uMl};zg&ZSAB3UW`$i;z4 z{GJR@0XXgW2sV)%dUl7XIuYmcXjhSq#E=J3f1>wA>SD2=)6)bJT6cWpUIrWKWDf>bAGo&R zc0$@Cge2sLRtAbLX9x@G-P|T7L#Ud)?G8j}MJnKWLXTC#tF4Z>(VWudY2>*|DBDiY zZF;#^<}9W7+V9B(-T$>R851+<8eM6k?Xk$p?0eb}7T1725gzbmuuFKvkL;$_cDUL4 zbWB~Zi@(f=rrKw+vSTCD^NCZlBEkdWGaxRzYuRXd6n3Di2h$tSW4clx=s>ay-4VP} zRiTpq?05LE z$7&ESAC^g5M2~ri=#`v32b`qXs8~;IzS=F1k|LIKO7O4bN1d0?z)!Gimmp+LaWaP8?qnH-|L%Sp3oG1zen1lQym=B<^EZ)~elH~e7~;T^bUu+5z@AOQ zX^vDu23FZsRaIB1?db&ZFR&AGe5$WsJDXQJ*D~*2?E!rzTk~8Xs2>|mR2^BDP1>1` z&F1D}H=;|P&M#Ry)e#gxE025cg^{37{0k)5U=gLShp5G`K$y;=#RAsxqxq)H#&)9l zMYxy$c@M;cU7HHZFikp%WKIRgBJ0e!lX7PP+mO~rRgfp(Chb3DKmtx?z4|6b_1+L4 zzV`%u-I3^My4W5RKaN6+mHAHpi}!PYyUO$UN&AK%xdOhMl@mWOmYI@pXjpmn`$;p9 zv{5rN%Jx*vE2W-t^ZDo^@Z0vP{SXsH1QUU2@;W)ud$ST$N-8U1QXPRb0y20krc`?o zmBf*D0nJ%1?qpS3YVirNVQKAf=_!)Wq^5Rt281d37SE;VEUnXGxJi5L;qurz(w zw%IjRENSG*IB^2mFog?--8StK94DZ*LSn*vq1PM;+YX~lu#qgd^!*OsD&Kcr$+RRU zs`A`~(>MHbCnuI#eW-j0AdWB=XV*Z#vMa&3sT;7UpsJqPy2Q<+#D&aZO zr>QBvJF8H<4i(kXrJLgeRDAyu581RDK5emKU`>Lf1%|z&)oTSa~ zU8_1=MxSbI@Lu=WtP&rI&yw&cf*EA><_mI*fVs4iP}C?cAjrjfDK@U8NL>zjp2j3> zjK(|3nmT&Sk>(2$z!b^E0{Q?NxU7eGPVGyGDwYYxTItB^;gq1X%U`E@rfzCC*`bcw zbJ73TXAJG8V$}aSw7(h53k$*ceRTNr0kW+cP1?vVgGz=`XRsHoIOf01onh8g2CzXJ zuuYf7OO?h4sLbf%LQ4sWh_o^*MU8|OjQ)VEJORVcy0SfE;dGyp@aag6b)>(Ka2pab2+4)QGxFo(vREaZ>Qx-`^dsazV#<@~#8cX);tOU` z4oazBPb;u-sw`NvHp27^ivo&H;dT#IAlM4~LRlEq19Jq1Zr&v*A3U~B+Td&V9ZjTrVycXxv+2H!Sl*iHzGd|E zRPvZ)`F?gm+wEhyZuevrgM=$SrxJ?}{Jb?)k((LQ#Ay^qK-GxQs{A+DsT(cxYT>Q}72`sz5P!v-(Il zK3hJiCIJ&;32XBIEbj(AE=s!^IwLt;we zOCZK=E-UJa6^${8aN_rlwwFd`ErP*XEkqQR2db+~^byjCAT>O7zX7pqX9P30U||lX z+T=L2nYe!)`dD_TU^Bd^jTAFVuZYJ`oIb5A%}XcBVsHXUv%pkZEYkS{@T{@i?m-n9I}i$FAvBw=+*Xe z=N=bf0Fhu=UAqY}T{=BfQnZbu@Sho<|5J2X--eIFH5Ll8Gp3RNDJ>aa72y#IVPVJv zPXFx*tv}n2)EhG_$n}PzQRXl~TC!Tj?y|Hxe#IBXMa3I`noUQThzx6=z+RvsAsZfA zc_w*m7UA@J&5W9EyE|OJ%E3(Qig;4uIb&qWVZN=g6*sE6J4uUGI4dcxS;`$0e`_i@ ztgFO(56Ye?k=ICsn(jg)f`o3Y!ofp2*N)=CD(g6_=r%70gLc`T|N~})h z%Rg%N7r1q~1-!%D`Dk_g&3!p6Fso}$dShs?vsk2k{BjxE*H3clm00Nl*8y!yd5*{7 zl~J*?0746@4XH2f$R+t+e|rv1h~E#e+47V~?%&Wlm?VrS=?D$FCl4sM5VeY+CB z`!y51BPYJ!@E@-(+rPx^spfqCUwKgOZuWk6y$Js4z9lNyhx9hRQDVJ|@f$V24CFfg z1rt%K38n#U0}C|YUlU$EZ%mK8`(}T-Gmiba1U*k&Q)0am zm&*A)%{ZM{`6UV>NU^`Cd`<*?{)gc z_q=28m3;BBr;zlCn+YVv;NQ4%<2RmHaY^!`JNxVzucV^ntc#Y4Z3RGuW?O%?7Ie&Sz<%`E{` zffy1UW5cgxNe}C~T^!5DG1gkiC?9FbMP0=0w^1OJZo=)1D91{7jz_~HUMlp0RywK7 zHn=jqR%jKkuYvyO7jB1jA1$%@7J7`I9$8WT9Qspq=2ViuySu@=SbL8`Wj6=gb@#tr zpDwMVjaG|?#1CD@-BBaDeaAFt&;YC~)BAuVg z%{Nv1(*^eoFUtPaL+UALY`n-4=LmK{_!yKA9eHnO5v zmD*>&e-nFj2(?6MIBYrA=0=IOA!dw@E4Hb!PV*Y4ARtjED#-un5Ng{)40BS+huz@S zkl62js^&N53J-=c0$2(6f<335*JMF!-!DUbw+HMkE5Wyf@{t&y4}Fh77eXO$4=K{K z_H%5E>ghvlMBD=O)v4my+L>M_Fi=h$n`Lk2r@Xf5-GADp*q$>|MhXAM4B(OG{juQ| zvHiql=0ho80Qm1AdQsqo&?S5@(s<`@Bn57Q+h_)EnVDL8lzGHM@@_0yMlhvfa-E_@ za;RcVIW;}pe#=b-;A_;*IuN%?V)<{jo@XK6*MhS zK>PgoDsL8)9%#sA@p`^5iHH2g1xUwo5hk4N@>!7UEh%ghP`qSz;?6nY6yxo6LdpBZe6`VlP`}AZ2#}9y4p?QscB>EFpSFx z$Qw#$a?T%1IP5Fd_BYDaH;=wOShP!ge?<47PXV%`@f?yjbn`mc8}ss)o{Lnz+(TYd zZU|xc0dwPomj5qBSJm%+l)Dgcqu+`c%zru2acw1#ID2TIfF0~mGQUrx7Lgm<=udx+ zd}cpWeMp0?wkQwn5_5IN~MQZ$y#CQK(rQRaeY<2BfYXE{vUUc1EooLwM z_{~}f_Vb?Q-=HCvt>+Z{LncjmvDdKgj}0+YcIO4ZzzZ;)!T@uOJV;%}|0fJsRt8Yk zVA1v=3bxTkU(O38xDS@Wdd_zuey_FW8BJffMSb=45a*vN|^Fkp2C|N{^ylk zi5@#vV%PZ)D)>B+IoJO8uKh{J?U$~c7GAcU-6MaaX=1OJWI3}-7%CkJ@Q#0c52oYu zPQX`7P_726xpUV|+U^;jJ+NnZ@N-*WBIGF&Bu*7v+->aKZTMNh_F;DbGtkz>?11;P zpdFVm6m$#o-G=+_b4@rPTze&+%g{&oK;M)mwOiVcMD@&VnS=d88gx)<<~hkXZ`%0& zXFfao+UkQ72;^(53Pc_4a=B3NAsCVm)_t;}g*<$mfyw{7CU}9-OMC?8u+~ma@kWphSg4siUG5t0G<^RP>D!AB zOKRU+hA+f7WUP>(mwgefSeqDc3)o)o{G{fDhZCU1mJ$80l#+-+k!p$g%Ryn+2up9ushc?1l#M9XqO2^5w8d%rP1RQ7OJp9;3iPq_UM-{wB_r`%1&c{3^p9q zE;;$A-v1oe4~UFC0sv2sytuoNUU0jE5P49lL=0AI%m-Le0&ee_*2@li>5-4Yy2+G- z1atBndN6$agbU#An{0gL?b&~N^yzZ}AiMTPeGqIIZ_EYUWRd7Okj~mSw`GWlC*+$A zFABMVvQcCdl}T$y&fH*Hnwr|NI;65N392h-T*{JMD*5MY(53%!#x*3?SGe)m0wU?W zC9>#{i}9bNv64FG9`sXHjl0Ex<=sznuB)wiQx?))h--1mZgK~(+DXu&&7+^PxpkxK z`lw#~dc+nyb!MzZxWF0ULFqlOzxTF4`8>Spz2!~*`n+{h5IDCfwhwB~=YQM$!uT0M z-zk=SfRxWwFpbqfIo6)TpI(iwuu@; zOw)-Tv2AyWn7OV+PgHDByTbEisj<0yQ8cdJ@njb>(gu9J%N@F}HGObOGdoFuLkeP-B}0cjME(B7qc6O*q^LbmFZ$499OYZJDQ}W=*b?B*BYDwFB@-?xQ0y{hK*UtON>(r|q zKObHbq(3BZ=(5fDG>FTJYyC(ix1c(*kDK`(u_6wpfeABajL-kd1Ve&G7{z&(WX^Ft z$QtU7u%)_t{%s9#QRRj}F;GHNI_`LY zR5pS8)PRP_#Kfc@yNAACeVMCK3;XLk`E$O&wz=%n(@&!`swM5;{2I_Q&c9G%V{!ok z_{=LjaWGe_t!;(`A8|_uR=O8PePkn7i_zBbTuHv!x#|iUDH5ZPV_=*CdD5IJ+u8co zZR<)v9zx*Y0uGFRB#g1nYK+UlsYds0KD^BLua7E8v*xW^O@;=dEBUY~H(pJC;U8=A z)130}8MVc^M|^k>w9{-l>{=8}R7i|GyY`Qmk?riOuTAU!oL=8Fpev#hSSuV*bS$#Zv4^DdVF!6#Aqp+AH23iIbY2fE-NXPG3$4g_J=fk(wAgR9nk8p&#DMeaX!nal zXRK}Wu|%(H_4WoypTzi%zweE^sq<>4iT$3;Vsk@KdtNM-i!qiQ8yw^b zo`7-i3$H$fVNgGm?yKRJ>9O|O?seg5id5%MAWHo9ix-i_i{!SM_<+W(D2?gHD*Dq%3MKL}_qY(28Z@5EU zEA4(fkmW_}qCk#2kx;m5Q^nc3jw3g-#Fd5;tW=Te8e`Xjp$J?JBK77Ar=%aJiDOnT zeAe8Ev>-o8h{BL0^NqqTJ%-LVxdYGWg}l$`*$WT9L(qlDkM%aFB@Jz`5tD)s3^lz^ zMik|37Z+{F=+bOVd@|34l!pE`LRvRvk-wd+rH)Z|ZO)_;`r&HlYlkqp`>n6qH+l{I zuFlw8tj=f(%D#kW+jIv@xLhH!=Ud|%Tan!jqJOmDeoZkt?|!B9H3sMA+Vq18BW~Py z-|obwz4Ef>27Z!cKPq4}_K#+-nF#;m7rISq9KsHP%x4jHkcTAC9i3rL+l`D#yJ1?b zYRgwAaNB-tXCs`igF?3>mXd@*9lE0EHz!l$Q(HY}We$in3d)nh^u1{p%=4sNBEUM{$f5+Ro+u|M)O6GU{3=p}#AA6ag0QcW@N$R}dvP z(|8h2U@VETYzrfhVDrrBdP;v;$x!=^wf~3P zC#6}BMYa!Fu;eW(Jc(*(N4Mh1-AL+j>LKN{bjC@*x*DQh%IsFJHqHJ$@iU7H%lvW+I{E`Eys(M&~4CnZF9-;XYizbb&I;(WCOBiI@_EkN=(6fwgk%C_us^}BZ(5OzE5Y+QKO za5ToLcMZX_a&t6G#hD**GdCqrTF5=$)9ld1$H@*)B!4i_zL}4$s7itXb77<-K%l-? z9d(Fwu<`b!XT#dPVU#oZ#E>^Hx5#Eka9R+@ABaXU9zKy8?wNdz!;T2gzeP`|oq1$p z;+?)ZKA&VUCZ4NDU}fO$UY<1EBtJlpUoSR1O&lQ#kMKtjyUjJ_`dtF|RUQg|xBJra zwi>|)XRZ|Bnm%E-b*O+QNkj^%iRxhFbQI?O4kLuFgu6+0t8+>LcixV~lZ(J_f%q5g zNK1s}Rv9us!k@N3MQdv&qgFVdF22eZG;3p`p#-W+iH)pp*K>EGI+l52eVbtYq9o^? zc3U&3%ez7ia=>UOS7Nr(K}Blu%Kw*Dz0DC@Eghj)%qsqcwp+io4=Vt1axRP)reJkD zOgznVL4`~P44)*MhPklqKVGMoLc|u~CQ15~)!?-PVpjtGwMp%9tjwyr>D&x_Lqs|| zxo~hsyrVuo9O=Y);%$lgz{}5Z#dF;UPnj!umgSb|#N}6f7_*~Hm@>S^Mh}xTSVZOZ z&qD?cz1aA-+W6QCg9BCC3P!GVpIXL2PVnM+vaC%w5MC=YA=8-_@}9czI*&7F74K|C zi4%(CFW6b67Bj{w&Q$Sje@KvtQSCG8wO=RUD9+S3+P%oi?(v5b;;w7_Jy1`S*i@TX ztyBq;AQZe-u{CtM)BuP;cfaNotnh|ejOrBm((yts&9K&cJHE}d{>iXx$?4a(R}_sv9$l)c`;2$6 zkBWk(e1oi2`2Pb?O9KQH000080E)QkR#d`o{P+L>0AB$B01W^D0BvDzX=Y_}bS`Rh zZ*D!0K~ID*5QXm~{D%o=x40WIW^bB!@FXWL#*hNzGNGN4w$LTU|8BbyZ>PP)7psyqdOy2!S%we<<8^V` z3{Lb$m#b7Gk}eY{tLkyzAJFxdW*-yM{qk%x2)y+@m-MlvZS|I5wD z19DI3V!Mw7ZIIh&pi9dvtLk40|XQR000O8 zJh<{9Qbj>TO+_wkWR+K4Q`<-ueb=wJn1{g>$cZQ;5PY&^ey&uvNAWFVD&NXnA#$GKnUUN&y8MOjEy(X~|i zOlkR_t-|}-y&jEJtg5`RacZj3`Qh~I$D2>_f9rf0MOVtojLeiOrIpTUYAlIdy0=8p zH|2|94BsRzP4k-R4=G>vWzKIQn^TJFEs+=v?K@; z-<_lL3siNm_GWsHG`X;@asplN%la}P0rjIldWBGjJ;7e%KizOl0~(P0XE`d}Jx zoJG+)axx4vJ6kXLXSPIVm~U01Q!LFz+5C|IE{ok47gfFVbI3T!Ch=m;Kfu0wpc3xd z-&#nJd=bCovVwq`it#^X5bnn>b^@j@p3wBDBx`TuBfX(9oO~<5dzpdam?|ms4x5AR z*;~#QJ5^O(f)x)5jG;4OGaBEIX<8bjtyVIX;2#$nMCTY^6llCd@?L~tEY*yu31coQ zOkk5^(mV&ZySp1jlT0G$(j7z-#8L^nJeVX0r!6PJKgy(9u)GoDY@&a?#&F@+0I$Fm7e*0p)d`(;3N3{+R zHaN(VSHvPDFF^6;VS5;^YEMU)OwNN{1M8k;;|KIZu+hsHL$;y^- zkonFg)5e&^-``^*Q{VTd51XSKp}$n!@*<#y7Rpf~6xV}VvO^$Tkts&fFW1mH%(;~=n z9C2UIN6q95%hjf9W4*kOqW;uaEEX|R;G0B-b0ci7xAQlj{P+EG@i7~JaX+zU$Dm-a z74C^gv2(QCPrSFf@^$)j+v}{(oq2l*#r|>jMzz3T=W-;InH}|NqhUnE{%)UhxH8Pa z8FbUa;LhOaL|u>8)ppk(zQe}%&c-lg5snV%19N2Oyrl>prog#f^YXIkGs0DP1k5Qf zW45$$`}Be5UfsO1?_FGj&jt?(?b~iJT!Zmk#J>jXyvqb33lwbp4A#l-pa1=#e$~Qy z&ha|TFm>m(Y{z(Ah_{`S!lFre;S2^8thJzYiRob=UL-Mfbo1wWIP0p1e>Iixe!#;q zRo%r_E%_3_-O|LXpsL6q!99=8kd6xy|i&ev+=eqpy26pBhdVDi)aIsN|!S4LooN9C;p}RgL&Fz{fo^JT=Ud(ZjNc zCW$?0|BLQENUXc5m9m8^pod8g*S=&r&6ER;W_UPsaG#_dy8y}7yAKRNn?tNL`=*93+u zi7xSRo{uh){p9*ge@Mo|Xd>R;?~ z@Jse^|75;+GkE#WJt#;%w%Z3>6oOl-;BMNabE~jl&>UUu|5omA%E=S#Wn&*zeD#{P z7WiF+-$SmY@+VF5bS+m}{{v7<0|XQR000O8in!`lM?wwQO?UtR00aR53;+NCR%K~! zZE0?0E@W(MlzjQ`-RKaKx6=e{>H3G{3K=$yId z+%ot&@aH~w()oJvZfVBr#dBA- zq>9!ijTOm;HARgLZEZ$-(X!^EWJg<3OIy*Dv+9f17){MpUaxDA$z#@3fEkhkPrkgf z$>Mti_6-I{hgy@lt>s{y+1b{^Gyyq7s}% zi6RM}Q%=yyi4u6IuUM|&ztBng59M=Yp$^1P%fhSLo7c7D_uPMpvfNksI2KE*lBr}P zrdc+WkvrPkPelB`D%sp>U_p;5GxL(A{^ch17qdEFlsS!?x53gBHgg|^%b_^-)>Tm_ciQmV zKvQtJ68Qm$+cD*~ccOw_N{!Rr>BNNRa3SWnFje`7!@dCYhLK~;a3kUU5*)x&${pp% zH;4L}3q!_(kK|2Sjd*3nK;^kQy(GS3WJJc6lqB#P((vP#NJBPZJPfUwZ z`mvuPPf^G%cg9H9VQ=kgNOU-F3#z&risRI9jeC+b5~QjF5RKHF(H$maAR<~HZ7dAh zw2b(=Y82vEPzz}BB5D&ySJQ2yR?3R5+T%EYT4He$WnC*{Q549v8Tm``5~^fZOa+z_ zyFtXxE_ap@GT73b(!YhS95y+NyE8K1>vUY*a!Tb7Kl~6bkBG6>U<2@U(-pOA2(jrT zDEeBF(~WkbCUKnB8gWvnEV5ZXmzG;2m5UPST-ItCfw{1dHra()c~@y-erzv`h+^A~ zq12d-g)EO%+W_4%&P=p9BY`9}Re^B!@q_m7luOnLWN0?5T%xXxb(`4r4e{yos4kV+3hfr6H=JlufsVM~qQt={8xn z86(LUN0B{`rv96h&M~BsTFVgPV<|NbfzvpN=G23SUCs*4DdupwId^Y^gkLD9hzM6)>IED4o z8j#}?sn_<-I;%i6B9o}fWRm-IP?DEs4X%oV8&Kj?EYlT3e7JP5Fp(RuXm)nSP!0pO zHI-Oii7rj<4ZG7WjeHp|NY}vNT~JC5$*>C6e<=J~RSLb5)(;!SmiAvNkGaQD z85iB&i``cHb+~T}KAWTSRHV*x2utBf>72nTI1}Np0r8pm z6-( zo5!&=FE~z`g(sFq?p#C)UQFOzlE#^62{_~DQ4-gIib^4Fd%ZX1S z3qi@goa8W9nFXYQy6#B2g+&X4s=bUIq^>ULqVIBAQx~B=oV1oD&qA|Gu0Rk;UPUmD z9x2g-UQ6xv5ulWz(!j|{9Kf~7i3o~DVtwjqBDIoia}LtNBtfEwRBDziQ;6$HN}8+A zc`qR$`FjN6dE))>HJ70|8ob|pK)^1;Y{b}W%83wYWogny6sRV?@kx>XCFawbBP`bJL4^6ZgM9E zt*U0MBDX+BrT>v?8;9$!Nvk0YR_+Avin_iABU*bS<%_BhJ<*_0$v zQbdUu?erDzAj$<~C&q=Mu~@YN^USuoT_ol@vPG#JgyTHjgN}1O3(GQIM5|oFTnI11 zOqMO)NqHMcRL*#gY7u%E%orYbo={K@335w8jFHg2P*9-zRHKX6kxF~A+6!wFwqz52 zF+qOntUKe3*%47>s%?u*rk-?h~tPRH6L2%2n6xXG+MnoH5Akcrp$st-@oNc-B6c0E487X*G!8d_*t{gl(bpbd=lcIxhx`hT3hjM$VK22l z%gQ=$CO5GTajY6AE53y!Mdc(!(R+O6N}k%n?wj>!+(xc8j!~MHe2e->!(!Y{HE-+7 zHDWG|+IHg(%g4<(?O&Z`+)2WFyGzM1jJpVtBj(27Al8;U?9RjhaYy z`ZL_4X4ptggv+u$fizNPJV>mcLDt=F%SMfdh;8;Ba;nK&5q+(c`t**}l-0%O{ZG_zC|vj_eyGoGvQpAp*=^gq+}U*!CEqg$TE%iLo|b!(3) z@FjX*)}8wCS~VUs$DjQ1684s$#~)`4=Y_*~f=uX1O6?-!e~MI$+xkR-!+9Mp-2pYZ zgZMs8C3e&3Si9sAhwa8QKs&s{F0De-L=2_dtT;)78FR$`tSa?$(hvz$ULwwU$bG{y zGo5`nG|2QjCtG=nAZ6iY{qVs8kFb{(CJAVpozGF%C&}^Qyfegt&zZUyA@YppO?;fd z72^dVS+H6LG%`TvpyOm2LJqN4!cKaSOZ*qSz$AQ_-i+QeMrQ&l2%A;7UJk`Iok&q# zn%l0#F=}(QW0)d&M1{xF< zxk6Vr?(5ZXuY}a{(Xt}i9V0qFjWa79a%U}mCnP!?8Yqx*lBLS(mm-M0QkYGqfX1el z$7Y;0Hg?5$o%<_zj1}`j=^AV5*|LWK_ibEXJHn+phW0Q{*n@r|JL+F=-+x(8*k9cV z?Y8be+HKtl?e;|V-U{~&r@-?!Z;%}w$R6|6)*2S> z8ckY_2<3)Zd2;Ga8nW@6e2bD3C>iRS$dtEP;y$vq-c~z&~D=-_L{#XM<=J= zL(3UV{=m-XOBgZfse|l0<*wgRWT14tOSQF5`l9Wt=FuD-1Id67QGVwkj#U)21-E_d zPf2i16i)q~B%tgAXIODn@&WR+?{P&cW4wYiMF=+sQ|LM4j)U9NO%Np3`bw8NgLJj*)Ca>m(kX5QO*+l#_D($|1y4y!_rcDQ(BePEP8&>v?~!*d`9zgJ#Cn5x>`}9i@3!) z+R<%v1ijt(9BKFBXh;c%j=Q425K~Rp(3I)ysKN>1pyLmV6^j9jQ_)=#Q%v2-JSZD#QGP{b=CM^%JiDw zKHZ~Z`a3G{JrzLSy;RB9s|IylH@kYiOg$B?8$VG0upCGjX&HU(a|dZblE^+OC!R;M zFiMj_L1K<`(K6qjNUt!%4jJ63YU4aTg_{ z!Xhj6Ks4?~f)xXy*#-0U{E9*_Gt95d8Y`lqY%-=jl=iaB*n$rel{X#s2l9HugRR3i zcpqh%L$dfufLLN~AQsP|WPy-{Ix#>WP%#7o1#z7+2I>PlDNLvg>H|%hLGg)*9ZU*- z1tf8sfc-|EL27*mwjS#Z56!fm9D#Er-<$%bRzi|>PEY5YEL?7el*eM(mR8!6k7M0L zPVyD}Qa1Nk=f}8FkUM#MUTGgJchd5Lo(UPmBczISuL|`-9-4Dl#7NL_7!8hX1ILu^ zD(jlWHExB>@jJ#{ye|^#Abu`KfR+aTkl8<_=^>n)4fx%m^rh1z)Y10@R6c{_Ke}J~ z4Dks0qtu1uzr?c8y|%A)-$T}&$JR|b@qF4rpWnC4y;LTj%TP{tvTyc%lpW)2%8AFw zJDa{f)wk$RGrpd3y4(9^-%r^Cm=opD4MoDE@U-@ZgKDjvZpp>IF=#WtHS?Pezz32Y zIdnVkB;$o-8ZO-tiWgxDV?6d*xAW5geak4iBff&}Bc)K#1%J4O76>;K`m9yxaFF+m zy1R2VjXLfe<00NTBBhln`N@e)iRt$3Wd+GOj116mXE`u=9wUWL^2CL% zC8u72jdsuqQ{mCYQWMOHkc$ycSI^r zhMHKsOrpD58qmsIi`GmR%XY3tqa4yh6(J0HXol+n?A&0MIS_9ghD+bg~V|jnB z7)w3|5Tg@2esBuRu^C{=HAJGAEHgf&my=L0b{wO(kfpBi?mdue#M#yB;j#Oh>bb=F?b6mW}efGaU{6IONN6XDK+k zd6jvBXy>rF#?Jdo94Ok7N)e8{>CC1cWr=c(DBQ78A<@Gx7~01xC0^f!aiCfg_V_$Z zqA-~qGwucBRb&xw;ED&m;Sre?&pM~^!Kle%d7$<%HiZ1F_PRUzdfW#x?!Uuw|Hd$u zsYElXvqZ9Ucg3=A4~e)y6ZiQC54*JryJju?rt80;Z%YqSOT)P(%83_JOCuz@c^}{~ zYB1pir;{T9vAR1$V&!*;M&3K@c2w9MW+Qz=_8Aj4 zUZQb=!hYrBL#SXpU2ueKoI;vi#J*wme0J|~*eVtB1;$jGLJrNC zhTnGMRD|{2(4;eD+MAV?-uH&Xb2h2 zB&9uqj>py;o|qNrYsOjBggtR~z#gB)A(+*g?l5LkxIPDg*{DgWCyHpX! z6}s_O`R<3171;<$P~lZNS6UH9!X_>#vJ1qQn+FO5WnLi5W9Bmi#e8;XTEp3F8XdS) zOSrnY?G=MS;loSCpe!~)agI5U_IeW3{+{C8j;rX*&4E?C&Wd`F9mYANIbj_RV?NtL zBBZOv0v>IUb(;_f*GOR(A07_tYKNCXG2H9p=F)P~wLhV=tBRl|;tjWEER@)@QM^Xy z0gFH@9BC}#(Uf(^)h%YbIx0OJbR~xCPTh4IM#(a6pBGaHNJpk}bhpB8&yvQ4E4E8_ z>CUTLM*J!fh@>Bm^F#bxVp}fOu4X8{jE+!foE&f%H#a4$$BLLDeLuW-OZDr6kW7#%RC#@MRC1J#u`}}6op@;#Lp9x zNLPc7Fj`%Q?$DjL;a))&n-90{#tiuK3dz@{!V z;#cC0nALtQ2j>T>tqO|KM5fhDy~JoeIUN;IILKH|cmVO)S$HrU3?(XXkad@?O&g{*I12ru=8WQ#9% zL>!R~20ex{$Ml$LqJvC)AxGCY!Bg->!&JORb{lChsaL zQWmjqmjiNqHT(WJhNcPR3Az`3$4qh9-shf&{1m!iC?)&%OYv4R2s#yW2P8fM>!rJv zJo5w#3#=h+@G(}zlTgE+1UST}iIFgW5{g3;w#4*588 zv2&oFTpux?v#|GS^|S<@PfZQO9*8p!jD^a;9x?b}G%^*Vfg*<4z1Wf-ev4h80Ko8TSE*jlYh%DE8hs}XuNu)|m(0^UwayggF%c*v93TFVHl+)LL zapc=|7S$BRJ1K2kfbyg+B#(kov0D2L&whHSt1h*UsHX#8vrvnXbkqIn%k+e!N;j>Ei*x%F%EBIC`}?eV$ao86k-o@k^W$Qr{V2 z?dM`}%0glL7s;s~k-}%QvGh=K4rJY;(mNKo1)@7V-8_x%Grfz`)7x(FxiL;!zT~in z#pF#-(1XWKP;r21$rOaDIw4a@pF3O)aLYt#T(enEE^RD5ErlYGT2o!LWjJtdW~Y>A zTD58yE;GyG%kt<+3gQ1VRkn-k5G9g+1e?8f$6^kZDqP(gCF>>_=juQ>u=x1K9A;x6 z&#JV`sf)43Y0q|YcLi&=s7V!?49*I>go50Xc zK|}qoyCG_)pEc^F21JLvnv?s~wU`>~B$z&!aG}?^fyOHlG~3sV8`G|+yw8|CC5L;1 zUG-!pxtN&CrgJHo&e_oCwsfA@M2?U$HrJt=}{Kx(9%lqM1^uvE*;-gLcN=XQ0 zTCJ zs(gF$)HLF?Cl^^rjn`^i#J0S+D#jMcya@6-HNjL!;WTa&az#K%XRv~d+a>dn1gJ_~ zOYaPv)8Fq6RQO=0y#E}=T?SN&yWs`a)a}3pOy;XfTn%ogDSe`8EGlS1WB*?hTJAFw zXwy1+)Ur%KrJYsfgIT03?zHLX$6eS;fX0Pmn48Q)$tBb#g)-T3#JM7N zlW9N6?<~ok=dxiIeqSY`2sz<_!*)4-E3$b%!DDE>3nxeDRS;Ug9Pj|{rG};Jqo2as zc8Wpl2~X`1%nZB!@MF3W&E+;Rky$yqmXfO|{GM}a2U96|1JQUj>1yEhKXn(Sm+=x! z6uv#cK|=$cfg?g09E^FLnPAMxw-y|XIS&l%6O1{txNt<~H11~g$tS)a?`ou$|C@lR ziADT3@}z@9XTRVO<)IcT#)|JgH|%mJ@!Vb(kvnM+Gn0nBi?HHEnJ9I_A{=RCf={!n zvZ(?-ww({=QPepcMqNj7#8wKUdMGE3t}9^{pOEffm_yjEX5a{s+g+F*pVT(0ZIWqu zF}4fuLB%tXZP$6g;UW!v#C3RuWd;;&EfdjJqxfnPU(Mo+nlO!oB8qXZegDG`!bm}o zdvhte5bei#H4D2AJLLGylzgAh>FNp~{r>OWviMl<-mWqY)nt|xs+3cVcV54kkMRpo zuH{0!72<1UcKF0+zoU_NwK(@YPdxPD(D)cWAw_W3*Z_A|5k=#(aPwGk2gMK8hKpiF zdM#F^5i5HTq(X+{XPUbZ3MX1E@lhT(Yhrw)2+;tQ~ zcnp+Wh{kgn_Gp#p7@al9d|bun3Ud6X=0aJO+D2=^n&a03J_{_TXTUK{*Bs@Ki1i_J zg2&fd*+e?T;~kz=FU_M|F?%f12`i0j&i%9mmn(cgg^L{JXVN1S)|n9C1o7nrYmM%v zc(l?hcRqmZxHztssOl0l;Rlh#r|gld&NgT0LlWIyElxkX)1Pm3AHE{ICsy?MlF2H@ zJ4%@!D%u`DSFpU=-$WVp+J?eGLgfpva8(# zX0Wg-v-VuVhVv*{=4Ct@Vn3_Fmnh>%UP~^4KKogF!e09zX7ZNy5)j)$NxV{2H^1w0 zT0X8Pn`NrpNrYY*yR#CK$d~x22!97F+bJ;>KfC zALR;nT`C+Ji5JPpnZ@~WvTTZPi;8d~*(-Y-hHfP7c{h5j+w$qH*j=G!BjB-wd01x3yBC@aoTp+*7np=LX7`&1RgLn`!552w%rF9|&nuC2i+vvw?I)xIFY zkAI2qgX+ntU9@st#}+Ig-P3h#%p%bJUDw58@QA`kR$ZIYCD{JcdnO09aI0({W6*6M z$JAZdb9sUl0r7qHs-kNTD6pzm7Dvm!r3WnJ$SNy0vTA`SuxNfu*9}y?n;vtGteRiO z&%1Wr2>bx+O=RtzlG!3jWIRQV^GRy<77!5?bv7{y^NCt(WgdPmA-Mo6=k(3&gQK z#peT2|3VdcmMUI{w6XBXPewqD&^1}tx^7BS1VaqeF&ZD&*89T`P4USfGJ8M0)c8~bjI)v~XZA4(sI_D~KVhzeG{+CIvA zmZGfDGF1ae-#c!IKyOp znhA)q#tZC7WUsUG!LWHY{}vQ}MUQ;5jokr#<8H>MVUPyavp@F(2X^#+!~-G;lQ3cf z^HHKlN z(JnLU!-3+eb?LLYP}jp^Nhr!y_VT|DgVV>yGyor;AZKn2fm{cBdp`GDd>;PKe0U>E{hW@H zpG5skzo+>d!B@#TNkQfi6U@!l@{_eOlR2qTFf|_!;&?pI;;U3RWhMRr?c~vI9H!8l ziqW1QEdj>!-jA%Vdsp8%`d8BCZ+MPU4!s7Kh>y1(E~5JMuGj>+C-@(8N4J|M88g#* zwZB>QGd0ckWquCvH)!!VAoV>coe?vSu0m1X(};7;a@-sK`}a#}kuR5(Q2b-@Knkth z^Kp4TS)4~_zi=zQJYla8(Rfp$MfzlX)4&}j`& zGA17Rv>DdOi?N70Xk0FfnXl90ct6hR0a>rW+LN!u_$B^>oHa1ZB*a!vx7m4u>oy0^ z_e|XiC${(pK9Lbms^nndPIfB%b}T@|OC5Qej-3*?aXah}sJ-F&nY%0}#gz`-Q859m zBYN5>(DM})Ly?VQyd#e7Z#Khbm+q?YLpS+O&0+jj5)b>D>t7kXFJ+!BqC4nQGWTDV z_V`iLtW95&NKGk*~5cp%(3#gB3P zm~cS+LlH?@_x&2fze{VB!^zJvCDAcioSlMc4!t_}3|Q}jb8Sbj_D#QQ&_oqv73hA9 zXJBwJE<+z#CChqp9k@Ak| zXH0uW%0bhM&Ei@El>gGAIYy-cG-sB0REkjMn1#NRd5|ij6l>D!nsvxy*|>Bf8@J9+ zX~+8~{Lqj8{6)&VH$rCu^m`t48CwlotLT(0^|})U0f|*hFBd(U9!c?LKiyxG43+PR z`|G{}i1{%9hEB7dN4CLiiGQq6@AIPt-uNM866Fn_I3UF#DyLtBIciNBx<@z*_-6~W z?x*^C=r74ee$O77a^e%n&%Q^7dE8GPI5R(YKvqQaqxC)? z65YCLd?3tBux8EyTl@(5@uQ}@ph;S979fMOmNebY#nIAO7PK?7CR$o@8Cz36QvS%4 zSn{F*%YZC-&8PatT|gu5rM{5nxp>T^2lrEc{(Gip5(Lzr=C2Ut*E_pP^o?@NBCHE2fdq8pywlVZMOful&gh zmLbPrE?E37EghC%*M6{mq*9m6!y}DAU43)%g63rX`nJZ3qIu29REyCzVR%(F{Z~;m zxudncBiTHmt+}H;+0a^1G^=A-YfIx9&FkkHtDD;;e07>uhM#J@!ES~{uKSO$InP!XY_3nxw%_PCv%*Rfchy;4pc#TnMvCWLPZIGf<8E##>x&m50D% zGVyr}OAdjULi908s~muKmG~b~Ns^Bdy5KwdwJz}3NHddcb8KO_*|x)`!6P;*^NMY>tieHqE;vTN zxdq>2Iv-qGt9&~Y(XU}aTuZ`07^aQWZil5Bwcd%j8tl*>)$Zn=YVexI958nYIPE0) zkL*ol`i)LAj?ph|lE?lJjAv>~m0GI-Dor82!;na^B+F z>eAqGR}ynya8d3zu8Wlb_}wQ#2@G->i4xt-um<6? z(#=sS|5%ht?vC!s^T8WY(f~#Z@U$c>;l2E6k`MA@WSL`Plv^Jo4xO<_wE*2S*G^q+|O3B)<8boci#%VNfh_}i=lD5U^+3J$Sp1d%eT|qq0ub^6+ zDsHU^!_%C028id}N_rz>Pvtn2Dlv@a`xy*dh6RF8$n;|(8f+d$a_(Tbhv5ed|H)9V zCRoAn)apeTpgDYb{4LNRPQXtX5&7Vbhg~YE@W&YWA(6(v0F{-BF2uGSXb8g zodef!3zwD>wg9eY?DveF3pa7S#e)c24tH?t9gMAlI~jY_#O~sfpCk4MX%*a^)xsLs z$~>!v5Y`EgGB%B|Zg`Bb^BL=bCm7qt*hY-N2#duDy99PK_SjIuu7Ev4PR4!$FEXZ- z6Sf&%V(b~lZU=r>6lxNr`TO84mio7ql=m2XmL=!ogpn0g5w;utCri#};A^ymyQCn( zsC*WThRODn5{6Ul7b^8VmpZ>t>wB(Zcq_u$J$ED2;in9rLKuWs5f;NC=WO&4pE~E+ zhNCSkvgz=ha|u#%Tq_V3xF|i0;RJ?fGF<91$gj9AM7WXRwFot>$NQ=>ujg{_quRWl zQxx=eCgmpYZlv6bP=jZ^&msJm_a%g??+aA}uW!FL8otVz?ac1cVDwV2qHh}(IOxQ6 zEbxsy7_JX|hV%HtK*S~JgJFE|3w1EA^A#=$P7NM(sxT+`4SLOCp_jBU)P|_mSs`j= zF2kh^4ThItt_0U(NeS-d^e%=6LpQjF!)Kw}UBw{f-h;!gg4}Op9m;a4Om*&4 z*y4oTh--Gw?A)_pc25Jt6vAS-H1`Fp^+4`#u-4CWeQFrC4xEbq==8!@6$#ERJczwm zR`^a(f|kNV2s;apAiNTx235sFLbypPt_Tf=_TsYAR z3roJR)41P~8-`V-cVO*y>vK!w z$8M5#5w2I~Mm}>|=}~z9V{sjQ1p%pT;7HtxaPEi1qZzyOyz=;bZwZ5UR6*Wd~h zJ4ba$cC_nEdk**~W7k26ZMo!tyi$R++b+i3t)*7pbr^R&H%M@)uuF;#@0M|1-Yokj zB^QpBWq9Vo=ZtNFbL>CHysyhFF7t6-jvOkm3VV+_09t7Si+=u?%Y_|yCm}GKo3LXh zR_-BeR)xSCJ^!#3!%HUisb`#43WF*wY>pO(iIo{yDq((QM$SsetIEzR>Vu7B>}6Q( z`&g@lS`$0p_nB4&<4tU*&#euE#Z^KRPXAc@Fu2ylh9OoBFI8E+P1=XUtYH@RH+u~{ zIn3(2+c6rBq_K^TF)*?^BTFreug-9(g=?!t3vPX#a~vEQF0k$Ti?;Ewctoau<6-59 z443iHp2i}GU7N-V5Zl@(?`LUjgJV31zn8tU10OiY!yeAN#N>H^v6mep@7;90eGlFkX>sbLJBLhNLiA~46D!NsmqV1tQ0g4jfO(!^d2HoEHIITL#` zc!5+0@77qdw7Dih-bgX-{~P?hZ7K{JnQ46*j2xM1eHu&|Y00_Cbt*KC%*b*&+?vjF z!5Q!~v)<(JZp3m%32avQ_qH>j$i&XYycsak#99~|&)7ys7nYm>>&(3CFz-z0G4t-l zyfb05nfFXM=AH>Jnb=#1odw^SCBFzScFls3qXni#7Q1Fc>*&l#&w+bJTT(C6=0L$1 z(W6fye{|PFL9M{#yg$00 zio*)T7Uo~=I~N?2g+=z{zvMd)Zk#OguFH4f-dvp`u$_$MO%>R_{A&Las5LQ&z3gv* zchcAaeq;nZw~2L^xV5X`6%)I*q!rtH*Ti;}wC7#}Uz*qtCD(gy z1UOq@TIsil<(OEYbT`}xMJD!!->uyU)h3o#>cYIWCe~bfZSIZW;UDxCbMq$1o0rkc zO)zMl7>88p{kb+?2NidQ5E7;MsZiz-ANMF?e;}y>P3E{d(}2(0#Dg#EuR= zKkuio)5LlayB~I&SZGLR-UIMTRv#XOcdR}{_PZa1qH{BOJE7uSk+*mVVJrLOwVQcA z9&&ZwPPjZP?_s#n%zJvsy?GDAlP31nkZW@vhT8KoBmD@>JufrTkHY-(G9&#c%v~bJ z@A)`kih;D{oRVp z?05iUK%Bo0=B~8*uuOXnHm9+x^Ph+P0)tN~T<`+SY7ts;RqjUYB@+u*y0sTz=PH4f zR6d&j0;sD6R)yFvAii3(KC<%l{5`PJ#HLgpM(iFFTTr=4*$eNO*wV^nfxYmxiJf1$ z&iNuhtA+VuFG2enfpu4oiv0@yX<}pj3u3QA(OQ9BSGgeeYq-(GqB$EKuY;P*^!+!G zlg!xCZ=fJ4Z0VG$wu0Y4t%)^NIRbCML=*c_RY$=Am|P!bFM?A^J4|r)FG+OOq+jkK z`ZXR(f5qv4c&N;G9)3d7o0DS$pZ7oKe&@-+pg#j|^HZ&%EbYgf{?tz#hNk7W;E790 zaCe|T|Ks72AeH|tNSyy3B#J9^d~QyT@*nv8JNOTV=SB$TlUO|_D{3rNir~AUcV^1Zlo0CJesMi$*IXNnvRA5OW z!`TI*WQHPoD$;^JVj%xg7hR9T?1BBqOGq0nr1a?w&n(VZ+HE{`WNBhd71q^>DDe^* z;WmUaJjChOIQ_d4ngt(~&>h03CG@W(epAAIq0b$bbJ&4Oa|McU$D4Ea(qjDli#hVMkm5idu)9PyDbLK+E`@<wZSP!QtzlH*!9s3pVpz;B(BhM%wVl4WO@)=SND__Dk z_#2jd05tV$Y=5ZwE#}s!y|5QfR~2bEOEQQ#9EJPT8fgJMrd|paOc}}WRd`;VD!mD> zVELo)wtBks75qh=h3T)=dD6FFvn|AQj%^o6Qq;Cox&lVpl9E$eX1f4$SJ^rxUBdNR z8ZLcdqZ1Hnu}%tTA$hoTpE^LEf|TL%0%@8yMxKEhSSHV94Gfp4t>My{TDv@5ny+=r z4bm#@1DGzY)sj++bg9;h8n{90k;lW`+7!gtV8@UMv*>}QX*6?tNdNG~haA}L(h43ExYGFg(%Fu`D0`)4j=w1jpv9r6 zTcE??REJAKZ`}@`O8U`}at)RrE^Tu})kD(Lj)7_`TS7bQ;i&YQqgGuHA2=qc3*a-y zRJGld_8*Sj@GYoL+I>uOu2-*wJI5@;~)S_CxTt&u4#C{>T@?^p{9~Rqn;~2Gg!={xbWU%;%`w=$~r8gz2Bi z7y9Sf4>A3a+~Z${+%EIC+CP!6_IFC($~*lS>%uPopONx{{|mdM&@R>~z30C`aw<-T zBB5oIhi` zpo{)4b$*2&V7c>K+39F?ZbnN^I*XNMj%%IYN-MC;bh%x>**RRfM!&;3RAFtvWbY14 z->%>991f(n%{-^Za_)_M=X3|p+&h3y?`~u`9dip@3zU_?39bg^s^D}?AI_QJs#C7^ z)8318@+6mh4$}l*&E1VYh)xkVDr)#k*Lo!y{=4fr7#`k<<*)W9oiBkHo#IHP`#R;6 zNR4|xh}ec5hR*MP7D)&b!IS6q55hI2d^k+ajLNC}c~jB*uD|Ka8;|(d!g3$_MkV_iRy) zEO=V{EnCDGpUi4Fh4Op@ObFV-SG-`+B)zNQ}Ln`_`)*_D-k~SjceID_UbY)cb z4l?DuFIwOw+be)WiUrX=5l-{!>MPM%-b2ck$oHNKiG0^ciG0_1i9FSK=~gA_eL$x3 z+>z|@rf``VTxKqpnagEnaBc<5Fohxc?d!e8>Tjc4yo*gq{uTYRw~5oOCI#~IeeIl% zO5Xg1zOQgaSniBU>*NMsvHG5WiJ2Yvg|vmNx^D3NEoktMuCBAlaA7U03>FV!Bfy z&-sqY^V|Gg{yH@t3+K#MNrwxh_SmSL1=5dWlMz0Q@Bw*W?1r4EbU22qgG_S1FUFlm z_H)Vd01-IGTKb&f0_l_3*EvMr;P{%`{f_1NTq4h`%9K`RlK&V}JWP2&{%dTA-k|ym z+**S=$nMrWTxK|U^KZymuXGh$q_?QdU%f`YL_Z&SHoBtHB?Y^29^F{*6MdWVP{9p3 zpUBS?+^Aon77jR~U#Hd$K<^=)K7h(B9zcD0Ol|OOQGbNFQR(Ude?s`v0bd||dcZ&R zjq2Un%kHT3n*okMRQh0mKTyD4?i2Zw0R@2qwvYm0MXH#aG$Mmo{tEW|PUS-Xr-4B% z`D0w>8HTSaZx;R|7{W3?1otAvsV;{&Q$N%QIdk+c>1s>BJPKND7^HN(!BFN(!BBN=iM$SgIMEJC`-HpL?-iBFb0l-GlB8f2F=T=# zzm*@4*F=x!_`%B9vcjTVF9Cf3qxR%_p(p`BCZliZk+WWXc`f%01j7MGGHjJGt*qG8`+vUvYW< zPMQ4bSR47(<$vjz8zu*%nmdIwF%Ty~KQ8V*9xSSBfj-CuQ=7Ps&$f znT_f$|7Y4p^|sQFwQuEnDsPDGXFjx=KNx$*lyG6}a2vx15dPlw z7^k0MxR>Fp%*}_9_*beA@<6uvFz)suEP@i716INlngd#~gae~Cg6ohX!<{e#;bRDG z;E)J&^gd$D!x4F!RO!<&0A7Yu1@;9X8RF;TmP@*!W5|t^H>ZL2yQi)2| zFnuzoCv)y(X|lRWYs56l!*B=Z?qm3&L^`COA4JY_z0_qdm6@kZxur-6I3^>!+|h{e zZ;nk&-^68h$Rx=Qd7|@G4rW{qyz#e_5)JrXa4>31a0+sqG zsYF-QdZ|6As6;PfdNI>W)gV8qO#P~3%4DWAa>+)OG_#4*Te-{*PVYea#?U^MB~eLN zM>zMW$|J~h#YTKe8P=H)9kHv?M!6diVvlUZZIi8DdMdn)DLa_511aZ3_HoG%xvr#f zFEr-Ka5BRNjaqEv^hQo^W4MDU`xqW!_#s2E^H?w}HX%t>Y9~#W+Id{;F+ZiL^*Sz7 zXD6O@Tyio~mU78PPWLd}#Bc{g$wB3d9aO&9OcQ;tV-FZlwYA6l5Z2nu=_8yz%4x|* zQ1ua?A|KI&y^-NIhWBv!y_`PEP|6`#%&?AO1H+ecR!RQcqk^t8o#9@F zM;S^19?bx0yO`5;40{4Qod3+-8lc|oVYrv+M;RVts0O)ikhR3=iJV@_a3fQ;23hk# z>fN>=Nxp|EdziA9%N%7Wg}4_CCx%F#x)7CL%IOBC_i%b6r?+x?8>jbh`UpeFWnaXw zIG3%3({-F)%IOA9Z)3QJDSJ76ESJY9OcW_h6gA9Jg;z-h1%o(U$FPB650~7?>1_<} zVYnx}!}&@okuM$W!RI) zB^kbyM`K+SrSwFGOBwbs+{*9>L&zss#PFVc@{LCdXe^EtkiUfib!zJNaMa zm&Q(sHO7*$7@&~+PS1ydZ4$u25MAj{$lWGIF(;pYbyme#%Z8;iDCT#zJTQ{p(SaPO z#i(H{{p*3SH1Ltrg1-s`TmU(tbuKGCci?#efO8o(GwfjaWD%A5ABNfKlz@J$NXEVp91BjQ zjAM8*xanM<;Uw@PWimn;rhp&eRDMHX8ojs(rvg2Xc^bVX0O!;1EJ6w*2)95K;qCOk z06Yr=5Izru2wz1F%J6F_Mfe7kA$*g5K?&Z1p~&ZLgfhGX2~7VMp$rG164Sp!SPX}e zb1@u&3laVicXGvW3}e({_!yp$%W;<%!I7zwE<`v&`W7i8rSB1rmY$GDLK1UFLObS; zgbSn<%1Bs;xg+5s&fOrjAf;P+OdbP2!IEQOGnO0!*JH^sa3hu+12<#ITDT2!YvB&e zt%bX=m0H+}xwWtzb8mus;a!xYRysv;%Y)^Ga;yBF{7*TqR;w}l>GmV`zd2Qx-?hTE z!L`{{<{sysTU5}=2|wfUGl75Qo_?Ej zC_h;`-25JCe%G4cOU>`Q&F^jI_b<%vz2^6u_}u_=% zer)o1@AJ|mZ;dSb#>x}%Gskz1{0rY6__MD@j`>&1GqoD|QGW_Q>#`Wpax7uNeoUT*I~UVoDVo_}Ed2DmxAMw#R_@Y4YMqAB@} z=%vck{AZ=J^J`@K{3`!>=~wv;up{=YayVv(=W)OMyad)8uCON6Xe3)(mO(=*)x2g| z>-r@ZG_n(BszvDG7LE5|lAEJtlLjjF7zX=th(F|uJ~!`P8EqeqOXNw+!KXlrj?*Ph`= zO~SN}w#N1rqb&tzEnC&x*bb!drNcAh+1lDH3RJOHS{h+$TgMtw4=SvFbxSLb7Jp4? zUYw1 zRC9fM^IAC5xS)9^_5h|&X-Ta$Qq(CB$!229^`=vW2D8T6)`s;sMxxCw((mti3y#WPTYqX#uOxD=o64X3( zQ1HUk++;&rYPpeI1DO;_jLL3d@$1*3o}0`HD_h!ej!FM;#3v8O~J8Y^cd)qAn#HQGU^VDmuNbsd*ht zZ)>j^0pewPn1*sTkSVoY(9(P%ES%ZgK93SuW8svufIiq#b3<$UN}^3`HL&!oWb^Wt zb+81j%^Yi%CN2D#4Q(jS3}Z#T(UELSyTvM`te{5mdwSb)10}h@Slv8l)@0;ppi@Yl zCb|R-1eUiXQ|(BZ#ba!GRG}slnSrjE4b;-gsBB$MH>V9+J=)at%p^iAT>qSV<^+xh2L^`)9Tr*-PncN^ElHGg z&60-pc3dN{AspA~Q_Mle1WpQ^Wy@MD&x7-(xe4m|%apVu)jTCrhQveefOEH9n8Fgv zgvOuTh@Y|aS+b;hNi{ANyjF}CR&(+)LG3qWq#-eE0>=fcWqAvkZo`^p%hMVSO{WP{ zv}UnYEY+_XE>&ySwyvMkoXYY>bB*?fR&xTbS<-G8t#he`HA`@@pKD>JTOhYdolILe z&cF+qN`Q^7zTtxAv^Z$~Q0^ZB;6d&$3==cGU$O+3 zA7qarU~jDTqL1-RNjChy_P#YXjx0Oxc9H#HlWehD;?8QPsqGzGyQ7griPUQ}q2y2$ zC2=i@9FmguF=M*fRV2%*eyFRPkJ**o&Fmmq7&1IR2EhPpzzcYRY%l@hz=pFxHt`x> zBLQN-1K2?P!$1a@{ox>s#6aS}2{z7m&bha$`ax;NkOLSnC3aQa=eg&e$9GOu7u^bj zERumGuL+x=uE7PdGt}4E$h+8iI_lSqsM%%%R**{gMIYiEZU9tp!|?J3{5M32jA^AJ zDluQLqvzU|Mr8(_d9X*Ub<~w!jH1?jeo2ay+=h697u%Xrl6P|+QH8owhM$$?`>Iy2 zZh`~8yG^p_D5pZ3(_#Dl$OQ{hv=6Z^)J4ABt?^-21HJ%RIU8Ex)oi_9+*9-A8pr{a z1lbri>^g86kfNX~YZx|K&F&N*IsztmsS)?K4&Gc)iPLAhB$S%)#b{^%m67~({@&x>$Y2GoZ-T2 zuWk_|vA$c5S91g#(JpS)s}=Vxlxw@O5EeS(azdl2?Jez<$5ZtifXe52BT1@J&cyoS zI}8Juck{bYKc5`jb!WY~iN(QT+Qi*bkqp?TNa8Z+7H+bA_PcpDTL-rFoeKE`Bih)H zQr)cuP^kNQwp4Oz4I)yH*;POq#tl~)IJ@vfCE5GUdbL?o#BH_B_{xq9?T5Uxv0f4< z772Jt*@?Xs1Rm^)2yQXvQma)BFK%lMY*jR5bgz{f>8rR4S`IEDi3fzMD&1?1Qj-cc@ zkh_Vsskx@#r~>yDcQEiQs~d)mz*S~z$Z7-B7`M}+2>OaxD;*0_sV_4xn#m*0#JvG z>(w0*p3rYf1$hI|Wt#W~egH$&-0(AS78_qA- zD~)0uhJb;bsl8EzM%zop3PhL~j4%Y|9iVWdPcs>c(FK_r_yTAfUEV3~uHdx0)U9wS zV?@)5PnOviA?ngIfC4OqM3A}Wvbm)u3hULz)>kZjMcvqE5uhu0Sc&auPKX?Z z^FG|O4<`lna~oS_#>ChGDkM+`qZlnh`~ulky%~&yGY36!Jv`}3al>isEjK;K56jIu z7k4V%3Lm~pP0<=WDwNnX;%l^t=ao_eeHl5G_oK}&EkyGsK$~`FJSlKbT78v3(a9^+P z>M4P-%b4Ne z^nT}MDTI4&NN$6W*bJw&C`6f>LX6U=19GZJ*B)+Sb4YX-D+I12h6U9k9rtRaREiA` zWnH}Do*-38D;Vj5HoN6!dD(f?ghvg~E~MHNDa3$g#|e`XUtC{=VsT@YiJV!0^KgqE z(RLk>=IX;W$Q-x5;gWIgXl@u4vO=^D4jwBidY(+?^C_=cV+z;UTiP$+OF&K~Tc-sw zdSPZ+nq6L9n7zF=w|Mu)!p#+RV|n)Go%y?~^VfBenp?cHv^>AE5|)%gbTn54z5@N^ z{W`+)5>?Fa*4(=G-!<_wa|o~-8V_PsvULlf34}LXcJK0{LQXI> z<@$PG*|0IRg!AKbLQuX>Q8?Ka_!-E(2rhr}POVlY&{@&^Rx^m2BbJg=3n~QAJt2k0 zuYuv~=nZT`AWo-Pw4O!ly=W144mCrSBIo2a$>**_Vo5ePT0VmYiwy)0f@C7C?l_2Z zZ7rL`Ar9%U!| zlbBp}OAiHVpl>ju?61U{O`QePmPbrMkmS<&HG}|+F=*Y9)pF=PSFP=>R>e~h@>3!T zA*Tt`m6-e5R6pPZ2{3hFWekefy2?cGwE+{<;2y@4$S* z|AuaUwaSu4ac2P88+_}8k+%<@RHEQw;+J6A>U*dR9^o&ggS?NSj#m9!gK zLV#H2%?)QOMg0nl60vR}noQ;NSI8C_i?fk);VJV@*M(zq#3Y>Jaiu=8ksN4-GKM+a zilkRfupJc0SfxlM%#>k|)@U*il#u{bA&X4H&Nd@#=&%W)gsUzgVl>KLh=}!SHA3Z5 z-7UKmH*o5m?4ShhmiVw0ijd6IWog}x1D?j%JnBU~mBy3P4)$rUV^yeo|n=>o$J z38Cc6o#I2MYiMy85q47E-xp-e_Y9#S)J|JIgw6rSNHv*d4-j;ixIJLrOka;c{^r~T zxSTaL)5o?@_4!Mvez>gy|8IPMw~z1kDwq9=dOo#HbPFJ-+Dh1~R zvI%?S8(`^2;l3}c*ENfkm91vOrX&;zqb{A@Xplps^kI3eT7hOb6zouLU@>~dh9OWA zmof@_>RNMS!y&_~@etV{e~WeVeib;1^0?a)h20@iUvD~1iej`aSggC47ZOu7Cky_Z zNw`HIc=JhgkEo44phOd-GR zs|MZ2TA>}`Gc#qFntEN|4Cc7oTo9mdIOeKGBg0=4>ViTjw_?sDmub>wOAudm!)y9m zCLO{&VRfl;2AmH}X^bStW87KHVvrkwo$UB zaz<++ z%MK+@*b1Xg>r>D}pgHGzfs;v?DaQ3&JM@I?<7vXsVmZ4tk?p!uasWnbXbkyT-o0}d ziEDHQS7**HlN-@zVcB$Wb}l$OFJ~9dnI1UPJuX}d$}X9{IMaPE@*JH(82e+QXZvaX zcuE!3On)TKEqLIk)=xd7e)<{p=bljyru4`4R4=T0YCVA-nqW`OM6o>AGE@7MPOBYC zyVv_xg5YlCOEt0w-HLkd{My-{pXyV7vHy_b`K=A}E+uKm=WWL@-<*?@fPN!X@%^oR@tJIQD+ppYOn3@=%SDK%f&cI(wj z**x;0y@cG^vV%?(_)EIqm0R7~(33xC(nBjI;r|JNfR6L8eo`!fJ?R;u^EtJrKnj9p z&usj0h&~XPT)5az%KHggUv-!|SR!ob11!7^KcoG_M!mSn0g3hy+W3cwaP1^aJMAOP zrDLSacni3pOKOH>iAr9TlFMPq)LD88uclV%27c7JOm{7WNX1C?BBKjUtth#nwWKp9 z9Ylauh-a;7D7B->C808sX)(|KF*M-2eg-@7g|8~rhE9x262zzEM34(Fb>_m${d3{V z+VON{&Q0+F8T8<`mLN}wmZOPyzw0`p1ZE7sw}{)I-tV8RCAc&`jf^Kr$U0(%uSgcD- z1VAk0FFsU!k5b=t<#U~Cl6#jFeDkeL-6FWwt#0bOuaK;WwbG3{ZWdE+l<&V1XXc>j z^*(nsJK?Ujf_(G;+MZhA6G|*c9{-!Ux~OK(UR_)3m`niZSpzht&l>PC9YC0KuSU+M zn1RexokNi95hYYju4$%==ZtC38uaS3-8rbyl!7(u;w4uRIVIMvnLc-+8Tc@r2Uqs< z$h`2btrAOF6l6Mcz%6}gw5p%~X3V(kc*R}04->hwDj6iciPv!DnWnH-Lix^HjZy|) z-rg1fy_Fr$iu9`nQI);k3TUa_EH(P|sO=%<+v-!bS})p8xmbS~ zR$=`6uJ87{k!liaeCM-T3-WF^fkt}Are}jR-y^wN&dc7QoZe0~I&Ie!x+4V&_b3X0 zOA!xMGHC>m5*Zu zH3igF(bGen&8^kxTe@9Yk5Gt=QB-xFt6=6yN^3QG9i?UbZlYeDUO{VD)$otT*hG6D z1$3N57P}(!wPd$w`(`FW{k$$$?LpiMrfjGC^!?~^0iz_%b z)U0k7<)3|iBMs?jHuvvR z;Kdg(g$z#w($Xt@Eb&=Et?N;?_fTIU7&Oyo9y7I@jh9$(Ypp%vKt!gT+IW$)vh z+8d^-)(1a}0}cH$2B`ByO%UAR;ZE?fs=QAmJ4DEaZnxbrlNe&!E&}Irgz6`Wrkorcm056xPv~W+~Gm z$FFO)uVZXakFQ$)_1A)zmP!dBNy&qvl9T}*=+z-2&J!ohGp4VhAv36~8YZ-xPQpe|cH)u5H;8v~g_pd1M;%q+i zSra_HCq}D?i)Gf0I?MV-54ZiUeJP@@#KLMvcDouGv&M_t<1xR${g=>^G_$C7_57aR zUyt_grzGwKejx7UZ)p^x!{ zl^3}*x}zd|=h$Y-=mpjvq3sHvogi^J+0POkAU5qo*Lg8?VaPeyCV8yB4PML^GyNcg zoMz#10>drhQVcfnWspD3gr9zfSdcR~!#$+^D}9Bp&h3P%I?wx3-&QYmh*9_Efq5@} z3Dg|GEVo~2=$fSGCPoXbK~1*_K}5H$?iL1{0ZXS@TfsO6a1>Mr5NiE(w9@aZ>vp7r zEL?2ECi~Z>wg)1c2NBw7=1v8AR%HxU<<_tXLwl7X8)&j( zjX(pUs{yNyAIu!GV0*j;s{QuuK%!n_jz+D0CxdJzEL3HOZTeOp($|>@vT!L0ng1+P zcb%oL!A6B#A5k^OG?lcjH2xN;v%6-eZKyL0D)81tk>v(Ei-y)M+LRqO>(Mrz_N(30 z8skS)W3$dI>y3&6-1~w4QU8(_MTXI{s}YUf(IQt2Fs-jmF4?7G#NUSNRQ?i=C7cj^ z>u3QFTSc*Rf$bUr7gtkc1k`6yl2AtGF%H4lINGz%DRr)(zN+rB7?Y&!X&&3!35c6o zQ6Z*&6Gof*e9X3I1h7tW3tHC}&tKP0tp{yi`ef}15N{CpimBl#TutNmRZvKOgmaeB z4Y}w>#6E3Dc97&)#Yr~Q&(LmfYDsgLqXs(Cl^;mzGPGq*6?E)j^Qf@5C%Y+IV_L(W zbHQ$^(*)7CQTp(}S;Dk&31}4O;~2cNDZWw`tpeb zW-xY~s1%HE7#ErX*;tpAx}n9=(;KShZn0Wz!9CwUkkzM@2|SD1^oAk@5jh;r-_S-- z4dC}e_gV`agZbJshbCsFO4Bcw~Bgbrrl{!@q0n z9*k1lV53Gds~*g;vQ@O1a&=7X>RH|j3~MQ(Qc<%#ug#<&{vCFAFg7nnSJ%k{)%wlO zNkgFBiPaosK(=AH-(e4XLx4(fCdwJMEou=D$+A1zzpM@>_yi*4+nU9)^oB-vKEx4B ze4z{$hxriGR{c`1U`X<))7KbpCiPRgzR6=m70~#`P=vmQ?S35bO=TV2d<{XsV<S1dyrfa9m^GcwTDYlqqsc8FZ@l)* zo)mtmp$bberSkqkhuJ%z{UPG`L!NJk)MGr%(CxBOBrmH@Jbiy6{67)$t9PHGA*vc! zQ|d}DcRJ}g2p5sUtJXW68G)Z)u;`{lF6+#uhBggR=qR(+dsx${w(1ZmzOmG}KK^ot$d`hsCCo#^ zm?UXy_aOe^W~iiCe|2~+$Tu$V)_bf_QHvY+^`qUuN@)CoQk(sId_jdE>$DOm?M9R* zDmLOBO-;A=lig8STE8ENE5!8BO+Fe>rLyL1fvKrth08kHBx;2kb?7Sygcdn!Bh#u{ z-=FJ{xv12J*|%tD`I2VuODYPDqn6hKd#wEH2SSF>0~E22h8BBC-iYO^GF5($-U$$mW)ofZUBXN?OvxbmRl~Eq zwX`Mb3ax{n3azcCVbm_CtVv93T68BnqKiPpKD)vjLP}!FLWGUchwd1Qd`7&t$$`uR3v1FtkwFa_IRNTUm)XTHZeL?3TmHf${9;V!0E!6C+7wS-I1> z)5*kmZURO6kSZu@a#$s#=a#QuVk+bCasYX z3^5zaoH5jA1oC8u(lxsc7yctukoA>yfDs;aj?^HqGe7 zz381P$QPi0*4bOFK6ENqDoxKz=+~sEPbCw%g^}@G>z!E6!QovTu*einf6Yo|ucVYU zLDY<-WFuPNNu%n!7EZ80keL7UXT~gx2RIg!gW?v))UjAHEe(@;f}w)qIS#9&o{RRY z^_|pUBHQ{+%td=9OFyg*$FgbwweRKT#|$~2N)F~0a&L}jTi>Tk9DhJZ>i$D88J|O7 zFAn%WOd^AJG*Zg+kis8u;b0=y`VUsZN||AD#D2{8I5%%5{JEG~4&I{l{MioyC=4e; zj?!OBOcrPlTHkpoIZA8AS@sH+^oJvmK$oSz^#T5~cw^mvk_NYM7()|i!ibefScz0z zLE`>2T^K~wpJDqfIsHRArFDOZ2HDn+4i(}PGFIzHx#9@A#h`s8k{BnQEDXfb5KHRt zW8OQGfDe+vQHUADP^4Kz(a6YHYyexYc*uB~>c>^m;%!WgVPgIr8MD&KI4|!w6qHsl zHImlspC7T-|5n(Z4qt->qm;;ub!S7;VcO$J-=y9r%lHxB{)#@{#y;;RwVlw%vOb&BnXJ~cT#`6}s7_7uN<7AM5iYIULcq%S!-a)U4IO+35oUs_|HkxEUALF;9KO2VSFl*6W}&f$^T&>tMG>tW?=;{GwlLR65@mu6FlqaP3i9JVE z@I(%yW5DLY6@#+8HtK(p5c4bS|5Mnam`ozYLrJn_be$j<{rgr*poo`=r|AMJlFm)|Nje%0a?z@ zGh1-f1)eVO^7yrQ;q9y%q*1{LV3jBI3&4=iPp}ow0KB$;Vz`^eX7cr6a$)gQfuwls zFc&f@1bfQwZ%VRASSV>kakAzt!*9cCrIqb;LM>}x?N^SpXBW0V*>*`(XrUEF6YPm z;1esE9zd_0t^0X7k4iic$4>r9hOjw~_@7jR7ufL!mU3RU-1YW`ks{r0@TY(@G-BQ z_an_*v}42iXl#sBdLrCQ$R9=^Njb!4x*x75W9q~K1ort-3z-DWQ>J~`KaPP?r0Nso zJmkb11mLkpd48Tbw|^RzKcpn7h`T^wNo{o4oYKjmu}(Xb)~*cJ8H1uB4@2IH0_P`M zINJB7lWAGbJwA9KPxhkqKK^q!f?ece`yT%<8-Cpre%;f2yeF>N8^%m2V>u~Wd0(#d z2@fqP2QR6|C7Sl9Cdeq2r7e-el3}`9;?m318BU+9R&s>(aQ_1BNj`T0VRich`i1lP z0DG3_75<$Prh$OE$%xJ zMF5w4O)@#ab{wsS=Fz15gn?5`%>?|wM>v0u`lhLa>Npa;SMs1!5G{-x&) zK;!b(SvDK*#yE8UCkYnzjDe$%Mw0_6E3hL;3GB&tiY6acxy~R*%!<;z2@n1#oe27~ zxU?UQVD|&2i~K((dzCQm&tR|^B*K(>`M^}8*H@o6Gg85O4OBWgh+X~`5j>d4?z_W6 zKZ-5`N z&nA=jK2i7~eU!0o(1#+OT6#YnS#4U52?QIqMTy=_o_zv&r+Z_WUyP}ZzJJSLvg>`4 zrwY1RC`=b7&reQIeOzhE$-7JSD|zI5{)*6vO{Dx8D9dLIw#fs63x)qb30&zzATj^n z3?&S(&m=liGAHnXM$$nZm8xa+K#JRgaO6lyjHC%`Vz%Z#hr;{mGL3~iIBc1C3 z;VBybKMhORY9?&|m_Gg@0mFd4L2U6&O3hMWl`&>m&zug=8EtW4bi2aQhjawp`Y5GC z=S-HY+h184_&m|jYyX{G`+rjFeU$FMrxDfudz=ePjd!AO0#Rr~0H*bXAO(S{C%O+1 zkbzfE47{QfAtR}&;JAE(Bh6hboS4Ru!~U<~KX`9hltU!*n1RhrBx$OT%nTnf1+9+~ zN^voX&VT1K#qG#SWBmPZe=0eQ07N?7bR|@6lHy(W#UA2(Xr6H8%@4o<)ggY5iBD_Yebfiro!P zKZ=|hn`5SD5BMRg{Qi3aHb3IcY<&ddVU`bGfAHuNTi>x_El}+@eBhkQ?J5m z0PmXg^qrW>Pu`th4Zc2l${6+S^OF}Rr?IBYk)Sg275O97s}R%_xb@Ox>{9nTpqHF_ z+2t1m_(5S<7JTz`Jhp0$(d!K4_0;k*Xp_hLtv`6*R-8qozh9=*x4^J({U4>4SFW!( zwQv5f#y|R%JOAz%fBC&X{-^);52(-FYj521v5q%N^aAQPmiccB)vNRkdH)T=_BYJm zop@v2t-P`9c=WfAg4)TNy{>-xGll}CuF`oy_5C>;X{XfMT(y4P^XM(>@^`}=XVUgO zuKVlbs_+l{5Aydve+PbIY7C#BR;txqP7-joPdWYE!ta*~F=Y>gHTJ-HeBM_p{9yaM zTE^LeT2yy&y@1afIH#ZQ5B|6RD}P^+#!3appV8yc%_Xag%IiGyeSU=J20!NHgim5A z`YVgnYgN_xp%Pzz;Y2^O!9V|U@b@hmV?}=%!aP6RInu9lo3p{c^J<-VpgzO=nB&`! zW&MzeuSfo(8V~AfJpUe6D-Yz-PrsX%1@(DFUq5(@A9*SABVhC+e{a;#b)6s4DKWjZ zj`j3>DFQ#I_-~k+zMYSs&`;#c515DkifQ*FrXkh6U!t((QBeF;)N%B^&Cl#nFIssG zYp(MHUR%79-m-%FE`A?qUfhcC;!GDG3iwA~j+<8Jc)nMd_u+i9%Qin!O7ie9*a@Zo zI_sjI*VTJ%WV5nn%~#*gawo!ba{o@qFR}mq@t@A;eVhHi^SS)|ul2;Xt@QVq-cA4h z6?|{@xM=ss;m+rulHDr>Wv0bd$1(r=d;b2?`TyAiycwB97({?q40AAq?RXXT_RT+k zLv{v+If4w}i-&;{NWj^{(a+u0$KPEqHw9Vei;1toqUIRApZ}YI;XV*^An9RXhz6RM znVg@eSCE&Etg8!XU&x{SKRBPHi3=CZS3=EtoTAhKnCI`7Xy7;=Hxf5g~`qjz^o$lO>C>JdUc(VeHXJB9jLK&d@ J_B8_u1^|iT2A%)_ literal 0 HcmV?d00001