From caafaa203911f9baeaa43db2f1e20082a5fedb2b Mon Sep 17 00:00:00 2001 From: replaceitem <40722305+replaceitem@users.noreply.github.com> Date: Sat, 8 Jan 2022 20:40:20 +0100 Subject: [PATCH 01/17] [Scarpet] Task value refactor for better extendability (#1202) --- .../java/carpet/script/value/ThreadValue.java | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/main/java/carpet/script/value/ThreadValue.java b/src/main/java/carpet/script/value/ThreadValue.java index 30c63555..21b2e224 100644 --- a/src/main/java/carpet/script/value/ThreadValue.java +++ b/src/main/java/carpet/script/value/ThreadValue.java @@ -19,18 +19,29 @@ public class ThreadValue extends Value private final long id; private static long sequence = 0L; + public ThreadValue(CompletableFuture taskFuture) + { + this.taskFuture = taskFuture; + this.id = sequence++; + } + public ThreadValue(Value pool, FunctionValue function, Expression expr, Tokenizer.Token token, Context ctx, List args) { - id = sequence++; + this(getCompletableFutureFromFunction(pool, function, expr, token, ctx, args)); + Thread.yield(); + } + + public static CompletableFuture getCompletableFutureFromFunction(Value pool, FunctionValue function, Expression expr, Tokenizer.Token token, Context ctx, List args) + { ExecutorService executor = ctx.host.getExecutor(pool); if (executor == null) { // app is shutting down - no more threads can be spawned. - taskFuture = CompletableFuture.completedFuture(Value.NULL); + return CompletableFuture.completedFuture(Value.NULL); } else { - taskFuture = CompletableFuture.supplyAsync( + return CompletableFuture.supplyAsync( () -> { try @@ -52,7 +63,6 @@ public class ThreadValue extends Value ctx.host.getExecutor(pool) ); } - Thread.yield(); } @Override From eed64f224e1c72b8718484e2dab786ea3896cf9f Mon Sep 17 00:00:00 2001 From: Crec0 <83436716+Crec0@users.noreply.github.com> Date: Sat, 8 Jan 2022 11:41:54 -0800 Subject: [PATCH 02/17] Minor Docs update (#1214) --- docs/scarpet/api/Entities.md | 14 ++++++++++---- docs/scarpet/language/Operators.md | 2 +- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/docs/scarpet/api/Entities.md b/docs/scarpet/api/Entities.md index af0dbc52..044e1837 100644 --- a/docs/scarpet/api/Entities.md +++ b/docs/scarpet/api/Entities.md @@ -202,13 +202,19 @@ List of entities riding the entity. Entity that `e` rides. -### `query(e, 'scoreboard_tags')` and -### `query(e, 'tags')`(deprecated) +### `(deprecated) query(e, 'tags')` + +Deprecated by `query(e, 'scoreboard_tags')` + +### `query(e, 'scoreboard_tags')` List of entity's scoreboard tags. -### `query(e, 'has_scoreboard_tag',tag)` and -### `query(e, 'has_tag',tag)`(deprecated) +### `(deprecated) query(e, 'has_tag',tag)` + +Deprecated by `query(e, 'has_scoreboard_tag',tag)` + +### `query(e, 'has_scoreboard_tag',tag)` Boolean, true if the entity is marked with a `tag` scoreboad tag. diff --git a/docs/scarpet/language/Operators.md b/docs/scarpet/language/Operators.md index cc5b8d0a..c0e8dd5a 100644 --- a/docs/scarpet/language/Operators.md +++ b/docs/scarpet/language/Operators.md @@ -110,7 +110,7 @@ Or an example to find if a player has specific enchantment on a held axe (either
 global_get_enchantment(p, ench) -> (
-$   for(['main','offhand'],
+$   for(['mainhand','offhand'],
 $      holds = query(p, 'holds', _);
 $      if( holds,
 $         [what, count, nbt] = holds;

From a8f9b96e9e5e519ea61b7f6a07eb6022b98f0b1f Mon Sep 17 00:00:00 2001
From: Ghoulboy 
Date: Sat, 8 Jan 2022 20:58:43 +0100
Subject: [PATCH 03/17] Fixes #1222 (#1224)

---
 src/main/java/carpet/script/value/EntityValue.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/carpet/script/value/EntityValue.java b/src/main/java/carpet/script/value/EntityValue.java
index 33480c06..19a0f670 100644
--- a/src/main/java/carpet/script/value/EntityValue.java
+++ b/src/main/java/carpet/script/value/EntityValue.java
@@ -1584,7 +1584,7 @@ public class EntityValue extends Value
         });
 
         put("absorption", (e, v) -> {
-            if (e instanceof PlayerEntity) ((PlayerEntity) e).setAbsorptionAmount((float) NumericValue.asNumber(v, "absorbtion").getLong());
+            if (e instanceof PlayerEntity) ((PlayerEntity) e).setAbsorptionAmount(NumericValue.asNumber(v, "absorbtion").getFloat());
         });
 
         put("add_xp", (e, v) -> {

From de305f428460ed7945d3905cf0bd633082c104c9 Mon Sep 17 00:00:00 2001
From: altrisi 
Date: Sat, 8 Jan 2022 21:08:26 +0100
Subject: [PATCH 04/17] Allow apps to retrieve information about the source
 (#1229)

* Give information about the sources

* Document source related system_info properties
---
 docs/scarpet/api/Auxiliary.md                 | 26 ++++++++++++++-----
 .../java/carpet/script/api/Auxiliary.java     |  1 +
 .../java/carpet/script/utils/SystemInfo.java  | 14 +++++++---
 3 files changed, 32 insertions(+), 9 deletions(-)

diff --git a/docs/scarpet/api/Auxiliary.md b/docs/scarpet/api/Auxiliary.md
index 072f401e..9f84424b 100644
--- a/docs/scarpet/api/Auxiliary.md
+++ b/docs/scarpet/api/Auxiliary.md
@@ -681,13 +681,13 @@ Fetches the value of a system property or returns all inforation as a map when c
 fetch various information, mostly not changing, or only available via low level
 system calls. In all circumstances, these are only provided as read-only.
 
-Available options in the scarpet app space:
+##### Available options in the scarpet app space:
   * `app_name` - current app name or `null` if its a default app
   * `app_list` - list of all loaded apps excluding default commandline app
   * `app_scope` - scope of the global variables and function. Available options is `player` and `global`
   * `app_player` - returns a player list that have app run under them. For `global` apps, the list is always empty
  
- Relevant world related properties
+##### Relevant world related properties
   * `world_name` - name of the world
   * `world_seed` - a numeric seed of the world
   * `world_dimensions` - a list of dimensions in the world
@@ -702,7 +702,7 @@ Available options in the scarpet app space:
   * `world_center` - Returns coordinates of the center of the world with respect of the world border
   * `world_size` - Returns size of the world where at this distance from `world_center` world border appears.
   * 
- Relevant gameplay related properties
+##### Relevant gameplay related properties
   * `game_difficulty` - current difficulty of the game: `'peaceful'`, `'easy'`, `'normal'`, or `'hard'`
   * `game_hardcore` - boolean whether the game is in hardcore mode
   * `game_storage_format` - format of the world save files, either `'McRegion'` or `'Anvil'`
@@ -719,7 +719,7 @@ Available options in the scarpet app space:
   * `game_data_version` - data version of the game. Returns an integer, so it can be compared.
   * `game_stable` - indicating if its a production release or a snapshot
   
- Server related properties
+##### Server related properties
  * `server_motd` - the motd of the server visible when joining
  * `server_ip` - IP adress of the game hosted
  * `server_whitelisted` - boolean indicating whether the access to the server is only for whitelisted players
@@ -734,7 +734,21 @@ list may refer to the previous tick performance. In this case the last entry (ti
 tick. For all intent and purpose, `system_info('last_tick_times'):0` should be used as last tick execution time, but
 individual tick times may vary greatly, and these need to be taken with the little grain of averaging.
  
- System related properties
+##### Source related properties
+ 
+ The source is what is the cause of the code running, with Carpet using it same way as Minecraft commands use to run. Those are used in
+ some API functions that interact with the game or with commands, and can be manipulated if the execution is caused by an `execute` command, modified
+ by some functions or ran in non-standard ways. This section provides useful information from these cases (like running from a command
+ block, right clicking a sign, etc)
+ * `source_entity` - The entity associated with the execution. This is usually a player (in which case `player()` would get the entity from this),
+                         but it may also be a different entity or `null` if the execution comes from the server console or a command block.
+ * `source_position` - The position associated with the execution. This is usually the position of the entity, but it may have been manipulated or
+                           it could come from a command block (no entity then). If this call comes from the server console, it will be the world spawn.
+ * `source_dimension` - The dimension associated with the execution. Execution from the server console provides `overworld` as the dimension.
+                            This can be manipulated by running code inside `in_dimension()`.
+ * `source_rotation` - The rotation associated with the execution. Usually `[0, 0]` in non-standard situations, the rotation of the entity otherwise.
+ 
+##### System related properties
  * `java_max_memory` - maximum allowed memory accessible by JVM
  * `java_allocated_memory` - currently allocated memory by JVM
  * `java_used_memory` - currently used memory by JVM
@@ -744,7 +758,7 @@ individual tick times may vary greatly, and these need to be taken with the litt
  * `java_system_cpu_load` - current percentage of CPU used by the system
  * `java_process_cpu_load` - current percentage of CPU used by JVM
  
- Scarpet related properties
+##### Scarpet related properties
  * `scarpet_version` - returns the version of the carpet your scarpet comes with.
 
 ## NBT Storage
diff --git a/src/main/java/carpet/script/api/Auxiliary.java b/src/main/java/carpet/script/api/Auxiliary.java
index da35463d..b89ee933 100644
--- a/src/main/java/carpet/script/api/Auxiliary.java
+++ b/src/main/java/carpet/script/api/Auxiliary.java
@@ -736,6 +736,7 @@ public class Auxiliary {
             return Value.TRUE;
         });
 
+        // Should this be deprecated for system_info('source_dimension')?
         expression.addContextFunction("current_dimension", 0, (c, t, lv) ->
                 ValueConversions.of( ((CarpetContext)c).s.getWorld()));
 
diff --git a/src/main/java/carpet/script/utils/SystemInfo.java b/src/main/java/carpet/script/utils/SystemInfo.java
index 6aa56030..7d033cfb 100644
--- a/src/main/java/carpet/script/utils/SystemInfo.java
+++ b/src/main/java/carpet/script/utils/SystemInfo.java
@@ -5,6 +5,7 @@ import carpet.CarpetSettings;
 import carpet.script.CarpetContext;
 import carpet.script.CarpetScriptHost;
 import carpet.script.value.BooleanValue;
+import carpet.script.value.EntityValue;
 import carpet.script.value.ListValue;
 import carpet.script.value.MapValue;
 import carpet.script.value.NumericValue;
@@ -17,11 +18,9 @@ import com.sun.management.OperatingSystemMXBean;
 import net.fabricmc.loader.api.FabricLoader;
 import net.fabricmc.loader.api.ModContainer;
 import net.minecraft.SharedConstants;
-import net.minecraft.server.world.ServerWorld;
 import net.minecraft.util.WorldSavePath;
-import net.minecraft.util.registry.RegistryKey;
+import net.minecraft.util.math.Vec2f;
 import net.minecraft.world.GameRules;
-import net.minecraft.world.World;
 import net.minecraft.world.WorldProperties;
 import net.minecraft.world.border.WorldBorder;
 
@@ -199,6 +198,15 @@ public class SystemInfo {
             });
             return MapValue.wrap(rules);
         });
+
+        put("source_entity", c -> EntityValue.of(c.s.getEntity()));
+        put("source_position", c -> ValueConversions.of(c.s.getPosition()));
+        put("source_dimension", c -> ValueConversions.of(c.s.getWorld()));
+        put("source_rotation", c -> {
+            Vec2f rotation = c.s.getRotation();
+            return ListValue.of(new NumericValue(rotation.x), new NumericValue(rotation.y));
+        });
+        
         put("scarpet_version", c -> StringValue.of(CarpetSettings.carpetVersion));
 
     }};

From f2989d51fda5206691343d33b45b901d52195335 Mon Sep 17 00:00:00 2001
From: altrisi 
Date: Sat, 8 Jan 2022 21:09:15 +0100
Subject: [PATCH 05/17] Improve CarpetExpressionException error messages
 (#1230)

---
 src/main/java/carpet/script/CarpetExpression.java | 2 +-
 src/main/java/carpet/script/CarpetScriptHost.java | 6 +++---
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/main/java/carpet/script/CarpetExpression.java b/src/main/java/carpet/script/CarpetExpression.java
index d8b9c5f9..60da9003 100644
--- a/src/main/java/carpet/script/CarpetExpression.java
+++ b/src/main/java/carpet/script/CarpetExpression.java
@@ -91,7 +91,7 @@ public class CarpetExpression
     public Value scriptRunCommand(ScriptHost host, BlockPos pos)
     {
         if (CarpetServer.scriptServer.stopAll)
-            throw new CarpetExpressionException("SCRIPTING PAUSED", null);
+            throw new CarpetExpressionException("SCRIPTING PAUSED (unpause with /script resume)", null);
         try
         {
             Context context = new CarpetContext(host, source, origin).
diff --git a/src/main/java/carpet/script/CarpetScriptHost.java b/src/main/java/carpet/script/CarpetScriptHost.java
index ef67e102..67614b11 100644
--- a/src/main/java/carpet/script/CarpetScriptHost.java
+++ b/src/main/java/carpet/script/CarpetScriptHost.java
@@ -732,10 +732,10 @@ public class CarpetScriptHost extends ScriptHost
     public Value callLegacy(ServerCommandSource source, String call, List coords, String arg)
     {
         if (CarpetServer.scriptServer.stopAll)
-            throw new CarpetExpressionException("SCARPET PAUSED", null);
+            throw new CarpetExpressionException("SCARPET PAUSED (unpause with /script resume)", null);
         FunctionValue function = getFunction(call);
         if (function == null)
-            throw new CarpetExpressionException("UNDEFINED", null);
+            throw new CarpetExpressionException("Couldn't find function '" + call + "' in app '" + this.getName() + "'", null);
         List argv = new ArrayList<>();
         if (coords != null)
             for (Integer i: coords)
@@ -832,7 +832,7 @@ public class CarpetScriptHost extends ScriptHost
     public Value call(ServerCommandSource source, FunctionValue function, List argv)
     {
         if (CarpetServer.scriptServer.stopAll)
-            throw new CarpetExpressionException("SCARPET PAUSED", null);
+            throw new CarpetExpressionException("SCARPET PAUSED (unpause with /script resume)", null);
 
         List args = function.getArguments();
         if (argv.size() != args.size())

From 212eb07131cdb920dc87a2e3738a507ec3050782 Mon Sep 17 00:00:00 2001
From: altrisi 
Date: Sat, 8 Jan 2022 21:12:23 +0100
Subject: [PATCH 06/17] Give feedback when stepping ticks (#1234)

---
 src/main/java/carpet/commands/TickCommand.java | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/main/java/carpet/commands/TickCommand.java b/src/main/java/carpet/commands/TickCommand.java
index b4ada51e..78a8af5d 100644
--- a/src/main/java/carpet/commands/TickCommand.java
+++ b/src/main/java/carpet/commands/TickCommand.java
@@ -51,10 +51,10 @@ public class TickCommand
                             then(literal("deep").executes( (c)-> setFreeze(c.getSource(), true, true)))).
                         then(literal("off").executes( (c) -> setFreeze(c.getSource(), false, false)))).
                 then(literal("step").
-                        executes((c) -> step(1)).
+                        executes((c) -> step(c.getSource(), 1)).
                         then(argument("ticks", integer(1,72000)).
                                 suggests( (c, b) -> suggestMatching(new String[]{"20"},b)).
-                                executes((c) -> step(getInteger(c,"ticks"))))).
+                                executes((c) -> step(c.getSource(), getInteger(c,"ticks"))))).
                 then(literal("superHot").executes( (c)-> toggleSuperHot(c.getSource()))).
                 then(literal("health").
                         executes( (c) -> healthReport(c.getSource(), 100)).
@@ -130,9 +130,10 @@ public class TickCommand
         return setFreeze(source, isDeep, !TickSpeed.isPaused());
     }
 
-    private static int step(int advance)
+    private static int step(ServerCommandSource source, int advance)
     {
         TickSpeed.add_ticks_to_run_in_pause(advance);
+        Messenger.m(source, "gi Stepping " + advance + " tick" + (advance != 1 ? "s" : ""));
         return 1;
     }
 

From 9fb6ec91cb7a1e76b5ceb5c03966ef116c991c07 Mon Sep 17 00:00:00 2001
From: altrisi 
Date: Sat, 8 Jan 2022 23:05:21 +0100
Subject: [PATCH 07/17] Minor improvements to scarpet annotation API (#1239)

---
 src/main/java/carpet/script/Expression.java   | 11 +++++++----
 src/main/java/carpet/script/Fluff.java        |  2 ++
 .../script/annotation/AnnotationParser.java   | 19 +++++++++++--------
 .../script/annotation/ScarpetFunction.java    |  9 +++++++--
 .../script/annotation/ValueConverter.java     |  6 +++---
 5 files changed, 30 insertions(+), 17 deletions(-)

diff --git a/src/main/java/carpet/script/Expression.java b/src/main/java/carpet/script/Expression.java
index e4109da4..4796765c 100644
--- a/src/main/java/carpet/script/Expression.java
+++ b/src/main/java/carpet/script/Expression.java
@@ -481,9 +481,9 @@ public class Expression
     }
 
 
-    public void addLazyFunction(String name, int num_params, TriFunction, LazyValue> fun)
+    public void addLazyFunction(String name, int numParams, TriFunction, LazyValue> fun)
     {
-        functions.put(name, new AbstractLazyFunction(num_params, name)
+        functions.put(name, new AbstractLazyFunction(numParams, name)
         {
             @Override
             public boolean pure() {
@@ -499,8 +499,11 @@ public class Expression
             public LazyValue lazyEval(Context c, Context.Type i, Expression e, Tokenizer.Token t, List lazyParams)
             {
                 ILazyFunction.checkInterrupts();
-                if (num_params >= 0 && lazyParams.size() != num_params)
-                    throw new InternalExpressionException("'"+name+"' requires "+num_params+" parameters, "+lazyParams.size()+" provided.");
+                if (numParams >= 0 && lazyParams.size() != numParams)
+                {
+                    String error = "Function '"+name+"' requires "+numParams+" arguments, got "+lazyParams.size()+". ";
+                    throw new InternalExpressionException(error + (fun instanceof Fluff.UsageProvider up ? up.getUsage() : ""));
+                }
 
                 try
                 {
diff --git a/src/main/java/carpet/script/Fluff.java b/src/main/java/carpet/script/Fluff.java
index d2e07fdc..ab2e45ba 100644
--- a/src/main/java/carpet/script/Fluff.java
+++ b/src/main/java/carpet/script/Fluff.java
@@ -30,6 +30,8 @@ public abstract class Fluff
     @FunctionalInterface
     public interface SexFunction { R apply(A a, B b, C c, D d, E e, F f);}
 
+    public interface UsageProvider { String getUsage();}
+
     public interface EvalNode
     {
         /**
diff --git a/src/main/java/carpet/script/annotation/AnnotationParser.java b/src/main/java/carpet/script/annotation/AnnotationParser.java
index a2c759c6..2e8907dd 100644
--- a/src/main/java/carpet/script/annotation/AnnotationParser.java
+++ b/src/main/java/carpet/script/annotation/AnnotationParser.java
@@ -21,6 +21,7 @@ import carpet.script.Context;
 import carpet.script.Expression;
 import carpet.script.Fluff.AbstractLazyFunction;
 import carpet.script.Fluff.TriFunction;
+import carpet.script.Fluff.UsageProvider;
 import carpet.script.exception.InternalExpressionException;
 import carpet.script.LazyValue;
 import carpet.script.value.Value;
@@ -73,6 +74,7 @@ import it.unimi.dsi.fastutil.objects.ObjectArrayList;
  */
 public final class AnnotationParser
 {
+    static final int UNDEFINED_PARAMS = -2;
     private static final List functionList = new ArrayList<>();
 
     /**
@@ -90,8 +92,8 @@ public final class AnnotationParser
      * {@link InternalExpressionException}).
      * Basically, it's fine as long as you don't add a {@code throws} declaration to your methods.
      * 
  • Varargs (or effectively varargs) annotated methods must explicitly declare a maximum number of parameters to ingest in the {@link ScarpetFunction} - * annotation. They can still declare an unlimited amount by setting that maximum to {@code -1}. "Effectively varargs" means a function that has - * a parameter using/requiring a {@link ValueConverter} that has declared {@link ValueConverter#consumesVariableArgs()}.
  • + * annotation. They can still declare an unlimited amount by setting that maximum to {@link ScarpetFunction#UNLIMITED_PARAMS}. "Effectively varargs" + * means a function that has at least a parameter requiring a {@link ValueConverter} that has declared {@link ValueConverter#consumesVariableArgs()}. *
  • Annotated methods must not have a parameter with generics as the varargs parameter. This is just because it was painful for me (altrisi) and * didn't want to support it. Those will crash with a {@code ClassCastException}
  • * @@ -141,7 +143,7 @@ public final class AnnotationParser expr.addLazyFunction(function.name, function.scarpetParamCount, function); } - private static class ParsedFunction implements TriFunction, LazyValue> + private static class ParsedFunction implements TriFunction, LazyValue>, UsageProvider { private final String name; private final boolean isMethodVarArgs; @@ -186,14 +188,14 @@ public final class AnnotationParser if (this.isEffectivelyVarArgs) { maxParams = method.getAnnotation(ScarpetFunction.class).maxParams(); - if (maxParams == -2) - throw new IllegalArgumentException("No maximum number of params specified for " + name + ", use -1 for unlimited. " + if (maxParams == UNDEFINED_PARAMS) + throw new IllegalArgumentException("No maximum number of params specified for " + name + ", use ScarpetFunction.UNLIMITED_PARAMS for unlimited. " + "Provided in " + instance.getClass()); + if (maxParams == ScarpetFunction.UNLIMITED_PARAMS) + maxParams = Integer.MAX_VALUE; if (maxParams < this.minParams) throw new IllegalArgumentException("Provided maximum number of params for " + name + " is smaller than method's param count." + "Provided in " + instance.getClass()); - if (maxParams == -1) - maxParams = Integer.MAX_VALUE; } this.maxParams = maxParams; @@ -293,7 +295,8 @@ public final class AnnotationParser return params; } - private String getUsage() + @Override + public String getUsage() { // Possibility: More descriptive messages using param.getName()? Would need changing gradle setup to keep those StringBuilder builder = new StringBuilder("Usage: '"); diff --git a/src/main/java/carpet/script/annotation/ScarpetFunction.java b/src/main/java/carpet/script/annotation/ScarpetFunction.java index 466bda7e..edb980fd 100644 --- a/src/main/java/carpet/script/annotation/ScarpetFunction.java +++ b/src/main/java/carpet/script/annotation/ScarpetFunction.java @@ -51,6 +51,11 @@ import carpet.script.value.Value; @Retention(RUNTIME) public @interface ScarpetFunction { + /** + *

    Used to define that this {@link ScarpetFunction} can accept an unlimited number of parameters

    + */ + public static final int UNLIMITED_PARAMS = -1; + /** *

    If the function can accept a variable number of parameters, either by declaring its last parameter as a varargs parameter or by having one * of their parameters use a converter that consumes a variable number of arguments, this must define the maximum number of parameters this @@ -65,11 +70,11 @@ public @interface ScarpetFunction * consider that those can take either a single triple of values or 3 independent values, that would be counted in the maximum number of * parameters.

    * - *

    Use -1 to specify an unlimited number of parameters.

    + *

    Use {@link ScarpetFunction#UNLIMITED_PARAMS} to allow an unlimited number of parameters.

    * * @return The maximum number of parameters this function can accept */ - int maxParams() default -2; + int maxParams() default AnnotationParser.UNDEFINED_PARAMS; /** *

    Defines the Context Type that will be used when evaluating arguments to annotated methods.

    diff --git a/src/main/java/carpet/script/annotation/ValueConverter.java b/src/main/java/carpet/script/annotation/ValueConverter.java index 2a5e50c8..ed1a1812 100644 --- a/src/main/java/carpet/script/annotation/ValueConverter.java +++ b/src/main/java/carpet/script/annotation/ValueConverter.java @@ -162,13 +162,13 @@ public interface ValueConverter * constraints as {@link #convert(Value)}

    * @param valueIterator An {@link Iterator} holding the {@link Value} to convert in next position * @param context The {@link Context} this function has been called with. This was used when this passed lazy values instead in order to - * evaluate, now it's used to get the context. It is now ignored by the default implementation - * @param theLazyT The {@code t} that the original function was called with. It is ignored by the default implementation. + * evaluate, now it's used to get the context + * @param contextType The {@link Context.Type} that the original function was called with * @return The next {@link Value} (s) converted to the type {@code } of this {@link ValueConverter} * @implNote This method's default implementation runs the {@link #convert(Value)} function in the next {@link Value} ignoring {@link Context} and * {@code theLazyT}. */ - default public R checkAndConvert(Iterator valueIterator, Context context, Context.Type theLazyT) + default public R checkAndConvert(Iterator valueIterator, Context context, Context.Type contextType) { if (!valueIterator.hasNext()) return null; From 8f265f4e526c1b74d5171ff53cd5673fe6b10c7a Mon Sep 17 00:00:00 2001 From: altrisi Date: Sat, 8 Jan 2022 23:11:10 +0100 Subject: [PATCH 08/17] Improve performance of `player()` related methods (#1240) --- src/main/java/carpet/script/api/Entities.java | 76 ++++++++----------- 1 file changed, 32 insertions(+), 44 deletions(-) diff --git a/src/main/java/carpet/script/api/Entities.java b/src/main/java/carpet/script/api/Entities.java index 8f4de7c8..4ad079ac 100644 --- a/src/main/java/carpet/script/api/Entities.java +++ b/src/main/java/carpet/script/api/Entities.java @@ -3,6 +3,7 @@ package carpet.script.api; import carpet.script.CarpetContext; import carpet.script.CarpetEventServer; import carpet.script.CarpetScriptHost; +import carpet.script.Context; import carpet.script.Expression; import carpet.script.argument.FunctionArgument; import carpet.script.argument.Vector3Argument; @@ -36,9 +37,20 @@ import java.util.List; import java.util.Locale; import java.util.Set; import java.util.UUID; +import java.util.function.Predicate; import java.util.stream.Collectors; public class Entities { + private static ListValue getPlayersFromWorldMatching(Context c, Predicate condition) { + List ret = new ArrayList<>(); + for (ServerPlayerEntity player: ((CarpetContext) c).s.getWorld().getPlayers()) { + if (condition.test(player)) { + ret.add(new EntityValue(player)); + } + } + return ListValue.wrap(ret); + } + public static void apply(Expression expression) { expression.addContextFunction("player", -1, (c, t, lv) -> @@ -58,50 +70,26 @@ public class Entities { return EntityValue.of(closestPlayer); } String playerName = lv.get(0).getString(); - Value retval = Value.NULL; - if ("all".equalsIgnoreCase(playerName)) - { - retval = ListValue.wrap( - ((CarpetContext)c).s.getServer().getPlayerManager().getPlayerList(). - stream().map(EntityValue::new).collect(Collectors.toList())); - } - else if ("*".equalsIgnoreCase(playerName)) - { - retval = ListValue.wrap( - ((CarpetContext)c).s.getWorld().getPlayers(). - stream().map(EntityValue::new).collect(Collectors.toList())); - } - else if ("survival".equalsIgnoreCase(playerName)) - { - retval = ListValue.wrap( - ((CarpetContext)c).s.getWorld().getPlayers((p) -> p.interactionManager.isSurvivalLike()). - stream().map(EntityValue::new).collect(Collectors.toList())); - } - else if ("creative".equalsIgnoreCase(playerName)) - { - retval = ListValue.wrap( - ((CarpetContext)c).s.getWorld().getPlayers(PlayerEntity::isCreative). - stream().map(EntityValue::new).collect(Collectors.toList())); - } - else if ("spectating".equalsIgnoreCase(playerName)) - { - retval = ListValue.wrap( - ((CarpetContext)c).s.getWorld().getPlayers(PlayerEntity::isSpectator). - stream().map(EntityValue::new).collect(Collectors.toList())); - } - else if ("!spectating".equalsIgnoreCase(playerName)) - { - retval = ListValue.wrap( - ((CarpetContext)c).s.getWorld().getPlayers((p) -> !p.isSpectator()). - stream().map(EntityValue::new).collect(Collectors.toList())); - } - else - { - ServerPlayerEntity player = ((CarpetContext) c).s.getServer().getPlayerManager().getPlayer(playerName); - if (player != null) - retval = new EntityValue(player); - } - return retval; + return switch (playerName) { + case "all" -> { + List ret = new ArrayList<>(); + for (ServerPlayerEntity player: ((CarpetContext)c).s.getServer().getPlayerManager().getPlayerList()) + ret.add(new EntityValue(player)); + yield ListValue.wrap(ret); + } + case "*" -> getPlayersFromWorldMatching(c, p -> true); + case "survival" -> getPlayersFromWorldMatching(c, p -> p.interactionManager.isSurvivalLike()); + case "creative" -> getPlayersFromWorldMatching(c, PlayerEntity::isCreative); + case "spectating" -> getPlayersFromWorldMatching(c, PlayerEntity::isSpectator); + case "!spectating" -> getPlayersFromWorldMatching(c, p -> !p.isSpectator()); + default -> { + ServerPlayerEntity player = ((CarpetContext) c).s.getServer().getPlayerManager().getPlayer(playerName); + if (player != null) { + yield new EntityValue(player); + } + yield Value.NULL; + } + }; }); expression.addContextFunction("spawn", -1, (c, t, lv) -> From 763abe68c9673bc0f585336e68efdf611dc5a4c2 Mon Sep 17 00:00:00 2001 From: altrisi Date: Sat, 8 Jan 2022 23:16:06 +0100 Subject: [PATCH 09/17] Support more actions in Messenger (and therefore `format()`) (#1242) * Support more actions in Messenger (and therefore `format()`) * Add the new actions to docs * New `format()` docs fixes --- docs/scarpet/api/Auxiliary.md | 2 + src/main/java/carpet/utils/Messenger.java | 94 +++++++++-------------- 2 files changed, 39 insertions(+), 57 deletions(-) diff --git a/docs/scarpet/api/Auxiliary.md b/docs/scarpet/api/Auxiliary.md index 9f84424b..52b73319 100644 --- a/docs/scarpet/api/Auxiliary.md +++ b/docs/scarpet/api/Auxiliary.md @@ -252,6 +252,8 @@ Decorators (listed as extra argument after the component they would affect): * `'^ '` - hover over tooltip text, appearing when hovering with your mouse over the text below. * `'?` - command suggestion - a message that will be pasted to chat when text below it is clicked. * `'!'` - a chat message that will be executed when the text below it is clicked. + * `'@'` - a URL that will be opened when the text below it is clicked. + * `'&'` - a text that will be copied to clipboard when the text below it is clicked. Both suggestions and messages can contain a command, which will be executed as a player that clicks it. diff --git a/src/main/java/carpet/utils/Messenger.java b/src/main/java/carpet/utils/Messenger.java index e5a6c7f2..0fcfc050 100644 --- a/src/main/java/carpet/utils/Messenger.java +++ b/src/main/java/carpet/utils/Messenger.java @@ -103,23 +103,18 @@ public class Messenger } public static String creatureTypeColor(SpawnGroup type) { - switch (type) + return switch (type) { - case MONSTER: - return "n"; - case CREATURE: - return "e"; - case AMBIENT: - return "f"; - case WATER_CREATURE: - return "v"; - case WATER_AMBIENT: - return "q"; - } - return "w"; + case MONSTER -> "n"; + case CREATURE -> "e"; + case AMBIENT -> "f"; + case WATER_CREATURE -> "v"; + case WATER_AMBIENT -> "q"; + default -> "w"; // missing MISC and UNDERGROUND_WATER_CREATURE + }; } - private static BaseText _getChatComponentFromDesc(String message, BaseText previous_message) + private static BaseText getChatComponentFromDesc(String message, BaseText previousMessage) { if (message.equalsIgnoreCase("")) { @@ -127,7 +122,7 @@ public class Messenger } if (Character.isWhitespace(message.charAt(0))) { - message = "w"+message; + message = "w" + message; } int limit = message.indexOf(' '); String desc = message; @@ -137,52 +132,37 @@ public class Messenger desc = message.substring(0, limit); str = message.substring(limit+1); } - if (desc.charAt(0) == '/') // deprecated - { - if (previous_message != null) - previous_message.setStyle( - previous_message.getStyle().withClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, message)) - ); - return previous_message; + if (previousMessage == null) { + BaseText text = new LiteralText(str); + text.setStyle(parseStyle(desc)); + return text; } - if (desc.charAt(0) == '?') - { - if (previous_message != null) - previous_message.setStyle( - previous_message.getStyle().withClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, message.substring(1))) - ); - return previous_message; - } - if (desc.charAt(0) == '!') - { - if (previous_message != null) - previous_message.setStyle( - previous_message.getStyle().withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, message.substring(1))) - ); - return previous_message; - } - if (desc.charAt(0) == '^') - { - if (previous_message != null) - previous_message.setStyle( - previous_message.getStyle().withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, c(message.substring(1)))) - ); - return previous_message; - } - BaseText txt = new LiteralText(str); - txt.setStyle(parseStyle(desc)); - return txt; + Style previousStyle = previousMessage.getStyle(); + BaseText ret = previousMessage; + previousMessage.setStyle(switch (desc.charAt(0)) { + case '?' -> previousStyle.withClickEvent(new ClickEvent(ClickEvent.Action.SUGGEST_COMMAND, message.substring(1))); + case '!' -> previousStyle.withClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, message.substring(1))); + case '^' -> previousStyle.withHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, c(message.substring(1)))); + case '@' -> previousStyle.withClickEvent(new ClickEvent(ClickEvent.Action.OPEN_URL, message.substring(1))); + case '&' -> previousStyle.withClickEvent(new ClickEvent(ClickEvent.Action.COPY_TO_CLIPBOARD, message.substring(1))); + default -> { // Create a new component + ret = new LiteralText(str); + ret.setStyle(parseStyle(desc)); + yield previousStyle; // no op for the previous style + } + }); + return ret; } public static BaseText tp(String desc, Vec3d pos) { return tp(desc, pos.x, pos.y, pos.z); } public static BaseText tp(String desc, BlockPos pos) { return tp(desc, pos.getX(), pos.getY(), pos.getZ()); } public static BaseText tp(String desc, double x, double y, double z) { return tp(desc, (float)x, (float)y, (float)z);} public static BaseText tp(String desc, float x, float y, float z) { - return _getCoordsTextComponent(desc, x, y, z, false); + return getCoordsTextComponent(desc, x, y, z, false); } public static BaseText tp(String desc, int x, int y, int z) { - return _getCoordsTextComponent(desc, (float)x, (float)y, (float)z, true); + return getCoordsTextComponent(desc, (float)x, (float)y, (float)z, true); } /// to be continued @@ -232,7 +212,7 @@ public class Messenger return c(components.toArray(new Object[0])); } - private static BaseText _getCoordsTextComponent(String style, float x, float y, float z, boolean isInt) + private static BaseText getCoordsTextComponent(String style, float x, float y, float z, boolean isInt) { String text; String command; @@ -266,19 +246,19 @@ public class Messenger public static BaseText c(Object ... fields) { BaseText message = new LiteralText(""); - BaseText previous_component = null; + BaseText previousComponent = null; for (Object o: fields) { if (o instanceof BaseText) { message.append((BaseText)o); - previous_component = (BaseText)o; + previousComponent = (BaseText)o; continue; } String txt = o.toString(); - BaseText comp = _getChatComponentFromDesc(txt,previous_component); - if (comp != previous_component) message.append(comp); - previous_component = comp; + BaseText comp = getChatComponentFromDesc(txt, previousComponent); + if (comp != previousComponent) message.append(comp); + previousComponent = comp; } return message; } From 212b6a792e99a6fb1c10a805c121ebca00bdafe6 Mon Sep 17 00:00:00 2001 From: altrisi Date: Sat, 8 Jan 2022 23:18:13 +0100 Subject: [PATCH 10/17] Remove a few no longer needed mixins (#1243) --- .../carpet/fakes/BiomeEffectsInterface.java | 12 ----- .../java/carpet/fakes/BrainInterface.java | 12 ----- .../carpet/fakes/ItemEntityInterface.java | 1 - .../java/carpet/fakes/MemoryInterface.java | 6 --- .../mixins/BiomeEffects_scarpetMixin.java | 53 ------------------- src/main/java/carpet/mixins/Brain_Mixin.java | 25 --------- .../java/carpet/mixins/ItemEntityMixin.java | 7 +-- .../carpet/mixins/Memory_scarpetMixin.java | 18 ------- .../carpet/mixins/VillagerEntity_aiMixin.java | 6 +-- .../java/carpet/script/utils/BiomeInfo.java | 13 ++--- .../java/carpet/script/value/EntityValue.java | 6 +-- src/main/resources/carpet.mixins.json | 3 -- 12 files changed, 10 insertions(+), 152 deletions(-) delete mode 100644 src/main/java/carpet/fakes/BiomeEffectsInterface.java delete mode 100644 src/main/java/carpet/fakes/BrainInterface.java delete mode 100644 src/main/java/carpet/fakes/MemoryInterface.java delete mode 100644 src/main/java/carpet/mixins/BiomeEffects_scarpetMixin.java delete mode 100644 src/main/java/carpet/mixins/Brain_Mixin.java delete mode 100644 src/main/java/carpet/mixins/Memory_scarpetMixin.java diff --git a/src/main/java/carpet/fakes/BiomeEffectsInterface.java b/src/main/java/carpet/fakes/BiomeEffectsInterface.java deleted file mode 100644 index c3a5acc1..00000000 --- a/src/main/java/carpet/fakes/BiomeEffectsInterface.java +++ /dev/null @@ -1,12 +0,0 @@ -package carpet.fakes; - -import java.util.Optional; - -public interface BiomeEffectsInterface -{ - int getCMFogColor(); - Optional getCMFoliageColor(); - int getCMSkyColor(); - int getCMWaterColor(); - int getCMWaterFogColor(); -} diff --git a/src/main/java/carpet/fakes/BrainInterface.java b/src/main/java/carpet/fakes/BrainInterface.java deleted file mode 100644 index b45b9778..00000000 --- a/src/main/java/carpet/fakes/BrainInterface.java +++ /dev/null @@ -1,12 +0,0 @@ -package carpet.fakes; - -import net.minecraft.entity.ai.brain.Memory; -import net.minecraft.entity.ai.brain.MemoryModuleType; - -import java.util.Map; -import java.util.Optional; - -public interface BrainInterface -{ - Map, Optional>> getMobMemories(); -} diff --git a/src/main/java/carpet/fakes/ItemEntityInterface.java b/src/main/java/carpet/fakes/ItemEntityInterface.java index 5faa1f74..4534bbfe 100644 --- a/src/main/java/carpet/fakes/ItemEntityInterface.java +++ b/src/main/java/carpet/fakes/ItemEntityInterface.java @@ -2,6 +2,5 @@ package carpet.fakes; public interface ItemEntityInterface { - int getAgeCM(); int getPickupDelayCM(); } diff --git a/src/main/java/carpet/fakes/MemoryInterface.java b/src/main/java/carpet/fakes/MemoryInterface.java deleted file mode 100644 index 8447433c..00000000 --- a/src/main/java/carpet/fakes/MemoryInterface.java +++ /dev/null @@ -1,6 +0,0 @@ -package carpet.fakes; - -public interface MemoryInterface -{ - long getScarpetExpiry(); -} diff --git a/src/main/java/carpet/mixins/BiomeEffects_scarpetMixin.java b/src/main/java/carpet/mixins/BiomeEffects_scarpetMixin.java deleted file mode 100644 index e8291304..00000000 --- a/src/main/java/carpet/mixins/BiomeEffects_scarpetMixin.java +++ /dev/null @@ -1,53 +0,0 @@ -package carpet.mixins; - -import carpet.fakes.BiomeEffectsInterface; -import net.minecraft.world.biome.BiomeEffects; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; - -import java.util.Optional; - -@Mixin(BiomeEffects.class) -public class BiomeEffects_scarpetMixin implements BiomeEffectsInterface -{ - @Shadow @Final private int fogColor; - - @Shadow @Final private Optional foliageColor; - - @Shadow @Final private int skyColor; - - @Shadow @Final private int waterColor; - - @Shadow @Final private int waterFogColor; - - @Override - public int getCMFogColor() - { - return fogColor; - } - - @Override - public Optional getCMFoliageColor() - { - return foliageColor; - } - - @Override - public int getCMSkyColor() - { - return skyColor; - } - - @Override - public int getCMWaterColor() - { - return waterColor; - } - - @Override - public int getCMWaterFogColor() - { - return waterFogColor; - } -} diff --git a/src/main/java/carpet/mixins/Brain_Mixin.java b/src/main/java/carpet/mixins/Brain_Mixin.java deleted file mode 100644 index 161a1e9d..00000000 --- a/src/main/java/carpet/mixins/Brain_Mixin.java +++ /dev/null @@ -1,25 +0,0 @@ -package carpet.mixins; - -import carpet.fakes.BrainInterface; -import net.minecraft.entity.ai.brain.Brain; -import net.minecraft.entity.ai.brain.Memory; -import net.minecraft.entity.ai.brain.MemoryModuleType; -import org.spongepowered.asm.mixin.Final; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; - -import java.util.Map; -import java.util.Optional; - -@Mixin(Brain.class) -public class Brain_Mixin implements BrainInterface -{ - - @Shadow @Final private Map, Optional>> memories; - - @Override - public Map, Optional>> getMobMemories() - { - return memories; - } -} diff --git a/src/main/java/carpet/mixins/ItemEntityMixin.java b/src/main/java/carpet/mixins/ItemEntityMixin.java index 4a58ac11..56204178 100644 --- a/src/main/java/carpet/mixins/ItemEntityMixin.java +++ b/src/main/java/carpet/mixins/ItemEntityMixin.java @@ -42,11 +42,6 @@ public abstract class ItemEntityMixin extends Entity implements ItemEntityInterf } } - @Override - public int getAgeCM() { - return this.itemAge; - } - @Override public int getPickupDelayCM() { return this.pickupDelay; @@ -105,7 +100,7 @@ public abstract class ItemEntityMixin extends Entity implements ItemEntityInterf self.setStack(selfStack); this.pickupDelay = Math.max(((ItemEntityInterface)other).getPickupDelayCM(), this.pickupDelay); - this.itemAge = Math.min(((ItemEntityInterface)other).getAgeCM(), this.itemAge); + this.itemAge = Math.min(other.getItemAge(), this.itemAge); otherStack.decrement(amount); if (otherStack.isEmpty()) diff --git a/src/main/java/carpet/mixins/Memory_scarpetMixin.java b/src/main/java/carpet/mixins/Memory_scarpetMixin.java deleted file mode 100644 index d3b4db17..00000000 --- a/src/main/java/carpet/mixins/Memory_scarpetMixin.java +++ /dev/null @@ -1,18 +0,0 @@ -package carpet.mixins; - -import carpet.fakes.MemoryInterface; -import net.minecraft.entity.ai.brain.Memory; -import org.spongepowered.asm.mixin.Mixin; -import org.spongepowered.asm.mixin.Shadow; - -@Mixin(Memory.class) -public class Memory_scarpetMixin implements MemoryInterface -{ - @Shadow private long expiry; - - @Override - public long getScarpetExpiry() - { - return expiry; - } -} diff --git a/src/main/java/carpet/mixins/VillagerEntity_aiMixin.java b/src/main/java/carpet/mixins/VillagerEntity_aiMixin.java index 37a403a7..ad8939e8 100644 --- a/src/main/java/carpet/mixins/VillagerEntity_aiMixin.java +++ b/src/main/java/carpet/mixins/VillagerEntity_aiMixin.java @@ -1,7 +1,5 @@ package carpet.mixins; -import carpet.fakes.BrainInterface; -import carpet.fakes.MemoryInterface; import carpet.helpers.ParticleDisplay; import carpet.utils.Messenger; import carpet.utils.MobAI; @@ -63,14 +61,14 @@ public abstract class VillagerEntity_aiMixin extends MerchantEntity if (MobAI.isTracking(this, MobAI.TrackingType.IRON_GOLEM_SPAWNING)) { long time; - Optional> last_seen = ((BrainInterface)this.brain).getMobMemories().get(MemoryModuleType.GOLEM_DETECTED_RECENTLY); + Optional> last_seen = this.brain.getMemories().get(MemoryModuleType.GOLEM_DETECTED_RECENTLY); if (!last_seen.isPresent()) { time = 0; } else { - time = ((MemoryInterface)last_seen.get()).getScarpetExpiry(); + time = last_seen.get().getExpiry(); } boolean recentlySeen = time > 0; Optional optional_11 = this.brain.getOptionalMemory(MemoryModuleType.LAST_SLEPT); diff --git a/src/main/java/carpet/script/utils/BiomeInfo.java b/src/main/java/carpet/script/utils/BiomeInfo.java index 13603ca2..60cc52a6 100644 --- a/src/main/java/carpet/script/utils/BiomeInfo.java +++ b/src/main/java/carpet/script/utils/BiomeInfo.java @@ -1,15 +1,12 @@ package carpet.script.utils; -import carpet.fakes.BiomeEffectsInterface; import carpet.script.value.BlockValue; import carpet.script.value.ListValue; import carpet.script.value.NumericValue; import carpet.script.value.StringValue; import carpet.script.value.Value; import carpet.script.value.ValueConversions; -import net.minecraft.client.color.world.FoliageColors; import net.minecraft.server.world.ServerWorld; -import net.minecraft.util.math.MathHelper; import net.minecraft.util.registry.Registry; import net.minecraft.world.biome.Biome; import net.minecraft.world.gen.feature.ConfiguredFeature; @@ -26,11 +23,11 @@ public class BiomeInfo put("under_material", (w, b) -> new BlockValue( b.getGenerationSettings().getSurfaceConfig().getUnderMaterial(), null, null)); put("category", (w, b) -> StringValue.of(b.getCategory().getName())); put("temperature", (w, b) -> NumericValue.of(b.getTemperature())); - put("fog_color", (w, b) -> ValueConversions.ofRGB(((BiomeEffectsInterface)b.getEffects()).getCMFogColor())); - put("foliage_color", (w, b) -> ValueConversions.ofRGB(((BiomeEffectsInterface)b.getEffects()).getCMFoliageColor().orElse(4764952))); // client Biome.getDefaultFoliageColor - put("sky_color", (w, b) -> ValueConversions.ofRGB(((BiomeEffectsInterface)b.getEffects()).getCMSkyColor())); - put("water_color", (w, b) -> ValueConversions.ofRGB(((BiomeEffectsInterface)b.getEffects()).getCMWaterColor())); - put("water_fog_color", (w, b) -> ValueConversions.ofRGB(((BiomeEffectsInterface)b.getEffects()).getCMWaterFogColor())); + put("fog_color", (w, b) -> ValueConversions.ofRGB(b.getEffects().getFogColor())); + put("foliage_color", (w, b) -> ValueConversions.ofRGB(b.getEffects().getFoliageColor().orElse(4764952))); // client Biome.getDefaultFoliageColor + put("sky_color", (w, b) -> ValueConversions.ofRGB(b.getEffects().getSkyColor())); + put("water_color", (w, b) -> ValueConversions.ofRGB(b.getEffects().getWaterColor())); + put("water_fog_color", (w, b) -> ValueConversions.ofRGB(b.getEffects().getWaterFogColor())); put("humidity", (w, b) -> NumericValue.of(b.getDownfall())); put("precipitation", (w, b) -> StringValue.of(b.getPrecipitation().getName())); put("depth", (w, b) -> NumericValue.of(b.getDepth())); diff --git a/src/main/java/carpet/script/value/EntityValue.java b/src/main/java/carpet/script/value/EntityValue.java index 19a0f670..0a6309b8 100644 --- a/src/main/java/carpet/script/value/EntityValue.java +++ b/src/main/java/carpet/script/value/EntityValue.java @@ -1,10 +1,8 @@ package carpet.script.value; -import carpet.fakes.BrainInterface; import carpet.fakes.EntityInterface; import carpet.fakes.ItemEntityInterface; import carpet.fakes.LivingEntityInterface; -import carpet.fakes.MemoryInterface; import carpet.fakes.MobEntityInterface; import carpet.fakes.ServerPlayerEntityInterface; import carpet.fakes.ServerPlayerInteractionManagerInterface; @@ -633,11 +631,11 @@ public class EntityValue extends Value if (e instanceof LivingEntity livingEntity) { Brain brain = livingEntity.getBrain(); - Map, Optional>> memories = ((BrainInterface)brain).getMobMemories(); + Map, Optional>> memories = brain.getMemories(); Optional> optmemory = memories.get(moduleType); if (optmemory==null || !optmemory.isPresent()) return Value.NULL; Memory memory = optmemory.get(); - return ValueConversions.fromTimedMemory(e, ((MemoryInterface)memory).getScarpetExpiry(), memory.getValue()); + return ValueConversions.fromTimedMemory(e, memory.getExpiry(), memory.getValue()); } return Value.NULL; }); diff --git a/src/main/resources/carpet.mixins.json b/src/main/resources/carpet.mixins.json index 10dc171a..65bf0545 100644 --- a/src/main/resources/carpet.mixins.json +++ b/src/main/resources/carpet.mixins.json @@ -66,8 +66,6 @@ "EntityTrackerEntry_leashFixMixin", "VillagerEntity_aiMixin", - "Brain_Mixin", - "Memory_scarpetMixin", "PlayerEntity_fakePlayersMixin", "ThrownEnderpearlEntity_fakePlayersMixin", @@ -189,7 +187,6 @@ "Team_scarpetMixin", "TradeOutputSlot_scarpetEventMixin", - "BiomeEffects_scarpetMixin", "ChunkTicketManager_scarpetMixin", "PointOfInterest_scarpetMixin", "ServerWorld_scarpetMixin", From ff5f62b0e10443eed884021f08f93a88d94a8664 Mon Sep 17 00:00:00 2001 From: Ghoulboy Date: Sat, 8 Jan 2022 23:19:57 +0100 Subject: [PATCH 11/17] Fixing #1146 (#1245) --- .../resources/media/idea_customize.png | Bin 52601 -> 42270 bytes .../scarpet/resources/media/idea_settings.png | Bin 48201 -> 107839 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/scarpet/resources/media/idea_customize.png b/docs/scarpet/resources/media/idea_customize.png index 5e50aa2dccdbfba28a48d4260840bc7e88b198f4..26cbc2cee2a045ced66be28b4f4409d1fb31316c 100644 GIT binary patch literal 42270 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

    Q(bw-?%e{Gk#?%MxtmT8CjIN9TT!G1P0p_c1 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 literal 52601 zcmeFZ2UL^Ww=Wt(fCvatq^Oi&1C^#*0i`79c3Tld5u^nRqCjZUAqfEy6&3ep3o0UD z0i*>f2|W~ntw>QyfB=C2(g~fAkmRkf%emv-GsZdRfA6^Oj`5B|i6r^fn%|sr&Gq}u zIoJ2V^8Cq-lG`L95Xi>Ur+&7AKwvNkM63iZ4&Ismxn>r;h}^L{c?^=6_bqx)x|=JfourVL5rb2D17TKi+C?zBc12SJjV`z8QWS`tDP-$xo_9 z5Y3u5H_p4il+E7o^wrGSFVd%NO)^w3{Jy)*Vb;9ojYpJu+|5&k+R@`rM-=xSb=1f@ z?|*sub9Q#-*UaprYCnfTL(}Jd=5P4FUf^E7+(}~dWd&#vAoTDMPmR5N3<>@Vd9eu& zexmQepy1`HI#KxEjZ;YB%ht{R$&XU|MTyDm{#ZqfV8$Y6{HMBD9LMz`i#=Gt<4(+e=!p~CoRxW7p3z%j4vq>1v%5PX;EF>yj(MK zK?IyXB+I`vR~=2Duq(L)FRa?yH=Ff|pC&No+NcG^#l>2c-fKHQ(`cK>^5m`Lq!8Q` z5DCvOLnUd=(&k+I*)N!suvM0VTCl4L1<$q4e+*<9-Wm2#O>zabsv)@Hm5P=YW$LfY zohO2uN3Hcyi`XX_oParupkD2@;&@ipgSjWZBd;Y6QkLPGxaj+lER@gY1+m_`mpWg+Rj1JEYj=$B3qs zqO%neP{M2(%6^SXU7{!o7+yT4u~N`lPs76&{Bl8LDQ_-W=Se@GE`@KbAQ*Jl;|jD8 z#e{$Zxaq0E$F%yC92^vw-`Sp{IV`(d8V+u`8Dq4MpS6Pjz$V})W8&`3v+LD$XXrqQ*3DP?N=Fe8h*GqoBP_yZ7(zkH zWMC24UiCarB;wJujEK;2hp|aD{MMTAloj;As(WCJV3J~@$@gLe5LBht+5>xaO!;%M z3049{Ocr-PVTANMN${9DXYd1j1k5yOn9kGrm+~Lu9@dR?bex!DSNAc; z&KIs-}x)(ot4n!#gih*)dexH6B&4(s&HDCYWW+ z6_rxg5(K^_y%@nH!DKb0qoHzTf1L$^iQ3C+|1_=3>th<>*;?K8rrI#*{w+0GUAqun zhtAzs5GC@T+&R~RxZhwnTmn``{oAvtgp8}`)==cEE@5_>i3(*{C=vuX>RUDnM}Nx{ z%wtg(dIeRoTh#co(WCqx4AoA%;-yTNtJU`787Bop%$4(DQw{v{ za~6U{h9dkN99Aj^0t6c0BgsE5vu;<0pjuZ!(6GWQsAGgOST7|+F(Itz7<-CmQ=O~m zT>*x-Qc7hj3a+J(M8x776k`P6WYGRnVv_n}C8941?y@-P@tBh|v~&Lt8R~?k zNubTM=zaAI7yIhJ4OcAslBX7nVwfY{ZSy7wntQ=xQz#_-xb;RzKW?RuIX|EGr<}Sb z9G1MGqgGaduo6nhmlo&CvIHh|6^vP2ofpTPdRqrCk6aT>P-(m<>a5~XZN+jy86ikr zx+?*lvUa8N%%1LLdWA zqiRrhMbzQ&W18N;x_YOOvltYws16mfW+5-A>ucE};Ccatd2#(27sDng_{m;f!Mtul z6rL^UAP^YbehToiEHMJVMX(x0uvle<&Cc|TL8X#aEjkJO;lX3y^m(5GKekS8ga6z( zqci5FNUVCy-(bN{)|PWB6AXLwr%j}@CMT5Pm*_?BT0M_ex*=!7^3U{v@(1xjm2)h3MGySmfBdlrrhn773?J{pO(;%=T0-dcsW#S z1Hrj`Gcsn=n>z+yPuX4*LqmSJ-3m0=Q5Sb zbR-j{THUG@AE_g5#T||J7bQknd`sk{r;|Kjj-terMtox#>L%_oi#wsB>_|CqZ{2|M zk^=TKqGe>gk(kWteo+#EU0W*-t^O7mc6QDk-$dH`p0B&cWeIpx!ZIdCuo5enL+O|< zylDAK^O|RHs?t~XA#Uwgn9QsT(jlUY2t6~W#wOVj&!9w^QC2B}x|&UNL*`}onOA?) z;eb^lbK$V`eG&8o!)kJ-z@R_qIvYLk6H8!SM+s}B{0>4ApGV`BVrVi$kr(E%@74tmGt#LtQ>9c+x7{Qk*hKvmd7OnRn>Kss-}Us|-@vWn`<>Ia(9t zfODk7l9vxxT;{;Q+|N5IEw~Es z?EHTAYxO+4IWY6neTC8F%gCpion?i%_vn`cBhu?iJ3Zz0cE z;|qM|R9LI&aVNr(mvs;sTe=!0mx^Q4Tx1U-Y*PuG{PRe}*BEa1G<)uOPmc<1L;TX{ zbD^b|uc(Rf)T5x0rpE_ZxN(XCsd7OvhOzjX@m!0^Ees^0m$;+all`T4cpLmK4$=-I zx`w$!bQzd}ll^y!i<(LITG`yBI5cL`pZ?2X#3_}~_9N0gR%#-Us>+Fir>Ng8o%7Jh zUX@w3a(+4cC&p4fdwC^nvfP_6KYUuF;~F*Q0t|W<|Ah6+N2k5ZHJp}OPJzoYb;6%Hfqrdv{F^_F793Y_JV3C zk;-j$jqwUwq1vq_GL|%AWXne@7HW7cyb=`cbWs=U8jXln{1Bm~!22)~X{p&yQh4PK zgLb_6==Q7zuSi6Yo@D6h&j1YEs9ijHG#?=Qd?Vjh?=XmsjHI^ z^fB2~UI&xTe<1sNbrm;arJS^-@(f~a!fQ1*KZWs$Qa*PMS#|yr_4~J_>OTP?4In}O zV>OOz42dv?(&CRr^COvxri&~^!c-(7KvmiSKg-z5A9fd94yIKJriw88_=|yp$+`qn zfsNOedE6#=-bN|vp>K0#oOOh`K47~nPc{a%W+G^0#)gd%E^H9zJ8YF+o0F~F=hPfQ zYy@}6?57K|Zm2U9iIC%xf#R14yRSVXHylggZ`}AlP44 z1X6Ws?0%}*m?qzb;S0tP>6p_t6B#%M|{VcD(es=Mey z@k_w0;001|ffT;{r>WGxNWf@Lq2}uomHb8L!d!&Y9^54qB3xRi2nh1H&^C}io}$6e z|NB02mg)~4RRPl8sL0z773qp-j}l62k?GVWPlR}wtqlpr?30C(FGT68O2Lpe!rS?S zmQ)rf27S7J9si$2Lbk4B(n=Wg>4E>kTkhq=DhU`=@6iA2n)+?Lp&!k2$4Nj}&YzD_OkgP_6i}na zeCNG%&p(L?^{Ra4APd5SDG_ZBcFJ6x*9s>|y1KJs(5bhTP$IoS9d0WvVwKx$@!KSb zJai32#s>+gSppP;tTLV0iGW{41JpG!0dVbFVbGQtal_Xke!h0bMub34DcTvkP^No6 zHjX3;smg>w4gu?-P@rbBv`Mh z>0YN-lCaJT)2>2IfN;@%NtDPHQpF*SWLMd^#*RAY`I^*F16lt68&I;^`WX zscy4lVIP}T&Nq`{hvxk%`zzYI3uJ3(>P%{s%l_#^ltJpq~6#wKYL@_5()L0dNkBdVKFtSMT7p5r2*SKcRsrQdPeWYO`Rl4fp3G^#0$w8 zL>CGNgHjj{T3<;zbTysl`G|e(rdX;9J_i}L4-<;KT5hC1r5jeNDm8w)*s|Mc$2%}j zb0aw#n;sDfIK;L5^TpedTX<3@xSyFME#tGwp@*e2yxw}SZjZ=BeM(a3Si*t07G4R5 zxxIuE-Kvw{4gIql1pb0zsR6{| zCOB*)eW}QT3Mk|}vxu`dh^{f^KSGn*7LU=ak_+6RC5~vq_-BxFK6J@urk-*mNCj>? zguNb+e#{Le3^wY8kuuPKJlEr+27_?Dq%g{z5+I~}|<&?&;C{1yRC6`h%b(_;6 z94>Kf-hs*xhc-&iP4cuo3ql@YDJv9t5JLVM zUkVlxY}V&1QSD7cmztaT3$Rfk*O7U{#aTb-vmN0Tv_K@{F0)8g`V)QFON&1Lft_|# z47#yJ>3$FS0&Ouyiq=pZww;D?$-tQ$6IvSrtlcO%VV1f#ZT1!?o)f(v_qh^8 zoxvB7gczz->o&Mn$^NSVNBe4^mkfvWFRKgJ7}-XE#JXq23vzs&toD|iWq zb)~6`5;HjNkR>CLA7U%NSxj8~vLpDjt{hBw>!;-4?S4SDvLdgvX_uecV5FSxVW9B9 z4ZS7y%1y5~=;^ixD#Ht>BWnvDqmdc>LQJNu(~=C)ZO+ki0R$_BnayzODLpCW99{s#-T3G4_JgFDg~UK;VMXV=59}wICxS3U zG+kR@j(KpuRQ395dDLk_KYQg2pqfn(Nb56n%FPb@(X6_#OS*qt-=tb@9BQchDV=KQ zeK}V!f9-MxOAlcyy+`NE8$rfq>E6;ilwyMZMpLUmqr0@4(m|z3(t-1d63}PI*z@J{ zCj1Zcp9KZS$YGe>54$I58;(_n9l5f{R3as;qPKbVU2CNi#V#YEu|;yp(y$@fxV(Id zwO{m`b?~ESM#_7*q3!C2Y^62(lkRCQT{liv4rSBbZnYiD&~rcDHB+!VPzR)rY|W zzq_S6@ID#8@172!$uF>I36+KIp=-t#EnkdoGurw6L|9*W zQ<2`=aiz&)nt9$0C%OWoE5#t;TZoVw*|F$>r$teq){w_qhbL$w;cggxZXL7~3UQ0~ zAOGS9V4UH98T<$@j3KOH*i4_`17M{2O%o6x?>_z2>yTZEobeO7M+JSBqw>@7S%l%M%sZQ7Y1CILd5`RWG~zN zg_+;f7!$)>?QUbvMV5WWDwo=mP+G4sj?ZvD{{EMH2|NHW>3V5ofDlEAp&IFRF^z#S zjon8c=x7L*nZw1!D?jW%F9FL>3nTOfSY~dn&cjg)RfUr;ec`S$C#0B}&3z8?s4aICO*c%7^eThj+=xEKpiuIni4JVp_ojm59jjr+{|Lm;-o zFsF_vZgU!7lrDH%WjjfT9wXxWLU^8YL7h}6@v6r*crSjTI7q+jCje*5gZz5eo`usJ zH0ok560448^0dHCm7)t&WDR1qUEw|l?rwxq|No3X-H-?^E4?5YT`&rQNW#xQO?aymXokt(Ma|Jcdtl{T*~!cv)`o9t+b30ytCvDRk0YO-T* z(2SWIb*1HIb^VkG?qnQ4=mp&9N8@hj)5*$W`~;yS=?nijs=_$buGeDG+JV}%AVHff zDtbSmxm-IH^hSq=LZx+^ep$Fc@3b~l)TVD8s+HwR!#F{vXtteMP=A%nv`AD!!f0JV zTw;{B=I=v+lUa?JD9m9)liO?7ktauEu$6(nc${)V`ohvoQuAvZqEcp)KwHcHHe;=1 zgEl51<4h4{oXzCZ;n#qMK~nl=A9|oODSd&dw{$yzmnF8>Tny_^-)oMdD8_WQAHATp z_7U5k zU-MDP=8pSoPN_Ai8h5=@HT=D0*R3P6W<|xMOmQehLk!<`G=^BUl)h+QW3j(;Mcx`U z;$`JU0xL0GeFMy`QwEla*`6Wa-Jyr{FxXP{(OWxadG<45sI-H$Q%fQHYTvku#5fwM z@WqVR#bm`Z=!-yc$E4lcuBM0LGboW2a;&m=RBa+FNC>K0k zzf(^Z;cdqR_q<1rBAzR^-3V>F({Sg0ARP982-$YZ!uFjY7Lg~_R^bPO3^^Rc{Sv0S%OJuYAo9MquNWZ7uc*m`RFQNyoRdI$3D8CMnqfU z?J(TM&~4IMx=vZi5fogFlMTKiKf$Rnsu}r{pCYm%C?8^mMPxpW^MX6 z1NXgK-uXAP0`b7@8{O`y{ub(FVfwUZl*^C0rQdk|+BI~^RisX04+CtKMQZUyJBvLV zo62CNFexb(@m{O52S*b2W+HIzE!jw1L2^94CQL=@M9^_$>*ZmI4z%+Xb$kW24tqKF z6M^&<-F&zneZj@wZ%E)$vQAFF!5S{RYL!~xdnAy#=*q}ZLShx*8WxE98lt(x4C z?%?^ozI{PNfA1NPS|00?#bU=xbIdt-#e32~jU+H)&smb zpvRs_J>4_zC%hSA%$!eN;|2;fp#jlo24<^mky@|1-m3` zygKr^S3!VARcV9m?!P?})azC^@Zt*2D7BWal{-6y~Q5)0|V?X4~DJ*5VtIBLLx-3rY)eQ{33I%XDR zN67a4#LCT^{7vfTgQep5<#ViOz*iGRASwHS<&Gg|2RwcJ(kHI^2&&uWjn;hTQ5bSj zE2;m4_XP#s$!8;8=42I5fox;D6vNWF(pU;*VAxG~U-fA6&@`1Z9u&kIxlv}YycPP` z4)QG!spt43d#aJmIdrbXDJ>`HHOn=?w1yhR4|CW%L+`O#uGP8(-^Nv6wmxppfy0=q zlGqGBR|l&Kza%->xbS6#o&H5b&?4ELkJ()3u`~%wb*_A+C6_E}S?T0C8fJA1L$cRy zZya%r3ekKuWTEQhw7l|+IF@N#|3yV6j%PA~*rp}Eg?0Y;@0wpE2;e_L2CZ3ReSo~yp-v!A{~|~=5036mz|hpYtV#qYX>6ZiUQoh(P0Z< zszDU_dwUm1TiYMDQNRo%LFA55cc2C{m#6`taA8RueVscU)=9l|inQLm7 zY3`dJj=Py*`h6^KujHeV4|$dwmC^z&&atXa<;Y>T!C}!s(f=dl|L7Gt>$PN2n|Kb@ zCmXn>9ret@>pEwAZP7D4%EdML^@=L|9QlH(`*gZYdf+ebV%Vj@iSAc_X*fU)P+q_mfrOX8Uq}B{3h#7)v}nB5QcbQf8vWm%TmJu{gvEpW?h|tp9a+qg zxH8b`9*e!p%YKZ4?< zM3X9=Wwf#UECkv?!OMlk826LC=i@?rf))qHA4l)JHxzp0_DP^Y#p~n7Wu~6D&AXRMA!`$LcHff3h8{<*+iq zmMku_Y^wrR-xWEb`_?Fv0u!EmKH`1FlrNn@#5)bWyA`#B9gKfs1-y;3pmL)z*85o8$@-v9Vsmfr?4djzYk?&S|#`&-U$VbooKA2+rcv6RUn($`Yvx>%Ld@wh44I#CyMWQ|&F>LVG;= zX3$vNT?}gE3Eav85EviEMpmDB?7As{Z@(FjY)PxLxRP=gnt9nltOHugVVR3r7G>Bi zpB@KDwu{D-kd0{=+z%TRiBzPW2x;Ri;4pXnzhlR)Id%C<%XRL}Et|QXv96Z=2wQ(f zqN)K%*|2|+ga3Ro4!V1brOU6sX}b*dU4JG_XhVne7x<4o>a69uB5TmAXU) z(a@=DdrRU+;w$V&;|}*_`zdp= zrdBaW`(I1Fl^-lkQrrV?yT@T+(2u%3JvNSMEM|xry?lx%cZiIO#Ce7E0tp7`7m#|| zcQN&>UK^>r(?kK=<8tpF$!tx9s+N|U^fOx?RM(63O%;uE3|0>4eroi7?BUOyOg=}HsSZ~*z$aiCSQ+$U&7E&Bqmf4BGSk!9hgbwbwdSg zgBNZ%aqgmsyjEE03(b2!8nL#Q#6ITjTamAvM0Gp$UM?EQs&wMB@)3#T0;hqNn4+IW z7?+Ub?#oC^Rn`>y3(x$C&)}%M23MB4Fh!Q_(u%?_2XWZr#;yso>HsStQ zDhB)chl-7`_`V&@o?6_apOmJrCvu-o3WvHFx)uIa?QYuB?#y|)k%IA+mPv+zEXkUh zWg4GyQ;psm?I2uNW1e16;_U64LEd(n&S_WCngMr3=$8~;6xe@#JB#>ZLUi&AVf(k0 zZ!7;yIJ3MDasR~Ej=Js|FMfduWyV-bH95)rVPjoQ{@Rg>Zr%OwI_dBKkvt`_0(TGi zIV8_i=X;7q?f z$kDz9gLkPD(W;<~TBQVFWxy%qQwg9yyLttCh@hdJYWqzItZ8N=X7$Y6Ky_peoGZzd=AJLw02xdEYoe}n^uSKF&;s^^4K-e? zhoU}ZRH)ve4@m*V^mVbW5}-tbhq~rHN-+y+ypOu_$pp|DI8zZCDanO%A96Qh;n>rZ zO^~sezeh|!59CnN9;d3^h>ZudJCp9g_V0B|G7fL5EByS@*k^RBK13B&;tOA9T@=C znCD?C&Nk~x_tQX}(ha=d^Q5nLqq7lM7R5^g9!I?$9Jj=>{I(zRs^A0ob9lRVZu3L# z=3CA`-;;sOBvl$!@Ij6hkURh2(oJwb%477vn6Rtq-9T9Ifh4t`uj1$Cnb|>W1D?JW zpzP(TT2`{XYFRl9i8%Fw_;K4oL^1Ej>A7qAAMif&mwjJkS|_9%5z&FiLFR4doMe+7 zymi;t!>_&6l@RcEvFnoM!(q;ko~Rlpoja!slC|WO(_4mqx`p)iHLbYm^jcx1e+mK5 zE;a`0Dc!ygVfgZ^x>GZhG>=oAfd$Ry6%$51eGc6r1UNovgdNAcT{(;xyDr^$MEdr@ zv=U;lq|g8 z$Yr6O=eT2iqp}^7i%%D1h~a1?IN?x+M1-s8wQdG88y`(JFElb$_U;(D@)(^`1~Oo8 zHE0--Aii@^No|gi#VF>d;%#GPQ-Hx8T?X06aK}G}QzM#0&%e_AM5__gGydb|TQP;ZVbC{pQA36_&PXtN_j3`xMn|?it4D;=FXkwabHgJigS3E za_&^>2e(|(NHforyDV#cH0(GGIyV?@W5ZHtd1BP7lE<9S2F;U>$;7IfK9L7U(25I3 zerDcY!F^S?y7N03*BOPYufcY-?#NEuCef&mx}xkAY2A?L((}VLS}$-vUH*rr0lA`! zI=MKRIjZw=Wpb**3P=8BtcA1~_JlYGN@NnxW|OMFI9t);pI(+2-t&PMC@)dg9`LsP z=M)dxZ%Yxg-tV~^aiv`+Y02^Jbq~%S5pf@nNn-}sb2sQ8!6cTuUf#N>X!^p}=4&i!^}muCSDE;cF}Uq*Ko78+#4 zMrJ*_>bSTW{>X3UvPtybjy%^6yyIx^i4JrMr~k<$9EL^#MX3q~p><_b=cTIzFvr#^I zM@LURy5J}@K~Mj(9b;(r=pCYdOkmnwvLg%S5z6_@Z#rT_!}ksMHgT6cz6Zu(@0MJz zAVlV3MV6D%&iWaLDpW6Nh~|i0)6Cf3Q{+jHblYCm&sWgOrIokjHqaJBELFlI+WGb5 zWd9c0F(X=7i_)zJpp}nlArXLkKJc)yKozX*S{T$IhLoFG=g14`YY1vRbaMQl*DZJY z!4ca0wjWzM4(#)Hz&*Z-T`0i4F3YKKY7k0fJ$k{B_3n@bv33t4LwcY2i97VVqN7R_ zg+6yDTScoM@lt_(nQ?c?r`wj?wc~!9sG{o`N;o#xJ>`xMg<(0bKTthWn(UK_;mO;S zb%7AvZSZU(RllvIm-P=OgTHYaXzy}ZoNcu|KVYFIf!hrcwrSHq4gRO;95*RFJe2q( zE^5_x$;>6HI;j7NwItVH;+Z@xOQC0}`r}zO|BXm}6UD@t^w@=>@z6bB@h)wHe)rbIJ{m0v54M)c8;4%!8&+^Vp9hkuR49Rrhi;Id@m<-Dsh=RaEHe+uYlsbTav4GMklkOB!a^v$as$ zHD&k2PwP&x8^k6Mgo=WXTNf3(OT+Y)WP5&SVz1)DuyNO=YJ&V02SCp7a~m_5?GzmJ zq{Sm_AN|?$laKZwYzr7eRMNGM*7udMvsq#tqss5Hdq|V7%7UpnM^qQK{1J_I9*#Ui zTkgmybxOBD+mUx8ia%hFh-zQJtZUW)XcpvDefklFkGEobeyHLeN#qdGF4?w$T5eXJ zWsM}n2H2S_(AT~=NNgK=?&Ugf>K3AUY2E2S^g2pJTSR`zU!omm;2SJBZ>?$W`wPpI zhbqOOiLXex^jr4L=(FuM$boe626GU5NMP)*wkxHmQ+f3^t$w$t3o2-=d6KEgv zPW$taYa!o;W=}69l`UX)zN8%S>5bkD*RrSTjvR+*h=rBY-`-|8a{Sxw7_e-J5WSs< zE^o`z8{2VqE6;5lNzh2^_T+ke2N8l?~2D^lT_w)DNci_hZU_2u!p z-eU|*0vGTABmD&EjKs6uaZ%l% zpu;O2FPY58JHLjmBH)Whp6lMWDR!A!ja!!TK0}+P)h$JknZeyvUGHO;cO&5XCKyMd zU(xi{k-8vX2tvOj;V9UMx?lad5h0yo8{IvNmkq+AjrNfQ1@3;Whx!)}s1`O|cw>0p zq9JEO;Mwn*=)x`E^hS8^MQ^8zoVd8AlB!a0lEhpnO(KbU3<>0k#u7w{pPliS@R&@q z5vbu}N`BB>g{H)lw_gT)-M_!~j?*Y4p%h0{JG#mt*Z#Im8G< zJ$Q3)?BG4^wty+FaiA1;BV$^ZO2c$}_1^4t-FM%%la%E>}$KT=rqcU%{NeB?1B&)01EG?xy5aoKc zp`H2ORZmbV#S`<3AQbdjf*zERiO{%%dbYlO)7On}CBD7XF^a}sA2`?%uKxa&+$Vhl z7__lIPp9VzE*YR4D)uG0#LqKtuq1KC9VBdH??^vNMyI5k?S?Ck&&#d!L~$mVH|NWr z+~$NXw8iMqV<$lqLh2unHUzjOWzaveK)YCWXl1E~(OCPv&(8KquR1kSK!H6BB)8_$ zMQcOf(Lr>xf6bpdi}dyzy|WOpHk8cw%Xe0@>T>NR+&Y{27ze+8ZMA*n(-O6@SZV2i zs-FyO-w-3;rR;euu>gCXVzgCoGa1%G?*%0!Ah}C`3LJL)YhO*YVeEGD6@{s@gMTom003qC$L^*vhaYy2#RwZv(Hqp zOt0$;T@jaG-n1;gvb_h<^PA`O*SV;rCHaGYqHp0i)r!kOki5n%%=B=0zsXbgwho|v$C#$mgNKr%uF z5|xhNgZ+Pf0NQLZa+(DGc_oOj(e5vH0IF#_{~{Jh!1U_DdD_2*f`lIcm~)-30mkS2 z=s$mnrPgNZY~4`)tzo^Wh5f=&e-V!Q@zgH04=dnsh>q~CHLdl0yR2BEAf+ngb^nX! zdjDfe3vLYj`476=r&^6z<;QOd#VTD*WdvvhV@JHB?z|4sZ3URUO6I+|sf_&u4uUp- z64&6cd!XLem1@|91C2S}Rh8hLS4+-U$U?@_w!z=!Qk0(ry%vMku50nMx#~=Bg%OG- z)Ic8`HovK*0PSomH0Z$(pCi$b6i`VC`?R2iP>L5)wR3Lsz#e1KXr$VlvDBY4smHwp zCWdg-5r3RCZUN0BLdN{ZyFIdC6#Rb=*)0ZLX~|vhF|tv#hGL|5!}1^DpJKW{=85yZPX*ZV0-di}ubRAhw=>`~T@W5_(U2CctcP-RgC zn%LVD3q|=8TQhU0F40Y(Kh}!VI{nNGDHgB^G}g^0H5hvF^E4bUL{`7TbUC z3)$(lw&~}i(pD?Uue7x;n$DHxJhtz#uwJXY>Okpj$gj+%{8X6Q*_@{T$)EnNpNsv0 z^Byu(NY<-tuB;_r#1&4Bk1S9-KCem&aEF2g4g3wf4`^&c-HpT@3R_Gkv$Ii&iPQ~OKtWfxL{VtscV zsi|Y?m>mZ7P?6PMdO^$Y4F_V0%Q>phnm%D!<<6ylE}2JvOK!_P{P%S84m=&d#2j4vse*%yqZt zY=cit*k;Bj#USrWniH#R8_xgj!IREV;(WxBvJ`8n=cVKaXL(E&@tn6`@SaiWIyReG zI@}kYqvJK(dshIrYSII+*RfT~4bKg4<4yH7NGYKD-PhXqA)7M_?7v6e zV3z2ck65{w7<6yi0%ctse7gg}a19?I9l!*qbCSe!H=Ku;L1@?0zYE z_iHZs^O(-__Tj5)q9Q{RzV#ja<%`n^zC05Zo5+tUXS?t9C>>Q{q?1mLe+=r0Kkzu| z?|9kiBo4)XAr|>oXSoAclk#qjhv}Z%Wv4UTHtnZonJW=KN!H%tp)L2`MIYPdSApm3 zS_-jDvK9NldyGYm962rh$!zlHvYzHop$BX`@0sq=X*5;w`0mfRy1C2Gez@kw?r#z? za?^_?(wwnqM-Z)RyF`il^&N%g^h1uMWYg~YAi!{)9UKqcyI$gXe1Yv`((jC^2e9nV zurfIS5ctb?X}WlGxr7N=YNMFX;59~GQW~+~b68>l`5FD8SetlUyg$9&CRwYp^Prx! z1m&KH-q^uaWnWYW{&v#WqH|i;jOgT#+0HZ9nFsyAabkMt&3?hzo=zM4fI8smTxC#c z={PY-{y;Ll64q3_?Nb05dwu`V1pJB1vz04Ly*Z&@>3jZOw9_mban)Y!CpFVS-y);y zhQ4UqnoaEJF;vR2RkGGi>ELDCJBuxtQ9SHNj;ZZ|?)S`cn|?z|H{Fn{v872aFIUu- z@}SY1TQZX{68Cvk-%YMwXIff;As5rQbkOI6IkU8~h0_(-+9``2Ey*O2ryhbBxy;-z zTHn#!i3P5<+2eY-6kw^7_}gl7k>6sob{fW8_q%4@mAL-T-lo!iT&&S$LKHuJtmlxD ze+B!O4yjxIPo4aYtZ9nN1xz20(QR@mrRz$A(Ha8oK%Vq;lHBN>`pa^F7e9`~oi&Oi zk8pIpyd95=rc)>rm9_J!#l?c*+jGXoa>y`6e=@$6Ln$3@qf~OP+N>`&UmRQWfY3=BFn z@#fE4aU{DqRD8genAXP~P(Djrio_`&7lW?eUk~54fYXb&^4PnEZu=0Hsf~hu@A>?7 zVN*gp%p=<>%^iA{Kc1su3$+bCA)QQN-d0sMUYnc(869|?1SyMTnZOOdQ+8TV3{a*- zv@deldkTlNTn*LF&1Ixja&~2?+P4|zj|WlKiLGCE!$C*NH?jlBo4)hbyc$)3QP=RO)1Mah+uFPA!u0La&9XTE7I;Tb{B~c2EIpV1 z`=yHH(y7q?jll%V+N zz3W#-aGlE(6HrF|6C-tA6^9m#L~yFw4SlZ6MHo`yG#z#aeVf25F zOC1{EfVi}0=ubY~1Ij1YX{&*sxE3VbpicYK z%dr1UC}MhPHpJ3R``~89Znj;keu{QktCQl9#<=dxG^x-c$4RGbn$WkuyLi(R9-M70 zLe*-sTatUVZj}j>1GzcQtm8Cv%5BDisheT_L}(fb?R+1v^isGqxTz8K9lx*J-^0C} z-ia?=9yNWGRc0C=HFS$hm*FNSQJnjzQCPXZH|J#oM25iFiam2@dh}O24f)SRXWy%@ z9MO$S8j;l(Ms|d_=O=TY;SM=wC~8xs-JlJCo?Z((f7vIveg@v*%vX zx~cm`g!c>eYh_IG%S(Q@UGqFjqE0tViG-(OW9^@0?ejo|QK)N91Q+f{-U8Ou)(3M;&Q3(A8y{f@aVN9UdZ9qi{E$t|ScPx=;|v&#e2ycNgXH>%u#e zadFsK@2%Bg!Ee;ROJ#K*?C>#MgPsgSr3ot2xk_zad;bYiF37yEi_ApTUiuy#GhB+N zmCS&);`l*-$NVG?vNhx?>-v2DFNt54LdN2BBI%~)4iOXKj6MFjAQ@vz*@$hhmZvb% z#w*AkjHMM1$5s4;2Fg`rUZHl;=k9&UKQ=ajuz6h;7Jnc&ZL3ZCqbvik#;<+D^kJ;w zqBAypnF;LH$$yhZLI$|MpA2i8XD;x4Jq5Q&MQJe>PUH;5H}tM6a}!A|E3oIKBp40x51bO zmv4Vul^ivAJ=xBMgnNR=2TX)C4z9;sEg|o#t9}ypu3rM;cX1;Ol+^y@ZD%%yDU;W~ z4}-3Pu6uAe!-f`hkk{73iRP;wQo}M&Z^sH9CIe4N1jS|xM-?y<1J^m)5 zJO5&wOy`wv6w_)EP@jw)9X$%FxG9Nl$fu?KzJ`CXBf#MSuPDB=GPCB8F4V@(zt`%2 z6Vd;j41BEb+d3Uwf7;gjtb*vzBM>552Y>|s#o=p5FFPj5uV4r}OQeTfXMUCa8)lwG zqDjn8nfqkEthA(&Dh{2heFgRwaM5l=7vYC$@TPzEjz257A-_^fHB}ko`nSN*l)|9k z!{(2YQF^ViA9`rI$;Mhw_Q_?fAHZpG`e{7E9T;B89f@e@c-GMQwkVM!zkRPY7cx+gTb$-NY9O4ozM9Pc56&`HmqTMI#JV#27Aj1} znuYjvGu%&QzZg^+%Q+Vgo?#?x1Qfj!YYgh$e{6Hs{;z?|>AZBrg0%1u*DhO^Wp70f6P5V9>a0h6)Xh_2f(0 zF}^FV3~8qn=*QFVPkRPITF&q+k5v9XQSy@VKA&OE{Z<>%6)4n70@^vX$}PCc*&f+y zbHG4N!gadXAJFF@-=^5>zm)Jkhji%Q!}b$=O`6SV)aQjCOH^==Db`t!-hMke1J_OS==B>EG<%T4b?fA<6yUVm?yq;)~x8o!(gA zLEK+7J#qH~w(9g1<<306bB|jml!UN}LbEW2(h3FLH*H_egez;jd z45FkuRxX}ds<26tJ+y&Eacnlp#b5*ur0*I_BTa!Y=#dBOcyYyIpnhl9zqS*T@mkPfM`tAj6-(#29<5KOVh((%@X_OYsqN z&V_5ul|KPlO~s(qOa2BXWDf(xbNoS-`e<9f_#vzJmKESUxM!9!br1JdEG97bctqOu zarbgZ!`D6fUzT;Yo-BJpYn1jeHVZcR#ihhP(5>NjrMHR?C+uz^$S9tlNs$wZmFj%I zq@kvC|LaMA?x(QPmw)>_Na0kKT7fdR80r909BcM-o5tS8i2E+r%3dyS*Ot*TkSH`n zh+`xFsORNXrzlHz#OehIJ%ECC?(WKOLZ^%`r5vpn`{48D=o78J7V)9!w4qzHxsVr? zu^P9w6X+bubP#=UNmcUR^H2}pT-vl;?mupR1vJOWz07nGZL6u$+v-s&ZP|E9f=RB{ zEAA&Oz}`;2bMC`;`B}=`8#}3F1c1PlJt$3S7Y8>noRF9O~}t8y7;(MJPFSLOFFpIhI@HF3~}haVQBf7&Xpj456Y_DoRe} z6otY#8*&OcB?jX-&NCS2VaAMie@FNIyYJusd7k%q{@3q)-{-yFuB)qQW`Fm0@3r?@ z>$BEgdoAo%n47~~K%VOy0q>_U;WzVnvPg`_1!N@J@RjroWb@xA<|o_zf5S1$M7rx4y(;n@|9MgTdmSh&Tx39unpm!%z2+2?CsN z>H@PuoCz!Kb>4(J&0?2`sf>Z)$*Xzlu4!UjM+4qimnDx%7 z;=_!52E}drL4gTnk$0&N&zQ-81cr&b7W;lt7@(vRLPHMx;LyPxYL}Xvi$_8j*^n;AYLyh=PEK_g1xJ6`D@G>%ylM z=0xe*NUu3s{mZn@QE;Pup!Ub8pC(?hk#_%2A#}ALqYn?d901?GR9O%?T?*GRIG-ae47`?#!YBGuheyPHzk)8!o8>E>>f=9(`;V5Md6z z-S>F>?>Nun@nq_0>h2XH$dH_GU$2Jxc27FTKpJ?%=$^9IDL0&_( z*_eQnwkh z3u!s(@epBG{up~GXIwuqdd{;6kw^9}J3mk-lD9NnyxD_Ln&f<=G_$BKb-dUJKinMm zhmd#)EbIUs7Y$fpAlEyQ&VvJ5jnS99L;rM`32w~L2%b7!_M%hy^ECu?$ooRMOk5JboXJ`yzO%r2Y}1) z^-?XtxUMa0c5{!Dc4rYv0*vIh?O!@7v@mqcLV@@J==yT&+=;atk)D zZ8NJStCvZeD2qB?3f=s0IU*DQllE0tn|emiJgAIPK;E7xv_7;)~sO+VmO|8ZCa%mjw;ABYjM8E##Q z0+E@J{jecISa#8CXfABvZ0yeylnomJoalk0>0dhIU(h8Y2eL{U-#x1mZFbY%I70(@ zd44Xvs`>*S21-2&mRddg>+}sokyhmVJEjgW(*Cz*o4O~AsgRUewU}G=a}&2=Hkd!+ z7Ls-`>@x3i=<>=iX3NQr$YgsORwl%$JO3F3K%thL>+5UO?+1jbC--o%(Q6BN*;cz2 z^amdk&rwQ`B>c8E5gG7dWsTq_4l*)JUg zFh84>n{&?!bU&N@8E;xqu9n5FZ@qj%ShIMcXtjC>I-U3MIFy{zQn=pw>WbthTN?@U zO|q(fQarsy^wrgBxnrNZLjV37J4WDjA)C7b^g57rGxR)+O;fbijO|;vzOBK2mDWhh z>;YwI8`$=2>#_sZx<#?zB2QaXxJO@RW-gIQj=vyC1_xS0YFR28dbQy0&a)zp*V}kp zzEy`DDnYADO<2e4oG;hizh5QCuhz`b0j8tGz6spGboutMal<+SRzk<(P3f|?YlH=E zFRMaFaBm2@>Eq`h!*y3gyh~>|!Qh2l-Mo~OF!!n|EC%_$pvm1KercvklvrD2G^Q*^?PPl* z{dT*m1Npp7Y=BVi=yGE@_A(M2(ydyxbeXg@hUbDL3(Mh?ApNbK3Sk@F@364HeP_RV z=6MCWHq*VCNc~PM9;FS{cbQ153*KC?yTE_1k+vtl>563WV!+QllqOSdzY2MgdVuj| z#^(cXfnqde@^`IZdq(k05f8k4eedGAfW8^{nEMWMab%f_S@e;tW@b~N?|Z#VgriwA zp0GF>yQoI7=miS+>L6%@vS%r5JGxoWw7tw%KQxnTyhQoh)zk_N*N=FK z@t80lS!yqvm1+Hg_NGuf0aiV1h#I=NoapiFZ7EZ;trn~St}8Twc05DL>!9|&6UnIy z)5)q4c#a>*I#KpE>U%S+=!n<-PtfYZ_o=7Oz8R(^#m&XM>FI$Jf0XHw>P)doJ=BNP z_Qy-k^w+7RcKmx|d6n2juW?lOU@0eG<4;|yEff&J^P;{ylkDQ5B8Ji{@wD1PzR(hE zWH=L%8J>Z@TiX#!xaP3yP?pN_8HPlIx`cUwdRBAfXHVTsLvNp^v-t&e3tjil*Sca) zg1rpb;pFS5o!}@fT%TT3+8DCWqA)Q3JgfmPsWMYZG$f5xXjXgn=o(oRddoj?MkE%l z`u@z9iJl~{RMF*-jn`JMFTt?J7p`0L_0a5eEkd{4Xg~CQ+xkz0b@o6fH@@y7)*<*| z<9t9q)oYwu&oyp8r_;x<&^Rs*ALrQ(4n?wtE58nuB9=n47=`C;>fB({soBi_a76x> zrjX$+Y5o-Nm z<8k{N@7fL@${?)3Vy?7e5XfhU{9>u$JGL-mXENpUlgvtRj<;~l^&nGOz8Rf2=>uEt z@!w&mVJR!z)%sKS|c+MqOTgUJcAMtQUA6SN`X>E zomCM_NQ~_W*vI zcGTd)vhXP+j}OjgZ18E&bdP;2>~a5I+p(FhnZ>n$lph`%?rIjS{F*v`Xu=moq968b z*8my?dkpcgfpW50rErPwDxU8gvgl_`QTC?9$Z42OdPzz{0RP!o!NiL;3=3>pV^pFD zeMeJuO4TYMZ-7psyzG~Eej9Bz(B76hezQETx+?W+{;ii3m`7nmW^KobVGwrdr4^fpoleVs*mxq?CFi<~OD82@(W^DZM*X;IW?t@{_PZC& zbxWNN&t;%a^x(1GHh?bVNJM^_PHjgA-L4!yOah^PjR&SbX2wU-bJwky)aTTD$TDPI z6B00IEC>`+&x-;&;$8PqgcELJSrg&3+J9As;6y2CxZ0 zEa0cFqxcmw-{MlKNb`U)H}f~GpAgnp15D1u#)t18Vpuc!#%RAiDU~pPoQbUM2(?qs zQgL*~Thw*fmN#{;MyyNaF?W9r9Y54H0+`D<0SLJsuu0|vpVdA*ckX)OY~b@(56?yO zohMXu)p=f(`u>J1Jh3rQbWsPfrBjEg0*_a1_x%2Fq1~QfOv%r>dQDF-i#(H=O`ZNd zpuE=ST7ij%jyPN_OX?g`SJMUBCaS|3KsWjpf_;ldoA+2L=fz?RCVlwT86|3-?GVPG zy)EqJ9T4)JpREnao1q1HAK6kSUD&SZv_x#Xx9Ni*+Xp_sJeR~tXRSH!VC*KR?i#@D zB8y1O^zh0!+|>f-``zF?ENIo^+;i%@UttuL@)c)B|6i;iWD)^@n}G9G6x;3z$);pL#za>9uAtM&4s zfsoI!Amg9?$Ap)#}OrlqKNvDkKd{YPRd^SSC_Ko|AF!T@Z55qhRk(Py2 zk!TMa=kkH##m3a}6xtT6RjLH`nXd_6K1lLycE;JPRhiYtmw1;HwsdweBW*GwH`0%cH zb@HNCSWV%Za+N#=L&Chh4hDeOEtpkaCIVUBRJ{s2ChFM!bG?zNa+BU8QPTa>nw$NM zm##*FrvF-d!i5V;p?_Sj8qWAyGle*-R^^t}sUkcyK$^6Rnrw+uvi>b~%djM$cwvf2 zbbZZdmv*I)w{FfJL)od-iUIJn1JdUCZeMRHrKWvAzBA(@$-Tf zGntm%=0jy_mf7VAq~ZW@Lg}M*Cm7!SN|4g%y{7SG&qqmG+I)GhH}T6!wAXaBaq~G* z>@%9BRc9LcZTJ_xot=vE*AJE!9Ea6*+y;s}B2yq6;Hd~7Se)Atgl;e?j{BrbBk^!- zeBBr>{7Z`@7Cw~17L_n z`hQ$mD=P?BMUNh=3Fa2U?w&e0b!1AbV?P@hIWU5%`nlO|mP%{il3nXHUa>4JQ6j3xyIz}+7qG|V`ji=Z7{B7U-Tiwra@DdEy#}HD$tv& zC)%tR(i@Psef0wW(rH8aTE+Rfr$2#m$-H6Oo zP3SdN;oxrsHZ3@j+PgM8hnSlmZIl#=mhl;H)Od9aapU_;g4KDxDRAtCuLEhVOB`S! zp7f(x?Dyn^(|s0>fbum}=#|Lcn7sRhT~*UhmPW(g7VgsVzOIccRIs)-4o{vK9T|w% zE418IHly*z$@7<4I8GvcEYzE)hU>F=wm?Q-clqN?HY<=khFOGWI=G&{jv5k2$*tP z`<3US!ZS0&>jM|^3T1Tj3y&Z{_8sD!i`rqtj^?$?dqXBW!Tm%kgg%m{JYdICIgX0( zd|w+J*EL@wsxpa>jT+k>)?ps2=`9b><;xy$Gc0NMKiKn0ODKHY#Xbtrw{(Jek zYd%3UZNa(3QJ1($=UmDSY%i)C@0sxgT&Tv8chD7meGpf*QLVbI1A3O)V_%d%<5c6t zY+mOVG#wCW(2dl4o4X?QtG#n#aojXTU8*3~Ntcit;= zttr2Axz7tv_97Ja;Pa33kOhz5zWPZE>!l;EICSvDC_QVwKQ1e_-|aG5Niv#yHMaXC zy7H-@I!M(XxxVta{%lP0m1rMw0n>IaZ2c@P?P*41{v>3*Vp2=>KYC**Cp51_Tk0Z; ztic_$icUOax<+C42~x0cw& zf3$hu;LFy#koP%z`lo8eP#WsVfyO>wlZS#2$^KfC;iM&7J*Spi-O&P0E|7s!Fq|N; zd#FtK$9N&ias10eR}h98$4r+o=nlOzAm4AI(V0E%@Fvg1CbDyqdU1(b5pY7U(@4@_ zz&Kk3KYh*fEgvq$s-*Tl!=%NCMtM*L!eXy5ERSXN_couvmm=#rklB`2)V?JPkhHM2 z!#KOC@+%^AL8~>UXg2;+S>#t|_;BlfyKi4LuhXySmQor_DDrhMD~BkA&jZ|R__DZ5 zRV5cYNR!_phF*+hwn>Uatyd1qkCJUHhtr;3q5;#ue%tkuEXsSHuib%;#a-2jh8vy4`*fh^^uAxS#>|uvs``Qf<*P67Ru70&9M=$$q@zs9o0~+sOoNqRaD(othFzh)rb%}HM)1p{fJIpncWFNf&T(4SdRzKp5|i((Dki^>1Fng}!k_YLLqX4f zzgi;b%NKmn`9#3N*X!m|Pf6nSkfmvu_s@nkybhSIS#?$m{;SHJ0F+f z-W$`8PWXOY7$rqDH_V0M-#n6=w}X`xeMICJ=~!j?fV+F7V*IBp`i!pMeI=7BfXJH2|-a0>5JiMSk_KxXK zo!qfY^mLkEh3+TUJxJ@!o>!R#cC-=F(g0-_7qDjs^zr0NK&&@lq?-I*9}KL#>l&$uV-`!r9moNz$P_rNZ?UJe zp{P6AWEgeznZHf8yUNvo0kfBN#bbrq18zd-Bbi-!INMlo#Xkt>>h=Q7toh4l6XdWn?*(PGY|2rj_;>moU{Dl%! zf+yU;9NZ<&pp-baLlm@{*T}752EiNl3!m*H7LrWlQl@SZFBRDy1A)0*dDikO$^%=- zc3N&)S*-W0ZwzpHHM>SjSi7t@;68 zU`H0Ocsap7!Oomk%TjkLaYX`UYd7hEdS!Jt_7$Nsrn^q_XYwTMV@Zq3xPAF~qE1ia zz;{6!A65|@sI5$m&xqOht%%eJ^{>L_m&}%qBZ{_{TP}j@H?rGcHY={FAMqSsCorF^ zz2B(lc7!_+60t67qzw;1`05uv&*+o;CdkCzI*=gq!o{VSFtCMy1K<+lZw>&DzHS63 znZNKoiL!})G-f@nV3$KHvgklmROt=?{LJhm&13W6IC8mpIZB>}Zg*ZdWmzS0WH6?C zIX?T&&agLmz*QJHY-<5ZUgc$YTg|mmtxK0jFPk}tKThSV zBZeS6+A_4$lS|KTI0G7hGhm5$P31B+1w^^jkWpcLF27s>)JCJ&$OGcTmi7ZMJ;h=t zt%Y!(Fus|uA?VJr)`H0BUO$*A~XJgJbsCp5FoCy z8vn608^i_&JU#KGRc}r^`$*9aGYCX{jx(k#r8^bPQil9uMwe3NDG1zWD=T@IU4p}R zh&yk?;JwZ2bsff8mR8FfDwUQz`Nk5D?Zwu9H?B=WwiqtWyqNVJre|F;H6K_YM>KXU zHQIMFSSSe#d1QZ9+rK6me$GP8Wxla??`i*5$UGWXUe1Y3=n7Yo3199cCq1fteMW>IzOe zuE0Bb4CU7>b)LB#W;jLF@Ue31f3q)U0dB1FrsMvxlYD&_4eG`f+-Nd#=++RRE6bZ7ENwZiwBZ)O9tRkp4}@j^0SB@kjeDjaI&$4% zSI-LU{PJs>-<_WE(#OsbjREUTQ}1xLj{lL50Lw={@XJR~V2rLBi^!}}%lc73nx^Vn zxsJJUy&?cI(e>7T8L-m-z5!dyup|Bu3U2kBbejl9AbD!dXjjVu7^}QC4&NW+c38N! zaA0H<{ygc@An`w-9qqOw{+>VJ;vK0dRRTyeK@MtDiZA0Pj=5xDL_wY~Df_|u= z@}IeE#ctq*khqUMhvu-ehoxkaOy)b#`|r|@AREzw&z+gKZNc#!_;c%0pX%B+{gG-ST!2#&*7TiS94i)gnCSt-(`0)O(kI@~&+xwR zkf2Z?!aI3g%~TmSyi5SqWY#h&hp!=|c-QR7R|s!;cM_LL@GVc`-!|cu@dQfi@q&9(2^LCInT*S>s#ANg8XxtX4DOW4a&AYI`3`vM=)raA-7UZ!bxYn%X1W2S z2qwu-XNGP{viQ_*tj758b)^R>XQR42Ja4wdX4@^r7LKWIYE4u$O-Ct%XxcEo8t-mq zgD08(iHp5OzHY~()t`Nw3nuH%jLYR$i!u{osbV}=@MT+Xo$n0jott^A{y`5E{s}aQ z&WQB1=fqUB`+#H@o=iuO1oz6CxxoX{{6*3-Gc|iB3{69;D}EoAU(P2U|BTBTszVN5 zy|6B9Get#dYhec~ahETjpz%NG53EGcN= z)Nuqkz-)=kX4R|UX}1-2@LOz9P%8c_uI46=wuG@*GpEQtAXhJa#lG53K1qtAr3Svs zAnW$b?A3fzDrSJ0JnT@Wtp!FDh>!r8t(6xEkNRjHqfrZlx5omAHj4d{x=oR;SR~dz z#WXvN3lZmgvHXIpsgqn~3jl@`8W`|{n16zftAknz1E zK}R?`yZ?~zx^mtm?FlB_h`*syCcEKg(MF;SguQF$HmUN9jssKWAA{UkB*(m zo?J@*kWK+%k@W0CBNjjE6!8odh>N?t-t%(?%{tw)tUR%PPfN7+VOXD3$SL#}>&rts zsq1SWi@dYnh*u32aYn5tTt`XoJpW3upwBd-ZZwr1;JwG9P=>z$;-VLTrSUp1Xq zUCqAh{pf8$&ufqko?v7?4v+vHKGdTx`=B5_?NxZfw>o_AWH4v;`lsorsSuNI(W3a1 zOHqu}QSpLqrlRjLQH5w++j97=#MWcN3eo2lTm0!!On%&6Qzpe%R_)+gT6T!1S?66Z z&~3#@2_z_>fO-?Zaz(e-=&6E#LYPT^wCHLkil}2#J|spDX-%wBcY`EK`JCu_Jv!`W zS<*Bp+G^`taFQ|3VbH2J4I=+`+}GlX5A*zq&+Kc0x@GoUlg)AN(BgmNI?WC7(-Kq2 z-!Byt$UU+N$hFTd92jr<`j@aRfU_&)8V(D`=$&r?865zhABfeL)z(+le&EJ@S{jeUhnjx_Auiz0|JJys|BKWUAk9Ci-v4m$n)*<> z$9NFD1i7orn^DCJ6XTB()@wB$*)T_K;^|`}I5e|ONZiXBT*DBgk9YQgdbINnIP0|^ z8s$aqS?Ebg8&%Y8kF3jNcg>l#silDxRmR5!0XA?+$laC|nv>1)hi~B&tp0>Y7p}a% zjo$8aDP2c3M(^?BHL zV=8W})MuOU-FHLXopTMGl&{Ap>_;s~>ZO_X-aRC&5Y8;YkIy&vMTMB2P4bS(@Z#2N zVXFY463e}9QDiOlpv+7@FP>d7!aRA~=^eX?<1!$LclW0=dgg2A_wiVGfAUECrh%J$ z^3>omPD>Wb)L|gPGxeDj++{w)3vNDuEXZrI`h#j~BQ03;yp8f+QQ5^Bq`mYgL*S7o7k{MfRrE_@q@VN2m3BGZ%x%v zwBy9ojP&>pwyyn{3JkdIQAceMA}r$fmRqk~QrZ@vJYt(%&JGpi`}MF-5t2Hd#b;Pk zbuvA^J;R1po9rmMvMVB0%MSz(R;YvJi2!lD9benL8idYVmQ~YfkrOrDJ5z$?#(;z~ zfpCzoQ3B+zoY5{W4}nRzcYQVIn$e~e5yu@iC!a#BHzi0uT_HfJE(v>uHPzTLRbsl= z*1&ot>@XGMx6#|mb!)G#>h4*#dd5A*_sB()GymwdV(0*0h<7Z)J8*DM%_-L&*JBQA zL<7#?RQ)ruAfaOvi#mc)6kaFELT8xHK#`TaF@&X1iW_dj*>C2-&P$|Mq44 z6in}FGkwU^CzOpX2jsVbdRCf~yEQ6OFRp9oGNe9VCYm5J*W~73#?M9c;rH77B4H=` z{XBUaZ%r@+?|u=NN|7lx9>fFcBNP`kC6vesOg!h4#PBL)!6eQ-+<0FZ>_I}>tHyN&9gfo1cSy0o^+6!0zU_|f*^l}!T$R|ItSVnB0{D*M17 z{Z&R%*oLgymk~mb^q)LeR&Esh);A8Fi zf9kXg*{c;$0J4R4^o~vedh>-h_eoFTul?_J`yC;3-h#qt199jF<8N|h8sGgHX=Z6e#_JXSA=5|6xHesZ{ ze)91$EEN70s=MUO4mLpGM;=aJ)9KbTg-dZD=C>{Cw(PHouig@PUxso&A3>F{sLV< z&reBR`xn>)E)Awx3yonaMvwA)cbd-Hh|`-kRZT}NeCa|Xer((M{S~Xw7?hb0%o?jm z*8rtJO5Ayw z0~2J3t-wJn^uSsO21_AxTj36?-IEno_7j9U3p)d*)cPz_J0_drz;n;XeeiJmxbV?} zEr9Y>yTKGDzGWqlyl5XPy0Ncx#6c+()wxOL0l5%;@UW~Z82kMv{2{Af2s3tb(!7id zHaiMkm`j1_)2<+Tfs1;bH-I%uaE~yN`}2|EcBZO)2$C_*7!#ss=_$v50_C)4>jUn@ z4w-XUe@9=)3D5#XZ2CaO!6wf>UEQMoCnXT~eSwIXZ;-Zmnb<2{f611Iq3vyHmmiEjOpw;LDF$_X*#x1t|5te8e+i@gpX;<+ zj*FcVK=IoQ?FMiG@=vKEbyIfmAVlDt`~L|F`KI-2=_$T5pO0WCW%QYGFe(P=77n*{Iu=5VA>io1uS4S-l4wqrbxx7LVYvY=l!@JMmF@M#DIIZ`e&x{D-eSYjpsiti4j0n=fH!6b34H4td>hA3|~n-wY+$Q#?%niC0~UfpiqWBQt* zBt(&3(E#0Z&d!6 zUTFZ2vu*#d)AwwNU;5z32e`MQ)k_JZv3mC?pxkOFsPv8}E4gO-YYx>r&D~tiTc2Ng z1+U?j3UyB^?!BkgD8nVefpL0zsJnTxY51T)i2JyKff^tfC>jHeTa1UZ{j2w!!)n%7 z6MzEV zyMZ4`PsiI@+tNb=Vk94nh7foNdogH7KqRX)P1fG zJ#|{v%s|LU7W%m7>7VFe>sin*3lLTCKrmwiQ2cl7R^m0mEnZYLi)H`3%*tvGKLb?* z2iPO9>KSW35}$!GhbRzueq$=9&qLFF8p$F@#RJyd=6|(i)lS#f-Jsu|{SYsGI|FUS zW>6#&)KScBUm(_umMqAVqfPJ$YgABGi`dUwGdryj8Ga@TZe?w)m!juNhRTTFTe~{v zGT+m&YUII~@N{fny%iUd#;|eQlYgP1EUI0y4!PsWK^OT_^=>AFg!&RemcN2yKJbub z@KQBvXx+2~I8!&fDXbYJ1(ceug(VIeD)bw)5#&S*13aw7X4~HdeEz0l5N3pt;hV(j z54PPZ%4u_BshHjdK z_h|{-s4S^D;>8Pkn#u>1O>WaOkQJN!fDaPhc^_2D3gNnVxk8wCF)L*0p9EIxkRZmm z0PN<96&BY5h%j$kX2!d!ZZ-2;`W;IY%E4e&YJE5)oB!j@?$6wZge_90!D}K+pmos% zwO{-K2Nu;=>v17rn?i3Eq$tc>I;xu6oHk{(EE#`X_(_s4Y$1%dGyd*V$X5GfJwa-- zB=6Cxd150<>?*`iJpjhei7{5IR(sen+xdv8Hart#bFQmfv{-F^ zWA$HbV7qFvxmL}V7FfB@a4tDUsIg4bN%d=E*jfl9G;LiTYc4hzomNwZ4Uj4jUpu5^ zQ5+{2Qu>b({wcP;{6%afDF|lauk~85x_^Z#EKfPDkCK%MkAzO}51m35O?tl4<5%Ni zZ1bBworc$6S6UPN1hKeiy?SzxH-}Es^9kWec|NGeLS?4ge z|7!&!hp(rP8B}7{1~5rr#)jC^cg6W!DlKF!P^&R(RJO7#Ie+z+D0`p}1{`R%A@jIc zTi=$Y*Fa668L0%(mJ2Q6;?Wc_aHH-`$(vuIEY_{hBCY-((yXtmb9B{dZer!r1tD6A zRL?!#YYw1RVF7}LsZR25%AmW7V7sw8;9V>kn%55G&}y<~f@qEEg}=%z$aa!Cg(1j~ z+i%iS?uit)J_t!JJ=JPUcFdWm(XYA*aZ0Xx3cWn8V<+bq$DENf5L0ao`8~5if2A7N zE>Fu<8#H|PAiG%OT9&e~0>`7q_Rf-R4X1Dh3M}CBt2sJUU+D*^(*r7Tr_8$YN}Ng; zp1JDXIV8p;)TQOJ-86D%wN88wZ94`JXVx2>dd}~11F4O1JZ6or#32lk^9cG8p?xK1 znGH9OWzGuYX4NW8uM~jn$Lzr>H|P3CyV=@)B%YE5jVpM6Y4;a69%1Q0ao+XnV74l< zy@jyuLm5y~HDI&tOZ~xqC&v7@o&Wd5HIVuX~YtP1q}*Ktz3)a zx^++JI?MJOnTE1=s7r;xt=5ZAMYlq8se*hB0N}|g=)n`VliJKcQtWwi?$pg5D=*4u zz63ZesTFnagkq0_m)LJNVpT7=aS0ipDk15Gcr%=NGPlnp8GlGHzU@09oPvyVkvqhv9U-7sZBw z6?N>?Cf2*@dm&}=6BzD{vAH~1Jw2oH{?oG1z;z)kyOVK*v!R5iQ{fxSdYp=amKvFy|m;3@Y!TZwz)L{E{dvqjUs9!cOv-ifIj#N8;w@HKUV6t4*MqC3vd` zi!p&;dL_?az2XbVnVuWW`auu|QRoRsSFS=4E*w&iB6)vtW`cj10dUA!*a=B_AZ)=$wwT}l6=;1j480P@qI!-qYZE{d-!K|j zPL;s_oKc{+XpkTVO}-)vf^(}c|Li6?5=8@rm%vXOFNl`|AODk9#~RBl`)9l5-&4OB zG3o`D%V0xo0(u3OZ|w5xEQ7r371&mLG5UNMXaodkM{RgT|AQ%dO7ryo>5oVoz(@Yg zuju4K8Ck6LRH^a=QuEAEer6_deo?c?)!pyMtH%1n9ZSKPjqM}z$btcFMe0^?N?ptt zL(EOB^@U7_+WC3@=oJJ5nUC67Q=mXWEv4qeC*{|(?@Gdi-=xIk=sZkni6T=iuX zdtpD>S{3d0rSDAI_(D*rvhZ2O0>UBT2d**+ujnOjcbV@v^;Q)-*%otS)F^FgD_5n)GyjiU*VTD(~hv_SK$#xw_>7hYSH6u*^- z;^#b>a4z;6WvSWP9|_W+iQr{u*P=Mt&8KZ7V+M?b%dLgWeOrgqW?}>E6N|bcF%@4* zAZz~{ONg*=`h>Nx?wpVir;?tN%{HFjhLVDA#F0G5gtlv2Q=+^#76an6#Y&+7M^NNr z<;r^7YDxQ7y^A?v_{JPr(Ge*Q%!^smN@HmvR7RG~RuW>catgiN4KxQXM|)7?X#OQe zrBk_rwUsv{7{KHf{9dco<=OhOz#lPl)&g$HVqdHr;Q2|0%*wJ9P_VpXw#=N0SG!R! z-A~Gb-YYCv2FZTm7*Sf|qag{d^D=5(+jzb|qL}7sFsf~GTsN^!t2aggigI!mm^7#1 z*wqvtko80~(L95I$6dfCy*Z~NAlR>L{kFfie|p$x&Pr@Kvrmdu&zh|(l%>@`zNtJ@ zo3+;!nV{g#Xtv;aJ}PillE|tT?$n@04|238sA-$5Ee`t3O(io9ZXP0Yb|8z>0sbGc zz`{xwlHibUWS-@Z`Bw@BBZvsCa`1pE{0wl5lR!=U>waWDnSEc@O=ZG;Z}26psw{X~|tIS>x1BT$qnMjsGh!}epx zY=sV**jNUUk*wNHXb%PYv#^{taCG@!($>;ZwT4~5W$U4f!3`6exACIXs|ul%xVQaX z&Guc*U_U67dLqqWpu!hkz}2M3@3Xa{!bnIiK(i*Mt2FG;(Ff z2yVWshPJRhcd_*M!VMGTBTMPu3#*v>v0FWKQ#&_5cqEsoB|2@aHz)qlQj-sI3UBaz zpU#!p5r5i2wy0BB<`K+77+ZXTSj#KXn$IioT-+2f0E=BI%X7(&Dtz>g89|=Eyc+-p z+w1A7%=3ePKx;#Hg-4m$IL!~+>A69gq67aknc?)Bc8FVU>OsJ^`{m&$zkT%xg7$OS ziw!LV#`rHn7XK9?(ogTFf>UcC+VKz>|81Gl00EOdk2Ul_Txq6hhfLmU>`T zWtQ3}T>GtC9sE>GBEg=AX=|Yi3O}y-b#>-O4Ueb;LVROs;tL!Y;ODe|#w0G@yOa*F zHz7$4y%lwAaK6<0=cW5+0(#|I&HW&Fu&HA7mR6GS`ug%r{_*Dr%0yPYK1-oadVAV5 zg*NfGiZ4A*?dW@c{nEKRn_N{m1Ww!9;&Zs(z271+H7ik-C;Q-`m5t-EuKw4L1LSpK zt~%G^Qm&AG8h&cX_}DNIZgcd~=;$rdgVu$XsPQRePu@k|-Rhp6G65>0V5o@)%?$7# z+OqjaOz>x5zq@bC=8x!!-z}_gdduE|?(U|luo8pQ(7AG};D?>X7ak`V$fEDyyi`}O zbtjJrOQh%+$_f*f{Av;%voAt8<^B}`tF&$qesV@4Rj*#(_NnzqC294)3ALpYTj4exgF?nb)Rn z+b|V{1XdXCVBw`>_u^7Tcp^;I!uk)R_i(b`__>cav$pTA52kEoCm4hey<3^NFrjf> z_NiW(OwLc6B--lVd(rqX*z9Tzqab;Sj~o2xl5s8bLB3RLPp@iou2UBuj3?<&#_$mc zady%lrJwQ&{C#lw`m#zcUXO@nVLo!!U6Cn_`D@IQ&0g9|s%R8C4J{}AZpB1dQsNv} zKhEpkQs9>;Y#Pt@jEqYCLqBX=p)HnoE+aIn{R#(=4;yQ^!O{W%tdTc1I2UkmA~!-P zIDkSt!BXIfn;;6Xc(|1fA|Q+Ej=-Z~CC{SWQDFLHMd^cH*>(c+3;*A@+X{Y*uKwnk z8Qt&8%hcQi6iu-JM^!5+$&Kp;XgIJNKzH&{b4*2F8N&tbCBNGJv8SuMDLAmK&#&8( z5dFj-jiy**5p#o3?8f(0Xk!*_;S^JuxkY`iAO9XCalO1)=NMS#H~EZ>k3cO>s(2eB z3!1`#GzKJg%<-?Tdb*WOk}7?hP8Z58NofPlK(_DkEK=$lfZFA5_whAL^>1LFLmF-vzzqUvjAneeDl`Dic(gn5|kQ+r7 zQX+D7E+(tOK6-@&-i*i4wX7jz8Dr1d{{o!-J$)_Vi*)KuF2=M$ji=}sb-`=GE4Scu zj3Ij09&n*PKKRBOwb+EB1@AfgQP}-Q8qKFm7~V4=C27_7cGS|AC6>f`an z?3msB-o1F}rH)xFvTkPYOQKfEcf|fY$T93W>E&0ugNFy2eh;ur@J_$);lzfCRT<7n z)y$@2^qGsOic9Da(m2!=JEkyRGhquS;K?x?h&>ngZ}07%)?J+ut(JUAUDh~}FuHkZ zrfh2F0m!oYPPoMY^W%^>wm_>++d@Zn`%bXV!=ToA_I~Z}GZg;vnc>nI@Lv79zlgxY zM~J)WnXR?AJV)jneKdE?i*Jai=ySsn)2qn5+{jh?97Cl@S?MHBB~L4!3dy+h**fB= zM4s`Ib`{IUzHRycy2t?3WcwxH5^u0Lo%)C5z{Qp!=Pr3zf)-=ocrmLTwwc|Fx}3}C ziyLvso%qz(yu>2nb=EEbD3e%UtPdIoUi&2u)FAPx@3$docd`yNTcueN7Q@A|QSw;b z{^Y#!W;<5qL*Q;}hR(0%H4eK62$CTyk6c$Q5_$|-Cy~+#X z`uYN5reBuJ)D;8irhWR_apA76BClj)Kfkz^P#6@nmdhFz$ZKCP`1lmvIxVM9_lnDz z8z{Z20uSDK-IpI3mXHG%ZIoOF8aV>Xni21e{o>T&FLm)CR+*S`WKI5i+OdtZ+o zqj_3`|Eya9LiKAa>XTI>KSkLEvF=~=i``z!6zATnZeRQ&||Kxkl zM_bv0A2BXIfnK!$y{hT7tlHOVUl9<^kT*W~62mm4DNIXE!bFN)!Awbza{n1&wE1Av z3^J@9kO$9T?&ZKB@}RIuwhF{AZuur(( z@!SjV8;Tlwd`UDcO00Gmgr$OR0*8SI5BcVISyR!^@6X@Yc&KmN`&Zo2zJ>F&LX3gi zYur|Lj2dZMh}p2~UmyIzgPBe;bh+s7CBG=CEc}gcV$(Us_KbwclE2~{-zeUhsj-?R z>$InR>7@m@wpAt7bT5j%*BOOJe1>xIVeBb(DlTqbPkeHG^$#4CaDbv#fz1g*F|yi! zvSV^``V?RZgg0sh*e$`jn>2A+HsnK7uV8W2}JDUpbTgg`|5Wa5iZ~7 zHS4fVlyGWwizOXDb>7<|PwqF%Oni)+yaebr#t7Q3=>O5&m&ZfBzWq;Q?8+43970D$ z$#xP#W>TnRCmqVDjwso)#bDZqEG0|!P)JPK*BMz$GT9OngY4T_#tgHV=N`V_?{m)c zeO|BUkKgio{Nv>_w-|IO%fJ}3EKp!B4Y-QcUZgNy4JqJMt z4F$o^1&%uTi>ELHZcB*Wf_PNjw&WfN0Oa313nyNVT>RhhLQ(=`w_YR@$@yis-2qT( z+xrpQ_Iw1ly`G2L9*_REx3k?$ux$I{nEyrpmJu-ac#<2M*O@{1rm0bygbF-Z>oe7P zrn!17&1=y*6%gr|p{@+q3fjCzoh`(l7h8yjPsMEAA_{@5W?#iL6wFhNRn{U`#n~%< z6}ajbMQ*oyk96*yI?^fW7EzH)Fk zNLZjOJbx?u@RbLO5!jLvxBvc;gum?4csh2=Z6lIG-_#?PsG-O`%Kmk z*oV~AvRqM!k2n%}v4=H(irSZ+!+3p^6d=dQFA0sH2CI)tV9`TE&g?nO6>O3YElbO^ z3pcCBDn@^=HeCDD>tyWW=sO<@BXFFy^i%U$zxhWpt1aDC&--K(t%#uqs1OBr$n@~R zGJ@&Rrn>{G%!?xRL&lL=R?HBa!{eVV8R9D=FRirlsEWi;QS00oi(RnDImCCer>yxd zZTgJ(Z%?xM3@zJ~L_ZjKWbUV_P+WWBHT6#H$$q{-_FuHWg-_wsBqKqDbFCXxr}K!K z5p;;wnX>+w5;Dr7yu47<6wzOhdVgU|t3Ho{CVE#Xuy9riDoGVVB|de`PyS@BnK3Hp zhgh)g0Rp&04q!+wGLQF^woTx4vz5|>!uN)iFJvAZi>g6Y%*+TlogRrvCs zo93zQZG}v!U96*um~-<))*sUK&hb?oBLw=~MV{k@*6ZU4Q!g*8K01X#hP>UK;gBcr zc|{FZ6Yp*;;g{BA5Wt2~M+Sw(2~IgU@2B4Dcj>W_`Ryo`=~C9qv3l*nQ8l6+4GqRS zyPMDY!tZbegoU*F6U6hVrK=bu{#uBmTF{e<2d52g9}J$3hD%6zOQm@@uAARlRaiJ8 zb=M9tnK#QSW_d+YYqq!q>{8@o9%!3_Z1~>!`vR1bVL$ocnk%~$-aNdm0+(3oWPI4* zsnn#z_&;gf^om@ySlbC}my_4-A12=n{bLBU^Mqu{V2~}q##ltHtIqR#;q~!vNPcZM zjU_0520d>q*CKgI<-zq9*K(V|VWL$->R?;upQx5#KH*(h%Q$VnwVIm3GnCM5)D~6K zpog?t0*H)v%N!Epd-63=)umZK2Oyc)yrcO3oVR6PW_E{P%WfrcLgTq1m6Gt!AR}A?8O5ClvT;K?;GO}P>AVz!#Hve8P|V@1N76k z8K~9C_$f!&zm$w=$ntwFO8%TzA#)I})me^+`RQObYW|+&jJM#z=s!4tO)!*t&h`9n zj5~dCmx5wUj|WkN7kU~R{^pdy@>xuS8sM<*;^FE0xTuT(Y7tme(0F3$VWxf0KO&a8Q16ypEg(m|Cze;K`VLlL-Hd9Xn{6< znEqw^&0L&i1g$u<0WE1jn+c)aH9Qf5J=vGplH3LoCOl<&PR?U5z^Y-@f1s}Lg=!Jhx1%&>cC*D zVbPeBSMgX~*CWnd(>)f_mYaQH{A}<)j-opSVW!T`1XPCudd;?eEVz5@N7o~3;_Dg5 zL-a0ZaJ~eH>968^53HOC&U2Ef1D~;V&%o^PsYsvJYAd&t*U5L@1!Vr%DoB5FS`Ktr ze9S+)rKh{nlhqfqz7ymdgVehmck>9P@^R2a!-MeT5{tw)f{ox0NGph)ohA-0znS~$ zpHwJ`>)=o#m4xJc_P@x4|DX98X1dD{wkR4jl;senM9DK_zWCdd|Nq`ia$H`gLq~=~ zT|&BD&@r8Qmgc|!(Z9458}c-r)kkWg7@+1UpQcm0jB>DsnI>yaj(QxkeT&-r>eW1D zGARAt9J%|Ugt|>0!H^WKmo`gmxXlTOdM7$I=6kGgdE)sNE()q$@_pajvYMphdgJ#sFb!; zhNfN#_1ClyVcWZ;ZNJZJy5~of%vlQSTmZdyW`1R?@3z}@IpW}OX9X%?$FK7A8|)jdDy zL%+SE1%Wg*kGmE?XMfDGBsjAo92)HAbtNRhE;JAoJ!re&jm?2j55ix)G|0#P8rq= z7bu!b$71J$(-9Br1Ew?wxRbM|?{|skm>H6e()y-r3(RHdcW3>xlr7BNPO_OV@dF-i zoXu=M5WSZARiaBi$0Lz(i!yZR5!7cdU-Q{8#r|U93p+i0L*Qz`*MEL1n!n*(yRHc` zU4&Qjlan{}dVe04!OJ!BAnPqupdlb5vRmme~KTR52ZjSUdfT4UF&U?Cpz>f`0t?(LQzHY&kE) z1#4C4A$2%ejI`l~&5Fz`E@%|wEN53}j*2bAf1A*v1P3mS-^2b8L03%UyOONX!FD&m zlGc0b+2gCbYTxfS=ho(O}yA&@T1VC|l-V@4U829R{Kny~{)# zT{+!Wpr@yFOq}niL+x=oZXQc%^xwxraI+`f{?Pd0b4zUrRv^? zy{|NJ7sTwp-s$oO)@GaI7nwu#cYOf2Pi)VXM_(`Nu$G0NrbMMm6hbd&PX75@e^O~* zcdcw{WrdOjA4JKY+NTmDdck17?{X*NP?VBO&2%lA3uC%X__8KVU7Dv+>kLVW?!}=R z9B2z~3^QFu`+khv5x)lu7hQ-nmz~r&TP_1h4mFB=6_XtoSw3vlBF1?G90qAL>won} zBpzf|JC0x)_@ARhB1Siw5{1*sCi?E1kKA~x6nJBQ;66x0u<>4F=#CrdNQkMa>{9YI z=!db^mXBfa$_Fnctq8BT4&Gg{gM@7)9!Z2jJG3#7v^3<1TJsX)+Hp+sv8=;beu`Db zi4~wq#*goStSZ_Z<%cEvLU(ALz%*QsILL}j)#&4g8Tq15prC4llExw_W&k@p_}8zg zUBQ)TeM2!@<`f4~J@D}?mdBWQ=Wk)jCKQhRZ2UTzzP*dfJ2*H5lo zkV&gImq2&%IT+N_8;ZFeFxjC`w!s99g>(mU4F}9E%xAI}81pnXjlENp*j!O?U8-%c z^~1+UtKyj^4ssCHP|KEQ$gn@;;bHM2d{Rw)bH??lzTLLmiy`zsO4el#P|xjiwSF(4 zU-vtF0X4@QvFhi8bYxn;KLB_9#t$1A2mMWEV|Go8^=MYQAM}{amzEb&NK+S8U^j?& zqAoZnLR3+Io#Bbg^5EKVbWKG`O5KZ`h?ndFeYTeA3LRNDX@0q_yFGfm912~6jd+{K!&s9->v^PMf_qBDbf)pD6X>R-n{}A*Dz-6OFG_EY+WXVa?YCp z&wNFFeEn60OiOqBE%IGu2i&u|8xY5k+{l9%NU5nTG9GkZE(FnV->XGcMsghafTAFi z<$=?+{Lb#_r^OQ!TQvGuW0wltjJm5I*~eZqUILefbl^FB)55j%ZIvpF5np6-t3Cqd{1nFbGi0q5zdG=J+zKzPk{4&%eRoXh$Y`& z*Px_8Gr0V3n!*m4vsaEmR1uuTalC^FW%&;zCBU;X`FL?mN6!y>w`9$Slu6WDY|QO` z(17>u8TeACGwIOju;<|b%)W z1jU512_*T-eSPJf<)Zz*qutuAfDl4|NIE)M;_1=^Z)4c+ zn1%qr%aFVV#I(OKJ}~sP0P!Yx3ES&X%x7D%AWfHL*eY*Yv!squ(h=qmo1QdYkrU~9 zxOk4U&HqIcPgFk)XNJ>ch0lLh!L^H_$YN7~o&5u2ye!n=vwN4DpcrfTs0}6uq!w&M z%RbaWK=We>Y%6H9$Ior0`Of`4Y!tzs>#FAEDY~Hgrs{Q7g=@O&g)2G`RT<9eWZ^^1 zrfH$fE2Mr%OerA?DZBTKkhVuEKdg0XrItjcr`kfKWB;)ru23%@jmpY+&3C4n?(R28 zA+%b#s|~}#Y`yLuTurx!O1eRo@DztHl%%8WGq1yb1qi%T>$$3EYSa$O-ln-z6kxGEpNWih8YjkVXu}3kP=a> zU~?oib678MzdcNd5u1@O-r`kx7BT&^;NGSzJYugXT`s*=tiL67DFfCmoy8$397DFDj7F-YCT*Lo_^Ys?0VH&EV2vm3TI=#4>$3H!% zuzoQQcCe`#g|t&XWEiQ#(jG z@IU2Gx>A+BF=#uG)Ys3whp{FIv&@{x4Dyu)ajtYMV;FsYuhyH{^pL&SVI{~ zB$X!yu60fgU{)NBaut1D4u8s5`Q-Wv)`74|jjs)_TcHQo?p3fS{kVI_#Qu{j4=0ty z+5i3Ia?GiR8(!33L^<1jq;E?@S&5d89>{_1+B=SRKuB1Z#o8s)i0*rQ_$Z)dFxHS8 z8r7dvqdBuNRjPQrQ%?1;S}0QO<;dDZ!uWBZ<+n^Ok8$*#kL>Rx_G#*bILavs>n}(F zwJQKrEKtoNF9 z?S#Z{>CctivAvjCDd=*2Z-u@u`{4+YkPtniku7#%wvmW0>QJ~yJkvvV0h zXVbLVhWvQR3Q�Y=4OyCWWl;R|%>0f#|LPJC>J;P7Tg>7-o-Zl4$}z7bCfb(9(V} zFJx+8BS*fb@uiRHc^DNm;D1y<^3P@^WN&(2>Z)IqW1xFZI5?;F^6>$Uaa!@+@80ah1V6;=U`)0IT6FY_@;zW4-i&iSyLWBE+%c}#m78N~FUv0V z&Xf*(1L`??aGsf3vo)!sTaJ$Q$hTFMKl8*p<*|Dq$toO`?HL>;!&GLh)FPz#d8wiE z!Q@(!lL{im)-f62h`kj}6&@lOWc_av5ffZ87X{`djxQ~xdX$MY?ek()3aCFohK zdO#WL02K3eUjls8(4VNUHv5uE!PlUMH=BKh2hBL@M-ZkT_`IPVIBk#gib1}YeTc5-=eNx_Hx_N5`EIhXKSq3Z6oFC>wZvA$V zN|`DB1n{iC`{iwL<28_Vp}7C3ni7%73n<#3DE`E+^~^nhon3GcfvDpDHu7tLmrWGz z6xH+yEDwCykTCZ-UBj;_3?Bd6>tb$5vImFV4R1yG8b0yEOh-DZ!MVxBL#$X?nP1Fr zr3M13>i;@i+E=iD!u2t0(O(M8)B}7s49Ukaa3AU1!CjEDrU6^LmgP|p(Y5HXlaE$p z&193QJ7L;ry|r3Z_ZAWnL`49X7BW>yBe=W!CdmnE8RMT<`s%DGq5|iVC zgq320LvkID2oxB51i$$AVSW^9YCa21J>6sQ&sgpPH+1yHF~Nc8^82q?`WJL1$jf=| z%qj!O`}e-8d8ghUaqI*Iy=m2G+Sw1*qLze(;PihCD+tRb<+uXO!f%?8WZT9QUi{Y=MaFS>(y7yKb$^#t*j_qwH z-y++rDR%sHL?eqH-6uj&gO4^^PHAas3U{Y5r3i>jB?nY{h8|jDKpB#iZd!!%%5}60 zo~o?RD-?Iod@oyi@V`O{iAld{#zKxA+J3$jLWAzATA|AWw~Ow?3tCiRJ=~o@u)kr> zzM8`;rjyy`x6BpAYL|o8v_&}y+pbm%SuTLsa$%;$-bmoJv4?bBXgxrU24;vLym9!d z-esFZ5MycnC%!;@HB~IdG#U1CbJAXo_~2!Liq^BIkfuL#Fae+4e4?EWRmn;%JF%iG zPRoA?^?a}LRjjS{Rb*@8hJSr$798Rhcu+?UV0SzLv-2(U^M#@Qxh^%-ewy$@=yGr0 z9GAKc<;!%=gsLpvvm9lFiq*@cUy-OpF;@zhzC&Z=RfTs?M1k1F0w`y?X&XM7JOWqH z^_{)ox4e>|D;04MzrI7ti23f?FCPSxl&9K^(|I9Tvj9dk63FwxvYTFx9cd04u=T@r zX4W{=t)>PS`6nlCV`5@HJfhiTLz!ag-1J-l38T$yQ3-jGKFc(5Ku3s^o!UMQCmRc; z{3hczJd-+s`xUK8_oPf%gZj&AA=sO15$uP?gh`Rzt?`?$5)$TH2koZ9%QM)Ls5aWq z)z$O`)AW-`y1O6^s%BU0v@NwBD&!X@8VWQVjnGRK;L@k8^^%eMvLonG@}W<~t<~Bq zFT0%TG06PV6lMx+6^IC{tu#rdV&?lZ8kKP@;yk@}sE-#QSpZEl`SOc-gkHuh!#8jx z$;>yZAV$J_ANeYF=*Pzj_kAG(f+oAs$LKDUzUfi}b~G++_Gb_0@Tf%Pv8mEyDj{h{ za~;1KkYe;Q<{8H~TC4~Zfg{OI+uY^g(Z>UBjXpCEs}@0P)BWBM`ipeWLvC2~81ljZ zqKdrInI^MNhjct+9>?&<3MnvJdh+i2@HceKP==tEZ5_M{4cw- z!OmGcAP<*1AaF#EJNbB*bE*UnXRL+?%_$3JD#PujMfESzhc{E_=ND=L{2O&=KTo_E z`h5?8BMoJu0p~UPlJb;>n>z3BkmGTAV@m3{ANB|^VXNpr?EgXP{v`rEMkrwmL*Kv; VaNj@4DSU;TGcY|N@blNqa?2MG&Yap8mk<6!0_M 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

    VnLVDsi zCi4a4yF2cw;bLv77 ze(q`g%1TM;QTEnimeKIjqRQ+aG!1C(Nj-*fsVBaXW67hq=^+C{>|uS1!k_f`>&g*~ zOhM!%)vkmX@!8u-nxy%xtF-?nX5;HwTDDRpv(31^pAXWHf^k|h2YVagT%&`=<6+cnLH6)%C#R%E1tWU>?GyI zJv#mTdm=hnP`-d6Xo*9a&Dq9RQ?=kdSkz~P2v6vVnXV4etdKO6838E-ov^amd!L!( zJq5banF^;&0=yD%Wihm|r*C?+)Gw~MJM_KHOio_*HJK4T{{scjEpb+}!?L1MPqO^Y zzFsQ9c|u)W9NzIL$hd!P>d%%|&b>;~ClDBh5yw7qwv-BKmuTgV=PqEz+;ZazwcGEf zYO5hoPy^W5yw--P>2pbJzD!5i>#r4?MM4BUq@6`&mKfEUMGjd_Jhxsb>-y&2ux~|m zor$q}NNGz)Nc(uU&P?@S*&cS)j%{KOTJM{ATd@|`E>mZtwK%=EGmMQWXyf9}5*uL~ zK&ruDZ;2;_PM-~><5bmZ8#X?XaJoeP00GGFz;&1Pg09`C`*mNe2!PxseO2nZQ`QJ9y}C{N|~-raqnJ zV*cQ1q21v2L)zb&dS1!+=g;y&LMHcscR2pcou4j$)n>pV?x|n;?SXp)&Ocpe;-;u* z7J;#Tz07|1=fsGUW`L!>kI|mXK{|WTA^e9)nAyU!=@o)+f~$%R4Et80#h_w*^+Zny zt_-EWj>{!hnTib=Gp_PeT^H|CNxX``>lFZw^4>iaJ6h!zs27YJW8Ig{rz<#Ra_Bg_ zRJAfe`%Rl+JD)N@B2&FCOk#dw$81!4B;Jx6+OO}`96KuqxWn(ae6W0-kcbA<(Yhd3 z8{++{5p3n(>86Q(7Kv8z&zoCNY)D++yX&kHIm?zh_M3(T^p=0<7!k3Sd6X7veHkp= z#ofGgzCLKhAfJRp-!$Uw;IWkx5lOyS8D?H1ug@xTFg@neOf;CTIGPUN3YAM3%|Ju1 zwF>y$`6!KON3R+-IaAt{q$$#LDuTThggd9w6RSslvvQmj-C?{wZsuL<2w|&{8N8&A<}}q*6k63uD>vzl_0rmPRxEH)jiE z8jIb%E}*rrkJ2KUIx!#`dbx?C(R_UI_eFp<{+9*?nh6BL@9*pX^X;>s0+rbDFbg{j+Nadq2@$?;#+PahJL0Qyzof~ewN zm3k^K7gv{KVmk?Wn&4snw4QDwD+OdHp-3A}WUU{?SQZF3lt7Daq z_*HN4VezQ{58gjKDx4oo-+MAO2DQ7t*PF<-yFWHU_!`ZMob<*76c4@MUdk5#H8>ji zqf({U8i6F{mb%{8-ReMnP4B8I<`jm3K)@jE7Y z6vumyfucJ$2d3W)XXJI%EY__i%Lk;8RheQ(7UtpU35ij)?s^yi^{K7oF1gtxmUXwf zu4XRt(f5O$k$9<(ONHq(t`%@E;cQH?{BUl)^PBBT+sTLn`Me3vuI35{s^zxtm?F3-!GULM{ zp8kapQ+IM|`|Cj{y?wZg9#>GO)aqUS&1_j?I0Nfc#n!ZN$teY+z#r*T(ymeL=4q=g z%H^{M&q6w6Oi>Hal2^z}7EHg`a>@%4E+BN@wC;&RRyF#v*}!>vX-KiQ0rl3KOo85n zH|GcFgHD%|O)CrvO*!5}8nvRY22JQ3iKH|g$HYZumWC5XVw}7i#+n?X@yO1YY?GF1 zGx3;zk6(C|h(4BdWxdH`>9Z5MG1c)vifv(siAURs63IXc=VV=L$cY;avH3%ph;LJH zpL%ia6B!0?Iqu{ZHS;HSXsneU6{bZjgwi1dd(#W|8)x(SH%^cySWU?{Mu#)V=2cnA z>n`(0QS;B4hF28BB{!$O%D9|!^CvNS#v|$?CSyM!oE5M4_PP0i5b31xWJ3Fhv z$^ee11{G__H&8tT?wRntQ{fcNKJ(~{%R}@|iZeiHxSE)kbsFp>bKqVeAT5W=ZS!k= z;&s`60LuXt6Yt?VzAjMRH5=a@khm%`;y!+mw)qj|gT#+Q1-!6Z&ja#T5h)b0YO?!% zBEL5z+xZN<43JMlKdEKQ-Xxy42bUpHl5202a(VqW{>_%$HftFMIA@R1fQHq3ihGBs zdQvLP@iM8om0S;nR3XIQ*<3U$IvC4!Ly1JsvjIypG(!s}16 zyw>oVaAe?+>PK&|>CJQL+kN}~MNSYcoNzEfY)7q=S3X54Bv86N!d>zt0Y9{}z360d z=m7mOF96l&AlsMV-b(Q@Lm#xvgB_^B7u(p*>KW{{9+F|L)r}1Xj?>HZb^iUrt}|Gl zxbYk*Ei0`!fdQ$)g+Fvin?Y)ksoQ(S)hSn_=S3DAjORfcGw_Gb* zuIO#2ER;eD*w~DJ3G8z;DmESZ%K)$&^&9NP#Rcy#)3v>`0xL>9z0_pJK4iQd%5FiJ z82!aFn3_{H^S~m0e@KoMO%LQ+Y^~F6zm)2sjRR)8AARGRR$PI9DGSFi*A9SCP>%Um z%fr9{PW=v)NxziC^q3Ie`pWdEm7$Au5xJ%{GubHO9!pF)eAaGW54hYd5U@f|(wFraE47-+|0%o)kmAg>|4K$js26#P2w$U*VO@?5{fi4ze248|)^)msmCim!U%^uyavnUt*?xr6R z8@^l7XVfV29f8X!JOk*hmvEDds@XpBOmTtO1HLO;FGEo$e=`dWs;P6QOW#Q19;?Kn zR;ko;m?LHayDXlT=Z|-@=hFBjb#>cZHLH2TJy+XRI515B-(j>O^5atFOTI}!7E<_n zBpp0>oR^(^TXfFa!1kb^R`X}@5m25#%w~s?jKO=8?gqttbx$7VAXGyEg~{+vf&__J zLk!wi3IKGfqUWyiKYg)}_sN@3L+X!Bh1*GQE0T=Z{LL5Z;bl%6vBD?3Kx^(V&au@x z+h%rG7I^t4v{{`{ln{FGO)%yvnzHr^ozF7ZX1gISPg*qZuLzX;w;@w!Bx))ZWx0#= z*|qJ6;DSpUv?vu2IZRBx$sX|pheCkJ*JZji@uf=@M~D{4sPtHpIYex3)$%~ka%^9f zU?E{n8TGbNeZY-#F)qTeR~r+V%d~}MMjI^Jj~}@r%U#r`KSf`}mrmN>7L@---w*$o zqk%8tD~9Z}<`elV2f69DHTg1e4)jzajRkEtu8Mdh*y6?A8)8KXWRurQU^sipuC~ik zfwldacIY%yF}Jse+v3kJH>FAUAm$Ncsi?73$~jEim)qntMmYZ)NxzU;TZf}9FzAHH zpoILZjIrs<5bu1j^i0gST*$$|hc|SV;a?YDu4*E!wC`HPmhs(QmYkDU^Wz}bq8*x)u>|J`|{3I)NKgCHj zMUU6cHzZNoMnP*fAq-+7d_uXRVOC{EUY)?L0n6UJXQ5PS0hLBj#@zA&(&x! zIHjzJGD`8gpTrV%dLBT^qwsL1bIm_4txY+)%BLQktr9<9;1^G_`KxNd=?dHIk_bYkf5uRhwVS!cdW^M=9C|baL(L zO>k=y?_1xU0!D#^{)W$zQ8qlfW*146X3v&73u_`cAY+fBj0+N%o_FnC&^#wv}>B z*yY24e_Ai6%&p)HpC5mGcjZ`{kafuv3AQN58($5GEq183Y9wn#HW)(>(=4@XfV_>n zi1XUybIorwkC?ft?Mn8YWCXR@*Ne@>11#vCwJZy(RzJ342i74W#ot%-<&#GdfWTdj zefaR%-h?`k(`d$Lk5WE~0{WnEogpm|ooW&IurtD?YZ+?V;lCUzi`W`1?{3m^4yAk9 zz|qhgHUamz`nbXwew8W7KxS91pif0CUKi%HS}YFofr zPTh)aq|?Dq57LgQ%!Nxfv`xSk>)LaSfzP7wh)z&@m2EqGGefLd%a)2YFc3Q#{v>EY zx-n&tYBwFCw;W_0;Y&JB{_owGLxT5ab6ZJ|XOokGPWIckSat7-tPj{(gN_Lf))H0R zjE+3$MkvxrK8AyXTH5h{yI&s<4T~MAJCs}rAMg&)D&TFzFT;-?c^?mr29TLN;7+=7 zEcDxvnF zv69FQJGy@me&QZ!XVsxU2KedM^{eV54-%uL-N;dLNelb5Z`TG*{{6fAM{s{v3OFYv zzke?X-1s!`g*wfjB9XPDLF8$tbIzPZ{(ibm5ol{o^yKfnic{wZ96|wX`s=qhULO&E zkB5OuN-aZm1SRdw8*BN`1^>hRy*6Xfx@v@(-X1o@e>ziJLEM@;Yzy+|88!O(9_ zm{%F5RCkcIE~45hdnEMlR=I9^$qJO*%maikQuh>#eZ|nx=^77l2gAp8B3xkX4n#nw?Yav8wT?s*(Fi z*^Xc=10g$Z>f9E}JY`&b`3L-VNsZdfUf`yLjEhA;gbH;tfI_7Do6j`h-=#Kg)Oy=u zcmj!*ZEd+@0Ahz7j%_yIL6~F$2#ds46b5YsFkIHmZW}9ol1aTf2eR?`kfC9Ib)Vlr za!!G8k8kO9-j@wYMeANWVx-Z9d#knHVb#sT+U>wm!c{?p7`|ng0MuzKE4OHVlXrXs>?`ML;1NV=_p($(a*1|a}u1Y;K@jw8-VDvW) zw|}@hH(%WE(MT~U>gQDtpvM5^f)8TqcD?8Jvhk%hTV`{fJCZ(|;;8aM*8m1=e0E-&Xr@hPs!7=SFzYxS8FgxsYncG5C zJ)nH5n821Q833aUlEw%#Pns{x45 zy&iV+7c}($RCnd0dD3c1IUkpbjVe9+$Qz?PoG;fqqJwife8B4%v-Ge$HFzjXYQkbr zI?yeP+CgvqxlqQ`RU^+_|M8j&(6D9cFU28KTVAR(Uar#6;)^#wW!^l4OmOedzR0|J zfaJ4ZH&w@vN?y8Culki>Xem~2>SZWHOFar`_O^kL+7S#VvBb`SJ~*&-s0; z;^!qa8MHcB(5`ye>_hNBrlG$iy`rV|W6Y)8ni+-0qV||*V^v~0^<2zVse8E`6f?p0 z_d1$d;LlH&nuXnuQe_(2Ba?JU9rP*2%G-xmXL-eH1qYaA!l-!Cw}KOUUNHZ4Vql|7 zW-U)n3EbSkrI8Q`l-qPNX|Ffw!p(Bf&E${F`3>fKO65Cj3@*fkvMS1vl0JtJgD>s# zZwAiA1M*^>?9n;PeF(zyqIlym&Rbw;jJb(T-`AVIdC+e=T${%?BT0dq=n0R2TR@-A zY5}xOXvoB4m@d<-v2XT7`76fB>CsZSg_K@53aZ4^;n}{ob=aaMKFKG_H}!KhM+%S% z*{;$mZ6;S3*74E4{^ACqZ)wqWYACBSnaemkesZe=GUowy12H>kB(%90=c(*{iej>+ z!5jgtE*j|ma_aCAH72D0j~!8TpdUF7fbN#n&r+hs91l}MK+Gl@pIPr{&W(@1{nGUU z%O`c&;o#ZXCd6?4%t&1WZxJImK_tHce8I$OSs{+3zX}^(+CJ&KaX+O@_3KU*+)`8l+(ELat84aL*V&fw@gt?}Y z)aU0D%OgeIo#Ab5GKZajwi{10@2_s8EKiC1%~crq4e1;5z+?U7L8plu(H)Jck)${I z57|wJ#rVX1(%Re#&#}76H;9QlPp)|v6&7P=qHI*|&Abtpu7}TXzZ%4Qi}?U7MW7$-;BdIFK(OZf(GK|er6;CM>VUPMd6iH$foQ}@`w9z2IS`IT&MVV=a{Z) zwmG21N{ZU946N{JBYB|}SPaJXjpA@E*2C|1i$cJmK({E}&CqY2hx@C}D}(8qDGv|# zI1%j596OlyNu7nS#-wKVvClDADs0tLNmQ9px!!Xul5UmbDkV~;N3p0pGC0lk_>3)a zuC$c`?>QSrbUBEf|G|AYGWRBSV0pr{;~*W#I9!n@@rs7UA}5@$2@_9*-nGf~Yd=#0 zGbrndEc=Rw>3QkB`JCeww^JzwoWY;SN=db~!YM;b1luKe|f70Qzl*t+$m zDxI4Op7lRJ(&APl2Ds=&>Hty<*tmQ9QFcE*Lu9v;B#=Ynb5`(x-H$CvMub-OpeNb$ zl~L5o{vZ1|X9h;IE`I5OJn*j3JJBW)4A_B*NHSoiw0S6F) z<@MNp88(UwYVdICBvlwTx4yRR zPqwOdw)(6^ZUw{WJ6kFtPo%C zj20(nz$Att8-a(PyR0XX?ZG{vQzKM<|ExiM7>*_C2qvsIWAY+fn()`yq>RlD9tzIVD zJ*6c@@tl8i(>#dO_K^xw~qf8Y407@)VA&mV@0uxfPjFCh;)=DAYcWh zN(o2@kuF85lmK>--g|G-g%El`MWuH_fKUX5&;n8tAR*+A8C?79bN9L5cc16ZKbE>k znR7Dc7~}o5cUbEsl%TVI)Z8PvA0r_D`mUxd4^6f3K7 zFE(WG~oR=>#9ZbaA|wZpNqglMfxSc z?w)R!Hg=HitkJ(Aa;S#u0LlPQ?9f}ccn4*pMXX4TYu-rKJDNgNe}ProP{!BI-T81S z3`p|tfw^>NXUTMZl{7JrxRW;I;IwUysHCjG;5%~{eAwwk-2l=TXF#3u=Ad4D=n0WS z?=4&6Scg#-dAv88UOTxR@NA^tpevWxzcZ?Z4ZP*fmQb@ z3lK1DkM&#%{_@l3`>OsavKlC8t*kkFtgIh5{oEfayb)timMxTB36$2|Rl+WndvB9x zXw`7DxI}K;k68^*w>++^JfDuLl#;=Y+_e9NZ-ypH^B-OB?GG!w1GAc3 z&69P%G85}>H%z3K4u^OA2ZgiK9r0fr4u?kD0lIw;JQeykkM0Mzu(laYDC@ZH-q*v| z7do!2gGKcU>UN0p(Q{x&7d}d35&|0BCBH6SFtytMAl;^5RaMQQ6aj_??EvLuuMECcFZI@CQ{1)c7c0^S8qpl9Ff;W5UepEj1qvXUC%NhnSg!uS|bp039b z{1nVE6Ea|ifz%lAw*A93Z~B4M7CHh_At%K;EA6ocnDiB>-sep3xR1$vwP<$uR9o;- zqyD(@(tE7aPznvlu_WsGh$%Uxi{w5ojKssExjwy75NQPNPZ;Pc@|VJS;|#rTVGe;HZ-*9O z6cnq4P-AcRrA5=ASC)NW;Z|btvm58Jv3T9Lh(tlH-2xN<=#_p)JjnRut4kZh)#Fbd zmo#R!<<$?bolSv8ReCq1pE=zYefDZrsjLC%9h6oyaz}}%+b&RbBL&9ZD*Q0D&LGE$ z!<{W41J`0WUEqQ%xPpZs7{HQ8?&4Aa&@j<0q=@?YZu={{{+DRwPNc1)Oz|YQlC+^* z++6Fbh@1+tW7a`CG`mhP$G&aaR9oF5rV>wRn_lIg9+l>A>C~}913qVB<-PvDRInE} z5W@9FRcETF3r8~;^0x0+xRzGma_v8EORl4b0RRgVZC7o*V$_)=+iap-zOd+*K&-=M z7hJRR7yC-Cty@NK2%oqiWjU;|kIYefle(UTb$5O6^U)hV7=$-a*j$VJcff{}()j&|;|wP29jDB#Y);ay!zp6fMtuqnQjms5BP>yE99 z<4!aUd8u78+3XuO?+=;Ho9peEHaCglttFgd_^7BpdXt1TttBT|5xJ7Ir=U8SZnmve zqY@hy*m8ObBKkk4ukVoJU_4bbMbFcf7zfnctXs+pDm<(DPu_`b7IH#2JoGxuxSG&P zr`9=%U!U8rnVC~Zh#a_Lx79-sCIR)jFGT*HlV}i0nb}WXPhmCTI zrs{wM^0WKm_@8J_6T@6Ksyoc_c(Q=bgb(T5G)&H^>J2GeRzW;}y0>_tqO9%1m19>e zhJB~E+K^UooJ6|?p*^N5z5lQnp6z$xc5|tp^gy1HZd^OUw_&yEc3*mGGPgly_wXDg zG^4OIt#?dbQS8=c@rk<)6CLIGGI~L}#Ws2uc~j-z1Z_~*1SO_co+r~%Mbe!hdi`|U zK(im=`^1LL)l#+SGkR}Ko=@?~>CGee)zonXD-1|R$&4E>YNBI9dELdoAoGmB%-{5i z`txvPNlA2l6m>_oK6aHM_dq2F;}O?sAm6or}0MZq;Uz5zXt(^$Rmo9_Txh&d42Ep z;Mv+a7W28gu&W-vGI6b|PVdEj^(~jaiV3wZ~j(-glBvj#?#U*B`)lo9|cp z#4lyqpVHGET#_Os>+-s)6J$eux|4)~h^l7?-+s}Y`eJX8%;F{FVN;u9;Du-`#xi$C zwpGq{9&gLPJ8RY0L13C8Evv2*Se4+{L>%%km~krZX8pQ6fR|tTa2UCdM`4uTWI)%XNt9bx?Ky{F|DPeo zg{dPRS@D0Cfp5T8+daKL@Nfi;Mq)S9h|M!%I;bM0+O3y*S~f5{KWrQ1!rhBz1McR` zgj1tQ^DY#e2uAU8**TrlOu`$@WSZh+igw=^sjd@z`1RB>j6ItW%I(twdwz|36-k7j ztG)z2%8GN;e0RkOW5(~nisJ?|QKOFEP2n}JtV_fw<3v*1<(rZcv8b9g?zW_O`S?h# zFWzV|2A7=qw&U#yZhGlY-Y?d6P39;*zB;YLJWcuyOCLRS@Pzi7+^H#eUyxn$#Q1ajVC2bq=KZo5k}EfrU(*Dn+F6T%&IeM_gb?%VIwh-QxNK6QP0+ zB1B*G2}}}d@8sf|C3?*_z<~46TPB@7nqYw%_eBMD91S^4;(0K-jFB-VNAf{u8GaM2 z-vRR0iiT;jBRTD(P3~{3;~OFenV-XXgwT#jDRQcBaM|;Sw;;e|Q?1@AR_>IE^KBW% zfpOC3NRP=P*1)HBN^0pX}jKtz}RbWKBBm!3s-|Q7a^cLy&HfsyG@m9E7(V9YYKHz45ymC zppLJ* zJ>L@DT{Hb@+Yf26i*@tux|9M^^v*)R75rH(+DnnN8l0oSF353XxFBraFh)|aAzb?8 zBl^qNjil?;lTxv468z$NL0nIh26_d*1aj2zH=Yuy6Mp8_8acXk3TFiAW;Eeqw{qpm zQcXJ!)BQS={Ou|rpvXqK@>OG%C8NSlrx)*(ZEU?y9L~+H5X?$eLF?dN1MLPa-Ow5!wraIb)K~!=H6M+NhKA#wz*zrq1JF1^TtJizvrNoNi)%tf!<|=YQ&XX5w7|3kX12XNcEo*wVX1cl7c9A9t|P!H)GSSJbA*MxVHv zRdNgj1r<4=$1Q~Ho|dhT1u5DZ6ZptA>6(1P#y;cDYOGjd-Jp`Zns0UD6)OcRM%LzoRio2*BWNC*L#L?)O9=KD&43%gn{Af)}A~TT(UlmBi+-mDsoQe@Zeat zID-0Ziaw>7C@63bfeRUAvg>o&$eYbA>-4r>v>9_-Vnq?#_+Te`mo2~*9W_=`=BncI zN#t4I4;hOOuT8En*JZa%f-eqg`nn_F+SPKVv*m1V=HaG+p^F^$42#;%>IKYdocTE{ z!97%m`Ih(RWrq(a6&>Vl4${lCXFKtze=UYLtv-PvQ2vUyUVqwA_DLQccZ$!2NH8%j9FyTw>nj~B~j1^vk8rzY!!ur5VXdGJr=B9@AH z@))@|20yj4*sMfbj8sZBB!0n}xYjY_xCV1gpTas%9{SSJGUi|V^V7K8kfis-fQY}F zd1}37Bj)XggLx9qx_(I4*`HtUon54Ox0d@5LVBl3ok2_m8s)$fqR`*5W8tctTpa2p zd@dv3Jr7wnm~*;HW!ZPot0rQ!y`O+;SDc@(KSgvwR}a3&>{s;7vu)+!SOy{tx=UG6 zX-{{5Y2U&{#2$ZLq;HhCW!XqVj?Xv$94U7}E;g{|&`^(83N3U8+1rBeGQ_fOWw!Py z@ft)=Dfiy9&=$9P{&VXNuOY$9;(R=-?8SR5!4G;r>e%LO1b3-ugv6h`W^gTzbxxSk z1T5eyjr0X?b-YgbXf=T-OC}H0KYUfL)6y5(IP~G7Cy^z3EftTpQ!|JfYg+4F0(m+) zI-RLfw@1()SEKODYIpS`i`7=QmeVYc^;eaI@BCRx_$*IcQM~eNt>0U6h#3ia-@=Q! z6cbK;T|_Wh`B=@TE}Lc;e0^$m^I}KnnL;a%%%i!Y>^G@%L85iCiw{YL+<S^C!~2 z@91|2k2LV1gcc#`>A}Tn=qlu6yrLH*X<~EsJJlPJ9+jEo-5UBy#gL)E(U(+u7GV9L}p&{(~ zUj6$BpSbPJ!_?4dmhAa~h|91vh;pI({Ml8~&Wh2h`IHs?yx~N~WBkB~wbU%K+_M6; z&Vja^$bNIgCB}f_H;dFipqFpfw^b{M)27T=i;R#R3tbnIFx^MguIMAWCv;;nzp8Zi zXMo?nh~!onNGLlh2vxNMT_BZJhpdm-(HhIHQb0t@I%Jn5T;aGrl=(IyKM~?fLCLrH z^z|@b*RSvy7t4apF0MHU;5X16lhD@JP2bzT&LhQN>XA2CA`o`=4eH-Ptv!&iUC5lQ zTc4$smQ%moLIHPJRJ>YUazSBS)*`H>i(|p*dT-`F-t3?*S1VACgGZg`>r(|r`8auM zFp$;^_mq?3oUrBb<|v6IvL{kzy_`__*p5G`b$|p zdArvIe8^GGTt#A0q#Nbalj_l(v<+3YMMGh(nH%iko~i!iyFmpS@o6UvVU^TiBSxjU zcjn~p-q7wffbQ#}iOjt03{AUh-o=s61-DnVso_ICXdD~4lqPobD`D7{5*DX1cXP;3 zAyq+{Bq-Vnk%9sDUk{_A@u@$dcba{?#$DVFX0u_3PLD@;my}+vork5?Ceo}1FT39a zAt$)xgGM30`As@=4;G^mJ3I|hsuVc&Sl^Lp+Uh=e!(L-RL6wd!LNPB78wQ|O_v$C! z<%@9e9&luyvT8Qp2u)eFG|6CUx4yT3q(5%7WH^DoVk?I~FNb|sgyQD27fUDlJ|Ug7 z-O4hu01yFLqiZw}1AH;CPyG4`EYzkqD6%ng48`?SCGS5CTqEs}q?5ePmlHg5Y&s!8_m@HwU1=ITIJJ8l_YzB6oPeq@)^8Y1wPrKhJ{1 zCNzDnkgFBdh)GK8IpR~RP=gbm07x&!X0*iuh1QR1n?Y>^Bk!7^K}XpRxz{mV56u_YUeyKTnTvI zWOQgYFzwDH=B*DUI_%$-BdqU(cB{7&PIFtWyDO=fmMiIqr16A7J~o;83h4d-srdQb zZ~~xDt}oIhn{RJ!Qln>7U8C68*eLcwFWz42A9XWmQVMmc^cL=qnl>#@DPFpoRi!2! zx%8==K|;i|V6;IGCtRoUJpnzk?nKS^cM~-jiDszzSBXCJB)^L~!e;HiwyogLtu(je z;OS@97ztFX*aetJ?>VMmP*?-2Hj3(nSRQlLg0Z6DvwJE1VUCzio);LFT%EbGR|Mk9 zp7k&Q^7G7#odhR-mcOIBN6~-hTqmtA{#j%725j1OYD^EMw$K*+W=ghA)avJ=`86iijf=4t4H+M)l*t~0D^%KCp z%R(zx?kCs9@eB?V6|Vz<((<%VyTb%&NG8;}8t%G^Y&piYuk&GKN@tUSGV<5RH7{4( z0x&kI+p~-D*NN(_>f-IC^s^FL$}-z{r)TVIV*+~n8|+}OV-_TvHwL%#u8p>-e_Mf| z0=l!AwA1W*JHeEv7`TK&@N*aQ)m^L5O7oXUzKbDKT3y+F9JUf=YyJ*KEhe zol*tLvP^FeDtv2p(0$~QB}fo9Jhu2;)y?|4J?+Kk^`Yk@vW<6~fkM*QD4bl6Q&-uj zZ``qjvVx~4j>jB(K$8gkZWXZ6o6kbGX=$b!7L)`_Kf6SiECgYJfVh8{30Mm{XQ-Hu z{PCiDynlITJ3w6uBP%p!{c>TVR3J{T#=vc({^6nZ9ZCNrpIF_uNLEO*_Sh3CS$rbN zclD#ji))zS7Y=lXqCg%hCy*uXf+QleYxzlD4L2DgeoE|4_Au}k&ap}|R=`dta4?jr zVY~H!Ef+9tQ0B89Wx#~lGTOd#o`qY{68mB^)~;@+a`;^j!%gv0%&y~PR-~i`Gxl{t zXzxuaVAdvDsH=xk&W8PX8?{QBf1o}x*k_BD=pahYe&wK>XvoN+K{;&#ow1W_z9!=_iE51X9!2i z?q0Q2Tr{ngtAZ)P-EFy=$eKpEo^a2NV) zt8W`f0oe)KdU139H(yQI^#!_s=Rl<0w7IfE1kgmm*#4@Id<)d3r8thqUv=6`FA2y+y3T9Uj%*)EkS>8&RMbEI;2zt~MHf817)S z+KF{ffR#v4F{XFS-8bdIaQeG#v)X$fz{!^b_6PiqojrWMPC(o|8~ZnM{mI!e5T{WI zTg#!vmzTY=1Fr)M;WZ2JCNOoMJfwcMCV!+@T7c8W^a$AE9kqs#jGMj(b>i{QtcQ?~ z=wCvXhk`mQ{&u#r`zGiO{K2pA;L9=g)IOT;+P?jFXA1P_TuDl+0&flAWEC|h9*~Z5 z!6P z@a=D)E3a8)z8lRINRWZPaL>NW9VPiIb2)0I^8<6*z&W87jsm4bOcm9=cn710^jS69nfa8mTp1>M&ah2rcK|0L19u^61RXW#nSCzdbecWv8Ic;Kn_B*bL z%z{r8PPp@n3a2p24e(6?_n`;*TKWf~rDYBBNpC0c!bS5Fb>}pkp2D1jKSwiP} zpuF?A<>3_1HgH7D!wz5Tf?n@kTsw7Z8@M)*)}*Y)&t{MRQyIDpDMP<^+#XF6JIRh4 zpQYBbUWV_`&o}SAUj!Dal#uS5;0(;pLrXYi%XJ-OAcfpLFhXpZfv9=ojjv{m+rn)Q zM|_1Anmo*(D@{6AnHZ*K#H@+LPLu85T|l6g2V|hwBjeEXCrq5mWEZ#5rNbCb8630i z3goGj*88*N9BZAsba;Zdz~7udF(BtU30I~F~dh;EhGV28n5-R6M z6POoH??w~P8iJ}seb?Us|NODksfYKSJZx!zPX?GNfkv)qXC>@a7h)`2;*M0;&Ih&v zYJsPMqcfW<^V!4jcOQ`2_Gx43n6~j=5OARr2ajSFZlPts4E@|+dq9uRf8Bb7Fb)}A z$NU_=WUsj=EN~Q?Y^06sjGL3smYo~(QN=N9U@#4m+OBKbIyC~$4K^Ovw?(A*sr{IJ z&Fg7C*yB|DBRMFt9kwfBE#Geq!Ghm$D0HhSEa&4a>9nzlC`_u;V=k;0pFbu`?>zW- z#`8Bzvvt(Eb0^Ecn5QTFNn(<^{bq}1moD|Jf4)loj&^99%Ut^jFxgyE2laH<59{;b z_bM8mkd_g$vn}lnw5*{s#Vd1vCb@~Edn{^$z>2m=Nc~9gN{$M6m4B?L%c3g5*t6`UH~;l@F%#OoZy-OBndu_CoVSBRid{1L`M^_Z2vk=+{D_)r zSbpT-iSZeCA?xc!}9I*M-=cm8tw*w9vX_dOEwuAh#N zh>1m8O4hm`r`s1}A5XKb#>JGj}8H(AJuNHt>y@+jz}( z3EV*zGv+9C?ExVmvgn-cI<08wb{@Tg{#hx(PO8@pS2O=KYhZ_e$N4C8?y6teFgx*? zUhEawFU@!r+HOXVQlYV=R9(_#k;-MWL5rF^i49;tFtR-%CtPDEe^oYGSFH4Ti5P^V zyc`5)YAaD3k|WYz_)YzOa30`9JsnD_K3TAP0@QmSW;pNnf2%cDS4naecD3Dny#!C& zfCU7nikU`1`-9C*M(@SIxb=o|cYNEocWo4RPUvpjbU6#=ZNRyvkI8zp#d*D9j&qZj zsYCq44tNQ-b%qm{PoQ5O$0T8hIsA=V0PloPY#N9I8!OJJl6nIke-xzqe{m(e+<6KBJt0cubveR{E`!A z68Q(@Ni&|@nTpxB+EL35Y+L=z{!%(VGG~2DA1y^MJ451jpaqz9`}$+NzLGnanF!Q` zqb2H9u;&Qo>Du2uWDeQ$C)Cqt+fWY*nQ<~c(xoS`OUj$iVwo#b`sLMweK3raXUFNR zF|e!=28%S;YcMeZ#f3%+?mA`jjq7@6WA;MFAwGv|lfQ4`2$gCj$x{WrN%pCI7WS2M zHZNb{c4VL>3Ix8W>`r&U&bDbM;kSLAvQ^9hvg}?NjZ;QIBHCMHk1S??i(KUorN@P~ zSkvZE)PhQ0bvKD~gI#?@^0c8Wl4$KesANuc?&7aj-pW$w2UhX?hPYDvqudW4N(Yjq zBjBk?_W6r?_JpYhMeD|&5}f@tM;r$trMntjbKCTY1w?OSj#R{$d;G5fupI43VY_TY z*M1ztuOBdpgTmn?=c4&l_H77V87DsP+LP=~V_CPKldp1GCngQ_m^FwP{JjS9PlL!%SVgKK_XGfwUQ*oOC!P5WKRwGJ~~{8ej@To`+0 zyzM!;h=?xXi}P1o8fk>;D|P#+?>?!!t~#5Wqq3KD!CXiBwOeed{w=ofP#VEe_X7cr zuZyvA_GAr>cPkovX_;E@9!B`;Yxu7Fm|Ip4w6M zLdC?j)Bzni&#BjJhQFv9QTa*rw4@2YvVIpvtBaq%dpUF)>cZ+U6&!_HZwhAwCcL@| zMlwN(_EDnnu7aq)IU|~LfJow49fjx3JWr+wmeTUFBph%IAL>lK&_Hl7*z^9^&jq`` zu1PGQbFP=1SO_{bw)~uAM%0He{-o^h<{Rg?x1qqW-Zv4JnJ;k+DEUP;gW`*0%zkNj zvW{@~>Q>topN6J|`7W==sZykcS)rikoUiUcH-)r&Q=b04DRO3t0Q}Q3f8qfm!WPfM z9eyA3q1?4E^z$h9(|mzEHG%#dzbgVGJLC?WDJ{=A-l^ zT=jbMEOB7Ir{!lQMx&3n5w1wxG5Bc|lOJc>n#u0&IOYMn{=&nP%p`ved)&qq(oF_S z>WB}Kzde3e`CrjdBhCKyhAEesA29i##^ztKP8!8WWwpB;pOflp_!|Rt$T+UhDvi1c zW7B<}|6fx6ZQS7odEeJ==}u6fRFTtepww492$WiI{^su4#kf}AZvDXW1!lOp#`guY zhBULx!GrYRc7f*+zVI}-!zxw?pfYuQ4i%1PIX1(vld;UjGQ>CIPjBQfw`;xSRhfA7 zX~1N37&k(`)E8{I7J~~qmtYS{Pp=r#D8F#ROvV2Fiu6?>%Id&@*k{-JOLvi2zt>U; zy;eGMTAG3UPen_t?`asr>xHxCa2zVP2wOicmGva{#>}~ejq5_WC2ns_oE0rMX2+j0 zU_CdE6z{1z`tM_+M?mR#mm4)LBx+^~BOb4STwxUFO4zS?tZs!_CiPR4{E(kD= zp#pu#>P3DD4;a$0Mm&1sd&k5|m*1V_T|hl}4HDjFd(j$|hEpUS8cOoBh{hha!EwR; zVhN1v0#$|@WG*%Rh@iJsZ-#C$si}E{EdC%x*~!4$Y-2#b1k=*S?aUqfwIG@5M(}?U zHPUn`tx;XN-SKQ4KC&O}9p-si5)v8FF&Q#Lfe{xpDiQPV<@LhINb)^ke^b`~?&;29 z!!^dM&6l0!J!p*^-|uBvQ1VTtDi?x0hFJylTv!RyBL=0sBs0u(d7bgOVDb&=oEPn92B< zAb7Ca(DO=)bJsw$e8s_e z*u?zPjSbXc212Kpp+Fq+Ks!{%Ls>}zD_@sei~C1PFb%u{DkJm@y94Oor9kK7ITZZr z0YLH(Q}*Bd-5*S&cu+pI59*Q<#f2sArAF%{L~{2QBz4jVFU+-xI`YoQcd zD6zPDz`#WtE5Aj{yYrvtGS3R=EEDdw)tM%u3g&Lr4L3aPGj}k+X|IGiVLH{*R>caD zwuGQlS;@wPvBkJL-MVdz_Oer{!e%PJ_9{$k)FUNVE)mRl<0HCxfk871Sas79zSg+X zbspG2buIec?lO60;9dHxhss={%NFK$2_gLT@)cI5q}OI|L&7|*@@9Xw-k@kswbHl@@0cWWx}ig+Ov zuT#s!EEW03{k#3Og_ulS@`d9Qt*er*ar;kf#k~&h`tjLZ@xcV>1XuBfZE!Z_e*jyd zvWW}FLP+>lZ%T7u)QHZ68U65&+4ZX#&}Q(KpT(EcaEr;RJD}^8@9+CL zVXVKNnzzKKmfqOzp0NC~MU1p=r^PmFIgy|+YbG!)w3Xl4Ix5Nn7Tb$6=sI}!cq+~=Pl4}?(% zTA%@}^8*BDu&YZH)Jz9|U|2iNX+y81QX222nw09T7^XmZYBO9vG0b;Z9|}_STK%t8mY{$jja8E&R%VqCP!!|Bm`JGkFcrP@no%z0q&MEe#%n z_sR=Q`(3ec;G?x)E{t%{PiS+~-ILyU@<|mfzP5fo&wKU-PonzpW!f2gKe>tSSPHuN z?@o@RXINdL9`3uZMPYpc2GHq4A3!Zv7nFYeEdPXz(8>!JP~h0>jZc(tL1`MAjz~%Q zo!6W`Q#|-kQVvZ}L-$_eFHE}cHXQy+UV1&>B~QKAi?JI$RAxa4^FQa7isuxo-6~)& z(do+bM+e2YtJ`Bbvfm4^7!^lOeZJ;dY3QDVE(m0}ve?_-zTCIrcxXuq)>NPX8_8i2 z!2fYXk)ORn9Nje7{U>?icc$a@mq#zjf+Kw&CPJ;@A5mH)RwqG#6B{;>F^ zgqhraHhGt5;J(P}@0VCgK3qT;yesIwlT((_&>t>aZR+_*|4r@X2_Zf2&>!cp86Ogd z((XYk1MyhYV)q?W%VshmI>$||X4}54_X6H~Bb}09vv;Y`Nl>?I@|wfYf;&+)7+6pz z^xflf-Ca6AKLpB=io5WG5c_oJ%@*s(Ybg6GDG~j!${KSF{WC84lMg``(q%G5AiK&x&!3Dp{8wFPy!obb zxe&P#I6XUVAyf6dwtX>*75El05 z8h@9Z^g50O*^krG{Q^5>?x6whsLbnO4w?SZr}TZmFj^kca0r2$)?X#{MT^bESGu2M zOY`}DEHP>Dypus9Tj6Ogx;i5Q$wn`~5>Kke$N8&&mLo-Jp?pN0DS?kISqgraKY+Uk zeKv!v%iy^yMx3%b0XW~udI@xRD)c&an&n_mHBzRL>T(uF}fLfTc`j)a)BX`>Sh5rPl^xeEsosm3B-|uFk zcTUNQ+jiccndj^~1Zx9r6M;CgGQ`^&xMNf;ziWpfr#NCrg45Gggy9z9>XxOAN`|}( zs!k*ZvsqCdMaLbY1BWm?r=Y-~EhWbuG2+jhpxLozRX0soW~5F`(w@hFC)Yq`1S5Bn z_b`;Z02rBp-rd{<__yFT;duV7f{iKx-p6~#{_^jLBJ~ZJTJgmnBGw>`Ay)^+3PWHG zdDHTP@Xsn`H4zjk@9jD3I~l|e*$ZXs@Amzv<(5L>8jJkNm2B$W?7_phU`g+WF>4%S1pb1%fJQBQTUzm=$--r;g=xlKlwLBPBW^ z14z11KMA-_hW!)$Ya)@vWlXB@%elJ*rq4es{FgZ)%FL%C9z*;QfkLnH>z%T!K^%$3 z5%b*)7cG){wpa|Y^KN<7{J#}~Z+IOz#hoM6Uf8E*=q|p=TI2JMLkGvSfA8$`;Ym`a z{;E#nIT@!9g^EtmZ{i-TwET)KXdCIWCK2|&pap}O9by+XuiVP>z4$*tW|06gJ9Omb z!tX--`AZ^+b{cf7S^zQIfoIw4Z79ZKC*rQ-OKzOEG|A4))aOq%$Sdd2EfD>%BAxJ z<(gNx`tW3}4pM~QXoD)%2~_w*r;9-9OJ$6!GP~Eo_LDZsj@|={XTy4*%4yCg?83`f z(su#+-wEzY9j%OcLOYHhcicobP0DVRziwXV0p!BW9tV%hK1bC**kDRc`k1#3QWI)% zhAh&CdotjzPJMk}D=iX9XcgInj$XeVUa5EU#`Itfx7RFDX{eg8Wj7zwmyY@1x!5WY zgfr#y1bUc?W9m=y^56$VH!V}d^!tUAF}y0CsK#O=6VH+l<@=^@d~mhc-)z1}>OV2g zq-poW0yg2FdcfY8KF;je)298?ezC2jRB~^hp#0^GnO&sMwJn7Qe8XrneX$Vz3 zZB_7bQ@JyNad@JpCbrEFsVlN%??x26;8x5ZT0`huz#SmALMkiOdWTf|hfVSMwZ2-3 zzWx&h4rvvru9klT0LMpPaT1u$zTTBjtbpv0E^(>+j4!@n|E&y~Pc3p4emMC0$ReS@ zfBT;0GU}u24@-MhgY^CV31XezYbmA+uL`Q76)ba68gnJb3f2`4vh;Jdr@k^wK@Jra z-R^AXD%Kds=7h}~m#a(K`I?t~K!oM_&I*#cgi| z<&0FqmA*YDG3g+r{%jk@>`+rjoly(!450fD1E^qOtL+0}5O65q@N|39_j=u>_hKJL_M^!=E0u3gu;)h# zEce7$tav+hFOYt(!HH`}N~zCm(q4X|lXYrCcNt_;3A(sOSBI3!yFe}f5VWGr(7O0V zvb1|(?YX>8QZ1Ul&!KQe1zi3SpS|WpC=fpd!7;?ELQAj%d~f#wJE+O9)wLf#Js!IG ztb6=P^H*Nd{Q6qQJee+W2ZV*oc z`NmOo;%u8?x?vuYB0szzUsWPlw%~+a0Ag#aGrtuF@gAhq$*$v1X`6A;7O*9FHq0ZX zI6yuaaJObYa!Y3TVcv;?@qwBpzS=(mao4*mhPQuEKgBg}!-M)G&+?TpI0&shK*x-X zwTjGl_%)j934;d85ApMlm)GDXVzQRqD&EgsVRy$CmAH(~$Gi#IKE4p8pQ-c~3!l&` z27Zu5Tz)=n;y=51MeN$$guaU)fwrw&KD+)9RB#2JDeQR9$Gh5U%|vSEUC!TJU7r2S zTX!1|385VDrO8-HbI0lukh^kI5YjLKPa(6VVvmzuB^9b3igc+9h5Lu;NUB|4_dLSo zo(?(Z@o0Vec3+96&;{kyNk}TA;eO_Cvluse@bB{(*Lah;__7ka;9Wk+_)r*v+pS&-c4{o%lE7f*K@oWZQ&KmCKi=O3jp{m^{$f1QU3z4-5| zXIa3W8Q+}$reDVBnw&l`&e4uus3wGW?MLG@8hT8+g_6f7BWbEf@KYIRe>barxkd68 zZAqfLNi(;Qj{d#k`)43@EbT1AEe}xedfQkAmJ7Ap2ATrp7!;nk(UDcLD_L8C)SQ=$ z{0|O87&hp{7$TsP3i^5YOc>_5EBMl&Hacq-+Wn#_{?I<2N`mg=Y;~y8>Kh1&(x~lv zfT#nX@9s;_IzwlD82!k!l;X2dVQ5Dd?WhziwWGOaq=oQmf*mo*cfvdc+ES2z|Ljc2kCyU+m=sPlmnZY%k%B$UHr%=$5h!w6Cx-C#Gf zbHGZ}{QB6MUuLl`&FO7cQxewOnf~+Y2+=fi&K!4yz+2QAty#lscf0kc*DDO8 zcM8Jk&!*~a8s2yI&>;kURFSHsOyMozI1MMts7y^1yFm{~YBtJqTB%c?u@ke^z* z&;R$P@3Xy~OR3<;iVZK|{EO!3PB5 zL})8TM22`&m0Cnp^hy((k_w|?zARCXX&OQ(O)21(gTG~tvCO5^1A*pkuj^^MI=8BC z_ba%43PGy;#e(D~pr<`vd#)0+tAjFh62gFqYx`Xw!<$aiMjem}7)rKQ4vjxATiekZ z90`IP+K`tQku&ESrE=1~hB|dTk~HHh z1Hw`|)HSCw9+1Wx1qan!OLW1$gI`rT9cUgtZ5+NvE-^a!d|c2K5o$|rFd)}Jt+T=! z#U8llH0xAs3&WS+R#M6rc23Kfh8s7^F8aEzQQ$-F_X*}N6w?oS{4VQ|USL@288cNd zo!fzrc{$*7MKTrwWpwKrx;@Bb1CFaNWi>bUUT4pp!4-Dl5OG121y)DTj_)=g-+F`k zsl0D|DRMWI%is9p{|K_qU+&&=F@AVH&P(;r#pS%N2ageuI@7;G-peWO_@Hl5Kdwvj znMnb_O>O*Vj3LRBKAxSlkz%6X*0)~crG-8YdwrnGYMtorIZ^0eYYR0n%-UN;t$BNA zWcnO;UCV?O%(f1}Ar67DHFdi0evGFtGx_Ksr&%eJS$}>p&yC#kD&HY0IfRfpD%3-J zzwa~z%dbnJd_Fbw!;MS4C4z-|rsHx89mytM#wIzNrEBHuO(T_>yaRLuaS(0jr%Ywo~X)Vyi7+~v+7Ef^}yRDR?)L=8)C(JyO~udpX_E<*#N)q z=jjG50p|PcX@0t4`~$oT zLN9*BTLR_9Dvo+3v(nx9qB4pii+j`vODO62z~j}$*(JX*Rx<2f`Yx2|1}-&3q2Hn# zbir!Znr?rwQ#AgF&fkF zOgU#v#{Std=k0&Tx1yQMu5ZPi$aidY*ZwyAh-piDh*i7N;#rvzNb`EF$`6{SHpo~D zeHNC8Oyatd|5(wC3Yoz#{=NK`&USYiZbqRpitA ztB^OVPQKs?>ge&xFc1TA?CRd%1$v+n(N{%t3=nQe!pLC~_Oa!H0-__{Uzl8${f)aF zPN=F|*%>#|FapafMyc}6jT(6MVtBsL<)zu=l!S)giqi?d;uW5qIC9;iaa}eBZDm7D z1{~A<-zYlK>MhCQ{uR7PyWO#1BPn%wMYp5VN8j#o$px$YvDNy}#+nCeO2>!shh5#$ z3X&tw<%U-9t&~X=btqPw4H?(e6#sDd)E~blS5>22Qhxw06ESty^DScLL)by;Q_RzT!*-)%Ga`LkmDSOkc#Kh!RvTD>UoYUajI3y6k7Vy@{$Bk&COK8Mo!1|p%#p?{70a=_w8 z-KtaPEFCVFjdJ*gaEv5r4y}QfD$E8+;n-kR5w~`Wu)*WvyL-T%Q&t<{hutPf)7=$b z{%=1lZ%1&}FTXQDUdMPqK~(*pX=)dBIchDph_uXpUNpOBKLZYT%S2JAs5V2-$kEWoq%f`_UhU&;;$ zpHh0;##oBnIewoL+u81bEp5ul`q?)b((Ub4hK-nkDdjhR2@Ju5Kz_9-yum{leJT;pX9E%+nn9?iN*JE*bQDF4>H zmkf;Z;<#irttX(QZG~M5{yY#-{u_d2D(f%r-pfdAkR)x9G%g8 zJY;@2ep|a>l*x+&PnwSV=(8vJn3apt+7f$8td+*<5ISuW|&ysZa@scJ?NUp|-kH|93 zED=ZcnsZ$vFq!ADyx21YF#2jd&0 zDVqRNtTYj|gE!`SCqI!{^=i@eE)wf7^T-_Ei#v3KWj09K^g2zT%Yc=de>C~BIYeIZ z(}_upt(zMM2Xfy&{r{oJw0h!kB4MOoB}>^>wY%|(B79D@b7x2Bl*Gq8ks4!!*a;hi zSVR_IzxidKzp0z#VVtv~)VpOylds&FToTA@S3Pt2%Eto#DyMV>PpIBxJu_DN{JW1x z0OHH*fy)D-*0-jzk8jB-a2_|q4c0y9ouyfulp8gtIczT*D$ ztzxolYh&+<^(C+`Or_b*=tzUZhY)%SWO{(tR+tu$ck8wOad^~>1s6~`vHeBE%_Dk{Uy)S=R&eU61*W&z>6E@_!Sw-Hz zOz#3s&(9IOW?(nByE#P=OqT*=Wa5s!HadILIX*mm>HWo@Z`|@UF9e>vPqByT5l~U{ z>YjZUCc4)I>k7PK=mMBS@0R6sRqe4SjHh;wx$DD@8ePQ6y_*SCPD=e#=_7d6;yaT^Hz4)&~+54!~Kc9T+lxClWXcFyJ zwEskMz5?Iy&k?ukdJqt-Jk z?DW7zx;r2|xV$c`g6Yjn8{ZlJP zFG0T~Hq~#QHW?y~N^4Hlf$y)#YiV5wd4SOsx6P_}^RREoKEgm;X-m)PVBt~Y^n&JCUWuO}WHuvvVvtVbIJna|Ck zu`+d=Eh^(+1*LVOBGaCl)(b;1t=i^Q!nhy5DGx6B(fI2z8XK-4y*Rv7+P`Kvp4w8* zD5TC>X=M5#%Iw!_k!YQfjb_(_F_j2|PZnchk5DBHc~h(do#Gc}F&qzC=hor6jDsvI zXL3#H@7C=O;>>T*!290JlrZx0-S(EI8wKy)k|uFWp1}G$?1bI&^A_XsL@7hZ(IeM2 zG7D|fh@oNIAu5LR31driMQ^HyPqP&@#QV>_0e-Rd2@WA(m4Wj`CpX%WmuHmyFQMK2q*}MAR#3U($Wn|N=XR9&|L#a zHws9H2-2Z6(lvBgPi#d2PGxxd|>%Ok@I?wZ3YZU3_ z1Sf?}JBi-Zh|5v2Y56Z{=8s#467=kF$)cW9@Q3>D5vNGgTFQE?Egjf1wwCvEMT8A! z;xD68SsDB!^5_ICkx!4v@}9=6sTXCgu6*T2!>vw=eOCS5GRL1Ur(Pa3;Z`KIpOQW9 zw_*?0pQ51U9sQEH&Nl6M=HU4{<0ii?>61PB%{7UF;+bUNre@8C^8t}Y=J9utYb|~F z>w(Vt9#aOXJq#$(AF3axp9)nUS#!X@=Mk z*0%WItGGBa3f-s2ID!}H9!9MD+KCX<47p3;40c+uyz6b=;0y1Msvwn90$hpk8W#sheqJFh07)zFBTVE;f+lKPB6- zw5+S!u9MCBH4GNES>mJyWjE5~Ta_0K`z5Ie3+}smx@>H$Z!!L;?sQ81K*tf&sfM}g z2r}iC6m2(Jp~CL@8sF}1=hFGs;KJG7M9vQQZFlqblnL7Qo=}8p$QUbFZ0z&k=%afQ z_f9(*@zXyPw({>>EfVgQ*efYThN!}kJYcH=lGd^Jx}Mzh zp*dN>e3IoEx*GKb6|CH!H%{dzfu>lKcEiVhY!mEM9FOiP_u>q4t!PJ-M+i==d(XYT zTvV^5>|L0E%&ggt6bUx(K$g(P2E#)m<9K&ajT|SD3%RD9Y>0h#H55|^VDi+BMgSP&7jNo!nST^C1 zCv^Q2uG;d2;)D2jjKuCQ3BTC*s-H0g%wZ9lCs1;U@;&Z@Xc+}x!A{0{A+YpjIf;t-L5<&e~Q3E|0EhRL{3W6!AQAM61IO{wa#;2`$4Ug?#}|V z2CT;>OK(FUKQ3qwb7rKKHGjQZ5*5``#}wq>ynnx`S-kjk)i`24=vl{;p>zK&G~#%6!TIaod(k263vXU_#nx|MBr1OViG0}z8jRBD^{`hKSxWr0(g>`s zOC+62LHWjq*1K&&?DP7N`petJbDx=a!k4Aq#r*Fd)PCppN{hc5n)~^SpI2UOnNj}f z#*1KycbvQrx1^R)bxzI=Cbx-8Ec!<*aHx{6zl5H%bbZFe8r?n)IcBh16<)>U4KB4X zkK~!KErkz{*%Lyhwt6|6ZLGZZjt@Ub78?IxJG=-Dkj)*uoBj1+u619i-7Klg)q<`c zGsdA&SLvfNeC)!e^vvVWUmHFgY@xCBCV5P-`m{8IPgohfJke-5^yH##mEGoZHb040 zysi;^13LUVn1bJ3QO?!ALc5|%-RS+ThUFKoc*pW6&SXXOqnljOmLcC6gZu5fv=ta+ z2SPOJ(C#5THvNu3iz!gywFoMUxDq2=C=%4{K|9l}7>hi)uuuE3V8FHnP` zu~ykW*1wU8HVnp@L*Y=e!t7}-K>a<0R_!;UkF^OT1&>H%YB}2(UFYf;cR~Nitq@c4 zW7~WkZP_9|iqaatehuxf=?eF9Ly}@zAKU-FeJUw&>2aFj{m*(AChXh&OkG`kv_eq4 zx*}v&?dRQu`+4{a_Mm^kg>Ny^d@D$&Re{dCX-7Tg@q=(M&D*CyHbZZ|C~WVt6aoIE zq>r0<_NHO`-ids1h}J;XZ`Bt_1px`)!{WT$GFP44{Wi-IVV9z+D{` zmD!0ksJ+QcFS5K&wnh)`LSwhf|4@`!SqJ7I(1*UBTaye;yK$|44?4nWe1PLDVo@SqJHz+}RFXe;f4vXa*DF6H=NWA_PhRRr*4~~b!O$Yf$a z8T3d6t1*lY0z*E0TjW+p64>e&$j^>sw1P?yT(K0Qtnc{4uHWPhm4!r2^jrZn@Hw8r z#ZrTlTE>LFHg+c)BEDxsns+BsEl8P7t6_6fB*l2FYI8@}s%TpWAL^@OW|gNP4czng zM@A^c#{Ev57brm}N@tnRvn%JsZ!GP1Bvl38h!{49dI^V}T6&)n-2q@FLFvrOY3Pxn zN-P_f>8ZAQ+Ua+7s&GMk*Z8%py-v3kw72a10xsHL`#JXK2eVr9i)v3%>d3>pIz5lR z!QWXOjzyC08TR7`Kvtc1!A*jVO9ERuowBvazCz8NxEm@Kx=^%{K@%#&L1Ky%$4f7X zUF`bj%U3R*@dU{HeyPlZkgn7T{# zZ=6vZ-TrW2net}s6FYmKA$(w?vTvG`J^0#I7vpA+c%$+w{Mo2iaJWZ_if4aMkFsvq zx|s+@c5lJ7O{3P3OvZH|4cuoO*^x)5E_jJf2g#gxl z0zprD>2dR>Cyk%ZAFbS0b7WUMd-}?hrMZ-{a-qr5CMXDP?8Tbw0Y-=JW?R>RyLulI z1T$1{BeupY)tp@f`3^9mG8~XJz6rjEv-(Umx%I?Z{ z$-wWUVWo&B9wK}0*N{oKrSR-eO*p6hx}^7)OAZU(^9-Aj(yU1Lixj~q6A*rP2GuT8 zhwgE9#0*NBZz_45Yt(8=Br!T)am6K^@aeegbIcaK->jBDp8%Osj$Au)S|GVpVBQ*X z+X>&^v*f<&wy#UrW7D=$flYd)&ARtJiD8J-cHn}M!YL;XmSkk?M1o7mw^HXaATmjV z$*uycF`&pz-sK%2ECc`M}W{o5Q3nm>GR7`W7uI75=sgkK$%8WO!vmq-dP={+tLoZ)xHur3r=iDeRlu#zz}Meiy{lV~MPwb9-r#l)y+@ZS3$~-8`WFsy2_pO9Z1}Da=TTCWQkym=`(;Dv zusxK}w=vXc;hZ5C?WM>A1>r`st2{jreO3#tS5|!7gEeVC#LeGqdF7wU;!=j6jWfc> zWN^aF9EmVK;Ps_qCi1HP?wY%-oD&6G@&~_7vr)IXETJ1Bnc}dR=Bd%L+Z79|q9c0P zD73Eg=+ybX)J5esu*(zHiq|uI$tyXcYo-SrPT&m-_>N-(oF=?62q?$tzxh1HOZ1_w zrez(Z8Ce|aYAfiI}N`;%W0^?c>ss_ zukTctu;5f%M_-~#;3gcvJ*C4?NUhg!o-X>6p-lPEjs{mKl?B!c9isZt7xFE|@qn)1 z3&wY~SJ?7YtM_8onSOR0f%2!cZ^!h7e*DHkXKQrUBf;Z#L?A_JM_A;s>@`VZ? zC7yW7(xTO%*UbjarSDKQzNAq?;b@EjE?7j8DzbAo%*6vgRBLL1nKfrh&1M=6ID@n` z*WnKNAl|+q`9kZ*h9B2TFU-d_@~cty`|)Xmf`aM7#3%I}ydeBT28x?`XRY7aNsoGJ z$dhNZ=RxHnbHB7i?aN|7{J~D`CFF0Y4<{)K{rKo(rOg_T`}R#K{4H@W8gxC@=)bZ* zx|mrJqWH56C@J4kJ~lb~CJaq6swc%b^gsedvbu>mQ|VTWk|9O$4m4u7(;7A_c+Yaj zS+@;eG%N+-G-A(k$$+*}$mTf-X33q}b^&bZa>Ts#c`sA;J{>3C4r>o@Z~@FHVyK*P z)r<2*WG5CaEiUsVG}&UnR@=7GkL^<9VH8$JS4D2Gn7IVHUGxohPrJgud{AG;FlaYa zm)hpux1-&rC1>p*n7U58g6X+vX_u)WkEh7EO^yoPtH(M7Z6DPJsui@ygGRAuGK=5& z)`%qT_JgAscGwrlGNq6yIB;C_b|Hroi1G_%?phW1cl)f_RDTREwRIY>T zlI#J+jKPZGky4ZU+q)rfzCeJ9?$r6fz%**zZB^Z}($Z0NDt_2t%ZA;Xm_bX>H(7YR z4V%F+As9Tro*+n`w+ee9U|F)8sm(hkKkJ6mlw=z9yWEj^R**#7%e}-#!cDt!ZT%Z_ zmE#2^UaNW$z!xE?3YtD)W-ivHc5P;urbm#MYbi;NRvFQW*V;JzMdaFUkk?=f&e>|j zNj$~1S;lQxPg3=R-r#8p&o{9#K&D1MA(BRncU1RpjJG!e7#{7X)b=4v1``b?MO^6oFN%W0j{-|R?f5HiTHtwbA`m_O=y zHDjS2Ipyjq^D-gY4cr4i?6Um0H2S!lOz@N9)N3gs*>AWEhTjcAGzdaRf;fmtQu%g@ zb+47w7;jYx}&BUO2#>~yA z)=aN;t6$_(Nt2m*s8p>D|HoOhwF{Vzn!%$gR-a1nTGoO$OTm7M^JspiCV7Tlj2-Ll z_*7;xRYpB1J$lLj)hF#@$eIq_w z;7+WTWQ|aRMAk{TCr)w9R`IULsp~)`Byi1n}74rgrol<@MynkuySa6 z#CUi`=hN5srGNP~aJnJ*P3hYJJ{61xb-b4C$=&1(rRA?TAh6!^XIw%-x$lyXl^-~T z6!dVZ?V@+FGs|#C<0T?Vkvg4+g^m;P#SWdWZ%>V*C2frsVy4v1OK?PP#1?6N>!a7W zjN?bj(oth!#K^&wDF?qY=xO0AuHG!(&1@1DJRX-Et$IDu)KyCQ-R6r|miWzS0%l@; zlx$YH>Q71Y7^vU=6u5fUQi1Qvsi`fAvZ&@T5-aD;pXeHQr*gzT77|@2=S^0o^+{Rq zt?q8e%$7DSK%GN^NB$5s55Z7~(}TFEN&Gm9m?G(^m<@AhY7@!i2`yLi4;@l1qSfk5w7b0Z4nItTz!Y6Y$^&|}4OLW#uCC+Vd}`JYC- zsF$xOrDyfjVK)6@pS?vj8tfw4CUaB>;}Xf}KARuEL`ZT*Kizr;f5 zISw*>s_)UVyMsO0do)N(NNCsNjhGB3t>4*lnp)52th|>E(R+kdPUc1Y-I~#A-Nc|% zrM5V897XoPV48#PYF&qF?UizN(aHP728WaW@}HD+r@uN0T21EGG5151cJ8J|e7PAx z(rarfkbc&d#b9R{Lg5BC*kKPtj%VZ zZZ)#6_~H+W_6`zXC?yyFE}7v#uWoqG#lrX!UlMEg7axRYR7~!xM#*%P%5+zCC`9T> z6hG>N-e)TKFDG)Q18k#cI$kDl6RpT7sstKq&aFQkx+yLnjPm}ZlT_PAa?H2AvKD@a zQO#b+CbJD)W+0R_$!_h<-Z*wcAo;WWufi2_fK_*EUlJ#Yhzn4Bx!(8ww(Q5qMKIC; zf0+0@d6Qer9|a|oyGbVu6IEq_R(uZ5}BEIyGtFa#D`hmf1T8=_;Y%cFYsM?otat)d8f$>%-}P{ zfffox@|e&H8ykY_6=eDgn1(|}tz32MO=K)uhj4Sd8h6y>6dmVV4Z)g?_vCAdhtf!O zE#QyoqP^l%5`A-BbIp`tle^nDTAN-%JF0S|-cP?1Yti3~c~+(O+1K+CVW}2E zN!WhzO$%Y*Pe)K(+x(DU=pqaX8nOPAdqP!_>X2r0y5ppW2*!;w&P8_1{Q2;m)cqh` zxbIXNt|uFF9@URQ6soD@#UrD$={NOzuM)Ty2T3Q0FQ=7q{x?t~3qUcV>wOx^G%T+Nr&>(FC#1dOsNwP>ey3`IlVTsrDj)3?|6<_J&i~KYFqhHU7!p;_=Aw} zNdIyfavV>6yN}3P5Y=zc!eAWQD-DQ2a}jyV;jpkYwd|jz3cN3y{*LI20pNKL--Nm4 z=LCpIK;`qkD%WmL`WCPJxp&z&uEh^c2IbERI$sV~8($b&d7f&MD3nHmDdXz*7oc5} zN2ofm9p!O(0IWsJS*Hr9gI?`k7l0}Ks%Q9+32+_bR2vDT2#bZE9e~VQl zV->?iZ$fP6T|k6p-MIfBV)AuR^ER3EHw;8YXQ?yW8rdl}$s;bFAy8q7tXAZi_>W>u zuMZ@TG+9mHgqZ~XHtBz=p|s`pB&e(N{6TG@_zq){K{m&gS?N3pbivM~ca_Lx-*iNO zd_o)U)<;D;R$Ym7bQQjr@2=es+EEt>-|U<$&kqc3it`6N8Q%S|MTsu8+=t)19r4{xTOl066+N}09Fk+h znFE~Rh0x*o{?Xz2%FyVAzJ>|ekLN&$qXowPJg#mq?yV7tkZ2% zL-DHywxDyTi@Ry-`1CcO_&d+>#U>}XE+m;mfl=tovZ%9k(`fZ|}TXjaOj3(_onh$-R zW?~k=OK!lraq8blCNsixSmH#8xevU4n;ra1jkpPqgNn8TM&6~i&CdR|&uEQCn%wf} zJZfb5XGoOKNeKJY0_QFJCFjhHl^!cvn05QhKL92Abf62&*anH_Yk(qNY*+gtR}@GM z{Z3hXKQ-9=~I!&wP$QP-?Hb&eAEED;%zIrQvtQA8Z&c=Jjf)o z?+%v}Rwns(Oi1m0sfd5Q4MX!SdQM5peUC`A>+OcZfC&G{v|H34LKvb_I092X#QD6R z%-Z;=pnqc)XSQ@oeHHs?cF~@D^UqeRPKA;QGc$P|ay9wYgU)(RFWIgr~elD~K+7$Q& zdgbwCYP$WllStltc`EhbS5f@FkRvof{Ygm%2g2fU_rgI`nepdlmQSPpI}w1>9JMCo zSG@r*@$xnGX`go#BQae8AewQqw9v42LZmHx{n)cLS@z)+Dl{0-Ft7-rz=+w=;j1)f zKPQ*nb)9xF_#i(}W4yU%63?boik=zw9B`c0eU5di9o><M3NUt1nY_3`4FdfFKD z>AUH-8)i0J++76|A^t$xmrD#yz`WDEe^@wkIdNyscT}&OPn2XUjhS633e_xoT)DIx z$O&tQ`QtA&s`mD=iXlYq^L;{C++Zp_1Hv*h@z*j_{N#^irauxo%1XUPR(G68us>Qh z=-vy6X&pFF@z_t{5N@tLM_ZiFn+@NFmA^1ourz4~CNe8!+;nkLXoK$DD?stJ+;V60 z_%6*(N$VP_df5{jhQ+Jz6AzWVLpOneERPUO3m!%mQ4oErmD1ZR$m)VwzWSwHOJF1w zV5@0QGNA^FVQjLdY;Z&4?$<^hOy|{vd5go0#~T2FVSMrCd}AjQKrm@BrE--#m_c!E z2XkK0Un0LfPzlctzlF~L8?|%TEoxpJ$DS>Om;SyE%CTWblrMl$%HTvQ0SCeQ7&PlS zi7)s-y^CN!SBJ4?$(T}_w@X~xUC*fCY2lm&-;jWtk@P!#tJ z`9l_^wQWY|agT&P0qBNo%R>()R_@jYFvn)aBO-**Mc{mKe}zFA`8nw)XiSJ)HM|a{ z(u1z=G^RfT3aDUCxt^OI{ZW8ax-Blh!jd#h_bIilYIU0bH;5_~u^}G$M-<8- z>k?0>3QtbPW6l*&8DvbNnLHmW=DVme181kCyIpJ6x$@d7Yec?W1{8Let^P8U26Bbi zqzFMqy`mEg)qo|t9}CfteCbHdc?U*}jVvlmjuR^b`ri*zO@Olmpkd3RoI* zY)Ar?hA3U?5xTWTy%Vxi`2*Ax35D(V5v>0G4MQNCkQvdhd?S7i;K;vg29YMM{d_^Gzq9fxKNV)&4BeQuugpmoACep6W%Bbrkm#Vn-9%$DH zjQocu!Z|@h3~GJYxd$b(0VeW7$asM=I?mTl&+=qgK0d|qOPA+$r6w9Rh)<2BYXahC zXFj)7`43GR)Q(ujG+N#n_y@57e-uHyIbS|-pm6g6kR!iwfC?)6k$}poBAl!as4=-y zTr7yUz2FEvl6SEi?cZOa`#x)z{TW&W5Pzxvucn5nAzTEOVc9WlXbv1QEU%ahnx3Sz z1;X3}#IJ|Vn6lMiXxyVs_|h*D2z59>sMGly>Y87B1mIsDx^qea9F@}Rz#k47!<+n> z|H6k?{s>EL4NTr7kg#j{a(8RD zMR))`l+BbIN6F6c&$ZLq3?}3Ce08md#P(?W3q}zrsQmunL3TE;6<`Fs zw)+o+W!Mc@Pf!RQFZawGF2^e5nzz&PJ}x$L8#eY5banjiQfhJyyPaT`t~VDyi97OO zI-8xIcQ)(M@^3t!~}-9ak}H}*m| zORVlCwI-|y%BAe^@x;iDQ|(6Y+w!2B-qbHpQt})yE?o6}YRBXulzuFH&aTaVpl++E zCCE9YGvs?uNrlsy12{$W!eBZEf)HB$&LrUN2S=YIsjlDRDVEZG5HJZnKs)_1aAan) z_b!ITjhj0DUzw8|V>cxNhf0$Ew(&V!Xyf82`7OClI8@{k2coL>5^iqu1m{G#e6ZX_ z@UH@m`(IUCn16lF$L`{l$#P7x`06MqvDD1@YjP#@=EM(T5Cb~Ou6 zn?IC6$U<_$J)aNYgOx@Wm0@J&?vngWu$mXW(kzH*Upb-oo!9SayhDV>Ian1=`G%zpp2$ZZW8a zd0&0|8{A*B$B|~LNQJk2k?HE6;9fRu^-s^qwX+}=v|GIzChmJ?ypl#-@A|`?5fJg1 zBM049sLonfU62)p;B}g9X4dI7wcH22et+RUz0PuO+gV54A}%wPvoUOhstyfvWkC%5Lb+O<+5ug=o93! z`5anwN>E0SF20TPT@vf3AZS`wiF&6Hx-N<43G3E49{qikSjqzryPDf-iI zk6(b@V3KXxbqO=>sFj$_;+)M9R7Dpwy%Mj*@f<)LCzlln*|tKkqye8^)9*XRu}Jzx zG7HqlBk_?frvz!+?zf|lgN70FDczqvan0ePQC1T}iS81APy?dM`oOs@0f_TfUknyI z)6MpK#R?QP={0OReFW#QPbn);eRRTKC@h!w$|$1-dpTwE@Kn8HyA{SWCTSn9^gYzv z($pOKRdsxv5KIOV&e=1sg` zz(bz?GiGFbUnsgv4c4=W2dfslERJ7aUkRT@5mlSCc+e z;n55dgov;sEsv{D(~l2O^h|F9PN?l#94TYjZ^$1+hE zMdL$9I>a^HjfNqw?zGszy$W2VD@@{759pE#T%7mB>MHlh&$pv7TK%yAE;Mzk?h^;; z9K&GpIZE;uR$@}y7Q91s+P}bzlT8LeU(Kx}VYhd6p8(z?5_;&=&<4yr9_`s zmlIap(fn^RUbvcLQdoHBTQc)QvHzLe@RK`05z^ONZ5zP zs>KE`9i?z7Ghr3J?)lQ87_szv0!0h_wlkw7{sX5wtyg0@{@S4P;@oZ(3V|_E0gJkp z547P^KHa^1w3kYEF7qJ556_yR^Yeu|6DDWdc^r0f_2KSQBeO4xpM0!MiU1r@pZlK? zn!WceQd948L>-B+bULpPBeAF0&njiP+*-@B*mGQ81J11%d*WGHH<|CDmW;GEQW*e8 z`F!i>w}nRWOPJ?(<$`#Px)4g4p%6Ju(FdPDG#*}k!{a|{PJ7r{Wx8h1S5=wUOF@Gl zj~VF>%L-feZbWX;bll8v3R4}JNpwAenBB3OE>4JmMkq3t;CoeF5kNS9q@Py-`t#{Pyj>x+UXoke!i}v_;SloOT>3F*GnX zSwY^2)W&7RDVLjE`pGC5*trmnK?Ww1n*=LE^}AyS|D@OEeQwPJN9;e=w(Yl#KUa*u0fCsK@`dS1YgHexH*k7W7+dp30n{H8ehc41Mr~k<2 z7Ox4XdMnT;5vMV)akgBV;!A>TF7WhYW6j9K8r2=;ls1{65NGD83<5~Pbfdus0RTai zs=|cb?I&qpBI&PDBZf=jiG$;qoM= zVjvJPcVoRo-Vn#X?Hu=n!678{-!;SavZs7d>>1h0%Eg(>dhF&exAG>pj<;j~Lle3{ z(KZfkYcuC*8ok63797t4b2-V$*rnY#(C*glaGzY4%JKYqo*Y?O>FMuTOG@~vfaJ)A z^@NN^s<5?Y?&eYI@sr1DQ>rT+Rl$5!wS8rcu&jj2p>@>(b47_8aOEP_PJL)r*tvb@ z3DShnCM*|0#k>R({#72l&e8rA2}RUv$vUh|(mQQ@%BleKKlQ6I{?{48Ji~V(uX*i} zPQ-~vblu{C+})I>EmHz@I9&iS4vvJ(|DoYr*xnq4P3W^H9(;jYuJ9XcefL6PadN$X z8<~-nG4CSFC{DuBYw$W`B#3;@x$%_cB%m)|wm83w^l26CbLs!OVhbmgxHz7=wzhUx zod;fr&PP5Low|oyXihv5qtzV_G=&3I$}_Ql;#nX)$sK=EXp|ZF)ghKCuU9fSCvSr8 zF9V4#RkQT-Z3h>vD#J^pVKRbb$yIIJsj)6!{nIgkb*1Gk>wVA3LRd5^Ji zSF|x0pI^gUP7OwCp zSy!N(xjXaditjNgw-zXb6(^_RDwuJ>38E(nW$t1#^=IDM0b7t#rp*Sg#E)~i3a5Nf z4!!FG!oMU%Sfjk*E1q!sU6}6WVH(nNRcnl8Gf$iF8FY7J|Dx=ielOY<>2c-qB zD6r=^I4Ay0Qza|8e~`2)zZ|_zDIO09wezgwU*8moOMT>BkvEk2#at4v)B_3bl+tX! zmxM{b=M`Cn!xD}?RkwCACouT)eayiDk}h$I_ZbNZ$%(u;G6^z}_k$eQ3wDZIAAoeS zAS+K}&0p6*2wx04A=Xz-20)7-%WS^ZeovfIwCNYpY)nbn%91I{eFXh$W;zks2oHFP zcA~gykq}8ty*)Sfxu&ecXN*#!YlmuZ=|p>N>FIoo6lS}ksgC~$8m_?eq`<}OqeR7j znn246I_Irr#o#5*h=0tThaBdDwZH3!VI=T;YiQbq5JC6>EsZ*K&nW}80i+1-&(2&m zuB&1czNnO7``c*uMdhlUcIeZSUJm(w8SRwt1k9}xDmewKNDla#Ec(LiDd()d0zg%O#cldz0YGIsOhGt_O)C{1c*ov}i1-LOybU zXcx+$>@rl;xYl#r1Zdnemaxw3A7ewS$Ti>6v`PGu0wbLc z@NsE;YTsf#aW(?)nkpKAeOjxoWVMk0P|P(#F)VZ5f!*%dGY>Pgqo#;uBYm zmswhg!FvsY*qubW*V4H1!Gg0A98!9-6)9(u%NhFJp{hxc-eQKSHSf6*R3$mnK@<`d zwqdo8yQy*~q-$BdwZ&&4EIZniKnq}GW*AAX!s+Cu)gyX9_XJn06S@^;Y%Kn(xMO8?c)3S0t2h@beMl&_sMlG2c8AztC~K(mQ|jY$bAH zu_Jd0I6zwd9>af7=0{h#c7|H*B+*&?2say7oNMo4z)$E@w`TEj>&*MY?kc2!@P`ZYcIdy4wld%xO26YAb@DQYIe_ zOj);nIJ4e6$^AU9I}^;*>4c!&*Ia4`7qWC+eWt*j*lrO-138x22A6(J%hBPT2NRxy z8(GmLeGOozrfN3}XW8^&$(4%~?^c(j$x}|RN)5i4;ebd8hT99`3gWS)-M^Nu#C7;t z^Av${!P;|dk1XM>uwx~~GxZK>xg;m#(kAaWh!DQ`*<5l_lw2ch6-yCoduL}dqSyBJ z_@`#rdd;T+;dD4@M+lN*o>c5*DRTsXdZlxy7pR4jw(`lxEh;o z7J0%8nS`!4FegQCw zZ$vb*N5Voh9hq&)u3}W&Bu>8PtVVM#M@wlxA_vTSleab0hwF#R%c|u2%6_C zzWbtH!(Y&j=O5QfY7csjUSB_3n=08Q%GXg}5kN&m`1a6dt1r};&0%GdOF#fUjM0t8 z{L~;ZZuO6lrzcWZapVg_jN?0sVuZa!jD1J#gOm57)8r^|0*{R*a;D z!Y5j24>%pK)Vrf!qD2MA7R+E_VW&+aplhF+|{9$=9Br^es;ELs36fsFLvnw7W z!LlWnV2w>wR)Br*F{P{83i`IxYvht_ttaopo`9|MC)BRW1H;+l=WpYU{`epNZFe;9s_g(Y|t?!1<=q;tb%KlJ9FK&^p}SP3#qczJ_&_W`H-o zg7^&1;CF*OQ_9x)M@YV7Hf|k9+ZwvSxwZ;g-WsQwy*!fq3EVVM;t&vt3U)Z0;I^9% zU@Xt>pqvNLs1Ox_{UCgM9N2F3cvrSm`e5N4eO8qMlIMRt-RRxP@{?adDxGt2R?!?_CmfS)2B*q4bIZGFKJrruR!_fG&jCXkew?WU>-0S$|j; zDmAN0NlDdq)RBK9qvc{ieX<8(7$l2&b`cNj(0STehdgb2nc2EOp^`{>l=1svVp+`# zspNaZaSn05h40H5beHda$?2<*RAVQ_52wl*~s;GHfUvelP5dK%H5aK6C8l@A;>KL`X&l$Q?WY zziraRs^#PQ?N@QHI?X}%!)i@@AVymIeqcaj%;U4EPv2dPTmkq+d-}DNYf-C6gt$xT$ZZsaN+#0m+6@3_ObYM^~Y<_VN%A#Y( zgMM{?F-^XmHefF{Kys>JOqK^lBDmG+3^Jz{?oJCID431n4NKbHxC#DL*M&3?2}8ir z13>m=-N2=PyX3z#kmsTMPQrRiV2LZ?;z(gzBr2FV8|%$we28t*5Co1B^+6$(Z#oeK zDwbDlJsu+1zwuJspOOZRt^6pb+%(&NxJE-6toF9&iGz0Cy=q2}8tO=YYRzU`NP$i* zl7QxGWS*eD#JA$Uiov6wM67dEM&7Oi3u~?8x8R`HUWjs}P5{7s1v7+2QbXDHKF*a{ zjcI{IEwEa_ujp6yr)EcqE)P=j??LjR;k3SU_G67M(D~OTkVg7vYG^MfTyESX*7;?&O9vLf|h2hq1@uG`2Lfp!6A11|q-*MW1`jkSK>v3b9 zSj&wzX^sH#4X~`>~F4|8zFUCfja0V%p10p%84s(8Z3hI&is7VRvR5+W1gxcKCOnY6t)d{SX!_(Iq@uOZh+zvQXFv!$c<~=l-bDUt) zTC0q>+Nu6zNkjSL4;*A#VqpL8rOTanZk-*bxm|ih+nS*Mqu|Ts=1~-HarX0ep4*4G z1$;2Ih{6zpgWXk;#jTM7SWHTgQjh_)Q@{U-KJuhb3hPvT0h}b);IPD2EKqtXh~Bk* zD_(LT2&en3Fb?^6U#tI5*8JSpqS)RJlFPuqhz^YnSa!Ev_#Wa=o)9BByr8b{9m2&OJsOQl!s1LR`1<|TksFxMDD0s-< z#R94`VDS4}HX=$|gC;#EBfw@67I5=fF)`u=&6#Az^yR&1T=P9~S|0MY_A_s62jFRY zfvIE8srN?n5)NTyz_L0h}g#|>;3p}^lAWF(t zEHKlA9L2lQ4sG=wdm-4dc0>zL+Hwa%{RdL)+?@p8jgY{jrwtyN9R2Zg8YKz8$N)BJ z;Q)l`e_#LaUOEWoy&J&-D1AfpD-C53ZQS+J{?+}jaNQ|uqS^j2rXU9T?@I{~p8gT_ zfKmL}-sgYT%6~qOa<}=QC7umF3<7=?&(0l&a-SE@DI3uU-yUOX8wA->NLZs};Y$H4wYN;WR{p+toIMu89%LN2=p$aj&{ z7w_&9PaYd#v;0TJE_+2JBqcaCOfbRqu9!8nb~VA0&9LKfMWAu;48TZLJitZTiKL3N z^8;3|S@EB(XbM@8q1sVvOF$cxe>9pY>gpW+iJCCv0S~AJZLx;Q*k!*&%68Cb4lWr% zDidqf+}{fj1Sl78{^w!i2;*H^Gr|o9kb;1@YD^umd_D?*Mt6c<^eX&qPEzZ|-Lm|gCh_qR z<=N&W3JpCs-@6Nd)P6I!0VrCE?`%_^23(VF{ss{P5Tb9H-0WSnvWm*sDCKJCaUjwT zAkim*EhokikEmI(9$Rfhcj+?>uj?lw9g?QED!TQopnZZgA=)1Pv(1X(U z!}bt@iu!-XHWfj(u6?j2z~*}I`ZrB4ZJ#E|+@~C?l+P<~bp>zsSzo_RyT1@rg+(RK z#y9P_Y5c>JEbuZ>n%%B*=1h|5{|3;+y$_#0d(%09XcrOfA5ejzrZuniCOZ}<=64N_ zazAmT;^IPy&uZ!>YegxS*r>A=%M-g>fijzZLF054#yz(btMT_H0`u4pk99ctaoK}k zB44ym=(lyd0sY%`H=K448h9%1X`J76f`cm48y}~5FT2P!3S*Mjmy+Ec#MV!0FEP9y z%Vs~AMek$1pm;Uo9br!{VNZH6V%N5Jxy{g3d-F2MWzDtjLoT=oEGc_`%AmXc5udrI zdp{nUUF_v6lRiRVFROprw`kU+OaC<$I1!nIDAz=2RV#RYY22Ir3~YE+MZ2XLTJKg@ zIvqa3lC9Rt`=4~{(X|M*x6Sk2KCb35Rlu3YU?7w%c&Ite``$cYMn!kVWPfrYG}(*z ztyEIeE_MXURU`A^LlNF0JPujeQRSEo$@l3hGYxgr&*a5U+8^$LVnqB><&NrjJ}#uE zxX~51D|)+<@6sQUFtWCXV@Fiv!UGMjry@$(l=;FLI*%H>$gW*P>V?WNU$6GjoTp;< zbs(zfiXgn_B0436N1Z9B;}|i28Lua!EVqUj3xz5oH#7eqVQ(1_Ww(ESD<~o5NOws~ zNw*-K0^Xp6ARyh{DUuR`fYRL{-6bvE-QC^w>;b*cea`RvpEECfBaXv0GuPgGeb@S| zbAAdg@sjw)&vj~n{jYsaDg)yhRpofZl6uC}-QeRVs;0ZH25?QZ?V8SD_{}Jwd?2{X zD&1n4>#OxEg7c%y$CnO#NQl}8{_mxjho|lR!H_LqFM(uVXQQG}E{4}HOfqrXPl8B< zgh!3YcyId0`^dzFsvYyWc@Z0^b_sMc0pP~)9XZh_=X|b8F8XjrjT4cf6+XiN&e+=< zmU7GMUw92fl*&h67VFbys@)}hkSElkChW`e490vf-}4^tZdvEzeAHxyIsz*!UiUAm zX03-m6(*T)TBF#Lg|mm87NpmH6-@=TIGVg9z~w4!HufBFZHj&;6p#D^0G}B7mf9Px zniMBAm1iE_P6Z&v5aO zRo+lE-r$Kaky*4$G9!GszL!mqokGX$0b1Rm{O4W&h zZg%bLZRy-jL`$OxSkNOih(miuqHxB5j{qIGZ z{ZmP4ECY+%%5WPXq?Z3bdOMaac5 z1z(A{9XhwayRD&QR;lQpg@7AaM{rF?gE{4AtTEc6J~}T5V54y#nYrEL>6d@41zlQj z56=90%&#Z8Fe0Y?LzBgfRQdMPCf&1J^bCv&Hb6kNBcSVt*#tpIzRGR33n%W)p1wF3 zVj*CW3;slCJ*I*gSq}L)q#Nbs*$>=~(}P}d09s`G>&KGpagNb#zH{h(q{gh8wB%dG zH6Ga%mqrQTyL&ge)S!4^!hwZU$SQBcZw z7w?v!R=fs`e1o&*Ki+ghas;~9dfKi6N_%m zjD4WEAi-TF|kjBRDn;>?V5KdB(E;=s1EwLk0_o0fcD66$3Eb2@| zf9rU{W^U%#*ml(`qBx>q=OWD78~fkRU*;j_?fcfy)r|w~!qeUpVbpKyocgbuq~IJB z-NVtja`o%8!dUald#Vnr8E*uM8y*>6Nm^Lo11B2 zc3t@%O*i+83B$_#>m0aketQlSTn8gt9Hd&j$NAa;vok?9JqbVufooL;X4C1TS5zHd zm=2EXpF9ahAJ0fU6>(hz${VUU8(F{q19b9ox+$flOPkT363-ZE_8u{uG_SCY#d2D} z*f<@3#3)eLOOYjWKAGZjwpuop7TJu}fB8wDt5A_V9Tjp`AXlMcF(+i%&33zxx_~G< zsetO)Tt}Feu-$r_d^r`mINzg+fi z3{5ZUUd1!Fz+6`wZ_l%$_vo#U-4r&l%X8f>P;3_M?P&Ou_}n)0K90>J{+w3JizzyT ztuCHOttEG*`H{R$9paLVRW0MQ&w{jRQ@bH=Wo~AX(J?1H6U;Xg{YJz}K&#HK?*!8K zBFyx8CizwnA*S0jBx7S<#2HKX;>B0fN3jTsi^^E{b(o(_g23h1j$hT}8b{&8jHX z>QJ64qH###FePNAJHC};CeAO@*9BeTK_NY^R$*%!_$vRZgO`oO$L1uvorzrni4AJ~ zTBQ-SrtkVuMk|oujpPY8gej=n6F;w;vBun#F*#|xhg}sHI(=V7C6R#rbvFKW`p!1a zdE4GB261InH*wK`x&NnZuGafbioG~msoH8}FS2!w92}PN@2PJ4{}sa z+ev^!fFE!wJY?ak$jYvaw=O9AxpacHMz&2~_OsT6&sBNDJ@<0EJ{-ehL84|p9yD8$ zP?@?(U}Ok%zyW@C@2xwRI1}kFg68W_>KJb za{Rmy9qRiv#!cl zMWafH--(deL0z{-R^0yB4(sZ)6$!}|#8X2x;TOK*RH@=o+{teo9@@I@GO%B@!c|wD z1&<#39Gz~41(&G6Y6J{mK9V;OTnnWr+!X-KGaF6jlM6sIH87DyB>BeRJcb z?tXCC3_^ZfOl=vmM609Q?MQj0t^WSr5K5TMhmgY?)m+#w6$l-dL5!jyH`Tn%J+&WW zS=8KGsfkQ@p~>3J#~l$)qB0vzR}5ggzs6CZlYhADFyyr&o4%7jqi>GRRah0jxko0; zrHb2jdye=4=fcEOv?)4jj`7vi;qy_U;{w0UYm0I}k_*+eHA$09H(#~k=J%q+942U6 zV)E>4=j#O1`<|6DTQi$u@2UI<^ph%xMc3c?y9hrmj^*-lBO3MjPUxm2riDaExMg0Y z(mOPinx{cKSlvX44zoN}0u1Pt)RH2Ogu^w(bec_B2s&Bl8#F&<@9Br|`z5E^7jOua zRhqnv{XQ*h_OifA`$e~LsG@2LcAwa2mdB7}4?kLW;J~w=uEM6Kd`te*X;gIX^hTx0 zG=e=f!ZF}loQRrDWCUGm6hYXioAz5>(4(^AE7+nJA}Z5Xda`kK6?b(qSfl(Th{+)p z1>jJD{pWKLCTUh-)hpUI$lD{u8}>90F)VEKg5S9!n5ySMx*IzNY0T|{W(mG*_R1P? z=iYFwaC2_FJ6Vokx9oJ+{%Bxl)=eCw_qnuFr)M_ zo6xL-{tGCg*4`zUUCTVUGbnuJEx7`J20D(ew2&)?SKr~4@cNh30~fBcp%-iFVZ|kJ zL&`foblThz3^d3%UsdlckSO1n6tMFTe3FS4=6dfHox}`JfCUifQ!O7n*t6cKqe^~* zuxnIMhK@i2^tZ)wP8i1d$?&Ly28n+b1aE~H4}?};&V*WyJQqLn4$13$eXTJ9qxRBA zu+s5~g8vHHQJsMIpu-KUIR2J{*}ZRq?sbn(*jpdu3+w`EfVTJKM54n|?rhbQ-c~>zy<9zU+2PLKTLmZk+ z13nfsKP-1092s>ROjQ!!bp1UU=eZ60@|FH4M`U@+#j7_rKi%dAIAaBJLKm2? z&No7wymqSBne&K)g5SLj78r~{*3V9e8!-8K$#t_nk^U4vug>JBYh*^W$L0Q5RDOvV z#*xaU=e*x)tN28tLjHxJHRo{>vp$A3>k0X?6TD)ui?D>yaY_>o;A)u>|G^4}#|Y%u z{Y@3_U{Vc#62);kJ7Yu=9Q`r8%I)D=;rsF7Z3)~3lD91{O>xS}@p_ycpS(=_sy*E_ zkYUIg!D7FebHT*8@|0F%l8ySh4x8N0&2dY@**-^R0>&Cl0{*fxF(1B$MB`PSmC=eq z-vN}5?2o2g-qqFZl3r5hqUM{JuAa@zJn+3cV(o5~&CD;hhZ#aT7Fm|}>opYCxeA-< zphqf{XY)M8kMno>M3L87$yv?)Ae~6WaVQ@p;DrXUfoAp`(kZL#U$@-SC{9z2L_={< zOb^$tUcT$b*ssK3LS|n9bsq9>dePSSa%U!<(qYwYeEmRW$ez<06w!1j=oZ7G(mvhd zvFota1J%L6!%NUD1sAA3a8H**)2>@IZ4ZUdL&B3RO}fgF>dtn?pFlz_eoJ2zz-lWj z_zZ+bi1-nra{5=FMhN>s5@vD>iFdHfNHs*ub# zY?At*W*9XUk8i0I_bKiK1cMT|THxru(;1{h27Fq3DFJa?IFgC$I8(ieh2y)P3U9o} z-Mi~?m%-GBI);+UCGoiwTrk79&Lj1`2Kz!jP-TteH)pZQWiR<1mAvR9%K=8YA)GfL zs5p5rN?xw_d_|w~Ns~^MXuz0p|1tEEkR?e0_!!hjMQCE8Z^}!c(3G+9Z}CG|CXyJa zoh9R+Bx+9D-)|-y>7B1i*guqKyOu+1jZTA|d-fxuZa}HW?{^!HHS;in=ZvHCk4`%; z2Pnk<6l(7RS}j)YV*Sy6#3I~JnEiQ@+c@^iOG+=?(gtJ3mew-Heh~4fIA8c}0T9z2 zcj;N8W&?SKcz$E03VHjn^ z<6AW%Q;`KU6c7Sz1I<^EO$TOFkoFk4JX%BV3@!P!Gt7=4-fn3!zUTWTmOoVcb-E;3`jZJ91uH)jEl~5ZsdK^H z`D+B4L7miINlGHa&a|De5L4&D9H7!6O}FL^s=Fp|y{Sz%Rg^^4ongn**~z&xk9b?dy{$B@9tPQB0jLv%jRD=igVIRV8Tu0*@#7`;RX3j-11Jqm zhvDP1VSk}0!il|k2Dv=*(1UZclAsXY>A7*8j|Emyq{}~xM$Yr-MGWhs3BKMgc>qH8 z82aHI%&&F(90>0^nu=9GfF$ueS!Ycfniw{O7>H$!_@rIAcRai?pl;6CMlC2x1k*-Xj-Wn^6@gp53fKC%U~Gfg>A>rsvp* z?&sDTB)VP3vTo@&FD4Yu?-9A3V&DJJoKIZ;%*qnZ>BHE^w*j~zl>Upy6;{a%;hb8Q zt+T~s?WQp_>Z<;qqc9ZEeq2O`Ko)8=7YUA{04ltmG*M~IN!k%H)ii^HQp;j4C ztY6xq%Kb=Klys;+<@Nz9d?%PMrHl*@2Q5(X`>;8Y<>7H)C5r{OP{k7rOn;Wq9ostX zJ7xS~^U@Rcr$pNqCv?mH+IkN!s@~zLl3;@1wGoZasIBi(37+uOfH)M1w7<=k>Yv7v!h1=Kvx^>@rk)13 zxz-##Vv{S4qq~TwqA1b9IE!P;Et!IM{UAl8yPPt2+5mf6Oux@U%To8C!hp&guwm}^ z@Mdm-ujp2Nh`~~nn-h(0L_`L~9}n^A5aIv9!YB$*HF^LmAFQak6usDw0h0#L3e0Kk zZrToyjr@GA{NrbzM=9I={>ih+Ftq+OxU)v^{26sdlvh=Wt$)(H5veL6%Ic?*lH-i7 zNshzsR$s@JY^~oeaMf|Y7dY?V3mkOKaKa&qaDIk`zN|dyF()a;#yY+?Qn#hxsu>*D z#&t{eT?8MGQqJOBK6G>{r8h2u_ugLPsK&c+Xud9MtE2CaFm|zJ?EJ+A@}DPA!i&u3 zI2((cTkOJ1^%qQ26YTcWMV&X^>F?CJBf2V33ym~pZR@U%`j)w-k3h7r5G^gfOB5Q^ z>^F_9oN@x(;Ocl8pSSrt_A?X24I{Ltb#mdI!l=fOPOSUu8DWICc;pDH9 zbJKC+^D^jW;^5u$w%>d}Flm=WuIM!ncY%Olk=xH`Y}`Sym#aF9$%FsSyiJ|>h-@_D#qhj#30}aw>W7E5+AgL&%t=&hp#}a$!GvxWMLe7xtZ?v z)2MK(zu5HgG1d`w%eKZ<>>pAL3|$Rh423;~pLYCEhZlmH7BoJ+Y{#eKB%Nm6!+m$t zh3-_J;Dj_7Lu@gV3-Y56`E0C9aZ<0kIA$EDr5`iX@^Gkjej6fqPNpK=G&wGu2tR4#m>h$DnAguXwhNf>EYH>xx4=pE-0cP_oi z&g&umQD(#n$E?sxP`rx4_E(E&AlQ7PGxsI8eI`_EI`-HGthYBc$0o}iP!$C{*5P4k zqX&S9ntTlA%YxG98Q6EvM@IG@+_4u3+lGIio0q@Z2yj#i>>&~%W#SfRZG(AQ4y6Kz2MCl#CpaHslbMS9Uhr|&9-qpRf=|D4rhqBLdXXO^8b*vUK!Tu* z|02&0!=~J^(1;j7U6G=!`@j+%(arfeH@{r|5}cZxPSAMc1PXcze>LzOM2>Q{^nC`_gv2JkWyBdc!`(W}Ma1rS z28Zs5x@fG^nzkS7Z8!@ywZosO766u2Jx`CeqPBCe3@gs955xY?0WlwN3DGhTNfZE_O3-TbeO}E*KG;@h4kG73YWx1iwN|yJUAk zx!=z&1@rGGFBNoo2 zT7Cl1EXlzAU+pjo2I-&KebQr-x(mrTXh&W*5)886Tz%Xg*G+M2zCJLnJu)95TDzL9 z9rWHLpZIDt7I>b(yy0*%G0-~4hG+IWK~n{|Ka!qq)AsBZ4$0*VSmD^9W{zrI2v*3|n-__rc; zIHEPC)?7)ekqE1W6Ja(|Bz6Nx-RwPUB{ z$DG0Gk32jc0ekG$?}X!VeW6cTBqR7gQ7Q3eMNmaXy((H>bMLEN*I&IoL)Ijl4^57j z{Nl<5#a8o(-(_eN*UJIglzs+b4s2u>NwZM^_1Jnz2aLh%}j(pcYK^LY#+x$vk9-cu^CZL9?w+MFxBL{ zy9-DHJ1}s7{q$ue7mLOd@*j0Qo-mU?8ac68ZLHy3vYe|Tp7adhxXLcovlezQ1Pq}Z zl>^o|`vTHv(8QTaE+H)V8jx{*Bx${WW&WH6n;k;U_XLB$)S>|qy%P%((j^v$X+9qO z@qxov(Vw~WEnW!M)76_0vwPD5BA+7r8To<~In32P@j_;n-E&t>Csj#B<;;)}RFKGC zOufm^JvFeXycdQzp2+Jtp_@S{>-%!-SEQrYriY`Wz$?2GsR#Y|o4*=zxTtq;C_et~ z0UEUO$B#CBgfM(}^OxVhHK9EbUF^Uz5cTX(rV7^X$*W7+>MS$lGZ-~b!T6e;T6UO_ zd)ue-(kqP1%7wgK%c<$IDfv(#qpkIIawj&?iD|Fk7pJfW=rQzq@@?A;s z63vs6_J8{xlRTAgP4r2FIL|rt#`*}B8?=zkyPQ*XiL zl2PUcqD`gwQ@P?5N3JQImGCdIay?kr;KzyF!!>+KrQ$>-=Lk|Jo%2iC9DTCZXFp;# z7x9M4&ksU;bI_+&M2}M{5W3ZKY1`zf+y_Nu<>uNi2v7i?iNI)bsMp3p!E#d7^e-!| zo4jENdvCrPa&ZMujqt?2$n|3}^z|zI2Gbve*P!rex5@;yUPr{W*TI`;COE`MjcL;K z?&FBZbSHu$M(U<44Mwgz?F-nxFy(<&s9&|7#mBB(&o0UBL-**# zgRDNImG>$oJAFn;jw~xc=2;CqL~b=Uog#0RBdt^e)9(6gxU8ELm5G;fWIfBBWnc92 ze2j3K5Lo58g+^&3mE%<~2*y(P0q(1i%GwB?vi>^@=1|?eFZCp4`lR^pESz58N7!c^gYmDdXJbzH8feFp;t} z5I8^)4J1m=ZD!yxd!FMEYW2psxC~1phBJ>LKy9o)7mehDWoTty*vZX9Y&$bJ2K)00 z9x|JjyCsodN9ZLRLQTqJU1jK?P%8H6t3eI6k+h-R$C=D9{TBKcYZY-H^l}U9kXV#E z1s%6q+z&~hBQA%6x2ou^j=0@PBGk5Kt?M!%Cmk+Xc{yOg!7~NS@&DC(U z*Fdl{?O}w#xRE}tj(?mv)pyKxL|Bn6K2f0~dC>YYFtQCbmUyz+GoExtqvTS{8{g;`?WiTzI3%Dd1`Fj0L zTp~597#+OE1U-zBu5Z1s;0U!3fNRI@k}O*6spQ{WtK)cgNCBz^7OPIc2*}pkp9yR# z_VeXv6|RGa#A&J~(A!L}gq)NUpGg@chd55ig*xus^s`fX0O!W6CyT2U`|p^fJO)sy zF2-~A%I)4iyj~jqW`Uv)sHShOH++7OFjm0!LnoiN)mj9#u?-`nP_JdDCJ%~fSx+p! zO=44(;pKxRVq#p&1HswNk=65oj`Gv^o4gt%HTw?~mDd|6vsLVEG8ZMeE@FYNT+P!& zR1bO;^+4~4cgpkMLRnHRGf?HWW^57;<{vJujLj4EroDhlW%nP?QY9@e+LqS$y&*0j zxH;5DmXq?TULjN)-9@NeH@e@x<1kD|G|M zk0|za1L|!xq(GQ0z$m@}Oa+`e)=Tgi&LCr80eh8q@b~F3DTOV;QkNw`M!3(=)bQtp zY8f8wpxYvg#==jt>nfE$hoYaqiHp1>#U&*Rr+z)}yW)JaTRu0h_9gGNQ?(Y`X*2yz zuIgJo{Mgdm6eJa(&}*&5>$)$nJa_zsI4S4Ur%j5>A5FkWc?02}(?|)0gV!_FI?S$? z(do6+sSyKUT=`e-4&U~DIhWYl8CZ^wwJRS=lR6_lp%Y)Bw~jYf&rI3qx3XHQCw1?; zRlt#dJ*QMXHF~2&bbapoMaEVZ6)ME!DMk#)r2P#%aEF8IV5$aK-hkU<&+FCKD~6sShW9MBlGmXBfg1m^r483RoeIp7iA&E86eszGFYh}F9EKZ1@MapNs?^87 zx2bN`hw9erbbS&DeCBT+*f}Y|RI)Ahmscq%jKr@Odr2Dedp>Ru1to?`h%T(h?wh<0 za>BF(_p0(*8C8Py=YI}!5P34FW`mIG-#0oUa~{Xdts2;Wy&P@EXVxMGYAVR@{6{~RaZ z*C0YHGnI^!k7V9B^k{VZ98vchN{r8+kDxDg5S$v5DwXJxwlDE0_+SM7E7L?=mTa{KS_@agHO0g2+{~MO%q61VS0A1XwA)(Io<<8>8ose6kn$i)ng{mull+;UvSF24+V*UnLFBt~4x)XT%k_%QtiAZ=J4hId;Dkp2$=rj;ZALkGLjyFvo zZCkgWmD@FgRS7{=Lm=LG<`Xa*7w7VyU)*)P%u$i-5|MWvAvogq8*zN%`&1sc)LhH; z*c#N)&UZClascK7l>Y!86#3UU-~QAmKaqY=aMR;rSc|J+gwN{UPGv6^iTs}rq zR;C{ktF{q^P7e#Ydl$AE?%K${&@dkqvJ zMtb2-+C0~FZro`mC=}zobgd5zbd*M|+I}P?41Ov`C!Pb$`EjM5J-2EtX4i0=Ctr<* z=W-2az%^4fw=;bNuq7%c`{^fBi%eHj@n1^R5hkvg$OzZf*ljKZeQ0oQWR5$2SpCsbbugst@IY2Do6ZvS{QVQ9*|=` zUY6K$f7D->OcAO2?80(|{WZ^0$VvJ$4Dw3#jLdb1rlsQ@~#|@e#VeT@vBTM zj|Krs2P!Ue95@gDAa9lkgHF7oUW3R;5UHY&|9 ziZ3_U3xU@xBopY&9ISV|HNhR|I?!6b{q@TDVNA)ykH%Sqi5762LAdCe?#{AQ|WKma_u$mX>;aQi_*G(EQXK|oinH7wo5ebdBN`*L^Coy zgJvAsLihUO?VQTQvNn43zlRnKn7v#>fS=Ci{!~Pti}OVpS=FDMWXMN01>ZssOMCt3 zEl3zNHThdEmX6GobfM^P(0uh9*QMSX^ZqobCSB!PZHWvp{sV!&@?&;<=6upYD#q&{ z@F2|Rm(Y`cdRZi>yzx^3bp`j=B%m$fpiHJlLkm%Si_Eur>Sp9>MzJ(qbJ)Kb&}S4i z1R@Z&@2YMDCv0l3RGGOl_!8Gt9ZicKXU6fkG2a&HWERhaqu25^2%W#kW-Mi7lz=3+tnpxC;g(=}1^D?8_SF8>y)pj1~Z(jl_lQVxK{C<%_9iOrUT z!&k?DRi`g4+6Ko4`1?<~yH~9atf3c%DAFdXbj;L1t8xCbM}~QJ!VOINw>#_@_CtGW z>6ygo{sDs+S@!3mKH_<2H&UuSfF*}-`medZ|KrUeuQmb6gCh?&VwbO9{N5_&qqW;G z=*c#2QT*b&%z? z(a4ypx)~i=V0?Xk8)5@r5sAP1y%1SwsEBVA3VuwGtsh1_{U%>{c+1l&;jL);_?=D8 zrwfTtO*#B4Qj+mY!JzLuDk--u%d6~Sb|A&8Uc%7hpWJQk2yvTMn@tny41A7l5BT36 zBjCju2boQU7YaqG+q_wc%o0{>j8=)y;;I8EyRDxzb(*VxAZTwjxiQ|_Ch0cnnq6;) zN6@m3l;5@0kZu*3sS@{^-3mCNQj?6t6>ad>^9(bL!otyCRng6>LAN7k(YUKqZax}J zkfO#`dt@B`C^o2LUq7=OGQ!6&ym@_o^x>mRBeP|fkMMWAEvp3ytA$6rcPy;Fd-dRB z2cZZQXR$2KOuW4U2oIF*>bP3ayiZ-W@* zMU1kJP=I2^J0nulQeo7mc4BD9c(KR|R4{SpNB;NB?SM6hcj?KMSMl}XN$fE>=}v&V zlh-POk?gArkVrp?Olqd_ynvKOOYa7boIDQGWIuoCW;3_$4;kQKbZWvckJmdWDM&X8 z2tuDfEZt9izoS=P`*9I}aS8r>@vO4Qt8@nz~1oIn()Iogmc^6u% z93GYW!^04wUtN;)SeNtFK|gy>+tQ;M{dxV&WaIZD1?-7B?urcdS_$u`S!ki8YGy2r zN@1jPpEi2>ZSSsHX6N17$dP5a2Qj~05_ZLIyVN&~cEgz`zj(AX2#4~WQElNwcAXMi zjfQ>f=LhshjEwqBDN%6@}W1@BHI>_GMx4>m=9J+YGKGDYDQF2_K3F^QphH#fg( z->-KMEbMS8Q{u(vGCil;bvCju9${a(u4cX(l)nn1G*kIH?Z5n8BwOyF>C};HIK4MB#QkJHfarG9mLz-^ zb){7J9%`SCh1iPC#NemV%fNz7W@{+$gdZnUw)f2jlCFP3Qrx?gezQWshA`Tv$JXTQ z6@!pz$~T@c6^^fl6skF&Zi$q?&||vd7S6)Dxe|GCNMxdp7R9JaGH<}siC0U ze)jGOjynohWQ10;z$^Ooj5Q5b(Y!AGtO$1(*7paQBg)xz_SD~0A6V@=^&yNfz>Yl2 zK)2;Cb#hHiDy6b~=WzF;b-r@HPdbt?`R3~z_@!zvl3BYYBVSZ)l{fhK81=(ilHSWN zYrJl#FMUu(hP5JrKdTwtSc>B<6AgzzitpB3F}Lchk|e9nKMfO1?k8XAFwYd-+@Ym8 z=es!Fy36mCOtC1X>6<(IzqmgiuE9s4e{#Ex0w%1oXFp`$nm%H9^GIIPGQrV`T!k#~ zL4;hYrrO$3`TIkInC?34qN1ljN|>+d885*j`rRUAWyN$0|M^6myIsMbU|_e(m0H?k zZfcBZDf49fPW~^p3qJw)IOxbga=Tg1>_ojIrw~7c?Wgzmk(rjcdzk=F$A$h5iJWi%3P33vh+e~ zuB$||)8A@uH&3wqEIu_qrhI5nqh7I6HnpA`)>jO1+b$=9T1Q@-As5rwI90P-#QZKU zIsrR@_dCJJNRKXq5=$l2ZlpZIq$Cya$Hi7?M_8Y9LswJ5c<)Z()|trpSGk2&%aFk_C7k^W!U9mK1cr*7s5M#w^j5)f$l?^-3>&^(7B2RzCJ+; zWmH}4qTJ_rrD*MI%gD%1chfWR?cGyR=#~#W!mH28yAYrwJz!!5&RWpLdONk3d{i%Min&?ND+FMgiHK&f?)P8Fn?#Z;&dt?2!imqpqB zCjqYJZ2dp0#X$86-5+lG)0HWYuL0MXADRV_sZ&KL%Z&*1=X8J!7_`~G!2SO=wSr;u z(}agO|L)+y0}j=v)*p0|7vaZn%wW_sTmz5<11hT$qN!MO2qvtzz8E2aj6I{j}Jt6SCvf}905^g&RW>QBP=w&(G&-NH2 z2Cw|Z-&B4&pmMO`$2ThW@bA#y8pO~N+sL;6g}0( zv~(O_g%nhRn^yk8>jf)o9F*N4aj$}pMD3Z$GM6GLV$vfs8e~To_v)ZebX(2=eS1QQ z^#)qa7bHh5Id#B$MEwog1;dqbBPz1k>3W$*Cx7uPdvp!?246*L4fYN90_*P*adNQ> znY>MVV&H2cfi}+ozY&*yRbJTz5~+>a#Sd4IJsEHU4uV(jkBmpW0p6)O`2QC*+;Y$_ zN@ubtZe3hL%41dt7;qC~o=T};Ty7bu=jxdeR|0}C-0Hs$mZe|!6bplHaDB~JR=Rqy z$9$;8pW{98^X|(MaDQANjEgT5&hoj$9UBPe;zQlCfqwDYe=37S(+aw3ph0D`4=dZugt{kkm$y|>R=LrNB z(?_-SxHPg6{;J{kgSeVtsSvughAPcC?%E)Nb8qI%RyhOdiMCF+Ox%_&$%xs_G5XEs z*};~bD;Zw(Z@nAs9FgSxKlDV{8;jo0F}p6(9hGog%})&DTri`JPLh7bd0wh^Fwt}1 zmtjksO6?vGCZFyW9hYzB!xt8;pj;jw#b#vj`;#i_CC@u)XrF{C6%*`jM*iIxZkb;h z>-)qP_<}_q{9vq`mt=dxm%NFk6UEXPaeT~P0z?geU>%kx4inSS6oTt@EX34sbAqE; z&Ssu|>Oh5p%z>DQKp7xG+A0Mu?6s(~<-QexvSe%9hGqx5pyAb{88w8PqBIgpGFAZ;B&GO9x@QDKdfhy`HC!4C`RbPy>J9rD=wqxlO);56uHi*j{#-$TJE9h3 zhL4(Xt=MyAM+O^4>54|qBl|P;>bWqx3)+Z{YYvgdp!@~z1^3R!q|kFd`IE*fm(H?` z8Mmebu2me54a#>LCT08%`YAn+ASk9W_X^|10j(VS>PfJ`C6d`&=ANvY4N^+K9G4~a zosxiHN7(L7Xd~vaiO<~8*-i|? z41O<4p(Z>i%M=esIBrS%xTlZ#a@~~5t9Vh(=WvG~4Yy&U|8+3>3`*;1PMqS`jO6lY zXV@=;km}OxP}_6u9fY?fd{nZq%I~~#SbKUrBA%rNahA>0(tN>3@!=P9Dm$wkV6x<# z<)1Su8r=~`BRBb6Dz$oHNmNukT3XscsqP}*&Wg|Um5d@ zreAt(n!9hc>#8?1d3wt=UVTJji96gjK+~JH6kHMcBoLu|?6Lg)bI)9+Ui?W!F9u;c zg!j#lW(uNdNU2^*V^XeDQ+XW)KKs(lW2Z26m!6KbPe^M_-%4!2oxJJR3xlFVLm0ns zY9JhgtPuE%T?5gYTA=X^zVIRBwRL4JY+mQ816ljdcwZWQmMFErhTpv;I_lHW=^#|( z);7pgJpLA;WX-m9f{cNR<1xld4;4n(t^M@_qjhinJUV0uwXI`I+(UizSYGD`qJ|ru z2ru-mW<@c2$|dL<)?Oy{M_(jfH|othTt~0eS`90_Y2ObnSRJUYfWElxDXSzHZbg?^y4hL5=74K~YOBfai>`Kd-%|M82g+EG^YQssMtHur4TfGcS;-X;!{@F}SdG-6~P~gHBW8c%NkDdgJ;!ifkP>t{% z<XTm8;qa_qB1#0+cOchX zgh#S;3MDkLDYA@{K7g;LOY zNfi5K#M=~?Bv$O1iyO$iU{VdVtSM=G1jzP`+mCo%f6bM>EJb;AB%`lzZQ_g384Kpe zk;Wh(R7y(pTxPXHfF09g^Ogu-K$tyJ`}sV9_;GWM1~4wEN-_MSq~LXuD+v{d-6&EG zDN=b65PhjlTq@W5(uSXRB6CRf#_|!9>*?B$u;>IF7v>xmhZ_<^N><%tGNcH~_74C9*KxM?0HPG)2ks{ynf7&-Ph+hMS;a~ch zTqQN%9fe%vAEmp^z8!3rL^|hxoHp~9MJ=%??s*PqQvvZC%rD^{^CBKxnId~=L?=|4 zdwe<5*A_3PH@^l?q7Duvid>LUNT609b<0N~?I_P^fZL@h704+3v5z%H;_8N#ie~{^ z%x5iBZ6jInEC}R5H~I}P=XW8Pdf4{zx86S*JbsnUb5zCv)*02gPDsOGXqMBu1&p$` zVIrel0sWR0!Q_Ik>+4d=)Dqk(!fkiwwp8!2dcUygcE}L7$~b(DtRD(z;fi+gF-F_r zgcwFi4e=SFs%3KG8LMdEP3?JY9Mzb36`8~-+mVnNuvgqO5Eu-4W+EVOtQ_}gYUeup z%3<}uedCv5Hd^~P!h#uea{=UyxgsIq!N`<;)otk@UwTO2J+l9-a;MX<{kJZ6dRxa@ z<4~2Sc<20D7{iIj zw^%LO4Ovs6V}=K=H4~w7*Mod=(ND^tWcBf@lXp(gI)+lQ%5Hc0F*q>|G4A8Yw!pJ% z#D=R4J~;}eo;m@iQvyUjmk6PArq!rO+W*%qUlLA>)#N&G!+m+NO~i#ps%rV7eC~UY zdp#RqQvD7oao_Fy!59yh!U^UXpq{&FYCuoPwtKA}|4u!xLM{@a`F83wgbK0+ePo_v zWSD+$f?EF8LY4drCox!E?2%30yN0}iEv=&!+iu@_bJdS^H+A4>S%O9REZg=F)bh0| zU0x9L@75?Y!>4AVLUWdUq9E~PIUqahZi`BO5m;$Un?2aRNVQT9Gw$d}A7qqgoAi?23JXUDvPq!GST! zRkafZ21uZ@kL2dl9%sRp!KG=DrOUaiCBG|}Q1~zXrsR%WZEY7=$;*cZ+~TR1tB&u= zz4=x+ci)a)Q0pxx8n4^ON9U-B5>AA5; z<80M1S{I2CofxU7HMxWh-34yFudR9vQUCSFo&klIQ3QtDp)2fMiF2wdab)++YKC(8Z?$+~9J47!x`F7;3>GKeIWUNi z0x5*o(S{U4pqV^d zcACs!L1soMERgahI;=#akISzJs4PA^SmQFh7PwN=iszy-ouw<>UA zVt9Bf+|3vXz`i}ZPZuX_ZZY&dy+&~B16_opSAiqRhyV#r5W@DYo$UoHr;8}3=rP1& z(EP2k3gE@+c#5c^g?vMbM$jTce6(F!4pNEBKX}fZ$5vmhzYSGRFrjYqK!Hwg4Dd1F zy5AS?czPqnZ3x#_HxS_%D_5xPdPgLa!wk${2atJol9CbdY@hTjz3|e&4lugYNk3|+ z90J6<@4)CUmv}v}byQb1qBEBfe8Io)Ws?=07iTPXQ%(b3Ktq;yHsd!dJ%ap&*y<${ zq;A70reCHs60;5JDhbTUGH!uKK8Vej;~8Vp=rAjqXcU%D@*SO-jgLQ1!HZlq70MM` zF7q#=6#Ew%8iaCSTa^Lf*cW@kk}o+veNp8lOm3xV&-;WOt-Vw!VS8 z68T*p_%5>_k(0 zqQ5al`(^~+YL$Ki=M)UrOMfBr9oYp|&MT&{UOiN|*%7Mz={cynGeFxM&(S5CBHtq@ z+&vG-u0jGg#pqLhAL8HmE^K%xfi29QCZ|VoJbCaJEG<4Uvp|++EV3O2OmWup_3LJ- zt2DhqCxHD`;mo!Anbv=2wW%Du^XrA}Z&~O_8~J2P|6Fo-@~li8hj|`d?Q$b~b^L;V zkumr__7fJ;G?Axx!w)|zunVQcGl}7veXf?{?i7Ue6Pa=jU1;q4cy3PaprvocWR?}` z{azsu0o;+bc`A{(Pwcn&IPcID2f9bD)}?jj(*ns!n=@c+aA_LdUqDH>zuICBSBX3T@jqN2Kn;r_+&N&f96Gz#-C8dPLs0fZN z88S?ej~{$h_!T}y|J4chhRXV*8~6EeD3^7cQXIFL|BH_3-j^!aahi3kXaWco@1fZN zUzp29rU^SYtuj*h@~H89#XuY`v0xV}VezX(_}EB#w3w$r$lviJ>Mg-wM3tz3aFGx` zZ8+)4h&$&uxIa|x1be;D(FLgJGt%$>^5$+|v@r<3-} zUOG!8awuC%b#-JgGYZ|pG#0;4iC=|+rEafa}n zodq8(D|eM-c5v5piTWM@p)A`ZAY8VwjjM8lr{M;t&;?(~%NGQ^bQb9>2rB$RmMr?#i8HA{`4Cw}m zQDdN@A~|xCjR8sw7-Lc!FksIa`1{81`#k?W=MP@v?8JS}?sMJOJFfeDrl}27(SHNu zCcbTqczB!MzS(gG-?lcMud_IBWS0xY1k|?8`Df>nnJmZu2+hn$158Z0@M9}tBqi-U zhYW;)1}6QCTwyS%JBO4?HpdtYySLuDU%s7t3-V2R&Cb?;R{p8FdhsEz!-A_Oq>Tz= z3b_@xLJwz@QccPcb!$jWU}j}gui}_%Yb&G#K4^IYVTOa6EFSu5)_CDe&_0tlclK*a zzJ9%dc0$8Dx*uOiyW{wVEm#$U>uu>7%RbToE62zo7jAx{;eZe!pm0;~pso-Fps2!NnZ;3J6}P)FK9a8087Y#O0;HjNYb z_FU!8Y?^*5CkU(#yq7Y-prTsE*l-AoDe9Hk*YQjm84g%}fXzBy0ViQO{KXw~TLt(7 z0-X+C(@xdzVSZ#T>I0(PEPEe8=fIt@Aa(Bdl@40pQ@{_T_Ng=6z#CO-{9S?Mxh6xC z@zk?eIPtQ~eqj4^M;)~O?gl!%cOlGwU#}jn+4pz-orK-%`}gY5N9)oQ(z~j}LUt`E zZEv%~w}4Byt-xcF(6!oYC`5X$5ZCc%k=b$(=xArv)JwNf>eh!8AcO$qUm&LC&?yLaD$Mn zqL!<-D!^#*(4kW>4_bHNgDZ6A)kI`&@Zn~=vU2Cr$iD)3oeA8F{X*>gtMgLAgN7oZ zqiW!-%`+!Xp1{E_Sfc7wczt*5n)90u$=N z-s4A3n0fSxGD!Ml&biEmpNxXm6iB$Yg4o&s1FBhR)?^w)mat6bX;sJn@}48usb*`3 zHD=n5fPTlHX7)W0=+q(yOFJ)AyCm!?zF5<6Oxlr0_A?7q}u)X*I zg{pJoGnT|GEU=JwCZ6*vuQ?iEZ`J6^Hg3F@6DnG%=uFLPthrFs=o>@D1{_Id`aO9)VYmgeBD1Z}wP{lxK26^3Cd;7ipfDH$$!{hRa(-76YYyVJ`WJ+&_i> z3zLI3%G>R(jW-$Sa`Pw@*J-njTenIA8_QgpoK(B!IF$K%^z|`2F#n|ys3E_$m^-3_c|38S2k)SVeCtTB@%46BMtQlg zY7zq3$Fk%|X&z3iDV;T#+U?pKDI8u{ZODPjn{V;pn^@b7f@gzHrok^M8XUG{CxiQy zRUufohidkWSxmaC>OkKw(FFuSX8dW@0yl8KIRa*!oO7kZRc-p?~}+V50)V706e%!)hz{H=k_#%f7HgN9HNI@(9tF@ zX8MM~qF#PE*u_OuAynx=zl~vsPN6M={O*QQ7IAa-LZwBWxR`;9&*gbcw9`YL%Ke_~ zwy=m$h&H%rfLH#SIG2dJ6#jhFu67oCV$4o@T|rfC(1q~iYG<|{?Bs6e2wI|4wt4f~ zd2lw&W-PXPJoP1X4Ae*&D>jaO*jzUCn=ZpKpUN_c0v4(=z9fGuIKYE^MX@ITr3ZfN z^GDMNC0zjmd~3zm=bOKWg*q< zg$GMZF{*>Y8EhqB{nypis8-PPlFYg$=pn%)pMuMNy<@8+l+c=I;u8zv-bUv&LBtv~ z@6`*&%bAAFrSZw%WY^YO0b?8Ms3^Z^e`HVL1B2*A2@x@3R2vH4(@aG6S}17JY-Owu zJ&gD1iOR%J3oDw`TMt%cQ52#T+kviC;f|*LSslr3#^1p0M$}Iat~a!~D}U(W(lN<> zotbY9tCN~ms!=-Batj-(R>ZpzQQvDE-^yF3OW9dwE3fP{8Yv&!UbHiQ;6ZY;LGXN< z@LhcGKk@wCRn4ZY<1sV;C|vg|xiOtThP`jPpp@&H?>bg}Pb1s=63=Ny8^R?WAEcFl z^1-F=ph*&N8twvz=~zn7XZ&|g%Jt`Y_N(56kY9>!z|?Vdozsk7p^_vl*V_QtxK{yD z9ABocB;8kss~W1YOQKmbh-(+f1JVSQz#;@{d0T5cD-d1O>n9WwkhKgaZp*pt1+0jX z4_r0+8?gsW-_)E|GjO=s>;SetgD9W;Jd`QPKIpbNK^n9CnLVgWSEi28J9#ioFMmTyX z6P8djCC>dKE#Bf%;i(Xg((g2PL*A6&8eo(B#JbT{M=L5#}n8;4kAOyMEsYU-OYg!_G{^kO1sNZ|Y z6Z_W7M0X@uj17+%wMstc-au)r^FE*+P|8X^`1>+`ZfG?pr|80J-1n0)(RpHz%1NVF z!SwSfZ1JI}?DDZeY{5p`!+O~BBj4`~n>uZSi`&>FWPOL%rRi{2T8LGEqvm3#Jyr9` zrZF+^-sR3~?72os#Ky&W^o=inD!Z>5C&}V$_wt5Jj!kJi@1L0~&5g!vTs&uq_vdb~ z)-aMwdLc#n=s9F%&)brKc>)f8=<2Wg?I_9xi2+IQiu;6m{Fuf+LWjf=6$&5QA3Vj3 zfGf*4Ub~4&EZ1Jm>qR6mQhS4&>^-#C7h3CtpBH4RpLI~o?35CF>8d$?dnqIiQ4cHh z*5i9KCY@bZA9A~7rk6^6j=2z1AiwCR_V( zy5z(R(>JIYCNmsdJfn+B9^1o}%7=y)f0wRJKnBU@rHpk%Yu%$y91Mq5%#Y1B_O9mT&3jn)iXf?owD1zBIa|%PVc3 z9{F`Dr%_k?AmW>#{bG?E<4NLEa>LA*`0cWQgIty_^%wn2N&@+IhXNqq{_L9)qU%=s z*-q!{pQOXZ1gd5q^nrA)Q@~@JwQf&U(NHsz8NuAhZ7ROwp3Ip)2rL(N^@%MIJ_wlN zl-gsSj2lQp3se^HkcA>jNn#nb_9m9@4q9Vw*sUk_sTyb6l7z25q^tET9`5C|Qx4fr z^9k=Ca4__o2)Tv+Kj}Hz{fqlSHghBr*+lsC;3kmXH%R0C6)JW#mCT41w|!=<7f&Ik zW6kJ?_*@M|W-R7L7}iK5Ls{`*h)!|4z&qcPZ%~SQpDB>!gSCP58pzhAfZYGoY2bHc z=XEp>mlT3D4$Cd>&y;|lqkW7w5=rDJRxEx9Q++EcY}3FKD=l!F)S z7dko30R_GQ&;v<5uB9GlwWmXQIZWJZ3Imw~T=UD$5!-pAboemVWGz0ZMn zFNnGNzabB>T0QG_*N>03E3cfi-dFqimWS@{4ANvGsN=l{hj|LEANTP7lLCDE7u~2I zj2r>+&+>NJAo<#ZFF({%2QX1>sd+ZWsj+^T{S!niOk>yBwj{|b({A8P|ew#br-Y(uA9 zP_-LRT#v7hC`gU`3fCJ)c$C8_xCow5dvU(an{N}gWA*x0*RI{~vNb%Y6LAoI}(y}1dBpIvxTlMpwA?K;W&yy;N z>v1xZSU+6k_W39SG=qZ`5p#5R_=m^1VYEO^8A z&yq2gGmP-2ENAm_u1+je6krgmAgIu!8Irf@fheAs}HlZ7oKzo$g3IE^5vo$cq{*CFKeh zf|Y-SR<#--e8rspB<1anFdWB+x_kcv)_lj5c9SLhIBA5kH_@$Mx5k{K)U=x<(``yR zHm#9r3UB&wWuUVk90P8SC^o`f%4F>*CBww5&>R-DTizYtOA-XD^mCZ>5iad=qwf-! z*k|tfW(%11IGb>hO;<5Hn?>O5@v5Tdi!e2OMU;wf#Y#br@jFDJ(sFV+FCj1dI!V)2 zGY0bt9?+%+8yEPP<(2ixa%|e3gz#ytFZ2u~1Fw0tD$Bp+vbhj3L4w#_*T!~xcS8EC zq?ASxk+vj)+kPBE!F(-)N_SJDkBh{RB<-y8&YaMGcNOW^vjA6l+b6ftAXDHvws6O_ zVzwxa9L`8A-i&#&au9P$o*qIJc$@S~v7qLMr#1)rvb6wrZFfI|(km`|zAZbpBZWn% z28oU`Jgcg9fJ>Ii96ZSz7Ll!CtAQPJ6t7p;g>C}(OEIRcKhIG0XSTkGAh>ns%Mp%q zkt4?rMUPzgp&IhQ?&ndwd>TLA!oVx=H=F~sG2OxvXLn7vhInP}TDQ#S@jx%TOCF&H z47!@!EFta$|23y1jGo({m@19Qp~>i48?VK#PLk{ks?39vH#3^1__yMEjyi|u-@v!O!bmj$11 z4(Z@IV4Ud{xE+H$S!%O*e0zJlzPKBuZ^-DXT$`DZFvHKc+f)vhI<1Fa{^Ouh2^-|= zVHA=~rbforM_6}`HWs4K4P=G>`r^)@Uli$Ip{})9WtF;BG#gFM%UjTg7ieY5sX1?S zFV6jNQ^U4y_xc&`-#;mgsG>dz9RF>hLocPFTDA%K;P`O&ByzuA5-Vz{%Kd;o^fjJGq!S_{$Y`a6kbmhZmzMm zKhPm-kXT zLZ3peGLLM?8}(B~QwtBoJ0RBbL$4w(@;e^wMt1s|Ea526SojzGC4^H(y)%#KBjHe~ zqTaQb)=&d0YlEaDJeH40+Ce+j7hkYNpVM;u)GblTV(k^_#-3Cp7me|gr#ZC}Un@od zuT#gjY;7^0;ZN!ssY2hoWdp#jNI3NXjo_vqC^2`b+m#yp2NT@6wDqlFwuxeervQM* zYi%oEZVHvXRt|%4G3W>4T~gOt>@Dbw3D+Ku8pA*$bcQ{hgoS5#kA1h zzt&;s`HKl#qav>3!3-gx?6IGGVyhwFOa%|K3AkBjlJt<)^UwKEXMVLDk!g68s6(b0 z4{8A3jSUF;(*^gv<=VWas_7-ry=({UN|e5z1A5!{U!PXGQ`F(PcP|IU8A^ZvOm z%2qamuj2ATgWZdrzjxzSs?gImMZ>_dH@3m6KHEbwOrB}_O7n=?-KjBicwZZuY*J2? z`pjw<-i;$Bnv0ctT=>yK$NS}zrJ&>VSG={Revo#YrW?}GtM^#v5XP1k0rL;VNP@T7 zDJ_ncc1eXK3i4K$?=wdA7@;vVLXSn5@(bXuj<|_~ZWewvwNK)kbG=6Y`j!n5zBPzd z88|| za&SvAa{|reOF$eZK)Bc?3vhA__4~N`8&=kyCr%z>9mv)@9I{c;=nIf&%!FMjrY%3P z&Qy0}<(cL*94`8P03mL2zg`!e8vb4A5AO(AsL80-}OcU-3%Hbym3Jt*NH}ZzuhfbogcE8SgDTH;z z?k`?`aQ99EeAWea+@V=UK~sMS!m3jTJ8GbUcXqW&3HHoYbbL^p2tRe0#>Kph-!G(< z-!!?B+1Hf|*z!<}bBah~mxR-e8)Dbb{Q3M^wHq#v)Kh${f>)YCz@D(M%@q=SZ#eZ=PkrCMbl}vwMV{N&KpAUTSsu5rc_FIndcI0Y=Y zq0}CK{PCRXUdM9#iuGd_b&iV9f?|I{xGPAr!Je7u8o?CmYF~^%eKDr-Zs6Dn>u1w% z1UyaCYN}UGM}r$Zjcc}|<39|qYV9nROsL)1ToI0Rz^?ZC#;-}j&gI2XgZD=``%!p_ z{#&uHyR&xL_*uiq5w_o@K0->U+E&T|a#gP$OfsOrv)-k?m_Y8dI~LG)2lV`$QCi}9 z^2y76>8#J(Sm`V`Ij&5;uBJI`2Zi3coB1nC<)hBa>pyG{^PEoKcg)Yv_bhie?J)ge~^1ZO_BrW4-Vmh_(vrGvoA ziLExn&A(@TlDCKKnE&2}?jDKx@qbqLvG?c~=E9lZfk1tJ@#oF0C+mp&K=*vJ+z`Y^ z#DFXW@r~|a@!MS@VE>b+5*W($mIKU8>}P6Lc3jJrVmf>T)OR3$C>#9uFh`aD154$0 z9|o;fQR}o|l8s*{vwjkJ(X~Wqp)11{#sz{#UlRq+tNv(BJM9>-)2uzwFEw;+JaiCF z%9IbMWl^oS-c``E&73?22Mtk$lUy;VIw#G96KMMb&$)Nca=L0$w7UQ}$%9XBfyDV` z#5=EPj~A4GDgWS*sSnQ z6~l(Y4f;_h&~wbeTMc+3qfo48T>?{Pzl&_&mG3=wco(RiQ)2?cFAI#>8==;w+4fnX zCA4}EBN$#0rW=w9@95$^@xx{*9UfBo-IkP8O`A3#^~zt4=SQuqO0E7G6o8qHJuWl0 zpk84%2GkMHY>c$=N`W}oK2O$eWtzCzl}sDL;9Mozwc~x?|J_cZGT$K0?9Xd3H)!_2 zA~h(wacK}rjg96Kc__7}r{Pl!Cd&H%l#a_%xCN25o9|9LiMTFXLS5(O5BznLlkeKs zvC^87Z5X++LQxQ*!&iS_=16stWtEkPyw+l-O5N8QJKQm{>NQiwpY05P$i{IAo9g?! z7$CeHm0}L_Y;56aK*#`VWpllf98B#{u1xh^}ikOB?eVqBEN0#DPV9Qkt zJ~&O`)!A|O2OnOpDN6|decB)Wi)#XUM#SZAIpB@CIqVnpO>I2lEYmam3-WKZtEtU% z*2Zwv(2kt+Nc9M5tkjrH=^j{6)K!Y=eX2KM4ajwlhN?M4#xxe{w{j8%WXcW>uT0(> zWz*DLYN;|B)c=qCpA}UVJ<{@eQ@{nkT1y!fAj!7e#5su!DpAzR2V!$8Nxuqh`@idF zL{OLN$E${sp|rw>Xt3|Rdr#&yi(9%E=4yC_2N`tCNz#2*eFC^kwih|DWCfsy7m(uV!Rz zYZ`hKCy6>GEBQY$5 zp++yv8m+qBXcN^)=s1jnGi&7?G(u*8O*+WqAvo{52-^PZ&!N+ z%t)lJl<%^Ay*A4d1V%)u?Avf(g81V5Lro-BnzN0MJFTA_;5y<#o87^myd?h_{Xq&H zHT7|MlVlG+YFF5zR9xprEZb<#dDPSFUmx&Tq69;r@(9<4a=ys~(Z z-M`~~*Y(NY7GmkaFHm(}Q|V`itCYgjPZS9Lh)tuu{Cc~1q$nI#ZsdEi=y93Ttx$~@cJ-7C25BWOhi*}gLeeY;<#(LRb#6fA>(SPwvQb>ao&-T-Z<4@5 z|Gfqs`Q8PE0tno8HK%S&33Lb-uecIBESY+9Ei!w`(1uFh9en=6%wwjEWrP{TZX`hBu>Xy%UOhs;}x z9?;F=_ct#}4o&|S}FiTZE`=z$5_Tn3YvD^Yj=KFgN|KxJFbjBjL8Q4IKakTnz7pN7uTA~g zuJ<3#hMF`&2TY60e>hn@Jh*{)GS)&5aDLTQ{v}6~ zQmsAryU`Z|G*rs`r(1J7om?4ETo(hmpX*{*OGG^TX$lW5m0M46nb&KrDYxv*Ds)h+ zs=t~}KYj@(ceAM=<WaYVRP|Yn7;4t zXQ%WchqJ})2uCa|rxa$71Az5l-&RNuhr3ffcG9JgSa8x7rkn63e0OjGfqroU+Re@Q z3qK?;ORlnx$jW|RdpX%Lq#E`oM!xjp@~!RF{`T^@;m#?x%RK!pIiwZ}_xGOFiSm`L zwQRahipP&0v${aZ?Egi~!!S--<>im{`_+F7g;OlRTQw=gDZ5BVfx=NFjjW7tH%@81 zVyCpeX`jimuFLYmHA@jLb&C6a$N^<))MMwi`%VR5UL>kguc3OFOMBMEFCINBmTyV)IT{m!O*ZQlVsEzu&*x`DIkP_AM`T+7>Of3eo0 zOC@Z3KWIl6Gvpr6y8B&Y{`HwA-{8i8@IMc&BNj%_j}K(BD+dM!AOq&poa*O-7Bvam zgCW~`F*NGq?XAN$%@;DrX$wDP-DDsMz*RAe1_f+Y0= z@#lg>$@m9t+u~YGl(3XFJ@$StNwUR~+g6@nyL`<-tx0U@mvR_EKqy~52PO58V*HPX z^yei`IF*%U>nZ)9aGT9WG6ekv-nDs4fHiJ zw@<$Ac?N+X@nvD3ENCjY^qgH(K^>$VHEO;|YTmac+d?88uKxRI-n^Mgh|wE)jZ9Vm zly$qy99SwRv|jG&L(lL`d9m{=h)YOYEBSV_4F0`a{AofnEm8F!%X*wQl2p59-fH0d zVbqQockZJWB)smxtW*S|`?jT4bh>~*lAX$+?V!b9xV?IE*OU0<>wLmBQ2-M6wX@i# zlG#6&QYpj3;WT|W)%Ts-u(D9lhx%O|kGY|A27pkRN?rhfvQSKv4Zvg>VCN^1XZ~6S zmNc0b#pjRNt97y4ce%$bDykM+$}41nVQ1TS?D2!ejRXqA2@Eh+VnUJFUB>Zw<9!k+`s3;q{+J@^;Vasc#OOhU8` zDjT85VgP0<&g}sNZxD@4UV-YliyA+lH`&D9)`2 zsF;^0o9lmC%58KkUFga*ch!l$!S_~bO}MM2eTT+ci(fs)d-^!=B)U5C0P?tqfZoG8wrXx*)@!-1RQ-bQ0m(90TS6yz&SzPg zquFX+T{OfjbZD<`wQgB@d5+}-lKc>5?)M6xo-N-Nv|9UPTcXv7az}NYW#idKFb$*@0_6I5Lh3&8}Tj+@>&oeh8E|bN=z()KaGW zvq-JBtNA6`Pesedpf~AUo-f1>Q=>W@fYcb*5+9c#R~k0DW{HAo^+~biG&*Yc?DL|( za=J{e93!zcM}LAj+tAb`u#b(ozFEH|Hd8#6ayJ|Va$f1IP^I^GJ&N!1DqXMohy|xD+0yc+@lsx~!evN!oR_iP zCb>Mx=(DB`9PcC4U)NO>2*@!_0Uey!;yxx>d%{~tSY(H)=;5PiY9<^aQDy6AE_s<| zU9TAUNj8nRk%jg&)=wqw@=d2kcbx+Eov|h&qgX(KdlAC~}ykGj~*Y|TOwpVQ~^DtwB~ z45ovW%VD?h6_?U%N4_00^7!`DAmUoO+lcwEH%DHY@cVn^w9ZucLp+57I|Pq2AD1WU zyK&FOd-%SCR#SSn>e6FPvIt{U*7Qel^{}q}k^4N~B1vwYzEc%J`mG}Z$47B5{~K^; zpYgiBa9W{jPGW69z^>u>yWJt6W6vA0Cytc-MwLr;%$YoBpV|3cK`1H2m;^$T?q>h$$}X|BTHVnv~jzx=;jGK8RvES|z8kjVrL3)Y|NoYiRNc0{Oz(4?rL;f~H*2puVz z6FTKgXMtS@Q26^1A0Z6l)~O%W%9mvY*1RfBEs1RMryS>+@Y`!&LqF3p0}rJ=O_Sx+ zR%8HcLkP*IJ)(Gy%w8L+QNz}#UrGMdG@=&#AgOi@)f*wI)uA+F7+x%4S%lPFM9)8i z4&x#eEI-pk(GZ*$1S1FD{y{mu*##<%V`>PWAv-Ioe^rE!tY=i2=bzY`x$pZ;cFW@! zX!9=2Di@q$oo&3tXo+(7GyNYvg zWi}m&5uGE|Wzd5{!w|OH-|V4N;izI1@Scv<7Ee*o>Bd+aDD2OJRN;cL4Z{j46EX(7 zYQTxwOG|`i(=s13oqxfLSD88ZwsGw*@4ygLJ@!Pqyni7Y1dvQ&kO-Rvr>x3u7ZJP-F&J&2*oxBpmt(Q7 zu2S-_Y5{Ut0=%q~kNO9$s5LY~-z_zqhW#&ku@$-$PF1hgJ|o1p9xz6O_m_ElK1I@89|KQIU4M{Qh+f z?Hzg`ZhHQ3HDdeLb{9Lvb#lg)GYzF#Dy5XI&pN*#AC+kQVfo8-p$(GuW?r$M6$k0( zxK(zJy};^^n()3|=&$=~CLIE&$_tI;($qYvshsZgcGf^w`&%zxI@uJ7dZ|=gv?KI8 zSm}}H1s0JO4i`RzZ=Gi{0rHGA{`JC-*JWfgh6meTD=C7 zT!gTmsKWcW@!^#NIa8iqOksvJBEzo~5(y-x2dv7*UG~_Ys;g=@1VT6bt~+Qws@nCw zi(L_`H4lo*OuXnskn|XJ(tJ=TX(wymTf(^`JWwFFy63C6Odf=22gQh5In;;QagPR8 zhBt-lKSh~}*(@m55v|e9)(Op`~baH z4j(f%rf+^087uqJ$-CWpItX#i_qNA=dSLiQB*xrf1J=Pxjo))Mg8FEOYwV|r2o(~h zM!&v9nZ0;9kfTyuQZhJ^$ZE&EXhY7h#i{+-lZz|7)~4X;mUxGaF&axU|BLT{|Kejj zO8qFh2JyIKVqD7Hm@QeB&f?SvV6_@jTa|~kK1PWo!qpN&XMXb zEbDAMM3`&EnRY+6{%ftDf|fbyX+)g(zMJ_U8ccW!4Qf($&j5nPOCv8*$sbuXu2?&> zgq2}ho}BGzdCIoy)ou_yEC(sVu2nl#GJftEv_HB*MaDxt;HaTP$clh~z$he`>OOYf zoN7(*LDsW28P4G{YA+$122a28;VFniH5F2q_D6X8aXR!$Lj5u(qu-sVf=ed-DlY(Kfka8vgPO2IJbIvcsOJPNQ~IPTs+1(7np7Q^y!U~gXQNNKxNpwtJ9Bq z(p2uroU|)gu8!X;3{uUB{oQ5qjtXFN@0)P}hL2-%@92xJAo8TGPI$HE*;GtC7`kVb zAGc;uj#?~zs4Jj(_x|Ok6qR6&0)0++K0}UdOU;c`d&A@$ywL z?}|;{jY@7U zRiDP=&(Z+f``2*N<&xwcfnq!6`vy1J8P^%klq&`m8?J zisvuCm#YnAxQ;tCrO1&yCKp+`H-KR18E{pPCl&=i<;q}qTBL_f_ zFk={J0I3!jUrb8A+L@lktc1hy@D%DHBHSsyuC67j>s@AXDDRx_hVN(XL^`Kl+6gPW z>Z_lXm6tEB!<^SX!cZrNIJOK9XvbBhH1U%D+flxAk`?qkfoJ;gu9U;j3KDvr+sy_;%2S+Sgd=W>X9WCip@b>crly?cYKnxh_C=UHr) zg2ke60j9u_I%jNWVO%SyRQ#?iE&ck#TB8KBxvu0N;14oV7R88^guyu!m(6m|3Cj?l zVoAx&;(=~s+{)aYMyX4~h|&}n+aFL7FPlYEOI0iqJgS;ztm46ETUt^w>AF$=V5;Zg4D>be{<6Lf(nLsIr&nvG#qi~m(|c3~GytHzA*6zJ8Q#lL&^F7=|e zP6@wZ=1_5E4tGslw4tGR>2<@6L-}Hv3(rpp7RGg%Yj{>%=<#=^gzso%P!|Scv<1_B z=dPU4ODhY8uZcuf7=jBrCnd%X=w;?MI@OZ`y;>_1s0+g}FoVl(zZ}Fke_p)a&1IwI zd%9a#@Goz}B%w4WLbz(w)Rv1|6rg!AgHBgjN22F4x97$}mEK&tbLg##vCH~heB{W6 zqEjuUoPp6mvexJ3Yn5BbAn%7`!Ufx3pp~9^aNAY>`4oD%hLz>Z!sn;|mT8&Zi&;d~ z4ZOdP)+$n^{b z&}#O-)sfoRdzcV|_(5nK=2n|klKk&7{@w=D;A(y1f|`XEr;oGN%+Y*m&ViNi@T7<6 zZ;n&7jp_1@cj)8zQmN_L+6A7TO{r@IbJdM+heIa7q5jSGSw1pdrtf#s0v1)u2H~`T z`q-&^R-`wgQR8!2=bxQwxsvDXQf0Nk2+?J|7Yhooz~_K zQpozszgraW+{P|?#Q)Cjvj;Tu92lq-P#4j~06}JV>4^P5pZ?cDv$w_n7;FCDRv!@S z?)7o(c!(CQW>y7l*Gt^3z#L%SJ^xkt zFPP+mbL-`9)NRS9hkGL&j|c5>@Ssy5CJ8?@P=@jI5W6fH3;W=q@P5U__L0=rr&0&) z%=PZ?Dd!-dJovxF-50PAY0K6DW9eu~%_^aha=h#jT95+>sRfKGi<%_#Vj^!iwlt;@IN6`1-L!YlAM|K8N zNaZwu?w%OO{t=S$Mk#(@vp}wP*Igk56Z{)(l-Igz@c!0{0NL`V6s5gnbUL3<;rC{TOQ}SFDT@0o@WgITnrN)@oSm zuSGwfX;x*TBS5bVp{e{4j#kBc6Av~GGRMBXAL_Jav2no(mB(oAQ~zHYbgb_Y6WdEd zqejJTSz*~{WM*9M-7Dc*RL#*6|JrSKXT(2Wgup}<%PobE)6A}W^|dztsgUy+$&Skq zxb8W81aM>5QHvEPEX)&gep~R){}4zZb(jY_4?a~w3k*W~7mV~hRUb>y{cW?9?OPo6 z(u+pog`iU-YR-eK+9>ke%xDYk6z0B)I%{xhIYGWC@2XA+soU(`RycnM= zFNbf>XEwQR80}^=^sqAzG=J~umlQ<_B$C!TUSlfb?Zucg#(ecqN(2ia0R~N1}$|d!19gmc=A3Q5_*G zDFoh(lFdqyzm?k_TQ>u11Io@bu>pY0Qs4FYv=DuqW4@o{Z8EQ(GRlrksTik+R)}|MhF!khEf&6xx+m~T6~lt0^H7JsPfzG0b)a5A=lWVT zQy&~g%Ry=l;ai=^suV#49+9s@;9_yv-{(+IV6qd~bj_}pUvJrvLw!9Hih7OB z%R~3YT|eXPfpWSajz5y5pO(P40RWg1Kkh$F)zHxI->Tu-=LtK(RCb@Vqsr}9f@Z*8 zV$IZ(%A>pWA%MJ)!eX83@#qfEc{-+Uh;v(8DR_iRz+@C<({@joz%)~5Vb!>Cv+tWON3p>Bs3PmTh7JS0} zJpfBA!9e84l<}6c3f6JwaDFs1L9{)g-DAwH#onWRNsls*tn8^tQMw5U z&vCZ9LR_O*eKaDyRDR}V903E{X=hSR3yK~GH~yWfpu=J* zXJ^Q|B&QaQpht+ht_rr}DnA#OCQBix7H{w$0J>tTsC?k_yO8qxVU38Ekfm>~Q2H&Q zZpq=PnHv~Yt;N_4jdqzFa9{&1x--?cYDN!U#7FfB8GMuTk7>vsd2*Q^c_~;Eo8dNg z|Jdl_`L_vk8yBh0kC{PeZOlqEozAl+^L(jUfRt$oBbbh@SQ2|vNaU2-E{6&UtMdQ} z;qhr(%$G7CgZ3n;d^*?183-!{@8R1g&dhRI{o9-@AG}h>dgVv!HKC#nl8~G=Z1BD; zX40|iOb3Db`R@Wndn(2Nv^K^!VQd%0w;{HFZzRCd$3=EAJynRWE>gjbuPQMSSp5_? zIt$7wBXz9*-&-yLF41%EWoLia6InR(<^r%Tq{^_&KJ~`dUUvVOT`MVY%ql>Ae4@HX z{R5MPCu8{#uns@UR z1c9- z1qIGOUZ258v7qbf=4boSWC`ZQpopGcpoXA`F$)I9UN3Jc0Y> z#`{9HhQgizHxzc15_H zJp=OURhGd+!1*3&r)J(9UEE(z{|s(&dogJ17sh`D%f=CMPy*zw+IdRWlIMb9|E&#~ zvX1Ty2(W{CwcnM--{~5eW(|8iqCQ2bVQ;uM8H{0U4MsLI``ce?l8Rejw(+`-mG|ob zTiQ(Yea15VS(AYxo4=Lz*-x)w0eThYwhc_?;!DV;JBx#%0rk;X6Ec0VhJI?n0FGs3N;bvX>OF(}Pc)-JO^L@ydHk=k1LB zjNhu_P{tIGpc~=Vj5o4r!8N_^GW68Y9vHCglgBrJX(s^2Shau`6a0Ugd+%^I-#>m-KOMU0P}SP4wyG_Ph8jVuMeUlktG3kM ziBTPNp<0R{sJ#`55u>e^nz186RF#M%VkK%N=Lw(h_xJthoIlQWo$EUHzll7<{oK#{ z{aQCrmK-Qu;<@A=vF-=?(m@qqSx4el%Gw4ChDSzR^j!$0a%0`9F7_+JE9~b^ zH1)Vku-I6tBPPTC%9RozR09D26ielu)jRo|I%aSMy>^^OfuyWsR(TqqQaON1IfXEs z+-+U>fevWBdJha^M@FsB@1ATojFb)Fcu$=E1G@Z5{2y>tB1>v@NVlfSXoH+t%UPx{ zqp-jv@R!+yrFM2nvDYY}@o)fxp}NZfI zGC{T^t+lyr!!!yQtyWOv8Qy*#)9_Jul{F4EE1=#A!)_A69tgAIdy+BFdYvWe^&p1@ zRtxyzt`t0OFs;|vgglFP?hPdtKY`f%G2Q;yX#lF54$V+6U4HZ0l;&qS7=Q`;ICwTl zwp*=Cep5s#q|eIW0(+%P9+w>$1cm**4ysN6jD0A2^?`4)7b5M`JXmY^`bQVyX;}UjJbm)x;ywWWD@|eRW@(9jTiG;y|bb z9_AGq%hEz@KMQV=l!QY@LYY;g0l8v-VrSFq<=B>RN#k#-yx~aV*-_n>d zBZ&;}FGK{BE1Z>PF<%wxudLr2ZChOGALQZ6SOq)=j28@w;>dJRn$L>$Zfn-nVetHQ#8eyrb63 zG6iEC(b>K+_n;bSpQW9-t)1EA#EiHXkOB^bCP<~ zl^&-U8ynv^FR4F$Nw1Go(OkvUyP=o0J>0?5aJj{(%ylf_6XF&cco6$om*sv>`8btO zMrdRpn~82P**ox2O9ac-Q^HbOjsm^Te+*@fYTedIWbOWBvJWM4uw??sWeUvF@jLzJ zDt4jYxM9>ky#Y{O&K!o|u5WGwnKn;7OtoOZHa@Dk^gZow+LrbXXON!~XG^ZL^)WGO z<|I7tl^dRsLDojnl>g%KbvfL@=gWD%gkDxN4CUe~#@_8zGvq{oqVU6$^|}^@@sn$* zW409;EIJLkHHkP1C#WRWRhIj;nlM*X81`s0;<}XDYI~f#$`UQo)cNF#7vbklU{DJ0 z%fJ(mxmCpoiao0|8b=PG1=F};LQ|@nC)8lier;ZSFA+L8qr`MB7&s5yw4pf}zQVkE z%gC{M+c5&nT1!=tg8OaMOxJK|55GYJwO?;%ci->#IG|$A9{2rsRV|N+T>5w=v4D(? zJ{srtqS5%r*LUw~QFc*S%m)Xj?s%{bw*w+UkOAN?2#NT|)p#j+yP)Pgi* zAs$#>rk^QTZ0c`P9nB?@UGp{of{s^=R{W^Q#N1^il%$kmx-`=TbfY#!V^joN#7gs!+ZQDhH)Q zuU|1ki30ATfVK-g8K7HQgb*9U=J_%np_{4jflEj2(Bo)KWaH$0V*gN$l+GsG?*3>v z{YGG+2B+F;CpY2r55?H5>0mx)w4Jx(8%<0~!QFas(}erQKS(fo=YdJzMk)z7+CcMh zM=&)7Ty&SS2dw)g@So3zOH+YF5G{Cj&?M7EvA-~N;vDg}Y>)2d1A$;c6O-*jd9xUE z#Po+sq@M;Egu!r^_m52kO^$u+i`> z+^#e*)#K%&V$jX`nV*ar2YAjjYw)t_rt0UgmerU$Bi-`!O8>SviyzI$h6x0(3NFl4 zeZ}A#og1@H^)giMSL9?yJoaAl2+piV0p4$}K%u--l_QJ6<60{rVr8#^(9fJP-#4?6z6Yxe6h*l+xPvG zjk;H5)%uRGfZb^z9`n%V`cHVTzw-w<7aa4sVx$LN(+(udRQ}UKD<2$>uHD`Q^pM(2 z!5N_liI7S6E_&HIZp6jJRjHTW$!)A+>iRBERzRrSyM-s^WPFeBI3rt+`maWRl!MtiH@pYRD5?xk7Xv@@n2 zz@OgJt49RrT;NR$`~HZQqe0wSuXUQ`$BJ`2b>b+j#R>*H8ckI3gp1a%5^<`{^~vHr z)Fa^~yk?pOjoxC?&=( ziu5yV%OnMqS^h)ngsKaGSDPvnh~o0kc%wpFWkg~9A<%BN%hzo!Fy4G%>Jo=aHffxSLW*>2D zWpRtLt07T>G0Z|@aEf=NbhY=e1IAVQ@^NbS{1PmWXcIHZXqnvSH5L?pO+RhIGvi^5 znC=RbsXQVY+Dt-t_r58<g+P#w~02Rh0J_4#}O6+a&o{sUu}Qb zECuG+JIIp|#|N#@xVRd+_UcHY(4uZkW#%^TxxJ?}x3~QwWS=SXi$!x{Tev|Hznz?+ zUS89rLHx>BDI_w8nXJ+5_&1I%@m&@FMv?jpb+z~Atc~0Do}a=V+dmuxsI{-=d5)D5 zy3L!Y_MwCiE#F$2y6KM!;J6WA#Ms%I$-O1H7Qz!*&(58@6HI)|Ik*rzM&1iG({j1Z z6c-7)6tV_n(GeWvQ%c1KXgnJ|J?i|Xv5@B*KWyT+~U#fP^n$mJep3YRaW zLyVd%`Fus|%4^ev;p>BcXxV3fVy#UEmrDuo=J355{ceAu2R5G~lS1z|VzDNQHSONd zh){|T>guJ@@pXHlrtUJkx_<6nY?puV#Z?41_(H3L#-kF2a%rQu;a^#~=#`#|W8y|<#Lm7{4Xz^zn|^kX-8!dsq)Ir>a? z6~|q^E|8(ZgkrU&Bmj!m^9kt*PKH3A{~Df;+DQ8)jLx^KkiHOP!Kyb2;dMvTY*Nwo zhv#omr-8z80+Qr4nst~MR&q+CH4`zE7W1vPC%rwfdXc`&$f#Y|p4^BRX^5}*uJOw^ zoUCX0#z!yprMBlHYW=Cf+GV4A&3++Vf_845r&H^-@~;_MtSS4UrHliQW=^}QZi3e%NXOj8qOAv~ z;?K&+)YNq|I{eZQVc9f1SqF7%_S3%-c&k zpL(feI^`%=&4ffv+}#_VvFmaV>3R&tH+j!hx}XBRMn5%0utdw>r|5N5shS!D zJhjQXI^I$|r(@V`->a2rF7n==a?^R{4<4d~4(U~qv}?ZYDEsU{$dcUuR(0|mS%#^I z^z}hmv6!?Vi6`2i0--=&v`&Y~$BBbI<7& zB7{(LfQskMM`&wHI*AEma?zNVnc$ycMO5^tUC$7@1Ao8ABIfAA=?BMZ(NxVJ<;P4jLyNo`I>t;!3w&mjdV01V2vEKX zhZBSTgoEAG>wSoob$a15zuxr;`rDanzjUFw9E>}Y;-@JP*@#Ito3ydhA$s;kvn)6-U! zv54XJOi&45KuQ!C)_O&4*%m`o|9VmX)5(>!H?@SO3ckqTuD$m*>w~rf+s$LOb+PID zXB_rY;|Y^RJ>K4Z9nrsv7k2>w|D*nF|FP)V-2ZhIv+Zxrxdo8Fiw+)MijEbp;=e6J z%;4*vgS>9$HfWzS%g|6<(YYbFof{Q%@U8*NF9P>R2&RmCxZ zhJ%Y$`Q)m`6B}WZc0!)qE%pzU^#yJx!@|5WR}VEf&4wUNTf8TdjkvX{tz?%2mR`6Q zPuAXzR2%`S9G%RYCVA5>ebJLQ+z4uR#FofG{dYpfTIfww5bNyA+|L&^_WS4G+f>G% z8D(JB9v^LJHdvGSR?Rhm5g*tPby)DMX(#u%O0GUg_^7sVSwA^)O_Lm9jk*4Zm0h`0 ziVY^(u!?W*C;5XA)7Sgn>#ue~#7=ur*#fZlxh(b$C=R*Iv+$7aTOFpfCMY4Y% z4qLQZo{UEKo;fNc`yI}2kY0oRZm;WK&2JczRb4Y;eDE ztRT2;rKw&Y39`qtp}i-}c8+&|IN}V)$!B+Ko~cAja_&hdo&<9^Wp$T6?t!;xyPrK< zT%uU+sHJKaPW8=j2SA8pA~Lrv6&*ni1E-vcaY&svDZ)4|I#^)G1gm`tfcfSepX1IP zErqu$l(8!<`uFJGXYD6k94pCP*T=N)>GvnPzktJ&3sw_yD9EpHgUkW(;bHUG$2xCz zrWydZs*8wqw>|8$eW0Hb`?b8Hm7;z&N0a=tTaQZs;U$>~2I6tKxXkadr4^#7G8`8; zI9>|y7*B3apbr&CU2wTgX1ndZb59{%c<6lJXbct zd)=rX$cH=rk*1JQB(ZgW569BS-#$O7`G)LQ`0*nr4|AwLaJA}vP|+IAg|q`cp3=V8 z-*>J^2^-XF$7X~?`Pqv>CBI>&ISf6K906$yz;c^DF9#j;h!6``KO91l94y1G3 zo9BW;Z>MX<3FZMlOF`}!d~b${^_U{lQiWsH$iw4x^wG1AlFlfO;foE`n0JaaVsO@M zDls5thXsFfsCt5mK%pcgCG`~*6#+e83hx(ycrEW)X~K_==EA4j!D_FR6P2DvuCsgO zJM74AfIL4`9qV7_3Ph8sH!2z%C%uPzNV9)+ZYL<~L|&icagLL%37-;8BTli=`bS?4 z`#7Gw)GMP5Wowj0b#|-80Qhv=x+(};?TdeP5Q9|bdGnI7Hw>ghn@kz&Z>I_XP}t#SZFPZHs<_| zBCuecO`%H97wJnuGU_dWs%f5q_-8w6k0|>N0N1Ke2y>x@&m7vd&jCzT@dy?5^wDI4 z789H1d!#D7DF(|M!K;kN^yyeB_7 zE3Q5VrW<=42a-BSSL<<|C|8YCyB?%e?cq0vsi2Gi1jyu8$0igtdF5 zRoG6#@xD@Gig1 z;^LZiJHA|}=EGN;sLLp-q}iW}K3m=Nk=gRziHX3wT^`drxZK>*m&AORzd}I09)?}o z$-+`B?5!OpY7UM8)Aa64)Ah>Ln|Kr50(2Zqx^y#`l>9VrjiNdiV z;1Hzn&oewbx;l_MMwj;Zh}4ls!*6>L5U$^DPY0{Epq}BL)>@dE%YwVoQ!yXWpW|V? zF0eSHVp!=sJFML{y7hk1PLlDYNNEfYHSq3lA3f~6$gVtBcx$T1YUr*&j>CL3=R^fS ziC@f(3n4u+gi-B}|4kup1D4uAOI?))NY8sY>*CRo{saD$WTowae`lO}q-gg-9PcGv zUQUgtcs#UTkHaHA*zHBJw`qyb6sW-=iL|Hj7A;!BVt`kR8su4I>~qYU=a)H^vizXg z?#HDE@`LkFFZT+}0H*~ANJ@f^xj;6Oi1?Q93U*#J?L-ccMpg2e2-X{=xW7(J@|-wg zf^ybu{!?5!zjfp(yrCTON-MAo5sJA5C{OanME@1!s!xh_#~Jqr66}69lfGILCB!e7 zf|_!%SYnY8kaP?Pb3GsLC`f}4I)2V;i`+cl4qOKz^f7Z^jK%W*+^hLiU+$J7%1olt z@6+cOq-||W4q^V62dCdm`B$HNJoq{8{_=1dcg8=EJ7|DsqOa%IR@9Db#}AnneUbuF z?)f|@Z&gZ4+uFhzsN>C*V>ObML)zEaM-U1Ijrw;;z#$+|TaS{7>-ergHml2Thn558 z!NviHpx{y;%Uj5_RvG8(UUl+@yxv<@hF&G+Q%LMSu0LnWzF74_0P$_|@Z3`g#rGea zr2{T@l3)J-ytl*_uHrJ1&86IDweo?KMrZYJBmYQu(4ZVYg>6bm?#w>|2;#%F_y1l< zU(3O2^wg2$e?_==KvVRFCwAyOh(%$g$FtgGTC)(|Dj5J$4?HgjvL#X$Uf&nkEH-s` z(L9VFFsnbgnR4sdh4Q9*&b{v*DsL zJ|;s9Jdo^VtGe7^lRurUTOn`j`U%vK)HD7M<1_**TM10S3s$Qq~C&|Kx(5&wmS@~h_!(||$@dvr5>#5Bb@ zY3XnLS{gN@agF*=r`h~k%eX4zf5~?OdF^M0j9OunYBsryVZP6v_P(Qib&CgfW5C~j zAb#QVLg4qcpwKb|4DIn^FDytkGit9avUe0x^0+TyGz%%+^Rs4UN)# zd!~G7$Q1a(SUte`5BO zA;2*Q4u=mfSnk#*FNcr2A~X%I-Dn~OFdn1vR%3TW8knwCGv_p7+(s);rE>ahxV^yJ z3^PUu0w9mXbX=;rcqgDTm{Uo;prnM%x5BiVVY5sM3~<&kj8mMWzklgUO}e7v%$rLp zS}fTXJ$}_kb(%*-yufSIAf);17*F_V7wZ<@j!x5PqK0$Imxkeuz27~1(BKbZ7k@O= znPSLB7(T1l#No$k;Ttvc{07AnD>J*AtK&)M#BMZ%q$VkZ1yy<+^5%@lds`;>6Y*uoDndaml5%A0-gKm0?Az6VSYgn>VH5@dhLr7| z{9Na|?jn95r<~jh|`BHmdMoDzwVx%NN7)*@Txgu?3tg~A<0v0)rEee zPdfdUhvHcA2m1_j6aP16Vi)-@&B+5+B7ixx&JOX4Tg%*$4g>AP#f#x@>G<36l-yaE zYBO=z`ck~?Ttdcp7^Z!#5eoTRnLSccwD{!D4Es~wlIJgQ`3m$Gd~wwce=}8PxIV+I za@rElDTX)Pi`ADL@g8Z57k~)y?aX!2lUlEX7ZnCK`8vAR!on~mSc<{BONO_Xm(?;u z0IHFs7R2{hbqtq4KF~jz(Pm8@{l~SAg2(Xrn#z5>osD1YcG^%tqyPN( z-XoYJ{cj*C8E|;9ucLoy6u+T@ymiH^hyQq*TnGbXSms}M64!yqkPSh7>r?Lhd zUw&C_U~VkWAhxT4{vp-VC36Al zR*OOvmr>JYrO*7gao|Xg|9#RW%?d{%k(B&V$T47tk=L)cZUw<$=%6N6v)xt&tLl=R z_sCfnk!tVY-t;9#udwRll%{_>7WJCL=Hq#=W<^7T!#$aN>HGbWi|>yl1qrKShB{27 zp+6Bc8IxHtF|a=H5KM4yxOKjCa&mgGf>!&hE<(lSpiuG)>QN9v6;g5bW}EE>XnV0(#nzYP#0pry zJHXr)55!MZt}P!P58mp))D(P0PXPRXtye}~%UY9K$vs-w_+w99`Lkj%MacU5M1u&g z3Q|4r_;HD->h)}=@F)@|3&$$#KXuLa&<$6Jvl26lY}_XzqC*t6A*gS-c^k$6_`RRR zs|kAf!3+wp6Azu~pZZb$n}6ep9cjj33x2{9?u*mo)zh2FYNsvzNb62Ys9&0EWf z_>INJe%Wa$xL|Ew-VZyTrn*&tGAqLXk6M&pu&i|57sQ8RZlNlo(!TN|;|eEvBGRHn z2L}fzyKw>>dp{^c-Y;x3Zijn+tQC7Gsx|8rPD9B~s7N*tKH6K`6+Tk_>8B8u9~nO8 z+#}{YzCdc&P!1;LQIbJ#g@^YTPA31-%K1L+kF=TYwr!szjVl|Bwjb?Ax52_#^_Z z9fmX4hcTv(EXd!px~?R$r7b6Z!Tm*pL$Qz(+7?Qh!K^x;Wb~^{#1(bG?4120eJg`B6UHHYOnVRww-CRO7Yvei5jUi?RyKF+V?lZd}p3 zj7+#9nc=?TOED>N6#xi(aIC%%V& zazF&7D@_1^@a}VY)N5~%3+hl-vb6t|_Nhv!F>9(vIzZ*dlk(&?Oec!b|MHv%lcFo+ z73B8kuP*3*=*%zmQhp& zlRj_P2f^(V{zLZdsc_sx>9JUXC?kQ#Wr z{MAiJwJEg!jy~e%SGX)ZzLVF;9{e$UFT};(=%%54+U5G@tt*8QC=yr|=bxTBt>mp+ z6H%7x`P3{;IoYRS=Rn)(SZODj*5|I65%b^wUcTNZ}2xg_uX!;`iJ^<3VZ zBGNvavB^512V(S(J z@O31|&=6r1z zgLC1~6#LP?q9JKhsm>#=S2L?`Na2dy%83(+FaQ2B;nC!xe^4Qtcmc4*GrWdW?NSdl z-}~a|c+k*Yg`fG;eIoQNZg1R~)~TDh#jVBwADs1NkXnu{SEIh`S`#cGV0)pp%lX0k z`q_M`Il!XIWHr80B%}#&hr%A)lW-A#Jz4AB(sxnRjR$af>m%p)WzFrETg+*^s2Rpj zCN~HktYY?QDV^-AZde}`HVZ-c*IA8yra*j!23>m)RNU8=%N;*E&8@m*!j-JYKixA?jEpGUGhchXLFcXn6Z_LiG-V%{i% zTB!d5c0`x43%{Hj7p(DYKB?#$M*h2n7mApV8tUNv8-E_o|HtEgfjaJbOXWen7xMB@ z!u9jEXBkx|x|&s+5mU{WwcGFm2n13*2y{`)n8Zo1~pV#M0Og4U1L?ZLIIk`t6j?>z{4+2rU(93~Ozo4TAk{KBbwg(f5 zrk|ysYz^fd6MLRuPbu$%aS^_B3qmHA=l(HYwaJw|HASi|o7|E5kja|$)*O$KgNoJPwpubCO2k3y`BgFv(WhPw!y3O< zdvP#ti%9{Fm^RHkKoYF&QQUM1nlI0=XE78Y8(S-*TBRVO5Kubsr=98BU9XSYL~fE# zM80}AZkaqk>n@aC2(!wLXzmu!NjoVfz~ZmJQ_|XBs@8<{z1BW-egftW2gQFc8l^|g z%SjKv?s~+Ui6RAhFaJoXFE*RV%Hqf0Y8Z>Fa}O@)aMv__d+Ov^p5{P$DzH1(VB+cb z-dd{W*ESEx?Y-r32Lpe-Ly>6jE};XygXh z7r}Z;twRIN_-etr?RkK|)pUF8;NPX`vUTa^En|CVzFVr&1W8PD?lC0I0HNYuv3sfS{#$Sf-^{xw)MM}7 zZXaJL1$nO{b&y+OB2#c^yCST#wdX5YD^8?feLBW+1(_L^59T6J3slvLhTgQfd%!ig z+pp_Obehi>*atu(Wq+Pg)GOLX{Q>S>Z+2uMjP^GQX?vDPS^9w>5IDb8T?wG0q%pohrAzK=l zcxWcfvA%pcQ`(S@W)>DhVK5C;IY8?%Q4hux%CIpE*NX%7CnY_<`;-Lus3;ZX=fy4x zdOznkST)p4kt@@l9^enity29B4p0bXMrNdx__kUF=7uesO3zYKv8}Jf5!IXAB z5AF7vt{W2_&BK7t{mAQn>ANtlSh6QS26ZSk$N3wX$fU85`465_h7wPaReE}Q_WkQ% z@G-p)|vI@j+lA>JFhr6o_D6)1UKOE z_oT`lP!dVDCgds)gp*UQ_=P_CTa3cDH@JjkP1_+JfVw=A{vY#?sAcNFd0@3nJ~eaq z_c`DX9iY0Ap^ciZz3Kfw-v*Q<2Q_*n0Ho!Bzlurb*wBDX_P+=i$I%--?F_fEIF0-J zyFXI|el~iO?SmL|O&ymP98mp$RE?`MWciPUxh?sAj_i$qIU^wF^+EgD)N(+oAHFo> zo1xnCYxngmDqFjmPKPU9IJd<4`}T071tA)R`)+xHGb@|~Wy_wDsz3aCO7MWam zZT2nl?(oo1shC#0C9+1pFe4!$AE;i}_j(LYQRaKB!rA!>!F$t??a_#*Heg22n&@P2-Px1P%U6+5brZE zo~=(IIwC%V+AZ}B41Dq@_L82;I3^|}I8@w~mBIW_5m`y^UYS1x;C5AY^jX@W!A<)H2x=me{)W1`CO}gR#FL*6Oyam;$Hu(mT+OVlOJ-+h>%hU8z#H<4+{!<(XJp1Z z1rr1t_b|?aZlw3&MiBH)`3*3@=dy=(;ts!g0X>x6N~tGI*B=vH3R}3zS|V%jeC|Wg sIeRzk0-=N?=M8?pz4zGrj(hJoWA8uCVGK3kde^(wT+fY^Dx z-$6bQ2*huG_RM7vhzkk=?Rvno8~BNCaWfeBhr{o(861?~erN{xhRem+!WaZ9jDu|7 zV*e+v&siHk5a`Gs_8$(cBlr*qR5@yX#`tQW{X8Qm{^&G%dUK{=vrc%Jzu}BrZPtMT z#g0I;z3&g0SDjT9Rk9EQRo?Rm(5&F$f$x&$3AiS9Rs{46RG+T|2bUb-tGX(Bj?3Jb zYv89QeA5$T{jk^Qc7!GpDEZH=eb?J`8emp zW>W*p$n)^d&|I@QEO>d0+0)SWV-VvU`hY=HgK5-7e;csi|=gK$iQ6?Y9B(W zCXa3Rhm$ee9#ZLCTts>zD&@S?m+a?p!=ah#2`31%?Ha)xVG zg51SZeIG158_+qWV!b>3&8f2dJ($wsfZnv48K{4G>8XHjaIv}<9ZB$LFRQ9%zay;v zqXD8nXzTzL!&*MxiedeZOJy~jLT;>f4Bxq!p`X&pbjjIdPFgaLq%bX+O|VNjm0rXt zEP8$wW~pXi*H87SpCmeIgsgJL`CNU)1t?0s2Ij$O)7@|n3@=N>vxWq zI%@cy8Jvz!C)2rE<5EYuS<5hH!|dwwx7UgTI#>a>{r`lw^z~@B!JEtV{k%pX*r?7H2VXSY*+c4|<=6;9W z`kBXC6MQ8Y>N9COw)Jw83S&`^sKm39h(m5QMAkYhRBa5lWyU(2zF5JSHuTCcT<+K_ ze!9$n=0eUftoT@3sMO%4>!B2DcJfG^KpHPh*Jr*JTwH8}A&i&G$g4!93+@O|7C=bN zHj}#zLtV^i!xQNzsF&(%ym{*p= zOr}}ewBf45tLaED%&KJ@k+q7~mQpyCEegGsx9_hYq3?mcO|8S6m~j;5lg%VbXuw_- zecEsBRL6!`i+-@Y{$5lC zHX`w9H6z%r~YGeH^Z7+S`quS-h~wrZ51G5WFj!vZU;#f}inb_3>+CjQHUfnc&A zJ~e`mDgd1g#9%|Xv3VU8z61}Y{I=a3IojP+wzaIeUFX|jSXAWR3z9p5cpHYZm>iJ*fRVR4rmGDdK2r# zrj%0E*!Dn&K?>I%)*7%r!R?=TZOm`)?Wer-sPJtf-EVA+IfT)3H(btG57iJo*?Jfu zR4UYQGK~7gNlT(G{y@bS$TxdX$gLO3tKIOZMq&oY)C0H zoT=VQ%pfvRFDPykw!PMoG9|^Zp*q57j{7jvlY3K`5Me!sn*>5C*RJf4^!)Rt z(iaAGhm&H?!M-qF%ok`EAvL0JX^gB4rQV3_8!N(R`wQ)y^;dljr~-mjkTd3Zk@1u0 z#cX!ilz+@E72LVqjoGqH{A$E>U@E~_%Tlamr$@E&1y#307pFtp^_RZxB0I3=FzKzR zwb`FdD>9hP982XR2%#o1sjA!k$`z-N)j#-deKhvdLhN*kVy~F6!lQRFRSl=#(LZtv z)_Q(S=7p+l?P4E=io;WG$gfpP24V9&W=8pF39G5YA#`(UdF%&^UdE!0y$V_^cPR>P zWX&I^*dqwYbV+Cxb7?zIc+X<`dR`Lj4vsU14+>xKFZ*3kH!_x|6_uy#^>=?pL9Is- zU#1N(UE527EFVA%Y;T)kR?XU8$Xg%F7MaAbW*r#v)X7B4i!a+&e@od15~SY{XuBeu z8i_0LI=6>uu)CPcOF`KnsIbE1XOtRVN^MUhNS_13~HD>LhRN)%Y##0R$WSnzp1^g4s*#>4qo zP}I+8q;U$FuT4z+LR1xPD@1$i)tNvdTR5P$P z7$u+-9^F5IkSijZ*sr=a8D@-0c-lHu3+-b+Wff-{j>8mhQc_?{oboIDgFa%xKaXzI z8uum%-u6FAJSLGf69#fs*mJh%KwJN`P)wr%~Q_}KJj)@?opPzcP_`z?83xx6EYp{Mzu|B0E4#!Rz1ca(He2qVKT7>9c zve%b0#$EA|N?dy~CM9(8`IU)p8}+!N(U{R}kSbO4fC5ih$1{dRX;KrY1xDhTL+Aw@g+N6z|}qkVaY{G&$)&*s@*CWO7?z*5AKVz|J1z)_2*Tj-SiQ7Hv8NSPEv0l|4%$ljA_C{syS5|;R+ zpiz#SEiWVVQ!a?wjaxo*eXXgKknXCr(K)gKWs6sHPj2_?(ZcxP1f(BAPU;QuT)aqG z9e(q$5PZ^$vFT(me%kI@UeSP7d8g4>GJEjkOiSLJ31OONbbLqR28+A|h1 zhC${N*A=P#&G=R>PJbE1pJV9q>=19xIKamSLHEI3r*e zI3v7?7=&Exu85D6pdtOGah54R*DRdSX}EIRjP7=E^GFT@z4E?k86x4C8^8YSEPJxA zzktbte~HQIsX%aV!F?VZd#h9UB#x9Ig&E`W^&vq|2^Ea^3PlDSIbr|Pa7x;J0 zo&jc6#Yc-gVsivgC;w+|h!hLwpy|LUhpAS==<9$_Gse5WW*Kjw!dDGDv5&a)dh?qF z@s=cO$=~l+&DcdgCVJzmoyUK4LfOxPzIOd{!Tx{w-v3Q5{C}NhA<}DW+>T9?4iAC> zox`(31bke@E`UJNPuMi!YnGh~2PjNsheSjMkN{}b?zqK={?C5kAOyO23f(-6+6wjC zY6W0n>t=oT0m+FZqei zy>$cfX(>ZMx>m1lS~mLQZaVaP@Ru*f&j~J6yy5$2YN$e5IV(Gn)d>q;Oe?46SN?sq`LRi3A?G1>72!_Ka)) z_MdEqS+a}GD*qf}<6|(KjhOoaBskimU{C8)aqVNfBbAfYwMU-4nx3|{R|$&D-rOBo zko@Vz>iyL#qxV>wsfO;Q-@A+3r9fta|4f8iS;6A)#2NEq?IrSos@uJClIkPD+gfYW zcEWzcyim|1wi6Q8KI2I6A>-<U1Foh8mfyQ3@jiJ)Y%oIj7_F3#4%g zLjuADF$!Xn^00QDlcd^lD^rd?w1az~x0k9y2K6XaiL0dbnso!eK7;l5R1FJ*$lY6; z>dy@J*7rpqjYkB%-ejLg6vouyBf+mwG^G))-v_r66GJy>s2WGF>V?y@!4^NTI9@I-0@r+vMV%n-7d3i0TwNA>xV#l#XO(#w{p*;a!nkmHt zt$nj$8)O{u#1dj;(>DsSJO)NGTf~cF%ogT2Uggp7Hc2jPgBdjFZ8_ZwpVc- z)4XRI(G-`X_@UpfV(QCgTS2w1+mIig?(ARl?&=AGBRu>y3EPT4lr&KokYp}t-gv6r zM0CL0UrMe0XUbU8a?pvMB)ggwr=lkzDev_Zb;|mvQVt(}xO6AwZZ)`W6kD&N-h%wy z>5){U;w%ev0%HEJr7K~lugEaIm5y0 zQ(-pGq|cnFg_CM8j5&)`T2wB?3Z@d#3xl~5;o{`3ID`E5zDHVMi0ZU?ir>vE_lci3 zKPP3~0o!CDW!6zXr!4;r=lyVD#$45OcG%$i=6a1FeVBjPYNCre*G0J)zv&dJeG@qe z+$_c!f{J|U_qEY^fM(Dj<=!1gRd{hDn8?Qnto!VNPYdX8zv!>$nQG}eY5;>$< z!?cTW{q(~qhEIoEh(vL=kA{2HrL2w;MxT&Eruipc=;R2`;%`C0GT30}E?AOJAoQE>qc2U|SUD9A!|z#t>2|o=`A!U> zYkOcJmG?O3+_Ia=ud3k(Lkr|)5-C@ruGEmWu@AtToUZ_H*+#xR!V2Q06FVoR>2m$s zQq^)!oRo~*#|xQi^r*VK@zVv`j36OHu@UMG2;>e1)3TmYlc!HZCP^G*Dm5S8>r6bd z>zk_uL0Z|q0L)#@D+HXl{ky-n^R z`%#J_qRZdF(q3CdpP)~p=|7T)YHoe?ZRcn8El&6fJU)g66ZvnD7V!nl&703l$Iv9K z7F;?czirW@wfs*UU;NsJOoY#n_1lgfWY%q~UC+A!HX-Rqh%;)e-1{L^_wvg!3b2mr zc2Xdas~8q{Uk2*8ey!)4{`CxHtFz=!>VYoS1AQieG$(%NkrdfPH#?ax)ppZgq zTFkkGIjM#Z4TP(N%!Qcl-hl?`AJcgcluk}#)C%_A{xSqW^@iTJ33=r=wOW~OpLn1z zr2<{mYLQb(l9#4Woa=S$J2BTs2DI(S{i|5qWQym{lE%j;XgAeOER?{H;u=&avNO(CZjo3zj6q38anvryk(9AZtB4le0oLp@9gOB-7`&p<|o66l7e z%Ae@yXKVeImzuXeqX8qRErCPI(3HIHKJ;EwLNp@!^s6^}ZOwy5L+PHy!2zmqx1TE# zOj?&)Q_b`Y3jqq~y6|GEgt6L}qbUAB=k=g>A~Nd%-feFEnuI9lq#N+ErfEYw7s#VS zKj)(I`QGDmFV;M|Ie-@lD_p1-d6ZuRhGgCL8oe8&q`ztIzolQIiRd&vzj1r${rjRZ z_35Fd;nnpz%pSOiPC+sGQ*lSTobpwFH#$epTTxQ2x|kWoI&i!8%Is>9Q%I4$4N(gS z+TGtrg5S8Vx_B9q_B|ZzT!W-Xi{*RrLG3HHKhBn*ZGs7z7dm(nW-q%DKch|rDxd3V zFH9bL+f>!ua&193b+*{5(dy_|j-nD-#Kt@%+YH(s@(Zh5tzd)CTQ64Lo}F|-VJ1t^ z8^1qxNd~?dc2NelI-c(y3897mAPxthr zE(?C>CcnM>P~zUOBe|>n_q&(@-F4f+pg#;dy1|~O8vVAG_&9ga#HZqO_@=G0s;hBW5nxFE9IE2gT7zdm!y z+Sv1n&<#Qgq|;ijs3C+NSgDSZ2_dC{e4@ABQyB6K)bMC6ZpiV)3NygYewIP-q{lQ_ z^Yuo8mzvEYGcGWzjy4zwnTlR=CgMt~M0M9sPp`VBbm>&DH!rPUHK5GRsSm|Yq8MO3 zO5>mpeQ^se!)q0JcsUklX@F8)^FtSAkKB1#ENGB+1K>C%b(eUdMH?n%*C!j~uIOJR zUyBH|4HZt*EHJI~7$PIH_<@@hB|Giw`ux1`wQyWsy!8E0XT`*$SBH}pie(pg7?QjE zT}=ptr~-Ie)w&_IwO;J9G4{M<_)-#Zj~0vwDz@?FUDIP(tL6zBRKtjqB&-_6>A>4C z-C`w_Ej32E{P#yu2QJ9K;9iBOerh>C32S9G=2T*#C&pb+CA1wPgg(5xdDZ4F!6-NE z-Dg<@B6K{<+?cp>J}#Fka&)e6t_r5IVkGGo-yks`{8Im^>ZYj&zO~@E11$2R^o35Su{}g(K7!pWvzC z{SqDrDq#9%YJ3X_e=f-2Zyp=vOFiM>&DY=N4UfldH#+h?4E236qrMq3_^d(cPHfwf z%gU*GpY+9TqkT7o6^289DFNpHj{yX*fVfG@U~nPZ>g8FEj>UgAL=TgIn3(Y63R4SU zop)AM5g@{;!E9Zdi8FGDPBJ(adz}mN>!F!ss>pg=hJ*F=Ybz{_Oa)Fh3S7{YjHlyKwyCF=d;QhhKM1H;0ffy)2#!oZW1j z=(sKEcFN6=IoTb|!3heB1#%o#VhgHKRc3d2pkXDwz$^3V7cC?o3#qM0(+YV~Iwamp zPcnFOtR=5b11KIbA%HR!fY*;s--7YZMC>v*5?Y3vvtN3Rg#AKk9k}{MnsN?--nis9 zZEk>!$G6<4Uj$1{u+8mh;Mu$?OZ@k$jRYjeSr0pcw9_P(j(8MrX_jxmNJ9rR-cP3U ztgu#4baV6bFM|U7^w!jC0q=JUhvYB(RY0R^|C6r=<2#s9{UyCBZFzak zGKG#=o=8Ed3Mm0n1@H)54YRp$+({m`4L`o)hiCVZu+ldH?+e4GYOZmk+z>cK?7FsL zb~`Y9Fb;6j!)T}WlCVB?xX&(lbyQlFEjtKaB1HmZuyD@_3znIv-G>j3umVQLvPog4 zLF`p_Y+&o*&ci!-r*uGAAfuqa?zqg(Aolx=rrAH)IdD)WpwoaA2(p*esk5_KZuUF= zAq?3-NSygXbPf0kC{xL|noWw0^m?EQY(~|D8OAJUMfLzo28C4syz3^aaV;{y?lSH# z4Rwb=B@IztzSHBA2J0WhfJ+Rz*5n^iP5yu4QSVueW9Yt-*?M4BQF6Ta0leG-FfXRrOk zx-=0&s0@8)$~wg~Lr{NKsM|4TF>z3_gE#M5r2WI*owcfhhokta9x-(wF(F0RH#BY)+$ zlfu-k;|ED@zisfKCQQZc1;A&u_wRE%w;^(emG0hwHXE@ZT{ce*qp=YSO5cGT{V#^u zsLl-8!LZ8?h7H+>%~apPu+$EQ5A0z0FIV03zcoEu>$1Kcp6vkea&u=kOL;7AuCE|9 zNeR<6?C)-pE&#fwC^4p@7yhvP-tX_$hgpB=!ijkw!~xJpbgc&)Qe;2qiQu?$9nrBU9T2MR7kM}r3&G|~&mQ|djPy$`1=jH2O z>-w};ypk(%3ax-Z&>TG<5%m*_?0r~4}{bxGP7C%;>ymR%r7?+y~5 z-D;jaPmm65;EXLYEX=k9XA>N_y;#JMC_qVg?USuxLzlCT=9L=`amTnak*dD(Hgp;NA zABl69%MP18WB?#_weAuRba$oLot*S?WPpGvE28NSF6PP2Kc7F4umJ)u3LDL2=3V*P zQJLbpVhV_YYMLT-<9No^zP=+Y)u^5~8#37)XoEQOHJ_+jW0Xuf)RJ7k+oHMSKyQwun@zBMO!gb<^^dk}ho= z^*msidg4iomnH9`d77!R-YU&tB?i1Q1)f1+M#A4v;B@;MBGr{qp>D`slECRDN5&61 zM>BGTA%hgF?~RYu7%xIX-x6OYr0MB2RQ^HdEIMYwevZxE!-y=%-&*%32Pa_!)!GY+ zh>1ptvAzW9yIIyH<7di*6acu|b#Ed`4`x=x+U#?jXW&N7s|)~$~PpXk&+TpKyFJ+&oI+xEqU#6LaeZkVZD%$hBS zZ5tdmGEQ3it69#E5;Hxs1=LS}Pyb~i&jpV=oqH?HSNoD7SO$*To5z}N6ZJa}oKYS;#hLkCYFPb|`PT*{i4}{~+ zU%skC915TC^-7o$dzn*xdlc_r``y`L|EUz~mr@1ZD*c+%*;w2Rp0RLz&WfhFU*QPH zW3Qr%ZyS|I#@c;l2YQ`YkuCgm?M=Uya9j~x>hLkdsQ~ijAKp#N0;`Eo*$tRqhuJzJ zD$mjC4r|17v&D(gKB?nBD?+fU=7o}%fASEMeU#rpMog|M_2#tffmBW4Dm$aG$+z9q zy!q$O)h6B|l~>7@y5t0zBrF`JH`crAsNO6agMn%FQ#6ma3(g|%FY6y=yc=FvqeQrT zwjG?348Q*nQB8DwDkM(-YSCX*Dq}|gxg~};6C&vvbje3Ue(VGs~yj3V`QpPA3xm23m z#itU4x_R?}SJ1ma$%|w6AoozAlvuAK#hm_=KQ7)=D5vW&P{-vFgzgcL43K>@y8$DM zHrKdK=-M8+zCcl<UcgIyo)ERLts~0Q74Ag$G|CE^=Dv0V-7QwNW$%Q=wSvRB;`N<5NMEC*Rf!V7hfp ziC))PSej~7ZJENH>M$&9t5{@8EF>LtX1xLw)s3}ty2Q_X``(YVjEzmPKvr5 zwK3GabxV!1A+R{R6*2HUX&9~iOk@UYK9KZejn3z-oC7;XJ<;$p-%N2uHilI}AId57 z+-eM``C8r@gJddF#QIfBkfc~4LP=P|Sl$KKF2+y0_ij51Q)r3fE@|!uKeFLTIqH+>yeQo|e4O9_h0w z9r-zDS(UT16otVNS5KRT5y%fgb+A`EK=*jLIC1ZxMm^|I_l9!@qrxQk3+lzz)yLgs zXpZP!vBedWj;4X%>ijaz+kcN0ep$m=#99?xe0`7Ti4t5o?48PwUI|+Sj<3urYr6U5 zS;uwlj|fqVb<~B44^6s}dAe9YDL9k6n3V)3LXUY#mGf&JKQH`|XiUTC?OVB50!J}(>4%xhKMrK%$xtM|HD41^Cs=w9e9 z3tc`E*7p8+4vi3dTV=wq?1>1)`?sU-J6te!cBAjB48CC8f0Ynl_Oyth*m8Y@rC&&T zD*w@9u;e7Lg#_fS9}c6TL$nSq0dRW=(emRWYd+>OO1|2b!!@Rz3qsvUbBYR>F5@8v zp71Tq&}JXYJ6^O$sN{)PtGCVU@0KO#V-!u|N}paOy}O_+@=RpJ9uf}zgb4{v_;8|I z=~HGYyg|k^k%aAq)#N!|(?I0@t`h%bhHrrNm8iIO0f*zqkz02O0#&e;b~AZp`{%6i z%c`G-EsL%aCeiZpr7F+>%rM$9$-#-BGBam%&%TuCJn(^zcNrzYyBNx^tq3Y9DBapK z^nv@#4L_JX0zg=ziQ$_KwAkVHXQ|i}e{Zr9*%~G`kHq9Mc zbr8uSs}Iej^VArM9~LngXu#gW3a%s|jr+9*sInT-GAY-k5uLQp`HZB1FL*CS-{G)Q zH&4RSpvRb69Ojp~KNI~Uy1D20kO=em-1e{2l?XA~+XpsO&2ps$@QWM9Z&DP$+<~N2 z0f_?<)z5b=bxPf3a$2YJ8w#%6t%AI8_!thW!%sBKM4Io5MQ zvTK?a8vsQZ6eT z@qqXTT>ImSb(mHs=U|>csrF~x>Eh*9KXUI7<=S+*_NV?P`8y>s{_BhGa(m8_E8TZR z*QMMJ&@iww>ZwqA8wTaRyk{tDl(w+GH}jOqi_&@5s14Tx3v;__7g|n|uyR!f&Jylf z?^~0~Bt5p)!n;&`AYGllstk$K^6@6R`@1{%9WH+xa*iJ>jo7}M2fegJ4{cxPQs?;R~t${Hc0Iv2V_y7P`AA*XZ_OoBx zt$_nZthb>_YSEij)GzrAd_E9$8Tt7NIq_6`R3)iq>2>+<$s*kjSy!>2gA(WPH-f)_ zoyT9p;sUsf+x>YJMR?6A-FFLrC%*npNxC|L$c%dL9MpX8Hmw&rI(%^#GzaLMzVf6-bib;&l9ATszY8{ z30X~7Jic^A_V?{~>CCijzN z;xI!BFK)Bou8TOepPAu?nlqW97DpgS7Ylqx%S-&uJ4ws|3in%DqU-^G;Y|vJ#0g!< z<%Zn8(fK9@Nkr_;7HhP?yc2EDuDx^P%uy=3WfS~LT*;MszVL<3Mi6xnuDeP1VI6Hf z%hZoVlG?q?V6*D!m2E4G^ifRZuv5wtKqeh*PoM!fr#GfSP6|neaqk+&U}7eBPbIXb z7PCrWiEd3*?e_{gt&PNi+<>e6C+Xy@@pFG}ef^%xGkg%rd9f>gk6nA<_v&{4 z@|V}|Bw6;VDx^KrUhuYnbguf=(N3W%6E_>`KlJtj*CDs0`c*j2Y1EvU6UQpC+u8v} z_nQ2|GqXFBRZ*uh;N%Xzcfo}uxNpuFuU66XnSy?*yfWe}`MuBR+urO)T(a_C74|Ch zZzlDXxx{80(3%_%ftevPh_A1K{0bz$v#M!&{yEmg%v8)t#5G$lZ|3#6XuOlo+i@MO zG}f=y)P+b)Qthc6q35qJERJrqEIy%ZM~qIzEAgy(itt0X0aJ_iF&}Ao<^O@-F*tSFKUn%=Lk8(jEnRa;%Pabvllmns8 z!Tb&q=euT+MxzT$M{ZB=5{g6K;$R16HSNJ*HN!osbl9$Fl@k&V28>E^t5A72H2CW@NAVBO;P%}{aRMXXWk8Lf&z#ghno5uH~AlkF8vP&ul~oT{{s}tbi)|k zK;}*I|21}(-9f5tIzGk)%1r!kTTB$8LR&@KYdCrT9$MS%a-ur*Z}@Gs>KAfuxU~w1 z0iMF*ei^Q`u6BGJs@LBLeqaYgwRxbj-*!Wo!A(^`;_5&Fdzdc|G`f)EA%k8J^7|8f z*qH;wBZG(%+NZ#dvXOb)faFB;VMNsNtS~8o4U(}W02-q`SR4);7I>g5?u0k3ax%LhezBIJb3Kn_8R^fMGo>?rv!Ac;qf-i9P_iu>D*RVK@m(BH;izQG^X}l94ncw2Wp70%yO)dvp(XydrO6#>4M7^;R_Kb8M(DdoL=+m&s}*lu zB;P9G0j-LWuu38)dDueh2BeWof;X8---d%*6#IX|Z3i-lq1u^N;b8A?kM6j5(_+L7 z6(^$r!$hpAAX%B)odX9ru z_mOIQ%rXvuA!y0q(26HeNvDLV5l^kDi58d&y>Co4auh=sjD!slw+*OETa?@u4$$C3 zqzqQ;_N^=EX`|6>A@#Y(fn{N~J|C6u-S1Vk&C7`i(L^i_W)kImwKSr5&2O&kH9PR0 zP*I~gU)lAC2Zf%9;BXHV{xg=$-~_GiBEdCp1jfIeK~8+5?v;DP63;(S#SHOB1Bn}< z9f@9h3lhtkrhmp7ytMV{fUb7G#@u-&bx;ocMT--83}MB$mD?p&=l_YUZ$Ht@59PdN zoPg#4jhGUwo&vjZQ$xgCkz%d(?-^B%EMR@rKbpNSLkc~+BG^isqda-HPvN=N0sf+O z1Akpm4|`*h3TaoR#Cb-_1^E}^60Ch%?kfuUB%Obm?nub=l(!rWh4Oj=;LF7GK;OOj z(^nhz+K{?pOYUmZZkur#)j)-;SopdBRxDl_&~Dp0@14?6HhQ_t?&sq*O3K3WSsZEH zliEX_Fq62b&k89fnh~rbhB^TJyaH~hjEI73_p_OEGLn4I$&Y)`+hImQZ)zQgw2j&- zEI34Bg|p#lSBrS$93S{d0AuhzyQKzL#fRMx<*Jo;n}7V;xVX{7U3?-{Z9pA28{`we|Ce6$^iR(jTfr4 zQ2pY`1;Sj#`g`rR-$|nymW)B$JB<3W)?NJE0$v0HCPhqL3rJ6XtpZM{kq>(2&v`!P z*Hx{mOMtx=O0#yKJ^TS<&&*smv z))n>c+xC*^z$rcN6zhU_)vKS&T2owH%4{Qh=%VgGV~M_!48`%(sy!Dvkl|Szf-cQ` zi5;p5`kIcBcF5|dhc3yBSXO6vQR|Y%G8P-wq%OP+3iRIg;z768F)xt)2er`!XTCd1 zD}AcYViXT`z%zGcUIgT_0^~C!Jq!WYv7ts+DD^BQro>6e(?Fp2fAR4 zNpLj-w8-reOlq^3%o!jh;AE#)$4pQ@@5(qZhyfX`1M+&o5AC&2%l|#&fblzKQI_>y%vp~@~AEnYOgZ#K#w$ zZIa>!|!Ix+WQSo_z8~o&%4^UNhwpV=~;;BKp zKRPfjt&G?|@9DA|3e-t=Vz?kzoUynVz3wU4x~Rd~CG(BWo?M*MY8Xm8R77P`jI?OC znWx9BnJj$#b^ATs{=nyW0kzsVpD&&e-0oU_>ym}HriPDtRV8(@Jb@hC4)_3tT!KDL zRsNKw{?WGX*O2nB$ohLLN25M@7Qec3Fp>ZZpQ8O+DdgHE5`0`@&-Gs2;4EdQ3+t*F ziEcBEss=+q)3oxE;E|#S%)2z%{vAK5_G$`pf~p5h_QQ)7BW@?fn4hPm%GML;i=YXy zdK13&_)GE2jET}vByB34x3AmbMdKc*uc^5RA2cn2cQJI(Uj(r4NFep2dy-rjp~TL| z1I`C~`^wc@@5=PZ)=U{dmf{L$lYJ;xvf*nPIini3K@V~X>kDPA*{LxHJ|S_79^~y5`;F;8Ocbbnk7)I)426IJUOphJjE(N%I;rl1wy5v z6_-+pbN`YAK&ZYf{rY8kIPJ^!u43XkV_1gSEsF_og7=ohTM2uY*9Y5?;Jw*>^nyJorq~P^PaQjq_Og=y%fI5L3G5h9pggCFxG{)%{kDDDD#%^s5wFe29K2z3w z0{LZiY2NUd3~qhGN0OfL$mu~*Mp-17e&42S+>$IMwtYEl$kI;IzJPLx$0L3|Tm9GV zFV#7+wUPHbm)qr@EUz!GP1Fbik?s?s7oQAC&yBPnFy{c7usKCoI~%-v6&f7{Twwcn z_GK_?HkZg>hnGLHmV0PpYEq%h_0}d!t$jvcNN`DQP_j+j@Ou;|&r@5UO4O2OQ|Wgw zMuG${5;%US^XwlW$pzNF*|_&Xk4#DM=;4DPE4DKO`UCi^?~{?nhRU1CEY9zi)y|8- z6N0UgHO%AW4HT=qd};y4U$Mr`stsP!13DOiCX8~O<&-gtf*e_1aH;bd(pr}Us_f4T z{3dGpv}rcK)1z?MIU|P#*OITU_u=lN%Ol%BAK`@Vvye5zdpZZ-XGL<VWpI>p_nN5sQ5V)t7n)t z2-A{c4(q)SKwiIoiUYKhI%gLG+&Za@@NsCD%jS=jVqP&&k(=daeJ*EA!OndKvs9rqcPa^2GJf0i2XlGfh76A3gZEp z|Kfp?fhf|yPxZfF#SkI@Ede^=?*l4u=R5(}4*qx4Nkr2-A6Fj3gidZhkXcv4TYTEl zfd63T_FW?+i}|DdBkoHJCy0H?cWNe;~Urn|J&a>Bx6E+o1o~n&sY3Q_9le>_95&h!IPmUHzvZg41h=vNP4FN z1i&uXPVOHDps0`d!g^@diXzhO{1{tnH>$Va7UT|j6#uOLTX``)TWVt%s;1fTqq%gT zT=$i?kN?=+{5LtfK%FjJkm4dZ7*Na_zxyp*+Umo*{5M~;70>D;s({>VYx~BjqnbU7 zV1L7_-O<7jWqYQ-<{`N`cJwc&efxFAC#@C;^kuAfa{5E<4&+$gg9)I!BgBLd|56O# zIJo*##Gv?_AMLWD+}`TO3Xfioiq9dTU{Z+U2$ZMs(>kVEND&+?>_RqhfO1QBK)sybTKJ<`oa9w|r4Lq z)X)AL|33AxaBx}F3+(aoeM;H;+MlF3R5~fe#=s(!IwB2@nRCn@ib;Twx5-{715eF1 z0AUx5YjUIfL=XY@ev@6q-zJjnL}831HkF&O0av$2XDqp zXsVL1XP;{6)S8HsYDGw#K+|eeWV=CD#BOxJIxP_iw{^J&=p%MtPVIA`j;^xY)3B7* zblJ%U6GG*I#;!e>u8Jr# z6TTdLy_b2Rw0mipcdb~z=E|F7uV06r^4|xj0_$jGk;97b`Srj?G2?*erS5pYRa|Y| zv8~C&AG1UFm+3~dYaV7r!~}UY?Yy_WT;%}l5f&I z$n(5QqFG&HXxvA|(RnQmFPV8I>i|6UIUlr2i@f%6DBsCICq#PpZ}{j)Y~|ve*bdyS zuB4HU%dXR4h($(rVZ#?If;2^=Dfjp`Lt&qS#=vnCpwyqCcz}MgXv>C{?MbYQ>1jq9 z-}UnRD1)U8e)b^eUy+~HoxQAyh*I1Lq4Ggj;DT-K4<4|7B5!#IR0FsOI|-nv1exV! zu^VDOLB4t1wcZiB{_AEm_{7RQF3^`m2__j;e!)ZKD$Vt_DZ@Fv1q$9cL$@UBFM~6( zo3atbl!i(9J$0|m2Pc)T_~WT(xFHt{7sXzo8SdruXL&CDquusWZ)gqTDV>wcDKjqK zQl_X^Ii6xSfZS$aJ7Ma&TR{1;M>tN8azhKyCO=h3Ys1P8my-$-r4*bF0O30Ki~ChxQ99@M zKqzOBZ;U38w@!ulhd8- zUnvgmn*xlT?SKoH=c(?=$Pl`ob*m>T<8socD{qmvLNEc6Z@=`GUeZ9w>Ef-*D$9g5 z@gb2|p4}opq%MLAt1d5INdrO%SlkIk#GmFC@sLHoABi4OPk^3%*T~k_8t(|LCneKw zpBuV(T}JZc&5=^E^20U_hSN=hQa0YcY2W7rKEXaXq=!6qbNsO1k6twKJF!m-MQ2t~ zbTcw z=vV3b@BnR}8**=zH#8IB-{e7X+*|pAQz;^n%_Yc*S63!+J%t_UVYrTE?)c-`K5U2( zpAa-882AMN==5yW721ibMs%PIV&UWOx zs;xC|4I0`UZ}@7w^HAughZvgibqD2@4JXlV zs=gU@QnWTPr2Ry1F*ydP5n|s~aLW4XAZ~)Fm(&_tRXHKez;Ux~%K65A*;!`@L3)C; zILf?0SYp>rZl;cNLkdy9;(`hBg@8E$ez#9D(6U#dD2pHrYnRf&UBM8MYNNJFda~^o zvdFy}w8+u-X55o+eOEYj<%>S4GH#Rzs+sLpSlR#-Z;rnzkl}f}dD2`C5v7m$q)Q{V z-H=j<0+jo=;PuL}^hbQkm>GGXO-lx`|HMIsFBBvYpFCUisQgs&#V%$TR{NDlSn(B%9#@`@N|1 zq6EGEtXwV|`b^rhr?j(NXbYXeUWG1@eFYTkgS{uKmcNUWdr};(PP?5OKpH!V{?1P} zlqi2~n9p6-PFxEQ3PviWkVLi0Uh6<#>sq=|dNEuN9u2?@gqkkO( zP>Si(_g>U*VNkQU{PU-a-j{&}&JbAL=&D~FJURdtc9#569l^u3`v$$lNZK1{1q6N7 z|7+PE?H;7>3s%Du^X^QLu+&z}Nd(V!Rg|nrs;yD81l9au{G})`r0dt7R0@G?t9jZVA1tbzx6k!laok0>LeY&x7IVFzp%x=8u;o zJA1Fa>QnCfer(q9$$fnUHJ1CFAI)Aw0_6d};O}A&=X3Ev2&z{TG&BTIMBf45?DIWs`<&lRyUIa-r_~hBV0+^h&17MtP1Vx7`i*B?$b$Lu zx0~^`2w6qKc<{WoRASvsZSU>Otglb_E{km7v6Mk={aSk)x*H{2cRoQo5u5}*SeI5Q zfwtg5I^(Ww`&@vL33*8Y*WG%l&%b1P>mVYkd+p}(hb?+0-DR6dbu*bVm4AB^HTWEk zh?gp(ENRJY=B_97)hhb5QTwd~>?+))_w4_mE_ZUaPv#h7gKmJLs?Y5YiiM?TW$neC zv_`)SnWzCAX4Q4Vc;hi66Af@G6>aLg(z#nhwEaxka+a3pGdLXovatK>*Z9OMa*ZL# z+U3i58@Uk4V=qcv*z?dPU>NEEV)Lx^`#Y9fu{zU!A*vrm-pkg*5p(51V*@wC7N7Zj z-{G6Qq3`vO=^r#F3Y@1a=@*HTuc#8;*dfMmtZPo_(&^fzjdIDH$_oxkQboVJJ{rv# z?%pn!%Qnd+b8TX9tS-d0Q2ifW!3+n+de$qJ*b^9LO`=4&p=&zqk;W_IZ3j-CSr*)k ztZYG1-t6*~bcdlni}Z>~x3EAk!KvnF!!F!4W5Y%=A%9GU2uV!N?HoY872BZ|I)X>} zzr|OY$;=WgCT$)V)|(#viYjXXdFqPd^P8uu@D9h{Vb4``D;?x|l@K>uHI2tWCd_kX z()3WMQ(Ra4kaB7`bS;Z>%yK88^zfO(ky3s`6gwQ2tmeT5*2#~J?@uyjq53`b*x<*9 zkLNG-8v%2sNlFKIhrMXhCr@FhQ;1tP&s;R0on1n?);0Xpd=6IH;FExAZtzF97b(x( zDB!3T&cfa(m=eLF1N((7uC4Tm*pFIQ>3%LDox?d{V&HWAh1?H#lSK*am7QN69O04ZI1R;|2d$UqY@Y_3p`fu{_Lv*a$#3|9=7Whh_le$O1>_e+7@=zun&Me0aRE zG1WT($Vm9-;mNiXSlPjoBhMMAP6F&GH{a zhSt!@SBFI((ZgYop+{P%>6+i(2cOT%XVR(tywU5R>iE0o=1iwTN2YG3+7jPm0B_=LxTxzs|of zA|w>l^o3_)<5-v`L+I-t#Lue@F(*q;m_)bUeY&413GkD-esNkpde9@Q0j6fNvBFyQ zy>xok;~8SrMK2Wcwwcq#nWtFUs9)TQD5!{mV@2y;&?PD+nlbpSeW|s^3D0$m63vUdiM>FbO+0bF0TlADHxs%sdypD zV|@PGf>n6%)E4SsrS^Z6*+8#@R<9Bl$1;j{(F7Qcbd7LTI}iOoK1 z>`6$eS%zwJaQ;BkWsDLINE6HTDYQFxmoEEDpGX!sT4iiJ_$p#0#OjRrMc08e#c5n! z%jtnr%j@8T<3SOZZr`}<95qw2PJ4@Ql z*hadyjV&Dz!lL7NLPY5GUV>Q0>}1nYaQ@k?O)DP1gm82+xDzY}VASW(CaZ5+V_xfr zw<4VYwY|Bf5qO*bjK9x4b3?s&QS7ju$#LpK9?9!-tsy$MaOj#9mB*Ds7p$FHE@Qd=eYFbF7^2x3QTM!kxnyPQQa(?0_H98m%L-I_Sl+MaRTcD5b9 za|B5e;#^k59i~MXZ8h|C3dzS8t#MC$e($Aem`deUrgClQtgxVDe#xTpSsh%?#>oO> zQLw!M+D=ds#X(Le%Jxa5HCErgLfcUL<{ck?m+sa#%SoQ#8exdB%#GkN5Z`S3P+tnD zr?y7--P95aPZ!cGfAL%rzHcd;=G_8Eyk*z{a&MQ??SmPJ<%$R3AY*us8IK|tkgr?* zjZeio>+21x?X)ve>ibhKL-aGy>WJO20H%tKw{BC}r<#;oWUUG+^4_=H4D60dH6Lux zI)P+xt3}nJ`~u{MI{}aySOLc|yrhi|j1fz9{~+PQn%uXb;vvbRMNO->MJnZjj?NpZ z2RMzN^)?+lo?UwW`EbD*w>ea~`q>@25vzWam8sx!m>7m_cjo%x=$2ZwgahV)X0$*VYS-+d$m$TsNz2G9Hz*tx3#i0saOSbJ6VgV$nmZ zcmCQ|vMPdKKbyajZLnrVv1=ajTwNi78lfe2@}J_98H1YrBOn-*PU{u>I-dB?0ERqu zKWqk!9Xqm9#rB$RZMR@-LNojW#oDWHcScy@T(;X;V+jYUh#PXPe4)9i=5JE$Z?838 z(9KFkbJ`B)vN>Hzg|bKPFeC_%kqZC`QxM4kI&^uMr{-{rb+YP-tJnaH4NtYh;JF<1 zjiAP<{gY3kTrPRrg6->+(6gtz#)h#6sLn~Eb3BsfH3`Brh(OG-7N!TuuW2k_Jvv9m zmH+6wq(8zNoE6Y&TjAAl2yXB*baI^cmGGL#lmMb_PC5qRAq`^{xmQhem2o3OgV9{l zXQmQRTQPa&YaFr4wimU063z=;W5s?2d8@z{6t=UIoao8 z@I$ySjGX7IbKTjJ7?C4nAGaWo4a)cB^9`HoSKjQ0;A4@7%8D(pExX>m`scHKeYt*b0<&3sVmja0DIC@n zu}jkp-{rnY9Z!6DFT`%wuACX^-~CuKuctlmN;~^8dV2nha3D1VHQ={RrFnVOU1Q-n zd#Dn5otK)xdaT@okJ{Qe4kg$2*8b1Mc8k;v?QoXFaxe#{|D-apxHW(WENt z`trHdLb((F(60@VLkTQVv%VlKCA2o_^KcxWGK_aq-KGYP&PdLFzKjz-P7zV2diG3a znR9i4Eu@Xu*%nwF>&AL6#OWV_J+~BIwY4uCO zI(27?E-rVq2e$15)J;7cU!}<{&d0cnl^xQiYsTLfy_CZSZmc5?-55X=Q@|1Hi(s=F z8xQ@>Cw=gIB@Kl&bM1uhwnf22S;Z=$nRKP@TC~BB5i=wziEz>iG`h(%p%lg#=<%d z-IHF{oLb}PbrDY^6d=w~6z&@h>Y(J0s{jZNMG`$uowOSDWklE64 zpx|=h0d2Y`zV6P0>nAQPb@>5(6WXVhQikf`-KN75!p{YbpNU_eXpef&4Xlg67&Lx9 z*KgFLfF?!g(xFZ3q6I$_xv+jnk1qt`ILiZy@}>LhjmGEK1mx0HZJEz}a*c1}XdRjH zbP)B{@3m}a(@X~|M6(~j4S9_H>!#lG+`(ahUM%UQNwnq%Hg4wJ>;5mL&Y9d|X>280 zF6=zKJUSol05BkIG=Rfn2*C9O&=iI1-HYVM>Wgc`pMW>rWBC7X^I?FO_nT^6gPp22 zd?F`z*Rw3bJ-Riun*!z?_{%;%E5?EI^0J=n`h~RI^YRX>q4vqKeDm}Bg?0Stz4Vgu zhHa!Y;O|^ufQKCfj9h3n1uqJ_4gCY9(Ca21LfA{SMkr|uaFst3mDk}Q$tWN90y5Em zCmH_)CGI(VO%2ol^@qxBS)_$T(3(a@A|7S{QVkA(F9r+=%6AwD4&<0 zG-4alH^71(In}ZlwlUrS@`ewdAUW)DPci{W*pV?X-DDiN~`4{%L0-`!j4(O~y zN&!XA=09>1@^jw_o}N68WGS)kW%4P%S|D<4$78^9;VwBm#Q6^9f^)oRy(6K_Oz=Ui zs?%I5@KrpvD8Xsq8Md8Mhe-i@z}`#TN(rFUeNKxAOL)xXRv=HL(etnb&|F_~>d6bP zUBU`Z=0K%K1>lLI$uCL8F`ZkBriWWGgMER7e;}pxK<@1zLgO@udZxa1iqRm$yd8+D7tA9wEsih!~t9`yTrp*i&aY)KFSmnb-0}C1O z-p{BJ=USW}$1mDNh}LeqcnKXusDs?uPb7mXCA`HdAd5*D*t0Hf*+;+6VX5$yw;2y2 z{N=8i8&!b(e!B0^NmqHx7(hnz?GPbaH}Srk2A*A9034SMsNGzvk<}9OQh2hrzg$J( zu4upo*gSfYB5m1Xqoazf1*?i(lJ%{--6Csj7tN$i>moATISd58meViSy!HbMWyBaks8lfuufaQ_l@6f zeHT++K&bz6z&o2Diz%Fsx8#~IcrzOhM3qbvk#XOBn@UZ0q0Ab$r`*koRsm1r>!chZ z1T;u3WS=^?qS^sDG^fR{)G6b#aStn!2m2xyb5@+H z!q|Kw-kFTTc*>Q>%~x@jX4jt3+6Bl%P zk0bWoZ5JH%(dVg4Xt*+ZyeQojuI9yh#c{%8LZgHbqiHtIh~_khw?|k%K56{u81dP_ zSy>T*PpWiq_B9==fE!(&M+)TpoO4|XAGMZQ%&hM3`zW(g zIK%3+zWQ~-Eqh!_%oFD@Q+qdzh`D>WQLZ@wnS&qI~}?y9jiErQxkYQ_D`ThRMC1@!K7xf6}l zfg3@;7v(Szeir;RXo(BZ8mmUIaow|Q&q@heKLD=@xu|mIJLB{BHgYO!r*?JLQ!)ML znJ`{TE7!WjLh8R~=rBalBH}9vyR1|R`kEWXz}UD)SXeX{);aCgQmm9b4$?RLQ2Is$ zq;H;uHlaBudo2UFUGxkqYB9<`4+fLBmvP^+;c9PYtwh!yEdV~#W3E(Nysy9|MXO`? z=`}<0-flCLU>_CC$Dk@~;uP;V#-;%q){$)tvBtYmT!7}hOVABJQk}(bTW;ocyIfTR z*ytNgiG>Z>Q(V8c)SKB*AZz{khwW;^8Oi<@flS{3Wjq=$&^A-_t(BTCC)M1Mpr4=4 zNP66@F`e}ROd|WP#Jam`#Vt&3kbvMaSez#bt$ZFAYu{cnUbC+DEwSS?{!|2VG-Dyh zzM4jK4RO_aKJZAJt?w@^{}nYAW@JW6uWn74#nx)cS$DtiY>Ah4mdqE7z8;`6^07UlA$kf|@0XNsYL}Pcy z%Gl2uOWp4%eXuI9Jiz4XY=ON!9rd+-iDs|1jHPMV zpxKLHyl+gNsdR;5`P_#d#ebXP8({1?ZN3aIWKo+KzQ6OChoN`3Wif_s(Cw~8!V#p$ zbXSk2@y;jL8~Dm~HS7b6b)BD1VJwATjM0yWi&iH)M1sSoq$(s7jh9*;n#64vSEKX565y=@fvscekbPIJU(eNn^yOwpE|!jOU*yHu)kkA4Xr@!zE<;EcUi4p zYgA`FXNYMexUZm&dTWU+;_c)eEoMcd`y#rsOTC2EM;im%PDS(B-{&UZNuB#sriqs) z%Ek)_%|nG*uYG;G9Dm=f*>7!iKW0gayZg7(#)NgQ}K{<$UWY%rUhm%bz^E zi4EUe&*&C}L7D`oX5ZZ(x<~W-d@n_hYL~ABe^@PO-;plfFgrpu=e1cfArh^$&nHw~ zr+C#*WVS0)X1ni7I&S+l)@hki?o|s@BMoAyNYTgkhWcfV5r&8p2U+t*$D;JTE$Ugm zCo#zDb_9zHa7)ME7HCZ8xNe_e^VmXjI<0+a`sK~9Os2XRz7v9G_0k25@M^Bf5~_sd zEN~=VHx7^L*t9(bwDdfS4oBuEYPRa`4t(P!6f|}pMpEsHmtb80p={+NK$}Sf{h+*g zD9bKx{OhT%RbW)PfJ`VrAg-sSav$-We`bF&`J-i_VBFEQ7tc#=NAb#XFZ9wT297eF zOs-^F1A5rsh;$jtjJyGAcYzS88~iV9g)`@dx2P5KydM@Q06`@$jfb)XPzn9(pT^3 zS}3$BE3166v6~TD#I1O@e^8kmE(5tZ;t(ul35fjTU`S`8M?2y=gv9DL5Az)RkzZzi-IF-N&7SB_ z10)%n#wN4eqgtP98+mcZPCm1*Fj+7((wNj|0NXI;-1dcOtFpXypuO&M57#!>PIaxe zHMTh;WgD{jAV@Z#Z-~&z#y5e`q5Da0T2x-E(vV|M*#!S^Y2@|j@mATDsU~U2p-U1N z%MOVVvROHfN6|rUM;J9|nmP`*ZfhJ{`qXi|ueF){pzQHS4qF#pRl7H#G)l!zgS|?s zoa8`QLib6q9rbgqj)!xL>nVUa1JMdc(g9?k*meER5y2m_IZGk+D{*1N7UdiI+D{zN zYx-UtV3Hd&Od4-Ix^f@rcPiyHHP_0S8QouhR^Q5-e*ec;+qcjj+x5Z?xXC!H6ecrO zMXutexicq2Fh2{-q0`OVZ9Uw zs?lQlE}9IM4p57w#t*i(csL?B@QH#c3_K1I)5crP!)yzij=5VOg;b*IQ)EzQ)xf(T z6gNNDYHS_x4?!nW0)kBaWuLOGFP;EznR&oyCk6_?-ALU2zMeu4Sr`EM`=#v1v-iCF zy!|N`QfLJavfNR3ASOG3I~~T;AjZBw99vFM-WukFT7Cps6wV&xSN5ngnmbCXCARC` zcKrq=(8hY}k#!dY(c%(DHVbm|W7&&*Ul1$_>({d>WJ6&N@8QyGfu!{#sI z+V-0RrJF^ax{YEIAq|j007wvw5ZzN+#EBn#|M?*eqIzb?>O-mdAjV43YY<|QeMRWUhZ@)j5Uct7C$ zSUB@;CQyQ_QN&sr$phMJDMo?^VN(@A<_o0D7=P~e{~gDiVh??dg}UbdWAQg=i2gU{ zg#V1EkcNEE@BQyR1x@CEGsAmBy%!SMo4EgzS|8-FyFWZ#4)9??{$TGZmx?^Mi`{5A3 z^IuY62cRwc*QszwNwM5k7z9YfF_zo$#U7f5Gzb*dV)JbapuhilA5R>*44}!LLr`16 z+|x%+XWGqYnD|bhL(mGycbAhQhAsWdXq?vp)EeRn?{)5frl6kqQ^%<~#)n=dC7_rs z+{Op|w+t&EjRBj z80pQVo9P1lg{l}lfRShU6N>ZB&3zRBZP4NQw;??K27l|#We1d6&6FKfymwN^L5W}V z`~z+%v>FU?i=Z8f%W5C$MUT;Dl-t%(wYRewgwGp0Jhx(89a%otfNUqWd>#rd{@c-d z4u}7hiklS{d0O#_%o&6m-3mX>F&!Z`TePGH^`eubFrmZlxKdfHwfUXw7Y`~>G^B)c z_{G=p_Pr>>LZP;#1Mpw?&F?t5sZ4+!(E+6MBlbl!a*3~=Z1Dz0e&d> zUmZ8?_G= zOS7|aletv5lDDR;B$I!-G1Oc!UG6g`=EXHxX1(>rrEllERAHpO7TSfW^wiZq<=gf| zt_fKYPB$Vtm(Ke&hceN9S_-Kcv&+vN;$6S$>r^NydKDC@O2;z0Z(3N2FXFX6Fln8v z$+@X+8E~BQjRUHjZ**Sm-1AEJ?_cxMqlNArirgJ$X_1PRMXn6GSclsbVb4r@hn~P; zIXZ4^r!#DKh=nShsr#OTQHye|jKn)snCaKM6vWSqCtseD&g}oIftS^9-86m_!w`6$ z0`7w4noZd67Jk@_0`6>o(QNQc_$Z>b`!u?a9Un22_=BEq;cl|jsvA~VW@l8Ghu`CB zK4;rQJ309I5v!sE7^Fo@Laor}B_##@tJ{@vmGRD16FqOoZ{AcPk^Ltu^Sp;AJ9cQ+O!!2p$T?otyO4SRF{yoz0n~fk zM6#1w`fTR4cX$+D>XRLQnkf{|_F54JetDQs(iX2wrkxLSBD?1}D%Y7-l2l zl`KqzP7)eUNN6~80tlT#wVjlkTD61Rc48}(x%g{wlLcHDx?g3mQ5iB3_M~w}8Z#0I zPa#_rKJ!^iyCv4#7F%^k(pd5vocJoJRPuS$b#}yjqbg^SsKLX{*Z%4Xl4p3HP3POE z+`tK+NKMT9I#b@qLJTJuXXq2&6xa~%!tKw*`)z(@Yyy^w-48B;D(Z+A!M#e1X0p9s z7Kpjo{5cAxTjTGaZ$`1-O3QD~8SrtX9!1sPyW%~<7=GC+B0lvlh6bzzBl8i33D<5%ZT)oR~Yb%{)nX6A&-}-`K zxDmR*r52^OP-lP2bv54{)H1=pHD_i7km+RkbHP=%4pGRcC8OOGurN@W0ZJk$pVx87$C$|*awEb9?{&uy51iLNP%`1sN)`;RxQ0qg z$luuDpAcVJ*VzX&V4!#X1W-}`s-u45-X9n+R>L;*TGnOaGftiL&{{YePn~e|MsK1~ zNoSn|y%WoZM<(p)UU1|qq<^~FtAKt12(~f#K~B&TCdvIKi9jNvEsMl8>;b^~y4~_m zz4ZBnqhK%rMjJ{xId=L5#BkkR>8-XZHyf&Bk_!v$R*OFB@*%UbH;^^i6`4LO)0=Q; zuyB*%Wtm)3oos)}2GP;SbitIjVdv?BoV^5nhnFsN-{NOn#v40d7I52D+l81D^Q{4W z+hO9g7;&woV|6v(Tg}`%)?@(Pc=7&t!jrwzdhhY|K>;77?M9;+9E=p0_~Pf_#{_g+ z5H?rvdgpW;dS(l2TfFpwQGG*2I@c#uc4WUWWhkzlHOvg#k&YcEB<5^SG7VfIoZ7x% zU{@4gpE!98nU1-;dEa7Z>uXz}DF}|Ida>nK#TpaUB#h2ZnlYxSCXj`Z%nLA35<0l5 zR&%!17M!7{4)O}#-0Q_aJ1f)88N>OHcPq5k> z#~HZx?KDRAJajX;S@-IrR{u?9T-#jsb3x{K%Of1G(wJmUHMUU;j-38ErVPFT5o3aO z=yVsYWGib$&8EAzbLO}pxzH(wjO65nkhuzEvaGbr$!#N_m$S_?vwFS(C&Ql|MUqd( z<_XE13rB^9l$hyNH_|N!cjaux zxULyIHFRyd%az*JZI*CUYe@3-VYvzyPPbM+X`=|wRs|6}>Pao1Xg{Y+tCfr=PJJbw z9LOO3n)#ny9R?@cEfe8|%e^RmrNIElZpi^e^`_^ar+MHwg5#gSzCZ_;cZ;|U-q#$i^G?_q{!RlQYg#x| zDQ?eNkHdbr`GRla>2?rOD`deGNDR_%NAtQ|`loea*(xrja((5S`1MrFRp&=|)L^ZR zs9HWKzsKgLN*1&iFNYSIU2-~Ob~Z(pkjsZFgsbH6CQS{r5SJ%Cz~GwZUEdS}=C%?YGcEsrzX8Ek?p%k7CXgNdLUxroQ*#eVKq z5&)g@c!o*yNy(QR*Ut#0NF|guEq=Z}`ZRxFI=`Jbru)O}1sSLxN&CHY*`Olgr9+O4 z9LsSgzjK&V-_Dht+dQUkCir$Y2MWvMwsRw-f_>~O5 z%=D-qNPw+8^|iBf(iyQ}u)TYsCoJ%Cw?Jd)qGkpJpi>ubQ|s7?FvGd=@()18g74}})Vz9pVj zdy(uq#Qf0;Fovmqh6Dm0d-H8 z|E^7*HxApg`TuX7bd*2DliZeoL9oG}{@&l%RAslH(ZOg%RuF!il$g<4Q`#0OD#k>C z!l0A;yo*comLD~+8M-SOy0ZRuS^rO7ErT*H0-}9OTPrANKo$fG1gyM++hdRQKT(T| zvoFz4sGxa;HZ~dt8u4@hVkt25>N4vgFWLBl-16Sr2t$CW*)%cu74|o*g>C}j6_}I4YYdN^Im^tep9kQS;bWZ zSDfPVqi`ko;mdUm53comZoqjJTKEOH<&kbCv^bQU5tvf_k-x-e{p|3Z`>DrDgOSg0KT&2!3W<2U>ywia>xVZ zWNBObpc3OR+m2j7Jm|O4UgqooCzy$QJqnmyYEWA8^yz!gGZ)uPmclhBMYZKzmqMvX zz1;R7IIrdzaE9?rB7*j>3CWLfw~tU?Vu|a_zSn=08QD1~2dpAy^2?_qR&#Y+bTN7) zvjmFXkqZFDg4d14qOJ*g8a>8}tX1pSD?U=5CMHpMahA4j&aE|BtFi1yz?Kv!y4Wz( z?8?r0=Cc=IDL&SqcQJDNXDqejy&E`Iw)c-rwWG-AEwkrx`tzVL1}XUXA8xPgfl;Ou z^L0g=r6ZRu%dRcGCZBYQN|yTmrev|Ipgx3du+rt8tBm0x+kow+2i>hI-P|2FFlWSP z7_l{shib8M3CUB{4BUUM{b*GH)*Glq59AW6{)aIT` zST6RZSX1@rW+j%^Qr+$!N7SJBo6=?vGHq#AJsS(5Q$+ zKUAI#ZDvP;li16e%iHYt^vAZW^$;+Z=nMHDeRW&{p^Pjh&DOc zh8jS^CD!CL+H{aC%e~2)tPo}IH5shyzGUsRjB(AF&FBCsyRuDXR+s6EO^ra)13nn4 z(K|D?d=^~WCP%?(L9#S6T0GFG-zva2K#@r2z4Q6M4ekA;$I&95M5nlk0x6KYw)QQv z703y!s*NEhYcOqulRtc0SB1MVqv5?@uxw z@cu|L2>_V+KM{bHA{pY3&I)*hl$qiaE9xGgQrIG`uX2`C#bSU~Q}9wQm);xipakstYdX$7d9m)pc6!jQ|to#s>A+(jE4^`zQ#^A0SatJOUda1 zvVV*$(1-VKBMT*&5zM>>R&?qW8!PnWkh<45PAW&Qzd`xv?G-;mmlehb}&N~s!$C=Jd`#)@e` zUOUKoZh=VnCa|X#iAcuIqv%D>c&a1?2u?Es1yScp|7KLD7 zc>S)BB=7+=NRrcd(7jKkx{TyGQjXCQ#}+(1A4^c5QF1Lg)ktTyK0nq{UJ$AlIC5&< zq30~y6;8#wb5hi1gR(-oKQ}`P zbl8Bh-2GTC7(>q_dUWiGJsGSGxnuACkouJO z%Tv?)yg>V4n?-dB1DEtmVI84jz1)&l9-Bn;x-t^Owk+#xUISL){fRXjfc z2Q<*cAdc8W_hBfN+6HArNmxG3f_bh54K?x4x?Z%1}RZ36|3ECG(C^I0Qx8Ldh zHfyfey8FcF>hSSxtZ)oDoX&X1r%x^Qs3_neLhFsB$TKrq<{C*)9p!&$VOQS|)I1lY z1BG?>;t8O5;)5USi*aehA+d)&lqno0-@^KaH+|e}q$3sd55T+uyLj*Y+CWXkJ2>37 z$GZGz^~TyKg_^mbpzX3n%Rt6cFLulOJhv0B)SWdX0*$)Z=&NM%#=m|T!>jO-h>K7o z3usL7HW9v0kk-7N=gX{ag_>2V4C?7n@DEo$2TQ8>-JqOBJzPM^?wZc2?h1S2eEP## z`?$1t4Z0&Np+*PZ0B%c}EDblU@vg#yzDe`G!sb!Pj9>Ycu?i5Cs{F`$1+6T6`LXd> z$YG+>Ge!2-4#r$(jMLjdg~t`TH zy>i?*_esOyTiC{q{}r6WHf3yLGWj1*Uzhm4wbl$I7+=ZCO;b{Zf~o$SVz_+DIQIUG z^I9Wa2h7J648U)hs2T@3lWEUwJa+VJ@|rpIue#Te@X}czw|0MK^?NI%QKL)>>&M); zo@9O|Q%npkUXVPDyk*I5E51TT=4MRMKyX= zcCP6OvSO`3V&IxR9jSV)ykds?!}^*|{7|4IE3EhuoH`hs?|D?sT^DQvny`)=?DB3Kq(7nHF)$sv5P#NOfFy#LH%BW9~HhBWc028@J3QlOo2~)|R3vVfO%|3S{?@ z2#||ix$?}x8=YK40upsT0%>k4#Pi(Ja*RtB+jGBnPJlr<6(>jmKXRaxlqtOn(!}8U z<3F8<(Il{#!l(sUaB>-yz}&RMwJ`|5tf;~4NCKEY(xuQ9T+HNPkw8V({_|rifZ=13 zEGAe<{rNkf`KL2)IkfhLtMVcBMbBGX##KEj;Qr-|X2LD7;fRzfuxpz56nZ(>ta1z`i5YX4}XpL#?=OExo;+MIKNa zSLBn?COQNCt=u*!*NJGY0!!-K(Zn}3_i(~xo9vOA3?(U)s2pl{{UF;$UBB-@vW6BB zSulA=|48`fG8m@WDUE^oJezIbZX9{$*#5&?p{mK}HS4t&NR|p)^7uGdq_6>-~_JGoXm+Yiw+yCix9&grO zf$s5#oyugjPyXfrV9(IP11N$Joo;XH0Lg|%)hZU&U2dyl3;OtxI3%nja*;A;dp*K=%`w(A?l z2Q?7RhxW;X6$@AacYZ%t5EPV{&6{V^+b4Twz-eKt@!L+qyS_?s7dPWOcvfn}fHfDt zK|Nd^98G|njdFsHD1drs+pj_iUt0E)S-&*;p|dqQ(5tX&Dj!2w)%DBRwCHfVlEjdg z(ITBpd@cJ-d?3u9vazM$j#OkV)ziveRtb(q_Cu4gx}LUPI&G8wN4^$Za~Dg9-~h^@ z1u}yDiVlPVtdA@-n_wnYK74tr1dW@Q)g zG)y`EY!a81M8qk|m1ua$2+qpvAX8aM$ApS(<7}f0kqm@!fYjq@Od002q44?N>!l6A zW<3<-7v8$pd>@&a8}#Zi!+v!=&?`h=G%Nm1>8u$5Otle4!*93MEv2*yq!J zT+O3D-X-ZQG!TNH1!I0qX$nz@jMApqPjU0+&%XBl1f99XmrKw#zqaPKV^C)>{dIpR zZwlQ2s`2>yWq~*5ts#|FK{i_BDq?}b1tXJ+VX7|Y&+ z!T+JD_3HyrJ~r&#{K# zs>?_lc*PsMP)V%F4|g5VKpO63fZNg<9(@EEZ&YID5;;AO><9F?B#5NiB}EzVuR(6b$C+27Z6Pm3@$K{d_B(FW;sv`sA&yiT5w?UqXO9~aM1A^fq2 zDi6S!TAvDah7aCzVY$^57S!8U8gZPAg%r1wiScLYFn4XP$zQp~`ycHAKj)z;5=V|b zkvG9G2p@t{NB`U&q&Y2`yn524+Dcy{&U=m2;VC`{KL)cwN!@LbpjX~2%vjo(p z_TMw|;^mIAtqZ#)Ui>Fo5fsDx^ZkH4&*7A4(Xe38Yf3y;i)z3G=Osl*{(O|!0eE*d z7^Rv)zs|{1+lRe@ngR*;1tU$2&l6~TDu+6%2fQ-~l5O*84*G*t&UPys^ zUIrG~jiV0+6pU7;yslI-u}njFngmj?f%FpR7SRg+N`NTm6Y-d0C+#Gig)*nrnBza~ zX?z{~0+1EC5+%}qx4VG^#GiqC*P7aky}r)mU^aq0j&huSld{@R}X``cI`l?d?DXpg8B;3G*; ze!mOFQdfg%s2_W%F!bcK>;a_IWwQM6-zKZ9rDj6}CYTtZItHyPS27b;Q{35>H$!#) zh$E}B{5s*1K&<~*wz^6}O@5}Wv#s2Qj^Kl*Fi=P18~BALm~N1e>Cc174#(k|9j%>H z&BVaKwLZg_HMq)y6-+roENGtDP@4HsKg{a^jtQ1_v_cW~T(<0nOhh^1&=#B3tR&y_ zE$oX>obES?e;$x3JCY*Dbg%pZHmDEy26#9#^we{oQBCJaQ7^mpGnC9ZKCL{O7k zDJudN6h?|pJpn=6o2WTzmog76{+}ZT+2x3|u$K+Q<*6UeX~Nt(Kum$6I!6J9uk`rq z8XJxAa-k$!MF8Oie1DE88Zw})*8plgWAYOII5$X8$&B70flG7CUFY6AJ2=a^wHU_9 zMKK`ziz$~B{oj52O4g{KvW_V+msyIuN>F~{e5pVv&kGnB`Byc@1v9YEQi8{yf#}bC zF2?oo*Bd?M7o5Y2z>aI)f5GX+8SH{wcVv9X5L|M(rKa8`-pR}jTNLIv9G*&3$iFyN z*SlCcYzbIS!xsoy$YihZh8J{CcH(r!HiyX>O#NU7DRMj!je;2}w)}q_NK-zFfO2MX z{D_`dID<9uW(;Sta~gGd{Hhsa^-c+$=#9e=aptR5Pr}exOlZZ*V{>6z$~@RmyQFR{LI*^nC#^`(Y35O4s~JkScZSTmc+bq4kz&D`MT(RtM56g zG^^uWPQ~GR?Gy&ikSww}IY`4g=$KG&k%1QRDO`c!jDPMAMg6;l1GkEI2jz?27T7;{@d!Yz7XP8KjT}$#w!{@C+_CLUY;k#&XuaPcq9B5H&2qM(K)LNdZ5Po_DZ zyZj{{)kXZU%}T8_@Y2AlmX~;+r$Z$CAAJv|O>EZE=7ehN25b7~VdsYqby1A8ASniA zhDlC_Fz|Z?(C6U2b-pQ~w;q4VCkRxdKq;-Lf$c`yLc-d(UqB!B^xMmEidF>Y`Ax2t z$6P=OW!cU$hsC*- zAARQY!zJ>6*gX$E3K&I>*6^F`qfJ3Rj&IK~oi&NokDpEZsWMb%Ou1 z1wEhqY`<&C3oa_einB^8s8M=r9UG^Oi^x=Vb4+KkKmKOCHDu{8=jC4m6|4(TZ;>zk ztwRVm=kVn4(~|W1uPiC^=8XE;^YG^Ad^_XUXnbGmTSe!`Vj=2y{hsn#Hb2Q{2N7@c zge+LWX1FyU;F*}QQw~_JGm`9)(JBj%%0HP9410OZbJFh)VLQ|E*)ZqzE2l>~$o6}&F$vj+{yvvt+;Jm!-d{hPV3{)*TJqzG+fx*8 z>d4XL_29WgftcG9T}6ZjzPTj^8gW#>ZNtr>6^WPGgivaPjg@heo0cUgf=H_|vG!qR zQU4aMZDf7Ku41N+-QW6eFKXY~ODs^@u+dYcKXoz6wIJAV&Jv?tv`M&(8$s|L-;ACk z6tTXv@v$jnS}y&ugi9a(USPSYVwOOut7w$4IWz_yy7{b7Cc|d)c1v!tUqBOP+}|L1 zIOA=FeRcr$<|I(w1?Pk)1W6(-KU@%y4ZU+HWYmNcomk7J!cL>1N?qp5v}wobENswi zr%z3FCfz)NQoA-lXFuc|=9%q|iM+TfbwGQ(c|FB5{qCvm!AY~Ys_iGTtTL0b1?47U zg-V33f@p^9uLV3EuNSvWzaRm0*0z7`WGlT&JAkkKY+AcC@b3;Lj>Tk3F8lW%-N3r^ z7*DLJyh8ao5?*;-NWf-&9{#N4wsvu8bL7sjph%xfwWG3x7)v_pZ-)p)SHv_2^kn@@ z29b(zyE9gEtd~`8Z1titlR?r=R`Bhd3--pyJ4wvDBS@2;3R}b1 zFh!yIPrEdGFMo`jSzwD;V5k|R+GYJs|n^IcsNdumM%$3!zB%~*|LZB`@%$@kyp_ceaP z1X`F+aJh&R|M@#ju85JHaPNf-qx-lzw23uVt_up>DqmOuxw@q=A(+)2@o#ez<2)Rv zebLDf%V94{3$$DFoU6(3C>BuQC|#cv=KlSyHz-e&nJCi8ulptBn;1FV52%(l^_{}3 zr}%qfKOgzs$cM{|03c{#a8eI-o$BQ|Sl9+T5^&IRn-*o;Jy%;>1#Bg*Z8-XW&!Y zP6Wa3O!+u(U_m&Dem_~$uxi|d%AchoH4A;^Er4?dX*f$c?B=UH6CRde2b#-r9f zuc9a{LDARi@2cSXuh^Alf%8702x?Y&rnXPyg3$3_?n7xwS(Fw_6u`47zWG1eyV7td z+rNF2NsKJnLXxzgv9;QXEG-x*Su?~FGG*VlJc$q@ONy~1LK;g$_9fW|DKfSqOUxkq z7{mV><#~GEh2X$w8No zc^3iZ^F2ZWKSy*y0AWpiV9aXS!{l++?0a70C?8@j1N#b)xJsL#VJ`Ujs`S?2nGs%Ny<wA;!l{q zmVynH(FdSaiv`6K(dHgqflR7?4zkE#+|WO71V+FdY=HEKm~#lh8Q!Dl@2Ia;i-=Jm z>1wBTsd1{9?K-a(lDGUY+!<{w+_0A8q7}dayyPpb6i91DkL5z3k6Hl5`OwpE_|NqY zg0g`)-I*Gn;6(t4i{3v7%&9`V%st2~R%NRX`&7!GnYu=4szl7-Z?N*#(QQF17v zWY>T_NIx^Vx$v$_lh6-3l*|C{iFiQ6c=cQCPp3NC;>%4Bw7I{>3@7tjviX7F`nSan zb(S`Z@C{|1qDy`FkLNSKjYTe3GAZt)Oa1*aOs8r$Z`DXkKDd})FO=QAJ0{_Jq{XDI zI!IidqgOTk?I5EM{6ORtnP(S=CindQi^wF3obHN2Y=-n%WnR8bJ00K+{QLj^3$FJ6 z(Z|1!KF$D0HZ_-atU~)}*;vvD3l#X%qQ}t|K-bW&Eov?ew}hYr5#XA$g=PcIl=Ly&9yW@k^4m|{*$^3)~%Sb zS9NoH0MZyEFJM!RO`L*)MR2n+Nz9JiGd#UkJMbyN30 zyc|s}5!o3t)`*$gCsCd3aI6m>UnB@TDNoyy+=0QvSEu>@q_!eui8A%+W&rW|o!NgX zdMf0HvzpJxT2f=4mT=CZ$DWqYcJ-&rL{0!~ZWoQMvef-|Kll)#i-YrhOE%nbFKu?9 z#rm)Ryg3u+LCIC=5uPzM0rJ;DAqup+B_)x_C5^#c)Gdt)-nPLcqJo8=E}B4y7jc_SocX0L9 zgao1QuSE)Mo`p{hiY*g6imi^nn9MhQ0_2Vqs~!+t)DB;t+*{rnx`P}P9ARPv*p7|V z#83CZ$eB;5&lfgVcJ<0Sluw(SflB|LpgJ)4#w3Gj#C=@ssiZV9&<%M)ZwpFzbTuT> z$)0-Gztvv-61MXr`9QzB%Jh>@jS%wwU!6ISi*1V$KzPFDtrgP9$qA(3u=X-;8kRH+ zoP#RdLi0xVCY>gGz0VMh^#Ut$cM99ga;~!O4oLa$p#UCmiCoq7Bkg$1)k)p(E+Vdp z7N|_YEFS^IAA0y;5I~0>Mpbr(t#r!Z6_#&{M)M-x1#>Q?0OC881hT!qKDRauK0P1d zd!N1`(-H1LzN|WgU3NX|oyZlw{Dj)I*d@JeoqUSxp2nZSIV4ly7?*TYMGoigJujMsbBNQ2xv< z@_3ai%83XqB(*Z{$fFhbJ4w-CAU|>Y^3bZ&T5$BdkgP^P;pV8@8rm`8&GXGcy|YI| zjy0$b@Du#-p{pmcY3O5_dn(4)8a~@%`K< z!QZqy{MPyh=M)WJ`FULZZ$F^oI^TQ-IC4Om|L0u+1NT2LIXKX0_qCx1zcRJlAYP;Pb?V-mkY?J&0|N zZ_T|5hFsr%)9~SIB_teb@#W2Y*!*;}v6uHknmb|hxGH|_RMwep>S!S;nq0W1FlF@E zHrIQd)%_?s?C|tk(Z)Kt`xzt)WcY9yo-P10I2Ok9rJ%7{+-2jz@y6p%s%!kY<#@x^ zbw9dQ(F|-lcYH^sRY9pbvqo47peVrVI3Oqtq*um;Uqgjb0>$6j$vEjtGs~JVc()25 zgO0ND4aK6lz;E3y z*Jpj*rZDU}#v;0dnCm=Io#LX}H}h>>U}gb39IK+m2zP3K;ixjVGQQ6*0ng501zf5Aj@X zIl4gJXQrpN0M`vZP%59$Op-uZtd~oRS1NjbKj3GO{ z8%XwViCv~L%p*F~v!TM^&`aISM+5d(L(btX6(bT?80<*SI`F)?`C9Y@5!1iXxp4~^ zA-CY%KB!#ix}MeSyY*Q>`rF}L;+Xn`ntk%!8#1pKVA-4?g4>4C z&JG1&1N;{EXiv|r^*5KZ7n55-dFLZ&!z$;m3I!WVMSgyY)eG}2AuF1ck^IrGt#{Z~ z>`u4cXr3V!&E4hci7Ow^*a95ODYebUAv3tugWbE#7lqg)QSf^M_$h^GXk7YygdOsKWZ zzN^6V(rSk*VY5O0vrT=9p9JWZT;Ibx6sb{2VG{J_K=NkOZ{Ht-5cm=EZm+Xh$7^%# zA-V(VQ{5fQAwVBIq1vMye!NlJTJUH&sc^#L35KFZ;V!E1mOQtvd(x>2(gBnL8XWPm zoLXO}Nakc6vI{1=(mY!f%&5t3B-807X1E9QOxo#(2HAc!{OFe)IBzQ1TY* zxjVl)nV(O%HBysCyiw%@S8gxc98k$eU#xHjzc!t$i@`}~K1zQx12RFTdTdcq5!?_KRB)3*T)3fs5AK3p+#0a3cxN!<|U3Q0~e!Yu@pmVLAMqCWIskoR1<7^AxD@~zfHIR2UV|d2Ke!g z$#96zeKfr12p9}>vhQ&xUutw-uBtH5eH9O6cPc8GO;~%QFj1GWUpfR#wBo2a&XS;V zMEVry18stVl0uFky5-n2Bj{7@DV2l7Msx6A8h^qyQ{+J%L3$X47jR!zL}C9;rOvD{S$|^8!-{1TAgtg;$`yx{EJh;c7R*3eVv}LkbeI`ZJ@xbKC_67RQdvV0USTe2J8ayLPW((WC2za4{}rcpt9Ti#JGn z4WEB(K7ZwTV7#C6TDN(xwf95X%9%(G@S2Y_h+EKmtQ0RpiF;Ggi4RU3eo%(zMWuk_ z5AbKzvZe2+0Y;E*l*qdZ3OEnHKOB({x zhzkz2vFmRYDAOY~&$O>Ki(wI?{j z(&6qHujCuoP}L3rFM3a{`Fv;`wfbyv^OH-B%H}yD7|U@<-@XOC_09hBfWa4OqO3KF ze0!|a^VpRkMF*p zBESEr(l2Vb{z2bIR4>P8pHMqDqWJ!^TV88aBq4_~=$2Bm(&dXuo=qdlBQ>Qz=6i+t zpomltT?{I1ugfO43pGDocts5}{O<7z+zdn=u>AdqdmRcTx9YCE2ZeW(53QbQPpy1m zFfq8_;MuK?!-UC!kyyy=$g#u?MvCRUl;A7kEF{faTgPmsU?jWR|0L3%uWpmlJC-~Q z>}|g~QHMl!!u#Ho5cHWec=oq_(hPzHdV!ZT<;7@Yyjxfy7j{Hm4d6Dfw|#Ju6dWz@ z^x9bTJ7Zn_y-BZ=EGUS$r@K1--EmP(hlMApS4HX0Y`xWkcGr9Rzt$f{U%^{07~!6* zyUY!dWJo?kY_@P{t(o~n3I4PzggB4I(qCkNYpf3#yhvo021oHoQ_zT+04YoF@e&8# z>;{vd?yEFu+{3c3ntx1*@jygtSa%FTZpjAk;ow}R{pA+P` zI|ybtdrEZj3;_hfj{Sw;qLR&tz}nw%M}i|_0G9_YB~uLWJd<+A(dajPAYLtzIF<3sJ=r|_Hx#(7i;Nj(5=izpj2IKO^$0xyaRpEeucB=z-Q=>=e`7~CZq0N zeE`g&I1Zf1}Yg(-n(-{Rjlc}fTuK=&kcOqI&4$^vdK(0L8rbNOnh Gp#K1n>B}hq From 130c8a832264045a4665384150d27ac475780f2f Mon Sep 17 00:00:00 2001 From: CommandLeo <51045936+CommandLeo@users.noreply.github.com> Date: Sat, 8 Jan 2022 23:21:02 +0100 Subject: [PATCH 12/17] Docs fix (#1250) --- docs/scarpet/api/Auxiliary.md | 4 ++-- docs/scarpet/api/Overview.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/scarpet/api/Auxiliary.md b/docs/scarpet/api/Auxiliary.md index 52b73319..4270b2db 100644 --- a/docs/scarpet/api/Auxiliary.md +++ b/docs/scarpet/api/Auxiliary.md @@ -687,7 +687,7 @@ system calls. In all circumstances, these are only provided as read-only. * `app_name` - current app name or `null` if its a default app * `app_list` - list of all loaded apps excluding default commandline app * `app_scope` - scope of the global variables and function. Available options is `player` and `global` - * `app_player` - returns a player list that have app run under them. For `global` apps, the list is always empty + * `app_players` - returns a player list that have app run under them. For `global` apps, the list is always empty ##### Relevant world related properties * `world_name` - name of the world @@ -715,7 +715,7 @@ system calls. In all circumstances, these are only provided as read-only. * `game_version` - base version of the game * `game_target` - target release version * `game_major_target` - major release target. For 1.12.2, that would be 12 - * `game_minor_reease` - minor release target. For 1.12.2, that woudl be 2 + * `game_minor_release` - minor release target. For 1.12.2, that would be 2 * `game_protocol` - protocol version number * `game_pack_version` - datapack version number * `game_data_version` - data version of the game. Returns an integer, so it can be compared. diff --git a/docs/scarpet/api/Overview.md b/docs/scarpet/api/Overview.md index bde44cff..a92da2af 100644 --- a/docs/scarpet/api/Overview.md +++ b/docs/scarpet/api/Overview.md @@ -128,7 +128,7 @@ in a list and contain of map-like resources descriptors, looking like or a relative location in the same folder as the app in question (the relative location directly). `'target'` points to the path in app data, or shared app data folder. If not specified it will place the app into the main data folder with the name it has. if `'shared'` is specified and `true`. When re-downloading the app, all resources will be re-downloaded as well. -Currently, app resources are only downloaded when using `/carpet download` command. +Currently, app resources are only downloaded when using `/script download` command. * `libraries` - list of libraries or apps to be downloaded when installing the app from the app store. It needs to be a list of map-like resource descriptors, like the above `resources` field. ``` From 34e32973fa257f4d50dd1e19dcbc62d5b42ac8f3 Mon Sep 17 00:00:00 2001 From: altrisi Date: Sat, 8 Jan 2022 23:26:14 +0100 Subject: [PATCH 13/17] Use Fabric's newly exposed version APIs for app requirement parsing, expand it to allow wildcards and change load stopping to be a special exception (#1252) --- gradle.properties | 2 +- .../java/carpet/script/CarpetScriptHost.java | 86 ++++--------------- .../carpet/script/CarpetScriptServer.java | 11 ++- .../script/exception/LoadException.java | 19 ++++ src/main/resources/fabric.mod.json | 2 +- 5 files changed, 48 insertions(+), 72 deletions(-) create mode 100644 src/main/java/carpet/script/exception/LoadException.java diff --git a/gradle.properties b/gradle.properties index 79e833a9..8ce4bbfb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,7 +6,7 @@ org.gradle.jvmargs=-Xmx1G # or better: https://modmuss50.me/fabric.html minecraft_version=1.17.1 yarn_mappings=1.17.1+build.61 - loader_version=0.11.7 + loader_version=0.12.12 fabric_version=0.40.1+1.17 # Mod Properties diff --git a/src/main/java/carpet/script/CarpetScriptHost.java b/src/main/java/carpet/script/CarpetScriptHost.java index 67614b11..25ea3f57 100644 --- a/src/main/java/carpet/script/CarpetScriptHost.java +++ b/src/main/java/carpet/script/CarpetScriptHost.java @@ -13,6 +13,7 @@ import carpet.script.exception.ExpressionException; import carpet.script.exception.IntegrityException; import carpet.script.exception.InternalExpressionException; import carpet.script.exception.InvalidCallbackException; +import carpet.script.exception.LoadException; import carpet.script.utils.AppStoreManager; import carpet.script.value.EntityValue; import carpet.script.value.FunctionValue; @@ -37,6 +38,7 @@ import net.fabricmc.loader.api.ModContainer; import net.fabricmc.loader.api.SemanticVersion; import net.fabricmc.loader.api.Version; import net.fabricmc.loader.api.VersionParsingException; +import net.fabricmc.loader.api.metadata.version.VersionPredicate; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityType; import net.minecraft.nbt.NbtElement; @@ -60,7 +62,6 @@ import java.util.Locale; import java.util.Map; import java.util.Map.Entry; import java.util.TreeMap; -import java.util.function.BiPredicate; import java.util.function.Consumer; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -119,8 +120,7 @@ public class CarpetScriptHost extends ScriptHost String code = module.getCode(); if (code == null) { - Messenger.m(source, "r Unable to load "+module.getName()+" app - code not found"); - return null; + throw new LoadException("Code not found"); } host.setChatErrorSnooper(source); CarpetExpression ex = new CarpetExpression(host.main, code, source, new BlockPos(0, 0, 0)); @@ -131,13 +131,12 @@ public class CarpetScriptHost extends ScriptHost catch (CarpetExpressionException e) { host.handleErrorWithStack("Error while evaluating expression", e); - host.resetErrorSnooper(); - return null; + throw new LoadException(); } - catch (ArithmeticException ae) + catch (ArithmeticException ae) // is this branch ever reached? Seems like arithmetic exceptions are converted to CEEs earlier { host.handleErrorWithStack("Math doesn't compute", ae); - return null; + throw new LoadException(); } catch (StackOverflowError soe) { @@ -314,7 +313,7 @@ public class CarpetScriptHost extends ScriptHost { Value reqResult = callNow((FunctionValue) loadRequirements, Collections.emptyList()); if (reqResult.getBoolean()) // != false or null - throw new InternalExpressionException(reqResult.getString()); + throw new LoadException(reqResult.getString()); } else { @@ -422,20 +421,6 @@ public class CarpetScriptHost extends ScriptHost return addLegacyCommand(notifier); } - // Prefixes based on FLoader's SemanticVersionPredicateParser's class prefixes under Apache 2.0, since that's not public API - private static final Map> VERSION_PREFIXES = new HashMap>() {{ - put(">=", (target, source) -> source.compareTo(target) >= 0); - put("<=", (target, source) -> source.compareTo(target) <= 0); - put(">", (target, source) -> source.compareTo(target) > 0); - put("<", (target, source) -> source.compareTo(target) < 0); - put("=", (target, source) -> source.compareTo(target) == 0); - put("~", (target, source) -> source.compareTo(target) >= 0 - && source.getVersionComponent(0) == target.getVersionComponent(0) - && source.getVersionComponent(1) == target.getVersionComponent(1)); - put("^", (target, source) -> source.compareTo(target) >= 0 - && source.getVersionComponent(0) == target.getVersionComponent(0)); - }}; - public void checkModVersionRequirements(Value reqs) { if (reqs == null) return; @@ -446,58 +431,25 @@ public class CarpetScriptHost extends ScriptHost Map requirements = ((MapValue)reqs).getMap(); for (Entry requirement : requirements.entrySet()) { - boolean successful = false; String requiredModId = requirement.getKey().getString(); - String requirementString = requirement.getValue().getString(); - + String stringPredicate = requirement.getValue().getString(); + VersionPredicate predicate; + try { + predicate = VersionPredicate.parse(stringPredicate); + } catch (VersionParsingException e) { + throw new InternalExpressionException("Failed to parse version conditions for '" + requiredModId + "' in 'requires': " + e.getMessage()); + } + ModContainer mod = FabricLoader.getInstance().getModContainer(requiredModId).orElse(null); if (mod != null) { - if (requirementString.equals("*")) - continue; Version presentVersion = mod.getMetadata().getVersion(); - BiPredicate tester = null; - String remainingRequirementString = requirementString; - for (Entry> s : VERSION_PREFIXES.entrySet()) - { - if (requirementString.startsWith(s.getKey())) - { - tester = s.getValue(); - remainingRequirementString = requirementString.substring(s.getKey().length()); - } - } - if (tester == null) - tester = VERSION_PREFIXES.get("="); - if (presentVersion instanceof SemanticVersion) - { - SemanticVersion requiredVersion = null; - try { - requiredVersion = SemanticVersion.parse(remainingRequirementString); - } - catch (VersionParsingException e) - { - throw new InternalExpressionException("Failed to parse semantic version for '" + requiredModId + "' in 'requires': " + e.getMessage()); - } - if (tester.test(requiredVersion, (SemanticVersion) presentVersion)) - successful = true; - } - else - { - if (FabricLoader.getInstance().isDevelopmentEnvironment()) - successful = true; // Autoversioning breaks semver in dev (loads as ${version}) - else - { - if (!(tester == VERSION_PREFIXES.get("="))) - throw new InternalExpressionException("Mod '"+requiredModId+"' doesn't use semversion, thus can only check version equality"); - if (presentVersion.getFriendlyString().equals(remainingRequirementString)) - successful = true; - } + if (predicate.test(presentVersion) || (FabricLoader.getInstance().isDevelopmentEnvironment() && !(presentVersion instanceof SemanticVersion))) + { // in a dev env, mod version is usually replaced with ${version}, and that isn't semantic + continue; } } - if (!successful) - { - throw new InternalExpressionException(getName()+" requires " + requiredModId + " version " + requirementString + " in order to load"); - } + throw new LoadException(String.format("%s requires a version of mod '%s' matching '%s', which is missing!", getName(), requiredModId, stringPredicate)); } } diff --git a/src/main/java/carpet/script/CarpetScriptServer.java b/src/main/java/carpet/script/CarpetScriptServer.java index 8b92c010..99597247 100644 --- a/src/main/java/carpet/script/CarpetScriptServer.java +++ b/src/main/java/carpet/script/CarpetScriptServer.java @@ -13,6 +13,7 @@ import carpet.CarpetServer; import carpet.script.bundled.FileModule; import carpet.script.bundled.Module; import carpet.script.exception.ExpressionException; +import carpet.script.exception.LoadException; import carpet.script.language.Arithmetic; import carpet.script.language.ControlFlow; import carpet.script.language.DataStructures; @@ -256,10 +257,14 @@ public class CarpetScriptServer Messenger.m(source, "r Failed to add "+name+" app"); return false; } - CarpetScriptHost newHost = CarpetScriptHost.create(this, module, perPlayer, source, commandValidator, isRuleApp, installer); - if (newHost == null) + CarpetScriptHost newHost; + try { - Messenger.m(source, "r Failed to add "+name+" app"); + newHost = CarpetScriptHost.create(this, module, perPlayer, source, commandValidator, isRuleApp, installer); + } + catch (LoadException e) + { + Messenger.m(source, "r Failed to add " + name + " app" + (e.getMessage() == null ? "" : ": " + e.getMessage())); return false; } // config needs to be read as we load the app since some events use that info diff --git a/src/main/java/carpet/script/exception/LoadException.java b/src/main/java/carpet/script/exception/LoadException.java new file mode 100644 index 00000000..740a04b1 --- /dev/null +++ b/src/main/java/carpet/script/exception/LoadException.java @@ -0,0 +1,19 @@ +package carpet.script.exception; + +/** + * A Scarpet exception that indicates that load of the app has failed. + * + * Goes up the stack to the point of app load and gets caught there, preventing the app from loading with + * the given message. + * + */ +public class LoadException extends RuntimeException implements ResolvedException { + + public LoadException() { + super(); + } + + public LoadException(String message) { + super(message); + } +} diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index e5329f06..4b170d59 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -33,7 +33,7 @@ "depends": { "minecraft": "1.17.x", - "fabricloader": ">=0.11.3", + "fabricloader": ">=0.12.8", "java": ">=16" } } From 50d9e51d3f6a18d4d384f39e4216186116595cec Mon Sep 17 00:00:00 2001 From: Ghoulboy Date: Sun, 9 Jan 2022 00:07:45 +0100 Subject: [PATCH 14/17] Fake players can be spawned in survival mode while flying (#1264) * Fixes #1263 * Update src/main/java/carpet/commands/PlayerCommand.java Co-authored-by: James103 <37945304+James103@users.noreply.github.com> Co-authored-by: gnembon <41132274+gnembon@users.noreply.github.com> Co-authored-by: James103 <37945304+James103@users.noreply.github.com> --- src/main/java/carpet/commands/PlayerCommand.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/carpet/commands/PlayerCommand.java b/src/main/java/carpet/commands/PlayerCommand.java index 69dcce4b..b4255503 100644 --- a/src/main/java/carpet/commands/PlayerCommand.java +++ b/src/main/java/carpet/commands/PlayerCommand.java @@ -299,6 +299,9 @@ public class PlayerCommand { // Force override flying to true for spectator players, or they will fell out of the world. flying = true; + } else if(mode.isSurvivalLike()){ + // Force override flying to false for survival-like players, or they will fly too + flying = false; } String playerName = StringArgumentType.getString(context, "player"); if (playerName.length()>maxPlayerLength(source.getServer())) From 8a278e46de83c372c631988e9d2c2cb12f89411a Mon Sep 17 00:00:00 2001 From: altrisi Date: Sun, 9 Jan 2022 00:08:55 +0100 Subject: [PATCH 15/17] Fix deprecated `last_tick_times` (#1265) --- src/main/java/carpet/script/api/Auxiliary.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/carpet/script/api/Auxiliary.java b/src/main/java/carpet/script/api/Auxiliary.java index b89ee933..5e508815 100644 --- a/src/main/java/carpet/script/api/Auxiliary.java +++ b/src/main/java/carpet/script/api/Auxiliary.java @@ -676,7 +676,7 @@ public class Auxiliary { expression.addContextFunction("last_tick_times", -1, (c, t, lv) -> { c.host.issueDeprecation("last_tick_times()"); - return SystemInfo.get("last_tick_times", (CarpetContext)c); + return SystemInfo.get("server_last_tick_times", (CarpetContext)c); }); From f697924d30295800572f8e46094befda5ecdd386 Mon Sep 17 00:00:00 2001 From: Ghoulboy Date: Tue, 11 Jan 2022 23:29:03 +0100 Subject: [PATCH 16/17] Used wrong method to query world border size (#1236) --- docs/scarpet/api/Auxiliary.md | 3 ++- src/main/java/carpet/script/utils/SystemInfo.java | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/docs/scarpet/api/Auxiliary.md b/docs/scarpet/api/Auxiliary.md index 4270b2db..408d103e 100644 --- a/docs/scarpet/api/Auxiliary.md +++ b/docs/scarpet/api/Auxiliary.md @@ -702,7 +702,8 @@ system calls. In all circumstances, these are only provided as read-only. * `world_top` - Returns current dimensions' topmost Y value where one can place blocks. * `world_bottom` - Returns current dimensions' bottommost Y value where one can place blocks. * `world_center` - Returns coordinates of the center of the world with respect of the world border - * `world_size` - Returns size of the world where at this distance from `world_center` world border appears. + * `world_size` - Returns radius of world border for current dimension. + * `world_max_size` - Returns maximum possible radius of world border for current dimension. * ##### Relevant gameplay related properties * `game_difficulty` - current difficulty of the game: `'peaceful'`, `'easy'`, `'normal'`, or `'hard'` diff --git a/src/main/java/carpet/script/utils/SystemInfo.java b/src/main/java/carpet/script/utils/SystemInfo.java index 7d033cfb..73e4a125 100644 --- a/src/main/java/carpet/script/utils/SystemInfo.java +++ b/src/main/java/carpet/script/utils/SystemInfo.java @@ -73,7 +73,9 @@ public class SystemInfo { return ListValue.fromTriple(worldBorder.getCenterX(), 0, worldBorder.getCenterZ()); }); - put("world_size", c-> new NumericValue( c.s.getWorld().getWorldBorder().getMaxRadius())); + put("world_size", c -> new NumericValue(c.s.getWorld().getWorldBorder().getSize() / 2)); + + put("world_max_size", c-> new NumericValue( c.s.getWorld().getWorldBorder().getMaxRadius())); put("world_time", c -> new NumericValue(c.s.getWorld().getTime())); From 1a96533818e6914b79381fa99d1801b8d16b8783 Mon Sep 17 00:00:00 2001 From: Random J Farmer Date: Tue, 11 Jan 2022 23:31:21 +0100 Subject: [PATCH 17/17] updated documentation for 1.18 (#1269) --- docs/scarpet/Full.md | 7 +++++-- docs/scarpet/api/BlocksAndWorldAccess.md | 13 ++++++------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/docs/scarpet/Full.md b/docs/scarpet/Full.md index 17c6b3d3..1fb28263 100644 --- a/docs/scarpet/Full.md +++ b/docs/scarpet/Full.md @@ -2483,6 +2483,9 @@ is only effective if you set it at y=0, and affects the entire column of. In the specific Y coordinate of the biome you want to change, and it affects roughly 4x4x4 area (give or take some random noise). +This changed again in 1.18. The overworld behaves like the nether now, the biome must be set +for individual y coordinates. + Throws `unknown_biome` if the `biome_name` doesn't exist. ### `update(pos)` @@ -2675,8 +2678,8 @@ With block, or name, returns the name of the biome in that position, or throws ` Note: Have to pass all 6 of the mentioned noise types and only these noise types for it to evaluate a biome. With an optional feature, it returns value for the specified attribute for that biome. Available and queryable features include: -* `'top_material'`: unlocalized block representing the top surface material -* `'under_material'`: unlocalized block representing what sits below topsoil +* `'top_material'`: unlocalized block representing the top surface material (1.17.1 and below only) +* `'under_material'`: unlocalized block representing what sits below topsoil (1.17.1 and below only) * `'category'`: the parent biome this biome is derived from. Possible values include: `'none'`, `'taiga'`, `'extreme_hills'`, `'jungle'`, `'mesa'`, `'plains'`, `'savanna'`, `'icy'`, `'the_end'`, `'beach'`, `'forest'`, `'ocean'`, `'desert'`, `'river'`, diff --git a/docs/scarpet/api/BlocksAndWorldAccess.md b/docs/scarpet/api/BlocksAndWorldAccess.md index a74970f7..7a8c3445 100644 --- a/docs/scarpet/api/BlocksAndWorldAccess.md +++ b/docs/scarpet/api/BlocksAndWorldAccess.md @@ -157,12 +157,11 @@ Throws `unknown_poi` if the provided point of interest doesn't exist ### `set_biome(pos, biome_name, update=true)` Changes the biome at that block position. if update is specified and false, then chunk will not be refreshed -on the clients. Biome changes can only be send to clients with the entire data from the chunk. +on the clients. Biome changes can only be sent to clients with the entire data from the chunk. -Setting a biome is now (as of 1.16) dimension specific. In the overworld and the end changing the biome -is only effective if you set it at y=0, and affects the entire column of. In the nether - you have to use the -specific Y coordinate of the biome you want to change, and it affects roughly 4x4x4 area (give or take some random -noise). +Be aware that depending on the MC version and dimension settings biome can be set either in a 1x1x256 +column or 4x4x4 hyperblock, so for some versions Y will be ignored and for some precision of biome +setting is less than 1x1x1 block. Throws `unknown_biome` if the `biome_name` doesn't exist. @@ -356,8 +355,8 @@ With block, or name, returns the name of the biome in that position, or throws ` Note: Have to pass all 6 of the mentioned noise types and only these noise types for it to evaluate a biome. With an optional feature, it returns value for the specified attribute for that biome. Available and queryable features include: -* `'top_material'`: unlocalized block representing the top surface material -* `'under_material'`: unlocalized block representing what sits below topsoil +* `'top_material'`: unlocalized block representing the top surface material (1.17.1 and below only) +* `'under_material'`: unlocalized block representing what sits below topsoil (1.17.1 and below only) * `'category'`: the parent biome this biome is derived from. Possible values include: `'none'`, `'taiga'`, `'extreme_hills'`, `'jungle'`, `'mesa'`, `'plains'`, `'savanna'`, `'icy'`, `'the_end'`, `'beach'`, `'forest'`, `'ocean'`, `'desert'`, `'river'`,