From 398dfffab206e3b0d5b74d1912e4fbad8e34c7ce Mon Sep 17 00:00:00 2001 From: "Vaijanath Angadihiremath (VJ)" Date: Fri, 24 Jul 2020 18:10:56 -0700 Subject: [PATCH 01/21] Added changes for adding Cosmos DB Spring data module for Petclinic end to end sample. Made changes for fixing the test cases. --- application.yml | 2 +- spring-petclinic-customers-service/pom.xml | 40 ++++--- .../CustomersServiceApplication.java | 15 ++- .../petclinic/customers/PopulateSeedData.java | 94 ++++++++++++++++ .../customers/model/CosmosDbProperties.java | 22 ++++ .../petclinic/customers/model/Owner.java | 57 ++++------ .../customers/model/OwnerRepository.java | 9 +- .../model/OwnerRepositoryConfiguration.java | 65 ++++++++++++ .../petclinic/customers/model/Pet.java | 47 +++----- .../customers/model/PetRepository.java | 33 +++--- .../petclinic/customers/model/PetType.java | 100 +++++++++--------- .../customers/web/OwnerResource.java | 35 +++--- .../petclinic/customers/web/PetDetails.java | 22 ++-- .../petclinic/customers/web/PetResource.java | 47 ++++---- .../customers/web/PetResourceTest.java | 30 +++--- .../src/test/resources/application-test.yml | 1 - spring-petclinic-vets-service/pom.xml | 34 ++++-- .../petclinic/vets/PopulateSeedData.java | 53 ++++++++++ .../vets/VetsServiceApplication.java | 11 +- .../vets/model/CosmosDbProperties.java | 22 ++++ .../petclinic/vets/model/Specialty.java | 14 +-- .../samples/petclinic/vets/model/Vet.java | 36 +++---- .../petclinic/vets/model/VetRepository.java | 8 +- .../model/VetRepositoryConfiguration.java | 65 ++++++++++++ .../petclinic/vets/web/VetResource.java | 9 +- .../petclinic/vets/web/VetResourceTest.java | 30 ++++-- .../src/test/resources/application-test.yml | 1 - spring-petclinic-visits-service/pom.xml | 65 +++++++----- .../petclinic/visits/PopulateSeedData.java | 43 ++++++++ .../visits/VisitsServiceApplication.java | 5 + .../visits/model/CosmosDbProperties.java | 22 ++++ .../samples/petclinic/visits/model/Visit.java | 38 ++++--- .../visits/model/VisitRepository.java | 15 ++- .../model/VisitRepositoryConfiguration.java | 65 ++++++++++++ .../petclinic/visits/web/VisitResource.java | 28 ++--- .../src/main/resources/bootstrap.yml | 24 ++--- .../visits/web/VisitResourceTest.java | 43 ++++---- .../src/test/resources/application-test.yml | 1 - 38 files changed, 864 insertions(+), 387 deletions(-) create mode 100644 spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/PopulateSeedData.java create mode 100644 spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/CosmosDbProperties.java create mode 100644 spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepositoryConfiguration.java create mode 100644 spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/PopulateSeedData.java create mode 100644 spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/CosmosDbProperties.java create mode 100644 spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetRepositoryConfiguration.java create mode 100644 spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/PopulateSeedData.java create mode 100644 spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/CosmosDbProperties.java create mode 100644 spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitRepositoryConfiguration.java diff --git a/application.yml b/application.yml index 498a33622c..069d2d32ce 100644 --- a/application.yml +++ b/application.yml @@ -3,7 +3,7 @@ spring: config: server: git: - uri: https://github.com/selvasingh/spring-petclinic-microservices-config + uri: https://github.com/VaijanathB/spring-petclinic-microservices-config native: search-locations: classpath:. profiles: diff --git a/spring-petclinic-customers-service/pom.xml b/spring-petclinic-customers-service/pom.xml index b10c75e531..811e14d44f 100644 --- a/spring-petclinic-customers-service/pom.xml +++ b/spring-petclinic-customers-service/pom.xml @@ -26,10 +26,6 @@ org.springframework.boot spring-boot-starter-actuator - - org.springframework.boot - spring-boot-starter-data-jpa - org.springframework.boot spring-boot-starter-test @@ -45,10 +41,10 @@ org.springframework.cloud spring-cloud-starter-config - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - + + + + org.springframework.cloud spring-cloud-starter-sleuth @@ -60,14 +56,9 @@ - mysql - mysql-connector-java - runtime - - - org.hsqldb - hsqldb - runtime + org.springframework.boot + spring-boot-configuration-processor + true org.jolokia @@ -98,7 +89,22 @@ assertj-core test - + + com.microsoft.azure + spring-data-cosmosdb + 2.3.0 + compile + + + org.springframework.data + spring-data-rest-core + + + junit + junit + test + + diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/CustomersServiceApplication.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/CustomersServiceApplication.java index 3c757c9d47..a4c5985c0c 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/CustomersServiceApplication.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/CustomersServiceApplication.java @@ -15,9 +15,12 @@ */ package org.springframework.samples.petclinic.customers; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.samples.petclinic.customers.model.OwnerRepository; +import org.springframework.samples.petclinic.customers.model.PetRepository; /** * @author Maciej Szarlinski @@ -26,7 +29,13 @@ @SpringBootApplication public class CustomersServiceApplication { - public static void main(String[] args) { - SpringApplication.run(CustomersServiceApplication.class, args); - } + @Autowired + private OwnerRepository ownerRepository; + + @Autowired + private PetRepository petRepository; + + public static void main(String[] args) { + SpringApplication.run(CustomersServiceApplication.class, args); + } } diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/PopulateSeedData.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/PopulateSeedData.java new file mode 100644 index 0000000000..34189032b9 --- /dev/null +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/PopulateSeedData.java @@ -0,0 +1,94 @@ +package org.springframework.samples.petclinic.customers; + +import com.google.common.collect.Lists; +import lombok.SneakyThrows; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.samples.petclinic.customers.model.Owner; +import org.springframework.samples.petclinic.customers.model.OwnerRepository; +import org.springframework.samples.petclinic.customers.model.Pet; +import org.springframework.samples.petclinic.customers.model.PetRepository; +import org.springframework.stereotype.Component; +import reactor.core.publisher.Flux; + +import javax.annotation.PostConstruct; +import java.text.SimpleDateFormat; +import java.util.HashSet; + + +@Component +public class PopulateSeedData { + + private static final Logger logger = LoggerFactory.getLogger(PopulateSeedData.class); + + @Autowired + private OwnerRepository ownerRepository; + + @Autowired + private PetRepository petRepository; + + + @SneakyThrows + @PostConstruct + public void populateSeedData() { + + + final Owner owner1 = new Owner(1, "George", "Franklin", "110 W. Liberty St.", "Madison", "6085551023", new HashSet() {{ + add(1); + }}); + final Owner owner2 = new Owner(2, "Betty", "Davis", "638 Cardinal Ave.", "Sun Prairie", "6085551749", new HashSet() {{ + add(2); + }}); + final Owner owner3 = new Owner(3, "Eduardo", "Rodriquez", "2693 Commerce St.", "McFarland", "6085558763", new HashSet() {{ + add(3); + add(4); + }}); + final Owner owner4 = new Owner(4, "Harold", "Davis", "563 Friendly St.", "Windsor", "6085553198", new HashSet() {{ + add(5); + }}); + final Owner owner5 = new Owner(5, "Peter", "McTavish", "2387 S. Fair Way", "Madison", "6085552765", new HashSet() {{ + add(6); + }}); + final Owner owner6 = new Owner(6, "Jean", "Coleman", "105 N. Lake St.", "Monona", "6085552654", new HashSet() {{ + add(7); + add(8); + }}); + final Owner owner7 = new Owner(7, "Jeff", "Black", "1450 Oak Blvd.", "Monona", "6085555387", new HashSet() {{ + add(9); + }}); + final Owner owner8 = new Owner(8, "Maria", "Escobito", "345 Maple St.", "Madison", "6085557683", new HashSet() {{ + add(10); + }}); + final Owner owner9 = new Owner(9, "David", "Schroeder", "2749 Blackhawk Trail", "Madison", "6085559435", new HashSet() {{ + add(11); + }}); + final Owner owner10 = new Owner(10, "Carlos", "Estaban", "2335 Independence La.", "Waunakee", "6085555487", new HashSet() {{ + add(12); + add(13); + }}); + + final Pet pet1 = new Pet(1, "Leo", new SimpleDateFormat("yyyy-dd-mm").parse("2000-09-07"), "cat", owner1); + final Pet pet2 = new Pet(2, "Basil", new SimpleDateFormat("yyyy-dd-mm").parse("2002-08-06"), "hamster", owner2); + final Pet pet3 = new Pet(3, "Rosy", new SimpleDateFormat("yyyy-dd-mm").parse("2001-04-17"), "dog", owner3); + final Pet pet4 = new Pet(4, "Jewel", new SimpleDateFormat("yyyy-dd-mm").parse("2000-03-07"), "dog", owner3); + final Pet pet5 = new Pet(5, "Iggy", new SimpleDateFormat("yyyy-dd-mm").parse("2000-11-30"), "lizard", owner4); + final Pet pet6 = new Pet(6, "George", new SimpleDateFormat("yyyy-dd-mm").parse("2000-01-20"), "snake", owner5); + final Pet pet7 = new Pet(7, "Samantha", new SimpleDateFormat("yyyy-dd-mm").parse("1995-09-04"), "cat", owner6); + final Pet pet8 = new Pet(8, "Max", new SimpleDateFormat("yyyy-dd-mm").parse("1995-09-04"), "cat", owner6); + final Pet pet9 = new Pet(9, "Lucky", new SimpleDateFormat("yyyy-dd-mm").parse("1999-08-06"), "bird", owner7); + final Pet pet10 = new Pet(10, "Mulligan", new SimpleDateFormat("yyyy-dd-mm").parse("1997-02-24"), "dog", owner8); + final Pet pet11 = new Pet(11, "Freddy", new SimpleDateFormat("yyyy-dd-mm").parse("2000-03-09"), "bird", owner9); + final Pet pet12 = new Pet(12, "Lucky", new SimpleDateFormat("yyyy-dd-mm").parse("2000-06-24"), "dog", owner10); + final Pet pet13 = new Pet(13, "Sly", new SimpleDateFormat("yyyy-dd-mm").parse("2002-06-08"), "cat", owner10); + + Flux tempOwner = this.ownerRepository.saveAll(Lists.newArrayList(owner1, owner2, owner3, owner4, owner5, owner6, owner7, owner8, owner9, owner10)); + if (tempOwner != null) { + tempOwner.collectList().block(); + } + Flux tempPet = this.petRepository.saveAll(Lists.newArrayList(pet1, pet2, pet3, pet4, pet5, pet6, pet7, pet8, pet9, pet10, pet11, pet12, pet13)); + if (tempPet != null) { + tempPet.collectList().block(); + } + } +} diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/CosmosDbProperties.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/CosmosDbProperties.java new file mode 100644 index 0000000000..9566a39660 --- /dev/null +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/CosmosDbProperties.java @@ -0,0 +1,22 @@ +package org.springframework.samples.petclinic.customers.model; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; + + +@Getter +@Setter +@ConfigurationProperties(prefix = "azure.cosmosdb") +class CosmosDbProperties { + + private String uri; + + private String key; + + private String secondaryKey; + + private String database; + + private boolean populateQueryMetrics; +} diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java index 360e7652f3..d6f0137b0d 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java @@ -15,28 +15,18 @@ */ package org.springframework.samples.petclinic.customers.model; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.OneToMany; -import javax.persistence.Table; -import javax.validation.constraints.Digits; -import javax.validation.constraints.NotEmpty; - +import com.microsoft.azure.spring.data.cosmosdb.core.mapping.Document; +import com.microsoft.azure.spring.data.cosmosdb.core.mapping.PartitionKey; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; import org.springframework.beans.support.MutableSortDefinition; import org.springframework.beans.support.PropertyComparator; import org.springframework.core.style.ToStringCreator; +import javax.validation.constraints.Digits; +import javax.validation.constraints.NotEmpty; +import java.util.*; + /** * Simple JavaBean domain object representing an owner. * @@ -46,37 +36,31 @@ * @author Michael Isvy * @author Maciej Szarlinski */ -@Entity -@Table(name = "owners") +@Document(collection = "owners") +@AllArgsConstructor +@NoArgsConstructor public class Owner { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; - @Column(name = "first_name") @NotEmpty private String firstName; - @Column(name = "last_name") @NotEmpty + @PartitionKey private String lastName; - @Column(name = "address") @NotEmpty private String address; - @Column(name = "city") @NotEmpty private String city; - @Column(name = "telephone") @NotEmpty @Digits(fraction = 0, integer = 10) private String telephone; - @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "owner") - private Set pets; + private Set petIds; public Integer getId() { return id; @@ -122,21 +106,22 @@ public void setTelephone(String telephone) { this.telephone = telephone; } - protected Set getPetsInternal() { - if (this.pets == null) { - this.pets = new HashSet<>(); + protected Set getPetsInternal() { + if (this.petIds == null) { + this.petIds = new HashSet<>(); } - return this.pets; + return this.petIds; } - public List getPets() { - final List sortedPets = new ArrayList<>(getPetsInternal()); + public List getPets() { + final List sortedPets = new ArrayList<>(getPetsInternal()); PropertyComparator.sort(sortedPets, new MutableSortDefinition("name", true, true)); return Collections.unmodifiableList(sortedPets); } public void addPet(Pet pet) { - getPetsInternal().add(pet); + + getPetsInternal().add(pet.getId()); pet.setOwner(this); } diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepository.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepository.java index a9eec088a2..234cee0565 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepository.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepository.java @@ -15,7 +15,9 @@ */ package org.springframework.samples.petclinic.customers.model; -import org.springframework.data.jpa.repository.JpaRepository; +import com.microsoft.azure.spring.data.cosmosdb.repository.ReactiveCosmosRepository; +import org.springframework.data.rest.core.annotation.RepositoryRestResource; +import org.springframework.stereotype.Repository; /** * Repository class for Owner domain objects All method names are compliant with Spring Data naming @@ -27,4 +29,7 @@ * @author Michael Isvy * @author Maciej Szarlinski */ -public interface OwnerRepository extends JpaRepository { } +@Repository +@RepositoryRestResource(collectionResourceRel = "owner", path = "owner") +public interface OwnerRepository extends ReactiveCosmosRepository { +} diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepositoryConfiguration.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepositoryConfiguration.java new file mode 100644 index 0000000000..028fabb256 --- /dev/null +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepositoryConfiguration.java @@ -0,0 +1,65 @@ +package org.springframework.samples.petclinic.customers.model; + +import com.azure.data.cosmos.CosmosKeyCredential; +import com.microsoft.azure.spring.data.cosmosdb.config.AbstractCosmosConfiguration; +import com.microsoft.azure.spring.data.cosmosdb.config.CosmosDBConfig; +import com.microsoft.azure.spring.data.cosmosdb.core.ResponseDiagnostics; +import com.microsoft.azure.spring.data.cosmosdb.core.ResponseDiagnosticsProcessor; +import com.microsoft.azure.spring.data.cosmosdb.repository.config.EnableReactiveCosmosRepositories; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; + +import javax.annotation.Nullable; + + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + + +@Configuration +@EnableConfigurationProperties(CosmosDbProperties.class) +@EnableReactiveCosmosRepositories +@Slf4j +@PropertySource("classpath:application.properties") +public class OwnerRepositoryConfiguration extends AbstractCosmosConfiguration { + // private static final Logger logger = LoggerFactory.getLogger(AppConfiguration.class); + + @Autowired + private CosmosDbProperties properties; + + private CosmosKeyCredential cosmosKeyCredential; + + @Bean + public CosmosDBConfig cosmosDbConfig() { + this.cosmosKeyCredential = new CosmosKeyCredential(properties.getKey()); + CosmosDBConfig cosmosDBConfig = CosmosDBConfig.builder(properties.getUri(), cosmosKeyCredential, + properties.getDatabase()).build(); + cosmosDBConfig.setPopulateQueryMetrics(properties.isPopulateQueryMetrics()); + cosmosDBConfig.setResponseDiagnosticsProcessor(new ResponseDiagnosticsProcessorImplementation()); + return cosmosDBConfig; + } + + public void switchToSecondaryKey() { + this.cosmosKeyCredential.key(properties.getSecondaryKey()); + } + + public void switchToPrimaryKey() { + this.cosmosKeyCredential.key(properties.getKey()); + } + + public void switchKey(String key) { + this.cosmosKeyCredential.key(key); + } + + private static class ResponseDiagnosticsProcessorImplementation implements ResponseDiagnosticsProcessor { + + @Override + public void processResponseDiagnostics(@Nullable ResponseDiagnostics responseDiagnostics) { + log.info("Response Diagnostics {}", responseDiagnostics); + } + } +} diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java index e0d28a9fd9..48e531480f 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java @@ -15,22 +15,15 @@ */ package org.springframework.samples.petclinic.customers.model; -import java.util.Date; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.ManyToOne; -import javax.persistence.Table; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; - import com.fasterxml.jackson.annotation.JsonIgnore; +import com.microsoft.azure.spring.data.cosmosdb.core.mapping.Document; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.NoArgsConstructor; import org.springframework.core.style.ToStringCreator; +import java.util.Date; + /** * Simple business object representing a pet. * @@ -39,26 +32,19 @@ * @author Sam Brannen * @author Maciej Szarlinski */ -@Entity -@Table(name = "pets") +@Document(collection = "pets") +@Builder(builderMethodName = "pet") +@AllArgsConstructor +@NoArgsConstructor public class Pet { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; - @Column(name = "name") private String name; - @Column(name = "birth_date") - @Temporal(TemporalType.DATE) private Date birthDate; - @ManyToOne - @JoinColumn(name = "type_id") - private PetType type; + private String pettype; - @ManyToOne - @JoinColumn(name = "owner_id") @JsonIgnore private Owner owner; @@ -86,12 +72,12 @@ public void setBirthDate(final Date birthDate) { this.birthDate = birthDate; } - public PetType getType() { - return type; + public String getType() { + return pettype; } - public void setType(final PetType type) { - this.type = type; + public void setType(final String type) { + this.pettype = type; } public Owner getOwner() { @@ -108,7 +94,8 @@ public String toString() { .append("id", this.getId()) .append("name", this.getName()) .append("birthDate", this.getBirthDate()) - .append("type", this.getType().getName()) + .append("type", this.getType() + ) .append("ownerFirstname", this.getOwner().getFirstName()) .append("ownerLastname", this.getOwner().getLastName()) .toString(); diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetRepository.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetRepository.java index 93feb49abf..6ee14e19f3 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetRepository.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetRepository.java @@ -15,12 +15,9 @@ */ package org.springframework.samples.petclinic.customers.model; -import java.util.List; -import java.util.Optional; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; +import com.microsoft.azure.spring.data.cosmosdb.repository.ReactiveCosmosRepository; +import org.springframework.data.rest.core.annotation.RepositoryRestResource; +import org.springframework.stereotype.Repository; /** * Repository class for Pet domain objects All method names are compliant with Spring Data naming @@ -32,17 +29,19 @@ * @author Michael Isvy * @author Maciej Szarlinski */ -public interface PetRepository extends JpaRepository { - - /** - * Retrieve all {@link PetType}s from the data store. - * @return a Collection of {@link PetType}s. - */ - @Query("SELECT ptype FROM PetType ptype ORDER BY ptype.name") - List findPetTypes(); - - @Query("FROM PetType ptype WHERE ptype.id = :typeId") - Optional findPetTypeById(@Param("typeId") int typeId); +@Repository +@RepositoryRestResource(collectionResourceRel = "pet", path = "pet") +public interface PetRepository extends ReactiveCosmosRepository { + +// /** +// * Retrieve all {@link PetType}s from the data store. +// * @return a Collection of {@link PetType}s. +// */ +// @Query("SELECT ptype FROM PetType ptype ORDER BY ptype.name") +// List findPetTypes(); +// +// @Query("FROM PetType ptype WHERE ptype.id = :typeId") +// Optional findPetTypeById(@Param("typeId") int typeId); } diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetType.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetType.java index 5ca44874b2..fb8ee4e707 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetType.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetType.java @@ -1,50 +1,50 @@ -/* - * Copyright 2002-2017 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.springframework.samples.petclinic.customers.model; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; - -/** - * @author Juergen Hoeller - * Can be Cat, Dog, Hamster... - */ -@Entity -@Table(name = "types") -public class PetType { - @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Integer id; - - @Column(name = "name") - private String name; - - public Integer getId() { - return id; - } - - public void setId(final Integer id) { - this.id = id; - } - - public String getName() { - return this.name; - } -} +///* +// * Copyright 2002-2017 the original author or authors. +// * +// * Licensed under the Apache License, Version 2.0 (the "License"); +// * you may not use this file except in compliance with the License. +// * You may obtain a copy of the License at +// * +// * http://www.apache.org/licenses/LICENSE-2.0 +// * +// * Unless required by applicable law or agreed to in writing, software +// * distributed under the License is distributed on an "AS IS" BASIS, +// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// * See the License for the specific language governing permissions and +// * limitations under the License. +// */ +//package org.springframework.samples.petclinic.customers.model; +// +//import javax.persistence.Column; +//import javax.persistence.Entity; +//import javax.persistence.GeneratedValue; +//import javax.persistence.GenerationType; +//import javax.persistence.Id; +//import javax.persistence.Table; +// +///** +// * @author Juergen Hoeller +// * Can be Cat, Dog, Hamster... +// */ +//@Entity +//@Table(name = "types") +//public class PetType { +// @Id +// @GeneratedValue(strategy = GenerationType.IDENTITY) +// private Integer id; +// +// @Column(name = "name") +// private String name; +// +// public Integer getId() { +// return id; +// } +// +// public void setId(final Integer id) { +// this.id = id; +// } +// +// public String getName() { +// return this.name; +// } +//} diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java index c9ea4b929f..c93a7c4388 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java @@ -22,10 +22,10 @@ import org.springframework.samples.petclinic.customers.model.Owner; import org.springframework.samples.petclinic.customers.model.OwnerRepository; import org.springframework.web.bind.annotation.*; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; import javax.validation.Valid; -import java.util.List; -import java.util.Optional; /** * @author Juergen Hoeller @@ -45,18 +45,22 @@ class OwnerResource { /** * Create Owner + * + * @return */ @PostMapping @ResponseStatus(HttpStatus.CREATED) - public Owner createOwner(@Valid @RequestBody Owner owner) { + public Mono createOwner(@Valid @RequestBody Owner owner) { return ownerRepository.save(owner); } /** * Read single Owner + * + * @return */ @GetMapping(value = "/{ownerId}") - public Optional findOwner(@PathVariable("ownerId") int ownerId) { + public Mono findOwner(@PathVariable("ownerId") int ownerId) { return ownerRepository.findById(ownerId); } @@ -64,7 +68,7 @@ public Optional findOwner(@PathVariable("ownerId") int ownerId) { * Read List of Owners */ @GetMapping - public List findAll() { + public Flux findAll() { return ownerRepository.findAll(); } @@ -74,16 +78,15 @@ public List findAll() { @PutMapping(value = "/{ownerId}") @ResponseStatus(HttpStatus.NO_CONTENT) public void updateOwner(@PathVariable("ownerId") int ownerId, @Valid @RequestBody Owner ownerRequest) { - final Optional owner = ownerRepository.findById(ownerId); - - final Owner ownerModel = owner.orElseThrow(() -> new ResourceNotFoundException("Owner "+ownerId+" not found")); - // This is done by hand for simplicity purpose. In a real life use-case we should consider using MapStruct. - ownerModel.setFirstName(ownerRequest.getFirstName()); - ownerModel.setLastName(ownerRequest.getLastName()); - ownerModel.setCity(ownerRequest.getCity()); - ownerModel.setAddress(ownerRequest.getAddress()); - ownerModel.setTelephone(ownerRequest.getTelephone()); - log.info("Saving owner {}", ownerModel); - ownerRepository.save(ownerModel); + Mono ownerOptional = ownerRepository.findById(ownerId); + ownerOptional.blockOptional().ifPresent(owner -> { + owner.setFirstName(ownerRequest.getFirstName()); + owner.setLastName(ownerRequest.getLastName()); + owner.setCity(ownerRequest.getCity()); + owner.setAddress(ownerRequest.getAddress()); + owner.setTelephone(ownerRequest.getTelephone()); + log.info("Saving owner {}", owner); + ownerRepository.save(owner); + }); } } diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetDetails.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetDetails.java index 2cda1e7878..cdec5558f7 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetDetails.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetDetails.java @@ -16,13 +16,11 @@ package org.springframework.samples.petclinic.customers.web; import lombok.Data; - -import java.util.Date; - import org.springframework.format.annotation.DateTimeFormat; import org.springframework.samples.petclinic.customers.model.Pet; -import org.springframework.samples.petclinic.customers.model.PetType; +import reactor.core.publisher.Mono; +import java.util.Date; /** * @author mszarlinski@bravurasolutions.com on 2016-12-05. */ @@ -38,13 +36,15 @@ class PetDetails { @DateTimeFormat(pattern = "yyyy-MM-dd") private Date birthDate; - private PetType type; + private String type; - PetDetails(Pet pet) { - this.id = pet.getId(); - this.name = pet.getName(); - this.owner = pet.getOwner().getFirstName() + " " + pet.getOwner().getLastName(); - this.birthDate = pet.getBirthDate(); - this.type = pet.getType(); + PetDetails(Mono petInfo) { + petInfo.blockOptional().ifPresent(pet -> { + this.id = pet.getId(); + this.name = pet.getName(); + this.owner = pet.getOwner().getFirstName() + " " + pet.getOwner().getLastName(); + this.birthDate = pet.getBirthDate(); + this.type = pet.getType(); + }); } } diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java index 3b8bdd8870..f2abbecbf3 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java @@ -19,11 +19,12 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.http.HttpStatus; -import org.springframework.samples.petclinic.customers.model.*; +import org.springframework.samples.petclinic.customers.model.Owner; +import org.springframework.samples.petclinic.customers.model.OwnerRepository; +import org.springframework.samples.petclinic.customers.model.Pet; +import org.springframework.samples.petclinic.customers.model.PetRepository; import org.springframework.web.bind.annotation.*; - -import java.util.List; -import java.util.Optional; +import reactor.core.publisher.Mono; /** * @author Juergen Hoeller @@ -41,22 +42,22 @@ class PetResource { private final OwnerRepository ownerRepository; - @GetMapping("/petTypes") - public List getPetTypes() { - return petRepository.findPetTypes(); - } +// @GetMapping("/petTypes") +// public List getPetTypes() { +// return petRepository.findPetTypes(); +// } @PostMapping("/owners/{ownerId}/pets") @ResponseStatus(HttpStatus.CREATED) - public Pet processCreationForm( + public Mono processCreationForm( @RequestBody PetRequest petRequest, @PathVariable("ownerId") int ownerId) { final Pet pet = new Pet(); - final Optional optionalOwner = ownerRepository.findById(ownerId); - Owner owner = optionalOwner.orElseThrow(() -> new ResourceNotFoundException("Owner "+ownerId+" not found")); - owner.addPet(pet); - + final Mono optionalOwner = ownerRepository.findById(ownerId); + optionalOwner.blockOptional().ifPresent(owner -> { + owner.addPet(pet); + }); return save(pet, petRequest); } @@ -64,17 +65,18 @@ public Pet processCreationForm( @ResponseStatus(HttpStatus.NO_CONTENT) public void processUpdateForm(@RequestBody PetRequest petRequest) { int petId = petRequest.getId(); - Pet pet = findPetById(petId); + Mono petOptional = findPetById(petId); + Pet pet = petOptional.block(); save(pet, petRequest); } - private Pet save(final Pet pet, final PetRequest petRequest) { + private Mono save(final Pet pet, final PetRequest petRequest) { pet.setName(petRequest.getName()); pet.setBirthDate(petRequest.getBirthDate()); - petRepository.findPetTypeById(petRequest.getTypeId()) - .ifPresent(pet::setType); +// petRepository.findPetTypeById(petRequest.getTypeId()) +// .ifPresent(pet::setType); log.info("Saving pet {}", pet); return petRepository.save(pet); @@ -86,12 +88,13 @@ public PetDetails findPet(@PathVariable("petId") int petId) { } - private Pet findPetById(int petId) { - Optional pet = petRepository.findById(petId); - if (!pet.isPresent()) { - throw new ResourceNotFoundException("Pet "+petId+" not found"); + private Mono findPetById(int petId) { + Mono optionalPet = petRepository.findById(petId); + + if (!optionalPet.blockOptional().isPresent()) { + throw new ResourceNotFoundException("Pet " + petId + " not found"); } - return pet.get(); + return optionalPet; } } diff --git a/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceTest.java b/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceTest.java index 0bd2abb383..a49179a64a 100644 --- a/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceTest.java +++ b/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceTest.java @@ -1,34 +1,34 @@ package org.springframework.samples.petclinic.customers.web; -import java.util.Optional; - import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.MediaType; import org.springframework.samples.petclinic.customers.model.Owner; import org.springframework.samples.petclinic.customers.model.OwnerRepository; import org.springframework.samples.petclinic.customers.model.Pet; import org.springframework.samples.petclinic.customers.model.PetRepository; -import org.springframework.samples.petclinic.customers.model.PetType; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.web.servlet.MockMvc; +import reactor.core.publisher.Mono; - -import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.when; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; /** * @author Maciej Szarlinski */ +@RunWith(SpringJUnit4ClassRunner.class) @ExtendWith(SpringExtension.class) -@WebMvcTest(PetResource.class) +@AutoConfigureMockMvc +@SpringBootTest @ActiveProfiles("test") class PetResourceTest { @@ -46,15 +46,14 @@ void shouldGetAPetInJSonFormat() throws Exception { Pet pet = setupPet(); - given(petRepository.findById(2)).willReturn(Optional.of(pet)); + when(petRepository.findById(2)).thenReturn(Mono.just(pet)); mvc.perform(get("/owners/2/pets/2").accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) .andExpect(content().contentType("application/json")) .andExpect(jsonPath("$.id").value(2)) - .andExpect(jsonPath("$.name").value("Basil")) - .andExpect(jsonPath("$.type.id").value(6)); + .andExpect(jsonPath("$.name").value("Basil")); } private Pet setupPet() { @@ -65,11 +64,10 @@ private Pet setupPet() { Pet pet = new Pet(); pet.setName("Basil"); + pet.setId(2); - PetType petType = new PetType(); - petType.setId(6); - pet.setType(petType); + pet.setType("dog"); owner.addPet(pet); return pet; diff --git a/spring-petclinic-customers-service/src/test/resources/application-test.yml b/spring-petclinic-customers-service/src/test/resources/application-test.yml index 0abdac4430..07e39e6271 100644 --- a/spring-petclinic-customers-service/src/test/resources/application-test.yml +++ b/spring-petclinic-customers-service/src/test/resources/application-test.yml @@ -1,4 +1,3 @@ -spring.jpa.hibernate.ddl-auto: none spring: datasource: diff --git a/spring-petclinic-vets-service/pom.xml b/spring-petclinic-vets-service/pom.xml index fb3f6fd936..980e4b09de 100644 --- a/spring-petclinic-vets-service/pom.xml +++ b/spring-petclinic-vets-service/pom.xml @@ -38,10 +38,6 @@ org.springframework.boot spring-boot-starter-cache - - org.springframework.boot - spring-boot-starter-data-jpa - org.springframework.boot spring-boot-starter-test @@ -57,10 +53,6 @@ org.springframework.cloud spring-cloud-starter-config - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - org.springframework.cloud spring-cloud-starter-sleuth @@ -109,7 +101,31 @@ junit-jupiter-engine test - + + com.microsoft.azure + spring-data-cosmosdb + 2.3.0 + + + org.springframework.data + spring-data-rest-core + + + jakarta.persistence + jakarta.persistence-api + + + junit + junit + 4.12 + test + + + junit + junit + test + + diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/PopulateSeedData.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/PopulateSeedData.java new file mode 100644 index 0000000000..1782ed5cbf --- /dev/null +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/PopulateSeedData.java @@ -0,0 +1,53 @@ +package org.springframework.samples.petclinic.vets; + +import com.google.common.collect.Lists; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.samples.petclinic.vets.model.Specialty; +import org.springframework.samples.petclinic.vets.model.Vet; +import org.springframework.samples.petclinic.vets.model.VetRepository; +import org.springframework.stereotype.Component; +import reactor.core.publisher.Flux; + +import javax.annotation.PostConstruct; +import java.text.ParseException; +import java.util.HashSet; + + +@Component +public class PopulateSeedData { + + private static final Logger logger = LoggerFactory.getLogger(PopulateSeedData.class); + + @Autowired + private VetRepository repository; + + @PostConstruct + public void populateSeedData() throws ParseException { + final Specialty speciality1 = new Specialty(1, "radiology"); + final Specialty speciality2 = new Specialty(2, "surgery"); + final Specialty speciality3 = new Specialty(3, "dentistry"); + + final Vet vet1 = new Vet(1, "James", "Carter", null); + final Vet vet2 = new Vet(2, "Helen", "Leary", new HashSet() {{ + add(speciality1); + }}); + final Vet vet3 = new Vet(3, "Linda", "Douglas", new HashSet() {{ + add(speciality2); + add(speciality3); + }}); + final Vet vet4 = new Vet(4, "Rafael", "Ortega", new HashSet() {{ + add(speciality2); + }}); + final Vet vet5 = new Vet(5, "Henry", "Stevens", new HashSet() {{ + add(speciality1); + }}); + final Vet vet6 = new Vet(6, "James", "Carter", null); + + Flux temp = this.repository.saveAll(Lists.newArrayList(vet1, vet2, vet3, vet4, vet5, vet6)); + if (temp != null) { + temp.collectList().block(); + } + } +} diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/VetsServiceApplication.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/VetsServiceApplication.java index 2f5cb36636..30271eb90b 100644 --- a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/VetsServiceApplication.java +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/VetsServiceApplication.java @@ -15,10 +15,12 @@ */ package org.springframework.samples.petclinic.vets; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.samples.petclinic.vets.model.VetRepository; import org.springframework.samples.petclinic.vets.system.VetsProperties; /** @@ -29,7 +31,10 @@ @EnableConfigurationProperties(VetsProperties.class) public class VetsServiceApplication { - public static void main(String[] args) { - SpringApplication.run(VetsServiceApplication.class, args); - } + @Autowired + private VetRepository repository; + + public static void main(String[] args) { + SpringApplication.run(VetsServiceApplication.class, args); + } } diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/CosmosDbProperties.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/CosmosDbProperties.java new file mode 100644 index 0000000000..cf8b5920ac --- /dev/null +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/CosmosDbProperties.java @@ -0,0 +1,22 @@ +package org.springframework.samples.petclinic.vets.model; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; + + +@Getter +@Setter +@ConfigurationProperties(prefix = "azure.cosmosdb") +class CosmosDbProperties { + + private String uri; + + private String key; + + private String secondaryKey; + + private String database; + + private boolean populateQueryMetrics; +} diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Specialty.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Specialty.java index 4a22dd167d..a64df3de81 100644 --- a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Specialty.java +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Specialty.java @@ -15,26 +15,22 @@ */ package org.springframework.samples.petclinic.vets.model; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; + import javax.persistence.Id; -import javax.persistence.Table; /** * Models a {@link Vet Vet's} specialty (for example, dentistry). * * @author Juergen Hoeller */ -@Entity -@Table(name = "specialties") +@AllArgsConstructor +@NoArgsConstructor public class Specialty { @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; - @Column(name = "name") private String name; public Integer getId() { diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Vet.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Vet.java index cddb6a9e3b..73d33bc314 100644 --- a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Vet.java +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Vet.java @@ -15,27 +15,19 @@ */ package org.springframework.samples.petclinic.vets.model; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.FetchType; +import com.microsoft.azure.spring.data.cosmosdb.core.mapping.Document; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.NoArgsConstructor; +import org.springframework.beans.support.MutableSortDefinition; +import org.springframework.beans.support.PropertyComparator; + import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; -import javax.persistence.JoinColumn; -import javax.persistence.JoinTable; -import javax.persistence.ManyToMany; -import javax.persistence.Table; import javax.validation.constraints.NotEmpty; import javax.xml.bind.annotation.XmlElement; - -import org.springframework.beans.support.MutableSortDefinition; -import org.springframework.beans.support.PropertyComparator; +import java.util.*; /** * Simple JavaBean domain object representing a veterinarian. @@ -46,25 +38,23 @@ * @author Arjen Poutsma * @author Maciej Szarlinski */ -@Entity -@Table(name = "vets") + +@Document(collection = "vets") +@Builder(builderMethodName = "vet") +@AllArgsConstructor +@NoArgsConstructor public class Vet { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; - @Column(name = "first_name") @NotEmpty private String firstName; - @Column(name = "last_name") @NotEmpty private String lastName; - @ManyToMany(fetch = FetchType.EAGER) - @JoinTable(name = "vet_specialties", joinColumns = @JoinColumn(name = "vet_id"), - inverseJoinColumns = @JoinColumn(name = "specialty_id")) private Set specialties; public Integer getId() { diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetRepository.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetRepository.java index 67e2571333..fa6a8e3526 100644 --- a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetRepository.java +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetRepository.java @@ -15,7 +15,9 @@ */ package org.springframework.samples.petclinic.vets.model; -import org.springframework.data.jpa.repository.JpaRepository; +import com.microsoft.azure.spring.data.cosmosdb.repository.ReactiveCosmosRepository; +import org.springframework.data.rest.core.annotation.RepositoryRestResource; +import org.springframework.stereotype.Repository; /** * Repository class for Vet domain objects All method names are compliant with Spring Data naming @@ -27,5 +29,7 @@ * @author Michael Isvy * @author Maciej Szarlinski */ -public interface VetRepository extends JpaRepository { +@Repository +@RepositoryRestResource(collectionResourceRel = "vet", path = "vet") +public interface VetRepository extends ReactiveCosmosRepository { } diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetRepositoryConfiguration.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetRepositoryConfiguration.java new file mode 100644 index 0000000000..7f49bdbeed --- /dev/null +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetRepositoryConfiguration.java @@ -0,0 +1,65 @@ +package org.springframework.samples.petclinic.vets.model; + +import com.azure.data.cosmos.CosmosKeyCredential; +import com.microsoft.azure.spring.data.cosmosdb.config.AbstractCosmosConfiguration; +import com.microsoft.azure.spring.data.cosmosdb.config.CosmosDBConfig; +import com.microsoft.azure.spring.data.cosmosdb.core.ResponseDiagnostics; +import com.microsoft.azure.spring.data.cosmosdb.core.ResponseDiagnosticsProcessor; +import com.microsoft.azure.spring.data.cosmosdb.repository.config.EnableReactiveCosmosRepositories; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; + +import javax.annotation.Nullable; + + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + + +@Configuration +@EnableConfigurationProperties(CosmosDbProperties.class) +@EnableReactiveCosmosRepositories +@Slf4j +@PropertySource("classpath:application.properties") +public class VetRepositoryConfiguration extends AbstractCosmosConfiguration { + // private static final Logger logger = LoggerFactory.getLogger(AppConfiguration.class); + + @Autowired + private CosmosDbProperties properties; + + private CosmosKeyCredential cosmosKeyCredential; + + @Bean + public CosmosDBConfig cosmosDbConfig() { + this.cosmosKeyCredential = new CosmosKeyCredential(properties.getKey()); + CosmosDBConfig cosmosDBConfig = CosmosDBConfig.builder(properties.getUri(), cosmosKeyCredential, + properties.getDatabase()).build(); + cosmosDBConfig.setPopulateQueryMetrics(properties.isPopulateQueryMetrics()); + cosmosDBConfig.setResponseDiagnosticsProcessor(new ResponseDiagnosticsProcessorImplementation()); + return cosmosDBConfig; + } + + public void switchToSecondaryKey() { + this.cosmosKeyCredential.key(properties.getSecondaryKey()); + } + + public void switchToPrimaryKey() { + this.cosmosKeyCredential.key(properties.getKey()); + } + + public void switchKey(String key) { + this.cosmosKeyCredential.key(key); + } + + private static class ResponseDiagnosticsProcessorImplementation implements ResponseDiagnosticsProcessor { + + @Override + public void processResponseDiagnostics(@Nullable ResponseDiagnostics responseDiagnostics) { + log.info("Response Diagnostics {}", responseDiagnostics); + } + } +} diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/web/VetResource.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/web/VetResource.java index d61d5dda17..9c3733931f 100644 --- a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/web/VetResource.java +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/web/VetResource.java @@ -16,14 +16,12 @@ package org.springframework.samples.petclinic.vets.web; import lombok.RequiredArgsConstructor; - -import java.util.List; - import org.springframework.samples.petclinic.vets.model.Vet; import org.springframework.samples.petclinic.vets.model.VetRepository; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import reactor.core.publisher.Flux; /** * @author Juergen Hoeller @@ -35,12 +33,13 @@ @RequestMapping("/vets") @RestController @RequiredArgsConstructor -class VetResource { +class +VetResource { private final VetRepository vetRepository; @GetMapping - public List showResourcesVetList() { + public Flux showResourcesVetList() { return vetRepository.findAll(); } } diff --git a/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceTest.java b/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceTest.java index 83e6a6fb61..ad9415e0d2 100644 --- a/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceTest.java +++ b/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceTest.java @@ -17,18 +17,25 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; -import org.springframework.http.MediaType; import org.springframework.samples.petclinic.vets.model.Vet; import org.springframework.samples.petclinic.vets.model.VetRepository; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit.jupiter.SpringExtension; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.MvcResult; +import reactor.core.publisher.Flux; -import static java.util.Arrays.asList; -import static org.mockito.BDDMockito.given; +import java.util.Arrays; +import java.util.List; + +import static org.mockito.Mockito.when; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.asyncDispatch; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @@ -36,8 +43,10 @@ /** * @author Maciej Szarlinski */ +@RunWith(SpringJUnit4ClassRunner.class) @ExtendWith(SpringExtension.class) -@WebMvcTest(VetResource.class) +@AutoConfigureMockMvc +@SpringBootTest @ActiveProfiles("test") class VetResourceTest { @@ -49,14 +58,15 @@ class VetResourceTest { @Test void shouldGetAListOfVets() throws Exception { + List list = Arrays.asList(Vet.vet().id(1).build(), Vet.vet().id(2).build() + ); - Vet vet = new Vet(); - vet.setId(1); - - given(vetRepository.findAll()).willReturn(asList(vet)); + when(vetRepository.findAll()).thenReturn(Flux.fromIterable(list)); - mvc.perform(get("/vets").accept(MediaType.APPLICATION_JSON)) + MvcResult mvcresult = mvc.perform(get("/vets")) .andExpect(status().isOk()) + .andReturn(); + mvc.perform(asyncDispatch(mvcresult)) .andExpect(jsonPath("$[0].id").value(1)); } } diff --git a/spring-petclinic-vets-service/src/test/resources/application-test.yml b/spring-petclinic-vets-service/src/test/resources/application-test.yml index 2d18cfdeaf..a00a1d789c 100644 --- a/spring-petclinic-vets-service/src/test/resources/application-test.yml +++ b/spring-petclinic-vets-service/src/test/resources/application-test.yml @@ -1,4 +1,3 @@ -spring.jpa.hibernate.ddl-auto: none spring: datasource: diff --git a/spring-petclinic-visits-service/pom.xml b/spring-petclinic-visits-service/pom.xml index 2316f8cbc8..44a2f069ea 100644 --- a/spring-petclinic-visits-service/pom.xml +++ b/spring-petclinic-visits-service/pom.xml @@ -25,14 +25,20 @@ org.springframework.boot spring-boot-starter-actuator - - org.springframework.boot - spring-boot-starter-data-jpa - - - org.springframework.boot - spring-boot-starter-web - + + com.microsoft.azure + spring-data-cosmosdb + 2.3.0 + + + + org.springframework.data + spring-data-rest-webmvc + + + org.springframework.boot + spring-boot-starter-web + org.springframework.boot spring-boot-starter-test @@ -44,10 +50,10 @@ org.springframework.cloud spring-cloud-starter-config - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - + + + + org.springframework.cloud spring-cloud-starter-sleuth @@ -71,11 +77,7 @@ org.jolokia jolokia-core - - mysql - mysql-connector-java - runtime - + io.micrometer micrometer-registry-prometheus @@ -92,20 +94,29 @@ junit-jupiter-engine test - + + jakarta.persistence + jakarta.persistence-api + + + junit + junit + test + + buildDocker - - - - com.spotify - docker-maven-plugin - ${docker.plugin.version} - - - + + + + com.spotify + docker-maven-plugin + ${docker.plugin.version} + + + diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/PopulateSeedData.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/PopulateSeedData.java new file mode 100644 index 0000000000..9615e7931f --- /dev/null +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/PopulateSeedData.java @@ -0,0 +1,43 @@ +package org.springframework.samples.petclinic.visits; + +import com.google.common.collect.Lists; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.samples.petclinic.visits.model.Visit; +import org.springframework.samples.petclinic.visits.model.VisitRepository; +import org.springframework.stereotype.Component; +import reactor.core.publisher.Flux; + +import javax.annotation.PostConstruct; +import java.text.ParseException; +import java.text.SimpleDateFormat; + + +@Component +public class PopulateSeedData { + + private static final Logger logger = LoggerFactory.getLogger(PopulateSeedData.class); + + @Autowired + private VisitRepository repository; + + // @PostConstruct +// @Order(2) // not evaluated by Spring +// void postConstruct(){ +// logger.info("@PostConstruct"); +// } + @PostConstruct + // @Order(2) // not evaluated by Spring + public void populateSeedData() throws ParseException { + final Visit visit1 = new Visit(1, 7, new SimpleDateFormat("yyyy-dd-mm").parse("2010-03-04"), "rabies shot"); + final Visit visit2 = new Visit(2, 8, new SimpleDateFormat("yyyy-dd-mm").parse("2011-03-04"), "rabies shot"); + final Visit visit3 = new Visit(3, 8, new SimpleDateFormat("yyyy-dd-mm").parse("2009-06-04"), "neutered"); + final Visit visit4 = new Visit(4, 7, new SimpleDateFormat("yyyy-dd-mm").parse("2008-09-04"), "spayed"); + + Flux temp = this.repository.saveAll(Lists.newArrayList(visit1, visit2, visit3, visit4)); + if (temp != null) { + temp.collectList().block(); + } + } +} diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/VisitsServiceApplication.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/VisitsServiceApplication.java index 51a0ecd8c6..5b781dadd6 100644 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/VisitsServiceApplication.java +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/VisitsServiceApplication.java @@ -15,9 +15,11 @@ */ package org.springframework.samples.petclinic.visits; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; +import org.springframework.samples.petclinic.visits.model.VisitRepository; /** * @author Maciej Szarlinski @@ -26,6 +28,9 @@ @SpringBootApplication public class VisitsServiceApplication { + @Autowired + private VisitRepository repository; + public static void main(String[] args) { SpringApplication.run(VisitsServiceApplication.class, args); } diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/CosmosDbProperties.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/CosmosDbProperties.java new file mode 100644 index 0000000000..cca014997d --- /dev/null +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/CosmosDbProperties.java @@ -0,0 +1,22 @@ +package org.springframework.samples.petclinic.visits.model; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; + + +@Getter +@Setter +@ConfigurationProperties(prefix = "azure.cosmosdb") +class CosmosDbProperties { + + private String uri; + + private String key; + + private String secondaryKey; + + private String database; + + private boolean populateQueryMetrics; +} diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/Visit.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/Visit.java index f799b43a03..86f79a36f7 100644 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/Visit.java +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/Visit.java @@ -16,19 +16,16 @@ package org.springframework.samples.petclinic.visits.model; import com.fasterxml.jackson.annotation.JsonFormat; -import java.util.Date; -import javax.persistence.Column; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.Table; -import javax.persistence.Temporal; -import javax.persistence.TemporalType; -import javax.validation.constraints.Size; +import com.microsoft.azure.spring.data.cosmosdb.core.mapping.Document; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.NoArgsConstructor; +import org.springframework.data.annotation.Id; + +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.validation.constraints.Size; +import java.util.Date; /** * Simple JavaBean domain object representing a visit. @@ -36,36 +33,37 @@ * @author Ken Krebs * @author Maciej Szarlinski */ -@Entity -@Table(name = "visits") + +@Document(collection = "visits") @Builder(builderMethodName = "visit") -@NoArgsConstructor @AllArgsConstructor +@NoArgsConstructor public class Visit { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; + private int petId; + @Builder.Default - @Column(name = "visit_date") - @Temporal(TemporalType.TIMESTAMP) @JsonFormat(pattern = "yyyy-MM-dd") - private Date date = new Date(); + private Date visit_date = new Date(); @Size(max = 8192) - @Column(name = "description") private String description; - @Column(name = "pet_id") - private int petId; + + public void setId(int id) { + this.id = id; + } public Integer getId() { return id; } public Date getDate() { - return date; + return visit_date; } public String getDescription() { diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitRepository.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitRepository.java index 063b3d2709..6a77a3b6cd 100644 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitRepository.java +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitRepository.java @@ -15,10 +15,13 @@ */ package org.springframework.samples.petclinic.visits.model; +import com.microsoft.azure.spring.data.cosmosdb.repository.ReactiveCosmosRepository; +import org.springframework.data.rest.core.annotation.RepositoryRestResource; +import org.springframework.stereotype.Repository; +import reactor.core.publisher.Flux; + import java.util.Collection; -import java.util.List; -import org.springframework.data.jpa.repository.JpaRepository; /** * Repository class for Visit domain objects All method names are compliant with Spring Data naming conventions so this interface can easily be extended for Spring @@ -30,9 +33,11 @@ * @author Michael Isvy * @author Maciej Szarlinski */ -public interface VisitRepository extends JpaRepository { +@Repository +@RepositoryRestResource(collectionResourceRel = "visit", path = "visit") +public interface VisitRepository extends ReactiveCosmosRepository { - List findByPetId(int petId); + Flux findByPetId(int petId); - List findByPetIdIn(Collection petIds); + Flux findByPetIdIn(Collection petIds); } diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitRepositoryConfiguration.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitRepositoryConfiguration.java new file mode 100644 index 0000000000..dc00a97065 --- /dev/null +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitRepositoryConfiguration.java @@ -0,0 +1,65 @@ +package org.springframework.samples.petclinic.visits.model; + +import com.azure.data.cosmos.CosmosKeyCredential; +import com.microsoft.azure.spring.data.cosmosdb.config.AbstractCosmosConfiguration; +import com.microsoft.azure.spring.data.cosmosdb.config.CosmosDBConfig; +import com.microsoft.azure.spring.data.cosmosdb.core.ResponseDiagnostics; +import com.microsoft.azure.spring.data.cosmosdb.core.ResponseDiagnosticsProcessor; +import com.microsoft.azure.spring.data.cosmosdb.repository.config.EnableReactiveCosmosRepositories; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; + +import javax.annotation.Nullable; + + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + + +@Configuration +@EnableConfigurationProperties(CosmosDbProperties.class) +@EnableReactiveCosmosRepositories +@Slf4j +@PropertySource("classpath:application.properties") +public class VisitRepositoryConfiguration extends AbstractCosmosConfiguration { + // private static final Logger logger = LoggerFactory.getLogger(AppConfiguration.class); + + @Autowired + private CosmosDbProperties properties; + + private CosmosKeyCredential cosmosKeyCredential; + + @Bean + public CosmosDBConfig cosmosDbConfig() { + this.cosmosKeyCredential = new CosmosKeyCredential(properties.getKey()); + CosmosDBConfig cosmosDBConfig = CosmosDBConfig.builder(properties.getUri(), cosmosKeyCredential, + properties.getDatabase()).build(); + cosmosDBConfig.setPopulateQueryMetrics(properties.isPopulateQueryMetrics()); + cosmosDBConfig.setResponseDiagnosticsProcessor(new ResponseDiagnosticsProcessorImplementation()); + return cosmosDBConfig; + } + + public void switchToSecondaryKey() { + this.cosmosKeyCredential.key(properties.getSecondaryKey()); + } + + public void switchToPrimaryKey() { + this.cosmosKeyCredential.key(properties.getKey()); + } + + public void switchKey(String key) { + this.cosmosKeyCredential.key(key); + } + + private static class ResponseDiagnosticsProcessorImplementation implements ResponseDiagnosticsProcessor { + + @Override + public void processResponseDiagnostics(@Nullable ResponseDiagnostics responseDiagnostics) { + log.info("Response Diagnostics {}", responseDiagnostics); + } + } +} diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java index 3bcf7f76d6..73d2813ce6 100644 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java @@ -15,9 +15,6 @@ */ package org.springframework.samples.petclinic.visits.web; -import java.util.List; -import javax.validation.Valid; - import io.micrometer.core.annotation.Timed; import lombok.RequiredArgsConstructor; import lombok.Value; @@ -25,13 +22,12 @@ import org.springframework.http.HttpStatus; import org.springframework.samples.petclinic.visits.model.Visit; import org.springframework.samples.petclinic.visits.model.VisitRepository; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseStatus; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +import javax.validation.Valid; +import java.util.List; /** * @author Juergen Hoeller @@ -50,7 +46,7 @@ class VisitResource { @PostMapping("owners/*/pets/{petId}/visits") @ResponseStatus(HttpStatus.CREATED) - Visit create( + Mono create( @Valid @RequestBody Visit visit, @PathVariable("petId") int petId) { @@ -60,18 +56,22 @@ Visit create( } @GetMapping("owners/*/pets/{petId}/visits") - List visits(@PathVariable("petId") int petId) { + Flux visits(@PathVariable("petId") int petId) { return visitRepository.findByPetId(petId); } @GetMapping("pets/visits") Visits visitsMultiGet(@RequestParam("petId") List petIds) { - final List byPetIdIn = visitRepository.findByPetIdIn(petIds); - return new Visits(byPetIdIn); + final Flux byPetIdIn = visitRepository.findByPetIdIn(petIds); + return new Visits(byPetIdIn.collectList().block()); } @Value static class Visits { private final List items; + + Visits(List items) { + this.items = items; + } } } diff --git a/spring-petclinic-visits-service/src/main/resources/bootstrap.yml b/spring-petclinic-visits-service/src/main/resources/bootstrap.yml index 1ddd133b1e..e7e2876e53 100644 --- a/spring-petclinic-visits-service/src/main/resources/bootstrap.yml +++ b/spring-petclinic-visits-service/src/main/resources/bootstrap.yml @@ -1,12 +1,12 @@ -spring: - cloud: - config: - uri: http://localhost:8888 - application: - name: visits-service ---- -spring: - profiles: docker - cloud: - config: - uri: http://config-server:8888 +#spring: +# cloud: +# config: +# uri: http://localhost:8888 +# application: +# name: visits-service +#--- +#spring: +# profiles: docker +# cloud: +# config: +# uri: http://config-server:8888 diff --git a/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/web/VisitResourceTest.java b/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/web/VisitResourceTest.java index 25d33f24ba..5d521d22aa 100644 --- a/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/web/VisitResourceTest.java +++ b/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/web/VisitResourceTest.java @@ -3,25 +3,33 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.boot.test.autoconfigure.OverrideAutoConfiguration; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.samples.petclinic.visits.model.Visit; import org.springframework.samples.petclinic.visits.model.VisitRepository; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.junit.jupiter.SpringExtension; import org.springframework.test.web.servlet.MockMvc; +import reactor.core.publisher.Flux; +import java.util.Arrays; +import java.util.List; import static java.util.Arrays.asList; -import static org.mockito.BDDMockito.given; +import static org.mockito.Mockito.when; import static org.springframework.samples.petclinic.visits.model.Visit.visit; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @ExtendWith(SpringExtension.class) -@WebMvcTest(VisitResource.class) +@AutoConfigureMockMvc +@SpringBootTest +@OverrideAutoConfiguration(enabled = true) @ActiveProfiles("test") -class VisitResourceTest { +public class VisitResourceTest { @Autowired MockMvc mvc; @@ -31,31 +39,18 @@ class VisitResourceTest { @Test void shouldFetchVisits() throws Exception { - given(visitRepository.findByPetIdIn(asList(111, 222))) - .willReturn( - asList( - visit() - .id(1) - .petId(111) - .build(), - visit() - .id(2) - .petId(222) - .build(), - visit() - .id(3) - .petId(222) - .build() - ) - ); + + List list = Arrays.asList(visit().id(1).petId(111).build(), + visit().id(2).petId(222).build() + ); + Flux sequence = Flux.fromIterable(list); + when(visitRepository.findByPetIdIn(asList(111, 222))).thenReturn(sequence); mvc.perform(get("/pets/visits?petId=111,222")) .andExpect(status().isOk()) .andExpect(jsonPath("$.items[0].id").value(1)) .andExpect(jsonPath("$.items[1].id").value(2)) - .andExpect(jsonPath("$.items[2].id").value(3)) .andExpect(jsonPath("$.items[0].petId").value(111)) - .andExpect(jsonPath("$.items[1].petId").value(222)) - .andExpect(jsonPath("$.items[2].petId").value(222)); + .andExpect(jsonPath("$.items[1].petId").value(222)); } } diff --git a/spring-petclinic-visits-service/src/test/resources/application-test.yml b/spring-petclinic-visits-service/src/test/resources/application-test.yml index 0abdac4430..07e39e6271 100644 --- a/spring-petclinic-visits-service/src/test/resources/application-test.yml +++ b/spring-petclinic-visits-service/src/test/resources/application-test.yml @@ -1,4 +1,3 @@ -spring.jpa.hibernate.ddl-auto: none spring: datasource: From a871a2b533f1d0a4965d7a06f295e074943f41c3 Mon Sep 17 00:00:00 2001 From: "Vaijanath Angadihiremath (VJ)" Date: Fri, 22 Jan 2021 12:40:55 -0800 Subject: [PATCH 02/21] Changes for getting Cosmos db starter working with local profile --- README-petclinic.md | 2 +- application.yml | 10 - pom.xml | 6 +- spring-petclinic-admin-server/pom.xml | 148 +++--- .../src/main/resources/bootstrap.yml | 8 + spring-petclinic-api-gateway/pom.xml | 422 +++++++++--------- .../src/main/resources/application.yml | 55 +++ .../src/main/resources/bootstrap.yml | 14 +- spring-petclinic-config-server/pom.xml | 138 +++--- spring-petclinic-customers-service/pom.xml | 40 +- .../petclinic/customers/PopulateSeedData.java | 47 +- ...bProperties.java => CosmosProperties.java} | 2 +- .../model/CustomersAppConfiguration.java | 79 ++++ .../petclinic/customers/model/Owner.java | 38 +- .../customers/model/OwnerRepository.java | 6 +- .../model/OwnerRepositoryConfiguration.java | 65 --- .../petclinic/customers/model/Pet.java | 8 +- .../customers/model/PetRepository.java | 7 +- .../customers/web/OwnerResource.java | 17 +- .../petclinic/customers/web/PetDetails.java | 6 +- .../petclinic/customers/web/PetResource.java | 24 +- .../src/main/resources/application.properties | 10 + .../src/main/resources/bootstrap.yml | 13 + .../customers/web/PetResourceTest.java | 5 +- spring-petclinic-discovery-server/pom.xml | 146 +++--- .../src/main/resources/bootstrap.yml | 7 + spring-petclinic-vets-service/pom.xml | 38 +- .../petclinic/vets/PopulateSeedData.java | 7 +- .../vets/VetsServiceApplication.java | 2 +- ...bProperties.java => CosmosProperties.java} | 2 +- .../samples/petclinic/vets/model/Vet.java | 10 +- .../petclinic/vets/model/VetRepository.java | 6 +- .../model/VetRepositoryConfiguration.java | 65 --- .../vets/model/VetsAppConfiguration.java | 76 ++++ .../petclinic/vets/web/VetResource.java | 16 +- .../src/main/resources/application.properties | 5 +- .../src/main/resources/bootstrap.yml | 12 + .../petclinic/vets/web/VetResourceTest.java | 11 +- spring-petclinic-visits-service/pom.xml | 29 +- .../petclinic/visits/PopulateSeedData.java | 9 +- .../visits/VisitsServiceApplication.java | 3 +- ...bProperties.java => CosmosProperties.java} | 2 +- .../samples/petclinic/visits/model/Visit.java | 4 +- .../visits/model/VisitRepository.java | 8 +- .../model/VisitRepositoryConfiguration.java | 65 --- .../visits/model/VisitsAppConfiguration.java | 79 ++++ .../petclinic/visits/web/VisitResource.java | 13 +- .../src/main/resources/application.properties | 7 + 48 files changed, 992 insertions(+), 800 deletions(-) delete mode 100644 application.yml rename spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/{CosmosDbProperties.java => CosmosProperties.java} (92%) create mode 100644 spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/CustomersAppConfiguration.java delete mode 100644 spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepositoryConfiguration.java rename spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/{CosmosDbProperties.java => CosmosProperties.java} (93%) delete mode 100644 spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetRepositoryConfiguration.java create mode 100644 spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetsAppConfiguration.java rename spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/{CosmosDbProperties.java => CosmosProperties.java} (93%) delete mode 100644 spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitRepositoryConfiguration.java create mode 100644 spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitsAppConfiguration.java diff --git a/README-petclinic.md b/README-petclinic.md index 03cbf9ee96..fbe77bf19c 100644 --- a/README-petclinic.md +++ b/README-petclinic.md @@ -3,7 +3,7 @@ [![Build Status](https://travis-ci.org/spring-petclinic/spring-petclinic-microservices.svg?branch=master)](https://travis-ci.org/spring-petclinic/spring-petclinic-microservices/) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) This microservices branch was initially derived from [AngularJS version](https://github.com/spring-petclinic/spring-petclinic-angular1) to demonstrate how to split sample Spring application into [microservices](http://www.martinfowler.com/articles/microservices.html). -To achieve that goal we use Spring Cloud Gateway, Spring Cloud Circuit Breaker, Spring Cloud Config, Spring Cloud Sleuth, Resilience4j, Micrometer +To achieve that goal we use Spring Cloud Gatay, Spring Cloud Circuit Breaker, Spring Cloud Config, Spring Cloud Sleuth, Resilience4j, Micrometer and the Eureka Service Discovery from the [Spring Cloud Netflix](https://github.com/spring-cloud/spring-cloud-netflix) technology stack. ## Starting services locally without Docker diff --git a/application.yml b/application.yml deleted file mode 100644 index 069d2d32ce..0000000000 --- a/application.yml +++ /dev/null @@ -1,10 +0,0 @@ -spring: - cloud: - config: - server: - git: - uri: https://github.com/VaijanathB/spring-petclinic-microservices-config - native: - search-locations: classpath:. - profiles: - active: native diff --git a/pom.xml b/pom.xml index dde16d3342..e564b9da87 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ org.springframework.boot spring-boot-starter-parent - 2.2.1.RELEASE + 2.3.6.RELEASE org.springframework.samples @@ -29,8 +29,8 @@ 1.8 3.11.1 - 2.2.1.RELEASE - Hoxton.RELEASE + 2.3.4.RELEASE + Hoxton.SR8 2.22.0 diff --git a/spring-petclinic-admin-server/pom.xml b/spring-petclinic-admin-server/pom.xml index 5554d0d53b..e7f6174aac 100644 --- a/spring-petclinic-admin-server/pom.xml +++ b/spring-petclinic-admin-server/pom.xml @@ -1,74 +1,74 @@ - - - 4.0.0 - - org.springframework.samples.petclinic.admin - spring-petclinic-admin-server - jar - Spring Boot Admin server - - - org.springframework.samples - spring-petclinic-microservices - 2.2.1 - - - - 2.2.2 - 9090 - ${basedir}/../docker - - - - - - org.springframework.boot - spring-boot-starter - - - org.springframework.cloud - spring-cloud-starter-config - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - - - - - de.codecentric - spring-boot-admin-starter-server - ${spring-boot-admin.version} - - - de.codecentric - spring-boot-admin-server-ui - ${spring-boot-admin.version} - - - - - org.jolokia - jolokia-core - - - - - - - buildDocker - - - - com.spotify - docker-maven-plugin - ${docker.plugin.version} - - - - - - - + + + 4.0.0 + + org.springframework.samples.petclinic.admin + spring-petclinic-admin-server + jar + Spring Boot Admin server + + + org.springframework.samples + spring-petclinic-microservices + 2.3.6 + + + + 2.2.2 + 9090 + ${basedir}/../docker + + + + + + org.springframework.boot + spring-boot-starter + + + org.springframework.cloud + spring-cloud-starter-config + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + + + + + de.codecentric + spring-boot-admin-starter-server + ${spring-boot-admin.version} + + + de.codecentric + spring-boot-admin-server-ui + ${spring-boot-admin.version} + + + + + org.jolokia + jolokia-core + + + + + + + buildDocker + + + + com.spotify + docker-maven-plugin + ${docker.plugin.version} + + + + + + + diff --git a/spring-petclinic-admin-server/src/main/resources/bootstrap.yml b/spring-petclinic-admin-server/src/main/resources/bootstrap.yml index acd7449356..0f75fe8059 100644 --- a/spring-petclinic-admin-server/src/main/resources/bootstrap.yml +++ b/spring-petclinic-admin-server/src/main/resources/bootstrap.yml @@ -10,3 +10,11 @@ spring: cloud: config: uri: http://config-server:8888 +--- +spring: + profiles: local + cloud: + config: + uri: http://config-server:8888 + server: + port: 8081 diff --git a/spring-petclinic-api-gateway/pom.xml b/spring-petclinic-api-gateway/pom.xml index 98fc2fbb66..cde857fd1b 100644 --- a/spring-petclinic-api-gateway/pom.xml +++ b/spring-petclinic-api-gateway/pom.xml @@ -1,211 +1,211 @@ - - - 4.0.0 - - org.springframework.samples.petclinic.api - spring-petclinic-api-gateway - jar - Spring PetClinic API Gateway - - - org.springframework.samples - spring-petclinic-microservices - 2.2.1 - - - - 3.3.7-1 - 1.11.4 - 3.1.1-1 - 1.6.4 - 1.0.3 - 1.8.0 - 8081 - ${basedir}/../docker - - - - - - - org.springframework.boot - spring-boot-devtools - true - - - org.springframework.boot - spring-boot-configuration-processor - true - - - org.springframework.boot - spring-boot-starter-actuator - - - org.springframework.boot - spring-boot-starter-test - test - - - - - org.springframework.cloud - spring-cloud-sleuth-zipkin - - - org.springframework.cloud - spring-cloud-starter-circuitbreaker-reactor-resilience4j - - - org.springframework.cloud - spring-cloud-starter-config - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-client - - - org.springframework.cloud - spring-cloud-starter-netflix-ribbon - - - org.springframework.cloud - spring-cloud-netflix-ribbon - - - com.netflix.ribbon - ribbon-eureka - - - org.springframework.cloud - spring-cloud-netflix-hystrix - - - - - org.springframework.cloud - spring-cloud-starter-sleuth - - - org.springframework.cloud - spring-cloud-starter-gateway - - - - - org.jolokia - jolokia-core - - - org.projectlombok - lombok - - - io.micrometer - micrometer-registry-prometheus - - - io.github.resilience4j - resilience4j-micrometer - - - - - org.webjars - angularjs - ${webjars-angular.version} - - - org.webjars - jquery - ${webjars-jquery.version} - - - org.webjars - bootstrap - ${webjars-bootstrap.version} - - - org.webjars - angular-ui-router - ${webjars-angular-ui-router.version} - - - org.webjars - webjars-locator-core - - - - - org.junit.jupiter - junit-jupiter-api - test - - - org.junit.jupiter - junit-jupiter-engine - test - - - com.squareup.okhttp3 - mockwebserver - test - - - - - - - ro.isdc.wro4j - wro4j-maven-plugin - ${wro4j.version} - - - generate-resources - - run - - - - - ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory - ${project.build.directory}/classes/static/css - ${basedir}/src/main/wro/wro.xml - ${basedir}/src/main/wro/wro.properties - ${basedir}/src/main/less - - - - org.webjars - bootstrap - ${webjars-bootstrap.version} - - - - - org.mockito - mockito-core - ${mockito.version} - - - - - - - - - buildDocker - - - - com.spotify - docker-maven-plugin - ${docker.plugin.version} - - - - - - - + + + 4.0.0 + + org.springframework.samples.petclinic.api + spring-petclinic-api-gateway + jar + Spring PetClinic API Gateway + + + org.springframework.samples + spring-petclinic-microservices + 2.3.6 + + + + 3.3.7-1 + 1.11.4 + 3.1.1-1 + 1.6.4 + 1.0.3 + 1.8.0 + 8081 + ${basedir}/../docker + + + + + + + org.springframework.boot + spring-boot-devtools + true + + + org.springframework.boot + spring-boot-configuration-processor + true + + + org.springframework.boot + spring-boot-starter-actuator + + + org.springframework.boot + spring-boot-starter-test + test + + + + + org.springframework.cloud + spring-cloud-sleuth-zipkin + + + org.springframework.cloud + spring-cloud-starter-circuitbreaker-reactor-resilience4j + + + org.springframework.cloud + spring-cloud-starter-config + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + + + org.springframework.cloud + spring-cloud-starter-netflix-ribbon + + + org.springframework.cloud + spring-cloud-netflix-ribbon + + + com.netflix.ribbon + ribbon-eureka + + + org.springframework.cloud + spring-cloud-netflix-hystrix + + + + + org.springframework.cloud + spring-cloud-starter-sleuth + + + org.springframework.cloud + spring-cloud-starter-gateway + + + + + org.jolokia + jolokia-core + + + org.projectlombok + lombok + + + io.micrometer + micrometer-registry-prometheus + + + io.github.resilience4j + resilience4j-micrometer + + + + + org.webjars + angularjs + ${webjars-angular.version} + + + org.webjars + jquery + ${webjars-jquery.version} + + + org.webjars + bootstrap + ${webjars-bootstrap.version} + + + org.webjars + angular-ui-router + ${webjars-angular-ui-router.version} + + + org.webjars + webjars-locator-core + + + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + com.squareup.okhttp3 + mockwebserver + test + + + + + + + ro.isdc.wro4j + wro4j-maven-plugin + ${wro4j.version} + + + generate-resources + + run + + + + + ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory + ${project.build.directory}/classes/static/css + ${basedir}/src/main/wro/wro.xml + ${basedir}/src/main/wro/wro.properties + ${basedir}/src/main/less + + + + org.webjars + bootstrap + ${webjars-bootstrap.version} + + + + + org.mockito + mockito-core + ${mockito.version} + + + + + + + + + buildDocker + + + + com.spotify + docker-maven-plugin + ${docker.plugin.version} + + + + + + + diff --git a/spring-petclinic-api-gateway/src/main/resources/application.yml b/spring-petclinic-api-gateway/src/main/resources/application.yml index f3bc0ee829..0205c02ac6 100644 --- a/spring-petclinic-api-gateway/src/main/resources/application.yml +++ b/spring-petclinic-api-gateway/src/main/resources/application.yml @@ -23,3 +23,58 @@ spring: - Path=/api/customer/** filters: - StripPrefix=2 +--- +spring: + profiles: docker + cloud: + loadbalancer: + ribbon: + enabled: false + gateway: + routes: + - id: vets-service + uri: http://vets-service + predicates: + - Path=/api/vet/** + filters: + - StripPrefix=2 + - id: visits-service + uri: http://visits-service + predicates: + - Path=/api/visit/** + filters: + - StripPrefix=2 + - id: customers-service + uri: http://customers-service + predicates: + - Path=/api/customer/** + filters: + - StripPrefix=2 + +--- +spring: + profiles: local + cloud: + loadbalancer: + ribbon: + enabled: false + gateway: + routes: + - id: vets-service + uri: http://localhost:8082 + predicates: + - Path=/api/vet/** + filters: + - StripPrefix=2 + - id: visits-service + uri: http://localhost:8083 + predicates: + - Path=/api/visit/** + filters: + - StripPrefix=2 + - id: customers-service + uri: http://localhost:8089 + predicates: + - Path=/api/customer/** + filters: + - StripPrefix=2 diff --git a/spring-petclinic-api-gateway/src/main/resources/bootstrap.yml b/spring-petclinic-api-gateway/src/main/resources/bootstrap.yml index f4cc782f9e..926c56fb87 100644 --- a/spring-petclinic-api-gateway/src/main/resources/bootstrap.yml +++ b/spring-petclinic-api-gateway/src/main/resources/bootstrap.yml @@ -1,9 +1,13 @@ spring: - cloud: - config: - uri: http://localhost:8888 - application: - name: api-gateway + cloud: + config: + uri: http://localhost:8888 + application: + name: api-gateway +eureka: + client: + register-with-eureka: true + fetch-registry: true --- spring: profiles: docker diff --git a/spring-petclinic-config-server/pom.xml b/spring-petclinic-config-server/pom.xml index b8c5ab8cd8..4a963f59cd 100644 --- a/spring-petclinic-config-server/pom.xml +++ b/spring-petclinic-config-server/pom.xml @@ -1,69 +1,69 @@ - - - 4.0.0 - - org.springframework.samples.petclinic.config - spring-petclinic-config-server - jar - Spring PetClinic Config Server - - - org.springframework.samples - spring-petclinic-microservices - 2.2.1 - - - - 8888 - ${basedir}/../docker - - - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - org.springframework.cloud - spring-cloud-config-server - - - - - org.jolokia - jolokia-core - - - - - org.junit.jupiter - junit-jupiter-api - test - - - org.junit.jupiter - junit-jupiter-engine - test - - - - - - buildDocker - - - - com.spotify - docker-maven-plugin - ${docker.plugin.version} - - - - - - + + + 4.0.0 + + org.springframework.samples.petclinic.config + spring-petclinic-config-server + jar + Spring PetClinic Config Server + + + org.springframework.samples + spring-petclinic-microservices + 2.3.6 + + + + 8888 + ${basedir}/../docker + + + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + org.springframework.cloud + spring-cloud-config-server + + + + + org.jolokia + jolokia-core + + + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + + + + buildDocker + + + + com.spotify + docker-maven-plugin + ${docker.plugin.version} + + + + + + diff --git a/spring-petclinic-customers-service/pom.xml b/spring-petclinic-customers-service/pom.xml index 811e14d44f..72bf072682 100644 --- a/spring-petclinic-customers-service/pom.xml +++ b/spring-petclinic-customers-service/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 2.2.1 + 2.3.6 @@ -35,16 +35,25 @@ org.springframework.boot spring-boot-starter-web + + com.azure + azure-spring-data-cosmos + 3.2.0 + + + org.springframework.data + spring-data-rest-core + org.springframework.cloud spring-cloud-starter-config - - - - + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + org.springframework.cloud spring-cloud-starter-sleuth @@ -72,6 +81,17 @@ io.micrometer micrometer-registry-prometheus + + javax.validation + validation-api + + + commons-jxpath + commons-jxpath + 1.3 + compile + + @@ -89,16 +109,6 @@ assertj-core test - - com.microsoft.azure - spring-data-cosmosdb - 2.3.0 - compile - - - org.springframework.data - spring-data-rest-core - junit junit diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/PopulateSeedData.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/PopulateSeedData.java index 34189032b9..b0fe99c9c3 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/PopulateSeedData.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/PopulateSeedData.java @@ -1,6 +1,6 @@ package org.springframework.samples.petclinic.customers; -import com.google.common.collect.Lists; +import com.azure.cosmos.implementation.guava25.collect.Lists; import lombok.SneakyThrows; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -13,7 +13,9 @@ import reactor.core.publisher.Flux; import javax.annotation.PostConstruct; +import java.text.ParseException; import java.text.SimpleDateFormat; +import java.util.Date; import java.util.HashSet; @@ -29,7 +31,6 @@ public class PopulateSeedData { private PetRepository petRepository; - @SneakyThrows @PostConstruct public void populateSeedData() { @@ -68,27 +69,29 @@ public void populateSeedData() { add(13); }}); - final Pet pet1 = new Pet(1, "Leo", new SimpleDateFormat("yyyy-dd-mm").parse("2000-09-07"), "cat", owner1); - final Pet pet2 = new Pet(2, "Basil", new SimpleDateFormat("yyyy-dd-mm").parse("2002-08-06"), "hamster", owner2); - final Pet pet3 = new Pet(3, "Rosy", new SimpleDateFormat("yyyy-dd-mm").parse("2001-04-17"), "dog", owner3); - final Pet pet4 = new Pet(4, "Jewel", new SimpleDateFormat("yyyy-dd-mm").parse("2000-03-07"), "dog", owner3); - final Pet pet5 = new Pet(5, "Iggy", new SimpleDateFormat("yyyy-dd-mm").parse("2000-11-30"), "lizard", owner4); - final Pet pet6 = new Pet(6, "George", new SimpleDateFormat("yyyy-dd-mm").parse("2000-01-20"), "snake", owner5); - final Pet pet7 = new Pet(7, "Samantha", new SimpleDateFormat("yyyy-dd-mm").parse("1995-09-04"), "cat", owner6); - final Pet pet8 = new Pet(8, "Max", new SimpleDateFormat("yyyy-dd-mm").parse("1995-09-04"), "cat", owner6); - final Pet pet9 = new Pet(9, "Lucky", new SimpleDateFormat("yyyy-dd-mm").parse("1999-08-06"), "bird", owner7); - final Pet pet10 = new Pet(10, "Mulligan", new SimpleDateFormat("yyyy-dd-mm").parse("1997-02-24"), "dog", owner8); - final Pet pet11 = new Pet(11, "Freddy", new SimpleDateFormat("yyyy-dd-mm").parse("2000-03-09"), "bird", owner9); - final Pet pet12 = new Pet(12, "Lucky", new SimpleDateFormat("yyyy-dd-mm").parse("2000-06-24"), "dog", owner10); - final Pet pet13 = new Pet(13, "Sly", new SimpleDateFormat("yyyy-dd-mm").parse("2002-06-08"), "cat", owner10); + final Pet pet1 = new Pet(1, "Leo", parseDate("2000-09-07"), "cat", owner1); + final Pet pet2 = new Pet(2, "Basil", parseDate("2002-08-06"), "hamster", owner2); + final Pet pet3 = new Pet(3, "Rosy", parseDate("2001-04-17"), "dog", owner3); + final Pet pet4 = new Pet(4, "Jewel", parseDate("2000-03-07"), "dog", owner3); + final Pet pet5 = new Pet(5, "Iggy", parseDate("2000-11-30"), "lizard", owner4); + final Pet pet6 = new Pet(6, "George", parseDate("2000-01-20"), "snake", owner5); + final Pet pet7 = new Pet(7, "Samantha", parseDate("1995-09-04"), "cat", owner6); + final Pet pet8 = new Pet(8, "Max", parseDate("1995-09-04"), "cat", owner6); + final Pet pet9 = new Pet(9, "Lucky", parseDate("1999-08-06"), "bird", owner7); + final Pet pet10 = new Pet(10, "Mulligan", parseDate("1997-02-24"), "dog", owner8); + final Pet pet11 = new Pet(11, "Freddy", parseDate("2000-03-09"), "bird", owner9); + final Pet pet12 = new Pet(12, "Lucky", parseDate("2000-06-24"), "dog", owner10); + final Pet pet13 = new Pet(13, "Sly", parseDate("2002-06-08"), "cat", owner10); - Flux tempOwner = this.ownerRepository.saveAll(Lists.newArrayList(owner1, owner2, owner3, owner4, owner5, owner6, owner7, owner8, owner9, owner10)); - if (tempOwner != null) { - tempOwner.collectList().block(); - } - Flux tempPet = this.petRepository.saveAll(Lists.newArrayList(pet1, pet2, pet3, pet4, pet5, pet6, pet7, pet8, pet9, pet10, pet11, pet12, pet13)); - if (tempPet != null) { - tempPet.collectList().block(); + this.ownerRepository.saveAll(Lists.newArrayList(owner1, owner2, owner3, owner4, owner5, owner6, owner7, owner8, owner9, owner10)); + this.petRepository.saveAll(Lists.newArrayList(pet1, pet2, pet3, pet4, pet5, pet6, pet7, pet8, pet9, pet10, pet11, pet12, pet13)); + } + + public static Date parseDate(String date) { + try { + return new SimpleDateFormat("yyyy-MM-dd").parse(date); + } catch (ParseException e) { + return null; } } } diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/CosmosDbProperties.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/CosmosProperties.java similarity index 92% rename from spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/CosmosDbProperties.java rename to spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/CosmosProperties.java index 9566a39660..1e4c95777b 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/CosmosDbProperties.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/CosmosProperties.java @@ -8,7 +8,7 @@ @Getter @Setter @ConfigurationProperties(prefix = "azure.cosmosdb") -class CosmosDbProperties { +public class CosmosProperties { private String uri; diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/CustomersAppConfiguration.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/CustomersAppConfiguration.java new file mode 100644 index 0000000000..9c6f128c61 --- /dev/null +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/CustomersAppConfiguration.java @@ -0,0 +1,79 @@ +package org.springframework.samples.petclinic.customers.model; +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +/** + * WARNING: MODIFYING THIS FILE WILL REQUIRE CORRESPONDING UPDATES TO README.md FILE. LINE NUMBERS + * ARE USED TO EXTRACT APPROPRIATE CODE SEGMENTS FROM THIS FILE. ADD NEW CODE AT THE BOTTOM TO AVOID CHANGING + * LINE NUMBERS OF EXISTING CODE SAMPLES. + */ + +import com.azure.core.credential.AzureKeyCredential; +import com.azure.cosmos.CosmosClientBuilder; +import com.azure.cosmos.DirectConnectionConfig; +import com.azure.cosmos.GatewayConnectionConfig; +import com.azure.spring.data.cosmos.config.AbstractCosmosConfiguration; +import com.azure.spring.data.cosmos.config.CosmosConfig; +import com.azure.spring.data.cosmos.core.ResponseDiagnostics; +import com.azure.spring.data.cosmos.core.ResponseDiagnosticsProcessor; +import com.azure.spring.data.cosmos.repository.config.EnableCosmosRepositories; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.lang.Nullable; +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +@Configuration +@EnableConfigurationProperties(CosmosProperties.class) +@EnableCosmosRepositories +@PropertySource("classpath:application.properties") +public class CustomersAppConfiguration extends AbstractCosmosConfiguration { + + private static final Logger logger = LoggerFactory.getLogger(CustomersAppConfiguration.class); + + @Autowired + private CosmosProperties properties; + + private AzureKeyCredential azureKeyCredential; + + @Bean + public CosmosClientBuilder cosmosClientBuilder() { + this.azureKeyCredential = new AzureKeyCredential(properties.getKey()); + DirectConnectionConfig directConnectionConfig = new DirectConnectionConfig(); + GatewayConnectionConfig gatewayConnectionConfig = new GatewayConnectionConfig(); + return new CosmosClientBuilder() + .endpoint(properties.getUri()) + .credential(azureKeyCredential) + .directMode(directConnectionConfig, gatewayConnectionConfig); + } + + @Override + public CosmosConfig cosmosConfig() { + return CosmosConfig.builder() + .enableQueryMetrics(properties.isPopulateQueryMetrics()) + .responseDiagnosticsProcessor(new ResponseDiagnosticsProcessorImplementation()) + .build(); + } + + + public void switchToSecondaryKey() { + this.azureKeyCredential.update(properties.getSecondaryKey()); + } + + @Override + protected String getDatabaseName() { + return properties.getDatabase(); + } + + private static class ResponseDiagnosticsProcessorImplementation implements ResponseDiagnosticsProcessor { + + @Override + public void processResponseDiagnostics(@Nullable ResponseDiagnostics responseDiagnostics) { + logger.info("Response Diagnostics {}", responseDiagnostics); + } + } +} diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java index d6f0137b0d..37006ff15b 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java @@ -15,17 +15,25 @@ */ package org.springframework.samples.petclinic.customers.model; -import com.microsoft.azure.spring.data.cosmosdb.core.mapping.Document; -import com.microsoft.azure.spring.data.cosmosdb.core.mapping.PartitionKey; +import com.azure.spring.data.cosmos.core.mapping.Container; +import com.azure.spring.data.cosmos.core.mapping.PartitionKey; import lombok.AllArgsConstructor; +import lombok.Getter; import lombok.NoArgsConstructor; +import lombok.Setter; +import net.minidev.json.annotate.JsonIgnore; import org.springframework.beans.support.MutableSortDefinition; import org.springframework.beans.support.PropertyComparator; import org.springframework.core.style.ToStringCreator; +import org.springframework.data.annotation.Id; import javax.validation.constraints.Digits; import javax.validation.constraints.NotEmpty; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; /** * Simple JavaBean domain object representing an owner. @@ -36,31 +44,28 @@ * @author Michael Isvy * @author Maciej Szarlinski */ -@Document(collection = "owners") +@Container(containerName = "Owners") +@Getter +@Setter @AllArgsConstructor @NoArgsConstructor public class Owner { + @Id private Integer id; - @NotEmpty private String firstName; - @NotEmpty @PartitionKey private String lastName; - @NotEmpty private String address; - @NotEmpty private String city; - @NotEmpty - @Digits(fraction = 0, integer = 10) private String telephone; - private Set petIds; + private HashSet petIds; public Integer getId() { return id; @@ -106,22 +111,19 @@ public void setTelephone(String telephone) { this.telephone = telephone; } - protected Set getPetsInternal() { + public HashSet getPetIds() { if (this.petIds == null) { this.petIds = new HashSet<>(); } return this.petIds; } - - public List getPets() { - final List sortedPets = new ArrayList<>(getPetsInternal()); - PropertyComparator.sort(sortedPets, new MutableSortDefinition("name", true, true)); - return Collections.unmodifiableList(sortedPets); + public void setPetIds(HashSet petIds) { + this.petIds = petIds; } public void addPet(Pet pet) { - getPetsInternal().add(pet.getId()); + getPetIds().add(pet.getId()); pet.setOwner(this); } diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepository.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepository.java index 234cee0565..d106f7cb1c 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepository.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepository.java @@ -15,8 +15,7 @@ */ package org.springframework.samples.petclinic.customers.model; -import com.microsoft.azure.spring.data.cosmosdb.repository.ReactiveCosmosRepository; -import org.springframework.data.rest.core.annotation.RepositoryRestResource; +import com.azure.spring.data.cosmos.repository.CosmosRepository; import org.springframework.stereotype.Repository; /** @@ -30,6 +29,5 @@ * @author Maciej Szarlinski */ @Repository -@RepositoryRestResource(collectionResourceRel = "owner", path = "owner") -public interface OwnerRepository extends ReactiveCosmosRepository { +public interface OwnerRepository extends CosmosRepository { } diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepositoryConfiguration.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepositoryConfiguration.java deleted file mode 100644 index 028fabb256..0000000000 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepositoryConfiguration.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.springframework.samples.petclinic.customers.model; - -import com.azure.data.cosmos.CosmosKeyCredential; -import com.microsoft.azure.spring.data.cosmosdb.config.AbstractCosmosConfiguration; -import com.microsoft.azure.spring.data.cosmosdb.config.CosmosDBConfig; -import com.microsoft.azure.spring.data.cosmosdb.core.ResponseDiagnostics; -import com.microsoft.azure.spring.data.cosmosdb.core.ResponseDiagnosticsProcessor; -import com.microsoft.azure.spring.data.cosmosdb.repository.config.EnableReactiveCosmosRepositories; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; - -import javax.annotation.Nullable; - - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - - -@Configuration -@EnableConfigurationProperties(CosmosDbProperties.class) -@EnableReactiveCosmosRepositories -@Slf4j -@PropertySource("classpath:application.properties") -public class OwnerRepositoryConfiguration extends AbstractCosmosConfiguration { - // private static final Logger logger = LoggerFactory.getLogger(AppConfiguration.class); - - @Autowired - private CosmosDbProperties properties; - - private CosmosKeyCredential cosmosKeyCredential; - - @Bean - public CosmosDBConfig cosmosDbConfig() { - this.cosmosKeyCredential = new CosmosKeyCredential(properties.getKey()); - CosmosDBConfig cosmosDBConfig = CosmosDBConfig.builder(properties.getUri(), cosmosKeyCredential, - properties.getDatabase()).build(); - cosmosDBConfig.setPopulateQueryMetrics(properties.isPopulateQueryMetrics()); - cosmosDBConfig.setResponseDiagnosticsProcessor(new ResponseDiagnosticsProcessorImplementation()); - return cosmosDBConfig; - } - - public void switchToSecondaryKey() { - this.cosmosKeyCredential.key(properties.getSecondaryKey()); - } - - public void switchToPrimaryKey() { - this.cosmosKeyCredential.key(properties.getKey()); - } - - public void switchKey(String key) { - this.cosmosKeyCredential.key(key); - } - - private static class ResponseDiagnosticsProcessorImplementation implements ResponseDiagnosticsProcessor { - - @Override - public void processResponseDiagnostics(@Nullable ResponseDiagnostics responseDiagnostics) { - log.info("Response Diagnostics {}", responseDiagnostics); - } - } -} diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java index 48e531480f..2044f8bb60 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java @@ -15,11 +15,9 @@ */ package org.springframework.samples.petclinic.customers.model; +import com.azure.spring.data.cosmos.core.mapping.Container; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.microsoft.azure.spring.data.cosmosdb.core.mapping.Document; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.NoArgsConstructor; +import lombok.*; import org.springframework.core.style.ToStringCreator; import java.util.Date; @@ -32,7 +30,7 @@ * @author Sam Brannen * @author Maciej Szarlinski */ -@Document(collection = "pets") +@Container(containerName = "pets") @Builder(builderMethodName = "pet") @AllArgsConstructor @NoArgsConstructor diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetRepository.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetRepository.java index 6ee14e19f3..4f1c2d5f87 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetRepository.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetRepository.java @@ -14,9 +14,7 @@ * limitations under the License. */ package org.springframework.samples.petclinic.customers.model; - -import com.microsoft.azure.spring.data.cosmosdb.repository.ReactiveCosmosRepository; -import org.springframework.data.rest.core.annotation.RepositoryRestResource; +import com.azure.spring.data.cosmos.repository.CosmosRepository; import org.springframework.stereotype.Repository; /** @@ -30,8 +28,7 @@ * @author Maciej Szarlinski */ @Repository -@RepositoryRestResource(collectionResourceRel = "pet", path = "pet") -public interface PetRepository extends ReactiveCosmosRepository { +public interface PetRepository extends CosmosRepository { // /** // * Retrieve all {@link PetType}s from the data store. diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java index c93a7c4388..64c2326b0a 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java @@ -26,6 +26,9 @@ import reactor.core.publisher.Mono; import javax.validation.Valid; +import java.util.ArrayList; +import java.util.List; +import java.util.Optional; /** * @author Juergen Hoeller @@ -50,7 +53,7 @@ class OwnerResource { */ @PostMapping @ResponseStatus(HttpStatus.CREATED) - public Mono createOwner(@Valid @RequestBody Owner owner) { + public Owner createOwner(@Valid @RequestBody Owner owner) { return ownerRepository.save(owner); } @@ -60,7 +63,7 @@ public Mono createOwner(@Valid @RequestBody Owner owner) { * @return */ @GetMapping(value = "/{ownerId}") - public Mono findOwner(@PathVariable("ownerId") int ownerId) { + public Optional findOwner(@PathVariable("ownerId") int ownerId) { return ownerRepository.findById(ownerId); } @@ -68,8 +71,10 @@ public Mono findOwner(@PathVariable("ownerId") int ownerId) { * Read List of Owners */ @GetMapping - public Flux findAll() { - return ownerRepository.findAll(); + public List findAll() { + List list = new ArrayList<>(); + ownerRepository.findAll().forEach(list::add); + return list; } /** @@ -78,8 +83,8 @@ public Flux findAll() { @PutMapping(value = "/{ownerId}") @ResponseStatus(HttpStatus.NO_CONTENT) public void updateOwner(@PathVariable("ownerId") int ownerId, @Valid @RequestBody Owner ownerRequest) { - Mono ownerOptional = ownerRepository.findById(ownerId); - ownerOptional.blockOptional().ifPresent(owner -> { + Optional ownerOptional = ownerRepository.findById(ownerId); + ownerOptional.ifPresent(owner -> { owner.setFirstName(ownerRequest.getFirstName()); owner.setLastName(ownerRequest.getLastName()); owner.setCity(ownerRequest.getCity()); diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetDetails.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetDetails.java index cdec5558f7..639d62d8b5 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetDetails.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetDetails.java @@ -21,6 +21,8 @@ import reactor.core.publisher.Mono; import java.util.Date; +import java.util.Optional; + /** * @author mszarlinski@bravurasolutions.com on 2016-12-05. */ @@ -38,8 +40,8 @@ class PetDetails { private String type; - PetDetails(Mono petInfo) { - petInfo.blockOptional().ifPresent(pet -> { + PetDetails(Optional petInfo) { + petInfo.ifPresent(pet -> { this.id = pet.getId(); this.name = pet.getName(); this.owner = pet.getOwner().getFirstName() + " " + pet.getOwner().getLastName(); diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java index f2abbecbf3..7e8ae1b172 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java @@ -26,6 +26,8 @@ import org.springframework.web.bind.annotation.*; import reactor.core.publisher.Mono; +import java.util.Optional; + /** * @author Juergen Hoeller * @author Ken Krebs @@ -49,13 +51,14 @@ class PetResource { @PostMapping("/owners/{ownerId}/pets") @ResponseStatus(HttpStatus.CREATED) - public Mono processCreationForm( + public Pet processCreationForm( @RequestBody PetRequest petRequest, @PathVariable("ownerId") int ownerId) { final Pet pet = new Pet(); - final Mono optionalOwner = ownerRepository.findById(ownerId); - optionalOwner.blockOptional().ifPresent(owner -> { + Optional optionalOwner = ownerRepository.findById(ownerId); + + optionalOwner.ifPresent(owner -> { owner.addPet(pet); }); return save(pet, petRequest); @@ -65,12 +68,13 @@ public Mono processCreationForm( @ResponseStatus(HttpStatus.NO_CONTENT) public void processUpdateForm(@RequestBody PetRequest petRequest) { int petId = petRequest.getId(); - Mono petOptional = findPetById(petId); - Pet pet = petOptional.block(); - save(pet, petRequest); + Optional petOptional = findPetById(petId); + petOptional.ifPresent(pet -> { + save(pet, petRequest); + }); } - private Mono save(final Pet pet, final PetRequest petRequest) { + private Pet save(final Pet pet, final PetRequest petRequest) { pet.setName(petRequest.getName()); pet.setBirthDate(petRequest.getBirthDate()); @@ -88,10 +92,10 @@ public PetDetails findPet(@PathVariable("petId") int petId) { } - private Mono findPetById(int petId) { - Mono optionalPet = petRepository.findById(petId); + private Optional findPetById(int petId) { + Optional optionalPet = petRepository.findById(petId); - if (!optionalPet.blockOptional().isPresent()) { + if (!optionalPet.isPresent()) { throw new ResourceNotFoundException("Pet " + petId + " not found"); } return optionalPet; diff --git a/spring-petclinic-customers-service/src/main/resources/application.properties b/spring-petclinic-customers-service/src/main/resources/application.properties index e69de29bb2..4d4819c9e2 100644 --- a/spring-petclinic-customers-service/src/main/resources/application.properties +++ b/spring-petclinic-customers-service/src/main/resources/application.properties @@ -0,0 +1,10 @@ +#azure.cosmosdb.uri=${ACCOUNT_HOST} +#azure.cosmosdb.key=${ACCOUNT_KEY} +#azure.cosmosdb.secondaryKey=${SECONDARY_ACCOUNT_KEY} + +azure.cosmosdb.uri=https://end2endsample.documents.azure.com:443/ +azure.cosmosdb.key=udTrHTEzNNgxhtAuNOWxOPQJFtlKklHugh2GxJcl45EDs1BQl4RGxHJIZUV0cggzaRNV5lAnvgBYSLRCIXxqzw== +azure.cosmosdb.secondaryKey=FRvd8TPMHBSpjepu0kQVudiML5PoDboy2EfIfHLLVOZEYfy4BGQvC5W36eMWGC8r9v0NG4tbwSyaA6ehZkfNXg== +azure.cosmosdb.database=end2endsample +# Populate query metrics +cosmos.queryMetricsEnabled=true diff --git a/spring-petclinic-customers-service/src/main/resources/bootstrap.yml b/spring-petclinic-customers-service/src/main/resources/bootstrap.yml index c0f6dca616..ddd58a7645 100644 --- a/spring-petclinic-customers-service/src/main/resources/bootstrap.yml +++ b/spring-petclinic-customers-service/src/main/resources/bootstrap.yml @@ -1,3 +1,7 @@ +eureka: + client: + register-with-eureka: true + fetch-registry: true spring: cloud: config: @@ -10,3 +14,12 @@ spring: cloud: config: uri: http://config-server:8888 + +--- +spring: + profiles: local + cloud: + config: + uri: http://config-server:8888 +server: + port: 8089 diff --git a/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceTest.java b/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceTest.java index a49179a64a..2c7fd240e3 100644 --- a/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceTest.java +++ b/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceTest.java @@ -18,6 +18,9 @@ import org.springframework.test.web.servlet.MockMvc; import reactor.core.publisher.Mono; +import java.util.Optional; + +import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.when; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; @@ -46,7 +49,7 @@ void shouldGetAPetInJSonFormat() throws Exception { Pet pet = setupPet(); - when(petRepository.findById(2)).thenReturn(Mono.just(pet)); + given(petRepository.findById(2)).willReturn(Optional.of(pet)); mvc.perform(get("/owners/2/pets/2").accept(MediaType.APPLICATION_JSON)) diff --git a/spring-petclinic-discovery-server/pom.xml b/spring-petclinic-discovery-server/pom.xml index c4f69924a1..b4a06a8c5e 100644 --- a/spring-petclinic-discovery-server/pom.xml +++ b/spring-petclinic-discovery-server/pom.xml @@ -1,73 +1,73 @@ - - - 4.0.0 - - org.springframework.samples.petclinic.discovery - spring-petclinic-discovery-server - jar - Spring PetClinic Discovery Server - - - org.springframework.samples - spring-petclinic-microservices - 2.2.1 - - - - 8761 - ${basedir}/../docker - - - - - - org.springframework.boot - spring-boot-starter-test - test - - - - - org.springframework.cloud - spring-cloud-starter-config - - - org.springframework.cloud - spring-cloud-starter-netflix-eureka-server - - - - - org.junit.jupiter - junit-jupiter-api - test - - - org.junit.jupiter - junit-jupiter-engine - test - - - - - org.glassfish.jaxb - jaxb-runtime - - - - - - buildDocker - - - - com.spotify - docker-maven-plugin - ${docker.plugin.version} - - - - - - + + + 4.0.0 + + org.springframework.samples.petclinic.discovery + spring-petclinic-discovery-server + jar + Spring PetClinic Discovery Server + + + org.springframework.samples + spring-petclinic-microservices + 2.3.6 + + + + 8761 + ${basedir}/../docker + + + + + + org.springframework.boot + spring-boot-starter-test + test + + + + + org.springframework.cloud + spring-cloud-starter-config + + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-server + + + + + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine + test + + + + + org.glassfish.jaxb + jaxb-runtime + + + + + + buildDocker + + + + com.spotify + docker-maven-plugin + ${docker.plugin.version} + + + + + + diff --git a/spring-petclinic-discovery-server/src/main/resources/bootstrap.yml b/spring-petclinic-discovery-server/src/main/resources/bootstrap.yml index 9c07ca22b5..5ee836c5b1 100644 --- a/spring-petclinic-discovery-server/src/main/resources/bootstrap.yml +++ b/spring-petclinic-discovery-server/src/main/resources/bootstrap.yml @@ -10,3 +10,10 @@ spring: cloud: config: uri: http://config-server:8888 + +--- +spring: + profiles: local + cloud: + config: + uri: http://localhost:8888 diff --git a/spring-petclinic-vets-service/pom.xml b/spring-petclinic-vets-service/pom.xml index 980e4b09de..6d2d5c056c 100644 --- a/spring-petclinic-vets-service/pom.xml +++ b/spring-petclinic-vets-service/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 2.2.1 + 2.3.6 @@ -53,6 +53,10 @@ org.springframework.cloud spring-cloud-starter-config + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + org.springframework.cloud spring-cloud-starter-sleuth @@ -80,15 +84,28 @@ hsqldb runtime - + + + com.azure + azure-spring-data-cosmos + 3.2.0 + + + org.springframework.data + spring-data-rest-core + io.micrometer micrometer-registry-prometheus + + javax.validation + validation-api + @@ -101,25 +118,10 @@ junit-jupiter-engine test - - com.microsoft.azure - spring-data-cosmosdb - 2.3.0 - - - org.springframework.data - spring-data-rest-core - jakarta.persistence jakarta.persistence-api - - junit - junit - 4.12 - test - junit junit diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/PopulateSeedData.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/PopulateSeedData.java index 1782ed5cbf..414796ddee 100644 --- a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/PopulateSeedData.java +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/PopulateSeedData.java @@ -1,6 +1,6 @@ package org.springframework.samples.petclinic.vets; -import com.google.common.collect.Lists; +import com.azure.cosmos.implementation.guava25.collect.Lists; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -45,9 +45,6 @@ public void populateSeedData() throws ParseException { }}); final Vet vet6 = new Vet(6, "James", "Carter", null); - Flux temp = this.repository.saveAll(Lists.newArrayList(vet1, vet2, vet3, vet4, vet5, vet6)); - if (temp != null) { - temp.collectList().block(); - } + this.repository.saveAll(Lists.newArrayList(vet1, vet2, vet3, vet4, vet5, vet6)); } } diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/VetsServiceApplication.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/VetsServiceApplication.java index 30271eb90b..f643b77f4d 100644 --- a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/VetsServiceApplication.java +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/VetsServiceApplication.java @@ -32,7 +32,7 @@ public class VetsServiceApplication { @Autowired - private VetRepository repository; + private VetRepository vetRepository; public static void main(String[] args) { SpringApplication.run(VetsServiceApplication.class, args); diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/CosmosDbProperties.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/CosmosProperties.java similarity index 93% rename from spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/CosmosDbProperties.java rename to spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/CosmosProperties.java index cf8b5920ac..cfa48186f4 100644 --- a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/CosmosDbProperties.java +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/CosmosProperties.java @@ -8,7 +8,7 @@ @Getter @Setter @ConfigurationProperties(prefix = "azure.cosmosdb") -class CosmosDbProperties { +class CosmosProperties { private String uri; diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Vet.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Vet.java index 73d33bc314..d731db9e72 100644 --- a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Vet.java +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Vet.java @@ -15,7 +15,7 @@ */ package org.springframework.samples.petclinic.vets.model; -import com.microsoft.azure.spring.data.cosmosdb.core.mapping.Document; +import com.azure.spring.data.cosmos.core.mapping.Container; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.NoArgsConstructor; @@ -27,7 +27,11 @@ import javax.persistence.Id; import javax.validation.constraints.NotEmpty; import javax.xml.bind.annotation.XmlElement; -import java.util.*; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; /** * Simple JavaBean domain object representing a veterinarian. @@ -39,7 +43,7 @@ * @author Maciej Szarlinski */ -@Document(collection = "vets") +@Container(containerName = "vets") @Builder(builderMethodName = "vet") @AllArgsConstructor @NoArgsConstructor diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetRepository.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetRepository.java index fa6a8e3526..2b77e1dc15 100644 --- a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetRepository.java +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetRepository.java @@ -15,8 +15,7 @@ */ package org.springframework.samples.petclinic.vets.model; -import com.microsoft.azure.spring.data.cosmosdb.repository.ReactiveCosmosRepository; -import org.springframework.data.rest.core.annotation.RepositoryRestResource; +import com.azure.spring.data.cosmos.repository.CosmosRepository; import org.springframework.stereotype.Repository; /** @@ -30,6 +29,5 @@ * @author Maciej Szarlinski */ @Repository -@RepositoryRestResource(collectionResourceRel = "vet", path = "vet") -public interface VetRepository extends ReactiveCosmosRepository { +public interface VetRepository extends CosmosRepository { } diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetRepositoryConfiguration.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetRepositoryConfiguration.java deleted file mode 100644 index 7f49bdbeed..0000000000 --- a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetRepositoryConfiguration.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.springframework.samples.petclinic.vets.model; - -import com.azure.data.cosmos.CosmosKeyCredential; -import com.microsoft.azure.spring.data.cosmosdb.config.AbstractCosmosConfiguration; -import com.microsoft.azure.spring.data.cosmosdb.config.CosmosDBConfig; -import com.microsoft.azure.spring.data.cosmosdb.core.ResponseDiagnostics; -import com.microsoft.azure.spring.data.cosmosdb.core.ResponseDiagnosticsProcessor; -import com.microsoft.azure.spring.data.cosmosdb.repository.config.EnableReactiveCosmosRepositories; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; - -import javax.annotation.Nullable; - - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - - -@Configuration -@EnableConfigurationProperties(CosmosDbProperties.class) -@EnableReactiveCosmosRepositories -@Slf4j -@PropertySource("classpath:application.properties") -public class VetRepositoryConfiguration extends AbstractCosmosConfiguration { - // private static final Logger logger = LoggerFactory.getLogger(AppConfiguration.class); - - @Autowired - private CosmosDbProperties properties; - - private CosmosKeyCredential cosmosKeyCredential; - - @Bean - public CosmosDBConfig cosmosDbConfig() { - this.cosmosKeyCredential = new CosmosKeyCredential(properties.getKey()); - CosmosDBConfig cosmosDBConfig = CosmosDBConfig.builder(properties.getUri(), cosmosKeyCredential, - properties.getDatabase()).build(); - cosmosDBConfig.setPopulateQueryMetrics(properties.isPopulateQueryMetrics()); - cosmosDBConfig.setResponseDiagnosticsProcessor(new ResponseDiagnosticsProcessorImplementation()); - return cosmosDBConfig; - } - - public void switchToSecondaryKey() { - this.cosmosKeyCredential.key(properties.getSecondaryKey()); - } - - public void switchToPrimaryKey() { - this.cosmosKeyCredential.key(properties.getKey()); - } - - public void switchKey(String key) { - this.cosmosKeyCredential.key(key); - } - - private static class ResponseDiagnosticsProcessorImplementation implements ResponseDiagnosticsProcessor { - - @Override - public void processResponseDiagnostics(@Nullable ResponseDiagnostics responseDiagnostics) { - log.info("Response Diagnostics {}", responseDiagnostics); - } - } -} diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetsAppConfiguration.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetsAppConfiguration.java new file mode 100644 index 0000000000..05a8c4c4a5 --- /dev/null +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/VetsAppConfiguration.java @@ -0,0 +1,76 @@ +package org.springframework.samples.petclinic.vets.model; + + +import com.azure.core.credential.AzureKeyCredential; +import com.azure.cosmos.CosmosClientBuilder; +import com.azure.cosmos.DirectConnectionConfig; +import com.azure.cosmos.GatewayConnectionConfig; +import com.azure.spring.data.cosmos.config.AbstractCosmosConfiguration; +import com.azure.spring.data.cosmos.config.CosmosConfig; +import com.azure.spring.data.cosmos.core.ResponseDiagnostics; +import com.azure.spring.data.cosmos.core.ResponseDiagnosticsProcessor; +import com.azure.spring.data.cosmos.repository.config.EnableCosmosRepositories; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.lang.Nullable; + + +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + + +@Configuration +@EnableConfigurationProperties(CosmosProperties.class) +@EnableCosmosRepositories +@PropertySource("classpath:application.properties") +public class VetsAppConfiguration extends AbstractCosmosConfiguration { + + private static final Logger logger = LoggerFactory.getLogger(VetsAppConfiguration.class); + + @Autowired + private CosmosProperties properties; + + private AzureKeyCredential azureKeyCredential; + + @Bean + public CosmosClientBuilder cosmosClientBuilder() { + this.azureKeyCredential = new AzureKeyCredential(properties.getKey()); + DirectConnectionConfig directConnectionConfig = new DirectConnectionConfig(); + GatewayConnectionConfig gatewayConnectionConfig = new GatewayConnectionConfig(); + return new CosmosClientBuilder() + .endpoint(properties.getUri()) + .credential(azureKeyCredential) + .directMode(directConnectionConfig, gatewayConnectionConfig); + } + + @Override + public CosmosConfig cosmosConfig() { + return CosmosConfig.builder() + .enableQueryMetrics(properties.isPopulateQueryMetrics()) + .responseDiagnosticsProcessor(new ResponseDiagnosticsProcessorImplementation()) + .build(); + } + + + public void switchToSecondaryKey() { + this.azureKeyCredential.update(properties.getSecondaryKey()); + } + + @Override + protected String getDatabaseName() { + return properties.getDatabase(); + } + + private static class ResponseDiagnosticsProcessorImplementation implements ResponseDiagnosticsProcessor { + + @Override + public void processResponseDiagnostics(@Nullable ResponseDiagnostics responseDiagnostics) { + logger.info("Response Diagnostics {}", responseDiagnostics); + } + } +} diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/web/VetResource.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/web/VetResource.java index 9c3733931f..d6d19611bd 100644 --- a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/web/VetResource.java +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/web/VetResource.java @@ -15,13 +15,18 @@ */ package org.springframework.samples.petclinic.vets.web; +import io.micrometer.core.annotation.Timed; import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.samples.petclinic.vets.model.Vet; import org.springframework.samples.petclinic.vets.model.VetRepository; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import reactor.core.publisher.Flux; + +import java.util.ArrayList; +import java.util.List; /** * @author Juergen Hoeller @@ -33,13 +38,18 @@ @RequestMapping("/vets") @RestController @RequiredArgsConstructor +@Timed("petclinic.vet") +@Slf4j class VetResource { + private final VetRepository vetRepository; @GetMapping - public Flux showResourcesVetList() { - return vetRepository.findAll(); + public List showResourcesVetList() { + List list = new ArrayList<>(); + vetRepository.findAll().forEach(list::add); + return list; } } diff --git a/spring-petclinic-vets-service/src/main/resources/application.properties b/spring-petclinic-vets-service/src/main/resources/application.properties index 68f17e806f..9c28c4c021 100644 --- a/spring-petclinic-vets-service/src/main/resources/application.properties +++ b/spring-petclinic-vets-service/src/main/resources/application.properties @@ -1,2 +1,5 @@ -spring.profiles.active=production spring.cache.cache-names=vets +azure.cosmosdb.uri=${ACCOUNT_HOST} +azure.cosmosdb.key=${ACCOUNT_KEY} +azure.cosmosdb.secondaryKey=${SECONDARY_ACCOUNT_KEY} + diff --git a/spring-petclinic-vets-service/src/main/resources/bootstrap.yml b/spring-petclinic-vets-service/src/main/resources/bootstrap.yml index 59c6dd2588..f7a54171bf 100644 --- a/spring-petclinic-vets-service/src/main/resources/bootstrap.yml +++ b/spring-petclinic-vets-service/src/main/resources/bootstrap.yml @@ -1,3 +1,7 @@ +eureka: + client: + register-with-eureka: true + fetch-registry: true spring: cloud: config: @@ -10,3 +14,11 @@ spring: cloud: config: uri: http://config-server:8888 +--- +spring: + profiles: local + cloud: + config: + uri: http://localhost:8888 +server: + port: 8082 diff --git a/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceTest.java b/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceTest.java index ad9415e0d2..81d2da8c3e 100644 --- a/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceTest.java +++ b/spring-petclinic-vets-service/src/test/java/org/springframework/samples/petclinic/vets/web/VetResourceTest.java @@ -22,6 +22,7 @@ import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; import org.springframework.samples.petclinic.vets.model.Vet; import org.springframework.samples.petclinic.vets.model.VetRepository; import org.springframework.test.context.ActiveProfiles; @@ -34,6 +35,8 @@ import java.util.Arrays; import java.util.List; +import static java.util.Arrays.asList; +import static org.mockito.BDDMockito.given; import static org.mockito.Mockito.when; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.asyncDispatch; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; @@ -58,15 +61,13 @@ class VetResourceTest { @Test void shouldGetAListOfVets() throws Exception { - List list = Arrays.asList(Vet.vet().id(1).build(), Vet.vet().id(2).build() + List vet = Arrays.asList(Vet.vet().id(1).build(), Vet.vet().id(2).build() ); - when(vetRepository.findAll()).thenReturn(Flux.fromIterable(list)); + given(vetRepository.findAll()).willReturn(vet); - MvcResult mvcresult = mvc.perform(get("/vets")) + mvc.perform(get("/vets").accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()) - .andReturn(); - mvc.perform(asyncDispatch(mvcresult)) .andExpect(jsonPath("$[0].id").value(1)); } } diff --git a/spring-petclinic-visits-service/pom.xml b/spring-petclinic-visits-service/pom.xml index 44a2f069ea..b0c7af8ca8 100644 --- a/spring-petclinic-visits-service/pom.xml +++ b/spring-petclinic-visits-service/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 2.2.1 + 2.3.6 @@ -26,11 +26,10 @@ spring-boot-starter-actuator - com.microsoft.azure - spring-data-cosmosdb - 2.3.0 + com.azure + azure-spring-data-cosmos + 3.2.0 - org.springframework.data spring-data-rest-webmvc @@ -50,10 +49,10 @@ org.springframework.cloud spring-cloud-starter-config - - - - + + org.springframework.cloud + spring-cloud-starter-netflix-eureka-client + org.springframework.cloud spring-cloud-starter-sleuth @@ -82,6 +81,12 @@ io.micrometer micrometer-registry-prometheus + + javax.validation + validation-api + + + @@ -103,6 +108,12 @@ junit test + + com.azure + azure-spring-data-cosmos + 3.2.0 + compile + diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/PopulateSeedData.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/PopulateSeedData.java index 9615e7931f..dded903816 100644 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/PopulateSeedData.java +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/PopulateSeedData.java @@ -1,6 +1,6 @@ package org.springframework.samples.petclinic.visits; -import com.google.common.collect.Lists; +import com.azure.cosmos.implementation.guava25.collect.Lists; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -20,7 +20,7 @@ public class PopulateSeedData { private static final Logger logger = LoggerFactory.getLogger(PopulateSeedData.class); @Autowired - private VisitRepository repository; + private VisitRepository visitRepository; // @PostConstruct // @Order(2) // not evaluated by Spring @@ -35,9 +35,6 @@ public void populateSeedData() throws ParseException { final Visit visit3 = new Visit(3, 8, new SimpleDateFormat("yyyy-dd-mm").parse("2009-06-04"), "neutered"); final Visit visit4 = new Visit(4, 7, new SimpleDateFormat("yyyy-dd-mm").parse("2008-09-04"), "spayed"); - Flux temp = this.repository.saveAll(Lists.newArrayList(visit1, visit2, visit3, visit4)); - if (temp != null) { - temp.collectList().block(); - } + this.visitRepository.saveAll(Lists.newArrayList(visit1, visit2, visit3, visit4)); } } diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/VisitsServiceApplication.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/VisitsServiceApplication.java index 5b781dadd6..ab40adcc22 100644 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/VisitsServiceApplication.java +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/VisitsServiceApplication.java @@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.samples.petclinic.visits.model.VisitRepository; @@ -29,7 +30,7 @@ public class VisitsServiceApplication { @Autowired - private VisitRepository repository; + private VisitRepository visitRepository; public static void main(String[] args) { SpringApplication.run(VisitsServiceApplication.class, args); diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/CosmosDbProperties.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/CosmosProperties.java similarity index 93% rename from spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/CosmosDbProperties.java rename to spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/CosmosProperties.java index cca014997d..ad70d03fd7 100644 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/CosmosDbProperties.java +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/CosmosProperties.java @@ -8,7 +8,7 @@ @Getter @Setter @ConfigurationProperties(prefix = "azure.cosmosdb") -class CosmosDbProperties { +class CosmosProperties { private String uri; diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/Visit.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/Visit.java index 86f79a36f7..2a40993476 100644 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/Visit.java +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/Visit.java @@ -15,8 +15,8 @@ */ package org.springframework.samples.petclinic.visits.model; +import com.azure.spring.data.cosmos.core.mapping.Container; import com.fasterxml.jackson.annotation.JsonFormat; -import com.microsoft.azure.spring.data.cosmosdb.core.mapping.Document; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.NoArgsConstructor; @@ -34,7 +34,7 @@ * @author Maciej Szarlinski */ -@Document(collection = "visits") +@Container(containerName = "visits") @Builder(builderMethodName = "visit") @AllArgsConstructor @NoArgsConstructor diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitRepository.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitRepository.java index 6a77a3b6cd..5037e10cb5 100644 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitRepository.java +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitRepository.java @@ -15,8 +15,7 @@ */ package org.springframework.samples.petclinic.visits.model; -import com.microsoft.azure.spring.data.cosmosdb.repository.ReactiveCosmosRepository; -import org.springframework.data.rest.core.annotation.RepositoryRestResource; +import com.azure.spring.data.cosmos.repository.CosmosRepository; import org.springframework.stereotype.Repository; import reactor.core.publisher.Flux; @@ -34,10 +33,11 @@ * @author Maciej Szarlinski */ @Repository -@RepositoryRestResource(collectionResourceRel = "visit", path = "visit") -public interface VisitRepository extends ReactiveCosmosRepository { +public interface VisitRepository extends CosmosRepository { +/* Flux findByPetId(int petId); Flux findByPetIdIn(Collection petIds); +*/ } diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitRepositoryConfiguration.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitRepositoryConfiguration.java deleted file mode 100644 index dc00a97065..0000000000 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitRepositoryConfiguration.java +++ /dev/null @@ -1,65 +0,0 @@ -package org.springframework.samples.petclinic.visits.model; - -import com.azure.data.cosmos.CosmosKeyCredential; -import com.microsoft.azure.spring.data.cosmosdb.config.AbstractCosmosConfiguration; -import com.microsoft.azure.spring.data.cosmosdb.config.CosmosDBConfig; -import com.microsoft.azure.spring.data.cosmosdb.core.ResponseDiagnostics; -import com.microsoft.azure.spring.data.cosmosdb.core.ResponseDiagnosticsProcessor; -import com.microsoft.azure.spring.data.cosmosdb.repository.config.EnableReactiveCosmosRepositories; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.PropertySource; - -import javax.annotation.Nullable; - - -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. - - -@Configuration -@EnableConfigurationProperties(CosmosDbProperties.class) -@EnableReactiveCosmosRepositories -@Slf4j -@PropertySource("classpath:application.properties") -public class VisitRepositoryConfiguration extends AbstractCosmosConfiguration { - // private static final Logger logger = LoggerFactory.getLogger(AppConfiguration.class); - - @Autowired - private CosmosDbProperties properties; - - private CosmosKeyCredential cosmosKeyCredential; - - @Bean - public CosmosDBConfig cosmosDbConfig() { - this.cosmosKeyCredential = new CosmosKeyCredential(properties.getKey()); - CosmosDBConfig cosmosDBConfig = CosmosDBConfig.builder(properties.getUri(), cosmosKeyCredential, - properties.getDatabase()).build(); - cosmosDBConfig.setPopulateQueryMetrics(properties.isPopulateQueryMetrics()); - cosmosDBConfig.setResponseDiagnosticsProcessor(new ResponseDiagnosticsProcessorImplementation()); - return cosmosDBConfig; - } - - public void switchToSecondaryKey() { - this.cosmosKeyCredential.key(properties.getSecondaryKey()); - } - - public void switchToPrimaryKey() { - this.cosmosKeyCredential.key(properties.getKey()); - } - - public void switchKey(String key) { - this.cosmosKeyCredential.key(key); - } - - private static class ResponseDiagnosticsProcessorImplementation implements ResponseDiagnosticsProcessor { - - @Override - public void processResponseDiagnostics(@Nullable ResponseDiagnostics responseDiagnostics) { - log.info("Response Diagnostics {}", responseDiagnostics); - } - } -} diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitsAppConfiguration.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitsAppConfiguration.java new file mode 100644 index 0000000000..ec971f60bd --- /dev/null +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/VisitsAppConfiguration.java @@ -0,0 +1,79 @@ +package org.springframework.samples.petclinic.visits.model; +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. +/** + * WARNING: MODIFYING THIS FILE WILL REQUIRE CORRESPONDING UPDATES TO README.md FILE. LINE NUMBERS + * ARE USED TO EXTRACT APPROPRIATE CODE SEGMENTS FROM THIS FILE. ADD NEW CODE AT THE BOTTOM TO AVOID CHANGING + * LINE NUMBERS OF EXISTING CODE SAMPLES. + */ + +import com.azure.core.credential.AzureKeyCredential; +import com.azure.cosmos.CosmosClientBuilder; +import com.azure.cosmos.DirectConnectionConfig; +import com.azure.cosmos.GatewayConnectionConfig; +import com.azure.spring.data.cosmos.config.AbstractCosmosConfiguration; +import com.azure.spring.data.cosmos.config.CosmosConfig; +import com.azure.spring.data.cosmos.core.ResponseDiagnostics; +import com.azure.spring.data.cosmos.core.ResponseDiagnosticsProcessor; +import com.azure.spring.data.cosmos.repository.config.EnableCosmosRepositories; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.PropertySource; +import org.springframework.lang.Nullable; +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT License. + +@Configuration +@EnableConfigurationProperties(CosmosProperties.class) +@EnableCosmosRepositories +@PropertySource("classpath:application.properties") +public class VisitsAppConfiguration extends AbstractCosmosConfiguration { + + private static final Logger logger = LoggerFactory.getLogger(VisitsAppConfiguration.class); + + @Autowired + private CosmosProperties properties; + + private AzureKeyCredential azureKeyCredential; + + @Bean + public CosmosClientBuilder cosmosClientBuilder() { + this.azureKeyCredential = new AzureKeyCredential(properties.getKey()); + DirectConnectionConfig directConnectionConfig = new DirectConnectionConfig(); + GatewayConnectionConfig gatewayConnectionConfig = new GatewayConnectionConfig(); + return new CosmosClientBuilder() + .endpoint(properties.getUri()) + .credential(azureKeyCredential) + .directMode(directConnectionConfig, gatewayConnectionConfig); + } + + @Override + public CosmosConfig cosmosConfig() { + return CosmosConfig.builder() + .enableQueryMetrics(properties.isPopulateQueryMetrics()) + .responseDiagnosticsProcessor(new ResponseDiagnosticsProcessorImplementation()) + .build(); + } + + + public void switchToSecondaryKey() { + this.azureKeyCredential.update(properties.getSecondaryKey()); + } + + @Override + protected String getDatabaseName() { + return properties.getDatabase(); + } + + private static class ResponseDiagnosticsProcessorImplementation implements ResponseDiagnosticsProcessor { + + @Override + public void processResponseDiagnostics(@Nullable ResponseDiagnostics responseDiagnostics) { + logger.info("Response Diagnostics {}", responseDiagnostics); + } + } +} diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java index 73d2813ce6..9b6f554d1b 100644 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java @@ -15,6 +15,7 @@ */ package org.springframework.samples.petclinic.visits.web; +import com.azure.cosmos.implementation.guava25.collect.Lists; import io.micrometer.core.annotation.Timed; import lombok.RequiredArgsConstructor; import lombok.Value; @@ -24,10 +25,10 @@ import org.springframework.samples.petclinic.visits.model.VisitRepository; import org.springframework.web.bind.annotation.*; import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; import javax.validation.Valid; import java.util.List; +import java.util.Optional; /** * @author Juergen Hoeller @@ -46,7 +47,7 @@ class VisitResource { @PostMapping("owners/*/pets/{petId}/visits") @ResponseStatus(HttpStatus.CREATED) - Mono create( + Visit create( @Valid @RequestBody Visit visit, @PathVariable("petId") int petId) { @@ -56,14 +57,14 @@ Mono create( } @GetMapping("owners/*/pets/{petId}/visits") - Flux visits(@PathVariable("petId") int petId) { - return visitRepository.findByPetId(petId); + Optional visits(@PathVariable("petId") int petId) { + return visitRepository.findById(petId); } @GetMapping("pets/visits") Visits visitsMultiGet(@RequestParam("petId") List petIds) { - final Flux byPetIdIn = visitRepository.findByPetIdIn(petIds); - return new Visits(byPetIdIn.collectList().block()); + Iterable visitIterable = visitRepository.findAllById(petIds); + return new Visits(Lists.newArrayList(visitIterable)); } @Value diff --git a/spring-petclinic-visits-service/src/main/resources/application.properties b/spring-petclinic-visits-service/src/main/resources/application.properties index e69de29bb2..6167b80330 100644 --- a/spring-petclinic-visits-service/src/main/resources/application.properties +++ b/spring-petclinic-visits-service/src/main/resources/application.properties @@ -0,0 +1,7 @@ +azure.cosmosdb.uri=${ACCOUNT_HOST} +azure.cosmosdb.key=${ACCOUNT_KEY} +azure.cosmosdb.secondaryKey=${SECONDARY_ACCOUNT_KEY} + +azure.cosmosdb.database=end2endsample +# Populate query metrics +cosmos.queryMetricsEnabled=true From 4375d1580e5949d5e6403c3ca39c377577ef9ad6 Mon Sep 17 00:00:00 2001 From: "Vaijanath Angadihiremath (VJ)" Date: Fri, 22 Jan 2021 12:49:09 -0800 Subject: [PATCH 03/21] Missing file --- .../samples/petclinic/visits/web/VisitResourceTest.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/web/VisitResourceTest.java b/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/web/VisitResourceTest.java index 5d521d22aa..f1b19aa450 100644 --- a/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/web/VisitResourceTest.java +++ b/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/web/VisitResourceTest.java @@ -43,8 +43,7 @@ void shouldFetchVisits() throws Exception { List list = Arrays.asList(visit().id(1).petId(111).build(), visit().id(2).petId(222).build() ); - Flux sequence = Flux.fromIterable(list); - when(visitRepository.findByPetIdIn(asList(111, 222))).thenReturn(sequence); + when(visitRepository.findAllById(asList(111, 222))).thenReturn(list); mvc.perform(get("/pets/visits?petId=111,222")) .andExpect(status().isOk()) From fa4d6986748190466d2356ddd140ca604218bd24 Mon Sep 17 00:00:00 2001 From: "Vaijanath Angadihiremath (VJ)" Date: Fri, 22 Jan 2021 12:54:02 -0800 Subject: [PATCH 04/21] Updating the application properties file --- .../src/main/resources/application.properties | 9 ++--- .../src/main/resources/application.properties | 3 ++ .../src/main/resources/bootstrap.yml | 37 +++++++++++++------ 3 files changed, 31 insertions(+), 18 deletions(-) diff --git a/spring-petclinic-customers-service/src/main/resources/application.properties b/spring-petclinic-customers-service/src/main/resources/application.properties index 4d4819c9e2..6167b80330 100644 --- a/spring-petclinic-customers-service/src/main/resources/application.properties +++ b/spring-petclinic-customers-service/src/main/resources/application.properties @@ -1,10 +1,7 @@ -#azure.cosmosdb.uri=${ACCOUNT_HOST} -#azure.cosmosdb.key=${ACCOUNT_KEY} -#azure.cosmosdb.secondaryKey=${SECONDARY_ACCOUNT_KEY} +azure.cosmosdb.uri=${ACCOUNT_HOST} +azure.cosmosdb.key=${ACCOUNT_KEY} +azure.cosmosdb.secondaryKey=${SECONDARY_ACCOUNT_KEY} -azure.cosmosdb.uri=https://end2endsample.documents.azure.com:443/ -azure.cosmosdb.key=udTrHTEzNNgxhtAuNOWxOPQJFtlKklHugh2GxJcl45EDs1BQl4RGxHJIZUV0cggzaRNV5lAnvgBYSLRCIXxqzw== -azure.cosmosdb.secondaryKey=FRvd8TPMHBSpjepu0kQVudiML5PoDboy2EfIfHLLVOZEYfy4BGQvC5W36eMWGC8r9v0NG4tbwSyaA6ehZkfNXg== azure.cosmosdb.database=end2endsample # Populate query metrics cosmos.queryMetricsEnabled=true diff --git a/spring-petclinic-vets-service/src/main/resources/application.properties b/spring-petclinic-vets-service/src/main/resources/application.properties index 9c28c4c021..be62836ed1 100644 --- a/spring-petclinic-vets-service/src/main/resources/application.properties +++ b/spring-petclinic-vets-service/src/main/resources/application.properties @@ -3,3 +3,6 @@ azure.cosmosdb.uri=${ACCOUNT_HOST} azure.cosmosdb.key=${ACCOUNT_KEY} azure.cosmosdb.secondaryKey=${SECONDARY_ACCOUNT_KEY} +azure.cosmosdb.database=end2endsample +# Populate query metrics +cosmos.queryMetricsEnabled=true diff --git a/spring-petclinic-visits-service/src/main/resources/bootstrap.yml b/spring-petclinic-visits-service/src/main/resources/bootstrap.yml index e7e2876e53..bc2cdf9bf3 100644 --- a/spring-petclinic-visits-service/src/main/resources/bootstrap.yml +++ b/spring-petclinic-visits-service/src/main/resources/bootstrap.yml @@ -1,12 +1,25 @@ -#spring: -# cloud: -# config: -# uri: http://localhost:8888 -# application: -# name: visits-service -#--- -#spring: -# profiles: docker -# cloud: -# config: -# uri: http://config-server:8888 +eureka: + client: + register-with-eureka: true + fetch-registry: true +spring: + cloud: + config: + uri: http://localhost:8888 + application: + name: visits-service +--- +spring: + profiles: docker + cloud: + config: + uri: http://config-server:8888 + +--- +spring: + profiles: local + cloud: + config: + uri: http://localhost:8888 +server: + port: 8083 From 3e3fa0fc12aed8d1558e65a9c272d122e9dae6a6 Mon Sep 17 00:00:00 2001 From: "Vaijanath Angadihiremath (VJ)" Date: Tue, 26 Jan 2021 00:00:35 -0800 Subject: [PATCH 05/21] Fixing the docker profile and incorporating review comments --- README-petclinic.md | 2 +- docker-compose.yml | 198 +-- docker/Dockerfile | 50 +- docker/grafana/Dockerfile | 8 +- .../grafana-petclinic-dashboard.json | 1544 ++++++++--------- docker/grafana/grafana.ini | 54 +- .../grafana/provisioning/dashboards/all.yml | 22 +- .../grafana/provisioning/datasources/all.yml | 26 +- docker/prometheus/Dockerfile | 4 +- docker/prometheus/prometheus.yml | 64 +- .../src/main/resources/application.yml | 12 +- .../CustomersServiceApplication.java | 6 - .../customers/model/PetRepository.java | 11 - .../petclinic/customers/model/PetType.java | 50 - .../petclinic/customers/web/PetRequest.java | 2 +- .../petclinic/customers/web/PetResource.java | 10 +- .../vets/VetsServiceApplication.java | 3 - .../visits/VisitsServiceApplication.java | 3 - 18 files changed, 1000 insertions(+), 1069 deletions(-) delete mode 100644 spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetType.java diff --git a/README-petclinic.md b/README-petclinic.md index fbe77bf19c..03cbf9ee96 100644 --- a/README-petclinic.md +++ b/README-petclinic.md @@ -3,7 +3,7 @@ [![Build Status](https://travis-ci.org/spring-petclinic/spring-petclinic-microservices.svg?branch=master)](https://travis-ci.org/spring-petclinic/spring-petclinic-microservices/) [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) This microservices branch was initially derived from [AngularJS version](https://github.com/spring-petclinic/spring-petclinic-angular1) to demonstrate how to split sample Spring application into [microservices](http://www.martinfowler.com/articles/microservices.html). -To achieve that goal we use Spring Cloud Gatay, Spring Cloud Circuit Breaker, Spring Cloud Config, Spring Cloud Sleuth, Resilience4j, Micrometer +To achieve that goal we use Spring Cloud Gateway, Spring Cloud Circuit Breaker, Spring Cloud Config, Spring Cloud Sleuth, Resilience4j, Micrometer and the Eureka Service Discovery from the [Spring Cloud Netflix](https://github.com/spring-cloud/spring-cloud-netflix) technology stack. ## Starting services locally without Docker diff --git a/docker-compose.yml b/docker-compose.yml index 93c0a42d34..3d4f33bf2d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,99 +1,99 @@ -version: '2' - -services: - config-server: - image: springcommunity/spring-petclinic-config-server - container_name: config-server - mem_limit: 512M - ports: - - 8888:8888 - - discovery-server: - image: springcommunity/spring-petclinic-discovery-server - container_name: discovery-server - mem_limit: 512M - depends_on: - - config-server - entrypoint: ["./dockerize","-wait=tcp://config-server:8888","-timeout=60s","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] - ports: - - 8761:8761 - - customers-service: - image: springcommunity/spring-petclinic-customers-service - container_name: customers-service - mem_limit: 512M - depends_on: - - config-server - - discovery-server - entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] - ports: - - 8081:8081 - - visits-service: - image: springcommunity/spring-petclinic-visits-service - container_name: visits-service - mem_limit: 512M - depends_on: - - config-server - - discovery-server - entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] - ports: - - 8082:8082 - - vets-service: - image: springcommunity/spring-petclinic-vets-service - container_name: vets-service - mem_limit: 512M - depends_on: - - config-server - - discovery-server - entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] - ports: - - 8083:8083 - - api-gateway: - image: springcommunity/spring-petclinic-api-gateway - container_name: api-gateway - mem_limit: 512M - depends_on: - - config-server - - discovery-server - entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] - ports: - - 8080:8080 - - tracing-server: - image: openzipkin/zipkin - container_name: tracing-server - mem_limit: 512M - environment: - - JAVA_OPTS=-XX:+UnlockExperimentalVMOptions -Djava.security.egd=file:/dev/./urandom - ports: - - 9411:9411 - - admin-server: - image: springcommunity/spring-petclinic-admin-server - container_name: admin-server - mem_limit: 512M - depends_on: - - config-server - - discovery-server - entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] - ports: - - 9090:9090 - - ## Grafana / Prometheus - - grafana-server: - build: ./docker/grafana - container_name: grafana-server - mem_limit: 256M - ports: - - 3000:3000 - - prometheus-server: - build: ./docker/prometheus - container_name: prometheus-server - mem_limit: 256M - ports: - - 9091:9090 +version: '2' + +services: + config-server: + image: springcommunity/spring-petclinic-config-server + container_name: config-server + mem_limit: 512M + ports: + - 8888:8888 + + discovery-server: + image: springcommunity/spring-petclinic-discovery-server + container_name: discovery-server + mem_limit: 512M + depends_on: + - config-server + entrypoint: ["./dockerize","-wait=tcp://config-server:8888","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] + ports: + - 8761:8761 + + customers-service: + image: springcommunity/spring-petclinic-customers-service + container_name: customers-service + mem_limit: 512M + depends_on: + - config-server + - discovery-server + entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] + ports: + - 8081:8081 + + visits-service: + image: springcommunity/spring-petclinic-visits-service + container_name: visits-service + mem_limit: 512M + depends_on: + - config-server + - discovery-server + entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] + ports: + - 8082:8082 + + vets-service: + image: springcommunity/spring-petclinic-vets-service + container_name: vets-service + mem_limit: 512M + depends_on: + - config-server + - discovery-server + entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] + ports: + - 8083:8083 + + api-gateway: + image: springcommunity/spring-petclinic-api-gateway + container_name: api-gateway + mem_limit: 512M + depends_on: + - config-server + - discovery-server + entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] + ports: + - 8080:8080 + + tracing-server: + image: openzipkin/zipkin + container_name: tracing-server + mem_limit: 512M + environment: + - JAVA_OPTS=-XX:+UnlockExperimentalVMOptions -Djava.security.egd=file:/dev/./urandom + ports: + - 9411:9411 + + admin-server: + image: springcommunity/spring-petclinic-admin-server + container_name: admin-server + mem_limit: 512M + depends_on: + - config-server + - discovery-server + entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] + ports: + - 9090:9090 + + ## Grafana / Prometheus + + grafana-server: + build: ./docker/grafana + container_name: grafana-server + mem_limit: 256M + ports: + - 3000:3000 + + prometheus-server: + build: ./docker/prometheus + container_name: prometheus-server + mem_limit: 256M + ports: + - 9091:9090 diff --git a/docker/Dockerfile b/docker/Dockerfile index 52aef406eb..84d25c6baa 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,19 +1,31 @@ -FROM openjdk:8-jre-alpine -VOLUME /tmp - -# Download dockerize and cache that layer -ARG DOCKERIZE_VERSION -RUN wget -O dockerize.tar.gz https://github.com/jwilder/dockerize/releases/download/${DOCKERIZE_VERSION}/dockerize-alpine-linux-amd64-${DOCKERIZE_VERSION}.tar.gz -RUN tar xzf dockerize.tar.gz -RUN chmod +x dockerize - -# This is the first layer that won't be cached -ARG ARTIFACT_NAME -ADD ${ARTIFACT_NAME}.jar /app.jar - -ARG EXPOSED_PORT -EXPOSE ${EXPOSED_PORT} - -ENV SPRING_PROFILES_ACTIVE docker - -ENTRYPOINT ["java", "-XX:+UnlockExperimentalVMOptions", "-XX:+UseCGroupMemoryLimitForHeap", "-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] +FROM openjdk:11-jre as builder +WORKDIR application +ARG ARTIFACT_NAME +COPY ${ARTIFACT_NAME}.jar application.jar +RUN java -Djarmode=layertools -jar application.jar extract + +# Download dockerize and cache that layer +ARG DOCKERIZE_VERSION +RUN wget -O dockerize.tar.gz https://github.com/jwilder/dockerize/releases/download/${DOCKERIZE_VERSION}/dockerize-alpine-linux-amd64-${DOCKERIZE_VERSION}.tar.gz +RUN tar xzf dockerize.tar.gz +RUN chmod +x dockerize + + +# wget is not installed on adoptopenjdk:11-jre-hotspot +FROM adoptopenjdk:11-jre-hotspot + +WORKDIR application + +# Dockerize +COPY --from=builder application/dockerize ./ + +ARG EXPOSED_PORT +EXPOSE ${EXPOSED_PORT} + +ENV SPRING_PROFILES_ACTIVE docker + +COPY --from=builder application/dependencies/ ./ +COPY --from=builder application/spring-boot-loader/ ./ +COPY --from=builder application/snapshot-dependencies/ ./ +COPY --from=builder application/application/ ./ +ENTRYPOINT ["java", "org.springframework.boot.loader.JarLauncher"] diff --git a/docker/grafana/Dockerfile b/docker/grafana/Dockerfile index c11b3d911e..4f8de4f90d 100644 --- a/docker/grafana/Dockerfile +++ b/docker/grafana/Dockerfile @@ -1,4 +1,4 @@ -FROM grafana/grafana:5.2.4 -ADD ./provisioning /etc/grafana/provisioning -ADD ./grafana.ini /etc/grafana/grafana.ini -ADD ./dashboards /var/lib/grafana/dashboards +FROM grafana/grafana:5.2.4 +ADD ./provisioning /etc/grafana/provisioning +ADD ./grafana.ini /etc/grafana/grafana.ini +ADD ./dashboards /var/lib/grafana/dashboards diff --git a/docker/grafana/dashboards/grafana-petclinic-dashboard.json b/docker/grafana/dashboards/grafana-petclinic-dashboard.json index ccd51d1bfa..9c12fae5e5 100644 --- a/docker/grafana/dashboards/grafana-petclinic-dashboard.json +++ b/docker/grafana/dashboards/grafana-petclinic-dashboard.json @@ -1,772 +1,772 @@ -{ - "__requires": [ - { - "type": "grafana", - "id": "grafana", - "name": "Grafana", - "version": "5.0.0" - }, - { - "type": "panel", - "id": "graph", - "name": "Graph", - "version": "5.0.0" - }, - { - "type": "datasource", - "id": "prometheus", - "name": "Prometheus", - "version": "5.0.0" - }, - { - "type": "panel", - "id": "singlestat", - "name": "Singlestat", - "version": "5.0.0" - } - ], - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": "-- Grafana --", - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "gnetId": null, - "graphTooltip": 0, - "id": null, - "iteration": 1539967676482, - "links": [], - "panels": [ - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, - "gridPos": { - "h": 9, - "w": 12, - "x": 0, - "y": 0 - }, - "id": 11, - "legend": { - "avg": false, - "current": true, - "max": false, - "min": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(http_server_requests_seconds_sum{status!~\"5..\"}[1m]))/sum(rate(http_server_requests_seconds_count{ status!~\"5..\"}[1m]))", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "HTTP - AVG", - "refId": "A" - }, - { - "expr": "max(http_server_requests_seconds_max{status!~\"5..\"})", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "HTTP - MAX", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "HTTP Request Latency", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "decimals": null, - "format": "s", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ] - }, - { - "aliasColors": {}, - "bars": false, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, - "gridPos": { - "h": 9, - "w": 12, - "x": 12, - "y": 0 - }, - "id": 9, - "legend": { - "avg": false, - "current": true, - "max": true, - "min": false, - "show": true, - "total": false, - "values": true - }, - "lines": true, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 0.5, - "points": true, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": false, - "steppedLine": false, - "targets": [ - { - "expr": "sum(rate(http_server_requests_seconds_count[1m]))", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "request - ok", - "refId": "A" - }, - { - "expr": "sum(rate(http_server_requests_seconds_count{status=~\"5..\"}[1m]))", - "format": "time_series", - "interval": "", - "intervalFactor": 1, - "legendFormat": "request - err", - "refId": "B" - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "HTTP Request Activity", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "ops", - "label": null, - "logBase": 1, - "max": null, - "min": "0", - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ] - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 0, - "y": 9 - }, - "id": 2, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(petclinic_owner_seconds_count{method=\"PUT\", status=\"204\"})", - "format": "time_series", - "instant": true, - "intervalFactor": 1, - "refId": "A" - } - ], - "thresholds": "", - "title": "Owners Updated", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 6, - "y": 9 - }, - "id": 3, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(petclinic_owner_seconds_count{method=\"POST\", status=\"201\"})", - "format": "time_series", - "instant": true, - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "thresholds": "", - "title": "Owners Created", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 12, - "y": 9 - }, - "id": 4, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "", - "targets": [ - { - "expr": "sum(petclinic_pet_seconds_count{method=\"POST\", status=\"201\"})", - "format": "time_series", - "instant": true, - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "thresholds": "", - "title": "Pets Created", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" - }, - { - "cacheTimeout": null, - "colorBackground": false, - "colorValue": false, - "colors": [ - "#299c46", - "rgba(237, 129, 40, 0.89)", - "#d44a3a" - ], - "datasource": "Prometheus", - "format": "none", - "gauge": { - "maxValue": 100, - "minValue": 0, - "show": false, - "thresholdLabels": false, - "thresholdMarkers": true - }, - "gridPos": { - "h": 5, - "w": 6, - "x": 18, - "y": 9 - }, - "id": 5, - "interval": null, - "links": [], - "mappingType": 1, - "mappingTypes": [ - { - "name": "value to text", - "value": 1 - }, - { - "name": "range to text", - "value": 2 - } - ], - "maxDataPoints": 100, - "nullPointMode": "connected", - "nullText": null, - "postfix": "", - "postfixFontSize": "50%", - "prefix": "", - "prefixFontSize": "50%", - "rangeMaps": [ - { - "from": "null", - "text": "N/A", - "to": "null" - } - ], - "sparkline": { - "fillColor": "rgba(31, 118, 189, 0.18)", - "full": false, - "lineColor": "rgb(31, 120, 193)", - "show": false - }, - "tableColumn": "Value", - "targets": [ - { - "expr": "sum(petclinic_visit_seconds_count{method=\"POST\", status=\"201\"})", - "format": "time_series", - "instant": true, - "intervalFactor": 1, - "legendFormat": "", - "refId": "A" - } - ], - "thresholds": "", - "title": "Visit Created", - "type": "singlestat", - "valueFontSize": "80%", - "valueMaps": [ - { - "op": "=", - "text": "N/A", - "value": "null" - } - ], - "valueName": "avg" - }, - { - "aliasColors": {}, - "bars": true, - "dashLength": 10, - "dashes": false, - "datasource": "Prometheus", - "fill": 1, - "gridPos": { - "h": 8, - "w": 24, - "x": 0, - "y": 14 - }, - "id": 7, - "legend": { - "alignAsTable": false, - "avg": false, - "current": false, - "hideEmpty": false, - "hideZero": true, - "max": true, - "min": false, - "rightSide": false, - "show": true, - "total": false, - "values": true - }, - "lines": false, - "linewidth": 1, - "links": [], - "nullPointMode": "null", - "percentage": false, - "pointradius": 5, - "points": false, - "renderer": "flot", - "seriesOverrides": [], - "spaceLength": 10, - "stack": true, - "steppedLine": false, - "targets": [ - { - "expr": "sum(petclinic_owner_seconds_count{method=\"POST\", status=\"201\"})", - "format": "time_series", - "instant": false, - "intervalFactor": 1, - "legendFormat": "owner create", - "refId": "A" - }, - { - "expr": "sum(petclinic_pet_seconds_count{method=\"POST\", status=\"201\"})", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "pet create", - "refId": "B" - }, - { - "expr": "sum(petclinic_visit_seconds_count{method=\"POST\", status=\"201\"})", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "visit create", - "refId": "C" - }, - { - "expr": "sum(petclinic_owner_seconds_count{method=\"PUT\", status=\"204\"})", - "format": "time_series", - "intervalFactor": 1, - "legendFormat": "owner update", - "refId": "D" - } - ], - "thresholds": [], - "timeFrom": null, - "timeShift": null, - "title": "SPC Business Histogram", - "tooltip": { - "shared": true, - "sort": 0, - "value_type": "individual" - }, - "type": "graph", - "xaxis": { - "buckets": null, - "mode": "time", - "name": null, - "show": true, - "values": [] - }, - "yaxes": [ - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - }, - { - "format": "short", - "label": null, - "logBase": 1, - "max": null, - "min": null, - "show": true - } - ] - } - ], - "refresh": "30s", - "schemaVersion": 16, - "style": "dark", - "tags": [], - "templating": { - "list": [ - { - "auto": true, - "auto_count": 1, - "auto_min": "10s", - "current": { - "text": "auto", - "value": "$__auto_interval_timeRange" - }, - "hide": 0, - "label": null, - "name": "timeRange", - "options": [ - { - "selected": true, - "text": "auto", - "value": "$__auto_interval_timeRange" - }, - { - "selected": false, - "text": "1m", - "value": "1m" - }, - { - "selected": false, - "text": "10m", - "value": "10m" - }, - { - "selected": false, - "text": "30m", - "value": "30m" - }, - { - "selected": false, - "text": "1h", - "value": "1h" - }, - { - "selected": false, - "text": "6h", - "value": "6h" - }, - { - "selected": false, - "text": "12h", - "value": "12h" - }, - { - "selected": false, - "text": "1d", - "value": "1d" - }, - { - "selected": false, - "text": "7d", - "value": "7d" - }, - { - "selected": false, - "text": "14d", - "value": "14d" - }, - { - "selected": false, - "text": "30d", - "value": "30d" - } - ], - "query": "1m,10m,30m,1h,6h,12h,1d,7d,14d,30d", - "refresh": 2, - "type": "interval" - } - ] - }, - "time": { - "from": "now-1h", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d" - ], - "time_options": [ - "5m", - "15m", - "1h", - "6h", - "12h", - "24h", - "2d", - "7d", - "30d" - ] - }, - "timezone": "", - "title": "Spring Petclinic Metrics", - "uid": "69JXeR0iw", - "version": 1 -} +{ + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "5.0.0" + }, + { + "type": "panel", + "id": "graph", + "name": "Graph", + "version": "5.0.0" + }, + { + "type": "datasource", + "id": "prometheus", + "name": "Prometheus", + "version": "5.0.0" + }, + { + "type": "panel", + "id": "singlestat", + "name": "Singlestat", + "version": "5.0.0" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "-- Grafana --", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "name": "Annotations & Alerts", + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": null, + "graphTooltip": 0, + "id": null, + "iteration": 1539967676482, + "links": [], + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "Prometheus", + "fill": 1, + "gridPos": { + "h": 9, + "w": 12, + "x": 0, + "y": 0 + }, + "id": 11, + "legend": { + "avg": false, + "current": true, + "max": false, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(http_server_requests_seconds_sum{status!~\"5..\"}[1m]))/sum(rate(http_server_requests_seconds_count{ status!~\"5..\"}[1m]))", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "HTTP - AVG", + "refId": "A" + }, + { + "expr": "max(http_server_requests_seconds_max{status!~\"5..\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "HTTP - MAX", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "HTTP Request Latency", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "decimals": null, + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "Prometheus", + "fill": 1, + "gridPos": { + "h": 9, + "w": 12, + "x": 12, + "y": 0 + }, + "id": 9, + "legend": { + "avg": false, + "current": true, + "max": true, + "min": false, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 0.5, + "points": true, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(http_server_requests_seconds_count[1m]))", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "request - ok", + "refId": "A" + }, + { + "expr": "sum(rate(http_server_requests_seconds_count{status=~\"5..\"}[1m]))", + "format": "time_series", + "interval": "", + "intervalFactor": 1, + "legendFormat": "request - err", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "HTTP Request Activity", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "ops", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "Prometheus", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 0, + "y": 9 + }, + "id": 2, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(petclinic_owner_seconds_count{method=\"PUT\", status=\"204\"})", + "format": "time_series", + "instant": true, + "intervalFactor": 1, + "refId": "A" + } + ], + "thresholds": "", + "title": "Owners Updated", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "Prometheus", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 6, + "y": 9 + }, + "id": 3, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(petclinic_owner_seconds_count{method=\"POST\", status=\"201\"})", + "format": "time_series", + "instant": true, + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "thresholds": "", + "title": "Owners Created", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "Prometheus", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 12, + "y": 9 + }, + "id": 4, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "", + "targets": [ + { + "expr": "sum(petclinic_pet_seconds_count{method=\"POST\", status=\"201\"})", + "format": "time_series", + "instant": true, + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "thresholds": "", + "title": "Pets Created", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "cacheTimeout": null, + "colorBackground": false, + "colorValue": false, + "colors": [ + "#299c46", + "rgba(237, 129, 40, 0.89)", + "#d44a3a" + ], + "datasource": "Prometheus", + "format": "none", + "gauge": { + "maxValue": 100, + "minValue": 0, + "show": false, + "thresholdLabels": false, + "thresholdMarkers": true + }, + "gridPos": { + "h": 5, + "w": 6, + "x": 18, + "y": 9 + }, + "id": 5, + "interval": null, + "links": [], + "mappingType": 1, + "mappingTypes": [ + { + "name": "value to text", + "value": 1 + }, + { + "name": "range to text", + "value": 2 + } + ], + "maxDataPoints": 100, + "nullPointMode": "connected", + "nullText": null, + "postfix": "", + "postfixFontSize": "50%", + "prefix": "", + "prefixFontSize": "50%", + "rangeMaps": [ + { + "from": "null", + "text": "N/A", + "to": "null" + } + ], + "sparkline": { + "fillColor": "rgba(31, 118, 189, 0.18)", + "full": false, + "lineColor": "rgb(31, 120, 193)", + "show": false + }, + "tableColumn": "Value", + "targets": [ + { + "expr": "sum(petclinic_visit_seconds_count{method=\"POST\", status=\"201\"})", + "format": "time_series", + "instant": true, + "intervalFactor": 1, + "legendFormat": "", + "refId": "A" + } + ], + "thresholds": "", + "title": "Visit Created", + "type": "singlestat", + "valueFontSize": "80%", + "valueMaps": [ + { + "op": "=", + "text": "N/A", + "value": "null" + } + ], + "valueName": "avg" + }, + { + "aliasColors": {}, + "bars": true, + "dashLength": 10, + "dashes": false, + "datasource": "Prometheus", + "fill": 1, + "gridPos": { + "h": 8, + "w": 24, + "x": 0, + "y": 14 + }, + "id": 7, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "hideEmpty": false, + "hideZero": true, + "max": true, + "min": false, + "rightSide": false, + "show": true, + "total": false, + "values": true + }, + "lines": false, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "stack": true, + "steppedLine": false, + "targets": [ + { + "expr": "sum(petclinic_owner_seconds_count{method=\"POST\", status=\"201\"})", + "format": "time_series", + "instant": false, + "intervalFactor": 1, + "legendFormat": "owner create", + "refId": "A" + }, + { + "expr": "sum(petclinic_pet_seconds_count{method=\"POST\", status=\"201\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "pet create", + "refId": "B" + }, + { + "expr": "sum(petclinic_visit_seconds_count{method=\"POST\", status=\"201\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "visit create", + "refId": "C" + }, + { + "expr": "sum(petclinic_owner_seconds_count{method=\"PUT\", status=\"204\"})", + "format": "time_series", + "intervalFactor": 1, + "legendFormat": "owner update", + "refId": "D" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "SPC Business Histogram", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "refresh": "30s", + "schemaVersion": 16, + "style": "dark", + "tags": [], + "templating": { + "list": [ + { + "auto": true, + "auto_count": 1, + "auto_min": "10s", + "current": { + "text": "auto", + "value": "$__auto_interval_timeRange" + }, + "hide": 0, + "label": null, + "name": "timeRange", + "options": [ + { + "selected": true, + "text": "auto", + "value": "$__auto_interval_timeRange" + }, + { + "selected": false, + "text": "1m", + "value": "1m" + }, + { + "selected": false, + "text": "10m", + "value": "10m" + }, + { + "selected": false, + "text": "30m", + "value": "30m" + }, + { + "selected": false, + "text": "1h", + "value": "1h" + }, + { + "selected": false, + "text": "6h", + "value": "6h" + }, + { + "selected": false, + "text": "12h", + "value": "12h" + }, + { + "selected": false, + "text": "1d", + "value": "1d" + }, + { + "selected": false, + "text": "7d", + "value": "7d" + }, + { + "selected": false, + "text": "14d", + "value": "14d" + }, + { + "selected": false, + "text": "30d", + "value": "30d" + } + ], + "query": "1m,10m,30m,1h,6h,12h,1d,7d,14d,30d", + "refresh": 2, + "type": "interval" + } + ] + }, + "time": { + "from": "now-1h", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "", + "title": "Spring Petclinic Metrics", + "uid": "69JXeR0iw", + "version": 1 +} diff --git a/docker/grafana/grafana.ini b/docker/grafana/grafana.ini index 2919aa4635..6d5a20edd3 100644 --- a/docker/grafana/grafana.ini +++ b/docker/grafana/grafana.ini @@ -1,27 +1,27 @@ -##################### Spring Petclinic Microservices Grafana Configuration ##################### - -# possible values : production, development -app_mode = development - -#################################### Paths #################################### -[paths] -# folder that contains provisioning config files that grafana will apply on startup and while running. -provisioning = /etc/grafana/provisioning - -#################################### Server #################################### -[server] -# enable gzip -enable_gzip = true - -#################################### Anonymous Auth ########################## -# Anonymous authentication has been enabled in the Petclinic sample with Admin role -# Do not do that in Production environment -[auth.anonymous] -# enable anonymous access -enabled = true - -# specify organization name that should be used for unauthenticated users -org_name = Main Org. - -# specify role for unauthenticated users -org_role = Admin +##################### Spring Petclinic Microservices Grafana Configuration ##################### + +# possible values : production, development +app_mode = development + +#################################### Paths #################################### +[paths] +# folder that contains provisioning config files that grafana will apply on startup and while running. +provisioning = /etc/grafana/provisioning + +#################################### Server #################################### +[server] +# enable gzip +enable_gzip = true + +#################################### Anonymous Auth ########################## +# Anonymous authentication has been enabled in the Petclinic sample with Admin role +# Do not do that in Production environment +[auth.anonymous] +# enable anonymous access +enabled = true + +# specify organization name that should be used for unauthenticated users +org_name = Main Org. + +# specify role for unauthenticated users +org_role = Admin diff --git a/docker/grafana/provisioning/dashboards/all.yml b/docker/grafana/provisioning/dashboards/all.yml index 3b978e6254..5dcedd9a87 100644 --- a/docker/grafana/provisioning/dashboards/all.yml +++ b/docker/grafana/provisioning/dashboards/all.yml @@ -1,11 +1,11 @@ -apiVersion: 1 - -providers: -- name: 'default' - orgId: 1 - folder: '' - type: file - disableDeletion: false - updateIntervalSeconds: 10 #how often Grafana will scan for changed dashboards - options: - path: /var/lib/grafana/dashboards +apiVersion: 1 + +providers: +- name: 'default' + orgId: 1 + folder: '' + type: file + disableDeletion: false + updateIntervalSeconds: 10 #how often Grafana will scan for changed dashboards + options: + path: /var/lib/grafana/dashboards diff --git a/docker/grafana/provisioning/datasources/all.yml b/docker/grafana/provisioning/datasources/all.yml index 9c88fce5ac..967fd8e3ca 100644 --- a/docker/grafana/provisioning/datasources/all.yml +++ b/docker/grafana/provisioning/datasources/all.yml @@ -1,13 +1,13 @@ -# config file version -apiVersion: 1 - -# list of datasources to insert/update depending what's available in the database -datasources: -- name: Prometheus - type: prometheus - access: proxy - org_id: 1 - url: http://prometheus-server:9090 - is_default: true - version: 1 - editable: true +# config file version +apiVersion: 1 + +# list of datasources to insert/update depending what's available in the database +datasources: +- name: Prometheus + type: prometheus + access: proxy + org_id: 1 + url: http://prometheus-server:9090 + is_default: true + version: 1 + editable: true diff --git a/docker/prometheus/Dockerfile b/docker/prometheus/Dockerfile index 58626f638c..befdae3649 100644 --- a/docker/prometheus/Dockerfile +++ b/docker/prometheus/Dockerfile @@ -1,2 +1,2 @@ -FROM prom/prometheus:v2.4.2 -ADD prometheus.yml /etc/prometheus/ +FROM prom/prometheus:v2.4.2 +ADD prometheus.yml /etc/prometheus/ diff --git a/docker/prometheus/prometheus.yml b/docker/prometheus/prometheus.yml index 30f089b72b..9798cc9a00 100644 --- a/docker/prometheus/prometheus.yml +++ b/docker/prometheus/prometheus.yml @@ -1,32 +1,32 @@ -# my global config -global: - scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. - evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. - # scrape_timeout is set to the global default (10s). - -# A scrape configuration containing exactly one endpoint to scrape: -# Here it's Prometheus itself. -scrape_configs: -- job_name: prometheus - static_configs: - - targets: ['localhost:9090'] - -- job_name: api-gateway - metrics_path: /actuator/prometheus - static_configs: - - targets: ['api-gateway:8080'] - -- job_name: customers-service - metrics_path: /actuator/prometheus - static_configs: - - targets: ['customers-service:8081'] - -- job_name: visits-service - metrics_path: /actuator/prometheus - static_configs: - - targets: ['visits-service:8082'] - -- job_name: vets-service - metrics_path: /actuator/prometheus - static_configs: - - targets: ['vets-service:8083'] +# my global config +global: + scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. + evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. + # scrape_timeout is set to the global default (10s). + +# A scrape configuration containing exactly one endpoint to scrape: +# Here it's Prometheus itself. +scrape_configs: +- job_name: prometheus + static_configs: + - targets: ['localhost:9090'] + +- job_name: api-gateway + metrics_path: /actuator/prometheus + static_configs: + - targets: ['api-gateway:8080'] + +- job_name: customers-service + metrics_path: /actuator/prometheus + static_configs: + - targets: ['customers-service:8081'] + +- job_name: visits-service + metrics_path: /actuator/prometheus + static_configs: + - targets: ['visits-service:8082'] + +- job_name: vets-service + metrics_path: /actuator/prometheus + static_configs: + - targets: ['vets-service:8083'] diff --git a/spring-petclinic-api-gateway/src/main/resources/application.yml b/spring-petclinic-api-gateway/src/main/resources/application.yml index 0205c02ac6..01378d50b5 100644 --- a/spring-petclinic-api-gateway/src/main/resources/application.yml +++ b/spring-petclinic-api-gateway/src/main/resources/application.yml @@ -6,19 +6,19 @@ spring: gateway: routes: - id: vets-service - uri: http://vets-service + uri: lb://vets-service predicates: - Path=/api/vet/** filters: - StripPrefix=2 - id: visits-service - uri: http://visits-service + uri: lb://visits-service predicates: - Path=/api/visit/** filters: - StripPrefix=2 - id: customers-service - uri: http://customers-service + uri: lb://customers-service predicates: - Path=/api/customer/** filters: @@ -33,19 +33,19 @@ spring: gateway: routes: - id: vets-service - uri: http://vets-service + uri: lb://vets-service predicates: - Path=/api/vet/** filters: - StripPrefix=2 - id: visits-service - uri: http://visits-service + uri: lb://visits-service predicates: - Path=/api/visit/** filters: - StripPrefix=2 - id: customers-service - uri: http://customers-service + uri: lb://customers-service predicates: - Path=/api/customer/** filters: diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/CustomersServiceApplication.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/CustomersServiceApplication.java index a4c5985c0c..266b314df8 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/CustomersServiceApplication.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/CustomersServiceApplication.java @@ -29,12 +29,6 @@ @SpringBootApplication public class CustomersServiceApplication { - @Autowired - private OwnerRepository ownerRepository; - - @Autowired - private PetRepository petRepository; - public static void main(String[] args) { SpringApplication.run(CustomersServiceApplication.class, args); } diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetRepository.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetRepository.java index 4f1c2d5f87..f64930b922 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetRepository.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetRepository.java @@ -30,16 +30,5 @@ @Repository public interface PetRepository extends CosmosRepository { -// /** -// * Retrieve all {@link PetType}s from the data store. -// * @return a Collection of {@link PetType}s. -// */ -// @Query("SELECT ptype FROM PetType ptype ORDER BY ptype.name") -// List findPetTypes(); -// -// @Query("FROM PetType ptype WHERE ptype.id = :typeId") -// Optional findPetTypeById(@Param("typeId") int typeId); - - } diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetType.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetType.java deleted file mode 100644 index fb8ee4e707..0000000000 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetType.java +++ /dev/null @@ -1,50 +0,0 @@ -///* -// * Copyright 2002-2017 the original author or authors. -// * -// * Licensed under the Apache License, Version 2.0 (the "License"); -// * you may not use this file except in compliance with the License. -// * You may obtain a copy of the License at -// * -// * http://www.apache.org/licenses/LICENSE-2.0 -// * -// * Unless required by applicable law or agreed to in writing, software -// * distributed under the License is distributed on an "AS IS" BASIS, -// * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// * See the License for the specific language governing permissions and -// * limitations under the License. -// */ -//package org.springframework.samples.petclinic.customers.model; -// -//import javax.persistence.Column; -//import javax.persistence.Entity; -//import javax.persistence.GeneratedValue; -//import javax.persistence.GenerationType; -//import javax.persistence.Id; -//import javax.persistence.Table; -// -///** -// * @author Juergen Hoeller -// * Can be Cat, Dog, Hamster... -// */ -//@Entity -//@Table(name = "types") -//public class PetType { -// @Id -// @GeneratedValue(strategy = GenerationType.IDENTITY) -// private Integer id; -// -// @Column(name = "name") -// private String name; -// -// public Integer getId() { -// return id; -// } -// -// public void setId(final Integer id) { -// this.id = id; -// } -// -// public String getName() { -// return this.name; -// } -//} diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetRequest.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetRequest.java index f7b68f6504..6e3bd8c4f8 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetRequest.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetRequest.java @@ -36,5 +36,5 @@ class PetRequest { @Size(min = 1) private String name; - private int typeId; + private String type; } diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java index 7e8ae1b172..15ef868bff 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java @@ -43,12 +43,6 @@ class PetResource { private final PetRepository petRepository; private final OwnerRepository ownerRepository; - -// @GetMapping("/petTypes") -// public List getPetTypes() { -// return petRepository.findPetTypes(); -// } - @PostMapping("/owners/{ownerId}/pets") @ResponseStatus(HttpStatus.CREATED) public Pet processCreationForm( @@ -78,9 +72,7 @@ private Pet save(final Pet pet, final PetRequest petRequest) { pet.setName(petRequest.getName()); pet.setBirthDate(petRequest.getBirthDate()); - -// petRepository.findPetTypeById(petRequest.getTypeId()) -// .ifPresent(pet::setType); + pet.setType(petRequest.getType()); log.info("Saving pet {}", pet); return petRepository.save(pet); diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/VetsServiceApplication.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/VetsServiceApplication.java index f643b77f4d..de969f4ebc 100644 --- a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/VetsServiceApplication.java +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/VetsServiceApplication.java @@ -31,9 +31,6 @@ @EnableConfigurationProperties(VetsProperties.class) public class VetsServiceApplication { - @Autowired - private VetRepository vetRepository; - public static void main(String[] args) { SpringApplication.run(VetsServiceApplication.class, args); } diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/VisitsServiceApplication.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/VisitsServiceApplication.java index ab40adcc22..f5f8d3f826 100644 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/VisitsServiceApplication.java +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/VisitsServiceApplication.java @@ -29,9 +29,6 @@ @SpringBootApplication public class VisitsServiceApplication { - @Autowired - private VisitRepository visitRepository; - public static void main(String[] args) { SpringApplication.run(VisitsServiceApplication.class, args); } From 27a6288a532c26251d6c345694c0ba7c2cd9b04a Mon Sep 17 00:00:00 2001 From: VaijanathB Date: Wed, 17 Feb 2021 23:39:16 -0800 Subject: [PATCH 06/21] Fixing the ID to be string in Cosmos. And associated fixes. --- .../src/main/resources/bootstrap.yml | 4 +- .../application/CustomersServiceClient.java | 14 ++-- .../api/application/VisitsServiceClient.java | 18 ++--- .../boundary/web/ApiGatewayController.java | 4 +- .../petclinic/api/dto/OwnerDetails.java | 4 +- .../samples/petclinic/api/dto/PetDetails.java | 4 +- .../petclinic/api/dto/VisitDetails.java | 4 +- .../src/main/resources/application.yml | 1 + .../src/main/resources/bootstrap.yml | 14 +++- .../owner-details/owner-details.template.html | 2 +- .../scripts/pet-form/pet-form.template.html | 4 +- .../VisitsServiceClientIntegrationTest.java | 8 +- .../web/ApiGatewayControllerTest.java | 10 +-- spring-petclinic-customers-service/pom.xml | 4 + .../petclinic/customers/PopulateSeedData.java | 73 ++++++++++--------- .../petclinic/customers/model/Owner.java | 32 ++++---- .../customers/model/OwnerRepository.java | 2 +- .../petclinic/customers/model/Pet.java | 39 +++++----- .../customers/model/PetRepository.java | 8 +- .../customers/web/OwnerResource.java | 21 +++++- .../petclinic/customers/web/PetDetails.java | 6 +- .../petclinic/customers/web/PetRequest.java | 2 +- .../petclinic/customers/web/PetResource.java | 16 ++-- .../customers/web/PetResourceTest.java | 4 +- .../src/main/resources/bootstrap.yml | 2 + .../petclinic/vets/model/Specialty.java | 2 +- .../petclinic/visits/PopulateSeedData.java | 8 +- .../samples/petclinic/visits/model/Visit.java | 17 +++-- .../petclinic/visits/web/VisitResource.java | 2 +- .../visits/web/VisitResourceTest.java | 12 +-- 30 files changed, 195 insertions(+), 146 deletions(-) diff --git a/spring-petclinic-admin-server/src/main/resources/bootstrap.yml b/spring-petclinic-admin-server/src/main/resources/bootstrap.yml index 0f75fe8059..50e201c188 100644 --- a/spring-petclinic-admin-server/src/main/resources/bootstrap.yml +++ b/spring-petclinic-admin-server/src/main/resources/bootstrap.yml @@ -16,5 +16,5 @@ spring: cloud: config: uri: http://config-server:8888 - server: - port: 8081 +server: + port: 8081 diff --git a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/CustomersServiceClient.java b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/CustomersServiceClient.java index 0cb31c9b12..dc1e57281e 100644 --- a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/CustomersServiceClient.java +++ b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/CustomersServiceClient.java @@ -16,6 +16,7 @@ package org.springframework.samples.petclinic.api.application; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; import org.springframework.samples.petclinic.api.dto.OwnerDetails; import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; @@ -29,12 +30,15 @@ @RequiredArgsConstructor public class CustomersServiceClient { + @Value("${server.port}") + private String port ; + private final WebClient.Builder webClientBuilder; - public Mono getOwner(final int ownerId) { - return webClientBuilder.build().get() - .uri("http://customers-service/owners/{ownerId}", ownerId) + public Mono getOwner(final String ownerId) { + return WebClient.create() + .get() + .uri( "http://127.0.0.1:"+port+"/api/customer/owners/{ownerId}", ownerId) .retrieve() .bodyToMono(OwnerDetails.class); - } -} + }} diff --git a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/VisitsServiceClient.java b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/VisitsServiceClient.java index ffb3d848af..8fd2febfd1 100644 --- a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/VisitsServiceClient.java +++ b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/VisitsServiceClient.java @@ -16,6 +16,7 @@ package org.springframework.samples.petclinic.api.application; import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Value; import org.springframework.samples.petclinic.api.dto.Visits; import org.springframework.stereotype.Component; import org.springframework.web.reactive.function.client.WebClient; @@ -32,24 +33,21 @@ @RequiredArgsConstructor public class VisitsServiceClient { - // Could be changed for testing purpose - private String hostname = "http://visits-service/"; + @Value("${server.port}") + private String port ; + //private String hostname = "http://visits-service/"; private final WebClient.Builder webClientBuilder; - public Mono getVisitsForPets(final List petIds) { - return webClientBuilder.build() + public Mono getVisitsForPets(final List petIds) { + return WebClient.create() .get() - .uri(hostname + "pets/visits?petId={petId}", joinIds(petIds)) + .uri( "http://127.0.0.1:"+ port + "/api/vist/pets/visits?petId={petId}", joinIds(petIds)) .retrieve() .bodyToMono(Visits.class); } - private String joinIds(List petIds) { + private String joinIds(List petIds) { return petIds.stream().map(Object::toString).collect(joining(",")); } - - void setHostname(String hostname) { - this.hostname = hostname; - } } diff --git a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/boundary/web/ApiGatewayController.java b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/boundary/web/ApiGatewayController.java index 3d7163e9cb..adde8d33f4 100644 --- a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/boundary/web/ApiGatewayController.java +++ b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/boundary/web/ApiGatewayController.java @@ -46,7 +46,7 @@ public class ApiGatewayController { private final ReactiveCircuitBreakerFactory cbFactory; @GetMapping(value = "owners/{ownerId}") - public Mono getOwnerDetails(final @PathVariable int ownerId) { + public Mono getOwnerDetails(final @PathVariable String ownerId) { return customersServiceClient.getOwner(ownerId) .flatMap(owner -> visitsServiceClient.getVisitsForPets(owner.getPetIds()) @@ -64,7 +64,7 @@ private Function addVisitsToOwner(OwnerDetails owner) { owner.getPets() .forEach(pet -> pet.getVisits() .addAll(visits.getItems().stream() - .filter(v -> v.getPetId() == pet.getId()) + .filter(v -> v.getPetId().equals(pet.getId())) .collect(Collectors.toList())) ); return owner; diff --git a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/dto/OwnerDetails.java b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/dto/OwnerDetails.java index 5cea00a88f..8843ed01e1 100644 --- a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/dto/OwnerDetails.java +++ b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/dto/OwnerDetails.java @@ -29,7 +29,7 @@ @Data public class OwnerDetails { - private int id; + private String id; private String firstName; @@ -44,7 +44,7 @@ public class OwnerDetails { private final List pets = new ArrayList<>(); @JsonIgnore - public List getPetIds() { + public List getPetIds() { return pets.stream() .map(PetDetails::getId) .collect(toList()); diff --git a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/dto/PetDetails.java b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/dto/PetDetails.java index e9630d07da..9f5b9342cd 100644 --- a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/dto/PetDetails.java +++ b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/dto/PetDetails.java @@ -26,13 +26,13 @@ @Data public class PetDetails { - private int id; + private String id; private String name; private String birthDate; - private PetType type; + private String type; private final List visits = new ArrayList<>(); diff --git a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/dto/VisitDetails.java b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/dto/VisitDetails.java index de3a405439..a3e1d65ba5 100644 --- a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/dto/VisitDetails.java +++ b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/dto/VisitDetails.java @@ -25,9 +25,9 @@ @NoArgsConstructor public class VisitDetails { - private Integer id = null; + private String id = null; - private Integer petId = null; + private String petId = null; private String date = null; diff --git a/spring-petclinic-api-gateway/src/main/resources/application.yml b/spring-petclinic-api-gateway/src/main/resources/application.yml index 01378d50b5..9e24f6a6e6 100644 --- a/spring-petclinic-api-gateway/src/main/resources/application.yml +++ b/spring-petclinic-api-gateway/src/main/resources/application.yml @@ -78,3 +78,4 @@ spring: - Path=/api/customer/** filters: - StripPrefix=2 + diff --git a/spring-petclinic-api-gateway/src/main/resources/bootstrap.yml b/spring-petclinic-api-gateway/src/main/resources/bootstrap.yml index 926c56fb87..4103977fe7 100644 --- a/spring-petclinic-api-gateway/src/main/resources/bootstrap.yml +++ b/spring-petclinic-api-gateway/src/main/resources/bootstrap.yml @@ -4,13 +4,19 @@ spring: uri: http://localhost:8888 application: name: api-gateway -eureka: - client: - register-with-eureka: true - fetch-registry: true --- spring: profiles: docker cloud: config: uri: http://config-server:8888 +server: + port: 8080 +--- +spring: + profiles: local + cloud: + config: + uri: http://localhost:8888 +server: + port: 8080 diff --git a/spring-petclinic-api-gateway/src/main/resources/static/scripts/owner-details/owner-details.template.html b/spring-petclinic-api-gateway/src/main/resources/static/scripts/owner-details/owner-details.template.html index ed2810f9ca..1edb3556d5 100644 --- a/spring-petclinic-api-gateway/src/main/resources/static/scripts/owner-details/owner-details.template.html +++ b/spring-petclinic-api-gateway/src/main/resources/static/scripts/owner-details/owner-details.template.html @@ -38,7 +38,7 @@

Pets and Visits

Birth Date
{{pet.birthDate | date:'yyyy MMM dd'}}
Type
-
{{pet.type.name}}
+
{{pet.type}}
diff --git a/spring-petclinic-api-gateway/src/main/resources/static/scripts/pet-form/pet-form.template.html b/spring-petclinic-api-gateway/src/main/resources/static/scripts/pet-form/pet-form.template.html index 76317e5575..80ae3db889 100644 --- a/spring-petclinic-api-gateway/src/main/resources/static/scripts/pet-form/pet-form.template.html +++ b/spring-petclinic-api-gateway/src/main/resources/static/scripts/pet-form/pet-form.template.html @@ -27,8 +27,8 @@

Pet

- +
diff --git a/spring-petclinic-api-gateway/src/test/java/org/springframework/samples/petclinic/api/application/VisitsServiceClientIntegrationTest.java b/spring-petclinic-api-gateway/src/test/java/org/springframework/samples/petclinic/api/application/VisitsServiceClientIntegrationTest.java index 62e74c4907..04e94a16bf 100644 --- a/spring-petclinic-api-gateway/src/test/java/org/springframework/samples/petclinic/api/application/VisitsServiceClientIntegrationTest.java +++ b/spring-petclinic-api-gateway/src/test/java/org/springframework/samples/petclinic/api/application/VisitsServiceClientIntegrationTest.java @@ -18,7 +18,7 @@ class VisitsServiceClientIntegrationTest { - private static final Integer PET_ID = 1; + private static final String PET_ID = "1"; private VisitsServiceClient visitsServiceClient; @@ -28,7 +28,7 @@ class VisitsServiceClientIntegrationTest { void setUp() { server = new MockWebServer(); visitsServiceClient = new VisitsServiceClient(WebClient.builder()); - visitsServiceClient.setHostname(server.url("/").toString()); + // visitsServiceClient.setHostname(server.url("/").toString()); } @AfterEach @@ -42,13 +42,13 @@ void getVisitsForPets_withAvailableVisitsService() { .setHeader("Content-Type", "application/json") .setBody("{\"items\":[{\"id\":5,\"date\":\"2018-11-15\",\"description\":\"test visit\",\"petId\":1}]}")); - Mono visits = visitsServiceClient.getVisitsForPets(Collections.singletonList(1)); + Mono visits = visitsServiceClient.getVisitsForPets(Collections.singletonList("1")); assertVisitDescriptionEquals(visits.block(), PET_ID,"test visit"); } - private void assertVisitDescriptionEquals(Visits visits, int petId, String description) { + private void assertVisitDescriptionEquals(Visits visits, String petId, String description) { assertEquals(1, visits.getItems().size()); assertNotNull(visits.getItems().get(0)); assertEquals(petId, visits.getItems().get(0).getPetId()); diff --git a/spring-petclinic-api-gateway/src/test/java/org/springframework/samples/petclinic/api/boundary/web/ApiGatewayControllerTest.java b/spring-petclinic-api-gateway/src/test/java/org/springframework/samples/petclinic/api/boundary/web/ApiGatewayControllerTest.java index 9f5707e681..9ae998463d 100644 --- a/spring-petclinic-api-gateway/src/test/java/org/springframework/samples/petclinic/api/boundary/web/ApiGatewayControllerTest.java +++ b/spring-petclinic-api-gateway/src/test/java/org/springframework/samples/petclinic/api/boundary/web/ApiGatewayControllerTest.java @@ -40,16 +40,16 @@ class ApiGatewayControllerTest { void getOwnerDetails_withAvailableVisitsService() { OwnerDetails owner = new OwnerDetails(); PetDetails cat = new PetDetails(); - cat.setId(20); + cat.setId("20"); cat.setName("Garfield"); owner.getPets().add(cat); Mockito - .when(customersServiceClient.getOwner(1)) + .when(customersServiceClient.getOwner("1")) .thenReturn(Mono.just(owner)); Visits visits = new Visits(); VisitDetails visit = new VisitDetails(); - visit.setId(300); + visit.setId("300"); visit.setDescription("First visit"); visit.setPetId(cat.getId()); visits.getItems().add(visit); @@ -76,11 +76,11 @@ void getOwnerDetails_withAvailableVisitsService() { void getOwnerDetails_withServiceError() { OwnerDetails owner = new OwnerDetails(); PetDetails cat = new PetDetails(); - cat.setId(20); + cat.setId("20"); cat.setName("Garfield"); owner.getPets().add(cat); Mockito - .when(customersServiceClient.getOwner(1)) + .when(customersServiceClient.getOwner("1")) .thenReturn(Mono.just(owner)); Mockito diff --git a/spring-petclinic-customers-service/pom.xml b/spring-petclinic-customers-service/pom.xml index 72bf072682..2110cb41a4 100644 --- a/spring-petclinic-customers-service/pom.xml +++ b/spring-petclinic-customers-service/pom.xml @@ -114,6 +114,10 @@ junit test
+ + jakarta.persistence + jakarta.persistence-api + diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/PopulateSeedData.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/PopulateSeedData.java index b0fe99c9c3..ebd8e7d1fa 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/PopulateSeedData.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/PopulateSeedData.java @@ -17,6 +17,7 @@ import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashSet; +import java.util.Set; @Component @@ -34,54 +35,54 @@ public class PopulateSeedData { @PostConstruct public void populateSeedData() { + final Pet pet1 = new Pet("1", "Leo", parseDate("2000-09-07"), "cat"); + final Pet pet2 = new Pet("2", "Basil", parseDate("2002-08-06"), "hamster"); + final Pet pet3 = new Pet("3", "Rosy", parseDate("2001-04-17"), "dog"); + final Pet pet4 = new Pet("4", "Jewel", parseDate("2000-03-07"), "dog"); + final Pet pet5 = new Pet("5", "Iggy", parseDate("2000-11-30"), "lizard"); + final Pet pet6 = new Pet("6", "George", parseDate("2000-01-20"), "snake"); + final Pet pet7 = new Pet("7", "Samantha", parseDate("1995-09-04"), "cat"); + final Pet pet8 = new Pet("8", "Max", parseDate("1995-09-04"), "cat"); + final Pet pet9 = new Pet("9", "Lucky", parseDate("1999-08-06"), "bird"); + final Pet pet10 = new Pet("10", "Mulligan", parseDate("1997-02-24"), "dog"); + final Pet pet11 = new Pet("11", "Freddy", parseDate("2000-03-09"), "bird"); + final Pet pet12 = new Pet("12", "Lucky", parseDate("2000-06-24"), "dog"); + final Pet pet13 = new Pet("13", "Sly", parseDate("2002-06-08"), "cat"); - final Owner owner1 = new Owner(1, "George", "Franklin", "110 W. Liberty St.", "Madison", "6085551023", new HashSet() {{ - add(1); + final Owner owner1 = new Owner("1", "George", "Franklin", "110 W. Liberty St.", "Madison", "6085551023",new HashSet() {{ + add(pet1); }}); - final Owner owner2 = new Owner(2, "Betty", "Davis", "638 Cardinal Ave.", "Sun Prairie", "6085551749", new HashSet() {{ - add(2); + final Owner owner2 = new Owner("2", "Betty", "Davis", "638 Cardinal Ave.", "Sun Prairie", "6085551749", new HashSet() {{ + add(pet2); }}); - final Owner owner3 = new Owner(3, "Eduardo", "Rodriquez", "2693 Commerce St.", "McFarland", "6085558763", new HashSet() {{ - add(3); - add(4); + final Owner owner3 = new Owner("3", "Eduardo", "Rodriquez", "2693 Commerce St.", "McFarland", "6085558763", new HashSet() {{ + add(pet3); + add(pet4); }}); - final Owner owner4 = new Owner(4, "Harold", "Davis", "563 Friendly St.", "Windsor", "6085553198", new HashSet() {{ - add(5); + final Owner owner4 = new Owner("4", "Harold", "Davis", "563 Friendly St.", "Windsor", "6085553198", new HashSet() {{ + add(pet5); }}); - final Owner owner5 = new Owner(5, "Peter", "McTavish", "2387 S. Fair Way", "Madison", "6085552765", new HashSet() {{ - add(6); + final Owner owner5 = new Owner("5", "Peter", "McTavish", "2387 S. Fair Way", "Madison", "6085552765", new HashSet() {{ + add(pet6); }}); - final Owner owner6 = new Owner(6, "Jean", "Coleman", "105 N. Lake St.", "Monona", "6085552654", new HashSet() {{ - add(7); - add(8); + final Owner owner6 = new Owner("6", "Jean", "Coleman", "105 N. Lake St.", "Monona", "6085552654", new HashSet() {{ + add(pet7); + add(pet8); }}); - final Owner owner7 = new Owner(7, "Jeff", "Black", "1450 Oak Blvd.", "Monona", "6085555387", new HashSet() {{ - add(9); + final Owner owner7 = new Owner("7", "Jeff", "Black", "1450 Oak Blvd.", "Monona", "6085555387", new HashSet() {{ + add(pet9); }}); - final Owner owner8 = new Owner(8, "Maria", "Escobito", "345 Maple St.", "Madison", "6085557683", new HashSet() {{ - add(10); + final Owner owner8 = new Owner("8", "Maria", "Escobito", "345 Maple St.", "Madison", "6085557683", new HashSet() {{ + add(pet10); }}); - final Owner owner9 = new Owner(9, "David", "Schroeder", "2749 Blackhawk Trail", "Madison", "6085559435", new HashSet() {{ - add(11); + final Owner owner9 = new Owner("9", "David", "Schroeder", "2749 Blackhawk Trail", "Madison", "6085559435", new HashSet() {{ + add(pet11); }}); - final Owner owner10 = new Owner(10, "Carlos", "Estaban", "2335 Independence La.", "Waunakee", "6085555487", new HashSet() {{ - add(12); - add(13); + final Owner owner10 = new Owner("10", "Carlos", "Estaban", "2335 Independence La.", "Waunakee", "6085555487", new HashSet() {{ + add(pet12); + add(pet13); }}); - final Pet pet1 = new Pet(1, "Leo", parseDate("2000-09-07"), "cat", owner1); - final Pet pet2 = new Pet(2, "Basil", parseDate("2002-08-06"), "hamster", owner2); - final Pet pet3 = new Pet(3, "Rosy", parseDate("2001-04-17"), "dog", owner3); - final Pet pet4 = new Pet(4, "Jewel", parseDate("2000-03-07"), "dog", owner3); - final Pet pet5 = new Pet(5, "Iggy", parseDate("2000-11-30"), "lizard", owner4); - final Pet pet6 = new Pet(6, "George", parseDate("2000-01-20"), "snake", owner5); - final Pet pet7 = new Pet(7, "Samantha", parseDate("1995-09-04"), "cat", owner6); - final Pet pet8 = new Pet(8, "Max", parseDate("1995-09-04"), "cat", owner6); - final Pet pet9 = new Pet(9, "Lucky", parseDate("1999-08-06"), "bird", owner7); - final Pet pet10 = new Pet(10, "Mulligan", parseDate("1997-02-24"), "dog", owner8); - final Pet pet11 = new Pet(11, "Freddy", parseDate("2000-03-09"), "bird", owner9); - final Pet pet12 = new Pet(12, "Lucky", parseDate("2000-06-24"), "dog", owner10); - final Pet pet13 = new Pet(13, "Sly", parseDate("2002-06-08"), "cat", owner10); this.ownerRepository.saveAll(Lists.newArrayList(owner1, owner2, owner3, owner4, owner5, owner6, owner7, owner8, owner9, owner10)); this.petRepository.saveAll(Lists.newArrayList(pet1, pet2, pet3, pet4, pet5, pet6, pet7, pet8, pet9, pet10, pet11, pet12, pet13)); diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java index 37006ff15b..834d9631cd 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java @@ -16,6 +16,7 @@ package org.springframework.samples.petclinic.customers.model; import com.azure.spring.data.cosmos.core.mapping.Container; +import com.azure.spring.data.cosmos.core.mapping.GeneratedValue; import com.azure.spring.data.cosmos.core.mapping.PartitionKey; import lombok.AllArgsConstructor; import lombok.Getter; @@ -44,7 +45,7 @@ * @author Michael Isvy * @author Maciej Szarlinski */ -@Container(containerName = "Owners") +@Container(containerName = "owners") @Getter @Setter @AllArgsConstructor @@ -52,7 +53,8 @@ public class Owner { @Id - private Integer id; + @GeneratedValue + private String id; private String firstName; @@ -65,9 +67,9 @@ public class Owner { private String telephone; - private HashSet petIds; + private Set pets; - public Integer getId() { + public String getId() { return id; } @@ -111,27 +113,27 @@ public void setTelephone(String telephone) { this.telephone = telephone; } - public HashSet getPetIds() { - if (this.petIds == null) { - this.petIds = new HashSet<>(); + protected Set getPetsInternal() { + if (this.pets == null) { + this.pets = new HashSet<>(); } - return this.petIds; + return this.pets; } - public void setPetIds(HashSet petIds) { - this.petIds = petIds; + + public List getPets() { + final List sortedPets = new ArrayList<>(getPetsInternal()); + PropertyComparator.sort(sortedPets, new MutableSortDefinition("name", true, true)); + return Collections.unmodifiableList(sortedPets); } public void addPet(Pet pet) { - - getPetIds().add(pet.getId()); - pet.setOwner(this); + getPetsInternal().add(pet); } @Override public String toString() { return new ToStringCreator(this) - - .append("id", this.getId()) + .append("id", this.getId()) .append("lastName", this.getLastName()) .append("firstName", this.getFirstName()) .append("address", this.address) diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepository.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepository.java index d106f7cb1c..f7fd9f6d4d 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepository.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/OwnerRepository.java @@ -29,5 +29,5 @@ * @author Maciej Szarlinski */ @Repository -public interface OwnerRepository extends CosmosRepository { +public interface OwnerRepository extends CosmosRepository { } diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java index 2044f8bb60..d950e28ea5 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java @@ -16,9 +16,11 @@ package org.springframework.samples.petclinic.customers.model; import com.azure.spring.data.cosmos.core.mapping.Container; +import com.azure.spring.data.cosmos.core.mapping.GeneratedValue; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.*; import org.springframework.core.style.ToStringCreator; +import org.springframework.data.annotation.Id; import java.util.Date; @@ -35,22 +37,25 @@ @AllArgsConstructor @NoArgsConstructor public class Pet { - private Integer id; + + @Id + @GeneratedValue + private String id; private String name; private Date birthDate; - private String pettype; + private String petType; - @JsonIgnore - private Owner owner; +// @JsonIgnore +// private Owner owner; - public Integer getId() { + public String getId() { return id; } - public void setId(final Integer id) { + public void setId(final String id) { this.id = id; } @@ -71,20 +76,20 @@ public void setBirthDate(final Date birthDate) { } public String getType() { - return pettype; + return petType; } public void setType(final String type) { - this.pettype = type; - } - - public Owner getOwner() { - return owner; + this.petType = type; } - public void setOwner(final Owner owner) { - this.owner = owner; - } +// public Owner getOwner() { +// return owner; +// } +// +// public void setOwner(final Owner owner) { +// this.owner = owner; +// } @Override public String toString() { @@ -94,8 +99,8 @@ public String toString() { .append("birthDate", this.getBirthDate()) .append("type", this.getType() ) - .append("ownerFirstname", this.getOwner().getFirstName()) - .append("ownerLastname", this.getOwner().getLastName()) +// .append("ownerFirstname", this.getOwner().getFirstName()) +// .append("ownerLastname", this.getOwner().getLastName()) .toString(); } diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetRepository.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetRepository.java index f64930b922..38a3fd4355 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetRepository.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/PetRepository.java @@ -15,8 +15,11 @@ */ package org.springframework.samples.petclinic.customers.model; import com.azure.spring.data.cosmos.repository.CosmosRepository; +import com.azure.spring.data.cosmos.repository.Query; import org.springframework.stereotype.Repository; +import java.util.List; + /** * Repository class for Pet domain objects All method names are compliant with Spring Data naming * conventions so this interface can easily be extended for Spring Data See here: http://static.springsource.org/spring-data/jpa/docs/current/reference/html/jpa.repositories.html#jpa.query-methods.query-creation @@ -28,7 +31,8 @@ * @author Maciej Szarlinski */ @Repository -public interface PetRepository extends CosmosRepository { - +public interface PetRepository extends CosmosRepository { + @Query(value = "select DISTINCT VALUE p.type from Pet p") + List getPetTypes(); } diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java index 64c2326b0a..767a9dd30d 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java @@ -21,6 +21,7 @@ import org.springframework.http.HttpStatus; import org.springframework.samples.petclinic.customers.model.Owner; import org.springframework.samples.petclinic.customers.model.OwnerRepository; +import org.springframework.samples.petclinic.customers.model.Pet; import org.springframework.web.bind.annotation.*; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; @@ -54,6 +55,7 @@ class OwnerResource { @PostMapping @ResponseStatus(HttpStatus.CREATED) public Owner createOwner(@Valid @RequestBody Owner owner) { + //owner.setId((int) Math.random()); return ownerRepository.save(owner); } @@ -63,8 +65,8 @@ public Owner createOwner(@Valid @RequestBody Owner owner) { * @return */ @GetMapping(value = "/{ownerId}") - public Optional findOwner(@PathVariable("ownerId") int ownerId) { - return ownerRepository.findById(ownerId); + public Optional findOwner(@PathVariable("ownerId") String ownerId) { + return ownerRepository.findById(ownerId); } /** @@ -77,12 +79,25 @@ public List findAll() { return list; } + /** + * Read List of Owners + */ + @GetMapping(value = "/{ownerId}/pets") + public List findAllPets(@PathVariable("ownerId") String ownerId) { + Optional optionalOwner = ownerRepository.findById(ownerId); + List list = new ArrayList<>(); + if(optionalOwner.isPresent()) { + list = optionalOwner.get().getPets(); + } + return list; + } + /** * Update Owner */ @PutMapping(value = "/{ownerId}") @ResponseStatus(HttpStatus.NO_CONTENT) - public void updateOwner(@PathVariable("ownerId") int ownerId, @Valid @RequestBody Owner ownerRequest) { + public void updateOwner(@PathVariable("ownerId") String ownerId, @Valid @RequestBody Owner ownerRequest) { Optional ownerOptional = ownerRepository.findById(ownerId); ownerOptional.ifPresent(owner -> { owner.setFirstName(ownerRequest.getFirstName()); diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetDetails.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetDetails.java index 639d62d8b5..94accb7909 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetDetails.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetDetails.java @@ -29,11 +29,11 @@ @Data class PetDetails { - private long id; + private String id; private String name; - private String owner; +// private String owner; @DateTimeFormat(pattern = "yyyy-MM-dd") private Date birthDate; @@ -44,7 +44,7 @@ class PetDetails { petInfo.ifPresent(pet -> { this.id = pet.getId(); this.name = pet.getName(); - this.owner = pet.getOwner().getFirstName() + " " + pet.getOwner().getLastName(); + // this.owner = pet.getOwner().getFirstName() + " " + pet.getOwner().getLastName(); this.birthDate = pet.getBirthDate(); this.type = pet.getType(); }); diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetRequest.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetRequest.java index 6e3bd8c4f8..fda5af0b8e 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetRequest.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetRequest.java @@ -28,7 +28,7 @@ */ @Data class PetRequest { - private int id; + private String id; @JsonFormat(pattern = "yyyy-MM-dd") private Date birthDate; diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java index 15ef868bff..c47715b7b5 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/PetResource.java @@ -26,6 +26,7 @@ import org.springframework.web.bind.annotation.*; import reactor.core.publisher.Mono; +import java.util.List; import java.util.Optional; /** @@ -43,11 +44,17 @@ class PetResource { private final PetRepository petRepository; private final OwnerRepository ownerRepository; + @GetMapping("/petTypes") + public List getPetTypes() { + List petTypes = petRepository.getPetTypes(); + return petTypes; + } + @PostMapping("/owners/{ownerId}/pets") @ResponseStatus(HttpStatus.CREATED) public Pet processCreationForm( @RequestBody PetRequest petRequest, - @PathVariable("ownerId") int ownerId) { + @PathVariable("ownerId") String ownerId) { final Pet pet = new Pet(); Optional optionalOwner = ownerRepository.findById(ownerId); @@ -61,7 +68,7 @@ public Pet processCreationForm( @PutMapping("/owners/*/pets/{petId}") @ResponseStatus(HttpStatus.NO_CONTENT) public void processUpdateForm(@RequestBody PetRequest petRequest) { - int petId = petRequest.getId(); + String petId = petRequest.getId(); Optional petOptional = findPetById(petId); petOptional.ifPresent(pet -> { save(pet, petRequest); @@ -79,12 +86,11 @@ private Pet save(final Pet pet, final PetRequest petRequest) { } @GetMapping("owners/*/pets/{petId}") - public PetDetails findPet(@PathVariable("petId") int petId) { + public PetDetails findPet(@PathVariable("petId") String petId) { return new PetDetails(findPetById(petId)); } - - private Optional findPetById(int petId) { + private Optional findPetById(String petId) { Optional optionalPet = petRepository.findById(petId); if (!optionalPet.isPresent()) { diff --git a/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceTest.java b/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceTest.java index 2c7fd240e3..5303a41981 100644 --- a/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceTest.java +++ b/spring-petclinic-customers-service/src/test/java/org/springframework/samples/petclinic/customers/web/PetResourceTest.java @@ -49,7 +49,7 @@ void shouldGetAPetInJSonFormat() throws Exception { Pet pet = setupPet(); - given(petRepository.findById(2)).willReturn(Optional.of(pet)); + given(petRepository.findById("2")).willReturn(Optional.of(pet)); mvc.perform(get("/owners/2/pets/2").accept(MediaType.APPLICATION_JSON)) @@ -68,7 +68,7 @@ private Pet setupPet() { pet.setName("Basil"); - pet.setId(2); + pet.setId("2"); pet.setType("dog"); diff --git a/spring-petclinic-discovery-server/src/main/resources/bootstrap.yml b/spring-petclinic-discovery-server/src/main/resources/bootstrap.yml index 5ee836c5b1..eb4b0653ca 100644 --- a/spring-petclinic-discovery-server/src/main/resources/bootstrap.yml +++ b/spring-petclinic-discovery-server/src/main/resources/bootstrap.yml @@ -17,3 +17,5 @@ spring: cloud: config: uri: http://localhost:8888 +server: + port: 8090 diff --git a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Specialty.java b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Specialty.java index a64df3de81..05fa560dac 100644 --- a/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Specialty.java +++ b/spring-petclinic-vets-service/src/main/java/org/springframework/samples/petclinic/vets/model/Specialty.java @@ -27,7 +27,7 @@ */ @AllArgsConstructor @NoArgsConstructor -public class Specialty { +public class Specialty { @Id private Integer id; diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/PopulateSeedData.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/PopulateSeedData.java index dded903816..faea99b3c9 100644 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/PopulateSeedData.java +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/PopulateSeedData.java @@ -30,10 +30,10 @@ public class PopulateSeedData { @PostConstruct // @Order(2) // not evaluated by Spring public void populateSeedData() throws ParseException { - final Visit visit1 = new Visit(1, 7, new SimpleDateFormat("yyyy-dd-mm").parse("2010-03-04"), "rabies shot"); - final Visit visit2 = new Visit(2, 8, new SimpleDateFormat("yyyy-dd-mm").parse("2011-03-04"), "rabies shot"); - final Visit visit3 = new Visit(3, 8, new SimpleDateFormat("yyyy-dd-mm").parse("2009-06-04"), "neutered"); - final Visit visit4 = new Visit(4, 7, new SimpleDateFormat("yyyy-dd-mm").parse("2008-09-04"), "spayed"); + final Visit visit1 = new Visit("1", "7", new SimpleDateFormat("yyyy-dd-MM").parse("2010-03-04"), "rabies shot"); + final Visit visit2 = new Visit("2", "8", new SimpleDateFormat("yyyy-dd-MM").parse("2011-03-04"), "rabies shot"); + final Visit visit3 = new Visit("3", "8", new SimpleDateFormat("yyyy-dd-MM").parse("2009-06-04"), "neutered"); + final Visit visit4 = new Visit("4", "7", new SimpleDateFormat("yyyy-dd-MM").parse("2008-09-04"), "spayed"); this.visitRepository.saveAll(Lists.newArrayList(visit1, visit2, visit3, visit4)); } diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/Visit.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/Visit.java index 2a40993476..9c91e411cd 100644 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/Visit.java +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/model/Visit.java @@ -16,14 +16,15 @@ package org.springframework.samples.petclinic.visits.model; import com.azure.spring.data.cosmos.core.mapping.Container; +import com.azure.spring.data.cosmos.core.mapping.GeneratedValue; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.NoArgsConstructor; import org.springframework.data.annotation.Id; -import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; +import javax.persistence.criteria.CriteriaBuilder; import javax.validation.constraints.Size; import java.util.Date; @@ -41,10 +42,10 @@ public class Visit { @Id - @GeneratedValue(strategy = GenerationType.IDENTITY) - private Integer id; + @GeneratedValue + private String id; - private int petId; + private String petId; @Builder.Default @JsonFormat(pattern = "yyyy-MM-dd") @@ -54,11 +55,11 @@ public class Visit { private String description; - public void setId(int id) { + public void setId(String id) { this.id = id; } - public Integer getId() { + public String getId() { return id; } @@ -70,11 +71,11 @@ public String getDescription() { return description; } - public int getPetId() { + public String getPetId() { return petId; } - public void setPetId(final int petId) { + public void setPetId(final String petId) { this.petId = petId; } diff --git a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java index 9b6f554d1b..00fb1c98bf 100644 --- a/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java +++ b/spring-petclinic-visits-service/src/main/java/org/springframework/samples/petclinic/visits/web/VisitResource.java @@ -49,7 +49,7 @@ class VisitResource { @ResponseStatus(HttpStatus.CREATED) Visit create( @Valid @RequestBody Visit visit, - @PathVariable("petId") int petId) { + @PathVariable("petId") String petId) { visit.setPetId(petId); log.info("Saving visit {}", visit); diff --git a/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/web/VisitResourceTest.java b/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/web/VisitResourceTest.java index f1b19aa450..645add0e70 100644 --- a/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/web/VisitResourceTest.java +++ b/spring-petclinic-visits-service/src/test/java/org/springframework/samples/petclinic/visits/web/VisitResourceTest.java @@ -40,16 +40,16 @@ public class VisitResourceTest { @Test void shouldFetchVisits() throws Exception { - List list = Arrays.asList(visit().id(1).petId(111).build(), - visit().id(2).petId(222).build() + List list = Arrays.asList(visit().id("1").petId("111").build(), + visit().id("2").petId("222").build() ); when(visitRepository.findAllById(asList(111, 222))).thenReturn(list); mvc.perform(get("/pets/visits?petId=111,222")) .andExpect(status().isOk()) - .andExpect(jsonPath("$.items[0].id").value(1)) - .andExpect(jsonPath("$.items[1].id").value(2)) - .andExpect(jsonPath("$.items[0].petId").value(111)) - .andExpect(jsonPath("$.items[1].petId").value(222)); + .andExpect(jsonPath("$.items[0].id").value("1")) + .andExpect(jsonPath("$.items[1].id").value("2")) + .andExpect(jsonPath("$.items[0].petId").value("111")) + .andExpect(jsonPath("$.items[1].petId").value("222")); } } From 3251990bdf60dc07809716f82f8edafb1be5322a Mon Sep 17 00:00:00 2001 From: VaijanathB Date: Tue, 2 Mar 2021 00:13:15 -0800 Subject: [PATCH 07/21] Implemented starter for redis cache and associated changes. Incorporated KeyVault starter. Removed unused data files. --- .../src/main/resources/bootstrap.yml | 9 ++++-- .../src/main/resources/application.yml | 6 ++-- .../src/main/resources/bootstrap.yml | 6 ++++ spring-petclinic-customers-service/pom.xml | 9 ++++++ .../CustomersServiceApplication.java | 2 ++ .../petclinic/customers/model/Owner.java | 3 +- .../petclinic/customers/model/Pet.java | 3 +- .../customers/web/OwnerResource.java | 13 +++++++- .../src/main/resources/application.properties | 17 +++++++--- .../src/main/resources/bootstrap.yml | 8 +++-- .../src/main/resources/db/hsqldb/data.sql | 31 ------------------- .../src/main/resources/db/hsqldb/schema.sql | 30 ------------------ .../src/main/resources/db/mysql/data.sql | 31 ------------------- .../src/main/resources/db/mysql/schema.sql | 31 ------------------- .../src/main/resources/bootstrap.yml | 2 +- spring-petclinic-vets-service/pom.xml | 5 +++ .../src/main/resources/application.properties | 7 ++--- .../src/main/resources/bootstrap.yml | 8 ++++- .../src/main/resources/db/hsqldb/data.sql | 16 ---------- .../src/main/resources/db/hsqldb/schema.sql | 23 -------------- .../src/main/resources/db/mysql/data.sql | 16 ---------- .../src/main/resources/db/mysql/schema.sql | 25 --------------- spring-petclinic-visits-service/pom.xml | 6 +++- .../src/main/resources/application.properties | 18 +++++++++-- .../src/main/resources/bootstrap.yml | 6 +++- 25 files changed, 103 insertions(+), 228 deletions(-) delete mode 100644 spring-petclinic-customers-service/src/main/resources/db/hsqldb/data.sql delete mode 100644 spring-petclinic-customers-service/src/main/resources/db/hsqldb/schema.sql delete mode 100644 spring-petclinic-customers-service/src/main/resources/db/mysql/data.sql delete mode 100644 spring-petclinic-customers-service/src/main/resources/db/mysql/schema.sql delete mode 100644 spring-petclinic-vets-service/src/main/resources/db/hsqldb/data.sql delete mode 100644 spring-petclinic-vets-service/src/main/resources/db/hsqldb/schema.sql delete mode 100644 spring-petclinic-vets-service/src/main/resources/db/mysql/data.sql delete mode 100644 spring-petclinic-vets-service/src/main/resources/db/mysql/schema.sql diff --git a/spring-petclinic-admin-server/src/main/resources/bootstrap.yml b/spring-petclinic-admin-server/src/main/resources/bootstrap.yml index 50e201c188..690d11c0d6 100644 --- a/spring-petclinic-admin-server/src/main/resources/bootstrap.yml +++ b/spring-petclinic-admin-server/src/main/resources/bootstrap.yml @@ -15,6 +15,11 @@ spring: profiles: local cloud: config: - uri: http://config-server:8888 + uri: http://localhost:8888 +eureka: + client: + serviceUrl: + defaultZone: http://localhost:8761/eureka/ server: - port: 8081 + port: 9090 + diff --git a/spring-petclinic-api-gateway/src/main/resources/application.yml b/spring-petclinic-api-gateway/src/main/resources/application.yml index 9e24f6a6e6..c0f79c4630 100644 --- a/spring-petclinic-api-gateway/src/main/resources/application.yml +++ b/spring-petclinic-api-gateway/src/main/resources/application.yml @@ -61,19 +61,19 @@ spring: gateway: routes: - id: vets-service - uri: http://localhost:8082 + uri: http://localhost:8083 predicates: - Path=/api/vet/** filters: - StripPrefix=2 - id: visits-service - uri: http://localhost:8083 + uri: http://localhost:8082 predicates: - Path=/api/visit/** filters: - StripPrefix=2 - id: customers-service - uri: http://localhost:8089 + uri: http://localhost:8081 predicates: - Path=/api/customer/** filters: diff --git a/spring-petclinic-api-gateway/src/main/resources/bootstrap.yml b/spring-petclinic-api-gateway/src/main/resources/bootstrap.yml index 4103977fe7..3b646f220a 100644 --- a/spring-petclinic-api-gateway/src/main/resources/bootstrap.yml +++ b/spring-petclinic-api-gateway/src/main/resources/bootstrap.yml @@ -18,5 +18,11 @@ spring: cloud: config: uri: http://localhost:8888 +eureka: + client: + serviceUrl: + defaultZone: http://localhost:8761/eureka/ server: port: 8080 + + diff --git a/spring-petclinic-customers-service/pom.xml b/spring-petclinic-customers-service/pom.xml index 2110cb41a4..2f6b8285b9 100644 --- a/spring-petclinic-customers-service/pom.xml +++ b/spring-petclinic-customers-service/pom.xml @@ -40,10 +40,19 @@ azure-spring-data-cosmos 3.2.0 + + com.azure.spring + azure-spring-boot-starter-keyvault-secrets + 3.1.0 + org.springframework.data spring-data-rest-core + + org.springframework.boot + spring-boot-starter-data-redis + diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/CustomersServiceApplication.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/CustomersServiceApplication.java index 266b314df8..3f416bc2c4 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/CustomersServiceApplication.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/CustomersServiceApplication.java @@ -18,6 +18,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.samples.petclinic.customers.model.OwnerRepository; import org.springframework.samples.petclinic.customers.model.PetRepository; @@ -25,6 +26,7 @@ /** * @author Maciej Szarlinski */ +@EnableCaching @EnableDiscoveryClient @SpringBootApplication public class CustomersServiceApplication { diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java index 834d9631cd..498a197a37 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Owner.java @@ -30,6 +30,7 @@ import javax.validation.constraints.Digits; import javax.validation.constraints.NotEmpty; +import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; import java.util.HashSet; @@ -50,7 +51,7 @@ @Setter @AllArgsConstructor @NoArgsConstructor -public class Owner { +public class Owner implements Serializable { @Id @GeneratedValue diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java index d950e28ea5..8e8925a173 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/model/Pet.java @@ -22,6 +22,7 @@ import org.springframework.core.style.ToStringCreator; import org.springframework.data.annotation.Id; +import java.io.Serializable; import java.util.Date; /** @@ -36,7 +37,7 @@ @Builder(builderMethodName = "pet") @AllArgsConstructor @NoArgsConstructor -public class Pet { +public class Pet implements Serializable { @Id @GeneratedValue diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java index 767a9dd30d..eed697daaa 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java @@ -18,6 +18,8 @@ import io.micrometer.core.annotation.Timed; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.annotation.CacheEvict; +import org.springframework.cache.annotation.Cacheable; import org.springframework.http.HttpStatus; import org.springframework.samples.petclinic.customers.model.Owner; import org.springframework.samples.petclinic.customers.model.OwnerRepository; @@ -55,7 +57,6 @@ class OwnerResource { @PostMapping @ResponseStatus(HttpStatus.CREATED) public Owner createOwner(@Valid @RequestBody Owner owner) { - //owner.setId((int) Math.random()); return ownerRepository.save(owner); } @@ -73,12 +74,22 @@ public Optional findOwner(@PathVariable("ownerId") String ownerId) { * Read List of Owners */ @GetMapping + @Cacheable("owners") public List findAll() { List list = new ArrayList<>(); ownerRepository.findAll().forEach(list::add); return list; } + /** + * Clears the cache for all Owners + */ + @GetMapping(value = "/clearcache") + @CacheEvict("owners") + @ResponseStatus(HttpStatus.NO_CONTENT) + public void clearAllCache() { + } + /** * Read List of Owners */ diff --git a/spring-petclinic-customers-service/src/main/resources/application.properties b/spring-petclinic-customers-service/src/main/resources/application.properties index 6167b80330..6148e99910 100644 --- a/spring-petclinic-customers-service/src/main/resources/application.properties +++ b/spring-petclinic-customers-service/src/main/resources/application.properties @@ -1,7 +1,16 @@ -azure.cosmosdb.uri=${ACCOUNT_HOST} -azure.cosmosdb.key=${ACCOUNT_KEY} -azure.cosmosdb.secondaryKey=${SECONDARY_ACCOUNT_KEY} - +azure.cosmosdb.uri=https://end2endsample.documents.azure.com:443/ +azure.cosmosdb.key=8X01rGcUTAvwu5FTERE0skxdRvhkGjSIjuwgNagdqW5jRhB9DVhTAJxy4ulmZcSpGII6fTRtqeol3SjowyNf1Q== +azure.cosmosdb.secondaryKey=mTVkb28AZPbiZvWuM7xsjAF1I9w3cotlENQRMdwLNkZaQrBUw7vWFEbdZm7LiQUNz3j0auLrDHKS8rJq6yayJg== azure.cosmosdb.database=end2endsample # Populate query metrics cosmos.queryMetricsEnabled=true + +# Azure redis cache properties +spring.cache.type=redis +spring.redis.host=end2endredis.redis.cache.windows.net +spring.redis.password=vOwjYOyEghFjCDHJdTzkjNtxBJo8oxoIXdIjqWQeVQo= +spring.redis.port=6380 +spring.redis.ssl=true +#spring.redis.timeout=60000 + + diff --git a/spring-petclinic-customers-service/src/main/resources/bootstrap.yml b/spring-petclinic-customers-service/src/main/resources/bootstrap.yml index ddd58a7645..476bc55781 100644 --- a/spring-petclinic-customers-service/src/main/resources/bootstrap.yml +++ b/spring-petclinic-customers-service/src/main/resources/bootstrap.yml @@ -20,6 +20,10 @@ spring: profiles: local cloud: config: - uri: http://config-server:8888 + uri: http://localhost:8888 server: - port: 8089 + port: 8081 +eureka: + client: + serviceUrl: + defaultZone: http://localhost:8761/eureka/ diff --git a/spring-petclinic-customers-service/src/main/resources/db/hsqldb/data.sql b/spring-petclinic-customers-service/src/main/resources/db/hsqldb/data.sql deleted file mode 100644 index 676b55f3d6..0000000000 --- a/spring-petclinic-customers-service/src/main/resources/db/hsqldb/data.sql +++ /dev/null @@ -1,31 +0,0 @@ -INSERT INTO types VALUES (1, 'cat'); -INSERT INTO types VALUES (2, 'dog'); -INSERT INTO types VALUES (3, 'lizard'); -INSERT INTO types VALUES (4, 'snake'); -INSERT INTO types VALUES (5, 'bird'); -INSERT INTO types VALUES (6, 'hamster'); - -INSERT INTO owners VALUES (1, 'George', 'Franklin', '110 W. Liberty St.', 'Madison', '6085551023'); -INSERT INTO owners VALUES (2, 'Betty', 'Davis', '638 Cardinal Ave.', 'Sun Prairie', '6085551749'); -INSERT INTO owners VALUES (3, 'Eduardo', 'Rodriquez', '2693 Commerce St.', 'McFarland', '6085558763'); -INSERT INTO owners VALUES (4, 'Harold', 'Davis', '563 Friendly St.', 'Windsor', '6085553198'); -INSERT INTO owners VALUES (5, 'Peter', 'McTavish', '2387 S. Fair Way', 'Madison', '6085552765'); -INSERT INTO owners VALUES (6, 'Jean', 'Coleman', '105 N. Lake St.', 'Monona', '6085552654'); -INSERT INTO owners VALUES (7, 'Jeff', 'Black', '1450 Oak Blvd.', 'Monona', '6085555387'); -INSERT INTO owners VALUES (8, 'Maria', 'Escobito', '345 Maple St.', 'Madison', '6085557683'); -INSERT INTO owners VALUES (9, 'David', 'Schroeder', '2749 Blackhawk Trail', 'Madison', '6085559435'); -INSERT INTO owners VALUES (10, 'Carlos', 'Estaban', '2335 Independence La.', 'Waunakee', '6085555487'); - -INSERT INTO pets VALUES (1, 'Leo', '2010-09-07', 1, 1); -INSERT INTO pets VALUES (2, 'Basil', '2012-08-06', 6, 2); -INSERT INTO pets VALUES (3, 'Rosy', '2011-04-17', 2, 3); -INSERT INTO pets VALUES (4, 'Jewel', '2010-03-07', 2, 3); -INSERT INTO pets VALUES (5, 'Iggy', '2010-11-30', 3, 4); -INSERT INTO pets VALUES (6, 'George', '2010-01-20', 4, 5); -INSERT INTO pets VALUES (7, 'Samantha', '2012-09-04', 1, 6); -INSERT INTO pets VALUES (8, 'Max', '2012-09-04', 1, 6); -INSERT INTO pets VALUES (9, 'Lucky', '2011-08-06', 5, 7); -INSERT INTO pets VALUES (10, 'Mulligan', '2007-02-24', 2, 8); -INSERT INTO pets VALUES (11, 'Freddy', '2010-03-09', 5, 9); -INSERT INTO pets VALUES (12, 'Lucky', '2010-06-24', 2, 10); -INSERT INTO pets VALUES (13, 'Sly', '2012-06-08', 1, 10); diff --git a/spring-petclinic-customers-service/src/main/resources/db/hsqldb/schema.sql b/spring-petclinic-customers-service/src/main/resources/db/hsqldb/schema.sql deleted file mode 100644 index 9aa6666bf9..0000000000 --- a/spring-petclinic-customers-service/src/main/resources/db/hsqldb/schema.sql +++ /dev/null @@ -1,30 +0,0 @@ -DROP TABLE pets IF EXISTS; -DROP TABLE types IF EXISTS; -DROP TABLE owners IF EXISTS; - -CREATE TABLE types ( - id INTEGER IDENTITY PRIMARY KEY, - name VARCHAR(80) -); -CREATE INDEX types_name ON types (name); - -CREATE TABLE owners ( - id INTEGER IDENTITY PRIMARY KEY, - first_name VARCHAR(30), - last_name VARCHAR(30), - address VARCHAR(255), - city VARCHAR(80), - telephone VARCHAR(20) -); -CREATE INDEX owners_last_name ON owners (last_name); - -CREATE TABLE pets ( - id INTEGER IDENTITY PRIMARY KEY, - name VARCHAR(30), - birth_date DATE, - type_id INTEGER NOT NULL, - owner_id INTEGER NOT NULL -); -ALTER TABLE pets ADD CONSTRAINT fk_pets_owners FOREIGN KEY (owner_id) REFERENCES owners (id); -ALTER TABLE pets ADD CONSTRAINT fk_pets_types FOREIGN KEY (type_id) REFERENCES types (id); -CREATE INDEX pets_name ON pets (name); diff --git a/spring-petclinic-customers-service/src/main/resources/db/mysql/data.sql b/spring-petclinic-customers-service/src/main/resources/db/mysql/data.sql deleted file mode 100644 index d6e91b1b34..0000000000 --- a/spring-petclinic-customers-service/src/main/resources/db/mysql/data.sql +++ /dev/null @@ -1,31 +0,0 @@ -INSERT IGNORE INTO types VALUES (1, 'cat'); -INSERT IGNORE INTO types VALUES (2, 'dog'); -INSERT IGNORE INTO types VALUES (3, 'lizard'); -INSERT IGNORE INTO types VALUES (4, 'snake'); -INSERT IGNORE INTO types VALUES (5, 'bird'); -INSERT IGNORE INTO types VALUES (6, 'hamster'); - -INSERT IGNORE INTO owners VALUES (1, 'George', 'Franklin', '110 W. Liberty St.', 'Madison', '6085551023'); -INSERT IGNORE INTO owners VALUES (2, 'Betty', 'Davis', '638 Cardinal Ave.', 'Sun Prairie', '6085551749'); -INSERT IGNORE INTO owners VALUES (3, 'Eduardo', 'Rodriquez', '2693 Commerce St.', 'McFarland', '6085558763'); -INSERT IGNORE INTO owners VALUES (4, 'Harold', 'Davis', '563 Friendly St.', 'Windsor', '6085553198'); -INSERT IGNORE INTO owners VALUES (5, 'Peter', 'McTavish', '2387 S. Fair Way', 'Madison', '6085552765'); -INSERT IGNORE INTO owners VALUES (6, 'Jean', 'Coleman', '105 N. Lake St.', 'Monona', '6085552654'); -INSERT IGNORE INTO owners VALUES (7, 'Jeff', 'Black', '1450 Oak Blvd.', 'Monona', '6085555387'); -INSERT IGNORE INTO owners VALUES (8, 'Maria', 'Escobito', '345 Maple St.', 'Madison', '6085557683'); -INSERT IGNORE INTO owners VALUES (9, 'David', 'Schroeder', '2749 Blackhawk Trail', 'Madison', '6085559435'); -INSERT IGNORE INTO owners VALUES (10, 'Carlos', 'Estaban', '2335 Independence La.', 'Waunakee', '6085555487'); - -INSERT IGNORE INTO pets VALUES (1, 'Leo', '2000-09-07', 1, 1); -INSERT IGNORE INTO pets VALUES (2, 'Basil', '2002-08-06', 6, 2); -INSERT IGNORE INTO pets VALUES (3, 'Rosy', '2001-04-17', 2, 3); -INSERT IGNORE INTO pets VALUES (4, 'Jewel', '2000-03-07', 2, 3); -INSERT IGNORE INTO pets VALUES (5, 'Iggy', '2000-11-30', 3, 4); -INSERT IGNORE INTO pets VALUES (6, 'George', '2000-01-20', 4, 5); -INSERT IGNORE INTO pets VALUES (7, 'Samantha', '1995-09-04', 1, 6); -INSERT IGNORE INTO pets VALUES (8, 'Max', '1995-09-04', 1, 6); -INSERT IGNORE INTO pets VALUES (9, 'Lucky', '1999-08-06', 5, 7); -INSERT IGNORE INTO pets VALUES (10, 'Mulligan', '1997-02-24', 2, 8); -INSERT IGNORE INTO pets VALUES (11, 'Freddy', '2000-03-09', 5, 9); -INSERT IGNORE INTO pets VALUES (12, 'Lucky', '2000-06-24', 2, 10); -INSERT IGNORE INTO pets VALUES (13, 'Sly', '2002-06-08', 1, 10); diff --git a/spring-petclinic-customers-service/src/main/resources/db/mysql/schema.sql b/spring-petclinic-customers-service/src/main/resources/db/mysql/schema.sql deleted file mode 100644 index 720913829a..0000000000 --- a/spring-petclinic-customers-service/src/main/resources/db/mysql/schema.sql +++ /dev/null @@ -1,31 +0,0 @@ -CREATE DATABASE IF NOT EXISTS petclinic; -GRANT ALL PRIVILEGES ON petclinic.* TO pc@localhost IDENTIFIED BY 'pc'; - -USE petclinic; - -CREATE TABLE IF NOT EXISTS types ( - id INT(4) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - name VARCHAR(80), - INDEX(name) -) engine=InnoDB; - -CREATE TABLE IF NOT EXISTS owners ( - id INT(4) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - first_name VARCHAR(30), - last_name VARCHAR(30), - address VARCHAR(255), - city VARCHAR(80), - telephone VARCHAR(20), - INDEX(last_name) -) engine=InnoDB; - -CREATE TABLE IF NOT EXISTS pets ( - id INT(4) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - name VARCHAR(30), - birth_date DATE, - type_id INT(4) UNSIGNED NOT NULL, - owner_id INT(4) UNSIGNED NOT NULL, - INDEX(name), - FOREIGN KEY (owner_id) REFERENCES owners(id), - FOREIGN KEY (type_id) REFERENCES types(id) -) engine=InnoDB; diff --git a/spring-petclinic-discovery-server/src/main/resources/bootstrap.yml b/spring-petclinic-discovery-server/src/main/resources/bootstrap.yml index eb4b0653ca..a0a0b0d4a3 100644 --- a/spring-petclinic-discovery-server/src/main/resources/bootstrap.yml +++ b/spring-petclinic-discovery-server/src/main/resources/bootstrap.yml @@ -18,4 +18,4 @@ spring: config: uri: http://localhost:8888 server: - port: 8090 + port: 8761 diff --git a/spring-petclinic-vets-service/pom.xml b/spring-petclinic-vets-service/pom.xml index 6d2d5c056c..61edd128f0 100644 --- a/spring-petclinic-vets-service/pom.xml +++ b/spring-petclinic-vets-service/pom.xml @@ -94,6 +94,11 @@ azure-spring-data-cosmos 3.2.0 + + com.azure.spring + azure-spring-boot-starter-keyvault-secrets + 3.1.0 + org.springframework.data spring-data-rest-core diff --git a/spring-petclinic-vets-service/src/main/resources/application.properties b/spring-petclinic-vets-service/src/main/resources/application.properties index be62836ed1..4d17297346 100644 --- a/spring-petclinic-vets-service/src/main/resources/application.properties +++ b/spring-petclinic-vets-service/src/main/resources/application.properties @@ -1,8 +1,7 @@ spring.cache.cache-names=vets -azure.cosmosdb.uri=${ACCOUNT_HOST} -azure.cosmosdb.key=${ACCOUNT_KEY} -azure.cosmosdb.secondaryKey=${SECONDARY_ACCOUNT_KEY} - +azure.cosmosdb.uri=https://end2endsample.documents.azure.com:443/ +azure.cosmosdb.key=8X01rGcUTAvwu5FTERE0skxdRvhkGjSIjuwgNagdqW5jRhB9DVhTAJxy4ulmZcSpGII6fTRtqeol3SjowyNf1Q== +azure.cosmosdb.secondaryKey=mTVkb28AZPbiZvWuM7xsjAF1I9w3cotlENQRMdwLNkZaQrBUw7vWFEbdZm7LiQUNz3j0auLrDHKS8rJq6yayJg== azure.cosmosdb.database=end2endsample # Populate query metrics cosmos.queryMetricsEnabled=true diff --git a/spring-petclinic-vets-service/src/main/resources/bootstrap.yml b/spring-petclinic-vets-service/src/main/resources/bootstrap.yml index f7a54171bf..477d86f297 100644 --- a/spring-petclinic-vets-service/src/main/resources/bootstrap.yml +++ b/spring-petclinic-vets-service/src/main/resources/bootstrap.yml @@ -20,5 +20,11 @@ spring: cloud: config: uri: http://localhost:8888 + zipkin: + baseUrl: http://localhost:9411 +eureka: + client: + serviceUrl: + defaultZone: http://localhost:8761/eureka/ server: - port: 8082 + port: 8083 diff --git a/spring-petclinic-vets-service/src/main/resources/db/hsqldb/data.sql b/spring-petclinic-vets-service/src/main/resources/db/hsqldb/data.sql deleted file mode 100644 index e6658a527e..0000000000 --- a/spring-petclinic-vets-service/src/main/resources/db/hsqldb/data.sql +++ /dev/null @@ -1,16 +0,0 @@ -INSERT INTO vets VALUES (1, 'James', 'Carter'); -INSERT INTO vets VALUES (2, 'Helen', 'Leary'); -INSERT INTO vets VALUES (3, 'Linda', 'Douglas'); -INSERT INTO vets VALUES (4, 'Rafael', 'Ortega'); -INSERT INTO vets VALUES (5, 'Henry', 'Stevens'); -INSERT INTO vets VALUES (6, 'Sharon', 'Jenkins'); - -INSERT INTO specialties VALUES (1, 'radiology'); -INSERT INTO specialties VALUES (2, 'surgery'); -INSERT INTO specialties VALUES (3, 'dentistry'); - -INSERT INTO vet_specialties VALUES (2, 1); -INSERT INTO vet_specialties VALUES (3, 2); -INSERT INTO vet_specialties VALUES (3, 3); -INSERT INTO vet_specialties VALUES (4, 2); -INSERT INTO vet_specialties VALUES (5, 1); diff --git a/spring-petclinic-vets-service/src/main/resources/db/hsqldb/schema.sql b/spring-petclinic-vets-service/src/main/resources/db/hsqldb/schema.sql deleted file mode 100644 index eb916e1b7b..0000000000 --- a/spring-petclinic-vets-service/src/main/resources/db/hsqldb/schema.sql +++ /dev/null @@ -1,23 +0,0 @@ -DROP TABLE vet_specialties IF EXISTS; -DROP TABLE vets IF EXISTS; -DROP TABLE specialties IF EXISTS; - -CREATE TABLE vets ( - id INTEGER IDENTITY PRIMARY KEY, - first_name VARCHAR(30), - last_name VARCHAR(30) -); -CREATE INDEX vets_last_name ON vets (last_name); - -CREATE TABLE specialties ( - id INTEGER IDENTITY PRIMARY KEY, - name VARCHAR(80) -); -CREATE INDEX specialties_name ON specialties (name); - -CREATE TABLE vet_specialties ( - vet_id INTEGER NOT NULL, - specialty_id INTEGER NOT NULL -); -ALTER TABLE vet_specialties ADD CONSTRAINT fk_vet_specialties_vets FOREIGN KEY (vet_id) REFERENCES vets (id); -ALTER TABLE vet_specialties ADD CONSTRAINT fk_vet_specialties_specialties FOREIGN KEY (specialty_id) REFERENCES specialties (id); diff --git a/spring-petclinic-vets-service/src/main/resources/db/mysql/data.sql b/spring-petclinic-vets-service/src/main/resources/db/mysql/data.sql deleted file mode 100644 index 9159eca22e..0000000000 --- a/spring-petclinic-vets-service/src/main/resources/db/mysql/data.sql +++ /dev/null @@ -1,16 +0,0 @@ -INSERT IGNORE INTO vets VALUES (1, 'James', 'Carter'); -INSERT IGNORE INTO vets VALUES (2, 'Helen', 'Leary'); -INSERT IGNORE INTO vets VALUES (3, 'Linda', 'Douglas'); -INSERT IGNORE INTO vets VALUES (4, 'Rafael', 'Ortega'); -INSERT IGNORE INTO vets VALUES (5, 'Henry', 'Stevens'); -INSERT IGNORE INTO vets VALUES (6, 'Sharon', 'Jenkins'); - -INSERT IGNORE INTO specialties VALUES (1, 'radiology'); -INSERT IGNORE INTO specialties VALUES (2, 'surgery'); -INSERT IGNORE INTO specialties VALUES (3, 'dentistry'); - -INSERT IGNORE INTO vet_specialties VALUES (2, 1); -INSERT IGNORE INTO vet_specialties VALUES (3, 2); -INSERT IGNORE INTO vet_specialties VALUES (3, 3); -INSERT IGNORE INTO vet_specialties VALUES (4, 2); -INSERT IGNORE INTO vet_specialties VALUES (5, 1); diff --git a/spring-petclinic-vets-service/src/main/resources/db/mysql/schema.sql b/spring-petclinic-vets-service/src/main/resources/db/mysql/schema.sql deleted file mode 100644 index 4f9af3d1bd..0000000000 --- a/spring-petclinic-vets-service/src/main/resources/db/mysql/schema.sql +++ /dev/null @@ -1,25 +0,0 @@ -CREATE DATABASE IF NOT EXISTS petclinic; -GRANT ALL PRIVILEGES ON petclinic.* TO pc@localhost IDENTIFIED BY 'pc'; - -USE petclinic; - -CREATE TABLE IF NOT EXISTS vets ( - id INT(4) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - first_name VARCHAR(30), - last_name VARCHAR(30), - INDEX(last_name) -) engine=InnoDB; - -CREATE TABLE IF NOT EXISTS specialties ( - id INT(4) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, - name VARCHAR(80), - INDEX(name) -) engine=InnoDB; - -CREATE TABLE IF NOT EXISTS vet_specialties ( - vet_id INT(4) UNSIGNED NOT NULL, - specialty_id INT(4) UNSIGNED NOT NULL, - FOREIGN KEY (vet_id) REFERENCES vets(id), - FOREIGN KEY (specialty_id) REFERENCES specialties(id), - UNIQUE (vet_id,specialty_id) -) engine=InnoDB; diff --git a/spring-petclinic-visits-service/pom.xml b/spring-petclinic-visits-service/pom.xml index b0c7af8ca8..5b2b8328b1 100644 --- a/spring-petclinic-visits-service/pom.xml +++ b/spring-petclinic-visits-service/pom.xml @@ -112,7 +112,11 @@ com.azure azure-spring-data-cosmos 3.2.0 - compile + + + com.azure.spring + azure-spring-boot-starter-keyvault-secrets + 3.1.0 diff --git a/spring-petclinic-visits-service/src/main/resources/application.properties b/spring-petclinic-visits-service/src/main/resources/application.properties index 6167b80330..4b2fb4bb92 100644 --- a/spring-petclinic-visits-service/src/main/resources/application.properties +++ b/spring-petclinic-visits-service/src/main/resources/application.properties @@ -1,7 +1,19 @@ -azure.cosmosdb.uri=${ACCOUNT_HOST} -azure.cosmosdb.key=${ACCOUNT_KEY} -azure.cosmosdb.secondaryKey=${SECONDARY_ACCOUNT_KEY} +azure.keyvault.enabled=true +azure.keyvault.uri=put-your-azure-keyvault-uri-here +azure.keyvault.client-id=put-your-azure-client-id-here +azure.keyvault.client-key=put-your-azure-client-key-here +azure.keyvault.tenant-id=put-your-azure-tenant-id-here +azure.keyvault.token-acquire-timeout-seconds=60 +azure.keyvault.refresh-interval=1800000 +azure.keyvault.secret-keys=cosmosdburi,cosmosdbkey,cosmosdbsecondarykey + + +azure.cosmosdb.uri=${cosmosdburi} +azure.cosmosdb.key=${cosmosdbkey} +azure.cosmosdb.secondaryKey=${cosmosdbsecondarykey} azure.cosmosdb.database=end2endsample # Populate query metrics cosmos.queryMetricsEnabled=true + + diff --git a/spring-petclinic-visits-service/src/main/resources/bootstrap.yml b/spring-petclinic-visits-service/src/main/resources/bootstrap.yml index bc2cdf9bf3..459638352a 100644 --- a/spring-petclinic-visits-service/src/main/resources/bootstrap.yml +++ b/spring-petclinic-visits-service/src/main/resources/bootstrap.yml @@ -21,5 +21,9 @@ spring: cloud: config: uri: http://localhost:8888 +eureka: + client: + serviceUrl: + defaultZone: http://localhost:8761/eureka/ server: - port: 8083 + port: 8082 From 016eb4ef195d9bd7ab44e480a39678501031af5a Mon Sep 17 00:00:00 2001 From: VaijanathB Date: Mon, 8 Mar 2021 19:42:42 -0800 Subject: [PATCH 08/21] Added changes to pull CosmosDb and Redis Cache application properties from Azure KeyVault. --- .../src/main/resources/application.properties | 21 ++++++++++---- .../src/main/resources/application.properties | 29 +++++++++++++++++-- .../src/main/resources/application.properties | 13 ++++----- 3 files changed, 47 insertions(+), 16 deletions(-) diff --git a/spring-petclinic-customers-service/src/main/resources/application.properties b/spring-petclinic-customers-service/src/main/resources/application.properties index 6148e99910..f41366f055 100644 --- a/spring-petclinic-customers-service/src/main/resources/application.properties +++ b/spring-petclinic-customers-service/src/main/resources/application.properties @@ -1,16 +1,25 @@ -azure.cosmosdb.uri=https://end2endsample.documents.azure.com:443/ -azure.cosmosdb.key=8X01rGcUTAvwu5FTERE0skxdRvhkGjSIjuwgNagdqW5jRhB9DVhTAJxy4ulmZcSpGII6fTRtqeol3SjowyNf1Q== -azure.cosmosdb.secondaryKey=mTVkb28AZPbiZvWuM7xsjAF1I9w3cotlENQRMdwLNkZaQrBUw7vWFEbdZm7LiQUNz3j0auLrDHKS8rJq6yayJg== +azure.keyvault.enabled=true +azure.keyvault.uri=${AZURE_KEYVAULT_URI} +azure.keyvault.client-id=${AZURE_KEYVAULT_CLIENTID} +azure.keyvault.client-key=${AZURE_KEYVAULT_CLIENTKEY} +azure.keyvault.tenant-id=${AZURE_KEYVAULT_TENANTID} +azure.keyvault.token-acquire-timeout-seconds=60 +azure.keyvault.refresh-interval=1800000 +azure.keyvault.secret-keys=cosmosdburi,cosmosdbkey,cosmosdbsecondarykey, redisuri, redispassword + +# Azure cosmos db properties +azure.cosmosdb.uri=${cosmosdburi} +azure.cosmosdb.key=${cosmosdbkey} +azure.cosmosdb.secondaryKey=${cosmosdbsecondarykey} azure.cosmosdb.database=end2endsample # Populate query metrics cosmos.queryMetricsEnabled=true # Azure redis cache properties spring.cache.type=redis -spring.redis.host=end2endredis.redis.cache.windows.net -spring.redis.password=vOwjYOyEghFjCDHJdTzkjNtxBJo8oxoIXdIjqWQeVQo= +spring.redis.host=${redisuri} +spring.redis.password=${redispassword} spring.redis.port=6380 spring.redis.ssl=true -#spring.redis.timeout=60000 diff --git a/spring-petclinic-vets-service/src/main/resources/application.properties b/spring-petclinic-vets-service/src/main/resources/application.properties index 4d17297346..b82049ee0f 100644 --- a/spring-petclinic-vets-service/src/main/resources/application.properties +++ b/spring-petclinic-vets-service/src/main/resources/application.properties @@ -1,7 +1,30 @@ spring.cache.cache-names=vets -azure.cosmosdb.uri=https://end2endsample.documents.azure.com:443/ -azure.cosmosdb.key=8X01rGcUTAvwu5FTERE0skxdRvhkGjSIjuwgNagdqW5jRhB9DVhTAJxy4ulmZcSpGII6fTRtqeol3SjowyNf1Q== -azure.cosmosdb.secondaryKey=mTVkb28AZPbiZvWuM7xsjAF1I9w3cotlENQRMdwLNkZaQrBUw7vWFEbdZm7LiQUNz3j0auLrDHKS8rJq6yayJg== + +azure.keyvault.enabled=true +azure.keyvault.uri=${AZURE_KEYVAULT_URI} +azure.keyvault.client-id=${AZURE_KEYVAULT_CLIENT_ID} +azure.keyvault.client-key=${AZURE_KEYVAULT_CLIENT_SECRET} +azure.keyvault.tenant-id=${AZURE_KEYVAULT_TENANT_ID} + +azure.keyvault.token-acquire-timeout-seconds=60 +azure.keyvault.refresh-interval=1800000 +azure.keyvault.secret-keys=cosmosdburi,cosmosdbkey,cosmosdbsecondarykey, redisuri, redispassword + +# Azure cosmos db properties +azure.cosmosdb.uri=${cosmosdburi} +azure.cosmosdb.key=${cosmosdbkey} +azure.cosmosdb.secondaryKey=${cosmosdbsecondarykey} azure.cosmosdb.database=end2endsample # Populate query metrics cosmos.queryMetricsEnabled=true + + +# Properties for Setting Azure active directory +## Specifies your Active Directory ID: +#azure.activedirectory.tenant-id=22222222-2222-2222-2222-222222222222 +## Specifies your App Registration's Application ID: +#azure.activedirectory.client-id=11111111-1111-1111-1111-1111111111111111 +## Specifies your App Registration's secret key: +#azure.activedirectory.client-secret=AbCdEfGhIjKlMnOpQrStUvWxYz== +## Specifies the list of Active Directory groups to use for authorization: +#azure.activedirectory.user-group.allowed-groups=group1 diff --git a/spring-petclinic-visits-service/src/main/resources/application.properties b/spring-petclinic-visits-service/src/main/resources/application.properties index 4b2fb4bb92..fa9bc50042 100644 --- a/spring-petclinic-visits-service/src/main/resources/application.properties +++ b/spring-petclinic-visits-service/src/main/resources/application.properties @@ -1,14 +1,13 @@ azure.keyvault.enabled=true -azure.keyvault.uri=put-your-azure-keyvault-uri-here -azure.keyvault.client-id=put-your-azure-client-id-here -azure.keyvault.client-key=put-your-azure-client-key-here -azure.keyvault.tenant-id=put-your-azure-tenant-id-here +azure.keyvault.uri=${AZURE_KEYVAULT_URI} +azure.keyvault.client-id=${AZURE_KEYVAULT_CLIENT_ID} +azure.keyvault.client-key=${AZURE_KEYVAULT_CLIENT_SECRET} +azure.keyvault.tenant-id=${AZURE_KEYVAULT_TENANT_ID} azure.keyvault.token-acquire-timeout-seconds=60 azure.keyvault.refresh-interval=1800000 -azure.keyvault.secret-keys=cosmosdburi,cosmosdbkey,cosmosdbsecondarykey - - +azure.keyvault.secret-keys=cosmosdburi,cosmosdbkey,cosmosdbsecondarykey, redisuri, redispassword +# Azure cosmos db properties azure.cosmosdb.uri=${cosmosdburi} azure.cosmosdb.key=${cosmosdbkey} azure.cosmosdb.secondaryKey=${cosmosdbsecondarykey} From dcd031a6893449ecec9ec36c20b94fe329f28a66 Mon Sep 17 00:00:00 2001 From: VaijanathB Date: Tue, 16 Mar 2021 00:25:54 -0700 Subject: [PATCH 09/21] Adding the readmes and scripts to provision the resources. --- .../setup-env-variables-azure-template.sh | 72 +++-- README-petclinic.md | 37 +-- README.md | 266 ++++-------------- docker-compose.yml | 205 +++++++------- ...services-architecture-diagram-cosmosdb.jpg | Bin 0 -> 862352 bytes .../application/CustomersServiceClient.java | 11 +- .../api/application/VisitsServiceClient.java | 12 +- .../VisitsServiceClientIntegrationTest.java | 2 +- .../src/main/resources/application.properties | 6 +- .../src/main/resources/application.properties | 6 +- 10 files changed, 222 insertions(+), 395 deletions(-) create mode 100644 docs/microservices-architecture-diagram-cosmosdb.jpg diff --git a/.scripts/setup-env-variables-azure-template.sh b/.scripts/setup-env-variables-azure-template.sh index fc42d4a7b1..55ccc6b7b2 100755 --- a/.scripts/setup-env-variables-azure-template.sh +++ b/.scripts/setup-env-variables-azure-template.sh @@ -3,27 +3,51 @@ # ==== Resource Group ==== export SUBSCRIPTION=subscription-id # customize this export RESOURCE_GROUP=resource-group-name # customize this -export REGION=westus2 - -# ==== Service and App Instances ==== -export SPRING_CLOUD_SERVICE=azure-spring-cloud-name # customize this -export API_GATEWAY=api-gateway -export ADMIN_SERVER=admin-server -export CUSTOMERS_SERVICE=customers-service -export VETS_SERVICE=vets-service -export VISITS_SERVICE=visits-service - -# ==== JARS ==== -export API_GATEWAY_JAR=spring-petclinic-api-gateway/target/spring-petclinic-api-gateway-2.2.1.jar -export ADMIN_SERVER_JAR=spring-petclinic-admin-server/target/spring-petclinic-admin-server-2.2.1.jar -export CUSTOMERS_SERVICE_JAR=spring-petclinic-customers-service/target/spring-petclinic-customers-service-2.2.1.jar -export VETS_SERVICE_JAR=spring-petclinic-vets-service/target/spring-petclinic-vets-service-2.2.1.jar -export VISITS_SERVICE_JAR=spring-petclinic-visits-service/target/spring-petclinic-visits-service-2.2.1.jar - -# ==== MYSQL INFO ==== -export MYSQL_SERVER_NAME=mysql-servername # customize this -export MYSQL_SERVER_FULL_NAME=${MYSQL_SERVER_NAME}.mysql.database.azure.com -export MYSQL_SERVER_ADMIN_NAME=admin-name # customize this -export MYSQL_SERVER_ADMIN_LOGIN_NAME=${MYSQL_SERVER_ADMIN_NAME}\@${MYSQL_SERVER_NAME} -export MYSQL_SERVER_ADMIN_PASSWORD=SuperS3cr3t # customize this -export MYSQL_DATABASE_NAME=petclinic +export LOCATION=SouthCentralUS #customize this +export COSMOSDB_NAME=mycosmosdbaccname # customize this +export REDIS_NAME=myredisname #customize this +export KEYVAULT_NAME=myend2endkv #customize this + +# ==== Create CosmosDB Account ==== +az cosmosdb create --name $COSMOSDB_NAME --resource-group $RESOURCE_GROUP +COSMOS_KEYS=$(az cosmosdb keys list --name $COSMOSDB_NAME --resource-group $RESOURCE_GROUP --type keys) +COSMOS_PRIMARY_KEY=$(echo $COSMOS_KEYS | jq -r .primaryMasterKey) +COSMOS_SECONDARY_KEY=$(echo $COSMOS_KEYS | jq -r .secondaryMasterKey) +COSMOSDB_URI=$(az cosmosdb show --name $COSMOSDB_NAME --resource-group $RESOURCE_GROUP | jq -r .documentEndpoint) + +# ==== Create Redis Cache Account ==== +az redis create --name $REDIS_NAME --resource-group $RESOURCE_GROUP --sku Basic --vm-size c0 --location $LOCATION +REDIS_HOSTNAME=$(az redis show --name $REDIS_NAME --resource-group $RESOURCE_GROUP | jq -r .hostName) +REDIS_PASSWORD=$(az redis list-keys --name $REDIS_NAME --resource-group $RESOURCE_GROUP | jq -r .primaryKey) + +# ==== Create a KeyVault Account ==== +az keyvault create --location $LOCATION --name $KEYVAULT_NAME --resource-group $RESOURCE_GROUP + +SERVICE_PRINCIPAL=$(az ad sp create-for-rbac -n "endtoendsp") +az keyvault set-policy -n MyVault --key-permissions get list --spn $AZURE_KEYVAULT_CLIENTID + +AZURE_KEYVAULT_URI=$(az keyvault show --name $KEYVAULT_NAME | jq -r .properties | jq -r .vaultUri) +AZURE_KEYVAULT_CLIENTID=$(echo $SERVICE_PRINCIPAL | jq -r .appId) +AZURE_KEYVAULT_TENANTID=$(echo $SERVICE_PRINCIPAL | jq -r .tenant) +AZURE_KEYVAULT_CLIENTKEY=$(echo $SERVICE_PRINCIPAL | jq -r .password) + + +# ==== add keys to keyvault ==== +az keyvault secret set --name cosmosdburi --value $COSMOSDB_URI +az keyvault secret set --name cosmosdbkey --value $COSMOS_PRIMARY_KEY +az keyvault secret set --name cosmosdbsecondarykey --value $COSMOS_SECONDARY_KEY +az keyvault secret set --name redisuri--value $REDIS_HOSTNAME +az keyvault secret set --name redispassword --value $REDIS_PASSWORD + +# ==== Create Kevvault environment file for Docker containers ==== +cat > keyvault.env << EOF +AZURE_KEYVAULT_URI=$AZURE_KEYVAULT_URI +AZURE_KEYVAULT_CLIENTID=$AZURE_KEYVAULT_CLIENTID +AZURE_KEYVAULT_TENANTID=$AZURE_KEYVAULT_TENANTID +AZURE_KEYVAULT_CLIENTKEY=$AZURE_KEYVAULT_CLIENTKEY +EOF + + + + + diff --git a/README-petclinic.md b/README-petclinic.md index 03cbf9ee96..db5016f2bb 100644 --- a/README-petclinic.md +++ b/README-petclinic.md @@ -47,47 +47,14 @@ You can then access petclinic here: http://localhost:8080/ ![Spring Petclinic Microservices screenshot](docs/application-screenshot.png) +**Architecture diagram of the Spring Petclinic Microservices with CosmosDB** -**Architecture diagram of the Spring Petclinic Microservices** - -![Spring Petclinic Microservices architecture](docs/microservices-architecture-diagram.jpg) - +![Spring Petclinic Microservices architecture](docs/microservices-architecture-diagram-cosmosdb.jpg) ## In case you find a bug/suggested improvement for Spring Petclinic Microservices Our issue tracker is available here: https://github.com/spring-petclinic/spring-petclinic-microservices/issues -## Database configuration - -In its default configuration, Petclinic uses an in-memory database (HSQLDB) which gets populated at startup with data. -A similar setup is provided for MySql in case a persistent database configuration is needed. -Dependency for Connector/J, the MySQL JDBC driver is already included in the `pom.xml` files. - -### Start a MySql database - -You may start a MySql database with docker: - -``` -docker run -e MYSQL_ROOT_PASSWORD=petclinic -e MYSQL_DATABASE=petclinic -p 3306:3306 mysql:5.7.8 -``` -or download and install the MySQL database (e.g., MySQL Community Server 5.7 GA), which can be found here: https://dev.mysql.com/downloads/ - -### Use the Spring 'mysql' profile - -To use a MySQL database, you have to start 3 microservices (`visits-service`, `customers-service` and `vets-services`) -with the `mysql` Spring profile. Add the `--spring.profiles.active=mysql` as programm argument. - -By default, at startup, database schema will be created and data will be populated. -You may also manually create the PetClinic database and data by executing the `"db/mysql/{schema,data}.sql"` scripts of each 3 microservices. -In the `application.yml` of the [Configuration repository], set the `initialization-mode` to `never`. - -If you are running the microservices with Docker, you have to add the `mysql` profile into the (Dockerfile)[docker/Dockerfile]: -``` -ENV SPRING_PROFILES_ACTIVE docker,mysql -``` -In the `mysql section` of the `application.yml` from the [Configuration repository], you have to change -the host and port of your MySQL JDBC connection string. - ## Custom metrics monitoring Grafana and Prometheus are included in the `docker-compose.yml` configuration, and the public facing applications diff --git a/README.md b/README.md index 323477e367..a246ffea2d 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,11 @@ page_type: sample languages: - java products: -- Azure Spring Cloud -description: "Deploy Spring microservices using Azure Spring Cloud and MySQL" +- Azure Spring Integration Starters +description: "Deploy Spring microservices using Spring Integration starters for Azure" urlFragment: "spring-petclinic-microservices" --- -# Deploy Spring Microservices using Azure Spring Cloud and MySQL +# Deploy Spring Microservices using Azure Spring starters for Cosmos DB, Redis, KeyVault Azure Spring Cloud enables you to easily run a Spring Boot based microservices application on Azure. @@ -16,9 +16,8 @@ This quickstart shows you how to deploy an existing Java Spring Cloud applicatio ## What will you experience You will: - Build existing Spring microservices applications -- Provision an Azure Spring Cloud service instance -- Deploy applications to Azure -- Bind applications to Azure Database for MySQL +- Provision azure resources required for the application +- Run the application locally with CosmosDB backend, Azure Redis Cache and using KeyVault for storing secrets - Open the application ## What you will need @@ -37,16 +36,9 @@ In addition, you will need the following: | [Maven](https://maven.apache.org/download.cgi) | [MySQL CLI](https://dev.mysql.com/downloads/shell/) | [Git](https://git-scm.com/) +| [Jq](https://stedolan.github.io/jq/) | -## Install the Azure CLI extension - -Install the Azure Spring Cloud extension for the Azure CLI using the following command - -```bash - az extension add --name spring-cloud -``` - ## Clone and build the repo ### Create a new folder and clone the sample app repository to your Azure Cloud account @@ -60,40 +52,12 @@ Install the Azure Spring Cloud extension for the Azure CLI using the following c ```bash cd spring-petclinic-microservices - mvn clean package -DskipTests -Denv=cloud + mvn clean package -DskipTests ``` This will take a few minutes. -## Provision Azure Spring Cloud service instance using Azure CLI - -### Prepare your environment for deployments - -Create a bash script with environment variables by making a copy of the supplied template: -```bash - cp .scripts/setup-env-variables-azure-template.sh .scripts/setup-env-variables-azure.sh -``` - -Open `.scripts/setup-env-variables-azure.sh` and enter the following information: - -```bash - - export SUBSCRIPTION=subscription-id # customize this - export RESOURCE_GROUP=resource-group-name # customize this - ... - export SPRING_CLOUD_SERVICE=azure-spring-cloud-name # customize this - ... - export MYSQL_SERVER_NAME=mysql-servername # customize this - ... - export MYSQL_SERVER_ADMIN_NAME=admin-name # customize this - ... - export MYSQL_SERVER_ADMIN_PASSWORD=SuperS3cr3t # customize this - ... -``` +## Provision Azure resources using Azure CLI -Then, set the environment: -```bash - source .scripts/setup-env-variables-azure.sh -``` ### Login to Azure Login to the Azure CLI and choose your active subscription. Be sure to choose the active subscription that is whitelisted for Azure Spring Cloud @@ -104,205 +68,71 @@ Login to the Azure CLI and choose your active subscription. Be sure to choose th az account set --subscription ${SUBSCRIPTION} ``` -### Create Azure Spring Cloud service instance -Prepare a name for your Azure Spring Cloud service. The name must be between 4 and 32 characters long and can contain only lowercase letters, numbers, and hyphens. The first character of the service name must be a letter and the last character must be either a letter or a number. - -Create a resource group to contain your Azure Spring Cloud service. +### Prepare your environment for deployments +Create a bash script with environment variables by making a copy of the supplied template: ```bash - az group create --name ${RESOURCE_GROUP} \ - --location ${REGION} + cp .scripts/setup-env-variables-azure-template.sh .scripts/setup-env-variables-azure.sh ``` -Create an instance of Azure Spring Cloud. +Open `.scripts/setup-env-variables-azure.sh` and enter the following information: ```bash - az spring-cloud create --name ${SPRING_CLOUD_SERVICE} \ - --resource-group ${RESOURCE_GROUP} \ - --location ${REGION} -``` -The service instance will take around five minutes to deploy. - -Set your default resource group name and cluster name using the following commands: - -```bash - az configure --defaults \ - group=${RESOURCE_GROUP} \ - location=${REGION} \ - spring-cloud=${SPRING_CLOUD_SERVICE} + export SUBSCRIPTION=subscription-id # customize this +... + export RESOURCE_GROUP=resource-group-name # customize this +... + export RESOURCE_GROUP=resource-group-name # customize this +... + export LOCATION=SouthCentralUS #customize this +... + export COSMOSDB_NAME=mycosmosdbaccname # customize this +... + export REDIS_NAME=myredisname #customize this +... + export KEYVAULT_NAME=myend2endkv #customize this +... + ``` -### Load Spring Cloud Config Server - -Use the `application.yml` in the root of this project to load configuration into the Config Server in Azure Spring Cloud. - +Then, set the environment: ```bash - az spring-cloud config-server set \ - --config-file application.yml \ - --name ${SPRING_CLOUD_SERVICE} + source .scripts/setup-env-variables-azure.sh ``` +make sure keyvault.env file is created at the root of the repo. -## Create microservice applications - -Create 5 microservice apps. - -```bash - az spring-cloud app create --name ${API_GATEWAY} --instance-count 1 --is-public true \ - --memory 2 \ - --jvm-options='-Xms2048m -Xmx2048m' - - az spring-cloud app create --name ${ADMIN_SERVER} --instance-count 1 --is-public true \ - --memory 2 \ - --jvm-options='-Xms2048m -Xmx2048m' - - az spring-cloud app create --name ${CUSTOMERS_SERVICE} --instance-count 1 \ - --memory 2 \ - --jvm-options='-Xms2048m -Xmx2048m' - - az spring-cloud app create --name ${VETS_SERVICE} --instance-count 1 \ - --memory 2 \ - --jvm-options='-Xms2048m -Xmx2048m' - - az spring-cloud app create --name ${VISITS_SERVICE} --instance-count 1 \ - --memory 2 \ - --jvm-options='-Xms2048m -Xmx2048m' -``` +## Starting services locally with docker-compose +In order to start entire infrastructure using Docker, you have to build images by executing `./mvnw clean install -P buildDocker` +from a project root. Once images are ready, you can start them with a single command +`docker-compose up`. Containers startup order is coordinated with [`dockerize` script](https://github.com/jwilder/dockerize). +After starting services it takes a while for API Gateway to be in sync with service registry, +so don't be scared of initial Spring Cloud Gateway timeouts. You can track services availability using Eureka dashboard +available by default at http://localhost:8761. -## Create MySQL Database +## Understanding the Spring Petclinic application +[See the presentation of the Spring Petclinic Framework version](http://fr.slideshare.net/AntoineRey/spring-framework-petclinic-sample-application) -Create a MySQL database in Azure Database for MySQL. +[A blog bost introducing the Spring Petclinic Microsevices](http://javaetmoi.com/2018/10/architecture-microservices-avec-spring-cloud/) (french language) -```bash - // create mysql server - az mysql server create --resource-group ${RESOURCE_GROUP} \ - --name ${MYSQL_SERVER_NAME} --location ${REGION} \ - --admin-user ${MYSQL_SERVER_ADMIN_NAME} \ - --admin-password ${MYSQL_SERVER_ADMIN_PASSWORD} \ - --sku-name GP_Gen5_2 \ - --ssl-enforcement Disabled \ - --version 5.7 - - // allow access from Azure resources - az mysql server firewall-rule create --name allAzureIPs \ - --server ${MYSQL_SERVER_NAME} \ - --resource-group ${RESOURCE_GROUP} \ - --start-ip-address 0.0.0.0 --end-ip-address 0.0.0.0 - - // allow access from your dev machine for testing - az mysql server firewall-rule create --name devMachine \ - --server ${MYSQL_SERVER_NAME} \ - --resource-group ${RESOURCE_GROUP} \ - --start-ip-address \ - --end-ip-address - - // increase connection timeout - az mysql server configuration set --name wait_timeout \ - --resource-group ${RESOURCE_GROUP} \ - --server ${MYSQL_SERVER_NAME} --value 2147483 - - // SUBSTITUTE values - mysql -u ${MYSQL_SERVER_ADMIN_LOGIN_NAME} \ - -h ${MYSQL_SERVER_FULL_NAME} -P 3306 -p - - Enter password: - Welcome to the MySQL monitor. Commands end with ; or \g. - Your MySQL connection id is 64379 - Server version: 5.6.39.0 MySQL Community Server (GPL) - - Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. - - Oracle is a registered trademark of Oracle Corporation and/or its - affiliates. Other names may be trademarks of their respective - owners. - - Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. - - mysql> CREATE DATABASE petclinic; - Query OK, 1 row affected (0.10 sec) - - mysql> CREATE USER 'root' IDENTIFIED BY 'petclinic'; - Query OK, 0 rows affected (0.11 sec) - - mysql> GRANT ALL PRIVILEGES ON petclinic.* TO 'root'; - Query OK, 0 rows affected (1.29 sec) - - mysql> CALL mysql.az_load_timezone(); - Query OK, 3179 rows affected, 1 warning (6.34 sec) - - mysql> SELECT name FROM mysql.time_zone_name; - ... - - mysql> quit - Bye - - - az mysql server configuration set --name time_zone \ - --resource-group ${RESOURCE_GROUP} \ - --server ${MYSQL_SERVER_NAME} --value "US/Pacific" -``` +You can then access petclinic here: http://localhost:8080/ -## Deploy applications and set environment variables +![Spring Petclinic Microservices screenshot](docs/application-screenshot.png) -Deploy microservice applications to Azure. +**Architecture diagram of the Spring Petclinic Microservices with CosmosDB** -```bash - az spring-cloud app deploy --name ${API_GATEWAY} \ - --jar-path ${API_GATEWAY_JAR} \ - --jvm-options='-Xms2048m -Xmx2048m -Dspring.profiles.active=mysql' - - - az spring-cloud app deploy --name ${ADMIN_SERVER} \ - --jar-path ${ADMIN_SERVER_JAR} \ - --jvm-options='-Xms2048m -Xmx2048m -Dspring.profiles.active=mysql' - - - az spring-cloud app deploy --name ${CUSTOMERS_SERVICE} \ - --jar-path ${CUSTOMERS_SERVICE_JAR} \ - --jvm-options='-Xms2048m -Xmx2048m -Dspring.profiles.active=mysql' \ - --env MYSQL_SERVER_FULL_NAME=${MYSQL_SERVER_FULL_NAME} \ - MYSQL_DATABASE_NAME=${MYSQL_DATABASE_NAME} \ - MYSQL_SERVER_ADMIN_LOGIN_NAME=${MYSQL_SERVER_ADMIN_LOGIN_NAME} \ - MYSQL_SERVER_ADMIN_PASSWORD=${MYSQL_SERVER_ADMIN_PASSWORD} - - - az spring-cloud app deploy --name ${VETS_SERVICE} \ - --jar-path ${VETS_SERVICE_JAR} \ - --jvm-options='-Xms2048m -Xmx2048m -Dspring.profiles.active=mysql' \ - --env MYSQL_SERVER_FULL_NAME=${MYSQL_SERVER_FULL_NAME} \ - MYSQL_DATABASE_NAME=${MYSQL_DATABASE_NAME} \ - MYSQL_SERVER_ADMIN_LOGIN_NAME=${MYSQL_SERVER_ADMIN_LOGIN_NAME} \ - MYSQL_SERVER_ADMIN_PASSWORD=${MYSQL_SERVER_ADMIN_PASSWORD} - - - az spring-cloud app deploy --name ${VISITS_SERVICE} \ - --jar-path ${VISITS_SERVICE_JAR} \ - --jvm-options='-Xms2048m -Xmx2048m -Dspring.profiles.active=mysql' \ - --env MYSQL_SERVER_FULL_NAME=${MYSQL_SERVER_FULL_NAME} \ - MYSQL_DATABASE_NAME=${MYSQL_DATABASE_NAME} \ - MYSQL_SERVER_ADMIN_LOGIN_NAME=${MYSQL_SERVER_ADMIN_LOGIN_NAME} \ - MYSQL_SERVER_ADMIN_PASSWORD=${MYSQL_SERVER_ADMIN_PASSWORD} -``` +![Spring Petclinic Microservices architecture](docs/microservices-architecture-diagram-cosmosdb.jpg) -```bash - az spring-cloud app show --name ${API_GATEWAY} | grep url -``` -Navigate to the URL provided by the previous command to open the Pet Clinic microservice application. - +## Navigate to the application +The application could be reached at http://localhost:8080 ![](./media/petclinic.jpg) ## Next Steps -In this quickstart, you've deployed an existing Spring microservices app using Azure CLI. To learn more about Azure Spring Cloud, go to: - -- [Azure Spring Cloud](https://azure.microsoft.com/en-us/services/spring-cloud/) -- [Azure Spring Cloud docs](https://docs.microsoft.com/en-us/azure/java/) -- [Deploy Spring microservices from scratch](https://github.com/microsoft/azure-spring-cloud-training) -- [Deploy existing Spring microservices](https://github.com/Azure-Samples/azure-spring-cloud) +In this quickstart, you've deployed an existing Spring microservices app using Azure CLI. To learn more about Spring on Azure, go to: +- [Spring on Azure](https://docs.microsoft.com/en-us/azure/developer/java/spring-framework/) - [Azure for Java Cloud Developers](https://docs.microsoft.com/en-us/azure/java/) -- [Spring Cloud Azure](https://cloud.spring.io/spring-cloud-azure/) -- [Spring Cloud](https://spring.io/projects/spring-cloud) ## Credits diff --git a/docker-compose.yml b/docker-compose.yml index 3d4f33bf2d..30ebe30804 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,99 +1,106 @@ -version: '2' - -services: - config-server: - image: springcommunity/spring-petclinic-config-server - container_name: config-server - mem_limit: 512M - ports: - - 8888:8888 - - discovery-server: - image: springcommunity/spring-petclinic-discovery-server - container_name: discovery-server - mem_limit: 512M - depends_on: - - config-server - entrypoint: ["./dockerize","-wait=tcp://config-server:8888","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] - ports: - - 8761:8761 - - customers-service: - image: springcommunity/spring-petclinic-customers-service - container_name: customers-service - mem_limit: 512M - depends_on: - - config-server - - discovery-server - entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] - ports: - - 8081:8081 - - visits-service: - image: springcommunity/spring-petclinic-visits-service - container_name: visits-service - mem_limit: 512M - depends_on: - - config-server - - discovery-server - entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] - ports: - - 8082:8082 - - vets-service: - image: springcommunity/spring-petclinic-vets-service - container_name: vets-service - mem_limit: 512M - depends_on: - - config-server - - discovery-server - entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] - ports: - - 8083:8083 - - api-gateway: - image: springcommunity/spring-petclinic-api-gateway - container_name: api-gateway - mem_limit: 512M - depends_on: - - config-server - - discovery-server - entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] - ports: - - 8080:8080 - - tracing-server: - image: openzipkin/zipkin - container_name: tracing-server - mem_limit: 512M - environment: - - JAVA_OPTS=-XX:+UnlockExperimentalVMOptions -Djava.security.egd=file:/dev/./urandom - ports: - - 9411:9411 - - admin-server: - image: springcommunity/spring-petclinic-admin-server - container_name: admin-server - mem_limit: 512M - depends_on: - - config-server - - discovery-server - entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] - ports: - - 9090:9090 - - ## Grafana / Prometheus - - grafana-server: - build: ./docker/grafana - container_name: grafana-server - mem_limit: 256M - ports: - - 3000:3000 - - prometheus-server: - build: ./docker/prometheus - container_name: prometheus-server - mem_limit: 256M - ports: - - 9091:9090 +version: '2' + +services: + config-server: + image: springcommunity/spring-petclinic-config-server + container_name: config-server + mem_limit: 512M + ports: + - 8888:8888 + + discovery-server: + image: springcommunity/spring-petclinic-discovery-server + container_name: discovery-server + mem_limit: 512M + depends_on: + - config-server + entrypoint: ["./dockerize","-wait=tcp://config-server:8888","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] + ports: + - 8761:8761 + + customers-service: + image: springcommunity/spring-petclinic-customers-service + container_name: customers-service + mem_limit: 512M + depends_on: + - config-server + - discovery-server + entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] + ports: + - 8081:8081 + env_file: + - keyvault.env + + visits-service: + image: springcommunity/spring-petclinic-visits-service + container_name: visits-service + mem_limit: 512M + depends_on: + - config-server + - discovery-server + entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] + ports: + - 8082:8082 + env_file: + - keyvault.env + + + vets-service: + image: springcommunity/spring-petclinic-vets-service + container_name: vets-service + mem_limit: 512M + depends_on: + - config-server + - discovery-server + entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] + ports: + - 8083:8083 + env_file: + - keyvault.env + + api-gateway: + image: springcommunity/spring-petclinic-api-gateway + container_name: api-gateway + mem_limit: 512M + depends_on: + - config-server + - discovery-server + entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] + ports: + - 8080:8080 + + tracing-server: + image: openzipkin/zipkin + container_name: tracing-server + mem_limit: 512M + environment: + - JAVA_OPTS=-XX:+UnlockExperimentalVMOptions -Djava.security.egd=file:/dev/./urandom + ports: + - 9411:9411 + + admin-server: + image: springcommunity/spring-petclinic-admin-server + container_name: admin-server + mem_limit: 512M + depends_on: + - config-server + - discovery-server + entrypoint: ["./dockerize","-wait=tcp://discovery-server:8761","-timeout=60s","--","java", "org.springframework.boot.loader.JarLauncher"] + ports: + - 9090:9090 + + ## Grafana / Prometheus + + grafana-server: + build: ./docker/grafana + container_name: grafana-server + mem_limit: 256M + ports: + - 3000:3000 + + prometheus-server: + build: ./docker/prometheus + container_name: prometheus-server + mem_limit: 256M + ports: + - 9091:9090 diff --git a/docs/microservices-architecture-diagram-cosmosdb.jpg b/docs/microservices-architecture-diagram-cosmosdb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..585e405122d928e0996b4594b595a8d0abd504f3 GIT binary patch literal 862352 zcmcF~V{~L&w|0zYN+xA!I^f~vv@BRPnv1`<* z8hh+D*ILh-c;=iTveF_*A8Y{eUv&m*NKltBgc=0YHO(!`q0e*@J<7a`@{5zGg(^0tWV;D<;UV=%Rh{3hl0? zGIbuh#$Y?%xX<-`QoUXulbD3lGh*;7iHt6qHpd_-Y4PiFHgxpj*S^n8Od2CodZ`Y@ zeX$0;(i~$}oFUD}2}2W!`p5-e_vD|{fJ*Z(@1jurAOGvV#P|%J{29*of8P((zrdva z`!RkG3{h|L|9={`dw zcZfgEc;(7eqyEoydRU?Vo?H)>u;AA?EJ3+nw+j9Vq{tE`(X}SAIazWhWYura8s=n; ziyJVh(DP5sf_by`EC=Ky8RY*N--G6#;njMKd>Y~NQrrXw!vnvW9}7$C4jlu7ZQJ#* zUtU7DySh7%jV>E|p-_RJ{v$#?)E^NNge>UzLa|$EYTza$1LHb{`L|rec9Ici7j$Ue zN38)hY`EkbCY8$lUG>=0x&PUvEe+qlH)Csfik7dsKr74v(-pkdh&AznUnow=6ydbqA&0tOl+n6+0(61lI#)c<6>ElkD1)1P$pp0 zf~@dWwDQSH6|If28gHZ4onPQw&?#ASG~Yvi6WFlPN;eH=Lg)Vng2C2*P!!A%o+<#b z&bshBz6uvx^8;mN-3JKa!CLsnH&ghRl$B_iZIT5#wS>MH!0HY;WtMlI^1jf2fV+>wr9fRIgWfkMcxBb9XFCbt91yDw^!e0++;Ir)BjYtqsGymI{aQ?RaqfYj->YG~*nzgGc4sVo zQNd{U_(?w}MfwBG*JS!+26*2GT)3-@G3-*Bo(#!j{e%pNKRbU}`Umir0jNo@5b?rY z+ndlnF{G>vi-Lojn4>K_=%f*3fmYu_Ov~*Sn_kx+;y=T4!T1jc5?n|MdhBL?{sA55 z#!illERU(JF2M+aNDQ}SPW;{nUV7Y<5&6RA9ZCOZ8o}-C|EvUdl$w2<4{`B;Jr@PX zYV;)4tm|)%6ve}6+|}sCX@mH6%J)`lwT8SY7z`t$IlVnHnwsuMxM%{&Sj`7akrCMN zErjvwtI1DLmlS+<`|C(<#D8G8{_&py5|trpQaOHnn#>&20y^04mNnY5N~Kl1>MiYE zR@X@<);g|~SZ-HX6oqBfT3XmY64@ZACtDEHq;QPGEPn&c<%Q^0vr45`yDp75D%i=K zZ3>~}`CE~-$wD#ndnl=U&F}EO4Dh8r#Q40=)xxOn?Em<)-!HFU{?=m;UBOZi%nBJv zA=v}f=>3nzP822{+0#!VV@Cwv+hrbJ(l@U;-lv-U$B$<;-zZj&J}nt&sV%ZQco`S? z`-~pq^5nbstZ1X!Kl_g#;-xMbS6i_gUFbqEcQE6i8}3N>er_YY2;FmPCO{5awF;UN zdI@1miDKX;M0v?CKkWPmeCrVZYdK!DxwX+<`Rx#*J&iYiQcAV=82X8noe{N{$($S! z!kfEOl$^#?1mY+^=}9P1)xT)0`(hfAq?Djkx8=;;5L8y3AI$opsh~({a&vLzI6tI% zE$%y4Knfe&;+Qm%!)+adwHp#f_FL6!U>j}8^c#HRU$lF;pcVD|qpu(8{y}gTGs46} z8$UVU_PbhgjArlD3b>Q-fI`qb^8V5d!KUn!|I66-f!d?U^n>q)4O^J7zLJuX zp`oFpqob5mxMm$#0#WTp9n436!wssA>Vop}`sLH#{C^C`|0q6ytT!f^oQ*`b!Y3|T z$eWl7sguxDc@%yo-wMa&PYI5DLd09g0n0aV&hL*V86R zhc8NQya8i6QRn4j@R7r~zp6MkrB1u^NI)wj0r{R5jkZ)Xkjyo%Q97qCEF>hPrlw|U zN~M@d%fJxy6R`$z;)e&>#;+_|Dyk@k&6nch;^U*EFkzB@Te`TpZ2Z>?mqf@me zk#(y;gd93}z-oQ0NTM?MDdi*7W$i~CSyZUbLkAXS=9#&<__(+@MrzPSLt{vWj%&!R z9xsxWR+!V%4uy8jE8GUXj|ht##85wAJHe7714kurWaCkuI3+p z$lpPWjGa|m=oE=m1%p7`GcTyi*Sme0C`rzK9Z2gv1mWQ5c>8>Re!kuge0{p52^&se z&}niID?`%>S+2Kk_jr`&0rDwlZyqu;GuzDo5N(W4zqKm>+TGCUZ2cdm)r&{R$HOW5b`la2=H})Zyg;v=fhegImeCAe-tXU) zvSbUe#dGCLm4`95bohD3BfalxYHD_e6V6wg@ApPiKnrg-!_JkEoQxaVJ9Ra)pilb8 zw7og~>l!e=!@TW~4w9HprjpLM7AYHzBS;-*EfM`5L{Y?f!GQUc*(vL(TxtIx>aBe6 zl1Wzj*-8QEV&Htaj=rp$D?3-t(vrH1 z_Qi}#`WuhP-GB`%3CQ{{AV!HhV8PXYH3a3(=a+^NHdr)G0AGxbkM0=pAg z0wf|4VW2A_B3{TCrvXY&Umxw$r;Sh4Jy;?<3-Qwt!NG}4#$&6^&Y+{d+q0rvtfZVF z_OHrx|L2_VqC$bMb5h!74_sq|pR&JKFdEHeis7})Giy}+xM&OJRnO-)TzRaJp@z1ny@f{0gJ8Wt4~ z4-XBk+d*ziCR=DR=mVGUz<_8$xn`sM+clq|VeX(o^tJWB&iLiM|37XT$yRfVtS2Vf zAYJ2Wv=GozCb+48hfe!2utE_sZ$tLTQ`Fn256YzVT?BQ)OdwbokHa-z$D+@hKqTQZ zI$Qu`D1*zTL&3D<%eC^4khVxFoSex@FFpvii!$IuK@eP zaI&(p=nm60AnZbTaoAiRFLpI4-S5vzOG+$EOiU~+c3ib}2V{QzU)={FMi%Bn_{0$G zD`Jder0zsqM#sTfQ2nH`g zbj+3Y#~zj3S}-jY6^izavxm!VczAfbDldYt!ES|M5TFbXCMG6EMn<;Yx|(OG}oz_;{& zHCZB@H$=_nOZ?>Lxn>F5!|uLP!qj9e+TyY!5^z#JR*h;f%L_}?OeNR0qnC|X0e(~j zHxrh~8d1aO1Jp-y$1o6nz~6j5iTSLTYN*)QRL9!EWua~|B5C=C;WKw7C`pKk$)!_O z6%`GbaYv1q#;f0Xrhs4mks|&tDSGz7)(?1| zy^eXd>(4!~?`59Ah|Y!}lgm=fiRgi$K)d65)AToMpOdhTOM2~3_|dN~G5TMM)?!$Y zrRHIa9eJ?9EiV)fTHc)%Y#wwAW6;D{YX=5tl9zzC#kHMu@A1vl1mdlujyko-5^Bgs zbY8kwS|)({w&=m-OOgA9+z;vwUZ&8SXmu!&Y7@qW(#Z-%Xo8W!s9wN~e94dRR*c|i zz+QEPiQ~Ca1VqHJ$jHc$kdTOozz=9byh50HIco5Zi|Qt({GlNN=Cf1D@$ouz@8tD* zwg^%wmWBO2o2BtQQjR8Z8aDkUsL!5o#MVcBCLBqa=8gzHA`_Apf`U6B%#CO8>gedK zFD$^JL~OJD{3q~!_@kBDLn%cGQ4!nXyIDDzFatHYgk~Fp}ID@ZZkwt(M0%lruhQ>1sBR# z*SxkWyjCwyVtK-Su$7pNnCuUR8w}+j=n5vuo|ou^*v{UC!OY>SO5aX0`tH7pS8w|g z6bn8ljOPvvPR54IO|G|Z7Y7r@=~$^7MkFft+cL+*`!`8V<}S%RqNTS=$DT^+iW%>+ zP&MlNk#3cMf~k$%ndd?WA2ameR(S_MjKIyGBwj~dU|}S4&@>KjRO$>$KIPF#O&v0Z z7Ye4His~l!Dp)WyNIoAFGg=iNyC-5i%9+#3g^zOv?&Wbk(4n=d(;|iO3IEC! zGAhdU>*iNmR5@F@N)ns)OB)Kp^ZsF1sVzWyK>?}_8|ox{)K~Zh{1F6+f&MYw*KH8T z(A^(F;C^?a_DJS`0_2X$6A}F<#!CAuk_cWGdIB9Et?J+xX+TMni|y;I08=nC48dE5zJYYN`$Q2eO$cp5IIk}; z#HU0!3}u21Q(R%H=F`Qz9Pzm^>GR47CKzuAB=cMx{Dd7-V#(dl)Q)CN-(l#o3;d&b z8*B^K)D7DlxUiUwZ?d%#zId;WVl4>5T}6!bu(j5#XG%Rc=)~Gv6?;)vIGO9ZstM!u zi?HNU-Fp|hm&!300P@`qe zLVHoEmn(CeoU2xYaYKDKNu`j@y;i|+F^@o2!9-3e!z*HZDEI&oyCfS&uWIS7;YB66 z9Vl1G(Vi6OUDLI(^Wsgar5nA*3k_|!uE;3h{cT+(X1{duso=Kl=Z|yrZkxC?Wvc?x$6;I%o)|3bhcNX|f>dV58`vdNJS~+@rf7p_mH18R$qv{Za{^RY?Mo1E?k; z?(W?9_J#QiIVlehshfd~>JJkaO+g0>K?hA$2TjKKN>sT@R8)8Xz?MG?o?nhcfCO;p ze<8{ivoLUQAj*!OJUAhD0hLL{#bq&)__Yemk{S0Bi1ja#LGxE&ec9Ym-(&=iTW-)B zV;vu?0o;uVP-y7=5f1zk@Pi;|P>%*JA_L?7 ziX3v^%uK|*HkNiN+m6nS@d-Q6$DD4czrSNbFyljW@-8q57bak@la>-mKHKYcW`(k)`46~Zf;fG)mabN$)L+Bm_P%jZR=Tk!)c zz63>D?}t+{I*!hY0r--RUo;2pW&%Vp7F0nk|D}Xmc+$BB0N5=?NXR4G{@_RgB98xYC)3C@4A=jQU3L;%V$8j({q?H-lSW)1fe`BFO?tIRnWV11Y7E47h}$ zutCs2GD-%L3dWMtBN~i8sbn8^Sg;+?_?Ak>~ioGTuA4!a7F*Z~0tHDvz&tt$Z)Mn-&qX7sj|ByG*6Yos8zueAY~Fe5v9edB(g(=kn|Oq*F<7qhq12E6A1<8I-%>3_87njHsTTT zwgmAQmINnzuca?=JREa2M$paiN#Romx}g}+ca0*@)QXUAFcI^DP$$4%6N{zJ*k%0! zl^qgKaRs`#TMoJ=OryHPSx!So5w$wRCaHoe7$}w#S`Zd|HI!R6ZQk7`jKRj{1|`b& zYa_Rep2M}jGb>?*xyGkJo9q&K!hgxLHo|q7HuRRqip@q6AG%jKXr21dI*qh;*!X5| zugB!LjYTA-?IvD%vU7vcPeI51jfIJqo{m#B1}nAXR)!uE;)zX&uHLjQ^i9&=ncVaHc=o897V_H0EW-$KqDUjINzuRyootK zyYY|5DqR|7&5<;Mwj-D~d=BDfsn%TJ$B!NKkCl~`mzS3qO1Z}6X$wi!XZ9!xqkX)>H3Klr(>+JznBt`GdF|D`ClE;Ye5>KKZ~6Ka_)K_u z*VEOA#d7OfbVYw#PU{UTg>eZb`goFq5 z_krfTKdS5OyFX&>uz0Rn-uQ%U0DP-^ZPY;7Ic59R`r5I1s#2c8x_ng1qM)zeI&1bd zNs^3=Y;rQuor5-v_@69G8_r)r^p>*^gJadu^3^GF+djNhf~@x-HDzA^#ef@qvsL3H zRI?R`n@E(T&0M3-j|4?y%7ME+jPTQDYIBGs1KY0rx(v-C46;*kXf7L!MpC?AeO2v# zMk@(MB?!^$Q`UIYi>>s@jUqFFC+9Aj+@*u_0_<$Y$3l$wtKeJwwzU{PJ#GBXKIn5z zR1Tx!?oguK{bDtfRSBI3&Z}jTXa%yIsPm4Z#Mn0$PirH-<()`-pBy@35nNpG?v;$I&;xIuyJFKCnYIfxp0A~wfJXG!6V?~T=IdO5JX6c7E#PE}C+9$J5e z2J_`8@bCcC`a}p~F0PimI=jwjcCDwHQ`X<^@0;9Dh-WL-CMp$g-A%~YYq{qWW3Pey zi_ptKj>q3i^vgF-pOCHBtxcM}1eWe`R3AC=DC4bYHjD0 zNz5RcwqHDUEw}$PJ`y6fh|5b_=2_4GUOhii#~oOI{JqA09k8k!{npKKhqqR?UV;3& z2^Qqzc*y$uy5mdQGs@WvP;I^K60x0PX!er5 zRE3d>wbGYpej#$!g&F^xiAlS~i9(>KF!A;0$b^A|jS)o<1T$i%GrC?2Q-8PiP8?$i z9+!S|fT7DC^@_hx1^ljk)V8hcwVjI}QvdP-MoL8*0j(A4vKsz(7_DJD_7vpSz}v5P z$!V`T$Y@)g1VK^-Utro=(v0U^-pu-fX1>JeX^hN}ykNJf5thsc|r$&%M4+YX;8e z&hxt6ytJ9uzn?ALw!7cFWxZEOdj>fk&D{r;t+pS}oj#wfwx7=yTh0@%J0Bw7vT!Gt zoLa{MyGkQV-RoI0)KwNt%g=!aZ$MWvr=(H|(aGoBgFvbXWEl=Z`m)=Ck*9E6)w)C5OYwHjzkV?xxz)#Z#iy=699*v-g9wQaXH<`LolF zk4?8PW$xqW&9@J2TA)c^PCZKJ_nLjh4S&ev2N5XB%6-|B`Z?MErm`Q5{x<02VC{3A z37mOJ;`l*<9H!HB_N~N5rR(C)ia<;_(KMJ4vw@rDsvg5H zxdKncuf5pQ7*Vr`Y4uAEMT+HYNQpq+4+LI{E_%1)OG@}ou0#lzd9+&b&%A(7-#rwA zLgdyA;q&~Fd*wrqI5#3S_g6^;bVLQ*z-mPda9p~P4Ww=bT^7qsa!y7G&Z~viQp0#y zq~*dokr=MIDkh_S-AIC7*{HKUA7XDNoC$gZLs%y~iq&m}!Tsp_7f0 zF0p_}=e0uaGWQCnbb93&*y4xmtcBC^3D`Gc@PP!TfKHW8D3e89i~xE@B_bZT(~iWO zH`cXuJ8`3kfNoX-dJw;r6iNJ7>P(G;L-{S&@2bRHakzm5B41CYvL*;nMFl zEl#J?3(tFG%O)p_>C)AEttH@ky#~cPz^~caWVx~1S&PGSJ{R=G=`o+Pi~`~G@t)&+FU{RlbG}$Bz)&%E>h2g=)yq+Z*=Vu)c5CHXc6+c?XMTUa z?DWd(`H6G%dru*P2eU{ZO(e1u4-400LHSm2##3kC$cA+hQ>JBgKux#v%< z&A6UP5ZDdTKvMUu>GMTmkUHOB8Wy*tx6vR=dh6GxK*=H17U+9_!t4tKKN>vC=Bsg2 z86D>f?3{4-o>d8opM;j9oVPoUUzaJ&vazgN*PRYl4vQH|=vA@ublqb}t7jdb_C=a+ z_an6$=MQYE6~JW21IT2L;(uqmTi@-ydpsP>4#A{wl@zVHJPb5WC!8k|Sj}BvK?e2N zT4~!Uvaget6QVYoWNz8OeVE|jMbw@fYPu%E%7(GD|zRYTFmyH_r)3V48AXtseJt)&DlMPdNYQ)HU-N1k49VY= zR8+SPU(+e=Uzs~3Dkh4E zc@-7*(L8t7vT?;+#Di6mFXSFC1^$EEBKeYOY~SeRW0EzByTHRGF7esa3hdHXt{i2aW61`_dZ+t%G;!$tF?c3 z+T>)m+_-%&>vXt~r|?V^Pp5WZw{%MTTAc)9v4#IB_UU1T{i}S%0|p|-Wl=`W+bEgZ zV-*c*jO5}$n}^@Vwgt`bo0yHg6|$p2$TnO0epU=+CME4fYL9&t8*OG)s2kJIR<>d9`xvzmqnY@}lcoRfM z0^o_=iUd{V711g z%_Nz)%$h39V^{_|kmSLSnmzA8$g;U%36;Z%|K%pGJ|lixT6M-TVDh``8cVrc^%)O? zkvqs-FU}xb!vu_{a2@wYt0SbB()vkERVOGh8ChNva5In_4u988F?)BDlx0ry468ghNEyc=7E17!)rFgL)pJ7S0hynm?3nCCTLmvwU!&N;cujgFn>2XTsyO*Dum$IdbBS=R_ z36ts=toYAV@`c-)zCXXU=sTABo_#R?;of$_4mxAeIj`yiYc3V-OQ zM^_{yl&eTYgr5;eI0viSAcrGpyg|C!Au9PtdC4`Z8n4JWH&L4H*DuFg1JGEX_R^6Q zGOm;fE>qf=GBpm~S1ZTgQ`lJOIXJl3Iw-!8QgW~{e&J%{7-40$aS6^)QI+L0(d85M z*2&BOWx?Mo`2Ct34k{cbiJN=PzH5vK$1EBI?t|PD@^=4^gnz2JKy@|if7jPt;=KIu z?!$WTjQe~++=uHfC>b>ZP-XrwL`-4RvU3?sA2d8BsD%ANYt?r^&=_5TtbVvRS`4nB z@drx7Hh%!t8vwQM>T_%s0G)yjdL(W{|EApAo|~a8G(Ec3MoZe#kATCrp=Ch(yk8&J z06kKz>qBa4uRynn1CDoF%ks9}HGSBg5ly!p7xk)3s4FDh1;fvR3Q7h$`bbC)7p@Ja zHM@{#iRko}`nzk~gdr#s#ErnDjXKiVMgPenI_*mw_nQQEbiihr!(*rWI((={zfoIh zU1y!oapcc#3ab;GDqS0gy_|Z-35em&LjK*k?t3{jl{+|@bDUfrhogwzaG!Y_9dD+d z!QUCy7$Q=t^Arx7zZOcE=5@T+J8t`}A^XRa7?zZkt^1DKF=JmYiJA?XwA{$;jMjS` z{S#$XlHPZIVv3Yv&s27PO77cN)~^d4DjcK|Bsy+Kn~~Qj zWFsR;60^|7SANsClgTFqLIE*X>1A9mE^6vdvE;mpNd(OA3kLxr`QD==q2lAA10zI@ z*C$(g)A|Vp9_o(f*HI;gfw3dLmrS*CM;^R!0Jc7z&=K4*q`xZXMN^;eK({Pw>bgcQ1^DMWtmB(_dkkXOg zWGej^{TGl+?qfMuqQPVCbhHDnZ)_SnR2XAijA43oNHt9{lK723iCHU&S-&r~a8Mzy zC|V)An}ow--D}cUh!D%Teo=}%XHoKB(@_86k7*d~QmFne4mH@-$-Akp%bxc_t!EBq8m$`{D<-$cKC6+B z-e$xW$D`_-{KYuz#`pbSk|I_w*i7~3{+0qtOMC%@LdNlj3p$vYG4H>?O8e#PpqSfA zP!uSh^Ub#R@YAmvE+d4#Y5Wd+j@ysl3zyiKHb)ezFw?b#QJgNKImz2F_JRzAx4VIt~B_fj0qT)74lz3t3T zLkS8QY+m4636Znq_k-(x8SxXI3QONEl}38ImFTRPgeUjNqa{z9W-D&a+k>fEkQD&A zMQ4+>_9%@87-3;&b7J)Gu^L)CRU-5B+&j@qO&|}xUZ#8$Z!X_-rYLsj(SDyck=6M2 zCs|02{*v>n&f2BczEQsse&m8H>+Z%iyL-my`n}8BTF|u~rP^sEDKR2IxZ*1nbWHJ{ox2NsgOE1DcgH~dth1^{BNLX(Y0;VyoW@@9! zNN|s|C5O?d&PGkMg>p(r?#BOw1bBbf_we}TT>!*%v*|xf*!gu_5(a(FW;DCJz#uoy zNwd#dIkAOzIxwwr$EB4n4ys0o7Kp~x(rjJ5&0CQ(wZqktOy2`whS4}RJgQgctWnJ@ zH13n_RjCIdC(Nn$jGFdE_uT9Z&5bw+7PL1ucYnGf%XH5ml!yPTK&t!N^(`R($AG z>JjCe0ydkKqlOy4Hne#cG6OEU%FfF!0#yiV!|<~mSKh#|<&QZ-1YCN%l{5^yvExE0 zYtLl#@&>2WrL6BrZ2{d(yDPrK-A$Mz=qp0+yCCOg*=ZvF|v(*jMe_gd~9+sqR&61->nb{Mdd8wfb@`Y z$_d;*KK<^(*ADLKwn@tEhH}Pf!?)fBB1TV^bNaotTN7{3)~oM-fkQsuoy@jbHj{;7 zHlIkl;QtR5IsJFli7_b0AWX#yKOqUH|3p8&78V3P&b#i#&R^+ay~chpCXuSqW6>Kx zK~FQSOvnqIrxW{*%(K5U8vEERETzM$-D>rSY^jzuOaf^5YV-DVT1ka4wnDGf^m?N@ zyY##9cx|@n2!AW;Ix=R@0;f=uUA@)gu`jhxnAM}7){;>wx!HAlEys$L);IfR`9uHG zX@1`5V$!b~w;xM+weFGaw8bK}Nxk2e*#T=)r8vd+ytK8W+G(uH)c}v9rqUp57W| zRG4IW=Ob;3c;$g;$vQe~j<`1Z9B^()W%jmhd#Nr6D=b#I(Ambi8KUf9} z6Qvg+%$h*T-+GCc)_+@P_|8jw+ELIvyH6l5K%nx?eZ9dD`ls_9r*z>O$s$|l5$340 zB!$*>gnPy1mW7b?FLA8QIp|`Cicp!Br};4W32-I{9`SC*I6$KOe*Rbgg6kh5Wd|9I z?iZoS8pJO@JIV=$FMjZYiVXKB)V;Oqt+Z@xZ171ym0zIal~?2j=zIA+7~{p^WpLdz z3-Iw;<*YqkEk#RgpZ`Uewk(hfEVnADv~Sm56?pL!cztzqI%U(9y$67|1_e42eVQ{A zHJN`~({j5%o5_*L*VbyfJ6kF>-XCjia`1Db@spSdRRfj(7q9-9Y}^)s!8@Eoy`QR< zfNeOLE7XdlCvbB(T&OjFzFU3UWNNx!At3=(wG92RzWqwnE5|U4%J5w^i&Zf?5?LAR ziQ*LQ5bectzs&OK?qsrBWB*KRxm%ID+2M3C*L|K|3v{gK5NfS$3hmd=Y>-{Zxtko$ zRtjIYgw&L)d(CR2|7i=lloI&ML(2ds4}Zu73s<3aP~!t%q!UXxYdzm*bsgJ!C8zO% zceunZYql8m$rLr*TofS}<8ZDwI65hPgAdiqKf54mrF81M@_eFE1}BjQRQdIf-yx-O zxOXQF94^BMj^g1KyQy!xs;;r=zomEd7|KzlypYp|rT%)XL%fz~DJwX}%9GYagJ*^2_@WHx7&j9-Tp9H7<$xBJ}u+&6udF?DCB!?P5D z?SwIPtqnm(JTg)26#J{8j$b=z&@x6=PmMs$zRF_;UGWCnZGN$Vh1|g;&h^=(4X*d4 z@-0ak440^4`?&CN#1NesPAQ_ij$ivgF>mGLmd->lg3Kuxs*AY5w<1pf^nE?jG2w@(y<33&axPT%~h5R5K}HwTP> zKubk|lhrfteB;ZZ_-s$lB*=!G&DJX1OP_YSIh;-8dZzHKa@-$J)@t-SO{_J$C!A?< zIGnGPsoW!bK06#SWh#_+rZuA+E!fNEpS5z_oUFB}%p)@v$wZc|Hg7D$x$E&9VERdn zBz6wXo$8#=m8&vHj{4yFREZ=+s2FS_*HQC7& zfh^6#A*jZtXn3KF@sNvuneNIgSxHl+GU0s60i17Cc(&5wbU0ngQ;CcKIhyB_wIT^+ zT1`&JQ>7C9gj$^(H)nG=k(Cl6Y~jeKK-Cr#pKjCoMLKc?zeNi@2nXotjBOHgiWhHCjF$@ZvY3m0h-?ahx87L10+wW5LW@ z%N(=q987s)5=~tiJ=eRF#@g+MZPHtg(W;9!q`psUfU#Q;jhpajxQew}%XZI^XMe_A z1CYzDT&Kcr&FuBk{2V#0i4)kHZft#&`5t=p8=-x)M=O3X{XY?NM zN^xdv$$OTOh`~s`JyM%6u}CHsp8Ao|*7p1WF+(oYxNORDu#ro@bMp;gTAlE+VAB8c z1tVN~*Vj)VX9~-To>9}I?tI~N!Zy@%%Sfk9g$mYW-Bpf|1JHYMFhZ6hZ8h4?LS}DW zKT$&nF#TCV0MVzm?T#qNAFs=TRnt;l*+Xji0l(fY9D1iYh zy?TzyW*T${LEGvPlx3ahHr+{_ud(IAH7F6e{!C6Urln=G=krzXDBe42cnEiukwVsb z*SK^92S1P2O*y^sbR@IEwZEJ@jwG|3mmV3vnvq>!MJz1|exg9U{)uC)=!wGHJk)B? zwY-KBa5mwO;c0Xv5Z45jOD|g3e=|zm8YzG7_hrPbJrZhhorS1&O(N%d%EXg-2`qq~ zREX&J40QfkXyXItay#NMI&c}&Y!$)V9omKS&pn2`tUDF9C z&0K~`-k#vdNTk?$%0t0Xv_erCnzq4Cm>dCON+YY6Jz#ISNu zLUG?8uuKOB$3!D1GwmX;2%*vO~^wLTRO($Zol7p{b}~hnGQbz0o(2e zywfKQeph`90UbmFEe$Ouh0>?<_kG~YHt>zt^6j~uqwcj$p_z!I-W<|!9{DsAVlHd+ zK5e-^j>fK4qQCCc>!G~P@_n*x8^w~-19qS;b@{xp*gaIV8x97 zy-I^%+4prKR{*wQ_U!qbqt0^rEr_Ve(P}+w8~9p&_ul`jVay)6ulO1wuCa|uJ%hB> zx@t}(X+M7mNq#@D;L6WDsqT28Od;s* zl+(dvJ8YE6uY$;b7wJNIU7ZVo>7hwh*z z5GuNpjU>mmHStH^2#veL$_#5-7u08YStk4rqkHOvubwC3q5-O{6!XrLD1P_olJA~P zV3Df|me2LmY1yVIKTzvu;POVED6Iou@23!*n!ak{L9Lz*t)@dB9FP!0aK8H>wV2hs zs|(MHi~sVIh~e%+N~`v^VX)7~`j)WM{VKWbQewY^M_vBdXOVu53O=KSh0)fjaM1`W z*BpiV8FpNrZit4}jd4dUI{x&@RCL9+H|2vRZRxcS32W0s?wF4K@3j+ucp~LQ3L}C8 zocO$?IOnrTvV)Td8y(v8i_3(rLtnuy8_NODnN}!?Z42t*F7|Gzj+DS z^`(D{(eKR5@yjuKRlGsB>TD5`S%(c9mN$4+RSu$JyRe2%{3Q6sf(&EX&=j^px{L)o z-y;*c@oU6&{!ZBVCZoaArHDng6lr27sG!D2JS`);Ljs`7urmD!Ea`j8`wl-*NXhri z1kNE?7%F=n(X4VAqhMAe<_PV~l6xL1IUcHbf-uFash{w3Rh~O293OPsBXpqp3XmF&!s{vpGWmHY3$=UrZgp^W5sg7kQ_sCc~O zA|%;EPx%iX@^7+TzsA3-h2Bd~KGWQQi0O?r&x32$*!SyI{oNkI{YV1VnIBD3 zq(O}k<%1#+4xknXP%n+7WEd@|BSPtPwblH`)5xDCG`Y0@Q;ir}maidA z%Fp^_i=`eh1q!KT2uEc-V-wR=z|@Xu4Efg>nv8hhYH3JJr-pJ8v*FYZRZPciWe$Z% zE`3tNeSU5;aBRiyi{)2dq^?j;NlSDnW>0ZNEH2r)@ zJSNwxg~FK46>^yjHp8W!LePNe9JW`ngJ}7ZgeWYoSN>Enn|4<-R0@6J1l88#+Rd{@ z)vBdNp@aUY6T7>+QBhGBpEL0}olX|3jgOCyH!)u#(+(yhM2ZoQEwYpB$9-s}`xWduM7 zVI$sl^4LdWwvE z<(KAOUb09r0zvXQv58HUz=zm+;bNg*b~4;Yn7``u&c|=LN@$c8f4BChBT1a}xc#{i)2^CfcY|`Gyb^L)S3Gco;!8;dgd_?;1(*qIp@Zv1o5Stqvv&_!Aq{fu zVj3Qb_SMfZ)fP2tfD9k-&bAzE^vM%z)9$SgqI_Y|_-FdylEY+--g{+etXlKX(WniT zIK7b-BW7d-eXS}}d&`q==F8|Z={4?Z*8%iv-svTX$Lp9``dmvd8{kS2m;+X7e2(!F zfcrcynR`E{`vF;}c21`dLC#D-@p1ErdlH3On*BFNvubgBEnv>)An7rR%H0p~o>lGl zrxeB0cr*6G&fac{&Zo?)tyFFjW1_H;g|vs3tDho8-{BdUP$+)y22od$sAPz`%K-_V z){EKdWqJA2us}_Ab33r6y6kstJ>{f)#RxBnFa(**P(==ud@^fXv_GczPXt;Os=9)3 z-%;S;0+(3R7(sc~7#)mEebA++M@&LeTvU|K>u&eB6@WKirp?e~*Lq+!88Wn-maVYa?>;S>vwF4J-FE$ztosra7;HKERjZjZmT#6k-OMxJj+L+ICOG%l#f!o!VMYTrLV+o7d)s^iLS*;VS z$2~fG>iJ!9^2A`uC#7Q@m6^`mUXq7M4g9a3-N)2~7k*w%Y)U|fcm>5>#=ngHWc+Wk##o85XPaZ#&o4&$A0$67~2* z*vVcu`xF&psYp**mDS^z|BtM<4yrob-grSuS_J7(>F$ONh=8PYcWjzXcc-+{ozmUi zCEeZ9C9&zeUp?n{=FYu;GBA4vc;EG|c%IJ^3_ya>_E9I~0VlH^4WQs;b-fFx5b2|n z!r+zUytJqScgo(~c5pP3iVGK5XAu5aq`uP^E(QcIK%W88@E(klr2$|24EVfI+Q=eI zXn(RI)k+bS4q{FoBey7~8O73BD~^Ur2#t-($?pdJBt}{GFdFRXcYw$=tk0}_s=3TF zrXUPn*Io>zkx7g#l2z%CC*i56eJ+|~X#K?_@R3tU<_Agpec-Ox6KA5bL&fjoPd)ff z?U|4DqUs9SFJZs{c%x*(jh^KdpL`i6AR!}Y0Lv?DzNA9NJt%JFJ0XP6_o1&OfSUf1 zw-z^RzFdds?c28l-<`%UF6?WHutton%&ZD6i-zN)M`jjYw}GZd#HYCpa4QjGSIug& zZney-6XuiG=Xk>`N%}aWVhBCNBHOCRbX81CEGktwmgr=oQp7FmCbg%{imlBGIXP#v zBB?BM#kj&J(Hz(a8S{53Wx$JPxY}&6OEwK^%F3T5BzkImk$xm4EqoLn_Q~%tR{u{T z*1L}RmoIXQ2CvZ>cX+ugwVS&*xZ!c!Qp~D73`DN03ABb?6Ag0F$El&P z6<|=caAa85;9=l$y4~kRE-JafeYU#N$2o^qHv@Qp8EJIY2FJ%C%ay5i zH~)%|b-?4%^QE_`D;Lj|nt>SS2S}lYc!j>4wZQlfI&sJDZY)X?aa1RzB&JlUR{*s| zwY=}{2E_t$Xi@?^g1g3#b+1eD<;^h4<#ECjVg?4=m>_JfJ?%sMq>S(NK5Cl*Itbj( zWF2HbYRg=<{TEB1UGy9MTQM7U(xyy;>ISu(Jb8h%!)@Z=44);}7cc9XK$Fm7*=T8C zu)k|Hg&85q?{Pw#@r^>qN12cV+(c(-s?mmAfq+TK_ln=_0)ua84jwd!siub;y|GmXJMcxtE-;!K|Ox2;12K#-Nl_-2a=&yci5n`=~aJVS@eA}K_>(QOo6FmOwgTG zss@A0m#g`8yb;iw%rv~DQuGWH{Ho*I+PVRilB+PXuS}ew@p6NgmB06r`6Wj9a0Go` zZVOb@+=|vHS~C&_HFMFGz#(P4}H+OZ?tZqKVI-bg-Y*GPI z%bjEeW+x391O&3B=(t*NVWV8Rec)T_HGluv9g65Z=Vi%}rT3jyNnMDajSEVvz@QXa3hdIrg7CX+p|Zoa9(Ex7VTY z{z4|O%;hY+fz0x>fXDM-@jxOEw1rE}EO3mKrx`0p5CZkcoZdYz_@F>2Z zVm_lu)$_(Ynb_Z>al;C7dcHW2slL+ayW#96AeTrH&((6gvNPp~RT!JOv`*|v$U|Vq9J319BMmbQfn%1i7yd_C{ zE3ay#VEpHbq~_uf&a>kq4_XgdoVo{sjJ&CJFv2SS^~h)48Be!c++$;ZgXg}Mb@cQq z&YKjHRE0O?^}OQdbJvl&ES@vPg|tN7R1D!M?cjx9@4RyHf@C!`f(O}uT1HDf_A{h4 z9m|Wg!O1xt^mliiYd~Fe`RviYP$l_ zZ%fYzLTQ?Y$1yw7hv(oOZ!Ojrc!37MvF3084Xk0LV(6zSw5}lm2)a175e|F1!}vyz z4AA*sB#w!n8fjC<1 zNhdtO)e$Hk<;%rM$VgSAJ%rU_|HxLH_W}zJo-*Xp(tmMM4Vg46GUu4*B0P!!8<7)> z<@PO@aT1<;ZfMK&^YOf|d3Ud6%dk?I_|BX@sV@)=ZWtAI_+Gba5ir$XEhNg0W)0*q zZ!v`U`1n42fE`lE6;BuRz=bOyB4T|`p1gehf8H+af8H*F4e1^E0b@e-n%BXLJn()y zwZ6E~G`yc__htfYyo-pSr;yooQbK;8;p`*Zb+g^-dg4ruJE-570R zD(Zv|CQ>?qWp1;_&Dfh!Qm&2-EU^ZOHv%!rmRpWOLXv51O=@OCawnV(6oT{>r|&>o zRV)LCabcvYA+j2z>9s#c{@6;!5FvhWdS$Ct8wv(A_C zw7+NxQV|g&e6+0V+hkj*%Ag9~B{IPhJAyme9Q96zfjHS%)1ikn8okfj zBhq3!j8EI1KNKxemk*)bmdXZ;kng59&Bgg|A!296R$sS4DmyJIagT9GwH(H5a8j%E z=-ZcEoD@1`XvSh2>T;_e2dwb(N6=^RU(L`Eyc_{D&tN&Cly&hWvMgTW`iH~cbS}sO z4Vv>uIt6%zH9hgc?@dI$X#xb6oAh*|_NnhH?-O__wsMDt*>57!lCjg^$MQ72z!LDczy!*M|rV`{Wua*Tv z!eyQ4;_5z6GLSgqHYAAO83nXgVQ?}8{)xzTd=n7Nk_!uIaI$2RaJsFyv{*%|nszRf zvYw#kgiyu_eb!km8Fba$K?Czjj+A3??5IT*FQY089{maa)JRURtZEHVuWDKsY7?=R zH__HMiA{o2xJaqvM)^Q#bXr4J9E8~bG%xGt)@P1xFml$ci z%&Bhwx~;v_-NTi5S-nD9fqIPEF6XsPGpi`GdvrB(?OtZbQ*^dc!>+cS9nJghh1^8F z8+5f1_1YV;^vh;VcOCM!LR`IhX`?AFbP`sG*0agk^-_&u$GJ4PoJZZLx`nqWN92s8 zrO@>9<0))HV|p+i7<+W>jLdho0U%t(S``zRJ5^-~?Y=O&i;93Sf^2gO3{4+~9of})a>YLCb|#_DVN`ffRdz@h z%NK$}GPf%+2C>sJ(C-Sa+oFrd>8nkpde@NRmIJ0!M@d{#q2k-ncW%n63kSf&e%72( z7=WvQC@3hXsHhSUL?pz-RFsuj%48U^}(1s8(3MzseoAsRIT4;mEk50&}14PK?AXw zXlV(!tkgTapZEY(fPSa1zyB+-W^_T3J~KsRwik`;Z?lk8IzCT6z*eQ~$DtS4v@(`8#LW`vCCsOF-2FDU zV_eyxG+(cRuDqaj6@o{FhM{6^4a){h=n!Ch5% zp58OT;@luy$?@A%D`&_$fe{OK^wD~*y4psJB{l6uW;{Mevrma86WCOf z=`Hi@!mMuBV>PJU`K{c@{fA%U=4vQ&~DXljU`3uKcUNP>0T6n8nn8cWrpD&qXa&7yBq zhHE?|Os_G9)7lg*?YYyRT4g2f2Sx;SF1trLwsRy-;Red^Q``5B+iozWEJ<5S+!eL& z>T?jI5_=@5zqBG5)gZ`yS|vbFGaNq+C%2E8W=!6-&cx!afDHM)j|8b3y_Pp;g#>Hv zEq~l%gS`*HcxdSl)W^w+M`Vs)lg@)G7%qjq8Qr{vRz&f9uF-OOQ>Erynv2wiOWEd}ymy3+1+{SSL@=eKjKrA@h%4UqmNw<)S+IDr)yuu=@ zDu3Z#zsaWgURb!937*nEJ^It>Xu`un9iH!}CH9<188x=q~%;HUp*R&TBK?7jbF$TH-QoB_$UNw zy6R^rS+60-G7%$F?xF!3KLZs%N*@(V>a6j=Fql2rTEEmL0ECMT-mFZD93ku)0biqh z!o9Yte*6^k{JLZoMFItBEnhYjgM?3bvEXZFclReCyGCN_@c#ZxF8L2@@L#NsH{LB@ z2qFHQW*nG7gM96A!U8KVuVw7|b;hcYfW!IjmN@s`_s@wGf+d`^s-*ZlAC2NHmSbe8 zRZl==zn0!{yKRPsM=KP?|MZd=bGji(^|}B_*(A-0(pA(Iv)x1{wcFg)*Ob)jMWnY{ zEd06);vPzmxopj;H!Y-cI)JT#YvZ$jmfN_M$?QeIo@yA^C?hLaIwaxuxNjw?pa;lP z)KXVWU67Tj%0c?!Lxr-w(utTj4v6U2b=HbQMhry}RDA(A0Lj=X-3+Yh6V! zNknEd&EBmF5;n|fTRCyj5)TcVm-bRZt;*7OTKYC@wJXfjim?TB>DM`(JwiF(AWx!R zsj=kYsAKDQr?Bkx#LYH0S?^c(-{$l)qRVRA@2v4RZo@}lJ9_{PmQ^>6X=V<$pN3A! zlS-Gh-5%RhwRs^HBbANY+j(%*f3Bj_1S#AnqmHFn81v`9|BR58K>9p>cW_9L2R&Pg z{rzpwGDM8|TV}h#=ZoOU!4m8O=JW<*e&$WO+tDXd%kGd(Xws~`UCa>j>SS=lDU`~*(0p$ojP53+t9Q_rDR-X1uZ70wQ6t8gNy_GlFuD{DVac-G3YxQ|)*RANV z-Rzz%Q40?X8_N{J+_^fMAC>V+2vX1xcyj5r;M!V798Kz7wBjVNHls?#Is_W&{$VwP zV7BEhfc*CrVb-*fx?~((A3T#qB#W!zD}Hk4g0Nq2z5G9whV}o&@N^?W{ORP$6s@Ex z+{YoLmmGV~v)(#CEORe7CC36AeuPQd=98F~4D6^?cR{+Rfi8vQu3R-B59X(^ku$t# z&fz!VL5QFem>#zL?7Yc{k-uU08!^^nF#)?>!69dWA(EhFirRf_4~HD}Z`pmmn=_+aPt;cYuCs%Z z7(aZ}rdb#$Oh#tjsW{2WeYZuUc3b&~W>#sxX#@_6k_7yNqh)(L&*bdWiN{4;OZsoQ znOD7LStzvMvD)0l^WWlr)|QOHEuBXXm3le2K;=$rp;-0NAmw&)f(Z3xednlz6&dn- zRvMr-$(|aOrip$DgJDEX)5FKolR9u!_3#)9`*xf6WO_)hc%fjUdf>&$$9r0nsfY)I z7%xO2JlvxKOo%}&VyB75XR>UrB~kj|=#drH`QhlLpZ19}`kP03Gpj9U;y#zpW8@7D zPnQ%olB2RM##Pe&A@O^rr;(ZQ*u0kO-yT%((qo!}nKR;J0m4mkGEqH+Pxn(y=1NQ- z4M9blP^N>?@+2NV9!}I(&Ok$Nw3B)1uFYJ!UbtlQ*D55hzh$f&tzCygj!3tlewc3s zC>~|1#@{_3Vgbp@9Wm_ErtM0zlO>?SYjHkVYH@+s*!)Rg)WRU<`JS1{+`%-ylGb{= zj)TokKK+BJEFZC?Xw9O$Cgn&$yZ>@D$st$L7kss=V1LUV^$B)q>RT|@1cT84OZxWHN#zsorklO(Gma(7i)rpB-}|#e(xj?m)Ft8{E{dg6Z97%A z$9YFhcJiyKp7Qj<54)j!otaz9)$>O-4ai3?#pU?-(UkkxsJ-)Rpf%A(XFZeI3f)?( z@xag)aKC>}MTreBThezjA75*8J*^XcBM1zA-bF@b+6XM_$=9;)DLx+{ac9PBtg@8B z$F{gOsNkS5uL@m5jp%3K2N^es;F#ClQ+ys3b60!LNfqAewA!9JIgKT^EZ5-yGKn~k zWANl^!z}s)!+9fP(Ucj#!_(~8F)C7&wvbQ7&zZ4<@%1*(JzlHGEgnx%V!2*kSMHD| zMt!MGS&gUX?juaSIX>P&TG!&T-N!94Q)Z#x=agQgSmR&k-cce^r_s4*Jsn7y%Zj?S zo$NOushzg5@eA6n_aTGv3WS_)X5#mpRL9`f&TNGhCwp9Yg;wc`SlvGRB?c1KY>iy) zHD}tqOKWl1?$+s974CgsC1CCPis#VviY&T z;3PV`w1JZzJ+)CXGl;^L1f1U2`TcSKaap8XT3UbqL>6atCQWxH%XFr?ACkX~Avqqk z;0WH0S4>x+vy&2UG3JnTy3*E&JW5w6t(69c7~6e8=az~ZUE?>L+bnc@kPs^6vrH^L z3T&u>id#5-C~7jOxgN-L^IV|gB&5`8Q+`={x=i0&%SWx5zBE87tH|%vGwD=A@V1kl zyDvlyP`-Z;n7W2YJ1UcPxb}Amnxq~*HwIA0Y7YYb^8FrpAIo8^xwhyp)&OBR`2r7I2Urv>I<*>$f{o#!OqGX*Y@7oeb`3-Y{;c@N zRy{OUg}Iw=1*n^e{o(Y6kaVj!e%au{GSYj{lsL#uZte2m+-0Rs?r`uCPeiqMfn8-% z88&kE0XaaU+c7v~^*7qbke5aZ%z>P+>}2yL_-^Y1ptmFT4=_y131^ zTnFRPgKw>lYYGk-%fRQMFF?7guKXJ4ptf1OzzYWm{}gtRhMH1U+{q%xv?Avyge_}n zgiAnb0SSGU`(z{VX6rv+W#R-x53vZyo(i%H8OwREgl*9l=#h9r+SJAqH7H_5tKBGC zMA@|R`VEJ}iB89lK^?BU8A+D`n@|i2fnq-M#4!3mBz6bG+57LxI{PDVlR_CH=GS6a((<( zrTzOX+rUSl6Z2gL<6q+@@QCklZw(rZtM~jc323wO#yV#RWegLh z%_?QaRC5;*gL$)3XZGfP4ZPYZXz(WaKQ?;1&Od60gFYK2j@d^GgBa=0ZSy@BuXE}8 zKby{IA}DO|aErt93%(6$F6h~E&W5K$VeuazmEm&g!4u1Hf#xU)%O)Y$ZhGj1hUx-Zo*=ur54{8uq3A=K~OY0=tg-Fl{LpHm*+ ztJoA$aohKW9u#Dpddj<8$DimXA8DY!9JWE%u!r+dPaT|fhEfvwKMD#F^A(Uq@jQ6X z^8@qhqoUeJ^*ko^JX9G$;#y^)KfO>gy(ODC^aF-W4~wChHxTPbh=IMqFHAxO77nRtLo_JS8{ zqI!;jIw1J%VKo}#{EoCRZqW+~Yx4P%pKpAgN5VSaH%*6F_(;0iG~EClZW6f1@6&c1 zL=pF5!;p_;RDYkrzm>}R$AA4%UY12v6pkOr6E<-M3NkiR9158xuabRJsF=@e6mW>; z#>frRspDsX8t$j zc+;wXES^r`l|8BYJKTUS88LBcggAYZrrFW#X7tys8*g3l_)xc2Dw9HDwHYp!{62Ks zP*FI<1SAsQ7K7s24eYVBVf5K)R=am?A1WD+V+JVj{Zn0fj3*FNdw9U=*gC#mS%i!^ z{gDzBkO1VFw@B@k*xhjckt|ioTj!pxSYqy&Y4kS8`G8V{jPDoynT(^vmCj{WV`Tay zCr*vQr(OJ1)PTx!7K8*m_{XjctJ24xo%j=bC9fw~YJOCtwK+-cmu7^)WvBRW;IuVV zcXEpfX`7rGeq;;3e%hktNkK6430h-r(sz~e!&ByHhH=Ws6ek+_y!~F*X8$qmR_rb| zVLzrmBe~LBrR@3Yy3zY@C0;VT~}IsJT_-ixhiHq?QlI;_E^&YA8v zvhC}oD;p6jfhq$r_35c~(8uFP1 zNK*qRUUA58ko>Y!FmR5Eb&ISY{E7plalHu`{!5^Lk4i5?Nv3>?f?M4$Ck@90$deZ8 zM5Cp0Wa^A5P8MV3Lq0e9Z+=9Lggr!oi1D{sFN+#K{!f;D^6xczA?m~vxXnkp)>^;J zYCA~Ke&|E^h?#ijO4_96fc($aRzKR zhDmi}xJ0UCtmS0WJgxYYq}SF*n2Z>?Yk;_p}_)lI00HVo!_Xkk~ zW~l!x0JO2rI*yRq3n5YWpkpV_yMlyG2CK9?-m>G13*+5VT6#^ReHcXY%wgv*;g0my zd3hCZcn&vZ1ze!s%wMM{6I|i57WGMlk+|4#xJChkGiLRgR`S1(E|XX+Ik*TTWjvn9 zYkw^=9&(Lcx$LREGd^qWdq!qCB=`23fgn%VqGCwl{I*x@03wos_eu7qp>L28c?KIiSk@t3!)%D?3-D{} zc)A;pNOknqiOx1{7PksJ`DK3E`^zq1#Tr1Wx+SN*Mop1ArA8giG$M<9f}(SpwE-QL zp8^|roE6hKUPIzz-^eTl3=)LJp0Uw@fN^em{y@uP9KUE*ol*wQ?X##~WNIMj6Tst$Js_f7t)!T@Xz}cId(p6 z=1v43_Gu4g0>5~rdgyd%!05$F3Ey)zSlC2Yc#5>5@-iwFO~b~MnmYe&BKgxlxL5Mu zLRmGnXwr-;CCxdc2kgSXijj&va$-BISk$v=%bs;{*Qm|p_N|DwV8AB><|*}W)BSIh zJpa!XScj4E!cKx=tV~2|PBus}z8wm^|D&enoV-nkTK0n01g8W}4WqK`tElsm=6G0d zMZTkq1mL;kzbOXWBs*w~Rig=n5cAA)mG8Qw0wC36(suA9F_KyVbY0s z%#XhBHwoI0L3Su7Bgve2=Az-voPPr(0~2o{gpgSaHo_CGmf-`7!jg&-YZk7Q!z02n zTrDpzQCV4Q0F2*f*!A<}HubUT7hUo42{66L;rx4${)T$bmVZM8Zr^VQ3_KBj;^<@K zQgR~p2L7mK`hU5-0>SIvf?gO@!ORWSPuS{6%4o^T7%Gc`3K)37J_|a>*O3;X7rZR< z+4@3mx*)d&d@3T=mJ+-Zm7uZHAFbTVv3S{Yh_siW!FycT`{8ZhXP0W6nJ%~)H<3`w zhp+0p4x5r6Lfp9Vfj>!&385-<5I`=*-|4_E8Frx&$rVg*+T!4K_}m>jX=sR)mj<0ljifQ=U(*+hjC^pO8QY0qgijT9;H>wrumsA8dz%F7{q z^ikxIvpj1(h0K6ZlTCG8SRYH0Ig#xo&LERv0Nn(J@WjPCj*wlTTZC@d4I^{FdTbhe zy{JdZU#IFKT1WQcpCLW(lK9aMY)r;I4%Y5Kn1?~NYOLJXOx!S`vh*t?Qizr&TR zTd_8rBcsgOb!SPY+uBOF1WfH+JnFB2<$B8j-Yj?W^(s$PjrvGrWF%KA$;ggLeD%6$2VaEG9#eB+hIu%(V_BO2D zn{zv|=Yyv$$@RxfM5~#eXFA)5t222}Cx(~&VFizPW#c!sCxlt!%MJ9lb zLH^W3Nu6IxPuC>0d3;46KbV;cP>MZkdaL=?YnD-6j|l@y7wns|I)--w`2uQ|)0sk2 zT~JB!Fh?gg+3onc(wtj#=F+oom-Bzabbu6-UqYX-O3RM%{(tw1A$XzZ0(Fa9hIbn` z;2UN1`(}hmav$iWt+q7$A|AqS;GK_{Z$e_gtQ)D#V50x~X5)b~#!&xX4h&XANT^Ap zYM-tMJWynNI^G$VX~glI<7sxhM>*5p2-$zDzx8Kp9%qpOAVPx;&w0 z{IOsl8N3--Ps2C34m1rSyfsagI;|K%mH&eo@#VDrP`+83%?^Kt8M@gc{-!sxABgW% z31mH1T+1gw@BqZ!BwQ_{7ByPdx0;_?0#wrEQb{0H3FGXkzz9%dlnI}qW9~bF3=+6O zBg>ID8&CPTa$;|hIp4zCCJ~#;At$$E5ou%-reK6A5st6t&>j_r$i+XmQtT|H&1JI7 zKF0Hv9MkFR;1*lBxpnQT_&vs7A!wa`iShAIXFZtd{4T*U|8VL4@Bh2j<`(e{{EsbG z^Pp7dHyYtw`(e>s7?sDd!NDnZ@b(!?+wHJ_^#$O`Rk+=XYE<4T862a~W-R)d6G&t}33)1d3dW%I<0jgqr_-a)tWorsi9)~7v*SC^2K zF=onjy;w3flNPm=$LEKykZsBqEyp1;I`QccbhFtn0P%d=1;K1zze>HhxOlDI>*4w7 z!3DC8+u^~yygUzCYwMD3x_Ca(q7j;3Yj?l7z5>206}B#tcl)GOD2l+ebN}FCi^sg) z5r6=i*59x^3r2^eh_rh??7maZic9Pq&Iff=UR1x`hjHmbYWj@S35Q6G6$h{kOLrJ8 zACh8zH?SOz9wlCAl8wHgKIB2!Y=1%4T50L&f&WlnU!V1I{mDub^k&`X>;Jd_|29f_ z64}0z8rHY*JLpQ9`D7n%W;^I6Kywmili?z%r#sz;pano5e3@GXqVIWTOswA&PYgz` z38(MzCepY9x&kk7r2a&Wr0?_Z3~v?NRM)d=m{Bfttxh~l_XRRU9!axpIV}?5IlN%htN(T{L*~z zsCdP0u<3xW*M3PZl!+hpVuU`o4qJnXfmT!7l8RaR6Tph$VjhEPJ25Ww`?a zQO8TX?X47Y(BI$iThrZ`@9YXdbVVm)bNto0DQb|&^G2%i(M&&lP}&1MpzJbajOCrp zW~_~V$60Grl}`sq(8Ez$O3FV3V7|$G5;&>;P1^;z$KmU(%?oiU8n@0;IUx@qMM zj75JIBi~1w*MOJ^=%=03E{=*%C&+4j?C#;P*!g*GlrKk&hegbi^>zHY&ExWPIu{aM zE>Ez~f>itX;b=P7(#klA%{)c?2Z!~PYvth9fGaxiO^-xa76)ix;}BWZT<-nVA*fLA zl$HGV3@tlV6bT@_m+r_|1uU#{Qyq0(I*kZDJppi2%Cv*i1u~f&-u-c*EY96Y3R~jQ z_^)Gozz^52sD%jWiO?`Fulz~!Xk!PWq&lBFst}SS*1(oW^9^c=V0Cu4P0E6-ZBe;u!Jl-dm{rl@4N|h01EH>l9AD_ zF$!THAO=N(KHIU-c-joyEmMDsiN)I_YroTpw=KS%{3{fHmie2A0uv-HXRGBOJQgzv zvP5&G+V$>tF?PAwh?gge6>1G4Pws=C4zoaQh*w8~m5_>Yju|%(mrM>OEUJ}8=h-ky zjUzQiy#@;nD`WMJ3>~D)17t76n*VRjToW)gwQ1{!JP*HmDPk?ZL!o9M;RjEF2wnS z-{p8FSohO^`1I!||JJF!cz99-cI8=RPBlMGV_d9$UG{-xmW&5~0GV8U4{TaAB?a2$ zo_ppRYX@3FXoOW}CG}lnq5h)VGX4|=V^56R9+?awYA;sm>=(is&VA3s)GIA7kGG-F zI!<&~q6EC3?y;uo`!j`hP|~(?C)AjbE!L^zz3q3~KV-gaf5yquI@l@gfxM4?@boTu zso)sOp~AO{I1$ES(c|>k)K|jubu#!!!_o7Xbf#vb;CMlt-|Y-+PvUmyj?*bP!A~fL zsvSM0UO@Jr6wyFK>u9bnqvXV}^6gEvz(*q8>I4fIf; zLS#@aS*&*3%I|_hiX!0s$i-&m_{l0OQ!O(?2e@@h9o&b%o;-k7f1}HdcU$w#X(*eG z^q?llrng$H0oJP-=^lfKgiMf)$==v%CJC!56qyy&gLr+gh5&{O0C{B}N9LUQ>f*Z# zWO37baH@f5?KG2Gxo@Y@S7ND=&q!0=kYJ#?q5BQ;VG3Ilt|B6V;!0noBV7f!HDeM? z@PqiQekc7<>Zk7Rye&MNv}2XWIGAtH8~+36ar3F|R*iUntwAC&8}8wA5JGohV_{_% zaF(f|=Ku!v$>ZjDzQlA7YttjHj{;$m1`zWm^ z1HVP-N&Eg8##Qc(8~3z#DhE66ad<)gs40ilaqzVgBY6eMpNZG~fr14Jx5vy3UPUi(Wx@Ut%9_*$q5KYUI zC3FkhWA`=*#zz==*u&KmJu3uHXCLEOBmw$)SLl{LM|2`RvQuOqxsy-o#B%TgOI4=0Vze4pVSZU{KC#w$NOA))UJI@-P%h$6bO z67f~OoQc4NpcC+TPGn^VAXUCS3L?8*qBz+y*Nhx#0ZnZE0dUxWnaJ`_oLC@xI#_oRUe~Q;uIz$)KtEXb z(eD812847rkD#lc8*wMWH8K-}vY7c;-mIEwO6%qgrZ~?x6Qev33jF+9u@)8=7aV*) z6%$i$z2tbffF zHjlDW8<2BS_w;=`*?-Lajv*!-LxEygM9aAq>)tG9mZXnkQ31 zjMCs^JhDxHza%E(+;y(l7Ua@=&QFcj-HR|H7X4l$Ek;N997jcKkzd)7H5y5(YXpz` zmKK7tYu_S3Y$au11Bz4~>koC7*^e-!zcqJ}1{1Zv#!By1Bk49)EL&xFu=aZ?jL1CA zfJ5FU!GjCgkBk$sl4jKG4 z5#gni^BQ~O+z0U^Y6XBq-?ZaIm@tIh>%z$3+-R1`@RkQJx$Pe0V}HHTcJ;dbUDH}J ze$}u};-T*TEOym)GYiH`3+r@{^VD|j<%_s zsO@TAW-iMF);&p6NI5d4)FH4gsHgQ zqpp_+TO-}W7&%6*f@0Npq%z5-{NhMK{nuKQ1pYaMP1D8>rWa; z_1MxR2a;qBVs`%=0aPfgqOgR!A(B}-d8n#~Ps#Uaxk*&zH=igolN_(hl4bTOkm10Tei!6rcesP&gXcwTVP@~U>$%0Zok8?v_4 z0nyW4+e}-5TjbS$fL>ti?vRa*3MQpGsHY~zW~Qd6dhzVpI{(>BOFQ0Wvi8OpK@L7~rKjFwq2EDv*tk%m>eaH+bmOwk zH$gm;tr!-?%+5&6g>$Lu$xdL~JL^j8k?(3Vu6Zkyn2D6(E9Ayo$)AKwXnxqO8rvU?pEUrCQcG3xBdI<+9qJ&43WOOwfrf&qio1P)q{bv*iD$ zktzF^Gh_yos&EY_&|rDEhC;vO3{&bK)1U6TC2DP#wJKZu{?oyp*`niiBDR%^*g(S0 zZY$uKx%bn)X3s6?=^~(*KDs1BWr;q5w1J`tA;Q0$ji0o=sNAlZo^dL+VNSYXn5><3 zZt?S+2wlmZgIxO=QH}j&sn`4(Uq-xEn!hq+hqS#;jq@Unh8KQ~*5Jb5CBA&QA_9+0 zMb}HiuHomVh@FvnSx=uNhOX;<{coLkf~P(c1T#-1bB~Mqu@jN(@#9MYcb%K^C0$i! zoi-&OsDf;OXzjUTuB^Mtag+DD{ayLNA5>{c!M!&Wso^g6Q=_Jw>n!WE~u8!oG<0nrI`2X#srbkGXZG~4vNmtsU{h9N z&PwmkYvWnT6R#BZ5Gz09k{y+G*o?laonj$Y(E$Jpc!g6TG#5|u?sIn~z-Ykj!{N$C zZR>j{Z(m?{6Dxc^?rn)d+#ItQ*>|f>nQ0mFYlQ>P7?jS(P8|1{-1sCIiuZ$WfPpud zt=1=OO{l2TM;sQMuX-LRs2Lg$Use`q^X%sqF;u@i3(^gbTe zQ404J%KRYwU{UK`S+~&VMa39Vc;4zFE$0cQ5&GLt_aW$D7S=kUik&rMo8z3}#6LPD zw6uuij7;FGOlc0g@3*kBDlCGO0!~jBK*bf?R3{Q%GYWRdsX8SgE77e5G6AQBT5dYJ= z2UiA7FR!-2z`Q;~x0mO?${s$a!_WWMcj5lWCiMg~IZ?NY-1QG>_4b$+A|+!}^c2zr{Pwa_u!$|SrjMED{@MGF|BlF~RW53UglT86Ap z$>IfE&TUdrSN0Gvk!)mB0W{#Fb_r3?M$343PyfiGRXt;YDp@qY0FnP!r>|QfX^=(Ue zcz`ZJjmz*m=ZLndrC!ID+3~g*2$|r6k(#XBy31}qKX3T!g&{HrIPrpYH|s&oylCQN zECKtmnI6nWQP#8KR zr3z~E&$@of;tg20vD!SGob&&QSoZe1A1fKulH1kwQaS1V?tmK`UP%CYJ@HY%n^cI1 zG_(WSP6Obxt1J=ocadITVVnEp+eo4eYnfPhnPG;My|Sp7DFlT;JuDz4e(&eaAHWcF zY(6@zBwBVDRdo+B|L~LY{dZ$g`RdJ{2eeoXUxyf2^7MCzjhA29;D@Nf`xss=F&Dwa zo7I;mPQ5P~r%^Zh2}RmmC|LB=z{P^hq?;IZO#%zSlZ;=pHwG2+$y{i>s$~+6C3%}Z zDc$5=t5WQQe73FN(+>rln?T`xJAJqJ%27kCY0<(O@NAImF7>Cxgx$>c4{1uPm>6l) z73KUqv^McFSMd_F>uaelejDDmZRf$$0H{=|McS@R=%KDF7-L%&R)roV= zLLT=ER$K}3xE-G7$4@QX6N(xN*B3iALl^dbTV0yq*rSd#c`nQmTB1uBY}e@J9R}~0 zKYh>w$a?E5dS-gqnxsg3B$lR*ffM6h{|^)DIx2P#bCE4BHmfZj50e2%(PSWR=;2kk z>3F7~+x^8IYQyx^;8b-soN5U{uv%Q=QYm;W0NPM`g$mp?LZlXKgob7G@w~>yM&M}z zy2a1W52ycIIP_ok4{V=el_XYd2{E<%N>X+5YCkcWqIoX4Wr?@EmF7a=&h*|%bXs#a z;j05o&Zv^e=~cXr zzc2O&=_RNj1cd2WsjUZd;e`8@ZZCu1?Me{)8Hq9)shG^CNAg-qi2oRgeQmz`X*1jo z#-k{qm~{=@E=~6)$CXKTl5eY>pf}jeDjYdOwoHJ`ay1L=;99dkCrD?qvnx0t!<8udMpWE1N=o;oeXd7x>c}G3 zeRD2*k`@aauNcpCKxUndgNhz}aX77(nH9z?d0^>tjFrZw2{rmvNEtfK-7lvp$fBLA z?S1A}hY-9ag1S!{a*!*8=c&kONI7@L4F5`8nfvR<3kH@|IybAF&P7VvJ#o9CsGM^x z8@Yu$7Q2V^Dt;T;)oW;TcS{9ePT?a8Y7zjw%Q}Di^7wv{VtKIT{*B7|U}{Lg!6%l6 zerorliY26MT&Sii?KTeX()&oJ&+&NQ6Nu`rrXIH{ZZf^&AE1^!eQLo<6&QG+<*E|1 zu8UlyDNG4Edw)eucr&zoaSZ|{B{X?V-=eH2)eX4VlB*uhW&^sOv;6HbJ|Rw}FpVsZ zTNujwEMo%RBoPwXu5GKu7%c)+=YHb%r9{Q!>IOEC4zMYde|$mDgw_+aI-p7Dz0HgX zFJ-QT<5|*H9)W-rP$v8y-@Sp~XKR@@tmfugIFhzlTlI3^`ZIlWletdQ?6C>J#hJs% zK%Qk2 z3(3<$PmYI|<9JM}D$3PvS(uu`>NE&v!#mzD*Cdw$ZjbN_P3)%3Y5aPQJ9LeXR~PSW zXANq4MlK4Y(VnS)&6u_7I-YEwZ?Pah_`qxiW}4e1E+05{i^57tNi6~W?>uR||83a} z{>R%|7c*w9BgTH8y!|bP0wpCakX2zq)Eh}>a{6t>kAolVs+o-n&*dV`S5u8vMq^dj z+*v(O)H{B;iMO)4sa^*sCGH23MV38(prW5lza}@;_4|uV@S}`hz0RDa22cJ@-}}>A zr{}YSpIGl=_E`NSQQnhcLUnLf#O<9sCzBNGP?6-Jvg0VJ*p)}U>S+q$cUmCM)7v0(@0sfv0Vi$by`%lU>SirPo9aZ1z)!+)g$j6gwF$ybL0OY)(((UoF;V zBpcS7r`1SKvDq9B=C;73(N1IiPl7#4A<^2+f_r07`-AS2lr!YvkjRn7+YR(IqP@+{ zk!-CRlt*3;!HRr(c)gm}$IM3mkNOE@jIF+x@DJzf-vb?{Vhaw$1$fUz^q!MQuC&x~wEDO_?X zQq=sWZ`1d#xtAS+IWGkv{CT1IRYOoup(`;i93mA&?Ls7X+7!dfPc5E@Zn!!AET!|l zhKf=%=t@6d7RTZoQ;0_CgEqB1vQ!eH=|$C(nmVTCG!UZT6J#vO%Mi<%10U-UN_zUL0m#2L^55bz$#EyNN8&EJ^~797`V%8$K#~k8Tzw zS|EzWPzM3iQ&%Gx+6jBn+Ot`?d}3l^vhMTZ1*m41C#3)D;B6=Q&n_}7pAW*&k+YHv zB+mbbsBd78b6wkxZ5s_6+eXvawrw}Ilg4&q+g4*Io!Fe%>^p1i{q64`%yB$(-4{+- zZBbMud5BI3KQ&wKq;wG8R@xCE)w?cC^DE{F`cHP03}Pz&cu~--p7OSL;{mvFU-lvr zG_aTe_sZ&Qjp9fVnIDm)6O=FbT)T$9$hZ^rnLLe<1l?&~@gjTbC%N4icz@rsdHB+! zjYd2bW}2Sw_LSZ8vBMcbIMU&|YKRn_#cwMglxyv7Su2Q0*h0%mUsi;!$-t!z8!?^1 z6<`@x_4PDjoN=VY4iAIBZYyY8r%upckVS4cx87?zk-r56{k4BIR%13*cb5Jl0|(r< zUDYl|W(|*pX}@P0C4CuZHivTz5(784?`?v@vImVSTNjSFi-E~nKPs^b_gCuMtOsgl z?|Z)@rvpj2mZWsRjdou>Z}Rb_zq%6y{;2TQ5)Ov;~^WqW&5)N0D1QFPn$< z|JC-1X*=^{x6EXm>0h5n=wBdj1V9j?J7#S+eY31P*Z4sakYwCC6=*STkvxU$J07<; zs1B{F+7!Z}gXPO=%wgg5xO(!g(&At7%qNOffSnODBxQZQa?-7O=cjTvAg-0j8z`M0 zGLYdy{L=*P`#db|0}G)~O94}0m@+ICem_JqYZUCnG{XfLdK|wP(28BXM!pjfJ^M>E6+W~bemzWWY7QnQI zZE;0mVZ(}9MO{rDlr75&2cB(V$^4%=D;toBiCwkhvwFx|eip+imwUh3?4RjS_~Zu3 znRV(wQFa(6T7WX*!j5wX%b>L7PArGp# zDe+^HJ;yipO0K zjcALXk(x{c0EV!lvBR>4@tTzVYU;wWzDPSp9Al`H; z?ubI^qgb2g!_n{4b1@pm-un|yIU&#K1V1rsDF?Oe%+U*s62Vtp`*69{+#Wj;K%L81HcvR#U8UGlCeI=d}qcC)Ts!^F=ty_#wKAh9w*_z%|` z$V$h*K=1G3J__Z43pI`J+am$Lr2hwO6a$r>yTGs2}ma{=oo!9Hvgpmi)W}RpB z#umB$)QKsbhqi47CAoqlh&v?-k-=}roRo1rS3R&yWcNJIk-pO34@?E8@Zdat>3gp? zPv}D{Q2zl!{X|M0Gz({gvOwWNBaq)_pX%JYon$pcLlxNtc+y-6XEOfTp6H)Jj4c~y zE)Fdl8=J{V`iY4NIy%{^O4&*J=m9$V$?d)XLy+K7*+5xEMMFnL$3RCzLubvz=|x#K zCUuDT#85*+Ut3*OA2}V{s2+w1(p*wqk}4&&-az{F>wf%aRLc!Z07Rx&u`UA1Me! z$LMzA7QvfK3*{^oTPvcAYGjA|$CiMlwzaFQygH{_$fr6>C@*BMXisM)0pI&suZ*nB zR-X@So_GLITN~O(^f=o$t)@emA^N;AXu98c5M{?%t7c_yZx5s{atHoN{2y#1{x58E z^<^TMT6U*jjg>kC{tM0b9LgVFTaaz^j7-zFIsNmlGh06(wjp>Q)#n($D=1g9@Gqoa zz!Q`R`F)U#5g32zB4b+fp71<)@98)$I1UO1Y3`|sd0vKt=(y>e+6>fN?s8c@dq~3j z4^w^WhA?qU74j!>1{V@&wfBv%rlM5{9)y>DGY<3m7Ybucr+$y*u?0N%3d%JG(4xjGse)D$=!M2W1dEQp- zFR#`$T?R=r-L6%Sn+h9l<_?!3RgUrsJXFeVG0$UQ8w5vTf!^2E{lr*#0II3WqnsSG z03C03hn1ho^sps1;;CyZH+_AMbT}PTTe`G}bN*j{IJRstbJ92|U$*Ox&_In_9G-g+ zX}4crhhlf8h^MdiRQ8?!JQGm)s2ZiGM<}y)310p|n!3Wjyi+#+YIEzi)G@^Q(i^R} zo#HDD9U}!YSFArd0+C179u! zmutMyw+Lkgla(;>P;rYCBg-wrSl#+^ylk;6&pfJIvs(U!1$mOwmt86O%@u&gnPNB; zhl97m(OlAM9yFqS&hITA&64GA(iXm3Kmf>DGSV0L40s+Qg$gG7Bm@3kpwO;a>Fn$T zg<>vjM+b7P%TdRSn^jg+R8}(8Rer6jsH!fftEpzHaV)Q?t*EZ5vgg1*KPMzOV-0NU zEleG6b}(L<3l#0EXPWwZx!Lt}wO!n-udJ-EkBkjQ=LGKwGP0{@AN_7xz!Do8G)ExXp) z-y7IDJa-F%zIS=aW8aPGX&Bc7jFo^>q^<$M02KV0r^jrk>tPC-%2J-cHRsd*%6aPpFqseo^?RMXu&wY`HFo9S@+%ll0vrYPc0 zYs2@ty#!rVV?}EO*73Zkw1zmf@m12gM=FJ7xp`PKlV~E9SE$%Bx7!1?7PlI(%KhE> zCTKi-f#Q<>c(~>&TyEy&lxr#TI`WD%G#{uY1e-`Ty|Y6z8$-f9i@1}0fFqer#@Sx- zggk?}nr}BLY}bQLNZHDi`h4d)Xt&yDF2Pw0e|8&19 zD@Kv@^z^^sVEPsfnFLc0Ms+cU0=_?v-EW$bCRXdVg#9012dX?34f_H#)D0b42??i> zsa1+dJinVI!F-EQ_qB2Yo8mG>v($uypq8y%pH$8_`qM4Q{}0#%engBB4A zY%Ci=91EI^NZxTig{S}LJFncs(R6k;x1#~bVPhZ!mW8pJ_6_909!mA6nul=-B$)L9 zS$bVx42B`@Y=IQu#&B|9RtdGDk-Vc4>H&66Ns^M1o>yC8hm}=T0aeF!U-*%*oj_r0 z?ef`N`A32O8!oT@VfurD^R8P^hO7WFKpiz!99{Y<(`(1D@j|WU*?{}*yEen?@~r4? z*b>Du%AO{kR9TSzWJbtmpY`5Mo0u}2*5Xn?kc>(2ZCE|y;^(fIa9>n}qJVSZO!&qR z?Zp{p?-^=AgaT0NgM;%)2Gvicn$0`IP1C#?1v!(?{qa>tDj6~kK2!DE;Z1lcOA{aOr{>o2E<^H_BSjL@n z!<9)O@@{Zk47=CvNUR(ZvR)IBjBlfxrB^>rPCHLF$9vdM9U03bZP#(W1%f=g6+JK7 zSuAG;PF_0eIT(*NluqX@TPddc$lExsZbHCn=3Z#E=bAxMlyOuA_E5z?Yyy0KMxTeI z075uHh^ru2h*_fewwI`V-ha_B6jJy(5bqb1kp1_2AX61>%bI-L%Igo?>11xy+N}<+ zH|P0W8cD^ijgBYa+H{2Gl~9j?-reX)IX8fCI_=w?rD=m!f$#mvd?vdks4KbO9ZeS% z6)l2{Jp_Fo%kuq`Mz-?^a)(E2hDsdz5&siZ!!KUV&50G zYOjYgb*-Y-)|FGY2|@E4+}CwGE}rDoIzwC>oIC+<45Gl>jSg3ChmCfhCniu3WZ zNCfZ>hi9Othcrpd>v8}pUv+i$d_E+`e69(RE?^XcS)1)@Efqv(K>?VWfUvi?r7jLDI0pwVRpo0rNzNL@#a#Xfd|ztG;D!IOvXu**Ny`@_k)= zXhHK*NPkw^L%Pyg8q?y61Wl;tk69S<3V~pZ1}S39tUv&MvUNXYy(#Eih~L8Je|CgG z@wak?%X(|;v+>acd|V1*tO4AU!i=tTryQ;d5qP1}~|@;%~pv$YBI^2I&mKZ(i@? zz6b@u_eEkJXpfx?@J`9tcYz%sH1})=6!?n0Q;g@<5($rT^V{<>W}Be^LtUL~`$0=V zF=e}UDe@NM_k?Ybg)>Jc<#_m6BUv=l%s!fAEbmyv0ub`u%v#N9%<1%qnA-C&8q&Jq z?#J|>eUMP;YnHg5@T5}UX!@tM+m=laE~ZT;SPiPuF%B8B|WOt z=U;#i>R;M;yQ?=v@BG=OC%$#ht6JAqaPy#XBSNA9qmW z56FVyWWK{4=6p+bjVIoAt^5{(W^~{OgzkQDSFWrD0j+LNWb?wQiu5s~heUbxhr?p} z_2iW6@+#-8ce1I_$-R6@t=~Te!ZGh`FUs5!aUzWFe{(f0S;l&B^VePQw76++r9ewo zOmr_Xn)6O?(Q9-Z+kGTvha-kt)oF8dnw2Rp*}R1Bjn+&elrl1SDQ4z37SP%|&p(5* zKey`hSS0ysg16|h?TVCVJ#EAvEcqX6m8YkKa#Cu7t;Wo7irr8Kl0E76ya!6ij=wJ* z?EK*rAj;_QblIe=;C#69n_Ix7U0JQ zAW~o!AT!lXV%|RwlEf^U)uUwS{U~dn#+mAN1Rq%r6kYG#l^Na6H&5b1i=w9V8nulG)e&u`e8_;aAYzR z=mosb2&mrIf$?F!1A^I&co>I}G>)Hw)(VfMMc|$sbd%r;Lf*BvzAwmiw77Za&tn-K z6Av%BX(Hc8kvnK=TM|BvE{5xR&zs+j!^F?-X8Yb=f=uOuM8P|2H(#glMs91U)cm_N zR`WmSJEu5bwnV{Sms*Z2F|gKe>z*Zj`?eL|W_wxvYFu;yyN&+Ksap$#qXvYRXNN3& zfD2?l7N5;_#Xes3O-OL7&4qCN|N{ zv)vtL7{_fr^WQ9QyB+;`Em7}w1}3E=;+OlfdgVH5=Lo)ycpo15IsWp~-a3dyoP#bq z|Gd&QJj@+QM?(mK;3#z_!AFA+MNd;Q^ZXWie(@oBToujCoyK{ZJxxx}3~kn}=XK7~ z;HsA96_hYo+(kD28M(91atwpj4v~bFsyuL{oRH8VRp6Hm#u%<&7*w~Skk@)9DQO_% zA&t;`=~zDezJBNdt`p@Gn#{&2jUZon`~9`DNU^Gg#tU$X-Mnq>f^#50`!yrUb?3uy zrp|K`QW;Q)yzK8Iz~1I$WAQnRUCHY{qmr;en!+eF?tp!dGJcYtD+E}v>S>l{cNF#S z+*4YMmz8ZPJgNt_c)f}h36i}*xb!poyf;qLXTJ@)ug@|~Zwfmn+Uy0tKdq2v>t6}& zr@Rd|^3!$+viTZp?kqCvKA7w`l-eVr%K!ceI$L1XDTtgjFEzpKuQ>YKW#d zUF`Ed95RRJ3!rC)y{^f7?t(PHqDY$BXZE?i!uuc${Bb|m)o;Y|iL?jN97ieDTLp&v z@oChLd%vFJk!vhsNpQk_|8VNl*`hzkl7S49Y+yNO>&|x(xcj(z`hoK!=>}gTl#9cP zrW)G5+&BfHT`60R`UL!hoWlr51o<*FezY*xjc>`KDbquYP(Uf$i*kvV7^0wX*`^R? zPt}SrGC~l^1_qg>;Bko;dXQ;42o|jZ}05-aUXi-QeGpiu642cS$Fb<$#9u3XEAluQ$jAKoS{sG;=KR|KM%K~ z2~tju*xSy_`-D}qT3#To4$sXk%`s-Zt|#9(F0TWVtECqo1L8i1r4;NuIBLt@m9-Dw ziR$Hbg`IO~Dy+4Ei_5)6&27+Fzr0IbvoVLM-F1GeOIq!1t@14&*Hr|T*Lr=Io|!VB z#pZ3?w&rqF$nz)eM{vgb{946b>mx6P6BBHLCdlXLIb^D4jJ}y0X0Rl#mbdEGz}pcJ zPqAu5tmS!#+O2QK9yG<>A4?R5QvmP zxNn^G%b1N=xor`K?zYY68zE`Hhdv2@I=zEiX1{+lLf*amDJMB&3?cA3Aetbi$ zu!Ygy-|LIq-JBom(sv%Q`EUEr9m3tb&g0D;*=IUaEN8eSg9~S#rHuYQXTi=*nz1iN zFH^ve;y9seavU^ z+w72kqx4nN_cqwy>{i4?mof?6Dtpg1MB2qoq^(`PNOhvY$GJ=>}ONTbs(B=6wa>2_F$ z6rvRwTM(xy0;`c3S5C<8Vs>7r#N`IgK76YVCQ77?N0`fiBv{7kRzAQpO}=33xok=&Mq1%ArAw<3)TEJ6r1%$p5q{_R5o(uH{u?qmW_JLeuPc zV6rJiS2*Wsb83n)hU;LpRjVi?9{)H!O+DcKWe`y_n|Dd*hPSb5_H*8H(qGUG>Dxe2 z%}}{kz4cq(-cK?~rI=*fvo)bl-_r(m?44oyabaA2FWZSqs_fY%53dPbyR+L~W(^YW zi=IP6N5P}$TeLti3n_CaMORlcHcS%@8HMyO2Z0SeDyu_d} zg+e(h**u@DQbB!YdW++(3b_eOH$JC)y<0W6!zg!%RKi^&4H@NcX|9yzltFi2s-Qg4ak^htRXscsezU|c*@{&_&|KkU=D_eS- z2i`SEAhU4$8kNr^pgS-3B!MWVg(Jp>izcy=5qldM3C(b$9)+>ie;7Pz@({5;ohKUy zQYaY;x^ylMJs^Bf;X{f>X~}5!ezD<}xcACW4)-)D87k^Adg=pg;#0 zYI#Vz(9%JRHLj8)>78oSFn_Y~JNi28hNeQ3z73NYv_5n>zN_VQ9jr#hpvW8edL2$LS6D+d}GkE3ASeHz~;CetepW<5)%c=3C?+ zqtgNGUm}&k(K@^g1fD!_T=Mjo+8icQGAI2$tzPmK zA=y>E*p;LBs7lI`NM6MT1Ivb|YZwWXTu8u?SAf9Z#4_Z*Fqm|c|M7m=F3Fsx$BTC) z&9jfb7l zN@D7hP}rlsK3C{?*5bkOu-t~q(Q?n}hSY2&-?O<^3vL>~0z4kJN=f)uq(?d7nj?Zp zS{N3Bfh+|TPkORyAP}%CcKQ-+dzgDcERP&F9Vd^>eeSrjB1$M@>nf|OtLyIWPK&kY zowt(sosuBV#S<*|hP)gcymwXN%k=cLX00ALO$%qsPWR&vFi0In z33ZQ~g^oqbI{jV*WS;8U>Q1L!F+V>)7Cfj~5c(CFgLeI*o0a9bvb?;qGDwGwjSV{D z1ZwNl;2`ZyqTlWQEWcsc=?(lyRutm3gXIu$B>K-H2(!N%`ftBAgw1=Ry;s5-0b?fY zQHkMl>H(|??zq276yYMGqpMQ#fB23C{{0qFC5g-7t*jIq&BlD!&CuR0+A|N@uAXl> zGtK%VBl$wsF9-dGzt9af4jeRgg`i6#+_YPQzK1(s+aw{ftcysRrG;Pa^KR$uN~GaW z{T#d0gC3gfZ;FO(Mi=BhWE0~VH~^9qU0B~1V(K12EF809!6nPbaEY%FpS&|>jUD>n z$|B@=VfrU2l%85=Y+jDd>--PKnp&+qHc;c;PcV+7quG}&dT8Mekt6%fS!{HN_Xw-Z z%sPoxx0#PzO3>pdt!?bES7*xwkcRE}gPip}j{f-Efc-gig$_xGoZ zWs3|%&lqAKfy_HMFao_lr7TytJhwtswhh+T*604X7q2eO*V@|vYi%zaZBFg&faP_L z73aY7>#!Sa7<48Ks!n#9`Cm@xI!bBZ%=soBo*wl(of`IZy!9{Q9#^=^tLUp7w#vJd zRduxulvVwRQFL{6=;-NBXSS7Sv8Y~MLgA)8shIX51m@HE`T3a*d-Zg65w~hJ)eUI{ zQS(4V7lyI#66y;>-;bJ(2KX=5Ha5XgPY5DAUio8) zH|Zc0<@4QJ3%cFof&gl6Wd&vu9zyTuA39Hn4-p=s@HYt0P=vVz!AHD*&M=@w(ujow zI|FPQwD!73KF1EDM0Jj%OD_>(6bn3>dcd+W45A~nV$e){Mq;7;Zq-ZKFuR@M48om5 z^u8eQJ|#(%A1J0pYrt;9P({Y>HqwAo5Rq3uVD*&1^PRZ$A!U|(aoTL5-q0f=zvA6+ z-FxN7#P$2o&!g!ttdzQyfr6TcM196!!XqCS8f>q_`&OY4lZh%33D!HPgGN|6mBdc_ z>XlMI-fFJ=b5NOSSlahH#$e;Yz9chEzqa_#oZpfxHt;O8reU&qe@C21l8wt;$6gDN(Uv!WCyy_WxCfw~FsuxZ?}Uc%pJL`tkP2tD zpHYn@HfT#qgG`L8w{wFb+l0rUPWF^DM@+G(PAOsC*3JfJYoGGtCh{VI7cLz4&{+b( zQBs0y#ZR1+{<7=?ELwu2jyHghz~*dp|w-(pMd#xQ)CSHX>C@e>-MTwSZfW>B4bk zhSQf_IOsMDdL;l^2MqE_MU=|gv0{(Sj)ug2I}Zx3f?LGzBVeB`{T~;7SG_EtDHG`x zb6WU-DipM)mwx4;R?HKyUu)Jvv1(htdI%R2t(!e}(jj)J+B9{3yYNT=5W4X8Xmm{i z@3rg|ngGU)Jn{Div45DQtTLcN-_!0h*Zg$Tw|8n|EA1aHB;Am9y*F)}{Kb^=T z@!YJ?8xVAH82~M=|F)`FDd>OZ&sbp$uTRXVPIzci7-fnhN>;iXW%v<&lOP1ziRuGs z(yno}6nEtXA}lFmJu>G0q43abaqmo2cyf}GweM^-&c+3GzhwON<@08-~iJQvyNB!`Z%h>NmUn9TB=OU@AVL0h$ zBJN5oB^zTGaox68;rmJ&Gx5+=a_TYpvKQfD3@U36?ij&?yZ^`#F-a3|+&D+d@7=2C z{Nr@*a(9^RM@$`|iKguNEt4=!RG#<~leG#mZ_P+_IUmax}%E~Ud3XUd1exNs# zUbVE=o43p=M=bT%5+(9-`jsvlXB4Oo^aA~Hx#2=E-E9;^&j^;wI6o|T0K_R55tAN3 zp03hgued#RiRroE+5x@%j!|crlJf^6FQf;CZ$b_%NNSybRWs9_svGHnEDkBHm5Fpsj9iLbBiA9FRf=o{I|t z-og>)?x{kP;XyDNsjz?dxEaE8uu#J4p_2|{;J6JdNSzilZPY@@s1X9NapF;S2s3FU zoK`4aHfCLygLy_>HqD+lV>M!n8Q#HUsA%&-77<>m=SUrl;Od9Z zP!9P6(FR!tCM)91=L8Q{I+yi4ic6@1sx)@A0sg0J)8YRwTG9Vmv zOHseM!5%7rd)|qmq6>|PvZm0r(Doans`CsG9WSQu1T~OJqbtOQhACxSN~RT^KutkM zVX_+Dg;kb%$9R+|>ay>KIF<$6sGdokQwKbJ96{p7ZNWv*OL?;f^D-$x$L}cEe4!Bs z6QKKpt{smc_B~WIC2)Y0CK}xUX`X1ZUSLXc9=j+wu$?6#JJ$R9>vvlFWH-EazpUux zV7yW7V9Fg`LT99GiQ2%pc&^vxZxl)!2s27foOk3itnPRK&qLT{hx zgJt{BzvnE7eNum9Kfa^NW?>*)x)%o4kdi7uo4 zb1q#J&_Djkw>Xjt%0pz3n^h_M8jX=6Y3i~x4#@gtx4a2u<&KdeCok4Y?YGr?5Jhje z^)r7T?(}yZ-f!5v&lY1AJk-c`FndzD0Z_cN@UM~*c@UiY{(Lj%^|a~f&X>D=?Aayg zfn^Y95i@VXo>}uP#Jb;VLDas1z+MB<0hR0YfqFC0Tf}jJa2h5A-YyoV*jymww@UW`%(w_lUB99+qVcyw(g8>9Pso>?tjL9? z(ar-=*#K&p|Nc2JYV;aKp?7Gy2)|&=7OSu}LwzQQGr1 z35MWYgEzriq$pOQLnLCBWr?L@xm=Aa5~JJUf9C;?>Gx44z%F~1z|lNQenk>en!zbZ zPMA<;X2v3}n=$BpiixdhO4aStYusNqjBh#X*@5OxGvPx9FBUV$5hs63aAqKYzY)N4 zi_8vVrGcS=BTDR}_`+f2*XTpIQzYP!5I$sO=ff2)(Ml~&w1W)oy3s9nX!AuXIn(K^ zo+(u3k*AnU{+py|za0^qTyV0;JU(Xd-l%mWI)MfHSNs+;s|YB-4z})eBIa^WA5o8n zZ%fA_fs<>7Bc+^&>ptCq3;Je`9pN!+l@w479__9GO#X85Dli8F{3y|oL87=(QMK3c z?6ysKTZmd$P@_;hbKl-Wf{T^Dc=*_EY+d=1 zHEm(FBV-vfViIr96i!mMczXAux3jPx#ohn)#>3Ny!$D+y2SWjhI9rY>V$q>x0KQ`r z4T+#11FU&pP-)$+HORk4v~2b9f$)JgT@{}|45B}rU^^=R5{G+VTZuSRM+~`Nf(NmD zw{bBnTvSk%y`2JtI}NkX3JiJt@BSwCpSBRwKeRP>+%v$nRNjw3*%VGIi%#N-o6Ldf z6*<)2lx|gN5_&S36o^q3$?r#XLjI$I646&}M_eL}Dt=t=nyLtIayQR>V_a6k>MH^E z5PH;;Yw$ARyzY?S(N8Kgk8eE8iU&^Qv5tHPQ3Y{P6g*S6u?S65VT0wxV$D!+5H=VT zFi~sVy|>Ib;11uvJ!s<;(LRXgi&scb3nevvdw6;HTxW&(swZ!DV5Ioj)d$?$0h6!VakA*KF0o@*@jv2p5Gw&WE=GZ5f8VZ zMdu=m)Am#PIsflVep%j+vnZOplf_3^F@MM3mQQ~=TXKRV|m&Fxr zHJipA++g*X@`QSH+YJLCa068BU9{s48W+AcGNf92|=?IPl?G6Q#2MS8!%pXx-xC?MT zVGjc*&d5Dk80XN=5&2a!=XMS_0BL+zepEL-EH5i<=B{QT?=5^x!_o0Uix+PDi40rh=iHT}Q2wk<%L4HnA`Zi| z@ZaOV0_?x{6NGD*k-Z=d(q|9hJKc|h!dJ58i64-O-KRH^1woz{j$GSTr*;dvZh1e~ zFI+o%9NKWXc^AbBJLv`le-(_b%>%p-CsLy)CR#zx6GulN3Ok4kYuM#c)7||(8b=6X z$VHTsiSc<;4yO?XuU}jOfl&FJoSfK)hvvA<>U#8^{LVBFxgdMyNQBZ8w@$>8V`lw! zuNM_;nLHNXHdZ$*8VZvntX1SNCoemlqG`|oI%qFN5Ij2k znR=erv)dD8*!PQ;D7{2M*#-l<5{im?uAPeYuLnL>0qft<0N$DZ8Cj|sy|rcz zskIzme29u1KIV}mjn^QiwMGgX2ovb|H?DhCa}<85iOOwSTt+J!=4U;E?nVT2{aWPaoO+?#N|o&~&Tgju@a zT0r?Np`?LJS{B?~Rtf`F!LHsn(YP0GjyCu?e53HMG7D@dC4TKUxy&nycHAq&caA>? zLH9k%d;Vh(g?kPk4#pR}ZvEV?y;`FTaM`-1hm$>N*GTw%$i!7AholQ+Q1eeYgkfNM zqOaEMJwA^g*(ReKGQwG)L=4%n@&i$(Qbi3GEnBn(fF7t%K@47mbMRG4b{bX6j`h0s zB)HMto_ii$ZxDDA7c{|f^)!> z@AlSX5&h>5iI?!@UwTUbtuqxadiep}&x;A#n4(K~&IWQ7LILKjHjyyYv}ZeMEWR~F zCS@3G7%C&Th)oO&?Qgl+_k*{T7z7v!I4trfxRWdzOF6HyOQ(V3T|Xvtkzf3WPRQxi&kggY8G2ACN-H zOTn8|2`-x*-=$t`$uy*q+kAFuJ?dd_cfoP^l%LS}n}1qH*&_PCcuL z%w2m|YPFe0ym9f%y**D}Vhuqy2<&D0Zdm)$-2FF{?9B_{diL#eVQ|(3MZS)J2QyI+ ze0x&;45S zywsH+nblt*3S9f3BV* zhfupwpX`swHPY#hzrmc+!=B2*5p(eqEpXMC8aU7#U7?r^wLyO1AogOS5vhE|H^lbh z-offusap-9Xj_ylIrjR=GHEd+uxuo4Nauz7dmXC~L{?m)dEC61P`Wb?q^h1V5c~b# zhwkJ*4_yQVYM_}eqq31B=JzPy@#Ns_1m%|$Cm=VXkWvx$<#HUxsu>uxecsX%`^5-k z<2~72X;>_pV>xp%S^N-75Zz??YvPL37LYx+Z(hTtqxM;&B!-?GA}+`^wD4Un#HBrb|N0ZH+^m zmE&UsoM|lSbn=mizjopI;v=3^yuD}z?;dIgy>qbfWdl4n2!g}GV-#~fwwFqz7zWugx-3&& zPQ?kUkK5DHMd$IZE5Y#=(c`uYxm)tTf2vDwLvX$m)E5CE!n1md>}ivREIEswkxEY< zM(UUu6HXCStSaO-#xb)cACq6uz;YQv+^h-?Im3G?P7_!)3q+1`526T?EnCJD(rRP>{g<8hEFJ_a@+BxKt~CRHKdm%8+pqXflx|U! zo6M+xQvn55wDQ;R4uM3wLh(rJ0TwZa)5<^5jMKYx^*aURQBVjih0qp@ACtr2!RRs> zxsWz^MIS7g;uTrl?zGm_!1=q(A9EwS@5~T_cQmbEy^+b=%7OGnLVg~nSb1wEgQqLXAJq7 zfo@vR_ix7^s!q?WLC$15o?ZG}U4YXD9|(o)bu)JYdnQb*wrvOJ44{K9B|-ca@+FE_ zJf=5z^y#>8M-?L$!Y-DW-K)`lEs`$Q8do;5 z0+c5)A(EOD$}8lO9bPb*2y&BvgQupHWq_lhqNb;zA~Oe>Sn|N1&CP!p1QcLAU!71A zb*GNBwotPfF{1j>cthTDATCfNhWz{T{{hqg#Vh__8>PH{rzwJ=i!9%Dp*)63{NA96 z@qcW+g+=h1iX{eIs$ z=O5t5Gk2|Ztt%KmfLbV~U7SZ__-o{kkg>HSnY5XgB2{Y@HP`s8U|*SBBFTnP5N_gBd|>4ff=_S4xKBh3LG(NO6nXn3Q;;$#AC2iJ8->SZ5sA(6 zl@GSROmHy^BZ8$Ls?`4~j$+lrLTQ6B{XIUS37%~2Ce9`mm+8FKqG$bjXW5Wn-iB0ImH%m+$)Y%aR@*pu0fm;rM3rhOLX6Ro}R&n*R0g z*6=~ntWDpniP-h`4tm`u%3ZMX(xx)e&5m?vKw0GbMR#lBlKm>yldr!>ve+(8P=0x-vZU_Y z$#^|iRJH6feV5m>l0P&g%;(j$hT1axdLO`nWbID&pdqHCAFBaX&+;SCeGhC;n{3Eyo0rYcX^ zvl-}JYuX`=EhS};n#1*?wBqdpy=h|QantGwAbBJC)d(tI_gc&FB7xH@1l@7Ohx_~c zI-Bt{<8~vjvWj&B;fk%Va~2AXvL&6Y^Fc>t_{_9l@drMn=ZPcJell%C!q>oYmn>=NX}tv+^o{-mHyIk7=qSttp9gg_TfYxM9n{A^07eL^U>Kkc_z$D` zKX)cQu4Nd@egi`;A}&~7TN82HH#3U1U;@jnTwYFFJM<;fL3G({y-IXZH&~f-ETuPt zLiJ{=TUmECG6sroNIc^DP*1SE38qoh#HY?te;v=E63|Wk;d57ro<*`5q_-H{uU1eX z!|e$lm+Uwrl$$4RkO~`(!0|G#D-7OBMh=*PRiMj_Eg#NLfT+{Kd7KA$qHXKEP8{P}V*u5XeT4bM$QyNZo`H0@%6>q;kac(u)20Bo?G0{*Y?&= zE+YOnTMb#{3;cSL+s1~CN2=S+DH`ctn6?RuHYuoD4%W2;!EciS-xy9APJM4t>EQfw zR|B@2)F^TPMVXrmC>B)2C1i7x0@b`;&XA~u$)*Qy3*zEZmBo8}k_elQ(>OGULN(V|52mMQs*F5^jm^gK!ML<7F)@iPviwH##ddB0CJUJ806eJCD>D76n)WVRZ_RM? z_cFB71Q2t9OtxV*ny)5>hM}_U|o>_P3d#he3RO9&sq75SZarm=a?u zKP5X6%hVQ~lF-{5FN>Q|FNcb+_&$1bC{%I^qGc{ms}~>Z;mzwqKbHc*=FrTh|DLCH z!yqn{Q1KqI!8mIyqXI@se%LW-5TsD>fLVjhgts8-;1XgIKC88uf~54(m0iw<*+xZe zEuD%2yHf3sSyn}?(vZ7A zQSgbjW@MzFs+U$uEe-$95C6Hljaoh1OgoP%05$)TQm0!M+r8;P5}_@(9Ds7YZ}m<( zmM+-gIynX%y@ZQ1qjvL0Q-p7f@ZBJQx-VK<5=KpWr*ZNl8p_Xk7pc|#UM-0`FXm*; zs{IN|;o&mYN-EYYdRM07LOZe@Un^ui8}dYN>5k6C&Y6+nZ)J3y%onY!^|2y8|Aq2M zy_(04J~r#Q@)ZeUze1{X;vlDbt~ZNo_c`(F<0s`EC-T-t0I`IuHX?$u?qEd%gYpM< zuoU3BqF2a0e0!WUpnGvmfw8@{0{0Er#?k?LFYwX9SiF|H8TTn zn1gF6pL(ezlSE{Zo-UmFsIgdL6!NgBAFzo7mW>OL$gSNfn^IeHcybYYoDZ8TC`jQr zw!y*AmWks1|1uNM|1uMBaqvyGP#Bdt`HL9ZZ8Wt3A^YT6=RT{-an0*dal&9I23`cq}q$(l8(Ktub7(}Iw$<2E85 zA{sP2Ld;i2zWr$p`pOcjcZy@dh$l=ShQ4T_+9StCU|-gtdR+>E7qS)7!{*|*tK5&9 zjv%&EKJeSG$I8veer0vQZ+Ehp(vJqm>s<_EbIX(pdQo`Tauob1C#>ibc-YO0kQMzSno-Ic->Z zzfHH+o3NSt;)>>J#~y`LJV8>BH<>rfX z^n`R-(NvG}%D&viyf>5*H8~E`a)#O>t0K`8fXF@kK%H(1g}95-VrKB6$*rR(xri8! zE2#WP76YG=bD)Ax(rOcX9tycnV{qnBvrBl9@;Qr0{Z~FXtW(fPTHXLknlx`VZbEQ1 zb#KL_tUB_1edKf$A`bF>g8|0~AXsp@ozl_hO87q%bO`?_=%hFZsE$_Axz?|@GPu#q z+)!&HQW?G_JybxZ7si-Jj2@0JBQD+qIAgt6H$7_8pF6=U#67)8zBo}e3E1-MU|(A{ z!*v&l&LP>_WZ{a1J0?SUM8K#RYcHYU%Z_V z8dUg;)*S2M2#fldP|p2DL|>$tIF~4=Cowx)283OiTsJf7)wryR!=;zwy~I`(oCliF z;Kb*Vh18^~-z%~P4N)ZlXCK7hHhqw~)ek;x zCZPWV>iS2?MGw=U=~Exh1>luax`;6hazs`s%Cc#C#AHvI?PiBLqp{A|oWH$n8pTh? z{4?=wI2})3CX=3HBXhMUwQn9aII(__!M>N@%N(d2Yl0Dq(EExRfdX}tOY6S>G_yf#@gA;zU;_;yusvj9?VCO&Qk?OQ z3poc??p!hdf`?c7pq-$BqcwNWB@sQ->IL#6YKx^kV7VrZLY;Sk)_I% zH~?U^Jf%ih&>kt6I;Ri~7Z4z8hh;|RC+WqvUwqr@lsE_4cR1NSKHLY{pX}|2!MVz` zbTneej&DTpI1mwZq;no0oSa16u6cNf7zcQU{1_IgCO!fkC(rgu)2z<248lI%ZY1*l zPf0ZKw+ygESo|rohRziO7h8SHBsL;SI~X9hF7(z*u~*GsqwUf}y=zOLkv%)SRhT9q zr@`xKT@BukJh#Jqe9#83PCeZ_d9*$SKA#0v5z!MlpD<|1^hqOJsXool!s->g#Bvk2K%B=xjFgr0)!+m8x?h?dqEyJe zDJz?20ZCpF%g`(ybN3cKu@nyCZ#1Yqt~)vupHgfF83{qE*10pL>+Ra3t6Q=B!j7u` zwRS&b%0VwnJGVl&h-E4!)?x~Lf@Af3B%cuLo+ct}C=NtQ7-Nwlv)w8QUEB<<|$l z?4HdVf6V|&S}JEK_3r*|tES%*Fv8n;PKVuIp;zL#Z@9G`TvJm_z+&;q&gG9RVtLqS&L3YXfDAJo5P+Rkh~>H z(9Y|*7m+RQLXyH=Dfezzs&AB2f>j9)tzzX!@=Ef>TN~EqPN`nzNBw@wkM{C(7eiuP zil_44aAIm`O*~2txRk12L*ZD4+Db1{=tanRrQkF<7fEKktQ!=`9c5&msm} zAdY@T?(eR3Kt(6ajWkU(y}RmdD0ke3%?EO-`QvdHt1w@O(a15fluB&)t{zatXf(4s zE{OzzJ0C-F&LmZxIKE}?Z#zDj&EL<|efV5>S)u&nHS-I;+vD~qnUG%$Rt0E)tepx| zUg>fdxDR-y%h;5cR}9;Es<#)^icA3t>Z|#rHTUO`umbn6Fza4G7il}U&nIs(|Cw-{ zYw=7geS?WBYOo~w&wCxO8uIHNj;e8d?@Tzs+R@%d)=*WW9nVEW*um%;cVj{^{wL>aE<{cWSE$kj*gC% zm6e?7=ydU;WU#A3SVyicOXA|fBmlCx-3Ow*0^8}IX`!c?x?G)D=2_ViW!GTv_47ihEh!oTM%Tk27U*B@o!eiM#Ugd{MrJ9PZtnYVYR))RN==CM%$!t5 zDI+ksXr(;GrlQj6*E;)KEcDu_)HZG=WxS}Lr`wOrPkB7gQw{1^)9-ZcyAXx26*r?p z?s=lhI17NaOEc4lPgMliF_L)r;4TtR=xi#JPspxjb@4fi)5Ifwi05G5R@VWH$^_z| zZA#~<(J3EtorP$jjAM1fskY_QUBA0$TY^E|1U?G>7KJ*6^#y2H#X@egJATQ6lBZQuTI0=!)hF~%yI-afqT2s2ty-6TqK0*sH9`Kfue7u}wM@0Td4bxBmPf_qW=5>FJ%& z7jRI=&8?(1&)Dlrd3j-06)mOqxwYB$YLBDsg6d%QTX|3E6IA&@?XMusB(^Lhfg_Qc z{g!V26+)tqxlpu+DIIH;=2xujkC4)k!l9@|rm}*CN71V2>=WvrUV+f;yeqK2xNU;16 z59K8)G(xCS>?$&4;_^L+GaiiXu6IzY)lSf^hI_a8EVy)y%~r!*3WJ#tzy98r5jC?f z2IvR*_D1a}IPNrqO8o=J+Q%KMruBq$A8u6+(MjvS1Ay4EG;CeHtL3VV^&)l4K8?gnwB6y|Z(GV$gAN&>CW zKgfXP`_4j2t$aWp-FB%VwMTeW7tNkNgUz5i;^)48o?hbMchhsSlH0m@yQLt=TpWCQ z^-w36MQIl1u{0;$`n*iC-aE<%+-cN}AfOw0uy!z03re-KD}bOu`$O6paw2AEdrhV7?{T-hu}y&boj!b z3|2&znWj8Ug+kI0r6Eq`VNSAgD1$XoA{jxtE$Ke3Ns#~LvAhx@2(yhQ1CI=G7f>~S zi_iOZc~nr_h8K`j#2t|G^f8eg;994XKwv0QA_79e!yDheI|ww69&(d9DwGfJpU$sA zk84D8nr`N{&YHme#!z}zCyT>+(Zko|1lfJD*=W|cgP4~>=IG347s`E1CZJm49^M63 zFR>K;pO8lQuaHIoE?K(lK3;@@sW}N@5gyaB^*x-2Yze*h^m2WoU^~xUc49ik>xw1s z%9+WjZd!+S6JFnfj-<=d&^095F}Z zFo7Ez92E!=KYHQj!V(T5de2QEKa0GTq_UXm^@lcK`mr7C6VGF!Nm)h8(y#`+Xt6T9SxoIdvuK21 z-nap&!JqN83#qBRark>{Njw2`FFM5iZe$QZ0o0aLUM3w>#=crs5BoVC;V;BiL(|) zL5(XE#1N6_X2gIdX($s4?z5uWo!LkB@G2j55RhfyOjjwNo(n&9F-$uj3XnF#GeW zoKQ$cBGuxFPbttMc3Tk4kt#?M6f9wv#-MLqR~50R)?6}*SA76s=bDMw-Dc{)-WpIfOC! zTa7qM+j+g13pa*TQsL5v$Q(y%ji>uhBfmW&Lu^gb3^wz1miP+}f6#=mkjD_4ycgdRwD4CFTKD9bdd=$o0K( zJD3;8Yfnv_-}4RmLe-3bNx5y4Utw8mZ7y}qV zp}o`+^<1I1e%Fh0Iwg=l)neyPhm9@;@))4U z10tKp@+GlLVBQE3O&($75+WDN0@9XPx8-psPsP}!wP1#0xWry< zyku+JiTw=C>_rpf_f=)ZZpD=#?q_Bnm#Dna7LATfiRU+-pHc_X8xZC6QC@HQ(7t+a ztq)5rWX?g=h>zYnf*Sk*CSfPWSMi5-2Blndbb%o2x9s0{HqM7EO&;5RHXUs1_(e2I zukdhb3FxLR#xVW%Ebw?o6k|xMS5JkWZ=0Sqe|&IG9w25>U|kp+o#*!I_jZ1PHc7a@ zxq!GUHzM@XDCto!T`t9oRHYbc7^=l8YqLCGCNAT8hm8X!e9&R$404_Oz?B=O6fz#h zf=bbzz~dDISU`naTftpQ(X3wh7(ao>w`#~$;oHH(TMZ-}kA6DUgJ00!i?{x84PcduE0>^l=n48@2!@%^$z2F9zJ71k=w&dxSAC36nPCnqQL2yn2?#(wW3?3xH_i%4n~ zj)2--BxRj6z{|tq_VEcg?V$}ISK%CE%G}4cKyl+G%^Rziv?OR(vIS99s;*Y7pm zt}aUE9Qvg#E#$w@B4kK@Q34ChjMoL<44<_f5(F5B=%Zo%R}_Zw7kYh=^*YlgB$U@- zzXeAbd}UCimq|+90+hf;Ym6(U+SX2`PNX4PT10I*8Dj2Rn_L|eqB2v{-VbBq>9xC7 zzKI$iz02%YGV0e;BcibKcb5%40u^0H!zh`TgPybNNy!6oaVdyQ9sK;m+=g;azEQS9 zZBLQqh1m-Xwc=k{Ab67un4m@5e)1g|U`LbNf9wgJBm`Ks8T|0Cug=|M6ZPEJwx96z zh{@HCyt?rE#aHEwi0DqKl`pvCGhP2up4ih%FOP!wh$hNApBz( zu9&c7VFOs&o-P!`T{G@o>|1e(>hTkI|6I<*rM((oc=bf;1*-gkjjLvHs?&`Nzref| zt>2p8f%-d@s+)%@aUf#uvpC==c5r3!aC3X<*UC-Iq|MC$S8w~20Bl4SJ_k+?7bZ>Q zfFKqe@+llDK5%LzSz?;O@>?3WQ|veq3anCdW3rK4VBMm64=(UQSfD0i&3{kjKV{g) z6GmWFI1vGz{6zr)5Zfa2LM`cC9a}wUBl#uoFI@rqt`z)t#LP@V&DPyH&Z^;Dw7;Kb z+@DihPZt}GztT91yIhS9vZY8Y2+`Y&D+;&RurK5m-#+!Bvh|NH;;g-VDeaiPb@5Kr zG`l`vKYc;q*=^6Su!mTFlsuB*1*?*IZ9a+V`{=A=vpe3TQ_S}yDH=(l6qFn%J#%wk=f6oR^pNFk<7+y2o3xsh^t&Aj>psZ;zBsxNM0P=b(5fO$ev8kA4V!|J z4jb`gwtRPF`Dr}3hE1!CEKXQZw~#PPYp$=5pbs^(^iIMDRzxQ?rAVC#&O^DFDf60b z8ueDDyGsqa*$0TnLD5YW?TjWX`@QEa2)hix;I-_h8p3YxVL?5YH>0ZY{rqxjHli>E zq0eo`YBlS6J~HrNgCUY90XO(yaXAnm^C8Nfb^z2pNaafoHKZI~se=~v`f3Pu({^=I zhzYm^af1#5Sq?G zU;+hcU>tdS{RWI!n8K5hkos)BrGV4RCkATCp`sgGim28-{qy^D)Zdrs@zG!)?Y2aVh-Z)O! z?LaQ1Y}6CX!li$qu)ZzPvU_?P4fW{6QNY&s3ZA5`Vm z`Ip=wEf#!a<|sJ_o_+wn3!A>`GP@{^nMH(x8XF{~2p?`xLK!lTQbQVVCM8RDj6lRI zy;-wbW6Os%4Yp-=94P5ULg7Y0!eLnY3)f0sP3ipq>EMsC=L%l*W5E!NA-p9*e95Xz z$9(D&0_S0N7Ww#sx*7mo!U->%T#+w_&MpLYDa>MY1W(ukIp4b0whqU=5c;y5*?RiW z#_UVC@w0MN_aZ_-93cR9P1kp&;+_9WW>VY3k1g=42U;YT7bpxTbtuR}q<%gl6Vix= zrQqIN0FGxgk(m&KlP3_4*_29>3oT9$sY_-UIfTWcT`y%v28svtX?wMuegD{@{W#8F zMkmmgf>IxMD^fbKaPJg@jrRD?%{BSn1H4c0#@FO3UO@t$(`>Q7YlIms2^no;Q><9# z`UZvj2ES)*QmEN|W8!EL3e>Nh`pkOr_PIvZo1N1ZDaP?k*Y2K-C zxJlzm5&u==O~W;b$o=S&fxAs(yS)AJ9j zA>-B5(4|(bKQLWg8$21M8g|QUF6TqeWcvAy6W5Kz356mtqN)U2qD9 zD3mNmaB9iH(ay;ZbO>@p9v6uFBy|DP(nzcB={N&H6 zL$BseYtVkY5Y(C9kjz=2p0ANlK;TVKV8;TaAW!s;~2-UB=#qqzBr^7U^#&X`gQCMA#U-P>o zzaQRq%;B>f&CY!2XFdP9vr}T7l#-dA^(nnTET`ay%GiA(SElca%sbmmUrUJ9RuS8| zb}e?1hVhx(_6_f0?F$o6V4%R?$^$Os4r1#i6AKASqZ`Sv{P*!u7 zx3qCo)A4mw*}5u@jcqRfBv{>W^G!s|iy-ENwi1i}&lo54TiUO}KE@LDoC@}8me=;m ze0^k}nlBIM02Y(Ui-%QzucoORKG=V4NIkNx#F*Gkie6 zgL!FRmT%bEDve2|tfEu*xi|A=#|3G#~8~>E}8&8XR zAw-&qn>CC-mr!>+}gHT9Ja$EoGRuheNT`7&e`-HlF1jolN zvmzJ$Hp8`tH+F)=OqHo0zbi`DfE)7iPI;M&1%*yS4kS!x>1XS&+rC^R>2bdgsUu9! zzV|zl@XsibR?zBEh&D6;KN2HX7179B3Hwy8^AoRm=uO%)Uw&#hZsx$s`%Y#oiPGT5ajfvOA5!f#i8P3cEUTD4;;@O!1t*8jC;T2) zWFqz3c_x91)e!vs1P3fRWhz>853cxhGk*|f7L#YuZfooGCR)I2X> zGGb~sV`9tlD>8+=!@CFzE*cNTZ!G4!@!yEHrZ`|+s5E|T6$qO1*!t#-mAmxTE%0%y zF5lW|zM2z#$gN|k8i+|Om+x?r)UIg*uNPKOD<+PMn9NhGN4HX_)WZ^LpaovOm-l(Q z$<2#QiX=;gPB>V|P=j2&EH6zdZZ&Vu_@xp8{9Swkb~NfIZ8Pr^z=L%znJmxqE9V``5LK5SfyzPA|NHi{n+LM@w7!_Q8+WnkwIP<`5@(-$lo=2VGNCkg~J zkX2s;AueX$_7aFnF|D(K5+UP^<9(yFHubKn80abT>)V4(= zAP*2uKUw2YUks^;cO>67Q+U=4r_SmkHD&M-9AUzrh2GHpEP`|zvACd6?RtQ~T}vUf zEJ73Ua<*5rz za>Y0ZCftX?EsQ2oNya9h;Q-#EZ8;dCWa`qc?z!d{nAkPEMnHht#oxSYwMeTbZ?ld> z**6pnN5PbkB=nNv6I{+A_HZ8f5N+@{=@4^BLK}`&yIcRa)*NwKVEu=~u^pjLt4_giELO)?@DievE9rme{5WE0%J_rb|d zNpiX)JC&fL>CZa~e1$N>L4T}$ghclEt209pDE|di3C#cKYMX%3VjE*>m!*m7a^KDA zSq@IbOH~w(!65Z(^bA+h)mt2{7%JQ?W2^`}=~YA$w~N~k(gE6^N%^cu@tuUi+rE8G zANW4ih|`DJ*p6ZyAt2;)NErg4V3n07!~tgZ!?K+9 z2w{0!3Hc5OUTKQ=87a@l;kQp0{j|y$x?6@gDD+1c0$<9 z1(cwkJ7>w)G77c)y0>KVhL3DZ5$Sghfjn;7@&3M@larIJ?cUyAC{jh~9*w+EeCLiar9Lp5no3U}jt$PIKT zuoQJK7)k(XFeV{(dd~9xil#;yIK#^q1l8 z8DR&>{cXjvl0tw&q00=X3g%zWvHu>(Pxh9`jUiEOO~*u&=DwtY1n3@e>+-^6$$c!z zAGNaRzh`O*7i0a7$=UVu5Y$o#dG7tla2n%+5T$ym7f?F?7Fr z%?l#K1?N>*K|jxD-Y;^tid<^b*T`!B;Gp;B2$DXoIGI;E=$OSZLSk*%nC@E9|3NYM z5-Xp~F2wZJz1trU5F7WhWdRUa8Z3n{?|LGNFPD~#FM78X6<4(tR}~gdLfz^P`~q(h z?yH)=6o2_rJhb2cRUW?CD zcM&=6>KA(QAZHj|ItDHI>A6m^}Tz87P! zPlWwy>c6$E5W2eaVBnt6C4aFE1#g&U^}sp`W_2Q%|uYiCg4pg zCp%R-dF=R+r>HU3X{^0jm~|sOITXGSx_5IAO|i21Fxr89Mi`?Tw+ibjQztnY0Y>ho zj|BPJlyVY}NFREMvhUNp$c7Y?mUhud1d>RQz-n+WY$2(f!tnD)3QR$ZaV}b5thx7Z z9&FJ*0LeG^|F_oz++RlSEAaiCW@$YUv89%A;iC2&Sh_M&oiR$T072y(N#Gp%O7yD+ zp1cwcBNp0F7v43*U3CnXF+zWh_Be!zj+aD=LDNEpUlq@CPD028j}DIssYd?&K`#6k z^yx3?4MqI9o=ZfAAyH6sp4ku;6opm9MM1SGn~&2#`6aix-KTGvnJ=RcHgMEYbuhB2>J?M=n}0(tOIYCS&Av zU7u6KMC0!+T1TjiDaFPAgw{x0`+{%J-v$B^)0neD>`JF&+&9&DBVgR4$|CdGCEc zdnMn=%&alL%ATGW3X#w?6kmTj-ySO5*IL?)=vc7hu!07%KNzmNcuDLc(6Q1wSY7N~ zgv*dHk8WQ~#!+)|`#oGeBqB@>uTF=kNK4kZ6oKF+6*mjtqg@^4(*f{#2qc*Cq!HeL z8r22Xd3MXiaD<3=s067_-nk*$BQhve-noV>o~dorsb-#Cw>-g_C{jSYl}$Z+$-IvI z3dzw_k|5Ws6Fk`i36iqmAt}Sa#3aa7`iVjCL5(Q`WkMVK2JUqUY%gp+{G-7aX~WUi zmr9?_$*88Lm`B3YON}|x2d(xG4i13Q;PCM9=;#Qbw+a{)93MM@LP%W$h;v*Fh{~7j z>I^E(u=D4vFtHL&hsSB}~)~@=^%Fv?k^!v!{v?E+avE0XAnEZ}?|^ znzx^~lGsIsz7J59?bj0-mo9i;o=-=b#N}fvxn&%B5WTd{LrQok8bkuQA-v;G>7wBl z(1n=4`wBrjtd!C1>*9W{g{CIpN}Bq~Mt!jn z7zKn&Nn`DT$MH{R#l6DSW^DG4UwU0tf^d>T`qGDS1+6dpscR!{M9Qz zTk`#u^_zP*iD#(}07?u5gh$QusUng(Uhr6CcKY`&hq3T$ zt0>;NO)=fCy{M~c#ZgRnyjWNgZ@O`gH6m?4BfsvUa)9(l?Lo{ZqNDNZcv;Ee&Km?K z^9pCKDLYORX z%z>yt3uA|xFn_?mdNCD~x-*u;@rxkbodqBbK-6i>Sj8tZv>vbS3=9q9Vq^Kp5)3LO zT-STgHU<)@#QhFuU+$Kbm%D#A;*MbF&jCxC31qQWeahz&4?euDx!4(hqo+qmOx##s z4~+nsy*v;F%U<$yQ~CnasibH_j`UDyjHbNy6@mEh7z{bMvYYjvE>5yrB)Uu z>l>IW5y-K0kIm-wXnE-gc%M|t@h11;ily}=Pv-4dX|;ZU#Zv*w$}ur7xcG5@jgSlQMFSb%)5WGLbp zjd!Rq!^3Vfsh+m;gon@InzQnjyveyg+Ee zP9|s!B+cB1MuCfIAhkC)J{)-c>g-c-ATz7FUV{LJ5T*$y%^Wm9sE-k!-XPRWB~n$)O5S2d)AF z61s%|OY+jtCL22pOm6Z!w<%#&gnSPX9OoX;BB5irYslwqus}V&0z|E(m&4Yd1d8om zR*&fjf@V>L!Fr+#Oa+m6pqA1iHQl-p=K;4buqeOpcJd|tE?F=_+59&CK81fhd|dvq zwg5{lWq?LELvay7xA0LO8}6!<3ZbMO-AObttt{(KpsWs0_B*?1E+1_#()8~q-j@;?MNpfB*!m6EB< z#favr-|oOJib{v%U;jt%9v_AEmx_TL!D4=n@u3w-Gf6(rK`AmT4i&0v$>heXL`2y| z=KnIEli)CY>nqKT!Q$5FW8WKc?A#95ih_oPLsZmVI+@GE(vZm?PqqZ#qfjRP{^`Yj zZdilzX`oFybq;=50F3Ztb+9D?rk8cyTO0(Zq}?MaYz?sNSJ3AUr=kD*2mHAUNJV~(=XHZYPElE5xI+7ayP=k+6qlqAdyMLY-5FwjO_AJ&a` ztNC7x3UV1Wt$K)1Vj(|OYya=#2>xn znwY`OK{r^1vSR(!*y(u2$Wg)#a%~}7Jw}d&+1`|dU&NxpBNKZHjolX*TJ%8uNMdo% z|MzKdJuQi305pqPzCi4b!*c5#@S)^-`9Ohd3p!lsFfGz1T9W`S*@w7ak06>7THYCd%h4)90(blKgM=^#HRJm{p!oN;xzBcWeat%M9C)ehGN# zv?dh1|5=BF54J=UVfe$`md2yED&fX*wzx>|GAW^8Q))T5t$8xTx@hh& z`5u)1YkijV&$Ve5G9YInv@Cv8Qd}<=rGI8&23hrkAWmhgA>xykM}>*&HBH35HXU~ z7x}xx+Pd3_s)rPx%Q3G`WU_bY%P|l+H}-{eS;c z+04eBy_$f=!FdKYzAc%@pkdX;p@# z$Q#gy2Lw|q_`g&tAojfF_@rJw*AbWY$>+zlXVh3kEZPc9#^M>dHOzhIj&*)C}|NWcG!3P;98dR8(K#>p7!{_$l;NWspEG;c} zua1AwspdVLePa`SemI|ceZ4%VDvEl!_WX41IdPMGV>D2qUX06X;0g3BKVN5l2tW&y zaM~AG{cnCW7S{aF|CV1ZAbi(XfU&5NILW+@+#{=tu8#ZYZK}kI$;r=wV55}c3XSue zuP#zbDPzTP@v1qx(-ZiC50)>X1h?jY;O#jzatuX9m2{(XK)3|i|6ADjzx^j*Q+;vj~ymVfO ztgmj0r#zaxb3T>lmG^F<3(uEt`b@trSG3xav5GP>LUy++$RnK4o0(5I>5N&XM=32< z$fYsOrYnfiMN($x@Ud$u;gpXZa1f%+&I%$VWjFS5&jb1lW>s@Jz)^42 zi9JL}ckOtsZk_5N2nNqsfsVHuv{V2ZpDC6F<*AcXgG_NGAASIwqZe4@(={|)1g8+GHtT-3dWcTp5Bb{Qq=Rg9reTh!x9hA+0B##!rtq zZv~C+@xBX%G^zV5hr=`#1}c6NhpA|q5Ulhnl;OG;Kf8cm={9P4-AdO?_O2v(FNQtMK*2rn%3rR)8Rq#hwe2|3^*n3qIF6L3*QmAh9uCBI*tipaX(IUuGtauX#S0QP5c09D)0r_GJ*1EglK?v{(A1q zj^C_Tt5@qDC|0VvNAdZhHhjXO7<2Dx z<~F7M&Fs7q`;L1V)m`2*mvUTdCHTw17Wwpp`X==mK4Vm4pbaAf{<@x2ruKI=YD`;*snlfKC0|7f#9 zF^n#)=#l?Z$I<#a>@$`!bjwwOyjZ^=qnx_@=E*ZeT(~s<{ZE0UrlBy?@>tmr8eRn) zrY5fwzlWKlvqiu-(htCOgTy z%_N!#QSV-L)ffGi~-8DDyX?Cz>Q(o59-gd074czGuL z)K`kqt?{1^5cIZKFD3MIhZ;x9Uhx16YL=aTnzW|P*0ToFL2G*h{x2!M5$8jUWL=Di zkU@Gz$!yp6qV5TPqwQRT-9?Z(@6)k&iq$jEzpWYuSUQ=n2G_cX055~b(&92!AHRbt z?Xo(*{Xqw#N2_z9{10A4V|1cDm#63s{tu6bWFLHQ9|5Vx==7|)w9dc%BA1O%X}L_- ztNS@ce>Tialr|FAOMD#;dQ&sfQ(MA+FOT0olYTmcu7RdP-Umgn{V|A^j9g&h?Ac0#QZha?={%V3Yf zYzSq8_-!7SO!bNZJ8?iQqSROlDI7+WP8udNS|WCo`@M@j##y8!>VbHA)t?zx{@l_T+MKkS_A{G*Nd&&2To0Bl{*b zta4Gh(ySI+2OH^v9!UeNI8O>?aQpnIAXw|>^;!_6WAWJ!+5S8Jj?d}u=wBZa7K$07 z)Imp?21Q67-$E#E5j<1;3uCp@_;;57vVmQnhke`@(1pnb1>Z+pZ$%XIhx@`vekI!E z35$^IP3Mk*je35BWlnPU=l>=Gd~~cAWa!C-AVp^Xl}%~m__>4>MsXMR#&0=IH0f3 zLIujDRT!;0&;{3wSFgfyj!I5B7^)e7k$z<}L;#<>b1a|LaT^<1{e0V>)#l=#;nlpE zz-6!(K>(b+}>NrOK6SmjlZV{9}bM3B@UgL&4^irEck|TeiZ3#RS~`YWDf^dTQ{%y z%DF~bPtN_E?3YhujWF;q0)(kWIm}WeR#Ir!-b-g={!cb@zY(LKZu`UWL|2~fa{T^U z;08vdFl)A9;e1Il8Aj1TJLEVwN!{eorHRxXmXAtGsY$}#3&J$SAWr~N0-=fEN_>@ad{f3`al}HR@(3?Qfm1_ z+k#E$!8t^bLjH}Q@PI>G#MKbNcQ0+Cb;C!nHdY!lw1d8@iWH*~l*PL)W7VR!WXhYp zK|13%ed;6of%YY9y%cvFFYWY50LCeN(@z&d`36XM%AVH=SidWnT_{FZ{@V2}xtFb< zeIlDz#It+eJ8!APaxo&wejI4e!J}jK_Bz{42OBIV0|UEXcArdruSDt0dWB7IGjeLV z_;8qo9Zw^om8;NPS|YfjokNp5D#p(_eHW7PIew>*UnkMA?L8y{jqeO1idSx?G2Ow7pQM-XdxH{zs0K{hGY?8oDio8rqSRrgrej7KNsF0-0_U8g zW_xeE=EqU%RQ1kgWsT^LMDFeDx=B>ngBgV*@Q7gdGT@ZiL|@aQ{!391{*sk3Qj}oO zYSVH6zs85qvS`;qMTNFfMau^}Sn;g+Tg>^~#b zGE5`(Ssi6SygtoRf!S<$mAt{bo{U0iMjY7|Q7e~T{Aw1iCFYl8NbCN=Dcrk{geb=) z5zX*6-Ux2X8A~Yk1w0M#Rz$4)QF9@j&EK}cGL}boxl+>qnxEspU`3~7;z~}WzKZeW z>)*~CEjewbpyDfY2ICTX3hOp?wm1HsrA_E@Ih_sg(X#otEoJ>!HF_S4SnIi(xpwfs z+Y-um@Uy&XRc~q&-#VUZ?YZ3tPj=USEjnM<>C+EDhrL}Yp<$cS;ql(i>$o)+)%Gyt zy}6@umP?>2!p4Eki|idAHEFPI zgL=U1_CC!51=p$~*=jVjNPfuvYjXi(Zcb@<5)zGmZeDIaukC&3T#vu`(q>zLNNdB7 zUq@*y+qrmn_W68H{X~E30!*(yd8AaCnV%Nq)XGy{V&rqQHQ<;YN=%)UVl`?;E*{Lo zRymD@R6079ee$y&DAMNLuC*hqK>qghk@)w<@SG z`=BqTd5wP)iiuFWsdLAS+mMJd%HbV-rR1d=gy=e&(+fHCVO|usT zaVZ%A;Y~SRQ0)4Vw*bqAojm+!oGdcRI|Li6ImxAP6-@2veODlw@R=^F>KH8oT4t+_ z)9_1^%YQp{c2e?xZ{J-XbOt%Xg-J}AZ0IhBIJVafmEw)N_@Zs}g^{&r1A{|99aHj} z(dlIKTL)lz-2z_cr`x!;-Um0O?;9yKRMum`uI47*ytuyN`IuvgDK&$Y=T~$A4K5es zWUD!!H&PjF4fA?-CeXFwbemoNRAx)-IrykGMmvjPOD6RV1_a~Bjy-*l^}E`MFK6{J z9~sf+yr$X3Ew!xH;M7DsUqF=dQyJAPXVhdsaw~#r5{=iYz`{PDrq|6H>X&eKGA1~B z;iE?tAxP%7_|5;uVN=$>YyIr*(Nyl+Kh;Fb;^%VqgUzpnO}ucRdqJ0mo)RmFs0=GJ z8@urrVVb0T77PZPDLKksS4$Bshej&QYU2XXh1^P!ofZ9cdiA@`D6@xqKcdL(PR&E^ zN~)BcwlF*zJzccS;a{Spfa;N+BTH1ffAs&1lU_A74Vu{#NtcW`L{TNkyj^SHB8U2V z9mab-;f`9vw0K$)6~bH2)<)^qJQ4S18aq<%bOBF{1iF}Zgd|dPrIRmG?LM}Rn2)d4;0xk$6CWrN*nf`i7X>Y)8zYyP zfF1L-N99-S3SE!-1OH>l+ZUtt2l%xvPTMa+;55xiRYu2D)p5({fy|IwltgmXv>1_s za~dOqVlD`tQQGV{oG@#G2#p;QrKk5(d+0p@ZUa?#bakG#-`lYGc37(R1&C6Vi;j{@ z95qp7w*wiLn-~ISBA8b58cti-u45)yh_j1T;2ppUK7Zr~ORcImDQeYNDF-ipFEl+q z?1?Gue|)ct=vCgN#k{SWZ9*RLd)U(7N*575>}+0s%~e+8YkwE6ZTZ)qPCvDTS!Im8 zGAH6-^0cT=`Y$tg%*-_DGFEQz`!-sfgO~xSFh(BPb3+U9v7>j0Tj{-5GY8Ep<-7tg z@8sMghRGB2H+T~ir(Uq%2)MiR#8#@rkAoZRnM#`9xw9vLDzHMP+93T(wc<6b3o*Qg zXC8V|?tp6mYm7uWIf5}F+%&WrB2mt?WPK3fQKcS|q_LO>frj=pv`c@WcLCFzjnv7~ zIqMKs_(x+U7C#ZPW)p$>AW|gHa7jYwpJM3q7p}$vqd?x1ZLpLz2kMIwKLwTG}YTY=p66(QiDSu>5|7OfSoieRe zyXP{^D;wSs1wY`)~z#o_FH}s2bgk&pQ}q z+#l`{^H*+C!w$tGIiF4MOKp)FZWbd=us~)F$?)uzC{Yec=2j|b*{n;=riN`<94lqj zZ>9p%fZfzblwG1!$sBwiQOti08o$S5IEpCoYtr~kY7bI;d~nE)ax8-zj=H*w09*9< zvwVA4*DC?d?{#JdbRz$(bb1{9JUyQh9mH@2e*lEfzw?zE^Kf@2uHVvF0JZP(@^T)< z+x>Xy5&)6gySpLq71pBjuDCi{T3Q1XKgCe(RzA0sl#~Dwt*?nx;3%H}b_ryXwCfDR zc$G>L?S8c$&z35_d-u+jWiM#EpdsMdA3&ZnRu%f-peq2JZ20b7Ea|8LKNUOh?SVsw zg@s+u%%dWys;z}JwHll?MpuMb*Qj0?=$O+eKK!%T1TUN;Grw9rZmN z5q~J*QDI_w`j5Fe7cg39mx=#v1L3%GaByJElA%%@rjn|#?JBs@gAfdXnuJW4EI!E6 zq*tr?EnK~V!PDcV-hW9a=-4k1K!D$RVb-6VqIeTm7YsH)&$#?GZ`-TGXT4eU!@~dE zeWb23^OhkKwqa#L3PD8^m(IKzi)+DjlZNS&csjKOPH|8pwS3U8v}EimsZzot4Qy$K zbF|X&mF%#pbysm?tOKv-38W)+LH7c@ z(QqY+q)m#R-&_hLng#bnPYaiz?0@NVBx;e!y;|rmIX%o%)V&=liJh7h;-}TmMcOdO zr7^3*bW(Rik}rOh%}*~#hr%0vL(CkN(GTR1#Gyv)e+)A?&TvL0alQqu>V8vzzsK0v zk6sEz@y(K38C`;bV^Rw3qMoSe3xz&{bk4ddUO{+)Sv-cu}03A04OeBz~zEA z0RchtQ9cvJqEYmKepXuP?72$Y~U+aI4E z?+)w0V3(#w8ZY;?&sE-Q9~)a+Ydf&x8{z~2b3lFB9nX|x=^q6Ev=d;jV$rDt5?qL( zS{QeISowT*cJ{aD9xbhS1cRCzn69bh3c@y#3-5&zmeuGsl@%63z7L6VW~)~@ zTKP~YIHUzDE3-+k2{a;^f!V2ntvB>43Wtf1 zhzJm_5nKxMKOtZ#Dk`3zosq+3s8EF_FM$!uLbY~3R}F#%2HZURHb~QsM(ajAU^-{h zGQa|j@;f#Wuw!=6A@`1>`Tidqg!C_^kx~lJt}2_vT&{VO55NfovMveuCeg1nEu#^K z#NSB%C@AhHO~j)NCjKtqgO;}{V!ctFtlfPxivHJ(l(?LpIJ=f0y-)?Li;mOFPtvPo z)D1jNj%`ZK7r=v2A@%_W0b`0mQxq1?G(90KETJp6B9C{EO-d29ylzsCZbk*YTwasy z`0s@}C4;N)c%n-8R;C9jZgu9Q3VNR01ZDJUUrB4}BN6)vvSu=ei^Gwpv+fb6E5z55 zVkm_7GF==meAa}y+#fYuu43Qd7GBh7(wX7VnBmaUuh-M-R(?)Zhe1+OPpF-UqHw-i zr^hKcMGZZb9@Vm$`z7zbA({F#@Aee zGu?w!#1Hnq{Jn5-c;Xqe3Vi5XVrUw7X8r z`$=qpp?)~~y5Jx^aWH&^NhBEGz17rw0CB*LazJngerNeMfx#6ge&UPRL^YyVna&kb zG}9#}Z%as<7otWl)?7anz7&&DRRll+U*fC`O!Pt~qz6}{(G3CqXu!8M_a z-Bh6;MVHf0iRd$TQ%v)swE0=zteZ0zC$VR1Ho(au6)SrZ&ZmagOL_A8OUh@4xCJ~@nKJ!ds+nMFC~3b-{K`tz_^xkiMpB$E$hb92(IH%_ouI$x4}!J(QR& ziS(oahx9}Q*N=|MfW7xc|K)R!5rw(y#vz1y;Km(xNMm2l16vN7aL3?w5m&sSX^fbt!!k^Kqi6M++6oSSPh?uTM8mZz>b z0Tf1k0|OL`b&R9_n`pM4pN-~k00>qQH9I((r&iID8Ick}1ZVCzW8KiIh5 z^K`SUtZXm>U6M%91mQhIM5o8!4-O7S;H7m_p>b|Ub7WnI@9KBm3-!J_TGVg*uyA-; z&w8mu6%+|dRT>%^Zj{fI1`TBXH-*K;A!8TwF`s-+H-~3u-&jFhyb0{DdRq-DneKSU zzk5Ay-doJL(LWA{ePW*d2Li}J)Q|jy@A2uQ(m%>yyO|3ncjkQX5uuKNYLrcoQ2YA4 zg^)InPxdIM?6bN3J>jAgSy)kGV$INMx0d2m3l$xkU&`jF!*p+oseRg*fOKQJ@Lrm~ z`RRPjK^mVd_=}?+OlC+nSt`|yJDC9G0G5#7G#+f;7rM@$vOr;cndo1prk667*cK{AnxjL0 zb;pEn@uJS$`x<+$g{#kc;}o^oZNcJ!9^o`>N*kdC^aE3JD&(THUIwrWmO5Bkktc?2 z#y|aR=I*~?(bjpHU#)s@A!EACTO+w4^}wkm=TuUT9p!Gj2VL?hF8ia<&h;&iAu7DB zYP4Fm?36A2ybyAvpH^C=Y^pm^l%da^Pi5kIvCJ;{(f zKL)#@98r>Czy#E>Hk7|CR^JSM^sA;pz2P{zzE`HzczEXyMAZc=gMJ*c(9`R5IB$bH z*<>;p?soXS)~L7V^Jl{Gp691~9^3CV?>cesdY|qNNrc=zh4a7)f2~f#<}ZidFqL|P z7Mlf7!?NHa<4dCRLn>O?EjF4P8?S>3fr#%z$%o2hK-wij2?s@j`qVl+Ny`(R@O zmEF$K4#kx}m7brkYWh*g+TQ;7@GwNBJ_z4x7Zi|oZNGR3QJbyVjnQ}Cf?_i90mRlk z>37&xhc&cxsDa`+YwGC$P(4HpHds!PI!Z+BnFFf5wVfRd^d3yx1vfg0APnABUl24f zVGM67uta(UjTH$AiK`&&!{3!oJXVHK_z_ouy$E-(p5@^1x7GevpMdKC^9e+RUTxZH zj~uncoEWs@e&6UcGqEGtsXu6#NB%dzW&Y`Pflh$h?ePYzC^qwBhuKP@i+_juT>2Ct;2MktF7lZR4^l-qN6NQii?sqOkurr zsZS_s3ivf%c^>@4BjSJuN<2$JP8bXL{k%LpK$fHp17z#hq^kVHW%dQt)yPYJetyB^ zC@3gu4ebpLuLKJrR{^Ch7cBw;-_^ro?g#0tBtDc+-}{EXD1gDWwY1DEDUvt6I_N4d zhYtplX%VCd&^Di&;~|3d+Slwzc^knWiz*guz$%GJt!L=P!ORJS4l)Y4FhAajs(l3q zP(R+ngUK1hn4Xz|+~{ASc+SAwKpK1(!lcS$g+L@@@)0=a{i8<4;H#&3(w{s+KO0Gh zrvLs(EiIX(_^zj|!ux*afTZdyAL&~guI2}Zn&7jouVd)23)#q3ym(sn;Ul@1358_H zUsF6^ADy&PG|NtTd>`7Fp6vX@)AjTyNgcEH@#Oo49~CjL>#m;8vna|VJ9DcLWz2$F zR8=eX+sBGeOI1}r4K*98>(6$J&T_weLys`WdpL(Ay^tn-R%JZ<3J8LKpkL@dq8K;V zk>q3QX90hv?Q3<^yy9@GxRPWkeCan~8}&2O2ZM>@#tdEB>$)E8X12RUNp(9m(>oUR z%K~~>t(O{qd@+Ci`!lDvw{4wl3s2;Eb#r%3A7(q>)a5x7SQeaiu=&?-9_t=za0X;F z+x*R`9X7%X*1^^2t?%>c&t*K(wM<}b8o{=yk*xW( zYKU1msqv=u;>)v5A=Je>trd1bGJuE)WRvLpu6zI12Dnf5s0$ppHa=!joA=oNAyYqz zd9%Aq=i9p5A^^V@jHS7*H~Ops^py#c)wyK~7x$-lNO>L{N(?2UH97Xn?r2-1iC(esIk2~Z}q zJ8nqe6c!Z~H8x@%0QY9GcN!WlE(vLAxcO5amj?@A%N0;FD@<_bFIqgOp(A$TgZ6V`YkgXt(85Ug;ym&*qkvpw}_M6Qzpj z6)t-bO(*w{r^d!e+y(CZ#26?#0~8rEa4=h!-W$tXd4*0p;{^OhI?dhPB))HUU1#p@ zyyLbA2?+~GuAz$oq=lj6=EieezFL5qM}dz(wTeEu!H$6dw%hrsGSGNX#8H7Pd>E6Y z&t~CBw>au+F)a1&(TS9PoNhn35b^T4OeI==s`ilIyUh2epn!XVl_JpCKE08HSH7_n z`hbaaTEs`Lmv;R0{+C^33lbSiW*t$Z2}pX-eth0Q9r)>Uhokf#)qLM(L9c-U zZCbW~+Yq-p|BGYW{HL3dUD0kH+k1VZhlf8oMlu1X-!c|EWu}${4x;mACssLZzPGC9 zKi*u)X0Q4Ntb7CQD7*g*6IYLlezWZ#k1(dFPe;{%YhA-8D3O-?MfB&gjIfjOdQbP$ zW{gNwG*hUVct#i1;EX!cD+zpC)}J*9XvLC=rw^J1;8&IPE{)~_d<}II(%z*c6^EB% z;j}3~6f00F97snh7*J|`Fb^R8@KBEJTl?PWO}L=Bzq-PQ)0>z_YmGEuag~muEydO+ zYIw>A)qb1l%etOSxegB{O5_U9ou>b*$b{PPrTadOpzQb17eDb7h6|1>_;KhpKFfCd z_*ARk2JnU7J3FlUt#+eHG(bft%o`M_YJk@7czd?Zq*bHS?agx$VlFKWdjTk+gK8=& zXxzBWI@6#PeD|)~YKD?ORAnz{1URPymi%O{Q2E32;ywBmZ=Bsb>?f}4jcd(O$r%JE8ouwreC5uLMLiZ$As6>K-fXa{qk`cy~jl}ivV~Pq2OTS)lYeX+j zhRjl+jUN-l5}c-{@>y&llgrW=iyV4ow5vq?-9NMUK6Yn$xF9$fGsyy&R+6i} zm<)suWX$l)7v9~Pfn@~+Hyz{-JG0t?M|{D4G4&86#CyoxIM^)uMjd9!wx@7Y11$^4 zT0XcnpA7kVBowVg$&$@VT$L{ecoq^^Gls%!mo>^P`~Edv%~ z(r5X!y6vb*v1YZEys7%<+jRK_hQIgB#4x;7Zp4^H%zpifwmY-_XI6);?M_WyUS|*C zhwELUsx$}ZPs?gWeFMcL(HO-v)O^KYXgn;~oCNdev)8F% z>NSsvWCufnCU^Sb@kqUToN9DiIVc3~d*`$Rl6p3_2(m@9nzoW@d_?rU=)H$G=qIZz zYLG@4!*E(F$p>{P-Zt>2_Gq?jI*vC!sz>)cy6(iqzu|k(K3IyM(|%^5xprV`EAic3 za@=>aKm0lfIj`nd>v>A(=Di`S)Zm@!_F3!W`(sX(q0ktWm>I+wvCUTD{&d%cN~cB$ zmRImbS}YkB3^ea<(tY%M!(&|G3RZC^kP_fc-xGAA;LjY9jpDP2 z=DPKzF}fBdHGSESO6B_Q-&`Pe>bstX9=l$_eDZNUnT5KAz)e9mRVS&8FVLO;BD%cpr?R<#t#o_0V{rq&W(oj08k8H0ke@C-^e52K;X)Nm0JIZvWKg6}N)0p59DtbMDFY*tX*e0Uz}#sW3>f@~Eq?k4 z3wAb$v8fz^^PAJH6SQQ;J!uqjs=h8`6YxNF#3u~Q*Z&5#C435j1QFrkAF;T57O}zC zU-+{#k|$`W04v`ltP360f`$USVZEtFo=>;7@hk?9kHHIHKp^P0f3}#JZ+CQK;ZFO= z6|MDymA=MMQwMr~U?3}uf7qb8%;LbH{j)czR+{9#0dsE;eWpQ+vGN2|#%YU%Qi($? zlKw}op(E+PrY!0kYwsy4DffeU*p4!R6;+j?&dqzD(|4Z3RX>{Q-Ng-$a~@2akZdhX zO@*U_h!{oI>`XgnnmFdkQ0|~0A5^s^BZSn|)Vgq9Lir}4uRpE9`$h&*?=BXb>`W*e z&Ig)BJO8nMyTa?#W@5anw|wW>d}ODW`R1T5pDgBkdNqEwg7zn4JAQW~FqjYz>$!D)h`tT9Ag<4x5&Q|$sW8PfF0nk28=%bV_b~YG z-m(5iyzdDy%&3q({cpI*2qXPG1jC!26722t3rj;;4lai7^pGvGy068zQ z@!9QgX=y2r^fjTDdLhynz{bDj<$-a_l^E%gB#ZhdfFk~ynK>QCGZO1iDG!mCKkg5K z@2>(^noX}6VI+uAuCRMca3_rj)+u}cybizJ3$=7!^6hZ z2EmDHEdU+L74ir^t=B2a!xA!iaOiz(t*di5-<{`AOn+T9BS zAFC1wG&V})%gshKt7ykPqr(cTg0o<~bVBm7jfC1D{(PhstE)EXX{Bz$TZk|6e=tY= zqEhm_6dwFup#X{-93e~^l9BISpRIzNAj(ZiKqt;cEUe7P%(Phjmizhege(j4*#eh~ z$OQe3*$m#CHc3)bk_OjcFEt;Qu7+j6Yq~6PJQ}Lp)-R_D__Er}Mh&XG4!h;n)uQqf z_kRg&MU+`?JiqVs?niOUP^i#J5iy#HJ>gc@Qoi%9Q`!HJ3m3mAM`fvylZx3e%O$gx=$R+U(J)aWoz(e6Wb~M>NkVSF+QI_x;u<3ejkGHEsWf4N;yFA#yny%#BLJ*2O7YV& z7>9*A=9Ngr^!VPM#gPbooZ>XVJbsxdcXs*!6bEG08JiY0SOTl5b6-`}DKLIaSNJnK zjbBy3mLho{OT@>jQxAb;LYzUk?%V--Ux4DwxSP;d1Q&u?-@@XeH9NjBF((3dxYH*v zYc?{fo7?{wt~f^Ve6lgEJ9!#M^U(kjCs~=z(MK>a5%1NH$;p&QkZu?$XQ`{eb{9sN{Z?-9q z8mOl;4>0}kh=|vu=yp&sDBJ7^t`zr5;b9UPP7_%?>{QFl?b#yv=x5Y0@HHfyzxieN zX*JY9a^w3bn|RU6D()>F@z(`9XmWWI=deoD=vY@xM~F@Jy$Pyge~IhUH(zxcfm@Xw zsL}KE61KM+H|PuJv~P&xp~?%#e={=V64EWlQtf(26KK?USBJ4_E90N5D1=1N3CVZEK^=(SKcJRX3msb|wW*8M!v?dmtYOEl)zT>;rMuW0n$SNupvN?iQ(gBoO3 z@TO$&UMN;?;HFrwBkEez$y5>jy0j@(MV(L0s{dJm$(OFh+qtq zBrUZA*rV#`)NT2!9kXG9;6h$DDMMy@m#!GBlpN(+7A@8_w(PdUrV_X3%CC<`r?$^i z!4BotiYX{)+pntIq`7>V6I#CEM;xWz5Rn-Krm1S>2dqJHQz@AqIg{Ac;oD+wf2L|2 zIufn@nR8ZfKL&9?Ed40L%{aVx0w0`&iz+~N1)%D@Qf&1T8)VH|NG&zP{ zo(+KL@Qtk(@MhSdxWf%W_60*ps=Uc*yex4Fvx0umSH1{nEgQ2ZM9PJL`E^ikHm`kf z8U#LZI3qK2m&-0%4EnYj)NvsOVe$~|UB*_;daZcBimckwx zb$h#cx*4B<0vUvjF;WJC0z^WPA%G-9&j9c(F3Snt{5HEqsIBELFRZM@ZApQjKm%e2 zq<;Dc%=S=;H^?g{&wycp76t(>r~S%jH#0MsKf@r(`cUXY`wMZ;5+uHz(CFOUoSHiG zLH;Wd2BG?e<>ax^9&Q!H!O1@*^nBguCC7qlzEDQLg@?}d8vgcUf!XjdQ$t6H?(ff| zt|fsmo<6Sx-1%{qip+O`Txy&i!R=8c{OwW`1`I@AeK58QB7s#`w~zK zDg~tK-Q6D;mtIdc#KPXEg4dg`a$1-! zgAM4$+}w*+NA{$N$4!zbA85npRkc!_B$x-k)E6xqYc~bU=$Gla^Ske8Ka=!stS#6+ zvv{57@BDqzG^*l7aAL0G{+Y^*)*n<%eOOO+5nbs2DoopKPZY!Cy!difAk=%mK)U#y zNqrU9_W*7m*RZ}P^Xq)S5~gE}97_>M_!XKp zCBTu0pPB@A|D=A`SXWmEic4{c?$Ee6G)l31-yUQ<))#0Sv#PopXt(@24j%_<6SmaA zModBvIBf6FmIeg{fgyUL^DJo=4}8wMU!MN`ne)gf%oC%ck@d9>nbPc`FXi|-P48y5_T5GC#y3vwV?^mvh3%)#Os-d+~@AI z6W8xm>`QNDI^Q_Nnn*^~N(gqTPz>a@HRpiy^g)a35pwJC@4r8*XkhmQV2xH)tmf$H~szO?XVC>)9U0n1zg7m_NBoy{KgYoXiR$E6ztNinirY`0SR2jSQB)yO;o#w+gTy?eA=D5Um@|)f2{Ka#`GEk^ zkP87yhy;EVH~Dsb!w|$9v`o-w;#(RU2O3ByLf8SU604bvge0sI(h>1p0Y~h>OT0Eg z8ttq%LG?^-NO@Cy`4U34W?axwVD=P#uxR_*+LjJ++N;HddL^@@$!I5<@rdl5kp5W` zZKeQhi<;bQzIIr5?OOb7;BB8xBtI8juf=yM!YXf7t}-oHn!nPOTiMJxc3tzHV-`vc z3XBXjnH`@kMh*@Zt6!i0_>A}I3l#TUd{&ngz9{~Uk+5PsB8ZDlv42+#`R1rUU-Tvx zwzm}qN<1Gu77ebGRam5F2P4_)&T1!I6|6Ltv8B2c1!I}P5r+xrS;lf|SLk+1MC~Za zHLo*xi>a#h5pt92rf{`)#xybEcj~d(;B$zB+<39lT%!Ce+jJLD_Tf3c6kc>ee>2!;?ETI9h_g~zcRBPpNz}_Trq3w z%5*3Vh>y^mnymYAQvivr| z0(~7AXZkdnHM&i2gZfnsjYw`Jf>90<6tX0QgrA+Z;2JWOApO9c({}S{d399<#!7C( zqW_WRRX4*6poDi4%lZ+rZu>+cZYnD|N5U66DD5E$_ON=l1|-DVk)A==1(!3Mo!{D1 z!we$H>?u>#sjNoI4VbTI&QdQd-Inh{$$h>fz4D}@e zDfR)olsE^?zY-G~%23l+tO$2A|67PS*;#C1p=>VS*>%m>*GFdiV_C&3mANz-B4S3k zPSP(2xA?jCpY!r37fmmGu|u}-z6BajhsWXS5ePD0npCKjUKPe0Op895M&FDO=w z82R*%A3wl!V}5>~Kj{1S?=v&%6}6R>x~+Bu0+)YW_P>gR^s8xWdw|7%XECyp-$TOT zCZMD7zrO-If(61{Tv%@)E(F~Uuu(Gd^Lsr{-&-l65rqQ%lvP0GaM~IHEFN*h6iJqK z04)s;4uUYq6!KuTMvtXf>G2avNl!}yjZ`2CR7(lco619^Hwfg#uc$^{9TBw>!ypRS z4Pe6(f>P!s6yk0|PzcP<5E2Hw3o*uj_6CR^5ivuCQ*tFO0cEA1eeXKm0pTeDTf&2W zt=oq$g-pa3KMmy=Qmw~ze^xo07ZnACKUZazR3_xK5QqhWdO!q(j=)qx22A%lD>pYc zC}xw7*i*#Vl2*HY@cuAdP_|)aB@!X&AD{O}6THA3KEeD!a)wjMFjmiE1uSizr=JgC zZI_$AYfiD8FwQ%F^*Ausr9;)q|Gko33t`55am2wYqBSnfie~@-=z-d;JPb z@U4@c6qrdHT_==(;(8sMq_Z{rUy#r`oq^&GANo!j5^lro>pE8l%}#h2Sw#?bXH zOI3^Xjny}EZw{I0Vs3hZP6fKJIvicx~=Hs6sXnRDC2Qd znd=XZOdtid=mx&>!*S4&T);EXjc~T&cjG8vGuO@QZ%1DR6fK?v3_IMB<&$NOATo9< zS8g}_;z5*nl;H8VE~-4I@ypDC{|Z1Ve%@hG>A*a8p@AE`s*92lvYcQ8Ci)BaRBEv= zoH))S40FFyzeT-IIecCdFbc41w$6B?yR-3gxKrdC{e!3bAMVGr%;A>KrSSZl=>k5n zCl0(<1%CYnMuH*P|7pj_F#UUbySuwfOT*g7lK3&zB!4>~p`OvYF&dAJm6WCwlXWW4B;T$$Ze;Si41` zbeVs=5%px)@K?UZDvxV5UP~k|zLj6R&09E#M{fB6W z@C^Q((dPLs3v;=+IInfbQ*mR{Gy#{p5| zyR(p__*4^*xd~b?VF>O4V1joT2!Y8QW*@CZ;qzGtv=^l(vfPNNY7Z)GVd4dm0Yhe(lM%c}=|5ij$o z4Un&SpRf^*Mhr$`jboeqjm@>el&vn^N_GS`4Y@qHAzxOPssG{R{wYi(}_RSSXIGAofbm1?zbI5|$ugC+=No07e{o$?rIXO8w(4_!; zH!3zJ0T8h1>FJq`bPiOu;UCOnfBxuFy3+tV1G4qay?wc|^BMn~o-+M|)ei=(Z>wF< znPb5Fl*ux7eH6h=KxadMi^~IyVwmPKWS8qaXjI;(tI)$W;=@#vbR4Y!((CETFOM47 zMF~}6h!i{UM(lM11E(mYI6E$n;({vfJJ>xw1*ItX{OgqU0#u$mOBZkuoYs1R0n}pu z@Q{IyF5n$z3IRTb5kA-Jqli@;P--Hczc;tG>g(!sJAKlPaBHef`F<~Uc((%j68x@x zLkyZw(ci!|c6oJmwAh?*8!l#oi(mz$9`XqZ`E35iv_Ri5!OkyX)M@BKJ%4xt2#vA4 z+3Bw&(7kW9Tkih-r{K=@(1qBfFU`-L$7e_^M(Fh#`fI-ux%^B|Frasz(HQGruIEXo zZax;xxIK-RZ<6Jcx3@}E?0Pf$iw6na(YWaI-%Kgv&0n|^x3+0EdEz$LLAD74upJPG zp(xxDFIxG{(9pGvMGdB&>lMvVnxtbD{``A5#u0TPg%N zg601(+Ex*LZodIaQHPK)t%S3X?Ksc}S{3A`lP# z=z$+?vDuZ0q1w1E^ARL34X7L4+@ihEgsgd!{@1G&PKo5I9R`OX3r@lC54xl7oZ9PUpMDpSwGPt zW3B7W!33d9djMfo?qNZ}fyokaa9~9N%taDyuGtt?*;oY zxVXK&ot&Kf`1oixoGfDGMq>d~)g}N>0{}Lx1k$AYH7*Lul&>=4A%40rJwGZ7jO3Xp zt`lU)-fVZ%wY0PVSB3+K3N_1XAcn|r9}wLG0N);rbx?W`Dj?X$JiGu{f($YI zBOu1S>Il%8Qk7EGf6FWF=PQf07#Z4=AKpBl{D9p}Zi~;i7C@fy*ar64 zAAT<6Oh0a!mApqmR$zAJF>$^E+>*MZ%%=>xs^RElgrMl>4*(wk*O&NjN^>Qr0LdBX zNOx1ncAZfC^vN{%gyJo-N%Zy_qF>LXRjEjOdlBD00neK8jLMw`%d4N2Ct$SAr`fvFQ8v?25peG3V<8bl#<3re&; zicoh^C@A{QVPWZS`Ys;3j^Z|+ha%pPC}N(~{n7Qz8HR&4aT+F=h1Q1o4{}PlAc|{d zFFFm#Q85^8KrftZzcw*;O3RFjRnZ_v^Zw}aa>`d`_pUmve{1X7?_dR$k$5on=G04q^TYb#)Lij0iR7L0mRKaOkz#g70F z59~XqP|>1b6es^jVFW`l8frWg4XtvGs_W@;9Yg9w5N{oHsapmKAz{#nz_(4rIYG;- zl^)8&i}CR|nh3zMLV@hBz3aI(^lr8b$g=z{0zke@E50v+HV}a8Fa)n*O(QQLyNh4| z@yd%eVxef=h)^}vhHnpvouJ>~QyYV@DO&(+n@~bJ1G+>ApcCX#nL7?-d^uKM)cl^o z-~S<_82{bi1xz40N+AP78=7(Nr#ZZ%Z9JLe7wvNe9My_1)hFfg^`*{U3}7ioG=|?D zr0>0ir}&?#&QACS3i%$KWQda%Q;7aL$BbQG?}=+oM{0(k(HCm=qrM&gCK;8KssN^Q zDUuDBFlCdI_Un&efy9fZ`win^F7yWl_()%4Y^j}_p=}k)t_Kk1_9dEpwmXbOB@Z0= zsr-|+#GlzFF34~)eRtHzhXwi`&Zy2}Hb0yQ&31!+gheBN!Uu0@SH(kIs zkEL<+`H%KXBge(cG!X~nMhN#US`>oRlL%pei5Fq#N}PE#&_@A8A4sV6OzO6`u@{gq z0!o3ykM#bCdc=i|hA2n=&sCIwc3tOO_xSBJIA5gCcsp(9cW>o_R?fzdLsy z8scifX%cV|m-G(|bQ@~oYY{=uLH~|J^@m@>V#B#avd2m6VxS0y9>f_B{)0@r37tnc z#>XQqoAsW-|Jy7LZb@@9o*m7i2Gp4!P<%t^&Y`5yMR#Rhku^7VeXp5>XN#^EgZEiW zj^~2x=U@E{=|C@byfS|Mp%_3X$0p-vcbaYV5%hNq2PuL!;B^O_z~AXY2UV;@fx13` zOoTWto1Q$bXNIw&NEq+gh71)}ZLHeWN9RSgSxjQ#WMyew#F9haAM?TZ^&0&baa1eX->~M3;1VN$p2GnEZ0`!f5(|2~3AEe+O3k#&4 zoA+4`80LpzsK`+;a++lLJJj%GrE#gWS#iCA{ix!;4b&ykg5S*15 z4Vrdg;)8 z*E~qSWLC^_Xd=%uEjp#NV`cRbXO;$E#AC6cPZMNGK8--{l;tBqn;P!#{g?3BPR_;rTUB+_pNdUU>SqC{Jt^{hFZ(KZKk073fOh< z-e;}7=jP-Td8^Vw-I({fg!HTS!;zg}o)my0c3~!kak4x5)3%>-m!Xx|DYvaLMpraS zb7_j>w#qa%;>xV4SDokvgdhI@Sg~tho1?TB0*pu{2`W15{E*VIOsyA}4#U(z^lKa= zdfC@m@Zp7qNaeW^U4g9=RAebC5_y^x_om~9uu~o%ye~}GFMMXKexNvcECtwivzQrF0 z)))0L0mmGqc^?#&SGKO5Ifn4VDCpPsL|rTpaf|q-j9e3i*movzWB8zjg!3?Hu=mR# zA^~;=(K&1{9mvgDS*`)`Jg;3Xb{N_e9UKg0A$BiHmIs?h*G2$U6l_GU9sk9&?$ivZ z9Cwz`r;m4zP0avW92g(VYbgo!{En?xw$ni!*S;r1xuE6gZ$p zm)bBzogPbp%SF@`K1AGHFm8Yvm8~sp;~k0+pVB)%KBWjdRx%6Y=%2mCapF1xh#I_S zBEg_|e-R33eC{rxK26Veri7I}HO!T(x0-0$>n!6Fd}OK4UALGp9B3d`)(tg8IX`_? zc%k{fjcs*PjtczY12cs=8a#?r8l*)(#lZW($t8$|QB%uob~ zr*X+EwHwT}jYl(uR^nZnpCK6gBp0!3pY?rrQGfnd!ZDt|NOw?P-`q3;srGes9I~Mh zPHDxOIBHgso=J*2icglf%F+;}c!aqAO{`Dx)OZ13$t)SvLmqv>KQIv+(F>KaMuSjq zsmX2FSL+)vyC?@iMs7Df!E60%SY4ai(%B+SsHVR?WQ>}+O-;Uzy}giTgtDV_vHM|1 zzX&*!sG635`(m7Q5&6^P>ueq>tEsS%@{pS3|6q;}B3171A?uw;Hu_uhH6H5{o z?~6El&*DCw{k31gtIp%$A2+EA?fwGQaqC2u$uapE_jc8vnf*4umw=EEslk?UNM_`I zp^Z5gSEo%Qjunm2I-u5w_b2u{ZIzB8roZ!M9)w1LJe*2ydwiQwdfByoKhtCbN#C%U zO-TO2%2YL1WexbK8aBaiGKa(qM8!dj7`WxI=uqHHjH3ytjDt1NT5$nBCv*lQ*I9G& zDXLzox&gOB-gYg4M~BcP$uS^c&BRFnB3X;ZLe2n^tD(hgGMN74kCH)OgHcp3WzLtw z7QAOjOh0rrZSls1DQ4oFHA=6zu~f4)^&O6ld)@aRDTH(l@?auG)(`pkL+f=K%{c7Z zSaU}_5YFZID%a0vKPVrn31i>6)5gC&#Qmd~=m7V*f(wWGn-n&$b(_=B$B8T>f)_lW z@vbU*4&3ncj+uWfb8- zPZ_-XN`><2T7z(&R8$=NTH@^;&w(&S*TeEw5Lm^u>Fe^tKy z-yra>Dj0aR#Gw=1PGck9k_Ow?`*85Zc#JJNjtr}gYF@bN$#@kge7B6HgyA@o>ifX5ciP$8P(GCi*61nopY$OKixm!Cs45ljjM;-NJseWIF^A_8`{OC(-05`i&DS@0 z^#{+Z;TiZgeh$Y&DSWi_3m$*Eg1P)vgl$q6v#W0GR6wHxx6KRDwq`(M>ZV8aO6!o% zWlTO8eg`jNRJGAH;J$9NHvNIq*|Sqiw=m8zvTu_&i~LUC>Q@NH~;&qBRA7 z**FqXI!5V^32&*D_0hM5Bchnl)(g5Xd$(0k3dw}55aHzbNY}(XZ*V)fW4~&FheKB8 zu&vxzuGY(A_TtK~lN#!z^|B9`=L6PvKC+NeqRR}R$FCA3r~sVf7BGP3nQ5+Hb{@h$ z9YAZ|(uq3z+H@({*xQGC%5qqI1ib;oMGyD)St7UJN%3Amdu~6k2XcTTOwZ6s{~pV^ zn>i++)L$B9adBV-jG36WK9o@`@hmwb3wJe8g48R5nXjFfFu`l@{S!$)J_8)r@nhXL z;vI^|+7O`1R5@svEW>lpWSr$)GF6%m|5i@!60gZ%8AArmM}=c7ni$$EwMZ4x$4YNn zz@`8#Y#nLc7ejZA%-uLrYo*uMLr9ih+qY+ZQSu<-EJwf`6Q3h`JTdeh>nd-8g|ZRb`F*EYV8b_#vvWL`Sep|jtrh` zE*)={s+MQ71WW$lsA;R9)+Wg0#}UcWk`B^iwmb@g@ z3m*iIJJ_S(pKi;4{JR=<{JeNkU}1nW-}`i@4sr*?V!OLVGY3SOU9*+%$R6}1i;h36 zibY>k!Yp7o-l*JcB|>($zfNn=|%cxf!=YoT$G;T zsvgdA+$9HMsJ{eDpRZu*5GB_$F({0o@wcb63v12J`wZljIDI`XZ;!tlR-#A48Qfre zdc~XMF@-WKYinx(W`JfClT?=SE&9^pA`0#1;8rDuZ35`2n38pG*>muW z#0h|#`t`KJlfzT|?{7jZeg(Lp|Le&>SXl-dFBB_yw@qi=tzjh5@Do2jT-nl($d25( zomJ4}a_XB$bE?tQi$-a55s&kH4C)<(;fTTX5By?ymC&~qZr0DH&|xcbl~AK`Sw~Rs zlD++G=m`8@K(5Tryyro8^H|Z#A%P+X6u~$i4g$&9;o@?leDYXXx%s#6tVUCQ^KqnQ zvCMJI<>QUP2y^8SnDdoU>4bErLT$l&Mk)T}A_E1=Sixt$=aKRA!7N<26=8)a|gZ zT1RF1caxQUxBwx^I5`)1h3$|@{buMFg>;S?%~zJZ&Tm0wFCawJdmZ?)fJGsw<|O6w z*XBB?b!BEoD$xG*=TT1^KR)iP6TvtIS;^eB8pTkPuO#TNDvr61b(z1@7@>D!%5Xv? zdp)GfZ~m*jt74R&{F2x0yBcwsMfH8Z;$)xQUwh6o78eKmPLpV8-SXt>W!FotHG##= zd-pFm(oIqov9cV<&_2lrycl1lVCSH4rL0-3XGiMn2gbIleCD?Do%eoH8R#2b1v6dl zx{RGUzZ;HfFeR#-Trl(4D+0yDaw4)Rs!1!3Z%T{lD#9mrOj_4TumBu^k zB!c0sIm*G%u?lxSFJ~y{=&*GObZ+Np2%NIc)RjGo zM6m}M=C2`onNy6x_&9Q|z(xn8#LX|XKEF+&wVQ|DgTuZx=-Tn%*mt&+qSr^|ESIbQ z=>(u;(>u+k*v(MbCP)uNF(q5HoL-%2?j1il@Rv_DutI=2dmJqFT0U9LVDk-;Pm7m; z1rji&EWhF;_1FST7i3Bh^Z1vmK+Wf2O#I_UbQxc?@QF2NK!xV&;sOw82?&9&_j37d zKCqC1j7H+WZp?Zuj3hZc4J4x^aVNITS&TuzNfi#nd;=WkJG>}djGvzc1OErl`Uz82 zS=%eqHL3>fOS+mQkTrmDuAaGNz9TWRd>vjb4^Ebe|EOVaf~P_ie4qY`j5>PJ@zM@c zi3*oihca`3(S|eeY}g!ST8{QRh#_;a9w!Ztn$FKUGk1FCC-WI-`YjVjw5uQ3^3PBz zd!d<5e}8)eDE%O5>fpI`O?|PCA_s7A$aRA}zoNE`9^KLzW7gE=-J`1IReq1v7`$w& zC1`$gEX+2AS55YNqdIG>DOHvn8_>aryHYZ}!12kz3oV-%fhyU=+)92=4aAc1LryIY zg<~A~Te)6#>G-a@Su!K*&Un;?5)rt_5yROvYR16p@LYF6)zfh-DP&0Tq*er?|IJ~C ztF+khRtu`WwbEypSblmA>r&jW->OU=;Q?IABhuH68y`<_<%glLOwmTrqUfMXlEg&*sN_^%sZe)|y=8yovi8g21Wp(Da$&@p*)W%6*w zZ;8L04G(_ejR zP=eUM^31CKDjPAj>Vn~T_TBv?I{pE4JMIo>nWC~Pi29m~??@Pz9*RYj2_)dCduxmt z&{|Pw-)EgUIP(3mAS}Zpi7fo$X7Qf9KI%)~7_N>DvG7gkz&awn4MDl^>U_K>DY!|P z>EX2OL~$EOPv;l&C|5FNYFW6JajL(PsT_8VEZa1a95;{f7*l30bBy^d53Nmbd^H_I zL$9t*Nj}A#8;5OulUuI2M286)FykasnH{CKc8Hq`2>fDHWIrFI5@MB-=hE7kGp=8= zFz&Ej#vk}3cW2YUp=Gb`UmpeFo3dif{mMCmbV~G2fAkKtf71W?O{c_}M5$v#8&bnF zU9#!+j(q4UCk;EXe=^9vq=vseHblidwsG0P%)n^Scq5zQOXrtz+w6yFe|n<&))@06 z3`RZjv4EmsZ`;gcL%Lyb%X*ZdY52Ty{7-X(rUqjzGT{NuG^kpW6kPfVB*DX9jH4e5 zzC>D9eVqN;o;5kIR>ry9Tc~}jrK|N3YyzFSu_f77ajWYy%{S09wdE-Pz&14I%ZY1o zlbcPHl-40Y0b*xPD|-otsiXNThxLLCt$pq{ieplDx_L@h!NF<*re;Sj)N|X04txVm z;)6Jt5Jn>XGCZ~^H%1LmDR6L5FNTCDXlQ5+(i530ITctFc%b<>f#UmmXa)*N(R(0b zrx0u3ht-g#3n(&1n(@z8uB!^9@ChStcK|Nf&pfNKk=xH;d6$~%6<|4g5A7l2Z+&ca z6D6SJp{O9~;w-rgxr;cyquTC>`JSu5k~61+J8@>4X8MO8j}_Ty(+`V$zAYWod!=8d zANZ&mgvV>>EQyBU+7096&rd!h$UY-j*wt)dg2(Td>TN-R8>EE&>e`e4=TLIvUX2!; ze0&r?Ave%kt%a8oKLywO5~8kHcGm4jUiQ|%WM~nCjY*7n>4%(P(6;%rzsLrVU%T}w zR%)vh_jQb^NIt8+i6wHb<{BBOa2f4f+&#DKhHszkumf_uC#Q&lRx+}|J6b`L)4TVOr2&)jy-7ILGuf>*sR z6&;ff2dmtLNQ~E7QF^%>>S>%zl^jQ{8&oqROVq?a(tJi|7WsEOuF{|GKaaK=csob1 zYbEgLn_+CGF^1F*MpK4U9{_A8SCF=^P1z7r>R=M({vB+3)`Zqn!8xS7p1#J0y^$A% zNX!`;qUT_ec|4BNARsuLny8v~yA;lFkfc{1Yh#}I+2u1EW6zt-6z-rcQXm^uc!>NZqXg?D&%+>KDn+dw)b);y?l}lm0bUh=k+rWB@8)# zPqS>JG`b;=($hE|`MFJxc+oHuMZ4zeB?a{FR&AuzFD-DPL@7fX)rf`bd|If6|C$S^Wy29U`q|a0%K};6K8>} z0FDsGh2?0#y2lu``_PRGKn&sp;h5KL!OfMI-pI8^Bqe{(mx}MIB*&r%$I2cff(eE- zZ{rW7OycjO;4JRlMMYTO{Zr&E`JpEQ<4&8ebTBl|C0yV#2r6_H_ga@Wvz_b9_6HJc z+iDcFv#2TaEd3x3k9aTI;BZoyx*}t729TpD2WHk)TiZD6i+nmb79KvZ+>E+|jU>aQ zigMqbGcZ?R;2T#;w)9@plNmvaXX%Sq-$+gWL}+05b+)0Wu*dV))5}I-Q-{7Y-4v=B zt_O{kvzXOf9owDbIz2-1a>1hK>D83_jCb4TDL3#+m)Wg9bZiQ8IF`QioQ-}a+CARr z9v+no{WWlMl^s%HD8_BoH1A{Vi3&D$|NLc5)s^Q;m{Z+3*Ziq_TL>~wViRoi028gZ zYcz5pwtcP!&>wHv$eA~6kmTI&mzFPbi&|%H$~G_Gt2$sIlvb5GSMiE6=rFNIzV)!~ z=||EVnB8!ItTo-GKTG55WEj)RJ`IiNTUXj43+;<4w09>%L#F*R)P!lYcQoy2l>8hn z^GnhPeo8vkzgZIY>hPnDuhvM?k{{XHStbyk3eE6-*|gZkOqnR)`apdwSbcwXn#6SJ zg;*bz)o{POaHCxrgYXbgWF8us1Z%+=xncPGB^ZVyZr1N29xsaYuZ|fNnTjU|Q}*gg zbEP?2?le@}ZWs3M51*H=P9JHQOXSz31-dQDIP4usNlC!40=BCnQ$KG+*Bl0t^unwj zML;2divSs+^O>k<40f|4frd~_Ol-6J-*AP!ObHt6hpFS|Y^CBXAcxKMJRo>5nhDP;#F|Ajsqo6SF^kO$B%$q1qkxbmV7zJgt+YG@7M!Ge8~gidKOv z@wu22RMsa_f_R0fR3e6LHce35yz*e|)^{6@ex~cO=Qm`rq<33LglT> z&fb8=lM(0Vyg7~LeeHok5eOWiq+V{3_3stV-2=2NGK=d2oUFAq|A7!p<0}n3^XR`H z1`6$OhvP@~5z2o&SwKEq8lhXb5j%W&G=t`QMJWMLY><@C#Mjr?+PaiN$OJ>;oEtR< z8E|{1H3Z5c; zss3=g`-ujDP*1U|l|64fhN7x=7`=qiExdl4YIlUXfy_7EzHEMG_$SR7d-D&436qBA zTfNv&MeyPw)ZB6Vn;K}NJDtfMSyftt;~t1OUj3bn2QeJV_Va;w$}%x!@z_s>N){YS zLZRC1;TIQ=IiH4PHkzb;q4kM4|jDM<{2Zqt5N-Pmf^6 zY};M`56)M)Qc^xNb%cYz8MPmq9zs5##^!$S1`SLlpC}2{P6-J%X=}zgI_c}ZC~XuS z>0i7ZUd9V~6FzW4NHh?Cvr4mXiQnn@7<06#_t~JzoA7E1HEl)zt~r~=M|Ellex;oZ z^5nKExtFrEW!_nK&<>9(sXT^`p2iq}j6sabX4>lG`wN~nya&@m{FM;U z4=qL>pPRCr%a~yi9YVnzD(nxNc+QUEh(9&+TpkUBe#wriOL+afCv0MQw9INZK6OWN z(6P|0^>6JGp8M$CD_n5v{%?cfVA6sRo_MaAyecJryLN8jH(LAL&v&w!;kT1gPqN23 z8-AXi`TaxFPs4ORNt>`N5Mo>dz^(5)^)-FA!`r!MSt5v{9~Sx#DjKE;JF1q|xB_db z_F{WI?FjLZuVb<^TCxuid^J164eG1qJs(4ydB%^$h^DyFaFQ8^fW4KsvyF?7D=EmW zt?0YQX8(<0XdyPmY+73J$d$;uOm|OI)GkEfbWS)GhTijN#b=k-;xB=ZYug z4iH`MjW|nRE2FtZsV8C7?2h*<3Au$XWgn7p5*Zh*8g(t3IKo0gRYIR8x#!Ge3MPY2 zI>t^UqQMqfx9f@p(ni&m@)Bp(w_9WFGXpAPcZDubB3Jv9&5it4p(>sRRpqY;`zBQ&0UO4NMjGYce9;fsEdaTOs;a7HFh$A=M_BT`(NZS$#$W<91=7HY zl3$2C5Ovtq1r-gg0C;)cW7s-;e369aE9IkHNWjn5e!fV7OKtY8zYfq0;0O9F=VrGd43J4rPkaybsu&76)ZBsaE{8U=rDY` zE3B|p*D8qT?ax8ExmsTX?O<5(-u+HB5E|Bux8OkN>TH^EAUlY=Pa-mcU_Jd4&6KdY3ILw!Jq{wryo>}A?Re7EoII>&X4!8q-}&6f z)E2O!0lZ*!>1DttgB+o6mL{!@mV~I8z8}93$#91`l<9S!ew!|sSjfu9lDpuVOODvm zGiiKNRC{mr{cItMneOLKpzFZ+c*0t#_3(!j*(BZKc)_%u7q_g18Lkiy#g#_0ANkhk zv^PEmq(_JgoEV+g&ajkTaPN zt2*_`EG!lLDmNccK^GP5WJ0&lmw^R>MZ#ItR>LUo*_tPkv-ooqSzdOM!CF2XJRy?R zCxXc-Yl64+Fm+B6uUHpZHgK%!>p9E#UxZ*SKs?Xz-Jz3NnewYZKYxWKdhv9P*>MFp z#Q}*L2hyt}QRkEi+QY?XDk`lc(Ewnz?$AG8y_Oii|0yw#`avra{h0X91`Kk;&o*Z> z6AZ~3@37CfO#u(UuvEKbM*|Ht~Qg<@qk3l-JtxbQKb}}qDGxV4UPuBwjol(2nkq&t#jP>BA zkuwqz^UR0RNS}Ggo;AMY)6PL}+PYJ^dUj~vIolzPZKU}jU0J*KyI*Pad;`R=%9T4- z#e2Wz5Mn+!MRTF$c90M!ZvXg#TgJw+pq$*4`?0k8<`{9mY0iT!GjohE`sLb9pBs?F zljrYrPQ0VU9Zry^EQZ^X%ZSm#lUmx@hXr@v>ZunLde0c%Fin#T(`6df46tumU4tSv zhL%|&n7w2?&s(fn2AEmZ@I<-Tx%mdn#=QErSlDyxx3I&$?~exwK}Y1Xt^^$%;M`qg zSZaXzxsds<{gDA4#{`rgfVNxQo#NIztORoa-3J32A0Bw@og6H>eUm4Ije*)yTwGjU zK5}ps^6FPciulZ;4n3ccwiSN4!A0Mmf{OrNLPGmY9>#QeOypThByx z=CVNpJo_i89P^dOUv8+TmIe5*Y)C{$bcRrp<52=RGiaxA=94phJ-lGA1P)tUBz4W0 z(r>=57P3OTOZVCwR=h%#AmMD1VXU)iT7B#!sCszf<-(jZ_~@giF%+%#M0k=%U8rX8 z4Gc2W7EbxaE9vu#+n!t@aJ!6J2D>0SD_uu zt7UKbJQ+3;t65|?gF9i*p> zklzfb#6EbW>@B#P?YKI55=be3@OALi*NW&aFm(%_NUbYyngho;>O-#bUZ~~f1iV$w zE9T4W0KXXOdxKk91FSKvjXzt(aAwE^UNdhjR(r?`9qiXTPG&e!1b3x~)Mwq}5|Ftod#ugT@nRH>XSDzjY4*xzZ%%~fY0i6tG&V?!7{fF1U z@VIzrGVkj{EsKs7o}LzVKLIE}BM;;_Qi!|lYJK;q$a3HX+8acQE8fc+=w~%j89%hP zBjR8!-0l#4Te_s8eNnO&TSoCc%sl3e9v?I9UzX^;lGa+N;;hDglFetQ@N7ACg-F` zTIW=A*l~7VdU;=ASb0J&{_;5_HCr5meHcJ1mMs?Zjd9hK))JKDG$>roE@x3vVn5(j zHk26cHo8%+zeem#PhdiXg0#64Yi-=)6(PHTsgS?DW8|ebk}o30c5ptkda$KtW@S}E z?2Z35!V-5yZD_qK+_8;o*?L*3JRnjUVz-?Dym~|G3wdIQQpzWR{(t8T^Dqjr zb0}2Q3+m~e&<-g^HKz#DO997!RCY#0DdpizZ6CeC%{>8viuGJ`baFhb;yBBAwWg|a z&92D6oC@T=>E)ZtooE4v_sm%u+NBf56^`Ds=;yM4^qnE>>F{CvwwWi3-AD2t&%b&D zsT-$bg@{4v>sx`_xwP*~`G%7X1=47ApK6$ASH;@np`I#Hx-r*F0XC3W4#gyP3l`2? zwbm^4vL`l*e|zd?nMle+(=VC0`_!8CwLJhD*2s>I4nUWh!w*bMglyuGk3_2^WFRHt z(;EuVo3LYfwzwYEiKV4z-#_UT1j<(_0RbOTau^jiR~SH^@n^h2m54vO7+lX^H3;-Z z{|(=QQU56H(Dh%iyU-9>ph`vD!2O$*5O3Aowfy=KFk;9#gm7(M`a6V1FAI}G&C;@> zAn#YY;-H>#f`E~UuhlClYdk_$Lk%CczFL5`&`JL+Tn}92jdGRlxjlKLE`OM2JDVP)jDw#wAiX-4gF+t?#o z2>L7RaD=&&sc{d#NroBs;!ZP}*sxNG7%`~YRgSyd6G!J%M3nZ0EIIbluUy{mhbqg> z1xNR<^YoWYoLfyNH#Iz7coOXlC@+AQFXr+ut|azaJH`&g#|FkhXU#{YXv2n`Nj z2a_RZzw|krj%DgyT=%;Z7BXUm_QleZW@1f~3h>Ki1J(0|am-s=tbz6|`}rsdzTj|X z8=7%O2K`MSUZj#;T?xwcEs)mprE%12(P1gFzio2v$7v3`j7jO0Aw+sPytm#NHv2zk6bP}N;=u9DR{L~X}wDZz8%~zW;euX*B&Afmo z-#Zi7W*;%gK%E|lMj7OpS_XzKqGq&^Z!e~*_(^60H_W* z@MYtLLMX<+gaY$_mFxum{kY+ju<|CwDmPF^#|=?@33DqtG?mf1@|Pp6m-7Zr4?0|^EG zAi|4@l*0)gIfuvhXBPyvE3r8R2hp4aLGQGrcBWBvuXCnb6@+nbzI0hcWv#m9i(qAC zqUjP!pw9eSN`AuI4lJ(cft7L;E?F_uGo$+pNF^C34*Bb;C_pnd!wcNGkL%ka5Wd|b zpINU$yH$~;*>;_!4@);OWgkAI*gCX)Yo17|DnUsmH3v8&nh`VF8_&_$?22Ph`t9GD z!)(|J-99ZdNqwXBss7yk!}Xv;;}Jy%^_g383k~OXNS*odcU1!Z{{4Ps^P{K0?MaUQ z_m%auyw;Ny`)$-uGg8XKu~)~3@pJdB`gR{?vtdO+&JL%=TO=n3Zp2Ko8;v zLiOZ@$v|Ve4{vMD`ZpR%g*c9r7FkXs(b`bNB1oj%PW)%qzlx&){RR>e%KAA<5fGeZ zWrcJQ+vywxXCW`pu z`p~0ol%LN--pJE_`zJ(kC6E>3weN2mZEHC_;jVY3$eqRN zKxM2MUgW2m;RIH>$&O;ymJ{!b{GAJCH@zL2Yrl#%4Vzi^hl7%`hBYaDh-cxB6LjZK zMkUjsjX83e^(pW4XAe!qqv*i7e0G%l;svXy5q|_B4yS!+17)FDM#Ul8^ph5C4%|aR zDR5zi8{3V!O+&4-ps+vmScp9i(r}a)k`8|3U~&7j6aIWucJ~nzxDw8bI(mv-u~qA-x2W*Z@b2Otr7rzGFMi zTkZIdzF@y#$kdczatsm$9u#J-FBug&V(ZPrS6qak4?8i3++)t##47aE06FVPppNda+6e*YT?txU9;Wy&gZ2Dq$iJo9Ou!k1K6kPgK132 zhS)}Z<6Y89zvnSdbXJ7}WMR*<;U(1e!0m|YU?{=WMjs*=l}h;edNY}6h)G|K+shV~ zbH%2D^H8bJ9BQ2%T|J7CsnqoPZ+B^K(UbPYO@X(gJi?@v9nqc?<5H1NxpRKLyk&y~ zL4?}MQ&q#njT4G<66EmrO6O|tMvW1KpH1lYZ#}j;b!;Nx%R1<&-#&KB_8a3Eruola zr|I|Rb@W$W@&%0A)RF{csZRqlu2F&{QexiE4f79_I%$7A9%`I>;?v(Po-O1vb}Zxz z+bvl(*2PSr<}f{6kso&8{j#CQzqh}eF#L65IS6EUE&OlZ zrsz;o%;Dh4sl)9w6$*dckp483UO(TlK0H5#Du(WDfty`@5xY45#5L2|N`{~E)hzMrAVC22ZqY+?Vdy{2U zhO_UmoxX zphWL_Sg)=vb^KLtygm~?;(dTDo!BGgbT3zP9o#J)`uCO`APm3=LUU}2Jt>9QO)akZ zx~=Zw`{IKF^>!y3S9Vwt{?%27ELL*_k2A4^!JD z@((+yXayd}gvSyidb@Y?=jsJDJP8V;?}~5IbZ0g_xdQlNr;mRxHabCY*JJFHX* zkMr-^?p_NWUkcfrFSX38JRPCK>8hm4NUsOsw%g*H|6q^NoGus=WP4Fri6t*G$8~PF zBU#=PbX-@tyFr&DLD$GZGE zNL$$1`OvI2=ZRno@2>cxpj!K@2YrAkeISkeD9U(^k%3FXmbcH1stLE~QA4A-0i?1X zuXLg-1+Sa{J95qK9}o;Bqe*cxb!sq({`L+SUFOyoBU0QeAU2=l=h98xCF&{a)F|7B ze&D-(M65UJu((z-{69Kj3TVD9z?BH(4XV6~M@4a89D?WJYW-uYSKDF1h^a6^vJ zUt}bS(nh#{k%aeeaE4Rv&YL1zC}(sy&wht_uj*wz<(fENjGYd3wx|#o3sajmYZTN= z`1$NPntcLE+ZACty1FsWchuYO$Gkbd)qmjBvvj~ir^dI%pDtjXOHgRw8J>V3i0wS6 zfR#oD{vhmp3r$FGymrZ<*4tgXKTj$+R|`}yp@~_z0Pj;7EV1m*8nn*U`7VDLear^^ znpt6gZ*g?P>HLs-|AtYl$QieuJ7#Hi_i@oUk{gk=3^y8`VACWjU`RLZQsSLw>rQCL z>IE4@Ab?M*I@Sf@E6eOOpU+9D)n6|D1r8TiSm&k+VostoBig~)HLews4i3NhP?a(1 zs#@l84!;dmZtlC2_n9lndIEoq<YkTa_Uy!#n{`dj#S{EIyT;!0Q)y;(_MG zd~@JE8be&GA)Z6v9Kl%EL8X`E&@F$)v-{wTA-c3_0ai z%yIH}Jl-ei_rEt*SL4=T^F^ZmCKs(cK99|NrvODiB*g2K1?$HAQQ0^aC0sK)WFV;n z>eV_L#LB~S3#2drDSC@Zr}) zRdX;WNmB$5e&LQuI_pt%{Yd6C;6w?{s7{OR)js_Q-%&fmPtX=a%pkV$~UhO5mn$q@IajP#O0G=uM=G!yWbe0%1QIlH0O01UYbhM_u*e_M()tt|yFx#w(T6J+uRtl2#2pDA0OT%y-54D_o+tztm7+U4W#1!T zCFzuE;Mtz>dWrhX9a;;nxMoxDXb;Vb;U}nrlS@&&1awON)E2DlR_=+SGjV)oc~Jcc zc8Gacsmtcq+uin9FmB+GL607Wc#dsy-yZiMdUhI^^HybD>!0!L<6kuDd8w&ff`Rw% zZiqY0>Y{Tjyp`Hk>Ni@En38s#uOK(7ubKRcJ7>9)7`dAefMM`e#< zLY5=(0c7Fp?&kJmO|uT&XTb~oV=?FJgOwVD1k|m;_X}zEisc>CK2}imFy(QJEGLntZk`}k zCG%&ohnx$7{m@EKAQ@yTI<=xMv!dC=7Qcl%0>828vxP0$)=d(DIIcz}wdp$g9~p8b ztgPxwhM`L!v_<_3#>QvDB@MIRpS(o$qyOpc5Mlg5 za&p6ftr>`4_rBOxkhYicL+K+y0`@uS|HIT-M^zPeTVIe4=`NA(?hZjfx*O?~k}d`5 z6a=KZn?rY=Lw9#~ck^w1-+RBi2jlz+W58nVXU%8M-$Hw{2C#ZZGepP;2(k=Df!j2D z=zHi-)pv^-S79WQZ3ahBt?wc6v4-(~)Nw2>jP$uwYQ2fDnAH2tGX>0mTlV*CfB_b( zx)>AW2nva^H^rUtqxb}~hg~H0DInqJS|Y!%sDGysw<-11F1E~fI0eALzXPzRj7jqa z*#4?yYmW@QS(y` z_5`vd!q&C_8$V4TQmhpRuKn?S^$_`v>Q<$pYnyios%yWJ?D{%uw|U6}X|ugdFqic+ zA53shWpyakCyf|K?)c8+hAeBx{Yd#$5do)ivAd$YgC~v^pWSAC2nw|goNoCz9$hNW z?KRAzl(L-m^o+?YnxSa-hcsiceCPQhpz^+`9cS|B9BLw@+Ck<4PaE zke+xCb~XzWB#&>eeRh9d->^AEmBwmNxlRY|ELc3+9JUYda-fK}Bxsh>M?rH4Mxzni z^ENFHn~`a`SKJQK9#|4KwHEMOl$m&BF*r91+&*zAN@r%lPiqRz561Tp{gjkavgn#f zt^O<=grNo}Jg$|{c53@&`na_qea_dmlz(-v(ARr!EYQU!H9Rse^!{f4CfIPAo8)09 zB8e${_FT4=iyYFJc~@{ejTU8K?WAW_!he(7=V|gNb*mB=Q_2*rZ}u4B0%o6?vlTWQ zrMoUYmR5Q@U6JY{WaPnH6{}a$1}xRVjJ`PVT8kFTcl2HMwp4; z-ElIpR(m9+Sy6~ZN1sg>vibJSt2%&Y?Wq*!jB5NbO0H%U#-4^A*RN>Ns}-OR6%At% zX;{s}&-a+~JYt7{>J>oYyUzqU?PkCF`N-kR^iE_b<}bx9^F2O3zWdA5J+PV{nW3(tiLG>dMMWKUw0{WE^k;g^qh+6ny}yRJZAU0Xx-b{CmW) zxq2S)25*iyCiNm*%@A{*afvv_6PV0g46J3oQWC{qTE@OfN`GRHWe35I;*~8aRQ=7` zEY}Y)L#}zIjb~1j`+Tr0=tOUNlG)PF*9gUbQ!& zq9R#Mwr!YY28dF6R(w%>|9fNHOZMLi7Drn7`EeH!iqL>v9H#;0aAZ@M^B{5J%hclB z?VWjdpsE|m4TD$2qj^#F>up$fm1;B;s;Oj>WM7Xc{e9~IuYpx%aig)kg7$&uuK)E$ zSIY!JP_}!y;E&qgsut_%^|>%Fcu%Fv_nuAHePLY^m)yJwIQ$9tvMTc%?jyxtO4;AC z><*}FZ*$1^?t`mgMv6HRoPsp*d)&cg1CGIp2&q z{|sQ4p!9~?q#}a`&68v&KIhRbjk~MTMdWMu4{FSBm%vb2MD9lQ>?RCpF^upe<~#Pv zfMc;$m5UpBdyS?)S#ZdDZ^Owv!6T0ub23O(LA(B#MV1X^Cw`+7GI6QwFpI*?rAsJs z8a}#H7We8fOz@M2b&u)`82T*LSkuz`=Hs1X0;$%+I{=L=h5`MOf{%cLh6XsD0eIPz z%sEfG%G0?hwByw5Y<*1)uzBh8jZcCwKb!dMUmF9KAHgSABQokuvCev-f7B5>7>T_DEGt-zE(S?fM_@MiNe0#gvGdK<^DWf#%}o3b8d8gSWe^nN z;WCzPyIB_l6W^N4eI1dsR0!&_tro@O?C=hNen)|xhcEp;NwS(ql`@IbSX6xCyV@`A z+%1ydU7??#Ioky0%Kibk+F^i#y$cZc{DHvs{Wj4|F)nl!JNLYlBRBD;& zt&50|@FuTe%V5(=wN3w$w|4CIC?el0speVxuHT~@I4EziCuH#(@xZounwuJs2E|SyNKwrW4WwsmSNO@w)2m9SND83sWC$VuqeW z4_KPwvp&`~CR}(QTukkh*Z{ga{GebboNfr=F;c!>|2!w07!;NxcVK5e>qX4Km3M?j z$n<-GE@fpp8;%WK=bY zXFIM*w6+iAe0-1zLO z?wueo;=d^iN$T>yP}@`Z&TP)}4aWLCOMHQj9s%wVOj?X;URNm!@)(QTD|(M`m-`RO ziEp1e(rQF4MTx7h`l&yS^v22Lt~AI@wJ1#&NM^HOIr3$Pou#3Epex%3?$y)(UXqFY zi|KsFL%PHDC-}+eJK51iS`>TnLv#$8jJ3OSq~MuHPcy2VuP{ZkFkKZrF8y(~=IK>d z`lE5mdzFuo{tkz`j z>bOu1+gFslZrU!tJVsOexM7=`K4@<3u3b_ig`5+TyelH^=;av>|13Q5r@K!m%vlinf0 z;={WocA52YI1&;3DaP8?A-$3BMfg)HZ-s7500pOZNbFeR9{(;shzp55NB=AOR?`K( zh7!BhIQX3T!^xmXQt6vVGTh8*pa5$b*n2Gj=s#$4mAv{6<~i#wx2640yEePOCv+bX zX2$xDUd5s-?+-^!BIiLz(w&Y+1pg^N5y&~2^wT^u)WzBD^Vei??w*6Fo+E0 zDYGTD0C>g!x#EGEK%*3G#`>J@o;e?oHw{chLT{@WIHR(TqIfiIBBrfPYQcgo_c(H+ zaj=$q$j*7m`W%(@wF1n8Id5bYW?u237DzGzuZ{oUjehmS7$RgCnV6v5#^aWa{nn`v zM{{o0H6p4mXmCA>ohea#n{vHfKid|>f;{Gs<7oMd7;=QV{qI%H_wTTYGeHDH?VHlk zHX55w^UNZthq^6Hw*&s(emN9Sd@cQ_H$|Oe);l@oahD)PSo`U^M*Y#`N_vaoog_`^ z<88z-8IWZj`pq?5dGh3M%xIFhe}@ldo(*RQlXvUn3TaGanh=Qf#+NiwIL6=JxMl{Y z?ak;MimQ4Eny9k7a#7IpHb-EYxOms#-iD3yXLB4+x)|52kmg`zpRZ~8M9m-pTbbOz z)+FwxGt?01LZ7A?3=n4ch*MeN)Z%8%yJ=ZAS(ct;n8?m#_q~gSm9CbG zN)d)*!mG=;v^wfGIDz!?Q0o&(hDz?P^j7p~P4=q~`L##vo8z3nFf7=Q_-9t6-`jt) zSmY9hiO}}FJv%UYLsfwbs7g;?*!JzAb1|T=o{k2#S`eWYwvvkT=@7>pMYHiF5a0DE z$3s(MP!63)nz*!7>6n#jDDtu^{;z=@WKX792fb)3Rn1#+@oYY8 z3C-dQIg0iNNn%F5Rq@`)rXeU9n)}p(sKVj&U>ri;i5DFt)Jc==@H9xfT+t8xt-3c} z9A?k=@BMp=2w?L%mxgT-UyDZij0qg$0FcMnDe~GZ3h}q@Lx~kf&Zo-59lRMXuVK zbmNAYY^0x^U-*FKHt(4eBYw(pb(d(7O1~dBHZk>7j%qElb3%TH=%3aW`YVFObDeeG zh>w5_B`9Iec8&_lOZ4!F6=R6h=I6YJAo36_69HW=VkwCR6ot{-J4-=AN6h-o3qK|* zD4nK8AU&NXk?+>CcegJkmL-(^S^Ignk;s^tOATO=`;FmsKz-?Bs1iXxld0$;m(3*o zCm;SjgkfX1BW&5Fm;%lnpC3Cd)v)t8{f+VG^XlhPZrN4zooYCWpD3qdVh&`y1k9=eJ}yye3fMdAl{hNyVFd^$S0je;7vGxMJ2$9fd+3SQ5Tt zQP%Pd?i5%L~5KE~niYto*fBBubR%fAIk&3dGD9TI=wucvmfpew3CSAQo*sC@dN@dxjN6U zy2{vjcm?#ppJ&_?BP35HRO>q&JNbUXrxGnjbIHanF=CVNQB=x-BlCtCY$yEP`1ht| z@}b>IYlVd45nN$dIaP^lD9i&KR8V-dk>7>vBu450ygi{2YT~Au5(DB`vASy{B`(7^ zZ|E(}dB+%}zmZwla!TfU)0;Zkla$lTc0T3GN7I*btf0v9!1)1R{`-02GLXr&9wE8L zhZWkEj~{RksX$c^D8H%0%zO7!StEfqmltI^n&%Vse_buD&1kg8^&0<97I`0FVA#RKEv)d*4EFD)6)DUQ#<%g! zGodG@{B*ybdMct^Ibndnh+drWw}Q%e8EVDkB6_Y8*P!{hSoJvD^OoQT6cog zj(bW~7tBqSWa}xgHI-)GyG1@Ko7IllYx$anxJY*}%m~S7(`F^yu?)LrK~jkdYJ7hx zLuiRCy9P~?4Q7?JYy5&<9$O<L;g?u>Ma3QepvsY*n@-KY+FBHJ7Ya))bR7Q@la5?k+vdwsa`v@${-7! zUii(g+=>*Qu0=9}osFUpI9{$*xywSQ`+8eEaf_L0f5!CQ3E(e#tX>u)I zGfvQrpv?OwkV(uYauP8ahdXeF+#*%Q!9uqt*BrbDOQ6hwNFWAo1Mo9WG}HmLMvQ%! zQ2eTDar4*yQVhi$j+E#}O14|uwvDk2ktTzfN!5}*+R!F)TX(z)nBkGx{#Apy60qAk zN6jQNfuT^6Qqf@XN}(_e$L~>Rgf7M?!fNPE;Yhe-KWTa9D|<@uejA}Eg@1IgCH=Y+ z@`0Um9`}#9O|UtAS>Xrhni}sG{-qA#NDL9Pql|;&$ttKhN>(X2b=Li!5$ToRe(V4f z0?~|@Fcg2V>mba`D&>WO`E)h*^0m4j=?9RT5dO%D9m|TDqj!-i$7JntH|T@-))JyRnK3mB=(~yVvB)nCh~Mm z9Bdlsxis_oi{%sesjCzs38cR$_>Ldx&nSH5ORBJWlPE*&mfeX3X`C+AMI}(>awXty zj+Kv>0f)hu`YK=sJQhC5s<+l(#YXj0w)O83j50`5Wpc@aZMpVcUJW0)Lg8rT=l;NXVSW1y>b!}GN+Kt%Hq!IA8xdiC5ZUyp%GB{VmOb|EtAJf}+Z-4`(y$!llVR?ZHjl z`6<1>8NH-jKYF^Fh2^pLZ-gDm;j=0KU9+IY9m&&$J$+8CncAOZ>6D*xM9^5CWNr~V zf8AAvkI(jEs_>ONDOQh2JA}pwLa+oJy%*H5EY8>d;AqFw&EpjDja(61=qQ-UDtt6f z;2@nzQBC@-{>unTgUVE$20v7f6f^Tn%`C#$&$!`mBgsL;E`&b`p{yiI_~UFti2^|Y zk|L^`zd8KhY)AH2aL9ocrpb+4%Ed$4cttV$A=+^$-EC61>$ypHoRCCtKRLnUTgnv5 zwSWUGjnFppOo4vH!^#?iA|SSbhOqCLQ8)XiRX=jXpnSjxFP02~lO3n0tooxA(z$yb zY7NdB3uDvq`b_QmqRt-GpsoRHq6vBzI0AP$K!A}k7!03yWhSKr;vHeX`A$vItrRMB>SyFDhwpN`6&i$THRp5xb6{PfV3myml9aIhxmu0#kG>vy>z@z*OKAB!6EMJfq;x3rgt!LR?y-p+*c18G++;FSoK8l_ z1B-GBp&82jBeor5j1}I14+1TZxFXc$7$4dF!*JqJUVRC-Dd*3rpa{{z<2ST2DRBqC z3F7{C5iiAUhTBwQ8OW8HhGXsEPYXD?nN#;J1-3oJE-?}eUC849_(f?hNRf^Q9~#6) zB@4|qGs#v}Q56!P*)b8K#x#$J)t^Za6%W-DI9^HupE9#(>M7Q}z{RhekCPAOB91+? zT6Glxzn+VAQyE-qTA2$S*J#u~x2qHUaSOkULY4?K6DNX}CVhc5hg5*8q$-xVXig>U zcpPy|4m0rlJ7oZ@Sthn90g^ga`iOhRxxxiI+zop8lor*jY**9PgS=}HI#1M=2w*e4 zkz}i)*e~P zoj9evOLO0-#aFpw0j9A3KE0zoJ&7MveG=c0h_!_?Yrkd;?3vu^X*DL3ICZMFBa zbrmKS1l&$rMV>EXd8jse;h?l4ZC>b$-?f_cU@aVrpV${#J_>B=R62Ura)CpP)@}SY zP3&r_!R5TCejqR(Psv3h(pUx6JF8=5qGC03#Z-cP^jJ+z#zOZeyW>d;5y9H@(oH{i zH4UG~O84WEiYTI)X58(03$xH7ZJhpu0ZEX6!a;f0&vB!5tpoX|ZRi>(fmoVkA(Aco*Zh<^ATXhZYY-@8aUkrh0y9>L=dw6@l%|QF((=%rKoT;&XbQ-h z@3+2Wp6Wd5r!-8q7uoPj zE<4nh19=c9Q#8{PAdk(x)uB^{Mg9@r#Y5%Xg76A zrGLinZQ0?9r1;H#*5=sAct>-^4@;%Dm)~y+ht&^cpueeTeZTovm_h(~>Th2|4!q*V zxH4fPgr7ovZ;y_e;kBkyt(+EfyE}?T|HmmFswAn(^XOyA8cb$tcT~656-<(nE8i zB-y$+Edj?pJIR5%!aY6Y8~BAT80|S6Duv37fH8Vq@^dSyTz_nRb%bM|RWReBnt zkj2dtOqvH{Sxmvt=h<7Rl$$@L9?xnRYAS&hO%G+=7-NKArDf@r})-H zVt}otjEqa)8i3+~Fu|k6VH{p+^I!AksXz_CaW%86K17y%VpWq7W7Q)BF?4Dbu{W#3 zCB`}zF{<+x*36SYG^{I;^opu@r*U<~=gWr6_N34}?@S6ze6}}I2P9QtBXC*x5NPoA z`*Gh3S17{HBnuIitC%|mq*-S(5}khuqBoIm!Or0u(ZjJX3K@0kywhq4GSL32?ixRE zr1FIiKi{=Cg(0pw4Ro8XKZ|8cDE6FF=!b9}v1axTFpnxvjkCITyZE_5iE!vfj23q+ zT7vzn!<-pVNU5SW*A>?ELT$|i88sHxB`NTaCQPR(2|8F6Q?pd8VEl(;+#vhAlyBr1c!%Jt5qo2q=DH%iYi}OTmiAbe+GZ@mO%chU~J+4KQ^&Eh0Pp&;w66V$5>VE2}Z_k9Ul ztvTSbQaHMTbp$okw&yAcnpq*0N`r$}cT3`C)MTv_4|EIzl_?x7$^$@(42+b>#!pJ7 z5HfAyePztKqAo_&_!071jPAuw<-*lMGB7HUV_P1%J+TuqsuO2rEqNBbRUrI>Sp zi?@U4QKb5Y(R;;H*sMtsvG+1(6XzT`Rrq8BRexBKGjaX)?jfa>Huy`DY)W!se2)rC^%|a z_*==d8jYt@?d4rU@@J3`9VE@DE3BBYK+3FKNrygG9tRYuzMp>p6CelJy_5B1c8Xy* zaP7ABYA5uv`W<_cO3nzrv)1N)ARkQnLzU}&|JJ#@>d4wF@A~FO5Aqp=m15^eFLSwG40TXAGLj6~kRUM$fUgCog^Xf{qw8{YZ>B@&47sR>cevj4rO%RrRK(zE&2kn6m zuakL!h1m}*u(Czt246w0VY7Ow+}A=Cf(}g0;{LcU^f=Wsfi$WD$ zK}TH69ks6VYUbK~Elk}q_6BurEjC4?rAiJuk8O^F$8vXNi_5u4myL_kuy1iRNiGoQ z*y5M;o}JDKMx1j#V{nj@zKHcX`5m<|9P8nWpC;~= zIq=>{J-HUL7ihUr9U0&OJyiO>yTqoPX_ zYfe|I-b5}B<(*OR8+^guxH22iZWdMn8YrFai%;)5evVK&mKwi76PG^_g-Qi&+k-9( z(i%0_rMug{lR=_7(??_0$X3|?9>)LYIq!UPI&F`Wx%%ERnc7(Lr_vZp2veW0n-Ki19ilPW|(oG<3sg63T{Sls8bQ95#AXX zx#sH7$3@~0mW!KQ5> z_L|pHeV9`BQaPZOWc-bWa4A&J3`sM-M}rDK6%o*T`QrN<%dtTM@kL6y)*HOUo*%SN zRSxyp!Aus*^zXc!Z5Wy3`w=M$bW%fcX=WNw6(XVFI#)UgRn3U!g7iUEZ_=typBA!= z2JsJCE{^87S870E0uI*0`vu|^?JoG&^>+t1sd_04`6;P@s?4rRFsj~#;3SvFJ{zB` z{>vZsYQQ~CHMG{s4O$Z?TD~}hM}r15C!lK=^jz_YRh_bvN6(5WbmxE)L@}}@Yq|uC zLx6jstm-rw&80qSdC5rkD`qT8yixI0cgNtZ8BzpxrdJhw%~jgJF0X!HXk`NNH2>a(eX~J{nPT9=I0Nhahvd=K(17Jt$}zB zm5&)~aG3X7Z9=p;vAYYLm|dk6Z%T4iQO%v6nD-SKfQMb(wG?_KVDKFXn+#zdLUMY` z!n5G;-KzDw$!BN5&~f5k#7Qj-=^XPOEvqoAQVzm=qrpwk{XA?}_BD>&EH9qL)fY4qk2f%g*tT^0_^Z z`*m@{C&Q5&)fQs~tHJFZflVUO{avr2q9XhAZq|XFP+P+L*b#Ed4nV-vAx8NmQaD!s z{(oC$nBhD3iWffUs}fH2FTE8lsM#325JpABprQ4XAeG~nBNgG2)y@E)wmJw@ z!e0Gzi))1MFzpgK?XsF-XS>NFDU~o^Jf}jIn?$ku3y&aS`3L5~Uu`o&^_3rd%4|BV zcPFN!U~STzk$^A3%c~K}ku=-)CoA!Y`2+59W-asSb*J9zMwMTPYt#Ks`WTWkSVjh_ z%x!BbyeGWu@ULATbO(GNxOMwj)v5Oxup-mHnV4DEQ8?;vm%4OqTu0^EFzn)L*yb3LG^@BH`*AbuL>KS4zGo<&;8ad z)=0IgnSK0Pm-9Hj*&V+QQ|E*@=000e?Gb=DXv5#zgUQ#;0 z4=hj@268dW($@9mLF0FnIT9uglu7#g3B{Zv=|;t$`pf^+K05ijAltXL+P4ZhzZTW* z68&uUp(%H5WFS3R^xz+)9N9|kPvuzAN@_X@#)%(oe{RdVE7|mT9JPC@n!YsJd+Ifx z)r3^fs59Z7`1(};5^?a5ucPQzONu>CcDtIXQ`O&=uCSdmA7vD%-*!^%ZS4eE=rG9I zA88#X+dJm6jbOJ@bnbm-50$Z@$0KcRx&9X5(AvDCv04N|`gD}btR~Ox)k!i`Hi~L96kg0#~a~xRAHXAOOuYpw$VnW zUyqjeC-?!GoV?RXy!2JjUZStAsSbetbl8p=3eOpJ787bBRN|5y=1k8gmc=5YrCL?G zH85imji!HE*tBx;vi@cK2S*8L&;sA_Y|nE4Pp1{}yG${?SQB;A@#;J#4Wg`(67yK!)my<)8^B33c($cUiz1>o-8xIKSsm;yG0qV?cR*>-2 z%(ngM4foA`hASMY5Sreg8}mAGf9#twZZ%_?y_h#XUze3CJ@9MOJgChRM>s;Q%%!DV z=a&v6A^wG4taED4w+;zR(?7Wmf477MZlu|#M;V-43GLsyp=Pa|7)daAy4!CZ{Xn)s zX4pMEK9^FAtzzes`}Dfguy3wtC%q=7nCbhb78Pcp*=JaOCAc;^d{&)t2s3uJ5l`5h$h6H)IPDPkj4Kk)UG^-P9(HW=`n=l+Fw{bxmxpW3IW>>qCu4!p(e z-$aV+x0pQ{zeGGm*Giju3KJriPC$98)NHKAToHuD{_u&(b0C)dJ`*nccTWR$s(dGQ z$&5y6X_KLM*|x3EYMQX0&*&W}|3yG#dN$#uh6BRg{XLpEH6N>h?FJuQK7mM|MmxD# ziO=fWN0!vV`34A`?+ZUo4{N(26rlzZ zivEJJhzP%(nIraK2|m$H+b#^O4FtL-D$)1TnhCE#?bG6(`-!5Nh&KoJ-bHrR`xjJL zo3SiSvcET^|MPgWw&;JK!Ka29sGnR@A!JZD_YzOH8wrJ{+T?}%2DyAW{7A!tx3Hsi zBoj2?UQQp?U9iaw3!yY_!Y<^yg87z>+v#IUPNW#>!!WnQ z))YQzh)^u{Rb{;2$lo@o$rI-3V>uTc)M|-eN+{(Mx#=eBw_r;rv$$vA+kE)=hVYEM0`DF& z#%t444^cH71_7wZ@LCJk6dMEchf)a&)1pbHGJCi=bxAI)=J;_%34v^2FaaPj49 zB|SbHy=p30qpzj~<*=-s3o037ORJ_gj0q#t1YbF7dWgNTk=rp&ree@^C)({37M%u=qOqZgA1^eH_>b%8^2kc!K#yYhC?`m zRmVP@jh9O&MURH|+O-kayr;TI%3c+)Yu3-tD_rH0)h^red0ahScSY;EHZ!6HjR}e|Hbl|Hqw@8ZK~yf7xeL{p#3?|c_lzAb zSW)@FW6pyhz^9*vaM6T-hIxuKbeQ(8?`pd%{{^yX*%R$ufiQN3^DmS6@8V}8;Eh3< zU(p*o2Rh*Qrk>TmJtaIah7Aj@&VOQ2v-*G3b$9pjX z3oSZoEk zA%yyt=d>ohank4IY@TWLIp)@TYk?L(M=jOOa0@_^8Q!D=Xa@e z7kz>I8cM~~U;6Quu0@|KRq*nAaqR1Y(a4XQrae6imahU+7JV4&4|diK?BnpRxg!mh z)lDkrCQ+k)bCu^M>gop+njyGMqbKrcUHD%3Kqr0LZA zh{uhZov#eUiS63vJ@3W!kE0`L(j%7-rO(Xjb~SeUU2aB^i7$H>n=3d|k4R20azxwx z)(R}}e61f|)N-y5LDV@hmZ`uxl#^vS59d7U!@xH}vfc~-0f7B=K|dnex& z+|v4TlZ|Caga6_@UqAWTHP0Y*gtwpqQ+P7eX(sCdh`+374tXB+GA1HbMVECl@7h*r zbGv+Xe5jI^epEvC{^SY#spjqGI67F6IcZF>y5`{m^47i`qLlE6JEvnJ zLpu>yJ$wqu>^nlV{6FC;4c$dgWy==H^u-4^DP@;e+xwonf;6-d{$Zdly>mvg(S@y2 zt_4aX3|Ac7+I}71SxSB{7#i!U$3}{TT8PtjSYyg-@|X0N%;y7q!W((a%=1Gw^8dM5 z0s_JCZ(4Mv5yqUEqJADB#W$)1PFvK2x87O(mb855EZ%@JzNKQWPV0OmlTxhle6}=? zWlJX7YEsxPqV;Ox{PA3oXvQl6zt_~{qcK2VBh7H!kQqlfxXd135$z5P8el0I3jBzC zo1yh+yEpRwfC$BPdWiw_yTA;Q0Dh#@hNuxklEh$YnfEO7X(@4$e%@ZO!ay@?(e3N< z<*!2^AifnhG5wUP$L1o}J0QTcD>c5xN@z>sv(f1LE!b#DZy?o2Z#r0~Go3-c*5>H4 zI+ad);|TIrQ(9Rw@z!7*?eJ30yn@ca^P=1Y;o5!N;dnT<_9@#|x)=~KH0eHf$WoP# ztK_lGs~WBRGAh7B{e~jae3$#+)Vk{mnHTmOq$MO2O`|!%*#$zU`ulL?&tuUkI#0L3 zN*3LFZx5qa%c_|A8PZx?W&N^NxIz}BlunmV22=DsO*}3%Zo^W9YP$=bl zb&c-6Z9X#nkrjk3qj2M*i|+dS(T0ESA_RA{mvTxDyvSf<>g{SA?Lvz>8W|V)x{Vb% zHG4iT;fXhdQs0IThNd78^m~yYeM#zhyHK3>w)@z%* z2K`~x@m&@V16pYkooBK+=oVX>s4Y60)EsAopg+cIn^p97;gj(;PQ-{iIgXFkGpLz2 z=JqD@c|tom`#=sxPFpsM)hz{pwX=2`$;~Wa5-6LXZ|OC58Ozm$fQB|A7})}uly^eT zJxdr>e~ZhtSI@1Ith0H=XX(&k@|b2bxn4iny{1_|9OgBh2A{Vx643w(1hgcn_5T^y z(EQyH#^QuBY19VMySIPl%bL07(Kml!n`N^&ZFIQ}X1>V*z!D-s5AaGh&waHyi9EaW zyV}J4^CMe&!q1OQ*~-N9o@X+z+ZE9ky9gZ4JyWR{5tBgr5CLAcZQf->Fa667$4!R* zte_K92tP#mwra79aQ#vbA{g$IKF^OwZB5+D1CaBCL1oU&?DLpB>fXMs=Ue#iWXAnY z8ZB&K-x>}h4OpDsY`JCaQdq8e4)z0j4T`a>!SqB^mY30&=e=o{yl|($tI`dW!+U-G zl^yaaziKfp{YGH51*b;wXLYA=xvxcPfAmCa`+qf^E(NU{u^i1=I%JNn&fwV+ptwe6 zu9I^DObc9Q-{xe)KE7D_F2>!mfSkg~U{97Q&5DXK^Kb%fW8-%jj(1lNb>qPXoKxXC z?Zy3EiMf93=AL8vEC*#|4Y$ihE{$EpaWSS&`CELrhF^vFB0Qy)XU}PHV+k>WU(*CtFgix?}G66<3S#=!J@+1?m$lmEF=kpC(V0Uu~vB|7|` zf1JM|v_JCt-6%w1cWhWgVfNdkC3NR^@M;bo+)$lo=hMySj4!Y)zHhmkX>v(#v~5%|EN5L%aT?gQ!{xZm zpj~q2x7XjEAohjREDst6HaKg{XAc`+MHtiMKtlZ9N%Qfaw9C%Mg`{QgdW<0+O8ON4fzI#XjtobbMWo!z!r(Q zc5a6^>H45UNp91b@bEefW(k}qv zz(Qc6UZbpO+S?lCnkQ<8L>NS|$jvaAuBG&=PVA|r)6WJ5b@{NVW*Rg>n_pgJpe=Ic zPK-JmZ7?dp$ur8v(EJTN9!HcSO?s16ewjA1G%%m4Z{k=Y&)nFkVqX56sATI4l;`_7 z3{l~`4L*btQIZ@>2ja-ctZ}HR>%v<|_wGze;Fb5|#-(D3cOhOD)M0Oh)3I~J%}-** zu-^2B?!4wnr-5L&R!fJ|bC*Ul=UX)k)NE;}Dd*<>Eq;hG=#P;j6+XizQ`hHnh>t|! zbg(D0pc`SC47HcI>wJX8^K46Dh1JnlgL{<#j?kjtNyWy)Us*4DeGo6Fb*X0s3{@*y)!)~<7i4Y4FU$RlL9IOwRwUSukd(J zN#wSyoX0@}As+nI2Gy(O@b-Z<<4AINN zPquqc*Q8!wm4osqm%S-X6zxXJ>P&_y>UAI|v(ZbQ!rxjQ&!i^LYHjq@4O313I8EE{ zS$x0Ee2*NsfUsQgsjaYAgud_U1|KAm-pE2Pw7bbtR^ruq{Lh;IKa<;2&Y33^|6mcP zW-;KTqzSZiXQGiyYRHwfyP_mabxbWBaRu)RsJ54G>&?F7dM8BqQNrYItF^q@XSa>d zs%{R`xs1clU4=bp;SrL7V>oA9XO2%oCuN}*MPUcZv>|E66MYLDh%fG7aTkZ43p9C9 zS8sAoIQ$`i!8wNO-O^Q+ z*~c-wBMn(urW4+@=3;$`ZlBY4Ms_4eUZAAAR}cl_K)q|#vgRp$3rU@IG_tuWOV)u#kua0k2#imHYZr2_3 zK130Sb-U|NV|Z7;PN+1AOZ$D&6?-wg=Yy${>G;6o%-*EN=iK|#pX9RntsN#5lbAmY zA|~ahnD=5`tEhef-)H{#EM$m_h9^cS+FazPlyD$auk6BFY3-!=i3DP5=F8gI=He+*@yiYmwvTrsJRe)`~2}$rshHIxwgYoBFpY zqw4ze%C27*C!>(Xruh7m8y^?L=ZH&m?EspH!JP5<#<-SaNh`m&C<{?o`@762-Qijr z5|6{y%h~3(1$|xbi*z5>1zfS0Hl@QK;Wj+yb-QUi=!8eazAc-7R;UY+g_0s-G$M3$ z(!CCRJy7neaJ4;rAnXte2pJh-W`aY_;Z^_zY*Ylao97P!&|F$$51$p0Ty!>=^`Lpu z(J9Zupem+rDt%edohK|vHy}De-B*1tSz~RO@yg0pp}Z0bZhfa3gR z++9<3b#vs$gOWF87<7G#ji$!XeG}NT;_=(!*&qU82pEnZ-eCG#zkNonHjrbMsj{1hsePx=~rOppBB8L4T0-m)6Ts$A1ne^R1$bSyy_ua4&(O< zO7Rauw)LTPB)p3YBfaUn2N`jSwM(dXD$>Tc?ZdmMf1W!+Ka|-!|F@X`RrS;Dc?rf? zjiSVKKF739imvwF|6}ScxZ>)Xrs3f3F2UX1U4uh#cMtCF5S-wyfdK{$?(Xgq+}#}l z-z3-leCz!IXRSGNdiSobuI@_3@|qv$B&6r};^hXMyrhCaCfJpUfbR=bTlR-KD??5NoC2=7~|7e22s7`|y+Z8e|R7Gj-YTf)zKyH6NByEucDi^t6l3igx zdVTJjKti2lZao>(?biOzL3feLd_Z|m?b@G=6<+horK{$1J;(;ZbH0w-pJmF!jox*Y zy~!zWhbXP_Fe+1Z??7F}4D4%OxzBSKjk!p{ZV!$gHP04*j)j6Yw$Z-S{LkG{JIWOVrYK|0K3bOJ9{^=5C3pX^E43Na*8R_KOVms({oc5> zTl_G^crjv8U3GMbIxW#jna^ktJ5kAKLM;bb4++mMn6Yn)Y zo9k`sum|}%RY_hmOrS+5B6;-;zq*CxL5a<7*32vE{2YNzMT`Eg9OkuCeW(2lONvF- zC_Z8jLoMz5mVG0siN260bY@s7mCf@()ne+V+QSDf6oGiM0L{JacZ`D_@)q6p1Jy_E zb^-X%-&59*Z%V}xSm>`X8y(tmTw^M!qPUuwWC&7&p&A8XZD(q<| zM58=PaGk&L`YyeFp023D04oWLK=zfC;*B~;B8)KMDH<>Mn&CK#!Q>Hx-~bwfDhDEIa0^k2_>prNYd^$X9A`h zxST8FB0;HKS&SWXR)vM_v)kkn53XuRKdB$zBXL<)E##IJ*jpyGhKGqsByxD;TQ2GVb9#$I+~i%Rcz2-+%5oP)T> zb`+Q~om15(TQ`oPMC|n~PtFLI3t>Jlfyi?D8xvgxf3RxWtNnCAJZ!z^sF5L}RH+%z zip>;*-}S@1zhAe8VNYQ5-&XLFSppV#OM%tUI17TFU; z%+(qpl0>0Xd!VSPz)b+$HG=Gn5@l4F=?sb4cV*lNao(S>%l*VOfB#(&axwY#r5}O@ zaoiC~oHhz^NC!uAg3b}3D@Zp8_zC2s%8MGL78aEkLQ+jK2A|ZKXjZqV4u3fLwlO}C zd$u#1otShgt#V0oW9Y!wIeD*cyfDA(76D#r$1*#y>E+D+wYqT4i(Wo#409>_FUFwbF{tn;RPD z37*$&$>V!g4@_(bN*?msRR@i>eo{QW>HVi?MX&i}CCf^gx>j{4dnD9py~!RRz4xwy z=)B*4Lq`o_c0{_9sXm_Exl0xI^IIu*;HpvwPy4TL+Y?KcAbXgo)`!o`27BWSj+QIF zD^x;$v>*HXnhj1I_!5FJOpMGmN>#0`UYMMq9@4&d+R6_*H*?HpHU$0S=w(_MrK&#O zEnoXiq1s{A%D|wx-P{5mtSWX}2zs-f7Nd4GM- zmC#p;G<65#OAsADS*xaKQvOS}+8(*!g2aZ;*QU0T0$A$1Iy3iMN?Fsgrt|KGs+DcM zw?tQtdeerNHEMMe@`8a^ARsKHRVzRsMvBN)-{6!LD_KcLgKzhw&Xh-e{VFGCC^}=- zb+GJt8P19!J8=h-qnd8-mqk@xg012=d@o#4@@~@a)eXZ$pk(p)Soo$t8H4H*2rO82`MYu4kv|5!cg<+v2H zSpINXJsw1_Xnt0iYDhI5%SM22!NazEAR8LrjURg{WCY`Iu0Bj`U;w1&fa;4`ix2UN zupEa9or6p}Crh>s4!wkw2_Z*wCzmavwQ|ce=R9M5hYrn;`g0RhH!v{2StE>j4W-Np zPU{w*i;hkVw0Yen4^zVlF2;cR#FrZGIW(N1ur`Y!ehT@auEX@bsuuH z1wsw}I*(M*1O2=-4$bJ()Q?7WPO_aYpyE@8NKV?W5*t!1ahlo3)$y2Ns^begFO=t? zdraKSb!<863TE@B zEA9Fnu}c%RPAFoOs&aPr_WWJCCgd-yZ5T3TV*|xoHVkG6807Y~-V!!NsDTq2pO<%f zId8Fh(s_^C9y?(6$ko90uQPMNZV0N8>Y@X$>}dHN6#9YiNWHk znyLQ&UB{y=Cq6SCJ|WS+)Xla|I+kYRm9K2A_slQ>3|qe}?9y2VvY)(cJC9M1w<7&@VBj^XH^?S;}{TG(@LL23>xa*X(~6I&OKy@J5C!Ga!Qdvcqqm zjVMG0rv828($tsm-57lJK=Bm{k^_5`a?^Dim}D1`t<+RmrajE#JnpLq#&2Gk;BlP6 z4-4sfS!)@QcBL9ELQ9X7|E|LE#`kn`bbl`S&>}gR0Ss-2S=WSCF?47@bj?xT8*k7s zzv!y@Ir0H(>vebvOub>R5X)Stto3%)uzY!!8wkxBY-*-Fv(#`O<@0!-YjiQ5zixh< zJ=pc8uWoFf`zH3_Y&;o~YpOD@y5wPZ>NKds`aE38X}5hy3W|NNj)N1lrTq@|!^Y1- zEf&D3_T(JhVGEq*S*xa1XMuICO19@cY>%jkqIxe^t=-=q)-n$5)~F5ocBt4X<9)4w z0inuLn~NC)U4Dprt(CKQ4xS5pTAHkVFK^dR?wo|4(|-0v^Z{sDwoVpUj_hYmk9Sg8 zy`=!ByMxRVW=Eu^+@HUvP1mSDZx7BA@FUO(*X;=8BsHp?o`zq5oOIup3AW$4v3)Fp zxchd7K?Zn4Kw!uAK?gNA?ilq9xK>z}-|8dLXnbT@rsMPi{B1ni^cPS<|MG;F03uq5 zX-%%&%o)NLT5%0jL-X9$#<>F6e8waYsxdNz!ZlSGP^YCxTs8sVA2npHC|q!~RF0o2 z^LfLi3h9Xp?eYUQ5I`VKnXP&qD z;}&d_ocJtzH@tX{WVB5N84b~#bj|sDt2`rS>6=m^Dy!VtO z;v7?;#X|)3z>6p}EP+F~N42aieI3c+^^d91_2ozIQW82d(pYl7j_fEB3_wMbU$d6l0_SwXAt>b`VH<#y{jKvU;4FBg~PM;PVA`w%IIV^yaOobWoG6@z`) zN--OM{VNj|8tBD*1=~V%K;cz=%isx}h3YPN-tlX{d1IV*f~hiPN~dSSXW0cD_6Stt zD&bbDCpBiXaK>)L=f69)x7q%zs=bu)o9fdP^dNRKXuZl5^mZFSH!erBo#3<)kIk-< zsr5>l$W_y;N}1qs^zsU5pNM}kc-+{ozOcL`yb|E^e!$vfd9uQlPXSrL*gKT6YL%B< zbo_dAyV_VAN{!UG?zK@d%Rq0?_BH6MWs?I!2r4BfM-~a&LJ%U^=|b z`OQ3o2r&2m1y%nqyVHyP#WFuhq6iu2dX29JW|nWS>aa5LPK67A^N4^#9$v<+qTan1 z(9wYZ@^wo_K@5HZu!Wkbs;vb@PGi+H+HaG3?V{6dd*!HEW3OI3qm?4gJNGS)g8o6;JeYFSkIEI}UMc3E*hlN$9cT7Srq59oK(nTZ89KO2Ithl0F+nW6Tlv>m14 zp|B)Hol4idY9YgdaS7yfSi!%BDyAQyRLMv)!B~~;es!1Wf7dGb^h=^X(7i-kmd&A& zh*&J=JP0s`%%G=nBY7TM1RGoUWQB+nAIkq{<^trp5yhdVziGobQtyP%?nHO8+YPy81K{6TH529G$j=>(Yfkh1};|5!;#Jb@1?uyd76U-%?VyB8v- zXH%2w^6~7KESE5a0zgseRJ=ETpBrNkz%Hm&q+K}t4Q$@0?fi~zNh~X&Ej`a;N85{J zks$I_dPW5G9!W}fHN>s2_F~)flI5g*MWb#08E<#EzBUP2&tMVL^Gw>$l7KD^o*iDV z6+C|QdMqmCTEJ{*Bmc2CwQek`t+jD4VdULwIqkwGB8eG|+3o z>=EEzHN*Qo6Qa}>)2$wwh#OJp2);2fU4JT~+Md_G_B!cXF2m{%(e_}0*!)fw{Il;| z9k~9>*q-%m{lOw{-jZM-j8L(OjdOk7LCjd#y@^*W9_5N$*`yCRI+WrfA9)1UL)x%H!a*b~IUi%;KjxN#*wvwL;4u1zP4CE)JmlIiXJ zypMa)vV^3Vm&D(>P^7c^O1Wd8-%1@|8yY2ulQ*?gx5hzGSylbmr;5RUziTdDM`86iJ-#x1<0<1tz>nr$ zKgev){@OfEx<0{X|SIys+RP(ktilu!)fiQ>DIR4q|dYi6&K zL!-;7U>@U*;;$<$f(ap4b92+J7ZMxz{M=6`pGiAw{**RRK799in?Rou2p_BWs$ zpqo16)(u00gjOOit%h-fRyKsZcQ4T7ZuQGjWZ<~f!GEk{t_z$HbT#&p-V=(8yuB;R zoqTe6J)h9S$PaH)sM6xUmwFW3NCc3m7H++s$Q!dxk;W6_d~CfLT)%I zQ%p6My61e+;^yu)(aXnj&0h4&UJdbbpp(Ep?|L+gJ%>g}TDknA;pex>m9`61d~i#A zoF@E7r7AB^SImZoqHs6GRSnLtTEGnDD!HZRBLvvG+tD7MuC~3({vJ6%GbVqqs(b8L zG{F&kY=*kds4KUwjkL0l%a;30C-Wjt^hM)(ztY}umJhcjSzjt zt5zHpL|y3Bl+hL4J|<-9b$PLAxR)%4{P2`LI(RT{kj7S|yu$mH_+R&o;>!~;csorb zYOdGXnj%HM6KblKKw!e@TMB|Hi1C4-sOI@5j2jPAG@~Cu@2J6}bUnBXN%pVJv;l@k zzKK4)qZz_;)+H&DB?zCDZ_s~mA<%Io+tx(;k}qr^jOuU{-*q8=AOE8GxwY90PPlS9 z$8Nh0o~|Sh=<%eoq@2J1M*iS6^(=Y^FMScs%^`W2tgm19HGQxKez3BHcl{yyE@Xzi z^2pe2z0-trX$QpX)obL%S-9~tvBgVI)fY&2hX3KRkIIlUR1rLs<=>1W(m%hi5W40i zFLgAl<1f-m_iBka6^VDa_geb=QJ(Kh=i#C0(99a_jsH@83Dj?C@SeFyqF*^}%X2rp zls+#iee{29kz8|KEoOhNZ>G13PXslZ7LF0qI!nAoP0#E#+pG9BmN2SMzjvL)aMw#2 zY+QEj`L{a6+AflbTDkxkh;k%{b$TcGT#X0%I@xos({io{gFJl<+n*PP-9T24a(XWE zdQ^;N>4G4ww*{K8S2XpdufDeJo>9qO>oHPSEfujxj!FWaptI~WCM@sR z6YtO|a^oPe>wuwqK8}M4x14J`}40x|826jo)<3j6o5 z9W&u1pgX4BeSN(P6u>60ZaVV56u#P5+hS(8H3$w zdH-9(TLjb^dk;>NISaia=<>>(0I0BT;m10N)o4 z9+zx|HR3pXVLe{(fvq*kjSP8`e@||Ij$te}4kRScH)T=tPYZnLya!|apf$Osv$IzS zqAv=}YyXnoP-3w?=@J%ERk`ZtKXPCy<(SiB&B#a_wY+p*p8?`w5(|>-$tA zVU8=Xk}AeKVyDvlkQ+yHoOa6+$FUAaeUjhX-sje8odn-1vO{ktUHxdpsNH6e+R~S{ zB-4zc*(zGMX^r0}<@I)<%8PzIukvbKHz>Yp3ZzQFZgY;-KLPhBAD}mFZwA-aF#Zab z)|Q;tRyFu^|Ge+RRJo>Ot1~!7hxrS%7jG3vkmicuIGvR0Jg3>xwdy+faKEr`m`AI% zt5Y-2OAw*!lmrokfgtFDk5IL+y%aNg^{#JK8G=DB{&9Ic;$&Fya%^+<$-4Gnmy znࢪ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
  • !NI%)V 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�bCLmX)nzZ~1x8VV?DEz0}fohOsYbjBdM|f4t>EViV(w5>TG_1|?u;{wSXz@Lf{q zGyK%ZdQufH`{zMp#GPTNFD2mX>e)={hBi9q^>@w-->^+ykH}r^wzXci*lYXCf$5F7 z<*yh+wcH6*w(=vXM9E4ytNNXFj904)+<|pSl|!{NIp>m!u;*;hjk%xe1VLtZC^vn0 zBOCTkV-GTWO?r6U_W}1kgA>D-0yeNNFi+nBthrNg-Kc_0)J~K$3`q#ke0x(u0F+S1 zwrc(_@05T@L1WkAoKfGHsfjBq;Te<|>alDATt#x;4dfaxvFPd?81Q}~#HacDJA*4M z9uJ(CQNgd00R#mXfVubj@z6EC+NLp08MUZfQq%!-(i~%_h1#~j+Lse-Z|8akWMoJvUrw}x7lF|cRV2M&T5HvA~IU&FxE!j|2*Yxiy14c=c>0K*D6 z1Y!6wNp!ID!kWhfKy%^$?hLZ)qFnp-BRe`0pEIIdg%F$NHImL#%A9;Ej8Fy9)g+YZ z&xpGjv;u{oYDS=vLia@usFig?{(B7=oT^_u7QMT{#$@0~Jrex#r|25lp0~O$-LCVV zH#^g0un0fh?r^8F*XtjrL#$2dnv)r})SHYvpCdM)mVSLSbe=ejj`Acg8Dw~EI=#xB z=5t@BBi52ga*OSTuE$jlDxsBXm%+gT(2^hpt{b6=5Dn-Sm~i19+C;m>* zm!HWaWlRqi9#|?DL|l3H7wo`{M7lIhAIMYrek4-OY)i2x`ID#d;__r$95uMe8>_Wg z78ERCDg-3QvbLkq$2IYeYX35F>StaUv4o$5NT(VFZV+wB(X9kJ5t1mQ4e-8s$q$Si z(;k&(I(IFBUBfKXC;dPyC1S}_2_no10PcrIg1*hb8v5ClT6;gVoXIg{!`zHiz1u94TY3K(s)Po~^eavR9Gg0HDzX)n|NL3Iga~|5vG;!L7j!8iFlz8~zbVid zJD6yAN7s%V?oa(PAv8h52t-AQq!ThDkX9`CxSEY^dx+X&5@{yE_E{>V9;kdt>g?Ew zsh+DNP#@UiC5tEA&`rZ9%`alzf^P~uRo1+jwyspa$Bq9a*P1z9M+#`6WeQd0qHBZypi-OT2OR*9b-1e2{ExcDTDN$ywI_HF5s4T>L(d zh6V@rOy@qwLCA-PA1=q|6$!OkuSP}az*h_=U3EUC@vV4&ja=VX?n89d2Sv>j8c;g8 zrNHoE=wSazBet{RsRmqtt9uIb@4=G&SGFjCrd|_=3Q`PY_9_wcSFdkkT3DRDC@y^* zdcU5!Rx)j|3shTrD9yc;CP}Iqc08! zsMESeRWj+3Fd`6a1EUNoIvX%%{F`A~rO_9neAy*?4ZrG465)&}fun23)&X9|l@0?Q zGt=dsW8ZOY-mC4#1dmI)-w=W-+*qQ5-#iMil2&(E+8K$fc-(C7n#PSE`SBaihk^(= zsBAlv>YvG7pEI%MpzF}lAxNktNj=0dXh4z2uE{!Ix%|R_eE0MX*te1*H1sig#Y&5Z zobI3?YKl+*X43S_)8)0EP{79_F%CH_D(Jojw8cTKi&a?fMuwQ}GpwJokZB3W0y^YL zxV%DJIwoE8{RaVv9LU7%gj4_TbukE{Ad*)E=^hc7ZOAfo={yi;IDemYfVtcZVSsQv zP=yuEfnd|a>$Qry{Q4Hb;w0@aKkN3P_na{{^UEQ+l@_xZzaolNW5_SH%t$u*dj8ds zH;vsDZF>HXmTB2+YT0~Ipgpoh2{ea>$Q#7CVRSCHwC`8xog4&`2QE|?K$#t#iB2xN z8aYmxYFzk4zW#mwj@*?J)-~+clH5=7GJJ4v+36MPPGpzw%Z$_f|GNkGKsrgCT3rq1 zlL)!?hG8h83Z0bYgItaYD1cWXuo4DB=%s*A{tAl3Pv)Cbh=zF7>6R3hzfUGV(Z4f> z=2wLeIyNtndp?kJhJ-5S1-gq6R|RscD%x|)$l2Ed32ikxRryle}5 zt3MVH2zkJ8!VnhZ#=-oiYg`_vyr#AVGX+WFxV9ybnY4{?V026??~Ha9G!CvFjD_a; zthV&R3m;74qBv64wcg<@XgVEc*Qpysgp@^B1fWXk(nBbR1y1o|7rss?t_k0h)8`b3 zI9x=p_&E1Hl&|nGR+e>mKbzJo#03foRC36LcztF2rWe2Gtk9H=P>4bT{43GegZ%FO z#v4pL`w9?7Ov+OT!W4D)M+QYG74@nJfab8vi*()jaxxp86`=x#>kxPY@ct8-^)Rv| z=vtct+a{($n3TuT#Hbe6~mG+8?;6pU<7X&;IVeepXnz~qzhW;q00X?v>wKpE zW-jHOGcfcbUfxQoM$bb-k(bhu=w<6W#NFr5XKOHR=C6N?wf-ajzxstQ*mN=(sZ%f- zvDEbm2EpyaS{gKLNsYM5|?|J_%s+>SQKd^q{|gk0u7k6g_Wm`;lQO``J=4ij9$|Te^4I>)7J(55Q08)?~ zvsSd3Isl|{q}P!~ih?2PGXmspFxG)bnkg5nhCn#}clV3UNz-jUyB>b`^IHJ})-P3o zwmDL#+4cl-L$q!A5W5~rQEDoP!>cKfSx7ZxU4l9l8kOct(B9%oSTge^%q zLucQw-2K105ie)uAW__v=J81fI8g~5BL>|n#sL4o?1D?A($n=bu4!G@SEGT1B6kT* zYtd9#8s=+HqE>1FkncaK_0x?@Xq>>3-FT}b)Hp2;s=CrHq%=`%OTy-oCGz_Lfy_mL zN=1S3Lnn6NBfWMi-z0-tVS~B1!qlNHj0=Z=F@zYaz@A5H)8^;Z z2o@0d%-dL=EgvVTg~e;~Fme-8*0>28%L=|(y7vuQjm>V%|3pAw2@6)i6@0oJP|HEWpQ z`Oo7q6?8j~U}G8wTcfxquYwH;T*5^IeKi)xvA%}8zN@IgcNSM5MqGN27`>8da!;=F zOkOWz>}>f{Hz8Poy&Y|WuyLU>FF<`NR}aFTs86)PRefFXR#Hc2UCK<~_)yi1zxPjh z1)*FO&!}=jYAb`y{;UtU+4~Ye>^d^?C&$*?ywE0;WV*pgoCygwblyb^=db{^p7Ls4b$W?vz{ER~4WJF&xSLoc9DAW6j4(Hk*m zrJa0MhzLT`@8h*S0c~G$A#j~vjZi9&5aX(Qrky}dum&O)OhG_cDhBL+u;K1{rtJGK zX^U7UGTX_bGNLWF(L>y4@YSZi`)CgR{Mt`+|=)Do(_s9tX)+v{GwP|mq zS7oJWW182RU_+%zP$&^D^f-~^&7LoTh#c%UWOstfJ*1fVovVadqb%C=`tZh0#<>C# zRXqr&j0^$FK2lf(1DZRksMJVk8$w1%V8$Mp$;VyI+c?d4)3@dza6QA62X>b~?579o z#JkK&Lk7mr`?u-_TGMj2tNAHoKVW&xxVzP$E$%?|(8YnKSn!R0w})T+ zKh129(QeCSi0)q`vqykCXG@kOUPM1GM+S_Nq=2;&&5Mon%p>6PRZw#=3*zsO{W@{5~;p7xl{HH7?m2Hr+^AB$r}P~5$4DB-7FifIN1@-)rIZBOT!^BD3Pm!iN~vdTknkt6pjHWL zSBa`nA%hSMsB`d`uw3nfoquiv<%YBm4PWi~m0z?%_phF)T)Q7I(ZR}!6x5&uFOx;> z6xWvicQ#KKs(h;tBPp}L{dXe4xqlI#2PerqDMIA%poc$d4OfbVIsh}?t&+zyajZ+C zSkxs>ki<{Qjh$M8iCG4T-i1OR$VI_c6$y;16c5x8Q?-)$^Np4pB7|Bo!WU08y~Tp! zZL~|iPO9z-Ik6>|(k|+T`|xfD4JqO9mHj>dkF2J*CW{6n>IGb2^LxWD7k-}#$^jlW zp8s>$!oRB!Z*%!P%&c)s3yKK9@Uh?m-I=;}1M)P&aDZ^Jci(6~vm0})e?8%U3ZVkD zuIw&vNpsLe5VQdKR!NXe&zK6=u~0QgSf~?8R*#29k|43~U<+RdxPY1{u^r>30TUaUuSAk#j)jMgG_6&@mf!3kv2ui`{EWB?SPF^4SVXT> zHnudXBkKoBG_Q`8pLeitB_<3P{zf7{`l%tOjmG1mba#cLL{?mWcvhpXXAhk4Zcu!S zfHA+Q{ATtDkn@rjDl~(!N>bik#$cTSD#lAgQT8*{xp% z1`aD&Nd=HYqQhCNVyD)$hXKuA=neS$!p_I;q^X6}dBy0x3K}0yO<-V|po;uh3ShYl_$!D(`2pkvFRZ zhO46H4-`I(7*JX%oQU&fkN^#TQ5@(`a$tAEsa)yZ)EHaxVjKC$kcrKr-sEnb@1{ zjKSOJgCqFgi03~7DjU45=M7_8&8#_yu^qIy<}fH66Pi&}Bv+c(1I$qJeD^nU+*%gL zCYM8hXfVEU&V?)&%dI6wyMDvI^2=jA}bI|`tz<>tL z(kg%+7}Iq6D<$Jj8&iu~($P~3LN<#8A$w7>ao{3|5EBAI%%6w_Npjm8MYLwfnj91o zr2$wJ^EG!tz?mV$ISu5S=C-Tj)vic28oK0~&enOfz(j*O{8!b|=w$ndXI5^jsu&jh zs2PH&Q7-h#@(30+iS+Uv>~M&?UW@)-H$C@;QhJ-~85;A=wk?_1AESw$nZ@iGX<0hI ze$vM>t5N{U_MFw2+fK0ids`~TN-_eOSJdLD&{2%5Vwwmea(wdgouNqjHI3bMg|x&6 zH!}4Kx?Xj%yRz*Mz@Ie0*uhlO)OB%izQ#RVaS{@PdT0Juj&(DAmn}QLx!5mTeIs@1 zo`#tlC38w>f!X=9TdVRgD9?|~UfQxXu=`5WCX>0vy|7T0e1NNK&XptV7YRpu;dlw+i`Hu^u`bTAca^=ANF#y#wRqh={<9moo z93x0o>U}E<1yd}*v%{^+LleUp(#}?}@c_zUBhE{|#s(c-PKTIe@mcB(UeY>%XTjx4#b{>`4LSnQVGQwQmFTsF> z$KUs!VRViRy8 zESQuIJ|HtK^ku%jO9cPD)frl}u69`{89g1T(yLn}Q8;n!^uA zNp!n_6-5LOM$Z_h*dc=u$=r-Nc#t?kxtL4dcSUUh%5U1>5gj%&uE#JdLS{1ds3l0eeW~IjB$Dgtq=5inG_M6xE$WQ(sO5JxW@2rQSa=J;W_4FGZ4sQvakX4DVgiD(j zacN)$<4jJwKNaF~{wPM{Z8jkyc3v+DiA+2q#ZZF_`AabadM@nP>x=b z@OQh9gtH9Q{i2X#Xh2-cV3}ZVfM}=KEBQJLeVCk|`f5X-9WW;8SKvZ`urR_+Qx%u( z8UpNwz4G@ZFe4TXQ&FL2a(LM<42zn#pW` zY$n&9?o6*n(C+uCG{iwOHF4Y=3w_pRqdSEu znT`Urfh=(Ja|T}_!OB_#e*;tOymyWVjcI}Z7x@AGvyt8G-rQDZi4-A%npxPVmZJwm z6WzQxK;QcZ@;=afg8^^0(zg5!5++c7r@@gzANdDMl9YSYK}@VK8qYk+&3_h zdPe}_vxk3czJWVTi*3pAUp}YfuHY*zuF~i+?&)Hez%&A zB|Vp-VUib5$>4MPUd^AghR|d4c=^nRwb~nFQby^Z3z!-HY2m8Xf>WWKlxnO_uiLB# zOn>{h2t9S~N<+*AZd-=b#iDB}D=ET{i^KdV(U;uLdXj-)+crlCl4U^gnh(OxgCb`} zPAYulcdvgf=4rIH)>NQ|Ia%A_|6~B;1|cQQ#)-505rD{+!=lHsqGQisrn%`C?kH}? zq}ws1wRIK@k^1dTS)NUjyc>WfYVZ|+MqW!MiOYS!*b=-V%w`cr90q+}&5QGsyrt)j zsG}_NyEdDA_mc>jDl}Tq{4jNQfq)q{_q(hjD)@|JRgjGGhza&o=@xKD2NBZvZz2J& zL-KKLm5)Q?;;lb=+AL1HcXQ2zii0GWUHVt*G>Q%Z#vIp?M`Nb0B;8S2?cGjb9y_dR z5c;K*+3U-})edoCLd+n{e5OzmQDfSTHdF(lLm1b1Ad1N8$%i@68FSARhqox5I(|T> z2ZYz`6~*9GJTzUQ%dA)a@%-Bu%tM{1O7NI&A-ihXokbJAVO2yEVIKRqntcdtmfXgDNF1o$4=XIeo2@UQZp15y?u3I`* zE}5mq<*?Z+#X82~Fb<_T-gp=ROlzi(Z6u6pB8XsD6FVu(b5fgGIk1mAzpDdnpPDMi z$bx-BqHXZZ3CO%MKv8r()3CVwOUeFI69q^fPdYv6Vs{`X<#N%28Bw`qa`ilTI^Euq zyqOb`-oBOs+QTg%-iNOXkogTiT?Jz2&}Mc1KgSzI@&0J_LHFU;|2^P}5PiNvYX2HF zrGGP#YH-uc6&;_LEFHdiR@kTtKnV7V@K|pzE@r@So2KC2tRInO*n`XLJS_+NSYxAq zGg3O?``zJUz>V_WBsg&T-yX~3Lb$5zWK_KOmQ`mpXiiAb`TF3H`BbL$GEKYGC?%&q zOM%?W^ejsH@~$rgO^weX|3n=q9C{zeA3?oO{*gOtwXX3a0`v+G7R!E*2NxE&1ZEp* zq8+;R<*a}4X3rT+o-Oc6-~b7Vii@L|fvA3CQN z`vq6f@COGMl339i=K0I9R{c{R|I?kb&d1rgCE2-omB2tbu;#l=)U-PhBY83%6&DuKO0GTbRFpi%IeJh7^n~2Tw06~o8AF*U4#Q~Uq7-j37=b6jNsXK zS@lPtie=qxswU*KS@Un$@?VyW0n`|Gee)aci>L@GCV^oPyFMI3O^a~R9g*H#-zq0E z`R1p9=jD!~SlxZ(2kYgA>!s%r+!2qVnW_W3`DmDy3n}gQK0nYupi)LL1q8hrib_iH z@Bt8@qwd4<_lsqlU!z#f%_ci1i&=|(7}GDt)Hd`QPnH@r?1P%a5Yq>uZ*)T?m8&*X zP1a@UXl+^7_~q{&wLAqJ_=tkDV2oUl+x60F$S%*e?Q6eoxW)!hB58nanT)2e8uMXaFj1zG7o zN=J_K_NqZe{UA#25eUDjL#cySnjuFLf2rbWvpC;LIVUq4I}pLHVE;A$J0E;W7ditV zNQV++f$E3_QS5>sT>BNCoI;X4W|`!m)PY1zx-_V5a_0(QOfr^F^fFAvN2PP9!np=D z*@GoAONK6f7=Q3f*cF;%QS^K6dj1QSRdlt zp-j-q%=aufj!VA6;2Tb8bFA|#&F1F&lyxulxoJ>lVr=$^+wox&I3afnxDf~*a>k>8 zp2Si(;HU*9X=pG-8J)nzsH!>Xl4b)tA0dp{LmaDZ@PscvI;#b2b-#$MjpnXO$zusy zMX-($FqTes-ZW-E%PfdX=%lx-R>va5p`fy#uGk={lT3rc>QXRZMup~Vd@veJXVmzC zTPg6gS;Di-uz(PM0gNEoAo`rt_l?bAff znmg@-c+jqBpU%EbDaHqdu6tjnY5A~+Z*F`0RhXZgukQb=!Z~^<m^`d3xB(@jSIGk-|k&xW@+WmZ%={$UK+4huYjeUN4^Yxx$ zQOQXBLsj$vW9TQ_dgMWGcU)-LP@?@V16uDkcqxhZjkl5|C)cMG2X|``nln1I42(Q? z>928c3Uo-qV#4hd#96|~9%4``>LG~Q5c%=oW9ujWSIU80 zu;6WIq=3fUHNrGVdwt25n`oSge$svZ-{EMaNJ7lmdJxeFu$qOF4(Z+H-f>NkLA^|5<+i23UTATXLE zrEDMAc^Eck3}#{CI62Atb$|fm`$3urct0QAXOK=PhYqL$<51wXcrI#`UD6r%igtQr zh+T$}B91C}<>Xwl^}Vi=;E2Jcf!2K(RHx!9yN1;;0w-Z@Y^YU1p~pv}mydqEOs5)< zRoF4OXAxbCi7e2y)Xe289ncn$pYRA%yb{MaAW2X`+DADlb@`(Bh~^@rjB~^(@qd-v zHuy96!pvQ9KX$8OfTb;sz84P{Zg`i|A7;Ht=+( z9cCopX7=mSA#G>2)eD6bC%*>JUnNe#=eY%J5W}wK5AqQ%*}Ity0LC_{M%;Tmba5{pz3Ll!t05vMVCK#hOR@Fzy3T zhqnN5*dRvmEk#<8A$fG+xmskJ4S1_;n>q7IFc^=*=nUh>i^4x)r&*?VmBIWOPeUTU z@2@Ui;JI$PF({-Hxbsdu4QZ+`JlI1=^rFo!^MCKq@sxYrP1_ml*SLJ8ikq}P!Dr*M z*6cWG7!PQ`x0c)4Sen}G5Sc`mf|#BCX5yjfnF~0kc(13jO%I)LxhngC2OB*K4TM}9 z(=YjLyMDOYPu$hz)#B-7HBqWZG<{)*t5gIEwes$_rW?28tL79)1Jblmr}7Oz4jSL3c$B;4h7P23f{?3Lg+hQLD~pEP3=&Fe09wUl@(xgAyR zC}lplh`C;34<{BqzBdzgcr0x~t?XEn6;zgg9=yr>A^!R$tZb7&@={4a#3d4%atZb3Gqy{aM4QJwA(uQscPb zvn9Yju+zE=+p#fqmO;u`JBISxL|NNQxxBq+s>bA7+A6EEIq5Yk7P}y7+@dY_oMT&F zoZ9kI_7&66*L*2zD@5Aer3>I7qC0%k1sZk9<2oRZ>cOuy?BtT-fF+H= z#mg+C{IPeE!T`R^5Wua#V>XQ@W<-F-)1(`=9CzACdD;H$s7ufLA^qEtc?JLH`3Vt$ zMrL}#rF!P8*$wB$yLm^KmiI@yB~0J5({E-z^?jsWc?#;`ccBX3q-_Dlp*slQp;N4z zv|41gQ2|;@YHDXW-Rf5Y^ zsYZtM*Q00I>rx;k$h~NEa$LnJ2On6X86)3Urh#~*JjfBbm-boJFj3?=WJBLHHBEoA8nQ5 zx#T1)@SAMbFp!bI4ET4L!?6>-+8jUFVo^d4vap)e%i`3dAA!?kKb(g z2TlxrUV}Y1Ix4)#t$oMw=-wvq+40l^Q~78jw>*qEuae=|@?HFK zH2T}hlwT&F$%06zcIFM5BzUOUC(>9UvmFi+y8+g-UK+g5g@TCfkCr!psXl*c=$t5{ zhRHd_5u;FqrQopz$% z*b=L9&*aK%E}0-0*`TNdNG{RQy<=Aqos&WYonVw>L+qAhgpOEz8Nh6}=3xBRxQ~z! zYi1N!K{0AbwTG~GKy^7txvrVRm{B?VDvq;}4{sCKzPew<-tyxvi`k>P#i%>+(O73_ z+}Z?RgC7n|{ti;fPX)#|GvJa6S{?rj66dQ3SXpRM)iz^aWuPY<0UY$jkJGQl`N+z5 zB^_tq-lbYhLh%N!&7gyuPU9 z=7<^%|5}HUmxYAQLo>+%1Nc=eLQuL40r`k7fzvR1zqOF3(z6yHwG7ihKx=?o!dixg zSZG~rrgZX0e;0ETiZ+_#mvWbyG^o_icr!iiA)}j!@Jo|EMp1D;@?rr;mM&|`OuCaUb4X7 z#E0-7DfrZ}?JnhKdEFo4-%@`-$7&#!RTcfGM6%`PO>2o7VE0w2sEOnIFBz&11N6L} zTPHoI>=mDPo5B1tSBF|R6U*G6s$>{;HlGR@sxeZaiQc-P2-;R3z||T&H(h#l=8F;D zhS$HD+a1Pe@p5x#9p(6Qd483~Uh;W+&UNAO_wuCJ$a=2KIu_UQKL}=-Uww2lE#sl5 z5Y!$6;vFG#C`IrH1w7ZRM;8aJVg?E^tEBk%u-a(sKP{#6kt*fJ-e2Ds^!;gM*zs56 zynHsx8h($v;Pa}`V!=3(aSB5U?KPn|e41Jbj$n3&sSd`JrzMTkvEyeDWwBWduRV4= z^zSzEc=su*Qyhw2GCja>5NJg4%xJs@IkD+2Q} zG&p}Yyu}E-9p$n+U#1hHUlSj)32T<+v%3WZypB!={#fIPi=9x!PNQen5LBmM_4kd^ z#ey3N#BMnn zU#|vcjVFAgao;d*sdyH|qc z+tUPyz2fxr2S??h&BIX5sct(Y1dGN)`k=(cc*Uly~t(M7R2IefEWaL8Q*8sK7+0>HGNw(kdH%=a=JovOFs`Z3aurfJAR3PI0s9fR4^P^p8-Ja z+c>G6@&Oa`IWsRG`f`dhgZB!uLs5jckE>0{m3GAd;N+lmP)sEFRG)7s{zd5})@Z3C z!uK&M2UG4Q-s}BAvt;b+buAhu&D4RcOoC0zg+CTN8zSa+qhBL9E|?;ur+{#V zx1;*Z2QaBXE^V8fhZi^RXE9P1IZ%ephWuxe<7ZOL#UtDQlX-Gqd?9Y8A!?#3Zq}vc z_|kiTCC9Ecjs`KNG-r8_6)ZSv+D@G&R$6z^Z#vgM$;=AK`6>~bu+u@1VmY4v_Kucg zf6#r?K!la-jFi6R0`C@DIHBcvrsQm3{Mb`7F*9u$9W`+Svu5eB@Zr;=yTadaZ*rV% zPR9y2&c8Zv=szQPAFeh2uP4of2teTeP9}+e3%05)P8c8=$iAa^k$HJo zq9Tv;gPSU?O&s=Op>oU1E&waE(rEEunDwZ94^h{5hIjeN{!VH_Fo$J>%;NPo*g8T- zzOB*TL%nY%9*^z0e_v?yLZI?gzO` zH>tem;LtFx5H|gd2@;zm*HDwcxS?^F;XLK}-fquKnsdByo~O3DE^Pq-oV|fO9a{wh z_op{KgS{R}y-U%%k5k`Fv~=IsXt5;j5C#gSt@qGNbuno}wKYvgiObYMLyCf{UaQAA zYtOo9#p>Ann4pI8E&6%`<0Iw0^jjQ<8U|USR70npKremP7SQtTmk)ydnPwgUGfp zS$q(SQPt{Q^$Sz*3_*&(I0PG^UVii@@RKc(DP~sSH^E!0H8KEw>@lmCKBCcQ#L!A;y3@OrtD!+>a%$wQcs>dnyD=47J^ z=2#!i_T#h_Xuzd}qnXZx$q{jeUXSmPaoW-Y3F);@X9Rb`eft;C5GZ_sX(=G3AqXU% zs;-b+a+eK-v9T>FA+Dbec4J+Bc*|4f9FM@w5Dd(4D{pb$)w#5E_&mAKjg-6gSEq+= zu_0-E0G<+K{+vGU-`ljH+St!sMY@tr>4aoABX-&lRbAlv91-tC(EbQGu!auU%k}io!u7KrlaaMAeq*NxH2|id7~DcT0VAr z^q_KkT*9Nc+(cIJRNO0ZC|{l;P4=CsQ4pjd8Icpo-f#u+wZDZ02wVgv5yL4u2&LS^ zuQtj$*LlijJtvO8V6kFZuOvElXN!nr5f4Qy`aVWV@&7ohH}VU6iqeW~Zhi=F*};-) zxZ6~@987EBTk;e?i=!09so~swgcs>&Z@jOJ;y=c0SySC)7SakmjLp9#ixvG5!_nvy z)RMQ4EVP07weZn9KXS2%X(R5V;sU$?+?2pYlHonyE|lL3A3@vKqIYbb2cw02og`Q6 zvi`-K_190W`e(KQ>&r&*!i-NFskg$ldor+>rr2e5>bVqZq+~VcIirLL%cBp>95-za z#Baf(9>erHNcym0%l8FeGz8b6wYq7XUG}S*&sA5b_OF7|Kda3Px;jSXeb=(x55gZK zg6dbHko68lZBhxJgMO}N>%cM^?|FF~R(4OSQDjd)$bNU;b_aVDVqM~iu~MUFi>%m9 zsgiNc=yIFu+fi7><9Yp@W8!9JAhKZ=MRAW(c6)6cud{}lTo0iq?6i4+-^5I?%d7L0 zr0jY<_tMU~o~lQi1%8nlcs$fafhl1dH+fa&_+wHditm*CI#E|-ayN($n z{bWIvz>Z!=P=7&s$LU$hkBT2K?Y{D507-*(77Y$_2z_D!08V{;R>tn|?2v~~ z4l}6N;7P0{8Flanj41P&JZuQ)m8=;vQgR-ZFx|@{ymupyPOMmK1^PKKJaWTB;%^4} zh#PHOoa_Z<;|+ca^)&Sn>zyBicJ=$i6q>CRVE3(;Y%#>;Hxzd|JZ;~l(lLMaPh;!6>OS}79z0al=UmxLH3Ipgzpk=0C z^X#PnwK?X@GP9f{&#?yU;mdSOfa6*A(c3fQahLDY4A%jvVdkWIX*CI~$JI zswS(`4>eCIue;zayX=YoeNhnP0=v&?fSR`u;*xD>hKTk)6f2Tq+xhdD01SyuP@3u@ z$6*)$Lj!FZSqxKBgfd5n&Y!iNI2tDJbF6bbS)%RboDGC4L*vH4F>w#+cnVMd$E7;@ zhIczt^_jriE;@~d0KAY$LJeSVi$V6su~2y*3#d2q=OO%OW9u^pnTv_!1Suos@B(g7 zgD^9{5l(RzVfjO%5~_Enw`Iz3}B z>QVs(AQR_6c7(Zv`r)7gjol($!OYYq9(r!M&Lw3=Egs=UgLtX`qZyZXk+pJ;q0%1;^3mS zK^S*;cXxMpcL^RWNN{&|5AN1D0fIXO2p-(Mad-FWyyyJiKUFhVbHxQ+T?KpXwU<2N zuzK0yciLU0J~FQ`Qa_IRQ7#*H0W#=lxux3G&yrQ^*L#<2D|rkyH{WksQXXwYEU}v%X;GX{jFv4o4TL(JH8kf-}qPVDwHDTr}^@Lfw=gRw;bpqA^!OC^kHBH1BAnS6T|IGyi@Qm2Q1j^4~-gm!P=9|)F&&OtJa z5nmBt=Xf~rYe~J`-hzEJuR*V5Z+{S!Tk5r7ILPg?aARKJlJ7nD=`^-hn}`HMfC%Hx z{;Eu%lh?2Os-}Sw964~`_#hFEN{r5Fy)dkk3V!-D0l^|ENdyn#qL;;gj!#KWlspuo z9=M15A>PObrM~w^KD4ZjCN==vohDY8|4ttiWptObblqY3KO!Pw233;X4gaap*#WH~ zjA-t>RUil=G23Cowvz+i29Dvq{P0MoSmq^lkGUYixBThBkr8MO(fh>DJVr0THt_wX zNAhlOw^~Sv6$zMjlU31pb!uM*a`|Gu86c z2rath|9m_P^lSAj5tjaEEkiG)s~o7KFKDRH1q?h<9Bgk8|7jmx@qkU<$mTD~&K*h~{sC1f>N>uvCxqiOjuw%}3fWIVk@bH5#wb zPSpFTf0uvCm{RMYTmfrJFdHlF+ z0_{}4#c{PFM-1odW8~cjSVN>y2Hzp+VGFXd7>s?ItBD^AF5t&vl7nSER@NQE;qNg;B|=={CR;Ndlt9^3bKA z{T*UFXHP{~gLrpgS`mVIuGY-7Z~K$B&tlE_aGdFNh84@I>yh1P(g1i*bDsa_cAbh` zrw9#&_IVH;#>|HIX%E#iFe^vR`MkUJbB_67zIh1~gsSnU+S4|_?DehOeK2hO?S1-t zwxauVcP?_+&WW>-;+`~;f`=G2M#Ol518gugDju^YgzS1m0z?*(Nis3h3qYBk;`53O zN80rBH0^X~mpQGP_mRqZOS%&3Xk~$S7-0FibArDDAQ0>?h#8idpfG7~Koj^XXhZ{JLjZADl2@E_~ z&QkS%6R(d#rw3Qi4BUt1G*k1v;IC-R6{*`yL~Rda>7zI<$U@5seln>LXe#zbU!E7r zp5C~f8Qs&X|5g9W{QvWf4dyGrLGv~PYb60ok?IOrW2sYvuu=)4g#?`w+Z)mUxwdsH z#On#MMJrrtP}t_zYi7|9q3>Y%g33o_!pYwOMK7#De64F(gou zvs@dFEgSwGd)jLC?ZKq{y^D`*?cMqV%5V^CjnL7B+KSc;mE&-or{5VpN7 z2+JL3i%n&%4x0@_t$YrN?o695Yt@9JEap|A@tLXJ{<^c{UddXO6m;M*JjwJ@ZWwsTpQ=g9N6cMN-K$<#mZS)7MI8S74)i_lRkJ^%D@GmDb>O@Y`S zBjyqmSxe)F8Ru@O@*C-fRKvHVe-RQ!7lngjMtaG6eH#BV zfAPN>BjzOc$L!BfDcxk;Q5<93|KtJx&H7)K>!S{)f4cN&| zqCM!Vn)m6?0ulCT*c)>Hwx(&ij!ws}4BFDe9g%q4rn*m7TxFdAY9*m78i`r7>YB?b zk$U*br6I4I9gvT5MK>WYDGBGAx+e9W(biQ}NlI{bigt}8S~Mn*WwpF(w)pPh&gve#+X%n;v-;~fZ6ax^Z>c-qt-@DoTF0IfrN=tgIr`{zH% z>m^hFP6Mv~tXc$s9PNtBtP?a2%jPFyc-o{-4bAS2ucZ-VHoxt7QcxA16XDzA`8Tw) z$(16iS^F=*I5v+OnY$%2KWypaeKd^&$tZ~&_u;Lm2NKs1Jh8$DZLJuQH`QrcK^HjO zCZfY4VrZ|Hc}mGbGq@>!D)fC-UU`6;8I{x+-O4R|jqh#_(oyVvfqtTX|=3f)R|# zi%B{{h2r0(xS%>>KKWbKA`4{Pt3${HXgJX*2P%T>BYt1OhOf8JIzx5npM6@$Vx7T2 zt3#ZVdY%N#z4cukJww@!OiLHDs18#gjR}ec?n#eM#`2u;nEsVY`!PzYwYQxqLUJen zqX43RrXaQ7yl>YJBOlVc=btf!>;KfgRxklj>C*yzc;ww7ZM1b289>L#iJL!o8C5Rx z3>9{k^q5^o zge|_KL!qRwKZ0P+#_2zJKaUhW4PLxCtSNUXK3@D&DRpLSim9kR{&e zWj*tLZZPh2eIReR;bR+@jM5VbzEBn?!c?g=p~O>u(kpZWcq~u$!wDaHDx}B9Q4~JR zSKumbj$e7VGBbsjWSmO5%j^JU>c1O%YCc8%F|-67km7c!!y@OiMfAThDSyH7cT%F5 zfLx5HKg6wBF_v9z zP-hh6Mj-I=d4kv_L85T4ZEm>wJ+(-a>)95Hl$CH1xOF7D?>GJ1uG(Hc*jGBrQc40uh100YSV z4Enh_1qAM41B2)SKD{Cv)=G<3Ie+8$_|@$s>-_cSqHKI8$|RIHg#KYIyH^!bzAc~? z#%BMyF2Yf7l#Mk`;?tg7k~%&EGbY_Ot_J~-Gjvot+bKi14w%unh46Q;4HMM@dUN^l zE9i>BR!uiVCXNA%raP;YK@X^Eu>(kKB_}c*1^$%;R+dJ8qE2-)HkR>5_tYN{myZCb zp1sQ(yNd^*M7W;p=3nXDL~>#diCMHgR!+|>knAaEdT@ONUrLdT*;k8##0cNe!51Wo z8uf{?rHFW6`L^BU7dp&6mn^%#_`f_?&0(LaW_(v!2f>7x;|S0a;CLu@>Xg4;g?}Wq zOmKlbCUlCqG0(n6Ti}Fk@Grd{;~}$5n{JoOqi8q*9mmRrwf@s&7W#@B{mxX1Ws?Z2 z%hnN9(FE9JnKC2ksb%&J73D1vWr(*OmZE3{1B0Cr)_lm6T>{VeV~;*2y^_StR*-qlaf(Ob}hn!aC&x_J;!Wn zftqmESgTc1n;aZ=3VuXC#WN4GF`cR|Zo<}@I9(C$(fUt_-Qa62`D3ZC1ULV}^1Md^xcw9%MBkiO5q{v*Bi84WUo$IQ-gEv>;Clv4G$F z?++uwh!B)*)&wDi5U!5;AYo*aNWoUDa;bN92{ZAX|EyZti|FQeR64bEEE`!uWuY5| zKsCu+R&sgK-ILgcww5h>X4qK9K67VplVeigzgydkc{ecX2GEKsuF4J?6Ha4o^Gn(2bHC$fRh+UdZrty+fUPo_N+|9^}q%5hI35;-R zr|-pan{CfU&JnA0nA64xDFtIkgw^*O>O@b!nx`cqh>{RB>gE1O;L4dW>$|r<1WHZM zK*FHpUPw5?;Z7?fN0l@=cnws_R&$s{SoTDX)WitAbG*!-4=X>hV-6!&oDhfn86bn0 z`IS}3+J6o1OL3GYCgU}0Nh$0xYlG>T*Sqp31tsB5U<5CcCpQX+2AvSl<&^%P8Yn9K z>gZ@5)xt^zBF6O73<|$grxXnwz4uK=aV<16tQp)>Xe^-8;o?lEXbUQw7_&&2){E_# z5@FpJPoFk?^6Y4%>=WHZOphBR5c>rE4|N{AeG4&UGjf)Vrf|nB2a&{hyyTAkfZ4c_;uF%EoIgpzT`zN&)CZ;S2T&-B1 zdsG1VTDokhC(6pc<+oMAg#bp6T9v;xBvO=v91+83p`kp6S>hvOdjL)d-Yo{lkl$#~ z{h1^SPmvdfMItj-&PYV(Ajnc}>F+1F$s9o#ogpHFGLcmQE(d90`7@G6dJkiRE}EKR z7$jx?$=_HQi%&m!Be3IzaU>!h0FcFx0EfBiZ0 zQpOvfNc&M(ho^`#p-PAFt|4Lz@h6_oD9H9!16EO=y1X0=RGG* zg;r-n#CCGhu)7g@PU4hd!}HOzY?mAj(_6kK%+|iMXTFwrtf`{n&M#>vlLq(g4)cXP zohS|<+3S?>)9cRpE2m>T|JN!peUSHcE@m$~eVzGlgeA7Vpb+d$?{oAf=JR!8xT~(( ziNN#Pl~WCp#odD#v@-wSJv{6KoOXxLv$$$aH=YBrJY{vtd_s2h;;#}xkN%BVMN_EivkMTJup<}{MzlKp4&qPHymdU4zZ z=rQaE*0Mj@G=0EJ-_nEIhceND3+sr!*tx0~DjWjl+Zm8SaA4HZQCZ6yol~Kd7@V!D z?yr=RLJp*kttssG+A{s|-UREB)3TOM!^Cj$Ta`#G2%);EeX^C035&jtEV;fHdbV}T zX0!*R1>;{uV}x-R6URvJ?u!SYv!#+d=`xQcOt=)}_JiCtHycO(S{1FZ4!Bh7e$zQ? zyDG8IZ8RH3aWyqer%u%3TmM=BXM_fqOHM636y3^bz^S-(uwFUd{i)*qG8r97%0bd( zvE_GL(lUYc3>2_F3)XA>XD`PJc69qIG7R(R&bk+N7ZG)r_AZ32OBv0j=1$ybO_nJ5 zceF?Ca=n?_Q*0=D+jc;hn@8vdTZ(Ae2&GIu+v%|kPYZxM?V`& z(=-R^uD0}alh`BqMEwk|hThNpak4az@pl#niQgSe-THs@SMxF=C!XHK6xgeFS~JuX z&WtVsmU<2HyF9)-cwDE%@{Ti)c&YqcOMX6VuXncLog_4|#1aC@l9aD{U}4yu93dx) z_DH!FTYe>CDXRA!wy(<5O|RK_jL}V;}5T!#K~|} z={&&1+YtUnvMaB0ecL-3Z(J*q=6t_`J$Kr@;<*l)g7b6Z{^6aj1hhb{C#Uv3?%0S= z4T?x7talPjFfQn3xPOR!{Nfne0wclt2OAdEtKlK zcc;bfwCg@na+gzw_JA&V%3koxT~pbTLS;tPqu@V2^9U(J#*;5o3%F6*FnxD zMufP9wK)W#@!Nvy!P7_0 zGr&qVFPo+wXWj$c#XLOhPHzjr2~3Tp_w-o#r3_oQd<2lC43;<9Mp*}yc0+)z`kTe$@sslwg zb(r5?iEHATZb1iW^1YBytBdx~9HXj$3{><-hg|V1{xqxem4z6isp2RlvzOd-NK*fP zBuFs<$5F`JcOv?=T16CDSP#eJEO@7_wy7B9vQ(<|Te#Px*+1ppH+FGtA8#h-{GuSn zkJ$)ZDs&&C%=SGjJVDsuU$o&4ShPGsvy*sO?T7LZ1X^EL9nH*uT<>zSOlJ}Mmpy1iffgTM&Kh7ujJ*-s_*7QQ{=M6YQj+Zwn;$LKs^2qb;Qks|7&2cP`%`yKi-%dgJ61~mx`~h)P_C5#2T5_SiG5x}@ zd*4v=6RP4vk|+=uH_7RgGk#-aT=WXD+klan=2f#Cu+vZ3DHp-~)`OH1`1S6b7CVW6 zH3lWRRbiHYAjP}d{xQ zTTlAsxoqaD_TE_I`Bn1mBdw|_;_*EbLY0>OY1|WpynpkAr2WIE86onQrHI=5`{~nZ zcZB=QbHJFHYTArqk!LJVd*yv2mke*|jDP5;E1*x&=&bYjB^j1jm)Sy2Y@7=dGNEjI z>XCZ=O9|7B7NG^oD)Shyio>hgJpexZ7FjzB;{tok`Ogr#>%hqPpAfeAMb=dyiMh*C z<~lZvry*?3Z5(TEXPuX1Bw$uS#@oy@sXn_1_SjQV?it2X|BD^@N&h<>g{aEZs zN}`TsFAD#=07a_+*RA$gJa7EFwR6;JOUZ#??%;oD19OQB>dI-wlaPYzB>6qD(l8d! z)TES*SQzF)msxyd6oF~k9WL-g_7NU4*;vLxa&Wg)D-op+YYBS?Amwf@)6NwFE)d$& z&?A`?jNza7>3>>DYDn;wUrXSQqU@h-(E1u+mx>u169my|v@5*&#~+YYm52@li*+hd;Z%x(>bu!1mQl z7%x2zmFTi`Lx8-wA+1RX; zEwFtNH53hu#Nj841GH87F+1DaP*C}qZ!ifGv!l}=2DEA;0{{6hNx8jTI+t}EPum#g z-PJ=!MYH`g!ehXWzCC=)n}o#|+Kn&jGgiL}i;!Sd|B}`;<3D2X;xen_?39Hl0IK_s zTF?_OZ1X%NwjmV666fN`x|&U&u&E2*7X}>|Hkg{7)5kz8H=j!69(L(l4{TW-l=T+i zMU{sjet@H|`;)PRTc2U`rXm1P{HTV%4u}JdcFSRSrSG(GI)`zgiP#tjU>T2$i>_wJ zS&2|c-58#R{o9Y!!VF;(dOo4#9ClD?0retnMKH$YGY z3mT|GyTupIiOU|Io$g&@28u#m6hn4M#!9_-yS!=i;h_ps=HUS=LR)Isa02FCfhK3> z`wp2MoX-OY{!n|v;UY{aA&OToZqykJfq|lcLI~J8-=|-}WLnGq! zQONaexx!wwaz>av`I`(#3zQhh$m$6qw`3N|aaV1`Ih7`jK|;Je}AX zcV=9{DKtaG6Qn=yFC&L*lEA29Vt0m!{SFJe8=Q|eWKS#7c8RRp6Anv)$xlbxj0$;9 zfW6AeK11yv>Ycwecl46&Pz2xV1)>&$TW#WYJ86lUNoA_GkWu5;_`2j>yrVZ*P_l@b zyLYu~D22@zO&Mv$oTV*-{)Ws8vu_IWBt-O3kM`YqNWd^ZpbqSQ15XKulBr3U{D5bS zJO@LAg8SW!yf$nzp-8Gbg(9zZ(S4;(0Z=2Be>ozXfkpV3P<<}Ef#k`GT2y@SxLZ`Yn&Of4+R!_%od14{ zkZ|&XC58w_ctBpWH5lG}R8@j&n`w{7?0~H?*P+9i9ZFh<8@^w*yEoe9KHn9_d8NBp zgF|J)5d2btz6Q+P7~9Q-bSxr6P7oAHSUwk84H#Mh2|cQqgO+K&V2MNsLM2x{;!}Oj zPte2bm)29Ay^fmO>v*B9t3Uu-Tcwf%0cI`VBHjisfgx|Y7k&ID`)W`PuSE6BrPI?p z^o~kXmPt82uLFZV9^g@TwxWSCg;9C^SI1CgTG9o$*Qu{j`p zj7`zTtrV)sMCp2cV<-)EwbsB1o;B6BM7B!QLzG@1ut(+)Fymc$Pj)d61uNyOiPcF4 zUgNIH_C$>fwOQ3^Mh$rvNxIA~{)ouR@ql{w^or5GHUDL5OP4X6CKF z?i?#G3l^B5ct_#)D!IAwhm_&1JSFT`(gkaV--*y&Vtcp_7}E=%z}09~BcOi580gLo zvd0IN)m6P=0A3<;&?G$RR-|SvscGx*|K80J-NWpoxGAj;O5kZRs_*7d74EBOT~KAd z&4j7EtMzy~*T$vO%3KK*IXhK-{@W)0Z+Y4d&XDC=Clvp}s*IDZG-K9$((@hisdUPVGCd9Bt`DDE$GL%FZT(5ZnHFoF?$R^ba z;W9pCr}Lj@si+gM8$WvT?$V`ozS0ix?T#30K2ag~%zPD%Ai5dO2Xau)9WJOSz4VDc zyacn}L*eqNnEJ>OV5^c@+Leyd1S@7WK@ab&)xC%CLJtx<)*~2s)S95#cF-)+eruad ztg<;yarY*`g}(QxdIaD5vkxWOm-?zDZ;=&phA6v2tiXY7DPU1YA3R>kHm6!PerE_m z4SxSk7%ovDO#2lg4Dl0eKn#az0$;2j-;V3@GBT8L6j4X0ipk2er&l_GH~3wOAY0W#Nm!E zeb0YH%<~XzvS3w)N=!Khj#>zO9zAtpTGa>k7;BY@N{|6XEL`LGh%kvzr^tzMp*k$H zz$j)D3$H|O*7qLW{iu&k++bzZLcR+98ypgVu`*VG9Nc!N(0?SQb9;HEc>7hFc2%Cb z8+Pe|y9SRs<9w(bhdS+0)#V*-`Le$;hHUu4M3|udM_TpM`ArtrLG-sv462cgXsnY% zUM!Tf$~tA2D>u;etLZgsV)zf%D}ARZorEYI31i-SV;-RkS2V#?0$mxtvycrMc@F~E z?;+Ux)D}A1Q75Nb_aDu{FG4)X*sD}GKH!GGkCNn!UXRw(qDjPa(tKGirkMGCKJr}@ zTRvyoN`$@r&2c(XQ7LxJF#VE}93-bxLFl&y@H&VwHwi>v9WQmFrW_1!int%!k;2e9 zu_5!T{I=cYGKurQ#`rW%UvT)XyJLrr5*}FYHrWSVAMgPL5d|)76{DFw)heaAhi;*{oK@C@TIt0DI8E@d;+KBC8*W@y4WFJdEW z|2gwaa}43wC2UIR50Qm7`h;gQ?wyMf=-)>LA|SAJ(8V{>xt>S(Vq^=Y`sl`Q($WM@ z{&;0aJ~+fNYeu)I+j2)GELgC_$+-N>vf}pU^LIP;q^YqA()*-INcqKkqR;iD>GtHV z@ubQ1#Eq{!IY1@F!#E|tnh2JG}xHbW8FY@@n^hlQCg2r{QcnZ@3VJ|ptW+2 z0cQHO&%$vAIjnLuDvk_sM=>8*JWMbv!{d1AdplG)QDFU;Nzszlw&ioQPanTb7%Y64 zh}@M_>ER%;NH68?(2OEA?}b*E_Y$WCuJfy`7r2*r$t%BFa46aJQ=dK#pPI2kVfDg) zW=3gX!>WFv*N_-h8HJS^5ClVF!EjHFt*xXqwd*xmGGeNsZy}&$2}+l@|GVdfuCk2U z!Uk7HjKFp4k&}wuI4jIax=RpbIl0gV*|D0%H1|_`LC9tZyB2nueYp~2PM>5$7cH&+ zI0Zl09^u|~BMRezCpvPRpH>1pCf=WGKs>Bl*&)Uw?P6zk+btR_5(Jp3W?d{Ktjzdv zL{_VvQ6NMj{#C!CnVtv5TC;fPmlql3{*}hrEoemw+Ld9s-kxnG4d*K?@EVQ|1|=4R zIV8jHc20A6LfUPxg`T+{o5to^yVIN??Pw1(8zR=N9TCG?F>-?V_sOK2e`r?j%I#VX5JJE&r78H?F+otS zmrl=nR7ghPCjTO)w_Xfz3wmhwRR;iNvIAs?!3Gs{dYTT0POJJkzPFkd&(g_`N|G_lOFB zXypk#F_=ALlw<)hfS$2|fHBFQDoK$s%KVst{1Z%)laze+6-5tR*7Z_X^}K7X+>b%1 zWAr`ipqGlsown+ipIZ;JzkaU%j%zK-ay+=0oz%*8(j~svAi7Bq*em7RDK9#HlL)z) z(W@({ywN?nXFP!(-km;Z@TyMm+Ggg1LT;nm*820X9=0nDTPM`!Ro?LSE|&<&Z;hsg zC-v6P5JfRHAP99?%(R87Z}(>Q^{EQX{OA#itEwCbGeGAs6C&6vWPh|E{Jo{{;FD6R zXXD>W6zP-cf8acN!M6B2o)TiJ*f1Ys4q#h6$W8YmCR3w*HdU(#VMo6A|dn*GYVoN~6bo6hA!}T%AlkNv=0s((}ek zo7_xpo7X!AO!&s`ge$&Rs4cS|qh^1lQT%RM;C22c{DSN*X$g@PgheDL*1N2MhGleC z$Mr;ihc>Gn4r)~e8uc%+HP2i@AuN8gDKkVfa>aM-yXD}j=rTPLklXZYbb0JSq|?xpGbLp`bXJ_ z$C!%81c=8tY^$92=M5ry;!JF5a|K#mucsETti>Fjaj~ohdTxLCg436}+N2%MM1e{? z>IiSa7>JhBgR^$RUv*4$jUr5~^n8uBllg0no+k$-Sj@|Syw*m(uLj$1c`$SXiN&9> z@Lc_qJM>wR=XFM4yk@8I{L#1&J5yeaiLllQl?kV=4hvo91o?&E+W6)Focr=Ka?IRO z=V1`_UNKvO9!4K9SG10cER1QkFi;|*VX+Q@d~@jb^X%;anJco^z1jXh@{o$<#iN** zYCXW|kEN0pX_}Yu&dgY&MS2^1wPav<@tHg3(%E95tfo8p&MOX$fs@Ia{&m?9i7%~DlQR-qOAn2H^_dqE;c-w@8 z&$UbxI|3KM81308l)q6@O0y9qA#=DizrPiKbWoh22DIsv$q?<7&RWNo@ht5#GQXQW z>YkBlM1em_E#}sSMD=b0w~uVQq%l69ubIV~QpbD8l3`7oku-M$a5Z&;Fi11)mz~{J zKN|~m?eM8cPbMr^_DA6dd)R4sk+UbAw2S1CJ0SEg(QEEO)aITIw?1*1!X^~6bLvYK z5xJOdc3r@&&Z%(uzlZTgyhe*~eZB)sduFEuL%RRoAF;L6w=$7=-N#-%#$&K=jhuF@ zUqv^}YEjC9Tk0Ec?U+r>U;CK94*FRec<_h(nzDzZW4UEf>!d`K0b|#vSH%}}$c(P1 zl&;?^v_gOK8?O&Ug0AWq9rb<*yXE|K3azGjQbMZc*wA<~KHFr>U=ZNTYsmZKG{b=(Q_hlq%O@jG zS_Y8r&d_%%)7(*LvC0tJ=8!T<$CTkHV9NSPfrN0}UOC6H)58E7EvZy*e9BxL(R zN_5H|e%7Iyz{rMcomEz-)GmG!!tq_g7As|h$19o zjgr=i*`R-@Htyhr61Srgh4PRUqPow{4*;LW6ymd_*w#{ZLx^#2D0& z0hQ~S82xe$LyBK(_GBRGvHt;Yt)=Q+qIR4hsf9QwnuNut zvT$KS*o2-pA-CYeaP{RkQeKKz4i%r*Bsj7h?NM6FDo7va=w7Z2_1ZyFG*il$=fCmU%#yv;L` zpm{el(y|-#m2|ZT{4PcpcP<7Se9k6>eg1~-0_a^)A@ z`Q{L0EAIspe9Y1_2$iMvqG#J3Nuc4uu_40H?Wr`AJHNBQ4e1GOb`U)v!!*&t8+kD( zh5I5&!PONx3oMcfovBqAKxzg-nE5a{XJ2jI`c7+Y-yZFayneA=&EEolo=kHpkCf)y zAdOX`j)A1GMr%;B1j;E22Ap3;FJ%cJ8gs-#TnOmPLye^CMZZ4uTo5aZEA zsi6qE@Y=G^0E~Cgo7H+ea(_P3YAGT=0Mq5h68IzX!=Tp7Cc$wza68~U5?(?~9_Y*^ zS#){4_cRQO2W@b71zK?C-ugT4!38R}4~d4l9Q}xz{}RX7r>_5hZ46iS+y5Mji#ku- zVkART)J8T<3vH$W2CJ#I`_W~zvE>6jSVwHHP@U&nTe~Hvu*Xm#5SU$0g?G-cJC(QaX++V1}=%$S-S9;DIZS2OpV>&P~+Y5`z z_;`=9V66SRBJX{$Fx=ju%WLfi7IAdQ60U<5FKHyW;?;4rwtyV{OA@0!!n{jd%`^NO zPfbFnL$T&b$s$+HbT2zDF9$BK;q;f`gDDXUt$R3bi2A6oR?OS+4?*8cyEyuXNV% zTe&Y@C6`Q1B9GLxS6q{r!~R{sc32B8jnI0E0-- z3^_doIoi3Ku5g>KXm77LQgWI^k_0w5S^cPck+M*D2+dA_FDD2t2(i#W?5#k6a4`A{ ziUfDCNF{*~fo8R5tY8Ju-14YPzy8oqHGpaEI&X_r3 zdRZX|z*ywA3V}^OT>g$+C#ff3iTd3>DFc*$D^`S&!FBx};5ViK)+xcWgY`Hfw?~VY z)sI}cO#}QSK8wljnIiY$vKyL<3N2Bbvf@Cqu%NmD3t0isIP8HBC_G?d&NuRfbu0JX zTGi$Hh7XX~@kiPe>RPRMA9+e1!bhj6kFsT%S0u2n`DDOfA~JND+V>k~w2LZxd z$yG~6H4S{?`v_xUnvW;fik*vk_O}XThqjok3xOzl!fq}a)zUs?Qx^kAr#0&<9UEcH zX2dC>b$%5A@6o^VI)eC}D}L^=O*nY8H$Kf8=N zY@B7L5Nb|owV>+d4rG$WKE1cW(1JP+Pz`6%k9I=DU#{iJ7m16be1^Ot?+_rLILN?Q zn*vVr|8jV*8|c%T)Zn<&JjV~77>TR&H86DLK>eBdbd#61KnsX!@))7ofU*Vmp+O(X zv}@Vx&zqzQXE41&ev3Ze%ew+QzAhN6HfW9wJL*3YRDumtb7B89@I)hS(~>H%QC=vv zlNH@U6!R}6mwi9|`_fOzomauq`lRjMq?2_I%fxfWS*kRa=(=M;8_b&f7{*-J8<44= zZzwUmb#*Ax5~}b@jRCHakU{CA#_Lt`furC#DP}i0oi?Ay!?_#-H450{u);1+#QIWn}YSxOttq4eZcX`gqZx%w_?pl zsB&cMocimmBdz^@93}0U+AtR&l5R+bnt&*S8R(mcnG57J`*eeVA!dH}kGukRSsV0@7_lu>Nb zVv_EKZvY7Tj{B0XhCvm0_31C-M+gY|^n8*JvRLdFxOJlMTUb|j2ZsLjEabV4&|Q=iT^vsoqolUe4FV2(m%n~Qd#3Y7D(qq) z95Nyramln=r$ja^Ynx}Ph;>%RZa7zqXK+R( zz`*e%)>r`ZgUK8aQV^+%xjHCb?Ob9xUg$stUU#fSq92!l?Z!?lqz6toZ+zO?C|nm1 z0{?WI(8c5|fj+lx(Oc5iZBByMn^B^Jm4eTw@=iqIJtV#(?Ym=1txz@UI6dm9KW47x zxkUjjZm~*vW}vZ15pHkP$Y7>G#G6{rV?Tll`m|F>SEHuI1An=LG>e>nVMhfBa%|iiYCK zH*^0b0m7tZcShEpka!@)^{>wkX@0EWhnX~B&g#G24N z-Cr1ENe%kgG=r(t;GWAUZMW$k=9nXZ^0z>JmpDTH5j z(U}uqK&**mqe59o?%Yi)!z(5epaAHd{blFx?6$WbH@)slzTz0-x~cI}mp@zCcBaJ> z&g9zAOP6A}oq^SkS3neaCO0VWIR;Jxogwt8Rwk#hViD>0w&!wkWGFz`l-o}%> zm7VI6I5*56Uxn>lytdC2pi$3#&NxJL#x_qdwYklFEOp!5rUr5*MO;(^8= ztLu_LeS}7s%uGAqj^?N*M52jaZ-&gNwsHJ7YvlMphr5Cm`?P>L-PDvqbZ60y)}Zs! zO=-9$?JPm|0*n1<%$0Ce42e(bbihVMosSPL3~jeGs+k!;8OqczM6^-nYq~2~w=LSl zqk8;}7Cim~PtjQ9p>DGTBtrW8nWSixfUt|~hA}LmSd5RVhbW9Qr9OLm*f;KU$Gs7N zY#d{j@dY%zj`YX{C^--+J0OJS=tsUex^3sKTfO>*e-kGlPtHR7UcPUy^1P_LS~~O6 zZW{`_8pNZ~zbY@;xoc|~+S-4FZ|NpGHw*LlCGUIgjAZG(n(c;Jb3o;gyEecQ(;{y8 zVty=Tb9h3x1vf(ayVYEqoUkg!G>C4PsDD|$_{ta;pdL}!94^?;VuUp5kCUoNoN9m_ zH||0x*>Eb^upj>I{V0WA@r_go?*%G#!t<=_pA!R7A8G8vvC?@W`hcTF=c%&%6`mnN$@sF@Vh1LZensI7uKEo2- z#jL;V^Sc+dgF62c-FzQ*(dV)COhCqkR>E(|MAlLzu>m^1=YG(k`Pl%+qa11J(hERb zW$HrGE(fo-4pWKWTbS>Eau8KSw?QQfsCfF1r7*ArQ?*q1jnk+zOT(i~@IxrTUk+as z(|Gdz5HlAkD6p5dkoheU-Wq>yDo~il^_iq$+$}31a1W(0fsI$n80#Qn#6@65^)3j~ zy7WfCn!k1r4Qg5;$9L!k;leXv*&a`JlQA)}Dug7q+MOId?rFDbMk`PLef+ncjV%CY z-fJ(d9E`*%n&s&ySuQe4yy${blQ93-@jyHXW%C4e)v+9Hk><;A=6)@W3CAjz3n!eN z_N9{u8Q1tcmN^r^a0e3TmHoZ}KqgU08HNcxl}V9J?IRww1jxoYs8kuxd<&#Z5~t9I z>f@2=aBR+BbBKzfH!fWCWpsvass_pVmJwor5Jqh=dY6FT($gcdq2@$Uo1FTmkQh0l zj}n7LB-^3k%f!o`t29rGr&DvhCMLx*&y2{%3Ix(Mo`aOLDWps z_WU74qn{c>XauL7WG}S5ZJiDJe|B8`^+Ds$kk`0}4gbW&Qdk+E`l2o8;ST5U`Gq(c znVDw-YM9Eh7XtqMrSRwKRc^-uzqaB-_M15ecVz9IbJ#%QYzQ5gRDM7mNPFRlAV`6R zq3B8@M}KHx zcFzQ`o9AHol#3no$#dzq=B)9|FO?K&^iP^r|iL5IiCz)Z?LZ;Kvs7-cgU7LsyL zAgWg!3`XaY3DDWZQH%Yk{Gx;kCT>x*GE>49brv1SjxUEHDfWT}w`+z*$VxQX$#DXr zx#WBcVF#k7N`z!(<%Z>g^NpU6*!lw})Lrm))%y&^#7oepr5B0of6$#XmW$_rLw!fE z1X};t=isL-F65O8qckKprNqbyijRYL<}(P>TxH56V=)aW^iqzxc85SWH>!68%(Lu9lbFejAAKSHKA`v~-!#)%}@9mU#HJlS!JXmQ#Uf6g`= zyEZ8<1>pwde~(MNioJwPZ$>=)S|;6Plw}r2?LA{&F@@9IyozDHj$QP%Msh#^9Lhju zPpT0ZEez=~0KPYEiqZ#q%S%q;+2D@wxtUSaKU`1fGA7tDBgC-WsN)-^;cY5wb7iA5~dr`D$)_$WhNi@eQ-;I z#5XjQaZAQ!4YNdQ(kv>GOJJHata!r?=4&QvkVT)(CR^Uxoy%_vxOY)8f%Z_$k>!q* zpyq1{yeg@G4Stsfj^P+CcMy&Zw*k|o`Oeh-JFXIB=E>;4(DVM^(9`lw`oEa^2FALU zaP1fk8{2l$SdDEqPGj4)Z5xek+qP{scJ5Bkhx-rK-fPy(I}cF;#d(7b=t<#X1`}}d zj(uRXw=d$hb2L`E8>H>n4Z{7zhI(|Kq9x7F5z}slP0E4pDdciu><0_;n<2S^0x+7b zv%r4GM5D5khr;?2LUYBQBMl)3liU!!30ESZFuutaOI_>0N4-&^V76%Q|0zCHjG=zA zBcf}~C!wi;F$|^z_EaIunSm1=qrz9g2p!T`5g}>wH)IdEHFBvIEgkZ#EHHJ zX=l3)Uf?6M4F{dS&8gNb)DtJZEMdch2_$hW6{rF=H>i>;Dg{8$jk1<=F`W4KtHoXU zZKjg~7I$_KA|nGYF_3FvE*l*qZ9p2a>e<}*Y8Vm8zp;`7OPfn{L3V>D0IS~gF6>td z-Khu&103KOUf9!^4He1eoVRw)nlm7gi<0@GpcCKnMH6NK!V*<%2j(g-@Uj;W$v z*I)@0xO`a}gP3A6^IXXfhQAN9w>%nQ=;R4cWs#dy@#%++WxW6v*hYD`(O3IhhjGHD zzW{$KE0KrTlx31(yU%07SqLVjmscC<~_oOCha#^Okf?{VSE$3t}=Y&m~WA10amG{OEZ9>*X zT>?Go+Q!}F^b7zG%hQxs7Gl+`lMA-&qentHO0ZGnM))Rx=OK@JK>$f<^aw9>qsY*l zgf^2da?V3)K!h!Ug|r)>4wGL;Sobx@e=7%U+Kg{6H-f72M%XPLnFO0&J+?$hJwD=> znEsH7=bDZAP{0O13#oRI6u5l#&Z!3Uk{IzoXt;%tfle%*2t*o{v<;9dvr2>_0Y3@1 zD2`K4&l)Kp3)#{H`y9J&4XP##hnyn@F)-j*LR(5f21uECdWZrtGThm87Xt+KM;Z)R z%AK$%2VMr@3MV1di7|aN0Wch@Kw1jjdePt9VG|2DHT7`mx9O`t=J;i1xL6rJy@+)b zJ5#FQn$i*CdZRHgD2s>VP-W4~KMrb5I}szkxy`2W1;%a_9~4JQ^>Ov_o5gT75=H_Y z1SfECFyc{qNzf|FXlZ|*BZf$m(G4nLL zqDfS9fk9g%1S@skk}-bK$41@JX~+d#^#{AGT4GW)P3lJ_vu)I{+6g`n-3vp5m?lwb zSGcMu)eQ_!PPc)!vj>Re>^(#hD%hB%$E}_>R=ce4v+Nbgr7lHC3JgyaciPyFS>Iai zbCBR1n#-iEW<-{x2R>e5%OY7?1fy6(yKM&7nxU~VOK@FNR7xW#GXS17Dv2DR1Rs$f z)4zb286ww^UZ`QISy8OQ+C4b$#w}albsO40v9Y#>t(=giIh2(EGw6Oe3~waA@hRvO zGo;}{K(<#KRWaw?y#3=-T@Tmf!sE&{H5>e0PLxk)Pml*7%^&1WE8qm^Dx=x2IYS#LWS@(HZr#?#O|MO-UCvN#qto*8yN;@xU&IzD{j~R`0Aa>KyO&$qt$aeN3pjuc$!liRb6TJ9=`tj9R1DQHQEDC~L`$r_L2rZEJhq zw+i1hBCQixy7&Q`(?}?F6%;ptWL$m6Ki$x@R0c;R`F|Bucuap$z!X44p5%y1`7MHu zc&6cK3QGLCYveWeY;ye-(@L8ZuPV8DuV(v6-vj?B(;Emtl6YG)G$*l6tTk(ClQUQe z5)hMJ=Bgm;W504Jyab_;?q2sA^rzrA=K9gVDZ)GENqOS|Tzi@$Yil03aRkjbaFx&aG=v4J zSI>KjtsN?S3%|K;Q%6}fG_y~z_p~BoXJeq}W8V33+MU!}X#2AAtz*b7(;NlM^Fi*+ z)>^O?WL4SpS_SJ!IgWM;h6|ziZE^a zm+hgJjT0@>^vXh6t%FxVZU?Bp4qBYf0! z^%qMHkc57L%ujki6+JjX|g@|zx#m-(T28c zmz{n-3HO5yolN|aiXz5TO!DDG3YQKN2B&Ih<50;I`P zLfWe{oA|f0zK>lJFKMFp({0)qOqO;eOKcsY@n}_>8LNwYr^^%B%`gfM1d|iMu#1(A zxhQJCDIjQ~z3qwz<}<;a!QGqd+7?>NuI>J%4ygrfNp7+RHgXS*{qy(UGzJbH0ZK{9 zS;(pbvr@yS;AeGYj4|zdvQ-iSr<}$BZV(O#GY&{$=!IY0HL zAVm{1VQ=G<6V5?u)JJsN4k~KMZgb>o$|xMtZN)Qs0Qii&xu?Fvhxm)@+Wpw$@uH?n zk~YtsOU9jzK`&uiF1=&OgM7)W)!2d7>h_bsCq^bh+Bt*Ev?t8Qyc<27-L#dNKeZNe zhl{^T!^_Rdb-M;3$CSSvmA~B<5pblG4lQwJs)r}wAI?}sZILGAaNJQ-CZMj{48U>S zuHbFuY8n<;AfD#}d=i~lIV$wB+BSARKfr*F53d{j%$HJZTJ~3lVr@AX{sGX&|2%P> z7!;&o+%%IiF-gMVea+wy2PC)FolZKfv{u$$hSZNmjm8EzaPjh7L)@}pZ4~OZsf@~b z$LmEmo}y-x3&n7>h_DS*sTIPks3m#@La~8^j?FPw&06ElE?f4lHw)>gi0C7~V56NV zDD=P4#RU0iUKIGyCnVYRH0!3Qe{_5NK?f=WMR)LIGO=yW!LY*#7=^d_eqpjM9HSCP0SFRM;C?j-)6Y$S@ZXw=${0@}_ z5WWfuW?4ld(9VBgX$jFngND$07mEshSki0q!5zsd29HDR>5QW2dqlVkelqWs+fJJ~ zBjPD3ggi8!dS0(41OnnL+#m_NgKaPMPU4T?E>fVP@xdA3#Gvwt3#ESqJlG6_F`G3o zLBdG`Cm%~pWPR=0Z$>_JF@1)^ho?QSkXBY9i<6PFuGFx+-|Dw%>ZTHWSY3n(AurHX zxs9(Tl-bfJ^9bSff@C6)E7}ceVsr5{1mB1A+pebec_k&<+MFIIu6deNiZ-;IPsKI) zCuVM}1e5bkrOun;ZR=%(&fzD`$dl4)$b+p#$<2?3%sLV|odLcWN{w4dJveo5!P4$wA45e_edB_>N?95=H6`DMZ)h~$hpYV|ytB@2u zHdXj`2m{d$rA9<9C#;C|6Sansi@xKm&bO6~EJhUd${B}ddZWCbOdtxa_Iu1#kojA% zylJM%>qub_5+7ew+6$6qWydu5zwaCsd1K{OmSN=rm|)J_c;{dv^oF zKgm3$&koyG>LI%?{!C&o=f7AS(|nK00Z03 znoWnwd}#@x^Sr5PZR8K%cph_4yls{g`>+t(HfkG-#q?#k3~LA7{~c-H|2xuhz^HCYpU@ldQz^PTpnBLYGA@4}m4s8blEo|x zB-Rg`&QeB1TEzkvi*@=93gJ2;P<;lMG08rD!vT(gf68rvKMg-iI)RRs0;^%~kGOs8 zNWN@Vd2ws40(E3int-aT6d}VI1N)Yi!4;4rMD-qC9A|lhegDo##it53?zwO6&?jZ9}UU|^AQu?0yI0&9vCET0e66`})fjH+{-Skb)+ljizp4GjzSp@(fHM=*a-n`bd3Qz5D5s#5r|MAC!dMf zObf+7fl3p|MJ!lsovlHAxnNtFL7~W*e|^=aWJz`*!?;4)dZGw`<(D?JQ^wk05&3D@ z>8v-?J6>Bbn(Mx&NAI){rxmB`!I%HQT?5q*TcQT#;Mt+Vq)V*79rE)t2FFhqRR~6O zaJ-;t_XYZ`1M^*F^5zP*ScjJB2 z8Kp7nLEYM_?Dr`2;+ zXctuKSt+)~wW+5FN_BdGZ-Ucjj!x;#TZnJ&xi9?XA$=-6$nwU*=O2G#@At1Y8$#?G zL2~%5tC<4G5%~>@p^d?=>Akz~>9cowdiB-1{zZHf>O=)AmbpW(%0tof>IGY}mC8D8 zm6_>7RhL7TFd3eE<9(i+|XTrjz-CpVW zR%A3EHnGUT;B{+isP!r*thJ=Pp}3K0tR>iI6wB<0uvKExu1nEnFAGzo#-(R~qzMbvB5LqlAfNl0d9_*>K7Ac|H2R z+WT6C-{rN$*26DGQIi>8n#PIWQGS6_+hKW1MdfL`r}CU%8bsLUL)HmUy)Wpne*yh( zD%~|fR?(xep?D`7CFG&$4)*$vbu4Z=00Pw1K|ZmW`mQd)#_CDM(rzZjV?n*^nCKJW z-In29SK2H*b8N4Rmv0rNV^IrGbmX)Y)mtMBal#vdd6__BYe(hK!$xa0560K=?4alH zwv~$QQoqXYXPE?q>p2HPGXdC^W>M^p1$FDhMb*MvRjfndlio#bNf<73s4-8xI7QS1 zMaWvBCRW7cWLAhHW`en7EzsTdm}^lb0%Wq!ccipPB%&WPch9gBmGBd#nvGo!Uh5-g zk2*bE!-_l-Uig5UODDTmoKH}Vv^J&Pqv1sdnMrWP>Fnsg=?pdo1!w?rsb?0v zIp^J{NN{ENr3fKxqL|0;!Ml!zhv4lvZuq^VxH4kzl{6z2r7$3NKhXU-r7IbzZ)-M!&LwUgvSXw>o&(s}R&@ z(_tCciFdfMgFg0Su=m%@V!5*vYpHfQ@D$0-uTTYsff8OJEotth__tZV| z&G=pi+6&s+8l=~V6SZo)?>R*P$g_H{cDbL7Pabo||M5Z_uF*+$!Y{l~%|~~v6EuXE ziQK8r?=t!pf=fyMZ3}Lh0Q}wel(Nek%h<19Ftzgy5WiM$@ zs}FfN3#On^pXS8HwEw|;jP=M(^jtgB=Jc{`Qhrn~`q#5y%iwTxKHFuzh3pb7?Air( zMmyO_|5#Fw?H?2`4A{kHyF9>ZeJO131nrotDer{JUh*!Ce%8NKUzIMV%^t4n#!d|F=}&c z^(3fs7!l`(N%WG$Zg$SDQ|P_2Cl=8~ss z;fLYKVk$qS{ZgTo)QAZVUYFZvFO)%tpqtAx2xZf9@JT7@OZ1PQ{kJN60OX;+lVy!DDa}A-D#eLx*z6Kh7AD ze+9Wt(%5QsI<_$NSr259mPJ1W7EWrma`0ZvGSrht-yV`JGewz{)Arn&*Eikl)P!x~QL~@oq zVB(n1aEpyp>V+EIkHvHZIvt}0lcMNvh|Tk6SorTBkMmc^`7 zN$?Th(@5Gl^^pK;0Tjyb(4fNsBj_kEzZL@xmjIN*D4hu`XA|A^wf^HDeN175ZQKGg z6y>Y0+c?M@2{7Cbyk-cLEn0f(^V*qItp9fTeM3UCcXZMRB85t5^D0po0`sn37 z_>+%z-61tCLB&@S=WN&IAoC>SiSUhd+p?Yf2E$>y$@$|Jy`$1*;!NV*V8YiE?5U5R zT>(5ThSoo&+F#k3M3zP!G}c0^fo*jLLg2`md20DT>9y$ZIj#rTW># z0X=%*%Col~ljy!=u3b6$WF!N;q$UYi!1GDDxd>3{MUU_PtnQSrVhcoGhps7NG=M%uXqv0Wv6>C^Qq#OPQNZU;$by zfSn#qYd3e^z0@HKtHZc{k*m_?!AWa*XU%p=8`o>o{B+wKLTruV1dmv2uV78eElAwB zIKRf}PTY3lWX>?OO?n5AZdeiyFj;1&AbAJ&AV8bUNfl(lWl`m)hhTN{=J_`(9t}hwKb>KB92-f5uu?&(Nal>hMr%c9oQ>XS5acl}fA3)NW?tN$>HbU}} zvj%i3L4l#)lgRmB80pdzj6fja$E`O6Hf8O<*l$I$Y*cRyzctc5ES!F&<(8u&1;7qY zG@d%s?)fqFhlucv*G3csaoob<*B6@32U}<2}Gv<0st9oc=O+Si#v!##?vN#~|bz zCe&}_&E|au2%DJyWi|UU`7ymrESV^}2055Za@v7zR3XNh@4hHFTvs^*6P+fDdD^am zn}*!t?H3<(p?A8{_Q|NzKs+|jdsvOkL=p$LCfh#iZW77oKd#CQ#x5s=#r!inv2^BB+~RT6O-ldN!6Iqyyt*(o0c6lg1~+o<<9Rx#GqFu|u1 z8elLP^$Lztl&v@$4T8@w%IP}#NMU%c^?Uuz8f3T>Y^WNztr~yT;V09c(y-H?J63o{ zi$c2Y_G|I*YY%7e3i4?TCHXv@Yr@6;;A@uz`k?Q z_ug;T6@GFU-%b=y)DFFF5?)Pf`OXwyDL=HIH7q%L)qd9$=k&-qsU!3D|~OZ)-i^Sd4RMp|LV|soQ?*+ftY1|+WNyO*J!VCT)q^uv;0J( z=4HAF*EncG3{CLm>gPl7KoK};cI7)e2)~r!)w{o<%238RCb^1uea`Ri#)-7tm>Gx~ z?ghs8`qc9)J82QCkDg3i?M!6ui*K0|__#5|>mU>&mKr)j>m|CYj&F@alIzn@;?QpTLM1vRl{36?kG!R!2ys}fcC z7N5#~iY2o$ehr`2pyIs;Q*l}-IB`H5Sz6W7VxH(a=Ta0I`LnNpl>`u40YdudY!!QE zj!P(7)SJNOGNfOg)4!ox%s^gtc2K>`&+mwa)pMOW zVGA~zpj%QsY#Dr$JL6U+lT{9NMnReeNHy`}CLs_Kd*GtXI>vn8af1CLwKu2z)4;&#E!AakF~qCAWGa^q&Uy z|6nNJau&M-gwWU_cPMGYMCkeOSKS{DyPk)z@fUmg!R6LCuP6KrvJ)ZmoU&w>o#}Y* z%Z)w_vxhgVB;x@EUj%$TfUNy!_q*rbrRLc|-=aV+5fLr4O6_EaqM?WqE_QwtaGBa$ zp_J`_h;TNoWb0A-itc$^SNIWXkCPS;$-@N&>P%W+WE8O+k+7w~Y#Xf%%_U0_qBUP; z#^^Lmgc_A0h76;gJgJX)MXYpXs+ZQFD6fc0}@=E<`P zG^TO=AQUZO>?QD7$5E!5Y8D=s{mD5adbR zfJ|jOBBW{Zsl=D6We2rS5QV<2fjzS5Wr8ofvcBzS&+q>ZSO0pOVjj^&cQC;PV_p z(VY=c86ImYhUct%$Wf3Bz2ZE0NB+6ICaWP_`U&Vxe0|LzxeDnU)0Y({!P7~#VIbNO z5_+RtNXl5c_e3Q4yiEUGQ}(R<H+Hp~Y>-oiNDxifrIH)%nj6C_nWo=b-ODAP@*o?G0!j(E`xLKw{poaE z$UOFdAtHLhz!1v@%whqRbJl4ifg0>d*A*6Qv?PKIx7rdZ^7NGvq}4{E*977BKQIeS z;!835Ydb{I-CDPcc+k;24MMgaMmBCHQYssO!4xD^s6RWShN7h~xK6U4Mo*+66SU`4 zzvuLPQrrG2X1~$lOyOY03P$}JNaqLP($x};^l&O_eMP0G%QV&HXzLz!%G0$P3yBGG zXkd(Dvc$V8i8kG!<=>K*u`fwXI*9i#*jqCUn`!;ZZBI4z7ccpWjtorJ1$bBgm#oz2r~tm5u+r!|mUnW-<-jG5)?${?>q`NR2$*!_kls z2e2GgKyyAj47Tb+(&u9dI&u#hFfw@1rYLpqRJ~c{buUA`cv!0HjO>Md%-GuKxpDq4 zcmh%GC^n=YCZLc0>X-yEv=4mH4+tG{65|sE(fQUCTNI9Tsp;{(SayBYl1reXRT*gQE z4oadnp?{FO(rnbYyoWyU!$!385+>pz+YVhe2VR)t?z++RW|gl2^8;cjIfOE`)S|;cDxb*i;L=R=5YJC zzGYYW&?9w_RQMW3Y)>UfwiLtk`=$-CRh%r1?2`~!D-!JPC7%gcI@nc-`)hWDkeX}H z6eNa{a^_R@URcz6*}uOAJ3g1<|M!q@U*^ERWKg>{ZdrB`VfhJQ@Q`E@ej~BD$&?Rb zf)69tw)XYrT>EKD`J1!}<8(+HQ7)L^2Ref@90y@~D}kq<8_KCm*=s_~g1^y*gBk1A zcAF8Etvr+Y#1&xSN_w7SgvZ-&hKX&??q^lELoku;_#a2`xv`zd3ZA5(I%B98~)ROF8#kuH_f&=KZh}(%sueLlEJFL!dQN)F2S5n8C zvRZAiX9dRa0#LR*5AbVQXdj~jnI;VzCcINS%#4lxf(67d#P)J2XN|?f?-a0IXQ(eL!9 zGYNqwQb$bcT5g6nngRan=9rc3N>&*)GZB6b%yF8DRB350iPY$sXFIHg#6>noD-IYbX7{3XL`xf zXNKRz2J^kR-1b|BD~;6!=d19Vz*;x$D{MrrXES4a%X&oge3;^+Gt}NUt8#aL9Q`V# zy)?Jb5nb7Z?CVcG$>%{%8wj7v&-^Z;v%UL~6z3c6g$J`Wi?|mV*^QFK?y{)s&@6wZ zsX`nff+J1QQDiqg6u9Y#-$Fg>et$IBf`{7lxKg9-Pt-V^KR~KN6-NhjH2tBfp!;_R zfjri~7R0;TWAE>lBMy!0=L+!@JD+7au%i1_I^zZ~c-<*u@g#~c=P*tL4WcBTS2D|l z^~5ucZT*=4Nv(~Qi9qMaI;oIiL?vBE0I>L0&^fJGWHd>3)vU^UmbI)HzCR393TNOX!yb8gz1?KaXO{Ti97koP7n6?KT!l01B1TNc4Jmuug zi{rCRd%o}*3|@qPfDQN#NlwXyvD(tJSC}1v=qo;Nn1-x6;OCh7iF(-|`lZ~Da2Pkx zTPJqS{d9}B70>o!8sb+jZlgcjP_~AwM9^KL_mYVE5anVW?WNWQtF;1rk{paCWeDW2|diCB-MKP6tBa_N8(!5R65lX*`X^<6qm-6 zK|;I;iRsGWy0xEkcC#%)ZOmD5+w0&@o2AY?pGy)z0SZ8YP zWXnx&h$cZW%I42e9*4H2(tPtKEyV)O@RiK2ce%fjv&lTfPskkMnHH-~PKW0yw4&iv z>mI2|`RT~5kLj)>=8anAX8_Qu$oQ(g52*>a3k2QiEfN=PcYh!qP{bG^(V}oy{k)pF z`Uf|;GqcT5d3~fbi7pC>Rb%d!C%K^is@+EV^X}09n@#yEL$lpn32GYhh2Wmt-?$^o z%5YYCE$6rX#2dfbw7I}3P}CuA5a$C7EEs&YCXGPcV(S-3t4=Ky@D=`zT)SerL>D?) zUY!WbsI%{>z+c+JEi}8UsIDYic*ZyaaX-EQTP7v8x4Z6%Kg)VQ8#c)$j&NB_OVn5w zr3S?Ls3W%zav5Ak@|aydLQFnHcR9rQrsPsOl>t~x_OagMgz)X;&!604gLuphuH~{? zNoKzi$DjZz>mOfqPu~^%oP)IsV0cvn7E4;SQ zG2L(0p3{>kqG;7RIy$y2(8LegJ`T$7=y0s4eIzw2=iJHKPOQN1f_W|A0Y@=Q{mZE%-psgH&^*gkR0Fj zT0h;at{?8s*Hl_fcji`;Fzs0{xwQ0ROB|*@FS&0KA|$6+Mq!$)JIwBMl6i@lEp3$! zXYa|AE4eO^Q(DPR#`l`=yV2t&S{>HN*#~GHj7{_!Rfit{P!V{*rA7;7ai>0*LfdWa z3OT#eS`7?xOd5&pa*~kylBQby%oPH}TJJqcj9C%&trSWV*0)S=3G)aAG*c?Z_!OPx7rUHhe=kU1 zaC0sMR8>Ov3x}qoxec1XJ01IFJ0?mYe#mR3AEk9jDnwG-m!(3(lXcPm-*u++wa$nT zp_SfuhpMtwSn?p}rv5z&=s%TpxbMxl4Ie2adfzCY5fbL?c({5Msl2Rq2WSIShGjc5 z5#rn}!uP+aAK%*!D^`#ZTWIAn(_Al-5^L-GSmWH^cY23$fqOJSRjtpks;>i5T=iUj zp_i|-ae2J1S8ou?2h*b^N89d#k!#a5H_+I{@6aJl$KdZPDBWf#7Be z*TWPPIeJ*yiSP-H`dx3_s$6a++SeHlgFJJR%&uB)CV8#=G#JZJb_eNos+47aZ_a~L zsD^&ap{QJU9W<6c1w>0qg#oNn_+9Yobv(DTme^X6Z>@hj08E{J3j`M=Aw%~B#UHW#!Kgqn)CFJ!csF`_xg0TC4d$p`#DS$)Y}EX+)gSX~uqXy!J!ftX=FD zYP-3U-n9uXcywy#eP(YQ-#h#+E9mtY2Zq;gCP{MYBwoTy4E#|UZ9lE=`KPMu!Lem7 z*&XTc? zzfrK#U)LU3|6|ROrVIbx@c9csoA@?`_ZyK39%KgL3hw}j@o%_Vdv5^JBjyU)1RQJk zDZu0-I8Ow5wi1v8$K12y@OQN!(|JFsNW%qE>nwiIX==e8{c`pTwz!h{ciy%2F&|)S zOBMSNOCg8hbO4ktwL7sfkyTw&>tPq^PqA0gtV zz;LsWTg7Y}p1H8Twcz8^kgb(K0?vE@GZ@ZZ;o@fK>Y;C?_K)aAS{q~TGBG#ufR~4w zRp&m?zKl%KIxKFI0cb7%Mq4h0?wB@$*ze)AFx(;*ce*Yor zCUPNY1iW6o>{R1C&S>%7)eIK9mjkTCc$wE?;GIwXm27@(k}gEdb7tN=SdVKMNHl`p z{R0QFZ)G5Kta@-ZG-Zbc48T)#L- zv%Eysm$RP@3E()@6wSulU_FRUkaAesbT(P$m?pM`u9ID<&p-%kquEjmemeM>W9})q3 z2w;VL00V2GI@DSW2IZfqW~3v|R$atn0Yp4~=mYb*>>SAX^pu34tlE$JmiMnR?HS(y z;X#0N?)i&92%-m@wlHXbEG9*Ndf%=GG3kX4fv?FJF+4aSa?Qr~<^$ zC+znQxQV3+B!$lazXiOXF?^^EyiBcH=tPudR5&pKLw&k*oCu&gVWPl>sBt!hgs0TB z!|u#AJ2Qn)Rnsmqsj~txr7r;|2Bc<2=XIpP;On+e3#3JLCp9g;Crh`F$@0LLmx@?N zpa#fF;6IB@*qu%xy29va8ayt{J!Ao3_=P>fzf%es{G^U@HptN>Wb;$JRhUVwxNn^)v7>gVn9IvVOY3%aeb zytZ?XSX%}hkl_k=7LR|IdUOyI*2(9P@f;%PFv;vtK@{8HG|hgXoX}3NqRFB#dF|R* z`b1?uM>c^XTztv`ZoXzxE(P_VArt^P^RPCv>xi!d3%NoZ;2!ycr9UmU?XLt*;(yRn zza33L*g#b`E0#*+KNg-RNCcu#si=JiHewx1oTp6m0PXuT#@R9isV4=SmK^Q7tNQv* zj0%X}=o{-kjBr8>a4-{bD$PCo8rxOtwWSZ|{oRJf!3Khk_js3T7w40=dMVtA5t_DLoQujPy^ zfS_Pjx}|+M#c}M;G~L^IG_q9|&&`;%d{J>M1Ny*|i<`EZB!u1)iY_ z^og(0_x@3dD&2G=;(T20;;BAKA>cCS26?}a4`ybYrI(KS(OygIvr6^Wbr}GJ3{y*K zgqR>TT;1`EaEWu_ZsmL%<^BADYRD+Nxxdq(NC%)W5I;XNUXGpX?`p5#Xar%+8o)VW z40p9b>`X7tB66t0`1Sot{ZH#c9NVOoJ1n{7SL3fBx6R51S+X(gr!FX$UC29L~ypIcytzGOi2zC z3DjGn37_lXlrVNozXF1C`yLieIp2Mo3i?z1E#q%ddF7EiINw%`hhd29VsKu3r)}&w zhb_Y4iB@y2_qem24qu>pw4NAnl8}&m`Pu{CSjd9zg(o*eQZ=GhM{>>*W5-d?L1s3+ zP|Ky9)o^}txtN>G_dM@#y$Lp6PEL27W&14lc;v#zKqR5z&?F=T`N?;J-}W+%6c%&n z5gtf>_fCXosfOAGqs4R-@wO>=-a~D~u@pClrf zHBKC!JAGV|7;~eQV=hNMxQ}fNvcakJIkbHhS2y{06hqZ_`SU`zinWCMfoiS_AGd~d ze_vxiX;XIoE$a14VCT)GqN{aTLv6og*45ev!-ygzC2kmGK>wHoy_`|FH_=LD*%GvU60TTrv=b~t zO|@`uMhLr7kje+tX$T0UKl2#@@f?Ali1D>cLfgW4p@w1+NUdn0O}V%TVwjYs@NcH0 zOra4l$%LTA0uayyXBSH24942M18pgA2i1h|Q=zQBRwv|;eSW(V7Gh|71XU7n0a8!` zZrUFy_L)p1f#K<>&sPE$ht}n{G7$ z!OEY((&sQC(ZsYQhmTqWTT@5GF-hoyk97?d^-J3%FcJInHpFPYvk^ALV!4+vA6(9W zH6g&7N`xN$-wEo#klxN*fUIq<)k;vr{N?RI=D6i)ZSC?^fbKhn1f!afGkP zZ9Nw$EGl(+6P3sKH$UK%VI@pqkBKL`EQIY&NkHW>B-PnL;I- z>OPE54J!V-47xs~{*WMr(UR^uZ!tBObb7RLTwNc^Vc)fvLx=(?pxA>sZaoDqxU7xC z;BhAmB51LDjo2>Fq)#OvXh;LRfy8j(s%q2wKK8N*Y9g$m=wO!=GB~55j`<%)2wwf! z8x;%)xOLc!!o_#6nYQGI9N}=8natICjUDZT9Ks{Bpj7)_oQYnRiClI&ckD5*E*rTi zsBhyOhDXQW&Y$O~P2tAwCVIw09$h>3sEvqM;d;!IIPd}8D*P%z)R0IHVId9AG>XhD z1!hQ9W_=qWrPV3gMApPflKy>K%1gHQYvkF&)x{{NDp0(JE4-}2-a`LbiIbi|HQn&l zH}n6!j5!4*Qb>Cen$z||nmyrfW#uS@kyJSfB)JH)LkUfRpyUdzDgvxaRJ)Y{^Pm$d zd<^ies$#&V23a9u%K5g2;~-2isj?CbibyI#_K1JHe*2mn#^cmWrTRq^d}AeA{R?}8 z786pKPzf3*Xg-KzsQ+C~2#<{^VUBdSnV=xMgGnd^RaFIs8wK0d)Ob;Barfu&0!YjI12&-^Z zfw7F|`sh}3BI;MF8~&2zV8V^a;BYVEs@Xlu_)=S% z8SD~D(tvE})p#!3?L6FuEz%Xonl$JBf~3GH@G0WhKLo^Q0Hz(EOymd0=^cK^dmdmo zPeiQRp-NOYhe?@oL4n7znpt}muBHcF4Sry+fF~b z!9?X`c!tU82v-`EPWg&lf1}ww$=&q=ZG({Wa}d?V+TImY`R{T=t7)a?y7a*I+Qlx=J=M(S><_hpE^cfDzV8rj=|Qw~=2DhN;jp z-}rDQ<=1OOyZSIA`#IX67ZX>#)a!n?7{|71<|+oIfn6r7mHqiRwmo5gpWtlFv+}m0 zL~?YM1@-FFId;7OmHHL~RB<$<+Ew@YvhX@E4QGo5+yU=xx81$71W89`0}*YGQ#=0m zVM0V-LnhG3)X{Eo@R^rwH&~G4jk0=?s+p|Yw{HrFoX>vy`V0huHsh!~QcGxGlZWg_ zzOqMCaE+YU04@=7-H$?+axy>NkdU7$g4a+B@(=q|?c`kuQU@CYcGYgo90c(!NWcOi zPSQ-8;4Q$K7QkBJbV~~fkaPRkUVkw3;~IuZfO>+eejaQ%=GUG@9#&wEr@!%aUz$i~HhI+}$0DySqCqEEIPs?(XhdDDHB%?|1K= z*`LqO?#z>%Bqt{c=z)}={Y{@Jk<**Prj?bDG&!3p0%qse9wV%DfcoSnw0*ogtSlEq z^V~@Q-WZaq>9N;sgPnsRe4_(TRQLBD9Z0mN9B4QcqD@kDgS$Ubc6S!Umk+6r)>3Qy z>^#TQ$JBW#Zv1qt8+2?`xS4<_YSS*Q1pCqePioWL2(t|PLWJmfRJ)s)En*zJ6DTp6 zh$|621H&WmWyp5tjEuo8@x(-)tEEu6lE#;!9%n&Zr#C=b-ZayavUt(>=xKyc%8G_5 z%(X>5&j`5^fp3agSDSn>+o(lOG?xqjCt;L9ElYfax=Wi`Ez8pik-0)o3SS(7(PTiw zVt_7(Wd*EZkWquJr~@PyKNQ^YgAGUv#)U7h2?4-cD?_1TIqb>^)tFJkCX6CF$`DYG zrHfmlLW5yo3xNQDg@@7FQI`^fUkfB(B`-y;x@1%$gh^JYT9lpl>gs@zIjC%UoaXgQ zj8GH{U8g2&Rdy#)NGV(`ZHQdY@|o9$P14WGAlP#3n8 zkd{;iPehUz^)gAZ_38C>A}*+ZF~zP}{gkYgX@XN|W`(0HDMh7jHIOWsS%pb;wiBBV z3(l^>XD=5dNml!1>wdZKS8_py&yGSN0r86z5YV}I9#RV=RvQA__DZF zCqGh#6>NAMwlAF=pg6!rsZZ|^F4-eBjxfDNSpT6D20g!B z5Q(?_!6>);+59QsT_FJWS`Eh_B}Fkq!ivM_pmJxLyj1%QwX6GxREnX!gij4xQjN05C>5)u%G@wCr%>f>!T{BPIx=BpX4S^ei7rqw%(9la zySP@}^^?WK33RCFhT;`B#-04xI5WF^Z>*`{F& zdD4XjgAGz;HJKCePm`-QKGU9>(8bh@wuG_4C#?lrmD_FrA&?K2ig4um7>{Aft(%`z z%nArn>=Lw@RemqHiiYTi7qaN102BCW$%W@|%4<0xwZ*gYQ;TI77!6GCf5X9*$;C$~ zl?(ud`%LH+7Y0?eB~<1430FNtbbc#z}@8;Fgmm z;RMRW;gX-$%UPl+A9ezn3|!llLL!?SI7bu{G4sDUJn98jiA(thf3RRB%zQRADGQ^u z=fdVb4u^=D{G!;ha|9@ICuO;q>$dcOOk%Zr<%tZ!?ZR%|8qWOECv=6 zEn*J*ueUFCAUYzl`|r@FBLsh{2cVc)hG=OT9>U|Mrc0!b;dR*v?~v zBllb#-fHxKv=>tkc&9o3lZ)8uN0)PH{&~9mt>E>0*7Rgrde^mOk+`iWrg3A0;tA>& zYrmP6aXlaE*Jha%M$wd9IQXk%g#bH}TZ7WfJvK%Iuw9o^SIG2fa9nhQ;zsP^CK`x3 z%5cj$L`x*gSrCp<#z{iP)N5tvl?p1@6idGDQfJ%l&E-G=%9Iu)5nu!LBWdf!EmQLY z8L?a^HW#Jlbz*|;Vm&N)vTS2VI6~GfvFWp@q|>t%i>P==I>pi@=q9?>7|T@USuIP4 z)%4VW)J%HbZ1V2M`jtWe=Az7}2oO1dP|*@ajq`h%<)BUTsFsx+N9GS@b zNu~uIq`82=DQx0SQ>-Pm9`vi1S8;<%!78lx#sY-8&|9WmV%15)A5O{fe5kC6eMXXs z_Mqi$LfJm0s^vSs*eU%hL`_KzdM3YsPEM(hzk$TQPcFO#^==Ql&XPXPguJ+l9AOP& z1g+XASp~MiHtdl`vG1Ialsl0qw<`-N8k)bwg-Nih{wSL)PtTL zUgd8Dwn;R9+1S&%p~HK*75)cA`m@zA+#k6=-|O@qPefe?eov_V!)G1HwvjN-)U2vn zeml557mq&*yN4tX_+>GU^$mOO76NGJaLs3^Imgys10ie;6M+p$3xs?s+nT=-rb%E2 z-gF@|@dmYj(2LWq2)}+5Hp8*59-WFeD3IE>sLXyeZ0T|JXOA_??7JFakto+-0b?*4 zC-bbN7N#^%*}oA_LIWk?HyFZeVn@yyPVSOXSq%h85-YSRWk6Ul2_TPejr!$3vysm} zS#+YE+pc-2@u9g%t&skVou(;P#>Ph1z!OywEes|oNmiHPByKHgU1C$^9#y+-Pdpoh z!s0YCt&IQa&5AG&n>#uzmecmGBK>#ni@RrYXM=M^opV>AG4&LSUuD6EjrtfFkWQ)u zmv*N3*#uZn>|9_K9KlS8QmiA9oU51tbL`kVu5n7098$vpKRpnppN#}#fh<+U=cwp> zBdq~6>*$!W%QWUa%t%Ey_ZzAztfS!Vq>2X~jm7W-<%>m+z9?1tG$vr@hm>DtDxE2^ zJt-}As__v;COgbfSF}l&TE){67AH#zXWXmwlS#7iGssDuesVRu{v@vyBWN|Bqje## zjhVl8H3Hl&)W&i<;S#J3pq^1O2;HXy)O+LHZJ=5*B*1Df*5i`bvV4-x`PJw0*hu$wllqdYQzr`aK8YJVUD~W#001&1)D= z+W|XBAoX~{gJAA=eu$+ZE-dq_1(M%gwq_E~RSkiL^Wo!n3gGy$EXL;>ffU!0C$TrAoCmr?L^sQLnA7>r^)Tf!sk522#CK2>`G|xohMYmC3iW{z? z^14k!63;Bu@Nh&*=KUB~)pZ3QSatTRjW%Er5%a8@i6gEJ56^Z^XAq^Zq)9nn(g4Sy z-e{FZRV##!UZ}#BIn?^?U;&r?&U7&Y{%d^?X`0mJn4MXwA+>X65*3yg|( z369a@u2W7pTrYSKHl0q04C8u^(gs;E5}U+aTE#Q?P_wnX^ zVAqgVB@=(^Xdax;MgljPNsN6*F<}R-z*2+QUTO{fgmUjUsL(q8O9(qfmec% zN8b*0X;Ce!vFVmDd~>|hRaUC90{{?D*E+|iiIRq*nB2s-em?rdE z&9;jUD?fxL;Pmp$?N}2U#$sinE;+LrJ~U7SaAW6H> zVsKS#)-Nc*u}h1~eq@qLbSz6am~4qUSKI5OvrJ4=gS}DJqFkQWu$N}pY% zvNPlb+2(J=+uTuL?ch=p}{!1HS{$JWCsjuGBv$B@A07YP*kfOJ)@QNvby53dl&UWH>P(FcNkH>%F*tVfi zM|1EWERuZDHEMSN#l*5YY=p#eXqppxd}gNi3G{A#zA1|kgX)0mtnpjkwMM;u!G*C< zd#(~)r7K0kkcnDldbVOgNK^_+EpOaCQ>@p1HoVO+!F$f&Qqp1)^+&Pw0m_$iJkLzP z9Vm{^A^!6DqurDz=Z8~Xh0yVItDrU1g1E4$)94GQ7UP$!AX=;<2+X7Yl7I`-pQw>+ zB5ppBEF#(XiT3mrD@H|z;(k@o*ie%-nI~KrQx6>!R9}243BTZ^q^z9(SFGLmRj&0{R!z`*u zsz0*%D4B2CpZE)e`D`D0&i5^0V}XPrGQ@GcMu@aA;OJR^uobHccf5w}+S>P2( z)DPdH>2;_Y)C(7P+&`b7pqnP3%~`^O(&B4S zz$x+Prt(Sa5|^mtS=kh7o{+^wAQuUTEf>Ow24sO96^GXdny^U<4&B_E+H^DgJP4Bf zkv5AJ#cD1dq0`|9-*4hqEAoBl)~k7(+|_YOQghH{bhtZKcr@2)f7N?CxJcjsuRgc` zSD(+kK#NUxwR+pIm4T@ruR!el5l_5wBD?vt^K#K$T|Yp;pm_Ayo)arQ7wjPVYkzf? zmY3LV)tVj8y2B}VZ(8ytH()+3*;XQpxbK_|oo_}zx z@gE!ZufUPq6zYVSfTDwJV&c{z9PbDl0a{Gfa5MMj6g{!OWi%B`5rB5o@MlxSZ*ThG;SWT~sIN`9Ss^$<`xbB$N6w77r zY3Uv|e7s&f*OCz@vM&}N{uU9w(!9p!2h0{JMpGgx+8(G{*hf)!(s2L}zH;Tsv6r1v z+gVeKk>E*;nxV(kG0>GIiwNU;G~g2}&Pk$wn)Omn#K#;Zq#$WJ{(d-s0Cl%aH$Qf5vNc&B6}@^*=_4uf^Qx;GgA_^Nt)BO6DMt4VF9TQ1Vf$V2{D z4Q5bCo?%*kRUqCl*KGS2P``K{o~GdxyQs>3w{i`Ju2QW8QAJIE+~%~_^AO)`u#W?k zVSSjBNYQeIx#q6>iCk5YDskk zs0-%J=#VD2Pf?bv7^N({^`isHX?=~TxskPj4}b%5e4e)zRJv&pDYi+ZwR%gA!H}pA zUX)#cgR6gjQgo)U*rG$E*DU$go7e<7bF|ErO|$q@N0;}x^795h9S zqV*y17joew4;Cn|%Os}9GGVlw$CZE|Mw+{~EY%SMzi$yt-2_tf%jE3yX9<6_Cs-m! z`iBrYy}+!;lZ_!eYTAY0AhwY8<&7b?f*i#-QVDlob?t`FONwU$Vj?VKxD92$aKukm zYY0?J1E&wZrF*uU4>aCeyZy^mv9cj1z!~TgLUtB<%B~`#urXr~YKs_05vc>4+|)Q* zj*jsconTtVtJ&YJ+u&ri&mQ4YlKd|yhVp1J5ZRMTcpdiyJ70N667jgF-h1*0yaMc9 zAMj$_eFCR*`#pM;t!-O4YLBu~(TPy81oLaMIS1;b*R))^S1EEnuwN!8xh^~fhjnx@ zQ+VKpi(DABdRcLL-~|itV#hDOTF6<0x_exY6B4CnXx1&wP^ z_M?yO+ z%a|^0hrp5+>Y>&Us(SARhs821JiycKhzp1)lXj2qvmmG%?Xe-Ey1Meym-P%?p+A4AKBOV6t?~VUIo*$pbEptnMjur=P1f5VV{DO8#NIITPd+oyRj_si)KUseS z=x2r1J}8_hs{U;Go_HL#Th1|Zf^>z-qIb*eC}!6kK*(m&N`?Y9em_WVlSk)PvSv=Z z@IfcB?0-)1#-nH&sj#E&z!v3Bm*h_ejY={1T1WybzPVX8+}_bY&cG&1-!Fk^sql|D z!2bvRa40p{JXvC|tuPjDsi&@#p&t&QdFI9HxlC;tJ6GMCtknj4liY-j*7w2dE3O zKdUwx$sCn&$fTIDMh<)VON4k5z|8%|evy725tNXhjxisZ;-wCU@NM@S&a=arGjs8e zp2U~qUmXvUt(3<|QI34B(-J?Syw)CYK11reZA*9l##_-LDQ@}HZw=>&B+4(EZ*En| zY>EM76n$mORVS~Jt^T7)`cA=~3wVfC;LXPaFL~VM0;8cEzA{g#>pL*?4SoQ*&y7a$ zqwq~MbWx~4rPSh5gNsC2-A#^B1gKmVlOAZ;hksM_cfuH{<`?3 zo!GIHfJ~u$U|h#mrpk=Ysvs!OfnX?oH1@!|F{tc<8WR$sf~W>+#WB$Hw~LxE7HW z4J?onn&Cg5iDAoBE^QlfYcD+8&uQ~jyMt^?1!nmzo=r9~LIG!sGEx zvu(-6Vm59kEXk1v-}@o@ew=tFgumMv2J$EhYB%zAH`0Lg(>wio{2KFiD3X?4cpuoh z4SJCA-@({!8$(!FyN-5rhF#c3pC)x`iq;ftDXzoMc5QU9V{Bh~ zLv~CLmu)VE|7~74e|ET^AA_-20z&v+n8Qz#U+;*J@oF_8C{u)@QD*N}g1Yn}+q`lh zY_H2s2a*@#W@S>m(0LuX9%(Db*|#wBq3x4_dG4`Eimw~hg!e_-1O1cQRcwf~yRO={ z;Hwi3mhdG><R>RuVIw%fEG74K#tZExb% zv|6B=#EIt!ztnisk4cX{LF39YhDD26#ri1{ht>8Lp!Iah6{tcl%NBXE7WJsMYS8d4lM}4m=xbAaXp=+%gE$ zbM(_$sEy@-oIs*dfybEvM?Us_2VBik#r29SSsK2i0%pQ`RN)Go49thjfop0Z;8Otb zLbBE|zNL-nB3sC-3;?va)!-m5JySc_K*N{P(7e~12u!?P5m2?8N)8MBDtKmAs+UWP zo3zH}5X~eIf4P4W;5*-UyOP0ow2ohTk&qlF!W^8CZ{*H*BZ6L5Pb+yFn7rLso+81INioF0Aquxpskr(CUV-oHuq=NkVqm|GdB*_B!&X`)p-W z#|hf6DZ7<;&gvlUfY$)z_UMl^7>nG|(XW!zXB-yniW{L^!&jUq@)XWrZXx9hAoRYL za=a%?ik<{pQ7D?m(^)gHTZr@jGWt-tqm)v{b*NXFvE-u0j|Rfgm<{+qJ+mQ6xT zu5FVo>~ISCt=`-&W!e*vgmRP|HY3kKQegFlB_H3aRDxcabw46&4SRlb{Ik!Msr`HU zGP!iqWisfc0yw!sMROFs;YnMh>~^!#2(?$9)UrK|M5MAHmZ2O_iUifDRm>)x!s~B3 zCn#}J6dFjDW}av`+J=Kl12mlzm?h&5Z z;K^y0yY|;VePh+0sBL){O{`mog!fxC@CiboGiRhVJ!htd0R1bEQkzM#_PM%0rDI-Q z#ZmQH-aEA8Y~$s98(fxuvwuzTtSimKb0^L4cYK&hdpLPIE*&GyWOk2o{?TauM0X|z z0N}gkpdnY==^K&HHA0Sh`Fr}}0j~Plkn!(%@dnt(GWP3AX9nOy@!i|nakB><&9}0h z1ASiH$0z&EIf*(m+$(`ujKW$+x4-+%F+4$Ppc_>#eFb}hdcGa~+oZAYNvEH#VOe>} zk8~Zt_VX3$b{vNLW}HP+vocVu!DkRM^7HhiU>`Huu8W_1fZ4Pt0gOdMK-ZCXwG@#~ zbfJk&Ey<7&brh6QKbcEsvn1`sWZ&5P;{Z}=AmxZO-rMpFaj&mIJ{huMPL3%nGl21*aEs>c=`ZcmeYS>5Djhv?=86Hkg@fi2GGLWvg#i z^m>CO;X&~Er(KiW4~%?d9rgq0p3T|>240L?EEmFjUHs=ghMWk~7&36KqJn`I81$}w zqv{`zv;2MI!Eh;CLm&-0p| z_QT7RSSw5xCOM;LS|U)I4sL~Aqh-@U0vJyXp+mZPYrM`CaImHk}B zDp>jM)pamd97*Hq_?HdGX8BOT`j@_R<@>3frwGV%@F3S1uW$Z3?GzYv6%v%S%s>vA&R({wSE94|qSOSpW@toYY&T$gx&8<+=U$T(bstQeIV_?Qc z=-nk_&;L=*#agB;!~zc=Sb;sL*+p9$X#cg?CWnb)O5pSlz|?^WAzXm{Szu*QC5 zHo9sKePDX*DsGE5U1Rl*^uGk7Oq1}>_E2=6-txL?fn}IjdgmU=U5nx5g$chKs-Ju| zao2LURj|K8p-eqg!&ED|p-sW9w-?or5a|FbRqrvz3=o3Yqrl-~rQr>@D@#8fOl*ey z=qU3)a0RbS{103q#h4RV{A2>m9zKRiG1a;E+&nJ5S9tUW2=7~P|6J@I-mep!vrQU- zAMV*{hSb$d!ey8B$?%@)_=Z;j5i`d7isGuQFq&4&NWeouwP4C3S*+@ql~4nJ)mO(kK|u1*?+z=2Fj4@T#7% zGRR{5BmI`g~D4HEkwljAnSj6xY1OK}<70Bvv59j!OC=YTJo4F)nxFasJy$!S9yASUiu zxmKm%1x4Q8ayBhd37-VN)mT_>n9MGUekcM?uhjsBT7Z&AeQ+pm1e_g$=(+2=>&An16~61@JnY%V;QKLuy|6OAPuZQqjkwj=`ih!!eBn3Y zO$U|&%FZri8NNOi{E1F7=|)I3vG|VbTTmo0c19x9GEciBQQMQI>ybszRZ|PdFsp!O z+UjU=Ki-$=dp#O-m7<|q*?wemY2k%KoHiHpQiBbo15t?2`^|RYRaL{cXt_Nr0M;5X za|aMue=1b4oTsHh8ms1_tX<)AB25Nw0>2dkyEb^9^Idms)GPDqWJ=4wRWZogAOEC8 zJ91Q=sx6M(8!5@Tv7-_Do4BW4pp~vfuX0inxte(2D$UJ)a?M|UewCC4Ux8E3`i^*h zPW6fosXe7wP7US4>W1@&*#`GN%Hb0Wl;<6I+kmC>;k-MC=F1M+;8&uO%cUZw^ak&* zmuT=|Qm=vj^WojXF864V&prh_)hwjdJU@bx;9~trWp*Pa90z`;W8_md4GUE}Y(4!H zGoM4Lh^($+Q3da4u?h2@0Bhh7{_Ebo-)a&w>>ND|$+JydpTe-9_Ko0>5!O-DRG~vD zEB7D+r+yu2JALbx?m`_?BNrC?^f=Nc7`iVEYwlJ_>iq}eg1l}(TO333e&&VdPYpHs zGpx}aTJzbYv3hzIAwt}MHXM&8_#6yr08vLq?E^%b8ATl*!!WIV3pb=}3ujZ6ht&PF z)~Pn6o&w)q!|#*olMpy6*UVVRXarVWh5M%bs^W3s@t-Epa|Y?piKPEXNDt>8+)2b& z^!TM!`oR6(uEl`Lm;D%o8cjT9Iz~Mb*zC96qtDZ#t2Cv^qO0Q?jRm+UDcAs^RfbX| zBLqGEBE-YT%&NfzDpd9S!M>=Tck#P+|C@etEoCV}Yw~bJ>*J({T zYPf&yb(L>#gw;vs>JBLootSM}65Y%ir()HIjB&$ZUm>cn?ytK1Lr&X;4#1X^xR2%6 z1nW4v@kb8b*?HT=nyUc3DKXrDjR2dG6aO=HITkx?6{q zZy2(uqq21k6!qe>jDNB>zXN2FLF6TZQYCyIH(Go7zA$&_-xX|ioFXoiLs~~!Sn79! ziKy`p4fl?_`c*7_1|~%N8ZaAIq2&F+WTa@(nYrMLt>h}H`p$RsH+yxi7^VUPn=<+e zO-wukYH1sc&GL!bSVc?`B0HaqKhdJd>5})9>X#|5fk3m5$J6{^-j#{Np5VcJdqjJ) zCHINd{01u9q_BlMa?_$@E8bKUy_s0322bz-VY4WIqZB!P_wZ__COMHq3b%(&w!Of! zZ-LySKdS|VTnC1L7&!1U+~Bgn2t}%E-r5d*C(!;`bX%7v-@0sw zD}ye;Q|aoD=NctHg;e?i@1L^rlv(+(1wd*B)o|Hh`2xu4op^tyU0i?)=7~&GpIXCnp^yWZAf5bXz0WQZw)!H zk~9gMh&0*Ncl*{Y-vxJO#itLcg6_P%P}#b1oB>5qcQP{#F)13}7o(6gLN)CR6F-sV zQ6E4o_t&kplb6#Z*fZf9dA3WUeaH`W3tu_GALmVmb`BGN18`k-UT3{gH}~!4`yEl= z3m_(NMkD+K!@~9lrC3>@qoEH1kBgHZS1=faR@{r6Q zI3&=b4LT$G=32>*2J*`DO;P6FxfZs2j(Ea!C!|c46vq#;c>A4If*fQ4iEO-_xW=xS z&CnO}gYWPMotL?oiq+3!uaDr-tfxU`LVaEhb~L#q*%ZmZ)zQ8wRI8CAv_{At!UOrD zsJZyXlP*0oc)6;?8D3?hH;OmSxEy?amsmz#GaDuvSe7B)hVS|(MRwS;@?bXUQYW)K zthA=CYKcu}j&9BSkjSBIimx=blq2F;9en{SS4DM!752e2M_Vv!l_6nCHklFb__XbJ z3VtZQuA5->S?ZDHK?reVubYJ59=pJ^`xkfi3`SMIEkR^y%c`@S#((;TY=1RhDdj?% z8AItmlQ3D(Ry`~ykJsuOA`+hJs;K;P=!8jXn_oLtXw;8QuAko`Blp}1$mgORwQO5Xe%-y;<_2pCJ&je)Fl?cb#>5VcC4;dsWWZ=5Tm~{knXAm)#!A3H&2r$ zMi^PK0s@rLY|uP79U4c%pLNWT(nk2FgN6MMTc!|+=pt0cz9g*R1=q4c@|}rRS68h( zrKXj~`N1uJ#6oZ(E;F?1Zcz)RgHO&$|0EnnjKgalJO3eIhW>;X=cs<<)~?&qPYtP% z9AJp@Iq*wb)NuPRS5^hwCy4MlTX*9tCE39$0lZ)>Lno@3Z-$o>)NrB_P26hwDH;Hy|E}J?7Aj-8h&+2%2dk;+V z`6sbkOf`)kCYgj7EaxAPj3$hpwz<~v@S~!r$ncl(9}t2b{(Bt`kG@b_x@Vg``|-ZA zb@okkW6Wsz6Fw;bDV_cXExD}Vh85h2q_xXr0#1>@QPK{roE45bVISeLGb9#XlgG^J-@)0=`|^SdCo z@NT)PfSpLyW4538u55P{)z(z!F926Rm!f@1OQV7ndSUAq(PM3)68-$9N8t2Z1L?@9 z7%ov;Pw@41b%h+U z3~7-ziZWo3_H}c+FbrSk-bJo`trYJJYmW2ii~c=ZARWJ2I-m2qp|8X4Txge8_#AulHK0j^(mq8A^iqDR+6+t{DAnCC zk%+5rn=&PEpTx*&$c&BnwV&zh@|NMf0F7c}zeuYi7rOb8l|4WBF3r8DS?V~LSB*0R z5(W1gLD?{13c%l@=MtLPFZ->25B-%SGq*FvfVJ*(5QbJ>JSHVU2m22$g+x#8$vddq zv0uT(#c!aqbQ9k(`@8E z_uF*)WA7tc8ub31t#$-?5I%a*ry^_lKPE*p_S?GDTG;0OdHj!y=!W>O=LeT<-KuQk ziqT6>aHwN4IxzaFrQv>1tnf$FYpo;BZV`s;Bs16(DNA~-h}2VTxPFCHNn3@7Ab{3v zzss78X9SBJ(%|zEf61D#buQGku4k3)F*QrrsAY{pF~e`7&z0adb_c5}o99B<*pvfV z5!0D>@0Mrx_!H#Fu2O&L+I(^f=9;wVI=o-j`@(0FGmemTgJ5%|J?18gbn67)gm%#{ zTf`NU`K{7StXk8rLlvSm^r34<)FVuxtnWbErOn}F(`ejJpASAmg1ShH`eAxu9q__Mg2G;Pk9xWspI|iD zd_L?!Qqu}G&<;Hkd5VP8S+UxUp{M7|eqoNGm--(=;E_t3NUD-Znk#bqbmSAb9``d1 ziXMzZ`!~C>O0Je3Y{3gc?3_zC&S3tlUvaKycdUO(U|qcvg@6(;_jlxu9R)#Zs z9KlNne2Ni}N?6%n{Jp_%Sa5)){tHdn8qZ%lJa>VUbVXbIDCs34IUp`QA(cziqnW2s zt>=8KlT~gLcXTz9l0`pV67!?WEcVaf?9bRdMz2mtUpD%~{d&2mX0pU-#$#8w>Hi z!W&-0sItP5@vdmz)k9)3yE)wl=@Oe>edRmswTVXCu!yf9>|VwkVE14IVmoY0XCYx(dgqH$IBM-aXDB*FNNZxTX_!3S5=VJ#~uIW&?l5kUWuz zOAZqb;k~!m*kM?6qH{RIB|os4%7!ezQ<%*=b`rqF<5AR1qLN}&A3JyvRn?~DEY~vj zJa0^nucn`TGjp*hS>s=vodzh|`CZH9eW<1B*fClC0kOn2-!e8$uoOAy5e^zS6*|cm zJL3kiaa52yVLOrOdL{~_t?f97oG%X_J$}bYCBaH*JICHTD@Psr+j z&r<;0nbxuSPf_CwX`p8>9-#01hC~^LBX}C14GF@oaP18S!Zr4(GGXP<5%8kY$h=v` zXj-ODo1rh9e&?202mVdh(>F=4HhnSltnF^o&(tiSIm5q3m=1cWfWTOo#V#hsSFv$`3k)7tOgIKhVEg!6YXr zW{FGNlBWQQr(tLaW51>}O?hm)qKfqt_pw{KEAnn6p*%Doe@KQtdK=Msm)=*NQK|*y z6<#Rq&SjFla6H4;mL+oy@zV+1lq%v%ukHK;jNjc6>v~Wbr88NM) zeW<=;NnB%+#!(Ey*A&LEg9G2OV=j})6Aq-QltxBDdjqh4eRLSNE%R%yvu4@qMNXW7 zPn;vzFZ$+~pXxVEd8OZv93V<-`N}Tyk8%*J>FL2O!`Q^Dk^Z{r>y`Tdn5>ZNQ;J9k>EFt^N1sMz)h&R-cv&{T1hD`UDnb`6d>0eH zmmZprJosMhwW+9Z^7XbS;4ucyoIRInDI*tk(rsnBI_fSJzW)0#X4GeH$%`SeWWyGo zR^+CRO@T1NiHxJ8?7q~U!NS2XT8X7DPb}Yeb#W|T8uCq{*HV9v4ueZh$6-##e)(?9 z>wI=#QQAeW+<3=p%e|kh`$Yd}J|?K0h^gVwEgtyu?3adNCF<#1OaPw?JJ)V2^y2>A z;$|2X=U&v9LiDyv3lU3*7Ir?d1?stDuON5X4!G?8i@neJ0{h8g%pI!XVY;{MPE?y- z$x?z2#8N<4(P2IuD;ScOJ{U_U3!OZ{7NS+iA$_7QZR9E!TIxI^IL0#g?d5lHFDU@T z(50rlDDX$r9QVNr?g32RT6TWw7B0u6LpExYm(rqq(dJe(DsqT#?oBnTHkh!+#qH0_qinm zZ$pfG$f-8X;loCBEGjDdgL&GGc;DH+TZWac(Q0_PVbuIeQ?;OUtDQMsgHci?d`f9a zL!-Aw@-vpJ_k^M|0-MOftknSPy3oGveOI$KUIb1oN35=Bp`ioNWX%d#%^UNWQmua z6K2?1*JlmMSehA>bT-OM4Q@qYjyaxaM-agri(Na7VL39gb-SEJ+^<91?nA$wsQKEI z3eq*w(usM~ZTzXRlZX&1_$CgR;pajGu%5YWjrwvyqW1Qg%r^{df>;z8#7gkJ%A%~t zZ|tVhlRTA#2=ELDC~MUDEziDg@_U(|Ka9z5?KkKuShu{Wt#NlkP*q*v@#X67G1tJy zYv_*(lM!CmoD;~@Og}JJZTk)VG4u=}DZ!qlE*Sj@d&kVtlotQrD4Oq%Hx$Q7>ZKj) zeGEShL&ypDC#dC_Qv>w;BE$jVWvv?T>Z9jj8*r#3iM~7>#=&lJJ3(GYBN>M6;-4hk zonk!K9+usGr8K@$jx3A{`K9+&_yyb;1Gks|%TD|9aDP3*?TSZkV6-NCL@xiJi54;- zm7D#6(L@$c`Sm@S44sk+>J~gBW@he%*5VgDXxx%MbaK1AK7Ktv`s1agbXM2l!}2wx zedndd=Y8PB-M4US%lm#~YO3qN`QA34c`Uuzmwao}``XrVJ{1!l@=D8`WT~V9B^h~K zOGEcpPjdl)b&s-;z4a4DY2yCTDJyMt-w1>Ja_Fk04v_H)RmNVw1J`RmtFtS?|Kn(+ z+ZX+5@o2{WJi<51{as+o`R{Xo=N{ohtl~JIfp}+M)Kkyj*^A@iAmGn2Dv;%B*J(nD z0w4RiS!y;7o0u)y6=4nhi>8JW#$#YtNr7m#MX^BJep`x$9X{T714@+kwHPKIbt%Z1 z2#l~iJL;&( z90(@6$QzAPs#=>wl&DEe<@d2qu%!6j2VE!n0b*JiD9nK2K}IgC{e2 z$xN~4&dFC9lr#DpVy8)E*={fhF~+LmM@aj0$APFyYEiU7YNqG~VyA9htG%+Umug;u zra07EP-^ncmAr<+x@PIQTITY9jo$J>P4*>CTZ=3f*2I}4?%VF4!~Tp}^aOSHjqOe72?{4q`GxfI03ea*65I z#T0G~rvU}nLCetAs}($?aSsaEoa#C;CEDX1S`Ec2VH-(MC{`TMHq=q7=GR@wn7#4f z*U44|b!m`nf&K<5BkyXsPx^bd3rgwxDrvc%_?Zq3WA)RX;UOwikU_bqS~$sT4fXT) zrJMgbs=vdK=Sr)p(-9V%?v>2G8jP^ds>e_wiNL9U_&7Ri*e*;&{yll>RZyrFN!uP5*uP=6;_tn_g--yI|`7J%nZ z$?=9`m4#@9NxH|P7!&*7!c~p8y*8W$45FKwZi3MDxh0qrU5l=uxGBZ!26X7@zOARP zDLNYG3ZRmT@d`#fu_%9_9N+Tj zMf+}YZn9R;F7ihzlcb3Mef+b$3-7aE@99~!ShjVf6M2s*jfM3zZK`RM=|xS=DeCH|PVun5MP*U5+X@DuSZz&9^5(=4ZXlR`*Z1AJp%MdM7atZyUTZ!My-#X7qW(Vichw)=wtL5QlUz4$t6wdYUL*#>>>;q9g+~6g z`rSs>i|E%dZR*~>Oh5_Kn}HywX*J%7ia=j#>vk)36u3${1xY_Q@?+x1LE;HBckO=> z7i}}`Eek#W%G*&A(#l^PK@B|DFIlx12>^+D-h~j=J1(*gv0y61u{D3wRmP8>W{|c? zp|$E&9UW^kGqm|xueDkcG>YJFYAgKe44~!xqHmTS1}1uGvGSFz)r*{A1x>MMj(-M~ z&F_RHdsVFdA>1OZInFdoCkt&&pW81hKca6SUmY)FfGW|FA`G$05e8uc?*tou8vqPe zIr*kok`$;LXMG+A_b4K$$VQL8?@yr&q-E#Jjxu1f&+kETp=N;#aGsgJ=^`)xz-fOKn=e7KsOtz18qNCxSC!a=RSEOd{nI|_bP&b zG)Xxk*+)_23D9J?uUj;zSm)2gNW`x$M`Dg*5s9A?>cAb=xX|0pI~@rNXSpxj{PON% zw-4p+sLWXoEMQZCqP2W*ZR!O4nWT3|{1xVW%AOqMWMNC;$gIr8mOC#}Mz29JhksCF0ou#ua3O?^xmH3Kv{NOR+9PKqkpAtXITWJmYCsm+_ zBxU5x--nqReqQCJTe*%U0_}1$fkil3slqs~wW}=qom9->&B@1$BSQD?v;Y+&Br^42 ziO))Q0mA=#p5b}hp#OkD(Ze2T=WrS>C%&n;8G1c4VP$pfUwoqdFteBP=Xe4Wcj^vk z_pcvHI1yky3ifvCEV=K8mwdW`vkx5aqK5tk8dJ9=T6Ph;mCMvoU5keDjo3=)g7#Gz z>UXI&$WK^Bd|Jd_jZ>xg{}jdk60|wC(9ucn)a1PTW_+9hnw26kS5g zZlk62u+Vy|x(&PN3BAF?%5LI)={@fj;eE05p=IBbLtV#?XWHfuOB1gB zmTQqA$6VIjm(qT|J6Fz||0w7PwEE4(Wh)W*3f%mS7PG3)x%ihO4zc-? zReq2aNhvsIqW-n0q#UD7ULGuFdt~U;Z;x7~Z^u`8&gs-8aBkgwxa^Qbu(-37mean` z%29_H(ltFY2e&$?n`TALR(Lg*_*_+z)_$f9;%{o0K8-uTE-wJ24dIoQ`R1MnHl;h# zApRbqv`)zKnsK^R3dnD;%6LURNYPO@WXh5+hnASdlK;&0Dr?U&ZNK%}@snUs#3rLI z6q~baFYC4i!_()&(9i#4;esmj+&nP9Zw1~Ke~EgHOGBR((lZ^Xdm0SF zBFPtD1fu}EGp0(VllLH2P{k>R9=+;vU}_lcb;RUCF;zdi2nnU_!_j$ zp|4oRN5OEdv~ia$uHjD3H<-H2{p7vI&T)8fk~WJLgv-dO7>=1gns(6E&311y*2{OC zXJS3h(0HPy^+3Ofni}J{h4C|6jyj{#TixxD*bYw4M|o5!kniM?X@i{J)N(=S@U+P^ zdwu)DT5Z?%EZkoA+@(wZ81SajjNx6uN@-!?w$^l8TQbDbB$;mwExLvj-wv7F0D+xY zK~8D^$?XUs1S7ePm-Dn5-`NSOq)EE%bAa=X&u}+DvJJ^>VG~{bu%2$*Rx=`e5ufdn z>N(dpDg6ul4jVsYD=uQ%b{*xD{`%wn9l0fB>y31;k7760C8*dYa&!eLr=5q@Ths1s zsm>{>YrxJ_(rkEXcGCI};)-}6WTzm$53}!CDbz52uRuTe=0r`vH%1btMR^ht6;% zrRI-txaC|Y_>OdV2$a-f6dLTHrubTcUkXvvg^$G8Wy$2`MrTJb?MwFT(6e+TEdNcl zjk}eCx437&0~JUls<<+@n8gpS`_hwX)T@1p4;HEwfT=IlQo2! zkmjLLvFjxm6ae3(8J=@J$ip8ZQ@_@cyYFWovP*CZk7K&3Zko zL~Dr`D@BPUnOzKRDzyA8s>1~`XzeQ76+MkS2d<+A{j~6!r62v%cez z^3QY5H@h$C5Q=LvVWlHgq&)c~+K(Kg*HD1vpS7M#hv066sNN6#pUt`!?0*$C7Nc(f zRNBC$3kMGyMB{~l6}^f3Fwe%%>RM*Bl4N;tch$Xxg4&JfHaD6FF9*A21=k>BZ{(EM*nwCVytZaKxv%`4O4r^n zABvZb6CbLdE%N}ma?@rHXrOUV|LEPM89@>yW`gWH>TTi}<4e=wzWeiRis;!zsOXwE zrJ07?(o<-u<)+FyKYcwAunbW;6c2I(E2o~0){#bwht<;3?5SlI7jhdZqn(A++f`_o zPvGjBH>-<>zbD-H^^(VQYs>Ytaj?p9c&-D@WUY@@V3U)ZEz=VW{Z7c`sbYe@bmGb- zc0K)l2rjupM(rL2IKyn3<9LY2VMic!_TnNH5EH`n5&iSLgaas~QA^+sX8T2@mk0}H zAvJ_7jmC%fpEE2&tgA-Cg)vw<4z60d z9^20Gh1mm2zoOZvay7I2<7Y~_`rbofo3%x5my}R*n0)CH%o=c%IG!L(A zC*}}}U|zw8-=6wq7~ZD_?XN8+c zo%|wnCS&AsSTF2xTeOOGFS7-m<}r%ZQANulrOS5Qf%}?YZPJ+8)^em2EDbxjI(Ivw zuwenP$%)l?DcUscN#(Y=&A)dNMi$sRXPJKSwO#Q4&TWGR1p1IFYHn58Bq^oix-_&c z0xCk98u5oY&&?c}mnEfk#b@x%-$uj|gi9NJE&7-_O|f#%wH^3@Ct+evLeakm$@z*! zO3b*$lv`pLewX_d+8p_tklvV#rEE;g_jFtn2Ev#f0SrlT#Zbi$gjdlIUv58t6FtlqKY=%FFUjrV=qH z4ULpX#X>OTasOuW}-+zSQ!Re(yOR)q2i+JVq*h->-&$f06F> ze%W8tc8$h@FnsR26>Jwni~vj*5t=L=CbW?`tHvgC!?e@CQftY#L&?}<#%*HP!_jBy z!Rf6U-Ax>E6l6w=zd!D5KOAlG^4P%mR7ls>}frZ>!qB$ zkW%VNqR{eK!hr8wH}Er>Nl?MgH}lgw2bf($ORqWN?&=@jw!g7n*?%9joFmLM$DZq{ zckiV)vMdbyS5zYOpo;juoSuHi4fnP(ybkPyt`o}{Z2hjvZ2e(s13&%3!Qm(=wzRY} zc}e=MtA1;G|yMY%erDd%Vu0h|7w| zoQK(V^w2LR8#WCc-EdD#1G$0J;`&+a+PGoxhgq2mC4A@k8U=(*qyEU)>i_K!ksA6Z z2{XjCep_PX1vkmx6aZB-izm_%#W71^`DlV>`Y5F1ZOVV%Uu-xvIaZC4$;H(zIGzAY*i>4&H=BU(g z$i@1-8qbF$k}uwlK*eZOQ{2hPXkifiaLFR8AQ z$}eSmEhdy;vCeRgWWh%Lb|Iz&HPz$Ja5*{?F_?F5$V?7B0l3%u=sR&Fz)S(TkBvj~ zi_FECX(?tY`*$fj1w$YY5~hg#bD53u%Ck&EVV5q&koMQAs?_%X`{*v3Nqs9AkSZ|(U*0$m@%`Xf1mq5Gb6s)R=K zRr?DWcYcHH+^$twdB-?<$%=FHMtvxM8rTTnwS4t`NS~RyHp91*YLT8Ue^K+HiWJcC z`HMF;vw+zf5nL%Pkw$(U8l}@ZiCYX2T};2v^h8iQV9_XT9MM1>u1BqHM?&)3Oh` z|1z|r38UT{U@M7}rir18tG)-G`p=ftMg5N@z(=PA0F6ymt)#WrhzrUqdKf$vFD&w| zzT)X-dA#4V_yQ(cnjVkWzuDO#hJC&GdtM12Z;3qa^&gJ}E9f9jr6J0te}@x*k=fk! zwurmE@@%cTe!0K-dKGN(JUn8kUgf$e$t*YVq&vpYx2N{V^nlWg8B@gLZpg6yFiAPq zLRn32Meyx5m0i>|R{h3LX!ulHqjz%m&$vz*NUz&OPiSYMbyQV5im7|3-o;vnY^}AJ z9gUm3?8B-8>ZW7$fHG;cw3N{qo*k$gJ7m`n#dYc6n9H$Qz?{ z_0020|2@ABu}BbFQcxD{E+Al_fS1+&N?9?JDX7MBT!nW)y)G!mN(rlz`uHQEC;Gw` z&Y!u+nk%LGeBwfum>JO7U&FWe-s{b)v@zte_;NWI&lDa<+!pgv_`uJF!;8(HA{H284cTWf>scWj_29(KR*xr&hkBL0_r_}u}YQ^`UDO! zOVn7jAl1|W1&gNf4`3zm+$4`rbtVXhpGkm_>4Y zxMz6H2QAvXDPs4DaL;Pjv$tzY5rg~nBBe?>^9SWqFmdwywf>O+tXsthi|Sa38OZ=> zRx#9QqSg$XB&Ut?i)pJ9Zv#wk1Ke@zOP`fl_vSyS_MJ>&Hjr}Wq~k{YkczlaND=q9}IeH z=QV8QR=~Aurpj&Imzh(}FskciO)el5|8yOr>5wVGDIQm$vVJIp6#(=OY{JGF_${zJ zR#(NAo&r}EPvxw@;dDOimh|XNJZ9KlvnzD9SDbk@&_$04LefB+$VC>A?aG;IYbmQ6 z_mkWy%ba$V73U5n3sVJ4u$wpR!YQB?;84{_70$@cmA(S2*$O;OJU9c3&eEZqHHQmy zUd_`O1U2GC0UZs{l+z#p*asiu=uRVNbqG_Lt-gA)&JRU; zlWj_Qk0Z}^`VTOy=T;j2@AD4;Z43N=wE*J(%5zkkk3XB^U6u`olQ(TwI#p+7q%M`V z51qP$pT^gR-$SYQRru&{1f0I~^?^CG;j6mIY%`mz9x`r2nyg?t z$%jDy8pf7jW5bWxNxDCERn@yjeB6#B^;w(xSX=@Gm#|7!cRcUYISbcR&@<-4x!#{A zgIkKe&pgjEd3ysS2rUJ-%oZD+auU;P_!-@oX2VB%qja9@*mIkr!{~Z;=QM_j-MppA=q-URk00eztZ~d{bOl{?0xe3ve8dPC>Vc zjr^OWjX!+p@{0#>ckTwHNBX!ik@YtCPV0w`fI0{N1w+~RTh92t0!SzS*?k7{a_jmRn;W6gP>E+4ysJeJa$Z`K4T1z&JClA~(y%h#EC6*&^ zE^LrG{gJf9K1M4BsF*zzd{+ENtC6w!R8Ib{giZ4BxRg__0{OL;|0BvjI&3L3#mk$&@GJJe0_0KTPV z(ApUcds#z7Qir#bp_s&GJlB+hb0g-2-l04vug`CJ3MK4W5{QU9?3{T*z@`(b$RxJc zF&t2|W{9$oIHRd_rSo>$`}9z0h-Bm6PSHx$@nua0ADp_Cv}1LAw-4sAW2g`65Y8H82s$u zhB{#bw$|RB z*OB?>t9k~<^w9$c(ET=lbxRea^=08?Z|#2ICJV{(>6=B_fNSgR z+Lt)ruiht-Z(-E?eBTEf_a}A?+YwpDX|&;8BP*I5EH0K!wk=dLz7x;0>yL?R-0s%% ziAi6;6B#kOf}hYqMeEI?140++`lHkuK}InD7q_P-hn2ja$!j)vw16FY#B>^?Axh5F z26VaK?umeh>ga%WsM0!L>}TZ7hbV-tR}aM<-uC_VRUuKR>_CHSkjaknj)vXPPSmC7 zLiaq2eNTPxV?S^Zac~}O4;ibarW@N5XbQEVrO;7Jvx0CQZ1*YVpwu>Q))$iy%*=}Y z!4vviva8ojm+L`-9G_fk0D+f7+$!DMq8*bBM*2}l`2I0fC{3q=uAHS`Fq04Z5Ga#= z#sqIC2L8D%c2TwW^377R@8utyAZRZ0M7KJ4#F(4myDI~2>#$J5-xuZA*_)VXwT}Wt z7=`tIaNkCPvSJl?OGL1s}Yw?(UX z?v^BzWt7C<(gbKgg{fDTC(2av)XEbDSjTDQfgeGN0SsEWFhW*chF{`Gp*ltVuXP zN8-T%dOCx&X)f2|w(xB5PD4FHp8+f#=LRR-0);7Wsi3VY#Ei4N0j-9tgtdW`2SLJl zqC?dNk<9s(y1Ji~CP}3N@WD*b6ZCWtX4dh%FEo+1I4S)&GEC6qVIbqm-Y)tu8${|% zFbfg@A4*o_w>(`B>)U1uWk#`6W0(!nt}R%V0XBXR8Uf8Fu@ak@g2oGVb)3yH73Yr% z8Q!b{*!RUXe)sI&u0Gk~5r`koV&}z9l}cNasprCHY;FL45YdH-q4Dzu^X*^(rB%W> zjdxy0g0$C9ZUY`vKg_ysK&UyW4DRFQ%oX0t^DhlQin68h%^Oiww=81qTJ3)ri%5P_ z0QsOJivFL_dShV{?z*-n8~ZI2cS}<#X#9x1nbH)4a@`H1ay!rXZR^|BVvR z{*4l9(R7%iwJklx1N=DXce8?dLbRL0>^reA5J9x?OBaIS18xr@h1!vgIhW#K8HO~H zfR`JF@7*r15C7;4?K?5abb1cOOf#ZmWT71GzO5XPbd@1^8Eoz6`T|VBOE;dm!bMjx zV%u0T^i*BY*Rqa(iNK4XXI7BnJ4p7vVo0dg2e*5ADW0@*Ppn04@ul2dJV$w1uhVsm zh9Rs<99somx49%77xG1_^^&;+5E|U2#d)h~q zzGhdx$oE*;f^XgJ+Aoijr6)tI&Vkujmhf*$`UgWJm_HKpfRUn0kf{&$$Bp7xbS!VI z&+*P-_uFoUu}O-T$1JEUUQSvfH?^A?yF`Bo@QHf1PY;UK4Xd2Bjia1J68 z>pOXD%21^Ia9GhoB?7+uF0l@+N=Nqns#fp=?Ao>I6(Vh7C$5^>wb_OZ9e-tCWB@}$ z;z))6N$9+cn(*(1=$roynKQzJfwR4Cx*80TG!re4S2x5(_UFFRb$k~A(yfi(ij4vJ zw+0#;?Z;2#FEBn!k+BwBwg`4!bBW49)U;6?Lp(-e^BLOJ^KVEd==PM>{2u-UqV|AP zD|@1Pb~GnoiU*JtW_*ZK&>)=q*BC2b-R~p+jWNscP0h~dYlD8Qjlgq{$Y`d#hKry! zi_k&0%Gum>vQ!*uBy{U!>rH|m!(KkT3w+`M?(RK*50|B{&;k zm+8V84aoP4Y-3Zhp9^28uYsuN3jpj0@nKPADGlW>Mlk+fu!Em}r5MRAmMTlbgksw3 zZ~f~UD>OW=Q{gCt`mjl=pwG8ptJ<29Tg}@fAn{k z`dPtOl7*&iC&$qNg&)zuBAyL;PFRs8Cd66l^9ETZT!+z1-$a13fn3B181(JXYI56t z6=A;c@Fz6JvDF3-2oAb5xX3#!X}a0wnDD+DkY)xQm?P8td`JDOTf7v_QTG?C6wkgK z&cHaE!AA#~K_cNi-2HvVp-*4kGfB<72)RhyWcwV=m(T4p(=)i}ye<2s+?4$Ri~`oF zNcOktpPYctA6p2sWS0l6(;U6;H531lf15!$@mvI4cAObH(^9tDn-WC013~Fv6;}wx z7{Le^1aLQ07OJ6VXEOogg^{aE;p7%MM8%JQ;+x*o(#V%mi6GO6AtvF1Hi6$-`IOY6 z4!qwxuU!MFckn*Ro!6BcfvI<~T9okNblhGoHz(~M0~mJ*gGb}j=s&b3xo)iGSBet^ zDIA4MVT?^9icFz{=7jqb-R)dI(!6w>{0YHbp!G*Eth-@mcSTUI#HJ5%>((klup&*K z%#C6$r0P$k>UX4|7#h+r6oZDs=n%Ch5#CA|4>Bo;Od~-J?uOJ_i2KqFlAH{ogX<{+ zB8g#MN}+$0!U&r}3kw0Kil9Xj=iU%Yy7B1+e_oSuYoX>vx|dZn0#JuvXL}R$A5Q(y zJ>%k$|M^-b{+VpMRQ~J)4j^;}+$3c0@iR&$fyvx0`$J&t_Sx zU!y9ywmEd(23&sAJ!mf13pWqhI0?Pz1q?9&t)YCKc-{q1^7~=-vO3rIvDbC*E7!C3 z>$s-~VL-uE#OMN&WR8v0OB+@+7I$5c*#%#E8!h4Xw6BxvMRj`>=ksc{D6Z#MWMciV zF+ryeZg_U=UjqX~v2p449?%(`jWiGUE>3fBvM2(0l+umWhpOOnX?2)tb;`gQWzs9O z;vDNwJ1%m#_Ko=#I(3rk2Y&U}gaRs3ZG#e=<{d+{KlA&d?Du@sC zoGpZk`LU<>`;L#{Xnc`x03?HCM71=GZPe^j-*^+SoRRcZWf$e#Y~|8|X|w4q@&^e` zSnU`6uJWrl@Y?$X5O6UD*^;;2$x$+w`z)T`U}!uHB;F5C_;vp}f_TFV_KVtJLSn3z zQT6|Th)Dds12*7-n6PqJ!t9FMyorh>p)8m|6#5|T4b=RClRts6L&cbr`iO>&!OUu{ zFEUtPX>OH>u7#NR8q`n~Nn>bsa=mFgo@lvS1+^FLug%}POG}cDtz9FlTpcG{?>g}h zTlpw2I-ctu&x$udj~zfF*A}~LLPCPOXo`1B?~R#+8`8Y=0q3^Cua%k~rVv`+m!ZKg zHWaL&3`Ae5=eu~L4!Bc49P2vEGG-b!iW*tefXQu6xGPQIx0OFBxoSmK6f1*r)33_w z^WKcZPGAWKrW)rv1H|0D*U=ur}Ym2jXqQf^1zxtS2q;| z=z{ow|Fuz%d!Ck_gy~gQutbqA$kWs2cKI?YFNjj;l$JsFZB@G3y@fpFGT~Zc39w^V zJFrkK+u}evaU_r~9v3qINt7>AsraGGU$Se15udG3Ym8hKZPx$NS0v3=(On7u3)L6$_yW%z65cQisj{uR9J zc0JLnzZ<%|q+} zGh3+XCG7MHRzf`&_x^(5*t+*j4@vauQ`^@UGK;0D)j|F4z3?SUYBr_BI@T~Jn{#Ph ziM1DeGePO*q09Pg%*wt%{M$0Prh%2>?BuLf?nyWQk|v~i3gt4VUh(Chw%PvOp4qdB zUHjEJJ*?C{wpdHB>P&G8ei*~7n?`8dqR^w51+Pg^VWzNotFxZ?tYtmimcot;!rpNE zHb$~V;;PllC_^mJ@UCDm2SIlKHX20#ptyj-gWyldl5l=8nIf|bl@(Dxp&xo^%(NWf zdYDLg>OAlu93S!i(V5)7^RxCaaQ@an=Pv_OK)Q=M{EGf2A(z&de?O6HBB6p@fjS4s zAK19rbmwEbYuzY+thdy=CxXKm2f`mrp%2lLl7>FRXqu6(3&*e6uJSwh|ApKxR1GqD zhtNqv1$G#yE#H$CkaYyshuHJncRSzb;wLmRaAdh>dp-!TcJk17bI5mf>Tq-_X*cb% z(etmlSVek0xwoYeu6(M){nevWkl!lc>1Q#z6dlVn$uYofcE*`kku+OfhV5xxHusbj znltDd0>)ZGCbA8{lMC24JVx5mZ1Lgx9s+)q5OwlGczAXWYypD)s|amSUB;E~Jk7+O zC_F3(MeaSoqml`nzF)tOZ#OoTbOxTw>avsm6F5U1CC^@pq8oj_o(BzF{bI29CopG+ znqLpYog33@zjk)x-()pjN7T4ifCcueqZIZ>QVu^O{PTw{m z=y`j|Gih=Q$HFt2`0lzFkGbymF`9*H1E9FmG(@ zLloL}!~cjhB}+K+vmczp)wP`!d0lq$A$Zn0LeTzh?|&~MviY2IiuY@nNPC- zZb0_Q+l%9I08uQnnS^^kF|ITBBK3M_r28D_Q)c$>rLNHT(DhsBZY-dh_jX;ey!Wop z(F|B%56y?~xmO#$$}2+nvcLU)JwE*2-sRF9z`qQL3@N>al-$M+;jP*QXD{-m+d$5! zhr�=Am^owR?-1ZOR^D;pM7YdmTD$h1Wf@1h>GQMD8fF`|YWhMX%(bWrKse!gD2@ zT3I%hByX4&I1&kGVhtU&u8XzOQIBi%6a$yq)bSGuE~6l@ZN+YNEElCyf4@QBk=z

    kh4~v&rPC6zJHNc3Q%H{S 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

    ZS}0SGd+|V|jhOsqIOBTUVrEGCW>I!4(m$*gX+w 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 G0skMfDWf$2 literal 0 HcmV?d00001 diff --git a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/CustomersServiceClient.java b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/CustomersServiceClient.java index dc1e57281e..f3efd61050 100644 --- a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/CustomersServiceClient.java +++ b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/CustomersServiceClient.java @@ -30,15 +30,12 @@ @RequiredArgsConstructor public class CustomersServiceClient { - @Value("${server.port}") - private String port ; - private final WebClient.Builder webClientBuilder; public Mono getOwner(final String ownerId) { - return WebClient.create() - .get() - .uri( "http://127.0.0.1:"+port+"/api/customer/owners/{ownerId}", ownerId) + return webClientBuilder.build().get() + .uri("http://customers-service/owners/{ownerId}", ownerId) .retrieve() .bodyToMono(OwnerDetails.class); - }} + } +} diff --git a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/VisitsServiceClient.java b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/VisitsServiceClient.java index 8fd2febfd1..38a2db5085 100644 --- a/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/VisitsServiceClient.java +++ b/spring-petclinic-api-gateway/src/main/java/org/springframework/samples/petclinic/api/application/VisitsServiceClient.java @@ -33,16 +33,14 @@ @RequiredArgsConstructor public class VisitsServiceClient { - @Value("${server.port}") - private String port ; - //private String hostname = "http://visits-service/"; + private String hostname = "http://visits-service/"; private final WebClient.Builder webClientBuilder; public Mono getVisitsForPets(final List petIds) { - return WebClient.create() + return webClientBuilder.build() .get() - .uri( "http://127.0.0.1:"+ port + "/api/vist/pets/visits?petId={petId}", joinIds(petIds)) + .uri(hostname + "pets/visits?petId={petId}", joinIds(petIds)) .retrieve() .bodyToMono(Visits.class); } @@ -50,4 +48,8 @@ public Mono getVisitsForPets(final List petIds) { private String joinIds(List petIds) { return petIds.stream().map(Object::toString).collect(joining(",")); } + + void setHostname(String hostname) { + this.hostname = hostname; + } } diff --git a/spring-petclinic-api-gateway/src/test/java/org/springframework/samples/petclinic/api/application/VisitsServiceClientIntegrationTest.java b/spring-petclinic-api-gateway/src/test/java/org/springframework/samples/petclinic/api/application/VisitsServiceClientIntegrationTest.java index 04e94a16bf..5e8744be42 100644 --- a/spring-petclinic-api-gateway/src/test/java/org/springframework/samples/petclinic/api/application/VisitsServiceClientIntegrationTest.java +++ b/spring-petclinic-api-gateway/src/test/java/org/springframework/samples/petclinic/api/application/VisitsServiceClientIntegrationTest.java @@ -28,7 +28,7 @@ class VisitsServiceClientIntegrationTest { void setUp() { server = new MockWebServer(); visitsServiceClient = new VisitsServiceClient(WebClient.builder()); - // visitsServiceClient.setHostname(server.url("/").toString()); + visitsServiceClient.setHostname(server.url("/").toString()); } @AfterEach diff --git a/spring-petclinic-vets-service/src/main/resources/application.properties b/spring-petclinic-vets-service/src/main/resources/application.properties index b82049ee0f..2b931bd0c9 100644 --- a/spring-petclinic-vets-service/src/main/resources/application.properties +++ b/spring-petclinic-vets-service/src/main/resources/application.properties @@ -2,9 +2,9 @@ spring.cache.cache-names=vets azure.keyvault.enabled=true azure.keyvault.uri=${AZURE_KEYVAULT_URI} -azure.keyvault.client-id=${AZURE_KEYVAULT_CLIENT_ID} -azure.keyvault.client-key=${AZURE_KEYVAULT_CLIENT_SECRET} -azure.keyvault.tenant-id=${AZURE_KEYVAULT_TENANT_ID} +azure.keyvault.client-id=${AZURE_KEYVAULT_CLIENTID} +azure.keyvault.client-key=${AZURE_KEYVAULT_CLIENTKEY} +azure.keyvault.tenant-id=${AZURE_KEYVAULT_TENANTID} azure.keyvault.token-acquire-timeout-seconds=60 azure.keyvault.refresh-interval=1800000 diff --git a/spring-petclinic-visits-service/src/main/resources/application.properties b/spring-petclinic-visits-service/src/main/resources/application.properties index fa9bc50042..00228fd42f 100644 --- a/spring-petclinic-visits-service/src/main/resources/application.properties +++ b/spring-petclinic-visits-service/src/main/resources/application.properties @@ -1,8 +1,8 @@ azure.keyvault.enabled=true azure.keyvault.uri=${AZURE_KEYVAULT_URI} -azure.keyvault.client-id=${AZURE_KEYVAULT_CLIENT_ID} -azure.keyvault.client-key=${AZURE_KEYVAULT_CLIENT_SECRET} -azure.keyvault.tenant-id=${AZURE_KEYVAULT_TENANT_ID} +azure.keyvault.client-id=${AZURE_KEYVAULT_CLIENTID} +azure.keyvault.client-key=${AZURE_KEYVAULT_CLIENTKEY} +azure.keyvault.tenant-id=${AZURE_KEYVAULT_TENANTID} azure.keyvault.token-acquire-timeout-seconds=60 azure.keyvault.refresh-interval=1800000 azure.keyvault.secret-keys=cosmosdburi,cosmosdbkey,cosmosdbsecondarykey, redisuri, redispassword From 7141a93bd343ce564723130a0b730cb21666d6a0 Mon Sep 17 00:00:00 2001 From: VaijanathB Date: Wed, 17 Mar 2021 00:26:24 -0700 Subject: [PATCH 10/21] Added Sample code for enabling Security using Azure Active directory spring starter. --- README.md | 4 ++++ spring-petclinic-customers-service/pom.xml | 12 ++++++++++++ .../customers/CustomersServiceApplication.java | 8 ++++++++ .../petclinic/customers/web/OwnerResource.java | 5 +++++ .../src/main/resources/application.properties | 9 +++++++++ 5 files changed, 38 insertions(+) diff --git a/README.md b/README.md index a246ffea2d..a22db80109 100644 --- a/README.md +++ b/README.md @@ -128,6 +128,10 @@ You can then access petclinic here: http://localhost:8080/ The application could be reached at http://localhost:8080 ![](./media/petclinic.jpg) +## Enabling Spring boot starter for Azure Active directory (Optional) +To secure the Java applications in this sample please follow the [Spring Security Azure Active Directory tutorial](https://docs.microsoft.com/en-us/azure/developer/java/spring-framework/configure-spring-boot-starter-java-app-with-azure-active-directory). +After setting your Active directory you can enable security on Customers service by uncommenting the relevant AAD sample code. + ## Next Steps In this quickstart, you've deployed an existing Spring microservices app using Azure CLI. To learn more about Spring on Azure, go to: diff --git a/spring-petclinic-customers-service/pom.xml b/spring-petclinic-customers-service/pom.xml index 2f6b8285b9..93292feb58 100644 --- a/spring-petclinic-customers-service/pom.xml +++ b/spring-petclinic-customers-service/pom.xml @@ -127,6 +127,18 @@ jakarta.persistence jakarta.persistence-api + + diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/CustomersServiceApplication.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/CustomersServiceApplication.java index 3f416bc2c4..20ded28fc9 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/CustomersServiceApplication.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/CustomersServiceApplication.java @@ -22,10 +22,18 @@ import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.samples.petclinic.customers.model.OwnerRepository; import org.springframework.samples.petclinic.customers.model.PetRepository; +// For AAD Sample +//import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity; +//import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; /** * @author Maciej Szarlinski */ + + +// For AAD Sample +//@EnableWebSecurity +//@EnableGlobalMethodSecurity(prePostEnabled = true) @EnableCaching @EnableDiscoveryClient @SpringBootApplication diff --git a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java index eed697daaa..2d3a4ddcc8 100644 --- a/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java +++ b/spring-petclinic-customers-service/src/main/java/org/springframework/samples/petclinic/customers/web/OwnerResource.java @@ -27,6 +27,9 @@ import org.springframework.web.bind.annotation.*; import reactor.core.publisher.Flux; import reactor.core.publisher.Mono; +// Required for AAD starter to work. For sample only +//import org.springframework.security.access.prepost.PreAuthorize; + import javax.validation.Valid; import java.util.ArrayList; @@ -40,6 +43,8 @@ * @author Michael Isvy * @author Maciej Szarlinski */ + +//@PreAuthorize("hasRole('ROLE_owners')") // For AAD sample @RequestMapping("/owners") @RestController @Timed("petclinic.owner") diff --git a/spring-petclinic-customers-service/src/main/resources/application.properties b/spring-petclinic-customers-service/src/main/resources/application.properties index f41366f055..c2176b9b31 100644 --- a/spring-petclinic-customers-service/src/main/resources/application.properties +++ b/spring-petclinic-customers-service/src/main/resources/application.properties @@ -22,4 +22,13 @@ spring.redis.password=${redispassword} spring.redis.port=6380 spring.redis.ssl=true +# Azure AAD properties ## For AAD Sample code +## Specifies your Active Directory ID: +#azure.activedirectory.tenant-id=22222222-2222-2222-2222-222222222222 +## Specifies your App Registration's Application ID: +#azure.activedirectory.client-id=11111111-1111-1111-1111-1111111111111111 +## Specifies your App Registration's secret key: +#azure.activedirectory.client-secret=AbCdEfGhIjKlMnOpQrStUvWxYz== +## Specifies the list of Active Directory groups to use for authorization: +#azure.activedirectory.user-group.allowed-groups=group1 From 7090bf54763355ad450c357f060925f750e0d93c Mon Sep 17 00:00:00 2001 From: zhihaoguo Date: Wed, 1 Sep 2021 10:47:21 +0800 Subject: [PATCH 11/21] - update versions --- pom.xml | 2 +- spring-petclinic-customers-service/pom.xml | 4 ++-- spring-petclinic-vets-service/pom.xml | 4 ++-- spring-petclinic-visits-service/pom.xml | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index e564b9da87..7b55fb0dad 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 2.2.1 + 2.3.6 ${project.artifactId} pom diff --git a/spring-petclinic-customers-service/pom.xml b/spring-petclinic-customers-service/pom.xml index 93292feb58..ed478395ce 100644 --- a/spring-petclinic-customers-service/pom.xml +++ b/spring-petclinic-customers-service/pom.xml @@ -38,12 +38,12 @@ com.azure azure-spring-data-cosmos - 3.2.0 + 3.10.0 com.azure.spring azure-spring-boot-starter-keyvault-secrets - 3.1.0 + 3.8.0 org.springframework.data diff --git a/spring-petclinic-vets-service/pom.xml b/spring-petclinic-vets-service/pom.xml index 61edd128f0..1f084c6b5b 100644 --- a/spring-petclinic-vets-service/pom.xml +++ b/spring-petclinic-vets-service/pom.xml @@ -92,12 +92,12 @@ com.azure azure-spring-data-cosmos - 3.2.0 + 3.10.0 com.azure.spring azure-spring-boot-starter-keyvault-secrets - 3.1.0 + 3.8.0 org.springframework.data diff --git a/spring-petclinic-visits-service/pom.xml b/spring-petclinic-visits-service/pom.xml index 5b2b8328b1..c888d5fe5a 100644 --- a/spring-petclinic-visits-service/pom.xml +++ b/spring-petclinic-visits-service/pom.xml @@ -28,7 +28,7 @@ com.azure azure-spring-data-cosmos - 3.2.0 + 3.10.0 org.springframework.data @@ -111,12 +111,12 @@ com.azure azure-spring-data-cosmos - 3.2.0 + 3.10.0 com.azure.spring azure-spring-boot-starter-keyvault-secrets - 3.1.0 + 3.8.0 From 4e256b138edff1e9311fcbc476a6b3e603200153 Mon Sep 17 00:00:00 2001 From: zhihaoguo Date: Thu, 2 Sep 2021 18:17:53 +0800 Subject: [PATCH 12/21] Revert "- update versions" This reverts commit 7090bf54763355ad450c357f060925f750e0d93c. --- pom.xml | 2 +- spring-petclinic-customers-service/pom.xml | 4 ++-- spring-petclinic-vets-service/pom.xml | 4 ++-- spring-petclinic-visits-service/pom.xml | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pom.xml b/pom.xml index 7b55fb0dad..e564b9da87 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 2.3.6 + 2.2.1 ${project.artifactId} pom diff --git a/spring-petclinic-customers-service/pom.xml b/spring-petclinic-customers-service/pom.xml index ed478395ce..93292feb58 100644 --- a/spring-petclinic-customers-service/pom.xml +++ b/spring-petclinic-customers-service/pom.xml @@ -38,12 +38,12 @@ com.azure azure-spring-data-cosmos - 3.10.0 + 3.2.0 com.azure.spring azure-spring-boot-starter-keyvault-secrets - 3.8.0 + 3.1.0 org.springframework.data diff --git a/spring-petclinic-vets-service/pom.xml b/spring-petclinic-vets-service/pom.xml index 1f084c6b5b..61edd128f0 100644 --- a/spring-petclinic-vets-service/pom.xml +++ b/spring-petclinic-vets-service/pom.xml @@ -92,12 +92,12 @@ com.azure azure-spring-data-cosmos - 3.10.0 + 3.2.0 com.azure.spring azure-spring-boot-starter-keyvault-secrets - 3.8.0 + 3.1.0 org.springframework.data diff --git a/spring-petclinic-visits-service/pom.xml b/spring-petclinic-visits-service/pom.xml index c888d5fe5a..5b2b8328b1 100644 --- a/spring-petclinic-visits-service/pom.xml +++ b/spring-petclinic-visits-service/pom.xml @@ -28,7 +28,7 @@ com.azure azure-spring-data-cosmos - 3.10.0 + 3.2.0 org.springframework.data @@ -111,12 +111,12 @@ com.azure azure-spring-data-cosmos - 3.10.0 + 3.2.0 com.azure.spring azure-spring-boot-starter-keyvault-secrets - 3.8.0 + 3.1.0 From 69203c618ec35a32ceb06163a5fff0d52504081c Mon Sep 17 00:00:00 2001 From: zhihaoguo Date: Thu, 2 Sep 2021 19:47:40 +0800 Subject: [PATCH 13/21] - fix version error - fix docker build error --- pom.xml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index e564b9da87..6dd7a42905 100644 --- a/pom.xml +++ b/pom.xml @@ -11,7 +11,7 @@ org.springframework.samples spring-petclinic-microservices - 2.2.1 + 2.3.6 ${project.artifactId} pom @@ -87,7 +87,10 @@ org.springframework.boot spring-boot-maven-plugin - true + true + + true + From d8db5fac2a75e65b773dcc4a9e33759e08844603 Mon Sep 17 00:00:00 2001 From: zhihaoguo Date: Thu, 2 Sep 2021 21:11:25 +0800 Subject: [PATCH 14/21] - update readme and shell script --- .../setup-env-variables-azure-template.sh | 47 +++++++++++-------- README.md | 2 + 2 files changed, 30 insertions(+), 19 deletions(-) diff --git a/.scripts/setup-env-variables-azure-template.sh b/.scripts/setup-env-variables-azure-template.sh index 55ccc6b7b2..43e13f75b4 100755 --- a/.scripts/setup-env-variables-azure-template.sh +++ b/.scripts/setup-env-variables-azure-template.sh @@ -1,14 +1,20 @@ #!/usr/bin/env bash # ==== Resource Group ==== -export SUBSCRIPTION=subscription-id # customize this -export RESOURCE_GROUP=resource-group-name # customize this +export SUBSCRIPTION=799c12ba-353c-44a1-883d-84808ebb2216 # customize this +export RESOURCE_GROUP=gzh-pc-local-04-rg # customize this export LOCATION=SouthCentralUS #customize this -export COSMOSDB_NAME=mycosmosdbaccname # customize this -export REDIS_NAME=myredisname #customize this -export KEYVAULT_NAME=myend2endkv #customize this +export COSMOSDB_NAME=gzh-pc-local-04-cosmos # customize this +export REDIS_NAME=gzh-pc-local-04-redis #customize this +export KEYVAULT_NAME=gzh-pc-local-04-keyvault #customize this +export APP_NAME_FOR_KEYVAULT=local-04-appforkeyvault #customize this + +# ==== Create ResouceGroup ==== +az group create --name ${RESOURCE_GROUP} \ + --location ${LOCATION} # ==== Create CosmosDB Account ==== +# note: it may take a few minutes az cosmosdb create --name $COSMOSDB_NAME --resource-group $RESOURCE_GROUP COSMOS_KEYS=$(az cosmosdb keys list --name $COSMOSDB_NAME --resource-group $RESOURCE_GROUP --type keys) COSMOS_PRIMARY_KEY=$(echo $COSMOS_KEYS | jq -r .primaryMasterKey) @@ -23,21 +29,29 @@ REDIS_PASSWORD=$(az redis list-keys --name $REDIS_NAME --resource-group $RESOURC # ==== Create a KeyVault Account ==== az keyvault create --location $LOCATION --name $KEYVAULT_NAME --resource-group $RESOURCE_GROUP -SERVICE_PRINCIPAL=$(az ad sp create-for-rbac -n "endtoendsp") -az keyvault set-policy -n MyVault --key-permissions get list --spn $AZURE_KEYVAULT_CLIENTID +SERVICE_PRINCIPAL=$(az ad sp create-for-rbac --name ${APP_NAME_FOR_KEYVAULT} --role Contributor) -AZURE_KEYVAULT_URI=$(az keyvault show --name $KEYVAULT_NAME | jq -r .properties | jq -r .vaultUri) +AZURE_KEYVAULT_URI=$(az keyvault show --name $KEYVAULT_NAME --resource-group $RESOURCE_GROUP | jq -r .properties | jq -r .vaultUri) AZURE_KEYVAULT_CLIENTID=$(echo $SERVICE_PRINCIPAL | jq -r .appId) AZURE_KEYVAULT_TENANTID=$(echo $SERVICE_PRINCIPAL | jq -r .tenant) -AZURE_KEYVAULT_CLIENTKEY=$(echo $SERVICE_PRINCIPAL | jq -r .password) +AZURE_KEYVAULT_CLIENTKEY=$(echo $SERVICE_PRINCIPAL | jq -r .password) + +# +az keyvault set-policy -n $KEYVAULT_NAME --key-permissions get list \ + --certificate-permissions get list \ + --secret-permissions get list \ + --resource-group $RESOURCE_GROUP \ + --spn $AZURE_KEYVAULT_CLIENTID # ==== add keys to keyvault ==== -az keyvault secret set --name cosmosdburi --value $COSMOSDB_URI -az keyvault secret set --name cosmosdbkey --value $COSMOS_PRIMARY_KEY -az keyvault secret set --name cosmosdbsecondarykey --value $COSMOS_SECONDARY_KEY -az keyvault secret set --name redisuri--value $REDIS_HOSTNAME -az keyvault secret set --name redispassword --value $REDIS_PASSWORD + +az keyvault secret set --vault-name $KEYVAULT_NAME --name cosmosdburi --value $COSMOSDB_URI +az keyvault secret set --vault-name $KEYVAULT_NAME --name cosmosdbkey --value $COSMOS_PRIMARY_KEY +az keyvault secret set --vault-name $KEYVAULT_NAME --name cosmosdbsecondarykey --value $COSMOS_SECONDARY_KEY +az keyvault secret set --vault-name $KEYVAULT_NAME --name redisuri --value $REDIS_HOSTNAME +az keyvault secret set --vault-name $KEYVAULT_NAME --name redispassword --value $REDIS_PASSWORD + # ==== Create Kevvault environment file for Docker containers ==== cat > keyvault.env << EOF @@ -46,8 +60,3 @@ AZURE_KEYVAULT_CLIENTID=$AZURE_KEYVAULT_CLIENTID AZURE_KEYVAULT_TENANTID=$AZURE_KEYVAULT_TENANTID AZURE_KEYVAULT_CLIENTKEY=$AZURE_KEYVAULT_CLIENTKEY EOF - - - - - diff --git a/README.md b/README.md index a22db80109..494cee346b 100644 --- a/README.md +++ b/README.md @@ -70,6 +70,8 @@ Login to the Azure CLI and choose your active subscription. Be sure to choose th ### Prepare your environment for deployments +Install [jq](https://github.com/stedolan/jq/wiki/Installation) + Create a bash script with environment variables by making a copy of the supplied template: ```bash cp .scripts/setup-env-variables-azure-template.sh .scripts/setup-env-variables-azure.sh From bb676226a7fee4e4f639a08618f8cdbebf069b82 Mon Sep 17 00:00:00 2001 From: zhihaoguo Date: Thu, 2 Sep 2021 21:18:49 +0800 Subject: [PATCH 15/21] - update readme and shell script --- .../setup-env-variables-azure-template.sh | 25 +++++++++++-------- README.md | 22 ++++++---------- 2 files changed, 22 insertions(+), 25 deletions(-) diff --git a/.scripts/setup-env-variables-azure-template.sh b/.scripts/setup-env-variables-azure-template.sh index 43e13f75b4..9ee5fdb540 100755 --- a/.scripts/setup-env-variables-azure-template.sh +++ b/.scripts/setup-env-variables-azure-template.sh @@ -1,20 +1,21 @@ #!/usr/bin/env bash # ==== Resource Group ==== -export SUBSCRIPTION=799c12ba-353c-44a1-883d-84808ebb2216 # customize this -export RESOURCE_GROUP=gzh-pc-local-04-rg # customize this +export SUBSCRIPTION=subscription-id # customize this +export RESOURCE_GROUP=resource-group-name # customize this export LOCATION=SouthCentralUS #customize this -export COSMOSDB_NAME=gzh-pc-local-04-cosmos # customize this -export REDIS_NAME=gzh-pc-local-04-redis #customize this -export KEYVAULT_NAME=gzh-pc-local-04-keyvault #customize this -export APP_NAME_FOR_KEYVAULT=local-04-appforkeyvault #customize this +export COSMOSDB_NAME=mycosmosdbaccname # customize this +export REDIS_NAME=myredisname #customize this +export KEYVAULT_NAME=myend2endkv #customize this +export APP_NAME_FOR_KEYVAULT=myappforkeyvault #customize this # ==== Create ResouceGroup ==== +echo "Creating ResouceGroup, it may take a few minutes" az group create --name ${RESOURCE_GROUP} \ --location ${LOCATION} # ==== Create CosmosDB Account ==== -# note: it may take a few minutes +echo "Creating CosmosDB Account, it may take a few minutes" az cosmosdb create --name $COSMOSDB_NAME --resource-group $RESOURCE_GROUP COSMOS_KEYS=$(az cosmosdb keys list --name $COSMOSDB_NAME --resource-group $RESOURCE_GROUP --type keys) COSMOS_PRIMARY_KEY=$(echo $COSMOS_KEYS | jq -r .primaryMasterKey) @@ -22,11 +23,13 @@ COSMOS_SECONDARY_KEY=$(echo $COSMOS_KEYS | jq -r .secondaryMasterKey) COSMOSDB_URI=$(az cosmosdb show --name $COSMOSDB_NAME --resource-group $RESOURCE_GROUP | jq -r .documentEndpoint) # ==== Create Redis Cache Account ==== +echo "Creating Redis Cache Account, it may take a few minutes" az redis create --name $REDIS_NAME --resource-group $RESOURCE_GROUP --sku Basic --vm-size c0 --location $LOCATION REDIS_HOSTNAME=$(az redis show --name $REDIS_NAME --resource-group $RESOURCE_GROUP | jq -r .hostName) REDIS_PASSWORD=$(az redis list-keys --name $REDIS_NAME --resource-group $RESOURCE_GROUP | jq -r .primaryKey) -# ==== Create a KeyVault Account ==== +# ==== Create KeyVault Account ==== +echo "Creating KeyVault Account, it may take a few minutes" az keyvault create --location $LOCATION --name $KEYVAULT_NAME --resource-group $RESOURCE_GROUP SERVICE_PRINCIPAL=$(az ad sp create-for-rbac --name ${APP_NAME_FOR_KEYVAULT} --role Contributor) @@ -36,16 +39,15 @@ AZURE_KEYVAULT_CLIENTID=$(echo $SERVICE_PRINCIPAL | jq -r .appId) AZURE_KEYVAULT_TENANTID=$(echo $SERVICE_PRINCIPAL | jq -r .tenant) AZURE_KEYVAULT_CLIENTKEY=$(echo $SERVICE_PRINCIPAL | jq -r .password) -# +# set keyvault policy az keyvault set-policy -n $KEYVAULT_NAME --key-permissions get list \ --certificate-permissions get list \ --secret-permissions get list \ --resource-group $RESOURCE_GROUP \ --spn $AZURE_KEYVAULT_CLIENTID - # ==== add keys to keyvault ==== - +echo "add keys to keyvault" az keyvault secret set --vault-name $KEYVAULT_NAME --name cosmosdburi --value $COSMOSDB_URI az keyvault secret set --vault-name $KEYVAULT_NAME --name cosmosdbkey --value $COSMOS_PRIMARY_KEY az keyvault secret set --vault-name $KEYVAULT_NAME --name cosmosdbsecondarykey --value $COSMOS_SECONDARY_KEY @@ -60,3 +62,4 @@ AZURE_KEYVAULT_CLIENTID=$AZURE_KEYVAULT_CLIENTID AZURE_KEYVAULT_TENANTID=$AZURE_KEYVAULT_TENANTID AZURE_KEYVAULT_CLIENTKEY=$AZURE_KEYVAULT_CLIENTKEY EOF +echo "environment configuration complete" diff --git a/README.md b/README.md index 494cee346b..bb14f1c475 100644 --- a/README.md +++ b/README.md @@ -81,20 +81,13 @@ Open `.scripts/setup-env-variables-azure.sh` and enter the following information ```bash - export SUBSCRIPTION=subscription-id # customize this -... - export RESOURCE_GROUP=resource-group-name # customize this -... - export RESOURCE_GROUP=resource-group-name # customize this -... - export LOCATION=SouthCentralUS #customize this -... - export COSMOSDB_NAME=mycosmosdbaccname # customize this -... - export REDIS_NAME=myredisname #customize this -... - export KEYVAULT_NAME=myend2endkv #customize this -... +export SUBSCRIPTION=subscription-id # customize this +export RESOURCE_GROUP=resource-group-name # customize this +export LOCATION=SouthCentralUS #customize this +export COSMOSDB_NAME=mycosmosdbaccname # customize this +export REDIS_NAME=myredisname #customize this +export KEYVAULT_NAME=myend2endkv #customize this +export APP_NAME_FOR_KEYVAULT=myappforkeyvault #customize this ``` @@ -102,6 +95,7 @@ Then, set the environment: ```bash source .scripts/setup-env-variables-azure.sh ``` + make sure keyvault.env file is created at the root of the repo. ## Starting services locally with docker-compose From 245a7fe19992df247e3da84501be31935a97a12c Mon Sep 17 00:00:00 2001 From: zhihaoguo Date: Thu, 2 Sep 2021 21:29:40 +0800 Subject: [PATCH 16/21] - cleaning job --- spring-petclinic-customers-service/pom.xml | 4 ++-- .../petclinic/customers/CustomersServiceApplication.java | 3 --- .../samples/petclinic/customers/web/OwnerResource.java | 4 ++-- .../src/main/resources/application.properties | 3 ++- 4 files changed, 6 insertions(+), 8 deletions(-) diff --git a/spring-petclinic-customers-service/pom.xml b/spring-petclinic-customers-service/pom.xml index 93292feb58..b68d3a43b2 100644 --- a/spring-petclinic-customers-service/pom.xml +++ b/spring-petclinic-customers-service/pom.xml @@ -128,11 +128,11 @@ jakarta.persistence-api -

    mg5p!GzbZdG&+fANfO`SF`uyG>8oG; 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 L?(*(_G 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�&;-fEZO>3Tmo_)f`dyC{KJqCF==MBsnwR*m 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 z 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