From 6d5eee0d4ccdb897f4ec213dfa69e5bcfe23912b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BAlio=20C=C3=A9sar=20Ueti?= <52474532+Mirino97@users.noreply.github.com> Date: Mon, 24 Jan 2022 09:55:48 -0300 Subject: [PATCH] Add ESwords (now Inventory refactor compliant!) (#6000) Co-authored-by: metalgearsloth --- Content.Client/Entry/IgnoredComponents.cs | 3 +- .../Weapons/Melee/EnergySwordVisualizer.cs | 96 ++++++++ .../Components/EnergySwordComponent.cs | 40 +++ .../Melee/EnergySword/EnergySwordSystem.cs | 130 ++++++++++ .../Weapon/Melee/MeleeWeaponSystem.cs | 17 +- .../Melee/SharedEnergySwordComponent.cs | 20 ++ Resources/Audio/Weapons/eblade1.ogg | Bin 0 -> 12515 bytes Resources/Audio/Weapons/ebladeoff.ogg | Bin 0 -> 19759 bytes Resources/Audio/Weapons/ebladeon.ogg | Bin 0 -> 16055 bytes .../Prototypes/Catalog/uplink_catalog.yml | 14 +- .../Objects/Weapons/Melee/e_sword.yml | 38 +++ .../Weapons/Melee/e_sword.rsi/e_sword.png | Bin 0 -> 193 bytes .../Melee/e_sword.rsi/e_sword_blade.png | Bin 0 -> 826 bytes .../Weapons/Melee/e_sword.rsi/e_sword_on.png | Bin 0 -> 460 bytes .../Melee/e_sword.rsi/e_sword_rainbow_on.png | Bin 0 -> 1522 bytes .../Weapons/Melee/e_sword.rsi/meta.json | 227 ++++++++++++++++++ .../Melee/e_sword.rsi/off-inhand-left.png | Bin 0 -> 314 bytes .../Melee/e_sword.rsi/off-inhand-right.png | Bin 0 -> 318 bytes .../Melee/e_sword.rsi/on-inhand-left.png | Bin 0 -> 1009 bytes .../Melee/e_sword.rsi/on-inhand-right.png | Bin 0 -> 984 bytes .../e_sword.rsi/on-rainbow-inhand-left.png | Bin 0 -> 2995 bytes .../e_sword.rsi/on-rainbow-inhand-right.png | Bin 0 -> 2896 bytes 22 files changed, 577 insertions(+), 8 deletions(-) create mode 100644 Content.Client/Weapons/Melee/EnergySwordVisualizer.cs create mode 100644 Content.Server/Weapon/Melee/EnergySword/Components/EnergySwordComponent.cs create mode 100644 Content.Server/Weapon/Melee/EnergySword/EnergySwordSystem.cs create mode 100644 Content.Shared/Weapons/Melee/SharedEnergySwordComponent.cs create mode 100644 Resources/Audio/Weapons/eblade1.ogg create mode 100644 Resources/Audio/Weapons/ebladeoff.ogg create mode 100644 Resources/Audio/Weapons/ebladeon.ogg create mode 100644 Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml create mode 100644 Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/e_sword.png create mode 100644 Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/e_sword_blade.png create mode 100644 Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/e_sword_on.png create mode 100644 Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/e_sword_rainbow_on.png create mode 100644 Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/meta.json create mode 100644 Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/off-inhand-left.png create mode 100644 Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/off-inhand-right.png create mode 100644 Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/on-inhand-left.png create mode 100644 Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/on-inhand-right.png create mode 100644 Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/on-rainbow-inhand-left.png create mode 100644 Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/on-rainbow-inhand-right.png diff --git a/Content.Client/Entry/IgnoredComponents.cs b/Content.Client/Entry/IgnoredComponents.cs index 8bbad8b1ad..add0962dca 100644 --- a/Content.Client/Entry/IgnoredComponents.cs +++ b/Content.Client/Entry/IgnoredComponents.cs @@ -332,7 +332,8 @@ namespace Content.Client.Entry "ArtifactGasTrigger", "ArtifactInteractionTrigger", "Artifact", - "RandomArtifactSprite" + "RandomArtifactSprite", + "EnergySword", }; } } diff --git a/Content.Client/Weapons/Melee/EnergySwordVisualizer.cs b/Content.Client/Weapons/Melee/EnergySwordVisualizer.cs new file mode 100644 index 0000000000..323bbeaedd --- /dev/null +++ b/Content.Client/Weapons/Melee/EnergySwordVisualizer.cs @@ -0,0 +1,96 @@ +using Content.Shared.Item; +using Content.Shared.Weapons.Melee; +using Robust.Client.GameObjects; +using Robust.Shared.GameObjects; +using Robust.Shared.IoC; +using Robust.Shared.Maths; + +namespace Content.Client.Weapons.Melee; + +public class EnergySwordVisualizer : AppearanceVisualizer +{ + public override void OnChangeData(AppearanceComponent component) + { + base.OnChangeData(component); + var entManager = IoCManager.Resolve(); + + component.TryGetData(EnergySwordVisuals.State, out EnergySwordStatus? status); + status ??= EnergySwordStatus.Off; + component.TryGetData(EnergySwordVisuals.Color, out Color? color); + color ??= Color.DodgerBlue; + entManager.TryGetComponent(component.Owner, out SpriteComponent? spriteComponent); + + if ((status & EnergySwordStatus.On) != 0x0) + { + TurnOn(component, status.Value, color.Value, entManager, spriteComponent); + } + else + { + TurnOff(component, status.Value, entManager, spriteComponent); + } + } + + private void TurnOn( + AppearanceComponent component, + EnergySwordStatus status, + Color color, + IEntityManager entManager, + SpriteComponent? spriteComponent = null) + { + if ((status & EnergySwordStatus.Hacked) != 0x0) + { + if (entManager.TryGetComponent(component.Owner, out SharedItemComponent? itemComponent)) + { + itemComponent.EquippedPrefix = "on-rainbow"; + } + + //todo: figure out how to use the RGBLightControllerSystem to phase out the rainbow sprite AND add lights. + spriteComponent?.LayerSetColor(1, Color.White); + spriteComponent?.LayerSetVisible(1, false); + spriteComponent?.LayerSetState(0, "e_sword_rainbow_on"); + } + else + { + if (entManager.TryGetComponent(component.Owner, out SharedItemComponent? itemComponent)) + { + itemComponent.EquippedPrefix = "on"; + itemComponent.Color = color; + } + + spriteComponent?.LayerSetColor(1, color); + spriteComponent?.LayerSetVisible(1, true); + + if (entManager.TryGetComponent(component.Owner, out PointLightComponent? pointLightComponent)) + { + pointLightComponent.Color = color; + pointLightComponent.Enabled = true; + } + } + } + + private void TurnOff( + AppearanceComponent component, + EnergySwordStatus status, + IEntityManager entManager, + SpriteComponent? spriteComponent = null) + { + if (entManager.TryGetComponent(component.Owner, out SharedItemComponent? itemComponent)) + { + itemComponent.EquippedPrefix = "off"; + } + + if ((status & EnergySwordStatus.Hacked) != 0x0) + { + spriteComponent?.LayerSetState(0, "e_sword"); + } + else + { + spriteComponent?.LayerSetVisible(1, false); + } + + if (entManager.TryGetComponent(component.Owner, out PointLightComponent? pointLightComponent)) + { + pointLightComponent.Enabled = false; + } + } +} diff --git a/Content.Server/Weapon/Melee/EnergySword/Components/EnergySwordComponent.cs b/Content.Server/Weapon/Melee/EnergySword/Components/EnergySwordComponent.cs new file mode 100644 index 0000000000..4950fee69d --- /dev/null +++ b/Content.Server/Weapon/Melee/EnergySword/Components/EnergySwordComponent.cs @@ -0,0 +1,40 @@ +using System.Collections.Generic; +using Content.Shared.Damage; +using Content.Shared.Sound; +using Robust.Shared.GameObjects; +using Robust.Shared.Maths; +using Robust.Shared.Serialization.Manager.Attributes; + +namespace Content.Server.Weapon.Melee.EnergySword +{ + [RegisterComponent, ComponentProtoName("EnergySword")] + internal class EnergySwordComponent : Component + { + public Color BladeColor = Color.DodgerBlue; + + public bool Hacked = false; + + public bool Activated = false; + [DataField("hitSound")] + public SoundSpecifier HitSound { get; set; } = new SoundPathSpecifier("/Audio/Weapons/eblade1.ogg"); + + [DataField("activateSound")] + public SoundSpecifier ActivateSound { get; set; } = new SoundPathSpecifier("/Audio/Weapons/ebladeon.ogg"); + + [DataField("deActivateSound")] + public SoundSpecifier DeActivateSound { get; set; } = new SoundPathSpecifier("/Audio/Weapons/ebladeoff.ogg"); + + [DataField("colorOptions")] + public List ColorOptions = new() + { + Color.Tomato, + Color.DodgerBlue, + Color.Aqua, + Color.MediumSpringGreen, + Color.MediumOrchid + }; + + [DataField("litDamageBonus", required: true)] + public DamageSpecifier LitDamageBonus = default!; + } +} diff --git a/Content.Server/Weapon/Melee/EnergySword/EnergySwordSystem.cs b/Content.Server/Weapon/Melee/EnergySword/EnergySwordSystem.cs new file mode 100644 index 0000000000..e48032aebb --- /dev/null +++ b/Content.Server/Weapon/Melee/EnergySword/EnergySwordSystem.cs @@ -0,0 +1,130 @@ +using Content.Server.Tools.Components; +using Content.Shared.ActionBlocker; +using Content.Shared.Interaction; +using Content.Shared.Item; +using Content.Shared.Weapons.Melee; +using Robust.Shared.Audio; +using Robust.Shared.GameObjects; +using Robust.Shared.IoC; +using Robust.Shared.Player; +using Robust.Shared.Random; + +namespace Content.Server.Weapon.Melee.EnergySword +{ + internal class EnergySwordSystem : EntitySystem + { + [Dependency] private readonly ActionBlockerSystem _blockerSystem = default!; + [Dependency] private readonly IRobustRandom _random = default!; + public override void Initialize() + { + base.Initialize(); + + SubscribeLocalEvent(OnMapInit); + SubscribeLocalEvent(OnMeleeHit); + SubscribeLocalEvent(OnUseInHand); + SubscribeLocalEvent(OnInteractUsing); + } + + private void OnMapInit(EntityUid uid, EnergySwordComponent comp, MapInitEvent args) + { + if (comp.ColorOptions.Count != 0) + comp.BladeColor = _random.Pick(comp.ColorOptions); + } + + private void OnMeleeHit(EntityUid uid, EnergySwordComponent comp, MeleeHitEvent args) + { + if (!comp.Activated) return; + + if (args.Handled) return; + + args.Handled = true; + // Overrides basic blunt damage with burn+slash as set in yaml + args.BonusDamage = comp.LitDamageBonus; + args.HitSoundOverride = comp.HitSound; + } + + private void OnUseInHand(EntityUid uid, EnergySwordComponent comp, UseInHandEvent args) + { + if (args.Handled) return; + + if (!_blockerSystem.CanUse(args.User)) + return; + + args.Handled = true; + + if (comp.Activated) + { + TurnOff(comp); + } + else + { + TurnOn(comp); + } + } + + private void TurnOff(EnergySwordComponent comp) + { + if (!comp.Activated) + return; + + if (TryComp(comp.Owner, out SharedItemComponent? item)) + { + item.Size = 5; + } + + SoundSystem.Play(Filter.Pvs(comp.Owner), comp.DeActivateSound.GetSound(), comp.Owner); + + comp.Activated = false; + UpdateAppearance(comp, item); + } + + private void TurnOn(EnergySwordComponent comp) + { + if (comp.Activated) + return; + + if (TryComp(comp.Owner, out SharedItemComponent? item)) + { + item.Size = 9999; + } + + SoundSystem.Play(Filter.Pvs(comp.Owner), comp.ActivateSound.GetSound(), comp.Owner); + + comp.Activated = true; + UpdateAppearance(comp, item); + } + + private void UpdateAppearance(EnergySwordComponent component, SharedItemComponent? itemComponent = null) + { + if (!EntityManager.TryGetComponent(component.Owner, out AppearanceComponent? appearanceComponent)) return; + + appearanceComponent.SetData(EnergySwordVisuals.Color, component.BladeColor); + + var status = component.Activated ? EnergySwordStatus.On : EnergySwordStatus.Off; + if (component.Hacked) + status |= EnergySwordStatus.Hacked; + + appearanceComponent.SetData(EnergySwordVisuals.State, status); + // wew itemcomp + if (Resolve(component.Owner, ref itemComponent, false)) + { + itemComponent.EquippedPrefix = component.Activated ? "on" : "off"; + itemComponent.Color = component.BladeColor; + } + } + + private void OnInteractUsing(EntityUid uid, EnergySwordComponent comp, InteractUsingEvent args) + { + if (args.Handled) return; + + if (comp.Hacked || !_blockerSystem.CanInteract(args.User)) + return; + + if (!TryComp(args.Used, out ToolComponent? tool) || !tool.Qualities.ContainsAny("Pulsing")) return; + + args.Handled = true; + comp.Hacked = true; + UpdateAppearance(comp); + } + } +} diff --git a/Content.Server/Weapon/Melee/MeleeWeaponSystem.cs b/Content.Server/Weapon/Melee/MeleeWeaponSystem.cs index 14e8d78330..ba1e2cc048 100644 --- a/Content.Server/Weapon/Melee/MeleeWeaponSystem.cs +++ b/Content.Server/Weapon/Melee/MeleeWeaponSystem.cs @@ -9,6 +9,8 @@ using Content.Server.Chemistry.EntitySystems; using Content.Server.Cooldown; using Content.Server.Weapon.Melee.Components; using Content.Shared.Damage; +using Content.Shared.Sound; +using Content.Shared.Audio; using Content.Shared.Database; using Content.Shared.Hands; using Content.Shared.Interaction; @@ -107,7 +109,14 @@ namespace Content.Server.Weapon.Melee $"{ToPrettyString(args.User):user} melee attacked {ToPrettyString(args.Target.Value):target} using {ToPrettyString(args.Used):used} and dealt {damageResult.Total:damage} damage"); } - SoundSystem.Play(Filter.Pvs(owner), comp.HitSound.GetSound(), target); + if (hitEvent.HitSoundOverride != null) + { + SoundSystem.Play(Filter.Pvs(owner), hitEvent.HitSoundOverride.GetSound(), target, AudioHelpers.WithVariation(0.25f)); + } + else + { + SoundSystem.Play(Filter.Pvs(owner), comp.HitSound.GetSound(), target); + } } } else @@ -320,6 +329,12 @@ namespace Content.Server.Weapon.Melee /// public IEnumerable HitEntities { get; } + /// + /// Used to define a new hit sound in case you want to override the default GenericHit. + /// Also gets a pitch modifier added to it. + /// + public SoundSpecifier? HitSoundOverride {get; set;} + /// /// The user who attacked with the melee weapon. /// diff --git a/Content.Shared/Weapons/Melee/SharedEnergySwordComponent.cs b/Content.Shared/Weapons/Melee/SharedEnergySwordComponent.cs new file mode 100644 index 0000000000..45fd78d689 --- /dev/null +++ b/Content.Shared/Weapons/Melee/SharedEnergySwordComponent.cs @@ -0,0 +1,20 @@ +using System; +using Robust.Shared.Serialization; + +namespace Content.Shared.Weapons.Melee; + + +[Serializable, NetSerializable, Flags] +public enum EnergySwordStatus : byte +{ + Off = 0, + On = 1 << 0, + Hacked = 1 << 1, +} + +[Serializable, NetSerializable] +public enum EnergySwordVisuals : byte +{ + State, + Color, +} diff --git a/Resources/Audio/Weapons/eblade1.ogg b/Resources/Audio/Weapons/eblade1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..583fbf19e8c213ba976f006eff4c2cfa34517bfb GIT binary patch literal 12515 zcmaia1ymi)vhHl$-5r8$EVu=N6WF+W2<~o42rj{bJA~lw79c>7;O-8=ArQkQz#GVa z&OPtGx9*+QG(BD2Rb5qI^;FMn6)P(Z01o))QZoPB*jQk`g-}5}om@?A-0r&|(&hgQ z@q#=wnjk9oGyi?v&%CEd3K4AJJh}V7t^xSJj95Xsu8p%bhl;BejlGSj_5*twc^Ym` zE^bb4P97R&6$eKfXIBe13rBb8J#Pr&->FbZDQyUV0`_nz()9R`$7%rp4gkEMhhimI z%0mkhbC_SHCd%EndN{*V6T^E*%%Zq@|5efOniB#50^rY#8lATzZ#ybvMZy&Ank{6b zELcQ?9HI7A2({~!(af>1zR=Eb6v}{tsfP%Fb`h7O4Ixm!uS~;eLrK8uErn}8ZBeEx z8cT6@AR2c+O^_n@etv?o@P2V#wD33P`f*8g_WDVfBG-(zS!ElN(Hpl>q20`XD%1x( zXu!2dB9WToNTS@c4}%t_x`M3!szn3%gK7fL;t1qx2!?7XMkeT0j@Z=j`6hT|G&Gg8 zz{|r($J1iY(__xlM=v$RpvgzCDa2qt#OOT4ge3Hza^bUfeqSC`r-1<3kA#vpp}BNq zxf?>c@WG+wZ~*8s1b_xLo(>wHCtql3TWOQgXkFImFjUJnREzO21oSDw{c3=0oAko} zr&#JGTm0`u+`69y5C?79=R(ovLNB9E-{;DP{9xgJ0Q9N2I$Mt`?=v^vJ~t7tJad;G zNK_m-QN;e26Ykv(0ODK}JuVajpf%Llr(F4T+(hTxl;%KF+*{;-z5*Wb0xClL-ZI(N zAB88@zqi z1bqn|OzX)`8&7u|mB&ag_}hAgmw{YSG70vP?q*{3lA3_yY$nr@OBQs&xq9R2JH^ce zU@JT^gQ=le^Dn=DU{UfsbF@=v9h?!qm|@q9Y6P|}%`<3tta z;}eZ!NH*4sQJfzi z!7|8PH_Sc6c3+iuj|v}DcjHK5aDgah;{#Fru3;z3tx`zNuApI7pS2)S9R@A<8&RNB zY0P6KkVqebBsA4^5LyIA#eX{P7yTG6<-~uKvELMGcnn~f;AYq05!KSv((!cAOYvCx z7-BT)(+BfI$=d5R-|fQCxkQLCTV-e;xd<$Z;X)i=!BbqgSY< zSDIuSIpS40=AFQoQR7w8AT*jF^q3;D(BLb76rBJK z>Mle4pAGcsK3mP^F07wDg5$NP#oCw!g zNk>s#6s{e5#2g`{oG&E7ML0YdLYQ>!u@X$8P4PnA7{_1LnF*y8gWfR+MAKk)6&lKK z3!;GA9s-~S0RCM4Twh3BN96~yrAN6?-zWA9F%=|C%0tqLK!^B zh4elM2Uej#t1Ct z@RjD0ct?2o)HJn*@U><%wU&sKv>F+d@RgKKG_~+$v4Ra#j-SX)(AX@3AxD~n5O*-A^<%4*B6 zOW6(@i%VN725YM`D$5QUf1-D@9ke)?R#ukP9^O-1Dh_&G4q7Z%^B{dv&xxZZ z2{atod($8F(txZ6?u9?d*iKCZS)~QV!(bIj@#@2w3HPjmqG9sT#(0<_xGET|CPZD| zo@+K!-JTCz704vrh&-Lk!yzxW>ax5 zyrhT7AQ}{|VaHcEYkN;Ha1fnMcY{^TPOHBI31$v$GwI$x|E0O9Eqm{*X~n&8mYSq^ zQ25TGew0w+q$$WMUOft&VPM}}m~0CY($ymyb{5_2`Oc>G%kO0ya$4YsfP+kgHhZ|1MWLWqy;2F<0Sb6W;k>OB%ogk2+Tm+ zlDJ_>vXGjMN-#r%Rbed95FD61LjjoJqEUePoc(yBE(N%tzx&7w3{woQP#SklZWi2N zMHo{_0BF$)4-g6kJ;VC874`GtC>0^I+zJdJ6f7&gr0Rni>>;?I!-su@0fCQJx9Cs7vKOOqI{4vGU+DsjaCZP%lH zPe{~1qyeE}&*zB)!m3wa3RcmhYgb8IFl$=QHwS{aVJF=V1`_N>ngL)L5gDk4Czs)8 zB0**0HGfdTp9VBz6jvyLX$049rW6XaCl$yV9KS_G(-`oGl+5anh|DRe0b`>Dx z{<8waKcgW7cgW=0&jg`l=xp~o;$VS^UUw?EVkFAoQ0QKMFzB8fDVPv51BenR6od~L z(TV!7G&gm17KVc4`>kVIAI1*yMrJ6ORksDD2%{9#Pv480mym-N%<4z7gCPe4Z%w24 zLe;?`J@cmJT=|pgV0@C8m4gAKZwD^jjvd-CYZ}!6+8^8@W=$jcX7$m5ua3@uzg)FT zXi|P%*TmNcU(RydKgUmckX>I2tpM8eiweUN1r!HXV1Id1+Qw|4+H!$0KjG5_5eEDPt%hb zoU9NW>xyH_fvX-N^sL50jQ|>WLI~La~UEaY~gXEVW9N|yG`1_131C`7;#~`7_>M0(Fjbm5QH5m+u>Kx^ zApjKs#ADLX(WMJTW5r;{;>6*`<0arHg75`^uMmH1z@Hv5EG*12IZo?hBKIRDEQ z0>cCOzCuCydsIPqX#YJRi;Le=0O0L7ut^i#lJDRbTXo&3?D^TFPmMUj_(HnlT+1nP76-@mz-4WbQi z*2uRZORT~G%t@;X0%lxyX__T>ZWWQ`BBhTVgzfQ>AODzkF*B#*(+ejk z*r$`S_Wb~OZhK*@B7PAadW6R3lIOA_fo;> z(7?%~zO#T;o(oF2*fcUA(fAG{6~fEn@%(F6QFKXORfDKF?+i&XyT#{Mejm~0{e(%s zFBR7Ay_r3m*?bq1@~6<8=2rH!-Qvw0lvM%|kbWx4d}(g~4J%vx5wA~YwiHGY`AMnI zXL~HHjkhlyjpcb!*u=c=)|YDbSWq{HZ2Y&qo8jd~*l!0m$}q|HhV9758lP}fbi3Rv zM-5SJSwBfR0suz7?~L*OHWI0F1VcG6U#794%TJfhw|C!J7+2e0@eicpob!9c%N@Xx z;jHsM;d);^W&Yzs%5mM^O=q{&a$3QrJ9{!`YsgbKeMX#?oT!IeMMvGu=bPCGIr+^Nu}riZNx1SRRhCk$7E;=?q#f$eWBN(1Z5kl)puMumF^ z=H*d&KFU`4i4b~c%dh;Og(21P^90&sq60+^1NqZ$H+nNAS@{$bVpRhk{cO6FeuHVK zYz%uP5Enq8Z5|8}kD(UXY+zkK=48LtxiV08k1_Yqn5jf5C3GbDExGi#srM9oq^**@ z6MZBNcPJi3(M;M-b_vLo&}bx1qlImJIR_{8b0B}bNM z-11C9>E$)sVOS0|MSA%xe~hc$8&R38r7O)?6Wu<_QgdW&JX41&hsZwW8=K^Sw=NEfQnnRbWTQ2W-*F9dwygfj7;#g|i<$D*!j0 zVSyzM2-?>O^PeP433WN)>lc)yO~ZbZi#F)T+D=7wY%J5`ImkNcdM6~*nK#%~NPzDZ zflNSCd#Y~jg#7*jU42oUs$}Q&&f*c%@z%uU zRKmMSz=S$EhuF82^qVup$S3`J+H4^o>CYO)yiN9Jj|~M!KAihvR%n2wD6@3}!+77k z^sDC-=JNKark8cNP19nUs6E=SqT$a;rcj1NV|Uky5tU`vRyqzZ|3f1l31pzX#hn5D z`y#UI_u-e+GbYdA${}XLnEDWujQZqh>Ghl8=VzoJ`y8aWZQ^cj27Y};R`J{Uh@qlW zi?P|t5WvNna#}cIN#oYthaz);lEY3LsT)>LK6V1>$(pb99w|Y%*tlvjd$HDQ`_@C# zWV-&jswIaAN1%;!v+wFxs*7t`CEGiI*`I)0Bl-A<%24||KLZBfeFS}vWt+%9advHl zu&R9!rJtS9U1or~*)b7f4|Kp9Q%o(cUuy4#i0j~Zq_p=8_7{Gz*pSjh!ZzNQMnFdN zkJy~!g^1j#nzXlE)AIOy>j-$%!mR+0Y4?f$=jL9*)qAC$*97wN5FiVUPYX9!+>y*x zC5e+k%z$=Vn;6xzBURZB9t9~~T3hjCkpFb{qbU-?x%Oac0{NGesfjVCOJlb7C)6BP z-F&PJ{2EJ3>kK+3EA=*VXSVvMvy3J!(H@6wT&ct@o@Q}}nZKGSuWPBpy>@q-oB~GE z(FvIjmLIV@Y;$P*M)Z#9DMWUAVy8IN)5ukCBf{Y?Vy<0`#8Z|budp)XWfb?y{6Y@! zZ*Z;xkCxkSh1n)g8&o{$djvZs(19z~KlCB5EDg%J>Aw>P)IsOnxSPyXEke+)U4A8z z*C0inT>N}a^1E84q?e+H+k`Xi>BcI%JQ(5B2xxSpJheAgjflPZJJ>i^$YU zVtpY(t_2P62CLp79Wvh`p?eq-T)w5Mq2lz|>eXti<2!Wa`uwaDA$me!o~gKSM}Zpn7VS$Hd1%pf!86klrWq>W%LQJJ%zYX!W)wQ z_dgdv?SX$Ng0l5v7A3X zA?mMpJK!qq)(neFY6zG#9dy!ToaWBR-omwog}0{ja>6>2m*9Y>u%rp?10d$zZ4C{B zPYYfAaS6S1$GoyFs(4fq6Uqb!uRwu~<<<)mFJH~djEKe8%P+Sh6*6jS7=z!fX>62z;Lvsd(%QE`+;=J{xZwk4 zd`^|5V)OS#QiOUqa_<_(TJP@a(sKf4IKBsaBIl>@dVy*aa!pM)lz8K9AfBrkO+I5}Mu{R+z7Fgy zMv?sG=J&%13EyNjw4%2yiA*k4)@(1U`NAoTST}f7Atw=><_V zBum&L>G9mD7(dUQrNq&`FrYEm$1u*X>8t~lGVja3NeLWX%tI-j-BwV?MkxyWZuxYz?lEtvD}ubWx)P2 zXFMDwuH}z-+f!NN`qyu6^_dqqI!064pMAM3lDfIQ2>)nR-b#4RhShuXYD9ZiL>$9k zv&NR|M70hrI>P$X%92I_0#^VvyTtb$25e8+=}I(ln4r=7_9doT^~wyPbZlo;6BU}6 zDT1kjrftHJw>MOsPl!emF9XwFbO>Tx(TYKyDtII$`Cd{hS05`J zgce0AC8ATR~arMmd_v+dDN-3+I>jy*~j zJB&Bj4sL+*s&l`OT=v%IoUJsdMJeS2`UaTK{*+_1Y9ktvlGFa)@3;ws{{;Gp*4pQq~(2vMk075 z2YrJ>zgY0h@XP2F_VktI9;NeJXs?|{rvoF9#d6BUywnhrG4CfXEoQ`)2se$DI$O`! zj%99vuIE50FmC8{8#Va(u*|MD;W75k9S`$|(~_R{#TFG0gD~d$*r5PD9s%TH{)1lR z%+tnjH%}u{_RKi1$K0=6CD_#r=Ac<5&_IHHdvTXHUj#Sue)CAJZk*`VCUq{GOpeZz z?A_GV)smd}yw09(d=|~I&+sVhuz0c`a4Hs9CB_V;7Q2|MYh|JfdhH`qggH3R%HrNq zTs%K9gtS%RevUg9u_?^U_rsH(q;zUITmiyr__|7)xU}rD#S8rOWOGnnMO8t#NeO(f z>B^Jf@N);U$dV>TTd!P5E+G+PT5SA?g5b6_#UM_8Lt!9T7XJE0PcGy5i4{}J8Sm~4 z`cmJc6nxoRDYzDV?ow>Ip+V8iXRisOz@OPy%XPpnkuS;5~2m3gmjL~PcqBJZ#S z@6RgPRGp&>3Pwz;r**7&w*00OaEmBxvF^m7RU1_{TjFTcj2|-cFU-0)y;yLM_ggH# z&SFD?#Gm_^q3JL{lJ-=A*qI8;Gat%)n-|Vzt&@3NBqES37~hDp(OuuD`mHXL{HsdS zAmsEze|e=q*)B$#Fv2(cfuo4~R?3PWN>(oRo9*Yx>wQm8)2gt(GYL77>mT}|JFM_) za_w^nqolNKA0ez$#O|d3(5=+*tBlQt#N-UBZ_(p85p+F1)-SS39@x$I=pi4B@n)r& z%N4PIJ8P!_6?$*sIUG!gRTuJ|C~R(&o(y6Zx>1@7$v@vBqMh@oyJl0 zafu0Cga9Gy!%VGSq}USO`;!?elhZjT=GMoPoQhxZv-$c0e>IFBqXLJEJ%t{nu=Jrn zqt?X43wmZ?Lb77JxZRgAeMiR(drC=eA7Ta(n5{HvzrgL`94pDhhQTtX8J{ z)1BO#${vWS`09qw{+zc;OKBXyuVpB!hSEsla(i?zh@z)(pUDE<%c==_`8s=a++jf? znZ8_G{+NSNJdj=^92I4FfdykIMw5))=$mSMCt@`VFRjm6+kq}{ z%CYm}Z2@9p<52}NRxeVHz%QuNqwq~tdNpx7?@_VV$M<#XJ0>zx5L*-jG@ zWX1H0BgP^ZS9Xz$FKLD0H^tIqUYYS~t-46rJBfW%|TBnv$YeMbqK`% z`n71%^~mFrl_ zFXKHO%sRE`)a*P`DXl)|&u!bn;oXcFUhJ~@#3=bC&NUt+KQC`a1~-AP>Ay%PZ`XcC z`0PJYH_6wXyYqJffWI#_{6p@yiN7y3;KBcGNf2LX^(OphKY=p1VW4mw)nsOfYaInm^w$qbTa}ZkA7D(j_rzuIuK8^92zK{v2%z&dgs3OdOjcQJGI}hH(_0%A4^V{BZ0^ z%u(7)L>~MwZ6(I+PxidlTT)gRm0Si*I7B#Vp6u1=lafS_p=r{e6P2wABX>5T?7u!a zQk!I5PJfB@Z+uNjaTu$0G+s->NDXW3pGJKk)@ z^NC;M&0Vl85{b34TGCky=?a5khwo*qa_f+m60hxG0k32q5|8^@~j5a!CiSiZa#Bnc;fb^4<}E>WDs7nu^jQf)+@5q+IQm$*eymH0JM zuLn<3Qz5Yg)yuT@hOT$l{MwAM1YPbQO8QK3ylSMXHOq*|+n?}mu_4U|E#u?H*(3ct|(aOhj^LyeBF zUWw}d#y#;s+Q0 z_>NUri!r~_{_NW~DRS?nReV3lq}v=Ytjf!}a;Y{8$B}eeK5q$axaNXUO(08@j5?dQ z>oC~E8NE#DPGNraN!zZUhcdRm1DY6-K09#Ow%+lXQF|ZZ{gY&@jQG$N;zL|7a;ZhW z$3JI=j{Ah>sB`)QhrP)u^(gUhUS|c_X*sF{^kph~G0w-K-~J&<1w>lrR4c^eTdl1j zK$qYAT7Y*EF$r-j9hWCD4ie;+>{KJQ<*Kjn0{B5Rn{s*-olwtL(JpRGPWKB3g)-H5 zezBtH%VxM=sMxWf;ERe>$APR0%L?qKonOY-DXfIQe@;7TwFML!-$y&E?R ze_^2?e{Ay_b(oHY+iERdl@GabMDdaj&fO+|=}pa7N&{&;bLU^PL3a{wBJtJlvKxq$ z2K0^X#%lP37VMdbOoWz zW6P}|!-W)akO$6?krjR?!Qg~xl9^&l@6R?GM7)8Obyc@%yySgi^|AUXuc-GitCYRb z>=sauc7_~Je)0V6xKKu1@?evdV>x>q;mha?V=BTuZfdPgP0}CK!!EK2(wnMJ!$aco z?OVSZ6Jt5uU0i1PGE)BxYTp0I>Q?z%>CXG0Av2VJH5x4*-(V=bXAp><+(i9w_59C^ z8{Qbw3F_kD)Xv!yBWsE86~tZ)-uWcWKT0A6+{G z0syvj$eSyHtsl~Q;o?8+l|VIT@IN$NIK6QHJj^VzTM*1ZF>Vt7A(RP^5UU1pf-#bs z6(X?3Z-3O-*i*5XiHtpacG`YZI8svB_lm47P=iDyAOJ7zqt5%x>^GI+855+sxNi>y zt=o!oyj~9}KR*hWaTe=g`_R+BJ;Yv#mF&a+j5ri4H8?^)j)6Lsi}ATM{No>4vnq{8 z4Hep6bAIP|mlb`n0EyYuvf>xv?>vIBe2;FH>~n*ope84uDjJTnDmlm_p31Wxw(O+y zo3kFblHgY~8&zwK8-GUf$1-a_?{*CN=2?G^2SlGYqV32dpG?|!h>Gc&J_V>2zl4vq zJ}*{o7i9hXz0@ess2Q02Q_tu->l}vpXMA>GfveAdxwo4=Zy}^}&O+27-TNGA^27nT zmiSoSaqL~^;=1FCK%ra1#vcMX(bx1QT9?TYujx)-TX4#}pKC=HjBm*qrKhB9$$)$D zWq*-H2ea$Va2VnQhS{q~sh3X?7PonROsg2zi|hT#g!tXA69SmyO0WIWLQKZu-)8vj z_|4#UY7I`u;*l)~U!Q29eI@XAKf^?TK1a6}&qMu?)M}xLtk6>KVvQ5NuS5CkB*+WD zjr~(wn(`U=gTI$hJ25KHcGUSf<*K4<)b2@jH&);lc3MZ)b{5kegfp^53J^POsRbY9 z&Yf3|rb9fBH`yV3TIp0RXh+Twc|pNLwSbfzhN6yqK5bFtMwWd9yx3=kcj%$|wN~$} zzjWIGEm7E?GYdF{P3*JT35+<{O7pA<(lkV5?OX^D=gnAN+^%<+;WG+L3f7`_ET5j5 zKi!h45Yla9oFFuj2X0Xjl?PfV(uV)kqDbzQefq|Tx5x4#Q}G6qz7xn993=AH`}Any z_gPc>%=YcC+0Vvb9H1FUKiAgg1>iD??6~7B3r{9r9MpNw2A71KF>fpuv5Xw#+h1=} zlQJ@p$5FQr4LArpp-DAMJ?RV^W_iP=$gDa<*NerX)~v6^zn{2S-q3xsRNaXh{f#?~ zD-!Ka(QV^PIUs13z}j*Y`KfYq% z@MB&*-OEMncPx;2DqM}`YxwhH_spi%rv?OIxwFRIq%`n}+734@qwHcbw}iqIRq$0W z8Q%o#(;1ibDLg&36;TEr!i&SxKjG4ojKkJaACaG|+@cM&HuLZky4S=E!OkpDiV zl}#zRs8$jhn1m^1DP&9h{14NP<53t^qFQCVu-$}IABl8&WCf1z?~+@U_c%O)XZbS+ z_0lJ=ud{{O+)6#C?HsUz)>H7QwHsJg$2c-ZQeOPHxls<%YPEgp!eN|D^owz+7W215 zZ7M6r;Yg)s$x$7iglSxEA_Agohe_WFW>!~_WXEmf7~Sp8TG5lJE5i3 zREF(Q48L?CUHkl@rPLZd3#1LmA{8RT(-qoBxJGHDkt<(UW+*#W+N-N@okZIXz*EE5 z&jNT?9EQP#R;V!%3o;GF^H5CSsa|m2%*jE5)WC-@_=73bCy0l!shTsrByz*>Unn3! z)%n^l`Q*xAJj-?aoub0Y2HvLb3gp##UCyNjQ__$AWW>EfOF5Kcx2;ibuX<@Og<2n) zXZWYNeK)vL!Hnid`KjTo#t7M(`slaBE5B+Q?EY^_)?3s@cz&4tglM0OZ3>Nbo{&G| zgp>bBLSV`sYxHt)fbhsQ$N6VlGrj&!b}v1eJV&~A&CqA#ul}vH9t)2;F>z*Imjy-s zEI;~q!IRTlEBf|vONUhy5$D$@M7|^8xB$y&FLEinne+a<>RafVdl|o^wJM$L1v>Cl z03$c4i6!<5S$f{VpP4_WGaoYp)#Q?+hTzL`PRiP5-s*nFjn~z_?b(lbr9-5jZIscn zrc+r(Rc9~eF(mv2Wb6gSk8usxN)^Qh^Ri8Ce(msk4>7v8PRyAT%6;MMN(hi!m%uNelDu! zcseBNC~->L_>R;S0m+)Th&2XB=%p{p%~OkO+-bEk_e<%-TK=50YGAAaemO*FAs5}Y z8uBI~<@LCol7^ZIZPy0~s*;I=INX`cu-bOiP~r*9Fky>Ap{0%O^&jpzH7jf>?8vt+ z6jM+x)O;e8dFSsx*!;wdn#O4NuYdVkjDGISG){iZucsfWo~HWiiW>K$DPwxZ`pvt6 zXs5z0QJP-aLRWRGyxE|k86{1(msAHG0Vhax-t9Vy-@g0^gSPcicGo((ysWOSv6gFF zT4wrU%GkK(SdoR|7ccXK{Xjkn3E(qSlqt3KXfEb?Quj>0NlY_Ohg(`}ysqGA2A5dzo8u^9Rtuc*MayiOg+|&SokJ$dY8;_xYUARPdLOp z8dft4j|kWATgt0y+cTtRudU9}D5&L-hF3{O%fodiCI9LtwJabemIk;JdW{SBK7W!N zxO@?Vv=R7KRX>fqB1~FnU*ADh1|d`~<(;1gcl-xGJhD>i6*POyA?XN=Ff>G!gb%U) z&qZSic%K$1+A7r=$h;nDx$*4xiJN~+=t`H!$Z07 za72K9R!+#@PZ8*sFKh(q&#}+q z4ZNzn5ve#xfclRRgquN;$>hVUf_FKS_Nyvzs-1aNBO_}0dg&z}2&EPx)1=*-y%9p5 zw{~@Scps2{op`MD_XPt&%YVFJxc@Z;97U)Pg#QmoTXBfJ^s5kjqVd1{zpfFee~jqCbPY>;3nm2zb5a{iBelQmNu@~HSXkLu z*jU&}X%%ekEbSdk9Zl_=K(D+ZVE#1)iHNE}0Px@%R$0;kzv&oN06+r(14)LJtaZ%wKTvInvxJYfM*=RI{051DTfI*06+tNv3EJdBfN+D=o{qpk`dv39IYnILUjM@t+Lg?>I=o zeG!4hH$fADe`Oy6DoSwxv-&qIQos*9OyEN-mQ*d)SS``S45h*^21QKH8Fq1H6**P# z<*cjjV!GtwyyW7onG&eo;;q>dsJ$GhdlzVk7xbTW@4a>Rn*I)*6avVh;7!^E<&hKQ zedo=C3J9uz1WaC4LW&Sa4vNc{Dl)UGvP^HXC~vYIt790eL;Cv&*rw30y#aD8(~AB- z$xJiJ^#7iOEr#g;VX!WTJ`)XnrW9AA9CBcQ`>Ww$0BloXC58b9jt`C;Lyqsj>4THl zNP_IdwJhp?8R6CJ03ggtH1L^d1gs4u#yJO0bw`0EN4X`iDqc16f4;u_#S3^KWSM43 zR(|m8F@}HD;s<7nmkTe7^iLA_fsoui(zNNcs|j9|wEdh?tn|6wP?dC=*3y*pzZSHa z#NP$m5;U4Rkdr!{<~S*Zlven!uERgfKpDh01V3jvn+8|9q5*EJIh}S; z(uxHxg(jraG`6bzuXX=Be1ySvGhD_S z%=}8~9R+KIMOH)>|JErQB|e9B7*y~!GDOrK24$1*S{kt1%LpwzbO8%>@Sr6 zp|~I}jBb>+ew=NL;Wex1pX58O=|>YqVg;j^ffJ14$i{;#$0}Y)>%zuGE&9R)C23IM zKaT<%mDD8WJuLoTCkaY%7zGuBz2biw?vio}op|Pdq^X}oiWpSjG{eTI%r2m+qN?s< ztC{S))*Pt2?7X$)y|omnj~n#A1M9y%2LL-wz+azCFp6Lu%J7#LLHK9j|MHyASVOTy zBe9e+b(C_m3=_XN6s|aCFvS%)XRw{;a7>lCbmurt=TuD>TufJ*OtqW6HJkq9 zF#p_UYsvY4c+RVfkn=|EO2$F|FVD%Ljrz_LMIjYOsToJ@o@5@HR+^f1T$+dYzj=;D zSaC{NaY)!yl?7n$5C<~@x-OB`=M($%&SEw-4fejs9^&6hUq|```*d!}LX2LKpO=0}36o@eij~zr+gkij! zkv}UnQjmZr6P8(kVH{csZUn%AKW}oUW3VBFu>imbNeK}Yn4mNXI*3skW!)!IlIAVW zP@d$4Ck_~8h0XLw0~Hb}PlASs0>Rk2m)lH^nyZKpU) zS5#Cta8wtXOxJLH)RUaI*yS|Aw~Jt^^HP$x{-UjJ%70kNVf|&rrMlF_spzDtsA{UI zqN?d)s(GiXzUVCjrYg&=V5_P&sjl4EswR2wIH~HYo37lcYU224F9q)0dhg)9a$Z_+ z22%|eO%0o!w`eWXEUofN%F<}d%1X&{-OZI!2kpHJIZyox|$ zMdc@LrEP6?r){6dn{0{l%TBuJ#`wcWJF*i7qDXKbeB&6OOqkWODjl5Hia<9; zV>>J`nUq2(YZ~+y-@?tI(|@qupfeH&g&HN>bCDglqRJt(HzEk=@3N5d1*==WJN$A)$#Z6 zRE?9oAke@fFFaKtjtm{+fSNT31Rez=IPUoCwy<)c0}zPFnh1ax*oy~A!SfC*ej%R! zG+qIgF&cRx9@s90SjJ%8;yI#-(BT_TzNZBRe3YgG1)@nyQ5Av%Ttp&pJZCeVpg{!g z(7$=a0Lci6HHg$ng^dn9KvtTj^b1&{mCj%&6b_7QSyeVH3&U3iF0#o`fuUel`7K2Y z9KoJ}J9PGU9-#ta-~eH~e6UHz;g2E$j}7hyc&!@e1!rg? zU;;Sa%k>9mg$c8-1SRQXQg9up(CL+spo9njboStgs7BGm@oQ`jc+P|b++XKRXuoC_-^A8axC#4wJuw@FNAQF@iM+%P5TXFhdj`G>`(0af zLl5vG`x<{lfC=E+K`?>$kmxnbaE$t2fyw_WA^iUgq7)owp{s#c>p?t1_coIy(9M+TOSDp(6Vx<^EoK7puTTr`>(CZz`?f2Uv0l`43xmO$azHz znV2*fRj(K!3jmwpUtK`Vf7hY$9sYwB7*L1*o=f;B@)uh0x!^hwF&JdDe@j&062iX# z?k^YvFuD@!K!&B{Dtb@5(3$)y8b>)_OI=0EC_}u)axuv zaYUIvN^Zlk(+Bm@VptmRLjr)$%T}kL#bMHcjDRGWfEWifBPMjEFy0Tfrjqyrcnb-v zg;>f;)<+pe5sC_##?q|)6$xt6w6R}j9V!}K#=$#EQh0y`jg0+^Fa#FfFj!CkGziG4 z>6vELfrj40U_(Sg913upwS)rD0)~-dLo|>uFw4H=8Sw!cItIgVen^p#4dHK&*m_`e z*PTfNNTJC>1|YCv{QNQP+`c0#wDcnIi5H^$+WG_`*)!z#Y_SUzU@I%{UyI<@bLe(D$sw+|2D|N;HmKS zdfgzuilNzg_QRz)pBU)stgox9Z?35+uc~TjYOHN;Zo7sTV7G{R_p4driW=}&A`M~G zjBLhlOQiQW3)47T)m^H9Gql`<(E1=YSLi9+-w(Zs3J7!hm6eszeyHROGDFV+ zvDP{_)%0k?rzCl?wnKyfWs!cUh~FP&*J=P&&;=T|hc#*TN2#uaIU8@$`xb|d+*-)v z!O-f&;I&P`qZmcs6#5blUY0C&*g2;ULUi{W7;U5bha**T0@0V^znmJ->fB}uL1A^s zr@tCO!n$%vX&z}~c&XOU{K?hS?FZe(rq&MS%VVY!zVR=rCa!fH-RcHZ^pOHNMNrRD zL_<`VyFCF3-r;Nhy^t)H*}J)7NRG1!zFr4#t(v3@EU z#!{L-b0r&xaR2nueGM=?C>|I?r!0`zSw`lSTWwR+ZB z*yxM&{np_J&fiOJ426K?%2^7DzQVJ)#KX6UA1(C*+=$%5?S4h9Fr#(b>|XK3!a`W*H`Q zUtL2vCHY=frk(ovro>>pe%wV5$@}Ub{LE>VGVGS&5%%c$4kPD{Uybifxa&IjkrBx| zycX{pV+6C3IGGuN6adY;mH9nRXxIeo&!Xsfow%Vh{xH*B2tC5g;<9Vj?K*CmML6t^=U< z+}o{`4eqNGZgoa?Gxy!%h2elK!t=3=O<#_Pm+>kZtH4juLAB?j0riO45Zg;VgY8eg zOkP=?$;26VKmFdhY0njz7X-H3cSdLOpWat!6%6`7V6N`>c5YlzTlmwfh}g#Sx=J93%pyel9N zWN9;cOIedZT}3Y}7avg8K#2R*+Fq5a$j1PFsRyK4VQ>#OdoHXg(&vXmqMu{j#hKh? znE01DxvRRQVGUxj_@&BqubgpBAU=rVxV2_}YMKl49GSv<`kJTnDV54Xgx~DJXMe&j zwa4^p;s|r#yRdO0Sl_8x4A$z4TPMlPM&BIb;W#ExI{b4k?Ux50!eLnQn_$+%>ELb( zeYbZhek0o4%aG#^_IcMn*MBmsw6Ch5d@6LK1Q_2c6T{ujxqQq+kb{fQS~?uj49o>S zE~K>=9!{8fQ?TOrkg&f@@3$|RV{A0&2-+mTp(AsM73|t;Ak{}>28!>Wt6qmsbj;6} zeok~@0`Uhy{A5w;>0f8m+c1SomR+L$-IUO2amD8+mBidY8vAN1wS#HJo_ur@OG!5_FG3k(5*RjqluoXVrSr7h>H{EZ|$^mc1S-`4J@ko&Zu+K`exMV7|RS* zxS3^n_;FdaQYGIel6c7<|8}(|-MU+5qh@C zfHuV?$l5SN(UBEY#u+1{ODKm(%g-W7`61#6KSr+H(mq=uoirYwa+*S9*AwT{fSspF zR_~`bW9zJU8^_iN+G}5jsB=E4zG#oQVX#<2&R;Mi4 zRbN`0#6Y;baWvM5WUxTjS>+)+J<2=-yY$oniUcXZa;`O1jb;e~5`0Rs)%*!YCB!+o zRU3Ol?@-^$Qp;HeP3(KMb_~QZuBDn5C4~gmCPO>OliV=L;D229`hzW}G&4W&=M4Ty zN0KA>y3;(=^t4NB30sSEBshlijj>&0qgqW<+5LLudR=p*LIYk06Y&USx4-MLUH#75 z?T;Ulq?w~>pVS8V8+*s`ffV81#U!EVpj(~gz4mX8Tx&}&Aqxl+1Ya5zwvosUB_%RaQas50MBCl8OeA~W%`16 zIN3RyCJQy@IYip}=Q6bc1BTh`{#(7=1G6?onOWyKJ0Kvs-l=uY?3GB=>6>Is#mMSLpVBW;XI9ArHStA&-h51q|8kIdoFBTP zEdsFF&iN2!GGf%1W2^3V91sx(p2 z`N+g3*WEKbheZj05!WXqlHFtZt;^Gf*@dY1Xo)eqYMYHaH}A(Qv0+NVd`t~Dx(J@` zIkm52mDPl+>SOPEl4~)na=I-HCS(&LB}e_P9-&R*mMb%38f-WpNtp7dhy^|~W7L<` zzF%G;1_S{&xlz}z`7nOf&QLz>12_3AH!KOz1I6KjD!~Dl21qnnM3Z!QK#kI`Do>R7 zdvAJ^itQTP$v@LdjP!&t)!Z)_8zw<4En* z!1v7f;bbur!kMJ`oxmbTw#>`60Rr|5GA&own`@;TA}_cM+08ZVU49wn1jzkjb5mb! ztyy7qTWt#UkRBzVMbEp4!xyUI`OgmX-s;nQZ=p8Rq#O$U6>|Q~&g~N~x+>hNgY=@Y zwm06ASYOTl`)%A``3z&4R&`|dx&o3GUV_~R7@A0F)y?H}Oreq^>L-bGduPugpOH>; zJ3n$%2N9fZW|hER=a!Aik|QjW@>0Z}r#!5^oPMj6cjBvff-z7(`*L&b4=s?#`E4g+4H7sD=o&O%RZ2oO`_-%9KxcIlTGQO`ioVkUr zKW#rf>8uO~P8qvcejJ67?xtu9y`>3^+6NV%h-ev&i%cZB<=x@l`}IVSS%3SL)HWA- z(doh(D?@ERP=J!sVZ2I_d&Xz*i9T`atd$85&?~1JTWZ+b`S{yE#5OtbK6s2- zNGt>c3$SB1p33mPxsD=OTk`6@nX0a=J_t;|U6n%k>7r5W9zip7%D-YG8zGD}Q(viQ za@TP5Sv0_w=9aL>qc#f5yLrTAap<^#lx9|aZ4g5sZs5ladPJCe<4 zz(*pRV}-jz4YP*R59Ue~7mD9wa^!lDa*DFfWJoLlAaghA{Et<*=eYf>?Vq{5)9UMm zr*8Av;D<yLyJ(bz9E1fBPkg`Dc7otp7t=nc-%R>R@fx)r|2BFJ&rTS z^|I`?ecyFVEN6s~W!5vBBxaxMhDpoUw6v)gV)Hcc^spiwN_C*@`W*-vvP6zF6E-dm z5djVe*`kDXQB#;I-^A=2OvfFYZ+!Oz^72mrdCTfJI2$RPO^en#5||3KP$Ui;6|SPe ziS+Ine4!&CR%D{mucvOOz<7M|GVfF>M{h4C?N?9ern9hQmL2#KM{R0}-Ozkw6l~1- z{Q}Z8-XuKX*DMN_#r5N=QV3sfKpX|VEnoIP2YK--hENs>j z_7ztw$@TdN?ADd;r}B@Gj+T%`x=TFzkC>D|Pio6Pm0>sHks<4-(}`vLe$xfA&0Fnv zpRGfh25~d54h!I@ned3BFP)Aka^2}VXFc8IIIjpj2AthpuMgnEIVkrFN)%bS^)>}# zOsX|2?iTx#i3U`uSD_kg^@Enmt=8-LStz|4>o?^**$nm`Lr18*uE*A$`2UFP{cgRH zGs*LRulco9OZV~uYN=gHe=!PeML7YV4-h;{d~!*95T$uyjy-TCQAD)@=2&TG3IkAq z5>cq`Ih0Sf8nz?^31*Mh`DR?^=N0Vwgd=h?Rxw&nsqaccW2pR!h_QSJ$5K+L2wU*A z_-8~7C8_1OL>2@+_8$*LFdD}VA0DY$RS#v);gGaazf0;8B1LR3D9I!ymWSL5@82a8)(ZIn z&uas_i~<7GzoCBQABoQKeFQcjN!Ld#CGTe;{A}rXe0&y$2k?LLb9KCBUc1;|75jub z$vX!A!m;LPylz8;@cm%6+F4DFCozw8%G4=^bK!jX%(nYI=Zge|9RH3ig)mH-= z-rg2w+qxpB(bLVem?pT}Ut_J@a_S@B&$JKvEdcPJBZH#9CkB6y44}ZpzR;Q$tftP+ z(TVZp<@uSV>ABg3)rEz{S-o-WU8)H$*?Tyj_VQA6T0oem(!oI&D@RuZUMRy6`mZs-JnuY^D<$=!fV=w+z zH~#Z4t+ykLD;`iw1n|Y2ZKI(^K+O+yZdY@)5p1`>#bWd5W@g_8wH0bu2VSLXS6-{C zMgrTb_aEI>j_?bAUg-56Jf`8cm1|>2kZ)aiD1BIwj->B{CLq{cXwf^2`yhq2@o*Ld zwO7bLXX?NMqI9mg(O3TE7Q`0O^|JbPwAr~cF;#TdXFNXzT3^mNEZMGc$+aWmSy%#xcx>xx}$`QgVG}2K21e30S0K- zA{H`3m70HVZE|buC%9c*hBT^OWuvH_393gHP?wdtbuJ4L8v6F!&fq=2iJdAAqZ9RW zesj%!sVbSixa~yns}Utv5i5bVVZFsN!zB$HV*0+dYqFQV_%Q(`MJXg@PxM?f?g#!D zK;!rBF8`%Kjk4dcx~Memo!42PVBa#7!TGFN?<3rF`lDJRcChn2{UV-iDK<3)pKU@& zpYa&wKAKNBm9&EC%lm#zw*-axa9&J1u9P5uI<*j|P?$@Cw1D+NSd2DzM;UqHU({oF zLmZ#fxYgTJX9`g`+6=0Lq=JohR=+qAou}-#J2mud%?3zG1+QDBVq&1EB`c&gzT@0S zUjvaE#o&i4Tnhwx=11+IJHJu2c&wb7T2iE>Ty&qNuB=zmB)3FdO>r&Tu?qXvQFy@@ z%=yi5hBbcPi4k4}iwLCBSB0$c)XeN@j5{K`a+GQo{z)fF_Dcg0^P8@lgjzk%n#~>x z*whZ}EJS`mw)cD5ER+9bK(rqg8W%rG?l<&=+wIfd;9e-O|1tyxH#@B`(!spDMi#-f znKb-i=%-u~^XRNFVceYA*^t}`;f_eJoMiy9tj&!KNfR~l%C%2+7r7uuil&$l(}omH-6gf;q#HghULQ4y zBB|q}Z?JKAAUX}LC)huqFo-`&cOm8iuEBF*Uo#oQA>nWz8Z#_2t9C-5OCSNkbSh&h z!j~BXsA$C4U?>L&S#_XwiRLhZfd;T@$oS!ja&4`aF%RpIZ|d9Hy%}wZiigUyKAe(3{zDPmU9U1Rd;9$w=KmDw^q=nl-dowJ;A2eRQ=*sgEJ$Wp3yOlo*&ZdDvOeiir-x;e0h z367Jr2l5q=g?hfsY{WGos2&~3l|BB>pim?6vv+qW{GPk#f7~YD)$R5(236j(sQAI_ z)_qYwpK`zPS?5=&lMMJzvb8t zU4OGq4A~B8%7Gx5W`R_y?9|5@SPA^_IlW4egOTiTWU^Kv^u>1#4^N@DeBZ(;O z2chE=3&%JVxoQ9q%t#EE*?)m3hgt^_qNn$$7`vt2^X6S*0{z7=rq2SupEHYXo0)Va z+xc(J-fnK88hW)iZ|-}hnyha6AoF-*26q;Y5}yl_HnnJA%04N**g>F$XNO7*@^Ppg z?+tv{K**T%0#;}a*YE8S{nKU}%>48xQe?F+MBGF4Rz;?~omAoS9+`bA$8DILb0Q4! z)>GpPk#l9)6EYh-yF;qsu)iqzdHYvhScQupK2h@%m*n8<+E^^-jf+3S7--rS3eR~Y z<62qbCko^1bkVM*{mjp;{Qf z!{ljJSeXS+%yea8-f=<8zl&X;T7;E|sdqIztq`%y+PBH2F;8YY@|ro*<3$Sk zo**=cqe95g#7={p@Pz&IF$%GZF)#=2ci|~4cbdB950Q{Gr&5&Jy@7WXWmmhNb9zY7 zP#wyA4GHMeuw`cCj#LbG+oK96O#jRPYk_4l_o3)XhvsbTH1{$mt3i5_fjkpe zp79FuV?+b6eex_TR2?W-RkFpY_ZNHhQu{COdmtufagZsC(qw0A6Mo2|^jzjVU)%msK)&o>2b@yZp=Quw?XtDQ(PYqpkvn3>)y(kaj)rxrYi1uU-K`X%a*$l|iN{N? zSqQ2!7k&b_`Soe{HVoEeahftVu*r{|X-4wmIgEq(wI2kNG_YGNrOJu@%P9xS-tqZS z#ZJEH*}YB5CjF1eZf|-&yApMs5YIR{LB?K-JP2KbOW;!KQb*x^O!Hpcw+i@39G^$R zD1{G|Y5v`j+VE4RD3or<;W(*UvDmB)|KldDS*cj|WN?8>FxJ=2{_3nMPZv#Myp z+o1u@0p|-kT!V819_WgZTZbsq20fF=l>1fucG1oC)}ga`&@cB4ljsP>9;ZZK=+ za$0+J-kO?Rn)s0mb_I=~KD<;>yau6y)-aLcLoX=yq_po0c_5tjSW;w*Eph2hi0>dY z2CG!+#WB27rY3VhzS|!M=R0#@yS-_fOObVjZ)dru$k_%jSnxE2*7oKs^)QbQK3yf_ ztU@Z=C=7qM5sUE%+ZdbPK59-F_J}QS4?Wkge<4Hn|FiM!z*WaqFa zirznR>H0{C1^(7%Zl4H%nHla@Gj66kx#x9Fzy}n+e01&L7s-s9l1|#pj+IKpIA$M4 z&Kg`+$KHyiSqRHwiQA2th4YADBpSd4fM+Z5s3P6pu70rJY0eTULy*AV=MPZItt}!7 zAwWpR-IkD!QfA}P%};Xs%EQ5SlkUwQjCKb9E>SQGE4HF&71iRN7?r_wSCfpP_I}{{1)h-e|b(^cE=3VlUSjmkIu` z6p%-Z^yM}T%^4-7rVn_H){D`y?R6Y3h>JGzzx04C{sEYx!56`L1A5E^`H*Y=&;stt zD7-AF7)d86gZt^$^V8HNg+cq|x~xezw@0tZvslwrHcwJ(!6LlfZ|{%`%#s_S{0eZ2 zZlBq#ed@gEO^n>LJ=dTs@^{zJO9yC=6jYey2xni&Fh|g^=+>!{2Rl%-dYPS&HjDF5 zflXv_4uU%ik~v{6Z(Zd-qBm3h*urFyX6{#(b#Z36S&H94@fz>eX-OYd-}f4#K>ku= zH0W5GrQx%L36DXeQxxk|l?vzF;NkCex_d{foK#@YJ3E9rFZRw9Y%VQv6mz?0Pd})v zEPJL#06hmGdf{p=r>PM` z%pYF)j>ES7z+bQu2`d)*r;ePf<7K1Sr__YoIQQMNIMmx8CDtP33L5<%3wZ9Kj|Py3 zgUPX(>yZtTNCve{$sTnFL*$bV@}-J<>a#+a??MJgbnzp;J$!E2hg(7>ky96g1I~^$ z5dKup9VUNU)jl-kjK;UK<7dh@*+I@))ZZPKh9O16QzR#3e?WD)K6|?t4g+j@az;va z|Na313mw=_yu$z;(xCng5mD-%38qHJ-NEbSEM9Ik*xBVoc}4EFPr@v0O0TY4Fx85l z)IohN^D(-+#>33#gr9Xqo(bj*qVJcGkUzm~9Ljt7gB57(sH+!)2`)W+@hH=#Xrb=W2sv&ZgwqGt0(J)@X zc7H9;0BK`%+G3dW$)C8~hmLALI2$BG6UmJ@!mTj~QrRi&l+UB#UXN>Mz2#_o=m(VB`jfiK@icNd@Iz9Kz{{I+{uEu{I8Le-?Y>02j~ zZQ+d3JcAn>OUe(|d-~>x;rYoths8?He zyTxJkVH@cVi}L3L1EMYmw4tI z2;jjM$f8e-RM2@g?h7&zSi^BAh7KrB9Nu9_Q=tJSTP_V-h&7BE#X56xh zHdAB#MBB|u&^!*t`XLFah*TWmn`yaaObHief@(T1;^7d(S5ugV;b5JXvb+U)CMZM1 zqg=|Tj~9k_$hpO-AK^6gMP1f?cd?#hn7IA>Q?Q7L=W@D+E!4i%YU*_igf3cmDsO$V z))e!OmarUfFKjfQblyL(P0Nta*U%6VVn$Sg=ivP_)2H(GmX=_+C!w_S9Ud#!X>*zu zR>u=Lk??=s+ZVolwb{Sd5?)_d@awH#z*=2cTArQTJUw4uU0hol>6jQA{pJ(S89L_p zr@Oy!PWVx+6gHJZw}%IcHu<(78p#vc&-$n2Wg6=>-nWeGi|3w@3Di&7?itobtScG1 z>MxS(1Bk{y2x65|?_iF2ptz6xm?WOetFAv_^m<8i_0=9c{EUk^t@n|IQXr`J$!YA( z0WLNpy2@XU^Z1i++HVJ=EVUK!;5wWF)RHQ2+)!eQJV3nFj+UEPQ^;@E-1UTQ@1!TA zkPxRATUS%lT~Fvw{gH9i%~Gk+m)w9IPQt3qg4kxK3fBJaP*{WVr)8bG@$rf+Mw||l zI2r)((O!s^)%oMffrmy^Woli$mrwdmZnPRr@c^r*{p#*KYSYv8XXZxb++Y&iH&mgT zx~Rds*qWaKg%j1CYhrJV`lo&dxrJw)p`H2P9A*?QxA15jh9TN^trq{922E4=f!`&w z!z0C0L+n2bPF}j7!04w&yGbmGiW?h${uB^~FM(|EC(lYi|E;FVI>~@T))jRaPv5tz zP%85t#W_2oD!R(%YrkJeO`~l}fCZ0$%8CD&cE;85wyX?#=q>HGHJth&MD2a*GA#|C zY*6J(8}{p2(WZ4Gd&KhZyN@5S$U3KFwR0h^J)|1rGia-!E{)l;&5x3**EVrKxiqzR z+6j3tPG+H;$3L)>^siye9y0QHXAri!8#{W-cR;v1bUp|4?B=|UyhpUtN6*KU`XaFs zQy*2Z?#!<8*}2m4;XKw&y9*gO-9`&rnW4Rl3K#LA8|(f;-{#Bm zPeqYcGlUpLA2E}T5Hawuo;{uEaXTONd$Q2zesF&%h?FJGoX4Zl91$x7)Zkt=y?L&D zwBkICp5Aw@w|MOhp9c6RX0T42HBha_y6YIH3ys7u#P~BiApG#G*^>tmBoCkd&c##N z__}L9EYh|Z5B)7G^puzRf{@LyhLUa`{32J=w%gQlXZa`S;?10_kgcAq!}j0kNnx~D z8uEDol2{ryWKp8(bi=<8B*Z&n!(z9#n)p9MLi&ZDh;!bZ9vrAFVR)deo+-Cis!^XaGZpqZ2*H%%UKT8kVvuMHmM9ijX99Le>3u=?Ib#$?m*&yrI z7N%b)PW|oltu~eh5NoG- zBrCL~U!O{~n)^*R9t#=HPnQR!cS~|7ED}$&|+Ku zf&JyVKERjPf>UGk*x)@SN@B2(mZ5iy_Bh;+Dx7MIA=yYms7s~Xf$j0`^#@<{C*4Pp z2#dS)cGM%H?L4#^-u-XOe!H7g7cm(_?$tvHNGxCQV=`c-*;-5Z4RkrKYD3UH&He5o z!gItNg?d!^xlG0b^LuhzJ?^glgy{`6oq*qc?;>Dj+s7 z-~RJTFo)f~K)VEd-f$`lGIr;9 zZo19A9JgY#Lg3L%@TdtX!WaqS4wDaTuUIw}ZwNU3usA*Mo9hgHk(DZ1$ugUq44&ck zypU>Po1E-&xEoc$0#a`wrh*A?B~-d3N4h?^Z#&1Bd; z_hT0gTk#GS*;VmOWDMHYKS2ES>ifL;v#4y)y`5HmLs%|8D>B_}PV%dpu6*=Z(c>Ho zwtr=lV{t%@C1G&%*Yc-`f`F{AW9szeQBi4|jrq<=2E-DEi+U5HS+MD%btBG znY673Hm%z$tIJw1U*9Q@G@^{PxC1u_URDBmlGX5=n1ZVf%Tin15Q0f7Cr=wK+)INJP zP8vvMbH7{ZwFo5@pqitA$@dmIv&$w1V7(nGee5R^y%Iw@!KWNTTLGLYPTas-*+@sO zc0IJyB|j@~6I}RkfF*TwrwomCO04gTe6$PJn#ueUL-u0ws#*7>OZf$>*gzKiGIyb5z@N!!TkDTU)Da1 zKRitBXumrdTS7af13eTtjV~ukG2$0xH*9gAlK%_U zJepk!9kB6Un;bIJ6jB-Kx%aE)x6|!nz9?Uq$1|Z!n$`~p_d$`4B?)Y}QfTj>-Pz3z zh^xt>A`S=M+EkjSP(Oe9&0{cWZfR|RKP}Tw6^jbFupUUFBPKQ#Z%8DfI_ibrsc0QMX;gitJ0ZjgOr;pFML4Rm*5c zjtIoLQW|Mf2|v2(-{SJ}v5QDtJdZ%7?xFnBUQN;E%<(T^7Bug!k&*X&-$m$nz)42_vUBLRO)JZ ziTr@i;pdj~iwr_SWBbkDgVmt&OkJ1h-yX(h*l+`CkK9ZWZ!mJa>F57XsXuQp>f?*Y)Vd|97tPfQ%8$u~hl z_Jdyy4G?IsHMD}v50^<>R1Z%lR0{Yod&(!Pv-KH2a)MXztn?cS-iQ4cqrCL6rt1~7 zB8zE=U5<}+8Sy1`00TP@f?C*f?{7N-Mz;i)sp_sYJQ_CYx5EeD*3*Kmk&AUtpU<{C zq28AwLM=+kQpPseUezh&akCEqwqr%n{C=tPop==N4STI{7RH=c>~pzUv>G4Pl2JEX zJH1me@l^~p(aJj|_F6Z~D-+_<8$;TMx_yrd%Mp~@25)I~hn8gOi~wX43W6ZXg-c4k zB~LvjEF*5n4{v~zcMMQA#52v-(NT^;eP*^g$_aM2PEkpIJ6^_suO6IWMJ7&~%g-%} z9-N3r8;wMb@K*d3`LO`+QqHGqJbpGm#41yAKxFo-tX^f$DiFG z(0#Td@Ign|wh$w^mpESMwH!9g;n`qjtF~q$=99c%k-bpC8#C6tEIu>fdKa>$KU7L; z^2RvSsIoeqjPoifnIfNMS)_&RZis}n)m`>6aw?FIrIKLe#6KlXm(!dsp@*;Xd+>MI zef6C77LD=S3GXyQ~L%fM6FfKpY8QHK$c7Jdr=+_&2{JuOR(5!*t+Q>)Pv2Z7k(c5S1KBa9F@BdNc1 z^yYz#hUEUUiUshvoI`9{a75ayUHU@KL##f;&0zVBa8#zjr9hEl9>b&eoLb|1d7Js( z%^t{M-05>0g@5`y+jJ2jo@Bz+{jJ#EpLQ zkk6+DkB*M^h*i0%$%9FB^T8)6q4szwfi7mk3|J;5eC;}=4Ma4wR{hf-+G8&gEgD=C zKD#IgB|3HWIhFcKL>zI0lwz|Kwhv9Yv}Q*Vb!SuNr8 zu=$i?w^pnS775K-6v}l+R@U0Kvvd*N9F(bP2M4#lSJoy^c*=E<>EM#yInRKpNWHw2 ze3xSq!Kw94Or`0$a20wNa?KH1sRoO~jzy6pt?spC2-?WuCx_7351Y-QoUYCFkH?}C z1#CmZWWPLnqWlogiu?Ruq9LIG(luPu@-GI5)H4+Fi37^?9Wy4>io1#-`b<`Rz&aG* zV_89;-Sr@Zyo|P6uas};$4fjXEPDuqggWK)TtlS4f7qWBxcarEFwVRwX8ZQ&!Hl83 z9h;l*nK$2<7-Iz41Y%o1!em##CO!9apN%AZ92aXNh1JI3bX%(U5+4Kg3j^ntVwDVZ z8nDzVqOIw{@J5WdHqPXL;CL~%+0_R*TE{9(w#8H|+kVrFY`%#}hU`{1x`kxm>)1M4 zR0%d!jF{*Xz_s4!O3ie7FquR;sRZ`}R~{mCFy-N+fp1zbv;oh*7bc)FxL^PEz`w%` z81P?n)LeY@&c42`_MVoGwvOih-tOim_qUb|x>9Suvx|C=4Ly$P%u^YFB*2!Z5)T7` zN(@+e>#q5>83SSnM=%?Sqx#|S-MKP8?6v0T9(4yjX)3L_t_VEJFbEAjD0gLug~}ag zm$2P9OGu~Oi;Pm5qhvBU00zkun(r`3EP7l`*vDdx*!|br#NZ;ckelz@>hV3)DTCrZ zDpD*+ok*rt@9G1bT?HWf$jbDAi&LyH83M?UHr+F@n5gIJ>Ry$Frk~z>C2@}}o6$ZisdFItyuT23ZSN>;iQBOF;% zFsELSDz))H4j^~5tYMJ*CsDKY(IzIo7a~=IzjGyn#9l~EPJ?R0B|cJCA^)z=7Fqcv zGVNnua#Y4~*rlRL3V2r!Ex+&){DZ!;PVtnlbT06 z&Mop;@NyEY;J$O^j>L)YU({7_dq*4sLpIedLRJeE@=R@8lJSQfKF(9KkeRqxk2OsPSYAT9`MMkh)KC!#fD*lVko} zY3~7p4~HLYvgf})i216x>MYaN=%1#c3wyjf43m3x7#sHC)#vPwb!R*nhJ5bM`&WQ5 zF5Vhf__ujTVV;h*?B`!9t$gf#PwKbKdV(g{GPCNor21AF$!=-!9O$XKO1W>?{`h1? z7)=V|@_9;BeJr7}nd=wuGu0tHwjrIPn zn3D3X!50XPVU0>ZSn$ME@V4pc;00RKg&+34EJ@)wE6z3apkAR*y!dP}P*d?{C?mXY zx$1O3QF-F|Yh~>A?XAs8$(6SQX!wD&$c*FO%~np?X7?SB28sK7O{3MWA_Do@b+hQT zXUdw!Z~0Wg8tvX@waB;0E-~7ZAtv{y4;(S*m6K9U*sXMgJ@HpB$ZElI2Cu=4B*nB53w|e1wwirbZ#MMKzBX6hRAF?1HL4 zu2{=ZVtfG0%v$j$x+ z3{-#(U;wBz-(->Wq$8j}I+wHLG-zTdYiz2Xf7GIvv&PC6g^S74bEDpQ#g=sn9a=Ti zs+3wsT5anQg&X$Av<4Y@fS(FgNly7i@gm~o=>%eGaGKZdv#Awu@zS<`%8lm|sqerr zYrWl_3XDnIem7{*rLAJP5Cu0eKEUz?iXksYfnKC7N)%z{3IH$*nP>~0SC+gDzY6z5 zs*cqF>_h=%Fku}4K4&x@&ib|g4)6u>6EIGI4ye9#Y#S>`CMobBe2Hfo8w68gPNBN~ z-`k|Wmf&SLkE@O68}a3V2S3%Eq0hgpF+9MXVvzo57S07@xO|sm?^eI;AvL$+A#70| zs_!$jC=Qr@b*yYn?Sc(R{}>Q?J7J>4Nw-jBB1keSG1uBw9oNxe$fO_s*)I6iY(OBD zZ0QwIvgodw*%tsBsqCIYIq~HaH(0;!ZgATY8O(L|IFSJB$j%%M*x(BQzGf7L&gSKR zBf%HA_+CNd!3MAb)TFi25d|{<`&(Py<-K}nugP(CZ+k}{o_pb3Zbt3!g5iZN18<8& zc0+Yo`-1pI6Bf|cg|~=im%|c~HR8K>p(Wi*gD1TeLN%E0za#?!{=VACr@G4zAT>|Y z8wuZc091PwvSmUGJgr0-Acdw;^}BgY$WKSsJ;^d8aqM<0V%J6n;B*BryGEgZdLY_p zIMIXqN)lMeU-aw=+?`d76;;a4Zvg&g)Kz9~{-G!TsD-C@!?U2}OrUEs09{}XKsrxY z2H+q!dOOA2Rn*4reMeyT#k*K%HiM_fx*#<_RlwXH5X2M_&AwAlvZyGO3w&~!Gixhn z_k@xOHx5Ae=ao8>HmL8NJb~TLE?#lYvH-h+0$D`YlqW9?Hm9_n`SM=^Byt;Nx%mR+ zPp=B!cjP|7PXM~An~UF9TJ>6c^8^5{^xF|06AcNk!P1Gf&Bm@3Ndd2*;3u`67Xj`Y z1OWbKj720a{($@g+)Y&!fbdvtmy?dviUH&<+8yhumX9$Wcg8b2^TnX0e_JqIzr%XD zau=Aa3Q(Ygfo1`Ijn!d-P2ADMhH30MOdXuvVm| zGs0fAOODc>BKLerg2A-Fv}GhPpY94}1Qug203K&7i%e~PSjayrh@U1D3y2S(w*dsw zG%p>|DFz@X_pkM)m-~?}#=FIlamwc}Re#x3g?OIuo~h&$FL!tX`niI4FYW3y;Sm^i zLS5R7%-q&Nm9>6Z-9OT_>-R2mP)(3g9FgQ>LoZn9F#a)jT2o0O6)P@VI zs~d%ftW@%U74mxin?(a)7%ae>iGIcFziS{0JOjS~)H#NUnLqTGg>X=`j^TVski-1O zbDqN9NXDhx z#Eqh6*B@+zo-eCp*OsUQPRJ>18H6K?+wOBvgY3Ya2GJ5R48Wpi^r2MSjeF;XjK73g zkI;`H?1}+~>-$C);(AN+wDe(5SUceQEX5Q*AmrgBPXgmD3`O_qJMMyW1L)uT;f7*l| zR#^+4S^N-H(AtUmcNAb-j5xSfYY)1gLw!_e%GelE@Hx^P%V=+VG(y_XDG3M;NP``7 zW%!xS#s=`SP15f~c z(za>GmKdW2pf8WFt*_jDct6`MoW|)%{<+Bt`6jV2Y%+)W^$*G55Dg$1uaWLKRnAR7 z{i0s85dJmjrrClp;E5R;c_ulcJ!L3?{VE0Kl_A~W=Q^>M9R>4C;8ua*Ab~t28Ye3a z*TiZF$5+U_S7l3HgK>(WngBWo8~Xhz+hQNB^;|-I)4N_Wlm`{&5xfg=VI3r254c_a z3KU?}Jjlg;odE#;Wo*q9b9=E;pTYG}mx>w&hAYjN$08&YfXVld<4dYn3QvM$5B=S~ zJ&NSj8WA0R;J8H7VquT%U}O=aUaPSH&-)ginL;~gi-WF97B4B>i>`$|7eB6f*yyMe zc8rsyM=SA%b~6C-!KsdAgNs=iu8PQ?oF|V(HI$uJ59z-$PS^nODFSZxbaI=;)tL)p z5hDhGavsX7BE6}wgEmi1{b;=kj!G*Szvqz|2(m#GZRHs2c%Eh4e64p~0vcC3^>JCl_;9a|bu@Gj9;=->G0RaZM0_0O?_qCmRTuj@JMHbO11-0;45a$bgHJ z^XcBDC%=Af4X{R}Cr1q6n?|z@{;MM6G{XS^7$ATSF}84D#%7Yw5}!8KC6CWqk++l# zK2l|y53%ox#?+ytvBcJ45=@PNstpT3^dkD2JOo?yxiSeS55HJF z#NY_b(8Um**@uHm(p?~|{%(s52!L!8kWRpssly(tBbu0@Qu@iLg2gq%A*rUWpaHqu z_1}1yFL}5xdH8Clhv>HYYPW{yE{Evfgc#$8{!@PWZrwbWKU*gQ0eO^ssb9eb6ods| z_zIwdLo1;GvuBl%Atq9Q6ANWZENrT+Gn=g{n(fEx8OQ2T{tSWG6y|v~K%R9*$^TO< zv{TLh_abUFOb>`cbUEZqG~`SrsY*5E!U+FI!@~f?rlP8h11_A>uAD=zf{-HZCNYvM zKXEDl;$KF1Hah@_vJnk96OBN$p~^Jp!u7^gXvtM!38IQ;jr`Bo`#*SrY=k`9BGo1U zfg|4dk6HpCZ1M9E#8LiAf(!`H-zCeK&bXN1L(AC9E5pv5`xK#`N!wPIp83auc9R5O zA+`jMei+F6FrDE#DT9(x{I~TEGZVh5Y!=c-aFB&INMH;ZXFZz%U$&wJnX5gWvH!6R z8`6qM&ZKQ>Q~%5FA6S$bWKDkJ+kwo8Sk1I;L)3?~ew$^TO&~t^{df3?LhNR|j6awi zNah<0XM#;$LY_q87KfIU$2JTuB8iEWk}V5TRwbY|1OLl&oUw-zh(;2q zA!i7Rb**; zWNCQhL3k`(M5=W}MtNI--Dvf3`~O=0%X6e%s2~O6Ig&0^|KT~kY((M^Z>nchxcIwA zp&5um-6Zk;(*OX_8;>IQCyuD7GA*cbEvPbSs0;ni9s{8+a4O7kLKK?<00aO)2{Cdo zdZbIdn1hfO0^2?nY(5`c{%8E)QgjX!K2!>~_*b+-t%-d7C>PtRbT|_7K{3=kv1F)y zC3-S@yarsYMHLAglB_xj-j7!uW!ocCmE|kVQk&#M zAPyd7gUb#=2Nx5mO@fDrg2!L&Wd%*Yq5}Z3UJ&FbM#pI;382#g+fGzdNt|-n)N)vo zQ`qK9SPDxioD-Z}D(V_zSQ-oJ8f&-;8qL%SSPBZ4>Ka&*8aNtrsR|lR_EVhZE9x2> zxEc%1=4-fqZ&Ka2I25!Yw~G*}`%Y{))>vxhQgPEz(JRH-9W|uNtkd&8)6CZazouXFP6qDzC1ts6Tn8wpSewIv=;Q`jmjjN-Dm! zm$kP$9Jf1z@A$u7yBF4= zAP&VrumO6;2G*!(J~;za051rDBR{}aL#H1gb3<4CMpmTG21o9yC_6xutSoCoo;*)K zNTwbuGn|!#DQg8zo>hgB7h%iEGHH%OfLu8H>UCKWrkYGy6NFW95w4spTQjz<1KT1I zWJVFDt_*k(Tg{$nFoSZC48m&US@<6rd+Es#Rv&^AWo4^U5>>~ulAc)w#mdTnn-gW_ zA*+&=tqW1rv141zQnllPtO~*^QPz%WP)Aq3$sJt>`Om7Vnlx=~ssury@AH4{+{A`y zaM7gdSvY-NN+Lw~{;EziU-GO8gjJ$yG-QUZU0X@24TO-P8r8JF>T1VzJ+D*wEJF_R zgm8^(yV8V2od9S+Gyu^&?>U4#yX~uR)kzs^beC~HdPK2tKH4%Dc`-0pWBe5Yb<-pt z7(B4Zhd^D7D@V^XplJ&RLw3Og$vghIEu2Ec00;?H8xfFzc<~?^B<{cw6ypa?;}>C@ zqEi&(L+nzFZ3@vXzAKs-J%Q=uD>`tnvMfC~1YK5!x)_q+A`wCIIlJj(Eh5N*{>Bj_ z6cZG-P%<}lc6y9pd0E=B_YjR%xkI2(JTR_fQ`NXEicl4@$Sy|>fr3TV=X4!N273Zo z(8-@TLJh>j1ETna5V?Go=qBTQheVu^$Ve27Mn9MpgeHc716c;-SvAfFsnEqB1W3M@ z9|Wn2lV_g^s7i2oAdZ&oga`RCTu?w=$* z{qOC6-v6hTu5A?ra{pNYqCH6Pz!UsSO=(^*Au{9h9?{VtiC%v?WW{jA!J**8 zqF{)5^2KHO=%^tm0fQm%fp~PXj_e0lRaJWG;?(ERF|Q-b1mO)&UA(Aj1ChdyP~15G zENc1HYjE+RP81Wws*oWA%O;g^=YxSN#1?taXd#!7g`nyg zBjmvlGyLrfj{mPdbpC_C(1HN!;P1F(WwAfdLdb{ofr%j?qx;jMhO`j>CUAei7>o%? z<&q(s|Mn$gLS+0&?~+xY5eZSvGvNo%cS-OP4S(nNtk8#L}k_-W0MJMNYFABoOABG4Dh5-Y4wY}49dN44% znCwU>NJGJ{v)0f6dhjqxLbw(RCRX|T0uz2fOV4N+J^&>qrZEcnki8dHf8Cudm<)zI zd;o+U9}tA)@b(L;QtKx~e#v6AzXxCtKmq`XsALor8GNy5aWCT06EG4nldzH@@CATv zP{0cyfC@G|JlrC-u>UJGm4sPv(dS(l>ObV?3IXBoQ3d8t`|km{SNt#e`GEW^hD%U| zlnBhu#lg+P#lgbC!?UrvzVq#1XK!_3a&dNcVO9dw9hjFUj_~Js86dZe`pZYf(BHav zATZ_4S+=6m6pl&-Zl0X3nk=FO!C3S|(1b^8Nd1$UC`!TfgP?t-QrO6VtLtyww>|CI ziqkJ}L2hxrP}7g?QHEGWpnKGZMb^mEbheh+CuP`hF6?`r)P_x0*R6!>;o2yc*yP-U z$5|I6#m+s!EE#ZvCOhEMVE4pC1LjYTrRR318{PK#3lPPJ}l_ zJ5O6Bou6~GWuxHyV}XS%Azrtt9U z2BB~O)J|!3a*D!G9Ia^QiMXUf0oc)lW#o2EHiGf>9kBx3t}3GL>vX8w_UBIWWUE8o z*ipv`kbFnp{7Ja$MZ$BF!lD;QR$6n_D@f$@K?^h98z^Byd3Zu#WQQa zIqY^88@mUEg(g-H<3LJdh-JzonSh%EtkKHG(JdHDS8&!3{x$RxFn_>JA7vgl;@7l* zjdmi}JrdF%dNv2ezP|r({wk@|P^dvr?)&Fkt7z^k49xhoT#7i<@THwqcTK@0 z5t2AQ+rp_GO)6mNOoV;^E;ZQZ@Fx@-j-imB z2GmtGroF%rPl0M3DAv6Q^WPeYS$m=X)VkNdAAQ^IB`DHfucemmLKEV7w2&c6Fm|Wh zk)*DfhJj71)~5eswDJ+R^>N3Mv4Uyk)nUKLFcw;?S5)OsNExg(_Q3Di)Qu+rwh6epMgzuFV6u3#LVP(mZMVT; z3$^>#bXGh_M-&`(^HZ6=-Tsm?YK}9!6pN>*%&xag^d@QbK74`JQ#9ZGdZ0j$-oz~) zI@d4WuE)pbFeji#K&3Z-<#pyB{>BQ+Pm3ICEOZ!MvPmV0Z*x{yueFSAda_xM|kl_BQnWf;U)24hSL-OfF`F2q-bNn%~?mi3c z#?r)d`)dt1N}9q5r@K>eJ#_rfioJhg3e2v{4Vy_kQ$PV9rTyi`UPXunXvA~%!JRFW>v!Qge}U$UWyxlp?Z7NEdD zbm~Nc#gO_Uk)NKHYjP$44B~yIbXQtczb%X+B?67 zyk*5gpdTBGkJa>5xDX5UWM7yzdw+yHt&?)qY2=gLFNmIJJwyEM@#D0^O#jdO`4gCQ zXkgQp$(GsmZJxKt2%5!>ooq2QGEwy0eR_#&)v_|#esLTfu_R^_21^FFJjur4?y8TA zNm{~pv+<7Qv;{Mp9KRtY`~AC{PakOV&`BLDK78r1Fmh?RTV74qQfmlFLTl`cI671S zX{Xp-zLRA^ZD4hzQQ#xIZ(YwY2rR*LKlo;E`c-86CnmLmp!X2 z>(}P;qrFO5(>4R8z<}f1&oL+@ry2r4=<1qBS;jA`$El|X9i!2lQdxjR_lhgs=9eQ8 zNi#;-r3bPXH)RHw5hCk#6<{v*`6nTgUX{BouON%?{E6=IO}*D0OUjM!-1`piOfkV4 z^M-8ajPaVljD^f0nnApUzUl8Dr8p2K&@g_oCR?>~Vg@i#GrrTuD=R`?MT;3(C03b5 zxybgSC@`^sX(+2qenM-qH&|^VY9=7PH2!3QT~nv{x}3>M#S&>{S|Aclq0#0z>F&4N zIMqdm|z0x=K2?RkYxwX2LpCG7soGS&p_vx`gbO3NNW^%WYR(?LUiN1CGN-!4y3HqCEvz&Dl;;;pZ z0y#oYvBtM+b(oF-G-ErTa=2d8aM6l=Wk2>}7}DWhjhM*ZcH&j&8a9nlf z#4L$#-^oQi7(gj^RBqRg=JnILwh%v{?~@TCD%zNtS6LF;$`*FbHb5 zR+U*s+M)qun>Nu&E!$`I%rAHLjGK;>FH0xttQpK-bmPf zNF2+ukOD7c=F-i*#<0dLnu{s_V1T%k5J9Rrsa?0DzM%0*r<~%VDwoWs8P*{DA-AdB z$%$x2a$=n2+?hOXeHQvlPp7Q1RB~|jOh}-_7mOb7| zBVSV)=^~?tkvI6FGIB(zxzpcEgg`gjcN1EedFp=Ig`Dw7Dw(h_dak$Fj01mlGnO3` zQK5E~#s1`!wi5>jj6P)T=6oI%dkj*mdFiSN-4U~JXOd)%b&0B7XxJjr=dd3- ze%r^Iqi&LMFf6Jg_@Lr&jtciM_vrztXps(bfj(K=%_%8OXH9*+)L8rRPaSMg5G=c--N1K^UDN6beEK)Uuva(<9 zh9{6GreM7EC3_|)*obU^#t&V)gWnc2Co(QpZYEmHWxjfN=8TKHU*Bv~Ib!;$5U=<_ zuHMSR?p8v`C-EWoD#T(!DkWe?J5$Dw%Iu4Z^>_imU~>Xm_1k?icRN2rEs2aQ3g&f zs%LZKS1NN!w%%VUdQs(WRpj?kty0UaPn9;&=&%8L`0$I35jh1BNqpgM#s7S0?@jyn zdjx1mlf;|t7H4v0XJvA6Zh3rWc4}&-tFNuCwWoVC(;X|);NCOfB~)Kw_#r0hRZt0! zrYQ3fW#M7;xV}neq)A0ir2dRGBu!MWsXEK_yH5;=S znW-lHj+}-gPWLB&=!lNo1^9z4i9{QFUo9@`>)io)=nZcTYi<9x5`DzPVZ&b*jbMyf ze+!fmMl{^MSRd#z_9XmVHE!2TMe-KFC|jvALV z1f-!qTL}UE=NllBci;L<4RkYSYvilfGB5m0h?tXvKB{OR6jy?hE;j?Ii6zgWac0@BQ#7HOzbSiY-*8Cdcr_^Ws zqllF!Q$n5!GbhN_O$5UZCT$yY27!ptFzz@z+{at`A5%`QJBJ-9>I6p9*n5*}Gs~r@ zuDwmBY1G#H#V5R~2tG0iZ+{V7EaQe=o|$9ME;gh_o=ZWeqxJFj@>>Htk0V;dInxM3!p*nph#9{; zG1#o|6QN17_cJETzbkh?_wI6rN6>v6ZGXi&;+vwNV;T0XyY!9;l$Uy(!U~$+xf{}e z9=|44yN0Q|JFHedLo*SXN#AD}D?}x#d9~q24XylLPROagr*p=vzETGGQT0**iByEO zffy*@v$=Zg|PVG zkg2|H+Tlv@Z;U7skP+%$%Pbs{U&qW%2`=7*tLTC=>fB4C+Fx(a5`VBv-Q^I{Y=CD< z#abUavyHRXRo7YY06@6Xz2Ws5#KBMn>q~W^IhE&&W=q6MqCxSU)hh!YD7W4QZC>Y3 zJ6|iKq}9f>ep;eF;BaE&K5GB?S+JuPnCsWD%xw2q9rrz8u*>KcJ91HP&xuhjxzT)r zYu`P=yK-r#qI?ge?+rtQ%s>kz-+%{S7ru!mYeiKIPef}5YlFk*eIMhAN~zo|pq>mS z>a8$t@%nl8g$P4*CtT>gvH@j*!78y1gU1%_un~!#Q@0prob$(czX-z|EQ;iH${Qud zmPn$WY=djo;XNqGQ(&Pm{dS);Z~=6+Ih)!E7k!HFQ1Qc@1;*&I>n^lw;_;X9)I;N5 z)c6mz$Cb?`JcGPDE_rK3Xl#TrTLc4JObJbfR_Mg@clySPVZUD?FYIg}cD-KPGh_@c z#xs^JnWT`}gI+&EY?AB#iHGqn7U9FPpl{SInVIXa8zE|r*@%Fg&X^9Fn5S2XMAAegJB=TpLHb4+(J9R`;fzT@@2i%% zxej}mzOsS(69f5f!k;4P3K@9IhTP_#0}im{b@=<5HdU$2WYBsb|4$f=i6R+ZjBT~* zpwy{m-IRm=K{|LlR3UoqOOnHEqddv*z`yb7+hO#3*kbRL+Ov^xtkK^{9807fAI^rM zDHkP+u-5r`(a7yU$qHJ0u}a(eP0`a5Ho&EO@sadLr$L{OYDL#aqx_<)N+Yn+hp+P} zM7Gwb^W$15Ox`s3&(FUIk|%v&$pHZdl}yM{u}`3`m%K0G88VTG-I8Qj^bCgG_(95p zE6s7&O57rs)1D3TD>bI=SIQZu4Y&lEcKpKfj;P}$d%^Znk#r&B0pa~@e01^azDor% z%VuA$PfrA@sWa-dy1v(>r9JFhv420jF?TK9HDNpRoBBpJWROV3*pM=&4HnqECC=$E)FlaxxqUOwli=5^ z@!6ck*E}8NAdTE05Z6RSRw$cA1F$1dn_fP`Gyi4iq?w z(Ofh%fSow=OJ4!+`qK(LLavVb8^7-*Y4AKn&CKq1Wo@K_gCH(;vfG`2GOqAnJ_-4b zFkRDfSA#VsFR&*~CY`8>9UTfo{;jrPI_*svWkXNtt zvm}8*Tn7bb##(c*20;Xi8+zTtbv702DBIauA7uEc9F^p-(+Ti*^`}YBI@oV^U#eb7 zabD0B4f_O}KgYcCiHBIbJB?Y&QZ(dPw-Oe}(Z!iDv-iVh=5g|53ep7Z@$d_?E+nV{ zdX=d&gI~!HAB#v38d^HXNtXF>%vN1OIKkpVKB>$|uBsDBo7Nh?f0IqqWn&MrFI10 zWYH)2YFz|nTw(qqzK@TPP1LlVtJ@c@v6|uya4&IBO4#ArydPlQUHmEMt8eL3KS}1< zRLwrk@)nLLRmInqb(ngYg*g42EMNTFuSpY7fN+!~n0nBkvz44oFk2gpUE8iiCa9Ul z6!zL46VULnW>=O^$*4t7GTk!tI#5jBT8Mt$lQ{=z^tN(nYQD&GcbQ zaR%)|(hWIxbZ3tSmyVIQ!JJ(EG2biCCbp{mtGRE*Eb7_?x-O?HH^wwYQLwK*Q}TS9 zX%_hu?6#!K>ddf2`#^%x{>kR^g)t0W;BU|5veR>44o?j*=zE!^dF_yGqXXw#%Gua; zT|&gpc>D1IxA=|h$rhWHkiw_&3sou8y<>7BuN25Po-7=pV)G~CX>VvtHEqm!&>&Jv zMAqDAO_0_PhTJpzC-)}%(NiJe+N!4wm$&B!*J)nD(oPjKG#a&^b}LJLxrzJw_OQMa z4eFivr2VpQ&YqIdRW~Bl^bCoyx~@L4ljzjSAb-;_lD<1XzD{A#)bW$q651(E>-5Ee zp#oRPD1m%9OWI_JihRmnww7$C?jp`=yS`|B_Otx0t0%+o9s+$?> z7OKEF#n%?yp6$mTw^34DR7c)TyL!p<=VF9@IqwkwgDA=B(wL{16({I8^{$5Zs7Uxj z+*$gXR1r{4>U)>-H=Rojoc`Zy2OS;YHCP@d?b+|g@pH>>^-=NP)z&CMPn$W8tVm_` zpVHwe3~y0>e0Lzbd)?cxP?G>M9;{LCC1y~q$`=zd{axnSv!YHiAF?1pX7xg0l#aV;fRc{NjmtJK%6Uqp~T~O@8pZ zRyTFhA?WRo8}q}>>kFZ#(Xff!%p!vO0#bgt)4mqbOODPxDdJLO_c~_ zVGH<5hiRY=CA&tDeVa-kOg;W2V~~%R>Pz^`F?$t~sQXpAk0ld6zT8GevqT_}?T6WE zUR4f}0K?UOOIx}~dMa&s@rKkR?kNA^HE}0baT{Axsz6HA>TBXd`&(ZMtBXmU?)V$C z1&Unv$P;Es2AZiixBNywK7Mc5B$jbtg*#Q+z?(YVT_Db=j2+isIY(1Smd8bwMz&P# zrn&LGX!OoxxD+VZGSr6o#03o|)lQUiK4C8`z%2`XO^=h9IT}aveHMiu4kM*p!{lwO zWfwQnxUX@=(PjV)-L@j|SYbYw@!CIt6c*;UL(r@pmfZUzEe6q)y+kx%zbEdrCe(AH zFk<9KuDA<_?&)KR4wv5b8+u*bA14Px4V8ypA1g|#OGEh_VK-2;?czJw3MR(&1}mhK zT(fA*$vN0f3l*os>TXNAv3w3bL63OD{9yF)tdVn#6)WCJ==cg9Y9IZULP6|SHO|T< z?gV+E_MPV&wIXnw-;tS+AihD0q!1|++PI8((ALesuEr?xP_7*`ff!pfeVNVcduVw+_#?E-9?9$1b3}8klgLK>v!WU zUQit1)TM}dpf!$DT;tzTDTwU#ZL4u)@1Mh0BS)aaVzqzHv~l?*&6?rzCHpjKFH27X zaWm+=h_4-Sf|C|;3R^giMhV>vNi%yHuSqAC&992KA4(@>zI12ZnPt|%|59^;c=!VHM)H(>o~Q-FDFQtCtfb zd`kMVF$o8^Ew$vvl^A*8iGaRcaRY2U?oJeNoTqZ9!aC`+NHNyM$ft~>mx%FFxke4k zd--gzl}{7F3ENVyQ4c+Wy3z0Bh*(~Z1FTiw5APxwfq=-bR3%c?OOBSFU(b{?_rKbT zPok~t?hD=7)hl*$oZP;2J7(p=$90k~j$c%ao`^mydW2R;u-okaMO9v?&s6opSN8r5 zO|`P2!nU-dbhvkiM2X3VGM;=yO+|QenqO;xVOd`odg->wY@h|v@G7cjN=S>3*IsE7~MhT`KXFle99271o zoY&`61~>xPvh-aP$T;ysTSE>Y|C$lN)OUs%UiYa9a2I&zb3;w}+rukSO zw(W4f5>{B+bOApxu?Ply)%Q_epNzYz7RNO;I*|mvdBeITM9^`~7I zYUnP^pZ`k0NF4n89mn&3DB@}gys^7l8XBuAD_WZC8*3UnTAEsFYHM=Z)xS{s{(8}% z)|Ik5?9=j@P=G(Z#9Gxa)~*;jU@zqri>tLoahu-7g_QpX4;KbcE&HL9{15KR9M*G0 z20ATv?xvh9G!0g3Dmf(#f_av>RSeMUO_i=fb;RRFBDJ8Yp)d4-=u4Y{VOjmS3`fRG z_9}=re6)#)F9Ol^>cC3bF`}P_qn0DJyH5p=l~_I~?97)#JLTbNtKask>Y9R-;ln7l zC%+e?)_boF^P7mQ6!a*l z0H2h5@15z#xk~r#UZuM*nhakL_c!N$_XK^+9aQpuwOD~~pvVm2KihSvS~olDMVyZ- z!?3Z35{yWytb7u!l9NRum{a}n{#P#YP((F(0)A>hD4$qEf+vO~)(k6VwDvODr6M61 zeK=RkOcZWE&80hGL5f*oR;n3J?f1~`^!W-Q!Rw(OI20UUx_RR~s2*N)1V*E#3)@Wx z$XQii6ViW#9!*+U_LfU40^+kZB}EuskpjIpCq4C#_?LPXcHN3`xEG64;>X}F{}qHf zG(CBR-`4pf_H{H`V?x6izM(k_^?U0`7EI*Q63Gpl6p8%JmwFz$qbdpoEL(dMF5lLT z3VZZ0@;t4~wj8NcD5-~}Puy_j<+IRIe~4K#U@bUbBLsQgz<5fyxAY3r$<>XTe9QJY zbYPz}Ph|#};eqM=J;mO5(zp;ri(Ed@<)VAfMi-@I@mW9SZ=gHG|L=Dst^_$M{{QZgTV+E9>4_>2XZVZ~Hk7 z6lU6D&4+04;d`}m6IaCvrXuH|P;L>Igzhyj(DOHaTs$k5@_n!A4!90E*j_8xzggX%7#&h zzp@ek)lYw=u+y|k)uf(8YxCWTqi)6VO}f)3{qmg}^|AFYL$J}s<9$bF);}9eWX4N(mi8k0cbm{~Cp!{l4g;$KB1R_Qi+t@Ay)t@O9t2plK;7GKv`6 z-rlc+rUWjbE>2L;h-bL!n%<_HsgXJM@dvTRW2dI~FYX#r=GCHaBVZ%H1%$1rzH+6+ z4C9LQQjQiwXTZzbCfWfp)J#~ww#_$R=nRc_`506i(3o5#_sLUlvyv1V*l4<%*%7>CAW0f{x%#{dh*UUPs34}y zC4MbhKUPEKhIB&E&?D%5WAmz1l^9of;5=Q^pA#`AvWo-q(xIK%G)yl&$}Lrf((6 zk8m_%k@L$_^s0qWXTuN9qitOEmwZQ+xyPJLuNn_SZ<@#jXC%?~qvKU*GnhWM4-i^# z*CJVz1l3MV-+H0BgmD?_D9b1o9H6Zt`;>7Ht6LCUh)lw_A|JYohq>0kZNvCk?e4$P z6Ydpp@@i)JlK2{}7UuOTH;wE&c~Q`U@xD@Ka8i&6QKYzc=1&Uz82fkDSc!+eH9Zkt zjkr+^a!PK)^DD{iM@g^E)W4c5{Vt62C?kmy%$H8TkK0P-P?NztFv*&|=u%T=h;rx| zzN9ZsB(1uO;n3JGkz|OkZpr`gg44?h788!73w?&WalId&=|Y|6i~=k9Kqke8n~Y%9 zovDZh(1J4hIs;dWFZdZMcQ^X=q zIrhX^hngK7W&WXS{s!J}g=ZAr%3Z@;&FPjh&Bw1RHAX)qD(d*IGNUX$SYaWGa!5VO z)r(i;%nAO&QxUCydP~-|FmyH<^ybItpz1PMMn-~TEFDJ^)K?wC*Qo<>KWq0 z*YrA)+3wRI=noa=@)RV*SrjP^Y7umG_!>G*jx`^{$l=GaxO_u2%1}tzm)&!ru{<57 zgx{Yp6Jpwe)@|81_oiJifX9hhP9rRqy;(yaMY|crs8hhd`)I>-GtQRq;=%F!>RA7< zqwE!GKb!y68D9*s1e7rv0z#2%EJ@~lT9;vRKqlp34(eefrDu%utsA-Lgwy<-+=oDM zYSd_HvDik6!hjMI>nlzI}Lms?@Z7KJM4c;By{~aNFzk`dZA05S!@#q?e86E zwPJbD$-0=<_K^^JoW(!twK7SUTAh}^_}8-qZENb+3zuwwn1S&%7A;CoOuqS*a02|7c~0D6uc5l}pSi)g`^MdLNWC@c^8_82uJA%KmBR*c zp-XfauVLy%Nh%m=fo@Cn(KonBaPXf!6P8(rBnT?12HzBEp!Bj#bT!@h=($Mq)Ks4w zVBVf{?MAbdgS~I(?jLA6?5U==neO6^jC+Wss$84SlGf0JehDXL>1_wIrY4U|S=!&I zzffA?nk(B}@)Fni`s!Qa1Y1#7$tMMh?#$#vZfJrLKz!&YoSu*|5Db`SqV{rHP!YkFooOiCBkDM8#HND{)t#4OH zxKvM5Cs3hJ!i7pqSeFrOqH&O{zR5z%*$Df~f_y*QsCuf}*+nv&LSE}SAx2N)__s;+ zwvccqdGo5-nKkey*Q0X#s~$!Bs%Tx~pvq=QF!zQ%rsA0o?AG7>wu66--WkhDuqyDv zA8o8+JtYRd7N0vDe()i}gr0PaNA2Jc zdaefyKHza*#IqUJ;zY4HZxuTPYw|J^g>UIH5|HtyQL^2-Z=c^ z8yj%SlaVnw%xqKB6aTt7@UFzYdlKEkW%eM?3< z*;zb{FdP93_aUbK2R-<2-6!egx1OGiVN*?Wu~uQiM;@Z>&~ETW1EYxc)5YPUFRmHD z59!*un8QZyBcmmyEO;0Ty@dC|C41K5o0D8$HI4ghK8VEq68}u7Qh@jghLvq&l1ttX zpsPVNP(QPz$8%D%dU8GSGNRWbRaYu&Z^PrdU^pF6u0{^{V(1`ZPVGpG>><|lUJdI1 E0BPNA9smFU literal 0 HcmV?d00001 diff --git a/Resources/Prototypes/Catalog/uplink_catalog.yml b/Resources/Prototypes/Catalog/uplink_catalog.yml index 63dcc04d03..1c713441de 100644 --- a/Resources/Prototypes/Catalog/uplink_catalog.yml +++ b/Resources/Prototypes/Catalog/uplink_catalog.yml @@ -31,12 +31,14 @@ # itemId: CrossbowEnergyMini # price: 8 -# bug swept to make -#- type: uplinkListing -# id: UplinkESword -# category: Weapons -# itemId: ESword -# price: 8 + +- type: uplinkListing + id: UplinkEsword + category: Weapons + itemId: EnergySword + listingName: Energy Sword + description: A very dangerous energy sword. Can be stored in pockets when turned off. Makes a lot of noise when used or turned on. + price: 8 # bug swept to make #- type: uplinkListing diff --git a/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml new file mode 100644 index 0000000000..aa75f3c4a6 --- /dev/null +++ b/Resources/Prototypes/Entities/Objects/Weapons/Melee/e_sword.yml @@ -0,0 +1,38 @@ +- type: entity + name: energy sword + parent: BaseItem + id: EnergySword + description: A very dangerous energy sword. Can be stored in pockets when turned off. Makes a lot of noise when used or turned on. + components: + - type: EnergySword + litDamageBonus: + types: + Slash: 12.5 + Heat: 12.5 + Blunt: -7 + - type: Sprite + sprite: Objects/Weapons/Melee/e_sword.rsi + layers: + - state: e_sword + - state: e_sword_blade + color: "#FFFFFF" + visible: false + shader: unshaded + - type: MeleeWeapon + damage: + types: + Blunt: 7 + - type: Item + size: 5 + sprite: Objects/Weapons/Melee/e_sword.rsi + - type: UseDelay + delay: 1.0 + - type: PointLight + netsync: false + enabled: false + radius: 2 + energy: 2 + color: white + - type: Appearance + visuals: + - type: EnergySwordVisualizer diff --git a/Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/e_sword.png b/Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/e_sword.png new file mode 100644 index 0000000000000000000000000000000000000000..c231db05b3eab91bbc4a2cfda171c23930daae5c GIT binary patch literal 193 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdz&H|6fVg?4jBOuH;Rhv&5B&Wj{^Z;`saJ{8ADGyH?;rNdKB#t dYQYjB&!E2eo%Mrk%baqMVV-`gByp z-2czh)@G)??x6(G{pz}(<3Mm9s8wC}_tbT3XF%WuxHg;q63uDuoAhc^iyQ;t9pLh& zsVN7*)h;mnY{^`%O95JbO#?nIfc_jXa1ZpZd$Vfn4H1f~r~U zJw4mk9sn$9e*ufG6Mycminx z;$ozUE)=p0KR>(^-s5+(4T=bu;oI#G@R2h3Hv0oP_$K=UYjD1RcxgBwzs-3s}KL0+w)bouOBA zYV;ZUHC^F|FSKx=cuB_h2bQXuM#9ha1Uvyx;I9e10e@X>q9V5Q-2eap07*qoM6N<$ Ef~?PMRsaA1 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/e_sword_on.png b/Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/e_sword_on.png new file mode 100644 index 0000000000000000000000000000000000000000..521324817e51e6002dbfad07ba5177d9d744b5cf GIT binary patch literal 460 zcmV;-0WU1>zXofg^ASxCNo0 z3MYWd6)l!KOKB)*g4c4Sm9?YH?))*#$}ibQkf3}*dtxS-C|0aJWQ9Pd>D zL3|ZC?);M)U>2VPy5kEKKqMXly6{>!fQUa$$M^H=p#UnryK-*x8UG9nz=-?1?}Eqv z{d(~O0p!O0ffyi(iviNO2!M!Z15oiS05YBoK*y5+8gVv2E6xIF##sQ(I2WK6PX)l^ zEWr80&Gz^4&1uA006$-Mmu~a&4UeA$)OCHRs>(G@Ga}lyeRkj>0Y2XM{TLs@3#T+u zKzQex@hHIR&Pjj|`>}{e0ajrWU_Av;0RICp{HwYR-w!`vuV#QLZnqyG;x_vMDsHkL zV8q8iGvW8I0!WF&0jY5)ASVt3-??Y*hx7l>J+N*~ zsJ-nhTL1v;Wl~8vm1C$-*;rHO(BqvARGPL+8kq_J%-fSeEAn7E0|28^CJFv}Puc78 zAjORJ?3@}G35~Htwv^_fY7^c14V0Vr64%_PRdu=E4si96|V%v+( zJ$>)T9`gc4NVddh`EygiwQYlY&3$~Uxln?l^+INYc=S}cVS0!qPBK7jspfRwL1)yH zD+16Wb1`b)L#GqzQy0Q++vvnXLQw74tu=6BybOV8U2*6W{oSM2S+CHu>_vPr+c?kQ zGuhoj^fM$Fa_#6^X=xr*OZG)Qz$=K8jN2I86gu?A=`U>x@G>(3D#tk$D$f?HF1ru z;$pEQAzwv1f&1d87a;9|mK91jcn4m3p79t;hDJtv{QcWcKPAXPvOg;jJ7Nmc#cBE& znHi9TWdO(Q+~yOBhncLGcY>9k;3|Ft^jI4 z2(+wLbTN|Gsf6w=T(+@e$S%JBxUhJlHhf~{(;*p@dZ)ed&zb~I_j^TGyy?iZwRNht z^wgDn*at*aRgM0!#1+oiA`i{W2LB2-s#&Mn4y9&=SG{_6kVaGxKQMeA`MSApZBTUO z>3E$F1$?!^6E2B_)Uykcig?-y((B%<({Eunu;n6&8nz}}A5S`pzFmC`i|(F6I1{8( zp|{QnAR=*YJ)JL(7R}!PV4U{20ZNO_gnT1S4Z0u#Zva1Q5^iHGYtDmQQ9#Gh>M=*- zya{h@p}vx1bVGD9W&Sb9^*jI)5+#0XXEGrl5VmYk27=)DSJ5G&+N(fwggI-WE==iT zSSh+r?1e@KNBk2gJxZv;^76=KawAY`wvdmDUE=|jCcxI!8(WV|!rM_<& z%@Ni<=fodc#MPi5zP!~x433sul5W5E^6;$ra=v)I2vpCFr4wA7+wS11Mg&N~ED9Mo z_W*^UJ91_Yg^qaXu}Kslf=Q&~r5XyoDa%e`7G7HB;F{rvhNLNj2W+&NMQbbF5g9l3 zvK~LcHVIoTR_B^~eiNan4>AQ4hERxx-w#C51xPj~4Dc1Vgg3X6S>=E6V(M)=SbiInSaR>|&vm}Xct%JGCwYxn?C8sh zr539){qW%V)?w9+JTgK#F^m-WH96zaDJJ37-1HU7ume!lvo{J|lAuUmIJeK9@S;@K z+-jVMp87_l&Di6M)k$@6DNOTz(n&yB=t-~I@Pz=8Wm+#2wcm|PS+h15iY4R~UVqJlGTd)g&}otPWxsdhfhWmRhYZ>||Zcm~<0-wg=(yU6323>NeEDDv1}3O!a%d o1y-g0UnsiLtQmek(#r^|Jh67=&ECL9>JtZKA!{TTmd9lM1Ix|sc>n+a literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/meta.json b/Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/meta.json new file mode 100644 index 0000000000..5aae86289b --- /dev/null +++ b/Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/meta.json @@ -0,0 +1,227 @@ +{ + "version": 1, + "license": "CC-BY-SA-3.0", + "copyright": "Taken from tgstation at https://github.com/tgstation/tgstation", + "size": { + "x": 32, + "y": 32 + }, + "states": [ + { + "name": "e_sword" + }, + { + "name": "off-inhand-left", + "directions": 4 + }, + { + "name": "off-inhand-right", + "directions": 4 + }, + { + "name": "e_sword_rainbow_on", + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "e_sword_on", + "delays": [ + [ + 0.1, + 0.1 + ] + ] + }, + { + "name": "e_sword_blade", + "delays": [ + [ + 0.1, + 0.1 + ] + ] + }, + { + "name": "on-inhand-left", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1 + ], + [ + 0.1, + 0.1 + ], + [ + 0.1, + 0.1 + ], + [ + 0.1, + 0.1 + ] + ] + }, + { + "name": "on-inhand-right", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1 + ], + [ + 0.1, + 0.1 + ], + [ + 0.1, + 0.1 + ], + [ + 0.1, + 0.1 + ] + ] + }, + { + "name": "on-rainbow-inhand-left", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + }, + { + "name": "on-rainbow-inhand-right", + "directions": 4, + "delays": [ + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ], + [ + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1, + 0.1 + ] + ] + } + ] +} \ No newline at end of file diff --git a/Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/off-inhand-left.png b/Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/off-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..6e5fe94f81443ff80212f5b89234703fe25ae307 GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=oCO|{#S9F5M?jcysy3fAQ1FeX zi(^Q|oVT+!@*XzeVX=2O7P$H^d%^2knH3xhE_KY?*1Z34egl>d}lg2?_`J5Qaf-^e{JVR%s}BNJCWo+%cj`n1fAbAok6i>t>3iUE9=$-xxr60VsWh#Fk{DQ6Guw0}2`-b|{Fjt>s a{=;zXX;JL+;$D#789ZJ6T-G@yGywo%pLyy4 literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/on-inhand-left.png b/Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/on-inhand-left.png new file mode 100644 index 0000000000000000000000000000000000000000..b0c4c243593ffd082daf543f95eb928fc7b7c284 GIT binary patch literal 1009 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>V9d{Sb`Ho)PG(@xm{>Z|*86aR zNUOj7l0{SbtUL-&1RP!1x=5if=%C)!g=-V8s(MZi^GNatTC#&nkB^o8;?ea7>ldtk zuu6fWOX1NI{twv`h5TvG1;zkpfk$L90|Va?5N4dJ%_q&kz@*{n;uum9_x6rsUbBHfYvPsH z2c~^4;Cjcb?rX~JE;5lr-MDVsZ}(MNt_J7-9aD|GANo!Wl?Ip=kQeH+xS80;+naoqjl$6b2=grW}CUv1eC8o8(- z`$xF1#zT=whUY(jzTNj|X8pPIb5o*hc76{n{cGa8X?+>n#839FFCQ5n2z#`gLGJs? z&$iDd#5&u)T=8ecuA2wm=LPT^S=sN}mu;-khUN)uTnEp_tn-XZ{(e+7^h&>4VfHYy zApLtmros6=YTs6VyVauh;d0jNwVb{Wzh7%n`*_~>Lk-{bHCIjkZRAwFxMx$8{p<%% z71mzX>V8BZ_Xa>C9 zSEcH;GUx06>)R{;wSVT;|9$hQ-RYp!rdsW4E+^BjEajAp2%LVYMdN1AE)zv&?N^tI zg++cV^&ej;@-uMT_SehQZp8h$ZEhK#;T!PG+FyPDoT{fQKYu>T^gbYY#b@Ts_tV3a mSA2f&U8ss0y$wDO#M9R8-je$=r4g8r7(8A5T-G@yGywpS%DS}x literal 0 HcmV?d00001 diff --git a/Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/on-inhand-right.png b/Resources/Textures/Objects/Weapons/Melee/e_sword.rsi/on-inhand-right.png new file mode 100644 index 0000000000000000000000000000000000000000..6585cdc73dc014f1a4fec4ea87ba94d12c4f11a5 GIT binary patch literal 984 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7Ro>U@XXVb`Ho)PG(@xm{>Z|*86aP zNZb874_9s35`of=fTIgr7b)}w9n`zJaBad>)t$akik^pkyF|hd9$olAVb>4SAN(bv zF`_Jvf-ZCZFxKe?J=*EJ(DjzE-?_up=c{*EGXBY&D_Lg1D6#CY@yaDzX2nl-djCPu z!?LSz=FMwCWrpqRK7RI?E5cuBxVk$2_zV3NX3RBvk8D2ki0`9KVb$r4Ebj&RH%^LC zuv6?S+@v zu5mm;xmje=gar$ld|wm@EYG@h&g!=i?|q|FPZGau3t&}u7gYUp%wz3^kg2QOc6s&p zt-A61f9#W!R=IzS+%fqpU;dO=u<5X=vX$A%+K2I0NkczmscMldGG7w-5 z@W0il{WXB~ufx)lZyY6=7+WUnIc9VI$)p?izWzS+OyTI|6lI4721X_p4gm!yGxL6k9>Q|s!s6s#|j_rg;(OMRT5>-ZJf&ZUsSx-YVNYXb@sVtvo#-24tV8W zoXx8kbJ%>&ZeBLeL(S{U%j86k-Ey+nKX29T-2%V* z)-2Pvn6CJyZ1+w1zURv7i|f`)%$mPawdHM@wRPRj9~pL=>-q&&ukD~>Mx{(VJ#y*j!V;C_KJ_*vJK?{E%D+hZG&bLZiH z%OAbVv+Q!dnC`oCV}<66XIsO1YJQx3y#4Qii^1o5Yn1<&&yD?UAY1a}1Z#y`oomM8 zcRvmJKfk=HF8cS{yQ0Yb-*$w)70+g$CGJo%LF23SoL9B}6K$0(cmE45DmF23@2z$= z+WqhBy=NIYeNy?I|M!_2&J~7*F1pje0sp|5<;-gTGdHVQgg!3bQaSA;BS#`5BZni$ zex}9Zr8+IY%B1IUa(A4lW)Tx{diMWg{NZYrxUNe*Pp1F)C8yJ~Z=P?uu#@oYW<(?c etx4cyvfuZ5_ZE?a@0`Ho!rht@ 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 Q^cD`mop81e-D1n4T3@sEI z+)`v0qygK?sq7MIfv^P+xKYL@eZ~4-LAK9S~^w*c2Y82D-o84k2tzn-DHoxI`l<(Su zT7Ll@?SuLJ4Tp{AR_tB2y2@_LvqXybgsyD6RsZm5(bE)AfYgyWA2Rgz>9!3dvW(YGbJv-*qDKTdbO9$9S&1{>rwj0;ru+bvFR5sFzShT` zK_loGK(IZHvqu0NdMU9plIC6?o(>S*Y#9LPw|WiWJ{`dQ6&Gk(HE4?pBQuR-E)gk$ zhy$;8h-LU@Qpa6g^B1u-2L$R|==z6(5?yF%t8C3=X1vz&2`+|WsU@x91;8-!X}UIw zS!|tQc1lPl{S8KW-}~Wo`%%DK7;$3%d@t{PU~L8un0(Co{K|J7&>_GT8UrkbRO1x= z0Bso3TW3Uq6QrU9imC(;FigFLWTU*(kI1IV=KHGP;;CY42Gy3HF%ndzVh|p(Y&-}b zlRPaur+_R0Zwflie?ak;;&GtbKAotY&3RMMMy_ju@l_k7$Cdp`UEAfRAT^;+Z+?5J{c zn~S3RO9(y9C1(+}?}@~9lHiX0oOyS^3CmK8}>0W%$pIKJbazp8YUYH8zSX zQ)NRiFV)G4%4V7VZN4<6rsUf5&LprcCO6d#I4rlA^C(H;)U_<>kxX9+gdb^eUkvh!<@u0 zb?RXPy?N17_lsY<28cPkg@G8gQ;7LV3Cve0hhZp;cj;^!NU4Ibr>wzUn8Ltj{A2SE z|{vAWp>y*3_@3g0I%gNeOn7{s>PDYNzwLLVN z%+kNZfHJIHre3VMYFKfw6MCA$q=fIU9Ha^4l)((e)cG81@09W$%+K3IG1B^+H>rG+ zIHNi=G^V@Z?ZW_w^>RYbl(G>ywt>n%YS-XJpI&xRT_K~h>x&uNq;z3iAmCoK^JPUH$`!yvZlL?ayp4ZuLk@CCB3{%R3Fn^}~$fDy! z$oRXda~MUp%PW^#LGDaW4O+<6wt;5LBAU6S@_W$~7gXk1SN^vy{XfvYM)YYdmb@gC z{YX@Q8QF8Bwe?(0ZK*TD%v(L&_AYs3h8L5d95dS(teKJs#H7v+pl-B1CeQiA`EL(D zCsUyzYiug@M&wCtV&l1lI|IQRZ`tAE(vNAQ<9A5Qx_6RyTzt;kwi6%K3bObyht1d& zPFF&^i`wZ~H1u6{7h(B|^l#zJr<5w)LTZmLZ<+q+EXBJGKb*j+-+c|+MS$>E-rgi_ zwn{T(=^QpzWlo=?PQX^zm!EY~Hv3_W-YfTZ;q|2!9&eMkQe~M;d50%RGLAw82~v}R zD4dy5XYtx0VwI8w_MHr_?GkUu$c>0nS?mt4J2)Pvi^kn2#+A#d_pMTxk7-p(!#H&c zP-A;(p)PJ#T!l55m9v(??#x;ZOy9ldH*Dd5gMZ1>?D=p`Cxz|<>9pK- zblToC1RwJ5rZvjI?wT7iyT5cpnkeIOpKb5t;u}|_JBTY#pUMsMSO(`Ignl8q0ipHT z4~TEp$5Av?^GAh&px&(KURI3>Z2EK|$5IXR%NB3*sce;n&hz^Bv@!BQDR_rM)ZUah z+G^%wHX-UEhiOL&0p(2zE^i9%1fjm_ODe zM?|;;GK<%)d!g(9*nNM7xxx+cVdEi_*UnuE2%~Hq%h=KEHxk3A67OZS9$BbdoGv%a zfY21U#cS;=n(lnF5}O zi*L17DP1f2I{<$YjpnZ)qrM?08s;rx&rz}Z&Nd*y3x zgF-Fq_2{k1Wy!zoxm3BV5kemk1ulG35R_z$?v}U!U82^lte4j%8GB%3DbwLTkIXZD z0|SiK`Gp0OXD1~YcGw*EkPAW?JQmD9Rbg^(1h;9xjXKV*yd+-?XnF#x0>gfVaWdJHQrE;=X={a?k1F6W;(^b;G~}gGd!weLUM>KV6Dwd ze!7-TMbiNW9p*F~;`&k$_~O2J?y`IhCRkO<^i(@Zma{6L5k%qdv_0zW(p+crBEhqB tNmQq3-n;_J8FjS;HT^Vn{u&!I5pcQBJfTn9fQ-nfsPI@?-LB-^{{T}kmU93A literal 0 HcmV?d00001