From 49eab51390cf480f8ae44e1bb40cbcdb26976cbe Mon Sep 17 00:00:00 2001 From: PenguinOwl Date: Thu, 8 Aug 2019 16:09:07 -0700 Subject: [PATCH] meeellllt --- .vs/LiquidMod/xs/UserPrefs.xml | 31 ++ .vs/SolidMod/xs/UserPrefs.xml | 18 +- SolidModule.cs => LiquidMod.cs | 357 +++++++++--------- SolidMod.csproj => LiquidMod.csproj | 8 +- SolidMod.sln => LiquidMod.sln | 2 +- SolidSaveData.cs => LiquidSaveData.cs | 4 +- SolidSettings.cs => LiquidSettings.cs | 12 +- .../SolidMod.csprojAssemblyReference.cache | Bin 84548 -> 73126 bytes obj/Debug/SolidMod.dll | Bin 13312 -> 0 bytes obj/Debug/SolidMod.pdb | Bin 3848 -> 0 bytes 10 files changed, 225 insertions(+), 207 deletions(-) create mode 100644 .vs/LiquidMod/xs/UserPrefs.xml rename SolidModule.cs => LiquidMod.cs (50%) rename SolidMod.csproj => LiquidMod.csproj (91%) rename SolidMod.sln => LiquidMod.sln (82%) rename SolidSaveData.cs => LiquidSaveData.cs (96%) rename SolidSettings.cs => LiquidSettings.cs (91%) delete mode 100644 obj/Debug/SolidMod.dll delete mode 100644 obj/Debug/SolidMod.pdb diff --git a/.vs/LiquidMod/xs/UserPrefs.xml b/.vs/LiquidMod/xs/UserPrefs.xml new file mode 100644 index 0000000..b1736f1 --- /dev/null +++ b/.vs/LiquidMod/xs/UserPrefs.xml @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.vs/SolidMod/xs/UserPrefs.xml b/.vs/SolidMod/xs/UserPrefs.xml index 14d075f..daad4b7 100644 --- a/.vs/SolidMod/xs/UserPrefs.xml +++ b/.vs/SolidMod/xs/UserPrefs.xml @@ -1,13 +1,23 @@  - + - - - + + + + + + + + + + + + + diff --git a/SolidModule.cs b/LiquidMod.cs similarity index 50% rename from SolidModule.cs rename to LiquidMod.cs index 7d12fd3..454412a 100644 --- a/SolidModule.cs +++ b/LiquidMod.cs @@ -6,13 +6,13 @@ using Monocle; using On.Celeste; -namespace Celeste.Mod.Solid +namespace Celeste.Mod.Liquid { - public class SolidModule : EverestModule + public class LiquidMod : EverestModule { // Only one alive module instance can exist at any given time. - public static SolidModule Instance; + public static LiquidMod Instance; private static Color permcolor; @@ -20,19 +20,14 @@ public class SolidModule : EverestModule private static FieldInfo NormalHairColor = typeof(Player).GetField("NormalHairColor"); private static FieldInfo TwoDashesHairColor = typeof(Player).GetField("TwoDashesHairColor"); - private static bool Badeline; - - private static int HairCount; - private bool Floating; - - public SolidModule() + public LiquidMod() { Instance = this; } // If you don't need to store any settings, => null - public override Type SettingsType => typeof(SolidSettings); - public static SolidSettings Settings => (SolidSettings)Instance._Settings; + public override Type SettingsType => typeof(LiquidSettings); + public static LiquidSettings Settings => (LiquidSettings)Instance._Settings; // If you don't need to store any save data, => null public override Type SaveDataType => null; @@ -48,11 +43,41 @@ public override void Load() On.Celeste.DeathEffect.Draw += Death; On.Celeste.Player.IntroRespawnBegin += Player_Respawn; On.Celeste.Player.Update += Player_Update; - On.Monocle.Sprite.Play += Sprite_Play; - On.Celeste.PlayerHair.Render += PlayerHair_Render; - On.Celeste.PlayerHair.Update += PlayerHair_Update; + On.Celeste.PlayerHair.AfterUpdate += PlayerHair_AfterUpdate; + On.Celeste.PlayerHair.Render += PlayerHair_Render;; + // On.Monocle.ParticleSystem.Emit_ParticleType_Vector2_float += ParticleSystem_Emit_ParticleType_Vector2_Float; } + void PlayerHair_Render(On.Celeste.PlayerHair.orig_Render orig, PlayerHair self) + { + //int oldNum = self.Sprite.HairCount; + //int newNum = oldNum - 4 + Settings.HairLength; + //Player player = self.Entity as Player; + //if (Settings.Enabled && newNum <= countCache) + //{ + //self.Sprite.HairCount = newNum; + //} + orig(self); + //self.Sprite.HairCount = oldNum; + } + + + //void ParticleSystem_Emit_ParticleType_Vector2_Float(On.Monocle.ParticleSystem.orig_Emit_ParticleType_Vector2_float orig, ParticleSystem self, ParticleType type, Vector2 position, float direction) + //{ + // if (Settings.Enabled) + // { + // Player.P_DashA.Color = Calc.HexToColor(Settings.Dash0Color); + // Player.P_DashB.Color = Calc.HexToColor(Settings.Dash1Color); + // } + // else + // { + // Player.P_DashA.Color = Calc.HexToColor("44B7FF"); + // Player.P_DashB.Color = Calc.HexToColor("AC3232"); + // } + // orig(self, type, position, direction); + //} + + private void Player_Added(On.Celeste.Player.orig_Render orig, Player self) { //Logger.Log("A", self.GetType().ToString()); @@ -67,62 +92,66 @@ private void Player_Added(On.Celeste.Player.orig_Render orig, Player self) // self.Sprite = new PlayerSprite(mode); //} //self.Remove(self.Hair); - //self.Sprite.HairCount = Settings.HairLength; + //self.Sprite.HairCount = getHairCount(self); //self.Add(self.Hair = new PlayerHair(self.Sprite)); //self.Add(self.Sprite); orig(self); } - void PlayerHair_Update(On.Celeste.PlayerHair.orig_Update orig, PlayerHair self) - { - if ((self.Entity as BadelineOldsite) == null && ((self.Entity as Player) != null && Settings.HairLength != HairCount)) - { - Player player = self.Entity as Player; - player.Sprite.HairCount = Settings.HairLength; - HairCount = Settings.HairLength; - player.Remove(player.Hair); - PlayerSpriteMode mode = self.Sprite.Mode; - player.Remove(player.Sprite); - player.Add(player.Hair = new PlayerHair(player.Sprite)); - player.Add(player.Sprite); - } - if ((self.Entity as BadelineOldsite) == null && (self.Entity as Player) != null) { - self.Sprite.HairCount = Settings.HairLength; - } - orig(self); - } - + static int countCache = 4; - void PlayerHair_Render(On.Celeste.PlayerHair.orig_Render orig, PlayerHair self) + private void PlayerHair_AfterUpdate(On.Celeste.PlayerHair.orig_AfterUpdate orig, PlayerHair self) { - //self.Sprite.HairCount = Settings.HairLength; - orig(self); - } + //if ((self.Entity as BadelineOldsite) == null && ((self.Entity as Player) != null && getHairCount(self.Entity as Player) != HairCount)) + //{ + // Player player = self.Entity as Player; + // player.Sprite.HairCount = getHairCount(self.Entity as Player); + // HairCount = getHairCount(self.Entity as Player); + // player.Remove(player.Hair); + // PlayerSpriteMode mode = self.Sprite.Mode; + // player.Remove(player.Sprite); + // player.Add(player.Hair = new PlayerHair(player.Sprite)); + // player.Add(player.Sprite); + //} + //if ((self.Entity as BadelineOldsite) == null && (self.Entity as Player) != null) + //{ + // self.Sprite.HairCount = getHairCount(self.Entity as Player); + //} - private void Sprite_Play(On.Monocle.Sprite.orig_Play orig, Sprite self, string id, bool restart, bool randomizeFrame) - { - if (Settings.Badeline) - { - try + //int oldNum = self.Sprite.HairCount; + //int newNum = oldNum - 4 + Settings.HairLength; + //Player player = self.Entity as Player; + //if (Settings.Enabled) + //{ + // self.Sprite.HairCount = newNum; + //} + //orig(self); + //self.Sprite.HairCount = oldNum; + //countCache = newNum; + Player player = self.Entity as Player; + if (Settings.Enabled && player != null) { + if (player.StateMachine.State == 5) { - orig(self, id, restart, randomizeFrame); + player.Sprite.HairCount = 1; + } + else if (player.StateMachine.State != 19) + { + player.Sprite.HairCount = ((player.Dashes > 1) ? 5 : 4); + player.Sprite.HairCount += Settings.HairLength - 4; + } + else if (player.StateMachine.State == 19) + { + player.Sprite.HairCount = 7; } -#pragma warning disable RECS0022 // A catch clause that catches System.Exception and has an empty body - catch { } -#pragma warning restore RECS0022 // A catch clause that catches System.Exception and has an empty body - } - else - { - orig(self, id, restart, randomizeFrame); } + orig(self); } private void Player_Update(On.Celeste.Player.orig_Update orig, Player self) { - //Logger.Log("w", self.GetType().ToString()); if (self.GetType().Name == "Ghost") { orig(self); @@ -133,105 +162,53 @@ private void Player_Update(On.Celeste.Player.orig_Update orig, Player self) UsedHairColor.SetValue(null, Calc.HexToColor(Settings.Dash0Color)); NormalHairColor.SetValue(null, Calc.HexToColor(Settings.Dash1Color)); TwoDashesHairColor.SetValue(null, Calc.HexToColor(Settings.Dash2Color)); + Player.P_DashA.Color = Calc.HexToColor(Settings.Dash0Color); + Player.P_DashB.Color = Calc.HexToColor(Settings.Dash1Color); } else { NormalHairColor.SetValue(null, Calc.HexToColor("AC3232")); TwoDashesHairColor.SetValue(null, Calc.HexToColor("FF6DEF")); UsedHairColor.SetValue(null, Calc.HexToColor("44B7FF")); - if (((Entity)self as BadelineOldsite) != null) - { - self.Sprite.HairCount = Settings.HairLength; - } - } - if ((Settings.Badeline) != (self.Sprite.Mode == PlayerSpriteMode.Badeline)) - { - PlayerSpriteMode mode = self.Sprite.Mode; - self.Remove(self.Sprite); - if (Settings.Badeline) - { - self.Sprite = new PlayerSprite(PlayerSpriteMode.Badeline); - } - else - { - self.Sprite = new PlayerSprite(mode); - } - self.Remove(self.Hair); - self.Sprite.HairCount = Settings.HairLength; - self.Add(self.Hair = new PlayerHair(self.Sprite)); - self.Add(self.Sprite); - } - //if (Settings.Badeline != Badeline) - //{ - // if (Settings.Badeline) - // { - // self.Remove(self.Sprite); - // self.Sprite = new PlayerSprite(PlayerSpriteMode.Badeline); - // self.Remove(self.Hair); - // self.Add(self.Hair = new PlayerHair(self.Sprite)); - // self.Add(self.Sprite); - // Logger.Log("w", self.GetType().ToString()); - // } - // else - // { - // self.Remove(self.Sprite); - // self.Sprite = new PlayerSprite(PlayerSpriteMode.Madeline); - // self.Remove(self.Hair); - // self.Add(self.Hair = new PlayerHair(self.Sprite)); - // self.Add(self.Sprite); - // } - // Badeline = Settings.Badeline; - //} - if (Settings.HairLength != HairCount && self.Sprite.Entity as Player != null) - { - self.Sprite.HairCount = Settings.HairLength; - HairCount = Settings.HairLength; - self.Remove(self.Hair); - PlayerSpriteMode mode = self.Sprite.Mode; - self.Remove(self.Sprite); - self.Add(self.Hair = new PlayerHair(self.Sprite)); - self.Add(self.Sprite); - } - if (Settings.BadelineFloat) - { - if (Keyboard.GetState().IsKeyDown(Keys.A)) - { - Floating = true; - //self.Collidable = false; - //((Level)self.Scene).SolidTiles.Collidable = false; - self.DummyGravity = true; - - self.Speed.Y = -15f; - if (Keyboard.GetState().IsKeyDown(Keys.P)) - { - self.Speed.Y = Calc.Approach(self.Speed.Y, -120f, 360f); - } - if(Keyboard.GetState().IsKeyDown(Keys.L)) - { - self.Speed.X = Calc.Approach(self.Speed.X, -120f, 360f); - } - if (Keyboard.GetState().IsKeyDown(Keys.OemQuotes)) - { - self.Speed.X = Calc.Approach(self.Speed.X, 120f, 360f); - } - if (Keyboard.GetState().IsKeyDown(Keys.OemSemicolon)) - { - self.Speed.Y = Calc.Approach(self.Speed.Y, 120f, 360f); - } - } - else - { - if (Floating) - { - //self.Collidable = true; - Floating = false; - self.DummyGravity = false; - //((Level)self.Scene).SolidTiles.Collidable = true; - } - } + Player.P_DashA.Color = Calc.HexToColor("44B7FF"); + Player.P_DashB.Color = Calc.HexToColor("AC3232"); } orig(self); } + // if (((Entity)self as BadelineOldsite) != null) + // { + // self.Sprite.HairCount = getHairCount(self); + // } + // if (getHairCount(self) != HairCount && self.Sprite.Entity as Player != null) + // { + // self.Sprite.HairCount = getHairCount(self); + // HairCount = getHairCount(self); + // self.Remove(self.Hair); + // PlayerSpriteMode mode = self.Sprite.Mode; + // self.Remove(self.Sprite); + // self.Add(self.Hair = new PlayerHair(self.Sprite)); + // self.Add(self.Sprite); + // } + // orig(self); + //} + + //private static int getHairCount(Player player) + //{ + // int numb; + // if (Settings.Enabled) + // { + // numb = Settings.HairLength; + // } + // else + // { + // numb = 4; + // } + // if (player != null && player.Dashes == 1) + // { + // numb += 1; + // } + // return numb; + //} private void Player_Respawn(On.Celeste.Player.orig_IntroRespawnBegin orig, Player self) @@ -278,9 +255,7 @@ public override void Unload() On.Celeste.DeathEffect.Draw -= Death; On.Celeste.Player.IntroRespawnBegin -= Player_Respawn; On.Celeste.Player.Update -= Player_Update; - On.Monocle.Sprite.Play -= Sprite_Play; - On.Celeste.PlayerHair.Render -= PlayerHair_Render; - On.Celeste.PlayerHair.Update -= PlayerHair_Update; + On.Celeste.PlayerHair.AfterUpdate -= PlayerHair_AfterUpdate; } //public static Color GetHairColor(On.Celeste.PlayerHair.orig_GetHairColor orig, PlayerHair self, int index) @@ -320,47 +295,51 @@ public override void Unload() public static void AddTrail(On.Celeste.TrailManager.orig_Add_Entity_Color_float orig, Entity self, Color color, float duration) { - Color colorOrig = color; + //if (Settings.Enabled) + //{ + // Color colorOrig = color; - if (!(self is Player)) - return; + // if (!(self is Player)) + // return; - if ((self as Player).Sprite.Mode == PlayerSpriteMode.Badeline) - { - orig(self, ColorFromHex("ff0019"), duration); - return; - } + // if ((self as Player).Sprite.Mode == PlayerSpriteMode.Badeline) + // { + // orig(self, ColorFromHex("ff0019"), duration); + // return; + // } - Color newColor = color; + // Color newColor = color; - if ((self as Player).StateMachine.State == 19) - return; + // if ((self as Player).StateMachine.State == 19) + // return; - if (self is Player) - { + // if (self is Player) + // { - int dashes = ((Player)self).Dashes; + // int dashes = ((Player)self).Dashes; - if (dashes == 0) - newColor = ColorFromHex(Settings.Dash0Color); + // if (dashes == 0) + // newColor = ColorFromHex(Settings.Dash0Color); - if (dashes == 1) - newColor = ColorFromHex(Settings.Dash1Color); + // if (dashes == 1) + // newColor = ColorFromHex(Settings.Dash1Color); - if (dashes == 2) - newColor = ColorFromHex(Settings.Dash2Color); + // if (dashes == 2) + // newColor = ColorFromHex(Settings.Dash2Color); - } + // } - color.A = colorOrig.A; - if (Settings.Enabled) - { - orig(self, newColor, duration); - } - else - { - orig(self, colorOrig, duration); - } + // color.A = colorOrig.A; + // if (Settings.Enabled) + // { + // orig(self, newColor, duration); + // } + // else + // { + // orig(self, colorOrig, duration); + // } + //} + orig(self, color, duration); } public static Color GetTrailColor(On.Celeste.Player.orig_GetTrailColor orig, Player self, bool wasDashB) @@ -369,26 +348,26 @@ public static Color GetTrailColor(On.Celeste.Player.orig_GetTrailColor orig, Pla Color color = colorOrig; - if (!(self is Player)) - return colorOrig; + //if (!(self is Player)) + // return colorOrig; - if ((self as Player).Sprite.Mode == PlayerSpriteMode.Badeline) - { - return colorOrig; - } + //if ((self as Player).Sprite.Mode == PlayerSpriteMode.Badeline) + //{ + // return colorOrig; + //} - int dashes = self.Dashes; + //int dashes = self.Dashes; - if (dashes == 0) - color = ColorFromHex(Settings.Dash0Color); + //if (dashes == 0) + // color = ColorFromHex(Settings.Dash0Color); - if (dashes == 1) - color = ColorFromHex(Settings.Dash1Color); + //if (dashes == 1) + // color = ColorFromHex(Settings.Dash1Color); - if (dashes == 2) - color = ColorFromHex(Settings.Dash2Color); + //if (dashes == 2) + // color = ColorFromHex(Settings.Dash2Color); - color.A = colorOrig.A; + //color.A = colorOrig.A; return color; } diff --git a/SolidMod.csproj b/LiquidMod.csproj similarity index 91% rename from SolidMod.csproj rename to LiquidMod.csproj index 2e19818..28b84bb 100644 --- a/SolidMod.csproj +++ b/LiquidMod.csproj @@ -6,7 +6,7 @@ {B6A08C1E-96FA-4C66-81C3-F2B73DFC349D} Library SolidMod - SolidMod + LiquidMod v4.7 @@ -54,10 +54,10 @@ - + - - + + \ No newline at end of file diff --git a/SolidMod.sln b/LiquidMod.sln similarity index 82% rename from SolidMod.sln rename to LiquidMod.sln index 79eced2..b3c8b4c 100644 --- a/SolidMod.sln +++ b/LiquidMod.sln @@ -1,7 +1,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SolidMod", "SolidMod.csproj", "{B6A08C1E-96FA-4C66-81C3-F2B73DFC349D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LiquidMod", "LiquidMod.csproj", "{B6A08C1E-96FA-4C66-81C3-F2B73DFC349D}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/SolidSaveData.cs b/LiquidSaveData.cs similarity index 96% rename from SolidSaveData.cs rename to LiquidSaveData.cs index 589e506..125509d 100644 --- a/SolidSaveData.cs +++ b/LiquidSaveData.cs @@ -7,13 +7,13 @@ using System.Threading.Tasks; using YamlDotNet.Serialization; -namespace Celeste.Mod.Solid +namespace Celeste.Mod.Liquid { // If no SettingName is applied, it defaults to // modoptions_[typename without settings]_title // The value is then used to look up the UI text in the dialog files. // If no dialog text can be found, Everest shows a prettified mod name instead. - public class SolidSaveData : EverestModuleSaveData + public class LiquidSaveData : EverestModuleSaveData { // SettingName also works on props, defaulting to diff --git a/SolidSettings.cs b/LiquidSettings.cs similarity index 91% rename from SolidSettings.cs rename to LiquidSettings.cs index b268f28..dc933b8 100644 --- a/SolidSettings.cs +++ b/LiquidSettings.cs @@ -7,14 +7,14 @@ using System.Threading.Tasks; using YamlDotNet.Serialization; -namespace Celeste.Mod.Solid +namespace Celeste.Mod.Liquid { // If no SettingName is applied, it defaults to // modoptions_[typename without settings]_title // The value is then used to look up the UI text in the dialog files. // If no dialog text can be found, Everest shows a prettified mod name instead. - [SettingName("modoptions_solidmodule_title")] - public class SolidSettings : EverestModuleSettings + [SettingName("modoptions_liquidmodule_title")] + public class LiquidSettings : EverestModuleSettings { public bool Enabled { get; set; } = true; @@ -24,12 +24,10 @@ public class SolidSettings : EverestModuleSettings public string Dash2Color { get; set; } = "ffffff"; - public bool Badeline { get; set; } = false; - - public bool BadelineFloat { get; set; } = false; - [SettingRange(1, 100)] public int HairLength { get; set; } = 4; + + public bool HairCollision { get; set; } = false; // SettingName also works on props, defaulting to // modoptions_[typename without settings]_[propname] diff --git a/obj/Debug/SolidMod.csprojAssemblyReference.cache b/obj/Debug/SolidMod.csprojAssemblyReference.cache index 8f86417a7caf16c36095a00eda2d550f8420486e..b275a1c57c8e2bd991e18c8299f96a1cf551b5af 100644 GIT binary patch literal 73126 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 literal 84548 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 Zc(>V~2fXzhD8M_+ih#ki*jJjZ{}*Pmx;_8^ diff --git a/obj/Debug/SolidMod.dll b/obj/Debug/SolidMod.dll deleted file mode 100644 index 5d3001208bcf5fbee0ba424347798f529bcdb270..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13312 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 diff --git a/obj/Debug/SolidMod.pdb b/obj/Debug/SolidMod.pdb deleted file mode 100644 index cf6cedd7dea481d8e8e6859a6f394f5a6435082d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3848 zcmai1YiwLc6`nbsy?br1?e$~5e#FVzj-A-CH*p%bd9*1w4zWXBhd3<-5t{Y-Hg>$b zH`(39U7FClPJ}BGLO?{}SE{BUN~)GhEmG9d28r?pRaFo|LQzs-BqSaZloSe8;X8Bh z#+N|KTHnlk=gc{CX6DSy_0Yu5At|KbUkKPWJQO=J5MQSS!VpK%cnIj+H8shyUvLos z|18?5H-L6dMlkm6;7#Eqa7VUr*YODVd6eqaNz1+W1J_%lEx#V%lz zl42fs7Ptib5qK>i#SlCmgU2_3UjkQwMd0_qUx0T35hM`=s(}cw4Cn-Ufy==%(Pfs2 zKHv^uGw@+x1Q-V%1oi?`z%1}Ma0WOBoChwN5-U>L-x|!7e7q98%*Vsv%Eu8K*pmI1 z!3`g;01x^&Z$OFP4V?p+(3i0SKki@dN&gl$v%=F4!sMK%SFnEsx)C^~-#m^=&@R`sF^(dOkP)_+mcJ z`gW{FNxvPu!>4C|oj%U}-92#khxJ{z=(~NK^{afG?N|Fa>wA2h^}RmMdcF@z@v*+o z7cb{?zmHde$9?_TeyxwQ{W@QN&YuAvzYCnN72adM9r(0x$@#-Sj*U+U_u+jp{zJkm zgHw%?vy6Y7bvy>&VM_CF1lgM7;#jUjvnXS-OpMWoP*$jYDCd-;CD&0t84y$^dW{&$ z!-f+m6Gz!FZBJPuX{YS$cy?w#x5U9zqF`l3#+uv4a#t&+61izh-`lVfe`sv_*QYOr z#}@u(k0y_A*!TCzkKOx&;Fa1l6XLt$Pt#M+?0)$0_rLVo_LnZj&K~;h?pK8|QOM=3 zbc0*Pci>u2q-H*o$j{iBT2Hv!dL(5fSrQ$aNoMVw{YXCkP$m)oNH&qS=Ircj+im3W z(agca`QVtHv6CsQVmuSyW~D3)SS_VAWt&_pcSuX7)wG?qDyFSWwlHa+%o#~LowhSU&y^apr*h_motl|KtGd)UoU-D{T+3SFEI6l} zbIy6^YtBXICFd3Ad(MyW_h!SJFMj1G`LCN7-%jV>d*}5Ve?7Zsyv}b_!?N_qy?83-E5#A||!o+FS7&(3Nx z^%!_y_>@Qy;zFT|n&ASZ)CCGE5Y-ef;UvhTaM!6!T$G->O2S}x3d5b#M$Jdr;u1C~6q5ESeyg_a;!aiY4FL!!5D@r6xW>7R6 zpbZK)ht7_Y_l;zBad48i7$)AJOJa(_#$6u8vHqwccf<9j@Pqx#^-_fZKL0_1r(<|xpHTvQOI`h;$xb39# zCv5a`o?DndIEo6Azo*Z60b$AF5UiRAABT+!8;PKUWCp}mRluX*}?0Kyox7}`(6oHg?aL~AyOT}DN{Jm5r1;7AhUw!=cRtk zqk4~)%ZMxv(jXn8;vOnKBa7E)K1}m@n*S9YKQN1{NEU6(XBC;{qDkQ`!T@^lYkBuE zDI9n&R!9O!LWGBaVX2UZZos!8jjB*1s`Te36`}}brz~!z1C5fL7pRz^;>$E&zaF!d z#Z!m@$Esem7)wVru#(InAwz|-z%gZxi^@=eLn#F12suwQO1_JB*Oxbo2MHfZpCS>~ zm-mE~&-4ExA9Q_x?sUUqNA&6$b)e_HD}Cx8zj^EV$DasYj#;{Om}JR(p8&R^=cMtcdPC??@h!L?7fM(mj4#TcUT!KJCm&RRQJtf4wc$_ ztVi>Wo_x=A)=Eravhh8M+-$Dt6Nz+c*v{W?<>M2uzxfhJrSl42%!L8DFf11ymJ73T zVNNcb<_{88-yamFs;ESPlcI|NCt*NU;0PH7Z&edVtl>mH@j#wr(3PoRg1eiE$-^Hb!cJRDqXd^!uGYAb-4yz{b4@neN|Gd z@vdKTGeE9`3|Fi^