From 52959ecb17585479247fab96942fec0fdb7600b5 Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Sat, 25 Jul 2020 14:47:00 +0200 Subject: [PATCH 001/598] fix broken link in wec.rst --- docs/readthedocs/models/input/participant/wec.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/readthedocs/models/input/participant/wec.rst b/docs/readthedocs/models/input/participant/wec.rst index c4dcf7d54..2f010c7dc 100644 --- a/docs/readthedocs/models/input/participant/wec.rst +++ b/docs/readthedocs/models/input/participant/wec.rst @@ -26,7 +26,7 @@ Type Model +------------------+---------+----------------------------------------------------------------------+ | cosphiRated | -- | Rated power factor | +------------------+---------+----------------------------------------------------------------------+ -| cpCharacteristic | -- | Wind velocity dependent :ref:`Betz factors `. | +| cpCharacteristic | -- | Wind velocity dependent :ref:`Betz factors`. | +------------------+---------+----------------------------------------------------------------------+ | etaConv | % | Efficiency of the assets inverter | +------------------+---------+----------------------------------------------------------------------+ From fbeec276cb3fe4d975818f875e670e825e50f931 Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Sun, 26 Jul 2020 13:41:12 +0200 Subject: [PATCH 002/598] added ChargingPointType + ChargingPointTypeUtils --- .../ChargingPointTypeException.java | 17 ++ .../datamodel/models/ElectricCurrentType.java | 32 +++ .../type/chargingpoint/ChargingPointType.java | 100 ++++++++ .../chargingpoint/ChargingPointTypeUtils.java | 222 ++++++++++++++++++ .../ChargingPointTypeUtilsTest.groovy | 79 +++++++ 5 files changed, 450 insertions(+) create mode 100644 src/main/java/edu/ie3/datamodel/exceptions/ChargingPointTypeException.java create mode 100644 src/main/java/edu/ie3/datamodel/models/ElectricCurrentType.java create mode 100644 src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointType.java create mode 100644 src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtils.java create mode 100644 src/test/groovy/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtilsTest.groovy diff --git a/src/main/java/edu/ie3/datamodel/exceptions/ChargingPointTypeException.java b/src/main/java/edu/ie3/datamodel/exceptions/ChargingPointTypeException.java new file mode 100644 index 000000000..cf82d64de --- /dev/null +++ b/src/main/java/edu/ie3/datamodel/exceptions/ChargingPointTypeException.java @@ -0,0 +1,17 @@ +/* + * © 2020. TU Dortmund University, + * Institute of Energy Systems, Energy Efficiency and Energy Economics, + * Research group Distribution grid planning and operation +*/ +package edu.ie3.datamodel.exceptions; + +/** Is thrown in case, there is some problem when building VoltageLevelInformation */ +public class ChargingPointTypeException extends Exception { + public ChargingPointTypeException(String message) { + super(message); + } + + public ChargingPointTypeException(String message, Throwable cause) { + super(message, cause); + } +} diff --git a/src/main/java/edu/ie3/datamodel/models/ElectricCurrentType.java b/src/main/java/edu/ie3/datamodel/models/ElectricCurrentType.java new file mode 100644 index 000000000..1f634e885 --- /dev/null +++ b/src/main/java/edu/ie3/datamodel/models/ElectricCurrentType.java @@ -0,0 +1,32 @@ +/* + * © 2020. TU Dortmund University, + * Institute of Energy Systems, Energy Efficiency and Energy Economics, + * Research group Distribution grid planning and operation +*/ +package edu.ie3.datamodel.models; + +import edu.ie3.util.StringUtils; +import java.util.Optional; + +/** + * //ToDo: Class Description + * + * @version 0.1 + * @since 25.07.20 + */ +public enum ElectricCurrentType { + AC, + DC; + + public static Optional parse(String electricCurrentId) { + String cleanedElectricCurrentId = + StringUtils.cleanString(electricCurrentId).replace("_", "").trim().toUpperCase(); + Optional res; + try { + res = Optional.of(ElectricCurrentType.valueOf(cleanedElectricCurrentId)); + } catch (IllegalArgumentException | NullPointerException e) { + res = Optional.empty(); + } + return res; + } +} diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointType.java b/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointType.java new file mode 100644 index 000000000..de4b7f169 --- /dev/null +++ b/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointType.java @@ -0,0 +1,100 @@ +/* + * © 2020. TU Dortmund University, + * Institute of Energy Systems, Energy Efficiency and Energy Economics, + * Research group Distribution grid planning and operation +*/ +package edu.ie3.datamodel.models.input.system.type.chargingpoint; + +import edu.ie3.datamodel.models.ElectricCurrentType; +import edu.ie3.util.quantities.PowerSystemUnits; +import java.util.*; +import javax.measure.Quantity; +import javax.measure.quantity.Power; + +/** + * //ToDo: Class Description + * + * @version 0.1 + * @since 25.07.20 + */ +public class ChargingPointType { + + private final String id; + private final Quantity sRated; + private final ElectricCurrentType electricCurrentType; + + private final Set synonymousIds; + + public ChargingPointType( + String id, Quantity sRated, ElectricCurrentType electricCurrentType) { + this.id = id; + this.sRated = sRated; + this.electricCurrentType = electricCurrentType; + this.synonymousIds = new HashSet<>(); + } + + public ChargingPointType( + String id, + Quantity sRated, + ElectricCurrentType electricCurrentType, + Set synonymousIds) { + this.id = id; + this.sRated = sRated; + this.electricCurrentType = electricCurrentType; + this.synonymousIds = synonymousIds; + } + + public String getId() { + return id; + } + + public Quantity getsRated() { + return sRated; + } + + public ElectricCurrentType getElectricCurrentType() { + return electricCurrentType; + } + + public Set getSynonymousIds() { + return synonymousIds; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + ChargingPointType that = (ChargingPointType) o; + return id.equals(that.id) + && sRated.equals(that.sRated) + && electricCurrentType == that.electricCurrentType + && synonymousIds.equals(that.synonymousIds); + } + + @Override + public int hashCode() { + return Objects.hash(id, sRated, electricCurrentType, synonymousIds); + } + + @Override + public String toString() { + return ChargingPointTypeUtils.fromIdString(id) + .flatMap( + commonType -> { + if (commonType.getsRated().equals(sRated) + && commonType.getElectricCurrentType().equals(electricCurrentType)) { + return Optional.of(commonType.id); + } else { + return Optional.empty(); + } + }) + .orElseGet( + () -> + id + + "(" + + sRated.to(PowerSystemUnits.KILOVOLTAMPERE).getValue().doubleValue() + + "|" + + electricCurrentType + + ")"); + } +} diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtils.java b/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtils.java new file mode 100644 index 000000000..91b88cb7a --- /dev/null +++ b/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtils.java @@ -0,0 +1,222 @@ +/* + * © 2020. TU Dortmund University, + * Institute of Energy Systems, Energy Efficiency and Energy Economics, + * Research group Distribution grid planning and operation +*/ +package edu.ie3.datamodel.models.input.system.type.chargingpoint; + +import static edu.ie3.datamodel.models.ElectricCurrentType.AC; +import static edu.ie3.datamodel.models.ElectricCurrentType.DC; + +import edu.ie3.datamodel.exceptions.ChargingPointTypeException; +import edu.ie3.datamodel.models.ElectricCurrentType; +import edu.ie3.util.StringUtils; +import edu.ie3.util.quantities.PowerSystemUnits; +import java.util.*; +import java.util.function.Function; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; +import java.util.stream.Stream; +import javax.measure.Quantity; +import javax.measure.quantity.Power; +import tec.uom.se.quantity.Quantities; + +/** + * //ToDo: Class Description + * + * @version 0.1 + * @since 26.07.20 + */ +public class ChargingPointTypeUtils { + + private ChargingPointTypeUtils() { + throw new IllegalStateException("This is a factory class. Don't try to instantiate it."); + } + + /* common charging point socket type implementations */ + + public static final ChargingPointType HouseholdSocket = + new ChargingPointType( + "HouseholdSocket", + Quantities.getQuantity(2.3, PowerSystemUnits.KILOVOLTAMPERE), + AC, + new HashSet<>(Arrays.asList("household", "hhs", "schuko-simple"))); + + public static final ChargingPointType BlueHouseholdSocket = + new ChargingPointType( + "BlueHouseholdSocket", + Quantities.getQuantity(3.6, PowerSystemUnits.KILOVOLTAMPERE), + AC, + new HashSet<>(Arrays.asList("bluehousehold", "bhs", "schuko-camping"))); + + public static final ChargingPointType Cee16ASocket = + new ChargingPointType( + "Cee16ASocket", + Quantities.getQuantity(11, PowerSystemUnits.KILOVOLTAMPERE), + AC, + Collections.singleton("cee16")); + + public static final ChargingPointType Cee32ASocket = + new ChargingPointType( + "Cee32ASocket", + Quantities.getQuantity(22, PowerSystemUnits.KILOVOLTAMPERE), + AC, + Collections.singleton("cee32")); + + public static final ChargingPointType Cee63ASocket = + new ChargingPointType( + "Cee63ASocket", + Quantities.getQuantity(43, PowerSystemUnits.KILOVOLTAMPERE), + AC, + Collections.singleton("cee63")); + + public static final ChargingPointType ChargingStationType1 = + new ChargingPointType( + "ChargingStationType1", + Quantities.getQuantity(7.2, PowerSystemUnits.KILOVOLTAMPERE), + AC, + new HashSet<>(Arrays.asList("cst1", "stationtype1", "cstype1"))); + + public static final ChargingPointType ChargingStationType2 = + new ChargingPointType( + "ChargingStationType2", + Quantities.getQuantity(43, PowerSystemUnits.KILOVOLTAMPERE), + AC, + new HashSet<>(Arrays.asList("cst2", "stationtype2", "cstype2"))); + + public static final ChargingPointType ChargingStationCcsComboType1 = + new ChargingPointType( + "ChargingStationCcsComboType1", + Quantities.getQuantity(11, PowerSystemUnits.KILOVOLTAMPERE), + DC, + new HashSet<>(Arrays.asList("csccs1", "csccscombo1"))); + + public static final ChargingPointType ChargingStationCcsComboType2 = + new ChargingPointType( + "ChargingStationCcsComboType2", + Quantities.getQuantity(50, PowerSystemUnits.KILOVOLTAMPERE), + DC, + new HashSet<>(Arrays.asList("csccs2", "csccscombo2"))); + + public static final ChargingPointType TeslaSuperChargerV1 = + new ChargingPointType( + "TeslaSuperChargerV1", + Quantities.getQuantity(135, PowerSystemUnits.KILOVOLTAMPERE), + DC, + new HashSet<>(Arrays.asList("tesla1", "teslav1", "supercharger1", "supercharger"))); + + public static final ChargingPointType TeslaSuperChargerV2 = + new ChargingPointType( + "TeslaSuperChargerV2", + Quantities.getQuantity(150, PowerSystemUnits.KILOVOLTAMPERE), + DC, + new HashSet<>(Arrays.asList("tesla2", "teslav2", "supercharger2"))); + + public static final ChargingPointType TeslaSuperChargerV3 = + new ChargingPointType( + "TeslaSuperChargerV3", + Quantities.getQuantity(250, PowerSystemUnits.KILOVOLTAMPERE), + DC, + new HashSet<>(Arrays.asList("tesla3", "teslav3", "supercharger3"))); + + protected static final Map commonChargingPointTypes = + Collections.unmodifiableMap( + Stream.of( + HouseholdSocket, + BlueHouseholdSocket, + Cee16ASocket, + Cee32ASocket, + Cee63ASocket, + ChargingStationType1, + ChargingStationType2, + ChargingStationCcsComboType1, + ChargingStationCcsComboType2, + TeslaSuperChargerV1, + TeslaSuperChargerV2, + TeslaSuperChargerV3) + .flatMap( + type -> + Stream.concat( + Stream.of(type.getId().toLowerCase()), + type.getSynonymousIds().stream().map(String::toLowerCase)) + .collect(Collectors.toMap(Function.identity(), v -> type)).entrySet() + .stream()) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))); + + // todo javadocs with examples + // input is expected in kVA!!! + public static ChargingPointType parse(String parsableString) throws ChargingPointTypeException { + + ChargingPointType res; + + // valid regex for either custom or pre-defined types + String validCustomRegex = "(\\w+\\d*)\\s*\\(\\s*(\\d+\\.?\\d+)\\s*\\|\\s*(AC|DC)\\s*\\)"; + + // does it match the valid regex? + Pattern pattern = Pattern.compile(validCustomRegex); + Matcher matcher = pattern.matcher(parsableString); + if (matcher.find() + && matcher.groupCount() + == 3) { // only valid if 3 groups are present (id, sRated, electric current) + String id = matcher.group(1); + + // try to parse sRated + currentType + // regex limits to digits -> no need to catch any NumberFormatException || + // NullPointerException + final Quantity sRated = + Quantities.getQuantity( + Double.parseDouble(matcher.group(2)), PowerSystemUnits.KILOVOLTAMPERE); + + // regex limits to AC|DC -> parsing must always succeed, exception for safety reasons only + String currentTypeString = matcher.group(3); + ElectricCurrentType currentType = + ElectricCurrentType.parse(currentTypeString) + .orElseThrow( + () -> + new ChargingPointTypeException( + "Cannot parse '" + + parsableString + + "' to charging point: " + + "Invalid electric current type value '" + + currentTypeString + + "' provided!")); + + // search for common type that is equal to the input or build a custom one + res = + fromIdString(id) + .flatMap( + commonType -> { + if (commonType.getsRated().equals(sRated) + && commonType.getElectricCurrentType().equals(currentType)) { + return Optional.of(commonType); + } else { + return Optional.empty(); + } + }) + .orElseGet(() -> new ChargingPointType(id, sRated, currentType)); + } else { + // is it only the name of a pre-defined type? + res = + fromIdString(parsableString) + .orElseThrow( + () -> + new ChargingPointTypeException( + "Provided charging point type string '" + + parsableString + + "' is neither a valid custom type string " + + "nor can a common charging point type with id '" + + parsableString + + "' be found! " + + "Please either provide a valid custom string in the format '(|)' " + + "(e.g. 'FastCharger(50|DC)') or a common type id (see docs for all available common types).")); + } + + return res; + } + + public static Optional fromIdString(String id) { + String cleanedId = StringUtils.cleanString(id).replace("_", "").trim().toLowerCase(); + return Optional.ofNullable(commonChargingPointTypes.get(cleanedId)); + } +} diff --git a/src/test/groovy/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtilsTest.groovy b/src/test/groovy/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtilsTest.groovy new file mode 100644 index 000000000..d29629b3b --- /dev/null +++ b/src/test/groovy/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtilsTest.groovy @@ -0,0 +1,79 @@ +/* + * © 2020. TU Dortmund University, + * Institute of Energy Systems, Energy Efficiency and Energy Economics, + * Research group Distribution grid planning and operation + */ +package edu.ie3.datamodel.models.input.system.type.chargingpoint + +import edu.ie3.datamodel.exceptions.ChargingPointTypeException +import edu.ie3.datamodel.models.ElectricCurrentType +import edu.ie3.util.quantities.PowerSystemUnits + +import static edu.ie3.util.quantities.PowerSystemUnits.KILOVOLTAMPERE +import static edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointTypeUtils.* +import spock.lang.Specification +import tec.uom.se.quantity.Quantities + + +/** + * //ToDo: Class Description + * + * @version 0.1* @since 25.07.20 + */ +class ChargingPointTypeUtilsTest extends Specification { + + def "The ChargingPointTypeUtils should throw an exception on instantiation"() { + when: + new ChargingPointTypeUtils() + + then: + IllegalStateException ex = thrown() + ex.message == "This is a factory class. Don't try to instantiate it." + } + + def "The ChargingPointTypeUtils should parse and return valid charging point type strings as expected"() { + given: + ChargingPointType actual = parse(parsableString) + + expect: + actual == expectedObj + actual.toString() == expectedString + + where: + parsableString || expectedObj || expectedString + "household" || HouseholdSocket || "HouseholdSocket" + "HouseholdSocket" || HouseholdSocket || "HouseholdSocket" + "BlueHouseholdSocket" || BlueHouseholdSocket || "BlueHouseholdSocket" + "Cee16ASocket" || Cee16ASocket || "Cee16ASocket" + "cee32" || Cee32ASocket || "Cee32ASocket" + "CEE63" || Cee63ASocket || "Cee63ASocket" + "csT1" || ChargingStationType1 || "ChargingStationType1" + "stationtype2" || ChargingStationType2 || "ChargingStationType2" + "ChargingStationCcsComboType1" || ChargingStationCcsComboType1 || "ChargingStationCcsComboType1" + "csccs2" || ChargingStationCcsComboType2 || "ChargingStationCcsComboType2" + "TeslaSuperChargerV1" || TeslaSuperChargerV1 || "TeslaSuperChargerV1" + "tesla2" || TeslaSuperChargerV2 || "TeslaSuperChargerV2" + "supercharger3" || TeslaSuperChargerV3 || "TeslaSuperChargerV3" + "FastCharger(50|DC)" || new ChargingPointType("FastCharger", Quantities.getQuantity(50, KILOVOLTAMPERE), ElectricCurrentType.DC) || "FastCharger(50.0|DC)" + "household(1.8|DC)" || new ChargingPointType("household", Quantities.getQuantity(1.8, KILOVOLTAMPERE), ElectricCurrentType.DC) || "household(1.8|DC)" + "Household(2.3|AC)" || HouseholdSocket || "HouseholdSocket" + "household(2.3|AC)" || HouseholdSocket || "HouseholdSocket" + } + + def "The ChargingPointTypeUtils should throw exceptions as expected when invalid charging point type strings are provided"() { + when: + parse(invalidString) + + then: + ChargingPointTypeException ex = thrown() + ex.message == expectedExceptionMsg + + where: + + invalidString || expectedExceptionMsg + "" || "Provided charging point type string '' is neither a valid custom type string nor can a common charging point type with id '' be found! Please either provide a valid custom string in the format '(|)' (e.g. 'FastCharger(50|DC)') or a common type id (see docs for all available common types)." + "DCFast" || "Provided charging point type string 'DCFast' is neither a valid custom type string nor can a common charging point type with id 'DCFast' be found! Please either provide a valid custom string in the format '(|)' (e.g. 'FastCharger(50|DC)') or a common type id (see docs for all available common types)." + "FastCharger(50|PC)" || "Provided charging point type string 'FastCharger(50|PC)' is neither a valid custom type string nor can a common charging point type with id 'FastCharger(50|PC)' be found! Please either provide a valid custom string in the format '(|)' (e.g. 'FastCharger(50|DC)') or a common type id (see docs for all available common types)." + "FastCharger(AC|2.4)" || "Provided charging point type string 'FastCharger(AC|2.4)' is neither a valid custom type string nor can a common charging point type with id 'FastCharger(AC|2.4)' be found! Please either provide a valid custom string in the format '(|)' (e.g. 'FastCharger(50|DC)') or a common type id (see docs for all available common types)." + } +} From 0d8db8fe1954ab796aa1dbade119769a29b049ca Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Sun, 26 Jul 2020 14:11:21 +0200 Subject: [PATCH 003/598] - added CsInput - deprecated EvcsInput --- .../models/input/system/CsInput.java | 181 ++++++++++++++++++ .../models/input/system/EvcsInput.java | 1 + .../models/input/system/CsInputTest.groovy | 35 ++++ .../common/SystemParticipantTestData.groovy | 15 ++ 4 files changed, 232 insertions(+) create mode 100644 src/main/java/edu/ie3/datamodel/models/input/system/CsInput.java create mode 100644 src/test/groovy/edu/ie3/datamodel/models/input/system/CsInputTest.groovy diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/CsInput.java b/src/main/java/edu/ie3/datamodel/models/input/system/CsInput.java new file mode 100644 index 000000000..97a3349d3 --- /dev/null +++ b/src/main/java/edu/ie3/datamodel/models/input/system/CsInput.java @@ -0,0 +1,181 @@ +/* + * © 2020. TU Dortmund University, + * Institute of Energy Systems, Energy Efficiency and Energy Economics, + * Research group Distribution grid planning and operation +*/ +package edu.ie3.datamodel.models.input.system; + +import edu.ie3.datamodel.models.OperationTime; +import edu.ie3.datamodel.models.input.NodeInput; +import edu.ie3.datamodel.models.input.OperatorInput; +import edu.ie3.datamodel.models.input.system.characteristic.ReactivePowerCharacteristic; +import edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointType; +import java.util.Objects; +import java.util.UUID; + +/** + * //ToDo: Class Description + * + * @version 0.1 + * @since 25.07.20 + */ +public class CsInput extends SystemParticipantInput { + + private final ChargingPointType type; + private final int noChargingPoints; + + /** Rated power factor */ + private final double cosPhiRated; + + public CsInput( + UUID uuid, + String id, + OperatorInput operator, + OperationTime operationTime, + NodeInput node, + ReactivePowerCharacteristic qCharacteristics, + ChargingPointType type, + int noChargingPoints, + double cosPhiRated) { + super(uuid, id, operator, operationTime, node, qCharacteristics); + this.type = type; + this.noChargingPoints = noChargingPoints; + this.cosPhiRated = cosPhiRated; + } + + public CsInput( + UUID uuid, + String id, + OperatorInput operator, + OperationTime operationTime, + NodeInput node, + ReactivePowerCharacteristic qCharacteristics, + ChargingPointType type, + double cosPhiRated) { + this(uuid, id, operator, operationTime, node, qCharacteristics, type, 1, cosPhiRated); + } + + public CsInput( + UUID uuid, + String id, + NodeInput node, + ReactivePowerCharacteristic qCharacteristics, + ChargingPointType type, + int noChargingPoints, + double cosPhiRated) { + super(uuid, id, node, qCharacteristics); + this.type = type; + this.noChargingPoints = noChargingPoints; + this.cosPhiRated = cosPhiRated; + } + + public CsInput( + UUID uuid, + String id, + NodeInput node, + ReactivePowerCharacteristic qCharacteristics, + ChargingPointType type, + double cosPhiRated) { + this(uuid, id, node, qCharacteristics, type, 1, cosPhiRated); + } + + public ChargingPointType getType() { + return type; + } + + public int getNoChargingPoints() { + return noChargingPoints; + } + + public double getCosPhiRated() { + return cosPhiRated; + } + + @Override + public CsInputCopyBuilder copy() { + return new CsInputCopyBuilder(this); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + if (!super.equals(o)) return false; + CsInput csInput = (CsInput) o; + return noChargingPoints == csInput.noChargingPoints + && Double.compare(csInput.cosPhiRated, cosPhiRated) == 0 + && type.equals(csInput.type); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), type, noChargingPoints, cosPhiRated); + } + + @Override + public String toString() { + return "CsInput{" + + ", id='" + + getId() + + '\'' + + ", uuid=" + + getUuid() + + "type=" + + type + + ", noOfConnectionPoints=" + + noChargingPoints + + ", cosPhiRated=" + + cosPhiRated + + "} " + + super.toString(); + } + + public static class CsInputCopyBuilder + extends SystemParticipantInputCopyBuilder { + + private ChargingPointType type; + private int noChargingPoints; + private double cosPhiRated; + + public CsInputCopyBuilder(CsInput entity) { + super(entity); + this.type = entity.type; + this.noChargingPoints = entity.noChargingPoints; + this.cosPhiRated = entity.cosPhiRated; + } + + public CsInputCopyBuilder type(ChargingPointType type) { + this.type = type; + return this; + } + + public CsInputCopyBuilder noChargingPoints(int noChargingPoints) { + this.noChargingPoints = noChargingPoints; + return this; + } + + public CsInputCopyBuilder cosPhiRated(double cosPhiRated) { + this.cosPhiRated = cosPhiRated; + return this; + } + + @Override + public CsInput build() { + return new CsInput( + getUuid(), + getId(), + getOperator(), + getOperationTime(), + getNode(), + getqCharacteristics(), + type, + noChargingPoints, + cosPhiRated); + } + + @Override + protected CsInputCopyBuilder childInstance() { + return this; + } + } +} diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/EvcsInput.java b/src/main/java/edu/ie3/datamodel/models/input/system/EvcsInput.java index b77c76d44..1aa69da54 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/system/EvcsInput.java +++ b/src/main/java/edu/ie3/datamodel/models/input/system/EvcsInput.java @@ -11,6 +11,7 @@ import edu.ie3.datamodel.models.input.system.characteristic.ReactivePowerCharacteristic; import java.util.UUID; +@Deprecated public class EvcsInput extends SystemParticipantInput { /** diff --git a/src/test/groovy/edu/ie3/datamodel/models/input/system/CsInputTest.groovy b/src/test/groovy/edu/ie3/datamodel/models/input/system/CsInputTest.groovy new file mode 100644 index 000000000..65565d940 --- /dev/null +++ b/src/test/groovy/edu/ie3/datamodel/models/input/system/CsInputTest.groovy @@ -0,0 +1,35 @@ +/* + * © 2020. TU Dortmund University, + * Institute of Energy Systems, Energy Efficiency and Energy Economics, + * Research group Distribution grid planning and operation + */ +package edu.ie3.datamodel.models.input.system + +import edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointTypeUtils +import edu.ie3.test.common.SystemParticipantTestData +import spock.lang.Specification + +class CsInputTest extends Specification { + + def "A CsInput copy method should work as expected"() { + given: + def csInput = SystemParticipantTestData.csInput + + when: + def alteredEntity = csInput.copy() + .type(ChargingPointTypeUtils.TeslaSuperChargerV3) + .cosPhiRated(0.7d).noChargingPoints(1).build() + + then: + alteredEntity.with { + assert uuid == csInput.uuid + assert operationTime == csInput.operationTime + assert operator == csInput.operator + assert id == csInput.id + assert qCharacteristics == csInput.qCharacteristics + assert type == ChargingPointTypeUtils.TeslaSuperChargerV3 + assert cosPhiRated == 0.7d + assert noChargingPoints == 1 + } + } +} diff --git a/src/test/groovy/edu/ie3/test/common/SystemParticipantTestData.groovy b/src/test/groovy/edu/ie3/test/common/SystemParticipantTestData.groovy index 996724ba2..8249dc89c 100644 --- a/src/test/groovy/edu/ie3/test/common/SystemParticipantTestData.groovy +++ b/src/test/groovy/edu/ie3/test/common/SystemParticipantTestData.groovy @@ -12,6 +12,7 @@ import edu.ie3.datamodel.models.input.NodeInput import edu.ie3.datamodel.models.input.OperatorInput import edu.ie3.datamodel.models.input.system.BmInput import edu.ie3.datamodel.models.input.system.ChpInput +import edu.ie3.datamodel.models.input.system.CsInput import edu.ie3.datamodel.models.input.system.EvInput import edu.ie3.datamodel.models.input.system.FixedFeedInInput import edu.ie3.datamodel.models.input.system.HpInput @@ -29,6 +30,7 @@ import edu.ie3.datamodel.models.input.system.type.EvTypeInput import edu.ie3.datamodel.models.input.system.type.HpTypeInput import edu.ie3.datamodel.models.input.system.type.StorageTypeInput import edu.ie3.datamodel.models.input.system.type.WecTypeInput +import edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointTypeUtils import edu.ie3.datamodel.models.input.thermal.CylindricalStorageInput import edu.ie3.datamodel.models.input.thermal.ThermalBusInput import edu.ie3.datamodel.models.input.thermal.ThermalStorageInput @@ -321,6 +323,19 @@ class SystemParticipantTestData { hpTypeInput ) + // charging station + public static final csInput = new CsInput( + UUID.fromString("798028b5-caff-4da7-bcd9-1750fdd8742c"), + "test_csInput", + operator, + operationTime, + participantNode, + cosPhiFixed, + ChargingPointTypeUtils.HouseholdSocket, + 4, + cosPhiRated + ) + public static allParticipants = [ fixedFeedInInput, From 4d542d4f21778c7ee089ab7eef924c2f1836844b Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Sun, 26 Jul 2020 15:12:26 +0200 Subject: [PATCH 004/598] added CsInputFactory --- .../input/participant/CsInputFactory.java | 67 +++++++++++++++ .../models/input/system/CsInput.java | 30 +++---- .../participant/CsInputFactoryTest.groovy | 84 +++++++++++++++++++ .../models/input/system/CsInputTest.groovy | 4 +- 4 files changed, 168 insertions(+), 17 deletions(-) create mode 100644 src/main/java/edu/ie3/datamodel/io/factory/input/participant/CsInputFactory.java create mode 100644 src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/CsInputFactoryTest.groovy diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/participant/CsInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/CsInputFactory.java new file mode 100644 index 000000000..8ae6da554 --- /dev/null +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/CsInputFactory.java @@ -0,0 +1,67 @@ +/* + * © 2020. TU Dortmund University, + * Institute of Energy Systems, Energy Efficiency and Energy Economics, + * Research group Distribution grid planning and operation +*/ +package edu.ie3.datamodel.io.factory.input.participant; + +import edu.ie3.datamodel.exceptions.ChargingPointTypeException; +import edu.ie3.datamodel.exceptions.FactoryException; +import edu.ie3.datamodel.io.factory.input.NodeAssetInputEntityData; +import edu.ie3.datamodel.models.OperationTime; +import edu.ie3.datamodel.models.input.NodeInput; +import edu.ie3.datamodel.models.input.OperatorInput; +import edu.ie3.datamodel.models.input.system.CsInput; +import edu.ie3.datamodel.models.input.system.characteristic.ReactivePowerCharacteristic; +import edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointType; +import edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointTypeUtils; + +/** + * //ToDo: Class Description // todo test + * + * @version 0.1 + * @since 26.07.20 + */ +public class CsInputFactory + extends SystemParticipantInputEntityFactory { + + private static final String TYPE = "type"; + private static final String CHARGING_POINTS = "chargingpoints"; + private static final String COS_PHI_RATED = "cosphirated"; + + public CsInputFactory() { + super(CsInput.class); + } + + @Override + protected String[] getAdditionalFields() { + return new String[] {TYPE, CHARGING_POINTS, COS_PHI_RATED}; + } + + @Override + protected CsInput buildModel( + NodeAssetInputEntityData data, + java.util.UUID uuid, + String id, + NodeInput node, + ReactivePowerCharacteristic qCharacteristics, + OperatorInput operator, + OperationTime operationTime) { + + final ChargingPointType type; + try { + type = ChargingPointTypeUtils.parse(data.getField(TYPE)); + } catch (ChargingPointTypeException e) { + throw new FactoryException( + String.format( + "Exception while trying to parse field \"%s\" with supposed int value \"%s\"", + TYPE, data.getField(TYPE)), + e); + } + final int chargingPoints = data.getInt(CHARGING_POINTS); + final double cosPhi = data.getDouble(COS_PHI_RATED); + + return new CsInput( + uuid, id, operator, operationTime, node, qCharacteristics, type, chargingPoints, cosPhi); + } +} diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/CsInput.java b/src/main/java/edu/ie3/datamodel/models/input/system/CsInput.java index 97a3349d3..56d300f5c 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/system/CsInput.java +++ b/src/main/java/edu/ie3/datamodel/models/input/system/CsInput.java @@ -22,7 +22,7 @@ public class CsInput extends SystemParticipantInput { private final ChargingPointType type; - private final int noChargingPoints; + private final int chargingPoints; /** Rated power factor */ private final double cosPhiRated; @@ -35,11 +35,11 @@ public CsInput( NodeInput node, ReactivePowerCharacteristic qCharacteristics, ChargingPointType type, - int noChargingPoints, + int chargingPoints, double cosPhiRated) { super(uuid, id, operator, operationTime, node, qCharacteristics); this.type = type; - this.noChargingPoints = noChargingPoints; + this.chargingPoints = chargingPoints; this.cosPhiRated = cosPhiRated; } @@ -61,11 +61,11 @@ public CsInput( NodeInput node, ReactivePowerCharacteristic qCharacteristics, ChargingPointType type, - int noChargingPoints, + int chargingPoints, double cosPhiRated) { super(uuid, id, node, qCharacteristics); this.type = type; - this.noChargingPoints = noChargingPoints; + this.chargingPoints = chargingPoints; this.cosPhiRated = cosPhiRated; } @@ -83,8 +83,8 @@ public ChargingPointType getType() { return type; } - public int getNoChargingPoints() { - return noChargingPoints; + public int getChargingPoints() { + return chargingPoints; } public double getCosPhiRated() { @@ -102,14 +102,14 @@ public boolean equals(Object o) { if (o == null || getClass() != o.getClass()) return false; if (!super.equals(o)) return false; CsInput csInput = (CsInput) o; - return noChargingPoints == csInput.noChargingPoints + return chargingPoints == csInput.chargingPoints && Double.compare(csInput.cosPhiRated, cosPhiRated) == 0 && type.equals(csInput.type); } @Override public int hashCode() { - return Objects.hash(super.hashCode(), type, noChargingPoints, cosPhiRated); + return Objects.hash(super.hashCode(), type, chargingPoints, cosPhiRated); } @Override @@ -123,7 +123,7 @@ public String toString() { + "type=" + type + ", noOfConnectionPoints=" - + noChargingPoints + + chargingPoints + ", cosPhiRated=" + cosPhiRated + "} " @@ -134,13 +134,13 @@ public static class CsInputCopyBuilder extends SystemParticipantInputCopyBuilder { private ChargingPointType type; - private int noChargingPoints; + private int chargingPoints; private double cosPhiRated; public CsInputCopyBuilder(CsInput entity) { super(entity); this.type = entity.type; - this.noChargingPoints = entity.noChargingPoints; + this.chargingPoints = entity.chargingPoints; this.cosPhiRated = entity.cosPhiRated; } @@ -149,8 +149,8 @@ public CsInputCopyBuilder type(ChargingPointType type) { return this; } - public CsInputCopyBuilder noChargingPoints(int noChargingPoints) { - this.noChargingPoints = noChargingPoints; + public CsInputCopyBuilder chargingPoints(int noChargingPoints) { + this.chargingPoints = noChargingPoints; return this; } @@ -169,7 +169,7 @@ public CsInput build() { getNode(), getqCharacteristics(), type, - noChargingPoints, + chargingPoints, cosPhiRated); } diff --git a/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/CsInputFactoryTest.groovy b/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/CsInputFactoryTest.groovy new file mode 100644 index 000000000..82963cd3f --- /dev/null +++ b/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/CsInputFactoryTest.groovy @@ -0,0 +1,84 @@ +/* + * © 2020. TU Dortmund University, + * Institute of Energy Systems, Energy Efficiency and Energy Economics, + * Research group Distribution grid planning and operation + */ +package edu.ie3.datamodel.io.factory.input.participant + +import edu.ie3.datamodel.io.factory.input.NodeAssetInputEntityData +import edu.ie3.datamodel.models.StandardUnits +import edu.ie3.datamodel.models.input.NodeInput +import edu.ie3.datamodel.models.input.OperatorInput +import edu.ie3.datamodel.models.input.system.CsInput +import edu.ie3.datamodel.models.input.system.characteristic.CharacteristicPoint +import edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointTypeUtils +import edu.ie3.test.helper.FactoryTestHelper +import spock.lang.Specification +import tec.uom.se.quantity.Quantities + +import javax.measure.quantity.Dimensionless +import java.time.ZonedDateTime + +import static edu.ie3.util.quantities.PowerSystemUnits.PU + +/** + * //ToDo: Class Description + * + * @version 0.1* @since 26.07.20 + */ +class CsInputFactoryTest extends Specification implements FactoryTestHelper { + + def "A CsInputFactory should contain exactly the expected class for parsing"() { + given: + def inputFactory = new CsInputFactory() + def expectedClasses = [CsInput] + + expect: + inputFactory.classes() == Arrays.asList(expectedClasses.toArray()) + } + + def "A CsInputFactory should parse a valid CsInput correctly"() { + given: "a system participant input type factory and model data" + def inputFactory = new CsInputFactory() + Map parameter = [ + "uuid" : "91ec3bcf-1777-4d38-af67-0bf7c9fa73c7", + "operatesfrom" : "2019-01-01T00:00:00+01:00[Europe/Berlin]", + "operatesuntil" : "2019-12-31T23:59:00+01:00[Europe/Berlin]", + "id" : "TestID", + "qcharacteristics": "cosPhiFixed:{(0.0,1.0)}", + "type" : "Household", + "chargingpoints" : "4", + "cosphirated" : "0.95", + ] + def inputClass = CsInput + def nodeInput = Mock(NodeInput) + def operatorInput = Mock(OperatorInput) + + when: + Optional input = inputFactory.getEntity( + new NodeAssetInputEntityData(parameter, inputClass, operatorInput, nodeInput)) + + then: + input.present + input.get().getClass() == inputClass + ((CsInput) input.get()).with { + assert uuid == UUID.fromString(parameter["uuid"]) + assert operationTime.startDate.present + assert operationTime.startDate.get() == ZonedDateTime.parse(parameter["operatesfrom"]) + assert operationTime.endDate.present + assert operationTime.endDate.get() == ZonedDateTime.parse(parameter["operatesuntil"]) + assert operator == operatorInput + assert id == parameter["id"] + assert node == nodeInput + assert qCharacteristics.with { + assert uuid != null + assert points == Collections.unmodifiableSortedSet([ + new CharacteristicPoint(Quantities.getQuantity(0d, PU), Quantities.getQuantity(1d, PU)) + ] as TreeSet) + } + assert type == ChargingPointTypeUtils.HouseholdSocket + assert chargingPoints == Integer.parseInt(parameter["chargingpoints"]) + assert cosPhiRated == Double.parseDouble(parameter["cosphirated"]) + } + } +} diff --git a/src/test/groovy/edu/ie3/datamodel/models/input/system/CsInputTest.groovy b/src/test/groovy/edu/ie3/datamodel/models/input/system/CsInputTest.groovy index 65565d940..e36009e1d 100644 --- a/src/test/groovy/edu/ie3/datamodel/models/input/system/CsInputTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/models/input/system/CsInputTest.groovy @@ -18,7 +18,7 @@ class CsInputTest extends Specification { when: def alteredEntity = csInput.copy() .type(ChargingPointTypeUtils.TeslaSuperChargerV3) - .cosPhiRated(0.7d).noChargingPoints(1).build() + .cosPhiRated(0.7d).chargingPoints(1).build() then: alteredEntity.with { @@ -29,7 +29,7 @@ class CsInputTest extends Specification { assert qCharacteristics == csInput.qCharacteristics assert type == ChargingPointTypeUtils.TeslaSuperChargerV3 assert cosPhiRated == 0.7d - assert noChargingPoints == 1 + assert chargingPoints == 1 } } } From 9b89a60bda83d4ef633672030bb6cdac394a44f8 Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Sun, 26 Jul 2020 15:18:57 +0200 Subject: [PATCH 005/598] added CsInput support in InputEntityProcessor/Processor --- .../edu/ie3/datamodel/io/processor/Processor.java | 1 + .../io/processor/input/InputEntityProcessor.java | 1 + .../input/InputEntityProcessorTest.groovy | 15 ++++++++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/main/java/edu/ie3/datamodel/io/processor/Processor.java b/src/main/java/edu/ie3/datamodel/io/processor/Processor.java index 54b370672..b3cf8beb6 100644 --- a/src/main/java/edu/ie3/datamodel/io/processor/Processor.java +++ b/src/main/java/edu/ie3/datamodel/io/processor/Processor.java @@ -210,6 +210,7 @@ protected String processMethodResult(Object methodReturnObject, Method method, S case "double": case "String": case "DayOfWeek": + case "ChargingPointType": resultStringBuilder.append(methodReturnObject.toString()); break; case "Quantity": diff --git a/src/main/java/edu/ie3/datamodel/io/processor/input/InputEntityProcessor.java b/src/main/java/edu/ie3/datamodel/io/processor/input/InputEntityProcessor.java index de9229b72..c7c195bdb 100644 --- a/src/main/java/edu/ie3/datamodel/io/processor/input/InputEntityProcessor.java +++ b/src/main/java/edu/ie3/datamodel/io/processor/input/InputEntityProcessor.java @@ -48,6 +48,7 @@ public class InputEntityProcessor extends EntityProcessor { Transformer3WInput.class, SwitchInput.class, MeasurementUnitInput.class, + CsInput.class, EvcsInput.class, ThermalBusInput.class, /* -- SystemParticipantInput */ diff --git a/src/test/groovy/edu/ie3/datamodel/io/processor/input/InputEntityProcessorTest.groovy b/src/test/groovy/edu/ie3/datamodel/io/processor/input/InputEntityProcessorTest.groovy index 700814b2e..e8646472a 100644 --- a/src/test/groovy/edu/ie3/datamodel/io/processor/input/InputEntityProcessorTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/io/processor/input/InputEntityProcessorTest.groovy @@ -21,6 +21,7 @@ import edu.ie3.datamodel.models.input.graphics.LineGraphicInput import edu.ie3.datamodel.models.input.graphics.NodeGraphicInput import edu.ie3.datamodel.models.input.system.BmInput import edu.ie3.datamodel.models.input.system.ChpInput +import edu.ie3.datamodel.models.input.system.CsInput import edu.ie3.datamodel.models.input.system.EvInput import edu.ie3.datamodel.models.input.system.FixedFeedInInput import edu.ie3.datamodel.models.input.system.HpInput @@ -275,7 +276,7 @@ class InputEntityProcessorTest extends Specification { "qCharacteristics": SystemParticipantTestData.cosPhiFixedDeSerialized, "type" : SystemParticipantTestData.storageInput.type.uuid.toString() ] - HpInput | SystemParticipantTestData.hpInput || [ + HpInput | SystemParticipantTestData.hpInput || [ "uuid" : SystemParticipantTestData.hpInput.uuid.toString(), "id" : SystemParticipantTestData.hpInput.id, "node" : SystemParticipantTestData.hpInput.node.uuid.toString(), @@ -286,6 +287,18 @@ class InputEntityProcessorTest extends Specification { "thermalBus" : SystemParticipantTestData.hpInput.thermalBus.uuid.toString(), "type" : SystemParticipantTestData.hpInput.type.uuid.toString() ] + CsInput | SystemParticipantTestData.csInput || [ + "uuid" : SystemParticipantTestData.csInput.uuid.toString(), + "id" : SystemParticipantTestData.csInput.id, + "node" : SystemParticipantTestData.csInput.node.uuid.toString(), + "operatesUntil" : SystemParticipantTestData.csInput.operationTime.endDate.orElse(ZonedDateTime.now()).toString(), + "operatesFrom" : SystemParticipantTestData.csInput.operationTime.startDate.orElse(ZonedDateTime.now()).toString(), + "operator" : SystemParticipantTestData.csInput.operator.uuid.toString(), + "qCharacteristics": SystemParticipantTestData.cosPhiFixedDeSerialized, + "type" : SystemParticipantTestData.csInput.type.toString(), + "cosPhiRated" : SystemParticipantTestData.csInput.cosPhiRated.toString(), + "chargingPoints" : SystemParticipantTestData.csInput.chargingPoints.toString() + ] } def "The InputEntityProcessor should de-serialize a provided NodeGraphicInput with point correctly"() { From 7f98b6b65f36625ba4baed2cce4bb1247b136b02 Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Sun, 26 Jul 2020 17:47:07 +0200 Subject: [PATCH 006/598] csv reader support for ev charging stations --- .../datamodel/io/factory/EntityFactory.java | 2 +- ...nputFactory.java => EvcsInputFactory.java} | 14 +- .../processor/input/InputEntityProcessor.java | 1 - .../csv/CsvSystemParticipantSource.java | 11 +- .../models/input/system/CsInput.java | 181 ------------------ .../models/input/system/EvcsInput.java | 151 +++++++++++++-- .../models/result/system/EvcsResult.java | 3 +- ...est.groovy => EvcsInputFactoryTest.groovy} | 17 +- .../input/InputEntityProcessorTest.groovy | 24 +-- .../csv/CsvSystemParticipantSourceTest.groovy | 44 +++-- ...sInputTest.groovy => EvcsInputTest.groovy} | 8 +- .../common/SystemParticipantTestData.groovy | 4 +- .../testGridFiles/participants/evcs_input.csv | 2 + 13 files changed, 203 insertions(+), 259 deletions(-) rename src/main/java/edu/ie3/datamodel/io/factory/input/participant/{CsInputFactory.java => EvcsInputFactory.java} (87%) delete mode 100644 src/main/java/edu/ie3/datamodel/models/input/system/CsInput.java rename src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/{CsInputFactoryTest.groovy => EvcsInputFactoryTest.groovy} (87%) rename src/test/groovy/edu/ie3/datamodel/models/input/system/{CsInputTest.groovy => EvcsInputTest.groovy} (81%) create mode 100644 src/test/resources/testGridFiles/participants/evcs_input.csv diff --git a/src/main/java/edu/ie3/datamodel/io/factory/EntityFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/EntityFactory.java index bce8ee63e..061bdd926 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/EntityFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/EntityFactory.java @@ -175,7 +175,7 @@ protected int validateParameters(D data, Set... fieldSets) { + "}" + " are invalid for instance of " + data.getEntityClass().getSimpleName() - + ". \nThe following fields to be passed to a constructor of '" + + ". \nThe following fields (without complex objects e.g. nodes) to be passed to a constructor of '" + data.getEntityClass().getSimpleName() + "' are possible (NOT case-sensitive!):\n" + possibleOptions); diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/participant/CsInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactory.java similarity index 87% rename from src/main/java/edu/ie3/datamodel/io/factory/input/participant/CsInputFactory.java rename to src/main/java/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactory.java index 8ae6da554..bd6590ca9 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/participant/CsInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactory.java @@ -11,7 +11,7 @@ import edu.ie3.datamodel.models.OperationTime; import edu.ie3.datamodel.models.input.NodeInput; import edu.ie3.datamodel.models.input.OperatorInput; -import edu.ie3.datamodel.models.input.system.CsInput; +import edu.ie3.datamodel.models.input.system.EvcsInput; import edu.ie3.datamodel.models.input.system.characteristic.ReactivePowerCharacteristic; import edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointType; import edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointTypeUtils; @@ -22,15 +22,15 @@ * @version 0.1 * @since 26.07.20 */ -public class CsInputFactory - extends SystemParticipantInputEntityFactory { +public class EvcsInputFactory + extends SystemParticipantInputEntityFactory { private static final String TYPE = "type"; private static final String CHARGING_POINTS = "chargingpoints"; private static final String COS_PHI_RATED = "cosphirated"; - public CsInputFactory() { - super(CsInput.class); + public EvcsInputFactory() { + super(EvcsInput.class); } @Override @@ -39,7 +39,7 @@ protected String[] getAdditionalFields() { } @Override - protected CsInput buildModel( + protected EvcsInput buildModel( NodeAssetInputEntityData data, java.util.UUID uuid, String id, @@ -61,7 +61,7 @@ protected CsInput buildModel( final int chargingPoints = data.getInt(CHARGING_POINTS); final double cosPhi = data.getDouble(COS_PHI_RATED); - return new CsInput( + return new EvcsInput( uuid, id, operator, operationTime, node, qCharacteristics, type, chargingPoints, cosPhi); } } diff --git a/src/main/java/edu/ie3/datamodel/io/processor/input/InputEntityProcessor.java b/src/main/java/edu/ie3/datamodel/io/processor/input/InputEntityProcessor.java index c7c195bdb..de9229b72 100644 --- a/src/main/java/edu/ie3/datamodel/io/processor/input/InputEntityProcessor.java +++ b/src/main/java/edu/ie3/datamodel/io/processor/input/InputEntityProcessor.java @@ -48,7 +48,6 @@ public class InputEntityProcessor extends EntityProcessor { Transformer3WInput.class, SwitchInput.class, MeasurementUnitInput.class, - CsInput.class, EvcsInput.class, ThermalBusInput.class, /* -- SystemParticipantInput */ diff --git a/src/main/java/edu/ie3/datamodel/io/source/csv/CsvSystemParticipantSource.java b/src/main/java/edu/ie3/datamodel/io/source/csv/CsvSystemParticipantSource.java index 203413112..2af807459 100644 --- a/src/main/java/edu/ie3/datamodel/io/source/csv/CsvSystemParticipantSource.java +++ b/src/main/java/edu/ie3/datamodel/io/source/csv/CsvSystemParticipantSource.java @@ -25,7 +25,6 @@ import java.util.concurrent.atomic.LongAdder; import java.util.stream.Collectors; import java.util.stream.Stream; -import org.apache.commons.lang3.NotImplementedException; /** * Source that provides the capability to build entities of type {@link SystemParticipantInput} as @@ -62,6 +61,7 @@ public class CsvSystemParticipantSource extends CsvDataSource implements SystemP private final PvInputFactory pvInputFactory; private final StorageInputFactory storageInputFactory; private final WecInputFactory wecInputFactory; + private final EvcsInputFactory evcsInputFactory; public CsvSystemParticipantSource( String csvSep, @@ -85,6 +85,7 @@ public CsvSystemParticipantSource( this.pvInputFactory = new PvInputFactory(); this.storageInputFactory = new StorageInputFactory(); this.wecInputFactory = new WecInputFactory(); + this.evcsInputFactory = new EvcsInputFactory(); } /** {@inheritDoc} */ @@ -263,7 +264,8 @@ public Set getLoads(Set nodes, Set operator /** {@inheritDoc} */ @Override public Set getEvCS() { - throw new NotImplementedException("Ev Charging Stations are not implemented yet!"); + Set operators = typeSource.getOperators(); + return getEvCS(rawGridSource.getNodes(operators), operators); } /** @@ -280,8 +282,11 @@ public Set getEvCS() { */ @Override public Set getEvCS(Set nodes, Set operators) { - throw new NotImplementedException("Ev Charging Stations are not implemented yet!"); + return filterEmptyOptionals( + nodeAssetEntityStream(EvcsInput.class, evcsInputFactory, nodes, operators)) + .collect(Collectors.toSet()); } + /** {@inheritDoc} */ @Override public Set getBmPlants() { diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/CsInput.java b/src/main/java/edu/ie3/datamodel/models/input/system/CsInput.java deleted file mode 100644 index 56d300f5c..000000000 --- a/src/main/java/edu/ie3/datamodel/models/input/system/CsInput.java +++ /dev/null @@ -1,181 +0,0 @@ -/* - * © 2020. TU Dortmund University, - * Institute of Energy Systems, Energy Efficiency and Energy Economics, - * Research group Distribution grid planning and operation -*/ -package edu.ie3.datamodel.models.input.system; - -import edu.ie3.datamodel.models.OperationTime; -import edu.ie3.datamodel.models.input.NodeInput; -import edu.ie3.datamodel.models.input.OperatorInput; -import edu.ie3.datamodel.models.input.system.characteristic.ReactivePowerCharacteristic; -import edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointType; -import java.util.Objects; -import java.util.UUID; - -/** - * //ToDo: Class Description - * - * @version 0.1 - * @since 25.07.20 - */ -public class CsInput extends SystemParticipantInput { - - private final ChargingPointType type; - private final int chargingPoints; - - /** Rated power factor */ - private final double cosPhiRated; - - public CsInput( - UUID uuid, - String id, - OperatorInput operator, - OperationTime operationTime, - NodeInput node, - ReactivePowerCharacteristic qCharacteristics, - ChargingPointType type, - int chargingPoints, - double cosPhiRated) { - super(uuid, id, operator, operationTime, node, qCharacteristics); - this.type = type; - this.chargingPoints = chargingPoints; - this.cosPhiRated = cosPhiRated; - } - - public CsInput( - UUID uuid, - String id, - OperatorInput operator, - OperationTime operationTime, - NodeInput node, - ReactivePowerCharacteristic qCharacteristics, - ChargingPointType type, - double cosPhiRated) { - this(uuid, id, operator, operationTime, node, qCharacteristics, type, 1, cosPhiRated); - } - - public CsInput( - UUID uuid, - String id, - NodeInput node, - ReactivePowerCharacteristic qCharacteristics, - ChargingPointType type, - int chargingPoints, - double cosPhiRated) { - super(uuid, id, node, qCharacteristics); - this.type = type; - this.chargingPoints = chargingPoints; - this.cosPhiRated = cosPhiRated; - } - - public CsInput( - UUID uuid, - String id, - NodeInput node, - ReactivePowerCharacteristic qCharacteristics, - ChargingPointType type, - double cosPhiRated) { - this(uuid, id, node, qCharacteristics, type, 1, cosPhiRated); - } - - public ChargingPointType getType() { - return type; - } - - public int getChargingPoints() { - return chargingPoints; - } - - public double getCosPhiRated() { - return cosPhiRated; - } - - @Override - public CsInputCopyBuilder copy() { - return new CsInputCopyBuilder(this); - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - if (!super.equals(o)) return false; - CsInput csInput = (CsInput) o; - return chargingPoints == csInput.chargingPoints - && Double.compare(csInput.cosPhiRated, cosPhiRated) == 0 - && type.equals(csInput.type); - } - - @Override - public int hashCode() { - return Objects.hash(super.hashCode(), type, chargingPoints, cosPhiRated); - } - - @Override - public String toString() { - return "CsInput{" - + ", id='" - + getId() - + '\'' - + ", uuid=" - + getUuid() - + "type=" - + type - + ", noOfConnectionPoints=" - + chargingPoints - + ", cosPhiRated=" - + cosPhiRated - + "} " - + super.toString(); - } - - public static class CsInputCopyBuilder - extends SystemParticipantInputCopyBuilder { - - private ChargingPointType type; - private int chargingPoints; - private double cosPhiRated; - - public CsInputCopyBuilder(CsInput entity) { - super(entity); - this.type = entity.type; - this.chargingPoints = entity.chargingPoints; - this.cosPhiRated = entity.cosPhiRated; - } - - public CsInputCopyBuilder type(ChargingPointType type) { - this.type = type; - return this; - } - - public CsInputCopyBuilder chargingPoints(int noChargingPoints) { - this.chargingPoints = noChargingPoints; - return this; - } - - public CsInputCopyBuilder cosPhiRated(double cosPhiRated) { - this.cosPhiRated = cosPhiRated; - return this; - } - - @Override - public CsInput build() { - return new CsInput( - getUuid(), - getId(), - getOperator(), - getOperationTime(), - getNode(), - getqCharacteristics(), - type, - chargingPoints, - cosPhiRated); - } - - @Override - protected CsInputCopyBuilder childInstance() { - return this; - } - } -} diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/EvcsInput.java b/src/main/java/edu/ie3/datamodel/models/input/system/EvcsInput.java index 1aa69da54..8021e33dc 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/system/EvcsInput.java +++ b/src/main/java/edu/ie3/datamodel/models/input/system/EvcsInput.java @@ -9,53 +9,164 @@ import edu.ie3.datamodel.models.input.NodeInput; import edu.ie3.datamodel.models.input.OperatorInput; import edu.ie3.datamodel.models.input.system.characteristic.ReactivePowerCharacteristic; +import edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointType; +import java.util.Objects; import java.util.UUID; -@Deprecated public class EvcsInput extends SystemParticipantInput { - /** - * Dummy constructor - * - * @param uuid Unique identifier - * @param id Human readable identifier - * @deprecated only added to remove compile error. Please implement a real constructor - */ - @Deprecated + private final ChargingPointType type; + private final int chargingPoints; + + /** Rated power factor */ + private final double cosPhiRated; + public EvcsInput( UUID uuid, String id, OperatorInput operator, OperationTime operationTime, NodeInput node, - ReactivePowerCharacteristic qCharacteristics) { + ReactivePowerCharacteristic qCharacteristics, + ChargingPointType type, + int chargingPoints, + double cosPhiRated) { super(uuid, id, operator, operationTime, node, qCharacteristics); + this.type = type; + this.chargingPoints = chargingPoints; + this.cosPhiRated = cosPhiRated; + } + + public EvcsInput( + UUID uuid, + String id, + OperatorInput operator, + OperationTime operationTime, + NodeInput node, + ReactivePowerCharacteristic qCharacteristics, + ChargingPointType type, + double cosPhiRated) { + this(uuid, id, operator, operationTime, node, qCharacteristics, type, 1, cosPhiRated); + } + + public EvcsInput( + UUID uuid, + String id, + NodeInput node, + ReactivePowerCharacteristic qCharacteristics, + ChargingPointType type, + int chargingPoints, + double cosPhiRated) { + super(uuid, id, node, qCharacteristics); + this.type = type; + this.chargingPoints = chargingPoints; + this.cosPhiRated = cosPhiRated; } - // TODO please fill the void inside me :'( + public EvcsInput( + UUID uuid, + String id, + NodeInput node, + ReactivePowerCharacteristic qCharacteristics, + ChargingPointType type, + double cosPhiRated) { + this(uuid, id, node, qCharacteristics, type, 1, cosPhiRated); + } + public ChargingPointType getType() { + return type; + } + + public int getChargingPoints() { + return chargingPoints; + } + + public double getCosPhiRated() { + return cosPhiRated; + } + + @Override public EvcsInputCopyBuilder copy() { return new EvcsInputCopyBuilder(this); } - /** - * A builder pattern based approach to create copies of {@link EvcsInput} entities with altered - * field values. For detailed field descriptions refer to java docs of {@link EvcsInput} - * - * @version 0.1 - * @since 05.06.20 - */ + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + if (!super.equals(o)) return false; + EvcsInput evcsInput = (EvcsInput) o; + return chargingPoints == evcsInput.chargingPoints + && Double.compare(evcsInput.cosPhiRated, cosPhiRated) == 0 + && type.equals(evcsInput.type); + } + + @Override + public int hashCode() { + return Objects.hash(super.hashCode(), type, chargingPoints, cosPhiRated); + } + + @Override + public String toString() { + return "EvcsInput{" + + "id='" + + getId() + + '\'' + + ", uuid=" + + getUuid() + + ", type=" + + type + + ", chargingPoints=" + + chargingPoints + + ", cosPhiRated=" + + cosPhiRated + + ", node=" + + getNode() + + "} " + + super.toString(); + } + public static class EvcsInputCopyBuilder extends SystemParticipantInputCopyBuilder { - private EvcsInputCopyBuilder(EvcsInput entity) { + private ChargingPointType type; + private int chargingPoints; + private double cosPhiRated; + + public EvcsInputCopyBuilder(EvcsInput entity) { super(entity); + this.type = entity.type; + this.chargingPoints = entity.chargingPoints; + this.cosPhiRated = entity.cosPhiRated; + } + + public EvcsInputCopyBuilder type(ChargingPointType type) { + this.type = type; + return this; + } + + public EvcsInputCopyBuilder chargingPoints(int noChargingPoints) { + this.chargingPoints = noChargingPoints; + return this; + } + + public EvcsInputCopyBuilder cosPhiRated(double cosPhiRated) { + this.cosPhiRated = cosPhiRated; + return this; } @Override public EvcsInput build() { return new EvcsInput( - getUuid(), getId(), getOperator(), getOperationTime(), getNode(), getqCharacteristics()); + getUuid(), + getId(), + getOperator(), + getOperationTime(), + getNode(), + getqCharacteristics(), + type, + chargingPoints, + cosPhiRated); } @Override diff --git a/src/main/java/edu/ie3/datamodel/models/result/system/EvcsResult.java b/src/main/java/edu/ie3/datamodel/models/result/system/EvcsResult.java index 5768955d9..f5249e37a 100644 --- a/src/main/java/edu/ie3/datamodel/models/result/system/EvcsResult.java +++ b/src/main/java/edu/ie3/datamodel/models/result/system/EvcsResult.java @@ -5,12 +5,13 @@ */ package edu.ie3.datamodel.models.result.system; +import edu.ie3.datamodel.models.input.system.EvcsInput; import java.time.ZonedDateTime; import java.util.UUID; import javax.measure.quantity.Power; import tec.uom.se.ComparableQuantity; -/** Represents calculation results of a {@link edu.ie3.datamodel.models.input.system.EvcsInput} */ +/** Represents calculation results of a {@link EvcsInput} */ public class EvcsResult extends SystemParticipantResult { /** * Standard constructor with automatic uuid generation. diff --git a/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/CsInputFactoryTest.groovy b/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactoryTest.groovy similarity index 87% rename from src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/CsInputFactoryTest.groovy rename to src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactoryTest.groovy index 82963cd3f..e1700fd98 100644 --- a/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/CsInputFactoryTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactoryTest.groovy @@ -6,10 +6,9 @@ package edu.ie3.datamodel.io.factory.input.participant import edu.ie3.datamodel.io.factory.input.NodeAssetInputEntityData -import edu.ie3.datamodel.models.StandardUnits import edu.ie3.datamodel.models.input.NodeInput import edu.ie3.datamodel.models.input.OperatorInput -import edu.ie3.datamodel.models.input.system.CsInput +import edu.ie3.datamodel.models.input.system.EvcsInput import edu.ie3.datamodel.models.input.system.characteristic.CharacteristicPoint import edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointTypeUtils import edu.ie3.test.helper.FactoryTestHelper @@ -26,12 +25,12 @@ import static edu.ie3.util.quantities.PowerSystemUnits.PU * * @version 0.1* @since 26.07.20 */ -class CsInputFactoryTest extends Specification implements FactoryTestHelper { +class EvcsInputFactoryTest extends Specification implements FactoryTestHelper { def "A CsInputFactory should contain exactly the expected class for parsing"() { given: - def inputFactory = new CsInputFactory() - def expectedClasses = [CsInput] + def inputFactory = new EvcsInputFactory() + def expectedClasses = [EvcsInput] expect: inputFactory.classes() == Arrays.asList(expectedClasses.toArray()) @@ -39,7 +38,7 @@ class CsInputFactoryTest extends Specification implements FactoryTestHelper { def "A CsInputFactory should parse a valid CsInput correctly"() { given: "a system participant input type factory and model data" - def inputFactory = new CsInputFactory() + def inputFactory = new EvcsInputFactory() Map parameter = [ "uuid" : "91ec3bcf-1777-4d38-af67-0bf7c9fa73c7", "operatesfrom" : "2019-01-01T00:00:00+01:00[Europe/Berlin]", @@ -50,18 +49,18 @@ class CsInputFactoryTest extends Specification implements FactoryTestHelper { "chargingpoints" : "4", "cosphirated" : "0.95", ] - def inputClass = CsInput + def inputClass = EvcsInput def nodeInput = Mock(NodeInput) def operatorInput = Mock(OperatorInput) when: - Optional input = inputFactory.getEntity( + Optional input = inputFactory.getEntity( new NodeAssetInputEntityData(parameter, inputClass, operatorInput, nodeInput)) then: input.present input.get().getClass() == inputClass - ((CsInput) input.get()).with { + ((EvcsInput) input.get()).with { assert uuid == UUID.fromString(parameter["uuid"]) assert operationTime.startDate.present assert operationTime.startDate.get() == ZonedDateTime.parse(parameter["operatesfrom"]) diff --git a/src/test/groovy/edu/ie3/datamodel/io/processor/input/InputEntityProcessorTest.groovy b/src/test/groovy/edu/ie3/datamodel/io/processor/input/InputEntityProcessorTest.groovy index e8646472a..1c56eb9a9 100644 --- a/src/test/groovy/edu/ie3/datamodel/io/processor/input/InputEntityProcessorTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/io/processor/input/InputEntityProcessorTest.groovy @@ -21,8 +21,8 @@ import edu.ie3.datamodel.models.input.graphics.LineGraphicInput import edu.ie3.datamodel.models.input.graphics.NodeGraphicInput import edu.ie3.datamodel.models.input.system.BmInput import edu.ie3.datamodel.models.input.system.ChpInput -import edu.ie3.datamodel.models.input.system.CsInput import edu.ie3.datamodel.models.input.system.EvInput +import edu.ie3.datamodel.models.input.system.EvcsInput import edu.ie3.datamodel.models.input.system.FixedFeedInInput import edu.ie3.datamodel.models.input.system.HpInput import edu.ie3.datamodel.models.input.system.LoadInput @@ -276,7 +276,7 @@ class InputEntityProcessorTest extends Specification { "qCharacteristics": SystemParticipantTestData.cosPhiFixedDeSerialized, "type" : SystemParticipantTestData.storageInput.type.uuid.toString() ] - HpInput | SystemParticipantTestData.hpInput || [ + HpInput | SystemParticipantTestData.hpInput || [ "uuid" : SystemParticipantTestData.hpInput.uuid.toString(), "id" : SystemParticipantTestData.hpInput.id, "node" : SystemParticipantTestData.hpInput.node.uuid.toString(), @@ -287,17 +287,17 @@ class InputEntityProcessorTest extends Specification { "thermalBus" : SystemParticipantTestData.hpInput.thermalBus.uuid.toString(), "type" : SystemParticipantTestData.hpInput.type.uuid.toString() ] - CsInput | SystemParticipantTestData.csInput || [ - "uuid" : SystemParticipantTestData.csInput.uuid.toString(), - "id" : SystemParticipantTestData.csInput.id, - "node" : SystemParticipantTestData.csInput.node.uuid.toString(), - "operatesUntil" : SystemParticipantTestData.csInput.operationTime.endDate.orElse(ZonedDateTime.now()).toString(), - "operatesFrom" : SystemParticipantTestData.csInput.operationTime.startDate.orElse(ZonedDateTime.now()).toString(), - "operator" : SystemParticipantTestData.csInput.operator.uuid.toString(), + EvcsInput | SystemParticipantTestData.evcsInput || [ + "uuid" : SystemParticipantTestData.evcsInput.uuid.toString(), + "id" : SystemParticipantTestData.evcsInput.id, + "node" : SystemParticipantTestData.evcsInput.node.uuid.toString(), + "operatesUntil" : SystemParticipantTestData.evcsInput.operationTime.endDate.orElse(ZonedDateTime.now()).toString(), + "operatesFrom" : SystemParticipantTestData.evcsInput.operationTime.startDate.orElse(ZonedDateTime.now()).toString(), + "operator" : SystemParticipantTestData.evcsInput.operator.uuid.toString(), "qCharacteristics": SystemParticipantTestData.cosPhiFixedDeSerialized, - "type" : SystemParticipantTestData.csInput.type.toString(), - "cosPhiRated" : SystemParticipantTestData.csInput.cosPhiRated.toString(), - "chargingPoints" : SystemParticipantTestData.csInput.chargingPoints.toString() + "type" : SystemParticipantTestData.evcsInput.type.toString(), + "cosPhiRated" : SystemParticipantTestData.evcsInput.cosPhiRated.toString(), + "chargingPoints" : SystemParticipantTestData.evcsInput.chargingPoints.toString() ] } diff --git a/src/test/groovy/edu/ie3/datamodel/io/source/csv/CsvSystemParticipantSourceTest.groovy b/src/test/groovy/edu/ie3/datamodel/io/source/csv/CsvSystemParticipantSourceTest.groovy index 926784b17..1fcb31170 100644 --- a/src/test/groovy/edu/ie3/datamodel/io/source/csv/CsvSystemParticipantSourceTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/io/source/csv/CsvSystemParticipantSourceTest.groovy @@ -15,6 +15,7 @@ import edu.ie3.datamodel.models.input.OperatorInput import edu.ie3.datamodel.models.input.system.BmInput import edu.ie3.datamodel.models.input.system.ChpInput import edu.ie3.datamodel.models.input.system.EvInput +import edu.ie3.datamodel.models.input.system.EvcsInput import edu.ie3.datamodel.models.input.system.FixedFeedInInput import edu.ie3.datamodel.models.input.system.HpInput import edu.ie3.datamodel.models.input.system.LoadInput @@ -154,10 +155,10 @@ class CsvSystemParticipantSourceTest extends Specification implements CsvTestDat }) where: - thermalStorages | thermalBuses | fieldsToAttributes || resultIsPresent | resultData - [] as List | [] as List | ["thermalBus": "0d95d7f2-49fb-4d49-8636-383a5220384e", "thermalStorage": "8851813b-3a7d-4fee-874b-4df9d724e4b3"] || false | null + thermalStorages | thermalBuses | fieldsToAttributes || resultIsPresent | resultData + [] as List | [] as List | ["thermalBus": "0d95d7f2-49fb-4d49-8636-383a5220384e", "thermalStorage": "8851813b-3a7d-4fee-874b-4df9d724e4b3"] || false | null [ - sptd.chpInput.thermalStorage] as List | [sptd.chpInput.thermalBus] as List | ["bla": "foo"] || false | null + sptd.chpInput.thermalStorage] as List | [sptd.chpInput.thermalBus] as List | ["bla": "foo"] || false | null [ sptd.chpInput.thermalStorage] as List | [sptd.chpInput.thermalBus] as List | [:] || false | null [ @@ -197,17 +198,17 @@ class CsvSystemParticipantSourceTest extends Specification implements CsvTestDat chpUnits == resultingSet as Set where: - nodes | operators | types | thermalBuses | thermalStorages || resultingSize || resultingSet + nodes | operators | types | thermalBuses | thermalStorages || resultingSize || resultingSet [sptd.chpInput.node]| [sptd.chpInput.operator]| [sptd.chpInput.type]| [sptd.chpInput.thermalBus]| [ - sptd.chpInput.thermalStorage] as List || 1 || [sptd.chpInput] + sptd.chpInput.thermalStorage] as List || 1 || [sptd.chpInput] [sptd.chpInput.node]| []| [sptd.chpInput.type]| [sptd.chpInput.thermalBus]| [ - sptd.chpInput.thermalStorage] as List || 1 || [ + sptd.chpInput.thermalStorage] as List || 1 || [ new ChpInput(sptd.chpInput.uuid, sptd.chpInput.id, OperatorInput.NO_OPERATOR_ASSIGNED, sptd.chpInput.operationTime, sptd.chpInput.node, sptd.chpInput.thermalBus, sptd.chpInput.qCharacteristics, sptd.chpInput.type, sptd.chpInput.thermalStorage, sptd.chpInput.marketReaction) ] - []| []| []| []| [] as List || 0 || [] - [sptd.chpInput.node]| []| []| []| [] as List || 0 || [] - [sptd.chpInput.node]| [sptd.chpInput.operator]| []| []| [] as List || 0 || [] - [sptd.chpInput.node]| [sptd.chpInput.operator]| [sptd.chpInput.type]| []| [] as List || 0 || [] + []| []| []| []| [] as List || 0 || [] + [sptd.chpInput.node]| []| []| []| [] as List || 0 || [] + [sptd.chpInput.node]| [sptd.chpInput.operator]| []| []| [] as List || 0 || [] + [sptd.chpInput.node]| [sptd.chpInput.operator]| [sptd.chpInput.type]| []| [] as List || 0 || [] } def "A CsvSystemParticipantSource should return data from valid ev input file as expected"() { @@ -299,12 +300,19 @@ class CsvSystemParticipantSourceTest extends Specification implements CsvTestDat def csvSystemParticipantSource = new CsvSystemParticipantSource(csvSep, participantsFolderPath, fileNamingStrategy, Mock(CsvTypeSource), Mock(CsvThermalSource), Mock(CsvRawGridSource)) - when: - csvSystemParticipantSource.getEvCS() + expect: + def sysParts = csvSystemParticipantSource.getEvCS(nodes as Set, operators as Set) + sysParts.size() == resultingSize + sysParts == resultingSet as Set - then: - NotImplementedException thrown = thrown(NotImplementedException) - thrown.message.startsWith("Ev Charging Stations are not implemented yet!") + where: + nodes | operators || resultingSize || resultingSet + [sptd.evcsInput.node]| [sptd.evcsInput.operator]|| 1 || [sptd.evcsInput] + [sptd.evcsInput.node]| []|| 1 || [ + new EvcsInput(sptd.evcsInput.uuid, sptd.evcsInput.id, OperatorInput.NO_OPERATOR_ASSIGNED, sptd.evcsInput.operationTime, sptd.evcsInput.node, sptd.evcsInput.qCharacteristics, sptd.evcsInput.type, sptd.evcsInput.chargingPoints, sptd.evcsInput.cosPhiRated) + ] + []| [sptd.evcsInput.operator]|| 0 || [] + []| []|| 0 || [] } def "A CsvSystemParticipantSource should return data from valid load input file as expected"() { @@ -358,14 +366,14 @@ class CsvSystemParticipantSourceTest extends Specification implements CsvTestDat sysParts == resultingSet as Set where: - nodes | operators || resultingSize || resultingSet + nodes | operators || resultingSize || resultingSet [sptd.fixedFeedInInput.node]| [ sptd.fixedFeedInInput.operator] as List || 1 || [sptd.fixedFeedInInput] - [sptd.fixedFeedInInput.node]| [] as List || 1 || [ + [sptd.fixedFeedInInput.node]| [] as List || 1 || [ new FixedFeedInInput(sptd.fixedFeedInInput.uuid, sptd.fixedFeedInInput.id, OperatorInput.NO_OPERATOR_ASSIGNED, sptd.fixedFeedInInput.operationTime, sptd.fixedFeedInInput.node, sptd.fixedFeedInInput.qCharacteristics, sptd.fixedFeedInInput.sRated, sptd.fixedFeedInInput.cosPhiRated) ] []| [ sptd.fixedFeedInInput.operator] as List || 0 || [] - []| [] as List || 0 || [] + []| [] as List || 0 || [] } } diff --git a/src/test/groovy/edu/ie3/datamodel/models/input/system/CsInputTest.groovy b/src/test/groovy/edu/ie3/datamodel/models/input/system/EvcsInputTest.groovy similarity index 81% rename from src/test/groovy/edu/ie3/datamodel/models/input/system/CsInputTest.groovy rename to src/test/groovy/edu/ie3/datamodel/models/input/system/EvcsInputTest.groovy index e36009e1d..750bfb26c 100644 --- a/src/test/groovy/edu/ie3/datamodel/models/input/system/CsInputTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/models/input/system/EvcsInputTest.groovy @@ -9,14 +9,14 @@ import edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointTyp import edu.ie3.test.common.SystemParticipantTestData import spock.lang.Specification -class CsInputTest extends Specification { +class EvcsInputTest extends Specification { - def "A CsInput copy method should work as expected"() { + def "A EvCsInput copy method should work as expected"() { given: - def csInput = SystemParticipantTestData.csInput + def csInput = SystemParticipantTestData.evcsInput when: - def alteredEntity = csInput.copy() + def alteredEntity = EvcsInput.copy() .type(ChargingPointTypeUtils.TeslaSuperChargerV3) .cosPhiRated(0.7d).chargingPoints(1).build() diff --git a/src/test/groovy/edu/ie3/test/common/SystemParticipantTestData.groovy b/src/test/groovy/edu/ie3/test/common/SystemParticipantTestData.groovy index 8249dc89c..289a6aebd 100644 --- a/src/test/groovy/edu/ie3/test/common/SystemParticipantTestData.groovy +++ b/src/test/groovy/edu/ie3/test/common/SystemParticipantTestData.groovy @@ -12,8 +12,8 @@ import edu.ie3.datamodel.models.input.NodeInput import edu.ie3.datamodel.models.input.OperatorInput import edu.ie3.datamodel.models.input.system.BmInput import edu.ie3.datamodel.models.input.system.ChpInput -import edu.ie3.datamodel.models.input.system.CsInput import edu.ie3.datamodel.models.input.system.EvInput +import edu.ie3.datamodel.models.input.system.EvcsInput import edu.ie3.datamodel.models.input.system.FixedFeedInInput import edu.ie3.datamodel.models.input.system.HpInput import edu.ie3.datamodel.models.input.system.LoadInput @@ -324,7 +324,7 @@ class SystemParticipantTestData { ) // charging station - public static final csInput = new CsInput( + public static final evcsInput = new EvcsInput( UUID.fromString("798028b5-caff-4da7-bcd9-1750fdd8742c"), "test_csInput", operator, diff --git a/src/test/resources/testGridFiles/participants/evcs_input.csv b/src/test/resources/testGridFiles/participants/evcs_input.csv new file mode 100644 index 000000000..da6167ca7 --- /dev/null +++ b/src/test/resources/testGridFiles/participants/evcs_input.csv @@ -0,0 +1,2 @@ +uuid,id,operator,operates_from,operates_until,node,q_characteristics,cos_phi_rated,type,charging_points +798028b5-caff-4da7-bcd9-1750fdd8742c,test_csInput,8f9682df-0744-4b58-a122-f0dc730f6510,2020-03-24T15:11:31Z[UTC],2020-03-25T15:11:31Z[UTC],4ca90220-74c2-4369-9afa-a18bf068840d,cosPhiFixed:{(0.0,0.95)},0.95,hhs,4 \ No newline at end of file From d0ff030b46cf0d2a7fe64cf31eea5f3292645eb1 Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Sun, 26 Jul 2020 17:56:38 +0200 Subject: [PATCH 007/598] test for evcs file sink --- .../processor/input/InputEntityProcessor.java | 2 +- .../datamodel/io/sink/CsvFileSinkTest.groovy | 19 ++++++++++++++----- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/main/java/edu/ie3/datamodel/io/processor/input/InputEntityProcessor.java b/src/main/java/edu/ie3/datamodel/io/processor/input/InputEntityProcessor.java index de9229b72..8efaf4cb6 100644 --- a/src/main/java/edu/ie3/datamodel/io/processor/input/InputEntityProcessor.java +++ b/src/main/java/edu/ie3/datamodel/io/processor/input/InputEntityProcessor.java @@ -48,12 +48,12 @@ public class InputEntityProcessor extends EntityProcessor { Transformer3WInput.class, SwitchInput.class, MeasurementUnitInput.class, - EvcsInput.class, ThermalBusInput.class, /* -- SystemParticipantInput */ ChpInput.class, BmInput.class, EvInput.class, + EvcsInput.class, FixedFeedInInput.class, HpInput.class, LoadInput.class, diff --git a/src/test/groovy/edu/ie3/datamodel/io/sink/CsvFileSinkTest.groovy b/src/test/groovy/edu/ie3/datamodel/io/sink/CsvFileSinkTest.groovy index a33e0633a..b72655618 100644 --- a/src/test/groovy/edu/ie3/datamodel/io/sink/CsvFileSinkTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/io/sink/CsvFileSinkTest.groovy @@ -21,12 +21,14 @@ import edu.ie3.datamodel.models.input.connector.type.Transformer2WTypeInput import edu.ie3.datamodel.models.input.connector.type.LineTypeInput import edu.ie3.datamodel.models.input.graphics.LineGraphicInput import edu.ie3.datamodel.models.input.graphics.NodeGraphicInput +import edu.ie3.datamodel.models.input.system.EvcsInput import edu.ie3.datamodel.models.input.system.PvInput import edu.ie3.datamodel.models.input.system.characteristic.CosPhiFixed import edu.ie3.datamodel.models.input.thermal.CylindricalStorageInput import edu.ie3.datamodel.models.input.thermal.ThermalBusInput import edu.ie3.datamodel.models.input.thermal.ThermalHouseInput import edu.ie3.datamodel.models.result.system.EvResult +import edu.ie3.datamodel.models.result.system.EvcsResult import edu.ie3.datamodel.models.result.system.PvResult import edu.ie3.datamodel.models.result.system.WecResult import edu.ie3.datamodel.models.timeseries.TimeSeries @@ -36,6 +38,7 @@ import edu.ie3.datamodel.models.timeseries.individual.TimeBasedValue import edu.ie3.datamodel.models.value.EnergyPriceValue import edu.ie3.datamodel.models.value.Value import edu.ie3.test.common.GridTestData +import edu.ie3.test.common.SystemParticipantTestData import edu.ie3.test.common.TimeSeriesTestData import edu.ie3.test.common.ThermalUnitInputTestData import edu.ie3.util.TimeUtil @@ -97,7 +100,7 @@ class CsvFileSinkTest extends Specification implements TimeSeriesTestData { def csvFileSink = new CsvFileSink(testBaseFolderPath) def input = [ "hello, whats up?": "nothing", - "okay": "that's fine" + "okay" : "that's fine" ] when: @@ -106,7 +109,7 @@ class CsvFileSinkTest extends Specification implements TimeSeriesTestData { then: actual == [ "\"hello, whats up?\"": "nothing", - "okay": "that's fine" + "okay" : "that's fine" ] cleanup: @@ -117,7 +120,7 @@ class CsvFileSinkTest extends Specification implements TimeSeriesTestData { given: def csvFileSink = new CsvFileSink(testBaseFolderPath) def input = [ - "what is \"this\"?": "nothing", + "what is \"this\"?" : "nothing", "\"what is \"this\"?\"": "something" ] @@ -133,15 +136,17 @@ class CsvFileSinkTest extends Specification implements TimeSeriesTestData { csvFileSink.shutdown() } - def "A valid CsvFileSink without 'initFiles' should only persist provided elements correctly but not all files"() { + def "A valid CsvFileSink without 'initFiles' should only persist provided elements correctly but not init all files"() { given: CsvFileSink csvFileSink = new CsvFileSink(testBaseFolderPath, new ProcessorProvider([ new ResultEntityProcessor(PvResult), new ResultEntityProcessor(WecResult), new ResultEntityProcessor(EvResult), + new ResultEntityProcessor(EvcsResult), new InputEntityProcessor(Transformer2WInput), new InputEntityProcessor(NodeInput), + new InputEntityProcessor(EvcsInput), new InputEntityProcessor(Transformer2WTypeInput), new InputEntityProcessor(LineGraphicInput), new InputEntityProcessor(NodeGraphicInput), @@ -162,16 +167,19 @@ class CsvFileSinkTest extends Specification implements TimeSeriesTestData { Quantity q = Quantities.getQuantity(10, StandardUnits.REACTIVE_POWER_IN) PvResult pvResult = new PvResult(uuid, TimeUtil.withDefaults.toZonedDateTime("2020-01-30 17:26:44"), inputModel, p, q) WecResult wecResult = new WecResult(uuid, TimeUtil.withDefaults.toZonedDateTime("2020-01-30 17:26:44"), inputModel, p, q) + EvcsResult evcsResult = new EvcsResult(uuid, TimeUtil.withDefaults.toZonedDateTime("2020-01-30 17:26:44"), inputModel, p, q) when: csvFileSink.persistAll([ pvResult, wecResult, + evcsResult, GridTestData.transformerCtoG, GridTestData.lineGraphicCtoD, GridTestData.nodeGraphicC, ThermalUnitInputTestData.cylindricStorageInput, - ThermalUnitInputTestData.thermalHouseInput + ThermalUnitInputTestData.thermalHouseInput, + SystemParticipantTestData.evcsInput ]) csvFileSink.shutdown() @@ -179,6 +187,7 @@ class CsvFileSinkTest extends Specification implements TimeSeriesTestData { new File(testBaseFolderPath).exists() new File(testBaseFolderPath + File.separator + "wec_res.csv").exists() new File(testBaseFolderPath + File.separator + "pv_res.csv").exists() + new File(testBaseFolderPath + File.separator + "evcs_res.csv").exists() new File(testBaseFolderPath + File.separator + "transformer2w_type_input.csv").exists() new File(testBaseFolderPath + File.separator + "node_input.csv").exists() new File(testBaseFolderPath + File.separator + "transformer2w_input.csv").exists() From c727b17a2e3c185d71934c925a82fec51901aa6c Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Sun, 26 Jul 2020 18:00:40 +0200 Subject: [PATCH 008/598] fix some broken tests --- .../input/AssetInputEntityFactoryTest.groovy | 2 +- .../participant/FixedFeedInInputFactoryTest.groovy | 2 +- .../io/factory/result/NodeResultFactoryTest.groovy | 2 +- .../SystemParticipantResultFactoryTest.groovy | 2 +- .../SystemParticipantTypeInputFactoryTest.groovy | 2 +- .../models/input/system/EvcsInputTest.groovy | 14 +++++++------- 6 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/test/groovy/edu/ie3/datamodel/io/factory/input/AssetInputEntityFactoryTest.groovy b/src/test/groovy/edu/ie3/datamodel/io/factory/input/AssetInputEntityFactoryTest.groovy index 29ae94760..de117dba6 100644 --- a/src/test/groovy/edu/ie3/datamodel/io/factory/input/AssetInputEntityFactoryTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/io/factory/input/AssetInputEntityFactoryTest.groovy @@ -260,7 +260,7 @@ class AssetInputEntityFactoryTest extends Specification implements FactoryTestHe "{operatesfrom -> 2019-01-01T00:00:00+01:00[Europe/Berlin],\n" + "operatesuntil -> 2019-12-31T00:00:00+01:00[Europe/Berlin],\n" + "uuid -> 91ec3bcf-1777-4d38-af67-0bf7c9fa73c7} are invalid for instance of TestAssetInput. \n" + - "The following fields to be passed to a constructor of 'TestAssetInput' are possible (NOT case-sensitive!):\n" + + "The following fields (without complex objects e.g. nodes) to be passed to a constructor of 'TestAssetInput' are possible (NOT case-sensitive!):\n" + "0: [id, uuid]\n" + "1: [id, operatesfrom, uuid]\n" + "2: [id, operatesuntil, uuid]\n" + diff --git a/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/FixedFeedInInputFactoryTest.groovy b/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/FixedFeedInInputFactoryTest.groovy index 8fd8a8dcd..9a2d21f49 100644 --- a/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/FixedFeedInInputFactoryTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/FixedFeedInInputFactoryTest.groovy @@ -94,7 +94,7 @@ class FixedFeedInInputFactoryTest extends Specification implements FactoryTestHe "id -> TestID,\n" + "srated -> 3,\n" + "uuid -> 91ec3bcf-1777-4d38-af67-0bf7c9fa73c7} are invalid for instance of FixedFeedInInput. \n" + - "The following fields to be passed to a constructor of 'FixedFeedInInput' are possible (NOT case-sensitive!):\n" + + "The following fields (without complex objects e.g. nodes) to be passed to a constructor of 'FixedFeedInInput' are possible (NOT case-sensitive!):\n" + "0: [cosphirated, id, qcharacteristics, srated, uuid]\n" + "1: [cosphirated, id, operatesfrom, qcharacteristics, srated, uuid]\n" + "2: [cosphirated, id, operatesuntil, qcharacteristics, srated, uuid]\n" + diff --git a/src/test/groovy/edu/ie3/datamodel/io/factory/result/NodeResultFactoryTest.groovy b/src/test/groovy/edu/ie3/datamodel/io/factory/result/NodeResultFactoryTest.groovy index 7867bb229..3f35a9524 100644 --- a/src/test/groovy/edu/ie3/datamodel/io/factory/result/NodeResultFactoryTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/io/factory/result/NodeResultFactoryTest.groovy @@ -66,7 +66,7 @@ class NodeResultFactoryTest extends Specification implements FactoryTestHelper { "{inputModel -> 91ec3bcf-1897-4d38-af67-0bf7c9fa73c7,\n" + "timestamp -> 2020-01-30 17:26:44,\n" + "vmag -> 2} are invalid for instance of NodeResult. \n" + - "The following fields to be passed to a constructor of 'NodeResult' are possible (NOT case-sensitive!):\n" + + "The following fields (without complex objects e.g. nodes) to be passed to a constructor of 'NodeResult' are possible (NOT case-sensitive!):\n" + "0: [inputModel, timestamp, vang, vmag]\n" + "1: [inputModel, timestamp, uuid, vang, vmag]\n" } diff --git a/src/test/groovy/edu/ie3/datamodel/io/factory/result/SystemParticipantResultFactoryTest.groovy b/src/test/groovy/edu/ie3/datamodel/io/factory/result/SystemParticipantResultFactoryTest.groovy index 3a070a596..74590d626 100644 --- a/src/test/groovy/edu/ie3/datamodel/io/factory/result/SystemParticipantResultFactoryTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/io/factory/result/SystemParticipantResultFactoryTest.groovy @@ -133,7 +133,7 @@ class SystemParticipantResultFactoryTest extends Specification implements Factor "{inputModel -> 91ec3bcf-1777-4d38-af67-0bf7c9fa73c7,\n" + "q -> 2,\n" + "timestamp -> 2020-01-30 17:26:44} are invalid for instance of WecResult. \n" + - "The following fields to be passed to a constructor of 'WecResult' are possible (NOT case-sensitive!):\n" + + "The following fields (without complex objects e.g. nodes) to be passed to a constructor of 'WecResult' are possible (NOT case-sensitive!):\n" + "0: [inputModel, p, q, timestamp]\n" + "1: [inputModel, p, q, timestamp, uuid]\n" } diff --git a/src/test/groovy/edu/ie3/datamodel/io/factory/typeinput/SystemParticipantTypeInputFactoryTest.groovy b/src/test/groovy/edu/ie3/datamodel/io/factory/typeinput/SystemParticipantTypeInputFactoryTest.groovy index e09edca8b..6ae2e1544 100644 --- a/src/test/groovy/edu/ie3/datamodel/io/factory/typeinput/SystemParticipantTypeInputFactoryTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/io/factory/typeinput/SystemParticipantTypeInputFactoryTest.groovy @@ -312,7 +312,7 @@ class SystemParticipantTypeInputFactoryTest extends Specification implements Fac "pmin -> 7,\n" + "srated -> 5,\n" + "uuid -> 91ec3bcf-1777-4d38-af67-0bf7c9fa73c7} are invalid for instance of StorageTypeInput. \n" + - "The following fields to be passed to a constructor of 'StorageTypeInput' are possible (NOT case-sensitive!):\n" + + "The following fields (without complex objects e.g. nodes) to be passed to a constructor of 'StorageTypeInput' are possible (NOT case-sensitive!):\n" + "0: [activepowergradient, capex, cosphirated, dod, estorage, eta, id, lifecycle, lifetime, opex, pmax, srated, uuid]\n" } } diff --git a/src/test/groovy/edu/ie3/datamodel/models/input/system/EvcsInputTest.groovy b/src/test/groovy/edu/ie3/datamodel/models/input/system/EvcsInputTest.groovy index 750bfb26c..ab41bcc05 100644 --- a/src/test/groovy/edu/ie3/datamodel/models/input/system/EvcsInputTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/models/input/system/EvcsInputTest.groovy @@ -13,20 +13,20 @@ class EvcsInputTest extends Specification { def "A EvCsInput copy method should work as expected"() { given: - def csInput = SystemParticipantTestData.evcsInput + def evcsInput = SystemParticipantTestData.evcsInput when: - def alteredEntity = EvcsInput.copy() + def alteredEntity = evcsInput.copy() .type(ChargingPointTypeUtils.TeslaSuperChargerV3) .cosPhiRated(0.7d).chargingPoints(1).build() then: alteredEntity.with { - assert uuid == csInput.uuid - assert operationTime == csInput.operationTime - assert operator == csInput.operator - assert id == csInput.id - assert qCharacteristics == csInput.qCharacteristics + assert uuid == evcsInput.uuid + assert operationTime == evcsInput.operationTime + assert operator == evcsInput.operator + assert id == evcsInput.id + assert qCharacteristics == evcsInput.qCharacteristics assert type == ChargingPointTypeUtils.TeslaSuperChargerV3 assert cosPhiRated == 0.7d assert chargingPoints == 1 From 08b3428b4cd822c7f93c2bb2ae6aa73da5ed1877 Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Sun, 26 Jul 2020 18:10:06 +0200 Subject: [PATCH 009/598] evcs documentation --- .../models/input/participant/evcs.rst | 56 ++++++++++++++++++- 1 file changed, 54 insertions(+), 2 deletions(-) diff --git a/docs/readthedocs/models/input/participant/evcs.rst b/docs/readthedocs/models/input/participant/evcs.rst index b02393578..227af939b 100644 --- a/docs/readthedocs/models/input/participant/evcs.rst +++ b/docs/readthedocs/models/input/participant/evcs.rst @@ -1,5 +1,57 @@ .. _evcs_model: -Electric Vehicle Charging System +Electric Vehicle Charging Station -------------------------------- -This model is currently only a dummy implementation. +Model of a charging station for electric vehicles. This model only covers the basic characteristics of a charging +station and has some limitations outlined below. + +Attributes, Units and Remarks +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + +Entity Model +"""""""""""" + ++------------------+---------+--------------------------------------------------------------------------------------+ +| Attribute | Unit | Remarks | ++==================+=========+======================================================================================+ +| uuid | -- | | ++------------------+---------+--------------------------------------------------------------------------------------+ +| id | -- | Human readable identifier | ++------------------+---------+--------------------------------------------------------------------------------------+ +| operator | -- | | ++------------------+---------+--------------------------------------------------------------------------------------+ +| operationTime | -- | Timely restriction of operation | ++------------------+---------+--------------------------------------------------------------------------------------+ +| node | -- | | ++------------------+---------+--------------------------------------------------------------------------------------+ +| qCharacteristics | -- | :ref:`Reactive power characteristic` to follow | ++------------------+---------+--------------------------------------------------------------------------------------+ +| type | -- | :ref:`Charging point type` (valid for all installed points) | ++------------------+---------+--------------------------------------------------------------------------------------+ +| chargingPoints | -- | no of installed charging points @ the specific station | ++------------------+---------+--------------------------------------------------------------------------------------+ +| cosphiRated | -- | Rated power factor | ++------------------+---------+--------------------------------------------------------------------------------------+ + +.. _evcs_point_types: + +Available Standard Types +"""""""""""""""""""""""" + +Custom Types +"""""""""""" + +Limitations +""""""""""" + +- the available charging types are currently limited to only some common standard charging point types and not configurable + via a type file. Although providing custom types is possible using the syntax explained above. If there is additional + need for a more granular type configuration via type file please contact us. +- each charging station can hold one or more charging points. If more than one charging point is available + all attributes (e.g. :code:`sRated` or :code:`connectionType`) are considered to be equal for all connection + points + +Caveats +^^^^^^^ +Nothing - at least not known. +If you found something, please contact us! \ No newline at end of file From fb2e836017868abdad636d5c3fd9c3d5d359af02 Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Sun, 26 Jul 2020 21:01:13 +0200 Subject: [PATCH 010/598] fix a bug in ContainerUtils that dropped evcs --- src/main/java/edu/ie3/datamodel/utils/ContainerUtils.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/edu/ie3/datamodel/utils/ContainerUtils.java b/src/main/java/edu/ie3/datamodel/utils/ContainerUtils.java index f2a266b71..2b44591c8 100644 --- a/src/main/java/edu/ie3/datamodel/utils/ContainerUtils.java +++ b/src/main/java/edu/ie3/datamodel/utils/ContainerUtils.java @@ -199,7 +199,7 @@ public static RawGridElements filterForSubnet(RawGridElements input, int subnet) public static SystemParticipants filterForSubnet(SystemParticipants input, int subnet) { Set bmPlants = filterParticipants(input.getBmPlants(), subnet); Set chpPlants = filterParticipants(input.getChpPlants(), subnet); - /* Electric vehicle charging systems are currently dummy implementations without nodal reverence */ + Set evcsInputs = filterParticipants(input.getEvCS(), subnet); Set evs = filterParticipants(input.getEvs(), subnet); Set fixedFeedIns = filterParticipants(input.getFixedFeedIns(), subnet); Set heatpumps = filterParticipants(input.getHeatPumps(), subnet); @@ -211,7 +211,7 @@ public static SystemParticipants filterForSubnet(SystemParticipants input, int s return new SystemParticipants( bmPlants, chpPlants, - new HashSet<>(), + evcsInputs, evs, fixedFeedIns, heatpumps, From e0459d3a1b073245eca4a4bfdcad5e582b2c6864 Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Mon, 27 Jul 2020 20:55:04 +0200 Subject: [PATCH 011/598] added documentation --- .../models/input/participant/evcs.rst | 78 +++++++++++++++++-- .../models/input/system/EvcsInput.java | 3 + .../chargingpoint/ChargingPointTypeUtils.java | 60 +++++++++----- 3 files changed, 117 insertions(+), 24 deletions(-) diff --git a/docs/readthedocs/models/input/participant/evcs.rst b/docs/readthedocs/models/input/participant/evcs.rst index 227af939b..e625eaf47 100644 --- a/docs/readthedocs/models/input/participant/evcs.rst +++ b/docs/readthedocs/models/input/participant/evcs.rst @@ -1,12 +1,12 @@ .. _evcs_model: Electric Vehicle Charging Station --------------------------------- +--------------------------------- Model of a charging station for electric vehicles. This model only covers the basic characteristics of a charging station and has some limitations outlined below. -Attributes, Units and Remarks -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Model Definition +^^^^^^^^^^^^^^^^ Entity Model """""""""""" @@ -30,23 +30,89 @@ Entity Model +------------------+---------+--------------------------------------------------------------------------------------+ | chargingPoints | -- | no of installed charging points @ the specific station | +------------------+---------+--------------------------------------------------------------------------------------+ -| cosphiRated | -- | Rated power factor | +| cosPhiRated | -- | Rated power factor | +------------------+---------+--------------------------------------------------------------------------------------+ +Type Model +"""""""""""" +In contrast to other models, electric vehicle charging station types are not configured via separate type file or table, +but 'inline' of a charging station entry. This is justified by the fact, that the station type (in contrast to e.g. +the type of a wind energy converter) only consists of a few, more or less standardized parameters, that are (most of the +time) equal for all manufacturers. Hence, to simplify the type model handling, types are provided either by a string +literal of their id or by providing a custom one. See :ref:`Charging point types` for details of on +available standard types and how to use custom types. + +The actual model definition for charging point types looks as follows: + ++------------------------+---------+--------------------------------------------------------------------------------+ +| Attribute | Unit | Remarks | ++========================+=========+================================================================================+ +| id | -- | Human readable identifier | ++------------------------+---+-----+--------------------------------------------------------------------------------+ +| sRated | kVA | Rated apparent power | ++------------------------+---+-----+--------------------------------------------------------------------------------+ +| electricCurrentType | -- | Timely restriction of operation | ++------------------------+---+-----+--------------------------------------------------------------------------------+ +|synonymousIds | -- | Set of alternative human readable identifiers | ++------------------------+---------+--------------------------------------------------------------------------------+ + .. _evcs_point_types: +Charging Point Types +^^^^^^^^^^^^^^^^^^^^ Available Standard Types """""""""""""""""""""""" +To simplify the application of electric vehicle charging stations, some common standard types are available out-of-the-box. +They can either by used code vise or directly from database or file input by referencing their id or one of their +synonymous ids. All standard types can be found in :code:`edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointTypeUtils`. + ++-------------------------------+-----------------------------------------------+---------------+-----------------------+ +| id | synonymous ids | sRated in kVA | electric current type | ++===============================+===============================================+===============+=======================+ +| HouseholdSocket | household, hhs, schuko-simple | 2.3 | AC | ++-------------------------------+-----------------------------------------------+---------------+-----------------------+ +| BlueHouseholdSocket | bluehousehold, bhs, schuko-camping | 3.6 | AC | ++-------------------------------+-----------------------------------------------+---------------+-----------------------+ +| Cee16ASocket | cee16 | 11 | AC | ++-------------------------------+-----------------------------------------------+---------------+-----------------------+ +| Cee32ASocket | cee32 | 22 | AC | ++-------------------------------+-----------------------------------------------+---------------+-----------------------+ +| Cee63ASocket | cee63 | 43 | AC | ++-------------------------------+-----------------------------------------------+---------------+-----------------------+ +| ChargingStationType1 | cst1, stationtype1, cstype1 | 7.2 | AC | ++-------------------------------+-----------------------------------------------+---------------+-----------------------+ +| ChargingStationType2 | cst2, stationtype2, cstype2 | 43 | AC | ++-------------------------------+-----------------------------------------------+---------------+-----------------------+ +| ChargingStationCcsComboType1 | csccs1, csccscombo1 | 11 | DC | ++-------------------------------+-----------------------------------------------+---------------+-----------------------+ +| ChargingStationCcsComboType2 | csccs2, csccscombo2 | 50 | DC | ++-------------------------------+-----------------------------------------------+---------------+-----------------------+ +| TeslaSuperChargerV1 | tesla1, teslav1, supercharger1, supercharger | 135 | DC | ++-------------------------------+-----------------------------------------------+---------------+-----------------------+ +| TeslaSuperChargerV2 | tesla2, teslav2, supercharger2 | 150 | DC | ++-------------------------------+-----------------------------------------------+---------------+-----------------------+ +| TeslaSuperChargerV3 | tesla3, teslav3, supercharger3 | 250 | DC | ++-------------------------------+-----------------------------------------------+---------------+-----------------------+ + Custom Types """""""""""" +While the provided standard types should be suitable for most scenarios, providing an individual type for a specific +scenario might be necessary. To do so, a custom type can be provided instead of a common id. This custom type is tested +against the following regex :code:`(\w+\d*)\s*\(\s*(\d+\.?\d+)\s*\|\s*(AC|DC)\s*\)`, or more generally, the custom +type string has to be in the following syntax:: + + (|) e.g. FastCharger(50|DC) or SlowCharger(2.5|AC) + +Please note, that in accordance with :code:`edu.ie3.datamodel.models.StandardUnits` the apparent power is expected to +be in kVA! Limitations """"""""""" - the available charging types are currently limited to only some common standard charging point types and not configurable - via a type file. Although providing custom types is possible using the syntax explained above. If there is additional - need for a more granular type configuration via type file please contact us. + via a type file or table. Although providing custom types is possible using the syntax explained above. + If there is additional need for a more granular type configuration via type file please contact us. - each charging station can hold one or more charging points. If more than one charging point is available all attributes (e.g. :code:`sRated` or :code:`connectionType`) are considered to be equal for all connection points diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/EvcsInput.java b/src/main/java/edu/ie3/datamodel/models/input/system/EvcsInput.java index 8021e33dc..1e405138d 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/system/EvcsInput.java +++ b/src/main/java/edu/ie3/datamodel/models/input/system/EvcsInput.java @@ -15,7 +15,10 @@ public class EvcsInput extends SystemParticipantInput { + /** type of all installed charging points */ private final ChargingPointType type; + + /** no of installed charging points */ private final int chargingPoints; /** Rated power factor */ diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtils.java b/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtils.java index 91b88cb7a..e5a5f3f5e 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtils.java +++ b/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtils.java @@ -10,8 +10,8 @@ import edu.ie3.datamodel.exceptions.ChargingPointTypeException; import edu.ie3.datamodel.models.ElectricCurrentType; +import edu.ie3.datamodel.models.StandardUnits; import edu.ie3.util.StringUtils; -import edu.ie3.util.quantities.PowerSystemUnits; import java.util.*; import java.util.function.Function; import java.util.regex.Matcher; @@ -23,7 +23,8 @@ import tec.uom.se.quantity.Quantities; /** - * //ToDo: Class Description + * Utility class to create either custom instances of {@link ChargingPointType}s or to retrieve + * common standard {@link ChargingPointType}s based on their id * * @version 0.1 * @since 26.07.20 @@ -39,84 +40,84 @@ private ChargingPointTypeUtils() { public static final ChargingPointType HouseholdSocket = new ChargingPointType( "HouseholdSocket", - Quantities.getQuantity(2.3, PowerSystemUnits.KILOVOLTAMPERE), + Quantities.getQuantity(2.3, StandardUnits.S_RATED), AC, new HashSet<>(Arrays.asList("household", "hhs", "schuko-simple"))); public static final ChargingPointType BlueHouseholdSocket = new ChargingPointType( "BlueHouseholdSocket", - Quantities.getQuantity(3.6, PowerSystemUnits.KILOVOLTAMPERE), + Quantities.getQuantity(3.6, StandardUnits.S_RATED), AC, new HashSet<>(Arrays.asList("bluehousehold", "bhs", "schuko-camping"))); public static final ChargingPointType Cee16ASocket = new ChargingPointType( "Cee16ASocket", - Quantities.getQuantity(11, PowerSystemUnits.KILOVOLTAMPERE), + Quantities.getQuantity(11, StandardUnits.S_RATED), AC, Collections.singleton("cee16")); public static final ChargingPointType Cee32ASocket = new ChargingPointType( "Cee32ASocket", - Quantities.getQuantity(22, PowerSystemUnits.KILOVOLTAMPERE), + Quantities.getQuantity(22, StandardUnits.S_RATED), AC, Collections.singleton("cee32")); public static final ChargingPointType Cee63ASocket = new ChargingPointType( "Cee63ASocket", - Quantities.getQuantity(43, PowerSystemUnits.KILOVOLTAMPERE), + Quantities.getQuantity(43, StandardUnits.S_RATED), AC, Collections.singleton("cee63")); public static final ChargingPointType ChargingStationType1 = new ChargingPointType( "ChargingStationType1", - Quantities.getQuantity(7.2, PowerSystemUnits.KILOVOLTAMPERE), + Quantities.getQuantity(7.2, StandardUnits.S_RATED), AC, new HashSet<>(Arrays.asList("cst1", "stationtype1", "cstype1"))); public static final ChargingPointType ChargingStationType2 = new ChargingPointType( "ChargingStationType2", - Quantities.getQuantity(43, PowerSystemUnits.KILOVOLTAMPERE), + Quantities.getQuantity(43, StandardUnits.S_RATED), AC, new HashSet<>(Arrays.asList("cst2", "stationtype2", "cstype2"))); public static final ChargingPointType ChargingStationCcsComboType1 = new ChargingPointType( "ChargingStationCcsComboType1", - Quantities.getQuantity(11, PowerSystemUnits.KILOVOLTAMPERE), + Quantities.getQuantity(11, StandardUnits.S_RATED), DC, new HashSet<>(Arrays.asList("csccs1", "csccscombo1"))); public static final ChargingPointType ChargingStationCcsComboType2 = new ChargingPointType( "ChargingStationCcsComboType2", - Quantities.getQuantity(50, PowerSystemUnits.KILOVOLTAMPERE), + Quantities.getQuantity(50, StandardUnits.S_RATED), DC, new HashSet<>(Arrays.asList("csccs2", "csccscombo2"))); public static final ChargingPointType TeslaSuperChargerV1 = new ChargingPointType( "TeslaSuperChargerV1", - Quantities.getQuantity(135, PowerSystemUnits.KILOVOLTAMPERE), + Quantities.getQuantity(135, StandardUnits.S_RATED), DC, new HashSet<>(Arrays.asList("tesla1", "teslav1", "supercharger1", "supercharger"))); public static final ChargingPointType TeslaSuperChargerV2 = new ChargingPointType( "TeslaSuperChargerV2", - Quantities.getQuantity(150, PowerSystemUnits.KILOVOLTAMPERE), + Quantities.getQuantity(150, StandardUnits.S_RATED), DC, new HashSet<>(Arrays.asList("tesla2", "teslav2", "supercharger2"))); public static final ChargingPointType TeslaSuperChargerV3 = new ChargingPointType( "TeslaSuperChargerV3", - Quantities.getQuantity(250, PowerSystemUnits.KILOVOLTAMPERE), + Quantities.getQuantity(250, StandardUnits.S_RATED), DC, new HashSet<>(Arrays.asList("tesla3", "teslav3", "supercharger3"))); @@ -144,8 +145,22 @@ private ChargingPointTypeUtils() { .stream()) .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))); - // todo javadocs with examples - // input is expected in kVA!!! + /** + * Parse a given string into either a custom {@link ChargingPointType} or a standard {@link + * ChargingPointType}. A custom charging point type can be created if the prsable string matches + * the following regex {@code (\w+\d*)\s*\(\s*(\d+\.?\d+)\s*\|\s*(AC|DC)\s*\)} e.g. {@code + * FastCharger(50|DC)} is a valid custom charging point definition. The apparent power value is + * expected to be in kVA. + * + *

For all available common standard charging point types see {@link + * #commonChargingPointTypes}. + * + * @param parsableString the string to be parsed. Either a valid custom string or the id of a + * common standard charging point + * @return instance of a {@link ChargingPointType} + * @throws ChargingPointTypeException if the string is neither a valid custom charging point + * string nor a valid common standard charging point id + */ public static ChargingPointType parse(String parsableString) throws ChargingPointTypeException { ChargingPointType res; @@ -165,8 +180,7 @@ public static ChargingPointType parse(String parsableString) throws ChargingPoin // regex limits to digits -> no need to catch any NumberFormatException || // NullPointerException final Quantity sRated = - Quantities.getQuantity( - Double.parseDouble(matcher.group(2)), PowerSystemUnits.KILOVOLTAMPERE); + Quantities.getQuantity(Double.parseDouble(matcher.group(2)), StandardUnits.S_RATED); // regex limits to AC|DC -> parsing must always succeed, exception for safety reasons only String currentTypeString = matcher.group(3); @@ -215,6 +229,16 @@ public static ChargingPointType parse(String parsableString) throws ChargingPoin return res; } + /** + * Retrieve a common standard charging point type based on its id or one of its synonymous ids + * + *

For all available common standard charging point types see {@link + * #commonChargingPointTypes}. + * + * @param id the id of the common standard charging point type + * @return optional containing id matching {@link ChargingPointType} or an empty optional if no + * common charging point type matching the provided id can be found + */ public static Optional fromIdString(String id) { String cleanedId = StringUtils.cleanString(id).replace("_", "").trim().toLowerCase(); return Optional.ofNullable(commonChargingPointTypes.get(cleanedId)); From c4ac46099661e763be0ad374a052a6909af56092 Mon Sep 17 00:00:00 2001 From: Niklas Date: Mon, 17 Aug 2020 16:18:16 +0200 Subject: [PATCH 012/598] init branch --- src/main/java/edu/ie3/datamodel/utils/ValidationUtils.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/edu/ie3/datamodel/utils/ValidationUtils.java b/src/main/java/edu/ie3/datamodel/utils/ValidationUtils.java index c908193a7..27373921a 100644 --- a/src/main/java/edu/ie3/datamodel/utils/ValidationUtils.java +++ b/src/main/java/edu/ie3/datamodel/utils/ValidationUtils.java @@ -30,6 +30,7 @@ import java.util.stream.Collectors; import javax.measure.Quantity; + /** Basic Sanity validation tools for entities */ public class ValidationUtils { From af48011f804353425611cd07467e3f4cec22df22 Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Tue, 1 Sep 2020 16:17:07 +0200 Subject: [PATCH 013/598] fix build.gradle PowerSystemUtils to latest release v1.3.2 --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index c3ea11c72..7714ce437 100644 --- a/build.gradle +++ b/build.gradle @@ -52,7 +52,7 @@ repositories { dependencies { // ie³ power system utils - compile 'com.github.ie3-institute:PowerSystemUtils:1.3.2-SNAPSHOT' + compile 'com.github.ie3-institute:PowerSystemUtils:1.3.2' compile "tec.uom:uom-se:$unitsOfMeasurementVersion" From fe9476ca0d7b61e9266bf34946efd4817dbd7cd7 Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Tue, 1 Sep 2020 16:29:20 +0200 Subject: [PATCH 014/598] fix imports that break tests --- .../input/system/type/chargingpoint/ChargingPointType.java | 2 +- .../io/factory/input/participant/EvcsInputFactoryTest.groovy | 2 +- .../type/chargingpoint/ChargingPointTypeUtilsTest.groovy | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointType.java b/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointType.java index de4b7f169..a0e4e73c2 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointType.java +++ b/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointType.java @@ -6,7 +6,7 @@ package edu.ie3.datamodel.models.input.system.type.chargingpoint; import edu.ie3.datamodel.models.ElectricCurrentType; -import edu.ie3.util.quantities.PowerSystemUnits; +import edu.ie3.util.quantities.dep.PowerSystemUnits; import java.util.*; import javax.measure.Quantity; import javax.measure.quantity.Power; diff --git a/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactoryTest.groovy b/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactoryTest.groovy index e1700fd98..b46248b8b 100644 --- a/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactoryTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactoryTest.groovy @@ -18,7 +18,7 @@ import tec.uom.se.quantity.Quantities import javax.measure.quantity.Dimensionless import java.time.ZonedDateTime -import static edu.ie3.util.quantities.PowerSystemUnits.PU +import static edu.ie3.util.quantities.dep.PowerSystemUnits.PU /** * //ToDo: Class Description diff --git a/src/test/groovy/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtilsTest.groovy b/src/test/groovy/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtilsTest.groovy index d29629b3b..4ccc29a9d 100644 --- a/src/test/groovy/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtilsTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtilsTest.groovy @@ -7,9 +7,8 @@ package edu.ie3.datamodel.models.input.system.type.chargingpoint import edu.ie3.datamodel.exceptions.ChargingPointTypeException import edu.ie3.datamodel.models.ElectricCurrentType -import edu.ie3.util.quantities.PowerSystemUnits -import static edu.ie3.util.quantities.PowerSystemUnits.KILOVOLTAMPERE +import static edu.ie3.util.quantities.dep.PowerSystemUnits.KILOVOLTAMPERE import static edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointTypeUtils.* import spock.lang.Specification import tec.uom.se.quantity.Quantities @@ -36,6 +35,7 @@ class ChargingPointTypeUtilsTest extends Specification { ChargingPointType actual = parse(parsableString) expect: + new ChargingPointType("FastCharger", Quantities.getQuantity(50, KILOVOLTAMPERE), ElectricCurrentType.DC).toString() actual == expectedObj actual.toString() == expectedString From 3e14198ce0935b8c78e501911770f7d3200235ba Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Wed, 2 Sep 2020 09:00:02 +0200 Subject: [PATCH 015/598] added documentation --- .../io/factory/input/participant/EvcsInputFactory.java | 3 ++- .../java/edu/ie3/datamodel/models/ElectricCurrentType.java | 3 ++- .../input/system/type/chargingpoint/ChargingPointType.java | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactory.java b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactory.java index bd6590ca9..d2d9d4320 100644 --- a/src/main/java/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactory.java +++ b/src/main/java/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactory.java @@ -17,7 +17,8 @@ import edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointTypeUtils; /** - * //ToDo: Class Description // todo test + * Factory to create instances of {@link EvcsInput}s based on {@link NodeAssetInputEntityData} and + * additional fields. * * @version 0.1 * @since 26.07.20 diff --git a/src/main/java/edu/ie3/datamodel/models/ElectricCurrentType.java b/src/main/java/edu/ie3/datamodel/models/ElectricCurrentType.java index 1f634e885..f43c30cfd 100644 --- a/src/main/java/edu/ie3/datamodel/models/ElectricCurrentType.java +++ b/src/main/java/edu/ie3/datamodel/models/ElectricCurrentType.java @@ -9,7 +9,8 @@ import java.util.Optional; /** - * //ToDo: Class Description + * Generic electric current type implementation. Main purpose is to indicate the current type that + * is provided by a specific asset e.g. {@link edu.ie3.datamodel.models.input.system.EvcsInput} * * @version 0.1 * @since 25.07.20 diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointType.java b/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointType.java index a0e4e73c2..e6929f14d 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointType.java +++ b/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointType.java @@ -12,7 +12,9 @@ import javax.measure.quantity.Power; /** - * //ToDo: Class Description + * The actual implementation {@link edu.ie3.datamodel.models.input.system.EvcsInput} types. Default + * type implementations as well as methods to parse a type from a string can be found in {@link + * ChargingPointTypeUtils} * * @version 0.1 * @since 25.07.20 From d3eb249c9ed24484170bba3211316be9ba95b8e1 Mon Sep 17 00:00:00 2001 From: "Kittl, Chris" Date: Wed, 2 Sep 2020 09:11:49 +0200 Subject: [PATCH 016/598] Adding and adapting exceptions --- .../exceptions/InvalidEntityException.java | 7 ++++++- .../exceptions/InvalidGridException.java | 2 +- .../exceptions/ValidationException.java | 16 ++++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 src/main/java/edu/ie3/datamodel/exceptions/ValidationException.java diff --git a/src/main/java/edu/ie3/datamodel/exceptions/InvalidEntityException.java b/src/main/java/edu/ie3/datamodel/exceptions/InvalidEntityException.java index 67bed2ce8..3a3df487d 100644 --- a/src/main/java/edu/ie3/datamodel/exceptions/InvalidEntityException.java +++ b/src/main/java/edu/ie3/datamodel/exceptions/InvalidEntityException.java @@ -8,8 +8,13 @@ import edu.ie3.datamodel.models.UniqueEntity; /** Is thrown, when a checked entity is illegal and thus not usable */ -public class InvalidEntityException extends RuntimeException { +public class InvalidEntityException extends ValidationException { public InvalidEntityException(String faultDescription, UniqueEntity invalidEntity) { super("Entity is invalid because of: " + faultDescription + " [" + invalidEntity + "]"); } + + public InvalidEntityException( + String faultDescription, Throwable cause, UniqueEntity invalidEntity) { + super("Entity is invalid because of: " + faultDescription + " [" + invalidEntity + "]", cause); + } } diff --git a/src/main/java/edu/ie3/datamodel/exceptions/InvalidGridException.java b/src/main/java/edu/ie3/datamodel/exceptions/InvalidGridException.java index 2d7aa6beb..626e0955e 100644 --- a/src/main/java/edu/ie3/datamodel/exceptions/InvalidGridException.java +++ b/src/main/java/edu/ie3/datamodel/exceptions/InvalidGridException.java @@ -5,7 +5,7 @@ */ package edu.ie3.datamodel.exceptions; -public class InvalidGridException extends RuntimeException { +public class InvalidGridException extends ValidationException { public InvalidGridException(String message) { super(message); } diff --git a/src/main/java/edu/ie3/datamodel/exceptions/ValidationException.java b/src/main/java/edu/ie3/datamodel/exceptions/ValidationException.java new file mode 100644 index 000000000..a003999bf --- /dev/null +++ b/src/main/java/edu/ie3/datamodel/exceptions/ValidationException.java @@ -0,0 +1,16 @@ +/* + * © 2020. TU Dortmund University, + * Institute of Energy Systems, Energy Efficiency and Energy Economics, + * Research group Distribution grid planning and operation +*/ +package edu.ie3.datamodel.exceptions; + +public class ValidationException extends IllegalArgumentException { + public ValidationException(String s) { + super(s); + } + + public ValidationException(String message, Throwable cause) { + super(message, cause); + } +} From 4efa16050edb76ecd27f1eee3466c40f34b317e7 Mon Sep 17 00:00:00 2001 From: "Kittl, Chris" Date: Wed, 2 Sep 2020 09:12:36 +0200 Subject: [PATCH 017/598] Break down ValidationUtils - checking grid containers --- .../ie3/datamodel/utils/ValidationUtils.html | 2 +- .../io/source/csv/CsvDataSource.java | 2 +- .../input/container/GraphicElements.java | 2 +- .../models/input/container/GridContainer.java | 5 +- .../input/container/InputContainer.java | 2 +- .../input/container/RawGridElements.java | 5 +- .../input/container/SystemParticipants.java | 2 +- .../GridContainerValidationUtils.java | 254 ++++++++++++++++ .../{ => validation}/ValidationUtils.java | 287 +++--------------- .../ValidationUtilsTest.groovy | 7 +- 10 files changed, 303 insertions(+), 265 deletions(-) create mode 100644 src/main/java/edu/ie3/datamodel/utils/validation/GridContainerValidationUtils.java rename src/main/java/edu/ie3/datamodel/utils/{ => validation}/ValidationUtils.java (56%) rename src/test/groovy/edu/ie3/datamodel/utils/{ => validation}/ValidationUtilsTest.groovy (94%) diff --git a/docs/javadoc/edu/ie3/datamodel/utils/ValidationUtils.html b/docs/javadoc/edu/ie3/datamodel/utils/ValidationUtils.html index 3cbfe0ac1..7fa524e90 100644 --- a/docs/javadoc/edu/ie3/datamodel/utils/ValidationUtils.html +++ b/docs/javadoc/edu/ie3/datamodel/utils/ValidationUtils.html @@ -98,7 +98,7 @@

Class ValidationUtils

  • java.lang.Object
    • -
    • edu.ie3.datamodel.utils.ValidationUtils
    • +
    • edu.ie3.datamodel.utils.validation.ValidationUtils
  • diff --git a/src/main/java/edu/ie3/datamodel/io/source/csv/CsvDataSource.java b/src/main/java/edu/ie3/datamodel/io/source/csv/CsvDataSource.java index c7e04f494..68d3ae3b1 100644 --- a/src/main/java/edu/ie3/datamodel/io/source/csv/CsvDataSource.java +++ b/src/main/java/edu/ie3/datamodel/io/source/csv/CsvDataSource.java @@ -16,7 +16,7 @@ import edu.ie3.datamodel.models.input.AssetTypeInput; import edu.ie3.datamodel.models.input.NodeInput; import edu.ie3.datamodel.models.input.OperatorInput; -import edu.ie3.datamodel.utils.ValidationUtils; +import edu.ie3.datamodel.utils.validation.ValidationUtils; import edu.ie3.util.StringUtils; import java.io.BufferedReader; import java.io.IOException; diff --git a/src/main/java/edu/ie3/datamodel/models/input/container/GraphicElements.java b/src/main/java/edu/ie3/datamodel/models/input/container/GraphicElements.java index 3fc097a16..30a7b1c70 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/container/GraphicElements.java +++ b/src/main/java/edu/ie3/datamodel/models/input/container/GraphicElements.java @@ -9,7 +9,7 @@ import edu.ie3.datamodel.models.input.graphics.GraphicInput; import edu.ie3.datamodel.models.input.graphics.LineGraphicInput; import edu.ie3.datamodel.models.input.graphics.NodeGraphicInput; -import edu.ie3.datamodel.utils.ValidationUtils; +import edu.ie3.datamodel.utils.validation.ValidationUtils; import java.util.*; import java.util.stream.Collectors; diff --git a/src/main/java/edu/ie3/datamodel/models/input/container/GridContainer.java b/src/main/java/edu/ie3/datamodel/models/input/container/GridContainer.java index 7077838ef..86fb50ed1 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/container/GridContainer.java +++ b/src/main/java/edu/ie3/datamodel/models/input/container/GridContainer.java @@ -7,7 +7,7 @@ import edu.ie3.datamodel.exceptions.InvalidGridException; import edu.ie3.datamodel.models.input.InputEntity; -import edu.ie3.datamodel.utils.ValidationUtils; +import edu.ie3.datamodel.utils.validation.ValidationUtils; import java.util.*; public abstract class GridContainer implements InputContainer { @@ -56,7 +56,8 @@ public void validate() { + exceptionString); } - ValidationUtils.checkGrid(this); + /* TODO @ Niklas : Remove this call, as the user is meant to control, when and if the validation should take place */ + ValidationUtils.check(this); } /** diff --git a/src/main/java/edu/ie3/datamodel/models/input/container/InputContainer.java b/src/main/java/edu/ie3/datamodel/models/input/container/InputContainer.java index ad448ab06..e59278e24 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/container/InputContainer.java +++ b/src/main/java/edu/ie3/datamodel/models/input/container/InputContainer.java @@ -6,7 +6,7 @@ package edu.ie3.datamodel.models.input.container; import edu.ie3.datamodel.models.input.InputEntity; -import edu.ie3.datamodel.utils.ValidationUtils; +import edu.ie3.datamodel.utils.validation.ValidationUtils; import java.util.List; /** Represents an aggregation of different entities */ diff --git a/src/main/java/edu/ie3/datamodel/models/input/container/RawGridElements.java b/src/main/java/edu/ie3/datamodel/models/input/container/RawGridElements.java index 4d74ef517..049a62982 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/container/RawGridElements.java +++ b/src/main/java/edu/ie3/datamodel/models/input/container/RawGridElements.java @@ -10,7 +10,8 @@ import edu.ie3.datamodel.models.input.MeasurementUnitInput; import edu.ie3.datamodel.models.input.NodeInput; import edu.ie3.datamodel.models.input.connector.*; -import edu.ie3.datamodel.utils.ValidationUtils; +import edu.ie3.datamodel.utils.validation.GridContainerValidationUtils; +import edu.ie3.datamodel.utils.validation.ValidationUtils; import java.util.*; import java.util.stream.Collectors; @@ -161,7 +162,7 @@ public final List allEntitiesAsList() { @Override public void validate() { - ValidationUtils.checkRawGridElements(this); + GridContainerValidationUtils.checkRawGridElements(this); } /** @return unmodifiable ; of all three winding transformers in this grid */ diff --git a/src/main/java/edu/ie3/datamodel/models/input/container/SystemParticipants.java b/src/main/java/edu/ie3/datamodel/models/input/container/SystemParticipants.java index d823ba4bc..9ecf4f1a4 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/container/SystemParticipants.java +++ b/src/main/java/edu/ie3/datamodel/models/input/container/SystemParticipants.java @@ -7,7 +7,7 @@ import edu.ie3.datamodel.exceptions.InvalidGridException; import edu.ie3.datamodel.models.input.system.*; -import edu.ie3.datamodel.utils.ValidationUtils; +import edu.ie3.datamodel.utils.validation.ValidationUtils; import java.util.*; import java.util.stream.Collectors; diff --git a/src/main/java/edu/ie3/datamodel/utils/validation/GridContainerValidationUtils.java b/src/main/java/edu/ie3/datamodel/utils/validation/GridContainerValidationUtils.java new file mode 100644 index 000000000..4af36bc59 --- /dev/null +++ b/src/main/java/edu/ie3/datamodel/utils/validation/GridContainerValidationUtils.java @@ -0,0 +1,254 @@ +/* + * © 2020. TU Dortmund University, + * Institute of Energy Systems, Energy Efficiency and Energy Economics, + * Research group Distribution grid planning and operation +*/ +package edu.ie3.datamodel.utils.validation; + +import edu.ie3.datamodel.exceptions.InvalidEntityException; +import edu.ie3.datamodel.exceptions.InvalidGridException; +import edu.ie3.datamodel.models.input.AssetInput; +import edu.ie3.datamodel.models.input.MeasurementUnitInput; +import edu.ie3.datamodel.models.input.NodeInput; +import edu.ie3.datamodel.models.input.connector.ConnectorInput; +import edu.ie3.datamodel.models.input.connector.LineInput; +import edu.ie3.datamodel.models.input.connector.Transformer3WInput; +import edu.ie3.datamodel.models.input.container.GraphicElements; +import edu.ie3.datamodel.models.input.container.GridContainer; +import edu.ie3.datamodel.models.input.container.RawGridElements; +import edu.ie3.datamodel.models.input.container.SystemParticipants; +import edu.ie3.datamodel.models.input.system.SystemParticipantInput; +import edu.ie3.datamodel.utils.ContainerUtils; +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +public class GridContainerValidationUtils extends ValidationUtils { + + /** + * Checks a complete grid data container + * + * @param gridContainer Grid model to check + */ + public static void check(GridContainer gridContainer) { + checkRawGridElements(gridContainer.getRawGrid()); + checkSystemParticipants( + gridContainer.getSystemParticipants(), gridContainer.getRawGrid().getNodes()); + checkGraphicElements( + gridContainer.getGraphics(), + gridContainer.getRawGrid().getNodes(), + gridContainer.getRawGrid().getLines()); + } + + /** + * Checks the validity of given {@link RawGridElements}. The single elements are checked as well + * as the fact, that none of the assets is connected to a node, that is not in the set of nodes. + * + * @param rawGridElements Raw grid elements + * @throws InvalidGridException If something is wrong + */ + public static void checkRawGridElements(RawGridElements rawGridElements) { + checkNonNull(rawGridElements, "raw grid elements"); + + /* Checking nodes */ + Set nodes = rawGridElements.getNodes(); + nodes.forEach(ValidationUtils::checkNode); + + /* Checking lines */ + rawGridElements + .getLines() + .forEach( + line -> { + checkNodeAvailability(line, nodes); + checkLine(line); + }); + + /* Checking two winding transformers */ + rawGridElements + .getTransformer2Ws() + .forEach( + transformer -> { + checkNodeAvailability(transformer, nodes); + checkTransformer2W(transformer); + }); + + /* Checking three winding transformers */ + rawGridElements + .getTransformer3Ws() + .forEach( + transformer -> { + checkNodeAvailability(transformer, nodes); + checkTransformer3W(transformer); + }); + + /* Checking switches + * Because of the fact, that a transformer with switch gear in "upstream" direction has it's corresponding node in + * upper grid connected to a switch, instead of to the transformer directly: Collect all nodes at the end of the + * upstream switch chain and add them to the set of allowed nodes */ + HashSet validSwitchNodes = new HashSet<>(nodes); + validSwitchNodes.addAll( + Stream.of(rawGridElements.getTransformer2Ws(), rawGridElements.getTransformer2Ws()) + .flatMap(Set::stream) + .parallel() + .map( + transformer -> + ContainerUtils.traverseAlongSwitchChain(transformer.getNodeA(), rawGridElements) + .getLast()) + .collect(Collectors.toList())); + + rawGridElements + .getSwitches() + .forEach( + switcher -> { + checkNodeAvailability(switcher, validSwitchNodes); + checkSwitch(switcher); + }); + + /* Checking measurement units */ + rawGridElements + .getMeasurementUnits() + .forEach( + measurement -> { + checkNodeAvailability(measurement, nodes); + checkMeasurementUnit(measurement); + }); + } + + /** + * Checks the validity of each and every system participant. Moreover, it checks, if the systems + * are connected to an node that is not in the provided set + * + * @param systemParticipants The system participants + * @param nodes Set of already known nodes + */ + public static void checkSystemParticipants( + SystemParticipants systemParticipants, Set nodes) { + checkNonNull(systemParticipants, "system participants"); + + systemParticipants.getBmPlants().forEach(entity -> checkNodeAvailability(entity, nodes)); + + systemParticipants.getChpPlants().forEach(entity -> checkNodeAvailability(entity, nodes)); + + /* TODO: Electric vehicle charging systems are currently only dummy implementation. if this has changed, the whole + * method can be aggregated */ + + systemParticipants.getFixedFeedIns().forEach(entity -> checkNodeAvailability(entity, nodes)); + + systemParticipants.getHeatPumps().forEach(entity -> checkNodeAvailability(entity, nodes)); + + systemParticipants.getLoads().forEach(entity -> checkNodeAvailability(entity, nodes)); + + systemParticipants.getPvPlants().forEach(entity -> checkNodeAvailability(entity, nodes)); + + systemParticipants.getStorages().forEach(entity -> checkNodeAvailability(entity, nodes)); + + systemParticipants.getWecPlants().forEach(entity -> checkNodeAvailability(entity, nodes)); + } + + /** + * Checks the given graphic elements for validity + * + * @param graphicElements Elements to check + * @param nodes Already known and checked nodes + * @param lines Already known and checked lines + */ + public static void checkGraphicElements( + GraphicElements graphicElements, Set nodes, Set lines) { + checkNonNull(graphicElements, "graphic elements"); + + graphicElements + .getNodeGraphics() + .forEach( + graphic -> { + if (!nodes.contains(graphic.getNode())) + throw new InvalidEntityException( + "The node graphic with uuid '" + + graphic.getUuid() + + "' refers to node with uuid '" + + graphic.getNode().getUuid() + + "', that is not among the provided ones.", + graphic); + }); + + graphicElements + .getLineGraphics() + .forEach( + graphic -> { + if (!lines.contains(graphic.getLine())) + throw new InvalidEntityException( + "The line graphic with uuid '" + + graphic.getUuid() + + "' refers to line with uuid '" + + graphic.getLine().getUuid() + + "', that is not among the provided ones.", + graphic); + }); + } + + /** + * Checks, if the nodes of the {@link ConnectorInput} are in the collection of provided, already + * determined nodes + * + * @param connector Connector to examine + * @param nodes Permissible, already known nodes + */ + private static void checkNodeAvailability(ConnectorInput connector, Collection nodes) { + if (!nodes.contains(connector.getNodeA()) || !nodes.contains(connector.getNodeB())) + throw getMissingNodeException(connector); + } + + /** + * Checks, if the nodes of the {@link Transformer3WInput} are in the collection of provided, + * already determined nodes + * + * @param transformer Transformer to examine + * @param nodes Permissible, already known nodes + */ + private static void checkNodeAvailability( + Transformer3WInput transformer, Collection nodes) { + if (!nodes.contains(transformer.getNodeA()) + || !nodes.contains(transformer.getNodeB()) + || !nodes.contains(transformer.getNodeC())) throw getMissingNodeException(transformer); + } + + /** + * Checks, if the node of the {@link SystemParticipantInput} are in the collection of provided, + * already determined nodes + * + * @param participant Connector to examine + * @param nodes Permissible, already known nodes + */ + private static void checkNodeAvailability( + SystemParticipantInput participant, Collection nodes) { + if (!nodes.contains(participant.getNode())) throw getMissingNodeException(participant); + } + + /** + * Checks, if the node of the {@link MeasurementUnitInput} are in the collection of provided, + * already determined nodes + * + * @param measurementUnit Connector to examine + * @param nodes Permissible, already known nodes + */ + private static void checkNodeAvailability( + MeasurementUnitInput measurementUnit, Collection nodes) { + if (!nodes.contains(measurementUnit.getNode())) throw getMissingNodeException(measurementUnit); + } + + /** + * Builds an exception, that announces, that the given input is connected to a node, that is not + * in the set of nodes provided. + * + * @param input Input model + * @return Exception for a missing node + */ + private static InvalidGridException getMissingNodeException(AssetInput input) { + return new InvalidGridException( + input.getClass().getSimpleName() + + " " + + input + + " is connected to a node, that is not in the set of nodes."); + } +} diff --git a/src/main/java/edu/ie3/datamodel/utils/ValidationUtils.java b/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java similarity index 56% rename from src/main/java/edu/ie3/datamodel/utils/ValidationUtils.java rename to src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java index ad6b7b67b..1777b1913 100644 --- a/src/main/java/edu/ie3/datamodel/utils/ValidationUtils.java +++ b/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java @@ -3,204 +3,61 @@ * Institute of Energy Systems, Energy Efficiency and Energy Economics, * Research group Distribution grid planning and operation */ -package edu.ie3.datamodel.utils; +package edu.ie3.datamodel.utils.validation; -import edu.ie3.datamodel.exceptions.InvalidEntityException; -import edu.ie3.datamodel.exceptions.InvalidGridException; -import edu.ie3.datamodel.exceptions.UnsafeEntityException; -import edu.ie3.datamodel.exceptions.VoltageLevelException; +import edu.ie3.datamodel.exceptions.*; import edu.ie3.datamodel.models.UniqueEntity; -import edu.ie3.datamodel.models.input.AssetInput; import edu.ie3.datamodel.models.input.MeasurementUnitInput; import edu.ie3.datamodel.models.input.NodeInput; import edu.ie3.datamodel.models.input.connector.*; import edu.ie3.datamodel.models.input.connector.type.LineTypeInput; import edu.ie3.datamodel.models.input.connector.type.Transformer2WTypeInput; import edu.ie3.datamodel.models.input.connector.type.Transformer3WTypeInput; -import edu.ie3.datamodel.models.input.container.GraphicElements; import edu.ie3.datamodel.models.input.container.GridContainer; -import edu.ie3.datamodel.models.input.container.RawGridElements; -import edu.ie3.datamodel.models.input.container.SystemParticipants; -import edu.ie3.datamodel.models.input.system.SystemParticipantInput; import edu.ie3.datamodel.models.voltagelevels.VoltageLevel; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; import java.util.function.Predicate; import java.util.stream.Collectors; -import java.util.stream.Stream; import javax.measure.Quantity; - /** Basic Sanity validation tools for entities */ public class ValidationUtils { /** Private Constructor as this class is not meant to be instantiated */ - private ValidationUtils() { + protected ValidationUtils() { throw new IllegalStateException("Don't try and instantiate a Utility class."); } /** - * Checks a complete grid data container - * - * @param gridContainer Grid model to check - */ - public static void checkGrid(GridContainer gridContainer) { - checkRawGridElements(gridContainer.getRawGrid()); - checkSystemParticipants( - gridContainer.getSystemParticipants(), gridContainer.getRawGrid().getNodes()); - checkGraphicElements( - gridContainer.getGraphics(), - gridContainer.getRawGrid().getNodes(), - gridContainer.getRawGrid().getLines()); - } - - /** - * Checks the validity of given {@link RawGridElements}. The single elements are checked as well - * as the fact, that none of the assets is connected to a node, that is not in the set of nodes. - * - * @param rawGridElements Raw grid elements - * @throws InvalidGridException If something is wrong - */ - public static void checkRawGridElements(RawGridElements rawGridElements) { - if (rawGridElements == null) - throw new NullPointerException("Expected raw grid elements, but got nothing. :-("); - - /* Checking nodes */ - Set nodes = rawGridElements.getNodes(); - nodes.forEach(ValidationUtils::checkNode); - - /* Checking lines */ - rawGridElements - .getLines() - .forEach( - line -> { - checkNodeAvailability(line, nodes); - checkLine(line); - }); - - /* Checking two winding transformers */ - rawGridElements - .getTransformer2Ws() - .forEach( - transformer -> { - checkNodeAvailability(transformer, nodes); - checkTransformer2W(transformer); - }); - - /* Checking three winding transformers */ - rawGridElements - .getTransformer3Ws() - .forEach( - transformer -> { - checkNodeAvailability(transformer, nodes); - checkTransformer3W(transformer); - }); - - /* Checking switches - * Because of the fact, that a transformer with switch gear in "upstream" direction has it's corresponding node in - * upper grid connected to a switch, instead of to the transformer directly: Collect all nodes at the end of the - * upstream switch chain and add them to the set of allowed nodes */ - HashSet validSwitchNodes = new HashSet<>(nodes); - validSwitchNodes.addAll( - Stream.of(rawGridElements.getTransformer2Ws(), rawGridElements.getTransformer2Ws()) - .flatMap(Set::stream) - .parallel() - .map( - transformer -> - ContainerUtils.traverseAlongSwitchChain(transformer.getNodeA(), rawGridElements) - .getLast()) - .collect(Collectors.toList())); - - rawGridElements - .getSwitches() - .forEach( - switcher -> { - checkNodeAvailability(switcher, validSwitchNodes); - checkSwitch(switcher); - }); - - /* Checking measurement units */ - rawGridElements - .getMeasurementUnits() - .forEach( - measurement -> { - checkNodeAvailability(measurement, nodes); - checkMeasurementUnit(measurement); - }); - } - - /** - * Checks the validity of each and every system participant. Moreover, it checks, if the systems - * are connected to an node that is not in the provided set + * This is a "distribution" method, that forwards the check request to specific implementations to + * fulfill the checking task, based on the class of the given object. If an not yet know class is + * handed in, a {@link ValidationException} is thrown. * - * @param systemParticipants The system participants - * @param nodes Set of already known nodes + * @param obj Object to check */ - public static void checkSystemParticipants( - SystemParticipants systemParticipants, Set nodes) { - if (systemParticipants == null) - throw new NullPointerException("Expected system participants, but got nothing. :-("); - - systemParticipants.getBmPlants().forEach(entity -> checkNodeAvailability(entity, nodes)); - - systemParticipants.getChpPlants().forEach(entity -> checkNodeAvailability(entity, nodes)); - - /* TODO: Electric vehicle charging systems are currently only dummy implementation. if this has changed, the whole - * method can be aggregated */ - - systemParticipants.getFixedFeedIns().forEach(entity -> checkNodeAvailability(entity, nodes)); - - systemParticipants.getHeatPumps().forEach(entity -> checkNodeAvailability(entity, nodes)); - - systemParticipants.getLoads().forEach(entity -> checkNodeAvailability(entity, nodes)); - - systemParticipants.getPvPlants().forEach(entity -> checkNodeAvailability(entity, nodes)); - - systemParticipants.getStorages().forEach(entity -> checkNodeAvailability(entity, nodes)); - - systemParticipants.getWecPlants().forEach(entity -> checkNodeAvailability(entity, nodes)); + public static void check(Object obj) { + if (GridContainer.class.isAssignableFrom(obj.getClass())) { + GridContainerValidationUtils.check((GridContainer) obj); + } else { + throw new ValidationException( + "Cannot validate object of class '" + + obj.getClass().getSimpleName() + + "', as no routine is implemented."); + } } /** - * Checks the given graphic elements for validity + * Checks, if the given object is null. If so, an {@link InvalidEntityException} is thrown. * - * @param graphicElements Elements to check - * @param nodes Already known and checked nodes - * @param lines Already known and checked lines + * @param obj Object to check + * @param expectedDescription Further description, of what has been expected. */ - public static void checkGraphicElements( - GraphicElements graphicElements, Set nodes, Set lines) { - if (graphicElements == null) - throw new NullPointerException("Expected graphic elements, but got nothing. :-("); - - graphicElements - .getNodeGraphics() - .forEach( - graphic -> { - if (!nodes.contains(graphic.getNode())) - throw new InvalidEntityException( - "The node graphic with uuid '" - + graphic.getUuid() - + "' refers to node with uuid '" - + graphic.getNode().getUuid() - + "', that is not among the provided ones.", - graphic); - }); - - graphicElements - .getLineGraphics() - .forEach( - graphic -> { - if (!lines.contains(graphic.getLine())) - throw new InvalidEntityException( - "The line graphic with uuid '" - + graphic.getUuid() - + "' refers to line with uuid '" - + graphic.getLine().getUuid() - + "', that is not among the provided ones.", - graphic); - }); + protected static void checkNonNull(Object obj, String expectedDescription) { + if (obj == null) + throw new ValidationException( + "Expected " + expectedDescription + ", but got nothing. :-(", new NullPointerException()); } /** @@ -212,7 +69,7 @@ public static void checkGraphicElements( * @param node Node to validate */ public static void checkNode(NodeInput node) { - if (node == null) throw new NullPointerException("Expected a node, but got nothing. :-("); + checkNonNull(node, "a node"); try { checkVoltageLevel(node.getVoltLvl()); } catch (VoltageLevelException e) { @@ -232,8 +89,7 @@ public static void checkNode(NodeInput node) { * @throws VoltageLevelException If nominal voltage is not apparent or not a positive value */ private static void checkVoltageLevel(VoltageLevel voltageLevel) throws VoltageLevelException { - if (voltageLevel == null) - throw new NullPointerException("Expected a voltage level, but got nothing. :-("); + checkNonNull(voltageLevel, "a voltage level"); if (voltageLevel.getNominalVoltage() == null) throw new VoltageLevelException( "The nominal voltage of voltage level " + voltageLevel + " is null"); @@ -250,62 +106,11 @@ private static void checkVoltageLevel(VoltageLevel voltageLevel) throws VoltageL * @param connector Connector to validate */ public static void checkConnector(ConnectorInput connector) { - if (connector == null) - throw new NullPointerException("Expected a connector, but got nothing. :-("); + checkNonNull(connector, "a connector"); if (connector.getNodeA() == null || connector.getNodeB() == null) throw new InvalidEntityException("at least one node of this connector is null ", connector); } - /** - * Checks, if the nodes of the {@link ConnectorInput} are in the collection of provided, already - * determined nodes - * - * @param connector Connector to examine - * @param nodes Permissible, already known nodes - */ - private static void checkNodeAvailability(ConnectorInput connector, Collection nodes) { - if (!nodes.contains(connector.getNodeA()) || !nodes.contains(connector.getNodeB())) - throw getMissingNodeException(connector); - } - - /** - * Checks, if the nodes of the {@link Transformer3WInput} are in the collection of provided, - * already determined nodes - * - * @param transformer Transformer to examine - * @param nodes Permissible, already known nodes - */ - private static void checkNodeAvailability( - Transformer3WInput transformer, Collection nodes) { - if (!nodes.contains(transformer.getNodeA()) - || !nodes.contains(transformer.getNodeB()) - || !nodes.contains(transformer.getNodeC())) throw getMissingNodeException(transformer); - } - - /** - * Checks, if the node of the {@link SystemParticipantInput} are in the collection of provided, - * already determined nodes - * - * @param participant Connector to examine - * @param nodes Permissible, already known nodes - */ - private static void checkNodeAvailability( - SystemParticipantInput participant, Collection nodes) { - if (!nodes.contains(participant.getNode())) throw getMissingNodeException(participant); - } - - /** - * Checks, if the node of the {@link MeasurementUnitInput} are in the collection of provided, - * already determined nodes - * - * @param measurementUnit Connector to examine - * @param nodes Permissible, already known nodes - */ - private static void checkNodeAvailability( - MeasurementUnitInput measurementUnit, Collection nodes) { - if (!nodes.contains(measurementUnit.getNode())) throw getMissingNodeException(measurementUnit); - } - /** * Validates a line if:
    * - it is not null
    @@ -317,7 +122,7 @@ private static void checkNodeAvailability( * @param line Line to validate */ public static void checkLine(LineInput line) { - if (line == null) throw new NullPointerException("Expected a line, but got nothing. :-("); + checkNonNull(line, "a line"); checkConnector(line); checkLineType(line.getType()); if (line.getNodeA().getSubnet() != line.getNodeB().getSubnet()) @@ -334,8 +139,7 @@ public static void checkLine(LineInput line) { * @param lineType Line type to validate */ public static void checkLineType(LineTypeInput lineType) { - if (lineType == null) - throw new NullPointerException("Expected a line type, but got nothing. :-("); + checkNonNull(lineType, "a line type"); detectNegativeQuantities(new Quantity[] {lineType.getB(), lineType.getG()}, lineType); detectZeroOrNegativeQuantities( @@ -356,8 +160,7 @@ public static void checkLineType(LineTypeInput lineType) { * @param trafo Transformer to validate */ public static void checkTransformer2W(Transformer2WInput trafo) { - if (trafo == null) - throw new NullPointerException("Expected a two winding transformer, but got nothing. :-("); + checkNonNull(trafo, "a two winding transformer"); checkConnector(trafo); checkTransformer2WType(trafo.getType()); } @@ -370,9 +173,7 @@ public static void checkTransformer2W(Transformer2WInput trafo) { * @param trafoType Transformer type to validate */ public static void checkTransformer2WType(Transformer2WTypeInput trafoType) { - if (trafoType == null) - throw new NullPointerException( - "Expected a two winding transformer type, but got nothing. :-("); + checkNonNull(trafoType, "a two winding transformer type"); if ((trafoType.getsRated() == null) || (trafoType.getvRatedA() == null) || (trafoType.getvRatedB() == null) @@ -408,8 +209,7 @@ public static void checkTransformer2WType(Transformer2WTypeInput trafoType) { * @param trafo Transformer to validate */ public static void checkTransformer3W(Transformer3WInput trafo) { - if (trafo == null) - throw new NullPointerException("Expected a three winding transformer, but got nothing. :-("); + checkNonNull(trafo, "a three winding transformer"); checkConnector(trafo); if (trafo.getNodeC() == null) throw new InvalidEntityException("at least one node of this connector is null", trafo); @@ -424,9 +224,7 @@ public static void checkTransformer3W(Transformer3WInput trafo) { * @param trafoType Transformer type to validate */ public static void checkTransformer3WType(Transformer3WTypeInput trafoType) { - if (trafoType == null) - throw new NullPointerException( - "Expected a three winding transformer type, but got nothing. :-("); + checkNonNull(trafoType, "a three winding transformer type"); if ((trafoType.getsRatedA() == null) || (trafoType.getsRatedB() == null) || (trafoType.getsRatedC() == null) @@ -465,8 +263,7 @@ public static void checkTransformer3WType(Transformer3WTypeInput trafoType) { * @param measurementUnit Measurement unit to validate */ public static void checkMeasurementUnit(MeasurementUnitInput measurementUnit) { - if (measurementUnit == null) - throw new NullPointerException("Expected a measurement unit, but got nothing. :-("); + checkNonNull(measurementUnit, "a measurement unit"); if (measurementUnit.getNode() == null) throw new InvalidEntityException("node is null", measurementUnit); } @@ -479,8 +276,7 @@ public static void checkMeasurementUnit(MeasurementUnitInput measurementUnit) { * @param switchInput Switch to validate */ public static void checkSwitch(SwitchInput switchInput) { - if (switchInput == null) - throw new NullPointerException("Expected a switch, but got nothing. :-("); + checkNonNull(switchInput, "a switch"); checkConnector(switchInput); if (switchInput.getNodeA().getVoltLvl() != switchInput.getNodeB().getVoltLvl()) throw new InvalidEntityException( @@ -490,21 +286,6 @@ public static void checkSwitch(SwitchInput switchInput) { * grid, whilst the "real" upper node is within the upper grid */ } - /** - * Builds an exception, that announces, that the given input is connected to a node, that is not - * in the set of nodes provided. - * - * @param input Input model - * @return Exception for a missing node - */ - private static InvalidGridException getMissingNodeException(AssetInput input) { - return new InvalidGridException( - input.getClass().getSimpleName() - + " " - + input - + " is connected to a node, that is not in the set of nodes."); - } - /** * Goes through the provided quantities and reports those, that have negative value via synoptic * {@link UnsafeEntityException} diff --git a/src/test/groovy/edu/ie3/datamodel/utils/ValidationUtilsTest.groovy b/src/test/groovy/edu/ie3/datamodel/utils/validation/ValidationUtilsTest.groovy similarity index 94% rename from src/test/groovy/edu/ie3/datamodel/utils/ValidationUtilsTest.groovy rename to src/test/groovy/edu/ie3/datamodel/utils/validation/ValidationUtilsTest.groovy index e7aaafaa2..e45c8a0ed 100644 --- a/src/test/groovy/edu/ie3/datamodel/utils/ValidationUtilsTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/utils/validation/ValidationUtilsTest.groovy @@ -3,9 +3,9 @@ * Institute of Energy Systems, Energy Efficiency and Energy Economics, * Research group Distribution grid planning and operation */ -package edu.ie3.datamodel.utils +package edu.ie3.datamodel.utils.validation -import edu.ie3.datamodel.exceptions.InvalidEntityException +import edu.ie3.datamodel.exceptions.ValidationException import edu.ie3.datamodel.models.input.connector.type.LineTypeInput import static edu.ie3.util.quantities.dep.PowerSystemUnits.PU @@ -89,7 +89,7 @@ class ValidationUtilsTest extends Specification { ValidationUtils.checkLineType(null) then: - NullPointerException ex = thrown() + ValidationException ex = thrown() ex.message == "Expected a line type, but got nothing. :-(" } @@ -99,5 +99,6 @@ class ValidationUtilsTest extends Specification { then: NullPointerException ex = thrown() + /* TODO @ Niklas: This test doesn't do anything. Please add a test logic. */ } } From cb48a1b697ba26e708e4da422483facad3c11569 Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Wed, 2 Sep 2020 09:19:13 +0200 Subject: [PATCH 018/598] minor style changes --- .../factory/input/participant/EvcsInputFactoryTest.groovy | 4 ++-- .../type/chargingpoint/ChargingPointTypeUtilsTest.groovy | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactoryTest.groovy b/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactoryTest.groovy index b46248b8b..3e987650a 100644 --- a/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactoryTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/io/factory/input/participant/EvcsInputFactoryTest.groovy @@ -5,6 +5,8 @@ */ package edu.ie3.datamodel.io.factory.input.participant +import static edu.ie3.util.quantities.dep.PowerSystemUnits.PU + import edu.ie3.datamodel.io.factory.input.NodeAssetInputEntityData import edu.ie3.datamodel.models.input.NodeInput import edu.ie3.datamodel.models.input.OperatorInput @@ -18,8 +20,6 @@ import tec.uom.se.quantity.Quantities import javax.measure.quantity.Dimensionless import java.time.ZonedDateTime -import static edu.ie3.util.quantities.dep.PowerSystemUnits.PU - /** * //ToDo: Class Description * diff --git a/src/test/groovy/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtilsTest.groovy b/src/test/groovy/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtilsTest.groovy index 4ccc29a9d..4213c46fc 100644 --- a/src/test/groovy/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtilsTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtilsTest.groovy @@ -5,15 +5,15 @@ */ package edu.ie3.datamodel.models.input.system.type.chargingpoint +import static edu.ie3.util.quantities.dep.PowerSystemUnits.KILOVOLTAMPERE +import static edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointTypeUtils.* + import edu.ie3.datamodel.exceptions.ChargingPointTypeException import edu.ie3.datamodel.models.ElectricCurrentType -import static edu.ie3.util.quantities.dep.PowerSystemUnits.KILOVOLTAMPERE -import static edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointTypeUtils.* import spock.lang.Specification import tec.uom.se.quantity.Quantities - /** * //ToDo: Class Description * From a45bfaf18e0433c0bc6bf3b078deec4196a19a08 Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Wed, 2 Sep 2020 09:21:16 +0200 Subject: [PATCH 019/598] removed bla in CsvFileSinkTest --- .../groovy/edu/ie3/datamodel/io/sink/CsvFileSinkTest.groovy | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/test/groovy/edu/ie3/datamodel/io/sink/CsvFileSinkTest.groovy b/src/test/groovy/edu/ie3/datamodel/io/sink/CsvFileSinkTest.groovy index 5e107c2c1..90401b93f 100644 --- a/src/test/groovy/edu/ie3/datamodel/io/sink/CsvFileSinkTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/io/sink/CsvFileSinkTest.groovy @@ -126,8 +126,7 @@ class CsvFileSinkTest extends Specification implements TimeSeriesTestData { ] when: - def bla = csvFileSink.csvEntityFieldData(input) - println(bla) + csvFileSink.csvEntityFieldData(input) then: def exception = thrown(IllegalStateException) From 771730cfaf815b43950eccc3ef9ecdba6e70ddf3 Mon Sep 17 00:00:00 2001 From: "Kittl, Chris" Date: Wed, 2 Sep 2020 09:18:14 +0200 Subject: [PATCH 020/598] Break down ValidationUtils - checking nodes --- .../GridContainerValidationUtils.java | 2 +- .../utils/validation/NodeValidationUtils.java | 52 +++++++++++++++++++ .../utils/validation/ValidationUtils.java | 43 ++------------- 3 files changed, 57 insertions(+), 40 deletions(-) create mode 100644 src/main/java/edu/ie3/datamodel/utils/validation/NodeValidationUtils.java diff --git a/src/main/java/edu/ie3/datamodel/utils/validation/GridContainerValidationUtils.java b/src/main/java/edu/ie3/datamodel/utils/validation/GridContainerValidationUtils.java index 4af36bc59..bcb7ac32e 100644 --- a/src/main/java/edu/ie3/datamodel/utils/validation/GridContainerValidationUtils.java +++ b/src/main/java/edu/ie3/datamodel/utils/validation/GridContainerValidationUtils.java @@ -54,7 +54,7 @@ public static void checkRawGridElements(RawGridElements rawGridElements) { /* Checking nodes */ Set nodes = rawGridElements.getNodes(); - nodes.forEach(ValidationUtils::checkNode); + nodes.forEach(NodeValidationUtils::check); /* Checking lines */ rawGridElements diff --git a/src/main/java/edu/ie3/datamodel/utils/validation/NodeValidationUtils.java b/src/main/java/edu/ie3/datamodel/utils/validation/NodeValidationUtils.java new file mode 100644 index 000000000..301bb3a2e --- /dev/null +++ b/src/main/java/edu/ie3/datamodel/utils/validation/NodeValidationUtils.java @@ -0,0 +1,52 @@ +/* + * © 2020. TU Dortmund University, + * Institute of Energy Systems, Energy Efficiency and Energy Economics, + * Research group Distribution grid planning and operation +*/ +package edu.ie3.datamodel.utils.validation; + +import edu.ie3.datamodel.exceptions.InvalidEntityException; +import edu.ie3.datamodel.exceptions.UnsafeEntityException; +import edu.ie3.datamodel.exceptions.VoltageLevelException; +import edu.ie3.datamodel.models.input.NodeInput; +import edu.ie3.datamodel.models.voltagelevels.VoltageLevel; + +public class NodeValidationUtils extends ValidationUtils { + /** + * Validates a node if:
    + * - it is not null
    + * - subnet is not null
    + * - vRated and vTarget are neither null nor 0 + * + * @param node Node to validate + */ + public static void check(NodeInput node) { + checkNonNull(node, "a node"); + try { + checkVoltageLevel(node.getVoltLvl()); + } catch (VoltageLevelException e) { + throw new InvalidEntityException("Element has invalid voltage level", node); + } + + if (node.getvTarget() == null) + throw new InvalidEntityException("vRated or vTarget is null", node); + if (node.getvTarget().getValue().doubleValue() <= 0d) + throw new UnsafeEntityException("vTarget is not a positive value", node); + } + + /** + * Validates a voltage level + * + * @param voltageLevel Element to validate + * @throws VoltageLevelException If nominal voltage is not apparent or not a positive value + */ + private static void checkVoltageLevel(VoltageLevel voltageLevel) throws VoltageLevelException { + checkNonNull(voltageLevel, "a voltage level"); + if (voltageLevel.getNominalVoltage() == null) + throw new VoltageLevelException( + "The nominal voltage of voltage level " + voltageLevel + " is null"); + if (voltageLevel.getNominalVoltage().getValue().doubleValue() <= 0d) + throw new VoltageLevelException( + "The nominal voltage of voltage level " + voltageLevel + " must be positive!"); + } +} diff --git a/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java b/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java index 1777b1913..5081c140d 100644 --- a/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java +++ b/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java @@ -14,7 +14,6 @@ import edu.ie3.datamodel.models.input.connector.type.Transformer2WTypeInput; import edu.ie3.datamodel.models.input.connector.type.Transformer3WTypeInput; import edu.ie3.datamodel.models.input.container.GridContainer; -import edu.ie3.datamodel.models.voltagelevels.VoltageLevel; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; @@ -35,11 +34,15 @@ protected ValidationUtils() { * fulfill the checking task, based on the class of the given object. If an not yet know class is * handed in, a {@link ValidationException} is thrown. * + * TODO @ Niklas: Fill with other method calls, as collection of validation utils increases + * * @param obj Object to check */ public static void check(Object obj) { if (GridContainer.class.isAssignableFrom(obj.getClass())) { GridContainerValidationUtils.check((GridContainer) obj); + } else if (NodeInput.class.isAssignableFrom(obj.getClass())) { + NodeValidationUtils.check((NodeInput) obj); } else { throw new ValidationException( "Cannot validate object of class '" @@ -60,44 +63,6 @@ protected static void checkNonNull(Object obj, String expectedDescription) { "Expected " + expectedDescription + ", but got nothing. :-(", new NullPointerException()); } - /** - * Validates a node if:
    - * - it is not null
    - * - subnet is not null
    - * - vRated and vTarget are neither null nor 0 - * - * @param node Node to validate - */ - public static void checkNode(NodeInput node) { - checkNonNull(node, "a node"); - try { - checkVoltageLevel(node.getVoltLvl()); - } catch (VoltageLevelException e) { - throw new InvalidEntityException("Element has invalid voltage level", node); - } - - if (node.getvTarget() == null) - throw new InvalidEntityException("vRated or vTarget is null", node); - if (node.getvTarget().getValue().doubleValue() <= 0d) - throw new UnsafeEntityException("vTarget is not a positive value", node); - } - - /** - * Validates a voltage level - * - * @param voltageLevel Element to validate - * @throws VoltageLevelException If nominal voltage is not apparent or not a positive value - */ - private static void checkVoltageLevel(VoltageLevel voltageLevel) throws VoltageLevelException { - checkNonNull(voltageLevel, "a voltage level"); - if (voltageLevel.getNominalVoltage() == null) - throw new VoltageLevelException( - "The nominal voltage of voltage level " + voltageLevel + " is null"); - if (voltageLevel.getNominalVoltage().getValue().doubleValue() <= 0d) - throw new VoltageLevelException( - "The nominal voltage of voltage level " + voltageLevel + " must be positive!"); - } - /** * Validates a connector if:
    * - it is not null
    From 54948fcba5509d5e6422e3be623b7a76e0705b8b Mon Sep 17 00:00:00 2001 From: "Kittl, Chris" Date: Wed, 2 Sep 2020 09:40:04 +0200 Subject: [PATCH 021/598] Break down ValidationUtils - checking nodes --- .../validation/ConnectorValidationUtils.java | 187 ++++++++++++++++++ .../GridContainerValidationUtils.java | 8 +- .../utils/validation/ValidationUtils.java | 186 +---------------- .../validation/ValidationUtilsTest.groovy | 2 +- 4 files changed, 196 insertions(+), 187 deletions(-) create mode 100644 src/main/java/edu/ie3/datamodel/utils/validation/ConnectorValidationUtils.java diff --git a/src/main/java/edu/ie3/datamodel/utils/validation/ConnectorValidationUtils.java b/src/main/java/edu/ie3/datamodel/utils/validation/ConnectorValidationUtils.java new file mode 100644 index 000000000..25564b28d --- /dev/null +++ b/src/main/java/edu/ie3/datamodel/utils/validation/ConnectorValidationUtils.java @@ -0,0 +1,187 @@ +/* + * © 2020. TU Dortmund University, + * Institute of Energy Systems, Energy Efficiency and Energy Economics, + * Research group Distribution grid planning and operation +*/ +package edu.ie3.datamodel.utils.validation; + +import edu.ie3.datamodel.exceptions.InvalidEntityException; +import edu.ie3.datamodel.models.input.connector.*; +import edu.ie3.datamodel.models.input.connector.type.LineTypeInput; +import edu.ie3.datamodel.models.input.connector.type.Transformer2WTypeInput; +import edu.ie3.datamodel.models.input.connector.type.Transformer3WTypeInput; +import javax.measure.Quantity; + +public class ConnectorValidationUtils extends ValidationUtils { + /** + * Validates a connector if:
    + * - it is not null
    + * - both of its nodes are not null + * + * @param connector Connector to validate + */ + public static void check(ConnectorInput connector) { + checkNonNull(connector, "a connector"); + if (connector.getNodeA() == null || connector.getNodeB() == null) + throw new InvalidEntityException("at least one node of this connector is null ", connector); + + if (LineInput.class.isAssignableFrom(connector.getClass())) checkLine((LineInput) connector); + if (Transformer2WInput.class.isAssignableFrom(connector.getClass())) + checkTransformer2W((Transformer2WInput) connector); + if (Transformer3WInput.class.isAssignableFrom(connector.getClass())) + checkTransformer3W((Transformer3WInput) connector); + if (SwitchInput.class.isAssignableFrom(connector.getClass())) + checkSwitch((SwitchInput) connector); + } + + /** + * Validates a line if:
    + * - it is not null
    + * - line type is not null
    + * - {@link ConnectorValidationUtils#checkLineType(LineTypeInput)} confirms a valid type + * properties + * + * @param line Line to validate + */ + public static void checkLine(LineInput line) { + checkLineType(line.getType()); + if (line.getNodeA().getSubnet() != line.getNodeB().getSubnet()) + throw new InvalidEntityException("the line {} connects to different subnets", line); + if (line.getNodeA().getVoltLvl() != line.getNodeB().getVoltLvl()) + throw new InvalidEntityException("the line {} connects to different voltage levels", line); + } + + /** + * Validates a line type if:
    + * - it is not null
    + * - none of its values are null or 0
    + * + * @param lineType Line type to validate + */ + public static void checkLineType(LineTypeInput lineType) { + checkNonNull(lineType, "a line type"); + + detectNegativeQuantities(new Quantity[] {lineType.getB(), lineType.getG()}, lineType); + detectZeroOrNegativeQuantities( + new Quantity[] { + lineType.getvRated(), lineType.getiMax(), lineType.getX(), lineType.getR() + }, + lineType); + } + + /** + * Validates a transformer if:
    + * - it is not null
    + * - transformer type is not null
    + * - {@link ConnectorValidationUtils#checkTransformer2WType(Transformer2WTypeInput)} confirms a + * valid type properties + * + * @param trafo Transformer to validate + */ + public static void checkTransformer2W(Transformer2WInput trafo) { + checkTransformer2WType(trafo.getType()); + } + + /** + * Validates a transformer type if:
    + * - it is not null
    + * - none of its values are null or 0
    + * + * @param trafoType Transformer type to validate + */ + public static void checkTransformer2WType(Transformer2WTypeInput trafoType) { + checkNonNull(trafoType, "a two winding transformer type"); + if ((trafoType.getsRated() == null) + || (trafoType.getvRatedA() == null) + || (trafoType.getvRatedB() == null) + || (trafoType.getrSc() == null) + || (trafoType.getxSc() == null) + || (trafoType.getgM() == null) + || (trafoType.getbM() == null) + || (trafoType.getdV() == null) + || (trafoType.getdPhi() == null)) + throw new InvalidEntityException("at least one value of trafo2w type is null", trafoType); + + detectNegativeQuantities( + new Quantity[] {trafoType.getgM(), trafoType.getbM(), trafoType.getdPhi()}, trafoType); + detectZeroOrNegativeQuantities( + new Quantity[] { + trafoType.getsRated(), + trafoType.getvRatedA(), + trafoType.getvRatedB(), + trafoType.getxSc(), + trafoType.getdV() + }, + trafoType); + } + + /** + * Validates a transformer if:
    + * - it is not null
    + * - transformer type is not null
    + * - {@link ConnectorValidationUtils#checkTransformer3WType(Transformer3WTypeInput)} confirm a + * valid type + * + * @param trafo Transformer to validate + */ + public static void checkTransformer3W(Transformer3WInput trafo) { + if (trafo.getNodeC() == null) + throw new InvalidEntityException("at least one node of this connector is null", trafo); + checkTransformer3WType(trafo.getType()); + } + + /** + * Validates a transformer type if:
    + * - it is not null
    + * - none of its values are null or 0
    + * + * @param trafoType Transformer type to validate + */ + public static void checkTransformer3WType(Transformer3WTypeInput trafoType) { + checkNonNull(trafoType, "a three winding transformer type"); + if ((trafoType.getsRatedA() == null) + || (trafoType.getsRatedB() == null) + || (trafoType.getsRatedC() == null) + || (trafoType.getvRatedA() == null) + || (trafoType.getvRatedB() == null) + || (trafoType.getvRatedC() == null) + || (trafoType.getrScA() == null) + || (trafoType.getrScB() == null) + || (trafoType.getrScC() == null) + || (trafoType.getxScA() == null) + || (trafoType.getxScB() == null) + || (trafoType.getxScC() == null) + || (trafoType.getgM() == null) + || (trafoType.getbM() == null) + || (trafoType.getdV() == null) + || (trafoType.getdPhi() == null)) + throw new InvalidEntityException("at least one value of trafo3w type is null", trafoType); + + detectNegativeQuantities( + new Quantity[] {trafoType.getgM(), trafoType.getbM(), trafoType.getdPhi()}, trafoType); + detectZeroOrNegativeQuantities( + new Quantity[] { + trafoType.getsRatedA(), trafoType.getsRatedB(), trafoType.getsRatedC(), + trafoType.getvRatedA(), trafoType.getvRatedB(), trafoType.getvRatedC(), + trafoType.getxScA(), trafoType.getxScB(), trafoType.getxScC(), + trafoType.getdV() + }, + trafoType); + } + + /** + * Validates a measurement unit if:
    + * - it is not null
    + * - its node is not nul + * + * @param switchInput Switch to validate + */ + public static void checkSwitch(SwitchInput switchInput) { + if (switchInput.getNodeA().getVoltLvl() != switchInput.getNodeB().getVoltLvl()) + throw new InvalidEntityException( + "the switch {} connects to different voltage levels", switchInput); + /* Remark: Connecting two different "subnets" is fine, because as of our definition regarding a switchgear in + * "upstream" direction of a transformer, all the nodes, that hare within the switch chain, belong to the lower + * grid, whilst the "real" upper node is within the upper grid */ + } +} diff --git a/src/main/java/edu/ie3/datamodel/utils/validation/GridContainerValidationUtils.java b/src/main/java/edu/ie3/datamodel/utils/validation/GridContainerValidationUtils.java index bcb7ac32e..ab15081da 100644 --- a/src/main/java/edu/ie3/datamodel/utils/validation/GridContainerValidationUtils.java +++ b/src/main/java/edu/ie3/datamodel/utils/validation/GridContainerValidationUtils.java @@ -62,7 +62,7 @@ public static void checkRawGridElements(RawGridElements rawGridElements) { .forEach( line -> { checkNodeAvailability(line, nodes); - checkLine(line); + ConnectorValidationUtils.check(line); }); /* Checking two winding transformers */ @@ -71,7 +71,7 @@ public static void checkRawGridElements(RawGridElements rawGridElements) { .forEach( transformer -> { checkNodeAvailability(transformer, nodes); - checkTransformer2W(transformer); + ConnectorValidationUtils.check(transformer); }); /* Checking three winding transformers */ @@ -80,7 +80,7 @@ public static void checkRawGridElements(RawGridElements rawGridElements) { .forEach( transformer -> { checkNodeAvailability(transformer, nodes); - checkTransformer3W(transformer); + ConnectorValidationUtils.check(transformer); }); /* Checking switches @@ -103,7 +103,7 @@ public static void checkRawGridElements(RawGridElements rawGridElements) { .forEach( switcher -> { checkNodeAvailability(switcher, validSwitchNodes); - checkSwitch(switcher); + ConnectorValidationUtils.check(switcher); }); /* Checking measurement units */ diff --git a/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java b/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java index 5081c140d..546c659cd 100644 --- a/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java +++ b/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java @@ -10,9 +10,6 @@ import edu.ie3.datamodel.models.input.MeasurementUnitInput; import edu.ie3.datamodel.models.input.NodeInput; import edu.ie3.datamodel.models.input.connector.*; -import edu.ie3.datamodel.models.input.connector.type.LineTypeInput; -import edu.ie3.datamodel.models.input.connector.type.Transformer2WTypeInput; -import edu.ie3.datamodel.models.input.connector.type.Transformer3WTypeInput; import edu.ie3.datamodel.models.input.container.GridContainer; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @@ -34,7 +31,7 @@ protected ValidationUtils() { * fulfill the checking task, based on the class of the given object. If an not yet know class is * handed in, a {@link ValidationException} is thrown. * - * TODO @ Niklas: Fill with other method calls, as collection of validation utils increases + *

    TODO @ Niklas: Fill with other method calls, as collection of validation utils increases * * @param obj Object to check */ @@ -63,163 +60,6 @@ protected static void checkNonNull(Object obj, String expectedDescription) { "Expected " + expectedDescription + ", but got nothing. :-(", new NullPointerException()); } - /** - * Validates a connector if:
    - * - it is not null
    - * - both of its nodes are not null - * - * @param connector Connector to validate - */ - public static void checkConnector(ConnectorInput connector) { - checkNonNull(connector, "a connector"); - if (connector.getNodeA() == null || connector.getNodeB() == null) - throw new InvalidEntityException("at least one node of this connector is null ", connector); - } - - /** - * Validates a line if:
    - * - it is not null
    - * - line type is not null
    - * - {@link ValidationUtils#checkLineType(LineTypeInput)} and {@link - * ValidationUtils#checkConnector(ConnectorInput)} confirm a valid type and valid connector - * properties - * - * @param line Line to validate - */ - public static void checkLine(LineInput line) { - checkNonNull(line, "a line"); - checkConnector(line); - checkLineType(line.getType()); - if (line.getNodeA().getSubnet() != line.getNodeB().getSubnet()) - throw new InvalidEntityException("the line {} connects to different subnets", line); - if (line.getNodeA().getVoltLvl() != line.getNodeB().getVoltLvl()) - throw new InvalidEntityException("the line {} connects to different voltage levels", line); - } - - /** - * Validates a line type if:
    - * - it is not null
    - * - none of its values are null or 0
    - * - * @param lineType Line type to validate - */ - public static void checkLineType(LineTypeInput lineType) { - checkNonNull(lineType, "a line type"); - - detectNegativeQuantities(new Quantity[] {lineType.getB(), lineType.getG()}, lineType); - detectZeroOrNegativeQuantities( - new Quantity[] { - lineType.getvRated(), lineType.getiMax(), lineType.getX(), lineType.getR() - }, - lineType); - } - - /** - * Validates a transformer if:
    - * - it is not null
    - * - transformer type is not null
    - * - {@link ValidationUtils#checkTransformer2WType(Transformer2WTypeInput)} and {@link - * ValidationUtils#checkConnector(ConnectorInput)} confirm a valid type and valid connector - * properties - * - * @param trafo Transformer to validate - */ - public static void checkTransformer2W(Transformer2WInput trafo) { - checkNonNull(trafo, "a two winding transformer"); - checkConnector(trafo); - checkTransformer2WType(trafo.getType()); - } - - /** - * Validates a transformer type if:
    - * - it is not null
    - * - none of its values are null or 0
    - * - * @param trafoType Transformer type to validate - */ - public static void checkTransformer2WType(Transformer2WTypeInput trafoType) { - checkNonNull(trafoType, "a two winding transformer type"); - if ((trafoType.getsRated() == null) - || (trafoType.getvRatedA() == null) - || (trafoType.getvRatedB() == null) - || (trafoType.getrSc() == null) - || (trafoType.getxSc() == null) - || (trafoType.getgM() == null) - || (trafoType.getbM() == null) - || (trafoType.getdV() == null) - || (trafoType.getdPhi() == null)) - throw new InvalidEntityException("at least one value of trafo2w type is null", trafoType); - - detectNegativeQuantities( - new Quantity[] {trafoType.getgM(), trafoType.getbM(), trafoType.getdPhi()}, trafoType); - detectZeroOrNegativeQuantities( - new Quantity[] { - trafoType.getsRated(), - trafoType.getvRatedA(), - trafoType.getvRatedB(), - trafoType.getxSc(), - trafoType.getdV() - }, - trafoType); - } - - /** - * Validates a transformer if:
    - * - it is not null
    - * - transformer type is not null
    - * - {@link ValidationUtils#checkTransformer3WType(Transformer3WTypeInput)} and {@link - * ValidationUtils#checkConnector(ConnectorInput)} confirm a valid type and valid connector - * properties - * - * @param trafo Transformer to validate - */ - public static void checkTransformer3W(Transformer3WInput trafo) { - checkNonNull(trafo, "a three winding transformer"); - checkConnector(trafo); - if (trafo.getNodeC() == null) - throw new InvalidEntityException("at least one node of this connector is null", trafo); - checkTransformer3WType(trafo.getType()); - } - - /** - * Validates a transformer type if:
    - * - it is not null
    - * - none of its values are null or 0
    - * - * @param trafoType Transformer type to validate - */ - public static void checkTransformer3WType(Transformer3WTypeInput trafoType) { - checkNonNull(trafoType, "a three winding transformer type"); - if ((trafoType.getsRatedA() == null) - || (trafoType.getsRatedB() == null) - || (trafoType.getsRatedC() == null) - || (trafoType.getvRatedA() == null) - || (trafoType.getvRatedB() == null) - || (trafoType.getvRatedC() == null) - || (trafoType.getrScA() == null) - || (trafoType.getrScB() == null) - || (trafoType.getrScC() == null) - || (trafoType.getxScA() == null) - || (trafoType.getxScB() == null) - || (trafoType.getxScC() == null) - || (trafoType.getgM() == null) - || (trafoType.getbM() == null) - || (trafoType.getdV() == null) - || (trafoType.getdPhi() == null)) - throw new InvalidEntityException("at least one value of trafo3w type is null", trafoType); - - detectNegativeQuantities( - new Quantity[] {trafoType.getgM(), trafoType.getbM(), trafoType.getdPhi()}, trafoType); - detectZeroOrNegativeQuantities( - new Quantity[] { - trafoType.getsRatedA(), trafoType.getsRatedB(), trafoType.getsRatedC(), - trafoType.getvRatedA(), trafoType.getvRatedB(), trafoType.getvRatedC(), - trafoType.getxScA(), trafoType.getxScB(), trafoType.getxScC(), - trafoType.getdV() - }, - trafoType); - } - /** * Validates a measurement unit if:
    * - it is not null
    @@ -233,24 +73,6 @@ public static void checkMeasurementUnit(MeasurementUnitInput measurementUnit) { throw new InvalidEntityException("node is null", measurementUnit); } - /** - * Validates a measurement unit if:
    - * - it is not null
    - * - its node is not nul - * - * @param switchInput Switch to validate - */ - public static void checkSwitch(SwitchInput switchInput) { - checkNonNull(switchInput, "a switch"); - checkConnector(switchInput); - if (switchInput.getNodeA().getVoltLvl() != switchInput.getNodeB().getVoltLvl()) - throw new InvalidEntityException( - "the switch {} connects to different voltage levels", switchInput); - /* Remark: Connecting two different "subnets" is fine, because as of our definition regarding a switchgear in - * "upstream" direction of a transformer, all the nodes, that hare within the switch chain, belong to the lower - * grid, whilst the "real" upper node is within the upper grid */ - } - /** * Goes through the provided quantities and reports those, that have negative value via synoptic * {@link UnsafeEntityException} @@ -258,7 +80,7 @@ public static void checkSwitch(SwitchInput switchInput) { * @param quantities Array of quantities to check * @param entity Unique entity holding the malformed quantities */ - private static void detectNegativeQuantities(Quantity[] quantities, UniqueEntity entity) { + protected static void detectNegativeQuantities(Quantity[] quantities, UniqueEntity entity) { Predicate> predicate = quantity -> quantity.getValue().doubleValue() < 0; detectMalformedQuantities( quantities, entity, predicate, "The following quantities have to be zero or positive"); @@ -271,7 +93,7 @@ private static void detectNegativeQuantities(Quantity[] quantities, UniqueEnt * @param quantities Array of quantities to check * @param entity Unique entity holding the malformed quantities */ - private static void detectZeroOrNegativeQuantities( + protected static void detectZeroOrNegativeQuantities( Quantity[] quantities, UniqueEntity entity) { Predicate> predicate = quantity -> quantity.getValue().doubleValue() <= 0; detectMalformedQuantities( @@ -287,7 +109,7 @@ private static void detectZeroOrNegativeQuantities( * @param predicate Predicate to detect the malformed quantities * @param msg Message prefix to use for the exception message: [msg]: [malformedQuantities] */ - private static void detectMalformedQuantities( + protected static void detectMalformedQuantities( Quantity[] quantities, UniqueEntity entity, Predicate> predicate, String msg) { String malformedQuantities = Arrays.stream(quantities) diff --git a/src/test/groovy/edu/ie3/datamodel/utils/validation/ValidationUtilsTest.groovy b/src/test/groovy/edu/ie3/datamodel/utils/validation/ValidationUtilsTest.groovy index e45c8a0ed..c1ad1d59f 100644 --- a/src/test/groovy/edu/ie3/datamodel/utils/validation/ValidationUtilsTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/utils/validation/ValidationUtilsTest.groovy @@ -86,7 +86,7 @@ class ValidationUtilsTest extends Specification { def "The validation utils should thrown an null pointer exception if the provided type is null"() { when: - ValidationUtils.checkLineType(null) + ConnectorValidationUtils.checkLineType(null) then: ValidationException ex = thrown() From 3c7e7ce7bd2f28d1774029235730488ace63fede Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Wed, 2 Sep 2020 10:08:07 +0200 Subject: [PATCH 022/598] adapt wrong documentation --- docs/readthedocs/models/input/participant/evcs.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/readthedocs/models/input/participant/evcs.rst b/docs/readthedocs/models/input/participant/evcs.rst index e625eaf47..ed3e71bca 100644 --- a/docs/readthedocs/models/input/participant/evcs.rst +++ b/docs/readthedocs/models/input/participant/evcs.rst @@ -51,7 +51,7 @@ The actual model definition for charging point types looks as follows: +------------------------+---+-----+--------------------------------------------------------------------------------+ | sRated | kVA | Rated apparent power | +------------------------+---+-----+--------------------------------------------------------------------------------+ -| electricCurrentType | -- | Timely restriction of operation | +| electricCurrentType | -- | Electric current type | +------------------------+---+-----+--------------------------------------------------------------------------------+ |synonymousIds | -- | Set of alternative human readable identifiers | +------------------------+---------+--------------------------------------------------------------------------------+ From f1d6ee1140eee158c2cf0af09399cca913273f6f Mon Sep 17 00:00:00 2001 From: Niklas Steffan Date: Wed, 2 Sep 2020 18:48:05 +0200 Subject: [PATCH 023/598] Manual merging of Niklas and Chris version for #81 --- .../utils/validation/NodeValidationUtils.java | 14 +++++++++++++ .../utils/validation/ValidationUtils.java | 2 ++ .../models/input/NodeInputTest.groovy | 21 +++++++++++++++++++ 3 files changed, 37 insertions(+) diff --git a/src/main/java/edu/ie3/datamodel/utils/validation/NodeValidationUtils.java b/src/main/java/edu/ie3/datamodel/utils/validation/NodeValidationUtils.java index 301bb3a2e..a63ada718 100644 --- a/src/main/java/edu/ie3/datamodel/utils/validation/NodeValidationUtils.java +++ b/src/main/java/edu/ie3/datamodel/utils/validation/NodeValidationUtils.java @@ -12,6 +12,12 @@ import edu.ie3.datamodel.models.voltagelevels.VoltageLevel; public class NodeValidationUtils extends ValidationUtils { + + /** Private Constructor as this class is not meant to be instantiated */ + private NodeValidationUtils() { + throw new IllegalStateException("Don't try and instantiate a Utility class."); + } + /** * Validates a node if:
    * - it is not null
    @@ -21,6 +27,9 @@ public class NodeValidationUtils extends ValidationUtils { * @param node Node to validate */ public static void check(NodeInput node) { + + // if (node == null) throw new NullPointerException("Expected a node, but got nothing. :-("); + checkNonNull(node, "a node"); try { checkVoltageLevel(node.getVoltLvl()); @@ -32,6 +41,11 @@ public static void check(NodeInput node) { throw new InvalidEntityException("vRated or vTarget is null", node); if (node.getvTarget().getValue().doubleValue() <= 0d) throw new UnsafeEntityException("vTarget is not a positive value", node); + + if (node.getSubnet() <= 0) + throw new InvalidEntityException("Subnet can't be zero or negative", node); + + } /** diff --git a/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java b/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java index 546c659cd..212a024ef 100644 --- a/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java +++ b/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java @@ -40,6 +40,8 @@ public static void check(Object obj) { GridContainerValidationUtils.check((GridContainer) obj); } else if (NodeInput.class.isAssignableFrom(obj.getClass())) { NodeValidationUtils.check((NodeInput) obj); + } else if (ConnectorInput.class.isAssignableFrom(obj.getClass())) { + ConnectorValidationUtils.check((ConnectorInput) obj); } else { throw new ValidationException( "Cannot validate object of class '" diff --git a/src/test/groovy/edu/ie3/datamodel/models/input/NodeInputTest.groovy b/src/test/groovy/edu/ie3/datamodel/models/input/NodeInputTest.groovy index f83368e43..b34986729 100644 --- a/src/test/groovy/edu/ie3/datamodel/models/input/NodeInputTest.groovy +++ b/src/test/groovy/edu/ie3/datamodel/models/input/NodeInputTest.groovy @@ -31,5 +31,26 @@ class NodeInputTest extends Specification { assert subnet == 1 assert voltLvl == GermanVoltageLevelUtils.EHV_220KV } + //TEST VON NSTEFFAN TODO: Test löschen + System.out.println(node.equals(alteredUnit)) + System.out.println(node.getGeoPosition()) + System.out.println(node.getVoltLvl()) + System.out.println(node.getvTarget()) } + + /* + def "Validation of values when creating an instance of NodeInput should work as expected"() { + given: + def node = GridTestData.nodeB.copy().subnet(1) + .build() + + when: + node.validate() + + then: + InvalidEntityException name = thrown() + System.out.println() + } + */ + } From da526a17128a20cfda86bb26f1f9de66c23286ba Mon Sep 17 00:00:00 2001 From: Niklas Steffan Date: Wed, 2 Sep 2020 20:44:11 +0200 Subject: [PATCH 024/598] Added ValidationUtils classes for different objects in utils\validation --- .../validation/GraphicValidationUtils.java | 18 +++++++++++++ .../GridContainerValidationUtils.java | 2 +- .../MeasurementUnitValidationUtils.java | 27 +++++++++++++++++++ .../SystemParticipantValidationUtils.java | 19 +++++++++++++ .../ThermalUnitValidationUtils.java | 20 ++++++++++++++ .../utils/validation/ValidationUtils.java | 26 +++++++++--------- 6 files changed, 98 insertions(+), 14 deletions(-) create mode 100644 src/main/java/edu/ie3/datamodel/utils/validation/GraphicValidationUtils.java create mode 100644 src/main/java/edu/ie3/datamodel/utils/validation/MeasurementUnitValidationUtils.java create mode 100644 src/main/java/edu/ie3/datamodel/utils/validation/SystemParticipantValidationUtils.java create mode 100644 src/main/java/edu/ie3/datamodel/utils/validation/ThermalUnitValidationUtils.java diff --git a/src/main/java/edu/ie3/datamodel/utils/validation/GraphicValidationUtils.java b/src/main/java/edu/ie3/datamodel/utils/validation/GraphicValidationUtils.java new file mode 100644 index 000000000..4e47d50b7 --- /dev/null +++ b/src/main/java/edu/ie3/datamodel/utils/validation/GraphicValidationUtils.java @@ -0,0 +1,18 @@ +package edu.ie3.datamodel.utils.validation; + +import edu.ie3.datamodel.models.input.graphics.GraphicInput; + +public class GraphicValidationUtils extends ValidationUtils { + + /** Private Constructor as this class is not meant to be instantiated */ + private GraphicValidationUtils() { + throw new IllegalStateException("Don't try and instantiate a Utility class."); + } + + + public static void check(GraphicInput graphicInput) { + checkNonNull(graphicInput, "a measurement unit"); + + } + +} diff --git a/src/main/java/edu/ie3/datamodel/utils/validation/GridContainerValidationUtils.java b/src/main/java/edu/ie3/datamodel/utils/validation/GridContainerValidationUtils.java index ab15081da..b97010840 100644 --- a/src/main/java/edu/ie3/datamodel/utils/validation/GridContainerValidationUtils.java +++ b/src/main/java/edu/ie3/datamodel/utils/validation/GridContainerValidationUtils.java @@ -112,7 +112,7 @@ public static void checkRawGridElements(RawGridElements rawGridElements) { .forEach( measurement -> { checkNodeAvailability(measurement, nodes); - checkMeasurementUnit(measurement); + MeasurementUnitValidationUtils.check(measurement); //TODO NSteffan: Bezug aus MeasurementUnitValidationUtils, da bei Aufteilung der ValidationUtils notwendig geworden; anders lösen? }); } diff --git a/src/main/java/edu/ie3/datamodel/utils/validation/MeasurementUnitValidationUtils.java b/src/main/java/edu/ie3/datamodel/utils/validation/MeasurementUnitValidationUtils.java new file mode 100644 index 000000000..4a84734c3 --- /dev/null +++ b/src/main/java/edu/ie3/datamodel/utils/validation/MeasurementUnitValidationUtils.java @@ -0,0 +1,27 @@ +package edu.ie3.datamodel.utils.validation; + +import edu.ie3.datamodel.exceptions.InvalidEntityException; +import edu.ie3.datamodel.models.input.MeasurementUnitInput; + +public class MeasurementUnitValidationUtils extends ValidationUtils { + + /** Private Constructor as this class is not meant to be instantiated */ + private MeasurementUnitValidationUtils() { + throw new IllegalStateException("Don't try and instantiate a Utility class."); + } + + /** + * Validates a measurement unit if:
    + * - it is not null
    + * - its node is not nul + * + * @param measurementUnit Measurement unit to validate + */ + public static void check(MeasurementUnitInput measurementUnit) { + checkNonNull(measurementUnit, "a measurement unit"); + if (measurementUnit.getNode() == null) + throw new InvalidEntityException("node is null", measurementUnit); + } + + +} diff --git a/src/main/java/edu/ie3/datamodel/utils/validation/SystemParticipantValidationUtils.java b/src/main/java/edu/ie3/datamodel/utils/validation/SystemParticipantValidationUtils.java new file mode 100644 index 000000000..3305f34df --- /dev/null +++ b/src/main/java/edu/ie3/datamodel/utils/validation/SystemParticipantValidationUtils.java @@ -0,0 +1,19 @@ +package edu.ie3.datamodel.utils.validation; + +import edu.ie3.datamodel.exceptions.InvalidEntityException; +import edu.ie3.datamodel.models.input.system.SystemParticipantInput; + +public class SystemParticipantValidationUtils extends ValidationUtils { + + /** Private Constructor as this class is not meant to be instantiated */ + private SystemParticipantValidationUtils() { + throw new IllegalStateException("Don't try and instantiate a Utility class."); + } + + public static void check(SystemParticipantInput systemParticipantInput) { + checkNonNull(systemParticipantInput, "a system participant"); + if (systemParticipantInput.getNode() == null) + throw new InvalidEntityException("system participant is null", systemParticipantInput); + } + +} diff --git a/src/main/java/edu/ie3/datamodel/utils/validation/ThermalUnitValidationUtils.java b/src/main/java/edu/ie3/datamodel/utils/validation/ThermalUnitValidationUtils.java new file mode 100644 index 000000000..a521c0f8f --- /dev/null +++ b/src/main/java/edu/ie3/datamodel/utils/validation/ThermalUnitValidationUtils.java @@ -0,0 +1,20 @@ +package edu.ie3.datamodel.utils.validation; + +import edu.ie3.datamodel.exceptions.InvalidEntityException; +import edu.ie3.datamodel.models.input.system.SystemParticipantInput; +import edu.ie3.datamodel.models.input.thermal.ThermalUnitInput; + +public class ThermalUnitValidationUtils extends ValidationUtils { + + /** Private Constructor as this class is not meant to be instantiated */ + private ThermalUnitValidationUtils() { + throw new IllegalStateException("Don't try and instantiate a Utility class."); + } + + public static void check(ThermalUnitInput thermalUnitInput) { + checkNonNull(thermalUnitInput, "a thermal unit"); + + } + + +} diff --git a/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java b/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java index 212a024ef..8bf742179 100644 --- a/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java +++ b/src/main/java/edu/ie3/datamodel/utils/validation/ValidationUtils.java @@ -11,6 +11,10 @@ import edu.ie3.datamodel.models.input.NodeInput; import edu.ie3.datamodel.models.input.connector.*; import edu.ie3.datamodel.models.input.container.GridContainer; +import edu.ie3.datamodel.models.input.graphics.GraphicInput; +import edu.ie3.datamodel.models.input.system.SystemParticipantInput; +import edu.ie3.datamodel.models.input.thermal.ThermalUnitInput; + import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.function.Function; @@ -42,6 +46,15 @@ public static void check(Object obj) { NodeValidationUtils.check((NodeInput) obj); } else if (ConnectorInput.class.isAssignableFrom(obj.getClass())) { ConnectorValidationUtils.check((ConnectorInput) obj); + } else if (MeasurementUnitInput.class.isAssignableFrom(obj.getClass())) { + MeasurementUnitValidationUtils.check((MeasurementUnitInput) obj); + } else if (GraphicInput.class.isAssignableFrom(obj.getClass())) { + GraphicValidationUtils.check((GraphicInput) obj); + } else if (SystemParticipantInput.class.isAssignableFrom(obj.getClass())) { + SystemParticipantValidationUtils.check((SystemParticipantInput) obj); + } else if (ThermalUnitInput.class.isAssignableFrom(obj.getClass())) { + ThermalUnitValidationUtils.check((ThermalUnitInput) obj); + //TODO NSteffan: Missing objects to check? -> OperatorInput, ...TypeInputs? } else { throw new ValidationException( "Cannot validate object of class '" @@ -62,19 +75,6 @@ protected static void checkNonNull(Object obj, String expectedDescription) { "Expected " + expectedDescription + ", but got nothing. :-(", new NullPointerException()); } - /** - * Validates a measurement unit if:
    - * - it is not null
    - * - its node is not nul - * - * @param measurementUnit Measurement unit to validate - */ - public static void checkMeasurementUnit(MeasurementUnitInput measurementUnit) { - checkNonNull(measurementUnit, "a measurement unit"); - if (measurementUnit.getNode() == null) - throw new InvalidEntityException("node is null", measurementUnit); - } - /** * Goes through the provided quantities and reports those, that have negative value via synoptic * {@link UnsafeEntityException} From e39c475cd35f89044cbc055b00ac2340477481fe Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Fri, 11 Sep 2020 22:16:23 +0200 Subject: [PATCH 025/598] updated build.gradle with indriya dependencies + removed old dependencies --- build.gradle | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/build.gradle b/build.gradle index 0ce7b1afe..65be6edd7 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,6 @@ plugins { ext { //version (changing these should be considered thoroughly!) javaVersion = JavaVersion.VERSION_1_8 - unitsOfMeasurementVersion = '1.0.10' tscfgVersion = '0.9.9' testcontainersVersion = '1.14.1' @@ -53,9 +52,9 @@ repositories { dependencies { // ie³ power system utils - compile 'com.github.ie3-institute:PowerSystemUtils:1.3.2-SNAPSHOT' + compile 'com.github.ie3-institute:PowerSystemUtils:1.3.2' - compile "tec.uom:uom-se:$unitsOfMeasurementVersion" + implementation 'tech.units:indriya:2.0.4' // JTS Topology Suite for GeoPositions, License: EPL 1.0 / EDL 1.0 compile 'org.locationtech.jts:jts-core:1.16.1' From a65c71504aec8d6822b5fe7d317dd106c487531a Mon Sep 17 00:00:00 2001 From: johanneshiry Date: Fri, 11 Sep 2020 23:39:55 +0200 Subject: [PATCH 026/598] Update docs/readthedocs/models/input/participant/evcs.rst Co-authored-by: Chris Kittl <44838605+ckittl@users.noreply.github.com> --- docs/readthedocs/models/input/participant/evcs.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/readthedocs/models/input/participant/evcs.rst b/docs/readthedocs/models/input/participant/evcs.rst index ed3e71bca..609ed5057 100644 --- a/docs/readthedocs/models/input/participant/evcs.rst +++ b/docs/readthedocs/models/input/participant/evcs.rst @@ -63,7 +63,7 @@ Charging Point Types Available Standard Types """""""""""""""""""""""" To simplify the application of electric vehicle charging stations, some common standard types are available out-of-the-box. -They can either by used code vise or directly from database or file input by referencing their id or one of their +They can either by used code wise or directly from database or file input by referencing their id or one of their synonymous ids. All standard types can be found in :code:`edu.ie3.datamodel.models.input.system.type.chargingpoint.ChargingPointTypeUtils`. +-------------------------------+-----------------------------------------------+---------------+-----------------------+ @@ -120,4 +120,4 @@ Limitations Caveats ^^^^^^^ Nothing - at least not known. -If you found something, please contact us! \ No newline at end of file +If you found something, please contact us! From 4d5879cf5488db3d33f4c95ae1a6c4b385e649cd Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Mon, 14 Sep 2020 12:32:05 +0200 Subject: [PATCH 027/598] added documentation --- .../input/system/type/chargingpoint/ChargingPointTypeUtils.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtils.java b/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtils.java index e5a5f3f5e..22f2bd256 100644 --- a/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtils.java +++ b/src/main/java/edu/ie3/datamodel/models/input/system/type/chargingpoint/ChargingPointTypeUtils.java @@ -121,6 +121,7 @@ private ChargingPointTypeUtils() { DC, new HashSet<>(Arrays.asList("tesla3", "teslav3", "supercharger3"))); + /** all common charging point types accessible mapped on their id and all synonymous ids */ protected static final Map commonChargingPointTypes = Collections.unmodifiableMap( Stream.of( From 0d2c2b425cd5c965a4874985628d335328252e9c Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Mon, 14 Sep 2020 12:33:45 +0200 Subject: [PATCH 028/598] incremented version to 2.0 --- version.properties | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/version.properties b/version.properties index 002ff41e0..1dc344a4f 100644 --- a/version.properties +++ b/version.properties @@ -1,8 +1,8 @@ #Generated by the Semver Plugin for Gradle -#Fri Sep 11 17:00:46 CEST 2020 +#Mon Sep 14 12:33:33 CEST 2020 version.buildmeta= -version.major=1 -version.minor=1 +version.major=2 +version.minor=0 version.patch=0 version.prerelease= -version.semver=1.1.0 +version.semver=2.0.0 From 53f3d9562eef79da35d2012fdcc62be5ec314f6a Mon Sep 17 00:00:00 2001 From: Johannes Hiry Date: Mon, 14 Sep 2020 12:39:03 +0200 Subject: [PATCH 029/598] loosen validCheck2 to allow major revision increments --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 34966ba9e..6221a31b6 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -568,7 +568,7 @@ def compareVersionParts(String sourceBranchType, String[] sourceBranchVersion, S Integer sourceMinor = sourceBranchVersion[1].toInteger() boolean validCheck1 = targetMajor == sourceMajor && targetMinor + 1 == sourceMinor - boolean validCheck2 = targetMajor + 1 == sourceMajor && targetMinor == sourceMinor + boolean validCheck2 = targetMajor + 1 == sourceMajor // patch version always needs to be 0 boolean patchValid = sourceBranchVersion[2].toInteger() == 0 From eeec77907f1a4d9c3f6e5684fda52064bd7a7513 Mon Sep 17 00:00:00 2001 From: "Kittl, Chris" Date: Mon, 14 Sep 2020 12:48:49 +0200 Subject: [PATCH 030/598] Documenting the foreseen directory structure with sphinx --- .../uml/CharacteristicDatamodelConcept.png | Bin 127200 -> 206298 bytes .../figures/uml/ConnectorDatamodelConcept.png | Bin 131479 -> 155878 bytes .../figures/uml/DataSinkClassDiagram.png | Bin 0 -> 40906 bytes .../figures/uml/DataSinkClassDiagramm.png | Bin 32330 -> 0 bytes .../figures/uml/DataSourceClassDiagram.png | Bin 0 -> 230098 bytes .../uml/DataSourceClassDiagram_draft.png | Bin 0 -> 119391 bytes .../figures/uml/DataSourceClassDiagramm.png | Bin 235053 -> 0 bytes .../uml/DataSourceClassDiagramm_draft.png | Bin 112781 -> 0 bytes .../uml/DefaultInputFolderStructure.png | Bin 0 -> 58131 bytes .../figures/uml/GraphicDatamodelConcept.png | Bin 106761 -> 106580 bytes .../figures/uml/InputDataDeployment.png | Bin 193970 -> 211541 bytes .../figures/uml/InputDatamodelConcept.png | Bin 205636 -> 200369 bytes .../figures/uml/ModelContainerConcept.png | Bin 71591 -> 86795 bytes .../figures/uml/OutputDatamodelConcept.png | Bin 130149 -> 133942 bytes .../figures/uml/SystemDatamodelConcept.png | Bin 160571 -> 164496 bytes .../_static/figures/uml/TestDataHierarchy.png | Bin 9439 -> 9225 bytes .../figures/uml/ThermalDatamodelConcept.png | Bin 151897 -> 152205 bytes .../uml/TimeSeriesDatamodelConcept.png | Bin 291845 -> 203428 bytes docs/readthedocs/io/basiciousage.rst | 125 ++-------------- docs/readthedocs/io/csvfiles.rst | 134 ++++++++++++++++++ docs/readthedocs/io/influxdb.rst | 8 +- ...iagramm.puml => DataSinkClassDiagram.puml} | 0 ...gramm.puml => DataSourceClassDiagram.puml} | 0 ...puml => DataSourceClassDiagram_draft.puml} | 0 .../figures/uml/DataSinkClassDiagramm.png | Bin 46273 -> 0 bytes .../figures/uml/DataSourceClassDiagramm.png | Bin 264557 -> 0 bytes .../uml/DataSourceClassDiagramm_draft.png | Bin 138818 -> 0 bytes .../figures/uml/InputDataDeployment.png | Bin 290744 -> 0 bytes .../figures/uml/OutputDatamodelConcept.png | Bin 156767 -> 0 bytes .../uml/TimeSeriesDatamodelConcept.png | Bin 259345 -> 0 bytes .../input/DefaultInputFolderStructure.puml | 28 ++++ .../_static/figures/uml/TestDataHierarchy.png | Bin 10555 -> 0 bytes 32 files changed, 174 insertions(+), 121 deletions(-) create mode 100644 docs/readthedocs/_static/figures/uml/DataSinkClassDiagram.png delete mode 100644 docs/readthedocs/_static/figures/uml/DataSinkClassDiagramm.png create mode 100644 docs/readthedocs/_static/figures/uml/DataSourceClassDiagram.png create mode 100644 docs/readthedocs/_static/figures/uml/DataSourceClassDiagram_draft.png delete mode 100644 docs/readthedocs/_static/figures/uml/DataSourceClassDiagramm.png delete mode 100644 docs/readthedocs/_static/figures/uml/DataSourceClassDiagramm_draft.png create mode 100644 docs/readthedocs/_static/figures/uml/DefaultInputFolderStructure.png rename docs/uml/main/{DataSinkClassDiagramm.puml => DataSinkClassDiagram.puml} (100%) rename docs/uml/main/{DataSourceClassDiagramm.puml => DataSourceClassDiagram.puml} (100%) rename docs/uml/main/{DataSourceClassDiagramm_draft.puml => DataSourceClassDiagram_draft.puml} (100%) delete mode 100644 docs/uml/main/docs/readthedocs/_static/figures/uml/DataSinkClassDiagramm.png delete mode 100644 docs/uml/main/docs/readthedocs/_static/figures/uml/DataSourceClassDiagramm.png delete mode 100644 docs/uml/main/docs/readthedocs/_static/figures/uml/DataSourceClassDiagramm_draft.png delete mode 100644 docs/uml/main/docs/readthedocs/_static/figures/uml/InputDataDeployment.png delete mode 100644 docs/uml/main/docs/readthedocs/_static/figures/uml/OutputDatamodelConcept.png delete mode 100644 docs/uml/main/docs/readthedocs/_static/figures/uml/TimeSeriesDatamodelConcept.png create mode 100644 docs/uml/main/input/DefaultInputFolderStructure.puml delete mode 100644 docs/uml/test/docs/readthedocs/_static/figures/uml/TestDataHierarchy.png diff --git a/docs/readthedocs/_static/figures/uml/CharacteristicDatamodelConcept.png b/docs/readthedocs/_static/figures/uml/CharacteristicDatamodelConcept.png index 965cd70a0ccb129c3b6e0c75e4b7e9b20f991364..b3d1af74643a0fc74fea63a94fbf33b76cd50f36 100644 GIT binary patch literal 206298 zcmcG$2UJs8_Xi4!A|jxJfPxftDAJ4c5>OG5-jS~K-g^mxh>C*JJ17DI(z}#^p!D8r zDAJqMKqz@9i4M#+^R4yXe|;~r)@ZKxo_o$Nzx_LV?~|8`@=`?SDbM5J;1EeaxTlPR zb3Pvjhotu0DR6}}qcqd}k61CNgnk5^Ie{`dv>>G^}}aS+t+I=5_%2Cru~0tJfY$kyC8F$0w&NbKo<5 z_2#D4>)4m(?S33qew<;~?^7lQvnB_=DOO_Te8gQko)6!3#KR;b|o9PY_ zKbOo>w_U7hC!BhfKTa~g^v9AXe#t85UqS^pJVX3Y6tlcG9c{6~b~>JlU6Q1jAv2_~$(D5H0`Yy%acXAfC)qnGF)81k z-#2WP9JCrfGfotkIntVCwQaSX*;byQI&6D0%2hj*n#pUTWkA|nD)oW@+c$}OD;gt3 z{jFjh?tWo9&y}xU2sESoCZhPt*vT<@G+ld!hGC!FeP5u~_|dnE-qL{z=XMLjT1nm^j@oSKaKYIXL(WhFifTzyYE^{gi5 zao$Q+(}t2j$NHb2ZAaLK@dDD){!mgGQkbK?68^AoFjq(Z^d3>4!jB(p4^vg=cluea zw?$|d5;!;me$b3+gfTKoEW(6Jr7HjU94@aXlXjViY99JQJg3+HmhC1z^$U^|nq9q$ zP16M$>7ZU(=NyhT@3n3gi1pe=JH2*}_DoGGYqeI|z%9xH*R5qqzFmq>HmgS(zDx;s zHC?E>Orqzk^OhZ?iQD|sJw^}i#7aED!SThBz9*sTHoQDW;6^qx z2C?CLn#Xa&;2p1DMcLys=g&X1mtgDePi6CCD$^c4b0({JCs0zWcv$(25|;$il~G@< zdzammf(T3e246%oKZ!WUd}jm!+1Y}$#l`c)ApRu9{tXAGf-wdMCpps_xsXms+AfWU zzD{=u-0GWIVmJAfk^s>y!yy=gxxGFKjHcM99OEk;#z4PLjN2iyDVreV{5_a@Ndz_f3#0ygmDOu^GLZ26 z`A81^)pc}0!ojJ3i_yUiZrt=FA7le9G(IUQDVAEq?I#>{gpi{3z8x(#8*Qj;*&fHA ztDdb@yIiqWUE#7aY;Yr*$Pky1ob{agYG2mCFqDwtq22JyOyK-e5EKC4*NbY7boe*1Jr|QF*a- zXLU@N*K;|);cOw$nRMIPtcc2Pc)CK80djjlU!g5WA0`&PGF)ug#P>0ciqGnbEChA1 zi9!y*x@o=*<{MfL_nc^R7yE`MG7LC4pDZrL_*$6&JNJ9p8?oPOl>tm9J(U}m)_Y3{`Bdp8FWhsj z>T%uk74W{tPIQ%I5={L3h`c)D{}@I%nt*A0*|)a`_bcI!_x{csHy826rc*qo?XnO~ zBurTD7CXDoR+p6j3=tI{>vjrDPT2>rD8!g+QUg9_LKhV<{xVW4TT|)2Y0;P2m!*+g zY&lSk827Bb$4SL{0ZREf25C-5Mt4qs|0^L!Z?<-+O1gYYB-{SMW(Nvr>0qZ6Cc4ph zvt@NA+Az4Oql1H$^A;!(eZ{fmVM}oSZ}N8Y^tVk5J^7uef16ZqYsVU;>k{)@NLWxAN#MpEDY3R3E;3IN^ZvaO zEQSoPh7+7Sn81gab$@I+M8Ma6zw-^|oi2s4HSvOues$%@#jM|WQT7gvKEpPV1iKq8 z97_Ya5Q7@uKpGFTo#i1k0x>f?L}J|b#c7OJv?U0a-hV^sI_^IAbxd+?yejUtIk(5w zJQ^3`1=imO(!@fbM|UuK9lR=bxTOLfqvKkw+-#@BToiX9U#&@SHAchpPCcmt-pyzL z#iFGZZUDdi>j;8nG_kmt09GN5HjJ-$hEdelYOzl{zePe8L&T6~N=jYNiKt!$1(jM2 zDd(`Ev9ZDg@8++l(4~x$I$W(-)60MI4Jah&)hlpkOYs>n8H0h>21cjo7)pGQL&$*K zPm7PV`E54H(Zjze>_sV|78Ib!<-!hj{c5l6#XjJ$OatU-;Me8xdq?0KtqJ=XQAsJP zy8SsM(es-&`Z>CG@H+41!Tdtg4xgPNQw_^&Wh_@GhU_h9Q6{#Y{sIBtz6|@ zpla~s5qhFumU806ygfj42&I=fPe}OpiGpCYO}KfqoeKd^(jIXs{Ce`MY>hvOn1JE; z*QQC{E?}xN!+t=~d6xG%xp6O&a^v<1lKyP1Zvtw3l>bEXCr8tV4A>V?t~1q8BLPP61DZ7|V}WQfwq?C!%^c-NQ@)ZY04?CcyX{Iy=v@w$)+?qFu%m z0O$*OBe(qg{ODyOFO!pdNTCH<{|boUZSSSmvN-kk$N+?wZ_iM0z_?&zO?$BDNLU)D zceV$k?SZ#@_E}bB(>;piELPIDkk#M}m2~x8co=#NRX()MX573IgY)8Lb35LF<5J6} z!qph~oZkT?yYri47APj zGei4?M~Lta()FM$YZE*aAxRSjRbYSu>@|=Rev5K;%4Y!cEP|AM}k1ccbKl& zf`<7jd8b7UJ_niV{V+e#?~B6+ITj(90mN^htzP=q8}%3_lC<^N1q|%Qe>^f@!{?lc zr%mI=Jq_JWxlMBE3RGVLcByMbzhY;h#2Rt1wtBSpaQZtD*v$Ei5+*4tI>2YqA zmKB0NkY?C#e}B6zs6PpBC_dQOU~$VAO;md_rHu(le7 zaWA1K`5a&ale<&T6Q@uO2 z7Esuej|tIILo^C%h(dX&I4(@}e&;j$kpRaZ+3@vF7--I1F_E z@}Gz(g6NTzqJ#8Ag*bvMJkDA_1%I|ZW!$0my3fhAQybW0bc&(FqX61FeH!4b!+`EU zK;eK6&lV%3oGDuKi<4HBhcgUOMLOo*v`EUDB)AzIrf{TQR{Jf8RscEg@Apzc?2%KaM0qLPXAgcZBP9Sh|=?zEwjI=lHnI; zTg|B>X58F17w@Rd$>p&{V)JFe&u(wFO@{LJCt6vry_o`!?ZwE0SJ1^H+!)G>y+r)+ zh@K?9&{*OT6$^Jo5M29jhK!QSwkAQ>_+jpOrWiV+s{MCU+(m{uei0W}#NS@-^GMop zw?*+r+w{DzyI$p)Uan9>nAaIbA82X{ zk#epD4DBb<8L*%4xq$eb}o0 z(Z)V@K?;3cQnW=KV%hqh*3Yp>?aTnY`) zM_K*hWVvwE#;e}3-M|o7`Bp3i{Ae+H{nChjv4uS9NR*P-qO;gCP>QCUO=rB)J#2d^ ziO3W&TKH)3(&^fbUTYk34j(#x*Cc>=r_Ww<9I=ifrtD=bo(;dnUuxb{;B)u|AO{q= z;0ctqyWT+PKeJYa*m8w=-pNvLqvE$2Oz)U{ygNY!AIviPJPEY^+D2TFf7DK|a{}0+ z_xiVjJhZJvzNX~;Aq5di4LyYm90h!&um62*2$~91hGAet8{U@4Uiie_TyHnoeeFf8sn1dKc5@`Z)Wl2n8^mR?=PHt9}u8`j-&q!34=S|Hp;0L zSflq;GlCA;Mv4f;@Z>4^M0h>B%j^7xBCSV`lKL3rJ!j{6vL+Vy(Ksei%V9`%Zg;C^ zu0tRN)u%y{-CKnYnLrh2ru3U8%z!-*aw*(1QRKjrM;)fJV}q--ogPs*oU}DbyO}w0 z$_q#+=+$fk<3&z0#U!wk^WGn6uo|zthp|)~45{27D1oXPU=^GZTMcxq-yvn2gQQVtJkQG0ujrWkTC&tBbm{~~ktVfC;qQ`io&gmAN-@rB0a0<{{ zb!K7Gx3A8yiXHl;hwQE%3@O~hJ4KVk?I=H|qDSc*A?}OiAh)=2(NDjUWSGb$A?^?( zrz6G5S3VQtt9t0%Eb1tnC;)?(cgP{z!U&U+wxjy?EYF)(uB+Ep&dtI-2EwEgwznkU z?tr@F^kakF#ZUr8Frq3eH*PHy?rt~uTC}=+YkVOfAOKM5!2)BMEi586bK^=_??2h| z3>kxM;YW$R^V~4p_B^|vFf^~Nu;RM7aVZ70vsGt90%in0;=gAq!!WU=S<~xiy1d>N z;3{_U^@AHvfF)jJ0lZKVYmwnWvcAe-5>LQ>$Pl;VXv+0cKG4z&vKa7xEI1DSnr0<8 z?od5OU`F8o*!f#R+g@4mAsG(#*_E6a zUrpVI;RK&F0c~H+Z>TQxAIYd}M{wOB&2vN2j+dERZmzlYI z@QT+5A7W6IFve(*ZhGpM)KDOXeI&qcOR`quvBJIxRf{DUq>oa=3dLp35Ve?PDdcRi z)1sev@qj-%*p$H_eJf7ZSGL9`iQq-1mK2AFlS`8(u&Vlp%%pifkM%@oJ#(2e#10G- zu@HE$G9_Cx+oqxGvGC4%__o#9m&cr!d_wp%_xNE~2Xl0%V|jaYepWB#;3f$1S`Kl~ zeI+CTd6KNJOMd+DgKT2zSUy`l=zOO?zs)t>#aTRKQ=Te|3L>Vx6j|-v&7=-mkuvQd z^6fajY**xhE@XG20Fag1l>5{G!$-@9##~9xX@{C0$~MF;4B@5*=ew@CkU+c^p)l*c z_5kYNG z@tCoS()Ol|LbwlGx*U~iiQ1)vn6`43N9G8%92!FTt)<+gD6Pq(eFb?rJPwc^aIa6} z)-?&zE4PX=@sQ?gIGTyl2)Wu*=)KQSd+7{gsj4Bjv%@frOa-S3Rf(sMOy6_}iQsZx ze{KCcsS-A(E6OGCZX3G_*tl>$Ps`D)lr85Jg+L2@XQg`JVHL$g_K>5Rm%Bwn?;O97 z!V70SJnzG+7&NbVJ*0Ir$V#5Uzm_-W*pc9fI%J%g<;&HF$>+^PutG&0`%_jE%*=Z zm@l$*;{lOPGesRy6B2TqUmP?X385Zg(b?-&LFiWOOcjj~=xwZ4P@Ex?9d%M!>)jwA zMQ$$*OsL#gWFQHx zkD0~Z8~&Y##SrJl$DZ8TNegZ~#-|=qPlqY^fXtrObNxgbzU8+gHcQ$&FXV--;k=gj ztw#ksM$5)UJxhYbgz1-_Q+W_y8x)*>lPoXrUZrg5p(r)bd~*lHyC;oBBj=j^Yz%(5 zwc0&X6UWtu>cid1yb^n;biOr0 zX3ihomWz;IZVinaUL|<5dxm|$)^jUA+>0aJN_h)keruqX#Y^6G%Cn@B*6b48jKt^i z!TmF~PYqN`N4pu_P{fqs6&~AAll`rsbe%T}D`xHS*R!>Fqj@duwk{bXWt1kz+1HZV zUsWB-96mAH#Q&rd;~PlpQ)a|!aCEQ-K$DgmKqnTU^3_sfd<)=>%e@OQ{r5iGeUk~o z{Dc~Mg|lB}Da^k{RqhPCPs)68w%nVIn@dlFLs6l?Cyg8*vreg9!nz^TBPeR0Y-N~N zUM}jO-_5SkJa;Qx2hy`{5<~F7+g)f|tqXQA<7exYVsCFB%fXea?J8{{v}-Oep8%Y! zz|Z+BN6T53z>1vSp8O6mIR-hQqg-eeXI#sJRH4GkIrf$6<~~Ch>hLOjfBdMn-nw+# zx-YZV)`y2P8VD8+z!3rny#2t0KuD`V4kO1$?k~&-U#k?n? z*6AnQ011pR!op&h$YgV=id2|Kg~6bLv8b2BuH0uNB_#ES=X;~D4-mT#5Nnra!LeF| zl{=*K0}t+6m8*SO#`*YM<%EMQ{e(Qk_?t-f!!DN)ra0K;nZ=cjqlM3dBd}$T?=C2u z2o_RK0{vzWZpyLFqkO2WGXbi%!6BKLbN(u{4J7g zAl`izH;jQg>Cmx(Cm})El(TZdqp2AKH!rN+j(_zxX;tkt)-h7&Mpz|%yhALZz{l>8-HlJ{Td zoEWQ3TlSxlClEB6@U?u$F9ac=VrSUaq{lGkNLjV4v}HfN@QE#|0Cr{M@U&`54{OLP#V&Wa@9AD?}Ds! zv1!`ra|+vz=gJ&`th6nODXsgDlKJPxnWb>{DB<|b%3xDRjhP}|22mwACN;`t{_ep zA3RY;1NC|k$46AScEH*(=7LZgr&$^)J=|JIr*>8yF%a5aYmM;_5iRjP!@g-+=#atQ zwiRj>EXvQn81ywpNN{R7T`>WklT==qg5N^ra6nr8<*8C^`uxp5yIos!DE zcBmIr_C0CmbUHA)N&d=#?212o^q7Cajctc=pyE?m@yItMCIHnJyHod8N@?TT^xqai zZ!wRK%pCSS$}fcuy<9oMWnL>hohBO->fu)dlHsQ9@wZ5E*7I9<009gNqUcD1+D5Uj ztX9}s?F_(fvZJIvC(Tq3m)aIOEff{RA-h841?Q7TX^(#X2xXzQ6Q4tGpurMtIjP6; zWSs{e@4o>XyF;WYzm1LvP}}~tutfvM0hVq4ImX_Orvp9YnmnBtBAio4#J|-#8+zc2 zo1jc0DK_~`ev;=sqx>?h)#4le`2cFUJ9UyJf z_G_U2pq8Z(at&~a-Apb+kLN2SdRN#xihRtN38B3o?5X5u zVQ&#|s6*3sj}2#>{u&^9GtGELdxY1j9JV~!ZjinOiZ$(Unf|^#US_{FVjFUvn6pQ( z*;AfnT2y0N+&04=B5ko|1D zS$d{t##%Eomd{#MbJwVT?2>XJ>~Q4`D4*qkDqRLm*>rFhD5zZU*{UanowpUS`|%FH z$ZBY7Hjaa}0$pnWiI01O-(q~_;&Li?r*3MM+FViPyfmI6fDAp*btRe~%r^%tQ7Tx3 z^hSWLVHkt#g8qU4YfhD_y>AwcJ#^Or!@H6U;wFDVt$byMg`2NRJh&8wMC|j@H-rWFFEflOa<_WGa zJ?YOT#-PQ4Tnev#wcT)$wu0b{c5QtVBa|hYSVJ#wqWU!P ze5Lb}Of6J}gyK_8;b{i>%1p_iG{%Hp&#ie{JSyptWdo1;7i*vOQC34XmFwR(`K>*; zAgHp%?(eE!G;+bRo+{#)rk#I`zOz--5ulAC`2u&L};_Vi64Jz)`Lj@h z!M3HW+?;a6xGkFH8+-_Lu^%#)0!nI%<)zpG9DAcBq`~3>X_Z1r$xTqE zCi7W_5EvOOCX}?bpSPOak`1%wF zzHG&xE4<6^@8T2D`V2oOBJ@Ac@SI4P*TX#{Xeh~h=d0ft1n5&(t=|8x?!u6)v#(X~ zqjqOy|F7xXLvpOv-Rjc8aJ)^$9~Duf^GXNiK6+kLH>~XS6}8C>)zin9}=Y0~M&bfxrXgXpF7=zEw+i28$0` zib*+V=W!C78wKVg+ ziD*VSc&REE%jb^v{|qn?(p1iWo;tR0u!q=LgQwU}KWEdrO)Zc&2cR-iOU!1pkwK2~ zdEi@b27|s#L8)u`(7a+Q8-ZMQvJZPo0qLy(GLjJeltrC)g5Ox(CN#6z{R z;zXgps+aa40fl*EF)2tkPqliV$~65YwL7Usr|#6w`n@?Dmk1IEVmLL#VBa|S>Mlca zuf|}+U)d)dkTS@-n<)SS)&|Oj2RBvyoM~x=h;zpQ*d)?`EHYwT`2J;VPMGcyGe2pb zQBx==`T;tva0X}aac%OAD_VG`UsqO&fDBIvXqzZFtcc3ibx8812CNXp#;zvPo0qL| zi3+dcOWN`C9tv2i!p2UfoLr#Y-31{BXa65L5|Kf)w4WVVMu*>kT$L%FB+UQ@QQ z7CR|6sgpt^UQPdo$H6M@pjn zUv@zBDfON!ROCI0@$Jvnt_DS!-mNdr9Yxj^rdtjjK&NPN4vMPU0Fs=%fh|1)SbrN= zq2P1W0kGG8wCvra@oo{JjHqyOnLw5){sn3wv)!LPd{&wuG;>)EW^}d4tgIGx=xG9c zXV)DbbA@Y~|H{+hohVbkXvYiBE~1F0g?e@KSLbWQ@v%YIgIMa8*3BuNlm1pt*9VMp zb}SF+E$f~Km?rS%8MmZKfX1Ykw9raU5BDabv!Erwv+?@=xaZmxrC%>HI{BhTJSGf; z;kdAYKYx{i3I3Kn{Hr#B&V&5Qg#2G`eyIvPI>FUzw?RbBdolZ^D>g}uX;%B4q-G{f z{_R`!@yE&Qdgv-Cr})BNN-dm$A86GB6KR{=~ zI=Y*nVl{nldi4{z^K#yz!$)(==Gz!8`3i)A=dq=tD_S5$1sW-UOQ)+-x$}C+X7Bj% z(8MDqmMK7w00m}|Cwc@rUy-r+K~-B5MLj{=9f>*#ctk|A>dc&wz;vxUNxP4d(mPi) zWQc!8O9)$RziuUYNo{&VdWK%%RCclF-T@MM-w=-``*2&~l(!Sf#b|MMX-GO{zM z51ODO1$22NX47m~Y`K+q5VkwpefQs_i9bZQW}q3#$<~Z3%S9dp9$J1~8o*phJlQ!E{_KlZHu>80A{^)ToEd?{wa|J`^0KQ0$@ z`w367|5t;vf2)xaD389EuH-M&@D;#@PrCO1pDt+%`V{=O}d^s%r1SwU}&9NUP}*Aq37?bum~!^;|T9`Lm*R7s03KplDVndLQfNv$0&X4UbC z3Qufy<&9nYo*DGtM&(4>tw$^A0ICSjIx$bX7$65^OpSwrCcDj?X}sqsnW9sgGvVy z%YASSzeV~MQy=}UOyTqUlf?t=G9!KT3OZ>vsJ>kJLC>}OGEqln73pFEO=QHt<(#& zBc!U2f7u>xpr!3jldCJxZru7h&t~M9_?4sbEwvQLS)X5x4 z5DoHTySYOVEE+b0dA0axpAg5Kc)+#_1AIu9i+j#vN<0qwcR<~mm}Zns$7eBPzj~{? zJdRIyZ+H6caEY}lMy6E(OSzCVC@MH0fZ~kvs6Dk!*?ZF=Hn>B}07(f6pY~4e4#*3A zf4v}RAfE0DuVVUSpdXV1SBM{k>@HB*zGh;lsd8EfIZM=>{ZUptOP%Pe<>sYhkJl#N zpL|9t^aeC`AnPTa_J@lpTvvvt`nC7(+g=waKaKA~tWL~4==_bCO@-eEF@&pO`euo5bsY#oah*D>B?koT9+czw-X(@g^< z%gFv^1e8UMKyyhjEh_s38=k3S{fpJMxB(Iuj|S>PKQd-Jw7LD5nUMn)2hQXanzVuD zaj;i^PlDcS`i33{Cg67I#DuW}<&K30 zH;t31-!5?S+g3075mx&=?&Og`g?mkcF0*~UbWs(c1MmTK;8&W44j9DGu%xX8P}t8@ z!)W+NV_g9%&GR1tFC&1IVGEqissm+QTOLvsp~g z^7&btP0lK?RM?So0NUBuzs&!ftRo>B0F5W!136W06cC-Wn~Iaurv``$a|+@Qn?JzNT)r*K*7-)Q6S zP(U9WrKc9UO~Aj4T$)Qw)AwAdY)^=b7@GixWF>)5*KH4cF6UhFk;#s18!v3dt3-@L zb80ClLWoV!eG2hyO&O$JJhhY0q$r$BhS0F2<2$q_*rP~ILw1>v<2+) zFZKt5BhcRvpc3bePDOG+5Jf#Z);j{37vV;c1q^l{#>vD=L?=}82Y z81x6Q*5Cfu98S>KmObHpO1ap1sTiCt{s+@ z+flYd4sBAjx`_+jo@sp+{RfaN<6+N?CB(OHDJngH;uHYWlGyy3;<-}1iJ8PD1VQ8M z&qAyJCIZkqhUrw(2>I2i)-t>3kSQ}n6L8ZrM4*R8J1uK0Mjag5k#OS@ zd$LBK_4h^u^}$;)zUbx(DT>?4%gr&v(8KM93%{EvN)*TIIttp%JHmlUfe-pLE;jpk z&bS#59J~Dw+z0I&B0Gbw#DYe-fc}7{Oi(5M-1{}R`in{T$LR`Z%c1028mVhtvj`aE z=IGbI_W)Er_K~Q43#1Q@A7t;Wz{aOe6L?^yw3hcw13nKv z0M36WkO9mkTQKhjUQ!)F_9Q)bT^>}0V0V40e}n(}LiUQ~M&~7VaJ2a=Xw%X0*;5k2 zcAY0L9uN0`fi98P{s{{70jw2k_;0og7nQjc5u+;_;GnO^vGolX$KZgv9QyK!)GIL0 zhYY_8PRBVpbo8+Rt}lGh8d&W)bl1=(X}vK8i(j2f>tu1gogM4%H600K}VHK*b5O$E5mnj^(niFFUfKW;)Ii5DNLwIFR7=r$o{ zrPj!);-%F`;NT_HYcC=MeH=dd%W=J?zz^4(^E1g=1UM7i*74n+WG38J3jZ=xVOtN1w?`{O8qk_70mTtc_B_J~D`km-sA|5A~$1xu=PN`!kh z>OP~;%8YAn+)=#M@k+ydBGainh*(&f39$7tHP7ADItvJoA7;Px(TbC zhr1d=!Cqblu^v)3I157=#*OpJZEq@4T$b3fi6t=O({8>oO(ORwc4K8>i04jAifcbb zc*zj;G8bBZIKF>i(q_ukwcyV$UuI-$EU7{n+7&$LWyv=A1!ajDSEbJ*vloSX!j7h$ z2Ur^}NBq%6hImoU`N!*`E5Bj5| zayk^U`xKr_>VLGErl8_3SH0l)$LUA{{*Z9vIrvevXV;==NLvJ=pJKSOb0c8Kmh+0o z;G?o&?0Xc?p>0e&^X3(9TyYJLD!nT`S$&J3O1pfJu4`*McGw&%8geu;{+P$58fKX8 zwW4>m+;iI_>adu9Tpb)fpM#gew_=!coA|xkb70je$abg4+ROJK7qu!nX9FTRilAXl zy-_r(m$Dr6bS50kdG|3UibF?&b_`!tDNayA$$8f01xOs{=K(7>#s#=~<|=9r(yj$@ z9IA#(t&D8fifu(NHc3ifpA_{-8~BkZ!nQD@Ce0J6Jb0AcXA!{1QRMahFs^O3dW$YF zJC!db+3nlegtcoc^EF?MmA;2tRTRJU#{8-S&Rh1A%Vh|YzS6n0jr0#X`b0$BF<3Co zX`|bZtNY4UQ5`8I>R!-n=|F-qS==obJ&0R<>u!b$tHno^N$g52j<7%=`evJVS}2C0 zcklXVd4v@=YnJm0HbBqJUBHSq6dVNuvCtV0l<(&=-@mW5;)|1I@UK<8WtkpA_R2`w z0ZPTzMM=IU_H$B!B8%3G3$i#?n3|qCa^+b+dy)J58NwAw7^#E4IrY8FQ|%pCcpvk|^yO{sBXX zaNc3gY-8=pxIq1?0&MT-{Vkckaom8G4;Ht}U&V&r{&W5r8As4-+d^Tp3+zT+8b8hi zsM*M+T^4ovW>Q^^pwoD zzJ0!vD)&lQf#fY0*WicTWO{Lt*tST=5fU&YS?-`XFJ@`J=P=lb^{w!_54jUt*d^nL za~yk}?`uJhi;7VyvbW-gmxEhU`wkD;S49x}YK94aGTXMZWV}$jwTQf&L$A6vx^ueC zgfJC5NaCGiHEcNcX=+@`YL340nVQ-SI9=V<)4cZS%U9nsj4AO~DtSv}w7UlX+3rqv z`)g$~Cy?Y_zu>UjTX(GQOGy0u(mToHc%TtK;!~4Qjx}Q(#$$VW8zv(;^T?+KD@%40 zGVZ-aA7{aD_zi7Kk~1wgrajkP0J3ygL+B!=G`GmUo?7yndwXG?Ixu^tl9`8tiPd?x z)zGo-7W%|E4vyX5hR*u_g;I{aFk7CY@cbAmEijFhj8B3?@6$%?XpqLEEi%faN8Lh< zP+fWZo!6b?^o$cmrF?xRmlg3bV@=2(+YZj2dGYO84oy$HQ4wwHDq(o({jfMLt}@r$ z6S}6(|~QtMYNz=f-U_3A)fu+G*nY@l6bym4v)+mn*S$%iPNa!6TO5aoj)IFa!I_ zoG{2gZ^yB@Sdu!=Cw}aR8jq6owJOr01bS8p>|lLV7?X9qtX|EKS`zah4m&!1^9v20 z)Rk99WUz84-VhkFSPHt60!+q~pP`!?c{grM;u7Y8n(P~B6T^DydYP)~YW(>bs%{|F zXo}0~XgAQw5wd|Ip9Mr{hYj^%p7BjQ;oTvH+HslFJErnl@q8vO?pyNGNjPxp*f#Q@ zYCj>IDwQaec$k6p;?Ef1`0Qj6Dww1Jj-AS}rA$2Pv)>1c5#i&n_$(>ZY<6#Q6AiL{z@=#_BwNcTbJ}t{=PS{ZFss zBpw-64httcSULbvrDK+jV@GxDg?1!itMmEglf>GDsq+a)Kjk+ap8?>!u*l$MI6GkG zAX)st+C>V8?T%-dy`ha0?grCxxoiD5XkLDD@Q5R`Qo`cC6IT$B^H2P0@qBx zF;!NNUFvaM_w{*_%}t&=_*Tfvm(iK;U$BdO2~eJ6pgFn)7PJO_kw{lQA51uItTxh52G}J4 zdLOXr+sqh|oqUk)PRX#xI|Whlfcq6c|HK{8Ng%iwF12P=e7idmE8mGfj*X(zH9PWt zweZrN;;U!C$^gE-(z1*)Jr&*>uhDH)@(XZqD2}byw>l5Rna{7#aYI>2uy4MCuVUJ0 zmk-zlh*#bH39`O~5t84ts!juQCGEHO|Ij%Pq+Qp4=N9JmZ~2e4J5L={JvBILSL|Ao z@j^h`TJ+391%O6Y*i1RcXVqE$$|k(B{+Vuz_kzaqS~~iQ4|zumd02y9&pBXz<^-n^ z{K~{{+!gfB<(Yn9sj4 z$r&aR{yu$uNg9h_bcV+=vCGn8d-EKRdhSoxY!H~vSL)%6_B;;Ku)2t3O|?61$}P?$ zfQ?4tKA4S1Mz8_+b6)V4-t93P>&&hn1uIxdcTyaW+WCgB!avL)MHhhjDj^Gf>EInI zbx(ZFtk+f&*t@qVk5{7;Ro4$tw0pNTb2L_#cOqQ$=2j)M$}1TkWE*0W;B8v$uw!1|!M0eR;o-***#mj`5{pwX?^ zRoq+RR-YZ!6xJvo5T6_btbysAo@ptcw9{Tk7We-C6MUOSykx2(~ zNg<2^#dD9jlOnNY#5!;e;8=J4a$p^&Nk*Buac>xPQ>UI=b;|f8(qiil0BpAMk4(&r zdfgmRIN)8Q;;19CI(0IrDiZA zTqHYo&F0#B#hyB?%&MOFoH4Fh029adT&!L2_o5S37nZ-@doSvE$CICwat=7|`;Dkq z%^6rnx^W^f+PyENA}vliz2xx9IFG%b*$_|*ol;dmHEiUsKZuglf5*ioz`^txtxKC# zf1No@{SRmT7*y$GKtz_b;{l<^tr6KO9c1kI9OtpKJZ!I8r!)#fNhW?=740=~jlTd- z+f1ly!UBWulVdr)jbV9CxJTGOyPKPQdDSQ@8*mCLY~yp_hU8b1guK#za=>St3jva~Rx3kAjH;FuvTd`nDUd-wIf$2QtCh@a_nC!Nh!tbBCta5(f1}UAci=_$(lUGUoIY9iw&X`W) z_)UL)Y+DsLoZWAjeXep|fomby!pkHw zYF8%bWqlXQoV*0+6xsp_AKsFL(vi}g20je-Ig1naIt^H_Il?4wF#9_30|5L0CIArz zcmy7{c4+{%0T_S9lQMB$Bxqu-p$Flb5T)M>#Ekw4T0l;ZgSKyDA4Rx@6h2@9ofhUF zDH9#ai-f=yQr~w~gQf%T+z0~56+{7R+>ET2TP{ZpwFKxAJ=h#vKX$wu16C!`n-4#o zMrzOW8%@sEo&li?;dZIO^cm$JPPflCif5&AL2HM%2ngAb=YP5W2_B1sCB1ECFC zc@+-_EIPd6VPvbe_?&W?#$GQXV~6| z=D;96g6F_iF*;O^8Z+B@;p5qU_)1YMc}IyNfZc1*Ovf1qn%Mr5mJsBZxsu2uLc@(%mU3CDPs94V%5c*&EOCyx;qN*Y$b*{`(!C z{XA>Unz`qmd(B*Fy%e0&1omZox5#AQwwq}JJk|WDWi@IE4jv?e&^Z|M??2BORR*IR z%T5A=27^g{tDo0L`Gc8LM@q#cHBG5ir2uf(cdwTV$Gj|QEw&&Vp2t3+k_FSm;|SZ2 zinJ~iLLNV^)34Qg5k5}8?WC@%JyGHU!C(SwBBVqCQrIN!fBccM(rNOW?w77cP_Pd6 zFA|H7F#-ichHF8gYU%-T{>gV zMBi}J4y8YSzzn0<{evoT?pz~{eLABM&O5?$M*nnhwMWFYW^|l+G?$5AGY8Nj{GhRCZ zf1IWMP%Se2k6oQfs0iN>zbly2YAPgr6m{JU{(5N(kByY45V33qUB$1ThoI((*ee0z zCyP$LHk=SZvvs-EE>Q`^N%i&7LI*(LH;;k^$$yajVbe=vMk3$tz1FN*=A^fexhp=Z z#WgCJ95>0^O0LoOS`xqbRlxggyFBC$ov#Kv*{w96H~zR%D{L}z4r`slr~f+c%@{zU z5ODx(<*7zso^}kkxvD5dGVRB$YXton=y7HtT7B+ED1y#4c0V8`*Yy$f%bqL zaoZxb5bq>eQp+;Qb|lam5iJ*wdBbK{QrGWG=@C5`r&dgmV+AoQmHa55!j16Ss24Q9aJCkxZxa-4ue z>h=7>5qQR-!jkb=&l~FxKnQ>vII8@vZn-nDJ@OhsjCf|XD!TmKW>nDN8}n~eFIxyIKM>vcgu0mA(f{4|M0Js@^eYR6!Pu=4e*Jg(gr$Bu&_SYwkH^bHm0iy7 znAkur3qP$W5oc>13s}9=U5kfp%7WdQ;%Jp_68v4$h7+&d7P7m#A-4j{x}hlrKZt)J zD+RbM6>_q2bD-&lAzmHrMl8wS#kxiTdFIpNxZhubz;tQv7%E-7%=RUP*MtT90KN== ztBUTolT-kW+SXO2ZeiE@zklx7U}nlrJDYUuTYT3qV1WuTv4oXjkpyCrEJ0h7%S$@a zUsUL}wNj>_BODuyz59U09>UVSX_8=YaE?rK_>xZ0PA=Bf!d53gK#**oc{=7N9#*2=7<5Pbg)IN6}(n>IKWO9-ji>aHW6Nf`Z~v+H|BG965c z_q`l2g|NW$IF-qLCXnDHdDKUFy-)QUkUolr>)7jDN4&7CHM_IwrxD9(^yD`TAB4j` z%KwA-19nZ^kbmL1+oZgiq#&d0%H%Ph>p&fXe>e)6 z0T>0sA5K5u6TFtK^(e4;;;&L~U6k+(vsU4MqK^ky5S(Xf{71bL+(&K}Ljqxgyqn2? ze)vtV(L%V+{F9J%^6zEOLdpH1t)-tg!`xH1SPSLfaOUp{J$u!wa?_pQvRpO*CpZs( z-h$xoTP%SMV{jS4$BEQlE*o~|0kAr*`Sq-FORR67As0x{d-Ko^V`IGvf7RCX-= z;D_2X8wUgep{Y6I=l@uM^x943oT8g|Ka1X^f=G~!{A87nHCmkiQXBXX-~h=1(;^Od zYw)vkT&Mc`l;-*$KL}4j|c(r zQc*R7l5*EUi&qklJ$55XPE)3TgLP#~dRbE{uH$Cu3UY5FPsP;C%uHEXd5oH~ITkh5 z!3Vjc;k)s%%)G0gvo|**R*v=qr~O~*pQsHV4#ynn#pt21$4+ji0fR%$%27gnSRmYO zq1-zrW&{LdrTT4DX^IgsG4QgVBO?0VTkzr>5vd(q{QvJStm zNG^DCfBf_WVgYMgZ7nX+7^=nfo)-LvVq&Mx*45S~$)`Xc*re~@zkm7i+V?%mA~~tl z(wN<5wGbT9Q2)at(?0*`&jQrs9lNH|YQFQ?T8!}#+Gfu$XR9?vPF6NSGGcpZ#nld) z@v=cDNob|oy;e|-+vX2#2>4b?H=qSJwB_EhK}#iym7)r^8RQid2<^zB^>SEPQkM~E z%Ubj}A_xPr2~Zv#h}ecdZ|cmSLCjGiEVsB!u0gC;K79jEvp+q<>_THIM zA0rrB=4j*ZL=8Zr?lSBT-MDe%jgo0!wr4W|4$;dFC5+u(SvUeI!j}K}qBo}ri{aN_ z^%-(m@1=9>u&}VSmYABFsw0f^RHE!CC@4HjXvF+X(57tcxKP2fcLvd8cBymag&I#l z3vUUmAt6Q3THHIb(tnu?pI_{_ke_QxlL1jnr>(ULyqWkIEZpHw7p`!e8D)H4Jv_6L zrTlI3{M_74TGDH)TU##U9~hwbbqGHq?wbSwXz^o*<6-ObW+c@nH{#kFLMtn%%fjin$ygA7Lj0vw<1w}E^S8wyctPhl< zZ%;pSkW@^TXD@Mfi@j#A4ldw~!W)2{5Z-}6`4bKQ%^czao>l^=gy$7ya_Q8m=q~Q{ zv_As5LQ~Uu6sAh5rS%obN`1|QCeIEhk%%M_!Zl?0$w$fREa5+qz*7g$@7?zbt-?xC z@-#@kFq!;2RU0jZpAblv=hhEH2{Q+lpm{oM`EZ_bC_K|*DJC&FG0iJzs6TkBpcI%N zGVFejCj4_m$S}9rU82LH1z%p*UoBU-{{!kZ0x{+ntwPTd6QjCf-@(mO0c8zA9APd1 zjZmaJBIK^Q{$oVOy2ZYLE`}C~e}3yC=4pVS+8Hjoc-HBEO3ROyEv$#-Ij0dC0S#?p^!vqEq^ ztsRmlUqB)TXP42F8w!$8U0ce`lOgiw#)4UfBcEg+xuKm4e*g1R`kcPO_V)I{L1#=G zb)10Z2GLKXZ=lNXb3r)$&D)`pe3o_Ai~v$6=jbq3gC^O}Sq2yIGx#7E;5ZI=S~=9u))0u7D!!z%@6)ce(R$5Z)xI2QEUdQb`ay=0U(H&T2KwCohWMmYXshP_uG;5e^#a!4hBu@2S^ zRg!{|tpLq$aKZxK-B2=u>asAUV?oddU*C}N%XsYU?90%^<^B7U`81e?iFH{j*}#YS8(;eB&d$!(mM$MQp)ik`;K{7Y%h%(_OJ=kK$+0O1DiO#P?x$BKYI%P6pDB~teO`ux6z-tq@;E*lScvO zYPPAGftXKJSl!rgf{7Y@8Z6l$#9+Z{NSgSou~NrLj%)}yTsJkcz5uY~ZJ)x;44V4@ z8KF5D%|Z{fl(f!Wt=HDll4t6IDI4;Nigi;*XeCRm5bJoHMLD06e67e+xdKV-MN~YQ zwF8d$K;!SA>otTYAR&{z$)OL}=*D$_hGa#aSP`2S$<)9q4*d%rhL&qtOHNBD==^0^4D$ z16(7{8{inrK)-f~L`ua74xuJfQkcdXs|V=l>5cOGtE=y`Qe##S$4lVfPySesKL-3X zlodITll_{S`X(CW)b(79^5KG|VV+pJDO*I;Pq+>4Nzi3vBPS=PpwQ(<$rtUs{$%VG zV4yWI>{cL9LpOO_q%llrxhmv}Ojj?Fm6Nlw zvMM?vmH%T*q9?Gf1Y#U)0QjbGMsFXG0z~t^|8!Itc*;;V+&E~{qh9SH=6BW5*mz;L zutksJj#h0!`Bs`lC@Z0z=g6?#h)V&qm6DY7-B2(tt8*dS>ygSRwk>;F3C)_`h(V|P zt(K(Nbg9CF1{!~BXH+^yUL7nIz@2go0)&5V z)&3S3r610okBQE0kudDB*7m?7npbm2mJNk4VuJ>zaS++(Lt)Vv`ieS7-y zuijq!P9?&&mAl?T+I6SLJ_ZK|FO-`Da86ZBy8`>7rgk;-EM_-w=%~lAjS|)`_dVt% zebJ!=p{wNy-ovCm699CNDfe5!E%6v;oi8qJGR_X<%DpZUDnJu_f=#7$@a<|0aeQG{ z)X(3^azTNCr%ybPkZ7**An;_^Jvb;pbF#2V+D~#-?D?)@@<6Bc6gY=Ug{m5;jMFV0 zabg6-SGjE$dttiHB=pXJ?Q?+nEew*MCy^M4@8IB2?U7Nw&-8!3s0F`{%cJjJl8mjA za=>fY%$9(vP~C?9G&`P~-}Wbjvikf{NVRqJX1 z^CuZA98W74KCfW|-#oBnyY{^~Telgu?mRVh+yC~Ufvxz$K+gDq--YCv@zF@g_rAsI zP8MJ=uI0b_0kdrod(E0e87dX7Wl7z1%*+zcQ$`M#?bME@(vUg5!J?K1eH~zB(iK34 zw5BNnd;8M(nG=E99W|N9p$w!rH%-+rJ!)ny<0)bqu|L5BK4V#v{G|glci{v%_W$;i z5E{sVcr$j^1JWt@>k8yN5Ns@qp>2-as~QG+*b%r&1-T>gK4ZzcXj_bz1#}$I6aOk^UP<=4E zhk?R~(S5*{9V#CFYJqinIcKQ&xvyP&v9mm6l*bD&K!+WW8W_AV&)>i#8+naCi|Os& zC1DHna^eTDLgPQKlS~F@^#&2M6Z|@9@ z>46SR3*BknA3pTKj4eGqJz~s(64tnNvDrpQ6pJ~+u5E?^ih%lKK_8`wh%lkLMmVGf zGg?GiigArCk-1^K*4c)g^ckqNw>`US8V|}akHDEFP#0qT=K-0Z?xZS8zYX6yfY~Z1 z0*m`(ccA*22~{Ot>u;TNZ=#-J&}@3bDdmX#S%2yhbqJi9yw#3t@s}}=3!oc|#ZLEl z;Vxqh3@MQAoDnQ0f(;lEL@1_|2Q|?5pN>v8Z=pT|&Ef?N!t%s!)!{2z7yzXa)TqN5 zL2=~@FfB(oaGhf9v9Wt5NR*&nX~Op`OY!o7A+c&W7!A;mam_Wr4XuUKZL*19mjW3P zh>sG9UNB(6LBRgUMQHr9<>;cT8{ep7WMEK;1%VCbwKQpM%REXsC#T9Y*P%K#KgtB0 zy`q_<;)_raYw9o9r8Po9_qRwcluNLD1g${&ETQ+0>bbiIgk>k-YuzsS>BRkCz!met zv&WP{4x_Dgn?g$7h=T|~5Vo##zC}+0G-9CnId1C!!lWz04EH5Q`Ej*?X#?^p*~7a2 zLP4&^>{+;XW{qVD7%gQDZG(hPAn;LHs z0-XE7iqjZ`elmI$(tG)00Qs9?^8c_}M_?Y_+hSaC zQ^jTw1rmkdRi3}uux#ea9ND#Bsp@Vj1q5GC>aA6_$m&}0z^R||ju7#}=9spZjXJg*S z0)37eOQE69osD@FX9v1jpv#jyPO0DPhJr3relz^YB_->XjaqAvIPLZ{FU06%ia3?s z5ODs|VL%qm`9Fc`oEYY*gNRyeR@s241z!}~><#3$Th!B?RI}g=qHym$)|>;-?}5k`4kh=1j5Gfk7o<28a@olq z2Ed#E<--^5I@AaS>B-#;60~C@J?ZG%9WOt>iy9Q9q;ayzf^h38JDdH;sZ}0|Ib-1} zQj9;a0UzW9gGPorLAZcQW>cU(Im7o(S$}Pt4SfNMgo`@+HVmC6`QL!PjoxBnVTpn! zSN{HOu_7L>>p?N#v1TS(dDbE50={$EDH)*zXypw|V4r?WUd3&CdQtmo(}E%TQd_vm z=3wglq?sgx_mtpZL8>Dw?8yrl5TBo-q_hex7w9+SkJa6Lbw6m(*)gR zGg3U!Y;0r%^EF++7nj^GuDwe+M^eo7@&*s%jy475RQrUtaz z2TG*~rt{@wXMa~*_&~}4CxgumvAuUb^DQB^CK-gzY0O%1o9!bbSRW+jVGaQ#@rvr|hd@A;tv4}OliDs1_O+GY$F}wI8X%Kehk~rE zXN7zQ?Xl@?*4$UCGoTOeYd<#RW~a1yE^SmaqEmNvx8WZ|JXNZyq{J}j0&Oab9Txl$ zwGQiUuqU~Bc|)6Jyn?@4?(;r+_z*K{Q8nLW>?joS+t3~bXGARxim>`9C(RFi3>67R zcVkG%}(d)SaxLhA*utF;+GR$#}kk>d4Im|>=duY0BDfGDQ{Nlz&)(-?fRP;ktC1tpb@11`0+u?X0%@W#SY-VLnuz8TR#yE2A)PG*oI+FElGvj8Rw{zdZ!9_6q?2TVzxIT~uy|zayUjrR*1j^jR z{C2V2-k!hxLsXvtIWdVpD0p?+PQv2p{-U%QNG5+cj1kluo((8gl+cD`wD3OR!d4?g z%xNlq7%4^lv$eI{a!UNklg7a!tEh^3K}=6@vay-7g1eZE11^}(z@4Aj>Aj&_H2}Ss z`O`{EOAlAB3OHKBn?RSq3mP_nVZi1~50*=U=q2Z;)A$6r!4ZA?M(a`4{_B_J>Zr)r zD+B^fQKod3JX>8uBYG97r0EiJl*_F){2L+s8-z;CIaPaQwMH}Z44m~owpkPbBtJvQ zTU;tUbuWAyLSI0;V-&x``c$YUYIvud3(gcZ^k%){TeoMw6Yd5)G&neM`^IBu`Bw{| zL2p91n_2Wo3p>of!!X2A(Q44Nkc{lEYzJg_)U|5e3V;FQ7eJwdW~n z=T(t0UyN16ON0WwuqL|FRpYtXP+u?hT=I{nr}^vYBOhNCcm`nj6j2;;x=q*f#BE}W zUX|JP9@rQk=I3n3;gt3TTz@b=G4UtO{*P;c$Z7_9T9Bezw%uE~5Pyrk9CR7QrKA|_ zdwd}tI5Xw@9}(dGUmcm_vd}md(@hGEk8zl7;=gu7LB0i$F1DEu{M99;ObsvHf`NDc z1>66POU`v?+NXX%OOQ0996kUqNymcogFw*%fKq>kQK+h_3WlaaKhT{&P?_tm8-#a- zFnNp}w;-iuxqYuSxtTG6>;|m~`Eh#A!JHs~Zk=^M_23~_d_|M2o~XU zHDZ%nXWNy_P?$wThqZFz0iV-heDCw1&xfktB5$PLnlppOFzP9yA^O~WYpNd1d27Tn zVAovK{hwo*3c-?{FwPR1sew*Vhva|Mj~WVVxNvpfBd=-pPa~=7Ug9a_MN8=ahM0#1hinBc+%Yo`HC@T6Kj_Am_ z1~V9%Ngvc`!pU{_E_hB&tepjOoIgLNKgdv1P_&Wbs@8La^9v(6OkNgnc1(@khsy(x zNUnpt4a6dK7g&3Y46SE0f}@9y0r7WL0Vp*CyTJjioj(7{m5lDnC@g;W}?f6ixbG54MQ_|op&u> zzI+MDzt5x`3;S>C)6!PA6~fIKodx@g41}{nkU(t6Pd=LLR9P~6s{Y3!9ggsMFT&%pP0A&!kWkp zc)S>ClUz#Qc^{|l!gq3<_qJD=eY#uC`k#l!jo10A9xR#s6opN>_JyWob#)c)2O8w{ zBazM?RTfyDUZ(Z&`?kW4CoUp}AlCi;MQD=kxoXk9a8`smfXAape&QgN35_!{=Bx6h zDA*qOVFCk!a01#ts*lW|u-269_h#3J!Xg6nVsL#+9aY?bUnq{b5K}4jb_)*&M4*+v zs$Ai2K4H7?)BmCNdkt~ixcwKgL1PO0kR$XQ%3W|+iAjoZ7ct9Z!NQI^SZEVO*h{{b zub3+EpXJs|#Kjrs&puiqzVom`ZmeveMpgTY)vv$>21d^$5LtpGq_?q9MnmQ~T(5Z8 zBQcv;U2P>dnzohQbq0M(Mqfoq=sM}O!E)68Lj^P0?k0<^&Qn3u`#;JL@MNhR)+#qg zaWE-cc2;?k(q%|5KBR|QY4}FqnVS{%-%a!G?ixvxXbg9=97+$apGl&! zcO6Nskap0Q^O`;k-W*~~9tbL^TRf%l@op2kMqguZUG9w4WYbUlMIwLk$B%n+^!*i6 zTiV(H7@c;*6^<19j)ne~V)ws(z6Lt_<;=WHLtsw#{4j@1l=b@JqkDomz`=`Orvk+# z6ilGt9OaWr#_FBoH^A1hW!ahvLj& znZG&3NVqaHZGGF`FChKwf^ZaQJm?FYMc3ag!sEbwvcO4COS|c4c@k$dpXNwO3QM#0 zlmwJMa2&Kt?8QM9b8dD$;2m&U*uroU-0{k2x%q-&f=Tz|n%SxITXOVn#+J+$b?=o` z&2m{koWQ%=#xlIKS^Ycizzjx=#;A(xjhBmgtUu^!XK%#6y?-3%6;&42MK)0qe$aQ% zyrHN-cBRF3?LBA7gBiXVkZ#A%p6zCeyCmf%LN9D6&~K`wDs~p_&wNs&zOY*1Ptx{v z;m7whEqxz$t#K#>{wJ-saIlKE=_oc(XRXkE^L>zONhz7(F4q}+XDjB%lF=mA?DH&F zFq78ZPX2MVVAr)AB5?Q1RwJYlUgL`7GL(Cg9|$!@pJS2_V?ApJ7a#IK3P-R;!YKwR z`+B*cADL7C_6V{GR^DB*(f6@M&!vIy zN$Q%fd3SbU%Q2{Na($YqwR>x;hatr>C|mJuYK+FL2@9itsr?Jb)sDP{pYgn(3DP8T z3o=xNF7z9%cZW&6cI)#-%ym6VoS{YcEGV~mZceIO7gq?Pc4<5a&PLv@Qi|V~SeYJ; z67{>f{Y#>=ElOg+)vWw*O)7OX<+2MqE}RMBpMQ_WjqqzG+}e*RI3j$<&mGg{v3y$PBjK#$!Fc=dF`?*)&B~1fjYF3vz6ja7D}x-; zJh0<9PacZMCw^OzdNLGUdQVSt)$7|c)VyH@uiahG#(pUd(UR&oP!YhS-?%O#u&OgB z9w1K7*LD{-*_6mq#l#iAGTvJaS1L!!KcM+y^I=snP4e-62OFQ{Hrl}{*y_Y#`pRIQ z?ZSf7DLK@o65G`%4?azi(Kqy4(KD=})Qc#VO~)<(p;~BE0h?wkG<_N=b!gktB}O%~ zmgleXb+n>EdfxaAY?>)E^H-&pU{Y6lX7(&g*n_V=b!f6&EX1L?FnyWkSstrcb0YQO!Aj7w%W^^* z-H}%i~k{vc9?efuZiqW%k*3LRTZgE_K-uqt>TNOO~(v zLhZIjnfp+q+oSA=quHmjU`iXDSQQqlN zBQ<LphqR1kz1d-GjYt)bslcUG!@UGcr#8c#=xxk*v$tb?V!R{IVs0GVEW zMXE~oLo>_lYWJ*Q|7NrgSAc$jU%&Yi$6e8n!H*}^H6Uk-dW)B(J}KX8Hr*gg+YGY_xgP@2PVRZZnS zE~OVda2#sR`rD$M(T8!I=BS#zjkzejwJ1@aOBXNg=Ag z;qlII4vdb*nD?$CMqCeeUcU5>^7oA+^T$GAt_~hx7`HGX zLZ~@F_cXrq^ZSEe=3mb^b*KccMDKNdI2NsL-zcdcNH|*&ky);;zi)n>G$7o5 zwA^htis8lT=xa&I5uM|2sNa;d#t0o+OUtx#(1;NqpmwNtS8G^?xca61?V`3;rulKv z+>+I(0>o}j)>-~hISo{cpmRfj2$UZqEJ#mZx-GoBQ!F7tj}ZXB-wU$%gMGeGNRohX z&ui7&|MKO_cF^MG;lnp4nHgKXvR>Eb+wecX!D#DXdu5TemzBM@(LO)lg$?fY%_toE z<;uc&q{89h1Cr{)?&y({ zZbGPw`mM#=F3zIc#`G`tH)DWbFwV+)De=iU=c3SVRal!~r;W>pO#4LXL|z0d3rL5s zX9W3#`%ipr_oYAi$VuP@R@|!jL|!($Hvjd*LK}XC8z25z5ZRGN`_g=uTd*Kww$}xo z9oAOZd|uw)*uFVa+p9iOWW3bfvvV;4dB=8Xl#jqJ`V!xlCs(F4H4_%F&VR@bu~YfF zw>fkpx4)&j4cZc!8tqSlL*SDXA+&=udU<>08@o1bez(F=XmJ`+kzH|Ew%n_V$p5tB zVqS|nG(VL#^*h<6=ZxPb(ix{!BJ*HRa&gQ7&usI)N+{CopuSbSqjV%WMDP&V7U{d! zgXa3jdp~vC9;%q$Wh*z-rn+bJO@*?vebv7Xrb=+lTzFox&4oe|CRSXVmafJoB!IbSxkN6JlQY~JhDj%&DF9tg z)e8dy0}_3@5W|h>maqN7HwJm5jcUAF@H0DK*nP=ex{)8{Q*S&_|4EcyxX@)iqAMBU zd?-q)o$FO(EVWliCTUO01&^rMH{lVpsoK^pwqVdk>G zH2d2s(E}r_Br4e!q^<_iBJm03Ed0s_Kko+#I`6K4j4w>^kl|qauwdik;-Xy)!Zl^p zqh@Vxx&?8G%gm>p4@RqGbeI^eIDYwJCFXN!yZylqp-a$H%+(T-4F*g-2*(YwjvJBJ ztX&%{<3@me87tVBY3nh{D=I3|)z#I@QH~5*+!O!sI`xx`2}OhFlJY!Vph4)0Qy*P% zrwrbQW!Bmvp_M{;tpPX-EjwA)U`)rW=xyrK;K1Ut9)@;I9311w7~K5YKhuU@_}X9H zrd>ZggJjwU>{G49GY)jHNTD(347h~;?mYCE=4Mu&GZGm%tnPl8*Yl|Wk+&bN9}Sa@ zl%o7cto-dP*WV^2NH;a_u&M1<+f*#0H#^b1(!$^tV_Xt)RQw-_zO{8OJvdtN8+&EJ z$)`&4f01j3yL6sS6s=97MzrhxT$XnIGGvUY zUBK{wVhY_h9OWjaJo4dKM(kBf#^2&fZ;IVsJQ5~WJ?H5@S!XOmr}xy^2Qpb@#Vc@pA|i1Qj`B= zuQ93a$<**|k6O2gH{cUJ!!>UDuDSj3Y;tcCJ4(fg%;y4v1&f~N%jFM#FlZVnREHY% zd{?GHB`^0TN_lW(4R{djAVyy=Xcw$hp!d+%e^=Pp%};X`DxM9IpBA|5yzEcV%N9zCBiyT4Jq3(Z z2PL6GU8LK=N`(-2cvO_Y%j!3MIr``+HU#0oR6U=4F zm}RJPALrEy>PI&TS39ULI~y_F+`!qBjn@?25yKAXE%0!-Xcz^b1jO*!Kuza z&k9`D`{l*2n7v9-hAROm#-I!2?P z-OOtI>)R9P-{{Y`TnJ;2XEMsRRkEYp-Zw zKw7>uUJ&E7Ttq6(f9GaokQ6WD%>tMZbfAfv(j*o_u7W? zG$V^&rpAshL0wClxbzC|DiT?8^;Oy`x#QB8_?O_%yvWpLX!Ijr z)qNDB>dSmt6LYwz4#?MPnRMGWz8{aLrcLv&t<%jy2g(G zNC`R^cS`ZG6so5DlGyG%PhnJD5PXY0beG8iny+rV>8a>GCI!-6G+^MZ3TTt81w3$%bc~5OSFBlv9Ze z+NXogl8JF*XMIPYeD;N0t)0WQz%R;& z8jI;jtJV)OJWzu2-~c>luxO^J*bVnbppEx3luDSm(W#n;OfTsY3~G{3Wq$3qNG?XY zA3vofxmJT-i=#eFvZrAE^+xU5y86T@TNMi~`w!JZXNYL+^P!lE(EwHr#fD#C z>xG8F-RbHFz1sd!T;{{AQGB4A#0>nNG30CxAn+wa^e^`1fFWLFE`wLOS$J;Hccm~< z&au(;bMco1dx;+p)OgLa?L7z)g^$m*H7lktR-5yp8NXeQt-h%9YtNs3Hm7RHs!f2) zRS(JnRpA8G&Y88B0;L)Rjyy#|0rx??p)`5l4(}2=iYoQ9CUScHeotpPV-@R)_Su$2 z&f8lOrF+vGVw5&I8pBDZ0~e)Z1eprUoE@Z)i5V5BpN$L!;3m2P>9m(Fd6wFgSq~}) zC4MT)n-o}Et>$2pI6QCM{giuuR#YxQ2exE)sX!AhU?4J>Et*-Bq8z6E1yS~j79dD< z=*<+#+L(#zaoL(5R4@5NAh~cbf=-Wgo2^avxvIJHoO4F(*!l^i7_ZW)uyUiO!C|Fa z%LmQq{rxi$Q^XTOPgJ}T$$t6cw5ZAEwrjXb1Hfajx6EKR6=JX;qHPa`pO{O7El^1 zf$fLMZx4)qC%tl`i`*wC?baK!dp_Ocd(dL;N*YMSq`?Q~ng(72thxBrMBS*_s<{Q2 zXMfe+jfxWZ_)$9$HGR%JFPA&^`}p%`riJqAC1%CEU=Nl#+i;hfd;C?eYmO z_mV0JGSnP2zSg#b&XVT_(_nJunmh2i`W7Xt1hW(3CZDdKy~2pf?cLTd-E! z_i}D&uqelVj_$y4{_W>+mJ4TJ&6PIloT2|YcHFX^x7xJ$KwIYI{ zSOk5m$6mgp+=gRFXr@<8&e5#=+|HclF#!!sg8gtNOQ0z=cn7{qzem;Lj zg0+a2dk;SNdZB<;?fcPfxP7E8)YR5iv08nK0><7#J-RpM^5Em=9~k>B=JCEKajK=T z!jP$&(MdS{+IHF{(U1BqKGMr;bzE@B7xlez0W}Ae-wP!NEnFkCr|`1ehq84g)+*9# z^)9c+ejJxhh0A1XzfOUk;{W9o9(yF;8oQy)&!(E3aI#_!nHZqwMx+|>WJ9P4Fn&Q* zcs-Sq2^y`IaHDW2N59Ql>oM>39buKvk#3{A_P^wEiqG6C$KB46Xk*scB}^x6|GqQB zocIlG>2iRAbS*tkTmFfvQo9O$jN>cVzFfqTTuS$N0I5a0AK(K6jhq}kTMBL%a;sO0 zG+E?hPssSpu3wkqygp-Pab=|LBuqC@if zb^rC|byn~O(jOj?Bl3F_ySyjyzjbPA9alwq5ra>@jq%AUAD6bD&mH$?dyvbhAT7Q2 zN&F|_%{58IuNEJRPfMt#(7he`ZP$5P=H)4NLzLJaNCvK2HeAn&c4}rRz!!3X820PK zb;GxV>;-puaI3QHdYa~hxEDfZ(9fL-c7)!cm%qvNcPA?)>ZN_IFEHIY=qR}0Q2EVi zCETXzQM@Bij;8x|6;2ODs;=^hhGf|sPt*MaJ>Pb-uY4J^Lhx5!jO)HI{bG0RTjHlP z$St3X`qC*~bTt5AU7C7&% zL&NeI=$fqw0`w0c;Q!(32!kf!D(D>{AvD0t&pcLos|)(k4tk4XSs5tMj5ygX5AMwf zp)u%GDnDzD4ZY4*wS>7EuzR3cYX53AP7}2rdcAbedaXb`Khljo)M8%q)+@P`pBbvX zaHXSKMx?QSPhe+|v?L!!+qvuvkqex`nPBo^K;68Y&z%%i*DATdHY~7A(0pMR1y4)iE8VBeTMm zczB@1p9j??(DV?;J7B4rSxZc&nnJRuLH)D{2+|C`36p^cZ1*x}lv+;I`DRfc9)7v# zu+{|maLt0uSTE*M_rSaj5ShqlXb5aabyh9y?!ks~83a|ubc2xXj&>bwYT<8FZW~-h zc?wpA(6c_&Lgfw{(_o`!J?ZL;?nIBuNy{20ByJT$qJBd90{^Cm(Nm?DeTg=o+doP+d7!`n6{4 zJ@tyNe*h_t%!j{O`h27t?8b5Pt>T6BQ!`z2;rEOc|9#D0wtIpu`?r*{Cou{zU@^5c zd({mmSc{&x*I|NmlDyVUv(yWc_<;ae?>TuImbp58jY4<*@-S@o7dwj-v1+T4E zD$MJe+sX^q<9j`Er+?bpc0}1#ST;S%$^9hWReY6Ltoi|fA6?~t+`N3U72fvp&;ST$ zIa;}CB9#&ul46VDLZiuX&r(}rJqlLSPz0pqCDwD6a6zpnL$d;aEldGn+>m(3@Sm?S z{A3FE{j`-%USijIJm!tB!}&J&3!K%*_P~d%Pdt%k0kn9Tr8QbURbrJ~GTmwaXZK9{ z)w?=1-`50JSr~+kle2pWFY)jjydZu@ftIsnu${_P< z0zzaC{8w5p5fNhPYA&bRJ?MpTT`eh8oLr|`F+bka&=T(|{7)scd&)xIo*Mre4Ts{N zj5EZ=!(#q-a#cwgWCrSHypirzuYM@X>>AI+=Dp;>br)@r47)8-m=q{NZ=$Q(4~A6v zvZwotjiEa6J9w#-tbboB+ni*1xU594Q)H#K4RyKpAD_gQf?oUrP=gS|L)xa2-b7wW7-}|d@yj^87 zNMm7BUjlwa4V5|VHGJfXcD7uoX4qL&UYm{MDloQl_7d0~XVBKSU9>NQdBYrf{8tB~ z1zmox)pMO{{bo;5C84i-W;oXnm2c_|*9JP{#Pli9#9(I~e~*|#g&P015{7U%e*Aa@ zi;`EHAauc~>O<4h|ZDT82pwr*!{V@{i(3-AU5`7Gso)67%&|Hu1-95?!fPQK+- z(+i7y@ZkS{-(P9qPN={7h7QuKyLxP9dN|-V!!?<>x|eX{G}Cfw_XgkL(m(-RW>D5G zfxLLoX(a~sg|C9XErg!N}A9UoOky0NHUyny&JT9>Zg>_OqQ zQ~nHc!Cg;+d@~o8!gENkNE{a#aMKO?&VL+2img;70FH#G;pb1c0xFS{k+BGn2)r#X zquWN<@Zww}A<12NU&rKtYdICbc#yFH#|KtOoW^XkkP_YHR3ELoRpGz`Mj z!I&VJQ2F<*A7*|)62G{OOaP8B@_ELu+ zUy7L!PKFl;+do)TIit8%{HuT^smCwy;9wO0F6Q4_RRarc+WhGe-279AapPJu9(CJQ z1f9(Rr0t2)Jp*P3x~pFc1}#JW?8ENSKD_sPlj1B@DH8T+VEB~PafR2BZci_KjKsnE zLn1=<17^r~sxQQ3PQieB2n+muc9s|ya#_&0M7w?g^DcKL#ztW-eVm_Axv~ZQkAagK zyv)X{36dKHrmFl-+hJ4!ykgGA`Aw7f2I?wGhN?ZY7qt8Rik#Q^c=)z&QIt$K>h&E1 zXTV|#c7~spjzDwB=|s{ZhhPzrs2!yr(!ez1X&4_0t~6ewj2Cl^hDw_I^MbTy z%qtE@VC0Y-cPL#;q?^q`0ywt&t0q+gNvb;*rn1;QzI^n#DMIH1No8E=o?K#jEG7I9 z0t)7M8+iP5<-r~K%d-RzU{%vV9__*rO%I~T=%AaK?xyv zX@4M9QNZr!oe|YCUanoP!YD`bd=Zc0y*)MtWU#|n+k2t4+BC_}S6v#eza#5Yf;-TE zJks_DZR#^Ce?3x4Z@2klOT1jxv{a-DW?@tWoS$rcAI_R|J85=$r7uTocXh;isehOX zN)Ojf{MyGG&?8)Dk@TA8AU}vMMOl1N)wSHy$3~Q z1Q7)Rk!k@%N~D(np@>LVkX}L$Eg=v{0%^Y;o%TLB&-;G+fB3VOA7<9#&V8S=_rCVE z%Q;&!?~W+vi*tsKz01g#f>ru19DIOx&@c9F*Zr1r!tw-yqgkDBBohvxJAHn7*MXoO zW2b*OPwnQHxyVCx@@#|7{|-*Xj$0t!X6(un8`STe)GKn&&apO3GmcI^Fu0WK@E$9u zbE!(RB!3mZG%k4istwzvHgEmQMVRBFd~7w-F)hxuLnf`Nn{biv)gXhn^iQ-W;yRb} z?LD6rwNZ(N5UZtRcm=B*CKb_I;e>MDWbt@o`-=8Lx4!4Q+FiP5lZCYp+l+jXSx4%C z>sqAyW^-MLS0uXHu(ZHi&F?FazZN@Q8+C;te(YbnTCAyTXO9tr9wyZ~h&g z{=1&sK&850niTg4tAHv@`vj=(nc3(rsGJddikjY@F0aY4!a@SMDIu^mE!q+0^`q1P9tSF6W_MYb=q=h z^RwgYIdXIBT&!DDBRkRu_)9aF*}k#qE+_tC3CaedbLFrKy;<&JPT!s#-LZUD^qYOg zv>CU)nyBAagI`j@je z$K=(enFUn^NBk3I+4MM(@8FGd{R6z?WlPqxq-TSGdm~b0L75S+5B^siL0QlE?@N^^ zehX^SMzvn5s85|R*yl;Ng(-rzm8ZrV3wEC$f0-_qt6!g8r(x`ALt0&<9ur31Cl%YZ z06Y_Wir5wM^>FC#M4$C^o5?+Q82%X9nXRH;ff1?azuA#Bm0_lIqP`)T;R?LxQy`Yn zq(cDJzgc=u%6(S(;B3A7vsSIV?wEed0Hk;2lU6u?qHOZ1yp%ZFq#=&>%7e&H^X5iC6`!-`q9!r;B0DnMoh}QxN?@Zg48v9u_8V7o}yJNKYXT{t@_oG4GuIQygW76xX6JJ{76{xW_yO^ zgz32)u#t`&>!~_L)UNMIf78V8?B(6#`-4lLqqy`tSa{8|A7R3}j?I}U?ULNN?YZLH zTKVlRrnl&+CDXu0`(5y?+s>I2Jp6d#aGgNn*{b64G*q-**`4El#?Nl(;`A}PQfFN^ z=S?vwG?8Ma_gMxt6^ezIUP4M2=jQfCTREws*voc(Pa(tr4^G77d~}Q`!$gv&cEucO zr{Mod7rXfdKAh4n0q|KDR{pQ-5S+ua=p{8=W{C z+KxBwLsui`t!+CF;J^`A9hwzbISiR7+2TZFprO5Infv~R=cWe!6;D9T$TLj_Q&_kM z#iQ>5pJrhWx=(TgNF_*TDvMtdw-CVH<*)jjuwQbYCA3%uov_>e?j2PzIrITO!3hV}EHa4G52aVn(RhpS97I$5+Q-MV zeIOJLedQErye|RNSPB=CY0{99ZWVJoOzj$Qoqi#KYSo*&4Recg%xYf4alJIH$cK&TlJ6L+jqA? z-SC44Z5pbPTcVYBGYj}7!D<0;{z+NmOz(99lXHqrLHsK{{XZ(gPuW^oWfTOvDJi8u zS@2*b6YVCDPmgj(Pl@0TC&JnuDDD?PD>`GHD--7oIw3%iHw@DqWOn5TLHgllR~{C+ zF-f4Q8~3%Nd%NikB{Wk9(J*qMw`--HwG60BeERtupzbrNl! zq%Miapn}R=xIHOyMjg#*Mw#c|EH4!eAl8My$X$!>Hr*su6?5qNr>aRbT8}AWTQHgd z5Z)4;g7}jPZ*Sfiy?_d18KASTmHu}Cl&vW4_-S;jXd`;yU1TiB{$;EZw?{}r!T?R| zIISUe-WHr9n3sAJc;#x{S?~ zL%p!;PUS&<)PYssX^NhAYR&niAT^Imt0dWxaVY7Ppgdor{&y4!0}A&Y*5`0RpSW%c zJaC0%*a8OZuB#wLAUV`4spZ|FwkPuC2B2RT9QSL1C6YR6Cn3&C(2>-mdqPoK(bo9# zd!x>+fPtAgToAP2Hs}4puIYz@H(Yzx@Kx~t1niqSj0}Hh($Kp?jW6%s>tkAStZSN+ z9YP;MuI{GxU2bdD`Az?wNniR;q<7hT$kzC<*%_*l3v2AY@Dowx8UOX2X+`eQ%Gb+y zO9Kh9I2?IdqY1R9&3@I$Z0yQj&918vb!t2ntl|GttdB3EA&{$<_FR+3envWSLjp z+06x6Y139lmLxUZU2Ow^p=+{tec-0dcmFSO4L3aMo9vTFH@%37veLCZar+Oz&oTNF z@SAiO0zN)_^-lnQ-u-_8{GzC`WiQB#oTfQ#(wTItWXP)xwL-%AJNWOOTz{Ec)D3+G z3}RY_nYfWsSsD>tY_SMqyN}aWq2Bh(L`J3?TMFCk!C_K(&b7k zqC93sxbbnSAqskezIxG&S`)MaOd}J7)LqN<^k)O{;s-{UedTCfI@ftw_Y_ur3ZyjR zQ?C}xv;%TgPS!^$%|j0f={~=ZC$;@vH#Qtv=>&F=IyU~{#wsLnUX1=Q*+}TpuIzO_ zx4)DKK*5SMU3MAg9WA8(!uX+4r@B``k8`KIuSn5QSn@IKU(0;r&zkr3_mTyZ3iVpK zhnq#M{%_IAm{;~!nNL~n^x!drB9qQsen~h2ZldN9a{*%<%?&I`-DUt5RnB{Wzs!v# zb7&i;x!?1w5{6itaM%`MW5Tu2kR|O&8w!^kZHzYps}enUYfWK#8_Dt!b{8-~=k_sE z9Yf|6FCTS|HHq=(^lK>^ZHzjde*XDi;3v#Tg}5jUdI7VIc(BVTPfRW^&SL6@8^jlJN#DbZ zq~*&b)_Y`Nr2ZLRuxjHA!o16HI}C<)dI;V9^`M}@`#kavX@BJYzM35#x%_x^S?g{? zw~g#K!Fo3>MUNyE-`z@=QFc+E3RJY$ooEu7D-S6`!ydP61dRdmqwrtI&v0gr-Ygt6 ztRVN{Mmw^LbnI2Owk=Gg?(nRY!Kk`J;0esa90)%&2t5dpo3~_ohV0aUIDt+j1`z5P zCUz=^h4J^S|A-)*O?A}soi4TXLY!*bnRD2+3{p3VJ$bAj(MLsmc#IK!AAhV;T~Le^ z!|;NtP8n@Ya+ii=QN9s&Kv#8tdrdrNSh)C7d$oeM;w<(I?#mhM4jgcTXWML7^*AVp zhPEfK;N}8?b+5sSk6b)?%zjBVW;--7KmqhrxCl4j$8Y_#U0$lUbE4x?bAUeF;F)UO z83w7}YJR)lQk}HCr4k{wT&sC9wfnFF5b`&Y6XAPhdmk$(pN*bBS4NR9n(?D|i=ddt z?RK(rk+T;s^@IMEBRFJIw~80Nua;wdF+}5InzS9{ zKm#SwI?pTw&m=&iXetC4y=7P4dG2Pvn6mS)v0bn3PgAJAMfGtr`|3I7OZJR1K; zIK!@3S{0)N$u(27W=8cHsziTm_vDvXPW~D@J@QRGsQfsUIJ#A6s_KA?E-raSfM|hK z85oYlbO8l}3#;9r&-M|L-mD+Hs)r1ntBz9@MFGqWC(?xN##8kny=Dq+P*-wpzZ`bq zgXWj&w%qM|E|Y)brY)en-unQ`&`-GF#+=@kE`R({Q4y4>m)Xj@h5(;=KlmpMpUYTX z_H3JmTuSXd8v1E2ZMVlGz2<+bMcj!-RNj?L6YhQ2k(&G;$sA~Khy%j)z{Qy|eKOkd zLVy>eN4jtu76P|jx*3xNA!6&CpC|MYtwHCf}&ArL@Le0eo{u=VO;K+6+se}Itj zwyFD}GL@A&q>gOWymXgI(dPGhniS|qO!8nX`+m4}_(iA3{YlwfNE~MERXC_Hgp7n~pgXOEBgNzQf({OG| zm;Qy!_SV#9)OWx8sNw1j?IRhu9etFy-a>x|UEkp$l#1nrjmXeQkZUOW zp(?U5!fTkK4g9|wWpQ5ld3VNZVm0MPL+V?%Za=&1)H7jni=i-%R`jqm-J6x=+ERvO z@56o`0RD3^{jYA@iq^bbo9qHw$I!>iDi7yC@?9ULgr(@?s62{*ZD?=T2G zlQO1v&I}X1YUBC!f24j__?{iw-PynFg0>P5l+V)dlrGiy?FlVIL#*~Y2UGs6#Pcs6 zJeOW>Ugw@=kU7~9L1}v;j^R3A-sLm?(XmPnj*$F=&OH-5Z%D#$W1g*@xezpoMg`%C zU*Aw5F8QD7`e5sIaL4FseWPYYZ@BxM;wQw>^0$EW!RB^+Fxl;lCwD9Vpa8*YfV5By zh$CBVP>=9-+gKbqZxoNZnI1r~#k27ugdns_i9EX9w!0t+df}n@66OIIt&6DUZ_9V6 z0?#MZ(@1H+qoKLbME}>k!C>{$bf}C3slVL7DZ5u@tMfm#$URWymzJ{;`*$cR(%P$c zxe`hlLTrD?yuz(1V)rkkPVBgpE%R=Fi}vyW>6L%va|e&^WSSWk9;x0XRkF5pAdc9f zoR#K_-r)ZahET;*<@~_Go}}J)e*ijd?f}i)sqMMhn?0JC31Hy<-50AXafg2q4Q~Sd9DdwICdhU2?{)b=bkZ+J>`D{RiJXx1^4BzT%M}@Xq-&0 znyJbB-0isX)yHED2HwJPyd@n@^+0dfJh?m~Jp`KdKS2NcxA%GjAB7`vGmVn_V}!{8 zs3;1#92X$<v?`X72>@Ux2#a*s$lS0I;Ou7Hv zr>m?xQ}n5bTcR@!2@j_o8(LpT>1FYuPwYM1S?ESND&1Udd_xa=Z?_52^aI>={RfGJ znmQ_{Lf~y-n($tGdcp%?v9(GqY6qBc#!^Rs%y=q1C_g_`jN|or{LlA@KemKwS|)Vy z%!TTb>wRgG%neYag{~mviufz-nkl#R&zYtC(+EEMo~761xZZuPtL@`;Q03(J0)F`` zp(S=t|LQ1>Hy-FIbaOa*^e7a?=KoRys1ZVyg0T7dEi?J__eMuU)1CKU{_Xt8kHqyB zq5XaGU|n1PXf_ac9iJDxxCLN)_vByQ%&XGw@D`|U{!GVS$h5L*y`=4P{6}lkZqx6z z`wz}SBh!d`XY)Bm)aHp_+OwT*LeGNwiX#tdC!oTQXd&?!NgR2)i-xNyekr~UoAac) zvjDbftLq8B^0mmG8i_3+igk7W@y9Yb7^-m&cez8^e{tSFdr2bNx!L%XZul^t&AKFX z_#fL6n(LG*`n}x#&xVczncRBvWh@_DLVPr#i<5@QB{CF6{?QBT!l>>!C8u>l))V2^wv+of<`s9Yg2on!f&m?^WK-#ErpG4&yYf+_CJm zs>)~;MipUL_h_o7wof@%v`06)&&mcD5S2Nb?1^7t&LeqUCf2H%NyG_u3s^C&AVKnp*82Ex}I@+Q8BN zrJG7KZ`6&u&wg@~3FWOy5mmZAn_V7yeA&EvXMKaQk+_O+6}w5m0R4*#rAX=cWP~f@ z_iFd64&(Q)7)cpZv1gc4hszvPL%67O;jeWY3@qoad#$QW%b1lPMpWsj($m_EySZrc z;DMnv>;Bd&LrXOe{Bh8&UtEaRCR-ftX|Ht*jPo5N5CqmE`l9~QqED;2TC~meQVLFu z-B^8;2J3T+XO+lbDoPeRb^{so1L+-A!UZ1t1l1Iy4hyJY*s`HL4zYr; zP+VnoH^164P?S*K3a`W7Ey3*Lp~qd}&%NL~V1;ls)woO$t)*C@XrN?SI6g@f_y>dxVd4!)0#v2ekTc>2`IN zOK>z>VxRL?$c}k=l|F6_<>l*-#>U1pjb?aZaTnGj)(mY*{=;moy1tw3J&Okn)9HH^ zUbYtn*DDTTi`a8jJBN-$Y^Zhhx;2pLjGoVbjqv&XXRo8;h8u2sJ+qJdT`e-V*!4FZ zc+A?6k((6QFn^;N>%Rn1`;(7U^q^^}&Ro=|Cj71?px?ln3a!4I(astrG@aU(S`?yub?O0pm)?~Z{HSaY7 z!Sw>?CI8-!@@uC#uVT*{$B9W#)QM)a21dbu`Re&jqPl1&hY*PGS^Ho9@%O#N>p`3y z<2u!M%Qnsyvzzq8cJZAV52+F`&l<^fA;_KJ`N=bH_#MJ#B;Sik--g}#v3E&Jt<9@l zJiOA!jNp;=F$?VGVQI_3ar5l_%Svl#vn}Ew1 zzG$C+O+?q}3x4z@4`!M1+Ug6wwH<%yq+8rsL(@Va_!pYrmZ=V<<15Vz)5LzCqkPf8 z=QAvaj=ZFjx(;T}p5X2$yz2f>Ugb)8IN`KSN}BHmY{>lA`%2Y!4}hRJ{xy>q1rbLw z{({H9H1AZ3q?#oc;CT08vLxvh?_EN9N9msJ9fdmy6W#fm=Mji1^9As*WolHW1_WfR zv_>J{CKr=SIw$yiB(jJx>{w8%w*%qx?I$1CHpiAyxH6+FxD+&c?)fD3g5cW$+aTNl z%y@G(58{;CcW(=)1O8UIAb_6vx*o6UyLAEhmy7{GhmJhDw7QrB8W_rpIM=@bK@?PtRV+?@H&$CA4sd>^Wz`A zB5+$URiH2HH#$l(`{)K-iJ%v*c{iYUcP>L_XpLE<2<{+PbazeFQ8~^h1HAvRftiK+ z{AxewZ71g?M(p)O`BY{YyHge(+ejp3{HoScgf#Id4_y*0AaM8JPulPx-8*)PRK$jG{2YnZu$vDNm$gtU&&>f^-#f1K zTYG=8qW6BcyY_K;0HxY#oy74}mG#RI=QU1g2PbeQYnZF6?=HPQS8K)D=k&}TfvDcQP&lDnXdZXZw*Nh& z$_YyZTU0vtF{aKCrTUrxK(uQmB5u{s*0Ud7J|h{GD7MuKPr~eM9s^wb{%NAFSnit+ zEqv1k!?LwfyY8EUrsN6$x`>6czOKOH zBY-*`Rr;+7nILzCi}XjLeefs4;6>PN z{>g_;ot~0*2wmat0Z2?c`B+~NQF3=73oIW7jPdqp8>rs$l8e+;gUi6<4LcRN!xqEz z%%A>rm86PE#gNNxznfRSc##txB!}|e0h3cqy3|^v;sW~6dt@O}U*9IRxq6sQuWkrW z)f4<^ZIo$qDKY?H(9Y*4U*Dc(Hwy|Kdi;PEr_>EKYC}4{pd5{HD>lpq;G(iX$^{bD~9mlUC3h})(uzK0__HMPY?+jnFG|V zzMBWO8-a9w$d!-XLM%E2AIQZ;kdGFa0Wy#;wPHP-HXAc=RW>vvp@fmz$hQ- z5aA=&9XYhd8o);exi9ikxfq-N}P6{mJeuKDf9!i<+}&9gEPh2#<@tW1;t5 z^pA`FanV06`o~58xac4McmGJ|Omx@P$eHFJBIgDjUAa0#$oFlK+0&(3Ti@Ic-tnNl z^{so--j|{4j;5T9-=Ot;MfI2E$IfJ)e03T9TgVdR&EVy`Er0WEJaEio(nZaVGLfxG z3-hf@SM$al?Ha$6I-7DBGu~T}Msei-;IVG{)9M^mpQmeM9ys!ZO6-9dfUcPekd2>+ zxnFq4S5|1V>3xeWMn~fLG~qI;o{3sWx?`ob*mhlm8sMfrgHs~sMoWVchPyREuzID+%7tiMc25 z0zj9qCq#_gN8@w5oja!pv2YPAnGwsjb8Jwf6;h%nRXy`yq6vBmt}|e3BxBt2hWPmwbd0D5 zo#cXJ3@hU1^f2ztA~<@5RE%psU6wo45r#z#?vQt@3doze2I5FsC=GF}4-7>|7Ly;y z7t)F*)w~bS&A&RJZ{*axjUcA($>_wZd$Z_$A+gLs?$!M;RL7H`f_K9+dR(SwZN0_~ zrEugvKgr_hYMCG;hpZy$%_(n|R22V-(3BmN^O1NFcVZLFmP=SX#{>93e z@-n1BvCFQ!&k*TZ-)D$-9SHQ3H+JcE;%-@Ad0zm=b4Z3W9gY)I$GeZG!UQE&UpWoO zVF`JYeTCHNy|FODjysVA#pq~#g6|iOrGJDuDf3(9)Gk9~7unnbW^=cx@w*KyHkUSHLUreX0#)NG6w%-Ru*72L zLQ-brRc&|nl8v;@mpnmBmT>2OHlQ7ulOjx&%GkMr)*_NaETao1uvMbxQgzt1+z~=} z`X@yR^}+%1$vgr~;mYgxFDI1i3!;#odECuFkB1k}#8=wh=|T7QR_OmrR}s^PIRP_p z5vPAUdhvlaCzm&^h}t0oKSuB4ZnrAAgjXsS2BfmlbF`&V?A1X?Rc7sgd?DQC9K*ng z+f9q`s?K~lUWq5nphU@&QMA+`_7Gm!j?4xfus|}}v3M4TBQMFOac3C8z!|scpdM;Y zZZwqaQ`>#9ZC_;w0Uto|Eqe2|j*7Y1Rj8gloBsu@Z&ju#?{jqhnFmejMX6$|P z6BLqJFU1*VO_i65gCaA7R)`sS%{IIAxDn87IS$EC(rZ8zf7r9quVJo)Pn`^t`d|jV zVz*4fTF~_M16mzmdR6g|tZn|t>wseBkUWw#(^QFxrS%m`N_Y=*#Zrz@2BhLnIwjbo z;l_<7=V8pNTaO5AD+$KNFp=nRLNxb|-^AkSP|Q`Zyz(h|Q92iCz|@$7$bDq`K#-(5 z2jE0$PNPAUQY#BL*0-C58v)AsA#07`cJD6yjaM_L;JBcO-GUEY>`q(kxm#>nTx`W$ z>}6f-&|U01UToZ6Y)4=0=U+Ufuz2=j@$kyxk(|XdP5&RB)S{y&x`iBDo89)3JDmMx zBXjyc`aj9Z$xcn3sLjr5ye_cSChOd-^Z102{UamQ4>8S8E*bvvpm?Tv>!q%?-orOH z32fi8<+szk>-N2Tet!-7(Y-IHwryU0;M!BfqrypBDI>uFo!|0$wMYa9??kCjzXVSf zH8e3)XCP4Ueo^8)WH9s=24po{~a%^D z+sV(eaq)bHK%OtRN5K7`jcWX(cYL4nJvH6lup)n1*330c1cFC~YfMK9q_(KpteHjx zKOWq)CD$iR;x=^dT{Gh*{!Y=hzpY$-OyWrJGu3T_8^1LA%JLwVrhKpDkH*}e$vgU) z_tgGii~C(muDE}IYs-8>xq0f%-62mU6j!(*PM@59{M7J>rclmO#F`Ho+%tG@J=Qf2 zEZ-uux$0ERT6=+;qorX8#Ny%>CAX-Si#E3iD2r&h=;s!l_##7Dq+g5Na*;SMhCGY$ z++wi07>O^Y85VOWi`lQm)ZSv=axp2pm~mcAr!N*l7OOmqC9K8z++y+Z|EHDJ7YW0k zc=L@I?t)oLm+?>W);0Fv*hfH;oa1kp&3S%_)5PK ztpOGCq=gmo+NE!koSnZ`_X(@{eat=}{{C0Bp?1T{gNhR50|=jUKdGBX_#Ci~iP2RX z=4ses))^3E&|>jTK&XBeMwfl~mp^~8SAjAu)|i!e%LG0vbeohSv5RPlK$I^0{8trf ze3O{&KBcz_w`QKpDr|HYOtSP$Ph(OUXBa{4Snq&D9z<09PdW?E9(j35F!r(v_Ort& zjpKC*{wY(iWo-sm``}F$*$b=uyGfz2n^g{{>Kc2tjn%Zc3hrt%o;eF&s3TP1p>LVZ zeUtCPH{F~IeAB%?Vfd7TrcGItaBWy6!|A zS+!8!UqBU%92&}Fjw@4JNzx^1O>A>3~`LQh(UFnmq(cP}=@l&c%&udB-Wi>eAE;z85C20I&;B1XO}-1w$otI3=1+6Uor(Vev^5)>c8nn!29q+-!0K|KRJ%+wS| z(_xL=w>vCUvPJ?PU0dJ3vf)*e%*4K%lk>7M<%Y?{x4F2M^JGa17X5Go4?-EWK)VOB z?CBpn+E2tBC*)-2y&jxbQS-|^GcJ7uG$j?eA#SQdnft{l8na^niOnzANZ$DG~vAdcKy_!GJV0ZsuPf>bf(S_+in+T7cq<07+nE zxn|)90KzXL5I??R^dFs1mtc3j>)jHw?o>xv*oqUB?q?+48Yo~`sNSjjaQ5@XCsEAm zjB2m}2?0dO*M-{BlA->FsW)9uxaM`-JC`R=zQt|5#q0RdFZKQY)z3l%JXY;4a3ATo z6SQ(8!pC``wWPuy<OH~EU9d&b^xo^+pNsz3$ARZcj2O%;ETCs$ zgVxuM!)EpH0(ZgaDtIZtnWT+t^BY%PY8rmJ>un_nGPE;$GBfu{an3< zg@9}YLc}ZMBR~X3UsxNF{p|JPmNsr?21B5^8;#Vmz;@n$)pg#epLIZd+7yA%ezU-h zeC^Q9PS4X1BYaT;Tn0-W2DoxtPgJ>#Cxgj@EGTj$eS20kSXS-QdzDKNb`O8Dr+p9g z9kA3{F=f9%-Qhg|SI>qw2KC>6!X_fPfUw`B&&ml4O7Sz7Y;crj_|lmKYE=L>ub?>^ z%=iVM20r^@U`$3Hp|=Gu_@QWI6HXj~=)Jwre$8ua#fmcX${a?%2r3p9zysj|mt5DU z8Yg#VgLg^f>yC!q1gXbF&b0N+8gf4)^U4AMeW4fRc8xM4*6?aTxv>lIyQkSjYgPCns&sz2%2Gsc*H1nMfLlMvt;As@Z+}fL^V3&A#zrO;JWk;O zm(wR&=wPTZdFE{(e$wt#Z7MkT!UqdCv>o&UOiI;Ha17)TdKGN}p5R;Y6l@UJ3uMuL z?@IHEm2jj1c+gr&A0$E1$`)wIr-|$WBLLtjG3D35MbyDS5~8ufbKXLVg&ovwJpO4C zSJZ~@>WAs&91zcdHo_b47Er7~Fl(2*KD~xlCg8P=+f2@Zu|~61x^=Us;L~Ks6?W%Z z;WzMB+Qh_!l)0=%eCbc*Au*+Kan~Blxc$_uA=-=bH!mAcZi4mf`}Vf=l~B@UggN=Q=d#w)I;&sC9sg)8K02gwXEBBM4%13WNI?~HQ+nT zBz$45lX>{EVuF>TPJ_WdyW4=65k}$d-qhP~A*$UdzaN2>X<S7xc)3g>{$pid+VLxyiz^PmR%j>}EI_6%0)iWDunMEs8krz4lk@d zm#UZdMiZZK%~NfJ1XisH-kF%E0X#Doj4}lV9bZaWP^E!i1><$kz)yO^cED3=@tL=V z$d86{@vZaJ;Zdb{R%I3|8Nhfw^_Lm&hwqAeYt!C=0RxdWC#-kGfpl>PTppFKMIgAB ztS80(-FF-n1Hb}ASgjBDhj-9$q?*Qf4)f=-F8IL4Yo-+q4BguhK~wb@&x8H&Otoo^ zWJQ5BuVy>tuy6S|(Hbsyc>D&c$wmLeX4=Q=cFL?kl4|+KFAO=Hc{3h;uc@gZ&umb#5Ek>H^KC$xxu{pgWnK-f5Oi|I2&)HOk--m; zdf9tm1W*gM@A=$dBI^NIJ_{To=-i$WZ_Qy{vmRji{rbEJgq{DwRkeUa6ez%RnaRFM z%;#TmPAyyEm8xWjKrX3ZNA7c|F3G6RlZSe>SS>zvO%D4xRooqK?3xBpF@A|1)bdgT z%>yTx@&iY{&L{I6(yCDpDP4j<1gBoE1EKx1S-du<{z_I#!#k56u6F>GmC(Kn&FTc%^LU#dA01?AseG}`#3@$qjTPmR>~V?1Y~g zu$|H|{}I9|vsqHiDTGGNo-Pu~x=rs&(e<)gP?bSvA{NvUZ0^9f+Zihn(HC|SEO10! zV`Jm!>DkW2_bQiugb>gE?Bbu0296R6u-t+>S}cnlgv^E8&R3=}w}9ee_9T0j2i>+* z{^lNy0{#U~Q;em^?wo@+CxhJX3Cx?S-v*#ih#ebgKpaW@rYuY@J1#`pT}Pds9y@>$ zNl?GJvjiCUmuK34oo>iH?rPI$@*O2UaT)05qrkJJNuk-6SEyC$akG^S3kf>7ANv9( zTNz1-sbzGk53fe69*KlFr$LZWTq*eUNlS!}QGC0`lawDX(hswUcGDs(Nv!oyp?eY@RL=*FND;a@=E4FS)$r& zh$<5A3?Blf1QyYP>%vXWbpXPqiK*YY(@+Xq`FwT03&c9$Q99?6If?86o+n`-hd1a? z;Ey6B5b_vpRpAfU%5($-1mF^us_N?Mx=6*=)>e%l8LkU|9N9Ot2my*gQ6Anli@j6Qj} zvB=q4uYvJak$ipX*oXoTj@}bQsEZ7bjpYo6=(NCA;fvL#|4?v|``p7V5lxKZE7(rZ z$HZynVUfBt;I**v@mfB=y@l1Lj}Y=(SJxGf4KKqpwMjVD=Z56Vq+rzGa9wqTy3^5? z7jxmWXeI^4A--RdTVpKlva^>ku(KgX%>$(J;K75Tp`q;T>}UGl(*x`CH!tO$M~Uj8 zHFtD-_r2nC2{reKX6V;-<7sQ^$+P`$gsf4jj4Tc%T!77Lbzr+S9T!Ryr}^sP3lf<* zwyD3+1N)7Si=YnfoqSy!F(N(E!+8|6+PmN6_)EbLB?!3mP^I0^+ zcy;6s5Q=}O)8}PdxF>9eXNu)tg(0yiYYW6l!W}tZv;pWZP5d#h}7J@f6#qhj`XK>rF~>rME3Z zPh}T2FS9+ohRo1EVO*bmyoF=xAL1Jx;gf0fo%3B7ytjti(BR;X59eyJuI)zo7v!e0 zvNE_!C?g}oo-$lFJ3DK?^N8{Vm4j;G3NnoMk(AxjPx9$FTH=8E)aZBt`+Tc_+{ARB zj`yHP5VQA1?8c`KmNvExp(*R! zLg;-K^WRLCFIkSC8_E?Yya=kAV+)0MA7EZ&Kd%UYTZ}4^uIxGV(>Z)?XQIm+)Ww<1 z@ic~AxEulHL2PbsM=H@2coJzA*&LKO#TNgK52uHJ7UARYBX#zVjcQdQ+2Ar%v4c&y zvYwo{2WSp@nB#GjDjyrcxj4j>im8u@2xkTID}@VPZRFTeFUs5V5;s_6(to1-7Tc~s zZ1s}=Eat5-c$j$(YG3~bwAhY=!XM)8s7xL2xfeBT^vi?!PAhu5(R30cfkQ^hIB@QC zcp3FH54GVpe<;{IIUU(!*OHmAlhLS&&%F6HtH`5frGR98VUc+qQ_({zdTu+KSvhHx zM^22;$*}3ZcfH(ZOj?152bmawP~ZWwh$!+n!ma2Ny-AGrN=9eW>?^ z%4n^quoSx+uH&+#k;2!nS3Tf1{eo6Zdo6=0oJdME&-O0S$GJBlITV_XYqFX}eGuFi zB~&*MA4rI2WPsU~v(LacJuH2DQ!Dg5NWyXwM#7EhWB!KB-StXr>_VFm&}En z=K$!gBc*4rxjW6b3g}865Z-*UQ2ESv^&tDALn9T(UqrHP!ciUWddyROI58w28R_j+ zGLxj!%?zY+eveVZ=UR6L=b&o~S!^2W4s!<$&+7gF`e9zr?8D-{`d;kI%`RqHps8PT zbfzQmdzAXlmOR}O%bCRlz|y1lUY}X5ICIO3BZZuMB^AqTZ8c85dDB&y(th#@)4sD( zNWycVMxK+w5@LJ}D)t%(Y{k)U^gR*R#LcE+V#wyKQoc!2>!hw>u3S$hAt@yVSI8ix z2(#B(bDD?3U23Y_dQ0x2th@5aPgIuYaIm}`oF&>+Ba0q9j*~b(=C6RM6&2$@)!fhfeR-DtcBtu@DT>ZWxO}VgksjJg`s-CKoxtp7tmX?;et~I{c3;wYu zFF$rY@r%Z3Vo|M&J5!4j`GQ|M0z2Z*bJSbAgdbDY*<(W>ER7;d%E%DB`vlPJ7#j2Z zxZ?B^m%<_3(xh3+lEbZ|1|3d#3sD=myS5u#m;htWE8jVzXa@})Y_ z{eu*^D(tJDx?}S|5VDcoif4;_sTW6gqC?#V=+bR^ti!_Z5Mi%&ZR|_GTvSmXT3lye}^9;fM#U#jF^RPK_0|E485P7Kx!w3VxP# zotUyJ{>GM^YR2^Z4Mu=WGv*dc_Q#rjdd$%A+S%(XIkC@!`Vn*>GE$$|PWe`4Qwr;c zd)D+SIR{ykdX>o$H1o5DJA1zML?U|!i(SifpY5*@a+&n5;zwFAP$fyVOI2xCjmJAh z4-Mw9qI~3x>hU;S;Ve;HB`n8_xer|s;dA(VZOW%d?K}I@Wfj*uyLeOv=Ld1-h*Au3 z9`y9rpd9Bg5ATTqDY}oAA;Cp5&x#cchK^^NpB|S|0&MHyuw^#NzT8MP%p(;D>0hc> zBXSCfH8pwD)iw4GlB#^sbr!MFYB#?SdKf(cY_brZ)!tyN58kj=MM1~Bx1=E^lQgzT zJ=cNEuR=Oo(if&D8e7XALNW)+8hV~l?&7Z4Rrr9ry)zYPfGa?kO~!bX5wB?!`qBS( z(Y3|zlaktty|5gWjoXaZemZ|afkyz3*0d=#sqC7;+ffKtf)1crIKSK?ii(gYjUM4s zhGrO8a#T7w+ukP=;I>H*@L)aI+}l(AehRi2V^*xK^UgSMaTzsoRSmHPwy1W1dmF6v z5k~GnHx`v)*QWy(n{8IpkMWGhSJ^ayd_s15F+Pc68VVgMpTxuclKO`Dh`H)cn=S>6 zpF}|-nxkXUlZi&pRfpo}jp6e-oE@trJWYnriybB>*B*ykEp4QjQA9LPBG52OU2Iaa zOnu?Hl#u`@2R1Uz=qpcXku2 zpSj3K&wS?RTVjssw(IG{v!A#WQ|<}Kdoomdp3PMXGvE2xo|VR;t3{b=IdjOlei6=A z%1H;xdk#HF5_P9Sl8-qrB$-w~E)y{JNbR5DyzD-YGS;r=o%F!RTVPX_z#)N`+@r#f z!ZEu2@oZPYx(o6-^H{3?JokK+CH2( ze}1Xq#Ey5rXdUqJU%SEMmEnh->-igN8kfG67C-8_<<~DGpO!rH*?Qv07B@~MXHapH z?QG$<%zTQ})j&`ZYKZP5b$O7wCfjw3RTK*64Q!*_i29nJ47Tkt7+>RCpt{i}b<6RG zgM)*$k&5z)ime!veXoDp`{YKb@ZRy(+`tj4U2!PeMjjdbng4KH7mv&A#D3SFFCOz< z`qYw)We!UcdcK+&wA!esRkx)V1*uM3FeY&*x}xnBi?0q#j%`8~PoCEhH_o{|YF_v2 zeQ*8w=BY38%Kg6=^!=V~)jHBiBb8lh66hpiCpSLmxtMyT*{UU_1%sCq)}fAkor?3_ zy`9#cZgPkI>}24WgzL5TfhQ{azwKk~3jDQMAqqW05c6_;GunhYGxu^-Cr(<4r$MbX z-ni&^^2H>_@zije?s@#=+RHh&>HJa$1PJYUcZ%-vN}eXgPL9|wd99QY0`c(+EFW<5 zlL_x;caz$Qrvv3`BlgRfX_t8ME`Ok_{Hi%$w$n)LP=TOW)K;n9(DMWJdAnF!*kr$C z36BZtN9z2nt^WIq>gh$!#M(|9Y>G|y@#=8o2fbwB5Y%NAuX)W!qZ9T+f`^BmzX?G< z%WRA+&Oo z#dW_GQk&|>A}mP!7T#^woAuMg4Bwn=4pOh)<@)MMu6n!&4SCgl6jQcirJwg~Ghfry zr=IdysaDx2=kxWdQ+wwW(Kx0V#V)Q%$9Ag6qkN^uwhIz!0S-%wyECK-is)aQKVwd+ zvM;}qY-N(#`e^EVnY{|(NOqptvGFzSXC6x!1i~e=4MrP&mughAq=1%i0 za}lLwQd(qx9T=Wz*6(=QFWO!ORHL?=7w%oyru)r(18su(c{*{GVa`?%!44e5>u@|{ zd0`82_WJdKMm#>^M(%0bAl3f<8Nb7Q_stc|3&jq#q(t--dvyZk+&z)L7y6%viGj_w%7X0EoJo6UJTzG^k`Shw>hCo85~+2 z??!pZ%cq`U+0>P8;sMvfIz1>_`#@Yx#$m}JG}dk~qIDH=)c?H0!$i(Xf@E=p+gR^2 zEqQlB4z_mM(C_n^8^1jh{vc9Kl@0jRVsp^GgtBbgJ6)Q`OL2VR)d%)w)nQ77b8FF_ zq`RIfh3!~Imav?QMK%AIhwH~bYiq-0%p?i8G~?HZ*Dc9;7P;sbD9z9{YtA$Y>%8~A zOnfEjwJyi%TT&BqFhti=yCiByxmC^?$~>@9Y25_J>4tA|#q`>b_;!~GSEuRZ3+T%- z9jcQhyfq1)4?Z^1t#gf9@+sNNI5fC}R0}qrZ?*e@^gUjbI%1h~o9l3dhfQI+*30r8 zI<|1hveL|#*oSX!x9w%naJc>+58Jb(!aD;|gZU3a_~D9Ii;ze~TUTOsYN8I>^3&t+ zAmuUg0lyU%_JhxmoyA^v`sX^btvt!4Blk8KWZ$|q+Q`5dtI1B01LPCL9M3&CAhI1_ zL#lF;>5q_-x0T)?6Xr2D#GrWV9;sG*{o#!TO1p%nvN5QrKc_Fz_~2M~x{A>R(>4Nm z%P})&5;=AMkvFKnl-c9Q*m)Q1+HL4@_VdVdV#KPV@a~}yc7xyE_6Hy4Ihys%X9Htd zD{cK%bhUjBy}hjAY!A_)1DBkA`Mf^cxIzu9_Ilz`c@O79?+wnl49A#S!b|ZUo8TF$ zejr65EIk{c@VfMbr7@b+#iJqFEj@LeaokT`FX8Mcnq_tJhGpT!qzep^D0^3SgF54W zt4_*wjG-b0c1v~obF5y`B)>Q6%x8v~`QEkeANQ_xZ~k-5aB|Ms?|z^C>}T)uZZ6rlFL)Fr zdTigIdeM_YKGLJXT_YxHny(#(*Vd=>1W)p6B&@Gbrl7AnDbJTqCm5rTC%Dhg3t&tN zRDuK!or>^WpTi}&pV%emu{^r99zpo_F0bi`B;q#4IjY#h#cDa|eXZVUvoWt6KPkvi zza_D0CF=WoxW`xrF(fzh4)^i8%krufuj0IHPUVVWEb5cc>R`c**fC!}*jjH}K4H@Q zy-in(@CwQxx7!kVL&L_*eY7xu11V1;rJ)pwb5#ge8bykqnwC{QDpz`0*o^w6qM2=U zrWi#g*wczN`-=QZ=4-bAVy`=tyH<{uveB2Di(2&IKJKm?;J7;I{92UL^f6isU&5>L zJ;TV)bEZ(SVOz~gj;CW^pxYRU$2aFr+1uGQtA78lAqf^Tn{ajp5+%y`{Y^`?=$V$W zqI@}u>Ug$Eaf9r*FI40e=|d21XA_t6kHJA%DckNl6W>#osfJ@S+#(dsQ8Lb?yHNVk zNx@?`&mFK^^4V>6-NwErKg)465C=mGkuvxLi0WOVIPW2$pdle&a5MWj$P!1?xG}XS z5o-8l)wNRH+PQo>$d03XobHeRPUw`T!G?fYyh#!y-A5WLv9^P3V`rpvwJR)Ac6z=f|ky3i3YrxV~v3~Gvu}FXfceOZ$A7& z-0;cNlLiP)#qDE`ryl>)_IbH;`RmN$}FBq|Y?`F8b5~oxq8o*5j;*d)L zG$l$X!!X_rETYdnpN`4yJQ!HAlaLmy_WL40ZmvR?zYK@c&cqR}i#gvw_>UOytD#Ke z!4dAs*I)1H%CRWB!aGV|;ecKFcCcFi{e9uZ@vi+f?^T!7|GGKMrP~a0P4~+Ag+s>P zsQ$T{L>7dz{z5*f-Gs+uDZ65`W#O*T8PA!g9UQ?WDNQg7*3+>FpRvB|dn_{KSXKc- z#-1N_i9IEhVj9j=FSZ~zV<*RpxcxR-ByoKRW1d@<&^7kaxq@)m8KAB_{`Qvz|u zRrQ~EM(Og0+>oXCK9kubn1GXw(<~LZ!NzJW_2?i^!jm!|lGElX<5^P46XXZ#M^~9WXZD5OUYZbumg?8M9s{pgyT7JmKq|q%v>bG?QXg0O5Xp9*Yy5IiuNZ zf{L68G`!gr-@e*Nxq*rIocwxT2h8r7Vb-4}sYQ0@SSXLy9>T8AH_VP;X{9ISNkc&< zG&9NFGRBzJ>k*oecxb=7pr78yn@KG?dht;!tweeN=`WQN%qK6Gl3!k8>Cd+{U%Pa& z>6Et1wEp^Zu1SnUDq`R%&=*QHq-jfdoW^=QrHVIHb4E9#TRC8u-Q_PZH~5lI^ErN> zsrWRPDWri@yR$j>wBWJvd0a>VnF_rwCK&IecDHmPMh>N^*p*7|+s0wl|B&W~Rh-w4 z$@`pi-4E~&k>0idKl5Qrh}`qFaWJR!?5h)@>jni?8q)6!=ADFf(+@k% zeY5l}F1ndCZ`+fQu*x1^$n@Ex5dQoY&QFSM6phrrOecWBF`ciB!Mu6F%%>4xk;9HWzx$ zYNk8_{ZhI%M>^0_Ln#s3LLJN48Gqy^4 z9+y%wUvHFQca_FmT*cM;u=_IyThFZ&%;V|oU^d+SSL+yGXq_X6$&)ofq)Q_0@W6jAUBy;bvIf>utQyvulAOhDo&g zg+)Ov{fzPj%lM_BCJ5q0MAjULKOZ20O*{SJFXG&WwAlpY*)DYFE0kXHyWX8Acfux= z7q=2|D?|gqn_S{kq5b-scAV4Z1Mx*os_RzNHf-$of%W|sntP(|-Y4A>kSuzvO%6#D zWL=(P3bgAt<=H^f2|ir}%{2&QaH7sPW4&M?W!nc4BGp+xW5Fq9uM{w?yx^UQr-H#T zkW;u*W7MP-&2(3)1$A~2AJ68vUEQwx0x{80aj?b`NeElNx&St}&JfD8E<(7}8UHN8 zI=aTbxU~&G0AI-3@fbxrOT$u^ zWCB<{c1mfkO4*pfNnK(kkImM|XGcX(hUAhO z%Y9k%!{#ad@_6)0^!wW*Tb~o2rM)T6>X%tqiZdMlK#TK2Vc}^Yv9oShXXUqf?l(!p z$c&b&1Z_t;s0P(WiU?@f;9%GJU9ZB=DaZ8Hz7{RDsC%|pB|G4C-khfO3=9`tV%xW)CunOOFZOK%;YEhJ znmlM8#D1e6wz8xaSqu1|I0g1*p8dcT1NJM9n-8i;iOHUjli9@NRY<3%W}iur zS{t@X97ZF@1t4b!zHt<@!$fo86vHjsIpp@h^4mlue!utJsIZZ z-P>p-(sQL_HI5bgogt+A7n?POwW$;$|8UhxhW7hMwH@k+%_;_UP#Q%$fPkes-=8PO z)&cvtFO*a)Pqnp%k;mnV;=FcLUKIi(Ct8kJel8%-;J+@LxSDX}ixmv~i0}6kw&!z* zumCYjN&Cq{qWFe%zuP*uht5*SiLp*080bh=jn#q8zL@im^y7Cw$io_4^a2S#78hxn z(pH^~Xha9Px5%WNY?nh(%9m;c<(#p_10Lf>sM50w>3EkIwzJMtyRUF*ugsR?)nk|M z4n+gJ)QGSAX`4e?S$#aPML!fD ztL7Nx=)5;;W}LC`o+MXdBYlg{){iwTu%CevzV0?kh9q6E)iBDrU;SEicV#HiDEC2L z1S*=kH8AJ3d!r0i9m=}aWl5WV%50}0k7&6DA+~3fC*N>_P~D)?O(RrN$Qi+7&(0mF zeXAVm%Nr*#S(v5Z0E7ebQU|hk@=p&5@U*ue@(lV1Cf>hc(46KM$MmPG9F4Zg>@cMU zq3H;a*;qKNQR+|;jyNi7(U`RYQHP%Wl6B3VmC$X!+N>9B)jQJ~r>y(-kj$oKu$7jB_lmgVg;_XI4rJYU;+D+4}uge)J(|lt&$z&1hnuPsV2U{2o`F=-MzZ z;#QjO5`fPo{7O|txPr$M`H8o?YG5F6bHP6Vj>gQRzg#dJ!X=mQx_0ZRrX=1vC;)-#U#}Z2h-~<_H)0p+KRf{@beVikEuBMlaKNuE%~{kcQ6s6H^YXBqRzM7>sPK{zLTmUVY!TbeWnmV28_@0BT8$ zYa6kOn!Yr9UeM<~tC(wTL3vLJ43^Rs&P;Y=QqfStd|W5v#aQJA=b!D4<}hwe9@vb) zz#OTv=1}j24j`;>pH9BnIezB;-1wm@PY>_E0-14TPM>a7=!O4W%C6$#4NDniU#Sz} zKfcul#Lge)<1e^op=JC{8hu177wCfHq1s4cqp{hsE9-NG%=3h-w`N2uLE{-h?(1la z3V-P}2dB-8F?2B5wE;}Ta(e;~%mK(yTx)eY5o0O=vgK`2@~sh*K~*C^6r|z`(M^UA zUhh9KbXCJEQOI%g-!rm$I}x=-04>pN%VYaFT!q%|j#pU7h&L7vf+Wt3*lXBzl!gudarBbN@T2&bn{v<+7^>|BKpuSNEtKHu zF%x451h(@s*4cmhgz7<=O@XZSLLqwJeXDoA{6iUh`>LkVgZ}{<{F)kRKM0xE6YNdg zS_|HH2OnL9nv28_zt((1>kb;`jH7AzHL}ZPT)LkoaqfI^pQy@T@@#YdxW`jo!&iIlKkc!C>r{rRT%?7`H*Ti-cCqtB7@3PTkX zM>(Q2?YftP=C)+)H>|6_d-t+%q0A=xlDTzrKON-xBplcwAa8|tSzy%^&A|Qyys{Uh zUa|I=gZbs+HF@enwqi*ST-?gU8y~)cZ(9T!C@|najCEsE zv1YB_nIS_PbLVRdvfw+H^Z5Fp2xkG~q#jQ%n4 zRfQmznIPYZR4mTRNjR*X7|nLpeDq~5bDt@;=@17?p%c||_~wk$RBF`=?jE_(1%USI zid+C++yn|=gQ)FXM?RaaoqCf52#t#IroIw)Q;?QKiSasoS3Y#XHYS!D8C1Y-q;Imz zGyZEM9|>zw_gaJgHa%@|UeKTG3DvI%(yEY>Eu5Pz$104x^iI=5$vWN-wd<38p0=My zBW`tCgSGqpl_~&h?VogDU!PmfD`J5d^drsnVgI^!lo)RevfLH95OW8c5jXj&@k z2Lolmkq~ZF!Ue*&Me7!@Yr2b;gw2Q77c{TIO=0FJ7tLWOSvh&v-riWx+SpbeE-I4ZB_h4cwrCTXB8zyoH({A((UgIpIXe$KqBI*ZGo8*9w346ReCGM`htBz)ckQ{2bDA`g|{07_KJWe z&@FU!v~H|aE%!m`(ad#b-WM#8H)F+HTDT-E2w%g298Ci`IFO2mft0VlP^&1Y^rz68 z{qX+CR-wQ+I^etPJE6AKX>-g`1VxB*_dFElt8GDS!nch2N?3PVA}Mth=teAcE!^BQ1y$lFvq_kj-GyZ*ghtwr zgv-h_BoxQ6y%aFuBWAl0JszADJci?p@9YEu1uL(64$PsS09z5w1Lo*0yq!v$k+)F8 z&Qf2WDMhT}Mns+y0L2v{c?++|fappJ30pb-yj8=r>8t65LPS-F9R&;X&CF3P>s1)^Mlb4TA@*GQiG&*GAPAhvPOG!(voLD zWn^TRUFyxGui|nr@KwRqgSt@>sBkJ5C=9rCTUCLiN}(aahucmMD|d{Ty{ku@vQ$q# zOEDnybH+PfD;8qDQRoD6rS#kRp2}c@oThRvJnjnS}D_ zamtL>_Ps2e7p7BzoT|7wAX=laz@zaONVyxscE>_RJ2CfhtiKw+uF6jnUgk=w+399y zjvb?9@{*`;gL}qU_17N7n?`Bs%bXmY8U~E_f}Jr+J-VeKM)END^^pYx)d>yqDKJ$I zK8ORGSFP|=Z)V?-8b5lf4}z{9fI)yrK;|oelKj86XVJ5J>vkI1)H^GFb@S@i{~7S$ zDA(FzAwKMS<0+daiKsK9$_u9oG>7!vk*C*|>Q}OaIQZWpU5{ecv zASo#R+O*;(yMC60Og=?L9#RSD{+eOGIGcCSadUferE}+X7KT9REq%694)W^iuBm;tV=F#P8z|I;;)vjq{2u^?ZKfRA88-g$j!2FJ$xK{hUHm zehUi=5NB+=q}U6#XP->m@)Q)jBX#EL zcCn@Yrkz^pmyW4MeEimoSkPX3!pbeEqMehRKHX>Xm;Di}exXAIrt#%@(0Bb*`ydk(&4-)BmC=VzB;n0FHh z7>Xcq?H{KrmLLneac11l(iBdj8s>fS8%Ic2RPzKtr0jbO`UlEF`IilHAFOTTh%Ie~1GUxZ7Trl$CA;AzE#y6n!`K^)OdUhKgiG`^oDbr1dz_{Vzm*%@$%zP9sOdL2a%^D zsY|FM0hDr8w*sJZMEG4zs0aBrtMps-yK=@KUyFu{g33;-hTIGG+%-4KmgFKZK-DkHr-4<0sC10_Wj}fwDo<i=6Wz+qCd}?Y>$bC5lf{^ z-OTGsXnFUlhN8vItbTm7b8K2B^a!-Sy9B~zOS%Edt|uQ%OjR`ljHV*o{5^u^mv3is z7RUsk-CkYZ0CaNzmUJ@Tb7_hTK3lS&L3eFHJ8b zI{Cr`!$B%?2Ix6jsakpT5*ODQdA58JkYqQ0ux!#G&lsIDu77M^E>5Gagh`;{h$iHz zG=mK`EJW1yoE~*$J}Ce3Cv0pD*bidHKeNu3dOKoIM%$KF9<{Npz2^o){hnYyWF^hf zDUQu^1gq@Fi$gWSx7H-B+uuH!q?FU>ECcE(p!Rp76Q-$~VJJ+J>aF3ek7e6e+npy~ z^NI8LiqC@kPykNKzW*^O>WCWg#Ey+DnAA(iY}$sh)wc8Q zE09)^0s4@zeQpH!Z>*;Tm9km(E7KbX-qNY)pYqR7rBEWbXYZP^!|1GBxXh+;mZ|Ua zP27PAY+4|p1BG6juADod55hfaWPvgbiXp_l;)MV~9_KclasH?{(7URJ={tHMy%cbO zXMU!j-31iqTGQv*>vsyR-mi`GIwVp#LcX{1RZ;K`P{>o_U3x)r?57E|BY>hn@5tc0 zl(1T7#-o|pn<9U?R!sWp*w*I=@GMgOons+#ne;lh51}#`PgzDsQ3hG{4pAb@NzaQu zkOX{6dQ=Mcx(p8;9F<>CJna@+Lx^iou&DBJOu9*IxP%w;40=>{ht_jiKT# z7u_e5GQqrI&=we9?gB`}*JW#zg5jcG0w`buwOu2A?d$Jko-}HiQkegzRl`|t^*<06 zb1w6)rJMHh%fs43FF}HVJdX?ip9tc|)BOFNCdFT5g#$gk%a7ny9_QYdC)v? zb{R49t^|;4CPkZhPP{V$ePKTmRl-MPt!Y$NoirD%hM2Y@XS`Nt$ucO?f?Ap`J?cuN zLOh-{RfPYYe3koBT;bw^DfZ)y9Rm3&8nD57@lcf3J7ej)X}W@E%oLB$t%Gi!o7r~@ zEBIW51@Da3f}zYk(k0zsSaR(AD66`BS8A&yc(oglr*BqBim;iYk+9rda(_e?xJMAc zO)-*s?I|F8%lUEZDntNmNGZH5tT`X9De&3G-KNlyInJfq0Zd>1P!SHot{BMM-Ck8( z_aUs{c=N8KoCB1anLgU%`5Ib$8Fu#TYtQ*+R3PMHpKZX$+jn(Fw)*c+x?G{X7UvbrVH}S> z_?m6@`z5q)#u~Oo=$1g+q23*2Kjbb5rzsz41jJKu7aQU;=GumMdL4MQj`xj}@Y(g- zp*-ByKRy})R2sqMgmQJAm_v`zMO*pR>eeD?yhEXv=Sg&{zFmB+EVtSwD%?|3_C+yHeTUq4X0j-_Ta)r!Qq zzQ02VJgmFT-sW#iQ~cgdI@QeL!1TF*nvo;`@|rNdc5EcCl;8l_{sP6iJ?ygk`wo%v z;w31dzlzz}{WOO@}Nwi}!o9^D1QcE05|pmo)1Sbfw0+t0SI z=nm)_y2L9+*Ga-AQI{Nx2bAeG9(sqxvhUv9^76&_Kq!ZxjUcv1h)7N-&?@(Xn1H3o z;%3>OA1a+_w+HpOtS*dL+0&L4_CFz535W@II$pQ%8L61(xPi~$WMpJ6`R+OL(%G~) zd10W{{;(3yU@(ilt6Qs+lM_Xj{e;T?ZvLmaQo}+gWHy1ES+{csjR*9Dnbhw5csmt3 zZ|NGtw$D^P+i4X?FWQ+s0@Yaad*tPBpsPSlz6+FUL5+B#-AF86cF89KkGYk+2>Mu+ zL2rWK0io8C+hD`(qTVt0yLy|iLGfJ-T_xfAq?-}39&g%NC$NH>biQiGA^#8%f-HwG zn=D);1&_r&DqB%-e+QbQMGmBi#Lef7l+L+GrvI&WP`y*@ApfcGZ`Y&F>}5VG{-FLP z-=*yjqOfsGu^pL{@-J!o`-f&#{m^nHlOSE6$Lqg1sPZtXqOt$Q`@6L}g>*jsSSCQA zCe0uk;DEGvOGCz^w?NU#ar0NKyVK^Incv{+bE}~H0SOAq^en!NmH`T}(iNccbiw9L zyrZq;XgGb#@b*sf?dlPv1UdsYi~-?&O%r`;&H1X+caU47jAbrlm)`yM28xJB&KGZ~ zd@&gbmG*ctMP#{(Xuj+0~;;yDbn@&c`llcrYX~JX~D9c#m!8 zgHCS+zXixwBd-35SrmX__t=w5Dqy{@sRUNeVaHhtfN?E?7t6W0sh(j z*=h!$a!xC_9o@PARZuC5Ux2$Rl`Z|)piBsM>ValCQt32kZitath@8C%#<^RpC3TfR zbUFi)*305~60=~S%no8WioD!Is_C0gCgBtMU)VH>u(;p^4M`R74;Vpwbzjj z+H<2X-WixtWo)lSd4l3c5KMEtJ=?9u1!xjNUH%EE9*o3PPf0r#O@KGtpQ@00&*fkSMIGC;EjmY z)Y;s@L-Uz0K+t_ST)6~NpFR*-=)_*0R3pe{m@l7iT)0I;j!-~vk&0RR5oJ1M2vj6` znZxQPVsRoNK#&(Y`x>Of{L7O#+B?wU{K+8K5cEs5h&7B+Qom}P9%Y?b+~-4B0PUNa zkkW5dGVw4ewjZ1s!gTGj^6jX3uJ(*rcTiZ?%{0yi&E2;WzML`flVEPBnd||bqX7f} zETGZcehsU}I@*MoY0okz%pM=aY2_V110U}RX*$#oq^14kr*NWx)&8NfdZ|8mpgtA( zrcd`^l8^;aliePOe88W;PN{8Zpqvd_cOENgmNbN2<@ui(ZF??YL+cSxGsb{sOPhcXf|xnN3{G>$9?LahdJrlauGwaH71i6@1ZZ77XPUB&h>mBKzqHG; z0@20a>BOxF4^fk%Cu@t7_bOi;Ie)+UOZsg07ERU+$4ayAe#L#~PhP&_|7xEwpDDa9MQWXcP=juKUZ zk~NVDV6&Hua4yF}STepluEI1~{pxo%@4tKUvYLMsXsdf9?%Ko&!LFsbDn91E!&*r_Kr=0?4lGfJ}OPcYKgMA(t7veDZnB&598IPK7q$iR~H#-Txueb&A z@@M9z^uvJu-S^v9&2DhgSYozhBLzCL2Yv2xS0Il!4&U41?4=+mIB-P*eES<07Y9BF z*>eoPXL@cL-`4nqdq{Yz^A5tkfx^PV{k%UNdZ>Cc{e$da^?J@GO+O9pTZHMnT$~f@ zr3%p!>R|6CHe=>ar|?+QxrTXcF$*Lx>3Wm~QV~}F<{Ui?Uv)Y1W1+AkEq+qALTktP zz8`#_FL}{1Z0KhVS&8fS!v;7F7v?m52T$8Ki#C=zdl~m*IMYZ9Q3#A+S82uFUT-`k zyDp@-J_|Z(*l!>e!8=$=8;p_k{CJ?R>-JsZi@T)d_nl=E#)Z)B|EuTs5AP7j4<0Xe zU5@!Nk&{6)9-r|!V1A$U8i&G7$bLx(XPZ4?2%N`{7hdpWvc-L2?1o^mI;F09zht8W z_g$gqPCKUdb@P3ZvgzD6_mkxw3pq{yaQu69MV2Y83v;g@Mf6-4iOsj~9%=_ajfZpu zr@G|hnU3%QD}OdG_XUoe3Eo&rYUNT+9qovet?}@66Tic|2DzTeK6lwMYul5r0{xj~ z`k&ZMKPN!qyhB>Y@(rU03C`r+>qXO@Yw=`uwLnSns1o=28<|_~KaXP)N;cEsD==n0 zuK2Unr2;MZdoKtGEOle7>S6_PpGTHwzyp@w*v(&!Gvg}#NV)g>S{BF6Li>L$0Mzp$ z`wlRN;^F-vEfmcLcaEG`JZ9SRjj)Tq5g-P9c0{RT)A@@UOb3}|HbwaVvH(Vb@Arcm znEkwHCG5<*)#pq?0T0Zcba33mIdUs0Dc`Tz`S$WJS$K}H^Y=p6ta;G=Cfc&^3?Gx) zNAL{}`2h)M!d(4>Sn<=Ds?)`A#s@uOGq?QVfIVzEN;~KujfD3td8{;=+9yC;fpvO6 zYF*shLyVHkhmXrDsaEgw8rt{u)Yd4xQpL|Ed#}~y=f79#zC&q0zSp&TrmiPw}NPu6eO+YDKixQ4(tc*MzK6GW|u4 z33?qkw{cZ_vJwZVvdQn$*er!TXv4q72F^Z8s>~ z`bx#-N;)V+{B=E*OTl(KUpRTFaEm|zCtob|+;T=2N8jlGb;THE4WmNfbrQMw+MxN~ zEIE(UTNVd>Yo1Md^@*y94OqeoQQ z3~ejDn0nO9U|QP z)5|fEOgU}zUF@>#3AQZ&ccFjXwrX~z7z64G9Xaz|N@Mrsw5%4{UKr1$Kjg?(C5M-6 zN&$y|A^D#h>6Rm2lJJ}p0(Xv++n3Y!9mz#JPJftxcf921?f7B6svB~Hs%YN(Y4#Aa z@LOqlKVO_FFsTRHPB6n1Ry!a24e9^$1JK}{pJ4*YuPnr!rWNQZ=I<9}aU z{-RYjJ-V>s-!Em)12c)`JPTKj1;G>@E2o2Iz#;Anx}*oe#nZ zKiU;|X)g7g+dRP00+yEs{|0<&#-()FszQZ04J*4CwJ&|cx_Ewb_Nq4&cd7x8_@CG5 zmR^7@lHNSBBm#uyWXABoUrQ`z$>|3~4}NZ06gb6o zfGd7dniwm>^vb`Wdh*sbJb8(;>b9IG2rz~CV|W9zrvN6H0?YqcZvWMd{(Imy>X5?r zChVFrnycdJ(jmG7eIfpH|0RF;frs?Cj{JB;-+$n5%c|!^>1O=tq5t6&;F^V3;{Ea@ zffde*GDJS{a6V29K#{b}CM~X!ty;%_ei`tWO&by60bHn3tP(Q{_m=LAEB5%wjqb<& zr)OU-#QTCN#I;(v8n}qx?@_{QHnbqH{;K{vK`*;zAWi=u2G(X?| z62h@0NNI6n*t(20{mrarB>Y){UDf}~``IWS!5I#jsE0oK?kVNryoyp^oxNUwPhS5$ zx>exw;FGl=_BzEXr=KpNnj={@)Bp0{WBh(p2c0@j&VK0GbJt>q-$apDru_f@`6b;n zIgrS_reE*}d;9NI6R2J4&R#0kW{xLO)`IQC{UiU}2>@BdPI<6e92>y0RNC2P#O7x%6 zxOVBN8Mos#{QZM~ib*9-*8sQvjz*$tQro(nkF9OwnTf_?_-Fex z@A6h~L>vSxTzcxQxCwJ2WFy_FUCOcBG+JyyM#|vfzoc{qRbb>?ztwXFRrvn^ zRhXq^yIN*@M78mFX>JR*V|i13=g8FUhZVy9`?U+cpUT#)+?{cE|B#QiRYb)PzUF6@ zZCB4GQgUM zTQH8Z@lY%7$j9d4Tr<$SUV0wLIkxo`^Y{C*9Ts19Mc?Ng*gk-bYlNSg}<`F3C2 z=gxE^*~w&k`pav}${3~ex62R4Z-6>G<3fgU7@ot}9SrDTz#}7eFybSFJTM3ngFP}B zG9!Ipq)3eXk&z=a1O$di!cdSHDj7p1W2j^dm5ia1F;p^!O2$yh7%CY$43&(b zlKuayO6J_T2|s(}^}4DKw(;gDet5SCnR<+rQyoRyF^f#qPrdsJZcqYFTX!_r_Y8c{ ze4c{$=-$$vB74ho>`FN8mH9*~^#(`tL_3FzmHyW*vmc1*(d(G?E5~%HC)h-A`Rw;F zf4_QaIVv-=c&6w?i1g3`lC~bcF3AjztnqAgN?7=$S2{He&U(7Us_^+L?d&@FL4+JQ zY#wdb*UY?^cYQtzyXa$)ZAlySv&>U+y)=HHW3y#=(&Zbd7UBeS06TX~whp7&$ z%4YiP&dcBw12Sf%l-L0#V^AsJ;%GB4P6C`6J#9$^&sEdWLhbh;mabrixruHo#W;#O ze6m6<9ojQ*YyE1hE|!VuSkyK?e|ax~R%~X?COnu#OKlE?KbiLyWNB>7x9ckc$1#BU zjdsJ8!J!JvovT$+ zO(lV&Fpt71HLR8Swmr*JU_SNgKzeTD+Kek!jzo*$8oWVmU#JDg3oTegnYc`7aw;t24@M+TJ<_qalc1Ct`kMSP&};I15S;!T}C#=+7(%i)NUym0E;5*}@jqfWdJZA`Q7PEjDRe)-Ic)b)YZ=>1q}X9kDRtPY1F!I8wZV1nyh zC8r;&FE1B00t_8N@GAC$Q{XCtIW1|VlGULgaE6{@_5rZ}p*@D@N%I0=N?9@Oo!GXY z&Yhn*=e4xH(1aa$wi^uXXdd)NmlABj=+kQ8xlNDP^_W~|dflf|Q$i5X^)hgx8)VIG z6+JdKrpl{H?JMJ!bD>+<$=3|A=xOr!`$Uy1q1*ZEPQmFOwEe2vDz>}|*eQWh!z=rK zeH@(8J#7gge{Y%v(-DVPU6IQ>!8|ki8Gb7h!^}Kx13qHV!RgHaiN@`_az??--12A0 zmQOlq0(HpsBGJ{fVA?k;WaTq#-!q8xr2mPK!?0^rzGCE8S9m6OlWFT;&uj{kC4=GZ zIB;M&wDO4MX)_FT^+dK+Yw{cp8@FtwN#1gnP?e&?XEq^=&?mNP!~u5AR5u4zuh&0?yg?O?9Y$QGsURWiUgR` z!9ef9XIt9m79X$PA@hm@gm0Oye*WBr{M(do<6UE)+{ z0UAp?cy(edW?X^j9)=t&K|pJ+o1Q1_yKr{pYI(?@LD{5KfM1As6Kl^J`}gd* zh5_6)*uxj{P!wF4AB`MOgj#|Vvo$B1QuG5N?Ts+DqEDgj;IxL3-_4F|9g;j*iVlx| z#-VNH;hmNP1LAxt1f7e(#e>qclA<0Y(MKr%R;s){z`J{~Vcog38Sp%A{zF>7+I zo89B4N#%rO7@=og8`;S$y2>n~;o#U(_*yH{6dW2Vh=k6&eOb9}8DX~imBY7*J_wu( zo`+l?5u_u{G!hJU$MRL9PMNrXL3Sm$xJ~mcvp&;tFrp@%AiI>2@ z^+0c5)=Grube4GSALvm4BQHBODY&j1f!D*j;f-)>IOYtK;$=EUeMb3;O;3wWAISZf zO9LFpjk2}`PV29oAFTtB2m(HWx`4DqbhlEO)X8&JI@M87eyF|4EZB2ZV3r-Z3*eE= z8uIXA>RDFaQ1983G-%-Ot#qJz!&dU+&dQlc2S+`p&TM%}DUT_wdnGnfhZe1p=?#DRn~D^k@!VZ~zi{*Xw!5P}?0Nt1{O^GT@OBI~ehi5g!@xkr5vm@sSZ98M)Pl zw3R`S{=ZC+sD7oMPiKl`7gQndb4y-)d^jB8^6^{Vv@juC&B*f6A!b9^3H9MLo%>Hd z=sd895qw?ie`=ij?;x`fX+M@7Y;M?{m|-?`RseMc4n=x5CE= zjg9Ky7*;f!qwbUc-KbZi`ll>%Jba;uE9>HK@xsd0z`Yze}ufZFPON0b5%`jU59${fI!ox1BOyA-Cs?; z6`1F7|LBKU>djzn4@sSu+1{)^`M4pZJ2+v>$#F4>OOBE!PDS-f_BtJ-{j+mJ#P`K1 z(?4G492-+j>Dk$AopSitzdl*sdqJHQ_iFGW;(7O)(59c3xQ-RxXys5eYQ{NvJ%^f! z7}ovseZU_yPP(Kto%2uL0pE{k+7xCaKA);W@pWf;`Tg^5yY8aLh2u)pe|C=a8)F`H zZ<8W%c|T-d;>>?Aa*O^-v2m9SdH1*0igjIxl3pCa|^ zmnyJCc4fgUC{DQsC$HP>FQAXiQDq5RGVcCmwT7GW8kv~9n66z`zD;k5Id9ehjBTxY zdriVyt35bAf1r}A0DkAeIL2t~%mUZ3NK275tf5S~(_5YC4b3ZKcn{cvrTRt~{TaYt zd#;7`gNK(Ygner)Y5@OgUgXYLZo?9^zn^m1&=s@bOt60#r=>fydCNuNs{KDSzTY~5kxW#AN=1-IH9>B`A;63#A zlB36!th+Wi&U(iv@s4sui^nK8=ch6Hiikj9IYmvEzz<}@oco^VI6|bobU$xsu_2+- zCaaij%uL3^_YS$458MNGo{>?y*aqV<6rUFcYpn0sF?;BesyoZ)#0_p|bqH?=ttz); z=8ITj8?P^Q@fv5^d4u>P4Q>@Y&QxW$lAHmr+?!$dm!+XEhvB!Psi<~!JF~&!+>2av z53uRz1B-bypLnz*xsK|q8oD{8FRa*?Lkuje^~S5~iawF$7lA84G0I$QJ7jPKrHqxPIk;7x)Nk@nzyZ?Qbn@3fxnZVm@NHS|sS zL=Z>QrjWiwcsVqj$#8gs`+rV!E?uwglg$GF4o{ZH zFHDgJ1ZKl#wGGWt$%itm5toJmc1YbYo5*E3-dSpu#*1KS*-Glvqb-jtAF8x|n6$zD zTZ`KBtk%A!a(foFc^!LT46S=zSSQact%|SISTK>CKRsnW-Z>UFqg>N- z-n9$-HLxjraPdlry{8W<_VMY!tv75sVEC`2Jlir{H?Gcb(IeH{8o&q4$!Cyot@%%l zSi7D?orEo1c|{Jn56s;C#+k0z0(+!qQgm5hz3<=Z5I1ZA5feRUq#t{)8&(q{TIj4#A)A|Y^s~bSJ@0Py#}u*2z5-8Fld6!;^_ioX>6t4E%&SUc zD~I*P6I-0TSRb`6`q1~!dDrMG%EB9g$SNIQXv7=WRfs|^?@D@fg;2TEV)Q)A%`H_u zX_4XrXw=z#N|PHes!6x5F)6n+h6eE-XG(em4}FSSU%Up^?t4x#?^2)SfcGb0xI&l@ z?-8YI8~X%>Gpt9ySEaa2Px^&iy7p+TW&(Ik0Ep585s~C)J9w+XZ-~lX+makH71H*% zw#JCgpI!%G1UK_6Od`!1+kFnWTnP$zfPyRD8~n~Y%HH7Jo_iCz3W=CCw8CCB=c-44 zYbR8*H*p?*KoZW<3IkAL4D3wiJgTtkVHx=I--x08WxwiJS0L31#r-`C7L}sBlc?YD zw^qk%nbwpF8DLZ?cBZ5%^e(TJ(b%nDUZt5CiYJvzf>p2^coBx%z(#JGbb!rWi7rjF z>phK3)KbeAHIyubsSMAQ@@(U3pSfWK?oUkbnb!V72AG_BTnsPRI49(vbx-nd-IDwz znaSAIC4h|U-^7IY!BcAeT@od!%-C;O8HZR$FreG4d z%A$$oj=T+zw7*>kJc5+3&&`~VxU8Yk?`V#5$d#MK4QJ*V%^gU3(U zzR5NH@9nIOMKSP@FE4`Z=bW~_-I~s=FgbbML#nht3)TT($I@k{*t4}A_!i(;=bHQu z(D{UQ)ooid6Dh!^zPZZxN^JdJ;7J4^QlgmKz3{aB)J^es=_RX22gkSVbJ^f{i5b=n z)hWQo=?o<0%x4!(vldVA#9#&JI0_>84XO9^x9-kP@w=3IO0lUbZ!!lMuNd*h*F8Ux zHZ4LFqAq~|#sMI6e2ZVV0lM(2+FWEJ2*WALBiw0!>+;>HFOQFEza5XDM>;xjVLNPy zvJKLuW4a?bP!GN~^3-0eKL_R(1*l}~S zweLcC7b~6br5rNQhd6|cZ)tG(VHekyhii>mgyWM8HMjh7gNZ+yk=Y8}>`V%v9x0|y zMSYW~gO~6**mv2$Qgm0$8tl`Ov|o;NbyJJ@Ak3ZV?nH{Ygu?(11wd7I&ymsn%3x=S zu^g3om%cuFrE+bVX*Ls>Na>G0=$)qWAhNW-_z0*Q#&Kd8guXSX?>eFXv$Jjoyh(S_ zz7vDbB5K`t2hoJMWcF^!1Ka}K$%^kNeeD41DUt$g`Z}$`d-P6EOLl6udUss+}SXdN;*QA+T289eqj+t0QuZM=y&<) zv*>shK|7DhA>Ks!=un58;7lcKJqFKr@iQCN3=s3M{d>QE<@yH$KF_O2eyFXCPN-1I zyAx+uU)y!UQtVJ7JYe2tjwSc?r%J5c&4ZOsp8)8Bm~EL2d*?He+zoX}3##+LX5@pN z@jdrajy9$buOc z#X|(!x?WpJvAs#2=i1x?c3@{fb>Uz=^H zNv^w-?$fHV5Oaen7i%X^^AUb$&t!edE28<~h$5v>NX6D^4<9pB;8#wK*W=kddjK># zvmC|eN=nGp0DF&eTDFUh={6|0X$VgX{Q6 z`sXHkoBIkasHdy1ef$Jb0mnhD)ChNC(7eKvHLf0Z_oo?V{W$EeL-XJJYS+sj*M~K~9YZjjf>R4|^4#+DNBya1=}`OSH~44Xb(j;+ zU};{cXfJ=U<{)9P9~fpk8^;|1H1esQi{FTWwN zlYf@r2M6??$ea*#>?CAdJ!wm=L2qC2m?YVck$AO@%T3P#2-be(_zGTYD7%YYZWa8Rz0ffGn=4rfya2DM#3}VVlA$?@~re z2O_;A1gFfKdy-(qO?7gLt>bSnLd5sIq9DU}6Z#Np4p=_`>`I_LEJOW&+U7IF z2OQbgo|9^W1D4}e4S;e-qmK#$TG0e>@n^1SJ)&M|x>979fT9LnPCGosYuuRlwyO2{ z?GPHk=W~$cA)#n zJy7DrTyPWO4ii!u39}2)A)28{-u9cZ8a`ln!Z%h?WZz1TN$t!_=GGXgYoLaCYV zd)v0UrWOPiS>C98sW;X2w!A=M6#JILd={x^WfhYG~ zM+Zjna5^eYZ{`Oo>sW*x4175FqTx_(4a!49L)8ft@Owr`E#)??=~8;1-yUoTb2t`F z=)WUw4W?D9ecprP8Ms3M#@(~C)*)x}J1;cxz%j+7d*n;f;x0|zPb}?~fJlLg_(9Ew z{9)^buy}ipDayG1cWqI0;rIAXQ#Awl2LMVJ1cfF>mjVfdATh1;#$NjOxyf1%E6STX zFoZ$H@H}U43yKnEg5)#7mZgcuZW0lH1Fkv&VAeME>BR}KPy?4MTDK!kxs;eCGE?>kwq&i)mY=cQ zsw&<>Dc#Y*0o;2^1|k+FI>d;`x#G>lxh}gz(mWF!U1GSmE79JILs9ZpMQ?);##GvB zv3#&|Qfxdj_zBMguQ%BM9{A&^a^y|GU+2SGF(qDFj24eQM<;oaN3`khhVeUSi((>q z-uQv|u#$CL8lI>%={D2MzOEf3r^!oVTq`(Ttm-=W+QM)rP|j%J;(Cs zSb45jWun99R71Y0k_E#^;%({xiNGF`mtxY6rx?V?;E+Y&*9Lp9T-w*!$*5Os>ILhj zkp#bKzG2TFs|8F zr~XAeyLl4a!KeuE$U8wDL6@Si0C0IwA`gzMIzb8E{uATOlF(;=0^CvpMH_$%Up9$( zj0Dy*6z%`9evLPE_7Cfrn{!|{RJfSFAkUkXA8Cm7`Yo49r|{md7Gd-9T}HmexHGq- z$E7%{q=c=QxCrl|**YJ|nl7fGxI-ulZa$bV$qTbBJH%C-u7Q;nwHAVj1FmqyMNT4y z)`bk14cEsd-l*D^bUIXhlJ3FFL$LC|;4gm>719xc{~7l)vF(Qx7Po`KVw+}~8D_pTN-?NJpJ$uMeSQx|O=5n>eLUk@z%{9c-9Fr4&b2KZGY^ji zaI?z=xsuS_y%4F1G@z8%hV=#NyH(7rxNMimOcmSM3Ky-@i_d(vqwf#W$*KKofafRxCle43ZZ=CpUrTlwI77)2*uaDUkjC z+>M^+$8HH@SdgoVCn1%{OV*tdvr@8ajC-vLo`}WXANfXG!NL+?R>`BC>OYgftBsHa zS3Ri!NPh?W@)%hbsec4(2T$OLeL8a|Sl1+L<`9!Qb5-JKHkhX6xsSDM6jynBA6Eb< zz2iZuKPb%lS&i*Mbsjq(mH(|SRc+*7;M|uW6)~KcKGCzz|C$Bs+)$pCZt2Ycry3HEdep&mFkBQl|*gkXj0`*e@0&7bG%2r>J{QdV|p@fPqwRKcOa~cklp7o7L5{h4{+b zhFV9a+X?Jo?zme2tUqb-1xCrzn=6M^f|G?ZNYM28aC2>be!d#^v2$;!7r+!?c-Yye zjew;W9flqZ$oYzVv|Ez%!+Kwj360RV^7$0#N&(O$0O7jn>k<1>#g&vvzkm-`2=A91 z)dU8$DbdWxj}aARv{($-?D6{O z1Uhp9M}ftm4pf4R8fGfL!xJnb+l);~o;}W#lDWq2d`EuK9G<8L7rEpyon~SO4nr3q z@4>?BH1I-*+zFyf5xtb}O$nhr)q@u!!p8PqZ_$;}k5)+b_B(Z|GEU9yKKaW0Xful0 z5+%$O?Sl>Nu<{~B%31O;2}CUSb*zhnFU#C6-nfJZE}(p5umDldAVF4tH!x+F;4=($ z81^3@z+v{62lKPuiC|&pex%2zm-oG55m@dEG#cuN|Bw;vRERu*VI7fPR8(YU1Dg$| zcU@(3=prW<=COs~1B9DW%qsqB2xtdey1X0uM5i`u8b~!nCSvQP_y&WqI$m^I|2}5q zOFy6Kb^#!j3ZS?E2`R{P$%|aA(7OavibC;rW}YqBeE2L^r$_b!%SwG|?TjE_1i#15$4b68pibE!gyY*wYGq?v$EcLzy5nIiVDF{pnrZ#}*u_T|{O}y;;5yNVtAQ-+LH3NBgMsd}D zbkqK#X3?=z855xUmyEL~?nj9Ug!+TN)3hhTL|rs{Mq@R0VIctdITJ(vBapW+J5U#a zDx^jWNZv@E8rq5yW}cqj`vt&~go;zA4nv?59t$c<5%>fTGO=TA86B4BQsddZS|4@h zNNfV~Jv8V}B`HkZj7`u?p5r$UK+(5bb2OuKNt9SNU^y-zC&?oe+Pwy}JhN^{|IT@u zsMXa!E@SP#_^FtO-Kza^Y$SxNHb54hBdu!Ok3wk;rSgd4D)mQ3;__yB_VgNZYu&M? ztcv^Z2P#8gt$SBv&$EKZ8dS+8V4f_nVe9kltZM-~bujeEcA$_Q4-@!GwG8)b24ozR zs;5Oc%}QJ3#pWf1Jet^HXJShCx#r&^d(~qK?>YYp6cw%Tq}K7PtNOa=?59oGJlD^R z@&H8OY%H-&N%Yf{C0V;(_I)Ih<@s}f=mFFdcfG!D&K9y09mdxw|em! z5qT6;G!UYr{iXt;&t6ZM6~?T8+qZ-+TZX(ovAC$Uj!$mCH*j3{@s8yeMF)nqR%tH` z5iz*LA7{pzFu+cpmyht8%1cf(bjx&m^b}pTsN;p?*hoQw*S0oaOd|6F8pYA|>FG?o zq}H2*ecIkLyg~}02N7orHk6|PJp10c_3O-vYf~%2xGXH?$>M$O^eAA1b{`*os2nk) zB5{7C38~o$kqyjaHYdtgi)j8<5^&oKEyx=PX!dYQjWH#Sya25O$TMh0??B@YUGpCe zroSWr%XsKYfGpO|R;59^ihhA;(-H)u#A3eQU4vD=Ww)hZEg2MNv*=M zDJa53)s4Tzd3L9Pw|C`UJ#L2gV0#u%#LsJ$^(h~f2dEQ*`yQ?Muxhi|fwwzDgeolV z|ML6dremK?oi|t9FP!Nz5wb8eeC}X%v|=s&{`vbSAIa_9bUQV0XQgR|$+5GB6??J2 zso3s+OX1lgiF2>jg#I|G`74p^fw~x86Bn%}nxN4%S0Ardsivk3*1>m9hmK3#ILWyX z%gL+l4}TYRv1PXtEuON2Hkx$H2B($!)MMiQiHn$pwK`Iq_!wmoAl{^4sm8OKCnxJV zwaMN#Wg^&4^&P1;)ofMr!F_q`u?>L`z zsodA5x=)g|HK@qLtva+g35<%{(rtkx&4az}2{T@^PF{J$JyZ@75ihQy$9(9&?vG8E zk%M`QqGj@#H+St$02fo&K0nKauW!dfi+DD6LE7go^`uOc2OO8Oxx7HjIllt4;mGf& zJsrT&Vw85f{>Ck7k)1VX5?Hv-@YP%Bk_ySzQ7;Rk*o(9jl~R1St*#9*L+}}uldx94 zzX7KzSh1XJ9K7S7kgHh zGRGAy@rU*wEFl`i$8|D4++t}lN53>7u=ayhYr_x$dKo7AWwn(dJRb!PGv4UDf_%eO zIJN`LI#@{bZ#Krtp|q2ciPKc#XI>4ms3MZc7#NC_i|zI3P)_t$P%WX|5f7kYxlJOX zB0mzGT3`E2?#;4P#SBOH6gZhHd5mK^P*~k)i7Na#kNI$<%R-ADvZ^4{M2>Y+C}0Pn z*trKm_L!99y|quu&CB3+U_HPo`ChE5{04NEbB|3qQ#br{oX_xns%*jUAB+%;V|5i? zdv0$+dFj8Wd5CX`!*C`C{lp|mZls&4^Z~lfDB`wtMaYzVqFHIF$ojz59u?{QzMBj3 z;||qpvn!rF`0BHQQQc^jSXwww#7U@?8q&AvH)0%TlKi~%z69dQZEMbD`keh>Sr^{E zCXOD0g2kR|B}y@!j+q_dMRiDbO$M1tt7@n=aKkinKNM383@-Ah)u+0;j1h}hTqf)C z9Y;RDv63B=yqv!ZLMdP}hfI3sW}d#fQl*$VF7&4O4RXK>T{M=fG0pIC@_8TFhwt+} z#kK_RYb426JJEt!<6!7%c9<}psP*H*H^STo+)@_bU&uKs;F;Fat26XGP> zN@Sa>Z9qT>@bHCBW<#u)2`)imO8{p=@6N^vDRSGh!{wk&M0&3}zMh)jzQ$kO?*?Ov zH|#+VZhW7(E>sv3IO`=@hO7MKvtBD$S6QQk*&2)3s+#c=0<+@d+sE-SAY2z|?Q-jV zUbFg)!jqAe!*d7%tNn`(>YC?=`O_qxcN>2h-`))SQTx%Pm-0$p$*!lFJ9nO}^F*X$ zD;|rQaFq|L9vM$Kh_lx29UlyrCFh?mB(=j63-R=EZ7h)v>7L_mzl2Cset>x$L&uLIaZNZKn9~0el{4Op{`uC0ki5%DW zGd*%#$2X}{d&jVwr+af3$^}n__=)%sJV*8~6dj!Ms;*Yta>r_H&-;~#%f`?xJ&BjO z@=#pKXNB(RSz}63is?tKSYVM=Ps=YIL*)vH} z5>kW(E~^#J-Oq#_%HvG8#<8ti4i$|)IBavL5|7L`Ul{MoA$~-%<8CTDUagE2QF~?4 z;#|AqWqs7H$b;L&S#ul(jR)xH`O)2{H-P34u$?>`ZReur-*E|zBQVeTa{^bE3J8}R zIS3Ixk=JDXAgedu(R`v^A24)}DDvp~U4(}*fg918&oKU!QzILhJ$D+Y5xmZKj^`VM zb+IJuf?*9yME{^RXGAmukA2a#7Q0i$nBI;uip&}LOW?P@tQshlQvjtD zi@kj;#b9x@fHiw8#SQOd{?@6BQ74a}my6i#mHdTkd!#MO+E>A8hXJ=jGRdO8ppFer{bPG@uBy+P0@+i`H@88&#a@juYYpxiOjSx z?!=>;vb&z_wfVNp2TG-XuS^v*8uwWIy*IOh?B3sj8C%Fn5opjR&@0BLP}9B*u+VJR z1(~ALn;L%1_}5vsbFa`=V<2yx7RxW)6C)zhNpV=Uh0d+a^piqn3Kq_{zj)yz85f~E z9EuOXPlk3X(pbV0CN#B`rsM^(>PEdho>g%qcz8eGBKJ^j{?j;_)n}+ma__pc5m&*j z$F!xFF|IC*w>{MI!1fkuJk-oR=IPls+#nvd_3-l(!77S&+FOe?BzYl=O0lJLjjuqb z&N&@=!r;h@u7OIM!Jgp3_Dr8^CMNCeS$gf6(H`7Ig!W{%I($TAy?Axvd(`kIs(f`A zajtNXAV%A!BFsYeUh=PdrGsG4pm_^8#R1mA{n4hwR>)YDbiF94z5rI6kI%bH`Z#Nn zHpkt?=@uLaQVC zp96Hd7vVW=f&bEgUx%>xOnU-3{-8SgQ@TuwM5@RZ{?mB6SXp?_Z&Q?s;`|m^vToz? zxk*oZa%U7Nz|)?gfV))A>zwS%$unT4u^cu(m?k0bVO(x*I_@8?ywZmEYkp6g(Zg}- zq7<1lC0{HS!@I&6z%N`6RM@Sd3}#;Le#eIkkA(|7y0Qm3P=G1o-nx@SlOi8#_?&{Z)uJ%4wH0cH^`u0rWRJ76;f*XN9uWDHxmk|cj#lWC@$ zJUE2jP|~HZyz6!+(Q%c_Htp%jjKl`5tS?M*B(KksVXI32O7K-U8oi`Y$`t1ZPEckq1X=St@9|9Lj^jk5+VWR8qY_gIyJhzrMy?-qWt$*|&SN*Dc zf3w}s9?Y(~B*|EFcI{WX$QbQ&y2tRL|PuXg8PXF;Cr$E_DeZgM0ZkrNekwEcba^4Bp%n3T}Xcf)Tz4T z)eC7r6t`nm?2OrM^6!K~*pKbWUL4#eMBdK6Mjb=QYZi^jk_1X%zp|w>k-RbhWc~|= zx?{={TS^v>=LuOuNsP)s=+2dy>A%0vI_TAXIXBnkwKig@-Uxee6VlSju zq*g3V4co4_#60%-erDb8ghWMw@oDgfQ!9;A0J4M7^HVy zTD*H>3^hxA5EP_C_g_d+MYG)bkRc}U$$+4Cn#KBEC#9?H=44U@R~+!VlJYOkRKvBM zuE9Y2j68LtAk|_Pn zz+s=+($MW~Uiz@~`YRsUFHMZJ-4uk<4SS+S?K>*JHbaVplg5FpJkW~O?tdPh&@}aw z04ki$;0W&xX?P(h+DJ4zg@q(y#wf45W}jng8sEeuk}r4VQil*sFQOl#EXan&tj)Zr z#_4s_knl8%kBi$LuaS7+!u%N@gSOHW{KyR?Esd(Kuo5@|nZB+T1I!jYPYl2QGxA*(pjns^=$4*ozLY&FtYbd&7*^}IVnVWygK=?8yrh%tvg*DZ&(+(ECj^0K=>uHLTn z(eZOC_rW%ir-ZD4nGXW0F8++kuB1UnNh~`u+uSVCAy$EfNPRkE3lAfyWsqf@aT){% zARDpnc&cculKsh$E!7ur3Ghj+!5f3qXL>CG$Dt1tKr8R%3E{NJ`J?w_!rh^#p2%a7 z$&x+gQrwxI8QT~?_Pck=rnrRY`4?-Gy<+D%(wt+k6{R2<%+0z6Z=AqoA6*Y;@b2tg zz?QWubIurVxlZen0CofT9VLgUW=2{bBInu~9{WJj zkCim{9R$R?Sq#yf+0{&yV=ZW;yt-l?vMYVyRg^HkGEb?RL4XH>J^dOGz-a9p+YVtIk*@oBaj$tmnKG< z81StOHl7!L)C3Vs^*)6ldV!u%?v-(&=019{QcS)Y^~^o?6)Q}BWN4_0cUim5Ww1wN>n9eF zngt3rz_59Dn#-FMwQHLiv-D$!^`ai?`98lO6JE#zLemfA?ji`!G@|jdG9@VJ1SLh({YH@mzqmB^d9x|S~5GSX)Ep_h4(dS zu^6sNrx!p-$oH6d0`zQ;_9H}t$`~DmcbV?acl${yD{;KeIO7LsixhcIJ)CIE=t*c_ zv#0O*fjn2dj3_E#uHhycTkLWdbU_m?>(bu6bFOZVue+Qt>mMCB%P*5qcKAYFD*Yd! z?xYTcjDqdTv>#R-k8?AqhTiTI9Kj-vd&t|`+T{jBwTfKfa7@Vgwl#Z5(l>Y@W|(9# zy>gBN`#ApeX+3ME+*}tS{CqwNzUno7f3uO-q*>AR{%0UKiqa#8pAV%8c23n)L;{=q z{Ic?J-qp|mT30b}BlAh*qR}Zh%WlJ(C6~%&QU27~crPyW)}`$YiZzv2Lf8-&+GWd5 z!SGAn=QaEqzrs**2|M{o!ro!kfbB}hzHQOzJ9k#ZDCenr*5fP|EXUBN!nP@9T9=yHWqOhAurV*Kn*3@@G%@JvsVVE9VaZm%CZegm+}orlK8qyYAnY9P3?t1=`H# ztk|A>$6`D=;o0z8{y(`~`B}v|Cb*R3-fFAtC^>#8iJ#IpbuBFq&5sGvJ59Fy%6ee} zTTv0Py$4TJ@n_(=@rb_UZvpg+#xeoqX$d&3x?t_}DTy;b&YDFWFz3sa9FJs4{%#+2 z*U9|1GJ8_T$6*yz7Wlv4|Dl>|^eDH3qj(2JODsHP%2m|4nqoBx-5Rdbt~;|DG9EC8p&&Fnj9Ouyz6}AvaK~ zbR+6R4~-fnH7^f`bZ*Y_prr~oHeK+yBtRYxs{%RKmLzyx_g86xcQ>!OjV+(8mX$n& zG=HzU5Es}9lL&gJLyNe#MPqD-wY>QO56}NGbt$N5ew;4--2K?mgXbgGf*SEGk^GCi zyjN#7m)g?@r^a{wNWMwd_ACo!^V};=PD2n<1_+J-DCbe{qNFV0Yi(SL7s1Vp!}JN4 z4&4forS9Qc76m$h88deqwjnb%QiS9u)vwlPgZ5G%xA;3KTsE>z+QozK{}9724rS<~Uy@zxhAayX z`cA*|OE<0)uH!4#b?^bU=HxKQthoaNGBL^;>h_>gPvMe%430*3NGF_YaeMQ932Q>efe>$ znE}oDl3qq)rD@ue&6eiHo>`#m?{Cwe&$5iV9Tcw-6=D65=-C(-Y?<%yB;G22URaN) zxt{FY`g*Y?d9c=Bb?o~J|939;n>Sxa#XpLONah1@NFv*gEEDyR-=6LlI%B-)5rl>d z36#K*r(Fsd$egt;b%4eaRh&OVWl?dqcr>3R(9-(?$?UEO*Y$185z&D*+C+E0#v4 z6B(J5(<6;Cn>TCCDwA%6p-Xgh4)S(YK{M`Dh)ud_lS@}_&22$1N^DG^774qEy=z~f zIf{br(eMb~tiXw_%|Ix6O($I%RCALw$o~LifwWSJgmL~jzKjSRnd#vS{yQ)Gd`ikI zb8ZICpv}16mE{rVx6F8aUIWv=c`r`j4(yM{-x$0Je{=fte%{0z!Oo=Jk#n0MX=xAK zWnMx<0`LcE{!rnU>S%M(-}d{3IP(#qVbU8BF*m6=|3qyP^le|aQMVk5C zr&a?;)&~Lkr|)iwZ#n&7>!;_(tN|O@)qC&c1`i(YuY*2X1@|(+XRd0niu9Pf?z)Rh z!}Y?7g|xMJD+-y4?>-#`V75M{iGoJR>U6{bk6mj zh(7W3VHo1jc5Sw4wFJGiGYUR}Jn%VxZ2y8RBC~J$bnNz;dJzG#1N*ieD4;lw7}hTw=M9x*>u3P50^yP8h|XAO?&8 z%+u4ncH|SZ;0l~A72Jkz0mulY?BPxih^MGuZqa)B&PJkdp)&{XH8xwG9b9)vqqvZ9 zk73CLNDhy_$2!AovOE7^Nr`!0QaB<1RnP5-U$1|ugeIXw3nCxs!PUi?wImw0Gzp*a z_%zeq(j=Jrg%_>Vp^`b-$9bB4eKgJg&C#9&+s&f7hdI!lW3gWXF~=A{4aySsR3MBA{V%K3-kz9^DJ?V)fG& z&*_Vi5fKsISTE>e$|Q7VVtI2R_a*l?g}#Kwe9F0PK0VH+s^~uNPtWyQ6JeDHjsZCv z#ClmLpEY4WUP1LT^&NbrbFL`31y{rvP%Jn1paj&y(XM`TG`*)Kx#?G`MFY@RV2p6O zBh`Kz!$-QuUY}Rc>6+Sn#-s8H_W^&cwEm$T8BckN_HUe{4k0$kmY3x<^=*y>P`T;Q zsj-b^!sU)lnsZOD-&K%0`sjP;9K92^MD&4DtGv>-cGdaKYbFb%cd}#Wxh@0og9_NW zQU~LH4Be{Z4e18Vfy(kEl7QU+YpHV+)|E2gw{I#$qyc9gOe7*OpYB zwsx&8#WK;gRSwUJX*5WCkq`41jQKF9+2C@vS zbXz`$G5GR;aqd9Au(`SUJtPaU@L4qF+#)&U^0@>yF;QX@k&3ufMj{pS=Bltqep4gv zTCkNFZHgm~dD*YyO*(FpPTt z55h5|7F=u(q=yb> z7v?_>Hwck^C*CEpU+Kj-M*LZ?GaTQ%+h+{*(YaAAWe|tO)R>~=4)HdhF@{C8yWoqq z7mj%={ro1+?z~kG3lz=TMcYNBxETt;0sTS2&}#Zn;u97W0)v2qkXP?vWGDBO z?3w&^Qf0DaUSQ3u#YjG%$VM$!Q(+r&asz=cpEcgJsrZ*JTO!u`nmD9gC*IW8r2WX6&8c1|<#sL!FskL-BUfj?`nC3+5jF%V2nrc| z9CvrziH13u9J1cU>x)pVY~ee*Vh)CNg~s=*l(JF18@xj9Q6hFzq)!$(K0PmSL!T=FUIJ zC*79JuIRe|&oxQyjS2j8l<-*ml%H2G=v51oJ{C@D2XD)hTt&aL+tW+gZ8afN(CnQn z^WBK2Iy6~9u2A>VPD>qqT-)u&F7~^y<2N&J9uS}ENP!KbS~gXy$M8^p?1h>7n{~gz z_T@y*dk^6-1<6+NMr-QCLyr)93Q>ow6|-)7O(UVn3otn1X?;)OjSq2ZB3|Q9c@5e! z&tb?2z|=#z;Gh{>=9E!9QJnW}_dBJQTk4pYz-FA*Q!mpd#VYHCx-#+Nhf}<%;wD{- zE!hsnmtgV(h|#5TW;Nwu)YJNj=E2XPHoSFcyHfKcCnw@h@vt!Xm3Xj~7MCFhfDFM0 zK)qffb(d^G+o-0DM#0R=G2Z^RT`@{(mltRE=M2&NVte0?JszV_WguM(ob~9wbgAO* z%8lE<2B9mZ&Sbj|%@;U_$+?Yvhs?BwWx@$E@u$(gxh6ka6uyb5wFMEYFq%p2kalT@ zN^who&R-S&WCyvEFjMx%rfLJsuh-N^ixjw!lnUTJ!^C)d!&G|~e-vY+5u-%-_6m?; z4S)>2qK|n^S(pIz$-AnP!kY{P^hs&UuuMMz5^Jf?Tv_MrYki@zs4=uovN}&;;Rju$ z#=+k2O!mOOLJe#GZ@|G?{rjQBC@ur6T0XD2u&sNc{ayKh@=83xyT@=h_Q^bMgg+OS zy@?CY-B?!_%3JUUWrZ5rktLg;VEfe>Z^c)5kKH(-vX1SKTg@GkamFfx^L)g0#Bl;AHQ+gR-)+0b?po z-pTdJ5Z7?BJ5`sHPe^cZ!!`f|j0#4oY zQX=p9n{*e@gjB$h2|$)rCZ6L@5q6E`;wmMxAit7*M&yA!Jh?h}LA3)QR7gnT`rzX4 z8l&dI=TCr8*^_x+D;?`4! zhGXT8_>C7xPZ-VR_xN@py^R$nxfp)nL~%g?!!DewsWPULVX_%W)?egTyk|)v%ZWI3 zD$IS_|2#-RWmQ(i1%5EiXRl)5;fDDy7Mz?e__4NDJ@x5@;Ah$#?!=o3QA^1qGXrI1 ztZ+$n$+Sl7$49a-lu==wucN#Y79J!EpUxhARV$Oc;TJ9pLB9O`J8C(l1QL&cCxGWn zyQbF5b$0P>yZjeJv@dFSGD8Tm7T{b?^qu zvEf{=Q>&Bl-5N^p`f|MmXoWB4vryI;P=5888?MSO)5^q!7S>CyHa^SZ+`g>#20xoVN_Hv&@}O?7n* zO=t+oOEJV|K_s7FX5Q3_xmS`mm{%+W|4R zM|BbAGydeZod>xiv#?6&9$KeD%8w|?>GNi`no4@o z)pYAt9Z%Z&cZY^zZs*aN6cY$duTY{2VQJ!SAaf`Xq`>;FHavWY{)8i|!A7(smdoKU zg2BMcn>ULG@l|}rQqj5(dcUGbr!AH~OIl4aQ8F&?AZK>EF-DrOB}OUi8Cx@R7;FN7 zUB|03Dy^O+;y`Dp(A#molAtE~EtdWBmP?oV`tSR9!=05}- zKnjAYjE3=QTB`I;Rs2wU#33EFbYC+Oz?yETEmB67iybcKop)mR0^3VV= zgjr{&aPJdEhDl5yX5B>|HBcOX^0G`Qx~-7%_$_chR*j4sQX^}s;$FFp>_mG5+_E!9D$dNXCgE!>U++Q~KqE-$%EyRe&SYSx&1bPD7c&zC1|6$ zw&~Aow!_uYkW24Cg57oY>@bGWp9!LO%<#}X%R3p(|7tvijj`s(B>S8e$qY%-J*4mD z{!Net&?QsqX+LLvjYa~7S*eYgNkwVt>3lEPlC`cZ8#NjMOhblM8r=aUi~v@j6@S5F>5`(eAP zb_u9EO7h6wT)>_pn%7TE7Q^(VGnt@OUN#S1L@%qvSt3=dNHlT2Vx4eFVfGC7mFYoA z*6{yhOLs~7JG+M)ikWQd&R-};#Lkc82+&Bcr+QH0pqWkeND<{x@GiLtTF9O#%0y510&s=r{DBSMe}>$3-7jQI zf7#h->2m!CzJgDlTn38H#QhKbR~RstRKTNXnS#HbRA)o5kiY`!yPmvr8BkuWogtXY z2&F0bZB?Cq2$FW1wN^27Cq<=uIUaH2)^T$#s3(QTm{Cu;E|>Z_Fg3fw(t0`OL7H}! z?`s5v%a<=XDt|5bZ)3}>j13}7@R^q1{Es@H`Nsmr;0X)uZekZ_1~;g+m8J^r-KimydfjI6mG^u6mP zRv^#unzJ=1uGf{ej)oDDXD~@IStHO8t11agUm>Al?^-cCWOP}4WVn3;MfQfN{TnwX zKJPDrvbN6;?b`ZU=QXjKh;BUj4Uj}=FIVn5);LW!7rXDt5-eOoM>4x|Z0sku&CZP= z`qGR77`gQlL)pFG3)xwUUB?^S%1We?qo@01U0&1lk-zjy;xqni1YAKps~HXDv6Nax z5LZ1^*ncN6NbB2Mm#F{`66(1v2UjrugPjC~X^z=PY1dT9hC}DKBn>93U0Jk_K8%;E zxAOoE`p@XTl3xon|E0->TPG_}4s&|c=IV`p!oBAcpkuA%`ARF;+0+kRGIFsI)Q0_JH zxkfiHw_fe*aQg$yHZD}rY?x8V&UPEg&CJYHO0i<@3Ac`h{J(nLJlr3<3KK3Ukc(Qp ztcqY3w#cK>==Fn=se%lC%k$c&shkv;JXC+MiyAu9iFTscEQ{8H| zCWOVSAMivg)e05`splJ9IA8T&ExJuS6J|^x-0j^}vPWP4C_^MD_`qcpcv{W6S*K3}48o`>hl8O6tkQV&q+XTgdbH2ex z#1@tVi)sSp+36hss_cIaTiolR zG{-aktf~D|V5neAjrdj&DJ_2$#G}c}Da)XD!IZgw^C`Q}Y2mHVBw4%GtJ=j1G4p<7 z4h3#Q=ffS>4MHdGT#ODk+U*&FuMh2mN%gi2(_*-nb|Tn%Gq3%hVGXKsGJVtK$<7`K zk&9Uto}iLnuHH!PAU2MEdZ8b>Jvh$OqDMsAdshR0AHQoNAZNmC6sj>M@D)D-MRDgQ zhms@u`j;8uxXzqs;o!286Xu@^e7*5cM)!RQHp{*)uy56zoPr_s3}``h*8Z_t{?Ne^ zgt2ltLGwG*yue(h@SFjWd#lS?%&na7wS{FNk^_B}@?c&%hK1!l=l5iejH=FFt&6+& zjaeVSEXOj^1UDImJR+xGsBs__jZNUfydZ`DUtP5SAF7(S{?ThcN6bDc?Q9~b_3W#D zV^!x%(`@kQ#O`J@%0v#kX~+HYi@;`J)10Nlb-IxKVgebFFtfN!RqWlFnR))sY)Sgt zTHoEvlD?ks-jF1*Eqw?`pRC!tL%qgKElMTQ2f9t=RWJz@S0e+KA$SbMPsccmnKc8~ z`0-IAdm*hP93K3mltsKS7WxZ;Dk+h}4n7m3N|^rEHC5x8P8Qg%{d<6fa9-H--o`8P z+$6Y#LrD7{CD2AnQ|5QtWV6l=Lo5sysG_YI?Uqee*FS_Qehs@rFOvQ;Q7G#3-=#Kx zoL_2>T!bEId6*4KGUvPto>EyULU{}5Kn&%7wJPBXQ zlTl{bQ_Rytq4eML-=IUrzVGAPn834LmQHyvobh102d3~D>&w?V@=@9}B0Xlsm)Pyg z=&fUpt5oQtR{U1#2Jv=;yu2!cSeb4dWY6tZzOl02dwN z%f~yKgo-8pV=!iG51(j(JZ1OO9?5+iK2Y-QDX5NocUC`UM~?sEQ;biARw*gLy@?vG zyWoB2zdEw~K4D=AVC5XoDGSJ{_p|t8iJj6;=2TcbwVF?dq>%(wE(tCfsb+Rfr4i_T zU-@lL?CK+9$O6sK49(DA>?ia*Dk`)ln-_FrRBOB5i}L8wB(MqkYX~%)%Xnh_$A!>e z4qNRhc>PL1j*~S*UU+mOJ(=f|TqL~NX=mDH3O6Y-?;TtWSoQ#4III8uzZ$XSl5K0| zM{hW=^QjRY6T<=AMZJ3hKZpl6lvVNXxB-ZGcGb4i_|FEb+tU^ye6Qc$p%&tfIj@1AR_xm<{b0JaUk+-id`S@fexJx9!Tx@OBO|Ez0?O5ZI_D(|yOY(WIgs?M~a<;GO{)i><$rbeL%G4sI*mEELI8#$nxV%EtyhM08C5V(Ib_z_5+2G@YB^Sa$meOIXD6rl;31uWLjRT%bta~ zSV0_V>Q*bUJ^Wlr+jg$#H0?rp7`R7$wg2T?FgxP^4CYsUoy8MIOqkPpuSewf)RUsr zYF%(g(`5^K+Dm)FFu|?uc;$@3tT5C=B=gmcUCLa&m$EzAVf_8R;K| zyJ|2%TUG}B%09T<13>B$a9VqZRb|9`$}5viBj0@};X|p|>j1k%M)+6|P|O}u?)Sl| zJqceS8-Ym}C=AswDBQu;_`$DGTI%>E ztw0wAlbv(&bGA%(!^T^Yis7$#$ij||d&cYpCM*AE=+!bO1NCFMgL$h#etQYzTh4OJ zM!3o9g3#DW>t@sf?341iQ2z3zj>`A40_JU2KdBz#bgjH6Ti5%mp6}Cnd@TgsH;LmN zNE`!vkr?K;wpvdABcaQ3dnvMSj(AnxPt))`XjORq9Q#HW)Zfl2%QHp2X+~V=I-xsf zYGJ&=e5ArT3mE4O^+B!#9fbJ^A9u4bYvlNh6oh}>m!!3i}SGQGr*yUuzzYcFXy&P|=m z?1=JTXd9SC@l&vU(V6a;pG0EbmcHWo>@5}EZ2$jEz5smBJb0zN5<&;)7}Ud4Y+4K4 z!WTxcd!V63@}s<0!uOZc`i=YZFNq|h%|j*p{N{#3GmPu_ZJTd{ZdlI517V5o) z+Nb1mzT6UP$vo&*esIjNg?!+@wHa!}pRkrT#9XKpvvNNTgCwEiQj&;rXtVg&9}eYD zb^-LS38%=}@uUBE%Mb(tzZVIUrTrLS9Me;H8R>+tlB5@?oXdOxyu8l^F49Ah4$X@D z-bKih4||q=2NQf9t^p^8VePCLG(&znDslJ%=<0mgXFeryk{$C%J+oTZs5(!K zXV~hmr@vw*|NjsJf4TV|I9Lq(XBUGu^rIK+ec-vfoPj+yH`>i5%0!y6PB(sk`~R`` zo>5I^UH@Arq{nvUwJd111hml<6oPGA$<+saW{|6Zl*v-os&HR6Z zMcfU$*6y4mAtCPN?D78^OaHGij^CFO3}F~D%jHcc2wz+%`vq5x`xZLCX{z&20r3w@ zsfd>dNdD`d<%mPD@0e!g&3GTM4EF8GelgEvmXIC@xT<{$`Q_-Hyg*KdW7z3&wV#@8 z)sFgd9kfh<5Pj-0DUbEgxJ?1NMnc~~G}l- zCgbjn_-Y2(|oP9Lgn)Cm()*etoNLUy$p*S#5bTWe_igrS!hn7 z?bwi~p;_?pc4rsX`eh);a>>W5E^3cMF`{KX%R67U)bmI|gCh&)6=%|2fl{^nk$c!$ z){XKK7*NB>O5%JA%C0SnaDj2Rk{uN${{!Z=>LU3w`ba_CYSePsVQhN|H<&oq0v5MJ zGJ9fJcYXOUwVZ=Ogo~^n z-5K_jI6!m@m_G&(;iX_}`!j5p8_`*)Tc9;BNA}kM9?vEJ$OWi=k1yCoA*g{#LI0R9 z#r769D=K8+M@$yAAM$cgmzm3a>mG<8R2ce4s>l2Wb5b4n5j9!)jQe9m z718;BNZ(Ldt?4&lMK`YUr#X&q#H=E_pV)6VgeZ24IQTo=;V7o#VjtVhpvhG+FW?Wf z&?qewY7)=6;B@2RnvGJ0JpQ-g4`Zh83T&tXvT$E1*KtABvY)k4+u#o=*w$ev=^;df z2+3{rLhan8#Adzn@)feIaLdXjT9GX)QgKCDtmx1c(_+OaTCo*ZOz0KQV#VQFaTQlQ z=oMh${~2$gUf=1ALiwXk{&D2|3ih%BNv$AtD*)yS^tysbuK@Kc@r#wP&PqUPB~G^z zzFdjwuEe8P!t^WI3oA(-E4eN!Svo7pODj2DE2(ZPNqQ@}iz_LeE19kauDJ zp2s?I)YbvCb~*%BhVtvYj7Ylryy4 zUx}+#uPZnB(DZ53OrIkS6L@8aHZ`KAc!7qC=9SeKDhfrieT9sf$g{y7STD#NDM!|8`34o4@l zK9zC&%-7ASdJ{0;KJ-!+wwv5ek3YTs9Y;k_sA=4oD;z776A_~5AUTaXdfbzJBjOG$ zXd}tos-2o;0)J+0-}wR+U33ve_)5%#aNh&|ASM5hU!qZeKsL83^D&YWe%gb_`Cs{b zzrl-lu*$XID=Wiaq5cZ03|Cx z$qG>Ne+ej2f4kt)J(fo7a;?|YGq8ASpV>JVjHUNRKnBjF*5Mxzk&B#%u;OFs%_iJv z`eaA8i?-6#=U;Xm&wU4ZJLH=`CgMChO&Kh#*G6}G`*r1d<@wBG&OuI27w38QTX_I(U`G(Eqh0paQA1-Uo`ZwcdrC zA~MNxEWB?nhPl>ALXNXTs=vnXS39-am@ zCSAW^6}_4g3`Udi6OYiCFgNyRmB)`|Bo9bYf*Ds9RoGNN@x=c}wpH11>*&N`?5)JS z16C4&n7ddOjgc;sA47OCOvLbZ4zk#+s2b;4SaS*~dA{BSIpNWgHOp8Wj&KN8QJ zueh;K&_d7Q@+N#GDyu7B!te*9JmB;RWsgp`W-3-}-IfDGo%s1WZ$S?_bxM6Y^KIz^ z0Y%HI=W0TJu5)9pvB&RU!8FwgTq|b0dDi6UZsW&9&u0_GI*B)6)>Jxe`8mI9KpV`;68EgS4*MBoDU*p#lmKjiq)6IHr7B9iNml;(#BYYcUT_ z@4~d01qe8O{w1*)4v#S9=9B8Xwnk9j>=z>8HH8=@ZKXxPFp}UzHrQD+6P-R$ZcXxo zkuHYh!7!_6K1KJjaN8t#>n}0VHHXccjXmak5Y!P(D#};wP*_n9t+!YC*ugB<9qMP;2?>CJ$oA}s|?y~FZo@;l+ z!W-QvXAU`<&dAMvy}>;PJ?$y&Lf%6!1{j2?68=QfO9NG5zXxov$DX&(Bw=VbIeBDT zFF&3$%AwQca8(0l)i*+YwH&kipNS(&S2+;hT0O{eq+Ve^KoZgYj|{$$$65u>3w4X_ z<-idn>)881ruTAPp62O|x;|6Iyo$cF5t-}ZNGKl?tqbG`W4clzm|xDJuk2wWYxJR- z;4sV=$D$AVOk`WZ z3ADm>66=BR4d=9@lzryRgO!_qZK_SUc(8CGqq|Gi@#t- z&f&skY|hdGsuk_JyeJh7@6Mr_Q^7!l-urS6Y1Oic%_3Tn)LtQ0)hO`Ba> zbk)nP1-CbQa_^JP6JzuuSYqVkid zB|&`BhOFiu6;?Gzc)%fU2h1r7PXw-Ofpd66c<`&D!53=5fb=gF8vi33Q+{~Wfl!G=i3yvys3y#Nx6#DRd{|MSaj?>K8Az2RMv)g~ zAThOK|G1E#=htiaiJZ~n{PwPl+2+hHDYL?xj#yfIC#%DyM&7EH;Kt~CteupVEY6ka5f&RMHHyhz{UhZI_RVBO`7b1sFyupnrVEWuy!M&opU4Z;Cm!S8-841h zj9yHphEn&fuuz{l=r;cz7DtW$ss%z-g|1^SS z>{PrtLdHRPuuVVfYB!TcCgt|e)N4DUF>u-uPQ}j~7?s)^j0Wk@j_$uFn$!X-6t36B znD9Wul*cn!GjV8vLs!m^&Z8f4vf)I2T3sjVn@XiB$^*0w*$xPCgbM&uDk3 z7F8TeDSE1B(u$$U5f-YOGLJu(wyL2{^~!a+*5~`tGV;&RSM%F_sa9+3mTOe9>-l^) zio_f+!iF-+b_Lt1h!q8J6S{Bn8#*ct#oP$jp4K(8cdOVJ*Wp9X3&ixPPcPu)T?WcU zaJj`>jAVlCx^(1R+7>7&^Ibl)E8=O%1CM-}c={F0fHV${C$a@5N)o~O)(Od}KKxO6 zyo=B(xPHr{%V~-gEk%Dk$So+}AE;(bjm2h9KEjz$<6Xof6^5@1F)vnNOrxbHcj=9# zvLY45XSe%igbM2sW?oAqPO@kfdiizT@g%$l893ODncRbBQP8EZhup_nYGc)eoXd8O zXC|lBCg{-TAVj0%T=V39!|eeIjUs8GHv}p~)k{k@>T&O6F)X zff=&%_mW^CY`cBtAxH86g`^bY)dDA(bkLs++^^Qgwqq4zD1+VaI!x=SYN|m(BU`-xOAb;|f zgc2|;WuTg0-WgF~z}kfdX_m7fk{Pa+$tHP*tX~;Dn288SzsK|lhn#l|b>A^_AzNiK z?Haf5MbO5{xznd8g0Ls+frl%_@d;iuL7y=vkmEAs%XP0#8aZTJ1O#90$a2Eb`$TXc z;}NAz&YSP@Ao&?Nl1T(Cg^CClkbMdWtIi|qCF@9TP9}kks)%LMMWQ`>)}X0JNcn!+ z^8HU7RNikOyc;kh&^pNqgggsS*ald}ENG31V$FJBmvB-qtbt`sBqCL3FT0Eiy(cFu zNPnR4Bl7JSnj29zis%wO3VEh+j7cFe^jv0!YO(EU1}JjJ4+e1AyGpHs4zEm;tjfVR zK`kC5_s?xH`k6`&U6-sdU--hO)16uyeV0f{ZFj&&IhF7QVqV~Ur_0lu4C9ORSinp| z(v}*Oxkg>1@ggDS1>5CD6f; zuvdNqQZ>zr=)l@!o0L7kqpeh%>r5NZ@%8eu~ z$YZzp9a^k#ey}DBO51%WKUIs^e=WGyTN;c*V=;rJ)GN%W{BY#XvlK42|{j1sn)~ffrxx<)amIT&CZby&a8ztUEqHuX zoX9et{Q4=7sXks=2U7hbNKYZZnc7W7dX(g8IdsHNlQqi!>3`jfRB&Y<$Wt({pv`4{ z4L}c_{<(!hiPal=Rb(z6=2b}_Ho? zE(Puc-?-!QV=kidypb`GK{N{Ozd^g3FjMD9n;Gu(W=LSO`)y5Wc9gPf9BX8fWzb`j zRB^O=6xL0`B=?oK*FYO3;xwapDo!g}sg)pr`c>(}2(+5{OV!O1^N4#AOF^N&E0Si| zCZ*|)o*a^X!+7h$eX%xFl(^W;?+!-~`xdO`PoTA!6Gl>bQb3F<&wQEDGg;{56xptD z=`)tmxL{T!n==qDM2zsD1WGUmDovR)I|G6o&=_#Le0%PS;;}8|B0~AS4}?4?KiOz2 zyUm&f+#jBHY{YqwJj9Qs&L$XyR)@JTFf_lhvR(5CAy^4+O$L+)G6@tI(09HUL( zjpkYIs`EmsqqJ2Yv1z4(v|GWxmm>x!^|@mo>(>M;P6Wc9H^w~s$d>C_%ZWPS^8*SX z?>4k5l2CEyot*agqy`H;OO4YN`D!JnJ)F-Y>DSh0$|cZ=aR6y3I8I=8b)TGxi_XcJ zUF^t~o1N%PqnMj`4`+@h%B3)<0YXfRP;G+PV#<7;BV#UeyMBj9n~>Dy8({jqY#P-@ z`_1A>d0L@_KWJ8o1ZDv^D+9G^*v4v_9qX!-kZR>N+nILr;Bg_}tA?ZFWG^BfOvl2e z(Q2YM*{6B5gL7y)?G?}0;y^8wYTGh;#9ZX!twcq1JxkA(J&CsParU@)`8+%nAZ;0m zr_>0IkqC~Xp+;bDwsGrcO+J|G<(*G4$@7Lo(8M}fhQMBSf}~s--3v~|16VwLPaAr4 zuASI!n;f-z{ZMA@@f+BMO6eRHHMEbzns8w8>%h~20ED{vLQyCQ698H2egI#NYQZ)m z3}tsV@bNOLS?&dmdeJTmA=)2t{QS}bu~yOYPUVVhWIwX^V-eg8ozg6(f0Y&~-z+g< zFj=f@7khuT2h(;@6gJOGbcbgzm!P-x;v?*d#L!#o$XR2l^=r7ced(u-F*)=*&Qa9? zzR2-K3t$j_hqA9e`DKNpxaYhBugP@%2I5Tc)@;9co)p$EYd(@Z8|H(DL1uSH3K`F1 zTk$-T`z!F+j-6$~>N}2HySJCU;y3+YJrnQkpc=Y|wizC=(MhOlyHeY9KV5vY!5>CW zquS5*v;TIYW!3t(dw(mw^de(Zpi^M@@oWC*V6Mtd3T8D1D#LynCmq!d*wWOLW;*x)ga8@$T9CXyK+2Pd~IW*QR$1{*F2Tx zIelsT)V?s3e_wX$WAG8r&TEt@J6tW}u)Zu49TIu!GW!k2c?aGBisF4Jd?iY85$aoGIDXGTfZ9a%@<7-4+(pq_MU9GSrb)u%|>(4T+*l2XJ7dcpuSiA4-lSiB(oT#&u zdpd9++=)){7O@jL85nh zZ+q0$O2>fE=NB74`#g*Gekge4^%D($4OB>~UV;>qG>$}bW|wkp@Iu`WD&cu_?yiRF zTR9d9+~BF)I40F~SYP#eg@LpPttDDWEFwwm^u9ejJ9tp9#x}=mpim(>R!1kCZu~B& zx+`|-X5V=Qo{b~f6zoi&N0K;p$Hh-MV-}?Rv2=ciMu9&kv9R1E?nQ7?FO60bT^GB? z)+LJ*>)D^>%X)Yvi|R(s$4U_NV-^4W?(}ls{Z)=uRbO%)fmawTe(L&ztS(*;B%(tHt{P`+GGL z7UI+KHDt|~GHa!s@_TAl-E4yu!D}-Kp%M$j^npBF0><#Ur*2}+I-@xwW$Usvfr1oI z)N5E)6ct{Bx+>f!D0jGzO-5>)_6aSYs#SZJe%m|vH0nnp@8*elau!x@%}9mTkL>V> z^Yqd-;&8JNLB=-mx3LvVvGGsv(P~qNPwjg>m)5lvtt*T=(J!hShC=OdBi`)jT^*q0 zfBbkaXZgNo$eY|y>TpBrayJaKqIo3EG(Js#dzWm7^zr}luD$vyotgfkuN#=nYL#y) zSE1hdek0!B2Uw0wT?18cEoV6?aGCuHLiVq!#;vfHsCPbpqni}lDPT_2)tIEQ%ReqM zgShGyL%s36j+XrEM$u$?KDF$G%+!;8nF3h)L7n&8w_voQ>G3`5_I;?TXm%||SaoZ!6NvIvA|s8Yc{7o8_zDJMk)a4{~6 zVOA549a*2?{aZFCdd{^56iyc2B8XvyVr`qAdZ)E?yK#O$!De6|^eJl2#L`vChI zX!VG`94noQ(hj0xLVAP=;f&<7nxP5D2eQtGQ1~orT)!eER#0v>ro(>nKHBbfbrtR(WX+rsbZl* zVoT^xpD~BrM#lXXT{m##`FMyk1y=R5Vp!BExtr#;4%=<(Zf$oMr7ChC=9{|3Fl6nH_jUIHvQnkd_Gz zKh$5=Z@#FB7e7K=lp}Z*Dv}SJ`Z8{uQ<|q06<#}Iidnc~cX<8h>Qzr%#C)D|w)AeX zw6GX+;_#k1JYKktIMGU(>8Vs2jC9n*sVJ<6_?WSor;rrei?!=QiDA;rjCM@jd!2f~ zLk>6y@5n99GPpP1u6OI2F}~?lT$~!WU`y`8trmxeAQ52qjb<&kH#c2o-yb~o!ELaz zwvs^in>yGlu|M95afADr`*>S-xk%}5=7hhzONp9<6_Gjbu|~!^WR^(_G%o@lMgx>? zuZjrpPAieTVef}qd-4@`Osu94YfHzUm$&Q839Efhr|)?x8mD&f`pnFXq$Ldg%;sPF zE?;f{)p3IEd#k4iwm-rTo&UrSobz1IXBQiW`ddOLl&wY%ae6nQsTXb1EbpTihgwr} z@_5DR_K$_RT$}~la%PJyDg{*ro*$Sf_`}~9BzYE9cB}?DtW}P`xdk;*cqr$3)L6qFP?B)#N zq>hX7v}@A4fzcg07pD8t35u5VV-z_J^^P=G5-b)Lmk2K3SEy4J*J+q+zP@w(~8_$}N@S8cB+;j zaiE@Ql%?ZdL`4)NFRLP|R=qm&Y50>4!sRHF<=zq9xmyj(@o1w&NW1u zEm+xI4Gu|vub1rIbGJH9TgbRpn(f@14tF@z`TRR)eX6|IbaMWK`*&~8i^Qb34&N}F zD-IMHNnRS4ZQeiZKHc<1%i%U$QmR#SHft!B|A2{-(`XZKb7I6o9+}~I3(S(tdJwC? zum|=VPK~8;-|D`#4jU24Ew=S=3h}OpEI9UEi?&Y@tHf|w0(}niSAM{!M8y+WjPVcM zh&a#H_~PR?5GI0V%qYJu9qbnys_TDZn7)DBmR{8EC=rxXfSrvO!uIm3!G=F%+tl)K zS8|eGvX*D|#ZQheIgj7p7WwpP?FaJ+*a4f#ipl5SorR;`0n=sFKL4%GLF??HIRBKx4u~EN~cTQ1?nc9;_SgB1AiVV5Ul~y=Vjl-JS zY3vTqqn14r3+@Cf-fm7nQCGmN;bC^ROCXsD5(PFU{ng_K!FlwV`ln{iiKeW}ojK{5 z_CEV$Q(+sJg-gB`ys*TnUzc0VkGL>@BH9$*9k)kaP(Nd=8x8@#9m<(gAtf!Xve1`Z z*GrpIrVK<#kWwv*@5?bKb160V6er^Q!rzk7rufzEUCye0g2DFBpxnvZFp!yFE`PNy~2EA_WR;Fp`p(!l!q^ z$wXh>&Ub5Toc5sP7re)ybGL_!%Jz!JAU0|XZaMX2gO+CdK>U(v=VgcJ zM{0N7XJZQs3-*zw#5|jN$_Iy8@7a+*jK8*LCa>kdyC?2bxsdJbEpx;!X;S*YPFd%v zp1bz#vdM<&r>OSB`zob1r(PfHoHQ`tt1X?0H8^F(KGN_mEan^`VfMJAn6h%7QkXvw zgVV=ne&P_K@L&fuC1a(6a)E2j(g2WB@>?8gVUJY+HFxWw+1I-w6Kji#v76tl-vy6s zADFFXM-;>uYuS}#h50v|L^$<540~}(=~KR|+e8OuqJxuDimlsfN<-Bkn56wBkObQ& z1yPNgHz)4xjEMFOUlrzGRTVT(GQF@Ezj2_7Pbe=^nMNWBghWT@+cu+x$gEZ?3AJ^t zy%|rjmz$FW-e?O&Mfs7zL=3#2-S@}@20o|kQWC@}Th%ux@$Q1W@>-djT%t@rHnWP9 zNEJV380XLGUn1fWn;5gKM52Xpwq%UImbDKTGjwI~Xm>Q``&Dkjot8LbmTLaM=HumZ z4x`NcEQijjKyd|;#R-3Kw>NKQP_h}t1jUQNVgA-hLpCfRdu1qk({Tv8v%np)&^+gD zQ|q{9{m|z3F*_i6VT-Y^Q*cWe$cy$@CyOE@0}9&>fZZpX2CDILbMXV!!O;iJU0dW4 zp-(sCxSJ`qE$Lj`K*@c|rXb&mY*M;?JH1L;+a%4>aEee2RyTvpiUxIY5VRxgvgrwY zGQQ^?<)uv_^`JRM(CFya4G0Hb$X8s_fgH=4&ERQ0N!nDuetXMcKFuMBi{v-&7HW!d z7*?V7AVylE;h{v`#48{ytg5yO@GmqOQSh$vufb|I#=Cpc#&7i#R|Rc5bXZzC*1S~q zjMc)cld&Vs$?b2?FhEL)i}IXqLIe+Et~WRowoV$Dt(p;no9*50&WIVxoYZCwu9*_i zX6ncwoT4V+cDd-bL2rq%kl5wm_AOk&Tb*>G6b_k7^gakuevPR1o{2u-l$uUUmw1!79B+a?4C#Bi!|Uqg=)cwA;luIm*_5Z(IA{q*a_3m_ zh(~yGS)Z?b)%nkICfUx5Fgw@${hkC0ST?Qaqz zb2*7Iyu*qeVrdV6S9Ow2WpXya6JURtrg(a0W$So6EH{V9_!(|x9X0{lE&WNpE+AKL>1cUttMHMnJ1}VuGh8ml?-JqDb{~5YpvKf1tYBfU5AYIKM;t2 zpfFO_(UEO2Yl3({0JCZjPkDK*%K_%nO)SE@k5A6EuZtC*G-ZsGLe|7D2+kIM$i1&D zezY;3$3$FzGQ#@$nb_4<78b5!Etb6{Ud6N;QJwb>VGnZwZr>%S_$z^bkQ)S4s$s2Nr>Qc;f!B(e` z1MlDcBaK&x&jZIx!YwSQBi0f)mZnYaw-0{kb{{vqxvywu(FxJ@hj%Q;4fV{+>_^>( zohy2SNqqd6zK7im+PuaWoo8WTQ{^JWr-CFHkQ~W(0dZtmYV+Wf$f$7Txyc7j)vA512AfR6b)xJAa9xtXu26NgE{284qSL z?>tzm4M5~A2dJ8Ocd?%QD9P<5yK7c`Hg+7duX%nj=UAX{|H6cS>YSH;S;My88Oc$DDWYLq4l@Ik#=B!S4_#z}~2{jK75f z{$D^qec_8m%I0W8S>t`L8!%1$y`>fZghT>V3K;2zi(oSD^H~n6WRP6gg@g9#t9*Oc zZJ&~||MIS%D&uHduD*WK##*#)bqz!9c$&Nn6fFXH5Mps3KE0gGdaUsc#NPgPIk9jO z;DRMrrC~WE!u6swTlZCFvTNaZySE3~#APDec-}opQvLav(l`W~jG0;XF-d7Q$NVtA zPd{}&IQ-HC>>0>rLTt)4SITQ0=l5@ybnME5WWiw*F?0i9Usd3A_3R0q)#6F$Cv1*e zvTC*$EH~VJPQn+vZrjAMCMrtI3GJgFaC!8J4#rrvBPqYX?4cg-uYGo{sh7Y@0N8|1 zRuQ=fXeLp~h1DgFuG(a&q2y;kK3_^eq)))yazOzwo364%3Dr5H9nt5KnXS1IJ{khP zeM6Mq5_VaK$Y$_46B2?z3#<8c{q&Q(A1&Gd?_Ql@ACYW$=#Z?`u2@}@uIqK`cNCrU z8;ZEOZ6P-F`qa}?Gj9UAB~xwcV_ym~HW4{b(6lWQUxJ(=d75ht?+Fr6d}UUYkTTLj zL7h4whVliAhkj;dpyI0O_vihp?g6d8QE`*NalPuVIN!THX0 zIBM&7r9*Hd_h3hZW1HJ+kqKJ)-qXFw$K$c~*{qiOZvLM9Pg(qkt5~OKu(XAj zwij&7?49qBMSjHcr3t-E&XV{yhUwOKTCv?IUvU4Jc@`FYYu**r%c>>7N zpSs!G+k3e9w!xK#w;83FPg&%Te+ciG;19yHnTa@d(U0DZNCJNzqCAsBvAc{uT2I%i5s#;p z8W$H_^DCTt5~rRIHVVI7O`zcUjg}f6`}CU>#quNbDpt(^m_6BzUQ1qVGD`k7@EtbG zqC(&UpYGM|@)@HB0s>s?(8Fz&r*ddQ2HrZ_@*q)?GF5-B8J1ti=tF315q<=Qx~GiJTjL$#05WPAZ?LGwqz28!OTAEP`_G z;9QpeH^MmYywQk6M3HH|3w2()eiDgLNeE%-HM==wsv{YB^@w!QY=&ZD=xT) zx&t$OP15hVXchmnkR3ddo|7I>(9s^t-5(HY_O;W4H_C60bv|DAPv~6=z zD_EU6@o%1`d+iZCy0JPsG&4p$^xTz3gd&D0dCR~ z%U(Elv-@+qBp{XF+|+b<2?E$&fB4~+-uv_K5Xs-gkRw%1e0kw^H}6-EW7QEtj1qpA zOGSKq>4l2>8KwKDx`Z&E`kuCC_xCVWUz6NAs;Q%pf>R=BBdSE2} z8sU=MF1C9@79^k2d?~!bfPk#u0@cq28PQ1%7GIz+X=!9TN z%Ony2(?Mhg5&#oBFzUmznoEHIt1%<=b_V|d&v)#YXyGXykB5ShVrLLu=36#O%khX4 z5oD4ZF-?g^KFLySK+~6AJXjA^h^19NE6soaXMm9S{rjAwi+zs=?`b~<_pi^eI8an49j1tZAoeh-Gs;H_0E`!kS!n9hU>;=Fft-}xt#+Mpg zScW7FP2F3)VJr=lUCY%>2Z5r=zlYJHzvhL;iKt9i-qgAIRCwYy<-`AVio5^ne;Mcg z-H(DPeit^U>6yjFIXPrJxunGr60&nDCD3x~b7>PV(`rWa!Hud762j&}p-A-XNTW^L z%v%87MOt!y*_HJET%4s{iS=A&S2zhEc!+!qeT#^6WNN5(*n1AWcma@5l1UzdV_Omh zLofFI4Sjs@Ec?3-%e@6D=Pv0y5o z-~yKM8lsjFU)i|V*sCuYJ-3%NdYpt~Ty?UT*}o6C^dTOeWfhTlcvmg%B3Orm(e1Mr z9gY()#)YRIy9X=<%|e#dK0vJBV>jFfjExuKvzfNdJ&k&CtwFEamiEHEe{u*<+~|uD zHAHmsvYN)V3@!5AooQQ66MY1{-j906y~Dt_!G~r0ZN!J%x*R>zy2WUC(SJ-N+h7UE zf|Qf+*Bwec`P57EV*g8Jsq9bg`I_Jd0%U+lkl@Ss12jDfiQPB;J$r@|$8&X~_vLw) z&1Q2=iNS$>N0sU8i%!-BDuE*n5jwPN2k09FX5L%Y3QjcGxnRqAN-E}Z*R&Nya5>8V z^Sl3qJhKG)VvlpxR8$PLe5gjCcHfPJ8P(@1RhtL6)K7$PZv7sqs|}bgs+63Zzz5c- z(6H}y;}TSN^3B>i?P2icMG zEym8UnfVl6?XiD;$ky&#D6^XmL5Z2az2~f!@qJ#1h+~i{v3sJIMV?smE#Itd zSr_jxPf9v@PjP&LM!}aCH!|!DoG8_y^P|lcpgF*yIwAG2$#7636JZx(BDAR&j;^iW?m>`R>AK`H`Di=X*VlM z>VOan>}_5$#spAgSWsF|Ao?cG?6Bd94*RmIDyX?4jdv_mm@=glH9{_4P5@9b&39p! zn2{jAPb=aq`Rtpx2NB;Kx6!~4-BZ1eKgSO>jt1@gU7XWMziD20{r7Yc^yy&_0T1bl z_czk!0JQ5C6De9UnIPv5^=k2N$y|^%RPaWV7;tSe&7rdmqU>d5Z#P#*Q1KjV*E$&xb2gFj zO;@tW4tEhR9sW~&kNaz;Wc@XWrM-N~@;r>C45$&GAM}QZ?(v|kE5U$}M#upUdmv6T z!ZL76Ckw3cbR+?)b{vXtN1+hrlNBy+yQb_#)#TIQSpqli_1=cFT{+MoCZ(rMD9z7 z2|?`tpe(}elDS@#brG`4tWi_e7zA8IJjwmT>w@uo7LA__eDsfbR+gtM8T^1&ZWkoL2&w)3^_FwF$$R4XugraFnw9hXp^^qoF$d z{wl*Iph_hBU%uh-m*`L5UB^!yK{s-J)D!X`cn|w_9QS+qDj@4V&*jiV0C=`6oN>*ap` z?=T|deR`VHTY{fy>Ydt`j@ul5?w`QQIDG_hY+yS8H&`r(X2wZm*wJV%$t5FUQ^8f+ z&6Q)Tbj+^QormWSE%!VjGBPp@D$m2DET;R)rFWFmDQV58 zoe-GSYZ;m@BwomtQdIP5`)Koc=Yodz=w*@9A8roF$h?1HQ(aj}F+j2S2Bmm7^ zoSmV9T-v_v==PBGcp+3|YG zHRa{yH8s(kCoR1VMHH{C-7WL#g*?~&E7peV)~#dka=a>APJe~saJYyFh!?g!71bM1 zeH0emRIU}n&dFtCt@V5Cw(zExFMnedqxLy3H`~o{ZP_v~I5^nf-+%PSXQLE77A01n zc=(^WyTVhnaANzp+w2Mg&fjO=AIaoCH$Y>DGi_cXY4{!ZHAtFt z*dtlTuI+xQeGe2Twko&|X`)c5^Qt^hSuSgD=!W@oc~Qy@pDnVq$)OKl$?4l-QnUFTKfkFc{gwN``c^(O&^%h>Drs|*;h4r zlg94dyXQX9vG5dftG{+BFC}iHRK4h4eY@P*QRlyi8o>9yenIy-kp*G$Yu-N$TcXzq z<@$PsR!-FE?whvyaEt1io$zc+;PKU{v-L9{wUCETBXrzw6o#5&6(Q&NK*h$XRKNpi z767@?eBYlxq8WME3AnViwH290WhD(9V$_!-KLar~RhE|n&)0l};#rjHmFEaYp#0bF zzmRv^w&m&`gjeWvdNKeAD1n=>TsuC13qIJ_ciGB{xXQmlQaSN4v@_UzKFgb{Ii>rQ z?7u1aZMY{6{DpqY+>b^R-o70|DE|Hagp?FXG#V`-A;F6}TSP(URsMB6M(59egyP$O zj|Y|ywLu4{Q1HUtGWN#Cvm+t6CF;T7W7hKsYakJw%k2L5yvsO{dwq5TAHa^@Ts2S~ z5t~90@aTa0z%LQVZ~mUpY~wKO$+599WP|iWLNN+dvFfo+N&2u|d6KTYLGDAn)`*a` zhhk5-0QspV5<|a#jA_{o7YVep`-4n~%dRBjsHR z-&OqzH(zvIl7=YNd(UO<+u-l8H=B}-BXBqgp#J%-Aiy?=90YchhArivcd!@V416B) zTWVSw+^P$JN<@T_zW&~&o4aQ${=NU;o^$Wrx$hDb>Q&V~5 zdHv%@j{2WM>?+w%a}$J%_-{Y%j~up%+N6D2SBTy8P_A7@Iy_z|O(Z5irY^)nr!IJmxUMC^0q+N|wt$?ojp!Y^Yj31$8s zU0!jppB4sjthr2r-^I*9e@9C5hbrqHNcCsoNel-TlR;=o=l%6pDA!je(Ff!LgXu^^ z5vavQ{?%=@wX1i37j%)>_2BR&s5%#7RzlYV@aLrF+8=8v>`VA9q3p$))7^*x2bXH` zIVGM+q+Jp(fqHD}S~9aS&=h5r)a2wi+_;hfI+q&_~+EHsf@_BSa zA3k(qE+FfA9O|;lc0ry^66A1RF9$&dneQpWP-kV=BAH7{zUOxw-S%FBK%a(w5QHgE_ix(7u! zg+RqP2NZ{&@vWNdE|P%kJ8K+(MNvY!yt>;MF6=uN5b3f+LLLit82&8M)53_fs4KIP zANTB;`&_FPfhA#f5&FE;QmwxNx&`~420b$XtagJ*l$Hciy>I3!! z^arH>!BJcCN4<>omy1xW?j)C$&feS%pp3rXU+fj#DhmAAS0w+Qj*{`zc7hEjrpU4dwFZqJET zComwlkn8l+A7TDoP}DhGZv~B3%pm2>1n@uuJ6}V?HfSUv$j_wUSRK%d2)J*uJ3y%9 zcF~1HR~qhc1?-FEYfd&5(iD2bSs9!dPb56)dJjeVc97DvM6u0!=g&7}IrUmE0&Ns0 zUf$Dg0>@_PAxCku4&9>inHcmuy5BO1bYiGFSo+!cm`rmm`~wmKp_CiX`HU}5BbRMq zVS&U7ZK*_>%24ygSVFI7+9G6Zrh#Fe&JxXmzG~Z@{up!o1wtB`UEZQogtuVVgi_mY zp&a zZHMlmF=z;RP3(V}ZQ?hJ^qi3p6^%a@xMdx$_yN|$erEggUBODuz|s&1A@xqQPqWUP z3c@Zx9uxEcNx9XD_rOV6oSL!!`604{$I-`3_n&!|@~+=YtDvv^agoq(uz;#9>(zc! zokr|Dxct}J0n>rRQyTwR|MFT3_2b8n1bV;3hi-^0C{L)>1xko`^SueOq{Av+h$e5i zGeah^pb1A1K8jOU&Z6Q8(&uM>q7!uSep^aKcmfRfHTsR|yR)x*Bp?awW^QiowBy+- zM8qsm2Gyc^_B;#oJp4jFlB!dg z7w8|@EV8LRfogy5;Wg{GZsfb~8> zVakYCTxcgT=V&bF8u`J`jFH8jb$3lR@XHr+Bazgn86#XX|<8MDiMCsR0H_Ueh zAMUxcw`rrsbIF~#4T-fqx9Ym;ML_Fy!v6wP!3)`s>{jty_mbXW*?`KL;; z0ngdCJep^|Hp+AWH7_U={h5@L7#bwbBsv*nN`+LSWDZGhy3r=UUB$4`Wt*M@G;d=M$+bE#YTI9~ZtR8;2&^HRyl zo=Nw3jg)sCNj)^zGW9 z`CU>$#icdktH9-dPsDNB7i_bZU10Mf*IUme{}1J_{I6To;1zqh|Mfd!;7orvTm0|+ zZ+>JdP5<)OZ=q0!Wxi`2aB*Io{65r2%~s^iV6vUB3D=3QoDjgZ+n`kc`18lMG^-0? zXjZYZ)-zhWh-v=io1H(QenqN1k?Z8RBX^CswiOHRTIiORXg5ZwI(?saNQ3(p2h4ki z`Ol_nCtH1fav8xo}YHrrGw;Pz{(se@f+KNijnz~ zcqo&c$v5{25&ZLdqqkM4ZCvwh$55&^f2t6+T-FQ)Mj$+qJRnE7NNMA8{{?kA{Lc-I z!h86t#OsCo<{-wH8yuS$W3u{OmoDOcjk7dlMjc-To5dZV* zTUET>XCG}q?^PKP!n>n8QwB5SNNFx8|E%xkX3V9%QK-F9n_#_>;#%a|AGC?|>&E$Z zFb;nEbC_noCVASMRg#NudyuL0cR8JCpX34uHdMuLf0}{i^Z{Nw6a3Eg-zQYEfep3k zUp#ZU^UE5RYdyp4V*k8jCl#OV{xd2Bin5ok^Sh0jSYmi5oN;>wS|^iMQ&|1CpCyUD zlt<_be$DqNn1>&Y4m z+u`r?JmF?)*JYSOZ(MtxT;)4gzAXxUfqtsap(P3y(Qxt(2; za>;aK3W(<`jqhJSot`JKItdDYec=a<0{;0RF@2T1mknw}Ep@02=+6=2B^7yjc|q^G zAgzEhUbIGmqI@gS*ln;r?!v+NsReDpR-dMWyp|q| zwfAhv%&XPXn^1RgJRzZ>&5&3!WMOD%2<{bl4dCxE+By7_BfhWPJ8=jsC60*F?n)>D8)2VV$CFO_Q=PjCOc%%(O zs5h^W5I;`l&_)Zz4Fqbqfq7O_leit_E%jn!U1kpR1h{RQA7P`oB{QZ|%nNHVr{H5@QvG}SEAl(>y7 zXPl_0r}F5d?tTh`uNxYOJ^-n_#hN(<*tB*C?m*zieGA;5cA|)ZdA)tTT>t6VkN33~ zMDJ2naTlB|r)7+#HU)I+l^GP_Qdj`M!8#k(GBHS^PDvjH$JbvPyPl6maSM1z>fHk- z^LG&j6(-D%kF&G7^bYbdDDP%D2|lW9=8P!WLHsoLlA_Q#s@;3M5e)(!MBM~q^%OAs z5`N{gn9<7;d^@#&MUQq$Y9&kE*yk0V7@!V|$ffH-hC4=tu-mBO+u;ew(bRWd*t_9W zb&y8yV){94eH5-6+cK8_A%v?w5lLqAFM^VU%v9$oD(pJV zt=I7S;RFy}QKkY7r`ba94><%A(M{VEEsuSt;&x!8Oy3~l=DgaWa{#EnaJOrF;V}}5 z{aMT5lr`&LdFV|0XBIrxAS{n`PAg|Y+96=FoekoqyHQ>?t!L7v$NT8RW#t2qpjwT2 zoOJ2*7{()GUsnp%{iNE)ttZ7XDRe#3adw=RsWlB4?4F2)^yefhyGq|8A_>YT-rQsh zqt%&ueeM&xw&m7q`Fc-3M?w3RNn=(1xZbnazv0pYTX6K97R#8wbLz$VoS zKo39}63NV2SgsvYlZ@8cA|hafNF>>hKrTfy@Dh|9929lX8n)VxnuB1^88-?#vbPjw za{v(hi1q{68DK0Ub@dk`0(qR7|F-%W5LJB2_XHQP-y@{=mP6a^A6i`dS^(TX!W;;K zJ%<2SGY|ux?FIT=L=f4Z?SW{7F0SO0#zjM`FYIs)&jFx^~4pfGsC_E=~D=_#Ut-fVX@SzSffFamT2 z3+F>}ZYK~D=|yHB$|wCB&a>9We|up-NLQZ!)x08EA2pei*qpony{6-n6DxaZ8?#5C?S;&efEQeFZye4X!FI z1l{^5WI!QXR+EN;M3Q(NtY~%P@D?`dqaI>|^rUVjbT43iNaSaPxD&@h6(e?kC(kZGogX8|T+>S}hib8xZ25a`& zadIR`vAl*j?9)1yQ`K-5v%;YhV2kv=x`eF}uoaux7jtcm{{)UPEn-ix#})%aD(HK# zrA~bwe6WMo|2X$eH-Eh4x>8)*bDW?M4~IzGCwqkr$rDu%P3W^z8e$&9nm*Cu2G|i5 zFuVO)>VaU7QWtG}mnTFn5VWNtK_!5@nzR8UP>ZKTuSzK@$@OQ!4voo{BK1jMAMu|Fg-qPPmEaVVt9d7okRtm=oHKscb`_|&Zc zQc9(!97rF>G8T}Qe9$z2Jfmz<@`A!hvukydtIfGlne{3RUAb)0vRC23SN9BNDA(QF z6O)=~WBG8~Q;v8-o3r!NlygA(p%K*3)#XiaiAb_VM)zSCn}eOu(8lry_cHO2dUG&Mhr= zMV!{63)%@k3nTe@#U&bd$Nu2Cvbw9n`3FHnA>@s9+=6Km#cX7K>DH^ zv@ihdAfKmA*g-|}$?I4KEc#FZt0s|FBldNz3i;5QLtNUNSZkC3+l=K%5(O?dqjaT0 zdYV2(l0F;y#Hd-m)Q&Ng*E7<7l3034EEXkV;4mHCG1~|lz$;GRzm_liVK1}BGU`l zoxGg+5m^Hhs~}j;+&Cn&a-Wqsj*!8*jq$dmcq0F~B2DI+^bHlSOu-~I2K+#-rlGeN z=Hu_Spy=r4q7J#W zUQ!RL9oxFn#Kc7T%ARepZFR?$9nd9cjU_ZKHMR3)D07Z9+_q;O-Mk{aIy*Z%GBR@B zx4!((pMN*8K+aq0;ELRrFJE51eEGtp7I2*T*b!MV7EU*FuDi$mDfosqiwzjw=+Zx^}f3EuLS R3lfY6_gU}F-gD~LKLOaT>qGzm literal 127200 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

    Qd7<5f9xCw$lsZC8=q$MV)$*6?&jWp^k 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 ?@f-Fh(w>4)>#O_ zRsxRgGvHbiFzzWOJ`BLTD(CDx@1T$)J1OKYHxSi}J(E*3zdW^2&so1+Gc+m~e=u`I zinriipTC8(+vaL!&oeE-Il}eqN;FN7^Gq0uwC`#oXv0?T_E=jkY1lt9&&$Tq@)A_u zDg*w!pv+Za@qd#5cSC?qT30a^ZhqN|ROfFja{OQvlkSj<86mj5!vtUg#pOR#@jXLX zE6M1I%NN^8xeMhV3ad(&5CSd7wUK-4sY)e|8>=-206k!WH>}(PWdE;)8oP2Wow3A7%zW&-_NOq4D;(c8FQMNqv>< zc@&Iffxa7XbTj6RJ34BHIj|G0_jA|Irh4d2^WVH}&3p!9RG zt&)0tgKjJhDUwRJ9{_Le%M!C1BdsJ%ZhNVX@GwoQ@&Z||`>#E>P>Rx}b5@^We7pAb zx*rqT)lu(D;VCc&NaIjtUdVds^0L2zY^bVYBq^!DxV8$)uQe#kdKIoB&V2c(rt~OvI!QC_bCSH8Nc`?%;7mu!&AVUr=9&DWkB`6P=yrlk5g6~~zqK`z8N zWQ>uYDWdwMnX#)K+Ez$>w8y!4SqyadU&GfyksjEWFw9Iw-Y6DR=H!zY3-a?5Qs=D% z5R?E*DIsW3;n~h^6h*PQWk57$VpKp$7RuPg<+P*0b#49UL;bN&TS<-O$=`p!EiY@$ zGm>p~td4{L`h^eNmrOY=2p zz3C0}3k&i=XhrWf8=~}>Y*Jq_DPTT({?+X(nO?Q^BuspMVqqB$mxGayd7ZN?y3Pq; z3;c&5hGe|I0wbaSm@^l;A?2Nt4I(B82C{1~Q_hIlzziS{I{#9WVM7VPO;Z3iGd4G; zO8^7y+lxMv>o!XM4fPtW++3w`q1*07G*aEGd58Z~@-;zx@=h|J>m(GPSlJhAfqk>k zgv2WOo%{m!11@#~g-4E-4012Lh@Y36GqxwXMDwY>I|?MqdZr({#n=?37iV}(44sXq z?CGHBn>k`e|Ku0LTGY205(P|*j0zZ##NHlCR3er@VORJo!ioV7wM#pmuZ3Sl1b_&k zXEC!-hh4q$yEfGK>O9Gctv;C5eX)x$#UJa)4_2wu<=1R&z3HXs;G~@sVD3Vik`jsB ze<7YlkM;3OR;jUy#;N>VZC@VG4EuX&HVf#`YkHEg90DPC3R<3tpfPaO!KLDMxFFaC zsnuuPtN<)ZDp*uM&+`J>x-g4kF2XA8^PYLrb9h+|pgG7q;vyfy!Zhn@i%l{hMeWJ! ze)?r)Hu6T)_3>j(h$@25s-IDg@AXxru6)QG8&PL7(5O3Jto0_kdjyfRkd;3BkydOz zm_Zeh?yL7Ts!Bi!h=3a?rZxy#;>^N^HZSka=x>erQw@2PjQ)pr7Qea<%u7EG3j{$R zHGP{ZI5a3t=|Jsl0mGfo%=Q3Sh$BB(rfQ-1?ou3=Qg`=ud2X`CA;`0_`3BP(^08Z% zJH)QGa!|MHVgfRNuMFRJk3ZuAeTyGS=q;Gme+%=)lfCAtr@}$o6yR8wqOcIe?r|kXyoYfgD6ccq)i#q= z>Fwy#Cu_imYaWjF^cEoi2-th#WI}Ww? zEo?Hct2;V_v4C{9Yq-Kd6tP~G=V)bxV>qU*@*$Cw1h41_kVS6p1njn$FDHX?P{_u8 zuh!$*FI1P~q%a1D4<1y2$1P`l7EAMmQCLIO6lGqx5#TvaChQGSofYG}|)sDXogeCxAzQrd?*snodde0D0|fvLE-! z+ke5#2`GhJRqVl#8TRcnk?Jx%$3az%rqFxlB{VcAa>NOOX)U#(xQ2y#u{4o_A@%*(!Y8%%Li;!Y0jAmmMat9+B;(h%= znEKr>V~G(#Keq|V#@eRZCUzt*c1^ajCnxF(MTv$3k~y7%O(Wo6Do>GziLSGK85Aj3 zIXl6QFeWHLe*TAh06b>X8#;qG>!`Jwf+N%6VpS0{XvVgcM<_o-9}?imZyBs6xFeEu z1)-@L%Xpyj$9rXg9_wa8&(9D99C{S&yrYniF`a>qZ}0XQGfqoc*;x5nq|vWggsJ6o z7lid^JJbyk=Fy)G%&m-V%7_@+0LRBcw(6*|)m3y1wBRq_4O&A6>awVB52lQP6yY+C zQi9DKgr9~B2RJPFy0yj`w9+_sEd=%??l$p~t8;1NW(Dk3Z+4J5jLKk-`CRP9yGQ1B zuR``lD6@>~4ckf7_1s+O_TUKZoGm6N^3#XH<(`9KV0AE)4LC78P$OZ5M^iTCMYQv^ z@)9_$LO|WRORV(=Q${9O6Id-EvZgZXdnJ?p6mvMK$6vjwi?7>I+DhD_jNgR<0VN{T zG{MwvXJS8Kwxd$Kp6Vn5rvNHeN^+FWw2KQePm6WvAqVxtS32%;xJ~Zv5$;{h&XZ6q zS>LhYi>$OBHSzPKS$sJ|trTYw9|Z)Lu7FvD5Wh|qFzZDhMK4yQ^4)yPI_PtQEKpj{ zDA}OlR&rS0(>sqZuIFrI6L;!%AcBsk&_(guW=6QEVnm3&XSwlU)1<5NLOeZ*<)UO4QfS56h~NJ z-gR5QOLBov?xs$wjG-;3O_ohYgX<-$U?4 zHa}@Mm}gMl-lmN9?N-L6mov-%n5`%xl)nFyF9TZV4(ic9|{BWnU}7D zBWC;2CCu}HQDp7&owJn|{Mg#M73zB-ZGbI+ob7;0*qxy~%6z*G2uLWHu-%3EtjoG- zCQ&7g0h`LIGcwdiFW&jB-;NqJ)L>M52#h0X6nAbOe5a`XN1ReCXUjRzt z{NsQuPmgxo{VahCLm#Dmf(F0mTSqt1xAt6Uj>wx!6&JwOrUS4O>gBv7I)xoqs|n=X zo;>M`5HzmOb&hIrB>Nlmm8T7!)987a^-N>6{pM*zoT@nA7f9RfOA6Uk5_KND$4rW+ zl4&IW)N=OL2!cUR?bE8rDe#Y!0ET@I<6p0960~M;`vJb~EynWd#q{QCM={QL{P{4QIvfYOso&Tj!Fmzz7! z9JpXtdB7li2bP_1;S*4ZHAb^^ySwX~j#X?Nj-N(- zScTR{TC36`h5cTwf@&-=K0c$oic{$tGz-EGq5dUf2P6^E$kK(e;cjN)3~!J2g?Vli zptek0ppEyt*@=mw6UPU20I*qJm?E@Lu$mnMv#1^d*~vLG+a%S4HCx+vT#IuJojZ={ z;zi0&tnrwLqJW!?^_kDh*NQoKYcY5uyU?j%F%xb*9;=?MAu*QiJDY?KHV?8|#l-!P zuT6c(isXBE``zUvL_#dS%h}nMj5?UjWJ|TcC*I4|%M7xEn{Q4r!4!YzS$|UtFo5&5 zEfEiK&Wu;$mrbSHZ9PS;_N)P;CfCU}rF%Ykbbe^v<4etIJD8)+(%0=GOfuy57V%bW zhlBY$icwNlJyN4ow=8DLyEOGy)?^RonV;Kx-~-Cz6j zijNVd#P^#$v3z?9JHqA6hkDu#VL&ei1Y0sj$4W3sCBGbS z5exrp z7`g{?kdN4T@1?NU=R;-rNbacZM?RlkRMp@O66-3s7JPL7L5uT?A#?kJ&7=xP-_&W z-Mzm)d~lif@iq~G3@MFqzIkgl2SW+S6oAouEIwkAsa3wxFs7iU)|;&l$(z_u2ygHx zgAX##Kzq;V;nDsrYt(Z9l*Ufb8`R=7cr?AeJFCqHAK(2F5o8w{5jKck91^ibxZ@e9 z6AA4c7w!zL(I;uZ82RGF)r>ke+#N?pdv6m7M^=&QrH`-`Zri-0N?*C*_kQODftvxIr%GS|#87s&8Bw^hX)7FYh?f+Mj3_9o zU407zQ_4!$Xb`jf@tEVNE>+o3`h9Jb*<5X87_do^VXP!vx7eXPaz7AtVsKK}L4s5o z31a{YnAZ{L?+xGAZfE@tHOo>?U`?IaXyTsw_6c)srV|H1rD&lO*8eA=43$(duXo|CbfCv{D z7!h?}r}PUg4s}CL8$MY22*@?~#ma6J1_86=cWEIE3^j~Vp7w3Pm$_OP1Nu-wlng@pMtAhB64fqScc{~&WI=U999 z$L=)ygxsH}yRXOj$`tcWPa5_#_EM#yVRg~sx;^22uVingoA6?iD=Uu|`Z7|m5=*Om z`oMGo1sRagg7jT~Ob}#Suvh+jM#vDC;Hr@aeg8e6i%|K1a#DzbH8hae20wa)y!8rR zy8ZND!8Q^C#RvRhXZ7bD2FVZmWC@Mx_2qIzTH~of`(t9G0@+Jbv+lvj_?EXw=P5W( zfaEC&8E=v5yH^S^m8|A{(qTs#TNW>j@wOSOoVo1d|CN}lp6mE3?cN9c6M6O@SO@c& zrpNIoY>fZ<^K)kl!MxAb!bs5l>`;6J!yeYtwRphaGWWCR>tRq_d}=0z#_&!WwDN!Q zIzG%m27}BCZO~le+26I~+IVHtRTuTEay9sskB$k4( z5dEUed^AN6Oxds-E8RfDL_`}r&9E@57>0hx-?Zk#Vjo@pkgw;L0iv&mg6S5via>WQ zatPLESh%+EdPHdlQ(wD!?JWvs`)z_(G*CZ>yTMluhG1QQ%9lK0p9Wlw{>w4K=dT9# zICq)Aa(+61X!I@t)=+b>k=^Qmf9VUA2&~kxW!KOCppg3B%OJBKhpx&| z0DsL{G%Nh;DEB&`TK@78xfSyS9V0>wzsi2`k#~>hLxApopqYXhxvzg6+ueRocd%i> zL>$QGFo8sXaaLshWzlQ?f?6^V_)l|;aR*8fFveH5=zfAr;#KRxR6t2)^}t6=Fy+6= zil&E|6rkwI!v3?D5Do-94Ckvqt7>fi(h`m^ItDp7E>RX&SJu&dFx_Zjb6P>wfq%m3 zp4Dd!twe6wdAHG$%`_((^FwK{Rh~?@FJmSSTg>XLX8J5FE|tBag36wABe?6=qq8gN z4URI<^x&0%;JO#T{rlt*Iz{;9Q!SzUWdFL3H+s#QL7Hd;HRZ}rjka((?2l+FI5k218l@A6f4mNOk}Ij~^+DqEbh)k|G=j&dK;ut#>o$T~vE zE@Vq~b_d7an~dLe>hu2I+`s$Z`@UbV^L#z8@wgt>a90!5Ve zkBm9?x%M#1t{y`?a~qZ(Q8bSqpPN;Yih-fVP{-?sqpnkF&>Yyj_Tc2R{}}wEH|51C z4^`P9f}fOz_exV#u~NTDpgwl&*l*aCmTS_?Q@-Su3~{o zw&bdbasXx5um8Q(hI!-f!lJC{=v#-QIN|#d*8`FBoBsE$!zB$(gAuUCa%jD?MA{>O z-P=ntR>D2MsHo`OJA?AwpC<0s#4T7-bWgC`hMdwq?=)II>o$4jm9~Z6`vuDpr{?Qy z@n>UETfnN4Lh9j!Zk-UD@fvLT;ylcvS|OJnA`;CQ^`A8sL6_}4%$ZWiF8p&431T)_ zdZf>o8;p^35SfJio;fBDiLI}hx4a%=j;cd9ifxW5A$Kn8d?tZ(&JIFA<=Z53ciI0r z{!VJYhrnb1h;a?U;Vygxw}dsR2Y-;zFOA7yoT;OaB=DcTA8&YYc2loyFuwSTb7$-G zE*f?#-aWs6XOIdun8475Qrp#mUeFf)w*WH~houJ=^*J!L#PUQITu|tDIF&yMM)DI9 zt^Q9&3G7*Ya7-lZaw|2n4QJF&X(vP_7`aOPY7eSh2?spQlf!nzX4cTS<%G0>M9`7{ z#0)xi@G_m%EB|}`v9bvAf2f4poBhhZ<2datAT&799lh%t%Uc3FBP%{vpTt-t*l%%9 z{fQv$zY5#1Q%ptk{`zm$&Uz{SUAy+l)f56t91H>5g34BF+Y%W zh~>gB*w+KzGBG#XvTl2JY^)L@p4{UL30V}6p*w#7mk03-)&z<;KWT7!vldO(90y?? zI?R_o%MzbTTsBJO@xF7X%j@Ll|Goxxk|;ki5F*<6vw|%6Ew6U<8V|#=?0jcfW>#%| z3(BCUl+46^NRVQ{k^;@U)%dDjjvH0XR|j05COb8vs$ z7@|E(lM6A5$aQ%S!xj|QEB6|%YOhH#i*pa0#E7EdT0xXdF zf1l}&k;|P|7t4r+;lggNv+xhaq_xsHjkV-4TyK0?Y+J__Q{}6rI-*UAN;#bwj`lHi zu}aaReomKIRM{>vRyeY=srcB>N4cE5=t#|DOji8ivf$@mKGbYvwCqAZhaEZd>Va3s6 zz_xcdDVpwqcCJlUrpL4#Zl{F5Ti!^uqt}F;Qdm64CeEGj#Amz2YgEx&{S;sBx$s+D z6_1mCex8zC-^mdF!xeilo%EUL;N{}->RX}+d6gx+sOY0E^=k?G3 zh|=J5`50Yf$h6QLOG8DCT(@b!ed7ycz z(1*j15B=&-&}pkN=SpGtXt4i-+poQwYaO7dCy`F0|EU*VB_f_zCV4cx-HqRZn(e@S zdi&?9NJ%lF?ikgRp|XdH$Zt;1!1sBy(_Kfr#J-^OyM^?D5~SYuSxkOcu4IOhs{5iC zyt{+3GGnJtW>B5OmE2Jo6;4RbANRS@ex+D@a~5YKS=KvV5IH z44FxacZI9Tiz4{EZ&c$K!>`dZFz<#44Lss*9mDOw;asg7ied$hawuthX0JpprQ>Q3 zu!`|L@N~bMV^hgWDeNEButQmV+uFV4)FFhv|Nf_2wswqV+1{f<9MvDP2<#2XGP1)* zy@BTh(oQyUX#BjS=#(OJG0%-Fw3ybDF~+$n-;?_u8l0zlXz0^h*%15F-9<)iln&Gx z7DxUVl$GWqMIOx;2N1}8mmP%Ib~UD-q0OhDL^LM|ok*b{vTx&KPx>1jy zH25Q_^t1{MxYex^DrXnAOU&YS&%?fa+2M3WUpV-qij|UCs?9aCBKY+hW>8A<{ynjY zNv*H;e{brOVZs}p3_k6_vrCeki1AmkV{$tiryo${*dUDMkW_JK`Hxq<4}#bJUaG%D zj;OW)!|-sj4a|EyWYO&5@;y9)K9ITLU7295!e{P{TU+h%M|*#LHKS|qmtK>u8D->p zarB}7LT!bSy~0qrG}$UzC(BH?o>}tmEsl&xiyK&{FdzhiRJBF7-!Oc1*k_0Smkq2F zM0#c55`DSk&U(~L_v|Rr2flr>trqMlNZnOXAC%ENl@~rJPKXHp-uN_%1%uJ;-k2Wh z(9@%vff9%lhhF7k9;$lK{-Avy?A1bJ?ig%8j{i&B!E%Ri8 z*=yP;+Gp6-ARaro^lCE2JgT{HOJw1QjDqVH6PkOlPJ=Nq{#tP}`%AHHZAEDBwM`lc zID}JL^&i_|P`KPV67qh;#*>TDfW+H%Uu3=T6RVSS>VS88G1yNy`6RwtoMY_D=we8_F)$xJYlb);E!t81Ygg4^WjcfNcj!8VT zL`rH8UNx{*4sXWgQO@B$H5gYU?7s9vF{EFUnv|X_a;@)AK;IPAKe69r$MVA4bSb#HaXzfXg@f*J$MEo?y=Ui)QlDre%Tqe&v zk;B*`-j1lP$UZx%@0M9{?GjbuI|X;Hd*i#V@(?}tIAs+jq*D9a;FP|$gHjOICL2-X zKTB9gpJby1zA~GP=9D}33qSjkeIUE3LN%RhM>c2vuKs3yFqyKi;_AszoaE#!$k{cM zuM#H0wh^`>LC<++GT$7Z7uk27Tlg&7fP{%e21H^6%otyhT&W3Ulw7_JTkkBIc(-;8 zmQb);ONO_~>51|guc^Rv%+A{27D4LVff|Y`KFac$1*-7&7^XNtKlj!d+r^job}RUJ%cQaDwK5+{_2WSyf#&n_QZ z84G_USolHesvI(4JxZk4o*++3KqS^H)15l-ZolcbKsx@j z`ElCAzO7)YY<;G){C9%0_4ZGMhKsAKtBy`TycYg$&4ZN(?;aT8oi}|UP9}Al=-DF6 zg63Xtk8%k2kBuMG5IK2s^+{^SWitKz!OM_w!${BXxBZsBX&C?pfMz(~<;+J-rC>g- z@G5(l?D`k2%>kX5X;I96*6tO z<{iS!DhuH>az_Q|_1vs)_nRtfL`7rF(i|&&#{!s}L-9Y}GG4w_oSTzhYrwqr*m|xm zmZ2dB`8py$9%9L7fFc>5xa#}H(wi39zl5}oIjeJwNUWK9v? zUi++U{7IL(5+yrgGsOsRBJ7n}Ep|K{yE{oPwcai##aYl37BM&7VrO1Zd|e@$i_21d zip$h=DoZ!7q2F;TzNx8ywY%Ai|BQH7>%EZpop+7AKH~Rvbk4EH2$%opP~&iRo*Up% z4vQlAD@$#kpeuB2;1Kwbl$t!o9}=9M`pF?h9GzTSVQ+`(sUWCCX&473)jjJQ_>BKq z(9GF@ro7+OSyz$Gf4Qzgb(zb)B4_>*Kvren8BMGYQ~U5M!1b4ff7^U63%5fcw)aJV zA3lZMehkbc;|UR1cm52OYwLpvraHOCO$vI0JO$(fR;o0EJ<;z+^$KP+xDO{po8>*w z4LOmrG~e<*Yi%{Y@%unp-qJwsSVusB9R%B*p=F2P>{1(-qf*}d%IoX1eDz8;DM>7k zPW{MVrj~uqCn4J@k7(k#JCKl@Iu=Kb^-)Ns!xc`KtN7! zhMBaRs@Xov&Y_Xm^53~4TcaG#fqC*|oDZR_kV!Bsn8>oNU*mXwK>j(z?9VPF`!J(} zLDhg)XV36uKsXC=LeMdsl`uu;ipfP zunqfB&DdO}Mx$x32q9$&Z3R}MnVo1icV%NE%R;vfp2}qhcdOa_uV2aX80fl7-HTs7 zrco=lc|l0hpHHFX82pGAEtK#QSC$<%%Z?Gs4A+XfW~|QpR@1LxQH@U-8K9==iIn_U z&Uso)9wVHpvCfJ;(B@D?qXmUr%Eo-GN2s0FVzUWt%J>eAylL*EP~0c&?vor80<3%E z_77@h-&bVE5X*NODzccky^6PIYEfGPyq@?1snrC-5t;Je#h7`llv)?1RPpb*Pf9Jq z)?Q!DJTG#YEAY8k4Ofrl<`$&!xi`n7t^4iFBqGwaQkHCVblye_u-ClnaVp3Qhp}n( zYIk>KFtVUSR~f$P=!El!L~YnPIzCx-pu68@?|Q^h(Y9mMy}!uB=z_$yY*vAjTao8X zk8<5n&Xh<(twV=dEQ*0Ee-kC{Sk5~IsmU(!t7Y9>BkDCEOoFxq6oq}$KSvVN1MLte zt+(!&JYO~QdBC#ooPkjdURjy3aD`f$$Q_%s?HOLr;Y8=V4HcLfVT^qxdiVNG$%2)1 zejZkKVXvuxay4_)xMh|!+U0NLIW`%MoVoMAcNPX>Lr!f^yERk@;-k(Tt9tYl#gJ$q{|mqj+~?v>7g zjw5p&%Exh=I%{s`brmPj>5UcSt7s_A?k(p|2~h^}PfQZCA=u@(f@@(d3_}6jG*oa- zB0zp_-9RF$PVbGj-nf4bw2kGyAinTa6t=;pIQQ*BV3~T}m^*tB&z1tk>_nz3A!`u+ zI7FA)@v^=r@M&}FQQ}GEsFd4CTwm$38td0tS687loWB!fwgsq#&l_R~I^fF3B+>;aU<0r7vFt@m2*$~5q{?B0!+5a9 zXO=(LVU{z$Q<4)lnFAyo$dzMrrZO?TIrQOFJ*S}p`OsH$F8C88 zDpbb%vcemgP+Zv`#EB>cV?h=~qr^MPIa1t^OdN}?6%LshER=r1waF6NgSSNy3%_nR zlmZLDa0k2ZeiL}6IbUrtA`#1P7E+G|C|g)~n8o4!Xr$Im!EU}h&z--89=vLJ4R*$?f-}_s00!E^IDP1*Mo6;|AbM@^zECTN36H%WWZGVJ?tf7PY!} zIQjbCZ1_eCxCh0ZP_F+wb`HuzQhY3bBxTb?*a=zo1FA40aNRsP*C30e5;$XSr&vV9 zL=TYrE~P&@#?$2?nuCClmZ~NGDikF%&RXz`k$F=D_5~Erz!mj|ScjCg)m1#aULc_x zs>eWrhya)Qw{((jhVNnJUIK|Z?%6G**YfxjCA+$M4;eWlaeygZ7Io`GAx1lAE+_wGG;1;g}ozIj*i!ik`$ZH4Rdo}oS5LP zchS;{TIJ+7vibORLLAkQ5O2lIXc^qy{+=Iq(m4twWp)rb83POe@BX03nJ1@t!ekyy zA}OY^UM%&8wz6AXRobKnmpC)s7L2X@G^@J|I97$~3kC3JxDq6{(n`KLVDI{VUr9!R&4ydGPiLPRMkbkj3FF-mN@$;lNq{>3cQ2)(M7hjg zxIGvDew@CGto65|g}tRsaxF5XEj4RH3vRV(95#7~UPWv@|kv zb6V|8N6*j;OY%Ce&EzU6=Hax~EHryIP2xAIDrTDq{*Yp#qIkzft#Tje-s7$?de^5m z^IdH*F7#1wuZ*A5W7Yc!lPVj|BcJ=y@<$Ev&)%K}CTHX69c0y2)kPAGMdNw7W&ZF7B)EX7Yb_{lW0#7ZeZHUg!}$z{1Xx%lBuN}xkkr(Ld% zXcc|(pia&_J9woC)V}>hw|gQFoFDLrF9i!PQ6TogHTff@q89-bK)F5gyuN~2_>OWx zL+0~Oa&qv;Vd~Y~t>~PKxssDLI|M6wd+GsZH9U*flejqPhBss3_i>Bp(n{yKjH@P0 zn2{BNf2O+{YL7;KGi#$}>|x1DLUJhwv!|KVZ7l}}{M57p%!D>IRPNz;h4MJW_IWni3c!^hUL*HLJL%hp4<*CbhMTX;gPTWJcBB)Hj35bhAXjc5s?V}cxDiNE zJ@`XQ3s55_vT0|Tb#7=~gb?19fM)AmT#r(Ee!zuchu`4-zKS^2Kp)d#85jv=)(t?o z9gby>1YZW^e;ECh%?O1%e?vWyF$SW=cLTWM%csVfKF=|C^%es^9{<>C6(7!eEdD6H zEQz=sDGMzh=iX@Oeg86Z{O}oybA=HurSsqXz=Kp&g{(Yu*{lY(o_6lKjwID|tb8-_ zmGd3%N&3nfSzh(ob5L>$T(ia)Ke!V!m$g0VziiQr550Oc>5Ve{6bU*Z*1Ul8l!0#{ zmeM+fLqLNo+nkV1KrtXb-iD0#)u$uOXJKDlOFWKwrMkOqa)9q6R>P(J+1b`MJ%HA3 zzoeb`TzJ51Uq(jEhE0IW+u0ZVL1y6Kp$oALFJ7i3WtIahRn^qIJu(|Fk#+NCf6kSZ zrH{8i6IfiIcWgcvcNqUcMMuQ%uAj2A<#jI#ED@kOGgEp&xEQ6Ot1wVG+uv&xgr;M( zRB4_Wzm$dJ`T2Rl)zv-l==VW$T3x5*sxq1QN_NtIQcadVsL($Z82rUf{o?2ATmKJW zon-ZN%9(e0%@`AQjoli^=LaOBSQh|5z}d@^T!Okv^hGkm(fzD+-se_3e_h0dhLgGT zq~tkj=VxtBq1Ait_slq<8LobksTL5>V`8+_D46YjFQ+&7d0~TIn1KkYZPQmycT{LG zy=tt`f^$!B;vnY3mxHSpjDvs5fya2g@laIM=(VcShW;ZR>Tv7ylvR zoN~*k_BG}SC`=zI;@~!bFb}4Yo1Os<0jlKtr`t5$kht{Kvdh*5c5(~J72z344$ba|jo1LM|wE+a~==ilw8FQn7Sm~t^3e0Zs2-Gg$t)=Of zD~eW)=NVqqY-^kOoAHdaM>Ep7v=xy%#Av~~>eMakY>d3Ix_yS?PTRL4SJY+71nTBO z?hUfv;1x&gQ>;Hg*}Jft1o1@OAJahcA5RDy&L8nR&<4M{N^59^7(MRCScI#Ym{_Z+ zQc&pjmb(8g^HitH%J^jJnP|S9lzvJ)C(yz5U6&RYtA>V_Rli+Y*$=hirHF`=uFu6) zjDxNvr&|=`aCb-VXYnXU+D0jszS5tM?bTs<5rPi$1E_F6gDDiXWeX^~G~W(5GGBl% zA7rcZt5AJA*?2*EoP%VIC{PXdfB@4gq=t?L3d*KCEhazZv3hU15%=2bNy4_@`wZb@RdD zWllr9w1u!1_+frGv6v)7Hkyv+NO{$uE}YpH=r|V*fBvlujzqlESf}tkXowF!FQ!6$ zDA|a8@DX>BUE-4$9LcdshIlZjl6<>i@C+Nqv)KhTe8glqga^#1AwqmQu;f8@d}RA0 z(iJhGy2zUdf7(El2h?Z9MVyQQL$&^PXtvId)1#wSa1-vpY1ByQG!^#I>a0Ka@i`XU z#i4A2EW3M&&$D;9RJVgc)D~jqvr>r#+9TDi+!u+!^II|RRN^_xu9%JaJ{wPS6XPen zAsB*uSD8(qWg%h#1BwGL865A(RuC#H$1>4fOToON>4z3 zhYn>aD(0p2X;$a?6Tyl&)PfLy?i|62128iRI#I|)Ltu$|2*n}%5n^F05vZl>4G8KH z$vo$0ozS)YEiK5Xu`f?79AC`?i7?Xv?8)MF&JlHG6`wnF3>J6&*TL{yzr`{rIIXHj zeE^#Y23!SL5twFt-ACD-yF6{C_mXLp|8QwgPsn(|2bTyf{YQw$Juv*DCERRDYCs$G zFYPkmmN<^ThND~8?jDZb2iT>bQyfYrD6oPV1tX2|Dy(Mm3R+Tv9cdxcfLj2;68t*bn@oYYK3q|t}OeCVE#dEL2F z#13S2&dZ(^2@RJt2(8P8KMg;t;~#V~`Jfo&Uqi>|{ve?)` z1LldTP6;g?ogkpS($o2YuP~kX4&N*fRZ_5)ct_mfagFb>W?5rAKOkDOM~{NV6%;;q z+~_zj&TUy*sp9cVI$yKaPipHeSe4)yF$<^>IYAD7Ed>Stk|#jh6mnm3$;9F2ZD%U- zP}&g|d1ddGBwNuQ9}hcF17Y411}?x49jFWE0t>(WUm2LGA|(b_5XvYEZc|=OS6KY) z29oMR1CX$2O&mipbAjstX}kSCb7k=IZ}|7%GX^(|@PYKV6`YIuPrnV4t0pI>2N?MQ z*V1vQBF}#k*GJ|vc3*fDoz(-*P9S=Ey$rvs1ez?WwM7NTeIw!xj*X{H?J5p;f=AU* zXa%Ja?G$A*<8P+IAJfR1b{Xa@1WQ%oqFW@pq(f>VH3 zkm_~Eq52SsUIBuI_f1YxG6V7oF^9Hl-N%-j3^yI2`N5LNvo98f2{FgNHx(h?3$pB^ z@?seM%Q&pm_a@a@=+jEjm#HF z!X)4f42UYNVO4sDgr7gx+pktqvwO|98RAvi9czGL%;NwUV1Ak^sy1sry2c0(@EVAi zSKGwi`drFP1vNvfx~&UaZ9esdIEEMf5nF&>FHxNN;^Qw3)hHq8`M&gj^cS=b;`~YE z5j|MedzbhmCMM}QQ)e1cP>{q^H4%_%mOwM&V^uOr0+9NK$s}&l8QnVowrb>+XYJD5+fr#C1jfV2ruBbLJpp^hI)cnibzuc zDl`Fp(C_{}`GEcfC^dGs$&aJK6{D#=ab`_(rNUc7%&{)qb2qd-SGm|j{?X?xgjR!{ z_Ea+$(FdTd=D)@ej%{v|ymIUPymMWJqJFr>=g;mf&ZgE_NYYDTF^dOJ-U^T-g|+>+ zFfvrBc06)Vq;~;@5L~W_ChijtAXtw$P;38G1Mcft!VAoAYW9IOQ*O$vt+?jMnr`a& z-*&Dc?HwI)lAdmchX1U@-vD!mqNG-`1A4wAE-B3oPa#~vo1ox(ZKxQGr5~8gotHan zZr7rHTK*+a)C|g545n``1)T&EXk77v+Wz}Es#r-<)j=(_X(Cv@rI)r-V3O9krQ1ZV zyN;(PSE|w2rqq*)yU^d?@8jbGO%J2esd^v(FTk{+)!#BKLPzvRhx?1him^)jbEk=kw9T{kbk2A|n~a3hb}3m+-D)wH`L z<+&5-H74w}P3n&!U2M%bgi5dWS{>Y8r7T|*>j@il+a=#k(A&OiV3rlzT^5PeD_I^^ z>`uN~09vmS7Zbe7mY`C{1CI}h>Iq#p5HDH8Y3@g!OmV)9;QCit;15h%Iv4qI)!q62 z^4%R~%qu&@M@}QTK+L1AwcQ4^A;!*Q%-N`-%=351;>{43Qkyd)A6>@h7o-ZjcCqC_ zo7xL0yAmXkQFF-OT+kX%z6yWRK)B?f2|l`)$=Z-~0T^CKk}8INKIvu%3Edl04F87i z5L|Kb?;n%npW;Jtjr5EGIJwJ*RTo6duXe{4d+m+;)WB2c( z^vf1RcXVQQ%6kQzL@9RAN2#Oj?8H2_s{_kR8Z1m!AZ$fupu}4}TyR|JKY#&l=8ADx z$-d`JtSCVX60G(7z*XBnTA0g(y#PYKC^$Iy8X~*1%PxN=542lfT6G?avHyM*!RwVW z{OaVKSRAFvdV7jwc$jeK;vp_`a$5<5B5IFv3HNd#!acoRR^cZXLqdBg$?-bp?9|Unm4e~&w2kHEc zzkpv<7P{qNl6r>Uo4rC9hI>i-+>0U1(CT)~roA}vdhF62;v-|Qychgx0py^!cKHy} zIl#pIVQJm=bRrPdH`{E!h(iztJ8?EToi@vLY>7rnk2#3bu=s_=Dak(_*Ss3d3o(X( z8u3z+AcUghpu`9dDL+b{X&`~YB}G7w<<)gk3PH8jeF z>!LkP3xu(Bo6Wh7erQgCBx$D^By+&EjCOz6*hFl{Fve(m{!WC1V)3g-DBccByiDU- zsM+DcGOHyAs+vLA#v_e*O}@w1USE6T{tNztdJ=gSAew8M9o#GlAfD(Ak@{F}*4kn6 zT@O!u`cyWOJ6&ac==zfhu)tu|5!_BO<{Zdr1x$!osVhAi$V$SqJBo-17gX`5g6rRh z-UU2H9NlX)cdiGNe=;I*m@UI>xvAL)=G8*`vYs<+0jTBY*evQFh27b8fPvS!G0=(0 zvNh|!KAz72O1tJpVqe$fDP&PlvZ$Q;GUUfsPhy+-=+slDz2E;9XqLb$Rj8o*XYv&A zmtij?DFD{cBm*sGb=mqF#rz7%RcFa!7l29&Sz^rbaIg*YSP(|IU4oVx=qB~Xl?H1M6vS8NNa_)qndulx|pvH7yU^+ z<~JsPF>mO~WSZ~_y!^A!9X(Kq5TCwjh1bNga$thtJH%Vxr+NTXUfk9TN-`VZ4jzQQ zu#>;~Z!Sjg1;X#Xa*X_>#UG&LJg=WOIrzXT3y^}cqsICsLLziV)7rlaq{TWW*H(r6 zx6+UO(FgKw|KK(0hqzF`18u()Y41yLM0gdBHQ>R-&k`T0ZFZ2F{;#`+c>SCKTNsZ# zj@Df7kJ5NE^Z_jNa5?&8ZYx<$O?l$0sSSfVzPCVG^mpFsrcKqobe_F>{`+V@fm*!waq7yvh`B1ilyPLz5@qX2?p*MJ8Z3WsC4i9=kOJ9cX-ttgO5WZB^ z2?Q1Gb#4o7)55KKL`HT03rWnYC8CsYwBTi}PLzCI)ej&L;XLoyKn7&vcx$|-(FkOg z8k}WIz&L_8)^ZG+TtyEW#{PNRqhdO?dBE}Oe4lT+$&g%=xk|e?%{!hV% z;ETa;s$*V-+94t?iPOY7tfW$U6?1Q-af6g-_LSMt=yymj^Iz@<9g+lcznt-81UOov z+tK%kJ47)j*YVj#ZZ{+y z_pT{)ZxPlW>`6e6)_nvyk%Q4`-E^BDW3EH8j-g8A6F*L;2Em=5owJwCS3A~x(CB^f z%mRbJ zfat^2npme#E@@XAkw!7bB-(^s{)cdJ6nPodLLI2L? z-qTLStBi>W;Y^l>ID%aoZ|z1DvN$FulMqk$Wwd6 zff9s>{s@nHlACseQn(%u;E!w132u2fEv%%CO0OZLqLMCU{`qcR;144Sbb-skdb`wv zyFSY_dX1B)toPs2Sc0)rOJTb7=p#XNJcEeP(9kVNn}zWw-f-=Gl_uQsK;KZozeo<7Zm0>1@@^Oi`P<&?Dcr*u7HGp$;1j6E$Y^h!1!`2SDf&{iJ zw)r(Xc-|k^t~yj$){RB3)o5(F;U`ZHL$B)8{mJu`$|^Z4pwuV<>g;>!V_vHFMYAvJ2WeT(t!y^WH9` zHYe5JU7~DG`cb^yJ?}dCng!}tKs_9OH5%fSn2}qxViVT2-!Z@sgA-8P-GzL0^LyS1 z!%GFWuV+SH_%I{`QF<@k^!U*g#ZasHllwBFQWnl{PT$X$=?JX^rMMPZIW_37Y9v zD&CqLqy~21Zw_lF77^=O)l1|8XvBunZP5#4d&0|?@CXG`RK`oBJ1_&BOPvOD*=${n zMpCkg%13G|Osw;cdCc9d*{$7e>6}jH^-QnK-(CH|5o(BMA1q%5ec;!>YSRxE)#v2u zn62xR8IZK;C~f;eDW)i5(SIRI0cf|S&tvpJhxLW4T{3Y9BfGbme%o5f-$Npp7ZpZE z%2X!-LwrpDqx)25frlh>c+;7YOQOV?03_`a^!g#yKp|dK=F1Rx zX&y!ygbV$1CG5y9r96#YVIh=#gV~m$Kt^fpJ=qc=a+S6IuT=tz))9357^FO)2+pkv z`F=LW(>jfbtzza%Pl=m}cz)m6n0ad&nVma7skbXLbe=WpPme0BlIEKjWuUmcZ2mmu zp=49ucp#O6EG>aL1}4)kLf#aCxU%;XIAc18h%!yl*G(|40-e^sebuz=xU(SK0>e}; z+62ATrHeAp^^lSh>+h4Lc9jfwN@uJs%sVr>^J`WI!V3DWQ?%+Tg0I660N}`bRLWr= z;R{#>qRn}E$OYAJfXHw-*pQlo{!N!UPfEbn{#@pP1O$sOvX1cSq#^kfbImma#a*?B*RZVK?CdZHsLDk zNVZhcXdFM*d@Otd37WXQs2w1B&}Jy$1k{ZY*5$pC4rKL z=>gd%VaLarZ2r(8BKKYsbCjMJhu`Ntbfb5bxyPivZ@IQrjxVUtUza!moQ1FrDrktI z_r*j{yMu@q06+Wp)gP6j1FuYw133%jvMVok(wVn@sWNYW=-X+i+WAU3xIJ4j2Kqr! zQ6w~NiSmS;+=6;OiT*N^=5$cuOiof5c|Ze{-`3$1q54=2vHzLeP@Al1j)|5=(=vdB zMZFW5RiHjQ+iMceUf=ljmuS?G15<=Qbe9NDOQW={t)1x{z+uKtD->Q?IeAfnGSF@* zOpB2O5=?+6G;sq6Rz8ynk#-dILWe!03#U_#H`?E1AH;I_t?yAAdV{qG4$hB~>y3|( zpJ8BNprgC�}*&)Y^f9gWuZ!38w$?*%$G~G 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

    J>7AS1>gS8mLM-~Ts_Eu+qij0#EiOLC z*ra&2dT)YROHH>~`#Cl?cqkzTY5JnD(lpdqLuSB+Yn7jii$s8ul9YfTKk}<48=FFA zC77@)uZ&HU5)VK_Bkrz4(!jANcs&~ZcYbD(>%zbKe| zzgBv~>Ki;1Y%`V6o)_pD@oZ(k$fnt;b$wcQvig<0fI6S<^~6V;-Gg2_!6d`Ie5+a| z+a8Vjm-}yXASle=V`?p{a;{w@_Ck_fxa=3}t><)c$weMSXkOHs5r*&35|zIcy9_&YfD?B0iRUSS*I)gJ#7K%dyf5VcN z!8S}Ln*NIf)aGq()I_ZSD#OwxxO6$A1jG?h=48!Un>wF%`}ErW)a1SKJzi^PuPonB zX$FW07EtoYV9g8KwBLDNTc6NOkaIVvJI&y?%@=Y0yfFzT#!2iat6y{Tt-*$Sf%>a$O-}|w zqPYP%TV}p$e&zRax}>p819l`Kx{r^MgO@h6AwF*VwiYYmYeuuXckMhf2dVNK7^Y1k z;M~J)1DQg6gnQ|g;mZ8@@AGV>5@SPt;*lJ=6$eJzUOD8^kt3{&+T-e4&+=^O<<}hJ z21Whx*Mu+s4r3Hbg=n@*y!+yVLPZW<9@MgNI`i7y+y>SQ(aN2K+I*>M4T;K3$xb$` zeY*s$wTnQ-K>MTFKZ=1}BoI*}=jp(W&A_L*_CK!JVc&#hn!bx2ku$DZZD1`)wXLBv@3B z472vD{RGAU@Y4uyOgbzgmQ7t?#Bl_<1*8_ot53O>rG8ALa=lE>VP$_fSQX(GCNN~EH*5W`#TT+^;X@mU&O&;XY0e}d3BT~6#W9JtJ2{hV6v zpJxckl5%;Ase>yGULa|UK$@G<6!2gmWFao)t4?SmmhX@0>x&dGi8kk}GOX>1tC@NF zI_&k<0_wYi)Rv7xjwO^9-YL>Hy!k_gzC~d{O4rqG7iH9`hyJwXqpeV2cJs-#u&`198e9@f;kAMw;yN=kaL8-g5)mpoZ&+ zA7hE=*l+&20h$<+9mAMJUU8A9;FWvnrD%z&E}i_Ea~19{4GP-S?_93eZww1LCO%ke z=xA}5_Lyh}qcukK53X83t+_br%;s)flA=PUn><}zT+WJLA05XvVCkKEm)e@FEgTj# z`l1hqavzK$j<=g8*XMOc-+c~=02gyQQDt!sv}jaoVRs#eogVIl@6DkrYDz=RVo3H+ zSv}lNEhFT2nDSa1NU%HQmrjXnXWX{d=PKhf*PUp3#s4Sb9&olx7}>x06cdJyPG2@N zVZLTs1XPRmYk92Y+;`gkN(c5)&E&k1S)tQceHOCS&j#Wrs^U!7D%I;gs8No*KA}qG ze1UX`jfg?Q#K6#x{=(K~;qs6C?Q>W}+C9U8<2@nEd5gE_#xAMx&ZiUsR|mPoemx8ta#FA}t0nyBP{c2s(vW3mG;Es zgbq_7fqIYgiqT8!;gpw|yWLzpx$n1d++cqy)Fg@{-;zv4USFimM{y`B$$l#U>Xz&f z!2gh({L^m}0XNvv{_8TvqppRL`)*cpkrU;ScBqTDJ;a8%)O47H%GTDFHFPHIJ0ABK zzg{2$WhqekHr0EX`u0hs4-kdXiyo%o35_bT|*XugOn z{n|SEXh0E$`WHAPN_!9qPPjXW0UxlL^%@H+3|N+946Sjt5p6D>+?n_Tmr*r|pQ?uL zRdVqsNt=12mOXLKDcw)xS7*7`-RVqLNQ6}St1`odT)oyP0|Ka;nws!gb*(UvXoW2b zzUZ#yw#wX3MaJRj-b6z8_*(_H;WUL+6I+omv?4t8&_^YevewK% z!%|x<_+6}YvQzG~AwkHoAFsCO7iOSQWI= zcF0xr3oDL#9YdQNuG55vtK?zKis^aMHrhW~Nmxy3%;O$^~k~6>xQh9Bej$u-irj z-mtiNNK)(8h_ECIr0#idiUZEkIy%h$z6ioeSi(GfCGS0sB%p|go9 zc%Y=B;HQr=%25c_4aM({( zOMUXxjc#RzxOAW@dw2CUn&BhDBdZA2ni1f9)JbEXO*Qk0s0hgC2L=mzOoGbBuTW&$ z2)AWBaxKv>E#X?ZQi3l@-TN)6^?T0P6S*+Y-hvknKI!`lbnTt1@epP`dzQN0$y~u= z_74>8XG_V&$~mc$g_P8e%sg%=%`Jx-XoO=`OLWBdh? z>ynAjM-5AzK4ALeNH3GTa9?4Vr?4t~KF4mRRcZbG!l2x-njeJ2&hJlrZr6b)FYYvI zHNeZ7q>(iyc=uF{e|mr!gn8P{N*HusSc59`I1p3R?`a~xVqr=oIywlPRklM3#&^kK zx?Drz4J{?bstAdLKR<*9sSo!zookCgmtK$nQ%5G3>}figj#f0wlkfgAgqjsiK-m10 zk)Yb)9KxU2gWT;T_Df>bTCqXjrN(+Nv;94|L`)123^IuiuwMKZAuqbq0r-EXi8TMk z=1#8sLk9F9;0>Y2ITt_gxbh5{Sa(U4%M*!YxL&;} z2yF1H(aBx&K_>4c>y>^n{bKgjZ~U)?MqC}$;qJ{T(vMwc0aisEeev)gK+8YrH6INr zMln)&47Ng9_GCZi?l~(5(Nw>;KWwdBoagMzI9fxz2_2A(=*{m_?1;pxU0l48!z?C~ zH@%LYPQSPvjLn8yx5VeV8v&yFe!|~q36FZcW>7auyouc0^3OBi@t6Kzey7DLu?T09 zV!xiA-2gB$geW&J_78i+ksMy>=MAA|96!qU1xnS%-Q?8j;$it#Mic=8?V6F@i6|P{ z?WGF{^vH(DQN{sPCg&JXbi8^d_Z4aEOUIpPDsZR3HApsCsxZE|af_Usd$tXC^-&}3 zPc{5%N{Zw7WRS>hJ~fRr)yP@egS_<_^3k!7!}gnKpw0E{ zW7{w$SKoGJo^r$zfP_Fvi^1_93LgKUyBmej@?}o|1#p<3H%x4O^>i2qdw|UltS(?$ zwgFt`_2LT%@)x4uW$u8erHqQ7k4y#!yVF@1q6wZCfb8X!Z%VBYe~>GRr^A_SI6i>4 zM*)p^5ihAof9mmnG<3lh?NzB$vQ2m;==S{k_)FwOA4A$N65@4&3~M zXSnzJATw`PhNsuW@>yVey^foNspj((9BEQ^w}NAk=*VUSeFy~>CQNe)5D1>Gtuu$f z0o;bM3P6;yjgU_|Gy^ew<%tS;A8_A9RbYW$(k$?Sm)8wia76#6(vDUVF_T~4mGI+uSH|8&oBz{O!EYopG7`Y$=Jx!C+@69ft;r-uXgVJORd z6FWTlJVC?v@-;ZL?Th{Wv50$;Ez&;`_&sMpI#Uqze<@}}@Mxx?r-r=o18~1!O>~N8ptqUMkWAx63~I~L%>LpUa?rV+>QmlH~@*q^BP2(6YMl#hafdcWKDkqsEAzcBSyC# z5Of^sV)3hF?m{bM<;sgK#UM#(v@r6a8trdK*o5G z=`RLc9&Ddu;%N-rD~`8U{q##7nDeFb_ze^poHdaQq`-_HgQsP8cKc?)89w%9CZeGv z62up{Ah>1zONrpWUfEg^PA_Rv{d$=ik49ZaH0ar#&D{4Xtp&je8?wJ==*UPz9>oQE z(6Qh>_~YlgfyQs3YO=wJ?Xg{5|9-va>1n(71o%mIGz59)_A}Is12U;AMA)eQ^bKGY z0mGsEGRTw411&fxwiUk@y5H>Reobh=%so~g9}or{#LcfHxMCT-1c}X7DTWzLg;t~< z&7wHXZoG$zgV-dV@$?J`-X@+q6BxGw>UjY0Qs25k3?PLkR~iZ<_1nL}`j!MewOWdaJBJse(0YY2oQWH9s~6u|F#j@VCN<-8b2ftAjqs zIA0viN-)Az1g``5j}G+X%zq!QlUgTClh~xvDG$C)=w{7V*g{U~6+GvIX!Qtl{S`6k z=!=95`Rjs`;wlh{Ip|)LB~IE$W&fpdKxT1-)B;C-7SL39I0Erz3n=xSrO5=6)!F{` ze{oKgxe;i&wIRt^_(c>*$LLgmbb%W8++Xb^2dBZs+bO^4PO$@AFmUFtBK=SkTSK-m zap;(DJ{T9hWD+(HZJWsV`|`F5R`L`VLlE}5HKrK+$%>zT!$1=b5rGv3<26s$GR0+F zJOexv;MQ^q0)5-lp`B82*OK2CL2I1f{M{S}&IADcLk1e-p&NfKY9A-OVM~iWqM^_> za`Pr&v^^5^w%bMn4M;$rra4+vpZdyE1#IS@ z0DZi2uIhrW~~Iqf_; z3IJmkl({|vYN8T;P?Eyzih|gl#;tcp_%eTEBBX*L3PN!YZZ!j=2Hq~i6 zI2=tDY317E!8%P%O*cgDRz%j<)`$gMcCSu%IAXE@WMDc2Qo{hL4uBYfH{;vD1U}oE z?_^*ZKW3F;^Zc~Z;F0mu8hBm5ZO9)9 zorWaD`$WQ(zF6wziCp7JD zD-Ghdf|m3fuQwg)`whu+M`3r4d%diSG62)p?quzEFdmCQbTaW0cxj?+Hnsw20B~&H z&P8V1V#4|Vgix8?1DuOZJRaq0>~Osd$g<&Zh|li+FTn+583gS6gYi}525_~hNfA^q z5P=1-noM%mE2$t$b$EAuPtt|}EU~||6XFQBhdOQyHEpDN8WK-5N-UzRx4XDTRgaaz$>p zz;dGqVgYV{blsn? z8yOjy#zfN!vVp(Xk^y@}I#RGkh3NZuO^rZpxYv%e12*D$BhEG0@@@6>eG1H;)(sc_`3;f3s`;*?v~x zY-V1?%4*=La(5jwrX^!%=E1yIH5p-VYzt3^u&&(bg_g+!a*<-A!_XEj=Dr8l2sh#l zeFVi3xKmoe65p{K7!Mp|Zvs4@FM!@TVzA|`zy!$cLWuUAuXo;3gsFw>6zx$x9E_gbwEECVZ@*i z_^r||xZ{WE}aB)rypHAz)EsDDnvGi@-LZtIMINaN+7pG6|In+Tb>SJpk}#58oXWrPDuwM!5jPyfK~xcA8bf827fGG zWTOxR%})kZr0SH%6Q9M`SI1prU!qpXmUB<1x=3($LrjNM;eN7S$M^PNuErKTKpoiu zMN(xJWMtfd29vrt>Uq3o9HpxiMFsxGoQyGWrK!~%=_1af;g{sdiv;$jcsz1AXX022 zPZOj5^r#<*vRwi3MW8Jj#00UGVt`ZaB^}@Lumr$eH@MB=Xk1x;bV?_gEdmrMxg@4J zG&rI83KH6ai>tkJ);Mx<*Jx_1Q9qKiRJCUOYTOjIh-gTki(KtB^zOkJO z?JXRg{1^jqsPsA0f8zc^PTN7_hYq+J8APkWHi9?J&LsQ$hDrg?+A;#uq&+itvjx@3 zwfmqGA~HXp2n#VMm(2NOSlpq4fDTen5Yy$nX#kZk9L83`OdWv9N;r*59X!;ivcGm)e%jAmrPbrA$*53oKO(zw-4_)js8->I=twx_35{K;oOr}Of)52k!j#GGTg8|o&@3vkDs>P z-AgO*6okLR3$ zw+|mm{W;lwcmmh8-zGbId(JE2|0I5+vpKyz7^RJof3hzH>aMo0&-e9iwGI>R7Sa+v zwEp)Ya8?2g%Zr7&N-p@3F|gH0^#C0!_n<(g_7g>|X*rwqB*d^p^bdV0Q9RP4VzR?D_F+&CyPU=5JJX_xnDUK>ng-|ch} z^+V2ea*kUm=_>z~ZG8UckN$3(q_hPz+m)45mhvXgb>R(aj^jwl5bIr1X~w-Nq`~*H z$WJ6q8Mc8zaHn`ti?0EDVIA_vInrH`jl}fP%gTs*`^QQ5dK)-*HSW4qm3nCP<9EgH zgxs$VfTw`knKu0+TGC`9!52k{mu%Tupq2%+8wQP)Tz2p^eS>F=z|aqwQ(5ukLV4Km zN>Y(0YWR-cMwvlL?@p+5-;U^1+0{N4(cE$}P*nWdRW4h7e9WwliMEiK8xFH|g=GeE)tC_G46#yp0olOn7+Rbi`LpyHksa zUmAMB!50^~O3Ev9b25YLUA*HHsu4odBBn!3H(hcB;t|TLJR*x&B*GXZrOcE=`GNQP zWOuI@60Nt)=B#t@4?WX439XxL2%$oHDXihJEahG~nB56T=C$d!!skw>^iv0y1>WF2 z(WF)8e#TB+d2HOR16>pj^CRaT9Y^h6dB})dX(E)rqRUwkSr(qMJ*HQc2M2MTls8mD zpw0@Q>a%Rzb*~8yUSMs(B0kN+2SxP}-UoAw6(o!T-&1^GBB>o6)1^ZGZXXZk>nf_N zC!uz5Cjal1b7TZ|Y!Ro$Pgn{?{&(Tifoc<`i5v?2Vl?^Z-U

    Q7#)-JKmFm>SPTI5nnCZD0?^a{h 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 yE|PO&z$g literal 131479 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⁡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�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