From c057641780d9e9534416677e3887ed0ea3b018fb Mon Sep 17 00:00:00 2001 From: laney0808 Date: Sat, 6 Apr 2024 13:17:56 +0800 Subject: [PATCH 01/16] update to v1.3 --- README.md | 8 +- build.gradle | 5 +- docs/DeveloperGuide.md | 57 +--- docs/UserGuide.md | 256 +++++------------- docs/diagrams/CreateCommand.puml | 49 ---- docs/diagrams/ModelClassDiagram.puml | 21 +- docs/diagrams/ReadCommand.puml | 70 ----- docs/images/CreateCommand.png | Bin 24027 -> 0 bytes docs/images/GUI.png | Bin 234217 -> 0 bytes docs/images/ReadCommand.png | Bin 34053 -> 0 bytes docs/images/findAlexDavid.png | Bin 168017 -> 0 bytes docs/images/findAlexDavidResult.png | Bin 0 -> 19640 bytes docs/images/findSerangoon.png | Bin 167777 -> 0 bytes docs/images/helpMessage.png | Bin 28085 -> 8435 bytes docs/index.md | 4 +- .../seedu/address/commons/util/JsonUtil.java | 3 +- .../commons/util/OptionalSerializer.java | 30 -- .../address/commons/util/StringUtil.java | 21 -- .../java/seedu/address/logic/Messages.java | 97 ++++--- .../logic/commands/AddVisitCommand.java | 83 ------ .../address/logic/commands/CheckCommand.java | 92 ------- .../logic/commands/ClusterCommand.java | 92 ------- .../address/logic/commands/CreateCommand.java | 19 +- .../address/logic/commands/DeleteCommand.java | 6 +- .../logic/commands/DeleteInfoCommand.java | 132 --------- .../address/logic/commands/FindCommand.java | 18 +- .../address/logic/commands/HelpCommand.java | 2 +- .../address/logic/commands/ReadCommand.java | 17 +- .../address/logic/commands/UpdateCommand.java | 60 ++-- .../logic/parser/AddVisitCommandParser.java | 63 ----- .../logic/parser/ArgumentMultimap.java | 12 - .../logic/parser/CheckCommandParser.java | 31 --- .../seedu/address/logic/parser/CliSyntax.java | 1 - .../logic/parser/ClusterCommandParser.java | 52 ---- .../logic/parser/DeleteCommandParser.java | 2 +- .../logic/parser/DeleteInfoCommandParser.java | 97 ------- .../logic/parser/FindCommandParser.java | 34 +-- .../logic/parser/ImmuniMateParser.java | 38 +-- .../address/logic/parser/ParserUtil.java | 17 -- .../logic/parser/ReadCommandParser.java | 13 +- .../logic/parser/UpdateCommandParser.java | 5 +- .../java/seedu/address/model/ImmuniMate.java | 63 +---- src/main/java/seedu/address/model/Model.java | 38 --- .../seedu/address/model/ModelManager.java | 37 --- .../address/model/ReadOnlyImmuniMate.java | 5 - .../java/seedu/address/model/UserPrefs.java | 2 +- .../AddressContainsKeywordsPredicate.java | 45 --- .../AddressDiagnosisStatusPredicate.java | 70 ----- .../ConditionContainsKeywordsPredicate.java | 48 ---- .../seedu/address/model/person/Person.java | 4 +- .../seedu/address/model/person/Phone.java | 2 +- .../address/model/util/SampleDataUtil.java | 27 +- .../address/model/visit/DateOfVisit.java | 60 ---- .../address/model/visit/UniqueVisitList.java | 148 ---------- .../java/seedu/address/model/visit/Visit.java | 140 ---------- .../visit/VisitContainsNricPredicate.java | 43 --- .../exceptions/DuplicateVisitException.java | 11 - .../exceptions/VisitNotFoundException.java | 10 - .../address/storage/JsonAdaptedVisit.java | 103 ------- .../storage/JsonSerializableAddressBook.java | 14 +- .../java/seedu/address/ui/CommandBox.java | 45 --- .../java/seedu/address/ui/PersonCard.java | 14 +- src/main/resources/view/CommandBox.fxml | 4 +- src/main/resources/view/DarkTheme.css | 86 +++--- src/main/resources/view/Extensions.css | 2 +- src/main/resources/view/MainWindow.fxml | 4 +- src/main/resources/view/ResultPanel.fxml | 5 +- .../invalidAndValidPersonAddressBook.json | 48 +--- .../invalidPersonAddressBook.json | 26 +- .../duplicatePersonAddressBook.json | 49 +--- .../invalidPersonAddressBook.json | 25 +- .../typicalPersonsAddressBook.json | 165 +++-------- .../ExtraValuesUserPref.json | 2 +- .../TypicalUserPref.json | 2 +- .../seedu/address/logic/LogicManagerTest.java | 10 +- .../logic/commands/CommandTestUtil.java | 34 +-- .../logic/commands/CreateCommandTest.java | 33 +-- .../logic/commands/DeleteInfoCommandTest.java | 57 ---- .../logic/commands/ReadCommandTest.java | 33 +-- .../logic/commands/UpdateCommandTest.java | 103 +++---- .../logic/parser/CreateCommandParserTest.java | 20 +- .../parser/DeleteInfoCommandParserTest.java | 77 ------ .../logic/parser/FindCommandParserTest.java | 4 +- .../logic/parser/ImmuniMateParserTest.java | 8 +- .../logic/parser/ReadCommandParserTest.java | 15 +- .../logic/parser/UpdateCommandParserTest.java | 40 ++- .../seedu/address/model/AddressBookTest.java | 16 +- ...onditionContainsKeywordsPredicateTest.java | 89 ------ .../address/model/person/PersonTest.java | 7 +- .../seedu/address/model/person/PhoneTest.java | 3 +- .../JsonSerializableAddressBookTest.java | 2 - .../storage/JsonUserPrefsStorageTest.java | 2 +- .../seedu/address/testutil/PersonBuilder.java | 79 ++---- .../seedu/address/testutil/PersonUtil.java | 45 +-- .../address/testutil/TypicalPersons.java | 33 +-- .../UpdatePersonDescriptorBuilder.java | 2 + 96 files changed, 511 insertions(+), 3055 deletions(-) delete mode 100644 docs/diagrams/CreateCommand.puml delete mode 100644 docs/diagrams/ReadCommand.puml delete mode 100644 docs/images/CreateCommand.png delete mode 100644 docs/images/GUI.png delete mode 100644 docs/images/ReadCommand.png delete mode 100644 docs/images/findAlexDavid.png create mode 100644 docs/images/findAlexDavidResult.png delete mode 100644 docs/images/findSerangoon.png delete mode 100644 src/main/java/seedu/address/commons/util/OptionalSerializer.java delete mode 100644 src/main/java/seedu/address/logic/commands/AddVisitCommand.java delete mode 100644 src/main/java/seedu/address/logic/commands/CheckCommand.java delete mode 100644 src/main/java/seedu/address/logic/commands/ClusterCommand.java delete mode 100644 src/main/java/seedu/address/logic/commands/DeleteInfoCommand.java delete mode 100644 src/main/java/seedu/address/logic/parser/AddVisitCommandParser.java delete mode 100644 src/main/java/seedu/address/logic/parser/CheckCommandParser.java delete mode 100644 src/main/java/seedu/address/logic/parser/ClusterCommandParser.java delete mode 100644 src/main/java/seedu/address/logic/parser/DeleteInfoCommandParser.java delete mode 100644 src/main/java/seedu/address/model/person/AddressContainsKeywordsPredicate.java delete mode 100644 src/main/java/seedu/address/model/person/AddressDiagnosisStatusPredicate.java delete mode 100644 src/main/java/seedu/address/model/person/ConditionContainsKeywordsPredicate.java delete mode 100644 src/main/java/seedu/address/model/visit/DateOfVisit.java delete mode 100644 src/main/java/seedu/address/model/visit/UniqueVisitList.java delete mode 100644 src/main/java/seedu/address/model/visit/Visit.java delete mode 100644 src/main/java/seedu/address/model/visit/VisitContainsNricPredicate.java delete mode 100644 src/main/java/seedu/address/model/visit/exceptions/DuplicateVisitException.java delete mode 100644 src/main/java/seedu/address/model/visit/exceptions/VisitNotFoundException.java delete mode 100644 src/main/java/seedu/address/storage/JsonAdaptedVisit.java delete mode 100644 src/test/java/seedu/address/logic/commands/DeleteInfoCommandTest.java delete mode 100644 src/test/java/seedu/address/logic/parser/DeleteInfoCommandParserTest.java delete mode 100644 src/test/java/seedu/address/model/person/ConditionContainsKeywordsPredicateTest.java diff --git a/README.md b/README.md index 840d4cdbc1e..26424187816 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ [![CI Status](https://github.com/AY2324S2-CS2103T-T08-1/tp/workflows/Java%20CI/badge.svg)](https://github.com/AY2324S2-CS2103T-T08-1/tp/actions) -![Ui](docs/images/GUI.png) +![Ui](docs/images/Ui.png) -* **ImmuniMate** is a JavaFX application with a GUI, aimed at helping General Practitioners and Healthcare Professionals better keep track of patient Information.
+* **ImmuniMate** is a JavaFX application with a GUI, aimed at helping General Practitioners and Healthcare Professionals better keep track of Patient Information.
Main Features: - * Easily create patient profile and update patient information to ImmuniMate + * Easily add and update patient information to Immunimate * Keep track of infected patients and clusters of information * Search for patients and patient history with a breeze -* The name `ImmuniMate` is chosen to reflect its purpose of enhancing and safeguarding community immunity. +* It is named `AddressBook Level 3` (`AB3` for short) because it was initially created as a part of a series of `AddressBook` projects (`Level 1`, `Level 2`, `Level 3` ...). * For the detailed documentation and information on ImmuniMate, please visit our **[website](https://ay2324s2-cs2103t-t08-1.github.io/tp/)**. * This project is currently being developed by a student team in NUS. Our Source code for the project can be found **[here on github.](https://github.com/AY2324S2-CS2103T-T08-1/tp)** diff --git a/build.gradle b/build.gradle index face0e9a30a..a2951cc709e 100644 --- a/build.gradle +++ b/build.gradle @@ -66,10 +66,7 @@ dependencies { } shadowJar { - archiveFileName = 'immuniMate.jar' + archiveFileName = 'addressbook.jar' } -run { - enableAssertions = true -} defaultTasks 'clean', 'test' diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 3897c7a57eb..9e2897d9c38 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -239,55 +239,10 @@ The following activity diagram summarizes what happens when a user executes a ne _{more aspects and alternatives to be added}_ -### Create new patient +### \[Proposed\] Data archiving -Create new patient feature allows the healthcare workers to add a new patient to ImmuniMate. -The healthcare worker must specify the patient's name, NRIC, phone, address, date of birth, sex, and status. -The process of creating a new patient in Model is as follows: -![CreateState1](images/CreateCommand.png) +_{Explain here how the data archiving feature will be implemented}_ -### Update patient fields - -#### Proposed Implementation - -[to change below] - -The proposed undo/redo mechanism is facilitated by `VersionedAddressBook`. It extends `AddressBook` with an undo/redo history, stored internally as an `addressBookStateList` and `currentStatePointer`. Additionally, it implements the following operations: - -* `VersionedAddressBook#commit()` — Saves the current address book state in its history. -* `VersionedAddressBook#undo()` — Restores the previous address book state from its history. -* `VersionedAddressBook#redo()` — Restores a previously undone address book state from its history. - -These operations are exposed in the `Model` interface as `Model#commitAddressBook()`, `Model#undoAddressBook()` and `Model#redoAddressBook()` respectively. - -[to change above] - -Given below is an example usage scenario and how the undo/redo mechanism behaves at each step. - -Step 1. The user launches the application for the first time. - -Step 2. The user types `update T0123456A a/35 Bishan Road, #10-40 con/myopia` command to update the address and condition fields in the profile of the person with `Nric` T0123456A in the address book. This calls `immuniMateParser.parseCommand()`, which separates the user input into the command `update` and the rest of the arguments. - -Step 3. As the command `update` matches `UpdateCommand.COMMAND_WORD`, `UpdateCommandParser().parse()` is called, taking in the rest of the arguments. Here, the arguments are checked if they are null values, then passed into `ArgumentTokenizer.tokenize()`, where they are separated into `Nric` and other provided fields by finding their respective prefixes, and stored in an `ArgumentMultimap`. - -Step 4. Still in `UpdateCommandParser().parse()`, checks are then done to verify the validity of the `Nric` and that no duplicate prefixes are found. A new `UpdatePersonDescriptor` object is then created to store the fields present in `ArgumentMultimap`. - -Step 5. At the end of `UpdateCommandParser().parse()`, a new `UpdateCommand` instance is created with the `Nric` and `UpdatePersonDescriptor` as arguments. `UpdateCommand.execute()` is then called, taking in the ImmuniMate `model` as an argument. - -Step 6. `model.getFilteredPersonsList()` retrieves the list of `Person`s stored, and a check is done to see if ImmuniMate has a `Person` with the given `Nric`. This `Person` is then retrieved from the list, while a new `Person` object is instantiated, with the `Person` and `UpdatePersonDescriptor` as arguments, representing the retrieved `Person` object with fields updated. - -Step 7. `model.setPerson()` then replaces the retrieved `Person` object with the new `Person` object with fields updated, taking in both `Person` objects as arguments. The `model` is then saved into `storage`. - -#### Design considerations: - -* **Alternative 1 (current choice):** Identify patient by `Nric`. - * Pros: More user convenience, as user just needs to type NRIC patients provide - -* **Alternative 2:** Identify patient by given `Index`. - * Pros: Easier to implement. - * Cons: Less user convenience, as user has to first know patient `Index` to find patient. - -_{more aspects and alternatives to be added}_ -------------------------------------------------------------------------------------------------------------------- @@ -394,7 +349,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 2a. IABS detects an error in the entered data. - 2a1. IABS requests for the correct data. - - 2a2. Healthcare Worker enters new data. + - 2a2. Healthcare Worker enters new data. - Steps 2a1-2a2 are repeated until the data entered are correct. Use case resumes from step 3. --- @@ -434,7 +389,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 2a. IABS cannot find the patient specified. - 2a1. IABS requests for the correct NRIC. - - 2a2. Healthcare worker enters new NRIC. + - 2a2. Healthcare worker enters new NRIC. - Steps 2a1-2a2 are repeated until the data entered are correct or Healthcare worker cancels the action. Use case resumes from step 3. **Use Case: UC05 - Delete Patient Information** @@ -450,7 +405,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 2a. IABS cannot find the patient specified. - 2a1. IABS requests for the correct NRIC. - - 2a2. Healthcare worker enters new NRIC. + - 2a2. Healthcare worker enters new NRIC. - Steps 2a1-2a2 are repeated until the data entered are correct or Healthcare worker cancels the action. Use case resumes from step 3. 2b. IABS cannot find the specified information. @@ -469,6 +424,7 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli 1. Should work on any _mainstream OS_ as long as it has Java `11` or above installed. 2. Should be able to hold up to 1000 persons without a noticeable sluggishness in performance for typical usage. +3. *{More to be added}* Data Requirements: @@ -586,4 +542,3 @@ testers are expected to do more *exploratory* testing. 1. _{explain how to simulate a missing/corrupted file, and the expected behavior}_ 1. _{ more test cases …​ }_ - diff --git a/docs/UserGuide.md b/docs/UserGuide.md index efdbeb4c86c..c5f48849526 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -3,7 +3,7 @@ layout: page title: User Guide --- ## Introduction -As communities grow, information management might prove complex for General Practitioner Clinics and other small-scale healthcare clinics, especially so for personal data. **ImmuniMate** offers a way to record comprehensive information about every patient, while ensuring timely updates and avoiding duplications/contradictions. It also seeks to establish links between patients for cluster tracking. +As government databases grow, information management might prove complex for civil servants, especially so for personal data. **ImmuniMate** offers a way to record comprehensive information about every contact, while ensuring timely updates and avoiding duplications/contradictions. It also seeks to establish links between contacts for speedier information retrieval. * Table of Contents {:toc} @@ -14,28 +14,28 @@ As communities grow, information management might prove complex for General Prac 1. Ensure you have Java `11` or above installed in your Computer. -2. Download the latest `immuniMate.jar` from [here](https://github.com/AY2324S2-CS2103T-T08-1/tp/releases). +1. Download the latest `addressbook.jar` from [here](https://github.com/se-edu/addressbook-level3/releases). -3. Copy the file to the folder you want to use as the _home folder_ for your ImmuniMate. +1. Copy the file to the folder you want to use as the _home folder_ for your AddressBook. -4. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar immuniMate.jar` command to run the application.
+1. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar addressbook.jar` command to run the application.
A GUI similar to the below should appear in a few seconds. Note how the app contains some sample data.
- ![Ui](images/GUI.png) + ![Ui](images/Ui.png) -5. Type the command in the command box and press Enter to execute it. e.g. typing **`help`** and pressing Enter will open the help window.
+1. Type the command in the command box and press Enter to execute it. e.g. typing **`help`** and pressing Enter will open the help window.
Some example commands you can try: * `list` : Lists all contacts. - * `create ic/S0123456A n/John Doe hp/98765432 e/johnd@example.com a/311, Clementi Ave 2, #02-25 dob/1990-01-01 s/M st/PENDING` : Adds a patient named `John Doe` to ImmuniMate. + * `add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` : Adds a contact named `John Doe` to the Address Book. - * `delete S0123456A` : Deletes the patient of respective NRIC. + * `delete 3` : Deletes the 3rd contact shown in the current list. * `clear` : Deletes all contacts. * `exit` : Exits the app. -6. Refer to the [Features](#features) below for details of each command. +1. Refer to the [Features](#features) below for details of each command. -------------------------------------------------------------------------------------------------------------------- @@ -46,16 +46,16 @@ As communities grow, information management might prove complex for General Prac **:information_source: Notes about the command format:**
* Words in `UPPER_CASE` are the parameters to be supplied by the user.
- e.g. in `update /CONTENT`, `CONTENT` is a parameter which can be used as `update S0123456A hp/87654321`. - -* Items in angle brackets are mandatory.
- e.g. `ic/` must be given. + e.g. in `add n/NAME`, `NAME` is a parameter which can be used as `add n/John Doe`. * Items in square brackets are optional.
- e.g. `ic/ [e/EMAIL]` can be used as `ic/S0123456A e/jd123@example.com` or as `ic/S0123456A`. + e.g `n/NAME [t/TAG]` can be used as `n/John Doe t/friend` or as `n/John Doe`. + +* Items with `…`​ after them can be used multiple times including zero times.
+ e.g. `[t/TAG]…​` can be used as ` ` (i.e. 0 times), `t/friend`, `t/friend t/family` etc. * Parameters can be in any order.
- e.g. if the command specifies `n/ hp/`, `hp/ n/` is also acceptable. + e.g. if the command specifies `n/NAME p/PHONE_NUMBER`, `p/PHONE_NUMBER n/NAME` is also acceptable. * Extraneous parameters for commands that do not take in parameters (such as `help`, `list`, `exit` and `clear`) will be ignored.
e.g. if the command specifies `help 123`, it will be interpreted as `help`. @@ -65,170 +65,85 @@ As communities grow, information management might prove complex for General Prac ### Viewing help : `help` -Shows a message explaining how to access the help page. +Shows a message explaning how to access the help page. -help message +![help message](images/helpMessage.png) Format: `help` -### Creating a patient profile: `create` +### Adding a person: `add` + +Adds a person to the address book. -Creates a patient profile in ImmuniMate. +Format: `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…​` -Format: `create ic/ n/ hp/ a/
dob/ s/ st/ [e/Email] [c/Country_of_Nationality] [doa/Date_of_Admission] [bt/Blood type] [al/Allergies] [con/Condition] [sym/Symptom] [d/diagnosis]` +
:bulb: **Tip:** +A person can have any number of tags (including 0) +
Examples: -* `create ic/S1234567A n/John Doe hp/98765432 a/311, Clementi Ave 2, #02-25 dob/1990-01-01 s/M st/PENDING` -* `create ic/S0123456A n/Jane Doe hp/87654321 a/311, Clementi Ave 2, #02-25 dob/01-01-1990 s/F st/PENDING e/janed@example.com bt/A+` +* `add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` +* `add n/Betsy Crowe t/friend e/betsycrowe@example.com a/Newgate Prison p/1234567 t/criminal` -### Listing all patients : `list` +### Listing all persons : `list` -Shows a list of all patients in ImmuniMate. +Shows a list of all persons in the address book. Format: `list` -### Read specific patients : `read` - -Shows corresponding patient profile. - -Format: `read ` +### Editing a person : `edit` -Examples: -* `read S1234567A` - -### Updating a patient's profile : `update` - -Updates information of an existing patient profile in ImmuniMate. +Edits an existing person in the address book. -Format: `update /CONTENT` +Format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…​` -* Updates the patient of corresponding NRIC. -* At least one of the fields must be provided. +* Edits the person at the specified `INDEX`. The index refers to the index number shown in the displayed person list. The index **must be a positive integer** 1, 2, 3, …​ +* At least one of the optional fields must be provided. * Existing values will be updated to the input values. +* When editing tags, the existing tags of the person will be removed i.e adding of tags is not cumulative. +* You can remove all the person’s tags by typing `t/` without + specifying any tags after it. Examples: -* `update S1234567A hp/91234567 e/jd123@example.com` Updates the phone number and email address of the corresponding patient to be `91234567` and `jd123@example.com` respectively. -* `update S0123456A a/123 Serangoon Road` Updates the address of the corresponding person to be `123 Serangoon Road` +* `edit 1 p/91234567 e/johndoe@example.com` Edits the phone number and email address of the 1st person to be `91234567` and `johndoe@example.com` respectively. +* `edit 2 n/Betsy Crower t/` Edits the name of the 2nd person to be `Betsy Crower` and clears all existing tags. -### Locating patients by name: `find` +### Locating persons by name: `find` -Finds patients whose name contain any of the given keywords. +Finds persons whose names contain any of the given keywords. -Format: `find n/[NAME] [NAME] [NAME] ...` +Format: `find KEYWORD [MORE_KEYWORDS]` -* The search is case-insensitive. e.g. `hans` will match `Hans` +* The search is case-insensitive. e.g `hans` will match `Hans` * The order of the keywords does not matter. e.g. `Hans Bo` will match `Bo Hans` * Only the name is searched. * Only full words will be matched e.g. `Han` will not match `Hans` -* Patients matching at least one keyword will be returned (i.e. `OR` search). +* Persons matching at least one keyword will be returned (i.e. `OR` search). e.g. `Hans Bo` will return `Hans Gruber`, `Bo Yang` -* Names can be separated with any number of spaces - -Examples: -* `find n/John` returns `john` and `John Doe` -* `find n/alex david` returns `Alex Yeoh`, `David Li`
- result for 'find alex david' - - -### Locating patients by address: `find` - -Finds patients whose address contain any of the given keywords. - -Format: `find a/[LOCATION], [LOCATION], [LOCATION], ...` - -* The search is case-insensitive. e.g. `serangoon` will match `Serangoon` -* The order of the keywords does matter. e.g. `Clementi Ave` will not match `Ave Clementi` -* Only the address is searched. -* Partial words will be matched e.g. `Clem` will match `Clementi` -* Patients matching at least one keyword will be returned (i.e. `OR` search). - e.g. `Clementi, Serangoon` will return patients with address containing `Serangoon` or `Clementi`. -* Locations must be separated by commas, and whitespaces before and after each location will be ignored - -Examples: -* `find a/Geylang` returns `Alex Yeoh` -* `find a/Serangoon` returns `Bernice Yu`, `David Li` -* `find a/geylang, serangoon, choa chu kang` returns `Alex Yeoh`, `Bernice Yu`, `David Li`
- result for 'find serangoon' - - -### Locating patients by condition: `find` - -Finds patients whose condition contain any of the given keywords. - -Format: `find con/[CONDITION], [CONDITION], [CONDITION], ...` - -* The search is case-insensitive. e.g. `covid` will match `Covid` -* The order of the keywords does matter. e.g. `Stomach FLu` will not match `Flu Stomach` -* Only the condition is searched. -* Partial words will be matched e.g. `Cov` will match `Covid` -* Patients matching at least one keyword will be returned (i.e. `OR` search). - e.g. `Covid Dengue` will return patients with address containing `Covid` or `Dengue`. -* Conditions must be separated by commas, and whitespaces before and after each condition will be ignored Examples: -* `find con/covid, dengue, ebola ` +* `find John` returns `john` and `John Doe` +* `find alex david` returns `Alex Yeoh`, `David Li`
+ ![result for 'find alex david'](images/findAlexDavidResult.png) -### Deleting a patient : `delete` +### Deleting a person : `delete` -Deletes the specified patient from ImmuniMate. +Deletes the specified person from the address book. -Format: `delete ` +Format: `delete INDEX` -* Deletes the patient with corresponding NRIC. +* Deletes the person at the specified `INDEX`. +* The index refers to the index number shown in the displayed person list. +* The index **must be a positive integer** 1, 2, 3, …​ Examples: -* `delete S1234567A` deletes patient uniquely identified by NRIC S1234567A. - -### Deleting information of a patient : `deleteinfo` - -Deletes specified optional information from the specified person from ImmuniMate. - -Format: `deleteinfo ` - -* Deletes specified information of the patient with corresponding NRIC. - -Examples: -* `deleteinfo S1234567A e/` deletes the email of patient uniquely identified by NRIC S1234567A. -* `deleteinfo S0123456A e/ bt/ c/` deletes the email, blood type and country of nationality of patient uniquely identified by NRIC S0123456A. - -### Add patient's visit to history : `addvisit` - -Adds visit to patient history. - -Format: `addvisit ic/ dov/ sym/ d/ st/` - -Examples: -* `addvisit ic/S1234567A dov/2024-01-01 sym/Cough d/Covid st/UNWELL` adds a visit to history of patient uniquely identified by NRIC S1234567A. During this visit on 2024-01-01, the patient had cough and was diagnosed with Covid. -* `addvisit ic/S0123456A dov/2024-02-02 sym/Fever,Rashes d/Dengue st/PENDING` adds a visit to history of patient uniquely identified by NRIC S0123456A. During this visit on 2024-02-02, the patient had fever and rashes, and was diagnosed with Dengue. - -### Check patient history : `check` - -Checks all visits in patient history. - -Format: `check ` - -Example: -* `check S1234567A`displays all visits in history of patient uniquely identified by NRIC S1234567A. - -### Cluster finding : `cluster` - -Finds cluster in location specified. - -Format: `cluster [CLUSTER SIZE] a/[LOCATION] d/[DIAGNOSIS]` - -* The search is case-insensitive. e.g. `serangoon` will match `Serangoon` -* Only one location and diagnosis is searched -* Location and diagnosis cannot be empty -* Cluster size must be between 1 and 2,000,000,000 -* Partial words will be matched e.g. `Clem` will match `Clementi`, `deng` will match `dengue` - -Example: -* `cluster 3 a/Serangoon d/dengue` finds dengue clusters of at least 3 patients in the Serangoon vicinity. +* `list` followed by `delete 2` deletes the 2nd person in the address book. +* `find Betsy` followed by `delete 1` deletes the 1st person in the results of the `find` command. ### Clearing all entries : `clear` -Clears all profiles from ImmuniMate. +Clears all entries from the address book. Format: `clear` @@ -240,32 +155,27 @@ Format: `exit` ### Saving the data -ImmuniMate data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually. +AddressBook data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually. ### Editing the data file -ImmuniMate data are saved automatically as a JSON file `[JAR file location]/data/immunimate.json`. Advanced users are welcome to update data directly by editing that data file. +AddressBook data are saved automatically as a JSON file `[JAR file location]/data/addressbook.json`. Advanced users are welcome to update data directly by editing that data file.
:exclamation: **Caution:** -If your changes to the data file makes its format invalid, ImmuniMate will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
-Furthermore, certain edits can cause ImmuniMate to behave in unexpected ways (e.g., if a value entered is outside of the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly. +If your changes to the data file makes its format invalid, AddressBook will discard all data and start with an empty data file at the next run. Hence, it is recommended to take a backup of the file before editing it.
+Furthermore, certain edits can cause the AddressBook to behave in unexpected ways (e.g., if a value entered is outside of the acceptable range). Therefore, edit the data file only if you are confident that you can update it correctly.
### Archiving data files `[coming in v2.0]` -### Update patient's visit in history `[coming in v2.0]` - -### Infection cluster tracking `[coming in v2.0]` +_Details coming soon ..._ -------------------------------------------------------------------------------------------------------------------- ## FAQ **Q**: How do I transfer my data to another Computer?
-**A**: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous ImmuniMate home folder. - -**Q**: I entered a command and don't want to type it again, how can I go back to it?
-**A**: Use the arrow pad on the keyboard to navigate your Command History. +**A**: Install the app in the other computer and overwrite the empty data file it creates with the file that contains the data of your previous AddressBook home folder. -------------------------------------------------------------------------------------------------------------------- @@ -277,38 +187,12 @@ Furthermore, certain edits can cause ImmuniMate to behave in unexpected ways (e. ## Command summary -| Action | Format, Examples | -|------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **Create** | `create ic/ n/ hp/ a/
dob/ s/ st/ [e/Email] [c/Country_of_Nationality] [doa/Date_of_Admission] [bt/Blood type] [al/Allergies] [con/Condition] [sym/Symptom] [d/diagnosis]`
e.g., `create ic/S1234567A n/John Doe hp/98765432 a/311, Clementi Ave 2, #02-25 dob/1990-01-01 s/M st/PENDING` | -| **Read** | `read `
e.g., `read S1234567A` | -| **Update** | `update /CONTENT`
e.g., `update S1234567A hp/91234567 e/jd123@example.com` | -| **Find** | `find n/KEYWORD`
e.g., `find n/Alex Bryan Charlie`
`find a/KEYWORD`
e.g., `find a/Serangoon, Geylang`
`find con/KEYWORD`
e.g., `find con/Covid, Ebola` | -| **Delete** | `delete `
e.g., `delete S1234567A` | -| **Delete Information** | `deleteinfo `
e.g., `deleteinfo S1234567A e/` | -| **Add Visit** | `addvisit ic/ dov/ sym/ d/ st/`
e.g., `addvisit ic/S1234567A dov/2024-01-01 sym/Cough d/Covid st/UNWELL` | -| **Check** | `check `
e.g., `check S1234567A` | -| **Find Cluster** | `cluster a/ d/diagnosis`
e.g. `cluster a/Serangoon d/dengue` | -| **Clear** | `clear` | -| **List** | `list` | -| **Help** | `help` | -| **Exit** | `exit` | - -## Field summary - -| Field | Prefix | -|----------------------------|--------| -| **Name** | `n/` | -| **NRIC** | `ic/` | -| **Phone Number** | `hp/` | -| **Address** | `a/` | -| **Date of birth** | `dob/` | -| **Sex** | `s/` | -| **Status** | `st/` | -| **Email** | `e/` | -| **Country of nationality** | `c/` | -| **Date of admission** | `doa/` | -| **Blood type** | `bt/` | -| **Allergies** | `al/` | -| **Condition** | `con/` | -| **Symptom** | `sym/` | -| **Diagnosis** | `d/` | +Action | Format, Examples +--------|------------------ +**Add** | `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…​`
e.g., `add n/James Ho p/22224444 e/jamesho@example.com a/123, Clementi Rd, 1234665 t/friend t/colleague` +**Clear** | `clear` +**Delete** | `delete INDEX`
e.g., `delete 3` +**Edit** | `edit INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [a/ADDRESS] [t/TAG]…​`
e.g.,`edit 2 n/James Lee e/jameslee@example.com` +**Find** | `find KEYWORD [MORE_KEYWORDS]`
e.g., `find James Jake` +**List** | `list` +**Help** | `help` diff --git a/docs/diagrams/CreateCommand.puml b/docs/diagrams/CreateCommand.puml deleted file mode 100644 index 91ddfa007d5..00000000000 --- a/docs/diagrams/CreateCommand.puml +++ /dev/null @@ -1,49 +0,0 @@ -@startuml -!include style.puml -skinparam ArrowFontStyle plain - -box Model MODEL_COLOR_T1 -participant ":CreateCommand" as CreateCommand MODEL_COLOR -participant ":ModelManager" as ModelManager MODEL_COLOR -participant ":ImmuniMate" as ImmuniMate MODEL_COLOR -participant ":UniquePersonList" as UniquePersonList MODEL_COLOR -participant "internalList: ObservableList" as internalList MODEL_COLOR -participant "p:Person" as p MODEL_COLOR -end box - -[-> CreateCommand : execute() -activate CreateCommand - -CreateCommand -> ModelManager : hasPerson(p) -activate ModelManager - -ModelManager -> ImmuniMate: hasPerson(p) -activate ImmuniMate - -ImmuniMate --> UniquePersonList : contains(p) -activate UniquePersonList - -UniquePersonList -> internalList : stream().anyMatch(p::isSamePerson) -activate internalList - -internalList -> p : isSamePerson(p) -activate p - -p --> internalList -deactivate p - -internalList --> UniquePersonList -deactivate internalList - -UniquePersonList --> ImmuniMate -deactivate UniquePersonList - -ImmuniMate --> ModelManager -deactivate ImmuniMate - -ModelManager --> CreateCommand -deactivate ModelManager - -[<--CreateCommand - -@enduml diff --git a/docs/diagrams/ModelClassDiagram.puml b/docs/diagrams/ModelClassDiagram.puml index 76cf3d5e365..0de5673070d 100644 --- a/docs/diagrams/ModelClassDiagram.puml +++ b/docs/diagrams/ModelClassDiagram.puml @@ -37,22 +37,11 @@ UserPrefs .up.|> ReadOnlyUserPrefs AddressBook *--> "1" UniquePersonList UniquePersonList --> "~* all" Person -Person *--> "1" Nric -Person *--> "1" Name -Person *--> "1" Phone -Person *--> "1" Address -Person *--> "1" DateOfBirth -Person *--> "1" Sex -Person *--> "1" Status -Person *--> "0..*" Tags -Person *--> "0..1" Email -Person *--> "0..1" Country -Person *--> "0..1" Allergies -Person *--> "0..1" BloodType -Person *--> "0..1" Condition -Person *--> "0..1" DateOfAdmission -Person *--> "0..1" Diagnosis -Person *--> "0..1" Symptom +Person *--> Name +Person *--> Phone +Person *--> Email +Person *--> Address +Person *--> "*" Tag Person -[hidden]up--> I UniquePersonList -[hidden]right-> I diff --git a/docs/diagrams/ReadCommand.puml b/docs/diagrams/ReadCommand.puml deleted file mode 100644 index c4262e3a335..00000000000 --- a/docs/diagrams/ReadCommand.puml +++ /dev/null @@ -1,70 +0,0 @@ -@startuml -!include style.puml -skinparam ArrowFontStyle plain - -box Logic LOGIC_COLOR_T1 -participant ":LogicManager" as LogicManager LOGIC_COLOR -participant ":AddressBookParser" as AddressBookParser LOGIC_COLOR -participant ":ReadCommandParser" as ReadCommandParser LOGIC_COLOR -participant "r:ReadCommand" as ReadCommand LOGIC_COLOR -participant "r:CommandResult" as CommandResult LOGIC_COLOR -end box - -box Model MODEL_COLOR_T1 -participant "m:Model" as Model MODEL_COLOR -end box - -[-> LogicManager : execute("read T0123456A") -activate LogicManager - -LogicManager -> AddressBookParser : parseCommand("read T0123456A") -activate AddressBookParser - -create ReadCommandParser -AddressBookParser -> ReadCommandParser -activate ReadCommandParser - -ReadCommandParser --> AddressBookParser -deactivate ReadCommandParser - -AddressBookParser -> ReadCommandParser : parse("T0123456A") -activate ReadCommandParser - -create ReadCommand -ReadCommandParser -> ReadCommand -activate ReadCommand - -ReadCommand --> ReadCommandParser : -deactivate ReadCommand - -ReadCommandParser --> AddressBookParser : r -deactivate ReadCommandParser -'Hidden arrow to position the destroy marker below the end of the activation bar. -ReadCommandParser -[hidden]-> AddressBookParser -destroy ReadCommandParser - -AddressBookParser --> LogicManager : r -deactivate AddressBookParser - -LogicManager -> ReadCommand : execute(m) -activate ReadCommand - -ReadCommand -> Model -activate Model - -Model --> ReadCommand -deactivate Model - -create CommandResult -ReadCommand -> CommandResult -activate CommandResult - -CommandResult --> ReadCommand -deactivate CommandResult - -ReadCommand --> LogicManager : -deactivate ReadCommand - -[<--LogicManager -deactivate LogicManager -@enduml diff --git a/docs/images/CreateCommand.png b/docs/images/CreateCommand.png deleted file mode 100644 index 104d05b93ce3443dc673e02fb36548fc9654ed80..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24027 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
    sI0o0yI7uma5%hpBBC>3v855LRU%9Hm zHO-Y)oVs|Hwn@0%qVafDn%;NUcL#)n9-{5UwzOk+8U9m>_Q#r*|)^2e}Lpioo7MhKjDNpf`m|~SM6fNsqLlY}G5`4sC-#S>O=1cz zI0Uvxj@~Wi-7~s`q(M1S%40E zyK1ZEd6e4NG&HQBgj5SH18+@_&3HoNtFgP~7?;Rtks8=%1YHmO_SLydBc(&#WU$W? zUt&1-QRF3a!+_wgUNM-YK7yx}j5geK9^_lX{h_j?6vMW@tt^ClUOaU}jOS?#xRXed zg^G^PvivD6x?hJo>*15z3pmDKA%mYU4@+GWR%xU7+4BbdeL4N~N*jph+PF;|Ak?vC zT?JLmU!#u(vVN*h;v5XPW-RCsO$n0awL;wa=Ki;SMRxm+~r? zZ3>Dey=)oKDXjfatgx+WS@ZL*fiWpL{xkC*QSk(qhOLY&?%a1z`AzN&#riD=vJfiA zPzO;aGeK~ZvP39vJ`BwhPZT5s9b$ymueUq|{m&AqB)uoCDB#y5qE`aj^#}0>u8`qp zbv>Ufc&z?2T>tECYD&4Lmi|)6#^sA(4`Ff%`-`6rz<+TR@2Y|jk#rTpW5jV}j7rmp zjEbs*2J@AE_xI<8If4L7UUW2p^`DvXKR$H#40t9avCZPH;N_-0hc9-@(-dDi)%Ob? z%-{Ypxdyzc-2w{n>d*Eq$}2YldeO}hezxy zKYQfA&Bxg#FsIen$cX*_?T-Iqm$rhPh8byw&i>2COjN;4O=Ubg^e;KWXT5>lqdB|x zAHq-Hhv0wR`#ussPUHV(?`LxR&xCW9k^{vzYiW|o`r#knYQmm3?oGVC|LVS5SNDGq zWxp6%5j7eaQDx<@Fyl$kLZ!|rkTv5Kf?z~!8WiU#{Onm(XH^ATP?k2k{I~|wgD}JK zZ3)cV_D1VEzClR~aEF=^9A)Z`xMviNMp`vudf~2BE31$Grl#Yz09CU6?uCE39&Q0X zQBz{UNwcdzmy7?VgygnTG0u+`Cw>&8|91QL=Ef}o?V=1(t$+Ic%0K(8&vq&p>D~Mf zp_=b=DK}2tU>O_xua(&zpv**R;@|wsR(=H*LJ%b_%=<6Q3iT80V5@Xn8in)U+x-te zn|SgtjRDNvSmAfW{(lDf0s!p#XaddtWh<3{sxDq!stEj>x&8I`E#$y+Ti6UN{S0#9zNy#$nH%@L1BY+1&?=VFI_aE> zIQB0E$rK=)1}r`IU;fJ}I<{qt1#auV6r)-NAP&~~wO9Y;1nu))`nSg)#90HiQD>I+ z|Kd~!+`k;cZU5`m4|4Fo+4`=;fe=nmrEv6w(*M!Jzp18^%VD+|!_(y+J8cu)F2rV4Ymr2o z2fxeYZJT7Yt?t(@mE5!cyae{YmwaDf-v1kuKZoMaAO9PZKZoMaAO9PZKZoMaAOAlb z6GZ_U>Dk2=2EyWx(6`a$ew1llSw)L8PX>AG(7;}~4sP_!?%dy*QT2Udx@ZWCw=F%6 z#cETS5vQ~30$_z}YHCjP6^QPgl5I*~YBc_};kz|ME1;JbD3Z~0HGoB6;tYT$_deVH zgXeRNc7)wqa6PWXc{0B<%hR3n%jKruZ4Pis*5|d(a*;{0N^_zz-ecYueW-BOeV{z= z-RHu*YV|F}`A@AjeK;&DwBCxl4SDqxOUu)kDt$+FJVQ6xqD|VXUoR-MNu%4pnb0T%sZZ>|i ziQ8(=(HLklbIA0vY3|tTk&@>g@$-iL`IwS&oP6Eu=E=vg`vr6#gUzs}gSs})Y~1~A zwZb$gb3$xqwwrPdTjb8o9r*J#fBoQ;@yYBfF&n_=(>D2qv|jtc;Of$juz6!q?ojKV z;*1A2kJ~nX>L+fRoM2OtGTs7LhN8(OZ2jTOtwOhgw~QH-xKuCM0OASZz1HTL`ulrB z3*?d;W8$yu*fKVcmCrf(XZ!{r=KW0jyk#C1KKZo|K;v@-z}GVO&oOR(dz>2;YDbdu zb$|1HP$TPJvCH(R8IHf5P;@n3Jga6W{QIo0cM-k zO0wPjjZh!ZoI}g=HZnpPFR&a>n#!<`I%|+63 z=MMnDMKY7hZVXA;tar6^6zxI?fXpS20$ilC8w3b_-_Ret4<_Ch2*nRNul@klU zk&&I8m%x3zPpvFAPw53Za53paK>Ma~_{ocWl6XP*;dO#W~7r3&=}V(d2cN@ue?^hZ#IHIMf zJ}}V2$xF>Yg0KkiFx+e)@FyMJ{EA={byeZEp5H7#a@WCn4qse~;M{!c=27|2NJhqh zX6N)cFl=t&$G6mGM}}iJPyXh&e`}H5eIQ{W>B#2I1AA);NSGcXfs)YO& zNqhXdeuN%JQ|w7Km*YG7RmCib0W-Q2#=IMAA1w*IF# zOWog>WZWUpW6`080;kOnUr+$5Nmyz1@16YN%ExB#Wf|SC*v)kpKIfQ0b6SGV+iZU0 z56}HE&lhfkwRfU8>$Uu*R{4}42i4Do$AUJ$@n@pucLnSNXm^VJ2OWF!4rul+NM_=1 z`n(&Ab)8+yjURA$MRo8-3rqLkrIbAYe!Pg^RiwJP*=B-3>gv%nuQy-)d%JxOP?7ws zJ;Gd@$0jrqOjXMC)0Mvu(&j61Zq%tFkPCjWr5>5o<{TK`ED?YI@D^Id+n{@=jNO?x z|5*zz7IQ)yqJOBz^IUO?o*WvNwa%n>c%%hgqxGzO^35*q{y71>C=F= z7jM=>f1jjVu|Tbj6hTZcPNLjNRj)(xEBq!qsvBb@<2BQ?no)`&V{Ii+PTbt`6~nsP z5&psWhA5Nj;F#v5o0DUmStg6JMvZ$8%dsMQpnDqqR*($}D>FZJegD0x;6df^QjXwbLcT zZ?GVzy$>Caz|#T|OpuLxzG+)@NYiBY8E1TcjEO7B(d1ge5yi3NBjV}6M9oC${5nS% zmjcXScxR(6E?+vnJJX-MV~LfJj1Dd}sa6qoTK>Q$V|+E97U_s{J#U57=_sMRjilW^-cfeNZw#(WVH1aGEKYYI8$I{@$4~;t zCnCpQrM^c>XlaTv{9drsCe1}SeeDBVn`7&3Pe@AH4Vq#NXjSR2MXgB+tYT#g9L}Kh zn4#-ZQD+e^Srd!kqRhZo7+=t)DNYnpV%<%qBQF}kmMP2d_2faewWa9*IzoMjwvkt2 zBg{W0`;}G(-(YS!Y@vc*FhJ0tSOcv&=XYX+iR^#f5B`ovL%m}I$?>_la&#pxKjILgKj9I{!f@J_ac z{Y>s$IU~bO#9CK|JBdx!{xZudw|+7tHFJH87ygB|o`0e@t?&86R-=^(=jIX!g1vyd zjPmJBZdta1o{7-*-Rw+8YgG--#mR)u+!}S0h6$3@fG*U`m=oGa}3 zwQ2GGcnJ(LW38i;ZPLdHWej>B1ml^8^(MU7D<|uO+nSZ+L*JCQwL0aiqo-oP6yXRZ zoU(`>DfoImfK||6JDaaAh223yx4`zGG;HbVK^U=?j~9MmvOPU$x+e!+whkd}-^>NLX?SjGE=!E9^8AZaYj(bn)&i3LZY@!>3Y+|mrVhrJ{WS*lLd3L!ET0~T&#w*4; zQ`Bd2?~$JX<>Wr#!ktO^B)eXyU?CNhWvnyAFQ+Y1@$uVbXGj^_(u#93>Hd=X8-(N2WbCqWJ}Fbz2Bis8>H0$9yFxg>SZ@z~el_g3B2fWuFNR zXK_tv&Gm!w-}eF#3RlxQ z6#UMJ>5IjZCtKWZi5etZek|DNU$gh9#(c*3dY#_pNicxoj|{eINv5MbdzO~l&}1q4 zExjDJWv92t+@=_rlsT;UyAFTyqrZY@j()vWl+-Z&Q&Ht}z&@A0-IkF(+|5Is)KF4;tn z1a!twV551(_yT-QXX zw+#xLU@&RCvaSTr%GePmZ)~x%755WQlci{njnhx12C}c)f30yY&rDI9@9n^S;oB&C zseN>&8LYEF)LDibjHffD#S<)>$Hj)ya|Y9lO5VC6muif-*BsC2emDzJIWmq|Z^8H* zn3b*SGJXD%((OdQ#yz#%K_Q`8_}N91Bpgy*$Q|hpPN}wi*`{^Yv7%M&0(!=^0YW24 zaZr&-_f*|N$}J(a?KF)Mif{hYs16xh5)fX2pe$QtJy@^UWxwHT63~&S`qePe+iieN zcHre$3lcJreH$SOo%)h0iwo1V+BilqDp_@eRkx^09U>qNV{im)yrSU|*z6l~PN#LI zQ7?(K`{bEH=z`_gba!6Bvv32JD}IcUV~)1p0?m=rv&;U~CexW0jcn%yva30wVq`+g z_SC0B{JiWvDU%$9J&TcaaZ%V<-QN%>YjuEs%Qjvy* z0-8)RrdiGAM?QT7YDzziXn4ZbmTXpTo&M-Ky{Dsk>d<)(W^b=mA$S9yqEN8s+EUeH z<&z_XR0DyMCC^2Aoq9r8eGbxm=;M?g3CDGzy==bf_F z#p1U^Mai+x3a}pM(J>D@aCHx>$8)m48CN`>XI_`B874q)77u0{e{qM8Y*6j5hK9z~ zwY^+2qV?+~M!18(>ebeF#F}(^Ho-#6ulvU|2m!^)TM(De$7N zh6@_xSXS|xw62&~X3XZ)?U`(^PCsfgG<_$Y|Dh`Hhh%<603!aSea9Hod!IOQk`%?yqJlw9QmUuc5 zq@vYsE0eL=dn;}xv`wdn*Q))zc+#{o>#wv7RT)LgM)945N6@`i*Bo;KzRro&7+2%n zheR%@NN2#EzR))3g-}-E6#V=2-f&SPueLDz88_acpf1P3X%O7`EDBV*pSI}B(<=~@ z(}c>!_MC^ z-pGiLL;Tz!c_r-^yfig+Iu<(~at00U!?hJ$K^K-$h>9j=)l*!+y$Qqy{5qhQi{l2$ z8g?t#Ssmni@MUvmrHj1`S#Y?i6QP+`kPUio_aT_eqXakRsW&;sGn0^EPqqH#NTeZa zOo@~2?3-0vsk!9pqnZd6#V8S*p>`fGS;m$2j)JCqUl8BR@2?aZ}TPd6$M)HsugOQ?e*E@OZhZz_#X5jjwqsJSnx7g!6=0cYct8$mGE(;4eyMXQJ?yF^xV@EX^H4 z($4U2j48Pqm2YF*({59lT3h*P!{ueW$m&C3x3Dn{(_*`Xk1KErhLUJ^NEA2U5V100 zHMcR*R++!5qIPQK2@g zQ{+H#~=j`1wCUK1Y*O8W7 zKO2a3d9JKKF*L~BGRAa5h1u^U@UzNtv8c6*kwniORs#LmiUaIQ=R-Mt5Nb_L#MTZ>fx;5vKgQH~s; zP^@go{K!yujQU5{?%~sJj`Szsqe>0X`L@^wY!BoCYPh~_Fz8YwJrt+>RQ5%2U`k?konqHoDSd@@naqihLDJE>5RYzyGsd9`R z(fiV)!PO{Rsf2xt=T&8x7qBpX9`xG@%;{s~)*<+_MNgILu>}lfYZI5Gb3Ky$tv=v_ zs?Tw~*A>HgLh_nRs_GKD_eWArF2yiCD%oqRRL7SIQk~ZZzWMk66_in;ay_?+yj^0d zy+}i@If)n!i#7s!)=16dbG`HB7SGj+L~TQEvWireh%%~!0Wb748R2@4x~_4Awlt^* zehto(!N)f-ZG_5tOXEb(hImf*K@lMlEuV>z*DZXx-CjaYDHO`s}2iQ%50gd^b=V%1yHH2;W z>gPcbW%k##wn+FwI3!#MST0DT8<|1V+YsfTxjz0v7I;-WxGaYpv2i~%=uzB z0{G23Pf0Da4JW&#T&6nrM~T|GQsz|WW(F(W+^Io0n(~P> z3HGkKL9^OdsXQ2#(qi0F6?7YbHfa*lB8}ou*Q{(uA}g9W+8aUa4(yE7v{$JmDjseRG33q|ZY4q)nTPP6gu1xBK`?fG z;b4~C#(HTH5Y=%rShc#27z!L_T2IGX@ufL_B1TmvLiQWlctU8l(_hhqoVn*FECwaH z=+Ci+YaMO}sp#SS)`!1d^takUWO=;M6J+UCLLp{b#%eIA=YCJsi33@zK><09++X7y z=xZ85AvNQrWEH9r(kHiB#Vdyk?vZ(An{HGhxG~#Q{(`o3{2KEMNbv|qP$p-LtOkbX zLGNjyo55}T+AIV^`-V1QkBXwo$wWdKM+kYK`F(0?E&qk&=W{8^L?NtD^o0{NF{!7M zXXmRWp$hoMn4tu9Rq?TIBiGTcGajXf)$*p97P%3cM%*5whq3_7G8Ah>E}orOUm!r% zycTDAk`?rb0j30jAVoOkTGlw#gWDh9$ZyyI&7La{ngd>h!R}`v2r=PC^z6gcVzW<+ zC^tFOUGc%v7u29PXz%+D$@dEXL3)9NQBf7449_fUJp9x_L@VhlTd(u%TPd}9Pr5i| zuYeoR|3X)P2qwPa-VI9BWnWMdy|oEw8_5&q%yFctu2(zU)GKjJFq^T?54N85vEt_$ ziAgdi5irZ%Wn$Dj;EC*!K0sAxirlVZX`Q9ggqEb6JB0bc|y_~q>HZ9A3&^wb{j|XvK7t-8k zPC&=5^orkJ9pC9^0Du&C+qVv152t7i&HVwIv3KMNebwC{qSxVB5FB>B{k^b>@!&{! z`;6Am>N8ns7J&5B_DDESaLTUMOgE>#d#8YyU=1;4E)Ewmc)cTO$8Ppe?ZO%0wG#y! z|6|5|%#PX-UgD}UYYiHV^SJmVDl#6SI}+OY{+{Xj3BpWGoE>q`dGM;#KAFzHdzaHUEbJXT&Ku0 z;>pLSYd(OV%)xKJxLnU#G^fHc?6q2h9u3L2Xg=ySuPPfb6f7%41(2jjtu2*Db|Bo$ zG%oC;QE}8SF}sN^0A9Y1oV%PChyW)G2P4z`O*m_7{7vgjx|P+9%byU7I;c^)qhjzE zziV5@F3V4~&bn;@0&tfaML=9G(HpOX|&}IAouVo#+;QdAI1LKcHW4B02}{>6JE~?n>hov^*9DC=>`Um-$eFXK2SZg-cd6Rn zc)db-qA!eT#&dYXZ+;ds@tn5h^auAU9rN}cG;FBH5$BK6(VTFKzPLCgHd8p1ipz8? z^O`PR?&~8l^`Pf6&;jbIlRRx{608vJ!Rz!k6h8_X-hfbYCpV9VymP>nje+QRamx8} z0yy8U`k@=4!m7onf&W&4RfpgSLl+&bEwDRS^4m4;r@)1(#gsUWACTRsR!!3qy`W`@ zSJ@d*T`A7n zNYL?`oMcvYPkEkGeqIRsWK$UA; zRc7TF7BMh23NAVOWH*OyG6cAF%jH)XtJl)B@g%i~C16)m3Lr6l zIZq}o;Q~(TA7H&t5bqQgjiM}Ir1Yld$vl)(u-K-B4?E(FJZ4s|y&b&|u!xiRg$elT zgGy4n%o`Cm%hH9Vp1HZkm=~8DSxv3PC#R0M6)+t`yzq@@sAeP-N{b5UcWm6aNAx3< zpgW^KV@_`~z-8Gsbi2-C*ZkWMC-q?u0?Y2+@HDW>O}x7XoUw!Bk}<)CC|GsjF4k&q zpRHDlX#`_{o-fc48@VKpPLqItm~Gj?8xOn)&%V5GM*KM6hyHjvVVl0zN0>~$lD@%y z1Em>T-chMC%yHp_o@7dfmcxQ<#jag)JVzsDHVy0M4C42UrQKCv`a@0;SUJ{j(KcCi zq}PI3LvH;0!BR@Ao=7a@HT=@QL%#YpO&hvAW;n^7VctCUz%_=v-- zhJkrJ={1kOB*%Ec0*madM_nASP!QkFO-jNKg@vunPg21{jxsNG8A9pXZXN)R2PyJ+ zB`CzL=fjt8J59G|=pr#Hl*KPRRAh5>j~fw>=rtr1BBbZKbXNDG&O;2RR+ooL?VApn zR{%#^5$8pgnberHZmZQ4o=&XE^6D!tU3E+i_G~^rWYTo#krmPD8}%@>_~Rpj^uC@Y zTYlmL?iVZ0wk_gi7iW7E?@z@`gOd-NSx7RQ)1^O|MX?Bwe*NSW+>8Q#s=7CEB^eP! zdR@w~#?Nok^ybk}F$Y9!>by)VjZ>r?{Y0aOje_uc6d!X4r!=2Jpo9>kM6wJ=dj{rF zTL8hAP89R;dwh!n3fo5_6FrIh6CBBY?!bD7f&C5Uj(lPWUAQ1%5?+$4ZU-)L@! z^8)dI9hG3W9+3q+!>Kj(zJyiD=x<5Q#6MEM>t=J1T4eFUz+ipqRZ4##&($dZa*8Y; zcjjpk7tSqXRZ8QE-xt~6E%6^$6sg1oi&H#auHFx}BWHnvQJD$*wOP zDH~rXfxnnJWOi|sU4zTXwlMHjSG^FvxPn(ClzHx5q9=WG-48Iinv(108b>i3`1AwO zgZmL*n`W*Iy~DEd%#k?9SwTGh;NH-$Q`Fuc-%{B+AQ?2#6G5|>O?qv%WhmtZZN|75 z@Rz`{AWwb3e1Or2`}&~Wdr0iWV5at)n&C$7rm(5*ytGf|x@Mm`UacWsYBQ^7zOmwA z#8K`BDOKhXc&1iUt!>-&rNBd#mQ@#R+l$#eM&H;IosDWPf3dObd(dlY zvbE_!?)|V-v*dj)soVOR<{m7sM3=sEnVxkVc*ArCzJyf8YbG+-?D0&JMy(La4(;)+ z)kf-ag-FfbZMOP45?<+Mq9A&q_fiiCUf;mY)ro}5A6M=&f_!)CK=~8K5S187uJknb zZ@J}X^is1kgm@vlN4OdOcQ=eb0-yq(a@Sn z!$u>tHF6u%Y>hzHY!8^j>Ob(-GrFO&Es4tE>8lIVe)?o__%Z~Zzz4Q0MIB_wrXT1j zuuT))8FLwnT3rmL=HWJy5iDRqWy(Bu{1zVtZky4!GZ*Q3LcwRA)2$7UunZ_P`NCy1 zxboFigQobx(x)@O_D<#c)d7xoj&g!(hb&(BCaB9v_$DgPEsI4BRqf%aT1}saL_#J- zGUD|LZ0#=-3~w8?;p2;*Wa#BzrROB{m56rVf6|w8*afVm;87;aQhwixjtm11E7>~- zL3)D<4bP))w#9EPhS6bFaJBoHtrdHZ^>{$R+@wML4&@x0%=#|{R*9DNqeW?9+(6} zVa#DH@tdI-1w+xW&Tx0-uls@@Q-PsFVVY|p6-}n1X7T}AbMZO0LM3k6hz~SQ&U^5G z-TPA!vrDJCh{V0FvVXemJ||Au;U7xoXlh>k6z2Kjc-~XVC%tp>+-KgHgAmD#|Hkh? zymO$e*JyKD@7|J+F$-|+=D`n)da+y0#AhWNH?F%ik|8-P-hz|U=iPqo0$mUX!hfP5 zk>xLbYkw!h`q4BRgG5@Vvi$7IPg zuD4RZChTpYJq|KG1`nf*mHryAT5xL7Y7Q5Z_eT9YyAw19&u4!uDEaHo??Y<@sNSmq z@7V0oa7EN|3{-B*sc>(LZfh*UUz zpW?p;Zu6CT!^`DI5ziMtr&v^(s6oqXIvTdfPm z^$y|VJugaW5v00T6#LXhuRsBWAA?DHwQI<3nR+Qj)51Kf_KK-PImRHavhSU%rsDj7 z=Tptu423i-t!0RgR)OP?hL(f5hN2z)ssR=nJSNHTNC;#e|6u);K2ZOIT?knm`y=I@ z|LtIUKpE~W>Tk3rYBtlfvV8tHjYXphCiavB9KfsD( zF=u^sgiwR?n3(A(N5hZ~^M+snV4e_VoGz8p1e9o<@i6x)l`_?x>Mi13jd4=bCx)fPTNT)5-Nj1I0mh5G{A7FATAHy1OI57X zim8!>AV!va<4iRAaCXOtyUTP?M>XINerY6u+`r5rf`FS)i8eDx*T^&;5|#p#tTkWk z(2;NEethSju9kFn&2&T3IPIt{gAG zMsr}KiCsq0I6zb^95Saw(7of|TXT$V9zKVpu#D%}>A#|DWEf4MU*y-JaR-Q=+sGWq zq?}?*WL;hTR%#NN{E>gsC>Sb&ZjoZ86lgL|%Ulqg@U-vZ0Pqi)MfWcS`S%qHu0(?K z*qxr);;)dT_Ysh~nkFtCeXduc#fQ_`ZSsU_PXq8`jHJu`ff;`>&wlU1 ziEgWG|E6h6AptbD1PUpQ@r5O;x*uPf>3gMl$TnR2NEyH*mENs7Mh-XcmOB~Z=7_81 zdw>ReMy?G4IOEx5nadR_;f|Eb<*gDFZs2ShCvh`X9=VK^z6DY6!I-pj6v@!d`N z6-omeZBwOz^X11I91F44vLc@ zF3GY4DT2-J$Ob7&%U$J9Dv!T9!4z&_L?iLWlax&Z2f0_h4-r>_+y-^f(1W_N=?Sx>G{q z^r}-K;J+sQ{*ZsUS0J93hKb9M4Ntb-!RKf6$m~(Zyg8TxbILv><8U<^K0tSI zm1{C!;_YxSm!zqqlxUUVg_)-}tUi@OjVC}hm2NurWb{5()xu+dReHxm+Y=;nIVpfq z88qA*0q`o#xmhw}>$t8YP0SL09Q_~i4`HbC;E9SNe9%+Cux@qJ`c~H0v+4|;tC^LbyPNnKu4!R zwj^k#uSC&r`@>ES*7D|ir8LiMu(zw!ofs+EmEl)X zfnX=pjxp%`bx@BQ-rYB;pKLAy>1G1)#w*`Ir~*h3`|Yik4><@M-ZHp~?Yl(-1BCXK zJ3Q$dhe3WdOi$E>+xf)niyrH9)xsnY=lOSL=;r%V@$wGbV%~cTgWFSvKv4TQzhw*j z$$MSqD-hfPl?<$H<7!}@B&b>w9MM*g(q`8P;tYhcA{M2#5J*9h|s!Cp;(T&~_+LQZ$129mS z${V?2{ld~1pMU<0ktSQGyHUucN()p9Oo0bpudSrjy$sN9BhEW&opHs-tb2vTO6NfJ zIUix9c+rLhW;XSa!snyPlP~qIrgCZXEDyy<0*V!9DLBHjGmDqO#N6t=7bkRm&K_hc zs>JcJ9MY;|I%F-c*w3{o=ZI85-mk0IQZn(QJ*ZAF9uqIm=Bwtldi=p^N1WeY9u|=E z_XifIuDs`Ty@8n8^AgU ze0x^R!LjS~Rs<|c5(4STH&|Z=sas(JJLAUmQSprl_{LGjFUd(@_D3$wJAuh9UL_%+ z1Q}tM^+L8gs&O*XgujyE(Ls*Jjea>%n1?xG!4mhJ0w=^%YtnUq(`cRO`x6Xxlj@1P z4xpd#PLZUzxgJOSXpV&ENAJS%*N|b&M}(C&LITvuP^bdN0HLZr9o?^G_t~3cu+OGJ0ZTlD*#@0KbnYWiO5rKIp}ON|*Oz`wI4gQ$+?w%Ivm` zIp8iW{3cLoq1L*+CHJD?@ZJ?9<+YziOK#?R?L{5m!GV?Cgp##_7knE@Can>|d!E1< zS-i1EI)_NT#HeM9g;9^_MMZjitkZl=^FZNVoe$172}*TTN<0?5^kfq7OZ|pBPBTd@ zv~|pTJJ2&G-<4G1*@IIjQyxTOUw$66MFsnU2B%+&d_twzCL|0EAsV0$6uO zLyc28x7x%rhNvVY=L9?+<9?FSn1CfdkV^(SxEbIqRPS3OH}ebsWyl@0j9S>36JX#x z*YI4aty@^pWRzn)L8bOkU5&+thmC#3(14gOU7Sl2r1ulo?F$WsT-$t1Uy78fM` zvP~HygFwc=_3zBv+C&Dr6BNfpG9qGEHbUU8P1=3L1*74$7>S#Oi(gA=N!=H%=FKM< z*S&OoFdfi9YpjM-HnHpYbki~ez%!PT0-GY< zpE-1(rFGW?Jd|f-**$hnmFT=Pdx9 zn_#TiktcgOB8_AhhSjqG@+Wr7`7knFYVd2(ua_yunyCh}wt5}oQqeC`5kOVQ~kJ+vR9dWV8#;=aK~uo>SwfFdK) zksG`#T*d!wS43WUU5tct=ndG{(|ffKLF(P4lgbv=u=t8s zD*jf0ysL7m)P-jCNfep|z0M;m^rRdD=rC?{ldFcg7xab@+$$ztX~4$YuVK8{;T~h8 z9T~s|Cesfo<2;3y2*~=&^SndAlBYvlZT=I&Qr$J{%J?j=jwdHj^H?reWe^!+>0kx6 z5&97z_*r;z%8DA`b(euW+OgLH29X#GK!F}@^JZvK4s(VRA+ngQB`MQM5HDU89h#5{Cyrb) z-`xnZ+j1_R)kZuNWka$X*mFUr4PRzIuxwvhq)ngz=AbaKvc^qwnkij{IgXklFI{La zjadK8;1*W`_F=FeeV$|dl{p;0Wp)CSY}vhld&2|5&S<1KUAsDtKeH%R1@OtE)Sbu5 z$g7$>M;VP>48ncg*~UWa2}q?)2vRypRVH0rqJ6!Kbi2ijRVrrL5x z9A%~i7krYkewD=-fgoj&rPE|SBD^SmcUH0PZY|%KV$aqHMI^_qO&|=lKJ&#|?f9IA zw3O!l?}_+r^t4ccbxjQ|O%}nZR&)6P|K(;KSz9$LzBAyEki!GNJ1Sf05`b8kT#iIt zq0iko$8btpYo^ZJsV_)$*r$7<#eJ-7#~>&(oKJf4FmVrEoVICOFdRd~cB_&~aBt;a0 zxtXh>>2U58W8$E1zn2#YXRM=@kiUMf{c)8`u_REI)^%Es}2QFWocaTUc&}vjhaluMm!vQ zkO^uKJ)5Adtllazj97OgTRlKn^NQ9yh_nfD0^j0Ri6)ZD)V;A zv7V0pwbSA)w~Okvd_0kGy57TC;YM95cXE8WeRU-$>f@Qz;8OAFpi&J9Eug#0-$QLQU)Axgjc z{E7dy03d^+V8q}wG|Z+RW}{%pB~F*AIu5t=n4UC3n&`9f(|O>{G$W`rF%YFK)5?M| zp=cz4B5`G&RB|;^(7-iw)to*F6TM-XuAg<3;RrPFEq-?ZU~{OUlu>vPu|)VH%_}7# zXs**0QetU=phzy$%3TI+aO2|P+0t%CnXp_PeY3CTt0nALwls!EL~EQ2_%0RyH< zg&P#<@iP*W=?79K{xoX04DQzMcxBR@FW(kbyRrTa`g={5VAll!*p+kLe<6B5ouvLd z)LbG15r$nU!Sw>}eMTK2;p_}xeRPcHK`~g@c}xgv51>a*u*nSe4mwLbI7LIA4^7e0 z9Mra2w3(8pU)rEd^+7{pI^1|BpiS<`ZBG?G&~B5w^zbmvL)6oRV`|nfZ{*#17GvdR zAX!sv|I+y&K6AJms-tpW&*i?PW$39F2iy<3U*ctNzP9g}-1Ecq&HT;y8S-t%3p8fi zx86M~WqbkEC{=O7KDH}8d6~iWj!)b$o zOjXkDud5L;pDWc3-BD~4tw*j5j`r9F%}5t_NG`4yK`L8ClbFKZPflxKf?}oJS+)$O zAXT4nCfEYUevZ4K*UL&;)x$-6N1&1GlBoR14A7L!mj;198_Fk#?_XMBHMsRSaFYF$ zwn^-2H^eH8gr zT7#CQ=^j=%BJ~BNuQ;*LsRb{?ijS2|5(7k23BMJ5(wry+%T(mQq>Y}-i+ua%@g+*M zA!po=Y0WGbI(c3B~pgjm%Ah$q#s_oQB3QiiiOXz@8^!%hE%c~sC z8v*Po!b*xvU3KI>qpjUI=}8XL4#;vmKG0KU=k7G~HBk)t|FHMw@ldY+|F}{qov4$g ztZ7F`CA(3QlRXS&Eh@W-u``w=MMy%~MhY1WvW{&kp~Bc2W8ayvj(wRi{H{6GN#AMnu6rwx4aLg><& zd-wQ4w!-Q|Vocq0U)@b$>;s3!Jtn1Ykf}{1i41*C_Sjz2;#XjayWrX#D@7!EU$;^= zH&Pd;La{XdUSa5T1uaah`k5sXDu=z@v+6$3R1-XC97X9|r?9HxKY)dTJ4cls^@?Ep zoJQx^u25(}nYCNLMtl`HmWRDqt2<1_g}7e8s0xn64~*-Es>)bx`4CVan5p{a??c18 zr364^^VnV5n@dRFMa)x)!Fooqvjdq>XhyOVY!daMK{zaEX}EyC7Ec|C&NvFdssh!`)}0 zbYi&)9O;Uulz6slQ;=(l<+W{CtV|$o37{XdURb1sH35$?88urM1g z`(36mDT7KZ;P4Q*ljDh~nRx%FgU-hA=M@a|U~e42uwB84Fr}@NdRLKxuR75qxrZoS zMKCjF2!xw_!c!I;zn`6N&eFY7QnLO0(j|d`9R?ag?UJ9}h%tRo zfb`bMv~HG&9DJuHs=0}%&lGC9WX{k~Pl_pobX0ss6uJfe!yfY4f{~+CnwOYHA9PEZ>_M!5c z9hWD6i>_+Nyg5|M_aI7E0X?oim<>%qhtdLsRGNzt+2fn7wYwBn7d@v6%W5|_iomqW z|3JDEqLc2nkbA&+;e91!UD=x5Y^{S_mGm}1jR;DgP^PnWm)$Qr3LEgQQOLd-pR+)> zqrwfU!`DWUYP6|hDq3oCJ|boAko1S^W0Gka;i24;7t=Ho2FiAd-5;)1xDORJNDcmk zj}R6!^K8G_>Vk71SUZQ7CqhYndHy=C+Pn?T$fZR$PKruM>U$ss5XU5sR`&ub~w z@R(c}@P6axFFrGt5iC^gvMc8n9mr~L2pE((+pn_nojMG?ULoI_ZRFd<*w}uItc0FO z=xhYU1f18DYE*_1f6nK7n;S8M0T9Fig)1eQ?njL#J4+=;>S9gek!PK5bVXEWcGJ;J zBM;J4`er&knIHah^2Xl9Y#VFe@9!?enPKU*%XI4t_CL!nZP9nLA&; z6!NJVv)RoR|846E-E*bP(Xs6H*l?Rsd69T`T)9>p>a4h9AK*|EpVccYJxJ7Mpj;sP zt$Z874c6tGQKCOAsSsEi`_NkoJyCaxe3uBlA>g3IaoX&xgYjj@<=eGjHJf>_`>tsK zJ-h-E;FoY#FG%)Y;gMwXOI)me0zlH~XI39QR~n4&goS|QK{R?;=!4kWNT43x{oJUb zMggh2)UAe&nk84{6>q1p04q_g6|b%L7)PF+AJnR*s`Z2b5Zi?Y({l4>eB|K6yf9H7 zr~FMM<4}*Wao7d)wge-(`_i>6JTRXh2J9F+!F8(Zs-BjQ?PAx#oCL9vu^Q>Jc*dTV zG))nqeZ+C;H;7hgBAfqI>~3e%&Q9w@YnZyooo0;Lq)k)(9zPs>)( zjhYF^;fhozLG-F?hTP(24X6ewmb2$vsjXPb;wHlE$NtTY?eYeGYwlIS1MOw0tGrF$ zMnUD^bjD5Asxe;Mu%V^E=7Dco01<;dZi;DZGlBhXJWC#*TsDKqSoi+%-;?9te59wZ zH!mUR0svht4Q#?zcoej2Jqrf%!U*nyWS&z9TU>lH4BbVY^rbNY5bby}^IYBNY4gGA zQ1R&}x&s-#%N?5rX(ax2%&Q(_xOhWcB^qREA0`OCFLSMr{jjM&_N@2&`^(LUCAPHF zshVO?54vB+Txfb#&x7u=J3V*3A@^PXhWFgU zBK#=hoEGhd>O@=VU=AYOGDy>2rfQg0o$v&Tv@K;;B(&aE|F)TY%g%mx1OL5pjGm|8 zGWCWLLb>Ff@9mL$r{vwIT_TeKDYXM{kqX*lvzUfnKH@_@mo|oZK(-zPHY_ZP-`Ci) zup&TLH;^PdwWf1fdIhNBoIvf$HZ2fBWn>IaTqeG6s}&1hV`So)Ual1@W7|1WAHuWS zp}R!mVd-q}eD5+N1?1?iY;FW88LhW{27{AimNc(elG|Zc}XS%=<&(%IJq>mJL&+2$Zr` zyf-u+xXvk52_~bnum_fj?xz%1uX)TkU`l4`e!N5xH|-h1DR9C#L8^$Sx`Gyh4A*qI z>lDJmM5Eh5;7m5c>Jh^F*~ZY!(o{8{8la!UG2VcGFperI2Uz(lc{VPn*Yc81DZ?G? z$T=y@!TCO2CQf{4gB&$8_IXId@Mw1$R{RKklL2Nn#P}HoZSx5;S0k+dK3_7m+6!>P zm<%2(Tx*okTm&?!hqr2k#VW4cZO&`T8kK!ilWslNOoh;v_g0NQx?VYunB8RnANOle z;iEuL_)sSY4C~!S{aCQ_9(_TOFrIr2lfWnopC@3;q28a@66qL9N8nxP4o{dCluCUQ z_T!0q^KREpiz$k9t_NY{KI#S6z%(mV#TnKsk0T?_Jsgu5o2F?c^8w$!>6RDt_lE#I zKd_x_wQHU+9-z342k)Lw?Dh)ovtwZdiYGJfn(Y%7L=*w@cn(M`B?G8`Q-&6q6np+% zR*R#BA&Uj9BS#zrI=Fynk(R)OW|MHBr!7+`_i5Y=DGzuEIt-MQHXz|NKh`ZPiZwTW zr~s>*c{-M3F_N?b*MjT?TyJ%py~S*SL5+vt1vA~N)Eq|Ax0P*m_svv!sX3)&G}pU! zw(Yg0t>?j%=lV@tHd)#!JPwdUQp0)XQUYb%EtOl0*Sotp3w>$55j_))2Z3vnp@CbSEc z)K#K8KiVi6m>5)Ze;(=T4#KsS+@pUg~rU%%IA07G2d#Puh!;IQ-HcgGv$&L?$k=`ou%EnEAPLC<&W zJ9+z>vCE`{_zlvdTUSTuraB!^)Wf5F_f5*W-hW_V!v3N`R?@J*27h8M?mrx4-!f3_ zA(J;Mkz4x)zYII)%W}(L9JlQ z%WhAx-{a5xU(+@DYVC86ZydfS;b7^mOaw;#>09qI`fUXs zXsiR%q5dxinT@a2qiZLoOg>%MsMz_7ec~n316X(aZYyoj=yQCMe>xL9 zqhlWTcR6ot^s6(VF{+*7g3HG8jCyE-3jsO8Dpb;m6?r3E;lbUFCUB8>iP9pmFJ(ck=rJ`_--BZCt?l?*8Y; zVv@ICgONvO%96`}-(g=RAjR~5Sd6dfu&21JoZTCn^NY3h59peTZ5zA#Kw}bUbb#D9 zZJ{6j_TOq!^iw=d*AqQmJi4)~wXMPPq6#fq)&9qqe)+L~G`*n9>m@?xcPQ=w#lELt zM3MmctugV#NV& zzIFZVpGc->bifpj&@TC*)i>yf|Eq32UcX20C(-p2YvE>@KbV1=KpNWQtkHFWjm`Og z&H?m4JpzUqvFqDM{QKi1x+L{Bk8j9`AO5zX_x*3t*Tk*cEgKu1)C`^{Y+sWZv(YB~ z+y)UN@WD69*+m=Z41RCK>HE^@=bQf5E5G)8(hmAc-rb_T@wrwHz~G5E8kFz-)#!Zx zrH}!5v(pmp)5h7~cmmv9|IY63Kg?>YmtYDXdhYx~t3L{X6YlG&vZZgn=P#B6=y^pC zdIX+Wapgy;+l!z%c7^Z$!1q=>05qzpTt7TnF#t4r*KF~n4TJKlZ?8WA)c&PZ zrhw-ebc9_M`_&!ad&`g>NU7~HgQ;wIiN6J1F8$Vd#vhvV^MEVv1z#*FkotV%csBkG z2G3{!?Ro6?eXWNEZyugXh}t;&ldjVJh`{#4-&?rx+5cIQ#(%&RzIcB0;>K1-LV+J~ zqZ=r2ZMgdL=YP}o%@x|%z^^LWfq#H&`6&V*(4xc-3(bEU_+suM$3Nw`V?ngGbAIu~N9o)7d3B{9R`L-r zct!6`7Bqj~*RPDhn?H5S3U5S6DdvIgTykgLrC*NDf5W7h6tP+4EQ5TKR`12XNgD@i z)8<_}GEIvLpLeQw!w6H|OmZz1CZ&wH@P)(SSc{sp+?#VF7QCP4e&4nO+V{W`xmhe2 zy>XNEccO!}(zcIKTMOG*6VcK^c%7$$AM&nf!i-bFV&9|r#b zS>Apo57?N~0dYSpny90oG1juT$~QLV=M`kt4nA1K%eS0&W1oc4GcHee?E0}eKR-!> zezv&#^xh9Xuo`_CJ}4ba`2DKU#(+0RmAdI~JP-Nb0*;vj$F0bpZNm>&6c5pj(T)`E zjjh(y2VEWMLM)fuc=hL2d;(hZC2~tusEvQpK1*L?dF&j2Iy78TWauFLXnMKmU;L;> z;|~kbihdxvwN3Jet`-7^=aOdEI?s(8`Op2{_?o`oEUtOVZhQ$382Neey<9&wXX9sm zc~UI>Y_UUp*AG5$G=1>?cEihVw3k0WDai@ES=f!78NYGX)*l2npQt?vIVVqD;ma5F1daS2it2QL@hW5#6OVYv%&YmtHmHTGl<~m~7D#I|hn; zJg)xJ9+OHh#Lld2v0(>kl-n%W*ERF;m=4L~x*n(j0Tm>9pU9Hg`Xa+?QT;mU^2}&` z(S?_O`L3_P4*L8kdc(cHnhtLsfCG$zD}EwF3S9X$c&W=!&uX zmDNn)fQtc$#XKNwczMgManC|~W(X^{!il5C5`ye?w#DW>vLQX1WGUgZnOfJ|0}NRp ztPuMP#?sd2&STEY4E8MAVt^zZT}E}7Se%pvm!X zhP6XW;X$b2KI8Irx2P?p&Xa$4d(Gd6w;)v@02IVj*YY&78&m-taO-*S?DVboJ*&hv zU0cAxeJE#f;~_Vs0w?fqs$zL{&ZQ@VJODsPgQ*QEsKAAMn&2xr*pyL~uk^C_?b_=z z*ALyRxqB%x*@SwJakA8PDmdIA^L`Phh|r=_XJJ;ZZ||DK*5MH0| zPy$_$Ys`4f2tHEHon7wJmh0s1YR;_7%BzrxbDXV`NFSK%YR@~w6qv!ioJW-Y>_q|8 zH;`J-kc>~rxC~jE&r_Bd@;s&v5<3p;oMxWZ#-|pW@0IX6!P=Ws#4X0=Kd|T98rGN0 zdbQ$T|hR1WI5%oZS30;8p>QRc?SJW&BtR$euDHN83^TyUW%EXY($m}ttxV|sGG}6 zRN=KRW8w!1{%{N^WDTrGZ4rJ}~K8)ZE;})ldZk~fvKnu#Q{Wa#5 zY8eoRjO|p8>JsxF4fA9yPYJ7WpPt{VRSimwh=o4R5CR~l3;{PW)T9Hz@&PI=o0ltD zbm5~dcB-1&f|SFUv4%^KKbBgyR=ug8n5;VOx0WjgWx)vyX}PUV@xt4dQ;i(bPj4x= z8UFNiVWjR##YBL44@w_uZDR65ivk~>Y+3ct0I+Jc@ebXt26mJdw}+vzwBvw4R4C+1 zVdi!S!6(RgMmh)s$ihJQ40d8MDYe9rZ@O!)K@Ix&7>5P_l**p@gww}*t`?L0&_O#D zwKVkeEOA1KAAuM;FF$%0pSMjHC9rdRVsXeKyoO0FCTi+tq`#m#atW^D)X+ZxL>Ho_ zhzs3RyjWTig4kT(og)aX@ezhbnC4$Qmp%YTcXc0uc20E^7>!*9#a8Tr=m@yOZLCWW zr$CG^o(S%x?OzFCZ1k8|Ete64j^m;VxotqKakThLY|8MSVi9)DAzyP{Q#h>VjP1Nd89%{N}J_qBrV{1Itz-!_0lQ!{}}&_eFe+si=@R z!MNevQ0Y`@+Q^w6ErBshq-V)|n7vMpl)*mS^P!H(zDLe1|Mb#^yH2+Z@~Du}g9>=t~DGf9!%g8SB7nH98< zGFjUn5R+~L#UqO)bhomfoIxr&d-FUf#PjHU_0Etz$6g9G5fcfwk1r>svr5%Nqs`o> zBvWiL=Ce=(Ern||x(1-6DMExJRoWJXFuOgY{Bbb28Q$(PBTIh&nUKbIeZjaNW0{@k z2x_&|(6Q2EF#!`Hy;qI(+no(C(N>mqT4BZljB0-5xsn0YLgD4VGN+hwUEt1UuGPKC_gJ zsA9}YmJ&(c+W79W_dFEu=`=_P*kIX&r(!lIyY(Oljz%=yaL67ITsC~zo2n64OkT_8 z+x-bZAv?$s|;JU3RMvByPOg$U)(7pUG(wV2JGtr;SC#wmiL!f3I|>IVBD&|A8!r=*V9_ z9N0DIWf@*pL@qCViCg&WvzA`-c)ht{6;`qk?OARE(Iw2RA*chE5Rar+UGZe%o8@l7 zvTg~Q;8KYpOF41c%V9Ed)SzO~tIBY01wcXuvZUc^_)lJoW9*#a0N*1uSLaRji)O^P z`;Kwz22Z;YMH2?&n_dhy*DCCsB(VG87>9Oyt~sd3dgBG~CALRFY&hbp%8y~RA`vOS zdoook`+iJEg3lgDs{E4vd&4-J2$0k|V$JjWoou%iGgys`HAjtF14$YPXjR9d)igig0;73=EhdlaXWGK{1x zAEWQt$!3$Ns@`>^?_R3TZpot4I`}~VJ*|*JlWW9$*RJj1!Yz3%PO&ff4A-Wh)pR9B zc~IT?juu0x&(eBcAKTQ_mTdV?Xl)vj)V+VJ9)*uk>XJTT(&^S3ciO^`OSlMdJ8ELc z>*XEc{7$O@SSt14{Y04Y?U}%Inb~C}%4g%Yr>&B}%g6_F!XhdMb}n7}KkuUXA6viN1Myxe{onRusJx-H&lGMB}t7#<@^-zyzwQet?# zGo%2=AhJsN-@eyw+H6v>RBi>dc`dwyR#~4m_~cGbGxA>QEm7$_Jv-mF8033psh-0f z%22Y^0cEf;Hn=f@^u?wsZUxCQWM6$PG*A-OZakzRR!mCX=Q2g|G&qA8%YXU|#ZQdR zQ1+cP>dh=7=k_eOYx!^iM!48LY2dy&R@O`Mx_;ns?kSfk9+%TKQ$#NqfQj4EW5G;X%0oPRZUfMhz*2CqZX1`I6V zElgQXFv?P6D`cf509{z83(_o@?4BQTtv_#aQ6ME~a!z(B&N4C74Orn!DT7|xDzBNG zLx%4f;M~u2lGz4}w9bu)`HY5rcs_E-p5HhBAfLywK}yY38F7jfgA$PZY-4Z>M{}wo z8B0_CF=FY%#m?Nid|eh>c@@}q=03ieE9tQ_d&3p<<)W27E_JWt5Bix9q=Xe#kKan| zbMaZ?DZ@pj!Kb|dh&7Z&alMbazFS%@p|Yx%64NWHkq7paGq_e#M}h5&^G#UyK4R`- zq*gGoCf?VSeq6B5ZlUPttSeTC{c+0Xahs z2k8m3QhcU`=UAN4Fg_UV)e_92E0Xh`mx8?YnXW z_?DZrRKwNPZTS*fd$hfP_(iZ#r36A0V`pa^yC(ZMI^Z2l%$N;hvzX}ImE~0=MZUB1 zV31#Ueii_}CVI?{wpG|0&5#5Ew7#L&LnWbd2oVce%6ckq>#7H6KnTiWXsymaQU<=b zb3@g7ez^XA@_KzQdjq}L-BcMB{WPxH%WbAKS0qayJWi<%2v(>MvV@Cs#&aSl^XYK; z-u0f|>WXqCbU5*(hfcigE%nPLUj28r0=nu*bGe-95}*7)9oyg7zT}-D3{EDDqFU#s z_qU`fqZbo|&n}JkLPYm_Sr6qnX>^v`8lXOxpShJfy)vQ^7i`niJ`p>P4iyzFPUw8Q ziPWOwGL;)+me_h$awH`fzrrhDoPg!aI#ph(>Jk^C+oKy;fKV9NqTcqZS zAx5GZ3kk-)-2yZlGk4Nkv-h#k47C_sY2WH0bXR-^q#<7X5FOyU#f2#aqUGZPmXAX@ zKVtbhb1z_^g-P07G24QG7+1)-k~>T?j~U2UOwJXlq{;Ni8YtrghK-*|8F=BI&(OtL zMEQM{XY7C+D!@L5Ay?;ELoA*AJbh7(-qQ+CZa1F;Fi$#dAaoNWQ)`8B=87+^dr6I; z;6}9<7lx*quFQODE+}ES2ee5f5mV6s4UZQng6DXzfKot!@)V-z#-drI)?3qqpk63) z=nh8oJZ{BaudF`kZW>h$imn8u2sAwP?v`)_Y`#`}!FKEjsvfiXwuY?N=T}d?C-D+# zL9|TXGq?n=`HB6Urrwuxt1IPKC3|W7F0LQ1kL)?5Qe72essp<(W1yUP+E#y$UIRV? zPV$^BAkgbE1&iBe3kOAOLB{Kzy5nCejZmcm{rG`R4Ki+UHPQXxPVSM{zp|AX zw)rU8OTmyJNxtUVODRt!rRb0Dn&xH!g^^`0Q zH_zN#7`O02eJ-==f7ga3yLmy!9rU)QMd>x4z2zL14CQ zN>_6~8$g5_a{($*;Y*7zo`A<@drRDXQOJt*ut?b+;hx1|s(C|I%-LkiVV6CA=rZ{{ z^WQI@e0q8LQ@!18oMK^|iBt{28?nNhdmWczf)6;tPsj%)rO}1hutVi+W!*;PC(?g) z7n$`IuLcX#Eio&p$ZoXRodRf4&qu%s_&uGkfKP(Ik}LuOE7e_W^NI3s{mTf}LIctC!F&XOsbb?ayiLhR|IlEB|j~;GrWZI=(Hq)r|EXPYXV=0(V zx)}>kuM4?cd0NVB)xD}_=7SPz%oKrVegZFyetP>R^97{g!y-svy@B`glcsLda!eWUl=0Q>uGiM^^!2w)9xy=C-)k8vQ`#250+_rdfFFn8%|BV255M*snsJ-+eUyXpoaOsV;pcya}?hyfm)Cm&y$*7v>PM@G^+J_ zi7BX_YX^+}6z2CvtUH8=%EL+1yCi${^tjRGABslmLM3(B$2+1DI`i$h5ju)znKI~R zirIts1_r1@=D;Ve+HHY@WN%j|@MWV1ftp6u9k%Vbb7P3~$G2GwS@)mK-wtsDrV_2f zf?1@~wHijarJp3!)cN}A&Hz435zf9?m}MPfB97i}N}OXKrOuJgMZNR_ zZUM5CR;U9VizUulqPNi8QOo5kMbAejmZGw|&6xFw3exTgN@Hp|3?-?-1^e>Aykco2$L!HHZdWc0wc$& zRavquYF@&>v<*sPB|Xw~T3-2dX>YJLnZlNjn{2MFsXk&+!%?$9TXt4KbCu<6Cr({r z-wK>jcEDEV8PrV~3?N+Y-M3)U;3Yo1KsdzIY-`8@*uV}BfX#7fJYnx#Z>&N562H^| zwEA@rIHYnCB_Lefz>nx1=J(c?iwKro7^0H!Vk`Z*CCCSb>fAgt=Zv+X9u-f3<3 zq&!K-7{z~$05+xTrVVtlez9W!q}YLr-($i;DZ1o=o^LZKn5Q`U-bWEwFTI+ zj=$9Yl&;V#F7W!a%k|-+pj*cidjol2e92hKs4i+e_EkFPNdO`$Nlm|Riy4@Hf%QCG zm^N048P>kd;?AOhe^{G4d~#e(tW2A^bVR~5;!X`c)-6zLvbrcM4uk^D?U~t$Hg6?F zf>N0h>1Ak#mr3mz2CLavs?S7EL20px>|LW4>>?2`JO%)3$$aFYWXKzL76>tEnccv& z{aRbm;=UkR92DgX4$r|tI1G%X-)CWbDeb^?g}WqFDe>%0)sF1RCX8ClKKYTZ;^k&F zmi@26@>1fHs|y5WtdERs6Ww`f z#V)2Dl{^OZm1F{pUdq8~m41(U#sUzgCGX0}~i-Eu{XM+Mh$%QSo zzmN4K4S+~&t=-O|l*YM3tTZ7Yn5UO{!l1nz@IiIjoG(1fntwA)uL#WN-RJ)Si3yb( zoIjY4xR%|UVBcFI@6(H_;L0-1!>b$FCIjAwO z+*kyv>jgbbRQf#LniW#dEy>P~@|q{@0a|y$l!ejGBHWv0fq>7B&lgLa{#iC#&49&t z4xfZ;u+MnU&^ePtPS({jwt0oQiM)Z>@$A|di~iNEGn9;M_I}coyx03cPLn4nnQ);g z{K6qD`Cm~VZWtT;3$KN#C?Q2NK5+hReZ}C+cbX}sH}JlVd-13Mmp& zrnvr1{~XuyXK9ez%Zv0Vk>hlW*IyXjC0UK*c97D1A-SFd5UDVSuQjWF_Q$?nc?GnL zOMK#PVIzeX6#$`|o<*zblD+^G^`zCi;_YikL~>^b!$Sn&NsIYxSM1fjK*5Q@a<>>Z z6L``RnmT1&XAw024D9#nAi6Q&83bf^xv}e6N|d3U7(+)e!@k({k)ljv>#$!5_@@Uah%RL z6jtc0b?7dwGN^F%9W_NT6)3e3O>X-<1j-2t-MNQG(oVwb~(KU`^K11Tbn=WSaohHNn5>y!vKIn%2TTTw0Uy46Pcn9)zB zG8N7Z@qU!W&629G&fHSG067)=_5>W+(Zgc{=$FtpZ(ivo$`b<-xx4l@amRfeVFW2u*qPJM2lUG8`mb% z;JB^x@BQZ8Qb6sUbZAaSw0tQoiKMF~cU7;Xe(%uq+{=t(lKVunU;-FJ2f*46&ap-y zSlkeU_jb(yaSWX?*H&rE8a%n61IRsm~Z) z)L#f#IX;@M7NT>rcXfJKQJ42WTgSkESJuvI_^OH)YhvWmF`Av2Wma&kX_uZgoU zGhoG6(&?G`)}4i~^b-QGP-s@NEh;R&vIkQ>JD`?(0BVF2X^2#+P0-!?wxna0&D&?> zW12b4P{l!lJH>UGvsMNFMt2IiX443R%!)B-)5UVELiB&dW_RF zU~>mEETjlpd4l7Jb2HQ1vTqSLvm3%#fu?k zC5N_pGqDkonJb6+Jf}HR`o`V>&B>1h6J6$3j)dlLIh-xXu8z5VO41#ebL+VbFP&fM zpJfHbtoMV`%9i-o@EjlvQ_YS~QA^-*oW>;=4F(c@bjP06e1sNJSxIIk(X6g7QJ)*+ z=j;SmP+g1atUuZMo3YC1^UFp~6*GN>5=me~)9OhGZ)F(zs5M@lELHL%WH6o5QLteAji)w!zYb%YnPS#kT z#Hvt2b4Oxli|Y?DAiAt}{fVKjA^?EvY*rd8AD$4*=mBT`lQ*arw;evJnaGxgbi6n- z(FIBvhw3F1rMgVEid0Y*sJ5En%W&WZ3GSx4PpCeRijB@VL{$Aqmz@N$Bo3&DBuMoF zY3lS*9q&Y+k^P|dUF9Z1qUY*Iog;nTFHESe;#Sk?>9dY8ZAjEb;-mRvwyjSRKQ2M& zftzc6Z$K9H5kX?S{@Kji=9?+w7<1Ro!bw%)0`EM~li~S`|BSnKdM!w3MYI;=J0}K| zbbBq{Hx;}PA1>+8wGSXjPN4V*&Yw1oa_h1WQ&6V}^RmnI64|R=wLqBsod*)?k0WBt zommu@G@x6SQv7Dd^ps@`5_+&O-wKnvJ=rCcu@CqXRtMP@K7}WhGjV5Q9EKSd{dBi+ zTpx8wzq4@6RzKzrFhAHen(p#SG)XUG)|urJ7K8xYPj8KbH!2hXXUW_iqv{-^SLM0B zhNzP3EOZcoCg2dBX@2uOfKU2TS21A2t;X?mx?4L{b50Vx~VR zxzZL(m9$yOnqJPfB1RchrojBo7@S)?xqiTa|F9W;IW~s@MbN3F;PpK^d8LWR4#a7l7W#NJ9qej1 z5x8L(X~Ptu#sVXj{)+k4opdP?TQl@ru{~Vogde*PO$$P2>9KSX{Quz^~8-*@c5$veen1Wn{oj zDk(-RX~f3GKu$9r;0EfCxt{^UJRLSEYyNh1#d=Lrtse%&C^NoP9MN{&+`T@x&IUP#Whe|Rw)}-3&oS9$6xPJ+Yr3Zg(06EF_u;B+{E8E5T{tliy4xgeK^Y~AgZ~*nKU@bRq zj@>x__OJw*sy>0Vi%11Tm=#bDB~$}p*n>>hJJSkA#LQXbi9+?qO6+^er1jGdtW3$5 zwsdrG3JijSe?rbpARsV*6X-65juTYSFB2-OL0stpNN823E8XLnDVa4z8)9C+nkcuR zE?NP2iSwmR!~JQY_i+ib{7vrCA1Xk~;Gk56Edi&uQtGnj0?vQNwA_ndXUFROZG>lE z;#aS%{0m28YD-pIAo}yNXYd0>2pTsXSD4B*b@w4K-{;#jRR8C3Z(b=<;iuNF7}NX;b}=7WZAC zr+rDhCpQ#8;yB(o7>?Zw#p6Y$>%&%~P#Gw5`qcfvf8xb4a7MQ}eIoFCaB{<-e1FGz zhK`sGz3zXMlQfe62}T{|FF3_iCqAvwOB?@Wyb3b_)j*m$EoZ*p`K$i4as(eP;-FUk z4JiqD%zMQePj5{s=-pul3Ka2Pl<6q&TG~XM>@1M&TfL$+yDaPK%>@pc3ax*xeRLD> zFHG*mnP2+e3L$#!qc@=TkwT*q14WV5^825D)xZO{Z-5r6jHGNNyoBy1MF=SxNF?`u zY)p|UA3DmO#M)-FiNq-NC%Mx%djMI3U*LxVr#z-fHT=HEP$>AkK?WKXtl_)R9enRf zxr2Qq8mPrzlHTjPrK z*HaeIml;Y-xg>x2vEPH$eOtiFL^3$*evgS-jeZFN;ajsrXcF8DKHuhf=$H{Y0n8p3 z%gm79&z@s|ZZiK7L+*+F?{{w;*-4Zb-#zyFnO4`rP|n#U{?sVvjDELvS@+v^v`9$S zOHP>^K#V)+QStZYZJ2=@X6Z4&!J%v!i2MF@MYaFZS|SSzVWe``a9-|CAV7RSQLqTN zxpBDgP^;3fANIAI{UZSZnKIO~zL&B{uU7)}q%IIeO_D)T$79YSNB`q8S{eEm&W$L? z_)=<8dGpV!bS^Hy-Y1G%2stkxML?;g6ICn|0#=*cCuRRKI#>J-`)mywt9X z7BK=_rvM$RRV5g(4O%@Q>>gDcgV>GrSi}tMx|rzbNk{mIV>S5Tbhu09y~g>9qR@>vJAS0>u z`}CgQn;AeLQ&2#M^0@$X!h4`A&jS?WL=&wE72N_2Ko<`bo)z(29NSMaG&{po{CO7?ppOZaf?jS%_b0e{X zA)%(^O4hYgTkjG$X`Myn-DVZ*8FY2@i;!M6-X(G;C#%AAUR#cjQoc>M&{XlbS`%>d57~? zFoBS164iGN`vOWik{*efB;$q8uGg&V&1~7+$c_y({q0QIv{^)zKL23EcPl#whB-~; zlA-zJMgcTtt>fT!#0A#qOGKLB{3;#lag!_-iV%F#nX8+&PjW3-YCJx#_C}zK*kCBZ zG#rz6E5<>y*v1@GkM&5Iqp*y;v`l?zY1^S3WBNA;(v*$lw=2M-Mu2ZBIKmBpJWrh$ zh6a{_D3|%z6T#f;-Ikjst3_XVg-Dt)W< zny>92#tLEMHTB90tS}igwf*9(m%VUIs4b2GN}RB;l;2N^zQcf@r|>q;=Qcx$eJP`` zqCr}4iPzGE^o=N>{~soNOyeQXjjZ?487yK?B_W0O-5{938UoxrAOJ(U+?xH`joh=m zqQ!ro9)KOMdplW5ECzLNv8KBINWpd6QFKsI$GAePR0Er1Q7sHVYZKGK|b zrF1STyO%$~w{!|XQK6xk>fIvHBiPkoN5_uQLm_TnK*f5X{D_))!<4-E$elSl7D-qr zhEtOE)j`wL^arGg8Z5PFl>96{K1-&2F?D^h_fWIgNqx_~e&~7Le4p{nO z1PB)GEklBO1PL;3!P$uMxS&icIzPd+{un)NlHBZ|5!AIVY*q^C$hX#oeO5rk7oOY!E=x4{3Enm&M`D-`Q8 zHG~7W5*1G_UVoJ?P)BS&7r#6n9~uq>C&f*eB=yX8z~E1D-7hckJ1EP=&F2 z6ER+?W+}m~0ausU-M(V$>e^5NYp`3=gfSIOIuz|~lPbJ)R+<h-5OVa><7Ixhi!OG5(YtVM91`~(#g5sVlc<9ZMr_IPSX_szbfbD zpMBEpyURN~;iT!`d-o<-INo8{y#0V5!{!9t1B(zE>~A}tG`pGYr?ke6?D}O{<)7M` z=skI|N?31k8|lJ51B|6(2eJ==-~W5l|Nh7M6~iVH%dj27GHaLO_;%kl8o!;DegpAY z@H^|HR%4!BXZjx>3JPyiZQ^Rp%Fciz?39YZG3vwp%P$TKh`(K#01AVz;Zzpxj?mDM zNWf7E*#^_%frv`r@r5R!4B*ZAw!ey8UtCPV}FHCjH2^ty?dx`!n7s+jTUp?I?N^iR9327e$iOt-mVF zCL4Bd6Uia#JC`M=K$G3H`4mv1**_G3$qtqE#7Wk_scM zzIOC)CbW+j@IVw`*KId90`BU}omYOo=zEjW5Eb474qUu-+C+SReb#8gIvL)f`SnfwgkH)*X;Ll@ZA!EvPM3G-|93lWL7kQ z>bEoGZhOERgg%sFAU68!$&CzkB*e`$I3$=S-2Q3j_2>BH7@zqEopVxo6(G!T$zU%> zLp?5{tIIeo!u6DI)8_rLBc_)++dWPn^T2q_rtIL9Md_xo@CxnZGd`YCVI)AT=OgXm z;u6x5qvjtzdi3mAmC+_ELU6wZGrZCmK;IHb?2+d?s9!^88u$`@AaG&-vT6 z=PRR4$`3BMEd1S+5~7|Uu5mAXU(<1htp4r_8da_J^N9!Kp6({)7p~X)`%hi#Q+#%d z;;45Wot+&6>VJHw==K^a*>Qe6qD#1HTav_IT{;Y&wbdF<%Y6bw_kf_6pWaom%49FR z#NCZI$TmL0slMAVyzkL9kHtXZq@0^w_fhK7RNm5p3gziv&%|w0=M1&ZY+su+Fq4*- z$fpemi#_u>-__AQX+EA>??ifYu2a2o!0@sWA#9KLm@9jVA5IYu7#71xpo@3DWVKwIFibU+IP&8G0A!ckz`3mNRCp z)OSa*#NU1_#UeM){cmgi^?pCIoxA-i8afFl84yLIR>wWwzlun;nY*GJAzht?(eJ^J zHPG#^&MYufXP-{AelWKB|JeKLu&B1~e?UYL5fv4s5di@K>5@=H1PP@Z5s;y~TNG@R z?ha|BJ470WP;%&oVP@z7hWPFA>b-Jb@9X_OzklC;I zbRL025#D-X1o!Zh4)R&VNJUAz&UHPog-6P*v(H(;BD^=Ex7U)Rww1$f zI3=goLErb=zG;H}1&Ei0tIH5l^S3Wwn%X{td#N)S186N>FU!J6Nx(IiNt+U!LRCL` zicrQc6w2~_Q0*gKRgAlf$7333@Z+t^z;I*@46D-LE!CN^Y(+uRq{2Lq^X=^112x zel?TjHI?c$w)mhw)j%R6&Qagc@MrUtP1X)|v|ubuHu}^A;^V@HU54HaI5GP4XDD;{q~Cv0e&1z=H5o2m zmlJMze}K-B401zHL^gjERer0o*=V`RtMnYVTZ`~T^NL{Is_B)qxM0$zfHojMQ<6(d z2hmY(@%nRQdLAh^afIX>jpg4>(BI*4?cl|sqUd)Q_E_n8_9`FtRBP4NR^)^@YM@+h z6E$Mo^p#`oUT#$nWH;1uX}G#xV96w1x}ejQaU(b_)~$GOj!mSwts|&YOlQ%273`F- zcj4oemW!V$aObNUABAyt(~siM#(6C?eB0FiPyL3v++<{Ak{omRKYjXS?lmHdQ$3M@ zaRTKLq(dAbu`SZ8Ukf^U%s=t|;4s?mnuDsRF(Ra=&-SKEB=7duoO)iwQ*s>Of?BL; zez|?I#>St2823C5WGT%eyFoD{4#HV3lL^JA;z-p*lv{mGja?^D;@ByW?Rzm*+!UwT zupPp$yY>QSJ@ie~^m3hqBhrHKikajby+5)N#aSCbToF~fYR6bQ9GWzK$LE^Ewi1$~ zYBS^W=f=W;5Fp2nZ6bmYTE&AdkcQq77!Fea$w?i7j3#fd6zq7HoZa_fRxNWC|2zu^0=&cMMN zJqubuu`N7qG`WXUo|Pplx(h!BW$EIcYY)AzROU1mTcxP2Y$!z@7|I9`E0D*^Yh<6{ z@D!->`%{F3p`hLMKy7APNQ{U@nr}%l-a54sn=AUQu-7S(PwnuIxSEkA@<`XbHvD>Y zq<865IG0D{RAGw(Zx_9QfO=wLqTzgAAtP)Ak(x^ouRtwE2d_S;lNT%3DkLng8HF(C zoR1g2jFYWWsu1~d`uxoKo)SGVm+2LTH;vN-KbCs@G(_#VQ1iMXYCio<9AZAH;Axyn zD2_cvjb7!y*&7P@$Hm7;RXc?(?%`;<9gJ6@Q!2BDPw}|Q`mHbYtMNE%LRiimi@LuS zZ1Tm>z7aymRi~>!qTt&RTl~dFi^AJ+qYEvPo}7iCYaLKSI1QTa+Lu^5Av(KjzdS5RLllky4~6$`C2(KOpP71iH7-R2 z#=cKTlcP44j|;6Fz5%ON%hf%5o{Ft4jNPu-W4>D|`JfgT3U_np3B_3-{9xUd{H`_0zXJiEeU$bra*lfic(3}4IcXtJUlcc5FX0-d(%5src&UcESNR$wHf@i&v z*JXrm{k84?>9=_hobRIY9*AWhI_s@lU>gE)?z6e(3i)`F3wPc@EGq<@^(5n<5<)Dh z5FO2IQt!umqH@sd(dE6bTPXI2N4 z6l88adQ#=MmryqcJd~asHIzblFmsUX#oZ|q(csC%%do(d&!;Mf#5!<~*-U?{K<6NHQk>yg?nT#b^fm%-F zrfVT1PBsREq&ZkR8JsBzobh45dEgP~=)_?47Q0U6Rfi%6zRJiv%uo7ruV3K-w8n3WNG$*Qxb%rTk8OQzD`hh_%u!=ZJTL4+u_CUzuRc zN{})#N}&|ASAR<*!f2F|vZ?Ereon+<_T&oBz>J_@S`2`4PQYM8!*)^JDe{v_ePx#oL>MeF{ zNCzvr(gIQIqqu|GpNS2a$~*$PDE7wa>;85Fi_e|I+MehUUYu;D7q)~8LaC}sO7tp> zrP_L4OgQjT8sJ2=>n(e)(+Jesv=R6##N9CQg}QQI6&Ub)VlefHLEx&ojNE)#Wo5hS zT<_e7oY72+QobPwaEX$7_qmuD&6%aHeuO9ZAh(bsDe>ce!6CurF3ABc?=BU1X2kAp z_ZS6+1;O2Qs3xbTuJEx#hak^Ph<%0M0%xs-K7h?eyLhJnkP*fh><+Z{V1-%9*S@|X zPTuD1o2cdwSIb=1QiIQt-IH{AhJW;EM8`=ky7_Wd74JTIHFpe2_qzgWi5|b9>t$72 zD^gMf@kMysmTPHnBCB(E!*X;i#$7>OdrrO0+aIQo^Oc90H@()f@k2sfzV7StW}y1y zSg1Xcl~g?(c^PmJ8Fhj`=>O00m)gAxSfV<`>*EZ4S%4IcAG^R7h)?>^QG|!5!flRS z&~33$tG2)B&D8J%8)xgqhZMn^h50}d+D8{Fd-tJvC@WnXTJO+7JZ4=Xd4eAH<+3rN za!({~MF+IDwIMKNgMv`Eju^2;)ceDsb)F?9b0H7X+c~mhMpv{l(07hsoQFg)K6Pyv~(&#E`Up4F?Ai$-)V7! z{f9l{({~&jg}Pj99{O;N>_(-_*9fn7s)8PV!@8wiQT01Z>Y$CWqgnXH-;$(@`6$qp za~5Jie`Ou$kLVaD(5Y+T4l3W2zkdFS|EYUH&!0bM9LwZZdD0n|{{{yD@*w;!j7APT)S%(m^~;+SPa+Ss=I{!J#@bx8i01F?8hILlX1G#U1O zA;}PkvEm(@XM`+f8#6YfjCX;sieCE~B&2kHyQ|LEc6Z)}nVrSfEj1*t*C3csj9*P( zJ(C4BR-q;zBVfY999CMDdunB5%4j{D(^1rt1ZMpJgj?fw_vkUHn|nR*Tp4~PwyvP0 zym)c>sJ))W7IJGxW#3b$I8`#`8sOcRE}bPOH+_N-MhNkIj^;IbdGaDpR}eDg)6-}B z`}=wpwVD|BiJ344M!v@F9Aq~XAv}G@vl^nZ0*p6avqksxh#;(xwlnS=L=As<-5tp3 z`1*5128{B@b{2O#db!v#?71AAVPF^fXrHf9L~tFI{dHrWE`)pT?o1&w+VG?oA{eKz z21&Vg=fBC+Z)=UG1nNQ`A~Wq&GzrT}^X>xB+Lg~wAyaY?0Tv;dTiO{6!W5WgX&al5 z!ROB3DS3ZuNffW?L zbq6UnDbpUZ-*TikpdkRasJ%mzt_Pmf#=vai; zX>}_+XwfW9MDGUD;#Ox;vg4puUQ?Rfq$>r^yD^Cai_ErV_Wls1rR?O)i>xm^CuZ<_eg^|A%E7BV(S^!P_2<;ULqp-KL_m6rAvPNWs?pKI~$4)IrD3R=?>bcct3 z@!#IwVSrQJE=5oLkjsB8p%++Dgq3ik`=4C-Pap163-l4y0H$s6&=Y(d0og72>3;gE zpC)}+z1hcO^E#iCSr5H~_B5E;vB{i##zVtDQTk7AtMvl6Vo;-;c86}QWd&rY`qWPQ zU&!}kCe$Z@Rdf2~<3qQK8-w84h=x{4Juja()n`RzjB;#Xb+?`j)A>3?XUw?M0Ah!>1=_SK=`zh3*- zZ}`PvA!<#@;B!?RN9eRu2=C$HL&W|* zyM0#h5nkxG5r;{xdj>G%`Nsq||MAs-{$cq(Xm{&>pXYlx;yafJWrA;mmak<|{K+M)t7VOxv99W3zGLH5Whi+ZI1cpTm&dcH-8vffq|8ZFh0yVQ{hdALlZC4_g!UY%S z=f7PD+HoWBE?oj+fx`?vh807wx14&1hJW=Pw0YRwv$>xybm-Rj5wIm-a(9pYiu8XQ zqXLUoeuQ)3Fcps91~c<1&CDYFEftpaz^(fgPVJP3Ze0egRv@|8xsU$~>EsWlEAlk) z(xF?sG_Xw87h^o~w;BKErMDG!Uw3%us~-BBcPCh%&4}!Wmk$m9dR>4<<SQs z7r+!sn(HMF4cCf-)97TKIZs(`}et4A2zUi^3Y+uho67|f_KF7 zme7y){FkZBi-VP*dM>SY=ySzs0dY=!)-jShH2fDAk$tId|QmeoCg1)-TF5n`0a8$3M_<&onH9)L${7| zV}~EJhW{JU02D$;|Di89EgmlkrogtkeER#R{_69;kJYw;cU7H)S|4WU8bZM5B~%90 zhlYQ-5D&q=KDD%GAD@4}*je}# zE&0^HLZ<|M3sd8=78)EHTv)<7dYF%Y`M%|wfFh!$%(92I)-nSat}di#Kl*!y0a{?} zZ+HDq3w+xc|I-3kM*g1`_@+(&rvk6iX-#z6NZ5KT|V;E{#Oe4 zZ)06PKpzXA4$3+74j*x#BB`ENv_>8p{+lxS7}-*r9&YofloapU%H7vl7CK6n?0FE`~O3uqi1k`upY(G<>cX!vhy@a^*S0M>?b z^U|O?bZeI-E?yUcG5K%a+^<%`=M-495ub4T!&Jb>`tahzDt%865$9J6v6Txx;$TGh z@t+BxZ+AI^_6LP(;g|kR6hQ(^m-<%s$wL#I&%!bp99m%cOJnM19;@XC)*WWH`ugF} zS}iE16UVfxUO)5K6JT0&=pVfR{u=$;Zy=Zznfo^<<$uA(Z~XkfU?XOcrR zxx$zgMJRy|lYS9&9 zQuVlS6HED=X+z^Skk(Jn$Ovt2&Pmiu^zl6=?dUHY4d#-L(6IY(TUP^FRK*Ho?yT#HJb2AVyh^ z<~^{rlYO^-$LH%p9CCkUzK`wBBx!kDDd7}@#n$yEi(C(E@~7Bh^wE(VIbw2ZYPxg@ zC8N<#M|+CQ`coqXP$mPa{SjeNtdh?p6}7ac+%Jq|M-g)b$j~q(aorI{@jKb>F9`|) zjHGt8bIa2Ps|sEs!c*_3b(sSrcr^&pQf2PWkN9?>T}fWPdS$dQCKd{su?WsZ8a^57 ztXhAvHncIFPgrL)QreYHwa>K>4PYMF>8Lf zhTN4Tx^g*j=EU=({FcoVNBpO!S4b5#O+Vdbm$J6b`~3NHYjby!;pDV*$EE{-c@J96 zDr##_uNKdxkr&5`nx&qk5&X0k26+MY4puvO(&sUG1yHgJTni~e*1$*LM{hs1f8R}* zWb`QD1={s$&3qhAp`JNu(C?L~5NO%~p&48R^+&B@)w`)J;u-LBykCWl8hIiB;0=y& zbFDVnyE9m2;QzIE?_9H`Wi67BaJAXs-W6tsvKB^i<$WaFDkUqcux0LT6nQL_*{9L9 z3pd6~d*|2M)4$|9e0i+3S5{rUE#^Ue=@PR+V?fY4=Os4P@Xbc*YX|lb(ZX(h7Hpd7 zJ0bjfP8D;d0sy2!9BcN>Oo3#?7t|cIb?KYD(e2LY1a-2EWSx4D^{feEVnwm_d3wIv zqstMxb2GCMs0MjKnDub}FTy|HSK)8g zYVa@Sh>!9fM>4Eo2`8yRMib_g| zN*Vw}BOmCkekm(P%&JF1enUOhbzj5St*K=pD9!Ly`s*xEiZEeJ{Ap8GCO^c_YI^RK zYNVrbSf7hRb9?Yg1SvM}-~DFo3x!*JNJf8_`U2$_n;u0R%}jbMq-bcK{7L%(CETHM zY?=F`F-ZiUo!?1milOEA?jP5=yNiTQWe<;}S8i5}^4ocs&bGXlUfrr?@-USj zjXsGBu`=bp@UxKqm6=8BT{{BInK8L$qE4~BWrH&Jl|(A(%o%8;uolnwlB;&P^@IJD z4SqiL40O@ib-0*Uo1ec9%wf7rm1f^{n+(d%yLH2A;>a5oA~j{@W|GXl=5$h~Xp5l0 zz?t5XF>Bp^fc2~J+6p>%aM9KxC(yyt@vZyXj2hoE+}UM?o}@wr-7C`p@7tvn93133 zPI2}u%am-Ue|$`({py+&5% z01u^7tsg3}98G^b0G7(P4&#U_3aOJyO>0YL*669nkA~S&irA~G0?^T1=H3oE?C2}9 zG7o>#3^T($60?~upCizRYsp#HB6zLdu8E9DWDjJ8MD?nm6(u@`Qk~*Np^oH%eJ8q^ zyiQ8Po!ssYopxEC@MpNf^La3*h>6_2|Dm&sMg*1HY9TXMpYoRF#U4wGn!@ic10&#`bTJ$7g{?E?Mswr*Jy9WqaUrE$f_t3h0~+G^d2fSrvw zMC>5oKw)tazVxOk);0e@?Eq)Pt2vJ5`~Wc|+ zs_Sp7u_yR!U@&FazV$KRWRF1DAC!@hZ;IHD$LnOO=Eh!U{=znm(Eh9=&*QznA9ry1 zS!!e{H5N0u(>ZFHPhKqQ6l2w&qcelhJLpke=rcA}h~w)m;lHPAnL`|i#tN`44cJ10 z&!&#BWBBQHLW)rNrEZDT&d9+fr(LL4$ASIRp|!PD^CW%xJI%>iEl`xkn$_wLkHKB% zVSVq0ZT@s}c+JN67p2~sX3lGl;qAz^FJhb|8Fp}}!#3C1y&t8Ih=@Tj=G9kmWWtD^U2TSCl&lDZyn z2Tabs`u+k}ne~2U_Wj{BD?N&2>R_RP?aGN3lFa_*6?&=cD8GQT&RAypFH(Y0BXAJ` z&-HM3;|wRWB10WalEMvkP&1ORj}ZE{Dgc^&^DUL=qxx|rW7)8esXY$L%E5NX*jR}5 zR%U0Ia8xHxNFI|y%w(mdbD~NtZx>SFab#_|s!N{)+BQ3VD?4E?JY4+}w|=x?QCFB> z9Pd)L+1uyym+Ph8=7pqDdARMQPaseorD_~H#bcbrN@njo?+)EpsEGgJSZ;l&?I)`a zh4beYSvlUEbx1=P;LdLoku_Ik;bfopr3!KU;ztt3pddQBG)zfi zn`3-W4iO`!5&JIus-}o~fB~a-7TrUUTTdjW$qrT(*a%!|_EuSeJ}tEv!$Q{gL&BC^ zG)y88bE_%$Hibm!B|tZ}D*#WQ*Dtr%Rf~+J5>9Exx90V}VF#t8Xg@_vRMdf*p&kac zFFbd3H8meK^_=)hB369cF>2cxAdt5aPN}x*(&;%lfrD$aLwf*)Y>`YFlo;j;<4yqoyWcO zmmkE+c+9eA<4th_Ov8Ybs?Q<5|JByO$0nx5hFSn@x^*?BZRs`d-5nrz=xkC=*Q>f32{XFOV3T8dF`JEN~+EjH~;zgKH^Yvz*1ybC=kuhul`Nr~f8BSl({ zs9_TtlcPvU5)R95MTwOP*>TMDim=b-bg(Wc$TD95T`202QB|WQZUIzktV)>;;VV;y zlgYB6%CTzD$@yET1^lSy81I}g_O~=9yh-ZqxFitwpRD~K#IL3WVJb4mI$uHU3RjhC zjr|bfDpR}ujArV}(NxA`XqtDttg1p|z2iBmG4d3m?Jl{zOnRQh+R$hrBRxWrfa@M2 z4_UX$Hy>y!vW&T}qzK?aflacyN|76RqEp18!0&v#)EjEH2#p{uuvvU`h`UUkRY|fR zi?mb*0RyFKb6v^|EzU~gwb{+2sHJA+?~K)n9_kh1k+4g4kEMZYk<&2@<s6@FVur6>!pJVYPw{n$E8S$zPB#;3l~D^5qGQ$9R>%C$+48OZ}<$(#Viq7cAu{#GA z07+2epY{6?>G3Py7Aooh?X{gN2bGb?HmUEC9e0XsN|<64Hf`uw&F9)~SEjSP_{7mZ zf$pn1DTFFmNWF)f>k6}A%gTpAh3towpq}2icOsSC^r3TKWtrS&32+DnZRg)X#03VP zCi8j=drsmn#J=nLkZB{JzxWrK_5$}rVs1^F>EC#N27+wG#6K2%E;J*`b@VZqg=$bq$WdwBdg_`P6u1Y z7}vYj&vnpc1;$h(5hr@ioTZ`Rkd%~s^9j_*`L_l#(Kr#^jN`@KWTW7ZV)stI1#V>W8No-3jJlr>Q7Y&En`}^pZJ6M(=&Aa>CuW zG1o_*z9uzSSIeZ16L8e#fh>Kvu{56)M<{OAJ6{ZNQiHyelaIDx!l=lXBTg*53Q>X* zsnBrb#Zgb!v)q8L8<9(cMOx4p!KssCW=xt5F42TpX7?*nrnb5b@(tj8 zN=HS;_$WkepUSqj1||njhw4uKKzePJ)(STrT;tu~6%}nOmgC^Lsys@)QczsAG-Y+h zdvk^Ok?U`jj5rf1SQlT4YT#WnLfo0o*<$+Gn7MJML5UMq7WC7u z0}p#Tk+5ZUW?II?<|G6j@sOw1z&QJI=OwuwaUE768292EwsmlaMxsq0Vxlk8AAa;fo33V z;Do!dHZl$&j85Lx%}d;tS!+W89NxfSyFV;gX5F{zwEslQT7#9LW_j@*A5PYqkXZ(f z*WMr*^t4lnCFg2apj5J+uS~a!iVBFboG*4QFc8s1>;Qzjt+tRDFKs1=W0jmPT$>1B zBKM@W$dFJA7e`8RH)UkVToN)5myHcHs;?u4mDnR%sG~(ZG^=;b%RrNa`#KVhaw?IV zS8#M7pT@~`bFOlPfqH}mv#iO<$;g;Vl1$ZCs&akroZQh!E<32XG=-?_>e}k`p4dSH zqDpPlStrmfrF6uu3fo=anqGOki`o9Cqs68LYkq<)ymVV5!j1z~wokis;^1X|i4M`D z9y1jilNn>MUOXtD1nkeTChyhV(S9>BN?L_TnJA+=Np7=+#cY7{BXnEU z6B857pP-waD8eP8!zFigGFDoIszYSo+=Rqbt`~_Ob5Y|d&1wQ}{LDmCD9>OCQ2va1 z<`c8~B5snI=425kpzncfHA7NL^G~3(QeSQzV4@C?o3jV2aR)&#hk7ENHk9Yu!CeQ3 z5Dy-ko+}Y+wUvGyw^?~7g^Tl2n6i~#FBvygHz6%J;Xi3ot$dX~n=9>J=@iFyVe zp06$lS8TVaw|S*dyZfdY9+Vd@FcMwhu(eoRDf6r4&xX;Kl?f(>Q)=P&$vbiYCb{=#zl2LAmkR^COf@g<>@@i-GR%P(Hu;#e^CRB{l zmlN%vNr0^`zk}j~2R3PVg@m6LvCg&2c-^y2ZQ>l=G8P91haPT0X}?tB^VtH!UlUXU z)bsRqf*%fC-ANUb=UCu~Y0B!pAt*nv(=c$^(S3<4&Yk&6P(_m$cT(R|rs zSEWu-<)1H|nw&H&-xhsyeL`QPaA)-t>03uitG(5^VwvKp@`*VkQqO~R6pfIT*_MVx zm#a3HN~8j%$YWMlvmy)P0)DbjxqK6dddBG*mwHB!1`GyGv95?16cX}v=6jUws~_xX z3c5}|ALi<<fhYw_~+CH~@$ka8W&><>&mG7g)q%V%~oXe0f=AK}b17RHWoDXNS90S`W`FKN7y*aaQnb;1JnH+_g1;cGv_BB?oaQ=o2lW;;x;P=6qGr`wJANX0kh5yUh&tJ$$V zUVTJSRn?S5NUFKL%+ApMj^ER#<-(9D9hlQgg4BC5FA)_}+)P8XxtVfO2p`qV>Q#eY zb76HNF`kF+i=PQ$m-+bQxeAb3Y&_Rw?*z2uq0z`8HV|7sliipdl2Al$>qm(1@9)pQ zsKM%+d!V0kCe`1w2AjR~MZSFreMPNnj{d}Fy=}9ydsNE<)~#kM^RiuQ z%X=O9r70z(xf?WXX(~n(yB3LFXxFfV~7WOqRtwn;$pI&!8mjR~ZA zRuO7r0`;A)R_&!W`43kvixl~*p6EN#F8S>OSx?G6GPg`n>)My4ZZxL~q8xMFF0JP-ahZQ8c*A$Y zZKu$DuvCL5dAZ9qQD?SxTT(tjdR{KncKCDTpTVR(|n+rY3+mQ2WX4(NwSDw>iS3*vQzz;)9?A(Wp z^k652YPeT#jBx9a@(WM9fvB_8v&z|(^X!XYTR0&kS zD8mx{6dCv~98#Z7zQtDh;33PJst_!BeUTwRY%f@AT)93~^XPyLq;U)9#`=wK5sv6Y7p3z#)1EM@)LZ&2?dn1T1K{$n*2?;jY z_}MD)8`kdp0KOo{Fn_&FznW~jtgJDs$IqX4OVoAgBDOr#(`)IT*nXGC?)@XHl9Esu zIZMB3`;JZ<_a1PqEitw{UDlgHjJuTQ_muK9;$lQR8dZIuoQ zvbM5b;b3YK425O}q~8(g$Dii~$-}IjrV~JkKV8FQTNIrrM^>fz6YOypFuDyzJN^hF zF!-sM zdw%Ig+yz`nXZD{!iT~pKTcZHzZOqLeK&p$S6x%WHX8+68)jOz$rlz*$?u8Bl5#HeP zrJxksj;C7mmoFR64hshAXW*8gyFB|nYE<7+2`*;!z?9=OCDrR&ohX!ihmN%iflNF9 zr7ff>%W)D=Z=a)tF<%e>i4@2TyfS+D4z6Z4Z59ZZZru=YuufuWl-q!fia;_tQ;{al zZlDj$=6ixSdY)57sgZ&x6LEEkuKpZt-kYoBa~@67pj{0Y@N4b_T(ZdUXA-dF$CMdO zF_O}bG4S&Cz8Qjqpz0(Pjp`;P<^1Aw^qPSYDUy0?0|YCQ%gb9g-h;*z()RZJmw*Zx z^!?ZYy_abf$9+Bpz6c*4wd!biJy>wXZ0KuW0u>i} zitZ(y=$0$8=%|WZBnRh^ygqmSf{di(GY^&e{09%-_jrwqFGPGT;2jzC1dyc9XEyt~ z981D4E?8t7^?&-bFoR>G+!Ikg9kpNBV=rs|dVPLS2_TiOue~x=(RVUrU&%4aus`tk3R30cg`qLkEKX0?pS1+>JumwTI?2ozNFWpxhvu92wOR?&LGOy zud7J0)RX@*Jw2i_P%#h-u2S*nzKHt=f$${8-4~8(c+8~L$e+EKX$oVxu<3E1py8xB ztW9(ka3Rg$@zmcZlV~3TE?krRq0F(*_Blm1VC_&9eO0h~VsFR5zuv&VZAsK_*Jcqa z2=XS1*8c)oI}Q$+iT8L&8jkl9F2aX#d3(?(P|qc4+vsS7)JBKcW+s!9#=U^&w_R8^ zF4br%*0-GXw!HdRC$b-zoB!NKwR-^f>LIpq>8CnbADr`Bu=JYNj>st7^71}5RxTbz zT{*XG2aauZ(7{x+m`?WCck2DKX*oX)W-h!<<~{RMk&iV8{;1$SQ+j%C6`2l3CobV8 z-RkD^ILt_;4wEd-kc#im72W$@n@9{Rl(iGR7xwx%9-a8{8T_+Xab>RF3pJ{!uxLw< z8L}*aA$jbe?K@wt&z&yslvCyqJ*u@HqdA$n*PL9rqjny-}G)C z-WyqDAv=Em=6Ok#mC*uOk&PReK{v77J;O6<28}{ z3O;3XN3 z?oa>ta~RYc4aA4rSn!#jrh0K54|RV3=Azc(u_|A@&rh40%_77IAw+mxxK$q4sDDe> z<3hN2T{lZoZk+z<{YN;K(L^*d8U`+CB0|ovp^6&H`)bt7*O(u)tPW4l9a(%Y!~y!& z8K0^C7c6ix8K6mgz8e3GOn;*M5dMbEHg!k#ov03q+D!8kj|Qi!5z2D4U=-{Na|!iR zKTYS?~I5-$1rL0VPa&n46NN6axukq3M z#fdlexyKu3RKJnyisZSQBPulO#$_}A)Z0_@|3om)@)WiXHh|i^)*GUtsH0<~mQL5D zFD(t4!Id7%am9pM*zPu;fpORk@wiN50z{T$eHKsOHKV$k)Dy*Ei`leDPtSSp=ST43 z)vJ)F`Y!@O8|D`;UXW<_y+~@BnV+av)KOtrNV?Nfz%hzp8pzeHzU=0NdJk92m6^=b z=W?oZkBEs{t6g#Lo*1v*vt56uVdqdJ8!qr*mZLQcw7c7Rv?$v7KwJ6Bj%Zj&sG~J< z&3m>Hi>4ASkOICPmwwOf2yUy`*OVd1mUqK{^nmd0#2*#f2#v@bF<#rAyG^&6xumx} z*W>z;1+S~BHj(wW>)|b41NJr2X>wHVz7bxAKM7^95);w1rH4ltKhu>fGJUVjHOe2k zg!OMsm*`o&qi4L4VPUEodSkm?X>)+a3%^IxV+Wx?%iQA$`TFgha$agh5O#N}VF~ zLP&8wkIha|UDkft>lNAAa-Zty4QCcr0)xVY-?c5;SnA9*=JGXzZho&V3Z^+UuDl9m z|5!JZmfaRcL{84B>>0fBk|S*?tn9crnuyi+UlfwBV{2h(CU&Oyve$PS z$~(=U={Ysh2zyrE0Bxv2@Y6{TEq>xW8m(y+G8zbaH4UA%S${`Y{1O@b`ZcB<8Yj#Y z#-SVNSK-89vSr;8E~KI;l|0(tNya4e(yDc*C~l}WzhX@;mP^v};i!MklaD$_}ziyIL`IvqeqG9 z$lb!^lz=7c>Kcg#D#o?tdtSLJzB3h0OTkeM4QFY@lpoK{G=E}vh0@xHjj1qim=Sg| zH4iZ)j*yS!+OGE8^GK|qt@O)xsG$dq&T?`_3Ce|QNa*h*gPkhMVY5Odu>z>NA;^>E zws_lz*prEYsU>Sz`x3vWwwG9<)|6hE{h;y((aXHOypL%Zr8i$Ma9v|=$#(M?Ngq`< zJ8<12>wA#N!{G*bHr?LBov`{GgV#kzN0)dY@-b4|%SJfweLcG7Xw}obGzY203)(y5T%qhX{VntDkpy*xGg>+6 zGP#iED$@VLpvhF9pG-#dpOLvL?EA-Z2+Sz8>9aGwzDUTptj3=MYKCc47F z+i+?r8^_*3rO3T#-wyPqip-|1vVW!;0S#$xzS~LTedZ4hH!tO*RHD$b83l8Vty7jc zRm#$BndLIrJQEnRJ~GzgdS@Ax2{f#mm--K|;?EYwVMNyT0jzDb{5C8!xRnMZ)P`WZ zH|e+@FR8mMH09o~R?*x;BT773dwbEhay5_c#O-g?2%+HY%G#h%C5%JoEO7_pl`G8y zD^sXUE(GQ0nRp0_tCA1G)s2O2A$GkORg?7WY7eArg0_H@JaV*(Rl4544P-`R z==z>My*>94?z_mXTV<<~!IGH_EC+iUMa96FUN0St=)8K9>s)^gZ?Q#jrs~=K6@W2T zAJ{97Y3lLVUPFxqsTyQke16X3f-n|yaD=nt=wMM3N-6ztw~!p* zO`e0}4O;W`>s?Rk!*?~Gm1kFVAUB@BH-VN>9jhwp5qIiE$YAzAH#82SnSj}HDlMc7 z^>y@P6Tr4OzRAwcRJ`Gq|@kMi;0`2s_^IQBKN*?Wu6m7PMRY5uTb36#f23Q#fzX7%1Vb^Sq7 z&m`Lv(mc^i}5rg0WgB{Fp{Nck>iCQQ8uVr-32N|QX&o^6rs z7!D3s-LFAv!Gk()%m_UrE-*bmCxIbpW+N?h7>3WEyFkvkLMUP6M|f?ny`|tLgcxRe z0NU*dmpg24PiE#es~V`=u00Oxr(!amn{A~Z^J-t|C8#K|9J)sKT5fIw!bE&Bv&EeB zsY3~3us(12PP^-6 zeVrPZNMgLIXF#<|#u54vfI4l&To0@qJ$8)h5+wtpZw!mp5cpEbjj>t0dGn?RhHm2Y z6OLmFpbGPF+Z^)VyS{c0w@o$YUAu`=Oo=Nu4x&83#Dv~xBENyFVRta`k3!&a6yCA6 zQ>}Gc$96p;balptzq)Yo8|A1qQ8w3sou4df_b=>wd*JnsXnbxOJJ^DvVkThk7Zz3* z6}%=lPZUlffOYjbIG`8}a#Zquk+gYy;6M_BD@BnxsvgLkXZ}*nL7k!uL20r!j@`>} zaBRSIa(b+`Sq3lqYhnKXWA8nqqRP5%VGs}%0TlrS2`WK}A~~a|s3et~MRJy$lPI)g zMFb=&2oj1Mi%wB!{Bl+tq5f)vwQE-*4PMcZ~N>4>^4}oU`}ZYp=ET zTyw6DlB}7`ENX$!$E*_QbjU@VHR3!5kG+y(^>F(dp*e)ZtBzQKauH#cjod5_Y;L|3 zC*uCne6SLcQw=-RrS0v8XtD~kFi~zR=#LTj z#z33U{h2$m%6+R&DoL|~-fzHfvtf-^v1_ODYf-N97^J2~T6<#{k^XT_g%XX$=kgTG#;DR2-Rc`D8z==Z^~oU4VUWpO}9qO^f}uKslN zQ6Sn7PMG@c-Hm|e`Bb^M&rX%PFc-aC{hGycE|5sAb{>qtZoAzmmvjY!H$ych*`plX zC1WKIoU)G2gr5=ZQS}IaxmxH@@d%xlmt8c;%0>~z%K2K9^G@aA6ox4C5>s*u_IUe8 zj~-2RGkN97YI=fTUxY)(si`_~H#9GKAg8RUH;Vg3~C&CpAl!4Bw$ilTw2_`3~1vZn^wHBOgM)hTVRB1hC=48iEXN4B=-C0 zGM-N+1QQn}_VIgPCy zY`160u`=Hzo&RQ3;}sK;plE- zg1H+OdXhj0mtXX*0GQ&a=}>Hfx$x_C*)KrC8& zS~FQTpo%Pps}!g^mmjtjY|f^BCAhvgydJl?JTxiszW*hY&-%$(S4lwK8MJ)Rf3|ht z%0~RbI@wV&GE`URhP;YOlsBzFY%U~kxsEp3hb`mSvBfiVF1|Y@8cX(eL|xigj3fWR zP8}|_c|8>qCrbZ_VRzav=NtQSuB37u_Z|{F;xau;h zDZU}Me4xl<0G-kdoU5@M6zBF%TT3WIGR^wwof8lcXvPJKsDmRcDDl+gr-2xTcCgqP zRI(!sL|l<*c_sa%oPA_!c;@yuY)|bn$$ z>Uiw{HYH}H?)RE5{?`CUq6b0QzWO}(PW>{{C3n0*!-vJFDZuv+z~SBRPRnaxS=UsN?%~wLrwd=8^OJI4e42TE4`SY| zx*Yd9k(E-iaJPoJK%I`~$~7BuM>w*=C|km6Os?i2RxeAKs0)TYK)%e%@>E~Q%+)KY z<2RcIdu3V)q+cK1F=n3^XzY71GA3Hn8j@G@iFCdzly$(<4Dtp%GWe_4PH?0uhuw{>Ff2WInU zC@wjx5oFer7(44ee7T=1IHeeLiN7B?V(E2sqOC6&GkY1$th3JSOs#+ zFA#!tHI?b@0Dw~zT_R)4m&y&Q-5s&RHWD{;S|1EmRCLIcIugVLbS&3_R!Wrz4?HPa zprdFBC&(N`?S=0~-a&&t3W#=8$q?lN8&6T5`rsOfX$4x z$k9=3-GN-jwY;mImfYD)p?&V^=;H3Ijl-=#AZh3*8TyI!Tg4&h*uXj}(H0%h)pEDGJgMuJOmPItW3_xp1 z#Mz6yu+1#Tqz=+twE%X-BrbqM@|xw@^wiObCx;I7_m6Y}?@RA75L|CkW;-N>AW30Y zNHDK2Flq{`wzG!kmtORP^cQR`4{>IY9b;i(xdGw@-p;+RL4aS`XAJ9cy&f({$?zI? zl!~&rDA($s5~f*Sjyxt~^~d%I`IyM8FS>!&y5C^-xf1Cx{G=bcMa>Si$5XXFsbTzi z5CaiYv>($TZ(~uudyvaM5 zQo(IU#bsq}peVu$SCtNb9!714i+4KWg*A#-3$4~>Fq2}ovy<|)JgtDydKx5J$Dcoc z5j~R_FJ)yKWQ(MbL5ceS6|T%|NHibY+(A#a^uiS;gKvX-gxDVAm7F#eri%*r#ae;U*1h0G8hh zfPmnf_-^slT~I&0Gdr^Ljf_S{=15Lul~OP&WYi#=CX~V+Rw*axDXQV|`H~jDVVIoC zE~Xun4!najnSNV4x>EjU>A>fp^I(6ur?1akqgySqD6b90p*o7t1a=PsEQMO<4037l zfkDKX@HK>*AKHdscOg2vu=8nH9%ypv?(V+YPHd$iz4^iD4Ue>7PNnl2O=ey;6~w3N z@ydmkB++^+kOa)-T>DZ}{0hLZK=EnQ%__*%aN@ewW>+vH#?^VHdaRoB{d?BUo>!k0 z+;@XIhbLj_fuAV!2^1KcV!9~Jm4e>5^*xK78>8Q;W z&XG7Obql0YA71KznA68YsYxKE}4W)6V*^C(?p(%=IT^L?;6}&G1m31jKT3y z9YOsb6LJ{G3QCCdh1X`O%k6h7`z%INyVLpET3Wv3RrtCAM6SMk*p_fIf0CJ#a6y)e z3X~jf;na(oBhNdme!6oR>LaVIqf@0$xC>%yAhZHkJuAgYN7sM1Ls_cV+q@V8X;*LP zKh|Zl1c0K&fzIs8abHRZ)E4ZO(}286sFFAuaRjdOiC#Sk@G$J`50Wm-1gYN|D=-17G^54Wu+-V=EuRy# z7(6`1LF7@Q{3hRbDN!77s1v*IPsfOTZle9>Dh??!N6K~uu_W6Q{MhG47+^l?AiG$^t}IJ9R`%fT8z(LupX>(((>jE z5E>XlgA(%UaJ=1ZQ2xOn0E}vPX%vc3f32i+=LKt9%=7TP^RtCIWh~q_XYaF2$fD9*bTf^Fi4)vSeSy99&%~ig?=IuReIy>Vux3EO8 zo^B`9Iv+*i0K(~(1R=!%35-+F&h|GT1K=0_?qno%JpQP_A`L>AB$VuSUHG-X`58rF zjeunV!nyGgm82toPtSk&*AZjfMqK5oow=zDI|y*3j$%`OZD!!KoZO|4>27kU$?rna zgX#}#FUGetI&kA@2H_l$=T=CdX?AwDF(}(<6?@$Y^2;{*NawM?NTqUgyH!ocUBqZX zRV)9>*x>>}8NG)bq*fyCg-4rsG+&LGq?BcsEJ(^JjB5haqkwVc;#=y{FAyVJcqcg7 z6WYtZW=&2R!6>eth88J}`T*3s6RWBVcj$q^m%6m&{Ww&~nSCf(6%G%m*Y<$T%4%TU<9g(Oz1W-^o zm(reAj3wL>OQOt^vl87&9$9Hf`;qO9v$Dl`k%p#mgS zUD^ZdG^DETf+Q^Nic{%FbK#%56dlZ{)5xiUB!alx{ikLd|v)s`5TQiqB`CK z#<2)RKFZI%fw%uqP>ki^yp?w@mgIO>4si-&Cj(_Yr-`w6HWj0feX;gB_j*G|NFs%9_C4`Kg8-ci+O_K)W|b6U zsC^h@PoI-M@2NO8LQTE-3RF4820_4U0*+i=$R{RF3WZkf7RV)>w`-zXSXh|))NPdR zvC3#+Yx^=b_DstgK0QWlZ2po1C~4>rLd!qQ)mVk|t@m!kMS-Sylk|5kjeQDmp4Ckq zn7veXV5ouHv&Lohr4KxGy%LJDL7rq|V^fG;PX42&7nD3- zio1qO?9E;5s1W()&zQSNj&YKiVA^eZdXQgYB2F=$;%U3Z6Z6@S;UIi2CS+sv9VqFZ zef1AfhhN545~n~(_hhoG?SS7@vhP6>`Lfup1U{?R=FwlCej;wVjLD>q5zO~m-L^N| z*2mXv>Zs#{_`(#*uP9?T$#U8Z$=K(#= zr5x==Q1JlXL%b%ix`h1f)lY$TwA^}&$FGf5dunvVW_5yDFS%y11h3F8R-Z-KXMLO_D9T3wtQ*ZI=94h*|ok_a90^J znS!#vA;y_0FPiMxY)(`0B3E2;GVjG(>7t&X01G+q3L(&Qnhazx7$bwIDt+UVWF92` zmjBCR7YceF-D>WoO4`U4+;QLoh_1|b-Csi=@XkXi!DL~X&ok*sdyS`93%=EYEG(F7 zZ@8@wcE5~_yu{t!{=hJcO9Pqvs1!{t*Xf#BKWXCr$OrfXG%>;aw0dSbxyO%=sdZ%b*fwJ7`)<+jXp)wP98v!NIQ$ z@6@wMNazB2z?(!(;WYHL>_rZyt{+k$gnb|xAL%MjO;+a_cvuwJ2==nOVE?Ib+kdhM z#5ZlDeP~O&&6E@rUV$X~s@cATCngz*4In=x-q_RHq|N6Mdo)N`KuDi2sOxlCOg=(6ncv|DeC&z!hw6qj6(?vzs8WtS<@97c$1JuU55R<3%_D6|+<-2=$RL_OyvZB~z_fh8QTltdn>Hn+!o>$FgQ7FNio zFOxy7g+c1K!7=xyr-rmd!79*}rC(Oo z=$!UI*Ht*Cb8HKNGtOPJ2V?9SRCb3`K;p}e%WpxYmmUev-vEazx-s>9-?EKs?2q#o zQxZOioDYMHVV}hDGG682(l(_?zU-(nv-?O4mK;D(JZ5*2?Dt)Bhok@OnnMFnst%;w z@x310#FFG8uF+}qM#I0d^8oM56W^w7{}FBE85n z3~KXR^N0Yr* zGeL7rzl)Cbz)P#+8?;2l79}(Fq!e*mTOTsD84Z2zFw5f3$EycMn6#hiWNV{5Gab#< zRsqbanjvuin`a~jjjSUXQ<@F;Gi?Q6T{Jz)5fAq#qMm*rj+2y-D~u|{SiGz~2e4`n z(e&BB@1A%97;%e}(K(0h^9(9^)Bv_iL&J(FLpJdEi%*|!#EF;`&K2;+2WkQYPNCKF z;PBTI;7}nl_6+^z#Y(Np(9o{f?vnGW?{pqIV%W;O5}I`v@OY)YFKNhSJ%1h$ zI=-|Stjc!YnXK3^_2}aFoW#ysQjo7$ozZV{g*-v3jnyP^Uaq-J4?{A8s+dir$8dGmnJO zxj$T%5_R~Rud1Ojlr;iSRxh4MvG0%)WPb}>9uko7^y>;4&b2*2-eYryZ1nUEU*cY} zVWUN$_e`o?9Ib0^yWRe9Bk<-OYt2v=xs2GZHR3q){ZvWtx7P#0=KclldK}k1UQ=WW zWTTEe@GmVD8rtqZEb6%%nn{Pev=c&m2c1x5n;o+C`fbU3H7SFwIDisBBB91RSK|_6 zF5bVd`e6~miv1qtrr;=tF*A*N|6+5-0(M-eukKlDLgK@5GWPdhSP$pl2YIqQm|!mb zQq`;JrXDvZa6Z$wQ$MrHTZhfeIM#3Dx(>-OXTaZTIOBo9VF^dh{TnbiKloIsRMQLK zQ(gQ)r7$Eg8l;)5?7SN4zRP?OOgl>L3_F(CS)AGAnYOTz2R&+7x-C3uMbdSEqx5g_QfcmEAg4p#%&r!n=y3tpLP!8S^| zeYg<+@~=91nVWGC-J!r$5xgn%D+5pXKSDh)ZsEUffDAB6=0Rh|lYg$d|Ms6F%wW(6 zi?z6bY5Wu%oH+t66TR(7zWPa3Cd zl7V>0{o~4?f5wjqbbD^rD;oY@jk%T?S2OuTI9U!Ka6XEIgoK~+{^`4ZU34KN_F@H; zPZ~X+1MohP_yd?>0))uxf59c232tRZXfon64t{+N%-8PD)!*ZY{rrT1HF(Ot;KO@e zf84h*e2Q;N#V1Y28>{axO$g}K#R!DMSn=T!H6Z0(lDC=py&FB@774zB^r-!JJn46f zID>1CAl)IWoy33euin9j4Gd(b(9`L^R@9$&eV3Gax`BWBS5F84RQK!SNZ%xU)VNy; z?$u6p6XMzFFXyusC(Y&kN4qNC<9|p>8MWhG#+&f(ZzuB=*d7J4db$N~E(pI--Cz7y zRQGql79PWV_AuV-9>E={eS{WC{GOosL@f9SBF8aJLA)yW_}_l@m*4)gpTQYarT>lZ z)yVIk^6(0PM>Bq|>@52IWbU(r$voJ6N{w%OKDfn_R~pdpFD6qTOlFEN2?74gdf>o1 zMU)!dw%5DAMZ`Zw^9)WoffO*#jsEs40EY8UOt#KirUG&LrSZgue_hQU-JJ#(#Ot z!7z$x>&161j9`X0V; zm99DX+!J4)696%hEBr_Q#W3Ks;t)^Y(c|5EMH37T*fhzx)mShcb~7gFXpv(T1j13iwerafZwt z_c#rvoPx~Edbj&8UNF>n?%r(5%Y$(W_V*`IG+_UQrTO5diBk9(EB-|9vw+LVE&(OK z@>T!12J}i9{xN}bxD^{Aq5JzH%ZaZ**4dmXfFB=de!?6~9g$6w=D!eZ83nfnc>22I z>y_3T0rO#`y88F3_>cecqs4islTmN+M&AD+n0$uN%2s~-q50LI`h#6i?D1B3H2$V7 zg|ibXQ?}n9*q(T-0z6dwJtuqtp~E=o*^kgQiGLxCh*ONfIvQx=O9GAy<1YXIZXpHI zv$z$@=wAMBq-SwME_K)peaB0+Vc!BKz;wsa44nAMiWg4flKr#7zu1Sz(}6_` zzn#MmiT;FZ1vt;T+y3?|0LdqC-?KIO9C)|Z{uz(7tLOh4aYmfp4*Z7?`u?5&8w~vE zx&Aj80QT^|!N8x9)Bkh90Pt>nBL9fW{Mmqa>v9R*z%MiXYNPsy6NE0`ipjv=XCy$v zx5Rh;?>gJBe)rooH?XxA)AF7Dhqm`E;QBw7XG{EEdGi3$1PjH%pkC%Cs z@uNaFz&6JW354$9!a`mLX?F+axb*Jxyc z1KzE*?BEIBb)Q-O#W2`{5p$smw#B=(_94(Rl+<)hn*IG@%pNXq@twB11=8+ZPkY~HW*hU^!Ybm`>rxR5TLzvD z$Yffs`-2#7(IH&WEk{{{Z_{`K`{N~!1DfzT{|z&jpXY7vnal@)mi#&IQ&c|v#7R~j z_GVjpI>Ui?z1u`Gtu>i#P7QfCUGsVdYS&0FM*JG&Pe$?AlKqO)AoMA}9AJ1yQBm=M ziXOL#i3uQJU^g^0eEI4XOH1Zuz^;x`c``7d4hW@UhQ(c3eCF=mxqUnG!`!9h+_%!~ zfH*J;Ab4hABj7CB2ok08(ga}nfi~8<$HMTic7@sl4$#ZlGcdpbm_J{NJ$lOWM)`Z+ zIEY*g4#{35GdBOkr!rpwg{9|D3YD?lR$Q~rw0Hx0dx(dDj?@1^ih=d=wF0s^2zIOY z1qB}~dH|SIYwdGy$1>LbYl9hT+SI;4P8JXlwbH}3wSxGxwYAf>Z@oAt?x7lNI~rL! zAT+xX8F}J)SV)w`kQRX8LPxI6iL;eg*{soAu5j-Sf4^3!^I%les@cwIeT8?s%I zGDGT~l{UN{vo*J-TjQh^&LqzEo-KdWa#2sm?Z#8kAaGu^qT;IQsOC{}a_4HVF?(;l z>T{zogFn?FB67Jujfz{Wvc$ozz~I-+8LZmM;-^*{oZ zpdyH5q`~*^e{CQ?E$rhsdKRCm=?sNuk092g6+0IQu=7pHvB$c$I5=FB#_nGpveyr& z(-UmZ-Cu?66;-GCkCM%Hw*AR+e9@}+*rz-7QP!HJ1qI#emvaUC6Byvdht_(i+gLz@ zagrmpdw7^bylgoVU{w>M?hDCEml4bE@P*#+;7;7(Hz1XG-}BTfK3*qb zGW@K#`l`bFX#kV2Q0iW?H`rVPf=qx_&M-4K>(qv7<>uz5?Q9nruHUYTWKHolW*_u? zRyixkb?M4Z*DC_1E7el<%GQyxB`FaOQIx)UteBNY>C>Pf*I11$bX3GXPniO>g z+dE?I|H3}`w$q1MSm>pjSa~ftFD>4A+9YczGXA7l1cAO=(bU_XsY%`lmQur zR=|ZYt)v)ctQ5~7>h8{#zlV5pZnARCeWO)v$ZR05^Q|K1&DoCjqH7l9o&cu4-ZIIa zHvZ`-{ZsV=z}(Sxj%ruNBb ziPDn#o;u~Pgn5`=^`{(_!Su#AYyVGoLHN&U!A*g9{zO~e6j;M9&VbY7E`SpW^<}Xi z0(8;TPsuuyqN^)6oAs#N`p2zrnWh7>md~mu(3+CFt1j zcQ&=ruGn5?@?vRMRNSoG?;1yk#_>;wbPkAjI#c@%R0#WE!%kDjO1 zN3s90w`<>RPVvr817@uutwyZ=_K@@E01V}zyA|LrxM2*y)>X~w{w|9l;amGm2U9u2 zi7(%9bV?i~n7dUuViwkTao%~eIDBI@!od9@^;}U#XKX7xD6Lf$F%St;PqVeKEuG}O zLY-+Ad$&ukz2DvT2OpEnI9b{ayBFon{DdpaC5pXiIff=OIsG~zECfs3cN+gi{+2j{Vko7!k>trGGUQMfbWRg(*<3~PohnLBSsBps@9m$WP12Cldk%4 z%OlYGupm`&SY<_hr2ufXvmHRWRG{vilq@}_E~5#pXl11*tXFHk14d>S1?S{#?mfMl;F zb|O&o=*~*+)U-68uu23`4HGy#8@tZuefzci7KVE-!?b_cXMxR|IY ze0AM0ifHbxmpdc`u%xNYsymXG;CcE*)Xzb;8A~>!76MYG&N~p?ti2>E#G{^WVm89j z=n-&{KoZc*s0Qkr)b&}ooO1=jbzRkJ+84;l!-U4g9j2OXv$?FMC+%u>htK-?+#@kp z-m+OMi?{AKh4|!5Jcb-v`cOB@tx8KPAdzdhwvc7{JR~B9glvt~$TI!uQ;|Apz0tn< zOn^0M1AfSc5^F${w>Q-!xlW^n*^0n5aWC;Bi8EmbpC%ETyu7?IOFE@@0rppCNr!0u zWcs6$8dSfU+RH0k_i3hPM}R~_z~di>&4=`vB{!E(QM+Vsb#|*EE4ETcD^nwk1WVKJ z+9Mpj69rSy7YP{djWj&^Z8YznLJRUTGaX!5ChA;Rn|n9=wDdubJX;PuRTtqLX!B~T zsrGyiEo?pfCd1TZ=%KCax^V8;75{lzhsj|<&|F;9A5*fLF9dn&{h8Q!4UirI=9SqK zXyTN_M1)9J%0{@&$kgkdzOP@a_DHTe4sbmW-L+MM8%iL`$PIj0K?^$#e;k)qscNB_ zLRo!TY3W@X8_3gmOE}nJ-5*}kCTh@ruFZJ~bPo)uKV+0NEoP9HMJ!~%AGM3WS4(0# zUAVtpACb0h`n=kA^y$iK0DE$N69PL};9QwG?#+7zvb>~>^h&MFby#e!&Kh^M1jI$N zIAOT2Q^rHvO2fe(}tFe6lR9tnv%wuN%|Td4i4(L4B2D4hD+LXd_=I^h_Vx+euTutA8+`(K9e? z8dK4uDw1ScS2uj9;?O#v?l6XjCknY`^Nt>;GEYp5H%iXVW&&N2EiXU^6#$2Bu3n-V z$08@C=T5kxy^;a`9rWlLkD;p_5XAX9+S)AkgI8J%itn+#Y3&=mW)=x4mJI~^S4pA#WFqTo5s;H_rx@wt)f%Z> z_HafiYmVq;mn4tL80nY~A1=+hHu>jH#ODbQc9jKIm9%bwz=VxJ5|H;J*k(Iv?iv}T zn$L;3DkY^w&`p;|{}rvA@-L2czRFV7jLqmi;C*Lz@ZlN8QN&}@A@{rQm_(=Su@Er4 z8fpDU{rjg_@vr!i5O;E~T$^D}-_h^w$V}R{UO&@gF~V`#JK0{R^`vv;Lo>`h*mt z3ImgTwYVagVhNm>0UaU!0l}}Llqbrd2$8%vKM@e5&_5yRB1rex8~u!FI6vRW-Ji~H z;4Z8QP_ZD=4;7b!Y!cwFyVS3^Na)NelM^S4X)%*-qKjf~g(^f%b87r?*tycmn_R|s zvn9i!o;XRotog(3vw|MQN6#w9ykPTV7*c%hWVaZv?v5;V4|(E9yBmuT-R#{+o1Q%krsHG+n?cSNjH7~wjI&R9QPTE?qkTr zks3))MYV-q7aJ&SZRXSTiE}@=06Jp|CYy$AcXQ}r`?tUjYh7Xqc_caVv_dfSdyfNw ze=Y4FA(vjgIv+pkdjgw%C*~k96eGJ{Va7YlQ(1Y}GQRTQCQK@?p3)YCC#3PUr+zi! z|G1U_Dm#g%iCpgit|_Mdjl7<|L1Wst)IqavWIkAt^$|E3$)+Yq*k9j_ugw;6t^1rP z+Y3Sg6C5jmkV6{hoggF7`&7aK_(|R=bi_W&mZnrJhwT=ZZ7LECYLoAPE@toa{QN68 z{l(8h9}UPut<+2tQFS|OY-fCW7_FMXVvmDeGDtTu8CvM0OG5&Flvk(679Ud4GO-Ww zo8C^(gfal$nuFL2NLiL3RRh$|{} z*l1pNisSc93T1G$(+ijK`d%lNd3Y=|0t4C6V5-41^y zv0CBCpE-Ab>EsCxU1I~Dgi>f7#ar_V2M3R4VWo_jHSoH2UGd0335g{Ev|SbOJ?uSQ z9ImOC3RkBaIMyXeVj;-v33`K62t8ocO^IDj21H%Bmg!?u=LXUz5KyRCCREQNVq|3G zX7+h2lF2GjN8|Ou@CgIErFb-UzuI#eWP3;X)!wYlbnr!I6eUI{E`8Zwk>xaE67|xw z%*t9iOK#rT(H?!$;$m7hL9x1Gl2u*(aGoQz6{NV@afG76VW+TIKser&N0o+0-@2}+ z*Cs`qXvgkgxAIsQrS$F}#<3@yl_Bq{uK%ev!=v{sy%Ug;0Edy^nH`-&%dK^xSAo?^ zZrY-Hr>7z0o!UFju;+o@wA_5Ct8CgsZ+;yA`Ey>mil%x_v9z71PmJz$s$Tt;XDYyH ziMF`_fDtM28Xv9lmy7<%Z4%|i*%=hjm*96$~4()rc6 zx;7<)0-D3>;87j>o!p~Gt>WJZwjT})iuZ#G*`al!El5>sA5ceO4460HXP!0-N~J ztI5MxGZdqT+$&xtBv`|M>}548H}@8YK!-uB9p{Y^GQ?gvX#2rY<<0if`m7gZg@EoQPYONz74))a`1e)@r<`)cK1{>Sw@ zXA4{M;B%0MXoMbXNju`e8?Ljq?Qjl2ko!z|{+U1i!)<^c{Ye4t$tUujwEn@tQ03ZI zPVSoRdKpXPnNJc!eqlDXeqm=r&xV>cl`yc|^oTs?hsE{wZi@M~&s#XY6td%2_USFQ zkYEiby~VF=nt%3qtoz}kCvJ;*+Hk2II?uwwC>gQ6sQ+TKXlvLCfhkJTr4Ad(tmfLz-X;NdiNt`YU#{_BVN0qm@ftF$>op2U(;&)DEDsIVG*vW2BvVQ zw8xla19xu99AQ0F^K#!=@BIMEMm?(Kh33abM@}%y_!0PDI9=}D74h!fVh@ZnIKRr4 zJF~`KW>E?oW}8@)!A|9eo@dCHB0NO=?e<^)qxkd*Kikav<7*o;87mRKi!HBZ?Y4Jb-V8BP97q&qNVPjl1%N(e zOSwD9Qkw#=mL7?G@qCYm3YA+(uFuf%tj;vs=4_4JP)Vl6aIk@uPv(kG4k=5x_OHy} zawSdaO{gr|h%sIEnEE<#iIX#gl*#9ksTtyhr^lG~K(rU5&tmuOi7BTvbX%sl^FnE2 zxD`oCZ>+GvfxKgvxbujTUTQov@?eG*_8EGG>2Ce1_x7i;J!c=E5+*w{L?RrB;EXAa z_1c*c&b@AG+@OE7w9vof`gVH5DltamRnwCkq7BI{rOvuJH8>sm`*7VeK2)Ej{;4a= zHCInfODJt+xZcC*2C0>Vy^sDmY3VXK`K68ql9Wo7UfusXx+j>s)CdXZa*w%8?6g%* z>vyVNCcswv?qN{w>(JzRYl7YSYNp04SM@2qK#aQjjGkAr$IN_oF3bqCsri~DJ%UM+ zhUhRwb0s~moB4!VQwBZ5QJH1r#AHrdu6u%lovsRVL@X znLB^mA9XE&w2ZEIRdyGY#l6K~PVltnS~irQV!51_ah45C^{)KG>l>7*ReN3*)QAR4 zdb+GH0sLd=FI)|4(Eg13)^Vq%aZ$LmGEqwv!M+B2*(!r$|UBS0_0p z7J5s1^Ai=H$LBfDyHdXUUTHiZ!R`>!7#Mg)%vw|8ik+=OoX|#a0XMG`3jyNlTs+h! z^&I{qA2+V6JTgE*{kFC=ZN&L(H<=%Bq)34@kS6i>V z9Na@!-q%ry$4Y-4k4<*IRpZ(E%1akovyd3A6*Ns1W7&a52s_?ld{y)4-D2H~i*lp7E@(8qQFq_7KRCMJJO0Xl z=r<3NM14lLg74P4XA$iAuiaxLPQ6u{-TaU}t{c2X!el;9n^uM!mqC)^H z>xV3!>gLj{T&}NHWE#OHicQ%1E@QnE7GlLcI~MmOoKGdWELTI4B=Zks28PNd0*{}i zi&l$$lz5Q@_Qx9;3^2ZF4#bdW1RA`xL$;{;p>K(Ws#P1BtcKB8^bg!ZR>Gy&jj#D?O%LXHK{-=q5bL$rQI& zxw7^3t*pE2^j4{Do4mrc<+DYmjX4m}167@4Pp4Jv+}Ld~&?ZZgO=t3Nc(}#x@&8n4&ZU^jbGJ zeQT2EA02xvz0%k8W;ug-Bb&GS9Mj@(G-=s#f|~}?V)wO$jP_ClH1^6isj$!63;GiQDr3(B%U7kXIlsId;Zh`kD$>w?TYSIX zkHNZ32_gn)-TI@$|t+uu}?IqfDOeVg;&@_DS!&GnYqp&h2azPNpU%Q$YKh8?w+ zc<4)gAfIXlv(HK@lSMnN?*?jSSq+*XCO;-LQM$<6AJed(qqDV7xg{w566!2{u+v$# zuwUia6z;VgVWQWma>Nt)WQR|Z47Sw<^*2CiR(dF+9e4XOt5SDlBP3pu=HzW8V7|?l zOeb0B+?M+B+|jPJXX_71G8PJ9%ns;o#+($-*ED`;M!BLtUFCnAEkBv9BS&OhBPPj{ z-(S2oOzDCSelP#}Q#aS8_;CMzqDj=)zIqwlMUrq%^#)=GI#}rLn4`I`3obV&iV4GDOVwPu zKDqM_@h}x(bl-Uohk>KwBzYrZN=XuDVZJM_FRnK)Fl7#?-@< zVSbQo)PQkNjMkfE;1N0=E@@UXEC4n3C6kF+9JmZRT>e{7TKxdDblxa+ZqMp3m|D8& zUUK;rrh>QX@y%&+Ewk~{O32sF+BI$~kH8i!h)UVprk;d)7!G}5EwF58^?JishCG$* zJ+a1+wCXjGxE-KZ`KTVcVgI%EV^zF;Tae1u_?;;BCT}g*@wfGXB~|@s_cy3A*q)jc z8%Z<_TfIDkc#^l-g_QIxl0nZ5mf0EfB}h?iY-~URH#?!%#-t`TbHd}aVix$owlyOw zw+Wf{s+1l~e3qio=$}KsIW73!{&Js`$wFVO$Fd|}4w01m2aogB#V;akYs72bs+r3vmuE zNxMNwTIKW_)PCq&3MwbRhgSb#bC8K4Ax^1O(Db5803217)Ea8)`Wo;r*Q@T^s84oZ zl)K=(1%XJ?dt)}k-pU3wHs4Pb8{Md=Tu=Zl?`~HtJNl;1k1t&7=kwbBdgjXGhpyb+ zneGoFCHozjQEs|`F*GQUGdt_i;8#O;v*~LAhn+2JPNzwEOqttyuTDK*94ed}gZYLs z2n)qKx~ZCuMRlB$qX3dwS~B9!&y?h{*qxa-9Em=YRNK0{Sm70^ge_wq> z#~@E-S#3;&*(G`ZRz}k0(vM&SN-r+__YtUV=LW%m<1(y_{jZUFEK7_&vxmJD5+ZDj zeh^>GxBDqqWsI|=P^X`h01;eI`qOy*YGCIKLB7L?Bxs}h%i89`4!Kh7XCSw=;aDYc zWo*5(w9awLV=}b$JRg4d)o;L77|*iD_SgH#q>O+|Ix5Fx$~Hv|G~f%@)l5vXJN2-U zGkL%|GnA4R7gUq}{+_>o@vm|FGjl%S$5W?x|I}ZO$o~OtxeEc5%d?^Jfp2@n0&KJL zh)fyMl5lQ-5%ePb@-aVtS!NczlK8BNz>f=Hh8RwOygCdd55uy6P%23IZZQf9zVp<%f&Z}Ov++R$qWN(^O zma^Ad)9sXv7qSk09}+Va0YEtXGu*MhlD%#K=q<+Igu-rr5Qo(Uj73HlIDa191a>y}X>PP&@DC%KQ5INQXhePWr+(z8h->p9)f& z-btWXutT&`OsTgb!X+zRn^sxnC(T_XNphMZVBDriY4OIeWiJ^oT$pSz*(l<;>(pnE z6XCfW&&Y4u8GK$g@P?kA-rj14bVT3tN;?x1uZcE;;E%G04T@}ues~DP<;OZ3%I}nS zGP9NAu%4Ib@_Z^;(7JzxRNANVdh}l$>ROsFm;22aJ_DA=Q@m}0dLL=GATk zjhlwV>bB8+HMRaYIlJw_K(6&YT%D$4NqqH${Q)7-qltRTo5yTiH_MXR{TS=EtH=1|9G=!`y$me~^O%yLo*?Hf0kI}CKDoM%2cOltx zEnRVC*UGn}lU*rEHJ@U5=ZVjcrFGT+Bo-O`F`C}iGDO9BtD)O5;&qijfm4g!TiV~a z>AX|GvrQ~npB+?uuY2-|jdf__qOT1D$WJ0*9-H%3MUQp1JQuVV9IEWGfjRsuaj_tW zwBPEx%;z-Mr4-Xk1!8#Pg$vano|}tz&P#GW!1B$bTN1OX*-#g-AxsAX4}=#%fpdF7 z7?$L^tQ4io=%)lvSBR%8`v2H_^LVJ&_78kiQWQ!k8j?!(vSwEj%2L+sMV73|jIoWO zg-R$w*-Q4Fkg*jZ>)6LOB>Py#KKA+Db572a=joiD@9XvZ>-T&9J4f@mKlkUpulriw z*ZaP%v4*FII0Y%g+wyIpy#pR{{rY7k63WrlrsQ9E&4t8{8Yj0A@eHU1?D@gK{S&zl ze;k_Y^gi>+{`()IuD{5C27gJXj^tu_mwU5*@}4p1;*%%@${PHmMW8-$0%8mqUJkQ9 z=IxMX?gXSR>Vnrvz-(pe9T;FMMoia9@rpOTiCOJqE~oG4=uiuHZzRM}%OemO7!(rGxf$}EeO?%)4of^qcQ*ahDgO~u0M$7>upg`>QRdf25Sryxifo0#9Jd)Cvy zU5URVb%Bt-t2tc5dGTwD>rz7ad}f&%Q8Ro*!wc^iA-fzgkig=-RZH3;UVwks{5nRK zM1-Y7&#Qu6&45MiL?YuV4R2oVn#M{79+y4tc!y#fkj6f+^yq?W*rs0KgkLsSPkB{(t5VPtih67R=dW?J z+TDD&XJHIeL-1NRJ1*n--Yql;HP7G#P*LFgtFz>On=Eo3`~LN9rPJ`&m&s)BTrudl zD9@E3HfX3$2I)8vpjqF?TR2}{Dgr5~^MG$;r>fHi)7y}B9#v(kmSwpcU54Z}@5;XI zH21ygg4_J%{uK95-ah9~P2Mx=s6IZ?4XT*d%nj8HdFl>*O7~w%Zb`{J?`AB+=&i19 zr5@Wf00-r5&)coc^7gOWFl$~|)stIS^eT27B`!H4^Fp0~REW4veaxBrwBhDt*m-`< zpr#I?`vsuw@6IgPx_toS5K#;Mrd4krQZ2ltlUufKh>}SgF>l(2Ld1=Jz`Yv>O_N?T zfl@io=$br>Uth&*^6zRk{=RVTpT&G1EDtdF#UHx3pvjnsC>aqgUvKnx`+5OM1`}LI zi-MBcMmZ_n#M6zLdkY-={h0+sOf|UFD8@jsq^c4s=3!$WP^xd?)-*_Lyn9>5;Tv?6 zZGnmJiAZ9`&?PY|>hA)Exu@9W_*hBb6ljK&nHszhL)CnjJr~Q5L!O zr9z1<&?9kxwf38h5_KMFB2>>DGlMH~i--r<9msw_79&w^oMgOPqua3fv1wyH{7+30 zcVUmOPR5hBI^kOZ?GB15G%$R+QG?RIvKy}l-fQLWmq$FSzx9v0Wgq>=&j9xoKe}Sj zhB%$QK93@uFDNH^m0iXUZvgWrMb|1OCRPm;{7`g4ecrkGL6>XFpL=`Hs6L^jVZP%t zcBl~pm4%&61t~U=Um&O1-Zx6L_JLf{Gh(hc+)dGq&Bbf2+se$C30-CYSsShmaXTwT znWQyKw5fUVR>6EY`Q^)9m3NI&_QaWPEIH0+c21OPo*)~aZakwQfRsO#ynClXPGbqQ zcZ_f>cRSAnwU}3ba8DfZ19^|jcnI?3WQ2_M>^HJM!FEyu`XP(SyT9bFR>@XR?84nv z;&9}^rg|~QWZ0y{c2EHe|1|y3>j2lG0M#MJG^J zYZ>`bkWMKn8%AB#FJp04dU=?^Nt&iJ(MsHcVkCEd{;0Tvk@RL?UQ0QOlxPuwBDkVF z_)O6vfl!&SMnfo3J(i8GA(ojpm-eeYW!z-$3&N-x!4kt)zq{PcULWEyo_+iLXxRDg zSjDU-52@&e7dlK!UiWA#0fks*0#>=4MA|5KI^Pik<=%+8RLdV!zq@&&6l6FVYJyHz zUeu@G{QO$T-lks3Aeyw=fi?3OjoH-}k|$$pog4%*LRUP1q99^W8*QU*ve8J5YKs8| zs%`u5Vpj*UusV4Q#WNf%Q_wk>r&0BWM$6r9lQkzBvKVk(l^vMklX+nkN} z%VVRn{MonaiJXsLx6NsHBHilRxpUz4oi__yRme#vI`IKfCo}2!F7s74t?m?$g$SKA zb3-vP%IKOPc6N-{_o8vbZgDzpL9g{`<%J}HDsp0BCPE}tvo5Zso(+8IJ_>Z8-=Mqhy z!KT?FuiW)<3mSBPk*}c{>CG4o+LD8b!CT-_uIRSA`L8Hy$6w;&!5N2!qAw1ifwZ39 z{1!_(O~;e8@Hj~Nc-~kayHeosr=|LOgKKMRM=#vF1$>2qohFC8tmlXJg&T4QpOsO6MkL7#rVa1f|wKjwqR_MV) zWL)~X(s>sXZ*DBVEAepB!cO?Hdx-Gx@EE8=$C{%3hjZtn8J*@T9&ea%?}?+c{5(9c zHLvGZ%B{UcBoXBb+_M%3=OHla@K|vC#Vny9sV&JEpQqlnz|8lgm+<;tRUY?|7_>V! zDg}fWCPJ*_^^yvA*kHYV)*(uE?Ey58rYriA{-6;6e4Q#hI7)eg#HPa&lOZs zMq7cz!kShfPEUtw%*m(GYG(KOrI@=QjmSEQ&G6UJhZLnqEw*7~SU1;}Y-2oXmZ3S) zlUtrs<2gr#V9IRCrH-Qw8(w5T?IBeaU@I(;5-xI&ua6G}jYY>ta@jlGpZ(->Gv7>S zs;^9@+yKa;u@s^j1=_pKyK8+~mm*;Y@?GPvB?0~5cL2)bxUssV42`Mht;>@!I!f#p zmjShCBV#o@=JEA{HD&EGQj;sul1c;NaEv;~T;QHK6tS1te4w9hVYO8jWUX&6^r>&l z)8iw_GsU7;mPlGP;e7SJCTkD5ps2*+D=zn^E3IOm2{XHonf3r5JyS5$ZTp$OlS(Oo zxfCnp&^W_HA)A$`Ew3m!lx$X9%I?LH5fMwDZW=iA_l7rZAU6flS|F2cG=~HAmGI2L=OmW59GR`-$Z;jW~hH#nV@cB6$G-gThM|L&y6Yn>F z`#hKL=p~a?IuZmPuU#TL0K}8iBhd_mx{7gU!^f3c#Ho%n-70WdWIlWCp}u#~Y7s5W z8?Z*UI9z7BUWVVtEP4z*O_J@*)T5rm zrfq6QfXhrpYw0r*`VxJaI5{8}OB_^UuVt6Jzj80#xbzI&l&+3W)o_XyAh)nN#(>rz zFvZSpS2%t=>hZnx#c5WCyk^H#qK%R<)1LlpF9p7ON$o$DErr#YIv~mXCKC&(Rj)ia zws6BK9|FU(MWdbAK@hn{ca$Ckk!K0j(J}U4mx%xh4?|R{4=xCoo7(HadSG?fGHqYiyT;{>~(k;hz9 z<4K^ou=HhlCpt{v*$ zR8r(bd_`K-8UP1Tiy5!Ot6SZVD~``-h8gDDH|%P5EMK+kw?G3~v(2S#yw-0LRetsU zsu|a=X71q){53%(YUQN3HP8ditaCHZ9Qf}!T*8KEYn9``<0`xsU6#}@%wJbuFLm78 zYbil5ccwRdS98cr%yEn~ajxL2G3O7+^N9AXsZRr!b*kPz$n3`XM`y7^*KK66xHcx7 z=dNbO!qe0z{}CMhqy|7{TxIV-C@+UYC@FR_=kv0?@!sL{1libL z2|UioJsgEr)zi_jBuz5c1Va5ABgGU!bh*(VRYWI(fU0AryUJw3ETEuYnhaB=Qs5J} zg|V7PQiLZ*R87#Xa|yR#Odo*>34hQs@dgIsj?CobCr9Yjp$ToP;Mm!SKk@(!>#mOu zNVZSv&S94z?)AlyLzt|xu(|+{yqGJ`-Tb)m(ST}P#Gw)mceCES)0yG%CHduf(q~Gi zF=Is4_d;gHi1ohiydu&M>}*7!sXlON3az_#}W=*y?6Jv)3PYxwZ6Zsz+vZ zgP+Th7h>Fz#nYK-05ueMto2J&?;!g~CGoI&tH`Dxs7wUq1MJxCNmvFDNcO3<6I-+F zmcJG9_aqc+?lq?JldMHe*KsJrqkVt(<}Ed{Wpuu6sK^d zT;608qq+7VGYA5UzZbuP_c+&2lu4K;!+39|iZ21zoNX9&946_on*u zdDWw(Lp?Aa_q@nll)KhmFcHY6f9!@xpha{^+uV3a&=?1P<00rU{ReX9bMny94#HA$ zW}nfijt{2QZ_sz0R{BDw>F^c^$~cd1Uw7y~$9k_mf&iP&@fH9pteT>pVols7mJ~_Q$SO^CNDB1IxRbspyVB@8H#|2JXxlCclG15~u8g53L`l#j=Wd zx;{TDak8MCTUXhDLu4aOFs7C<>8t4CYWnT z9|Al$>s42_Wwq!etQ9m)Yo8P}f!;f_9_>V$jV)&n2nd%v;Duks+<^x}o~4CKzec!aCXX|~$1qC3%#jbMWm63Fq2B?Am^{FT@SW;r_aad>;wt2}YBjzX zhnx|^{FUvy&i6-L@-rar@X%{@LU3A6U%hjW0KkBq?-)nvS>T=^MEu|&Tm@hNEFDzSCZEj_#*rIgo2Jx5 ziA`U)Ur0@EbvG`EMH}%$a35xxro%5`QQ+W@x8}1|Zzw(b-(fH%RB0^!DVKCaA!B`AdTG(L>LZh} zuNL!nz-9f?T6Hb5m`iVQf`RkO^RJicAD)E2kd1kqqV@4(dOBY&`|8IuKqEzStCqs% zz9&lnCTBIjxnn?0tfvrRAI@_wJ_P)`7T0%s{U;vX!KWLY6Ij+3rx_~qW?ECiK!>uL z)$}1JeK-Bi(`b!$5G4D3$V%D`;~Be;skgOXleSqLCnKiOsK4MHOcEyQP>{@=Yg@MM z))s-ZktIDGwKwq|u}$A^DojafS96NiGCLoII!~PY2G_DSFZCveU{t9#-9gBz{jNuXA`H^`VN~w&l5)uX4Mv=Gwh`r zf-kki=Qec|_Pg8K8I^MoE+9(*F&CbXkR=n*j5<}Mpk!z2W}!g;T7BfIG}*=rdX3bt zy0ry?=mHZX6N&KYFSc@IQ_ljnohnbDzs;&I{BZ?uL}DEZaSF1Tq-WBoFg4-B-IiFb zg^|YD(6Vn!R~6s6bQ{G3GsOaR^%&+44Zgmq7vQ%o$&}u>Nv26NkTpjOtXamIOuFn8Ax zDc<=xQT@V+-ZOn{M7de{=Z@V8l97NXC`U%;Ys#h&$j)Qv31xyC_DiwZ6J$@zNzN;DjHp-Do8{xFLkH;t~75!kA!sGWC?^ zQdU42WB8V_bNsWi>vE@PWHHaQ;BAiWhfhmnf&MiPk?*!4;$H`X&9;EG;xXN6;+_N8 zyBCmas+}XN)=XbBo^XIPMcl=QxwP&hGFzhu_3gP&0kH29^6ku}14l2Mpfdwr=8~(u zG55DBQ_>mQsoq$P^Muc<=Mh^QnX1?XE8Z zDt)W*c>NP=s;|O36!neloKvdD84d=7I_12T6lf26(zCYzhVx)ud3DQZrTD5M#dzcf z&9|k0UR|KKfsbFnQOAw+@m*V6>A;{~!f~=pAdfP)K@%HvzVJEsia*F2Rgt-_WQ-zZ zeSyYw%Zx1l-{3d@%1*^Cf^E8nqAR8NXAI9h1b7*aJ!%9^kzK_uGtcF=#@OHG_br(rX=Im^QLm*s6H!vY>PvhFnhtn(I`fXeI74e5^` z-=hg}9}9%K8KaiwtiI21YfpTkwuhJa2xWt_CY0kXHtUEXX_zy?T9ZFAYGLK&RBOOS_B?QGS zdfHzDs@L1F0?_^R&q3t{!TpSx$C3EZZ58(GmtC&_8+E$G?dmp2O?LX^IlyAjytO;{ z&uc+Ho=mQOl<<5z>lus?Bcej&s1FR1|sW1{-3|Mt3&e^hl6WF7gW z-qQZ&&B|cbWmG#psW}r&rdZnH@Nbg2K0u&o4me2s{DxN%;MtVv*Y5u;)y>6Zok84k zm-_i(m_7)r>K~o?=l4Q<9LPKJZ*;miaj*)+YU3sK9pADo0)Gv8))>e_D^4nO`}C4` zHSPph1aOy`PQcPQCgc zwkh!ZlX(b)%2ws_MeYBctR0K>??>$ae<#bwgw;Dn+R1EU=2_j(PS5qry9o9J{TUrm zS!uSSrvLA7q=EE3Qvp86YZnFnf7}OpKsuY2+POQ^z(XpmA3F0JC+Emb@Pbd@!hZHe z9zzY+=m1;@+{4h1y38uI7C%e=CFmZV*;F?M8vjA0b|Fx(Nx?nbu@UhY# z7ytflglAgdlP?ezb^i6}KKipP;Nf@O)Q^An<}+ZMYBl9Z z|IePLI8dmJ#14UwNK1#Vb#9m7nZmijUSZ!5)|0d&AS%iSf{#|67)7)@3992B(tC z#_gDYYYK92f0Ps`IMc%_XfugtQ5%{jd0fY!#?%9}b+ttd{KS7Mf^y<-3eddepvM*$ zE>3kTpudv_`l4PuhQOTpJhv;b{5is(t$}1%d3ILZ2DLu^qnso<9u!-dam7y^+wo7< ze&Ek8x6U8g@z-BGPcI)=56XffB+k?9obsRL*D*o(-`AnL&H%cP*l^W(?VO+>xdV^T z*?+45|I0OkT?KkSX~lJCbK!kRie1fbQPorQzx|4Rz|J*)h8eU!+pZh^$JeY}1XZor zoAnR>b^!S}MKA(?>%HAOe<}|?V$|brHuL9ip;rb4oOVx$BvbAfV4pk~mcsSytKT<- zf{}ZY;8te4C3lpo`$p~}r19$L&W3_JH|xhlzVU()%7QJSJBr4fP$ri?pZI)3Y{$62 z`X>5!;3E_kZ*?>6_~|!(Fm8YF9kw0g{--dK_urA+JIeQ@^Ueu!fV$(7kLbcPeqZtX zBDn#|KDvP5oq}gd?v|1uX8ZdA_I)@Fj5I&T4Cjtd#DO+#FmckZY~*jh;>0I%ADAwm z>pPn*{@Lkg`f@TA#qWj~?*|K6OkBp+F!{>j!bUS{!-Fi^-XCd>JKL?h9 zwpuIRa>tK#A9^}nfjZ*mwoET@$dFYXxs66h%mOOD}N z-&w|f=i&eJoex08d)U1gR-K(&Aqy17w6G1+?+2itl?Nx7O8LOfDWLPnTF-NB>i4DH z_W^crvk&5o_Ra&i=M@;iTaxzK&VhgR5$ICzQwI_wWXCGdTN{IKo0RSQeftCY*$i-m z2i)`is`pM7OjoUM_X2MQ4L>s~JsFmJ|7Aq+_w4S=#}AsV!k~UzclR?~bN#3sWbJh7 zi~oURJj*F$4QGl`>8cSTqJd0%FAqG ze`q$R(if+Nu$$V=MZ)0dD_ZbT`mgW`^BNK zKA@Eqk4msK?U6jst+F-GHy?x=3H!XfB-gSq(@7%OME#Qe^^7;PsGDZS!Am)|*);RQln##+X824Ob z%m=GkDU{o_Oykm?7^N9jRwkx11FKtdqHBG+jv?eK>7Ysaa9u*ZnPYbGj3FP>(|~{w z6)mp%_K7ybgO@yd(+di81x!m$xfLnBUvy9D(|v1aWj{E0=rC4FeKTzFt&msi- z?K*i$f{Pnm^MSQ7Q#iA{$2rJjt)osO2co_5AuXYU(P>;=;@YpC?b0kDarQYfz8mth{nSoC7vi8s_D0;MYIN z6)DS9>WBo_B5>jfvV{K9p#(=#S*zgr8=6W9S5ZqLe>IuC$Gp$5+=S1t;ECeqWmsxHmUap+&~bOd*`i`tg+I`CrW%m3EfAdo z9ogAka4AVigKCYa6ZN_oFl1++Ke^8IIVY{WaIaaEe@uMQH3YIhAL)0zzCJ{%&{16c z%hDU#XiSV$O?zuzXkhbn%8;^p=6<_krnzs5L2NR^J{@#vCl=4rT@l{y%6Q4-7RF&e zYSR8?-Bpr@FT_*DnKx0m7Am?Z@=rIWtfwTXQ0+?=Hk@i4c#|=WybtXNUl?-zBWkYS%CVCYV|hDr88%d_XfNq zTo$e4*8x3pS}byZHM@>+O0;dUMzaCLU9Xdt0q^3Q2v06SnV}|n3$wbkFRYCQuxgs< z&fuvtFlL{>KNhm+5!oNK4`F%*6sKu}!0y}`qHU)2Q@~G7vSh>$j7x@R8f8j)YZMdM z*ng-qdE%jcq*{&3^9#FeD^pU;JXZ5ieattj;7CzmUi)7&{z_l}+ux+gRg#Nz!UOs~ z401|DMB0vGao&I%(qdujX8t{$zxNKQztl1n+_tO}wk_`&{cyVK^nH05=lPZW!nz1( zjHG!)gZedLA4BMq(!^cZbp#=FA=cN}fQH4RUKJtQ)SshuHOrLQ_O;I8kdRYI6W{lN zY|}kjIu@Z4u@Bd2m5q%v#y=5XygK3r%GaG16X+DpEMkVk;lW9}8j5pWBCOz_#HFQ; zY-|Y;GmZRkZvg?m-~d+HSCgktXWoUM>$OZnlsa-lkQ}6vslKogyckaDaZFoln?-w9 zOJ-n;WP6nJc=m8AX@dUaGJDD;8Rw3Es)KA(2J!Lmk5q9UDW>eCX+r66MBD230=#O* z7*_NG#%Q2z$aH17aE8WADt3tL$Dw|d?TufvLk=CxY40b|CG5J54NO+fky}tLoZ71f zk)$v4Y5&!U|F^$=1Knt*U(F6-%FCC;YvnvTwP#nfG{mR})^gIB!W|qT1_(jfmk8C| z0{d_&o<$Z$#?wPw>aR}ohNT3ScV3ws29+zj^^4!X|M+!JuwTGY0lIXro9@d~-PTd! z4K}v6IxAvI8HEaP_X2-fXF-F4%f1JoJ=Xl2WQ|G7e&H-A=p{@9)JjLmGsRR11P^6o zT;*5ETgKWqlOJFX*#uCW`Q`y`HZkpPMoTTQPHx@W)z%~dzu*=@U0uF_EsSDUai*}g z&!`*(bP_SlWK+`uQ&V_tTOtbrTNzu{mB(usc)TezHT7zXaRjq~F<(fM`uVZeHd^&>lgkjbAIC6LEy^tU!NL2j@sH}Px#g&DqNq3L8%36Gk=#a>tXfog!=-w^G9E4jNI<#D0rfC}3=dCP_fZsw*~@#yUM z`1r;$7}k+^4ZBo5SuV~#(F_}XuxgVb(#EmgC|5Gb(qjZ!!-w+bZiZx>xtBo|2$eG# zZBPrj!&u@lg9cUi*O#YspxM_Nr^$8?@Mcw&i-qAI#332QcBJ{x*rKaO1@|AT>ggJ7 z8yA^9>2jNhoG1xgZKFZ^0xjK`HKuDc3HJOL?=t&l_G%=@3OB_#y|i}0PIvED>$wNC z^BjjhwC$G)q~W%93rEpx5EMGplrG2tCy z1n@w3fUb3>WfQu+kee&?)PIs66fu1<7jh-q!AMw-J7S~yb`uw zL?c2-pVFBbz1+Q61?W|3x7I-MS+jiKv=?({^%uUF2l%e`r02eC-Q!O;GvJ6n8XSBw zjor{(^0YY5RGWCXph>U{&mwZ9^)!}ESNh{so(?y*uEMMi+U60S5>L+ z=tSZvNa4myq!Y4cZ zOLBj%%?-uu-s$;Rxy{&jl__)k_s=)0fYTs^tnUW%8zRcH_ z(iLk_C=Q863@6+5Zam#TQeDIKbx~jVj&4sBQ{i<@ZN7ElOsE!@dc=7J(CMcp*1eT+ z?{a?kG~TAgcQhXMJEW_S+9>SL`O*5 zKRb1rtB}RlC95_>vWLOD47pygv83Tx7tpGi_k1fxZf;R)=Gr{V4=4T7^-pVUDCYV% zZ5%nmHLr8bNG)^j*OTQkr?0V8{eRn`;R4}r}L9`9b8<1#DkeeYQAC8P&G9dquknLlG>QzegG z6u4h`O!&_Db+>yD0(mO7z2XP%@fR3Hfbp{&?zWHrjo!*@6`!{l*x{2kDU zAWu}e@$icu-SJoUv3BQ|PIJ+{pyW9qZTDrCX|erCCs(;>1?{;pVF9Ko0tx42chKD<~PVs3&jM_k6Y~bN9HXU?x?F?4Ypwv%FIj^vi0**QdYHlPJO@k z{V2F@C*Eajs0=KR5L1IN^er4Q-kAxQsfLjn18wTL7ibOAamyRn%dNr&CF~92ATn8)xFPl1Aco$Ze2zU6xdNf#2MJjSowrg4Fjph( z(WeYEbQj!IoSq(UtUZKN>2_Os_Vi_zYj zd`A7v6ia6)#rWiDti^&7t6Gf>_5ohe&MrzdQo{IgA(t4n8KE~1bl~`S77ow1TmkN- ziXN`WkS1x;$M}$U=fauf84Tx@gu@RykNz;8z`I*|?D!<1K;RT&{K>N;>scsq^F;YotXKGR+#(nMp*kgQayeR6I&k+92u1xx8Gh?RIKls8`2)b zhbFS-Imcz~Zgz4iJ&p8Ad>(nu4lo0)xD{SX{O4l*P>28ehZ2BD0w)jH`{cOmO(>RKEuY8Q zZ^Ro!PXuL^3REd7T0Wmi+!z^)v4?x=_1S4a46(p$FmZLDW?wi<jqrXpWue9mVfP+u!M>InSzJz#MP0AqU*okyD{ zsZdbrQBzMduo{LzGy}!o|1v&T4bGC8ks-=4dMwYX7R0ND>AfPsXl-q1kle;s)fQbyPf=5had$4St=~e1=cXYk{M6#akUNIv zhk)&K@R<#7mwS?$eqct;)c|P})n(#V)z)(Hd>{mN{Wyc-f3Z-Y92o2cbm=_fnXU1M z2NUsMzn)#~rzPIF%%qe?IOqM!on9;d@ zHLu(5e(C$mbq=`0Zp z%UCZcMGgP2$6>S#|BcY|8+VbQ9duW4k7A0GJofroC-N|K2#l5WvUq+S(f>gRF)f z?6f$ba*St_fx$52tVfM{cd2vuvG|7t18Xw~1Ly#wIFS0X`>W5U8k@w7ec{#~?XO$r zne<&&QCY>foe~tdtSSkdnvLzUGzOhie^Cfr6_*lS^K!rdd~YI!c>f zpq=w+?>Ya-lE}}}+%)yP!G|YkW|%O+u`T!~pNb|fX3#DXZ?30h?Nx7#PJaY}aZ$J( z{|}w@FYWc?zdogrGY56uTebZ+i5|db5}{LnEt1l4E1PYxkhGOXb|{}~TxC0fktIdB zP1nnjBT`%-IU=p7L^lC|CF0w?`A-zYP$Y52SmOQ#B^Qh7bJ5=5elqXGn`1(^=TBj8 zI=+E6%AD*Kb9{+L8%zMrH{mJm^?eUkQq9yzutB*f$*xH=BzN;DC zyJXTKV;DJUyY=p|kp1X^r-6YEXy}3o;Vv+pI`kV6ZdpV*j~SzmP|1|;xwXnnYI*G0 znpn~psz_3PQeY6xD$4xBCD>Ewt+-h!Hpz+tM-i6ozAkKf$Zu`^=2;_<7aKg%z5DmB zgXABsLs+C-;mx=0=vVtA~4^}&}f)gp!+k2e+)4IPol=ps4iCOduLvB&2C*iQ3? z2?r=IAc_lN#Vxi*F7J&4NcnJAi*#*It`6)|kx~#_BJbRHi))0manLp}u`-`_7@zr7 zK}%EhtP$dY3mMakeh+UpKtyydn^y;fGSa0Vv333E%#GCmHV!SE?_46Q@4<+B;EeJg7mm zZ?KmXnq(T4***9ILW}XiCKAqg zlTV_uvL==dF{j(C8bv-E$|Sx|zPU`m@q#<~?T!fuM;Xh+hO3e0{Zgdaus5`P?6UWi z1BZuSr^LT|cUp(?McbIwvl;2>61yca36Ig|Q;q%8)Dkr{T**CFeR`1#Z^FFLgc}Hp z&aphZj=C^k@wL7XV8?HfVvxbkvoExDbzhH#P#t*je3f{qnaO_(IgMX8%c}*o;)Yjp z%tzPX$z5YRcl~jKaOmf=n*~+%A(GMn3Yc91cR;oMW*^>P{jP|OSX-Y9U@jl|$0 zNQs(lc8ZVm56C}&(M6x_eH)Wc`W}8##sg*+_Q~}X1a>QGx6aQ&#E&ie_YLV|07-wy zz@tWXdu`)5!sB~z3AAuFtvuK1v_PlSYmS5YyBJFH#k*BwII+qbpu}A7X22U zy$sOg(U=Yv2Q-tQY5u!z_0IltZ8Xtx;ey>#E?1pyywul2TJq>kP_sBan2 zx73l$Py4kV#(#d5`H(oVAY?JMGIyBG2}NZ`+{_2iR4k~F?i^cD(iyYX2S?ZwuOarK zKzNzqQt85uvE8;)Mn2i%1Fy3A4R;mFvuk%|!%{>%=lo@Frr3sq+idw|4gWP%mY6;Zbb}%R%l^6CR)v!_Ad~A~5i8@P>~$^Pf2B zL|MiH#L0F64nId+X_4;Ey9*(L`IB{8`GoUCpu&ERX$IwSNLwf z<4wN@^$wvaO?A6Z^K%+sc^_EfXlEtYmBW9H(iahV7e+NEC`U}M(ZUCoGtXnLHGNjl z)V}Fz`t75h>T~=hY4t=*)NS;+LQyBHhCa~C3ts=|F(yWmv#@;|BnO;|`^NjHxppJebTLP`dCtBPHzAcCOOw(;jjfYTq5WNK!)c=k z1H~EuNp*|OpE;E&6_8}n5IV?t#r23+r>&c&Qp}ow&y1s{6zv)JoKJQrGZbLzW}$PmCf#J78jFTI@2e@J`AdLq|91QsDY?G6eXx~ zJ%33DxBg%*x7Y5S)FWnQ=4(aNHIr#pSusMcHAAx%plqyhL zHgS3rA!~L6UN`Pk!(!7rbo{|BARhhE|03Hy4z7%i2PV%Q_}Nx};Q0ZnWCTtKh(q7J zF*7X|OD+VB!;*u7zVD=({6ZRiUXaz@eWg0zpWLF^a_^-Y5>HsYo&oolcQXO{VMwR}dZC7rPsY-MD+gKWSkI!|+eW;1kFYD^A z<4o3<8JW2X^i1v!2vdkfKw#d`eIvhD)4wFWpf8=+m>i%_$(nqY^3bvAiE_^7viN7c zLc^*(akz7?PycC}f4=hDA1<`qF6y67?1{xa>6i>g|9Fl?u}&YT1mA5l6w;U~=0KDZ zfL)sOukZhPKYl%RZ%`t8ZOvR6TUU-F~8A->ObEenkm%wKzoO_}`4k4MvQQbzv`+!$pWF0y z+6Q;*QRU$?%UCSsk~-+?LFic9FYgf=Qv2JXeH_Sh?S)FP{xsRRNy>`yt%EPu(3z%Z zkLo^oa-`Q0#c&|B;3g>fz;ySc&u{nY#5Yi!uGvf8O68{`c**$0Mnd>y9$p1xWX!Z6 zNVR8`eDCgpKoud9@^rqr|HWi^z+@xYqu!y2DIxOiSJ7Ep*44$#HIl zDo_uKCh;InkC$S6U3q249{u`dpMuCf{}W8>Pm=p6)fK=7ASsMY+zsE_wYR=W*KkvuA8Z z218)Bl6}9Y$8W7?;5U1uLWQba_A z_KoUm5fwIrg(qVStG9;}XqYXCO~#t;n`l7V)e_Qv0=QIThNl!dG7BR-Qd z?L-PD7nM}BDgfg;3>uv}l@8tMX*dS$sR^yu z8~zkidVd-(n$tVoDwk8vXN11&n|L4;G@*3c#FlH_p1c3_`Sai`uOZvR?Cb*q&U=4Q z@8q%j{&2(aggv-5JXXVwG{=5X18nwq(2Ik=mqiXTf{Cd~DaLwj3@Rl)GdX{L9?%Nf z-#$xCOC8aZ^XOpo>U`UMQDN^j80^FQ1MHn|oA3HjPkd8YwZed~CG}x8HAq!5^BeMz z6XtpFLdXZ&6$e)m`~8^)ea7W{6^u#gotEG#A*Z@wTD;4&Iag5Zi_-4mkt=so@C`Dm zt-`_$h)lq!I^I>R5jZyTW>2gGmGp7uBJ0Icva*DO$k~fk zf9AT`mz)hA(A@r&&wCdP5I7T%cN`T({rF&S6lF!fr&dLQ-JIhgFO$;S6PkBdzB6wc zDUOA6L2zygmVc+Le>zFCF+j8k`YzUI94X^8qAzfhT!}Jz2Q^Tu*La>se0OIb7u+W= zF3W*CBt^Uz2&m$z4p>e#@u^3$NESM3Zv>z;y$m3AoglXY2EjT_7@v@F4Cl#{+OJEU zAO_*Ra_3w2glj1U%zs=9{(hM8eLt_H^>j%D2v^4@y*3RQDrjkFKw5Au>bWv>;&{_` z59ZnMPthznUXzh#bJ#U66YSg0!aoDOm7?G#K@A9c!MEYxs2jif-)}NNCHLn|HLLbh z%Uh+)d|cO2);67+o0|urWyf3hjU{>tYg8@5!I(JHcc!nz+6O-`-J=RJ{{{$R%sIDU zKI5Fep~vu9H!}EYVlwKUSOkG}c24JlKC!}VVlv3g8CfNDRO|G-h{J5SPG?}aW- zq8yEEL$!5uYsu`tPi4peUr}c7&dJR|M3#zz!o!=D>GKtcGXC>9=L2Gf4*qZiR!lzS z%3Mo#+-M=vP9#-2%D_8^Jbdcp z$xE>2g}Q`mLLeC977!4dWRrNsIkvFSIQeR@(qc49Khu4UsPU?QuGE+Sm;W%@1m)%y zcnQ)i-Ys1u-Vg%vpoy+eRr?GnORbP}r!p2B% z;RqvB9WJ6cvHHvV%PLo|GTDCYSapq*lRE6(DR$b1gw;{{jP8+~=uQhia9mn>aSh#e zuPqHgCaI}u4KfDkD-nKrQ$_i^!eq zMa@Z31Txnt1mLB14gr8M^0ey)XXN{18vI7)HNaxD0F^p}Uq!X|9ZBtVDta}* zBW%Uq##{YSlGxrSyLgHcn^{}6!2JBNSo6ScWaf+>Tqoa1*MpzGl;fa{BS5*d;qO0u zWF}fgmI(;*hR|VAC$O0&jA^1qAT&Oym8hYWMTqveMlt^JV?P;CRH=X63#(i2H~lIn z=;2}!Sz0t;CjiMHkmmBS9r}!K-d+n6)FMF}Tu{%k+fvL$G3hV(ECG#P>fpy0#4mAB zIAb3gK=FjSWj)h_uY;uw_W=>5o|pc~Yy8Q5_*o-+ivthSLo08$b3T)IQxDo0sJ~i! zMkb*B3_u$z4uD9#s<5R5jMT{N8Nm2-aPFY=XHLn!i$0dL8zVtQR|^VWzAr1wY{>&8 zmpz^}&sn+N(2R=XV7XoWA?FC~A7?G^96QIZJx|fH}O`DJwd&!n273M03hAQ}pddmb*7`W#y); zWmhqJpbvNvBj<0!Oo}~d(47N@Wi3QMNFrDM_x)<$@wiA6F4H+^g`9AxirE`C_8t?u zFxI5v(kZ~rU4#`yCsb5aa;nP1x86~{lR7hH{pzP_VG3_uFG=#HKk40yU9=#i8b0;)tFmx|%!TybHDj3Qa=`=X zyPGBXHu`%BA0=%HKlpA*i;1bTA?N3=c);ie12sRxagF-e-qwUtJ-NB$_kk=UEbofh zJPv~^vhdU>t--}aKt;a1b{x=>dZI#U%L-l8fNvFme4oz|Ff%c`^0dVKjC^LXev*~t z>u<%*FFYV0nHeJ zl{_9HIhuDaW2S)h(4pIC(kN8Ita@Ca5vfCU2dWvUvw*uXh_?;Tin#Y-COKVdAu#sB zjWD_F*5?R1`AE8Uc66HKrPw{kL|n5M0|^-qQY`LI*D-SQ@(L@Q6DEAA4Y646 z6Pd_59}drp3=!0n+8&aQJT&?9V|L8~N7S z>r~sl1zZp)6w05c!!=f`btW<{?f+rztplRmy1rq`Km}C9011_lk_KrM0coYXyQMn> z!A3#4m5`S15~X24m>C+87+_#%hUVRKj^4-d<9;~L`+om9oAH`!@4eRED}L*@yd>gy zy;C1oRZM@F7T8L>?W*Hy*RCXwW|Hf71zEvD=P5^0XV)%eC7tUh(5P_0&@QW?5l#3y z&*R4(;)`!4r|Ky`;l|p^H+PhadJidR%Ri5bLVrZI{gKK0Asn?onmjD)8pgGESul=BI;TdocXYLQd{b z=hn>9-ij*o;wl`1%p33|!C;NpWusp{xV8bDr7QU`kdHI>+o(GT&Aw5J^38=${WSIh z>d#_;;C=ZQTS;CTRc4)9N2?6Av$;X%edD5VipOR&u}cSkSK*(|F{pIB0!-P?`5Ke$A11cXp?j(i+Je9X=c{{XyL@h7)O2<_R{^SW_p5ml2YML48(=w$XBau~SiL&G}=O%}8;|M?cM%$aFwI~l* z7iW~s<-*rIVqPWo+OI$o!bb!PRr!#2XGa9}o@ASUyfv{r=T%YzaGKi#V+R{N6?#hV z^<$TI06?SDdjIFnfDQdry9AKtuw#-OdU>DEkuh%Q`)v%}tQM-#&$xlJpzeF|_psG} zHu1M$1sJoq4lHTHr}<-^!o2KLE->PK`xA%kz3YrzH%C!OWTkL@_uV!Qu-9 z@KwtGDt$*{s<7wJ9eX3T1jh~-ie3UKaFgF(ae~A`1h+%H95hZ8x?D2xsc`d$sg3O+ z7R$=N>?~F@0~9$Yy7@IV8}K~(syBf41Y=Pu4kii@q0$}s=;Ul`n>$I>_I5sp^4oWdvm+AT&_8LDxT(Pj{c3Bt2A>Ig~$NU|3v-Dzc@T!fg}yzkEJ~d zjDkhSM#fwdR}SXYPW5^U4Zl?jYCW9GrnA~)dKWZ96c$G_-^yNMYXxZe4szCG$rC?3 zLP6`OckeF9-o5)6q*4<1g=WTqilAj;ap8iw*m_iJ%yqd_G zSnsv!U-B>dvu>aip{mjMAOz7^!&#VMEx^h3wbnIPJ(Bo~GzdWd$b3M0q$|NXS}9j6>!L@8s~NMIPYINWTWJeTkmWEyVhH%Z3^JDv2k7AFeM=4E{WL!NQGE| ziUISVFuWL4{V1_m8I(}_k_vz)$MM;nA4$^yhf`Ekry?51Svw&BQ+vQL`#4)YEw%jK zldsmDS6TOZlyC-XvYnhDX0`+L0MpD<26~Cx*;1oGyTr%!m~`c>F@aQ{)g~hL64{Jj zTmYC;WtvrshLm33ruZvn|B{fXo)68h--f`1j1r*@yT(#0wAM&9(hfx#8QwdHbD1|( zGi)G$6&qj{e40b!wt$JxV4dim^H8_?XSFBh^x0n<`|3FDY;d8smFcQ+)AKzk(fLW1 zfIUEBT`xkNb#zRzG7iLjM3c(%@w&^hv!~ogAMrbX_gBfbYf97!xa_Y05UbAp?vo$; zE|w*uEB8mxQ*%@8W^w=}59%*g8g`JXV!LWDthsA?MgWNAMG< zz1CwjG&Ec|DOP8HcfT^S6mJH#{vUj{H=DuUa^3T(6|yn5`LAS@b9}{^M3r7V2YbeK z9Li|KUDYF%95gD!;4Z?^5;$5X6jmKWTS^s6pLeR+yI#F=g$|T-z8CMRG4hmFQ7OKM zei|8<#z(u@a*j+cmj^vF`VvTUUQ(rCj?-+Z|%>6S`Q*Njl%m)@|VYcw9cYn z+M@ekoReXJ7`V9?I&XK|ypFv=2Z0A5T4|uTjCAeQ^VeYj2mVayV5rtKn^|rYEFXxS zy-64U$!#mN{-xtAV-@3Kyz1jh&{7nG(@1JO)n87J$CIZ`sUXIR=`U%k= zs)CYA*l}kRd?D`tEBKW6IsaM^SD(#_^V+uS`A( z4zYVMlC*9L;MQ3o)YbV#1*S)jch2^~F1fm_0c{;vhF~t}C z^D;Bv0t<$IJ_q*%2_;jzdhXc~O;1Rkjj;eNodlKM>Qln|ND|;T9?Y(b-Us(n%njpx zpT!~vKGaDKT%_WGE{nN>TVd@6ZOjl?=~m%Sy|URiJLxNfBS1hB!FqK4{vE&- zFbD}jyueulHnRN3HBdoxo|GcHazTL?cP3rC3_5f#B-PDk2oImhjiaz?}Vce8|39r$6ck!dZxk;1DXRskKsi- z+!+v8+j7_wz2}#~a`6R=Ua3lYrd_*QHgpQAg`-6x;3nxt2C0NE@Qdh4zNSjk8++59 z#q8`frVMU6Oca(YL(jNkZa)Y4<3ASbrB8X<43YC*2WOeOvt3Ngp8G5eim~-(ub=bZ zU}6YAdLd3aD}i7D1FqmsIU5l16$qwER!)6*`f*y9@CC99ZMDK)Q}eT4BWS>s&FsYW z&Gh{#IYbiF5K4*3R{)Ud2NB2{P@F7CZM(L*Tj5=#2LRNxptduonBO+|!73z?%TPnu z4+QL4lmZ4@l{2C}K)I0;We!PnUf*^gi1E|c3mg6*CZESjRw_c;bz{}xE2eUfv~RZs$-x&w5ob9s;(_UHtNhBr<66o$ZuL^7vt2) z@2qhwqmiyss<;mhl?Am?fEl>kc^gpde+uvaK-}$GrR%# z*rA{p{`P|s9TQVqUpD^mP?=r$=WMv#32T6V{f01?*{+sz8Vd*Zz=SUdVqVD?uOJbv z)B;zKH9(4CfGEWCBg{lZ=t@x}q)Hn{YjJDOZ8X9g`c>2IG&S&gJ7NUY!;aG;wWqC^ zadJ;kipH9E&4XAino7w}Qd08D>Io{3mh~9lap@B?kFDX8kh+5p$O`ki($a_Wc@)*Z z%xnLPzY1rwCD(`U*s#@I)!^CsL=NyaU(6W)McjiISPEs*eI@wdw8{ex&agOtR^y7R zx&Lj`&WaNJoPzae#*WG{pP*TQ^he>jFK53#+0WN?C3 zfcR3+UyB0_ms4YvTcoS;B4w9qS92wumVQBE9^V&p2_y!!+vnEZRO|HS7UN1YMBuDd zB2`tS{;u%vJV%;Q{{D4;*-->wZD87chANcAP)aw7t4S`mT*rJtmBt)#0t?`5cKlGx zO@rT!Ne~8!5Q2yfPsEc<2e!H%BnYTVH|=_G+I(^7UDq00qs7T>p1su#aIcmZ(qTze z`T)ckF6f48fwo6=Hji-NfTI7L8N2@Ns`HoN+S6=${Wpu}rGX#18hTZ2+?ywqI2`$) zg7~3ms(`(qpqJo?FyM3t$+h&}3SYC&snQt8a(w72=}%31tU_b6=UHGga6NL)DhXA8 zj`YUsG}$!6b*rR2ijOY@%B-sl?%CcI4B(9_o?KjBk#+|hHMN6nl2$q?* za*%1jC_|)PUHMS?BmD(24xgLP?zkkdRgCRQF6^?fu|5z@*T-0IKc0r0QN4HfqO^WA5P z_uuea&4UX(mJ+%9K(xquhnSI(F_KEyv*mr7tj;PTOKb(iLFCzouGo|gEjT_nR`~+M zosjLOa6{N@J*=lqCO<0m^DqjIVSecH+s^LmMVPi#KRG>Y&*zzo?Ahm&wJ(of!_gg@ zudw7~wtZc_H|7_?9Ca%Oagjxj7Jx{n*FliGeH{NpC-M<#Q~QljVJkg8bO`a;zq|$+ z5U8i}o0DGk1OcDklB%pMC1(aCzZL48A>(vn#*PCCz9J}30Y#2k73c4{IgSFn-Y`X` zZ^;g+q9}B}Je?ZW*Vh8jv}nzfIvxs1{EcKfu(1@7A_h@C9j9C2^oo&BWH0e0NZy)E z;v2g(LZo#fGovg1mXm0SGqv}|+7+_$(OYG9qbhgy0ty{kuS;JM>F{~FI}O#B@$iV* zlB=@z`?cFAiEv+RS84V)$KBg|@{mQhm@Xudk5QUjE$2e>`zN}^G7bs=G<6&DD(lE- zHoz|d&{P(~P+KiIIk^gYQl=uM@-C>L>V2r`cMf3QwLF;E?N!xOV#REL#|jYA(e*B% z;lNj;Wd)WdK)2D(G?{}BubG%g1C$0$EbKhq`VqulNiBl(nBu)2)-W4_4hIv{tOdnOL-Inb z?S_D9WlZE7yGs_g(025F2vwrUU~bbnf0SBtr`geS^an6x$|b3L0VfIa{84Q=g7?R6 zvPQU*olVLRpaW6f2DW4NyWhoImG9j2!DO@4L`NMFwsjX;-v7Lpx_R(IoW6L{s!z_5 z6}*dh(Kk#M(nM>@p@-J+t4p2#*)>kild(-_IfKuwNtpB{BoxYczlffHEjV zvh^fEnAkr-4PeE;H@Owf27I_>%V(O}rLFrlUY)U)SFT_@pQJp9(XaW4eZ;)>I;ol8 zuaWm?xoaF{UvB2q%H?ev7mO?S>TVBL; z2eE+{Tr$Uob!s%wkpbu+95p>?AFC+W=?szQklU%f=OKS{ABYV z`l7#PxfBVWYcI`7a`Za-^I`Dhe^zh)-<@v1YlS}>#xhijD>+gpfb^dSr$FRcG?wHA z*kOb$&JVX=EViVGx2V>-D~WQ441ezB;nAJ0OhpW8LXsi+P`2 zJ`51_$Jlpq@Pz-5PeF4TEW?S3%!gc9&;8^7{`K)}C76Ub+GgMi)>pp+V&HB)LzDB^ zf{uIGM>fo1c%HWR_l>~8O98M?0TsnapQAnP1^|>j#HLBYJogIE>7yTT(wznbE%0fB zv0q_C6S$ggB0d{OS9=fu6xmF@ASn~J0^(tqF~ulPe8qk+))Dqokw-AlfwF^BIM}OP zjFBf7YShtJ&B;wQpu+YwnnYNud{O}H#2q)23%@Y>hyD29V?o7W5^qHGctfxb7iY|y zA&6pdv7Y8}rq{4<8(`B&D7Y zJlAKUgXzcz;NT@uXR#5OeX)zMcjE=HVaLZ7_HIs^jh!L3hu+x!k4 z)`Jh51Pf9!cN2FI*QW%qA(QUmN{XoDs(){39x1v~k_V0`Ho(Rcl0C$+#% zW)Q|;XW|xk>_e!59=uq;!b?xA%L8k-fBjZB#$q2tw4<=+ zpa7nW;=V@uhmc`D9*BCm?W;l~PzU?CsZwHE62}UfYw_pbOTHrSRohkx%aTdRdW51h ze<_GMa9rH-MGiYlCrL1tCqVDPU3Pi?^nJJ>({Y2WeIcJ z`Ig_5Bg9(jB?d6OUrgSCP5yhRUI1}e{6kX2l7L9>OpYIIK>F9;1lvYs>R^Yhmjtn3 z<;1i(rjO=wdWpI6C%k+-1hD35&;s5eM6Lzrux0&YtPxQ3dS2$Zatdn^E@P@7nkTYW zu+Q#4=K9x1vF{kw9xgGS#(Hx7M*y~>A~UnYwoMO_(33RZfvi|ir_5l}pbBMycc6ww zAS#a33)}+?QC$-9a}JhX;MM`%Uf`2$xQ9KAwOGG|;w5+oy+3tZ1n4%pwej~FmjCjo zfQLXeh1fBOeh^j|uaXTQ_%Lt$Dyhu#mz`9mBskGyjJN)k^`H6uH}j zZFsn=fOinhVut*SsQx}Us0T&iPc*U52w&j)4%$aPes-t~VH--IAw+leajbR3!Sexv ziV6=2|6};Dj~_tZ%JW@A1tr!({!JQf`!$*kYZ&{d|9(4mQ2Hhoy0|_yi?vh%*Dxy2 zc@6(x%;Eo!6BJx54)E78*q7r60JQN`iLUrJMSPfZz$fTE1=fU@K7y6>RZ&kw{8oka zOOLSTi%YPp46GNwywgS4w(u?>IVm1vIY#;~TuclRn+MS!&)o(ZKf*x5fF-BD>%u?Z zmjssk+RZ>GK`gze>BbNT4?gG6#~MCt8V25&T^mET_hL(=I7a17?jAo(oBtTQED0pC z@oDP=ENQEE2eS~SQjajlUY&p5{hxo~sRMKEdmbeh_SGgS0Vem6-HG(bS>WJO1DV`8 zDZz*J)$b31%I|&56N0=t?0Cl-+spumZ{~` zi2oYU_)0}8g@0iUzbpi|79N#>4GRgz zsC-M%nZvaCk1_U_Kq5oVg{SrF40Ka1Up{_^b(SesGMIe&<6}LLDul^+pFzj1&LGIt2 z_27=5=J`X^XMn~#Cke&>(QxCBZ~gW0vMKnj4`;d-uoqH{6kI|U%uU`$DtEv#h+BGk z=d&qd+fZjPD*uM?%3<34$Cv>oyg_nk% zE@Pq|A3k@;V@(bhOZk4ii#Iq27H(V^!TM@|6kz9H`%t+e#D{hK{vnNjef*9wJNKM) zqsg$o`W@pc@0l@1pTrtI>2K{>a`2eoN{~{1Em+ z2GD~`s9Wvj*3rs60g7bTHudxqf3u+i94-bdvzWYB&j;#g{2sW>!C3-kRF@83M>}EGh#FvTBb^0 zIG)8mu)>27;g=Vp^A-{cz6~c{D_mvxzbqbB&{@HY6P{&0mKY^ZEYPp znhf%8Ryulm3Mzao)=Cq9nfI$fyL z@&nw#ZeU%B@%CG`GJCkY-r%Ay0I!*_>d-K&<<9q%Rb)zcB?+<#?1QqJw2~6l%8pnI z<(+cru2mzSk16C$ZdSq*Kpt+uK2RihiY{&4%YjNXTCFa&=im z3MQu@RwWRVfLi$5%J+bscsqg+0$ClM>W&0a#mHO@JMoDT0r&ZtUD>>d`{T2{N~)T4 zl=Sx(Y{>N#65;_UE9VpL#`o_Ah*_#33G=R47ePj%b>ToMasx;_k1VgP$FTKTJ@MY{ zeLx;`8Geh9V^6$e^>!S&WwNi*XIg1Mj+EJ(AuD4gQ@0rIbf)y@IceZcD0fQK@G<1c z`K!a6StPK5D|U~&Wz$OOyi^vE`FsG1ozL7@jdjQzb{+*tfg`*)DW^*9>i+gBo2}`{ zemZw6fq0qSm|0-T-a2L8YBMo)fuWu{O?m#K2?qHvTSdF5$#)m>M@}gwL^g_2I)=Qc zapgQwva%vcn%>nC-;>)8*o>wC-H{_)#e&M>1;G6sdvQ@36$>4?1?_$`+GFfkG#{K> zI=ql-%y9E&%kd}bIa+ke8S*aiv$dMO$jC`V!r8sP5|)S>n9xveCpS|GEXM> z?FK!9Al*iaAEUz+g-x^WxaG6>j1Uxr#%`T48Cm1M6j#6b`Rj`lpi_3f`SjJF^1oRo zCTCGVd++MoH_5dJR9xQ_dwR&|+^BORno2!x_%PQ|CE*n7vyp^j8y1HxHx=l1*X>(4 zsqeR(W+B!G<=*7~N+4})WRyA(q|TE(YJDwdG4 zO6yJL`JC0~FG7n}Ek4@60cl=KF0yc4Ru-X-pyVWOvT!b)ka@&xc*bN)O5@1gVsd8~ z(-%t01Pl!ZYfd&1bJ^Lo^|14#w?uC7G<|`?ESq4{tT-6FF6jjkCa5YD0s-v&XkZWs;T7A|k&3i9_-^r|u(PC!PX8g)(Mz@Nz-J86;JUhe=0BAZ{ zKAD`$V)A+=;w9H{Pnr|`ZLSSXj*59c;Fg*;Ww!-9 zqJx6&Sz3IIik$b1Q~dLEhDQ)UpH;x2~%-A6nnbMy0O;aU~1kxpHZwlKQ( z$e1m(zQ>RYWzx^90h~h0Mj{bUzsuBl`kzP$PkX;CQ5V~5p%9F-W?|*TcIZ`&wVeU` zz??-haGyf3CDze+)$NS>WN<5MZZ5ON$v;?+0$>Rx;oS*E$Gn+%!JsN{sElTnZ^BOH z+x~LTt>@l5>vrgFEym4)R}`kx^O`8*%9Lvh)M)Cn3yW6Lt*t9_6!}%I63l#y1ADK$ z_Q}hkGO!|{rj;|&)?(Wwe15Ek^cO_B)9nzi1|BLmRE`itL!DI>N;}$P?L)pjhk4Z< zG<3;BtjoQob7J0;B?7*u;j&(Tw?sneC_Ofp6E!?Ht8KnI_I%1O9URnRWLFK#*R8SI zE*>x@Us>R8&{Ln9AI0k?mxLi;6;`JKX+^~QixWGEa`K^Ylx>oLp!r)O_U~PKsHh-u>rgbu5dd8kV73}; znx`*SLXeWyve}QSnJ=;FygNTJbIRWOyXV68dZEEMUX|p?Eu&uJi9g>FptjH((Iu%u+9QNDRUGr4q=I~DL$trXe zwcN?dFKUc1f9I|_XsLjUvGE6Cbzfw9)#HNW^*k0nTi@t1d9NASVm8;L*14cRsF-A^ z-u{8Zo6LA&abEioBc=yZ6?TjJDvc8!9gHAFJ_cR=cQIh-W-c9nur#Xh7i>h`WP;&d~K;%QcHTx!aI0uf@iHu|F>3R<9dK4EI zYums1+T-|;U)NPqImo+@N#b2eK5Nf>Zh3XREb&2vcePj9g2N|Qhao4rC!SW!;SIkffo&x`UUNkHqvDq6?SjRy#l{by@zExJ@u z2fI;b`OU&Ro;rgN)ZRv>(!el!?A6Yd>&XhF{=^@rj0z7^K&-L)asbd0Zj$wOIKX9O z5;8VVX@INCyNnnpXZGt4ijI2eb6?Go&%UwfZe?DloSl~iN=QNuY_?K^2%fP=WR-kg z-|_Q;`z)lh#+jxNlB1!%p!HH$yzk{x#GKHlerWqTzLeoavbSCo6VtEalpL<>+eJn^ zQ_F|VLA1;4oz(qcNW0N;LuPq(b=3i!Vl`1%eW}`u4cH2xH+c`}n$xBwDQ@c-;~}}s zA&w`K7e}n$fLo`vdTVt-XYq2?J}54ct1qj6>DAbw%0#hrW=NA0F=u)!Nz`#OPV zQF%O5SxH}=jUzp*Jh+m_f$GBKDV%i|7l@O-cd6_g#hmT5USOY3Zd`EZs=S1yZKaz1 z!7>R7_XN2=>~!7s?rBD5*6>@(P*1?U!mE-OVE?O0*-Pqx;+ar7p;XWBB$KR*LQ4;+ z^f+1yv;>q=t7oSgMtPF+09WUO_OB*Kd)$xMfY0F1Uzk-ZL| z0dOF~tR;-p8Hm`Z1--wNSTjpnzkx@=2EScLJnzEL=9JDAcWGubK~~FadkA9c4qQW3 zhMD-fbd9pl#J#aMQi3owCeR0E`|z|3jgH>3>`j+Zu*(A!;qt{=kCvaD2HX-Xz3K8r zhE@p~Y`8P+=|(F(;!=}(;(=ejHn)BwYd2jE3sEg{Q9yV0gF>dkv*<7V&(2@G2xDjf zK+`FuM+FvXGnVOAWoj3a%%(reC*5IIKvr0gK7cVn8t8RIbmV;i%)GQQ6Oymz*(1CL zl%vFLv8{FyEn_P2WWDcGg|C$7>5MA-FTd1-;AMSsBgA(tC{*TTEFg-jahCfRxh63X zPhOT?$~Zv#Nrw>jS`B^j2q&twf=)O|NR&R#N5-oyzIqXQz@J=Y)OR--(RHyE5FyR) zu7#+rk9@KW&po~%GSe6wtSP#=QS659wkh~TLBF}Mo>l|bx+Cr^ zfS?D=Kd(Dia>dD4b{7x!7|;ue9{c=^>?tFT%CE}vBj56iyNaw9!Ov~Q&Bc`ugs*sx*#-StevfS0IKN~Q8f8#TBDUd+M&K(_(|TI zZ&hOI^RiiWYvo|}!`}xN)|GW%bS1u>kXjvvCaF)EwGVrYW=kQtE+z`meZ9msc-Hw% z=F_XzOsovF^wK6KLBn-^V=9idtXiyz!`@_^y_ zkrI7ITh2hy~f zq54KLXEh1f^UuA#y=ldhm0ptM*I&JO5$>s6Q`Q-zk-+LSEjO^-7cQRFkGz_nZ<{;6 z^R>=({p6jhyn=x7a*bAYLs-s})1E}f{x;Mio|QZa3Tm0Q)%GHyyAa|z>P>p`8S^mxLG%H1P0tZ)baPE4dPf6i7r5>wp;7^U9kkyjR+-$m~ za?TweKi)(z<`3;1OD-WVI-VRFXRg|8q5PJglT*ejD|^9xTMx9tk$FnE&l`6NO77sw zlRH{%&~u%Xxa(2K_~J+vgXsKLmq^v?D4WNffYFDyKNoK4f4hy~c}ZdU@hYC~1uMq% zLg$USs}zr6bKUrs8K)H5-X;-OuxXl3r;gj0ubvSTgm?_O`Y;r?xoQon5S}Jkg}pNV zxwrs{#*y+h?CMtFViBw^(n4aozyiP8t#dE;TmST46spN+yU{}tWHT~bHICd596WK5 zUJzDkxTfRRPT=h3vtk)~j-HOTrIIK#Mr_TQ!UoFJpw)wJ4m^=oTiP`;1{eFZ^Z1&L z#mViNlt#z(l?c0QI*@C&GrV+~upDiM-gHHzYvtr1&(?JI2+E-#_!0F`agW-D%ad@P zv)+S2mWtDt?yIY#Q(v&De$dv^N}cJ@BsCE+YpfxBMp($1fu4ip5n5Snd-r%$7~bs` zkhGTx3caUJd2QJ$XKsJ5-BZ%k8^5YxMBmf`LI|d#yB_B$NsSNI zH|OTaoyNQ?3`bej>qTq_RWwbj*RJ^3Mm>LFy684m)!3&cznuoxE4b!{xQq`7pi9VC z)DStxPR}!3v>P^!HK|q}RWUKH#j|TyJM{IX12Ap5&sAAgCDKTpU$Az6p5qaclkM zs1FP3V2xci2l2ONhdcJ8<%~&w+nQxpES`*;C;BNE$=!z*S<=n0$+^z2JLLT}u2av6I!E&=SYM_8_+a=Ica=<9PAg@2{K@stf@ zIx^0m+g)084cH>sgKXbHm}FXb7aY9Cg#`lMSJunDN0Z<-RbYHj9Rs4~{nZ+DRp<99 zxPJJ%zIS%b@q%f9{3{z$=RiFO0;Afv{XPco_)t9D_h;9YdcHr>w2X0%?#{}#e1m=x zr5||@^mQ!7uzj3UmLDXub4hfvwcgw+kf*qZ-|HsVt)<-+t3x{3>EbfGoC*CEW0M-5W}4%jRv=BbQ8Q5itPl@NM7DT-B}e)ZC=nTvN9XJ+0gr*oFP z9y7tK98^+Lw!O)B!zmc$X$!PzA^tSvJ_z!mkR?BsClqboN{7=|g!1$C>FBP7mP*sp z)|!oIwZ`-J9{+|h@Bj;#oBsRbvT_kKEgx^9IS`VduxQsERAk2~+G<&P#bn;hOwO{b=;pf+UK(k)rvf*5sDN}9H z`hzMWRu}FW>+UIZX8U5>IW7|QI9{JhA@q-Yoho4w!A?O3)G$B4_Yy-7(s*LRZ?LdimPxjblbeDE2U>u`UXmOYqv-j z#a@0KR<`J^#A#--=KAam;L9SvHx|A-!7zenJoSqUAT_TPMx_O~n*{iNc_{>mV%uNp zWbQw3`Y!K%mJ2oWJgm^mp5%wjK}`@&@j)ID*S`p?Vp_i&SI?1~xvF+UGuHsKp9rpDd3%gx8r9zyL+vz=+XG0e|`)AK7eZE#2~p3eB!0*02eWW?MQ0fijt9wghr-$BKNn2Ke-Ov*(HS^V(Wb z>r?^?va&BgWRK4gIW6y%#81ysV+57KqpCI>@noTFg45J?d5~ z@JDQ1CZnH`%9Aa9HKQU4Y#8&c(U!^6EiyD)7}Cel+POMhrhkj<60rFP`?!0udVpcG zt`Z8fU@}($G0INPS$CkZw)E(=3oF0UP?+#VuB&fBT`<)- zwc|&hQfDuxf@A8=XCk=i!SkQQxfb*%;j8DaFdl3y`mN3X z7-i#vCar?{-nlj=aB09}a2EF$(UnOLS)*9A&EO5fpQ2vjd!Yw#3e~g~;sjLHrgOs9 z&MZcR`VflgS2?PJFiZp}G#sn|NtVCDXzdAp{F7(okzPf^D*iB;zQK6a+#4U>n=EX* zyl)t9$>Man&nPdXlbAnU1x;S|uPTku8eI(PJ%|?${U{b9s>Oq}!v4xn9_Fbj-lhIc2JVcGdezix&$_QDk6FiTD?0wXIaIC|Z?Z#?tnZ?v2 z)%#a#R7+quD^Ul7rg#%mrAf7 zG6vR&?~Gu@*x}T>3%c4PYN6KMZU`>LxKkbtU3RWjAg@>pf-#v61P}E6kn*7M^&(82 znU9Z~`#vaEyC)&#BFOh9VX(?=DzL5&QF|}@q&*0(dW{VQ9|w&lXN)QC!B$USWPR6M zW>=t_5Ru}dmtVVV{frY(N0d-+cr$#xbgNPkcnO($%nza>b)qJkS3tjQnY;9IXSMGP zsL&Cw7|l>EA&AVUj1$6-XCS(g7*bMF5_K2$0g z#`u8_J|yCe>2+Nog7BIs!K+psB)Lo5HYAKkjIsog?x1%q{lXbJw^-jQ`Lmk2C6=2W zy^)>oSJz62=y7sWHbBrUEwi9!)C>fC3&)pV)sBYw{&Xq6pTO&VKNjBo##1!9bw)8I z_lANUZw>!8A60-LIFoQyg8vP^1XIIsrH_lpC7VAaTDery;^G#;4J=*A=@kKzhL92SWQru8-DiRhxo|5n zuf5>rYPC!eZTF^N_Y$joUZURG%{JLE0gu9we9*E}QDnD;@^xZZBz;_&?ZUb5ut&ZE zn;)u@j(hv9ugJQdflznKcRHqj>Q)nXRrTxAEs`|rN}L*iBKJYhx74LcMrGD5!_DZ*YOv&CsrFlsAZ$(p_&=9MpWFX zu|W`4FdhH#)pbwD7`Ymu!~C||xOoz_Ac*n>xs$=}LgA&=P~~IC9H-aVoaCkD-`XhC zX~EfU&KP<~5Q$nJb0mtjw$RcBeyAXeEy?cgM3sGQMElpM;SgRs-{IiYkrRM3f(P)W zddj<$SoG^8!FkH=lSb-;wARdE_fMmUhMnMXnkuK!fgn4*;N2n?+szNoGW{oCiFh`G ztrNCJ9SxA8=>~O*GyAV3tDEtaJ<#EPzB9z*b3`TEsL5hR`Y-V`W!83ab4?LHPF+NL z5M_z1&-bQlEj4DZix8aBEyNh~b(YT z=1$IAdG3Q$Rd}m%dO5Mn4hsl;yr%9fg5*K6p-E-2Owd{tKUhGY$l?q~g?E95mK>d# zt*5PuO6r%Gw!v+0^x_yFM8p2>RA=ekqU_Mz{c7(DT6(%cWc40qQ4LLqt|KUU#$8C~ zVCkxn#`Fpx(gnQp(8X${Lp|Ko!rFWB08 z-oM-U+2*DQ9o<)v@ZgsvcpmB*`#TFpiF^ubQy{}Q2@ul zxmZ(iq*2AHLF513)}~1d@`x4%%>hkcN+bxTe z>A%9oDWo{Cm!3|Kxo6^;ZZqoY>V_FSZsAXFD-c-~i&ay*C8TS?M1N`HZTdEeve2$>j$H`8RYsDz#p25didXi>`fhl{ zv4Dz5rmIIA!DlZsW2|7hv38#l@?}fX8QX)3w)~cHXGyw3*4$s`B6G$ zszIQGEFF{}P2J2~){_m_2+_Z1Yb`MlZ&6T?=2d-qN!n8~7|!Fc0bi&}H(CWzYuit{h!U8JwOUfG zR+>j5a9N+Ll>tw59;VvdZ8ZQoXq&_k8id3!b?=qDK(Mv6KE}(;&gFt8R)uD$rk8wP z12)MCWsD` zBu#yKl{#*oOOQ(z6(=7t@qiQsWhw^|3mIo;=Q^|{PejnrkRYwl^=c`eF<&-R1`u-Q zEf^Hqx;Je$q#Zc$_TfWLR-Z~*I=XePyXf9BYpc}v@9!2XIhGS%MxM@WSlDM`cB3|R zM;8|sACIC~94Wfv>{I*kqlGm0HJx>mQ{OoKZVYjM^j_5aprWdZ;biIIA>t#eBPAs@ zZR_I(Ee5W36L8n(HSs{9pkKUs9#NrjYD@ulF_qc8<*xu=y~C+{A$k$-TI@rdTKp-q zxA%!Ht>VZ&t-_yy?A^?i@zIom_2r}>5{Qa?cj7m&v%&naup1lFa{W&VlAcm`{0#YS z1jd~4Jw=dw!oE4;*BcxjfdA{SjhK|wru>z2|HQZgr1WT5w~Yx&GEt3p4pd*|iFBR# zmRXyWmUcs;El!U(^~4;9I$pQ%{oDWD*89&dvIk?#@3TqTzv1ZF^^SdG*jK&#IJOx% zK{Qh#Q29P}esl=GvS~~JzzfRA3`LH7^ZE|}y}I3_=a=|fZ<>H}=c3Q;=%1%uxWVa~ zOf*PGI_cS1cVe)(3S?EB`G{SAk31X}jR0d!pk#3EG8<0WZ&-0qdIe+|;qIMtM^st5 z(eKQ*mS6cBoMO=&Jf}arjl(`-I2l}}m#}c4jR4wNDM*JqgQCI|Vi5<0JaHMKo_qaz zY}i|$92nyQ7vR4w*?(K<%@iC!zNd2`{Wr4!#PQdt{fRk4`^jcPw^ny|{4Rpx<|xoC z$&F;=U#!4!@M@k0dTUq(3e-R!-K4JLjEsQb+yB#Zwn@Zx*jsMT-NmWgF*@&$LN!qR z3*Vt0a~^cO82w!^z6Sz32X&tyxylPvr~JP>r~YOCK^ToCIt8)0`0c0EtOcr#=3Rkp zk@{1qDI7og=J*Sj7CIcZTL0TSzO4QkmsxEYyNQG92B0@n^eC}^%!Y^rUU$uq!!I_b z|6yMY)-d%jwft_sS?vbHr&A^TSjMkGeT2;4@WY|aTVeuGbWyQ$>V1#i_JB1p;b|G1 z$`gbq{)Y$u(txH17?JtgJR_`P*Q2%3B$ZNoL6Xka9SK zV`@QLzq@w-QFkmk4J`%xBjvT{v5iCKzVtl+M2@62+{?dw`9d(G%x?Sh3cn1&>q$|k zqgxqT-hC<}s=dBP`K^z)9kIXP51Jv0=ACl-?acf2%74s?N*7$(p{PO8LPb4QO-4-8 zrjvq?j!8h~B8$$=b~P62i=lulzO{l&0vyw9pm|;76th|j;7STMwSm*{wcFjl<6Api z=^^{$$B+5pOSkkU1%ziH#v!5idj_t1?alKSnf6B3=PBK`c#5mn|6mN{FcKr2BoMR$ z^ja5hY0=6?vQmD(8Hn^nY)~=^I7!~puVi_&{HV}mRw*Wm$Il_~(NA#s4VpJsc9L$e zTYV?e1h--UpJnJ3aOU9{9$n-nW*~;+gm>D#G6K8*4Pd z?hFnM$$wwZxhm|fAs{F~*MHf}q~i@k(kSDdh7sWtp1pxPB=_IO)Rhi6AzC&P6p5Xm zO6B>ft4HZnYOr9s7t$-g^#U+%4{zi};OCc(E%=D;(vWsk<*`~f;Az%9YD|7fJU_%1 z_2R|XVFlnfn-0CE0}+*}&s(RbeQsaR&1K~j7S;v8E33f0z{+!%{x&|?JMemq zMW(=h5mx}*eM)jd8+Y%ifCtF-)CCD0F1NqwFAaMhICw&r9TU08 z+(_m}_>wh);>4C-XC%I}q^G%hb78yWJiq7U(_tPmYaiPbL&HM%RwK=F_ku4?U$;Fq z>-O;YaYhDu4Ds`&h$+Khk!mq#$w8Nn&UXy1HjC(r9VEB~L{kzG+1Xk0Jj-|$MojFA zFJF~JB>2@Io>J5C&d(dLQD1`d6yJ&zBsq?jeXvge3IUVU0xOQzUQDoN z!mXZ*b~fuGKuClT)>x%!n)f<<3Z^mdOq>#$FB<|Goi}gJD%afpBCPLI+to#^4ej^o zwy}6Jv8Aa=uTd#?KKy(_#_<};7F-LT84y0~pZjc@W_n)KGK}yk8>iu>W#EQ`?tPp= zy73`%YirOt*-Z}w8jB(-N(6Q`5(J0I+QA|S%mp{|wf;zx^{#4w)L>B3z`&k&eFd`P z48>v9Y5{hMHUawGW_``>Qo-MRA0XUBAe(LSWgmTcc)-t2b8ty&_8t2{Og9av z81sDNpz|wp{`+=gonI$u*slZYMJfo2zLRjR_2bMwM)wa(1n}X^i+bhR1xo(5}(5Rjd5d5O>KpTiXTQ3X9M202D8yY#c63 zeUXYDWXz(DoxXJcfrCSt_3?YLg^pqeQyU_v@<2`}B)^6RHANs}=-4 zj!$BMe<2{g;4sjF*O zdTWXiP=X+FRid=0;xwXt;B(P8_r*kE3_ezw-!0R_&^Te_c*(+%s&e_t9#t-YXw#1JQbh4oVF40DlN=;Y9CUBcDU0^G=#M-o}Lk>;T zwOEQYc<|s&^-`NGCS3(j5fQZ?DQ5&|s2nM32+msI36j*7YOm(dsexK$d5I-kMbw*? zmKG|w-IS?2f`FYN`O5l_ z3+Awol7P}+?SAX_?L43(vVepTz+4yGM~2+yDbrKa2E@|JhIqh@Cn1s6H(J9?f*Okg z%JMAc_CqBG#mJy91U;v|b-C80eyNEIi)DKF@FB{_o`Rg#&f2;pqxh7Ij!t};-9|qK zFSw3DholY z29NY_gFcJuJ@J*fWg|V-E_=;xaj4JXBHY zHfr(aP($pT+{ExfS5Yg`0Y|&mhN5iT?a#3V4z)C4e##F_Jv_>104}iv_YCZVay7*z z0|4-eU$~yzzs6PSFy#=wkOa!E+GUj93geMCtHX1A{39|L*E_1a`wvMc%0_)ajCADP zJ0TPMX|W1(bMw+?lAyS|!3XPe%9UbNlZU7swiZhGhbZ{t*P6V|^GfYjUnX!J(i(>k z@h;N!MVEPz<%O>$L&U^EmyI?%Ol(KGD)0Q$(~^?GftM3i{VD|bJl|+Vc8H&{w$M<1 z4<{reF2i6In79g;$622mT@1Tz^pwkS7Np`Js-dFr?C3E;9jEEhfddxcfMny_g2=08 z8mKcdB!p0Hbta>?=r7RenFOsFf_g`8|`eBg8;Dgl6s_oJL!qalk$nL4Vh z->5Tk-kidt=DiW8x%393bM-CjJ_5;vji{zck>K@QNmstj$Q~nSv*uJ`3u^6K=Sd4Iw3b>p&m6-_PX<=&=sqfM)qJt6PfGd1 z%N&|$`r-E76MNNNj3y5F7=j?H=f+qx-)n<@lhDh|-G+!cu~=DX62W8ejK^f2ex=>J zR#|`~iWP_F=u6_B=a@7gaZ%IMUT9!?om?o$uhd@Vp5b7aIH>Qqw4Qb9`TPTB{#ReW zNo-yK>Ao=0Xc8~!GCjU-Yn9Blz}1oV+;gM#VvLEGgaN@7y&4b0EXjA^5+$Kj785Wo zE@qpdWZL{b&+tE8@)f_DSF_Cfc)Tk~85XRQSoqR6Qru_k@aVy5U58i2sd$8X_;O*8 zhaz>GGV525|00!PcrzC{AD+S-EBXMu)}%GX zA~eH)6a3WJ+VWZB1#4<}{F`ca)ydL~w~gG>n4myiiSyNWhR@*(@a#Uerz4**ZLCDZ zlAJkr?q=K-8QI(W)U@`EmR2Mdz;*q*pA>=G<^k=_+yIgw!3#T#E8Vo?@T!p`)p3E1 z61?%!;vJe|yZ3^GgAUEz;QAX^9S*!?Sf4E@_!;|K?34nAfhS!x{)A1oO>ukC!hwOr zmOyQIx3hs+EoQB`FR*-jo!Ac9-xR#{t2{4+#o=yy*(6$MSrZt>4eTT*T+a((rO+j8 zedZXG=^0mKFWONSon?}gF_~raG@~cSmv}_6NS0lefv7`X!Q>sVRg==u$$4qX7eH!R~5|g*xz7^`9!Hd!;fc(RK`}Q3@CQ%<~ zA+e%o>j|uchk>a@BRSe9hDulMWvi+|5$d!P3%}I`jj6TR^y>(6Wf}yFF^IFeNyK=) z%xVt2?QFe4JvE>o`2=JoSxI2)_|~(gUv@nydVvd`(E`BJV;;#*txyA07SS(r{FbkY zQr)W3F*bgoa_ZgK&h|(IC6{?d$m^A)FXoq%NM)Q z3Mrf>-j_NiqB2JQ?UsK-(}XsjI6;%V`Yj z#TzcH#Y4|j;CsAriHLaI{Y3d3*6v)xvUYQbZf5Cp9}h|TbT;CBUSs9Lef2*a{Tdz` z<8vX$q~~|QV?I4ZJ|8D)TUt*OMNC6iR4=V;2S(xknBiXnzNu)o9|f@#CH*>dFJKgK z3HH(_t=<9x=hUgl;36T3NJkWO;7&>6u%7%ANeNZ$*iRogDxHc=`244`?Bqc3{`TAZ zz>DGggeK1GSlW8riWNc8ywn-HCo59a&vDgz0tpxE^3uZ)yD|Ou47=C4HxhOvP+7?5 zET~BV)Jb-Bwkj44zjdf2t5Ai5#S6EJU@Gu5bBD?FE3t^r^@x z*j_3R?ow$0IJ?&E(FXW#_3S5Jwd?jp>8i=02bfUp;+|Q!!W?u$nPZE1Q2({U+Jc_)wHYhk2uJhUmgLIDSSjzoa&8cz1kN1S=`H156%s_)Hk(rCdS z<#lUr(WyLI)ja%whZwTmL?Y<7YMftdr3bd0rSiGxj_E9cH3bZ*F8CHJIexMlx8^*?iz&;awHiqTCHepivy7czRC(+Gh~v` zyF-VTE2o3D$H3+6HqW-q>SDy0`TI_^aTs^gx6AO`=$>6p)iJU+7$o*MkyE=tK8}> zFaXwproO^ap|n%B4p)O2PgvE@0NDaAkSx-2m6ffq9<$E&%wmm^@5iIDZ@oFp3@yfA z``TtV12AFYy*HOCPAFQz4JLq^k?h1A><0&Eca}OcG)$Y8`90+HfaYeDhZjxnat$ym z(#yBDESW7-xKxnw#H-G~IX*7#Xs0GpO&ova^spzWAPYXZ*awFDJ@7kfzI2~+w`)M9!Kg)#7r>16-|y4C;7+Wi%^!P|y}WoGb?40Z zm$>v2q}ixTw|~jPLfAFnX?T&6Ho6w%%VmHo?nCUlCK6mN#qkN1hHy)H?g_DbjjYbTdEjjH62GooqIP+cyp+d#}8$IzO>64uyBT z%+D52D7*9d+-5WeS~BTkokC?%b<3|-*FXwHV+a|Mc01Y&Z!X->5GclGc@GA*6ul^7RE&Sqo`f7_ zP_kMY`_qJ5j=2dI8dGYHFX1}_YYF@!0f|qHFquFZDH-HCgA)3-@O4EJll)APW$ILB zbZ(Dh!9?qC7}?~){?^&I#D-(8nEQGLef_+;Q@6KOaD3dvCT->nl-O2rPunnF^w@+; zf#Z5h;Ai&vmprh(JkURoh_=yz=pu|Zv$dR@ogZnhcrRek!GSA@sts@w4qn3Awj}!+ z;SYBAhz3L#bzZP?T9(J0sF#1rJaU70rosG=`XIh<*&fmfMScCq@TgZ}aG;4qa|OUfKU1uY&#rPr*-qpb9LaRZ z#}pIW^1jK!i6M*&--wPP)w~@lT4TgGV4&6e2bciE8vrtRH5+WfVJy5bxJYo8%jS)& zl@ct6j>gKOvtX(Sm}=wYu=yIArxK#XFT`znbY(sM&x#l&K}f6Dvf+L;+FAkEFa1rP zUKOI9U9`mJlk_a+j-ZKEN>NMml{#c^+F{&5=KZ@DZfb2Fkkbz}X=mkiMPO79Dz4Eh zO>oKcO@su$D$D3Ke16s}dp1Ggh;o{Gvamhhvn*Ut$vEJY+4TS&!};zOZUVquF;fc{ z_8*89|2j31R0J5n9^m;n-y|m`*&^MEZ7J9b8mSc-Z?B}8zX~Zi@yVk_33cb__?H9% zR{{2~Gw~BM1u78YBd-2LgPCIBOMmTPTb}t|Qs0cd=azvGLX+lcO~U#vk)CfKTZ!P}(TE6s`d8ICYKIRWv4O}~ z4O5#(bN5#uR<2&XmfL@|fJ4|N;7oWtWQ=a%lHRvxjm6a2(<8ga6$sU6D_4GyCXfqX zNSoG7PHu%bmC})N`tuAy{?DR^>ZMCT*?D?SX_rsG&ZaVF6wMXu%8{_nQYB~toEUvA zYuX!IWrHgDac3n*J6<4%jg6|Eu6(+B&BhcnKF(*=+1~?VK=K6sWBk_u>Uk4+yzp!g z$L)iy@_-tFn`r=Sz-gA>wcc{#F-Ri=g&kC`CEF_Z2xMdoQjY=4ui#CABLk{f{8c}= z_aoWy!t&Kvp!cWqZIk)u=g*_zP^!u2S-#>B`DfBj@mVI9GP9GLktM8o5_c2;)}psC z)x4*1bNr)_=qVzFhiGIur78rjpf#@y{Sz1ND1?<@&lsvvo7}EX1REvP|sP z2UI@nKw}$Tzqs&3{AfmGqLKGT7k3GX*e`!m>xN}`P+&l#6?DB%)Acc?8)tp@IZKiZ z!0#?C58P*F>%L=Vq$;RnROO)6*WY)qJE1p!G$XONA}|c?H33bdc8tzuTL(gVv>J^S zK|I~3VWZoBRpWq1QN|w3HBJycl}OTtwkmp`+r*|F@=61RHm+TQ1+f@a-bvP}E2su# zH``os1A7^Lq9dcqGWGFN)w$rtmrIEt9w3mBMqO;q83ri~>m3-d_N$K$5xL^!m57>k zvAdkt{IU5NYo?QM1V(fH7(~8PV*eDxNwsKuiuxy3=BFsg;*7N8*STyxx#*6Zcbh45 z_Q0a9Bftp@Mq|~t`EAy!I`HS>s~6U)I@4I|;0uHj8&>;4JjlN_gS$U(U%%<2t%jm+ z(-lhkBNpp}p#Sq!izp+XJl@s*+u<=)5kjZb6IpN<$JZ_s>`!8~e+Fn)n1L()!Ri}> z(xnTR8vEhv%Haoq`ism}B-Lu4>yB_7Z;1dUH*np^18m*b$JZFcmvrym7Mb}r^DI|2 z=C)sTxx9!~we?_ii~M+wx?+T$lx^RJKC^?NX>F@+BtB7*RKML%LWwX95_nJ0Hkr&&H!?HCj?xG}YED+@9Jh8s3^ zT!34i)msZ?a35ctm{~?Btaeu8$_t$89SHKp{LP!W=WDyU6yx{-ro!5JDzz!Pe@~$m zgTfy^(d;GPvq2z3t5EwscbMeIx7?Al1^d83Y8d-tu`TlN#|CiVH6Rr2uIzR=2+UvL z)9>Dhq*DTL%@WtovvVL-^ah`LtTBG60hHm8_E>p1P~~;$!Gj0)mdYh0?{NZ02Rl0O zT4MN%7aGT!&5~*Jh;B>))VHZ4Z*~m8fWSXs zD%djDNjdkcixn|Rza83yUWW8;E*flm$`S#O#4G0E{KDpdw|lvQE(^Z+P7xz=l!kUk zBWK!t`2stGC%|%7dDatMQ-E4otm?9>AUbUOGvfx%9&@nh+F||yj*-(cFq>Q|T07j}%E5y7d*2b@# ze?IIQ2+BMPdla?0i>(JzIC0R4$njLcV9EM zs=#v69f?AJR85S|NE+0m-OO2f8Uey|C&7YM9=T*=3IguJdbff2&5}1C(x;QG?gJYN zS8u z>c+ie>Z|4? z*@hykZEZTjMp4Dx+H_1zQdC1-r=Ubny6~N@_|K06*S0ge3_|Oo4H6Ar41bZB?(XBw zEf{5jRY#2MV#hoOnNP*vvctH*Q5Rxk1BXd3fE)FL9X7$EcvrcZW4yE2ZR#c`gZyvN z{93G$UfWYLPh@@t#VqtI9J&mruR+ScoUaDCd>c+)6M9ip+iD^`q?%U1?qS= z{APkmo*^!y>w~O{#FQp;jS;9zawT4-E3A>}kAO1uSzf-vTTg45Vi1Tz!kAM9@CPwb zs_i|JNRbJtrxAxC@=wb{e_dFTSM)kCJ+`rOjuXLNg9BA0Oj_7rvaY$E{=6&E2sY|W zx0~*5LA%n}BNO+Vz)2C65>^1$v*td#T`*Bv_epnfB_`v%XVt6og|+#T*=$wdHrFec zRSF3?Ji0|InFh%fE`!OskK7wHWCsb=)+^vx=~D~9yS+Fx`qb)}1EQ>VH_rjqW1#Mk zF(Y5{iQ{?itg}@TpT-%7%PJ><3?K(R}BDM#{s;+dF)WN$vLUB`R{3R z*hTbC*xTDe*#xkky%ToYX2n*~1y}P` z0<4hQx()_m@q65g=-eCX8)Cn`Yr?Dzf?9Cf2+RF;rH0}lws^WUDd{&X_lqu?o}y3l zvUq0VBUQp5*^8fZ$4|#a9D>Nl^$l#jv*Sm&F{Knmu(BI;k7rkXX;Pd| z=nfXmc3R@I3Trb1bqrLIMyIvn4I=OPJ$PX4eA~c+Q4WPdRc!0@Pz4b5uUV}{k&y-_ zXB0P$$oA_xIJvJyGBzc<4PA)vW$e;w$Tx*AE5FJ5hiG@6KW`jreA+O0&tnPI(~rbr zRr)RYY{VnXPQ?<95?xMtwf8TcjaQMeG2XX#&)z+c9;&_gz0D%VtejhcysVEJkBDLZ(UZ6Gz9a~0@OrNIyzT9`LK5!`zql~m zz26e;Fr9t3vHh5sg4f}|_u>AFd_#-kibE6g`=PnF$_^iV1ciDpe0kSEV;NN_ng2Runqk4(FLo++=Ua*A6T zTnR)c6IY)1_9vlb?TwdR#`}#uz5BUb{iTN7yx7vyAq3JsrF4QK%eKjMJVutegnyz* z$4DWhKcdcRhhYfP{YXOSbN96}j~3{WsUno2-g#hM?slMQ6X^7IYAUw-(xp>3&njpJ zfApnQmD4=Ukz~J|jM+uoHYIYTnYPIhfy;p@a7uccbqt6g*B9!jCs}H6520g2JZNfg z_)@#FeQLUPn~~RSGY&68vvUuxQi`PSqU5CFt$gWb#Mct|A*^u=e10+CZgvpHx7s~X z&_dg0Znfe{{rk&45UL;lP})OHJsDEzTX3Y23AW9NV<~av;#c?z0hdgd(1Ba+HiFBZ zeDvIE?FyA8y|@OAEc;oc!io>+GE_tD^SCn#ez^JCS=^3wYvO9%+~bDu#MRB5#$j1B z0UK+C--uq=Hd&1jsZZsUwB0F{Wdt7&g}zrhbK#5nhA}iWULF1=J1X~<0!+`zLu28c z)b3^al#a*awcRLV6&dzh$s`{^MGvi8g%BI?hC zz_DW=64}ojxU;Tb`quR03yjk4JW>uL*k+D$sOIBb-PiX*CbB z7BG>_1TMYYB~rE0e)3cG(z2d8lwFae;H~=mlH6x5wVr!1B(s*G5mGnI zToNP|UPTh&Gv#{qB#16$*KL2X%_aZWRpeE=!^i7W{n5zZNN)As3XZg%+sndpyIRf@ z53R;OXSP8vTl8=!_m(ABD8O8M+)(D@-qO2V@rqT7Gmr5Kv)_F20eJ$(YM;LeC08HI z3WG{v*RFsiez!D$v~eBaR=@`!ksJAV#bm-*u9-bFIIzN-O~{Z%JG)jx>@O4kCWi1|pMURt?XT@>@stWgU0`^Ku zf%KUNEgOO|lC`_TW)1CeGhgWxl0uO1A4*q0XY18v+P7*&=g^lxSL#**XZl<9UFW|x z=9%M}?~*#ykt4Xpw5g6co31JTssnEBa*lDUA1v&9O`{W6y%a-kEQ5ID z{#Fv+TpjMX*SXyKN0uOh02&+p=(Ex6{>1(@;9D)EyEa4gC7>06}h$k#Xf70`Qk^N<#MN^;h` zsVCo{%-w!0J^o_J)BL^?$Q3NbB{j>>g3Q1oW?Fh7!Sh< z6YyArxFL@97U;&I)j!*3#Wj-hD%S*0I~kYc{OAy@|@Z z>&89R8_WF#Ze9~6vLnfU?qcPnl^MpNDG{2LL%(mMY`W%M4Rxm1iv3M@CGFZZ&c!|E zhD+2vFysz3a9bFxsLN=>!TH1IzXXH(V{$BRUp)4+-RDz7LqpTXd~5#65#rz9B-5 zm|76+aOc#8;VO-$x!o8mLg&<{*CWo~$lCMaB`k<%dTXD`%B{koUboHS0o2VCG1 zx1TXpB;C#wLA@RlzEr?tsDSWjwp$Mxz%2G4iBLBGMzBr_v83aOSX8H`c~LX098||# z;SyjFj$^nMCCn%_=&4aUF$62E74Lu7 zqFz)~P6Sz(b3Ypk&CbrFygoUWdI!t~*FHw&c}*8PCKav)3)cD>k#uhr-S3hnRT=H! z-E)pUyu_xLV|V4+{nGh2nYHrC6;fGcW~yv)CJkW${K-Ac#r29M(arJfIi#;kb3&a) z3=0!T9N^N*1(P8IbwE%9=eB0}WA9OX}yI6pfV+LF5V0TW1aq(kSrep?|!ptuG2-(LHw+w81 zl$iLOwhrZcI_(GCB!4(fZ!g)OQZ9h@LiC*Z$lLp#Or3&Y%euPq@spE@4SdRG_SbIv zH=D{g2~acXx-dB>)@Xvo))=gGWF{NR_w13P0(yvriGjlOe=lwD-aSg}1@wO34|2;B zC9o0%j;)WSU_;M3yAvC%(YSR1ge{X@AO z2N+TGIp>z4eBVqB;HJsFVuRpDg})~&1h$jjz#DP$_I^MnLqMjg3UN@Q`R}Ra1F2RZ z3foEkjC@9aF61I06W-t90QqZaCxG1iHl7$yK9s*({;L&JFu10Hkc_{6-+beGD4K_dSt6ISxdk!MLFcxNYS> zOY3V4=v1Fo%S-;^50+>Tph@-iEibhJF^T;;cj!ND{rHD_KoFU4$DbkN!=0VLnaZ&- z8UMM>r_>MDwHQC`MBeTGle|9MDwA7>@;!fu0&em+uTru_hKGRm*h;>skhk~!Twm(| zGU2c)YUE@(2|hj9%>66fEDy*e|6Ctj4D=sj_-25`PA_+#;QM}*WKWc0K@X?!#wW<> z#Bu~^A~V+Qe;P03Yfknl#20AOWr-~_@l^x+pFf<5oWsaJ`Ez)@1wIfN@zMrzVUi*V zKDFT#7x~W=e)vNlSl5y&qx3B@{0?BmJLjaf4CVW;efI(~9WgH7BExmTb}A{=GACcL zzp40FBT7|(OdhW04&-FI2gJYm-Q{2D=E+Tlr5ig%{;7%<(0^SmvQmF_@O_t?Pd<@y!qo-028-MHvfuYsV&f3XHKzJ z$l2p}1x>M5DAvk%mKxA66l;ZIt^BR%Db@ZO3vKi-U z998}&>-}SiJ_5I?l>uu{ZX>={1vX;;hh_ls`U#ldKn&oOt5oh z;5OvHsiFZETitn~^^ar0f9u=#6d0T-wqBE*PL#kbIW;z^P6^CX0<&a$>v#5`1ZIKM zp#)~hB{?N9O9{-9>)=f}K?%%K0<-@#6#w4}%u-w(imS6lUr}70i@+tMU{J^e6vfq{ zxH=S9hk`+&U{L zIuuuj;_6Uboxe3D#nqv>Iuuvu|5I>#imO9$b^aFM6jx{G9twc%I}uLFET&`@{|yfP zojv~V0oa7(&LjS+1whF%reqnDOB_m;F(u2G3{voWjD?bAOvy6-X9C0jtt?}T+e2}C z{{QCo)R6LAaqnET@Ln~jNdNbdO6vZ5L=Me)H&t3QNJ@Tq@;>m&$osb@6_3sP?BiOU z_~1@`ihb*-sX}aL#M~>mQ@dqcpUsF&7^dgF*nZLRW6e#KdwFRd1|9V`Ou@gjvMCtL z6xX?=CljAogeT4%aLB<9nP;Qd*1MOQV+mD)G&>hTd4TfV#FAfB4Eid-3rRFL(%h2g zWKBbpQeYWy?jNTt|BSGMoGzvQt>r94HI*P9$HU{vZHRx$3eajBs3PN3_a%+I0)tXN z=(WFFZ0Q#zgFtDGwn1!e*OmmfdsI}DztJ(0bJ0IXyQ#(`z=%-~EsvAi&rYE5NqLAt z(JyKS6@uCt)(6y7t_7I*~Q^!4dnD}(*Z-Sb{Q)FdCuJvP&CCU z$?L|Jf)n|m+txHz`d=56H@=r_3Av%3o$s7_IwMWKuxDfVVABr@`wNY5U>;| z8#KARtTslz78d6L;rE(FY{`K9eh^BVT?Aj}-olPXV910%_vv30KLPci+T52fXpwjO z@uCt$CSLpae^EE6&}QpYltHgS^QBk*X>|Q#6EOlJOEK7Pshd>@k|N7(xHNuI{iIxo z7cz(;>TXF{y~qacqKj>Vkk8^DU2gvA`b)r#k7EMKE1f8@gCSS+Xjzdz`~i(&;I;mK z*+}x7)s($}@E2oLe^u*)6?`jr&V5T-q!%l=vE6DS`xkYc+`*Qg=w;U;7Z<#opj&I* z=f5hu0*Y9*6>m-BWdOZ$e;Vcck#r#=-szKo$fBiNGEdt;b(+ayXO$|l_kO^blOUzo zsf1wVO#a$_P{qsR-nnf*c%OWklpcc-OBi!($e*a1<2WKlBI%1*b$o!F?CFprWRr;3zQczYGd8 zuq6eC-9~|7e{XbBVA#|Y820xzCk2L0$pa!&9{({t|4+&T@|E14QUXPDOG5kPoDBX- z2qKjodj^5Xi(EN>cFRRlw&zvojTv_e_(x)e_`QQQ%SpEyy6}RapH_iy-5E0 zy2;K$F$mW(j>!s@%|yUs2o1dA{69LjCTp=$o!Uer&Hn!wBumk(p^Fr=2EF~IC)~s4|-M#qaJMt3u0y$ zVlcg4hF!Op#(wFeP1$i_eM<&R?5;v-NTP+5P2a&{+unW4nB+yAy*NsTn|!K2h{3BI z;M~=KOyU}EP1Lya?5ru31)+}3ps-owbfMwKJR`M8G(Pq@=wZY zo@Hp%E}EnTz1{zSyOQR+0n^a?3e%(%J>AmT_X8~FZ!3d1;dSp_An$Q9P-&GE{90di zkmqufebq10+91A1_U>Qza#>{OuY;IPdOd7K&RkA9cV@S}MEVV4iXzFg zhQ42u6jf?J1X9?F-ADLXC3)W|>C}Ea`)N~P<$F(VSsn7R|FNfH=@^I#6(`jp<3SlN+j%xB|tswa_dz=tm@x1{lPv?A>|BE!k z*qSf6f~I+zlxuXkDKQrzOfzF&5;l?Jc*K*n@SqsG5By!G|J`n<;r(*DmfKl>kt zsU!i`{k~e#&r^NLm*Dqt@ood3F~p_N{EzJNhHj^lj^jMbkLU2OOmtx9P9^g;nq&X^ z!jFk{eKUVLE+YMZT!D{DfLr|dj{AN$?Vs)>-}@j{w<|%8yzs(*F;AuK;Ijj#&(i&P z4*$BInjm>UXZ)+c|F{CD_JB$QDRfu=;+y}Hq$zP=!%Fb0|J;1~jy_L(!Dri5uT%dQ zgdnGO7uY+Q((YTbo_|fB|Hrr7br@t#gWXe9ztGL{j7#659pO_@onNjTy9;j6u_u*V z(L`>&yB-xN&X&L;Y1_|HO)S81FUyz7&qih{ahd6)V=u^GGzgeu-=f3KTgTqJJLwM%{_vdUNUDutDq$WD8ug^B1ywYN(BUPtslLr^7 zj>MHSUFue#PPoh&|jx1^SEX(f^s=<`1U@u3JH50!}MB z4+qs+I4lY7K5S^coaOwkKH{hXS)0wDv3!EHuq?DEs8NRisVh3 zg0NfVuU!p^VxgMkQ7AY(fLNQ#gW-~XAFPy-+mf$_GYLCIsFTl3l6zXhvs6Ic7L?BH zqtIi~x{_tLOqU)=TM))1V&f*BrH>f@vSU4je0%%h=jJ4I9+H=plw@1R_OmZz&^mICN2w+S zOf+gc1vG;3T-ehSFQutu9?MI#zBNDR6(Rh!3d+67=nOSW``8ff zH1lX%s(ZVHeaoeNKHOdME%L{fZPp4+f`?SIjtmOsnxw0SyTC$7pKx04iE~4xQ&pE7 zxM0nTc_#QAmwuY zX(mNa$6GR_S0g+|h>423Eond*yVmJSn1Qx;G#CWm!9qhUUhR z;Fkx`u>W4u`7YCSviT@@4Lur;a-&|fbW~@^wbf;}HCnyw<}#SMflF8sGh_Ge z#j#=k+m6Pwj#u4WQDL)v<0ZAhI!TPv=-z`0j*UfN8=R?J!j8{&$s(M;R857@7MKNv zsOfUF>N)A&+S4Fo`@wB5jT*AL*j?Gp1tT~-RV2cWlQwOo8!i_Yp$iF1W;f%J6@2A0 z^GuXY66Ypm4ac4T#y;dBzdope=ZQH&t0E#l)@H|`GwdJmo0kTQ(#T4e!9oyRAgq5nhL(QYLTItE`YKax12cizDkZ_}bvB4OvJ>FX9f`$kD7_2IkeKc(ZM zb=HmqSVbAKjE5oVEs>t2Mgo(E%iPTBaC-!j;Tn5_=6Y6G`W}b%+p5)>BOGwzC&#-c z1Acxw^nyk}Lk{e^RyR@#?I5&Aesh;6hNczCm)NSl72&JKH|Y$rSV`yfh{HYbuEAAK zjU%RSrTG2bM;n5;=9o?l4HZksvEl2~jXXU^^t@ERvorqHN?N=QM1vE3L|U6Yy_6!G zUzlq{iZQ)Zx|JmZY{&`AdSOL8F-y)ZmDx^Xr%b>T^~8eN6!8ATBv!vt9@**k5#lX| zQ|c~NT-#pZD;MvT;#1Sl(H{jWD)LZ(J(IJ1k&E+6Q!-lH|E5OFvhuZ7k#jLY9Hi9} zL%|0{nZ~njvulqRa)Yf9g)7V1$gDGa+Esi}H$JGn8)UIoJ=EWr!*X(?pC8MJfcGxd zW8Og)k7JVwH4P>o@uB;Dk~p{@Q;oBnP)}El){)kcDOw%h@2Ost#=CeArT12_dVyzVx8-k69~jE^&qJd;wjIh+8Kmn-q3Z-sZC~Rb`ky2bN|IMR z8D!ESi`BDm?y@7VmQ*difSx-Aj$3U5bbb*d+!J+u-5Rj0<;UXw5qWa;MN54Qbpg zK5G2qX|oFfA+5)CpPhRvFq5Fxtm@msQmMkfFWt&Zj!}kIUE|jBw)6z8gyRWn1*-Ut zfm~?s^#tlF#U!-^wdpGJu829!Z;r-a7TWXdx(AFyHT&1xf@izA`bVcei-%~uYPtiJ zxx3ct#xXBAcY5>@N=IRRsP$lg*onbjcWJe7g42zx56t$FjCqwJT z&MlR0ckM1l6MEpakaD9X_Qqfn;PwLSAVR8jvFXcdl-rvH&`YpJ2?GDM>Oz|wEi61< zfqS%Ks&fJ}obBe}NPi-oBMremq?Y~w&8AK(qFf*#nxuA9_(ATRS8juIYEf#No6M3- z;!0w75_Jjlw)$iP;#)g+hS@YhTC)y;(J7W$r}ibwxziI4BCp~|O^ImX=xV+2a*oYYRk5Cj&xk)#^rSO zWEOQ!5xi?Te$XP~LI2cM0zYjPR1QDCjk^Mm5m1X&EZxF(R=y% zHvTv!St^+&0nCz96|?$D_4M#`=B6NnAbO?bs@Z3=j|vp8C)6f+lpR}MP2JCiehYIw zBbHQ{=-u5efE0LLbs}kILnnMlD`7lAEuWZpO>tj4p#upmzqtoy!{DfXfHS1nF=XR9 z_PJB-@?d7t8M_xA2Yl3U*GRHYDvM`4rM7>DukK)(dWP+_51U^jYT#Mnlh=v;TLQg5 zSLAIXzPi+H0xPSjg0?#+lH7EAip*VC?#j`wPUOnzT=xFLNTQN`jT9BGZ$Z)ibM3gsR8ipfP}Rs7HB=Cb1b9 zUKzw-@vShM@_Hyn+e%f@%a;;mwvrOX(&q!kpv-*T8zb2{iv5|*JVVTf+P=EF9 zrXJGzH}!x5wgmmq$a844=gRWo89mP<#AKEk;=C5Zg?Bc-T2Txl9}MHLGKR=($R@_E zckCC2AKGrD!PDW4$qyN!L$L>}0%f5&I+)2VqGm9(&#!Ol>hO|g!<3`?Nsrae_{=&3 z5#o!TPolkI**4lU2B#1#*6KQ^s>W)Wg089G)?SnkNFYu4DW1S?RH%C&dR1dXKj}UC zyuU8OzIpzt?}}pic+^PYx5cXDs>Smw?=+ZL(l4ZUJZgFZqvy%hNARuBPO)CtDJ>sQ z{c)4U&pGz(5~w77v_i7u)bR+U%#5p9mO|=aC9Kg$&7i`Hz8U071NU=SZ=DpjwHS(Dy&$*UdN&9-! zckc61OJ^mG*P~d@qMU+pHiA66ky&1;JKuN{^TXNS)jO?C*I5C_Cgf1BRB@%(ljTN7 zw)ZvDU55f zVZY)C+LZ8kF>YZw%PV`mRgvj!mT%y*CmLe*F->lqWyn#;TZ=vXF)ry^`Vg^ziFk1? ziY0{@vV-(|#pBsqjs18dBU0}+ermW#l3To5CwFD5%<$LQ9bzT)D`3@$_ktWajqUYT9&Ekw)yv_*bC?>v6d@#nW+-w=@l*m&zCRIN>J>uqJN6(7p zsGFO*helU_?R$Zq>KtL&t_Cw1iBtbcBGe4m!pzNG+cL(J0u+dLshaX3GcYVe-M5&u)L#jaOx_K zl-YniSxuBe!G)7-^jzKV$Di#^(Lw8KRvF)i_4 z`%xP%S=d35w~W4H>Aycec=dh7jRf0{*n<<|k}eL7L0A47$zb9YP)IpW-r z(#Z?lq@_tZ$A$@OtaCoZDNxEqolCU6zpcT&rb24h>aESK4C2?>P$k zz(@}p?*_k=&|3Cmgg2h749Btu1)GYGal|=i?PCfCD;1wK~{2&e^$w^cMzCiQ0Jt z&IJX|2gA|1hHn)s5vM+%PI3xTvL3Udj_)R zJ$}bDYEj_{8HGI63s>_E>WV7{?_r-x9yz8*sKz?!)IRmKQ1&z=Svz*3T~n8Rqf;Z)mk;qOGGZ0V(bG|t~2dvOb1zOU)|s9ZH4^M_Ax$G zocoovFeDpdV;g-^@Z+bV(89&GXPM)=64#kh* zuj?jf%NKSS4wbhnNPBo#+>grrkkRMJZJ3+a{${?d(z6fU5YArxRk2!b^u~0=;1Lhb z2Za@C2aEH+(f3afB=yS@R!(~CWl|FCTrZXqget_zJn|PVcM|)d&TmdVwdkt0EV<)hFsLl}jS$IKm#(`-x z^O3xQQ%*;fgr4tQRMMR9&{v{T<2}KdD5wOH6a+V1pBB}UgKXqp^R_C-H-6}FRWRQ0 zG8abu=#D<^11v`_4i|-}rq#-uFl3peq>jrD&0$4}JLE82X!zfuRMmav%G% z9n-3CcU#8@#r{gBr!EG>@EnkDS({j_%%LiGb;0k+6Ban0e-Qc*+jHnxFU#Hj$22Kj zW^&K%EOu6%xRtn1#x8>A1>k~Y>}o<#YKQ9MHnhQF)3i(ZZ)IbmX|DD$R-cm?ht5^b zmAk)WRGugFp;f9yDj)y8)#;VeJs@jEHdfX}B}xsK*7wh0gsQ@*-1qU*j6a6;q|VOO`L3qog_XO6v9)?I(m5^>cZ*eoc4g;Bexkc$Zu~AK*SVtH zi95w5W#(zlwuKcOC9EpiJ?maf71Pok4|Dy%%H~WRSnll~*L}O=xyWkOS~n*$K>7uw zkQ!%XG^^4RHPe7rg`Zg`olV~BqsI4Ml4g$*gzCTk&z8|waz_fx{mkkO=z`EEp}gP% zew)wOrQ*?^cPUb?lQxpQ{cu*Fp_|pnZEbp(*E{qg7-{u*xEyVgUQ@}``?b=qoVX{= zTY_?~$e=2Dr;O6sKrDtO)=u#7K?cQ+9rHKfXMdcR(0UuylG~OZXW#W;;H`4Qth*c} zn|FdeO>R$dW-Q*^3a!%oIjXEHEUPW&!?Y}V*Sop*?^O+fS2ZG{>LqFoNN3}Wx+g@N z!n!YM1cNB!z6`~*dELCcjN**)H(<%yEPPNwEu?@H;C><5vW(giTi4jgU2dy9oa!G$GJ^L3A=X- z)zdFz+E*6g|F3q-qXz zc5JbLnga|fKC=wb;*!JHw8bI-slSlG)T?qx*KBQ>a;{Sm z4^D`TrbI+vFKi#bL?+hDHJeZ{Z@cdE=w95z%S2{-_V%qUTuah`u;WmspvxDXb8m=S z7?9)l5G$^f8mdY<**U6(4)Rv%`Nu{Nsi{6=96)M*g?cJTPf^pvzD_9_TZU6-#6O(O z{D%#A+1<>~C5Cs~IhSGZVAHAkqQlGC-fDJuFc3Q77hFBH*#VmhB-WQMVqecC^pPwc6DQ4Dx7DJrtfxb1E(Kn-9;u_*tI4+pDFIICZpCvIz++w;G)W}LVBWJ zpiMkBZ^7#_1rq5dYpMueu34U!!cDoBw}lB^nQK?EVp8mWfuolQ6$*PS3+3!xJqM}- ziSg92DS+=p1_7i95YLeh z>7^8eR^FBi^m}CIC(%gVT;Tn&)mI*D4Z%ix6nxT-v-YaULU67K>z(dBWj)iOdW zm3u65y%0T~06>z0+{aiJme@4Y*>xvb-oVKebXDpm2JlhW zp3~M_xEeIsv4&l);$ll-mP;e}#N@&ll>N?IT&EJB=5hxa5Rtp(L;|Ub7WfMOl^|N6%iD zeVn~8LZ#^82Fd;It@QXHb1z)CnQk9iWcB{dUG?#w3HI~H8xjS!QCa?{;F^+WO8C6s z0t=zmJ%M?~#gR3QwMddL$qb;AbJ3p<3?(Fap7E`5#}Ey+qpjgeMpmOfGL@=&JG#=q zIsH8I_W!*&-6j`(&d6`$}jsr!ZK5k}k zDYABkxyQg&Kd$Ez;pPs(Kx#b|t2W!yqqoh)voWGCx-pcYFM-7 zR$MOK9&+gp=F{n4RXRVS3=wcjJ4<&^172N&i!^v&7Bv0pZy4o?DWhbt+pdPf zPMP@n2}jnwNIdRM%)%TEYgNRmRc5?hSi_e;bh$i}A~`mhfnGNexpfl0(nF%JS>O1WLM!=?y^NsZ+CK<_8?hlZalB&lNd*}@Qm12|HED(}(NTvp zf|F8a-kJr2W8~Z2#$)+Oaju8m;(4B%-NZuTLOc7yk}cmsPBX7b_y4hxr?;c5k1dK^ zS|TFv&rRHVvYy*K#EB?t6=mT`z#=#qPYX=z9a+6RFN_vB8sHP?qcx~0g`i_0~@e!&h_|*W8Np=nUUxvr% zX$2J?ZYyQ@5NrF5In^J`v^kl|w2(^|DwTepsko>6)AhacejqeK5s7(fB-wGdYMdiC zBq8o23`Ry~I?IATUqxvy%_hq#$D#)T2mpxxb`3x($`orKbszHK*E;SF8|Vb zjAV*A_z#((N}?mAE#B_MLRk}f*CTfKGx8TAVA{>s+P8rc0_tJ*X4S4sc1?y2yT$e$ zbBx+cnzN@r-NcCC?g|xfodIyJ6Ef;eLI{%nFzu~Fgk!y7 zCnb92+ov3l>D~sVUfR}!>|7c6n=9{&yv@Xx&M}$oj^(PHm+_k@K*cVRWa5isR*Q5H zR>^G<8#Yf|;VwU3;HByz49!=4FtN#8P}J=f=0(Q#!9I##?c44gFy+Sco_ z3VZ42Au|M6*CWG_VmYg#$NX^|Q)Q@DRWz2qW0D!|KeXe>eriTA9x$pS|kl|AB6$9`RAj*E0NZt=u_BgzbPCQFT_lp49T~ zC32%R{o48!A!td0S|93c$wL{#7&rXicgwfdODPB>=LG$DvT3PN2lYb-5N$UR++43q5xps&@ywop!ThQN7EoSpBj~wkjJEWI$ynI!D%aHjd|+-(pN1sB6(n1*QQJ9b{FfuR?e?XF>Fi0FS0W< zXV_`h51ZdeBhU50+$($p!3xNzf{;m+*Y*=Gd)?8+uWKC~&{MPNzq?ng4plgcS7T>Z zmk%#4!|Qx?hCsxFS!@90s!O=(TOVG-gEmwwEX*B!LE$F&0FR~tpP6!uvk3Q2nwDMD zok5KFkD+>5NI8{viJwl2N=YgW3lk;Z>=+`uw8)ZL@D)AtBli$OK8`ys10UQD<%ueLC_O@A({BkWlsqDER*Ym3*-7YN+ED-^VTj3wZ_?N466*n_c zhJ!!zqyu`{)b3X|{OgZ^U<`Cn*3=0gda8NiPv%V5nWF74=+dzi(&6%Xowk!Af& zR$DCdglC)d!vNu_2{sxmSA5OXRg)V@G*sHPv=cz6;m^}Fe9jQ~CwYf+040ZGs7@4y z&M8iw2I0;8V_;X8V*hUc3lL&Tmy9a$AzB=AJ;%hVl3Nj|+U+;T&2Xn*b+6Pckz1ca z+70+V&m=!q5X#yjNk(igT3W&`~ebWCdBoZmTv%SR5Bo2*M)s9KlH6-SjE z9Os7DYRqQs^;$W1<&LAXO;xulIi9s(3OaCQ5^~^QZc2^;#OCw8P8Ne zf(NaSM>`_Ntiq=2R=YB`O49FD+qzVS#{_>!4sECmDNN8TKV&6-zS5X`2Hx40<e ztWxC>7ck%6r$WzVM3Afdjh~VIFWc{O`K<6N_0n#98-J(f?BcxrsKH=K;GDHhVT!Ca z{i~;pa643v!~0g2Q*Jy9N1p1LrU@jL+i@?H3G${C&21Y5dN|nmH=I;T+Q#1H-y_W9 z;2RiSW0wTsvd>@W%?_70Gy22wW>837CORfR`?cGCEiI`i1h)5m&DPZABVoaLg4nsGweHF>k~{&hr{cV)H^cZ{ zajlE5o5Hg4$mmtB5%xu?0$c&9T668$TwvYZ z-srN_5LGJ-{55Ktb@JD(-&zuI(p>w%)#I_7dOf4Ekvfy3E^DW!(_M-@6vRtQbc>vA z^l!%-8;8@E9Fh=powcYbQFJ+4GwQ3>26dzkyhYxvb|qwZYCLzXyFSu(=jd)^0M5<{GsNFEX(}3L*th)SQwPtzxlaSU^Q6H zAdF~ns^H!CWlCZJ<4&XjK7yFv-#qAdnx<9L+uBq}9zE6-W_s5dFVQDV&}|&0l$s#@ zp+3ko4OsQ3-TRft2|4H$sm&K;A{PB@KX)eG(+HA>Mk>N~-%t<~9b9@iKE=sLBh}q_ z_r~f^hRitoBcH6{qr~a9y{E?e5^MIUXY-@M5QhjZly=7gp2gy7-DlkD|kf%|$BqnaZQPZYMGH@Nyxe9b1k zBXTx!H7XBPZ7|w$H8k9P=G(VU&M(-bYbhZz>DM3K5@@^5h!pn9e?h{l5lGMu(%NJjAug7H)=W(d;294I2YQn1S z2F3V`Q2|4?1K}$SVql-gDE<0gL#vi2e{L^*hi_8-%u~xKXSUJuBXb&P!DIBL&*s4! zoI@RROMp3G_2W{XSrr?=OZ)a=9OH!+>JHvMbk>DwoGnHT09aQb1L+RkqZT1Iu0nWSZw{FFxjz|0Mr08 z$r0-z1A(`MIiiX$8)aAJ!TYgVKxpW68Y(=!FEu;EH(2#G|GprcKrE+D=`T9Hsi^h} zD(BCP^nUfCAX6qBaq3rI2HE0YK-pqr)&Sc-!-jfo0$nP#RqY&0dKC6>gYc~P>p%5z z9>&R{vl~c5|1Ua?l^m2`t&bYIQl_}Uutolc*bpQ6U{5Z>_?Q33;QvL+cu12U{Q)nr<5Qi3?Pk+bcu8~3@zQE5+Wd7LpjpjEuo}zBSUu%NH=^7 z^}4S6dfxkaf4}Y9wr~Cc&hwmgu63*<_hVlKyp$Egxo1XlPe9 zZ(RjfGz#1L!4C#|5mkEw>(?$8M#lDNVn$X*wtDtPh7|fP6fk@H*LFNCEUzu}tn3{u zEtn0gEgiet$Z?NW#@}eH-S4*~(uM6J)2o)_qoYRC`e-NcJ&9X9&zJ(&JEYSIM3W@E(Iu{Ycp;J|y~h2D*_D+@$BSqqE5n+O^R{WTtC-`+u_|LJ zR^@X#Hs`_K$m^YB${B91j+5pj>>C7I4On=0gC72DQpu~udVU&4`0;Eh?<(i_3l48Aa$XN+c75@yfV*flpsSR*`|?F#n!g>3n9DJL zu~PdoBiZYIeju*%skFEJ-OQH+2c+#GW6n2ju@Yzhw8Sd^{ zDAJ5S@4?AmzGIo-huh1u6yeGC59&^?8y`o!E9+EFC>2{VHCBuzA0 z?={OQpdOzu=?Npi6YjaMM>4+fjN!%7?c007+V7XXRAGS`!D&6*Ly(ilFpi=pUTadhQQp z{OsH&U|ezfrV$b@dI)QLCgkFF)~bw_JpZnj!PI&Ity2fZ#xb@=w} znas*}$e%6(Fs(w$z3TVHpA0Co8k%y*Ei0?^1<^v_5fz8{3O~`%ywN0HJXdtqUQfKK z`alKWFIcoWTreO2y|9@qxQOD;y>-$e8nbnxl%f|AKcaLSwZjR5VVIBJqZ?2$m|Z7+ z#rT6)-&*zFi)2OSgZpFgE(bYXu#dsUC&3KaU!mlbXk5d9ej{D_ro=zZ{>+$#YGI32K% zqo)q5!tf1dg8j48;rs@nW!o*ID}L!hFE>PAP+$A?jIQx(zv$foOkE0A$ig+h8^11g z;u63ybz$u{F|p9lA{W}D1~W4U4O)E`z};erd}3rQm!aBYiFPED=@LuEq2)uBEeT#n zIGm=21y^O^?~&NVWrt7i@H;V!Xc{qEWGZCX>OKY|xZ95P_Ukm6d%nv^rItyGQG4b{ z`$W3twaBEaFdezkGAh*QcX(Sw=iXnyb)K>yfJNidzrN)t8CE^deP7* zmcCO#sl;|J{G(D&tCFG`dhc%knm=2w2`oc4jn4xvT9%bXXk)WtsFQoTKKj5_!k0xS zUC=#t|JdQUD?TgtL;K3Y_Xv3O;Mw+R>bAW0RQ z(x)-aU@7G0G=WhoDrTA<@jN|iK}AM+#w}p*4HQgui%Uz^+XX>W zm@oJ(=OHvKUcRL1g^W{irAEaoiTTU|=Mf+_OlllVrnBLR-B!8p1CZJIatbOA4pgLQ zKO2^1|M;#+5j-Y?Idy|KAuKZ2^r(hQLS?Zr6u%&y>_cy)ogb%*_HkfkQ0eZV*2zG( zPG96E=AvWF6=;diZ`s-tAA|rk)5{T6_{FnE!7eAr2Guy zq+lL|^TCL;4erb%RPBk-YIH+TXWV&&#hq`lW`syJ1FzwvXTIy5w zEKMrw%e!ZeGBIvA5lc*RTcf$7buKYuS~oDeaIan}9b2y{%xMGmVC`tfet-Mep-ajU z8pNsnrHygK1eVLk$yq`O^w}bu%P*SGgdRn6wl%O@gVQgoBYxCKHy4a}>LOM1I;u== zv{YeWd%t$j+lymCo=cVc!VQ)iNZZdY;f2?MV!q~QeESL%C_dpbq;we;96&>B%rN}! zCefVhzVuF^eoMTYxmXBo#5<#9HpnnP&2L3BX(NUXSd3S9qz}{QaQ?(%GBQB3%n<{RMcP+z-g{u+O=VW^7WaU8u44FM-OaSm4&Mv&RiGY z2FI{ugeIk>o7F|{9~Lc6B2i;;N*0gz4|+4*goTX{fQ@8kc5(teFbqBM!;3khDWcy| z7`CS4Nh&bfQ}hzZk=Jk?k08soI^ z^2O_2{PS?*!r*YvIqd(Km~Fy+x^OD03kBiTW=Yv3X+25Dy=?6h9#72yX-#ZknU8@3 z32Lx>zFpe))2M|e4zWKJyPI2b7Ed-2_B4%E%nFY(2;Lcr$9psz1h%fhz3>owR2#h4UBIP z-_ibj1^n%;b`=_N<&Reaf1{OL_oKZAUa41!Ku71_7`7CRpp76QX?bTcyUtf66_c!z z&qq<$O>r}h%i20exlL86KRtM?7qRp9UGn=W<;zzH84@5re$?^OIVwSLMs@j-XS;KD zWbMs`DKydL-2Xjxnfa1-{kb-84HZSk@}$R50{2>T4AK0pfpp7U1(Tw~;%jBo({~~I zO;@*gF~Fb%?~D8vN6tI8nme2qp6D6pmNKwcnDTBNtzHLW- z(fa9l=`u1i3kI@0dx^hG`(aA$*Ls3DN}nbV->>=ix32g_6BBrzy(t2Qfktqt*XwA| zId4Q3Jto(60(C3h!@Zj=SE20JE{z7Q_!?&LHNW(9*73W#u&OsRBjf}am|d8c4hyXf zn-zjh0Ed5j4fRGW-1s#MRtP)Vr8A-6ZRmZb3p2aZi1q*13&V;1%Jmx0Z048)I?{5a zL(wrld!6n1RgMq-dDWsJ3_m&-a}_D4*-hs@*py;0(Y&C|3UTnA@zZ^eNEA4mZI6nX zwI%fN7Zh|@^{q^Jw;vT9Ju_z)qw~!D(1juBqwL)ZE*Z@F^9I!*w$koIxzw~Yow@{( zeOj8dqvOekF;XfEw-{#ve0&D4-AuwHvKJk1dHs>h!*fwOp)z3%BeAxAseagt(cmcEV0bsZ&(dQ-APWYr?z5|G1H$N^_6N~aNj^D{cxL?migc?c83>p%j^rF_S;K+BZoImv&F_(70Sp4t(6eUC^drcZAzfanDZH*6bQ3WzX`nWC0ngUZEc?uXhQF#yWxs<*!`9F)&boiBX9r z;B$4b|K7oO#eSm2FWf?EJR@|RjiOi{wrE!~Sg~MXcD)5V*H(uxG7Sf9NX75bp3%3=9+t9gvHfwDNs(D}s&x>U1<*9n&*r{;h0+kI!&*o6_qN4XzGNN_y^_fRIV{rPl7yEgV;ilVqnD{8;S5$z)(=Hkzn*+uui=)^;Y7%Pe)1rlK_#2(sdV z<ZWlc}hQTr?I zwUTqu+&S8?Km4h1%=l6kDdAa1oqgz6uHVc=RHcw{|7~qy$Lx|*kL<;guzNZWj`q|_ zU=79}v*3ooRFsdjcg9NVm!_BSndt=FJk1t`ll6^KxGW?-dL2!_T;6x>QY``YlKdh` zZ;V>%DMD-ot-JFqDr((wii(Oqv7H;b!>qWt{&q@dvMxS4@&)NZ=|&66Mn=yZNsn3^ zY80c(=#i6>UBt8uj@qN?8KQQR=rQQISgooSl2FEmvPS^#095d(Ka8s9N4YF?ta?w+ z%TIuz&Km6+$L8J_>=e^8hg&hS3GdV9W)>??38~#2!-y_+2SnhV z!6aF6uveBsLYP?2OR|gaK9&Zywc%f!pTx44GHH+t6howS|^Ei$PomnR_10O(xkp z(|d_^l{J4nZRk5c(QPQ(KF{LQ@BI_CC#F9#GJ3+|Ns}S$M6>tb(_aTeTX4nQES49ka#dK&@b#Cynv1CXN;{^Nx94p5zvR4PaHp%X#2m)0~flSoN#zZg{l!J!KRSaM)ir zcZbd`4>N_s`y#`L6O8jyM72Jl98nOiPgNJ|Bcmd-FGpvJPB5E>a#*OS4616scqR_# zjL?5=bN}TZaOqxbR^AxI~lYV25r{WMtd2hG#=;qCkLQ4X8oX?COMNjXKcdr8Rw3Z}4 zr`(UV!Xi%3QZJ-{=gfLV__LR8)(t@B+q3jG zm`dDs>#J14e<*y3U(5HN@}5M~A7>Lci(=#jh;=5b=r+D#S}GXvnz_5~vz+i8P_8`M zo5i$LQBcYLaHz*NvM_oiRiu*N*Yc4CX`1bs@J-2P3W{Md8IX;;AxO z7-|qxUHmw0=UtG2{$h*licP*4TL&97$l5BMuQGeo7_{9g&S)AgB8NY7QOh%)AL}lv#Mn(MgTf6@=JUBCQZ6N==TQce8Knll`av$ zVE69zOnH(``qb1clJ&j62j_BH9qc?2ar|V!t7CtmBNrC%rJ~-sG0T1xJ0ZAnP@rl2rjDr=FUlw#5o4jgG`HmzJ;0%FY# zhC-4`$@SdrA>xLfpel&hHOI#x0|MQ>p2sVX9?Hh2$3aWP2#=;b`%Gb%q0nrs9Nvg= z+vOyU_9LT7vLkEhc+*{|`IPn!T2e@l7JkfJkan$XTAERMW{I7%t?hA3@Ih5eWbL{~ zOlI-@+C5x}Z=bGXV7k9Jv7F=+)}fqAtUKFhG@6EUIQ{acj@BQ4t`*2Nw`TM&`HmIH zLI)12rd#fnR-9~JYFFI`2`dC7r=wqAV4{9hW+AK0TE0#~Yn}ZTb&8lDYVT?HAWt4V ziH{DqJ(#*yiqiO^ss5_pck04WiP*wi{vmrQ)^M_MYR1%LmC6^f-=g}|(<>TMH@y&5 z1-l|szA+(1!nsZ&7SGxGk;DZLKZecA(|)QhW0dWhL94bt%Jf*Ag+=pyM!?+JNdVy& zU&12=F8Hea!#z^AdB)Mc*r)J?o6n$YKenEAT~yKyfL}-C?B>inqHo&!=;^^vsL#*i zc1%6|X#0S&Ij#3HJ`!ee+kM6j>m}T%lZ-Br;{}=cBR!aAKeLu=1ZJ?t!Q1D|&wW!L zm3o{yGa7A%({LGgzW+SlJ$**^_C?fT-bfrZ77@v4>B@PCp!WLU%Jqe@fsF5wjXW5r z(%W83-D{imf^r@yDfb^QjS`XJCbI-EY}~3p*&xYUTp3^?A?27N88C(6CS!b!Tjh05 z%wXAIzVSPcpRYxrP`x|5>pDLG_;UVmHB=$(i!{Z}omoO68Px2r^2lIaFgfD?+^xE~Z205-UEEJ_VtJxsB73DK{fOdV-kx{%>4Ov?HtE(9U zxm&%6j6sh{zAmTlO(4AzS@hg<2z#bzvhTO<1v z%g3!bmOhQ64i@-}v&Hz5RKneD;2GoCQw~GeBozauToWaP1)x>!xF@SaG3)hY_ISuG z0nO5ycQ=!(YfJg{7h3bB9F-j|iT4-sAhD*PiT4_W-^V{TW^l@DGlsiF@9|XLGh+U90fI>8fz% zCgNri*>Un72#*-GX=M8zsp;nan{mguexHV%{kzslX&qfTz1}-TRNQ9*93%0`J4T3m9K4M zulN6FmG6HmwFS<0#kNjw8~U@<-QqeuzGkrU!>0HUe$An;s-)&H5gqtG%qCUnNs+Nf z(OB%wIWvyC$px|iE%u-B>n&dB*<0IuD2MR2;BnHfdOc&jm3D*sTdIUWnK=udj^ii1 zb<_bCvGFp?B@!$YROGj>ves=77>&0UjND>Wb^T~Z{0~4;K_3jW1@+hg7*|-?LzlpJydi9uOg+yAmw0Uu^q0_2XMbR;J)!~Oqm=11+w=C zBmDP);r}@~FubZIIf4t|yC%_e=-z1a++a`&tlxt+GSayiySzfXC6sj8CFuWyhyCvl zt3JP?dbQ0CJS#+`zzNBH5WcpxI+XL{#}B)uZW>zJ{+^Kn9Sn`OV3VGtL_sfYRk)p= znIGPRUFV5v1xm`T-JPE^l~8}}_hVoP@Cl{4Tz_C30n!%(9{|%8dX0YWN85dzXM8rZ zK80c9s#Uf$Sg}b--7E=gM(xkEY%b0{vaxR8UKz*;$;rt{PA0D(S?GvS$yM#kQ7MS$ zvbOcr@j5%}MGTOTAorKI&f24HR{EST#CUfn-WzPL<`~3R89Wk3H)9=C!y&=zBh@v3o!)X%t zRcxGoPoLTw@x1{Ct#R2gj_0(@&CM16P;NOUN@LQUkR_keGTR)ec1=*Q-gR%4-(~xS ziNPJ)3^IP#P|1hPnw9EhW`@d&%k%T4_A9T3rz@sB&5@<_mOz zm`EvInowE5pe5)k`khe!Q1q~ud74$Pbmk%>BdZ=C@s%-7^be(EzD$)7+#{S8__Ha9gblY}BewJb)9efJ(VnIwDcck^!UZcZg9 zpnwt2Zae^9Wa5hpJNBhKj2${nT+JR z9o*B@)14+Y+gXTdG#kv+Nfj?Dx2)ga$6jhFc!_WwE3f_bO*@9cNFz_3G+z^~iV%y< zz%Qgyl03cq^fp@6mA@T1kkuFt4o*fK54{Wwwwx{#4?Edi86Z?oTlrBm*GlfCS?}qg zqM{PelKXnR(&mCtB?Mt~dO$Chc#VwDIh3n&rBR*j>DhKW-?&C%HW_Xr6V z)A$F>!tRX-B_r~*N!7m`o?N>jJ-@U&{Z()zZ%r{X zGzxfz?WYX4u{@MY()mpvT4G=Z^O;S4sXsYLewp=3=1I) z6&2R<`I--hCkNPLvzO^Cy-xDn1W?r!r?oqjHN>12>6Mz~u~k>4{t16?Z2Zb?=0xGG zD%pxz!|^}BR^?RNF5FS7-Rb77u%3#Bb>4B>7(a4+X-S|DMVp#O9A#BPk z*~O2iM&Sr#wWdyKQZeZa#<0$*%BR6>rNmrT^K%meZihc9Yk|=CM}#sEF0MDi6tGBn zWDS?>CnaSLEVR~j?*nj)U0hRz!im9+-@aw`c69~o#3DFK z=@rroQ34*vKe6(3>OCzqmb|Hb6vbtmS?1qb!+2^+G+wVejsmY9he+gi<0S7Xj%Lz` z?$L!xNk|+mr-X>JjdlPHke>p&Z-dq3H=NOfBl6+FK!!;WFrv?|(%_{lkQDhwkf|ljxWGx6^8FI;W4r_Q( za>)XN@DP=S=?wX7)uoj;*e)4u@RebSc>j7Z*3vCW2O`?r;{v zjNQ1Cfanc-X`RPO_ywQWx#pC&qO32tI*lDp?hYLo^%yI+EUiI}RYW}F=H`C*_$381 z^GBi>7M&z*KR>^GwGzM5f!EL!ii^^+vb3D7<2`c|lO^LWc#$p9%=ZX7`*sL2j7sc> zKEs1F$m=jE(5;0Q84Bsn$gjMXV!<7#=G!leBr(Y30^ z?e@MfqgHi|?$>XpEoyHcKJflaS3thV9uXzXRw}o}0sLO_{+kvY!BbWWis|XE?>6gB zm`!oaSzULR!S;)ZimqBn`^wA9@9*y)mFgK7K$Ap$6_v6T>CJ|-m2%`$L~Z==@bHuo z!stZF6N~-a)4-*);Uo)qv{(O30lE$$I(RjnSej?l5v{mge{p8LzdkAwh?ggya-)oT zi1AhGttgdzO_$TdEm1=CSFc`y;Bp6#5oTm0!Xug8(mpx`ox540z(eARNYrAF?%m&K zS~e=uzi`{E#Q~nP#H5G+c}szY6B~I?uODWdbf8Kn{Pr9Oiv8|u3w5Ma^9M4K07(^ zO>-4CnQILp$4Fq{=2puv3L~1R^N43UY7^$0E;Sth=}$XL*e#ob*jR#B9LV>9fhp?B z;-8zpM+H^79WYmA7AmSNyS@A{2wUpbsHR5YUiTC?S50D7!3izc@vf4lcdp$>6hRbuy${hAq%RG-wpTF#-vLXKc;PpQlv-DK& zqtbBYI`?LfrG{pNl$fA0(=dlY&h1N!#N-LZk?RE@7A79g1{|o5gl)PXf*9PAcqSuA7c_Zk_vt#F< z@|TpDj~5%oNJeGvuXB%&@kUO8mMY_2C3ojbA|v{rPI&A&we>e28lZ6{MMVo!ko#!R zYk0Sm?_54}Su8b5Qr@c7oAp~fH8 z`>SsYzWle~Mtd=DUSdH1aqU-0{qJ`COL|rM>)?^U3#c1_*$|~q_G@7j2drQwW+z}K zWD$G>M1?|~bB&jo`8?U5+H5Cw{%fx{`rprkjPSD0AKOZebGhi9!=IN0W!23;RS_Sp z3oAtTjc(dqaP?22^R}0m6+-b9c-FO%wT{wHmn*gore~P;Wnv(-TQi1UlrJN05QVupN7ZXkc6;`zjR>nNi@KQdVI(Oi* z)))M+OhD!0>U=0qX*tltVg9J8cAoMFzQJ^ZgvW8vy%M`6rfjXMZ6T1SBqV4WcmA9? z*gg;xw3#KhMDC8)oe`;2x;iX_`e*sjZTB#V$94fk$lj`*Y1cjYGhQc1dHLEB|g1x#Yy~PeXvs-@eb2aN0h4_&D)Mj{pNFF z-`vXD%blY*`D53Bj^HoE2{z=xlYPNDb{}7w#c74NRad6qZC!0jZ3EFPQwLvf(nx4! zez*=D52So{#t6`B5@zPJHk>1xR3R+la{V!=pEQ&F=UtF{m&yn_p{ixRQL&bS?tf8m zVc`h5r)swO2<2&CDOOU%3Kod)I^vw-R3Lq;#yG~EsK#Q_C@=2jvhPVcLC3&*Bu;;T za%;NN98;uL!Yl)?{7`f0ZiW6*bONH8`T6ZGE-O-AY-ixtC1aS^HqP;%Tx`^=l$mj) zs<{Ez9m71)#XP; z=O>S3ngIGjJ;}S(Bgh5kSUa6`BggHEcQOk3S>)kyl6Rt_gXMK`79wyouVB6T^QnO+ zf~vGA>zRRH!Hnf@;w^{ui4!`u&}=2ar43TcDKbmzsc_BD`pra4>h^QFS?)*Kjs9*g zV0Enf?};L``>WXLaW(I6t*r6h@HoMxVukeQogVFk5Lfur?(PIW7(d4)CQ5FPGUw)X zdhp=*kR**+AtQfL5;oSJ{g~7;+E3J9D^=X)&4f)58Go{D!uE%jnU8Ajg#7&PwwG9h zTa9^d1SuoaMywC zU7bfjYsg(fWJ|C~*3*Nsr^TeM+(zw^`EPs>eH+(lMM*)xhklf)YbR}pW{L^K^XTb9 z$>AEmLG(GKC;-mUbrk{vXMd#o(E_XMrntgb`59a>j<{afchz!i|1(#$BK?@z(CSYd zKO9gWJvx+4yuP?Ka|svN;#|T)VWXj!1+rJnQ1%dRYy1XL}l-+4xU zd_^#grH`Jrl4}g4CY-!d@LB8@y%j7ZTx>Q(`APt(U9*2(W_M>rO{KA8?Us@ZyfmRU zfmM&N)^NuS850qKVdp2Cc%$#s^Wr?Cv`f?==Yp``k5VA4+9C1BMEp!6{~dg0VPbn9 z_o102zTI8S&sc)>;#LrWQ}fR|yH(Mr2E7$5TZi`^K~uhFJ#`^2COc)<`T)EF3F%l7aV!E+(55bt1Jlrj&C5rUot?;KDrTieDakv^ zER$qm1xv$GYi{F{b?8o|Nl9N7MFdSx#;hlHRwS<77@a88V{cyIc^ZPl0;Ck`_Q$_; z8idDqK-Yl4$I`Q0&QFhkjgcV2($YYI1bjwm9*WMrXog4(=9>yE1cIWKL6$6$MRmf< zK5D!|GqLPoi@RMrJif1k+m7?j{!rQ4-HrWAm|$lMlc|GKEvYR; zkXhfaC82%ffZ)keZoq9E6=rY2$nJrVUI)zMeHt=BVMEwhxyS;j#SAJ6jk`5FH~?L9 zK5kwS>MuKoZ+rc^CW~s}UDV^*uAv;I9Lg$XU=yY_j+Xv9p0@!wQoUye5GTjgT^S$8 zhpq1L3{?(OXkkVC|6YSBAFgN-aNCwwO49wUK))%;{w~tnfCoIB$17pC3}Qi1jp#ad zPp15i{Rgafw8PZIphjAo@)B-}j~7=+&z-IqEm;zfsWYwaVKHQliRJ8yuRT3lQrfj0 z%5J>pH>whCiOGGhyZ6V6-6Ffyc(}W|`6D+3md6vhZU26kW1f)bQ*}*qV(&47UmTwu z2+r0Wh-|#@7|G*p=D14?FW9tk4cT2GoZIQCr$`Ix6%gSD0T&aAfh9tEcGhzn8AGp- z5B%jlq?pD^Dvu*cL%Rg;jw!j>LDq`<;64gB~3G4&4)4L={ZcAJBZnw!{sDFcQovG=pJYdtAUHS65ThpMZw zPXQ+Q^{ZS<(2+=urvWAxa<+La3qP?ym*slei?45ekAl;_N>T!A@`hZZ-1OHGT)MD( z>R&UpYbS4#N4hU1I>B&zHdcEdT-u~edf>y8DPV;F=2XsnsWo<3vN0i6{PFqo5K9Y& zS1fQi{=y zve?N{X3iVBxYco)wuh2}gj^c$7jrhy*$(40c5h9tWQgb}l=wB5yDbS+*5}>4nEU)ayl2%9&*C>>XTcc?JYI}5&JaCXvZTcA3qWt`WJSG`m8mv!W$AhD3j8{?f z7myD6D1Z34_bxodam3lp2Kj6#+XU{@GHMj+Mu4IS6k#AGni%JM_m(Um{&G1Dum4mv ztPuUv!zuKR-7BAN0TU<$$U#t^a-Q+g_QM({@(&tjmzrYn_rqw?cVzn?Gbm=Nrb%LX zR16lr0<2-Q%c_+~`OfoYER3g+>%z5q<{HtS%K4gI13Nl;iI1C-FB?G(`j?f@uX=;h zk9Om#w<()Rx2w51ak>VF`S8*1Ko4r2$nKywboKI;Gk-4%Ef!n4r#+fUrNSx&fJq1I z+?qf6A*npzDcxs(Diu)S(OzAN3l3%?B)UkCL;FAOrhCVX%(O@41X#mw3uRv>e}162 z^otU{>k3Xqc+XzHF}d~gXP?V}G}^067C$Qq2*?rWzgf*M?}A8OfP6*iX^mqdLsIKCcE3p* z8&KMIlKquD0Okdl*u-7&ejqPvOG~X1<3x#w=+!T2i?iD$&bT<81g@>kreJw)|Lo}H zH-yCd1&&hLB-BTX7utq-9M_pD({4aZAfTpHrTs_7U@BJ65>li3M1gu7RSfFFqAx4T zjz0u%(0mgTF^pS%&o~z$m+kC&j`7zJ|9Bd-%eBuqyO1*L)IBOG25>z9U-D#0-MF~q z#-SzBzux#y0eI!pqtMkG-&P0%2rWTcRdGlL_XX|v2DX1V=a;(!?ag0M?M5QuUIWtJ zvwzW*Z{H#2!d@HQF>L+Vib6q~wWP@t>5Lu$YI`Ag&#$8Xx5W6ReoR5{gF0RJ(10__ZD?I1b19``4Jtz$jmO0!`!`%~_N*NWAo z``(x}R}*Rn7wlN{Kg~z)4?@{e_X(U^8ym%zWZ19VAVS8m+u)EvkC0KQxBz%XFqGW9I z36-_obv!d8lBJ!+adlKN8{asu`?Y9QyX<^kxxR9ByJnf>L(WiD7t5d;b00de4z?8E4!+fI`JqJGK5)&3$L5GbWqu|amw zRkSit;O8e07$WC!3~^a#9~&_mo#2qN_Wd@;!n@OpLC#4N$Wk0VlNPz(!cu%y2#sNQ`hudMd1B!=Obo zRqFY~if$!?2c6Nul$6-EL`-+jrgpSjoS-1QdvNRoJL(U$w?I3s|Iq8yCSok5yMuXy z8Ne&vMt@i5zjTh<*9XxBf9NpZ#$MiKDjJA)uT(~Irx{-_mw`gafEKU?=>SyP5zD?r z^kk}d;SB&50TU(cYG3^9tZhP+^~7=L^~KG4a%s5z5#YvT>$9=zHV`7U%NYlRnqIaJ z4(^ij>Kk_leSSxoxHfeG$$3WTQfgQ^o2j8=S8Kt z?LIc$Tjd?erzzw&u8J8c7;xQd|AG(;wF(pEv`WZoatx2r8rMSmpYG+;?TeAp>{j8n<39aa#F|%BjP7*@UwCxyy<${By?_W4oouIlTOzN4 zzJ7R+S^7>J`UDCU@^Yv>3T_=Kkr0`<-yc@5Re#O^*(EHqdENHK-f!Kv$h~SY(97Q0 z-Ue3xA4_QZ!)Um4pO=9H9PohbXHK3T!ONK22vv`M&Jg8+nx!vSO+F~uYnZVK@UVrt{RE6 zdx$YFcXL4kfZA*-d?dNC;rs4m#0|X|r0j*!$Vej2rA)zux(wd{nDdWE%wQevC4xM& z-JTDOjI`g+)g3Eu?H^zl7G|r@Z`m4dfT7M(7FG6p!^mBfGH<);{#27V3 zE+y0DP7#{0ge<%6dbAJ|_O|bq%E%m~P4L3-I6gw*Sy|BgHcjQGyL)Vf!296aFA>9= zBt}=BLarTr^WP^RIDE{+RO_;H%OghXGw6zQ@9o~TjO1XW zr)T2f`PwJH)0GMAN}Tvh?dI;XjcxBI_I2e~^`03k!9R)@u3+KfrK?3WP6;aLek2bG z1`eutz6G4k0IXEwpLjzA+}nHsVip#6ux3|XXLAZ30h(#`Yf3x*?^I$*@~uZZDF7?( zQXV1T<+S6MfDU#v7~_iN_w=q)%SmP+2rKb<^Kh+^_7|<>ERL)8Z`B1n;L?s}8B4{1 zHGyvsS9Ih4l>xZQQtH731f1^QANav3bIhXSnM0WR$Ubq@cBi|0=E@bg5?&TH%>v3J z576Y~DWAW!Sq@#qN$iTxIQlrsHI+cq^$E0o(z_D~o4qJ{WlykjG%B=<4#F&g`CbEC z$jx?GOFMPrNe$8q4pr0)Z+GZ4$N`GYhx;u-zd zv^iEo7Dsg`XuB(^!xwW4v^}_ur5Dvd9y9ZTZTJLET4DY<_xej|sWH1AlaL7WIthGb zdiNDJy8Sr7CsCQ5$C0o5?21u8G1zsBdm@RT1>0ADv9j1j)uaTWz-q?pY~$Z0t-7w3 z6iLu{&|hhz3S2?c0uM_K1ZW@Q{a+NBU&!%gI>VpQMi0GacICf@Ay$agW&ZX*oi{pW zS3kh;{|||S1D*dRr%6(1=w-yZ4BP?#Bk%gp8^2+Bke`4I##MG^mQ9T>;HI&3hU~^H zAiT!%|0_*OQV1emIvX{?Xx?$wOI}Mp)v~v`a1XGy5HyRov;lKBU zlmNr_2Ab}7(0z$x{7tjET+d$*|4U77w!BTaf~Ly$FZuj6*?*;B|1qjw+FhT?Uz074 zTLr}?AD=tuhP==5t_tr0qoFBXX77I|B%z6`lamO3H|zrSJq4D6##wdUmbPwiB$gGN zl>0l+^C`+Ad$8Nq)m7r@A!cqKZ@a)C)Wdk!zz+0LI&c5Sob{Zu-Q4{5m!IYe`^pKN z-%0xa<@$64c+m*<$+;?d$PqUN~^Lg9_iVO?Tm0?%A zw6YTwO;qG}Gb973m59Ex4FSlc44eWRE@$Mr*cf*a0)4gDIG|eaM*q*$1ygzt0H*h8 zPnAoIwP;NN2*1Xd{YZ%K4dyecU#&sQzNrM?_O?FDPH~!CwEbyW*=$R=;xvtwHE7<%?~tA0AC8zxoL;bd@4Lwsq4TNaOBr8T-4O zng^RcDZKmt{?=uW$y-G4KPtFO?fX;J85ds?3x8KmmxU(*_P;gy^09xL1Gw^^1!v~1 z9oaoVx4VwcuU)aBC@#)-#^?S_cD%*nZUTK`O{I*Lca$(18lLZe8sN7e1&>BQc5G}* ze!f${)({)pwd;bve{+p)Z-rg7vpcaOvjec|kmaa_`FX&N!SQ=Fg@ zjM4nY=eY!q{Jy!|#xf6|N!Adrye?^TV;{X%WW`xfMROEChMDRnN;)o{~M3)2Qn5U)XjyjE|R}qTuaZ z)^$yi#y#3PpBic$)_9(_d<2KytjF+_vLh{PUAqBxu{LV=Ah?A*1GN4i;x&%7Rk&Z{ zfWFoPV9<)C3Mf%G;GSNR?0)wo>xUP4EYXF$M^jy$opCQ{st5z_x*)d~P6Q4=QM=r8 z!5GCDX=qL(rzfe$pnuuum-k~olu`i@QU>Qa}ogR2mV9DB^9-i@4SpN-t-At|GY;wFL#yuPOwJn$7=vEd)J@V zQC)M<++KfT<(j9CC1DD9LbdiQR{2{EZz8^%efU?q$@o=qYFD}pzG^(s8V<9;Y9NqT zY#UW|+Y33^W377^S`24iV#~_npM#yc4E&F zAwBY|Y!0ht`99?U;p-nYGKEnm0E`&_2Wjha-_D9~Us{Syr2$@YR))#T^HX$jmS(DX zip4En@Sl7z|2o%AcA>s>R{9W4r0qnJE{+m^wSQr3w1jK0U@Fo+a3YB4ss8YI)p@EA zz+lTu%v(4-0mjHw?|=>a=Q0lKbE)TH)h=d2^TKRcb9m77Mqt;{o-kd@@Y#S{?!$K6nBg^I&2% zBWOz1V%`qOh)EHvKeJ5l=~XVkX3{?O;4$```4?ZU{DuT7$BwPWoJItFwMDJc_C3OI#CHt-@hC6B)KWFnGf^0 zN@$5&6WA>sv&V1m@zYN7`Zx4~UG1;dU$o?M#4rcguI9BwKT!s8Sq}SUh$p4kZ+cqa z$48|-T(1t)%ZS3whq4A@%R#H|a3KcG^CVBB0Ppcns|?wx7cdo@RL=GGyQv@lZ`8D5 zQw)4&Hrsg%n}@)oyZlGC{r-!bL!CW1rxJeM;G2)pdOp5eHuw)pF2|Tm!seu)?f&>x zs_Mo0{YR7I(0Dc@^m?qUdk{`txhnT4t;5mTL4(JM z{+)-#kGM|GPpX2zE(YRzT}*#f-I|PB3~Tz3118>f?LX2o;432Rm2y?zMH+x!HYv|8 zlV)Wb2qu75AkAC^wiy=zIDJb!I=Y~#m;2NN=8s)Vai8ks^G6yfWFfJbp)%;5((BZ% zhSSsl&c#SRf02h9BuZfhIKO7MrMm?S&t6X(5=CP#0*X0k1g?%)x3_=44Ps0otdEoD zo8Sds+ZkyIXj_I8^<4ohvG=O==a45lWvf5)wJNgkNne5X+X@MKjd4flYdLOkkoy35 zQ2R&g|4(UO9uH;v{XZy`3_{jyPnJB0GWOk&B&4D&5yHq8LUvlLp(tCnK?zB=?365J zow4t-FWGm-^1Fs1dY;es_x=2SfAz|J&3#|@xz0J)Iq&zm&MisLakJQIQ@SzFWlb{0 z&W>TV-}@~%*ZQ1x!QXzflEyL{(C0UJ0ax->*XOO018}0@eKdfS7d!~hRY8$pr zd8TNAgqFnl(~FIAz)VD30!3KZa?981Xrj|8X7ui@#hA;j7eFz0fU^9Ad@K5sK9{9$ znMGIpM2nfMYw|?#isU`_ImhKmXtuxmw(B`bh*vvGR#sQgtaZ4@;Uv}H_tf8Bu~^>B z@DXw+4Pct|Iz1Jr_dU(BEc!UZRm`$$dsDbedo;Wr^_>-Tohb&yv)g8+Etmg`@Ql*; zmqxYY z6P-y)gPg;^&TyPrF;yqu3EtLVDovoy_MzV&Hl67=C!nDZ5{SDYr9h8e+Z`7sJ<}|B_1K zF*WjQcV)J=3T}Yfu74Zgy*z_#Ap?-J$4+u|P$!NjirziIN9-k9J5k&JQ~oxD*OYWj zR4mBh0mM-m^j;x^Mp9tU1HFTM!Ig9!$Q2!Fwm`Yf$`Uw`^f^lmpYm(38^E4M_(JgV zpB{{N@sqJR+*$gm`w=bL*$*}s8VClo0_&rDDmo$aKWjY^E*yV4jBSt&1s??9#kXcmxavcGwesQyu>*u2B$VVb$Q z`5VD0W-LK*;|vYm3&;U)$=rg?jWbC@vO#k93hfmT0NoCyBUZM)i;%`YypWZ_M)l11 zo~Bu7uCM*zP#2fjeum^EA%N$cdm zdYstHd43Bq!n|zp`FrhLwFcOz_F?SFk6E02rvskglz$WfE|IL7wl#d znhuWpWIgx^G#Ig;eAL}5d9%A>5$$-L_+MZ6Uc#m`LZDoz?#Oq+Y(O3)zBM9KR5S(X zPj~l6pRVsu2p5-%Yl@vpJY%;|G0 zwB98y09P}QEi=RxJRU$VZ0HG~X)*-*CulogbMbb3P8#KL5)&7XKXRwMII*UKP|uiz z(dEinQd%38Ze0_-=vgy1E#nRVRw+5?V+#roM=iUG)qSZ9L>$flK16J7jCqq%6c^82 z`;lJSoA;1&Ve51ss=Fs0)pbE%c4P%qrhF5$a+@8HzoMg4U0}D8XBBv`#mEn?TfHOp za#N;y|Kuq0L-7IRx5UXfI}d^zB` z3%YQHGa+(Z%%;_~Hr)Rq=X)^*;#+TL63f4!JdPZI5q8ZfqzmBk$!Z1$ogo~Gi6)ch zTLAzJAZx>%C}a-eluTD5OwZ+1WePq%%s3N)wj+-L4W~qGKW5DD_TXTW+9Ky9D|S79 zzDjegHH}p9E~r8Kny47o5EGE_H#9%0W3}?lHSOl zT5t5yNJ*xELAhg!Rvw>Lk%Pf^vbsQUjIHZ}sHms*$V>NGJ$F|>EtRP7@fTtamF4BE zfVmodd9t9ZiwT+Xn#-y~aaX2a4s!!o{OpHCrXgaI6AM9)7vC#j%sRx{>k>Q(J|hhHW2T0#}Ddp9l<$tdO;z z^ifn&T3Ie>N~roF^Q8Whw&Lb`^t)VhaJ(OO`F6OmGKu^4RZkH&aY4{3=tnR;zp-3T zVOaQA?VE-}-xr3QGcq_~KB>Qa(@XrK1h^*3p4Bd~2Ay%d#4y?rG~KlV)BXnPV!_{_ z*x4$c$(Mv@g@|+F0iOg~p5acM?m?kLf|qC`gBp6u%VD3D)x&sA=;&nrmYq4SZQ0u) zBF-$GRsGlN#KfZF^c=IcvwyQ<)#@6j>(_<@h$FDRGt>7892^qh7~?4YWK@$dWM$uJa#jor<;$4-Cn#V3tWT;9 z8Q_;>LOCk-_QHL<6X%!NSBRki1lieH4`Fj4ehBFTEjjMg6hi4dF5G zxKn4TeEO&%H2?JB$7&<8l8kB;Nk|4;WZzyXjuecJBTYH&a6wrsC-UOG@74Kd_^22e_DchEh||9>3* zFM-eR31K0_|Lu+bf1mrqxE?^S^Ru%jh>OmC#Ghb$qlxF?w~veOQl`f${}MAPDuz2R z(rAEMq#e{h?*2WKqmYz?`7<^mq-2X7y_>QVITB#0^A{=0Bih!ygw-^4=JO1U2RQTP<1(>4w@j z+*z{SN5LtJKf_2c6x7%dZGsu-TV4VOnZ)$V$k*FEKX;U#Y8T9!x~M7t^xR9xHBM|U zfIWQPZe@{kgFThgC+{TW{t*yvv(-caj7)Bu>}IM4mIine-E?WVy5*DfamW|Y_V2J! zdyPI1yLCBL<4$&rv4x@GNksxkIB-+@yahJksA!Msw@lX5)(+#kg%@nRys^~AV$A|E zCip`$Uqaqa%B=!1RQP#Sm3qhcUXnilP(`PJ=G*Xp;T%*Psd`E3WT$}Hyb=Wch_OidIor{@ZVR1Glgj*^b;(S!T^@=)hpKV~6Pg zfsEgQnOs=7M}pv~B-VOYWeWM}<;Cvl^-j|1Or*$BPZpYqUU2&6UfI)ef@6Wx?Q>l< zVOG}DcaMY7mC>?sLUfTw=pxrqC=ZDKd*@rX+jHRFB-FaXZeJfKwS8DC%YVW`!wDvUiNeiiU#@3nPDDmd)hETJQdSXXCt)Q}*#ND}1&>XrLPp#m zqmi|IpMD23+?;GQ8Y@+lmuG78TIWzBdIB83a zL+_{B+S+U9_<7SkoQ&gI18KuA1vNpwK%vU`P-R!#93GvSSeDNk7^tUJ7TMnDj~2B{ zh>7?y819*ocjNftC3uK5{00*p9T~Htx6@*LL{FVu<@1Ou68xHt7Y1EUKoH*=paEjf z$l9SD)guR^1 zZdoH|_6a6gx}4}XQtQVku@3siIJJFzyUZyZD-D0eSmgql^}%VxhgL;Z?Py-S$KNs6 z(o<6CC7f(@b@ffhJ32ZFlX7Vljw++8JKsl*11;^At6eN zPr&W6S$;2-LQqRVPEwk*v?8e;CYWxUG4jMjOixzkcHOVou0fY-8z}~>HFZ=tV-lVR zJ$B-hvN~WmWx|PSM@$l>)Yjh<3fA35U%j zk=SRwJ8QI>k6feLm3tDPzK$G)Gbs8R7`O2RvGHg%gi;62WlF&k{?LDmXF&gF%bXPx zVr2eUyG|lFUvvMeXFs2=fasocY4|$EV${XcdY>u{$zI@U@&HBnu!+_ zJf=ae2|`Q6f2s*<*rR)jbrB?fvq;Z`Dn+J zZsAw|O-AUy>z#}f5?TDjo=ICBdNYR;zchi2g8v~SMz#+otx{W;>Dizj%NyOOye>&= zC=_~}%uBTBL8?jUAY9=U4C0i4RE$F=lkQ#!zK@L24D>QqYlI*IcI8yxBI+Z&vxJxL z8*RVonTUA(9;tbOZ3?Fszb!2GX{z1N2Rlpp^3{9ocm$Y0C}#XoP5R@?J?*hhA{(HS zAgPP`Tt-H02eDAXzHC4&eWVo{)x2Z-X?#cE4ANbVSXTqzwcJ0)A29x%r{QJu!jJ@@use^$8b7gJ;^iPiNywui;K6#9ea#kcr-|&o*~>pHH0txZT&WwJ z{c5=6gP&u845h^`Yhe8^pMo=RHV%f9LKt_wBrv_mCXLv0+>@Q4*ThNQGo^RGHkq}$ z^mpTN8oWO%?{sDX?X`;dYtIKsXqc&JyUN0{dy9D=SSo1igE3KoX9M??24|W;C1S~- z7DL}T>!%Q0|3OZYGH^4i{c8thGC={$Uaq`$4E6c2W3}~5N_%Bo^I?ZOPl?o#5Mh@mmu zUv7fqYFZi;eB5k<5U4g#=yI_pH zR#0&8$7cQ`J}XEP*2Jm{Oc3$-oz)9sOtoulYHjy72EP2)hwa1|mIuKkcB4ujw}CM6 zzMS3Nw#G8FI3z5f-V2ikRLa6pViujUb5+zqQ>8~37uvUjLMm-)Nti<=qCC$1ekZV4 zqGvU+Q%+JX&DGAGc62`|s;Wq@^{^o&rGRO3tV%?r z|A8iA%rhtZ`JlpeFj=bRh&pg^h{1Y0hEl?CLVT#+Fhvll$43{`9ptiNx&c; z5rmfW#{;wq?qZR>yu4q*}NZf_rbH{GSl%wh|zI?*l7e97CzY_GrA7vzbn(oR=(6KTH@dZ_KWnfuD{C!UMpMVI-#ppb;Uy|yLNi;!Uag5yhLV*2v_1YZC7qxNOgVXK9~q;Kt5 z!`P6u5M)=fdymH62GwX7RNPUxa%)`D!neo`Lr;8BZRorfKZ@tilPlDSQF}Q z+~?>bRjJLd9VVp0bLH+-Z@+I@e`Qk=93HV>?`W9LbO@IyEC642SQ~X<>(;!TKcBF* zsSx$BvDAIxO&^iB|CF&^C9SJfUO%I=_pguIsA7!Bz}M9|As^SRVZD;G_JvcQy?c7E ziHkYfL~Q2im9kK9)C0DEzI3ze$J$zSYKowa`zG)9pj0M5|AKLYTX}C%{9p5`+lv9} zsgfD)zE3;t+aVqeznu|S&Yb=sP(ypydTtyv4*>_N&4#`wbHsLw8+|NUr$ReYop-TZ zo9BtYru^pfcZ<=2f^?-T^{Z{}o2Bt+iLF&_hrVK$&Gk~hsiY`!^15obT(0ye7SY#_ zn0wPced<~%m0Cr5w@P6qV<}3I?W0dARKkU3PGEALJ-btJ>mqQL&eNI^uhp5|5j)BL39r5n?MB z=2p=PdO4A9lb?W8IHDh3NmA*lctU0WStyX+!L?hA!yExNw^xQ`LLc7y_#9ITHP2i* z1yy#zTMm*Tp|>AiDGAGQT1pz2tBoM_>4_JznFLXHn~tsXB(;aIg|KlG=m3NlOb7hlnwAJh|eO7Kr##*I(KUNh;Cwn?3#5S9jVmkpnSw z6UyUe`>hP)+B{xM%=*$X=cNg~>(@Io26MehqETh_Kpv;*Ij)8?u8_ndmBab!++4mM zH8iB}{P}fI>k(Y-ctvHtEmM~J_*-O}&f3dI-0QlN7zpAY&WVoh1rg@Pz5WMt>F&k% zdkWGST^C!DVtd&?t40a`N(|ZBj4+V|ok|tt*D|EMLm!xAWV|2C4pFVoTWU=KvHkF{ zYVl&@sKMxTkNbm8Q`d6r8F-x{cs3GB_fQiU<&3-D%(9n3Vf&+{mfUuXvnk>vwIrs_ z%I()mDfqC|(Jv=={0J_x9YkG)6I@?xzM);{AT|2*9TQ@s-l4>KrKg7L@4xz1E4NRj z{pi(ie!oq=nN;9pSQcGTX;dTVFy6TE^j(zAmCK8;3^nnko*6gQ$=1|c+d%f0=)p-n zGyaQZ1Dhtbd3{sR(R$abi{Geq+bskHvn>aPm(AYLX(ew8ccKK%g>PzgT1~dcc68wp z_$uDg&|vU|Z3U6e9CpdTMIk77OY&BLXzVRj&-K?gNaQw6-&D)VIX3XQT`oy0V*ri` z4H6usR{=sC@aGWK`vp3%8^uaKG3bNxT{9Z)jE`4IP*DAta%G;kOkoZ!H-?L=K>Qg; zERtTZ-04^!pd!@sFx}NbA-nd4zF}rZ7E^s~ZFOz!WJgwCZN%xc;zU9ONT>F46pu#3 z`M>ID1lh^hcqoaUeOr@oTC8i}HE&@Pkmkq5!L?QA>=oNwQnI813(vk8Rz z?wg+?JsrzaG6S2ke(|}!va(=5Kk9*4+w%N+d_4Kx=nGC4xxglk+PhP?^GueeW`}(b zIVlm5pQ==`$s!${KYOhVE>_bpqoSwr(Uz3P|5kYf?Zobz>CWrxE-F29e`JmIHg{7X$QDMO<7Q zz?drF4<$~l8j_E^V173PQN}uMis(wuAMe*UT)rCJ?~-y91_P1n&f8ty-E?KkcE!U`d{v7YKD+)`GnR)UNb(|oStY~@hptJIPntvEH*$g z&hYfi8zx}o!#&*`;T?HJ>l|fuL-n+_&3%1)m71_-5Nl&YcnBon6Qb;lsU^aDOQZ2( zq>a6rqNxnBO6mTV%ub>Ufm~87K#`GdK_<9CM<{b$JdSulxv7-HS)-xK%~`eA3=McAD-=aBQM`(~5B1nnTgdeHu+&H^3V0S|66kgiS4Pr-hI>fOs#iX;;g41~0<0r`oy~XFpvyapb2^AMK~1Z8fxlmy#G^U_OQ zSZd0I7inoG4$jE(Al*k#fY`JOvA=D4$1~ZP1H&4sBZzp9|5jw03QWAFy1LNAvDL}R z2ln=XW5)9GN!J_5xPNDO6}!`_`4&%Gj0k=6CKmmws7Q8#_Aw4lz`7A!SjSE3Z!8>T zLY;*u>(@bdl&_u&no=t_WIQ&Ifj|ro4-d?3;KAir$hOrn!e=!Hs)NY^#E?;CjWS}@ zHje^;gbGft=RaZRO~IkUd+r>`GudTLP&wtQbfw?{6zVycYlg^}oF9Sj!V@Y5?ZSHa zN1_=+s7)(BdA3B#+oIz^k3j}9A|tlWLKF!P*T;&`^PYeKcd`bq{A<7fLhe$Db@$L?ZP=&Ew@HLmz$`m zPBFXxSu7TRV-IrzW)42%bJ%UrJOdtPKSkWJA*WpXsV!d$cM*f~v{~P|L919HtKRlZG4HO@@-@dg1 zF!&j<6;*U)0H)VvL21;UgHEdu06JKh|Pp>s~S-B5)H;o$5M~hYws#QDpriP`%v|-b}NXZVUj|n5aRzu93wyx9ojX5F5r55*x)7|qYdtxl~8xjkB z15V`TZjfVSbl}e0o14pnettm}OrJiOn{}sZx#cDr(05L>IOkf3{p_xKrvM+c#FPs- zeP}(TE#sOep;O68_HE704Y8#bE7MQZ)dRwuu!6Pd?SAz7gZp*>6j~+U@t~x-wb0>? z-BN7DNm3?DGG0)qIhB_SPW?)#sem?o-v=sU7k}mUuZ?co{QQDeep8Y+nc1eD(`Aus zk(`Q|Oid326+r!%nQhi-hy1N|2l+vAUTVFoi^-C%t^OtzmoRJ!fiPBcM3!+euUECQ zkbt|KauH~%cxOOe&&_ctx3uTfCaNd=LVD@yKrc8}_;<{Dot0#!kRMNwR7sPYORr<- z>RBHtpUoNs-1(=cYI&^u#-@+St+bTf*nq=2y|4Sq4O$39ywVx*N9HrV@c5XHw(61E z4lQj=#G~0krc%x=x|!nK{1?JJdL@`KwAX8{m2NkT2HH_Bx^TcxDBg-I(zhp2(7c_a zS7DO*N?X}8rl~&no6RX2Q_Djkg`wwr*7~-KHD3v3G`wI*FE7!_=A1KU&AcVfRx&cy z#;(<|z0vT|w5iwmR~m1{je0Nk`>!8y_x5A@^sJj-kVR z{Oo${WvHeP6^=NfgN(W9+IxaTj!d9}CULs0YJS*_v zXN^HkFq_zP^X*C(X>OloSRo?D)hV0C&^)t<}1KVp|LS|=n#jWmhr z0L=%H8dIS4<+^58uls;+bWTpJuj@#?MM?H)%)D;#{fZkaecRSS@3?La%soEpzTG(> z>Ak!*su0T4W%pCsP}P6y++d<&fO~xD#_)^xx{n{(R|S@Ks`6+xuUZStE%}r}=jc1= zO%ZB1@Omehk_a|KeDf;)dy7u~hK(fK)#%RlK7*MImd^S>2KQ3ok+)8c9aA5&CIl_k zUHVGCfvysHgMp-h&Ip8kZqaaPsotj2qofyW3%R~Ma+u6q)tK(pl+l>fSbme#DeBTy zOu%XdHM_3S%v~!aat#|(;T&Sq*?cc{(S~D8z(r;EH!2B<#DaS0({o`Pg?$1mxo(?+ zJ`y~sYoGtpO$n>&`B*r8Cu6f!oBmhmX2NrHkaxa7Hq*x4Z~fn(=&nb^j2oG&ol(#< zlZMVVUChAumxP!qZr;3~VDlXO)hggd$jdUP-Q3*FB-T3njY(@DOqnUdZ0o{hbX{N} zESp-do4%N8RBm^R0dPO$E+v(6kX8%$Do2w;{I*+LbF!6x<2(?xWxi1j3Yi{AlVMsP zl{Qn0h8_4;%X|JRCQ|MO1r8}~**1 z5OZu$hIKzzlkXbiJ%!T>Qcmg{LiUDzCBKeAojO3Dz^^9+MSXh)ERUN0hb=H!2$oGD zLAQq}ABtU+8~zcm9PsV`)wTU3%;^$*fd~6MB9@Q)3JPxZRssC|cM|nZf%*=tsRR1+ z81)^X&VadF+8@oXvSDO8PGlnCasL+x4+KY7xL6KltM3$Yaxe`N4igb3*Bf0DZ>4vt zB`~`D^pp|?k>q|V@jJPyYki+4@nE5@Gy*mr$Xs2^U9{BdXjz_BAGX>z^ux%Zdu}_r zk8=;J#gb*O_TxcQ;u3Ud={_PqLUUvf`Mu2@S^1OR0*y)p#4i>MGbB5Z3e!EY$_7w? z?C!=9D03jh#NHCnfkeA$n+V}o>HUm5;HyyQyu-l(E-{!E_>TS*D4w6Up6zAyEj_s#{w#1M3 z3fc4_>h>V)LxRe2L%YoXsDpb4*3{RZcqR+Th32d{#FUVh(tiGfmAQ4zvCDVczswgQ zI;ral?8NvJI9)L$W6jB2OWe}pZV5}jS$+`3vW;W&K4S;|mn`t}2{A`i8m+Py*w*K4 z59r{PMtOcAA*s%~$)TaANy^&i>S@ajF}0pmTkcUWxkC-j$Gmspp5-$n1<&vK2Q09G zBeioAVY9D+pZ?h_#3OM_qd6;ZM+lA!&DDo!-sK>jq;e-2oH|cAVgxOatAn5Z_l`p_pC~A)Si)k38eSjRigfJS*1&a z^I#En0{+_e=l7sIs@i?bHT7!2&TOl9C^-EL?r(e?8wVq*CTVrP%7pg z-NBotSs>Ju!eB2-hB~wn0wn{r}&l!75R=pm1R@uJ3)`|P;Sjk=auPI4j*$+Q6s%O zkDWJ?63YJ4$C-#k_HSWkN*5cI#2luJ+&0%&lN5=7N#MQR#hM`eyYt0&$=yr?y(8S# zhCy3#sBWT0QM$}zq33lGb=lTTUKiczE;UPaeQIr100I>azsQ%(f0FLfn zk}wMzyI=_THeBwGR|{+>38{D)g^H)Ho3v!VXxS}1p^1?XqE-4$;tkMX=2)9(c9eer zo8YCMBqECMsZ|j^qnnLTb9Bsq#J$C}JZMcXNyV>07BrPi-(AI1Wm9{bc}zI{F~I5u z+POHhcUA0UW3=q@RM*NE0#fiPfh47{^A!~p1Kpzh{8{hcgMyn@LF+!kK0d5jP7we+ZxeGIg~7q0 zyWA=S*jlHjLr|W`0D2*nh>OqMNz>}SAwj1BLt5}YG>^U5k*A?`^@o=y+Z^#hh!1b@ z3_x=|BA!QM09qnbaO1e5Ex4k!h4c`9ZVQ|$#Q389G$tQ;bi@*qQOZ2-8_KUyBSlH( zZA}6+?0~K!L=1B_;CR+FqgX-}CvH#$5p?JWHRuijUVM(}Ak?MMkJ#Vac!@ZCk_$2KkDFK+(xH`u3=$sV6mLLjjJg8vMJp-{Vj rWGUyx&5KOdM^6@h7B`}F$Q{q&*SOB}JlzKHQV>OX6}gYHcOU;BQV*_m diff --git a/docs/images/findAlexDavid.png b/docs/images/findAlexDavid.png deleted file mode 100644 index 3acc2666e019d4c9c4b159cd27c2454e128d8cb0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 168017 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 diff --git a/docs/images/findAlexDavidResult.png b/docs/images/findAlexDavidResult.png new file mode 100644 index 0000000000000000000000000000000000000000..235da1c273ebc2117b862aee21de72a412008be7 GIT binary patch literal 19640 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 literal 0 HcmV?d00001 diff --git a/docs/images/findSerangoon.png b/docs/images/findSerangoon.png deleted file mode 100644 index ab59f412f187712959049d643ffaa37e3d60bc30..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 167777 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

    +#B=(T8_GxWY`2mT0HpG$QCx%H2|G3c8qMzfE` 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ÐxTGMs?~ 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 KWTm)q(Ek8m8-%9- diff --git a/docs/index.md b/docs/index.md index 743c2ecfa55..2566a411ccc 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,9 +6,9 @@ title: ImmuniMate [![CI Status](https://github.com/se-edu/addressbook-level3/workflows/Java%20CI/badge.svg)](https://github.com/se-edu/addressbook-level3/actions) [![codecov](https://codecov.io/gh/se-edu/addressbook-level3/branch/master/graph/badge.svg)](https://codecov.io/gh/se-edu/addressbook-level3) -![Ui](images/GUI.png) +![Ui](images/Ui.png) -**ImmuniMate is a desktop application aimed at General Practitioners and Healthcare Professionals**. The application intends to assist users in managing patient information, and tracking potential infectious clusters. +**ImmuniMate is a desktop application aimed at General Practitioners and Healthcare Professionals**. The application intends to assist users in managing patient information, and tracking potential infectious. * If you are interested in using AddressBook, head over to the [_Quick Start_ section of the **User Guide**](UserGuide.html#quick-start). * If you are interested about developing AddressBook, the [**Developer Guide**](DeveloperGuide.html) is a good place to start. diff --git a/src/main/java/seedu/address/commons/util/JsonUtil.java b/src/main/java/seedu/address/commons/util/JsonUtil.java index d934cf798c3..100cb16c395 100644 --- a/src/main/java/seedu/address/commons/util/JsonUtil.java +++ b/src/main/java/seedu/address/commons/util/JsonUtil.java @@ -37,8 +37,7 @@ public class JsonUtil { .setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY) .registerModule(new SimpleModule("SimpleModule") .addSerializer(Level.class, new ToStringSerializer()) - .addDeserializer(Level.class, new LevelDeserializer(Level.class)) - .addSerializer(new OptionalSerializer())); + .addDeserializer(Level.class, new LevelDeserializer(Level.class))); static void serializeObjectToJsonFile(Path jsonFile, T objectToSerialize) throws IOException { FileUtil.writeToFile(jsonFile, toJsonString(objectToSerialize)); diff --git a/src/main/java/seedu/address/commons/util/OptionalSerializer.java b/src/main/java/seedu/address/commons/util/OptionalSerializer.java deleted file mode 100644 index 11b0000713e..00000000000 --- a/src/main/java/seedu/address/commons/util/OptionalSerializer.java +++ /dev/null @@ -1,30 +0,0 @@ -package seedu.address.commons.util; - -import java.io.IOException; -import java.util.Optional; - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -/** - * A Serializer for handling Optional values and converting them into - * proper JSON strings with correct null formatting. - */ -public class OptionalSerializer extends JsonSerializer> { - @Override - public void serialize(Optional optional, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) - throws IOException { - if (optional.isPresent()) { - jsonGenerator.writeObject(optional.get()); - } else { - jsonGenerator.writeNull(); - } - } - /** - * Avoids directly specifying Optional.class with generics - */ - public Class> handledType() { - return (Class>) (Class) Optional.class; - } -} diff --git a/src/main/java/seedu/address/commons/util/StringUtil.java b/src/main/java/seedu/address/commons/util/StringUtil.java index 55d7b2a1878..61cc8c9a1cb 100644 --- a/src/main/java/seedu/address/commons/util/StringUtil.java +++ b/src/main/java/seedu/address/commons/util/StringUtil.java @@ -38,27 +38,6 @@ public static boolean containsWordIgnoreCase(String sentence, String word) { .anyMatch(preppedWord::equalsIgnoreCase); } - /** - * Returns true if the {@code sentence} contains the {@code word}. - * Ignores case, but a full word match is required. - *
    examples:

    -     *       containsWordIgnoreCase("ABc def", "abc") == true
    -     *       containsWordIgnoreCase("ABc def", "DEF") == true
    -     *       containsWordIgnoreCase("ABc def", "AB") == false //not a full word match
    -     *       
    - * @param sentence cannot be null - * @param phrase cannot be null, cannot be empty, must be a single word - */ - public static boolean containsPhraseIgnoreCase(String sentence, String phrase) { - requireNonNull(sentence); - requireNonNull(phrase); - - String preppedPhrase = phrase.trim(); - checkArgument(!preppedPhrase.isEmpty(), "Word parameter cannot be empty"); - - return sentence.toLowerCase().contains(phrase.toLowerCase()); - } - /** * Returns a detailed message of the t, including the stack trace. */ diff --git a/src/main/java/seedu/address/logic/Messages.java b/src/main/java/seedu/address/logic/Messages.java index 457390a362a..86585749949 100644 --- a/src/main/java/seedu/address/logic/Messages.java +++ b/src/main/java/seedu/address/logic/Messages.java @@ -6,8 +6,15 @@ import java.util.stream.Stream; import seedu.address.logic.parser.Prefix; +import seedu.address.model.person.Allergies; +import seedu.address.model.person.BloodType; +import seedu.address.model.person.Condition; +import seedu.address.model.person.Country; +import seedu.address.model.person.DateOfAdmission; +import seedu.address.model.person.Diagnosis; +import seedu.address.model.person.Email; import seedu.address.model.person.Person; -import seedu.address.model.visit.Visit; +import seedu.address.model.person.Symptom; /** * Container for user visible messages. @@ -17,9 +24,7 @@ public class Messages { public static final String MESSAGE_UNKNOWN_COMMAND = "Unknown command"; public static final String MESSAGE_INVALID_COMMAND_FORMAT = "Invalid command format! \n%1$s"; public static final String MESSAGE_PERSON_NOT_FOUND = "The person provided was not found"; - public static final String MESSAGE_VISIT_NOT_FOUND = "The visit provided was not found"; public static final String MESSAGE_PERSONS_LISTED_OVERVIEW = "%1$d persons listed!"; - public static final String MESSAGE_VISITS_LISTED_OVERVIEW = "%1$d visits listed!"; public static final String MESSAGE_DUPLICATE_FIELDS = "Multiple values specified for the following single-valued field(s): "; @@ -40,55 +45,45 @@ public static String getErrorMessageForDuplicatePrefixes(Prefix... duplicatePref */ public static String format(Person person) { final StringBuilder builder = new StringBuilder(); - builder.append("Name: ").append(person.getName()).append("\n") - .append("NRIC: ").append(person.getNric()).append("\n") - .append("Phone: ").append(person.getPhone()).append("\n") - .append("Address: ").append(person.getAddress()).append("\n") - .append("DOB: ").append(person.getDateOfBirth()).append("\n") - .append("Sex: ").append(person.getSex()).append("\n") - .append("Status: ").append(person.getStatus()).append("\n") - .append("Email: ") - .append(Optional.ofNullable(person.getEmail()).map(Object::toString).orElse("-")).append("\n") - .append("Country: ") - .append(Optional.ofNullable(person.getCountry()).map(Object::toString).orElse("-")).append("\n") - .append("Allergies: ") - .append(Optional.ofNullable(person.getAllergies()).map(Object::toString).orElse("-")).append("\n") - .append("Blood Type: ") - .append(Optional.ofNullable(person.getBloodType()).map(Object::toString).orElse("-")).append("\n") - .append("Condition: ") - .append(Optional.ofNullable(person.getCondition()).map(Object::toString).orElse("-")).append("\n") - .append("DOA: ") + Optional email = Optional.ofNullable(person.getEmail()); + Optional country = Optional.ofNullable(person.getCountry()); + Optional allergies = Optional.ofNullable(person.getAllergies()); + Optional bloodType = Optional.ofNullable(person.getBloodType()); + Optional condition = Optional.ofNullable(person.getCondition()); + Optional dateOfAdmission = Optional.ofNullable(person.getDateOfAdmission()); + Optional diagnosis = Optional.ofNullable(person.getDiagnosis()); + Optional symptom = Optional.ofNullable(person.getSymptom()); + builder.append(person.getName()) + .append("; NRIC: ") + .append(person.getNric()) + .append("; Phone: ") + .append(person.getPhone()) + .append("; Address: ") + .append(person.getAddress()) + .append("; DOB: ") + .append(person.getDateOfBirth()) + .append("; Sex: ") + .append(person.getSex()) + .append("; Status: ") + .append(person.getStatus()) + .append("; Email: ") + .append(Optional.ofNullable(person.getEmail()).map(Object::toString).orElse("-")) + .append("; Country: ") + .append(Optional.ofNullable(person.getCountry()).map(Object::toString).orElse("-")) + .append("; Allergies: ") + .append(Optional.ofNullable(person.getAllergies()).map(Object::toString).orElse("-")) + .append("; Blood Type: ") + .append(Optional.ofNullable(person.getBloodType()).map(Object::toString).orElse("-")) + .append("; Condition: ") + .append(Optional.ofNullable(person.getCondition()).map(Object::toString).orElse("-")) + .append("; DOA: ") .append(Optional.ofNullable(person.getDateOfAdmission()).map(Object::toString).orElse("-")) - .append("\n") - .append("Diagnosis: ") - .append(Optional.ofNullable(person.getDiagnosis()).map(Object::toString).orElse("-")).append("\n") - .append("Symptom: ") - .append(Optional.ofNullable(person.getSymptom()).map(Object::toString).orElse("-")).append("\n"); - return builder.toString(); - } - - /** - * Formats the {@code visit} for display to the user. - */ - public static String format(Visit visit) { - final StringBuilder builder = new StringBuilder(); - builder.append("NRIC: ").append(visit.getNric()).append("\n") - .append("DOV: ").append(visit.getDateOfVisit()).append("\n") - .append("Symptom: ").append(visit.getSymptom()).append("\n") - .append("Diagnosis: ").append(visit.getDiagnosis()).append("\n") - .append("Status: ").append(visit.getStatus()).append("\n"); - return builder.toString(); - } - - /** - * Formats the {@code visit} for display to the user for check command. - */ - public static String formatCheck(Visit visit) { - final StringBuilder builder = new StringBuilder(); - builder.append("DOV: ").append(visit.getDateOfVisit()).append("\n") - .append("Symptom: ").append(visit.getSymptom()).append("\n") - .append("Diagnosis: ").append(visit.getDiagnosis()).append("\n") - .append("Status: ").append(visit.getStatus()).append("\n"); + .append("; Diagnosis: ") + .append(Optional.ofNullable(person.getDiagnosis()).map(Object::toString).orElse("-")) + .append("; Symptom: ") + .append(Optional.ofNullable(person.getSymptom()).map(Object::toString).orElse("-")) + .append("; Tags: "); + person.getTags().forEach(builder::append); return builder.toString(); } diff --git a/src/main/java/seedu/address/logic/commands/AddVisitCommand.java b/src/main/java/seedu/address/logic/commands/AddVisitCommand.java deleted file mode 100644 index 13bb76c9109..00000000000 --- a/src/main/java/seedu/address/logic/commands/AddVisitCommand.java +++ /dev/null @@ -1,83 +0,0 @@ -package seedu.address.logic.commands; - -import static java.util.Objects.requireNonNull; -import static seedu.address.logic.parser.CliSyntax.PREFIX_DATEOFVISIT; -import static seedu.address.logic.parser.CliSyntax.PREFIX_DIAGNOSIS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NRIC; -import static seedu.address.logic.parser.CliSyntax.PREFIX_STATUS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_SYMPTOM; - -import seedu.address.commons.util.ToStringBuilder; -import seedu.address.logic.Messages; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.Model; -import seedu.address.model.visit.Visit; - -/** - * Adds a person to the address book. - */ -public class AddVisitCommand extends Command { - public static final String COMMAND_WORD = "addvisit"; - - public static final String MESSAGE_USAGE = COMMAND_WORD + ":\nAdds a visit to a patient." - + "\nParameters: " - + PREFIX_NRIC + "NRIC " - + PREFIX_DATEOFVISIT + "DATEOFVISIT " - + PREFIX_SYMPTOM + "SYMPTOM " - + PREFIX_DIAGNOSIS + "DIAGNOSIS " - + PREFIX_STATUS + "STATUS " - + "\nExample: " + COMMAND_WORD + " " - + PREFIX_NRIC + "S0123456A " - + PREFIX_DATEOFVISIT + "2024-01-04 " - + PREFIX_SYMPTOM + "Fever, Rhinorrhea " - + PREFIX_DIAGNOSIS + "Common Flu " - + PREFIX_STATUS + "PENDING"; - - public static final String MESSAGE_SUCCESS = "New Visit added: %1$s"; - public static final String MESSAGE_DUPLICATE_PERSON = "This visit already exists in the system"; - - private final Visit toAdd; - - /** - * Creates an AddCommand to add the specified {@code Person} - */ - public AddVisitCommand(Visit visit) { - requireNonNull(visit); - toAdd = visit; - } - - //TODO test cases - @Override - public CommandResult execute(Model model) throws CommandException { - requireNonNull(model); - - if (model.hasVisit(toAdd)) { - throw new CommandException(MESSAGE_DUPLICATE_PERSON); - } - //TODO: Update patient symptom and diagnosis to reflect latest visit! - model.addVisit(toAdd); - return new CommandResult(String.format(MESSAGE_SUCCESS, Messages.format(toAdd))); - } - - @Override - public boolean equals(Object other) { - if (other == this) { - return true; - } - - // instanceof handles nulls - if (!(other instanceof AddVisitCommand)) { - return false; - } - - AddVisitCommand otherAddVisitCommand = (AddVisitCommand) other; - return toAdd.equals(otherAddVisitCommand.toAdd); - } - - @Override - public String toString() { - return new ToStringBuilder(this) - .add("toAdd", toAdd) - .toString(); - } -} diff --git a/src/main/java/seedu/address/logic/commands/CheckCommand.java b/src/main/java/seedu/address/logic/commands/CheckCommand.java deleted file mode 100644 index 72307a160be..00000000000 --- a/src/main/java/seedu/address/logic/commands/CheckCommand.java +++ /dev/null @@ -1,92 +0,0 @@ -package seedu.address.logic.commands; - -import static java.util.Objects.requireNonNull; - -import java.util.List; -import java.util.Objects; - -import seedu.address.commons.util.ToStringBuilder; -import seedu.address.logic.Messages; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.Model; -import seedu.address.model.person.Nric; -import seedu.address.model.person.NricContainsKeywordsPredicate; -import seedu.address.model.person.Person; -import seedu.address.model.visit.Visit; -import seedu.address.model.visit.VisitContainsNricPredicate; - -/** - * Checks the visits in history of an existing person in the address book. - */ -public class CheckCommand extends Command { - - public static final String COMMAND_WORD = "check"; - - public static final String MESSAGE_USAGE = COMMAND_WORD + ":\nChecks the visits in history of the person identified" - + " by the NRIC specified. " - + "\nExample: " + COMMAND_WORD - + " S0123456A"; - - public static final String MESSAGE_READ_PERSON_SUCCESS = "Checked Person ->\n%1$s"; - private final Nric nric; - - /** - * @param nric of the person to check - */ - public CheckCommand(Nric nric) { - requireNonNull(nric); - - this.nric = nric; - } - - @Override - public CommandResult execute(Model model) throws CommandException { - requireNonNull(model); - - if (!model.hasPerson(Person.createPersonWithNric(nric))) { - throw new CommandException(Messages.MESSAGE_PERSON_NOT_FOUND); - } - - model.updateFilteredPersonList(new NricContainsKeywordsPredicate(nric.toString())); - Person checkedPerson = model.getFilteredPersonList().get(0); - - model.updateFilteredVisitList(new VisitContainsNricPredicate(nric.toString())); - List filteredVisits = model.getFilteredVisitList(); - - StringBuilder stringBuilder = new StringBuilder(); - stringBuilder.append(checkedPerson.getName()).append(" (NRIC: ").append(checkedPerson.getNric()).append("):\n"); - for (Visit visit : filteredVisits) { - stringBuilder.append(Messages.formatCheck(visit)).append("\n"); - } - - return new CommandResult(String.format(MESSAGE_READ_PERSON_SUCCESS, stringBuilder)); - } - - @Override - public boolean equals(Object other) { - if (other == this) { - return true; - } - - // instanceof handles nulls - if (!(other instanceof CheckCommand)) { - return false; - } - - CheckCommand otherCheckCommand = (CheckCommand) other; - return this.nric.equals(otherCheckCommand.nric); - } - - @Override - public String toString() { - return new ToStringBuilder(this) - .add("nric", nric) - .toString(); - } - - @Override - public int hashCode() { - return Objects.hash(nric); - } - -} diff --git a/src/main/java/seedu/address/logic/commands/ClusterCommand.java b/src/main/java/seedu/address/logic/commands/ClusterCommand.java deleted file mode 100644 index 6e50c5b5f2a..00000000000 --- a/src/main/java/seedu/address/logic/commands/ClusterCommand.java +++ /dev/null @@ -1,92 +0,0 @@ -package seedu.address.logic.commands; - -import static java.util.Objects.requireNonNull; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_DIAGNOSIS; - -import seedu.address.commons.util.ToStringBuilder; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.Model; -import seedu.address.model.person.AddressDiagnosisStatusPredicate; - - -/** - * Updates the details of an existing person in the address book. - */ -public class ClusterCommand extends Command { - - public static final String COMMAND_WORD = "cluster"; - - public static final String MESSAGE_USAGE = COMMAND_WORD + ":\nDetects if there is a cluster of the size given," - + " at the location given, of the disease given, and shows the details of all there with the disease." - + "by the respective NRIC in the displayed person list. " - + "Existing values will be overwritten by the input values.\n" - + "Parameters: [CLUSTER SIZE] " - + "[" + PREFIX_ADDRESS + "LOCATION] " - + "[" + PREFIX_DIAGNOSIS + "DISEASE]\n" - + "Example: " + COMMAND_WORD + " 50 " - + PREFIX_ADDRESS + "choa chu kang " - + PREFIX_DIAGNOSIS + "dengue"; - - public static final String MESSAGE_NO_INFECTED_PEOPLE = "Good news! This area \"%1$s\" has no patients with %2$s."; - public static final String MESSAGE_CLUSTER_FOUND_SUCCESS = - "Cluster of %1$s found!\nHere's everyone in the area of \"%2$s\" with \"%3$s\":"; - public static final String MESSAGE_CLUSTER_NOT_FOUND = "Cluster not found.\n" - + "There are only %1$s people in the area of \"%2$s\" with \"%3$s\".\n" - + "But here are infected people in the area to look out for:"; - private final int clusterSize; - private final AddressDiagnosisStatusPredicate predicate; - - /** - * @param clusterSize of the person in the filtered person list to update - * @param predicate details to update the person with - */ - public ClusterCommand(int clusterSize, AddressDiagnosisStatusPredicate predicate) { - requireNonNull(predicate); - - this.clusterSize = clusterSize; - this.predicate = predicate; - } - - @Override - public CommandResult execute(Model model) throws CommandException { - requireNonNull(model); - model.updateFilteredPersonList(predicate); - - int len = model.getFilteredPersonList().size(); - if (len == 0) { - return new CommandResult(String.format(MESSAGE_NO_INFECTED_PEOPLE, - predicate.getAddress(), predicate.getDisease())); - } else if (len < clusterSize) { - return new CommandResult(String.format(MESSAGE_CLUSTER_NOT_FOUND, len, - predicate.getAddress(), predicate.getDisease())); - } else { - return new CommandResult(String.format(MESSAGE_CLUSTER_FOUND_SUCCESS, len, - predicate.getAddress(), predicate.getDisease())); - } - } - - @Override - public boolean equals(Object other) { - if (other == this) { - return true; - } - - // instanceof handles nulls - if (!(other instanceof ClusterCommand)) { - return false; - } - - ClusterCommand otherClusterCommand = (ClusterCommand) other; - return otherClusterCommand.clusterSize == clusterSize - && predicate.equals(otherClusterCommand.predicate); - } - - @Override - public String toString() { - return new ToStringBuilder(this) - .add("cluster size", clusterSize) - .add("predicate", predicate) - .toString(); - } -} diff --git a/src/main/java/seedu/address/logic/commands/CreateCommand.java b/src/main/java/seedu/address/logic/commands/CreateCommand.java index 999864322d3..df7cff336c9 100644 --- a/src/main/java/seedu/address/logic/commands/CreateCommand.java +++ b/src/main/java/seedu/address/logic/commands/CreateCommand.java @@ -14,6 +14,7 @@ import static seedu.address.logic.parser.CliSyntax.PREFIX_SEX; import static seedu.address.logic.parser.CliSyntax.PREFIX_STATUS; import static seedu.address.logic.parser.CliSyntax.PREFIX_SYMPTOM; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import seedu.address.commons.util.ToStringBuilder; import seedu.address.logic.Messages; @@ -27,8 +28,8 @@ public class CreateCommand extends Command { public static final String COMMAND_WORD = "create"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ":\nCreates a person in Immunimate. " - + "\nParameters: " + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Creates a patient to the Immunimate System. " + + "Parameters: " + PREFIX_NRIC + "NRIC " + PREFIX_NAME + "NAME " + PREFIX_PHONE + "PHONE " @@ -37,21 +38,25 @@ public class CreateCommand extends Command { + PREFIX_SEX + "SEX " + PREFIX_STATUS + "STATUS " + PREFIX_EMAIL + "EMAIL " + + "[" + PREFIX_TAG + "TAG]...\n" + PREFIX_ALLERGIES + "ALLERGIES " + PREFIX_BLOODTYPE + "BLOODTYPE " + PREFIX_CONDITION + "CONDITION " + PREFIX_SYMPTOM + "SYMPTOM " + PREFIX_DIAGNOSIS + "DIAGNOSIS " - + "\nExample: " + COMMAND_WORD + " " - + PREFIX_NRIC + "S0123456A " + + "Example: " + COMMAND_WORD + " " + + PREFIX_NRIC + "S1234567A " + PREFIX_NAME + "John Doe " + PREFIX_PHONE + "98765432 " + + PREFIX_EMAIL + "johnd@example.com " + PREFIX_ADDRESS + "311, Clementi Ave 2, #02-25 " - + PREFIX_DATEOFBIRTH + "1990-01-01 " + + PREFIX_DATEOFBIRTH + "01-01-1990 " + PREFIX_SEX + "M " - + PREFIX_STATUS + "PENDING "; + + PREFIX_STATUS + "PENDING " + + PREFIX_TAG + "Long term medication " + + PREFIX_TAG + "High blood pressure "; - public static final String MESSAGE_SUCCESS = "New patient added ->\n%1$s"; + public static final String MESSAGE_SUCCESS = "New patient added: %1$s"; public static final String MESSAGE_DUPLICATE_PERSON = "This person already exists in the system"; private final Person toAdd; diff --git a/src/main/java/seedu/address/logic/commands/DeleteCommand.java b/src/main/java/seedu/address/logic/commands/DeleteCommand.java index f010b3f4e15..978138bf653 100644 --- a/src/main/java/seedu/address/logic/commands/DeleteCommand.java +++ b/src/main/java/seedu/address/logic/commands/DeleteCommand.java @@ -18,11 +18,11 @@ public class DeleteCommand extends Command { public static final String COMMAND_WORD = "delete"; public static final String MESSAGE_USAGE = COMMAND_WORD - + ":\nDeletes the person identified by the NRIC.\n" + + ": Deletes the person identified by the NRIC.\n" + "Parameters: NRIC\n" - + "Example: " + COMMAND_WORD + " S0123456A"; + + "Example: " + COMMAND_WORD + " S1234567B"; - public static final String MESSAGE_DELETE_PERSON_SUCCESS = "Deleted Person ->\n%1$s"; + public static final String MESSAGE_DELETE_PERSON_SUCCESS = "Deleted Patient: %1$s"; private final Nric targetNric; //TODO test cases diff --git a/src/main/java/seedu/address/logic/commands/DeleteInfoCommand.java b/src/main/java/seedu/address/logic/commands/DeleteInfoCommand.java deleted file mode 100644 index 2b6a262a2e9..00000000000 --- a/src/main/java/seedu/address/logic/commands/DeleteInfoCommand.java +++ /dev/null @@ -1,132 +0,0 @@ -package seedu.address.logic.commands; - -import static java.util.Objects.requireNonNull; -import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; - -import javafx.collections.ObservableList; -import seedu.address.commons.util.ToStringBuilder; -import seedu.address.logic.Messages; -import seedu.address.logic.commands.exceptions.CommandException; -import seedu.address.model.Model; -import seedu.address.model.person.Nric; -import seedu.address.model.person.Person; - -/** - * Deletes the information of a person identified using it's NRIC from the address book. - */ -public class DeleteInfoCommand extends Command { - /** - * The command word. - */ - public static final String COMMAND_WORD = "deleteinfo"; - - public static final String MESSAGE_USAGE = COMMAND_WORD - + ":\nDeletes the information of the person identified by NRIC.\n" - + "Parameters: NRIC, fields to be deleted\n" - + "Example: " + COMMAND_WORD + " S1234567B" + PREFIX_EMAIL; - public static final String MESSAGE_ONLY_OPTIONAL_FIELDS = "Only optional fields can be deleted."; - /** - * The correspondance of optional field with their position in fieldstoDelete array. - */ - public enum Fields { - EMAIL, ALLERGIES, BLOODTYPE, DATEOFADMISSION, COUNTRY, CONDITION, SYMPTOM, DIAGNOSIS - } - public static final String MESSAGE_DELETE_PERSON_INFORMATION_SUCCESS = "Deleted Patient info: %1$s"; - public static final int NUM_FIELDS = 8; - private final Nric targetNric; - //{email, allergies, bloodtype, date of admission, country, condition, symptom, diagnosis} - private boolean[] fieldsToDelete = new boolean[NUM_FIELDS]; - - - //TODO test cases - /** - * Creates a DeleteInfoCommand to delete the specified {@code Person}'s information - */ - public DeleteInfoCommand(Nric targetNric, boolean[] fieldsToDelete) { - requireNonNull(targetNric); - requireNonNull(fieldsToDelete); - this.targetNric = targetNric; - this.fieldsToDelete = fieldsToDelete; - } - @Override - public CommandResult execute(Model model) throws CommandException { - requireNonNull(model); - - ObservableList persons = model.getFilteredPersonList(); - if (!model.hasPerson(Person.createPersonWithNric(targetNric))) { - throw new CommandException(Messages.MESSAGE_PERSON_NOT_FOUND); - } - //Difference between filteredPersons.contains and model.hasPerson: first checks if the instance is in the list, - //second checks if the NRIC is in the list - Person personToChange = persons.filtered(person -> person.getNric().equals(targetNric)).get(0); - if (fieldsToDelete[Fields.EMAIL.ordinal()]) { - personToChange.setEmail(null); - } - if (fieldsToDelete[Fields.ALLERGIES.ordinal()]) { - personToChange.setAllergies(null); - } - if (fieldsToDelete[Fields.BLOODTYPE.ordinal()]) { - personToChange.setBloodType(null); - } - if (fieldsToDelete[Fields.DATEOFADMISSION.ordinal()]) { - personToChange.setDateOfAdmission(null); - } - if (fieldsToDelete[Fields.COUNTRY.ordinal()]) { - personToChange.setCountry(null); - } - if (fieldsToDelete[Fields.CONDITION.ordinal()]) { - personToChange.setCondition(null); - } - if (fieldsToDelete[Fields.SYMPTOM.ordinal()]) { - personToChange.setSymptom(null); - } - if (fieldsToDelete[Fields.DIAGNOSIS.ordinal()]) { - personToChange.setDiagnosis(null); - } - return new CommandResult(String.format(MESSAGE_DELETE_PERSON_INFORMATION_SUCCESS, - Messages.format(personToChange))); - } - - private boolean fieldsToDeleteEquals(boolean[] otherFieldsToDelete) { - if (otherFieldsToDelete.length != NUM_FIELDS) { - return false; - } - for (int i = 0; i < NUM_FIELDS; i++) { - if (this.fieldsToDelete[i] != otherFieldsToDelete[i]) { - return false; - } - } - return true; - } - - @Override - public boolean equals(Object other) { - if (other == this) { - return true; - } - - // instanceof handles nulls - if (!(other instanceof DeleteInfoCommand)) { - return false; - } - - DeleteInfoCommand otherDeleteCommand = (DeleteInfoCommand) other; - return targetNric.equals(otherDeleteCommand.targetNric) - && fieldsToDeleteEquals(otherDeleteCommand.fieldsToDelete); - } - - //TODO test cases - @Override - public String toString() { - StringBuilder fields = new StringBuilder(); - for (int i = 0; i < NUM_FIELDS; i++) { - if (fieldsToDelete[i]) { - fields.append(Fields.values()[i].toString()).append(","); - } - } - return new ToStringBuilder(this) - .add("targetNric", targetNric) - .add("fieldsToDelete", fields) - .toString(); - } -} diff --git a/src/main/java/seedu/address/logic/commands/FindCommand.java b/src/main/java/seedu/address/logic/commands/FindCommand.java index f3b652c744e..a0219883276 100644 --- a/src/main/java/seedu/address/logic/commands/FindCommand.java +++ b/src/main/java/seedu/address/logic/commands/FindCommand.java @@ -1,16 +1,11 @@ package seedu.address.logic.commands; import static java.util.Objects.requireNonNull; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_CONDITION; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; - -import java.util.function.Predicate; import seedu.address.commons.util.ToStringBuilder; import seedu.address.logic.Messages; import seedu.address.model.Model; -import seedu.address.model.person.Person; +import seedu.address.model.person.NameContainsKeywordsPredicate; /** * Finds and lists all persons in address book whose name contains any of the argument keywords. @@ -20,18 +15,15 @@ public class FindCommand extends Command { public static final String COMMAND_WORD = "find"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ":\nFinds all persons" - + " whose names, addresses or conditions contain any of " + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Finds all persons whose names contain any of " + "the specified keywords (case-insensitive) and displays them as a list with index numbers.\n" + "Parameters: KEYWORD [MORE_KEYWORDS]...\n" - + "Example (name): " + COMMAND_WORD + " " + PREFIX_NAME + "alice bob charlie" - + "\nExample (address): " + COMMAND_WORD + " " + PREFIX_ADDRESS + "tampines street, geylang road" - + "\nExample (condition): " + COMMAND_WORD + " " + PREFIX_CONDITION + "diabetes, high blood pressure"; + + "Example: " + COMMAND_WORD + " alice bob charlie"; - private final Predicate predicate; + private final NameContainsKeywordsPredicate predicate; //TODO: add nric contains keywords - public FindCommand(Predicate predicate) { + public FindCommand(NameContainsKeywordsPredicate predicate) { this.predicate = predicate; } diff --git a/src/main/java/seedu/address/logic/commands/HelpCommand.java b/src/main/java/seedu/address/logic/commands/HelpCommand.java index 854b43e7000..bf824f91bd0 100644 --- a/src/main/java/seedu/address/logic/commands/HelpCommand.java +++ b/src/main/java/seedu/address/logic/commands/HelpCommand.java @@ -9,7 +9,7 @@ public class HelpCommand extends Command { public static final String COMMAND_WORD = "help"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ":\nShows program usage instructions.\n" + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Shows program usage instructions.\n" + "Example: " + COMMAND_WORD; public static final String SHOWING_HELP_MESSAGE = "Opened help window."; diff --git a/src/main/java/seedu/address/logic/commands/ReadCommand.java b/src/main/java/seedu/address/logic/commands/ReadCommand.java index 5b3a2cb1d4b..d32d15d2b3a 100644 --- a/src/main/java/seedu/address/logic/commands/ReadCommand.java +++ b/src/main/java/seedu/address/logic/commands/ReadCommand.java @@ -1,6 +1,7 @@ package seedu.address.logic.commands; import static java.util.Objects.requireNonNull; +import static seedu.address.logic.parser.CliSyntax.PREFIX_NRIC; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; import seedu.address.commons.util.ToStringBuilder; @@ -18,13 +19,14 @@ public class ReadCommand extends Command { public static final String COMMAND_WORD = "read"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ":\nReads the details of the person identified " + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Reads the details of the person identified " + "by the NRIC specified. " - + "\nParameters: NRIC" - + "\nExample: " + COMMAND_WORD - + " S0123456A"; + + "Example: " + COMMAND_WORD + + PREFIX_NRIC + "T0123456A"; - public static final String MESSAGE_READ_PERSON_SUCCESS = "Read Person ->\n%1$s"; + public static final String MESSAGE_READ_PERSON_SUCCESS = "Read Person: %1$s"; + public static final String MESSAGE_NO_PERSON = "There is no such person with this NRIC."; + public static final String MESSAGE_NOT_READ = "NRIC to be specified."; private final Nric nric; /** @@ -39,9 +41,8 @@ public ReadCommand(Nric nric) { @Override public CommandResult execute(Model model) throws CommandException { requireNonNull(model); - - if (!model.hasPerson(Person.createPersonWithNric(nric))) { - throw new CommandException(Messages.MESSAGE_PERSON_NOT_FOUND); + if (model.hasPerson(Person.createPersonWithNric(nric))) { + throw new CommandException(MESSAGE_NO_PERSON); } model.updateFilteredPersonList(new NricContainsKeywordsPredicate(nric.toString())); diff --git a/src/main/java/seedu/address/logic/commands/UpdateCommand.java b/src/main/java/seedu/address/logic/commands/UpdateCommand.java index 3f8dfeea11e..847d0fa8c96 100644 --- a/src/main/java/seedu/address/logic/commands/UpdateCommand.java +++ b/src/main/java/seedu/address/logic/commands/UpdateCommand.java @@ -2,19 +2,10 @@ import static java.util.Objects.requireNonNull; import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ALLERGIES; -import static seedu.address.logic.parser.CliSyntax.PREFIX_BLOODTYPE; -import static seedu.address.logic.parser.CliSyntax.PREFIX_CONDITION; -import static seedu.address.logic.parser.CliSyntax.PREFIX_COUNTRY; -import static seedu.address.logic.parser.CliSyntax.PREFIX_DATEOFADMISSION; -import static seedu.address.logic.parser.CliSyntax.PREFIX_DATEOFBIRTH; -import static seedu.address.logic.parser.CliSyntax.PREFIX_DIAGNOSIS; import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; -import static seedu.address.logic.parser.CliSyntax.PREFIX_SEX; -import static seedu.address.logic.parser.CliSyntax.PREFIX_STATUS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_SYMPTOM; +import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; import static seedu.address.model.Model.PREDICATE_SHOW_ALL_PERSONS; import java.util.Collections; @@ -56,30 +47,20 @@ public class UpdateCommand extends Command { public static final String COMMAND_WORD = "update"; - public static final String MESSAGE_USAGE = COMMAND_WORD + ":\nUpdates the details of the person identified " - + "by the respective NRIC in the displayed person list. " - + "\nExisting values will be overwritten by the input values." - + "\nParameters: NRIC " + public static final String MESSAGE_USAGE = COMMAND_WORD + ": Updates the details of the person identified " + + "by the index number used in the displayed person list. " + + "Existing values will be overwritten by the input values.\n" + + "Parameters: INDEX (must be a positive integer) " + "[" + PREFIX_NAME + "NAME] " + "[" + PREFIX_PHONE + "PHONE] " - + "[" + PREFIX_ADDRESS + "ADDRESS] " - + "[" + PREFIX_DATEOFBIRTH + "DATEOFBIRTH] " - + "[" + PREFIX_SEX + "SEX] " - + "[" + PREFIX_STATUS + "STATUS] " - + "[" + PREFIX_EMAIL + "EMAIL] " - + "[" + PREFIX_COUNTRY + "COUNTRY] " - + "[" + PREFIX_ALLERGIES + "ALLERGIES] " - + "[" + PREFIX_BLOODTYPE + "BLOODTYPE] " + "[" + PREFIX_EMAIL + "EMAIL] " - + "[" + PREFIX_CONDITION + "CONDITION] " - + "[" + PREFIX_DATEOFADMISSION + "DATEOFADMISSION] " - + "[" + PREFIX_DIAGNOSIS + "DIAGNOSIS] " - + "[" + PREFIX_SYMPTOM + "SYMPTOM] " - + "\nExample: " + COMMAND_WORD + " S0123456A " + + "[" + PREFIX_ADDRESS + "ADDRESS] " + + "[" + PREFIX_TAG + "TAG]...\n" + + "Example: " + COMMAND_WORD + " 1 " + PREFIX_PHONE + "91234567 " + PREFIX_EMAIL + "johndoe@example.com"; - public static final String MESSAGE_UPDATE_PERSON_SUCCESS = "Updated Person ->\n%1$s"; + public static final String MESSAGE_UPDATE_PERSON_SUCCESS = "Updated Person: %1$s"; public static final String MESSAGE_NOT_UPDATED = "At least one field to update must be provided."; public static final String MESSAGE_DUPLICATE_PERSON = "This person already exists in the address book."; @@ -103,15 +84,16 @@ public CommandResult execute(Model model) throws CommandException { requireNonNull(model); List lastShownList = model.getFilteredPersonList(); + Person personToUpdate = null; if (!model.hasPerson(Person.createPersonWithNric(nric))) { throw new CommandException(Messages.MESSAGE_PERSON_NOT_FOUND); } + personToUpdate = lastShownList.stream().filter(new NricContainsKeywordsPredicate(nric.toString())) + .findFirst().get(); - Person personToUpdate = lastShownList.stream().filter( - new NricContainsKeywordsPredicate(nric.toString())).findFirst().get(); Person updatedPerson = createUpdatedPerson(personToUpdate, updatePersonDescriptor); - if (!(personToUpdate.isSamePerson(updatedPerson) && model.hasPerson(updatedPerson))) { + if (!personToUpdate.isSamePerson(updatedPerson) && model.hasPerson(updatedPerson)) { throw new CommandException(MESSAGE_DUPLICATE_PERSON); } @@ -169,8 +151,7 @@ public boolean equals(Object other) { } UpdateCommand otherUpdateCommand = (UpdateCommand) other; - return nric.equals(otherUpdateCommand.nric) - && updatePersonDescriptor.equals(otherUpdateCommand.updatePersonDescriptor); + return updatePersonDescriptor.equals(otherUpdateCommand.updatePersonDescriptor); } @Override @@ -219,16 +200,7 @@ public UpdatePersonDescriptor(UpdatePersonDescriptor toCopy) { setDateOfBirth(toCopy.dateOfBirth); setSex(toCopy.sex); setStatus(toCopy.status); - - setEmail(toCopy.email); - setCountry(toCopy.country); - - setAllergies(toCopy.allergies); - setBloodType(toCopy.bloodType); - setCondition(toCopy.condition); - setDateOfAdmission(toCopy.dateOfAdmission); - setDiagnosis(toCopy.diagnosis); - setSymptom(toCopy.symptom); + // setTags(toCopy.tags); } /** @@ -236,7 +208,7 @@ public UpdatePersonDescriptor(UpdatePersonDescriptor toCopy) { */ public boolean isAnyFieldUpdated() { return CollectionUtil.isAnyNonNull(name, phone, address, sex, status, email, country, - allergies, bloodType, condition, dateOfAdmission, diagnosis, symptom); + allergies, bloodType, condition, dateOfAdmission, diagnosis, symptom, tags); } public void setNric(Nric nric) { diff --git a/src/main/java/seedu/address/logic/parser/AddVisitCommandParser.java b/src/main/java/seedu/address/logic/parser/AddVisitCommandParser.java deleted file mode 100644 index cf0f14888d6..00000000000 --- a/src/main/java/seedu/address/logic/parser/AddVisitCommandParser.java +++ /dev/null @@ -1,63 +0,0 @@ -package seedu.address.logic.parser; - -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.parser.CliSyntax.PREFIX_DATEOFVISIT; -import static seedu.address.logic.parser.CliSyntax.PREFIX_DIAGNOSIS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NRIC; -import static seedu.address.logic.parser.CliSyntax.PREFIX_STATUS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_SYMPTOM; - -import java.util.stream.Stream; - -import seedu.address.logic.commands.AddVisitCommand; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.Diagnosis; -import seedu.address.model.person.Nric; -import seedu.address.model.person.Status; -import seedu.address.model.person.Symptom; -import seedu.address.model.visit.DateOfVisit; -import seedu.address.model.visit.Visit; - - -/** - * Parses input arguments and creates a new AddCommand object - */ -public class AddVisitCommandParser implements Parser { - - /** - * Parses the given {@code String} of arguments in the context of the AddCommand - * and returns an AddCommand object for execution. - * @throws ParseException if the user input does not conform the expected format - */ - //TODO test cases - public AddVisitCommand parse(String args) throws ParseException { - ArgumentMultimap argMultimap = - ArgumentTokenizer.tokenize(args, PREFIX_NRIC, PREFIX_DATEOFVISIT, - PREFIX_SYMPTOM, PREFIX_DIAGNOSIS, PREFIX_STATUS); - if (!arePrefixesPresent(argMultimap, PREFIX_NRIC, PREFIX_DATEOFVISIT, PREFIX_SYMPTOM, - PREFIX_DIAGNOSIS, PREFIX_STATUS) || !argMultimap.getPreamble().isEmpty()) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, AddVisitCommand.MESSAGE_USAGE)); - } - - argMultimap.verifyNoDuplicatePrefixesFor(PREFIX_NRIC, PREFIX_DATEOFVISIT, - PREFIX_SYMPTOM, PREFIX_DIAGNOSIS, PREFIX_STATUS); - Nric nric = ParserUtil.parseNric(argMultimap.getValue(PREFIX_NRIC).get()); - DateOfVisit dov = ParserUtil.parseDateOfVisit(argMultimap.getValue(PREFIX_DATEOFVISIT).get()); - Symptom symptom = ParserUtil.parseSymptom(argMultimap.getValue(PREFIX_SYMPTOM).get()); - Diagnosis diagnosis = ParserUtil.parseDiagnosis(argMultimap.getValue(PREFIX_DIAGNOSIS).get()); - Status status = ParserUtil.parseStatus(argMultimap.getValue(PREFIX_STATUS).get()); - //TODO (later): assersion to make sure optional values don't generate errors - Visit visit = new Visit(nric, dov, symptom, diagnosis, status); - - return new AddVisitCommand(visit); - } - - /** - * Returns true if none of the prefixes contains empty {@code Optional} values in the given - * {@code ArgumentMultimap}. - */ - private static boolean arePrefixesPresent(ArgumentMultimap argumentMultimap, Prefix... prefixes) { - return Stream.of(prefixes).allMatch(prefix -> argumentMultimap.getValue(prefix).isPresent()); - } - -} diff --git a/src/main/java/seedu/address/logic/parser/ArgumentMultimap.java b/src/main/java/seedu/address/logic/parser/ArgumentMultimap.java index 3a02098f36c..21e26887a83 100644 --- a/src/main/java/seedu/address/logic/parser/ArgumentMultimap.java +++ b/src/main/java/seedu/address/logic/parser/ArgumentMultimap.java @@ -62,18 +62,6 @@ public String getPreamble() { return getValue(new Prefix("")).orElse(""); } - /** - * Returns true if the argument multimap contains a mapping for the specified prefix. - */ - public boolean contains(Prefix prefix) { - return argMultimap.containsKey(prefix); - } - /** - * Returns the number of elements in the argument multimap. - */ - public int length() { - return argMultimap.size(); - } /** * Throws a {@code ParseException} if any of the prefixes given in {@code prefixes} appeared more than * once among the arguments. diff --git a/src/main/java/seedu/address/logic/parser/CheckCommandParser.java b/src/main/java/seedu/address/logic/parser/CheckCommandParser.java deleted file mode 100644 index 90c8369b93e..00000000000 --- a/src/main/java/seedu/address/logic/parser/CheckCommandParser.java +++ /dev/null @@ -1,31 +0,0 @@ -package seedu.address.logic.parser; - -import static java.util.Objects.requireNonNull; -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; - -import seedu.address.logic.commands.CheckCommand; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.Nric; - -/** - * Parses input arguments and creates a new ReadCommand object - */ -public class CheckCommandParser implements Parser { - /** - * Parses the given {@code String} of argument in the context of the ReadCommand - * and returns an ReadCommand object for execution. - * @throws ParseException if the user input does not conform the expected format - */ - public CheckCommand parse(String args) throws ParseException { - requireNonNull(args); - String trimmedArg = args.trim(); - if (trimmedArg.isEmpty()) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, CheckCommand.MESSAGE_USAGE)); - } - - return new CheckCommand(new Nric(trimmedArg)); - } -} - - diff --git a/src/main/java/seedu/address/logic/parser/CliSyntax.java b/src/main/java/seedu/address/logic/parser/CliSyntax.java index 0561c34c66d..61bddd05d3e 100644 --- a/src/main/java/seedu/address/logic/parser/CliSyntax.java +++ b/src/main/java/seedu/address/logic/parser/CliSyntax.java @@ -15,7 +15,6 @@ public class CliSyntax { public static final Prefix PREFIX_EMAIL = new Prefix("e/"); public static final Prefix PREFIX_COUNTRY = new Prefix("c/"); public static final Prefix PREFIX_DATEOFADMISSION = new Prefix("doa/"); - public static final Prefix PREFIX_DATEOFVISIT = new Prefix("dov/"); public static final Prefix PREFIX_BLOODTYPE = new Prefix("bt/"); public static final Prefix PREFIX_ALLERGIES = new Prefix("al/"); public static final Prefix PREFIX_CONDITION = new Prefix("con/"); diff --git a/src/main/java/seedu/address/logic/parser/ClusterCommandParser.java b/src/main/java/seedu/address/logic/parser/ClusterCommandParser.java deleted file mode 100644 index b376dc524f6..00000000000 --- a/src/main/java/seedu/address/logic/parser/ClusterCommandParser.java +++ /dev/null @@ -1,52 +0,0 @@ -package seedu.address.logic.parser; - -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_DIAGNOSIS; - -import seedu.address.logic.commands.ClusterCommand; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.AddressDiagnosisStatusPredicate; - -/** - * Parses input arguments and creates a new FindCommand object - */ -public class ClusterCommandParser implements Parser { - - /** - * Parses the given {@code String} of arguments in the context of the FindCommand - * and returns a FindCommand object for execution. - * @throws ParseException if the user input does not conform the expected format - */ - public ClusterCommand parse(String args) throws ParseException { - String trimmedArgs = args.trim(); - if (trimmedArgs.isEmpty()) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, ClusterCommand.MESSAGE_USAGE)); - } - - ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(trimmedArgs, PREFIX_ADDRESS, PREFIX_DIAGNOSIS); - - int clusterSize; - try { - clusterSize = Integer.parseInt(argMultimap.getPreamble()); - } catch (NumberFormatException nfe) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, ClusterCommand.MESSAGE_USAGE), nfe); - } - - argMultimap.verifyNoDuplicatePrefixesFor(PREFIX_ADDRESS, PREFIX_DIAGNOSIS); - if (clusterSize < 1 || clusterSize > 2000000000 - || !argMultimap.getValue(PREFIX_ADDRESS).isPresent() - || !argMultimap.getValue(PREFIX_DIAGNOSIS).isPresent()) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, ClusterCommand.MESSAGE_USAGE)); - } - - String address = ParserUtil.parseAddress(argMultimap.getValue(PREFIX_ADDRESS).get()).toString(); - String disease = ParserUtil.parseDiagnosis(argMultimap.getValue(PREFIX_DIAGNOSIS).get()).toString(); - if (address.isEmpty() || disease.isEmpty()) { - throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, ClusterCommand.MESSAGE_USAGE)); - } - - return new ClusterCommand(clusterSize, - new AddressDiagnosisStatusPredicate(address, disease, "UNWELL")); - } -} diff --git a/src/main/java/seedu/address/logic/parser/DeleteCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteCommandParser.java index 3776c046f67..b51ed42d7e2 100644 --- a/src/main/java/seedu/address/logic/parser/DeleteCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/DeleteCommandParser.java @@ -18,7 +18,7 @@ public class DeleteCommandParser implements Parser { */ public DeleteCommand parse(String args) throws ParseException { try { - Nric nric = ParserUtil.parseNric(args.toUpperCase()); + Nric nric = ParserUtil.parseNric(args); return new DeleteCommand(nric); } catch (ParseException pe) { throw new ParseException( diff --git a/src/main/java/seedu/address/logic/parser/DeleteInfoCommandParser.java b/src/main/java/seedu/address/logic/parser/DeleteInfoCommandParser.java deleted file mode 100644 index c126ec7b740..00000000000 --- a/src/main/java/seedu/address/logic/parser/DeleteInfoCommandParser.java +++ /dev/null @@ -1,97 +0,0 @@ -package seedu.address.logic.parser; - -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ALLERGIES; -import static seedu.address.logic.parser.CliSyntax.PREFIX_BLOODTYPE; -import static seedu.address.logic.parser.CliSyntax.PREFIX_CONDITION; -import static seedu.address.logic.parser.CliSyntax.PREFIX_COUNTRY; -import static seedu.address.logic.parser.CliSyntax.PREFIX_DATEOFADMISSION; -import static seedu.address.logic.parser.CliSyntax.PREFIX_DATEOFBIRTH; -import static seedu.address.logic.parser.CliSyntax.PREFIX_DIAGNOSIS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_EMAIL; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NRIC; -import static seedu.address.logic.parser.CliSyntax.PREFIX_PHONE; -import static seedu.address.logic.parser.CliSyntax.PREFIX_SEX; -import static seedu.address.logic.parser.CliSyntax.PREFIX_STATUS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_SYMPTOM; -import static seedu.address.logic.parser.CliSyntax.PREFIX_TAG; - -import java.util.Arrays; - -import seedu.address.logic.commands.DeleteInfoCommand; -import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.Nric; - - - - - -/** - * Parses input arguments and creates a new DeleteInfoCommand object - */ -public class DeleteInfoCommandParser implements Parser { - /** - * List of prefixes for optional fields, in the order of the fields in DeleteInfoCommand. - */ - public static final Prefix[] OPTIONAL_PREFIXES = {PREFIX_EMAIL, PREFIX_ALLERGIES, PREFIX_BLOODTYPE, - PREFIX_DATEOFADMISSION, PREFIX_COUNTRY, PREFIX_CONDITION, PREFIX_SYMPTOM, PREFIX_DIAGNOSIS}; - /** - * Parses the given {@code String} of arguments in the context of the DeleteInfoCommand - * and returns a DeleteInfoCommand object for execution. - * @throws ParseException if the user input does not conform the expected format - */ - public DeleteInfoCommand parse(String args) throws ParseException { - //Check for empty input - if (args.isEmpty()) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteInfoCommand.MESSAGE_USAGE)); - } - //Parse prefixes - ArgumentMultimap argMultimap = - ArgumentTokenizer.tokenize(args, PREFIX_NRIC, PREFIX_NAME, PREFIX_PHONE, PREFIX_ADDRESS, - PREFIX_DATEOFBIRTH, PREFIX_SEX, PREFIX_STATUS, PREFIX_TAG, PREFIX_EMAIL, PREFIX_COUNTRY, - PREFIX_DATEOFADMISSION, PREFIX_ALLERGIES, PREFIX_BLOODTYPE, PREFIX_CONDITION, PREFIX_SYMPTOM, - PREFIX_DIAGNOSIS); - //Check for NRIC - Nric nric; - try { - nric = ParserUtil.parseNric(argMultimap.getPreamble()); - } catch (ParseException pe) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteInfoCommand.MESSAGE_USAGE), pe); - } - - //Check for empty input - if (argMultimap.length() <= 1) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteInfoCommand.MESSAGE_USAGE)); - } - //check for mandatory fields - Prefix[] mandatoryPrefixes = {PREFIX_NRIC, PREFIX_NAME, PREFIX_PHONE, PREFIX_ADDRESS, PREFIX_DATEOFBIRTH, - PREFIX_SEX, PREFIX_STATUS}; - if (Arrays.stream(mandatoryPrefixes).anyMatch(argMultimap::contains)) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteInfoCommand.MESSAGE_ONLY_OPTIONAL_FIELDS)); - } - - //Check for optional fields & any extra invalid input - boolean[] fieldsToDelete = new boolean[DeleteInfoCommand.NUM_FIELDS]; - Arrays.fill(fieldsToDelete, false); - Prefix[] optionalPrefixes = {PREFIX_EMAIL, PREFIX_ALLERGIES, - PREFIX_BLOODTYPE, PREFIX_DATEOFADMISSION, PREFIX_COUNTRY, - PREFIX_CONDITION, PREFIX_SYMPTOM, PREFIX_DIAGNOSIS}; - for (int i = 0; i < optionalPrefixes.length; i++) { - if (argMultimap.getValue(optionalPrefixes[i]).isEmpty()) { - continue; - } - if (!argMultimap.getValue(optionalPrefixes[i]).get().isEmpty()) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, DeleteInfoCommand.MESSAGE_USAGE)); - } - fieldsToDelete[i] = true; - } - return new DeleteInfoCommand(nric, fieldsToDelete); - } -} diff --git a/src/main/java/seedu/address/logic/parser/FindCommandParser.java b/src/main/java/seedu/address/logic/parser/FindCommandParser.java index 06c201772d6..2867bde857b 100644 --- a/src/main/java/seedu/address/logic/parser/FindCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/FindCommandParser.java @@ -1,17 +1,11 @@ package seedu.address.logic.parser; import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; -import static seedu.address.logic.parser.CliSyntax.PREFIX_ADDRESS; -import static seedu.address.logic.parser.CliSyntax.PREFIX_CONDITION; -import static seedu.address.logic.parser.CliSyntax.PREFIX_NAME; import java.util.Arrays; -import java.util.List; import seedu.address.logic.commands.FindCommand; import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.AddressContainsKeywordsPredicate; -import seedu.address.model.person.ConditionContainsKeywordsPredicate; import seedu.address.model.person.NameContainsKeywordsPredicate; /** @@ -31,29 +25,9 @@ public FindCommand parse(String args) throws ParseException { String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); } - if (trimmedArgs.startsWith(PREFIX_NAME.getPrefix())) { - String[] nameKeywords = trimmedArgs.substring(2).trim().split("\\s+"); - List list = Arrays.asList(nameKeywords); - return new FindCommand(new NameContainsKeywordsPredicate(list)); - } else if (trimmedArgs.startsWith(PREFIX_ADDRESS.getPrefix())) { - String[] addressKeywords = trimmedArgs.substring(2).trim().split(","); - int len = addressKeywords.length; - for (int i = 0; i < len; i++) { - addressKeywords[i] = addressKeywords[i].trim(); - } - List list = Arrays.asList(addressKeywords); - return new FindCommand(new AddressContainsKeywordsPredicate(list)); - } else if (trimmedArgs.startsWith(PREFIX_CONDITION.getPrefix())) { - String[] conditionKeywords = trimmedArgs.substring(4).trim().split(","); - int len = conditionKeywords.length; - for (int i = 0; i < len; i++) { - conditionKeywords[i] = conditionKeywords[i].trim(); - } - List list = Arrays.asList(conditionKeywords); - return new FindCommand(new ConditionContainsKeywordsPredicate(list)); - } else { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, FindCommand.MESSAGE_USAGE)); - } + String[] nameKeywords = trimmedArgs.split("\\s+"); + + return new FindCommand(new NameContainsKeywordsPredicate(Arrays.asList(nameKeywords))); } + } diff --git a/src/main/java/seedu/address/logic/parser/ImmuniMateParser.java b/src/main/java/seedu/address/logic/parser/ImmuniMateParser.java index f04cf622d3b..404c224524a 100644 --- a/src/main/java/seedu/address/logic/parser/ImmuniMateParser.java +++ b/src/main/java/seedu/address/logic/parser/ImmuniMateParser.java @@ -8,14 +8,10 @@ import java.util.regex.Pattern; import seedu.address.commons.core.LogsCenter; -import seedu.address.logic.commands.AddVisitCommand; -import seedu.address.logic.commands.CheckCommand; import seedu.address.logic.commands.ClearCommand; -import seedu.address.logic.commands.ClusterCommand; import seedu.address.logic.commands.Command; import seedu.address.logic.commands.CreateCommand; import seedu.address.logic.commands.DeleteCommand; -import seedu.address.logic.commands.DeleteInfoCommand; import seedu.address.logic.commands.ExitCommand; import seedu.address.logic.commands.FindCommand; import seedu.address.logic.commands.HelpCommand; @@ -59,44 +55,32 @@ public Command parseCommand(String userInput) throws ParseException { switch (commandWord) { - case ClearCommand.COMMAND_WORD: - return new ClearCommand(); - - case ClusterCommand.COMMAND_WORD: - return new ClusterCommandParser().parse(arguments); - case CreateCommand.COMMAND_WORD: return new CreateCommandParser().parse(arguments); + case UpdateCommand.COMMAND_WORD: + return new UpdateCommandParser().parse(arguments); + case DeleteCommand.COMMAND_WORD: return new DeleteCommandParser().parse(arguments); - case DeleteInfoCommand.COMMAND_WORD: - return new DeleteInfoCommandParser().parse(arguments); - - case ExitCommand.COMMAND_WORD: - return new ExitCommand(); + case ClearCommand.COMMAND_WORD: + return new ClearCommand(); case FindCommand.COMMAND_WORD: return new FindCommandParser().parse(arguments); - case HelpCommand.COMMAND_WORD: - return new HelpCommand(); - case ListCommand.COMMAND_WORD: return new ListCommand(); - case ReadCommand.COMMAND_WORD: - return new ReadCommandParser().parse(arguments); - - case AddVisitCommand.COMMAND_WORD: - return new AddVisitCommandParser().parse(arguments); + case ExitCommand.COMMAND_WORD: + return new ExitCommand(); - case CheckCommand.COMMAND_WORD: - return new CheckCommandParser().parse(arguments); + case HelpCommand.COMMAND_WORD: + return new HelpCommand(); - case UpdateCommand.COMMAND_WORD: - return new UpdateCommandParser().parse(arguments); + case ReadCommand.COMMAND_WORD: + return new ReadCommandParser().parse(arguments); default: logger.finer("This user input caused a ParseException: " + userInput); diff --git a/src/main/java/seedu/address/logic/parser/ParserUtil.java b/src/main/java/seedu/address/logic/parser/ParserUtil.java index a99b7e45705..b5bd5192512 100644 --- a/src/main/java/seedu/address/logic/parser/ParserUtil.java +++ b/src/main/java/seedu/address/logic/parser/ParserUtil.java @@ -25,7 +25,6 @@ import seedu.address.model.person.Status; import seedu.address.model.person.Symptom; import seedu.address.model.tag.Tag; -import seedu.address.model.visit.DateOfVisit; /** * Contains utility methods used for parsing strings in the various *Parser classes. @@ -127,22 +126,6 @@ public static DateOfBirth parseDateOfBirth(String dob) throws ParseException { return new DateOfBirth(trimmedDob); } - /** - * Parses a {@code String dov} into an {@code DateOfVisit}. - * Leading and trailing whitespaces will be trimmed. - * - * @throws ParseException if the given {@code dov} is invalid. - */ - //TODO test cases - public static DateOfVisit parseDateOfVisit(String dov) throws ParseException { - requireNonNull(dov); - String trimmedDov = dov.trim(); - if (!DateOfVisit.isValidDateOfVisit(trimmedDov)) { - throw new ParseException(DateOfBirth.MESSAGE_CONSTRAINTS); - } - return new DateOfVisit(trimmedDov); - } - /** * Parses a {@code String sex} into an {@code Sex sex}. * Leading and trailing whitespaces will be trimmed. diff --git a/src/main/java/seedu/address/logic/parser/ReadCommandParser.java b/src/main/java/seedu/address/logic/parser/ReadCommandParser.java index 7b9aae84878..7681bdb92f8 100644 --- a/src/main/java/seedu/address/logic/parser/ReadCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/ReadCommandParser.java @@ -1,11 +1,10 @@ package seedu.address.logic.parser; import static java.util.Objects.requireNonNull; -import static seedu.address.logic.Messages.MESSAGE_INVALID_COMMAND_FORMAT; +import static seedu.address.logic.parser.CliSyntax.PREFIX_NRIC; import seedu.address.logic.commands.ReadCommand; import seedu.address.logic.parser.exceptions.ParseException; -import seedu.address.model.person.Nric; /** * Parses input arguments and creates a new ReadCommand object @@ -18,13 +17,13 @@ public class ReadCommandParser implements Parser { */ public ReadCommand parse(String args) throws ParseException { requireNonNull(args); - String trimmedArg = args.trim().toUpperCase(); - if (trimmedArg.isEmpty()) { - throw new ParseException( - String.format(MESSAGE_INVALID_COMMAND_FORMAT, ReadCommand.MESSAGE_USAGE)); + ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, PREFIX_NRIC); + + if (argMultimap.getValue(PREFIX_NRIC).isEmpty()) { + throw new ParseException(ReadCommand.MESSAGE_NOT_READ); } - return new ReadCommand(new Nric(trimmedArg)); + return new ReadCommand(ParserUtil.parseNric(argMultimap.getValue(PREFIX_NRIC).get())); } } diff --git a/src/main/java/seedu/address/logic/parser/UpdateCommandParser.java b/src/main/java/seedu/address/logic/parser/UpdateCommandParser.java index f134eaefc20..f86a8bae400 100644 --- a/src/main/java/seedu/address/logic/parser/UpdateCommandParser.java +++ b/src/main/java/seedu/address/logic/parser/UpdateCommandParser.java @@ -51,7 +51,7 @@ public UpdateCommand parse(String args) throws ParseException { Nric nric; try { - nric = ParserUtil.parseNric(argMultimap.getPreamble().toUpperCase()); + nric = ParserUtil.parseNric(argMultimap.getPreamble()); } catch (ParseException pe) { throw new ParseException(String.format(MESSAGE_INVALID_COMMAND_FORMAT, UpdateCommand.MESSAGE_USAGE), pe); } @@ -117,8 +117,7 @@ public UpdateCommand parse(String args) throws ParseException { if (argMultimap.getValue(PREFIX_SYMPTOM).isPresent()) { updatePersonDescriptor.setSymptom(ParserUtil.parseSymptom(argMultimap.getValue(PREFIX_SYMPTOM).get())); } - - // parseTagsForEdit(argMultimap.getAllValues(PREFIX_TAG)).ifPresent(updatePersonDescriptor::setTags); + parseTagsForEdit(argMultimap.getAllValues(PREFIX_TAG)).ifPresent(updatePersonDescriptor::setTags); if (!updatePersonDescriptor.isAnyFieldUpdated()) { throw new ParseException(UpdateCommand.MESSAGE_NOT_UPDATED); diff --git a/src/main/java/seedu/address/model/ImmuniMate.java b/src/main/java/seedu/address/model/ImmuniMate.java index 9021bca56bf..4d442ff4b9f 100644 --- a/src/main/java/seedu/address/model/ImmuniMate.java +++ b/src/main/java/seedu/address/model/ImmuniMate.java @@ -3,14 +3,11 @@ import static java.util.Objects.requireNonNull; import java.util.List; -import java.util.Objects; import javafx.collections.ObservableList; import seedu.address.commons.util.ToStringBuilder; import seedu.address.model.person.Person; import seedu.address.model.person.UniquePersonList; -import seedu.address.model.visit.UniqueVisitList; -import seedu.address.model.visit.Visit; /** * Wraps all data at the address-book level @@ -20,7 +17,6 @@ public class ImmuniMate implements ReadOnlyImmuniMate { //TODO test cases private final UniquePersonList persons; - private final UniqueVisitList visits; /* * The 'unusual' code block below is a non-static initialization block, sometimes used to avoid duplication @@ -31,7 +27,6 @@ public class ImmuniMate implements ReadOnlyImmuniMate { */ { persons = new UniquePersonList(); - visits = new UniqueVisitList(); } public ImmuniMate() {} @@ -54,16 +49,6 @@ public void setPersons(List persons) { this.persons.setPersons(persons); } - - /** - * Replaces the contents of the visit list with {@code visits}. - * {@code visits} must not contain duplicate visits. - */ - public void setVisits(List visits) { - this.visits.setVisits(visits); - } - - /** * Resets the existing data of this {@code AddressBook} with {@code newData}. */ @@ -83,14 +68,6 @@ public boolean hasPerson(Person person) { return persons.contains(person); } - /** - * Returns true if a person with the same identity as {@code person} exists in the address book. - */ - public boolean hasVisit(Visit visit) { - requireNonNull(visit); - return visits.contains(visit); - } - /** * Adds a person to the address book. * The person must not already exist in the address book. @@ -99,14 +76,6 @@ public void addPerson(Person p) { persons.add(p); } - /** - * Adds a visit to the address book. - * The visit must not already exist in the address book. - */ - public void addVisit(Visit v) { - visits.add(v); - } - /** * Replaces the given person {@code target} in the list with {@code editedPerson}. * {@code target} must exist in the address book. @@ -118,18 +87,6 @@ public void setPerson(Person target, Person editedPerson) { persons.setPerson(target, editedPerson); } - /** - * Replaces the given visit {@code target} in the list with {@code editedVisit}. - * {@code target} must exist in the address book. - * The unique identifier of {@code editedVisit} must not be the same as another existing visit in the address book. - */ - public void setVisit(Visit target, Visit editedVisit) { - requireNonNull(editedVisit); - - visits.setVisit(target, editedVisit); - } - - /** * Removes {@code key} from this {@code AddressBook}. * {@code key} must exist in the address book. @@ -137,23 +94,12 @@ public void setVisit(Visit target, Visit editedVisit) { public void removePerson(Person key) { persons.remove(key); } - - /** - * Removes {@code key} from this {@code AddressBook}. - * {@code key} must exist in the address book. - */ - public void removeVisit(Visit key) { - visits.remove(key); - } - - //// util methods @Override public String toString() { return new ToStringBuilder(this) .add("persons", persons) - .add("visits", visits) .toString(); } @@ -162,11 +108,6 @@ public ObservableList getPersonList() { return persons.asUnmodifiableObservableList(); } - @Override - public ObservableList getVisitList() { - return visits.asUnmodifiableObservableList(); - } - @Override public boolean equals(Object other) { if (other == this) { @@ -179,11 +120,11 @@ public boolean equals(Object other) { } ImmuniMate otherAddressBook = (ImmuniMate) other; - return persons.equals(otherAddressBook.persons) && visits.equals(otherAddressBook.visits); + return persons.equals(otherAddressBook.persons); } @Override public int hashCode() { - return Objects.hash(persons, visits); + return persons.hashCode(); } } diff --git a/src/main/java/seedu/address/model/Model.java b/src/main/java/seedu/address/model/Model.java index b2d3b2226e0..fae2d30600e 100644 --- a/src/main/java/seedu/address/model/Model.java +++ b/src/main/java/seedu/address/model/Model.java @@ -6,7 +6,6 @@ import javafx.collections.ObservableList; import seedu.address.commons.core.GuiSettings; import seedu.address.model.person.Person; -import seedu.address.model.visit.Visit; /** * The API of the Model component. @@ -15,9 +14,6 @@ public interface Model { /** {@code Predicate} that always evaluate to true */ Predicate PREDICATE_SHOW_ALL_PERSONS = unused -> true; - /** {@code Predicate} that always evaluate to true */ - Predicate PREDICATE_SHOW_ALL_VISITS = unused -> true; - /** * Replaces user prefs data with the data in {@code userPrefs}. */ @@ -61,36 +57,18 @@ public interface Model { */ boolean hasPerson(Person person); - /** - * Returns true if a visit with same unique identifier as {@code visit} exists in the address book. - */ - boolean hasVisit(Visit visit); - /** * Deletes the given person. * The person must exist in the address book. */ void deletePerson(Person target); - /** - * Deletes the given visit. - * The visit must exist in the address book. - */ - void deleteVisit(Visit target); - - /** * Adds the given person. * {@code person} must not already exist in the address book. */ void addPerson(Person person); - /** - * Adds the given visit. - * {@code visit} must not already exist in the address book. - */ - void addVisit(Visit visit); - /** * Replaces the given person {@code target} with {@code editedPerson}. * {@code target} must exist in the address book. @@ -98,28 +76,12 @@ public interface Model { */ void setPerson(Person target, Person editedPerson); - /** - * Replaces the given visit {@code target} with {@code editedVisit}. - * {@code target} must exist in the address book. - * The unique identifier of {@code editedVisit} must not be the same as another existing visit in the address book. - */ - void setVisit(Visit target, Visit editedVisit); - /** Returns an unmodifiable view of the filtered person list */ ObservableList getFilteredPersonList(); - /** Returns an unmodifiable view of the filtered visit list */ - ObservableList getFilteredVisitList(); - /** * Updates the filter of the filtered person list to filter by the given {@code predicate}. * @throws NullPointerException if {@code predicate} is null. */ void updateFilteredPersonList(Predicate predicate); - - /** - * Updates the filter of the filtered visit list to filter by the given {@code predicate}. - * @throws NullPointerException if {@code predicate} is null. - */ - void updateFilteredVisitList(Predicate predicate); } diff --git a/src/main/java/seedu/address/model/ModelManager.java b/src/main/java/seedu/address/model/ModelManager.java index faef64ca196..be26c090b8c 100644 --- a/src/main/java/seedu/address/model/ModelManager.java +++ b/src/main/java/seedu/address/model/ModelManager.java @@ -12,7 +12,6 @@ import seedu.address.commons.core.GuiSettings; import seedu.address.commons.core.LogsCenter; import seedu.address.model.person.Person; -import seedu.address.model.visit.Visit; /** * Represents the in-memory model of the address book data. @@ -23,7 +22,6 @@ public class ModelManager implements Model { private final ImmuniMate immuniMate; private final UserPrefs userPrefs; private final FilteredList filteredPersons; - private final FilteredList filteredVisits; /** * Initializes a ModelManager with the given system and userPrefs. @@ -36,7 +34,6 @@ public ModelManager(ReadOnlyImmuniMate immuniMate, ReadOnlyUserPrefs userPrefs) this.immuniMate = new ImmuniMate(immuniMate); this.userPrefs = new UserPrefs(userPrefs); filteredPersons = new FilteredList<>(this.immuniMate.getPersonList()); - filteredVisits = new FilteredList<>(this.immuniMate.getVisitList()); } public ModelManager() { @@ -96,36 +93,18 @@ public boolean hasPerson(Person person) { requireNonNull(person); return immuniMate.hasPerson(person); } - - @Override - public boolean hasVisit(Visit visit) { - requireNonNull(visit); - return immuniMate.hasVisit(visit); - } - //TODO test cases @Override public void deletePerson(Person target) { immuniMate.removePerson(target); } - @Override - public void deleteVisit(Visit target) { - immuniMate.removeVisit(target); - } - @Override public void addPerson(Person person) { immuniMate.addPerson(person); updateFilteredPersonList(PREDICATE_SHOW_ALL_PERSONS); } - @Override - public void addVisit(Visit visit) { - immuniMate.addVisit(visit); - updateFilteredVisitList(PREDICATE_SHOW_ALL_VISITS); - } - @Override public void setPerson(Person target, Person editedPerson) { requireAllNonNull(target, editedPerson); @@ -133,11 +112,6 @@ public void setPerson(Person target, Person editedPerson) { immuniMate.setPerson(target, editedPerson); } - @Override - public void setVisit(Visit target, Visit editedVisit) { - - } - //=========== Filtered Person List Accessors ============================================================= /** @@ -149,23 +123,12 @@ public ObservableList getFilteredPersonList() { return filteredPersons; } - @Override - public ObservableList getFilteredVisitList() { - return filteredVisits; - } - @Override public void updateFilteredPersonList(Predicate predicate) { requireNonNull(predicate); filteredPersons.setPredicate(predicate); } - @Override - public void updateFilteredVisitList(Predicate predicate) { - requireNonNull(predicate); - filteredVisits.setPredicate(predicate); - } - @Override public boolean equals(Object other) { if (other == this) { diff --git a/src/main/java/seedu/address/model/ReadOnlyImmuniMate.java b/src/main/java/seedu/address/model/ReadOnlyImmuniMate.java index 68ef1050f06..402d94e7f22 100644 --- a/src/main/java/seedu/address/model/ReadOnlyImmuniMate.java +++ b/src/main/java/seedu/address/model/ReadOnlyImmuniMate.java @@ -2,7 +2,6 @@ import javafx.collections.ObservableList; import seedu.address.model.person.Person; -import seedu.address.model.visit.Visit; /** * Unmodifiable view of an address book @@ -15,8 +14,4 @@ public interface ReadOnlyImmuniMate { */ ObservableList getPersonList(); - /** - * Returns an unmodifiable view of the visits - */ - ObservableList getVisitList(); } diff --git a/src/main/java/seedu/address/model/UserPrefs.java b/src/main/java/seedu/address/model/UserPrefs.java index 7813c68a5cf..6be655fb4c7 100644 --- a/src/main/java/seedu/address/model/UserPrefs.java +++ b/src/main/java/seedu/address/model/UserPrefs.java @@ -14,7 +14,7 @@ public class UserPrefs implements ReadOnlyUserPrefs { private GuiSettings guiSettings = new GuiSettings(); - private Path addressBookFilePath = Paths.get("data" , "immunimate.json"); + private Path addressBookFilePath = Paths.get("data" , "addressbook.json"); /** * Creates a {@code UserPrefs} with default values. diff --git a/src/main/java/seedu/address/model/person/AddressContainsKeywordsPredicate.java b/src/main/java/seedu/address/model/person/AddressContainsKeywordsPredicate.java deleted file mode 100644 index 0a2340088be..00000000000 --- a/src/main/java/seedu/address/model/person/AddressContainsKeywordsPredicate.java +++ /dev/null @@ -1,45 +0,0 @@ -package seedu.address.model.person; - -import java.util.List; -import java.util.function.Predicate; - -import seedu.address.commons.util.StringUtil; -import seedu.address.commons.util.ToStringBuilder; - -/** - * Tests that a {@code Person}'s {@code Address} matches any of the keywords given. - */ -public class AddressContainsKeywordsPredicate implements Predicate { - private final List keywords; - - public AddressContainsKeywordsPredicate(List keywords) { - this.keywords = keywords; - } - - @Override - public boolean test(Person person) { - return keywords.stream() - .anyMatch(keyword -> StringUtil.containsPhraseIgnoreCase(person.getAddress().toString(), keyword)); - } - - @Override - public boolean equals(Object other) { - if (other == this) { - return true; - } - - // instanceof handles nulls - if (!(other instanceof AddressContainsKeywordsPredicate)) { - return false; - } - - AddressContainsKeywordsPredicate otherAddressContainsKeywordsPredicate = - (AddressContainsKeywordsPredicate) other; - return keywords.equals(otherAddressContainsKeywordsPredicate.keywords); - } - - @Override - public String toString() { - return new ToStringBuilder(this).add("keywords", keywords).toString(); - } -} diff --git a/src/main/java/seedu/address/model/person/AddressDiagnosisStatusPredicate.java b/src/main/java/seedu/address/model/person/AddressDiagnosisStatusPredicate.java deleted file mode 100644 index df81d280534..00000000000 --- a/src/main/java/seedu/address/model/person/AddressDiagnosisStatusPredicate.java +++ /dev/null @@ -1,70 +0,0 @@ -package seedu.address.model.person; - -import java.util.function.Predicate; - -import seedu.address.commons.util.ToStringBuilder; - -/** - * Tests that a {@code Person}'s {@code Status} matches any of the keywords given. - */ -public class AddressDiagnosisStatusPredicate implements Predicate { - private final String address; - private final String disease; - private final String status; - - /** - * Constructor for AddressDiagnosisStatusPredicate object - * - * @param address - * @param disease - * @param status - */ - public AddressDiagnosisStatusPredicate(String address, String disease, String status) { - this.address = address; - this.disease = disease; - this.status = status; - } - - public String getAddress() { - return address; - } - - public String getDisease() { - return disease; - } - - @Override - public boolean test(Person person) { - if (person.getDiagnosis() == null) { - return false; - } - return person.getAddress().toString().toLowerCase().contains(address.toLowerCase()) - && person.getDiagnosis().toString().toLowerCase().contains(disease.toLowerCase()) - && person.getStatus().toString().equals(status); - } - - @Override - public boolean equals(Object other) { - if (other == this) { - return true; - } - - // instanceof handles nulls - if (!(other instanceof AddressDiagnosisStatusPredicate)) { - return false; - } - - AddressDiagnosisStatusPredicate otherAddressAndStatusPredicate = - (AddressDiagnosisStatusPredicate) other; - return address.equals(otherAddressAndStatusPredicate.address) - && status.equals(otherAddressAndStatusPredicate.status); - } - - @Override - public String toString() { - return new ToStringBuilder(this) - .add("address", address) - .add("status", status) - .toString(); - } -} diff --git a/src/main/java/seedu/address/model/person/ConditionContainsKeywordsPredicate.java b/src/main/java/seedu/address/model/person/ConditionContainsKeywordsPredicate.java deleted file mode 100644 index c63cd627f19..00000000000 --- a/src/main/java/seedu/address/model/person/ConditionContainsKeywordsPredicate.java +++ /dev/null @@ -1,48 +0,0 @@ -package seedu.address.model.person; - -import java.util.List; -import java.util.function.Predicate; - -import seedu.address.commons.util.StringUtil; -import seedu.address.commons.util.ToStringBuilder; - -/** - * Tests that a {@code Person}'s {@code Condition} matches any of the keywords given. - */ -public class ConditionContainsKeywordsPredicate implements Predicate { - private final List keywords; - - public ConditionContainsKeywordsPredicate(List keywords) { - this.keywords = keywords; - } - - @Override - public boolean test(Person person) { - if (person.getCondition() == null) { - return false; - } - return keywords.stream().anyMatch( - keyword -> StringUtil.containsPhraseIgnoreCase(person.getCondition().toString(), keyword)); - } - - @Override - public boolean equals(Object other) { - if (other == this) { - return true; - } - - // instanceof handles nulls - if (!(other instanceof ConditionContainsKeywordsPredicate)) { - return false; - } - - ConditionContainsKeywordsPredicate otherConditionContainsKeywordsPredicate = - (ConditionContainsKeywordsPredicate) other; - return keywords.equals(otherConditionContainsKeywordsPredicate.keywords); - } - - @Override - public String toString() { - return new ToStringBuilder(this).add("keywords", keywords).toString(); - } -} diff --git a/src/main/java/seedu/address/model/person/Person.java b/src/main/java/seedu/address/model/person/Person.java index ff46263e939..41b6831e236 100644 --- a/src/main/java/seedu/address/model/person/Person.java +++ b/src/main/java/seedu/address/model/person/Person.java @@ -276,6 +276,7 @@ public boolean equals(Object other) { && dateOfBirth.equals(otherPerson.dateOfBirth) && sex.equals(otherPerson.sex) && status.equals(otherPerson.status) + && tags.equals(otherPerson.tags) && Objects.equals(email, otherPerson.email) && Objects.equals(country, otherPerson.country) && Objects.equals(allergies, otherPerson.allergies) @@ -289,8 +290,7 @@ public boolean equals(Object other) { @Override public int hashCode() { // use this method for custom fields hashing instead of implementing your own - return Objects.hash(nric, name, phone, address, dateOfBirth, sex, status, email, country, allergies, bloodType, - condition, dateOfAdmission, diagnosis, symptom); + return Objects.hash(name, phone, email, address, tags); } @Override diff --git a/src/main/java/seedu/address/model/person/Phone.java b/src/main/java/seedu/address/model/person/Phone.java index 1f71c89c46a..34475099c52 100644 --- a/src/main/java/seedu/address/model/person/Phone.java +++ b/src/main/java/seedu/address/model/person/Phone.java @@ -13,7 +13,7 @@ public class Phone { public static final String MESSAGE_CONSTRAINTS = "Phone numbers should only contain numbers, and it should be at least 8 digits long"; //TODO: change REGEX to give correct results - public static final String VALIDATION_REGEX = "\\d{8}"; + public static final String VALIDATION_REGEX = "\\d{8,}"; private final String value; /** diff --git a/src/main/java/seedu/address/model/util/SampleDataUtil.java b/src/main/java/seedu/address/model/util/SampleDataUtil.java index 595c00942a6..2b346a9783d 100644 --- a/src/main/java/seedu/address/model/util/SampleDataUtil.java +++ b/src/main/java/seedu/address/model/util/SampleDataUtil.java @@ -4,16 +4,12 @@ import seedu.address.model.ReadOnlyImmuniMate; import seedu.address.model.person.Address; import seedu.address.model.person.DateOfBirth; -import seedu.address.model.person.Diagnosis; import seedu.address.model.person.Name; import seedu.address.model.person.Nric; import seedu.address.model.person.Person; import seedu.address.model.person.Phone; import seedu.address.model.person.Sex; import seedu.address.model.person.Status; -import seedu.address.model.person.Symptom; -import seedu.address.model.visit.DateOfVisit; -import seedu.address.model.visit.Visit; /** * Contains utility methods for populating {@code AddressBook} with sample data. @@ -21,38 +17,27 @@ public class SampleDataUtil { public static Person[] getSamplePersons() { return new Person[] { - new Person(new Nric("T0234567C"), new Name("Alex Yeoh"), new Phone("87438807"), + new Person(new Nric("A1234567B"), new Name("Alex Yeoh"), new Phone("87438807"), new Address("Blk 30 Geylang Street 29, #06-40"), new DateOfBirth("1977-04-03"), new Sex("M"), new Status("HEALTHY")), - new Person(new Nric("S9234568N"), new Name("Bernice Yu"), new Phone("99272758"), + new Person(new Nric("A1234568B"), new Name("Bernice Yu"), new Phone("99272758"), new Address("Blk 30 Lorong 3 Serangoon Gardens, #07-18"), new DateOfBirth("1977-04-03"), new Sex("F"), new Status("UNWELL")), - new Person(new Nric("S8934569Z"), new Name("Charlotte Oliveiro"), new Phone("93210283"), + new Person(new Nric("A1234569B"), new Name("Charlotte Oliveiro"), new Phone("93210283"), new Address("Blk 11 Ang Mo Kio Street 74, #11-04"), new DateOfBirth("2001-04-03"), new Sex("F"), new Status("HEALTHY")), - new Person(new Nric("T0134560A"), new Name("David Li"), new Phone("91031282"), + new Person(new Nric("A1234560B"), new Name("David Li"), new Phone("91031282"), new Address("Blk 436 Serangoon Gardens Street 26, #16-43"), new DateOfBirth("1987-11-03"), new Sex("M"), new Status("PENDING")), - new Person(new Nric("T0534161B"), new Name("Irfan Ibrahim"), new Phone("92492021"), + new Person(new Nric("A1234561B"), new Name("Irfan Ibrahim"), new Phone("92492021"), new Address("Blk 47 Tampines Street 20, #17-35"), new DateOfBirth("1970-12-03"), new Sex("M"), new Status("UNWELL")), - new Person(new Nric("S9781662B"), new Name("Roy Balakrishnan"), new Phone("92624417"), + new Person(new Nric("A1234562B"), new Name("Roy Balakrishnan"), new Phone("92624417"), new Address("Blk 45 Aljunied Street 85, #11-31"), new DateOfBirth("1987-04-03"), new Sex("M"), new Status("PENDING")) }; } - public static Visit[] getSampleVisits() { - return new Visit[] { - new Visit(new Nric("T0245123C"), new DateOfVisit("2023-01-02"), - new Symptom("Dying"), new Diagnosis("Cancer"), new Status("UNWELL")), - new Visit(new Nric("T0245123C"), new DateOfVisit("2023-02-25"), - new Symptom("Throat Pain"), new Diagnosis("Cancer"), new Status("HEALTHY")), - new Visit(new Nric("S9234568N"), new DateOfVisit("2023-01-02"), - new Symptom("Headache"), new Diagnosis("COVID"), new Status("UNWELL")), - }; - } - public static ReadOnlyImmuniMate getSampleAddressBook() { ImmuniMate sampleAb = new ImmuniMate(); for (Person samplePerson : getSamplePersons()) { diff --git a/src/main/java/seedu/address/model/visit/DateOfVisit.java b/src/main/java/seedu/address/model/visit/DateOfVisit.java deleted file mode 100644 index 26762565d52..00000000000 --- a/src/main/java/seedu/address/model/visit/DateOfVisit.java +++ /dev/null @@ -1,60 +0,0 @@ -package seedu.address.model.visit; - -import java.time.LocalDate; - -/** - * Represents a Person's date of admission in the address book. - * Guarantees: immutable; - */ -public class DateOfVisit { - public static final String MESSAGE_CONSTRAINTS = - "Date of Visit should be in the format of YYYY-MM-DD, and it should not be blank."; - - public static final String VALIDATION_REGEX = "^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])"; - - private final LocalDate dateOfVisit; - - /** - * Constructs a {@code DateOfBirth}. - * - * @param dateOfBirth A valid date of birth. - */ - public DateOfVisit(String dateOfBirth) { - if (!isValidDateOfVisit(dateOfBirth)) { - throw new IllegalArgumentException(MESSAGE_CONSTRAINTS); - } - this.dateOfVisit = LocalDate.parse(dateOfBirth); - } - - /** - * Returns true if a given string is a valid date of birth. - */ - public static boolean isValidDateOfVisit(String test) { - return test.matches(VALIDATION_REGEX); - } - - @Override - public String toString() { - return this.dateOfVisit.toString(); - } - - @Override - public boolean equals(Object other) { - if (other == this) { - return true; - } - - // instanceof handles nulls - if (!(other instanceof DateOfVisit)) { - return false; - } - - DateOfVisit otherDateOfBirth = (DateOfVisit) other; - return dateOfVisit.equals(otherDateOfBirth.dateOfVisit); - } - - @Override - public int hashCode() { - return dateOfVisit.hashCode(); - } -} diff --git a/src/main/java/seedu/address/model/visit/UniqueVisitList.java b/src/main/java/seedu/address/model/visit/UniqueVisitList.java deleted file mode 100644 index a4883826c7a..00000000000 --- a/src/main/java/seedu/address/model/visit/UniqueVisitList.java +++ /dev/null @@ -1,148 +0,0 @@ -package seedu.address.model.visit; - -import static java.util.Objects.requireNonNull; -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; - -import java.util.Iterator; -import java.util.List; - -import javafx.collections.FXCollections; -import javafx.collections.ObservableList; -import seedu.address.model.visit.exceptions.DuplicateVisitException; -import seedu.address.model.visit.exceptions.VisitNotFoundException; - -/** - * A list of visits that enforces uniqueness between its elements and does not allow nulls. - * A visit is considered unique by comparing using {@code Visit#isSameVisit(Visit)}. As such, adding and updating of - * visits uses Visit#isSameVisit(Visit) for equality so as to ensure that the visit being added or updated is - * unique in terms of identity in the UniqueVisitList. However, the removal of a visit uses Visit#equals(Object) so - * as to ensure that the visit with exactly the same fields will be removed. - * - * Supports a minimal set of list operations. - * - */ -public class UniqueVisitList implements Iterable { - - private final ObservableList internalList = FXCollections.observableArrayList(); - private final ObservableList internalUnmodifiableList = - FXCollections.unmodifiableObservableList(internalList); - - /** - * Returns true if the list contains an equivalent visit as the given argument. - */ - public boolean contains(Visit toCheck) { - requireNonNull(toCheck); - return internalList.stream().anyMatch(toCheck::isSameVisit); - } - - /** - * Adds a visit to the list. - * The visit must not already exist in the list. - */ - public void add(Visit toAdd) { - requireNonNull(toAdd); - if (contains(toAdd)) { - throw new DuplicateVisitException(); - } - internalList.add(toAdd); - } - - /** - * Replaces the visit {@code target} in the list with {@code editedVisit}. - * {@code target} must exist in the list. - * The visit identity of {@code editedVisit} must not be the same as another existing visit in the list. - */ - public void setVisit(Visit target, Visit editedVisit) { - requireAllNonNull(target, editedVisit); - - int index = internalList.indexOf(target); - if (index == -1) { - throw new VisitNotFoundException(); - } - - if (!target.isSameVisit(editedVisit) && contains(editedVisit)) { - throw new DuplicateVisitException(); - } - - internalList.set(index, editedVisit); - } - - /** - * Removes the equivalent visit from the list. - * The visit must exist in the list. - */ - public void remove(Visit toRemove) { - requireNonNull(toRemove); - if (!internalList.remove(toRemove)) { - throw new VisitNotFoundException(); - } - } - - public void setVisits(UniqueVisitList replacement) { - requireNonNull(replacement); - internalList.setAll(replacement.internalList); - } - - /** - * Replaces the contents of this list with {@code visits}. - * {@code visits} must not contain duplicate visits. - */ - public void setVisits(List visits) { - requireAllNonNull(visits); - if (!visitsAreUnique(visits)) { - throw new DuplicateVisitException(); - } - - internalList.setAll(visits); - } - - /** - * Returns the backing list as an unmodifiable {@code ObservableList}. - */ - public ObservableList asUnmodifiableObservableList() { - return internalUnmodifiableList; - } - - @Override - public Iterator iterator() { - return internalList.iterator(); - } - - @Override - public boolean equals(Object other) { - if (other == this) { - return true; - } - - if (!(other instanceof UniqueVisitList)) { - return false; - } - - UniqueVisitList otherUniqueVisitList = (UniqueVisitList) other; - return internalList.equals(otherUniqueVisitList.internalList); - } - - @Override - public int hashCode() { - return internalList.hashCode(); - } - - @Override - public String toString() { - return internalList.toString(); - } - - /** - * Returns true if {@code visits} contains only unique visits. - */ - private boolean visitsAreUnique(List visits) { - for (int i = 0; i < visits.size() - 1; i++) { - for (int j = i + 1; j < visits.size(); j++) { - if (visits.get(i).isSameVisit(visits.get(j))) { - return false; - } - } - } - return true; - } -} diff --git a/src/main/java/seedu/address/model/visit/Visit.java b/src/main/java/seedu/address/model/visit/Visit.java deleted file mode 100644 index 3bd18c7d504..00000000000 --- a/src/main/java/seedu/address/model/visit/Visit.java +++ /dev/null @@ -1,140 +0,0 @@ -package seedu.address.model.visit; - -import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; - -import java.util.Objects; - -import seedu.address.commons.util.ToStringBuilder; -import seedu.address.model.person.Diagnosis; -import seedu.address.model.person.Nric; -import seedu.address.model.person.Status; -import seedu.address.model.person.Symptom; - - -/** - * Represents a single Patient Visit - * Guarantees: details are present and not null, field values are validated, immutable. - */ -public class Visit { - private final Nric nric; - private DateOfVisit dateOfVisit; - private Symptom symptom; - private Diagnosis diagnosis; - private Status status; - /** - * Every mandatory field must be present and not null. - */ - public Visit(Nric nric, DateOfVisit dateOfVisit, Symptom symptom, Diagnosis diagnosis, Status status) { - //Only the fields that are mandatory are included down here - requireAllNonNull(nric, dateOfVisit, diagnosis, symptom, status); - this.nric = nric; - this.dateOfVisit = dateOfVisit; - this.symptom = symptom; - this.diagnosis = diagnosis; - this.status = status; - } - - public Nric getNric() { - return nric; - } - - public DateOfVisit getDateOfVisit() { - return this.dateOfVisit; - } - public Symptom getSymptom() { - return this.symptom; - } - public Diagnosis getDiagnosis() { - return this.diagnosis; - } - public Status getStatus() { - return this.status; - } - - /** - * Returns true if both persons have the same nric. - * This defines a weaker notion of equality between two persons. - */ - public boolean isSamePerson(Visit otherPerson) { - if (otherPerson == this) { - return true; - } - - return otherPerson != null && otherPerson.getNric().equals(getNric()); - } - - /** - * Returns true if the person has all mandatory fields. - */ - public static boolean isValidVisit(Visit visit) { - return visit.nric != null - && visit.dateOfVisit != null - && visit.symptom != null - && visit.diagnosis != null - && visit.status != null; - } - - /** - * Returns true if both visits have the same nric and date - * NRIC and Date of Visit serve as the unique key for each Visit - * This is different from equals - * @return Boolean if two Visits are the same - */ - public boolean isSameVisit(Visit otherVisit) { - if (otherVisit == this) { - return true; - } - - return otherVisit != null && otherVisit.getNric().equals(getNric()) - && otherVisit.getDateOfVisit().equals(getDateOfVisit()); - } - - - /** - * Returns true if both persons have the same identity and all data fields. - * This defines a stronger notion of equality between two persons. - */ - @Override - public boolean equals(Object other) { - if (other == this) { - return true; - } - - // instanceof handles nulls - if (!(other instanceof Visit)) { - return false; - } - Visit otherVisit = (Visit) other; - if (!(isValidVisit(this) && isValidVisit(otherVisit))) { - return false; - } - return nric.equals(otherVisit.nric) - && dateOfVisit.equals(otherVisit.dateOfVisit) - && symptom.equals(otherVisit.symptom) - && diagnosis.equals(otherVisit.diagnosis) - && status.equals(otherVisit.status); - - - - } - - @Override - public int hashCode() { - // use this method for custom fields hashing instead of implementing your own - return Objects.hash(nric, dateOfVisit, symptom, diagnosis, status); - } - - /** - * @return String representation of Visit class - */ - @Override - public String toString() { - // list view - return new ToStringBuilder(this) - .add("nric", nric) - .add("date of visit", dateOfVisit) - .add("symptom", symptom) - .add("diagnosis", diagnosis) - .add("status", status).toString(); - } -} diff --git a/src/main/java/seedu/address/model/visit/VisitContainsNricPredicate.java b/src/main/java/seedu/address/model/visit/VisitContainsNricPredicate.java deleted file mode 100644 index 8fcc41e2b83..00000000000 --- a/src/main/java/seedu/address/model/visit/VisitContainsNricPredicate.java +++ /dev/null @@ -1,43 +0,0 @@ -package seedu.address.model.visit; - -import java.util.function.Predicate; - -import seedu.address.commons.util.StringUtil; -import seedu.address.commons.util.ToStringBuilder; - -/** - * Tests that a {@code Visit}'s {@code Nric} matches any of the keywords given. - */ -public class VisitContainsNricPredicate implements Predicate { - private final String keywords; - - public VisitContainsNricPredicate(String keywords) { - this.keywords = keywords; - } - - @Override - public boolean test(Visit visit) { - return StringUtil.containsWordIgnoreCase(visit.getNric().toString(), keywords); - } - - @Override - public boolean equals(Object other) { - if (other == this) { - return true; - } - - // instanceof handles nulls - if (!(other instanceof VisitContainsNricPredicate)) { - return false; - } - - VisitContainsNricPredicate otherVisitContainsNricPredicate = (VisitContainsNricPredicate) other; - return keywords.equals(otherVisitContainsNricPredicate.keywords); - } - - @Override - public String toString() { - return new ToStringBuilder(this).add("keywords", keywords).toString(); - } -} - diff --git a/src/main/java/seedu/address/model/visit/exceptions/DuplicateVisitException.java b/src/main/java/seedu/address/model/visit/exceptions/DuplicateVisitException.java deleted file mode 100644 index 2b7d1293eff..00000000000 --- a/src/main/java/seedu/address/model/visit/exceptions/DuplicateVisitException.java +++ /dev/null @@ -1,11 +0,0 @@ -package seedu.address.model.visit.exceptions; - -/** - * Signals that the operation will result in duplicate Persons (Persons are considered duplicates if they have the same - * identity). - */ -public class DuplicateVisitException extends RuntimeException { - public DuplicateVisitException() { - super("Operation would result in duplicate persons"); - } -} diff --git a/src/main/java/seedu/address/model/visit/exceptions/VisitNotFoundException.java b/src/main/java/seedu/address/model/visit/exceptions/VisitNotFoundException.java deleted file mode 100644 index dc86cc93433..00000000000 --- a/src/main/java/seedu/address/model/visit/exceptions/VisitNotFoundException.java +++ /dev/null @@ -1,10 +0,0 @@ -package seedu.address.model.visit.exceptions; - -/** - * Signals that the operation is unable to find the specified person. - */ -public class VisitNotFoundException extends RuntimeException { - public VisitNotFoundException() { - super("Visit not found"); - } -} diff --git a/src/main/java/seedu/address/storage/JsonAdaptedVisit.java b/src/main/java/seedu/address/storage/JsonAdaptedVisit.java deleted file mode 100644 index 754ce5168af..00000000000 --- a/src/main/java/seedu/address/storage/JsonAdaptedVisit.java +++ /dev/null @@ -1,103 +0,0 @@ -package seedu.address.storage; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonProperty; - -import seedu.address.commons.exceptions.IllegalValueException; -import seedu.address.model.person.Diagnosis; -import seedu.address.model.person.Nric; -import seedu.address.model.person.Person; -import seedu.address.model.person.Status; -import seedu.address.model.person.Symptom; -import seedu.address.model.visit.DateOfVisit; -import seedu.address.model.visit.Visit; - - -/** - * Jackson-friendly version of {@link Person}. - */ -class JsonAdaptedVisit { - public static final String MISSING_FIELD_MESSAGE_FORMAT = "Visit's %s field is missing!"; - private final String nric; - private final String dov; - private final String diagnosis; - private final String symptom; - private final String status; - - /** - * Constructs a {@code JsonAdaptedPerson} with the given person details. - */ - @JsonCreator - public JsonAdaptedVisit(@JsonProperty("nric") String nric, @JsonProperty("dateOfVisit") String dov, - @JsonProperty("diagnosis") String diagnosis, @JsonProperty("symptom") String symptom, - @JsonProperty("status") String status) { - this.nric = nric; - this.dov = dov; - this.status = status; - this.diagnosis = diagnosis; - this.symptom = symptom; - } - - /** - * Converts a given {@code Person} into this class for Json use. - */ - public JsonAdaptedVisit(Visit source) { - this.nric = source.getNric().toString(); - this.dov = source.getDateOfVisit().toString(); - this.diagnosis = source.getDiagnosis().toString(); - this.symptom = source.getSymptom().toString(); - this.status = source.getStatus().toString(); - } - - /** - * Converts this Json-friendly adapted person object into the model's {@code Person} object. - * - * @throws IllegalValueException if there were any data constraints violated in the adapted person. - */ - public Visit toModelType() throws IllegalValueException { - - Visit visit; - - // NRIC Check - if (nric == null) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, Nric.class.getSimpleName())); - } - if (!Nric.isValidNric(nric)) { - throw new IllegalValueException(Nric.MESSAGE_CONSTRAINTS); - } - final Nric modelNric = new Nric(nric); - // DateOfVisit Check - if (dov == null) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, - DateOfVisit.class.getSimpleName())); - } - if (!DateOfVisit.isValidDateOfVisit(dov)) { - throw new IllegalValueException(DateOfVisit.MESSAGE_CONSTRAINTS); - } - final DateOfVisit modelDov = new DateOfVisit(dov); - // Symptom check - if (symptom == null || symptom.isEmpty()) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, - Symptom.class.getSimpleName())); - } - final Symptom modelSymptom = new Symptom(symptom); - // Diagnosis check - if (diagnosis == null || diagnosis.isEmpty()) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, - Diagnosis.class.getSimpleName())); - } - final Diagnosis modelDiagnosis = new Diagnosis(diagnosis); - // Status Check - if (status == null) { - throw new IllegalValueException(String.format(MISSING_FIELD_MESSAGE_FORMAT, - Status.class.getSimpleName())); - } - if (!Status.isValidStatus(status)) { - throw new IllegalValueException(Status.MESSAGE_CONSTRAINTS); - } - final Status modelStatus = new Status(status); - visit = new Visit(modelNric, modelDov, modelSymptom, modelDiagnosis, modelStatus); - return visit; - } - -} diff --git a/src/main/java/seedu/address/storage/JsonSerializableAddressBook.java b/src/main/java/seedu/address/storage/JsonSerializableAddressBook.java index edfe9e7b0df..4536ab11301 100644 --- a/src/main/java/seedu/address/storage/JsonSerializableAddressBook.java +++ b/src/main/java/seedu/address/storage/JsonSerializableAddressBook.java @@ -12,7 +12,6 @@ import seedu.address.model.ImmuniMate; import seedu.address.model.ReadOnlyImmuniMate; import seedu.address.model.person.Person; -import seedu.address.model.visit.Visit; /** * An Immutable AddressBook that is serializable to JSON format. @@ -23,16 +22,13 @@ class JsonSerializableAddressBook { public static final String MESSAGE_DUPLICATE_PERSON = "Persons list contains duplicate person(s)."; private final List persons = new ArrayList<>(); - private final List visits = new ArrayList<>(); /** * Constructs a {@code JsonSerializableAddressBook} with the given persons. */ @JsonCreator - public JsonSerializableAddressBook(@JsonProperty("persons") List persons, - @JsonProperty("visits") List visits) { + public JsonSerializableAddressBook(@JsonProperty("persons") List persons) { this.persons.addAll(persons); - this.visits.addAll(visits); } /** @@ -42,7 +38,6 @@ public JsonSerializableAddressBook(@JsonProperty("persons") List { private static final String FXML = "CommandBox.fxml"; private final CommandExecutor commandExecutor; - private final LinkedList commandHistory = new LinkedList<>(); - private int historyIndex = 0; @FXML private TextField commandTextField; @@ -34,44 +29,6 @@ public CommandBox(CommandExecutor commandExecutor) { this.commandExecutor = commandExecutor; // calls #setStyleToDefault() whenever there is a change to the text of the command box. commandTextField.textProperty().addListener((unused1, unused2, unused3) -> setStyleToDefault()); - - // Listen for key events on the commandTextField - commandTextField.setOnKeyPressed(event -> { - switch (event.getCode()) { - case UP: - navigateCommandHistory(1); // Navigate backwards in history - event.consume(); // Consume the event to prevent further processing - break; - case DOWN: - navigateCommandHistory(-1); // Navigate forwards in history - event.consume(); - break; - default: - break; - } - }); - } - - - private void navigateCommandHistory(int direction) { - if (commandHistory.isEmpty()) { - return; // No history to navigate - } - - // Adjust the history index based on the direction - historyIndex += direction; - - // Boundary checks - if (historyIndex < 0) { - historyIndex = 0; - } else if (historyIndex >= commandHistory.size()) { - historyIndex = commandHistory.size(); - commandTextField.setText(""); // Clear the text field if we're past the last command - return; - } - - // Set the commandTextField's text to the command at the new history index - commandTextField.setText(commandHistory.get(historyIndex)); } /** @@ -86,8 +43,6 @@ private void handleCommandEntered() { try { commandExecutor.execute(commandText); - commandHistory.addFirst(commandText); - historyIndex = 0; commandTextField.setText(""); } catch (CommandException | ParseException e) { setStyleToIndicateCommandFailure(); diff --git a/src/main/java/seedu/address/ui/PersonCard.java b/src/main/java/seedu/address/ui/PersonCard.java index 95943e319f2..f0c2d314ffa 100644 --- a/src/main/java/seedu/address/ui/PersonCard.java +++ b/src/main/java/seedu/address/ui/PersonCard.java @@ -15,10 +15,6 @@ public class PersonCard extends UiPart { private static final String FXML = "PersonListCard.fxml"; - private static final Color customGreen = Color.web("#81C784"); - private static final Color customYellow = Color.web("#FFF176"); - private static final Color customRed = Color.web("#EF5350"); - /** * Note: Certain keywords such as "location" and "resources" are reserved keywords in JavaFX. @@ -61,20 +57,16 @@ public PersonCard(Person person, int displayedIndex) { public void updateStatusCircle(Status status) { switch (status.getStatusType()) { case HEALTHY: - statusCircle.setFill(customGreen); - statusCircle.setStroke(customGreen); + statusCircle.setFill(Color.GREEN); break; case UNWELL: - statusCircle.setFill(customRed); - statusCircle.setStroke(customRed); + statusCircle.setFill(Color.RED); break; case PENDING: - statusCircle.setFill(customYellow); - statusCircle.setStroke(customYellow); + statusCircle.setFill(Color.YELLOW); break; default: statusCircle.setFill(Color.GREY); - statusCircle.setStroke(Color.GREY); break; } } diff --git a/src/main/resources/view/CommandBox.fxml b/src/main/resources/view/CommandBox.fxml index aa1736d1c92..28313dfcdc5 100644 --- a/src/main/resources/view/CommandBox.fxml +++ b/src/main/resources/view/CommandBox.fxml @@ -8,13 +8,13 @@ + xmlns:fx="http://javafx.com/fxml/1" style="-fx-background-color: #818589;"> + promptText="Input command here..." style="-fx-background-color: transparent; -fx-border-color: #818589;" /> diff --git a/src/main/resources/view/DarkTheme.css b/src/main/resources/view/DarkTheme.css index d39e0852614..3f0449eb1f4 100644 --- a/src/main/resources/view/DarkTheme.css +++ b/src/main/resources/view/DarkTheme.css @@ -1,6 +1,6 @@ .background { - -fx-background-color: derive(#b9c4c0, 20%); - background-color: #b9c4c0; /* Used in the default.html file */ + -fx-background-color: derive(#1d1d1d, 20%); + background-color: #383838; /* Used in the default.html file */ } .label { @@ -40,9 +40,9 @@ } .table-view { - -fx-base: #b9c4c0; - -fx-control-inner-background: #b9c4c0; - -fx-background-color: #b9c4c0; + -fx-base: #1d1d1d; + -fx-control-inner-background: #1d1d1d; + -fx-background-color: #1d1d1d; -fx-table-cell-border-color: transparent; -fx-table-header-border-color: transparent; -fx-padding: 5; @@ -77,20 +77,20 @@ } .split-pane:horizontal .split-pane-divider { - -fx-background-color: derive(#b9c4c0, 20%); - -fx-border-color: transparent transparent transparent #b9c4c0; + -fx-background-color: derive(#1d1d1d, 20%); + -fx-border-color: transparent transparent transparent #4d4d4d; } .split-pane { -fx-border-radius: 1; -fx-border-width: 1; - -fx-background-color: derive(#b9c4c0, 20%); + -fx-background-color: derive(#1d1d1d, 20%); } .list-view { -fx-background-insets: 0; -fx-padding: 0; - -fx-background-color: derive(#b9c4c0, 20%); + -fx-background-color: derive(#1d1d1d, 20%); } .list-cell { @@ -100,57 +100,57 @@ } .list-cell:filled:even { - -fx-background-color: #ebf2ef; + -fx-background-color: #3c3e3f; } .list-cell:filled:odd { - -fx-background-color: #dee3e1; + -fx-background-color: #515658; } .list-cell:filled:selected { - -fx-background-color: #97b0a5; + -fx-background-color: #424d5f; } .list-cell:filled:selected #cardPane { - -fx-border-color: #b9c4c0; + -fx-border-color: #3e7b91; -fx-border-width: 1; } .list-cell .label { - -fx-text-fill: #676767; + -fx-text-fill: white; } .cell_big_label { - -fx-font-family: "Segoe UI Bold"; + -fx-font-family: "Segoe UI Semibold"; -fx-font-size: 16px; - -fx-text-fill: #676767; + -fx-text-fill: #010504; } .cell_small_label { -fx-font-family: "Segoe UI"; -fx-font-size: 13px; - -fx-text-fill: #676767; + -fx-text-fill: #010504; } .stack-pane { - -fx-background-color: derive(#b9c4c0, 20%); + -fx-background-color: derive(#1d1d1d, 20%); } .pane-with-border { - -fx-background-color: derive(#b9c4c0, 20%); - -fx-border-color: derive(#b9c4c0, 10%); + -fx-background-color: derive(#1d1d1d, 20%); + -fx-border-color: derive(#1d1d1d, 10%); -fx-border-top-width: 1px; } .status-bar { - -fx-background-color: derive(#469073, 30%); + -fx-background-color: derive(#1d1d1d, 30%); } .result-panel { - -fx-background-color: #a7b0ae; + -fx-background-color: transparent; -fx-font-family: "Segoe UI Light"; - -fx-font-size: 15pt; - -fx-text-fill: #424242; + -fx-font-size: 13pt; + -fx-text-fill: white; } .result-panel .label { @@ -165,8 +165,8 @@ } .status-bar-with-border { - -fx-background-color: derive(#469073, 30%); - -fx-border-color: derive(#469073, 25%); + -fx-background-color: derive(#1d1d1d, 30%); + -fx-border-color: derive(#1d1d1d, 25%); -fx-border-width: 1px; } @@ -175,25 +175,25 @@ } .grid-pane { - -fx-background-color: derive(#b9c4c0, 30%); - -fx-border-color: derive(#b9c4c0, 30%); + -fx-background-color: derive(#1d1d1d, 30%); + -fx-border-color: derive(#1d1d1d, 30%); -fx-border-width: 1px; } .grid-pane .stack-pane { - -fx-background-color: derive(#b9c4c0, 30%); + -fx-background-color: derive(#1d1d1d, 30%); } .context-menu { - -fx-background-color: derive(#b9c4c0, 50%); + -fx-background-color: derive(#1d1d1d, 50%); } .context-menu .label { - -fx-text-fill: black; + -fx-text-fill: white; } .menu-bar { - -fx-background-color: derive(#b9c4c0, 20%); + -fx-background-color: derive(#1d1d1d, 20%); } .menu-bar .label { @@ -204,7 +204,7 @@ } .menu .left-container { - -fx-background-color: #b9c4c0; + -fx-background-color: black; } /* @@ -217,10 +217,10 @@ -fx-border-color: #e2e2e2; -fx-border-width: 2; -fx-background-radius: 0; - -fx-background-color: #b9c4c0; + -fx-background-color: #1d1d1d; -fx-font-family: "Segoe UI", Helvetica, Arial, sans-serif; -fx-font-size: 11pt; - -fx-text-fill: #676767; + -fx-text-fill: #d8d8d8; -fx-background-insets: 0 0 0 0, 0, 1, 2; } @@ -243,7 +243,7 @@ .button:disabled, .button:default:disabled { -fx-opacity: 0.4; - -fx-background-color: #b9c4c0; + -fx-background-color: #1d1d1d; -fx-text-fill: white; } @@ -257,11 +257,11 @@ } .dialog-pane { - -fx-background-color: #FDFFFE; + -fx-background-color: #1d1d1d; } .dialog-pane > *.button-bar > *.container { - -fx-background-color: #b9c4c0; + -fx-background-color: #1d1d1d; } .dialog-pane > *.label.content { @@ -271,7 +271,7 @@ } .dialog-pane:header *.header-panel { - -fx-background-color: derive(#b9c4c0, 25%); + -fx-background-color: derive(#1d1d1d, 25%); } .dialog-pane:header *.header-panel *.label { @@ -282,11 +282,11 @@ } .scroll-bar { - -fx-background-color: derive(#fdfffe, 20%); + -fx-background-color: derive(#1d1d1d, 20%); } .scroll-bar .thumb { - -fx-background-color: derive(#b9c4c0, 50%); + -fx-background-color: derive(#1d1d1d, 50%); -fx-background-insets: 3; } @@ -314,7 +314,7 @@ #commandTypeLabel { -fx-font-size: 11px; - -fx-text-fill: #676767; + -fx-text-fill: #F70D1A; } #commandTextField { @@ -333,7 +333,7 @@ } #resultPanel .content { - -fx-background-color: #a7b0ae, #a7b0ae, #a7b0ae, #a7b0ae; + -fx-background-color: transparent, #383838, transparent, #383838; -fx-background-radius: 0; } diff --git a/src/main/resources/view/Extensions.css b/src/main/resources/view/Extensions.css index 647824200a2..bfe82a85964 100644 --- a/src/main/resources/view/Extensions.css +++ b/src/main/resources/view/Extensions.css @@ -5,7 +5,7 @@ .list-cell:empty { /* Empty cells will not have alternating colours */ - -fx-background: #FDFFFE; + -fx-background: #383838; } .tag-selector { diff --git a/src/main/resources/view/MainWindow.fxml b/src/main/resources/view/MainWindow.fxml index 2c611feaa86..89768d82441 100644 --- a/src/main/resources/view/MainWindow.fxml +++ b/src/main/resources/view/MainWindow.fxml @@ -12,7 +12,7 @@ - @@ -25,7 +25,7 @@ - + diff --git a/src/main/resources/view/ResultPanel.fxml b/src/main/resources/view/ResultPanel.fxml index 2653249a3b2..4116130909e 100644 --- a/src/main/resources/view/ResultPanel.fxml +++ b/src/main/resources/view/ResultPanel.fxml @@ -3,6 +3,7 @@ - -