From fc7f87d66f4d8f874d33eada36802d9abb048b2d Mon Sep 17 00:00:00 2001
From: justin soong <91204066+juzzztinsoong@users.noreply.github.com>
Date: Sat, 11 Nov 2023 23:30:22 +0800
Subject: [PATCH] Made extensive changes to userguide.md
Fixed formatting grammar
Modified some descriptions to align with app functionality
---
docs/DeveloperGuide.md | 4 +-
docs/UserGuide.md | 286 +++++++++++++++++++++--------------------
docs/images/Ui.png | Bin 67823 -> 47864 bytes
docs/index.md | 2 +-
4 files changed, 153 insertions(+), 139 deletions(-)
diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md
index e1afd016fc4..84b0bf87583 100644
--- a/docs/DeveloperGuide.md
+++ b/docs/DeveloperGuide.md
@@ -1,9 +1,9 @@
---
layout: page
-title: Developer Guide
+title: OutBook Developer Guide
---
-# Table of Contents
+## Table of Contents
- [Acknowledgements](#acknowledgements)
- [Setting up, getting started](#setting-up-getting-started)
diff --git a/docs/UserGuide.md b/docs/UserGuide.md
index 6e79bef6538..5820be46b17 100644
--- a/docs/UserGuide.md
+++ b/docs/UserGuide.md
@@ -2,19 +2,18 @@
layout: page
title: OutBook User Guide
---
-# OutBook
## About OutBook
-OutBook is a desktop app that allows freelance insurance agents to manage their numerous contacts and meeting schedule. It is optimised for Command Line Interface (CLI) and aims to significantly reduce the time needed for organizational tasks.
+OutBook is a desktop application designed for freelance insurance agents, enabling them to effectively organize and oversee their extensive contacts and meeting schedules. It is optimised for Command Line Interface (CLI) and aims to significantly reduce the time needed for organizational tasks.
This guide aims to help you explore its features and learn how to use them.
## Key Features
To help you simplify and streamline the process of organizing your contacts and meeting schedule, our application provides these easy-to-use and efficient features:
-1. **Client Information Management**: Easily store, access and modify client details such as contact number, email and last contacted time. Add status, custom tags and remarks to organize your clients according to your preference.
-2. **Meeting Schedule and Information Management**: Keep track of where and when your meetings are, and who you are meeting, to ensure you never miss an important appointment.
+1. **Client Information Management**: Easily store, access and modify client details such as contact number, email and last contacted time. Add statuses, custom tags and remarks to organize your clients according to your preferences.
+2. **Meeting Schedule and Information Management**: Keep track of where and when your meetings are, and who you are meeting, to ensure you will be prepared for every appointment.
-Managing clients and a busy schedule have never been easier. With OutBook, all you need is a keyboard and a few seconds to type in short commands!
+Managing clients and a busy schedule has never been easier. With OutBook, all you need is a keyboard and a few short seconds typing out simple commands!
# Table of Contents
@@ -24,11 +23,11 @@ Managing clients and a busy schedule have never been easier. With OutBook, all y
- [Features](#features)
- [Contact Commands](#contact-commands)
- [Adding a contact: `addc`](#adding-a-contact--addc)
- - [Listing all persons: `listc`](#listing-all-persons--listc)
- - [Deleting a person: `deletec`](#deleting-a-person--deletec)
+ - [Listing all contacts: `listc`](#listing-all-contacts--listc)
+ - [Deleting a contact: `deletec`](#deleting-a-contact--deletec)
- [Editing a contact: `editc`](#editing-a-contact--editc)
- [Viewing detailed contact information: `viewc`](#viewing-detailed-contact-information--viewc)
- - [Finding persons using contact fields: `findc`](#search-for-persons-using-contact-fields--findc)
+ - [Finding contacts using contact fields: `findc`](#search-for-contacts-using-contact-fields--findc)
- [Meeting Commands](#meeting-commands)
- [Adding a meeting: `addm`](#adding-a-meeting--addm)
- [Listing all meetings: `listm`](#listing-all-meetings--listm)
@@ -40,6 +39,7 @@ Managing clients and a busy schedule have never been easier. With OutBook, all y
- [Removing contact from meeting: `rmmc`](#remove-contact-from-meeting--rmmc)
- [Marking a meeting as complete : `mark`](#marking-a-meeting-as-complete--mark)
- [Miscellaneous Commands](#miscellaneous-commands)
+ - [Viewing help: `help`](#viewing-help--help)
- [Clearing all entries: `clear`](#clearing-all-entries--clear)
- [Exiting the program: `exit`](#exiting-the-program--exit)
- [Saving the data](#saving-the-data)
@@ -56,13 +56,14 @@ Managing clients and a busy schedule have never been easier. With OutBook, all y
1. Ensure you have Java `11` or above installed in your Computer.
-2. Download the latest `OutBook.jar` from [here](https://github.com/AY2324S1-CS2103T-F12-4/tp/releases).
+2. Download the latest `OutBook.jar` [here](https://github.com/AY2324S1-CS2103T-F12-4/tp/releases).
3. Copy the file to the folder you want to use as the _home folder_ for OutBook.
-4. Open a command terminal, `cd` into the folder you put the jar file in, and use the `java -jar OutBook.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/Ui.png)
+4. Open a command terminal, navigate to the _home folder_ using `cd`, and use the `java -jar OutBook.jar` command to run the application.
+ A GUI similar to the below should appear in a few seconds. Note how the app comes pre-loaded with some sample data.
+
+![Ui](images/Ui.png)
5. Type a 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:
@@ -79,25 +80,25 @@ Managing clients and a busy schedule have never been easier. With OutBook, all y
- `exit` : Exits the app.
-6. Refer to the [Features](#features) below for details of each command.
+6. You can refer to the [Features](#features) section below for details of each command.
-Return to the [Table of Contents](#table-of-contents)
+[Click here to return to the Table of Contents](#table-of-contents)
+___
----
# Navigating OutBook
![User Interface for OutBook](images/UserInterface.png)
| Name | Function |
|---------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Command Box | Enter your commands here |
-| Status Box | Displays the results after a command is executed |
-| Contacts List | Displays contact details |
-| Meetings List | Displays meetings that are scheduled |
-| Details List | Displays all the fields of a contact and/or meeting in full detail, completed with labels. Use [viewc](#viewing-detailed-contact-information--viewc)/[viewm](#viewing-detailed-meeting-information--viewm) to specify the contact/meeting to display. |
+| Command Box | Allows you to enter your commands here. |
+| Status Box | Displays the results after a command is executed. |
+| Contacts List | Displays your contacts along with a summary of their details. |
+| Meetings List | Displays meetings that are scheduled along with a summary of their details. |
+| Details List | Displays all the fields of a contact and/or meeting in full detail, complete with labels. Use [viewc](#viewing-detailed-contact-information--viewc)/[viewm](#viewing-detailed-meeting-information--viewm) to specify the contact/meeting to display. |
-Return to the [Table of Contents](#table-of-contents)
+[Click here to return to the Table of Contents](#table-of-contents)
---
@@ -109,32 +110,21 @@ Return to the [Table of Contents](#table-of-contents)
**:information_source: Notes about the command format:**
-- Words in `UPPER_CASE` are the parameters to be supplied by you.
- e.g. in `addc n/NAME`, `NAME` is a parameter which can be used as `addc n/John Doe`.
+- Every word in uppercase represents a field you can supply.
+ e.g. in `addc n/NAME`, `NAME` is a parameter that can be substituted for `John Doe`, as in `addc n/John Doe`.
-- Items in square brackets are optional.
- e.g `n/NAME [t/TAG]` can be used as `n/John Doe t/friend` or as `n/John Doe`.
+- Fields contained in square brackets are optional.
+ e.g. when provided with the fields `n/NAME [t/TAG]`, you can submit `n/John Doe t/friend` if you want to mark this contact as a `friend`, or `n/John Doe` otherwise.
-- 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.
+- Fields with `…` after them can be submitted any number of times, including zero.
+ e.g. when provided with the field `[t/TAG]…`, you can leave the field blank, or submit `t/friend`, `t/friend t/family`, etc.
-- You can place parameters in any order.
- e.g. if the command specifies `n/NAME p/PHONE_NUMBER`, `p/PHONE_NUMBER n/NAME` is also acceptable.
+- You can submit fields in any order.
+ e.g. if the command specifies `n/NAME p/PHONE_NUMBER`, submitting in the format `p/PHONE_NUMBER n/NAME`, such as in `p/91472381 n/John Doe`, is also acceptable.
-- Any extraneous parameters you place for commands that do not take in parameters (such as `help`, `listc`, `exit` and `clear`) will be ignored.
- e.g. if you type `help 123`, it will be interpreted as `help`.
-
-- If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines as space characters surrounding line-breaks may be omitted when copied over to the application.
+- If you are using a PDF version of this document, be careful when copying and pasting commands that span multiple lines. This is to avoid omission of space characters surrounding line-breaks when lengthy text is copied over to the application.
-### Viewing help : `help`
-
-Shows you a message explaining how to access the help page.
-
-![help message](images/helpMessage.png)
-
-Format: `help`
-
## Contact Commands
@@ -143,9 +133,9 @@ Format: `help`
Adds a contact to OutBook.
-Format: `addc n/NAME p/PHONE_NUMBER e/EMAIL lc/LAST_CONTACTED_TIME [s/STATUS] [r/REMARK] [t/TAG]…`
+Format: `addc n/NAME p/PHONE_NUMBER e/EMAIL [lc/LAST_CONTACTED_TIME] [s/STATUS] [r/REMARK] [t/TAG]…`
-- `NAME`, `PHONE_NUMBER`, `EMAIL` and `LAST_CONTACTED_TIME` are compulsory fields. `STATUS`, `REMARK` and `TAG` are optional.
+- `NAME`, `PHONE_NUMBER`, `EMAIL` are compulsory fields. `LAST_CONTACTED_TIME`, `STATUS`, `REMARK` and `TAG` are optional.
- `PHONE_NUMBER` must contain only numbers, and be at least 3 digits long.
- `EMAIL` must be of the format local-part@domain and adhere to the following constraints:
1. The local-part should only contain alphanumeric characters and the following special characters `+ _ . -`.
@@ -155,45 +145,45 @@ Format: `addc n/NAME p/PHONE_NUMBER e/EMAIL lc/LAST_CONTACTED_TIME [s/STATUS] [r
- end with a domain label at least 2 characters long
- have each domain label start and end with alphanumeric characters
- have each domain label consist of alphanumeric characters, separated only by hyphen
-
- `LAST_CONTACTED_TIME` must contain both date and time and adhere to the `DD.MM.YYYY HHMM` format.
- - eg. 1st October 2023, 10:00am will be written as `01.10.2023 1000`.
-- STATUS, if included, must be one of `NIL, Prospective, Active, Inactive, Claimant, Renewal` or blank.
-- This command may change the contact that is currently displayed via the `viewc` command, as detailed in the description for `viewc`.
+ - e.g. 1st October 2023, 10:00am will be written as `01.10.2023 1000`.
+- STATUS, if included, must be one of `NIL`, `Prospective`, `Active`, `Inactive`, `Claimant`, `Renewal`, or blank.
+- This command may change the contact that is currently displayed in the details list via the `viewc` command, as detailed in the description for `viewc`.
:bulb: **Tip:**
You can put any number of tags (including 0) on a contact.
-- `addc n/John Doe p/98765432 e/johnd@example.com lc/01.10.2023 1000`
+Examples:
+- `addc n/John Doe p/98765432 e/johnd@example.com`
- `addc n/Betsy Crowe t/friend e/betsycrowe@example.com p/1234567 lc/01.01.2023 0100 t/Professor`
-### Listing all persons : `listc`
+### Listing all contacts: `listc`
-Shows an unfiltered list of all contacts in OutBook. Contacts are sorted by `LAST_CONTACTED_TIME` by default.
+Shows an unfiltered list of all contacts in OutBook in the contacts list. Contacts are sorted by their `LAST_CONTACTED_TIME`.
Format: `listc`
-* This command may change the contact that is currently displayed via the `viewc` command, as detailed in the description for `viewc`.
+* This command may change the contact that is currently displayed in the details list via the `viewc` command, as detailed in the description for `viewc`.
-### Deleting a person : `deletec`
+### Deleting a contact: `deletec`
Deletes a contact from OutBook.
Format: `deletec INDEX`
- Deletes the contact 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, …
+- The `INDEX` refers to the index number shown in the displayed contacts list.
+- The `INDEX` **must be a positive integer** such as 1, 2, 3, …
- This command clears the contact that is currently displayed via the `viewc` command.
Examples:
-- `listc` followed by `delete 2` deletes the 2nd person in the results of the `listc` command.
-- `findc Betsy` followed by `delete 1` deletes the 1st person in the results of the `findc` command.
+- `listc` followed by `delete 2` deletes the 2nd contact in the results of the `listc` command.
+- `findc Betsy` followed by `delete 1` deletes the 1st contact in the results of the `findc` command.
@@ -203,51 +193,57 @@ Edits an existing contact in OutBook.
Format: `editc INDEX [n/NAME] [p/PHONE_NUMBER] [e/EMAIL] [lc/LAST_CONTACTED_TIME] [s/STATUS] [r/REMARK] [t/TAG]…`
-- Edits the contact 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, …
+- Edits the contact at the specified `INDEX`. The `INDEX` refers to the index number shown in the displayed contacts list. The `INDEX` **must be a positive integer** such as 1, 2, 3, …
- All fields are optional, but at least one 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.
-- This command may change the contact that is currently displayed via the `viewc` command, as detailed in the description for `viewc`.
+- When editing tags, the existing tags of the contact will be removed i.e addition of tags is not cumulative.
+ - You can therefore remove all of a contact’s tags by typing `t/` without specifying any tags after it.
+- This command may change the contact that is currently displayed via the `viewc` command in the details list, as detailed in the description for `viewc`.
Examples:
-- `editc 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.
-- `editc 2 n/Betsy Crower t/` Edits the name of the 2nd person to be `Betsy Crower` and clears all existing tags.
+- `editc 1 p/91234567 e/johndoe@example.com` edits the phone number and email address of the 1st contact to be `91234567` and `johndoe@example.com` respectively.
+- `editc 2 n/Betsy Crower t/` edits the name of the 2nd contact to be `Betsy Crower`, and clears all existing tags.
### Viewing detailed contact information : `viewc`
-Views detailed information of a contact in OutBook.
+Displays detailed information of a contact in OutBook's details list.
Format: `viewc INDEX`
-- Views detailed information of the contact 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, …
-- Displays contact Name, Phone, Email, Last Contacted Time, Status, Remarks and Tags.
-- As this command displays by `Index`, the displayed contact may change when the specified `INDEX` refers to a different person due to a change in list order through `addc`, `editc` and `listc`. This is intentional.
-- The displayed contact is cleared when the `deletec` and `findc` commands are used.
+- Displays detailed information of the contact at the specified `INDEX`.
+- The `INDEX` refers to the index number shown in the displayed contacts list.
+- The `INDEX` **must be a positive integer** such as 1, 2, 3, …
+- The displayed details include a contact's Name, Phone, Email, Last Contacted Time, Status, Remarks and Tags.
+- As this command displays the contact at the specified `INDEX` in the contacts list, the contact displayed in the details list may change due to a modification in list order through the use of `addc`, `editc` or `listc` commands. This is intentional.
+- The displayed contact is cleared from the details list when the `deletec` and `findc` commands are used.
Examples:
- `viewc 2` Displays detailed information related to the 2nd contact on the list.
-### Finding persons using contact fields: `findc`
-Find persons whose contact details match the keywords specified for at least 1 of these fields: `NAME`, `PHONE_NUMBER`, `EMAIL`, `STATUS`, `TAG`.
+### Finding contacts using contact fields: `findc`
+Displays in the contacts list only those contacts whose details match the keywords specified in these fields: `NAME`, `PHONE_NUMBER`, `EMAIL`, `LAST_CONTACTED_TIME`, `STATUS`, `TAG`.
Format: `findc [n/KEYWORDS] [p/KEYWORDS] [e/KEYWORDS] [lc/DATETIME] [s/KEYWORDS] [t/KEYWORDS]`
-* The search is case-insensitive. e.g `shop` will match `SHOP`.
-* The order of the keywords does not matter. e.g. `Shop Meet` will match `Meet Shop`.
-* For `NAME`, `STATUS` and `TAG`, only full words will be matched e.g. `Meet` will not match `Meeting`.
-* For `EMAIL`, any characters (alphanumeric, special characters) will be matched e.g. `_` will match `m_e@gmail.com`.
-* For `PHONE_NUMBER`, the entire length of the input digits will be matched e.g. `913` will match `90091300` but not `90103000`.
+* All fields are optional. If none are provided, all contacts will be displayed in the contacts list.
+* The search is case-insensitive.
+ - e.g `shop` will match `SHOP`.
+* The order of the keywords does not matter.
+ - e.g. `Shop Meet` will match `Meet Shop`.
+* For `NAME`, `STATUS` and `TAG`, only full words will be matched.
+ - e.g. `Meet` will not match `Meeting`.
+* For `EMAIL`, any characters, whether alphanumeric or not, will be matched.
+ - e.g. `_` will match `m_e@gmail.com`.
+* For `PHONE_NUMBER`, the entire length of the input digits will be matched.
+ - e.g. `913` will match `90091300` but not `90103000`.
* For `LAST_CONTACTED_TIME`, the input must adhere to the `DD.MM.YYYY HHMM` format.
- e.g. 9th October 2023, 10.30am will be written as `09.10.2023 1030`.
-* If only one field is provided, all Persons matching at least one keyword will be returned (i.e. `OR` search).
+* Contacts must match at least one keyword in a particular field to be returned.
- e.g. `John Doe` will return `John Lee`, `James Doe`.
-* If multiple fields are provided, only Persons matching at least one keyword in each field will be returned (i.e. `AND` search).
+* If multiple fields are provided, contacts must match at least one keyword in all fields to be returned.
- e.g. `n/John Doe s/active` will return `Name: John Lee, Status: Active` but not `Name: James Doe, Status: Claimant`.
* This command clears the contact that is currently displayed via the `viewc` command.
@@ -257,25 +253,33 @@ Examples:
- `findc n/alice` returns `Alice` and `alice tan`
- `findc p/51` returns `95163890` and `40351`
- `findc e/_@GMAIL` returns `alice_@gmail.com`
-- `findc p/9 s/inactive claimant t/friend` returns persons with a `9` in their phone number, whose status is either `inactive` or `claimant`, and has a `friend` tag
+- `findc p/9 s/inactive claimant t/friend` returns contacts with a `9` in their phone number, whose status is either `inactive` or `claimant`, and has a `friend` tag.
![result for 'findContact'](images/findContactResult.png)
## Meeting Commands
+
+
+**:information_source: Notes about meetings:**
+
+- Meetings in OutBook are sorted by their start time.
+
+- Meetings are allowed to overlap and multiple meetings can be occuring at the same time.
+
+
+
### Adding a meeting: `addm`
Adds a meeting to OutBook.
-Meetings are sorted by start time given.
-Meetings are allowed to overlap and multiple meetings can be occuring at the same time.
Format: `addm m/TITLE a/LOCATION s/START e/END [t/TAG]…`
* `TITLE`, `LOCATION`, `START` and `END` are compulsory fields. `TAG` is optional.
* `START` and `END` must contain both date and time and adhere to the `DD.MM.YYYY HHMM` format.
- eg. 1st October 2023, 10:00am will be written as `01.10.2023 1000`.
-* This command may change the Meeting that is currently displayed via the `viewm` command, as detailed in the description for `viewm`.
+* This command may change the meeting that is currently displayed in the details list via the `viewm` command, as detailed in the description for `viewm`.
Examples:
- `addm m/Lunch a/Cafeteria s/20.09.2023 1200 e/20.09.2023 1300`
@@ -283,11 +287,11 @@ Examples:
### Listing all meetings : `listm`
-Shows an unfiltered list of all meetings in OutBook. Meetings are sorted by `START` by default.
+Shows an unfiltered list of all meetings in OutBook in the meetings list. Meetings are sorted by their `START` time.
Format: `listm`
-* This command may change the Meeting that is currently displayed via the `viewm` command, as detailed in the description for `viewm`.
+* This command may change the meeting that is currently displayed in the details list via the `viewm` command, as detailed in the description for `viewm`.
@@ -298,9 +302,9 @@ Deletes a meeting from OutBook.
Format: `deletem INDEX`
- Deletes the meeting at the specified `INDEX`.
-- The index refers to the index number shown in the displayed meeting list.
-- The index **must be a positive integer** 1, 2, 3, …
-- This command clears the Meeting that is currently displayed via the `viewm` command.
+- The `INDEX` refers to the index number shown in the displayed meeting list.
+- The `INDEX` **must be a positive integer** such as 1, 2, 3, …
+- This command clears the meeting that is currently displayed via the `viewm` command.
Examples:
- `listm` followed by `deletem 2` deletes the 2nd meeting in the results of the `listm` command.
@@ -312,31 +316,31 @@ Edits an existing meeting in OutBook.
Format: `editm INDEX [m/TITLE] [a/LOCATION] [s/START] [e/END] [t/TAG]…`
-- Edits the meeting at the specified `INDEX`. The index refers to the index number shown in the displayed meeting list. The index **must be a positive integer** 1, 2, 3, …
-- At least one of the optional fields must be provided.
+- Edits the meeting at the specified `INDEX`. The `INDEX` refers to the index number shown in the displayed meeting list. The `INDEX` **must be a positive integer** such as 1, 2, 3, …
+- All fields are optional, but at least one must be provided.
- Existing values will be updated to the input values.
- When editing tags, the existing tags of the meeting will be removed i.e adding of tags is not cumulative.
-- You can remove all the meeting’s tags by typing `t/` without specifying any tags after it.
-- This command may change the Meeting that is currently displayed via the `viewm` command, as detailed in the description for `viewm`.
+ - You can therefore remove all of a meeting’s tags by typing `t/` without specifying any tags after it.
+- This command may change the meeting that is currently displayed via the `viewm` command in the details list, as detailed in the description for `viewm`.
Examples:
-- `editm 1 a/Hawker Centre s/15.09.2023 1500` Edits the location and start of the 1st meeting to be `Hawker Centre` and `15.09.2023 1500` respectively.
-- `editm 2 m/Zoom meeting t/` Edits the title of the 2nd meeting to be `Zoom meeting` and clears all existing tags.
+- `editm 1 a/Hawker Centre s/15.09.2023 1500` edits the location and start of the 1st meeting to be `Hawker Centre` and `15.09.2023 1500` respectively.
+- `editm 2 m/Zoom meeting t/` edits the title of the 2nd meeting to be `Zoom meeting`, and clears all existing tags.
### Viewing detailed meeting information : `viewm`
-Views detailed information of a meeting in OutBook.
+Displays detailed information of a meeting in OutBook's details list.
Format: `viewm INDEX`
-- Views detailed information of the meeting at the specified `INDEX`.
-- The index refers to the index number shown in the displayed meeting list.
-- The index **must be a positive integer** 1, 2, 3, …
-- Displays meeting Title, Location, Start/End, Attendees and Tags.
-- As this command displays by `Index`, the displayed meeting may change when the specified `INDEX` refers to a different meeting due to a change in list order through `addm`, `editm` and `listm`. This is intentional.
-- The displayed meeting is cleared when the `deletem` and `findm` commands are used.
+- Displays detailed information of the meeting at the specified `INDEX`.
+- The `INDEX` refers to the index number shown in the displayed meeting list.
+- The `INDEX` **must be a positive integer** such as 1, 2, 3, …
+- The displayed details include a meeting's Title, Location, Start and End time, Attendees and Tags.
+- As this command displays the contact at the specified `Index` in the meetings list, the meeting displayed in the details list may change due to a modification in list order through the use of `addm`, `editm` and `listm` commands. This is intentional.
+- The displayed meeting is cleared from the details list when the `deletem` and `findm` commands are used.
Examples:
- `viewm 2` Displays detailed information related to the 2nd meeting on the list, including current attendees.
@@ -347,19 +351,23 @@ Examples:
### Finding meetings using meeting fields: `findm`
-Find meetings with details matching the keywords you specified for at least 1 of these fields: `TITLE`, `LOCATION`, `ATTENDEE_NAME`, `TAG`; and falls within the `START` and `END` time you give.
+Displays in the meetings list only those meetings whose details match the keywords specified in these fields: `TITLE`, `LOCATION`, `ATTENDEE_NAME`, `TAG`, or fall within the `START` and `END` times you provide.
Format: `findm [m/KEYWORDS] [a/KEYWORDS] [t/KEYWORDS] [n/ATTENDEE_NAME] [s/START e/END]`
-- The search is case-insensitive. e.g `shop` will match `SHOP`.
-- The order of the keywords does not matter. e.g. `Shop Meet` will match `Meet Shop`.
-- `TITLE`, `LOCATION`, `TAG` and `ATTENDEE_NAME` are searched, within the time frame given by `START` and `END`.
-- Only full words will be matched e.g. `Meet` will not match `Meeting`.
-- If only one field is provided, all Meetings matching at least one keyword will be returned (i.e. `OR` search).
- e.g. `m/Shop Meet` will return `Meeting: Shop at mall`, `Meeting: Meet client`.
-- If multiple fields are provided, only Meetings matching at least one keyword in each field will be returned (i.e. `AND` search).
- e.g. `m/Shop Meet a/Mall` will return `Meeting: Shop at mall, Location: Mall` but not `Meeting: Meet client, Location: Park`.
-- This command clears the Meeting that is currently displayed via the `viewm` command.
+- All fields are optional. If none are provided, all meetings will be displayed in the meetings list.
+- The search is case-insensitive.
+ - e.g `shop` will match `SHOP`.
+- The order of the keywords does not matter.
+ - e.g. `Shop Meet` will match `Meet Shop`.
+- For `TITLE`, `LOCATION`, `TAG` and `ATTENDEE_NAME`, only full words will be matched.
+ - e.g. `Meet` will not match `Meeting`.
+- If searching for a meeting by time, both `START` and `END` times must be provided. Only meetings that begin after and end before the provided `START` and `END` times respectively will be returned.
+- Meetings must match at least one keyword in a particular field to be returned.
+ - e.g. `m/Shop Meet` will return `Meeting: Shop at mall`, `Meeting: Meet client`.
+- If multiple fields are provided, meetings must match at least one keyword in all fields to be returned.
+ - e.g. `m/Shop Meet a/Mall` will return `Meeting: Shop at mall, Location: Mall` but not `Meeting: Meet client, Location: Park`.
+- This command clears the meeting that is currently displayed via the `viewm` command.
Examples:
- `findm m/project` returns `project` and `Project work`.
@@ -382,9 +390,9 @@ Format: `addmc MEETING_INDEX CONTACT_INDEX`
- Adds the contact you specified with `CONTACT_INDEX` to a meeting specified with `MEETING_INDEX`.
- `MEETING_INDEX` refers to the index number shown in the displayed meeting list.
- `CONTACT_INDEX` refers to the index number shown in the displayed contact list.
-- The indexes **must be positive integers** 1, 2, 3, …
+- The indexes **must be positive integers** such as 1, 2, 3, …
- Both `MEETING_INDEX` & `CONTACT_INDEX` must refer to the index of an existing meeting and contact respectively.
-- Contact name will be listed in the detailed description of meetings when `viewm` is used.
+- The name of the added contact will thereafter be listed in the detailed description of the meeting in the details list, when `viewm` is used on that meeting.
Examples:
- `addmc 3 1` adds the 1st contact as an attendee to the 3rd meeting in OutBook.
@@ -395,11 +403,11 @@ Removes a contact from a meeting.
Format: `rmmc MEETING_INDEX ATTENDEE_INDEX`
-- Removes a contact at the specified `ATTENDEE_INDEX` to the meeting at the specified `MEETING_INDEX`.
+- Removes a contact at the specified `ATTENDEE_INDEX` from the meeting at the specified `MEETING_INDEX`.
- `MEETING_INDEX` refers to the index number shown in the displayed meeting list.
-- `ATTENDEE_INDEX` refers to the index number of the attendee as shown in `viewm`.
-- The indexes **must be positive integers** 1, 2, 3, …
-- Both `MEETING_INDEX` & `ATTENDEE_INDEX` must refer to the index of an existing meeting or attendee.
+- `ATTENDEE_INDEX` refers to the index number of the attendee listed in the detailed description of the meeting in the details list, when `viewm` is used on that meeting.
+- The indexes **must be positive integers** such as 1, 2, 3, …
+- Both `MEETING_INDEX` & `ATTENDEE_INDEX` must refer to the index of an existing meeting and attendee respectively.
Examples:
- `rmmc 3 2` removes the 2nd attendee from the 3rd meeting in OutBook.
@@ -408,52 +416,58 @@ Examples:
### Marking a meeting as complete : `mark`
-Marks a meeting in OutBook as complete. All attendees of the meeting will have their LC (last contacted) field updated to the end time of the meeting.
+Marks a meeting in OutBook as complete. All attendees of the meeting will have their `LAST_CONTACTED_TIME` field updated to the end time of the meeting.
Format: `mark INDEX`
- Marks the meeting at the specified `INDEX` as complete.
-- The index refers to the index number shown in the displayed meeting list.
-- The index **must be a positive integer** 1, 2, 3, …
+- The `INDEX` refers to the index number shown in the displayed meeting list.
+- The `INDEX` **must be a positive integer** such as 1, 2, 3, …
Examples:
- `listm` followed by `mark 2` marks the 2nd meeting in the results of the `listm` command.
## Miscellaneous Commands
+### Viewing help : `help`
+
+Displays a message explaining how to access the help page.
+
+![help message](images/helpMessage.png)
+
+Format: `help`
+
### Clearing all entries : `clear`
-Clears all entries from the displayed list in OutBook.
+Clears all entries from the contacts, meetings and details list in OutBook, effectively wiping all data from OutBook.
Format: `clear`
### Exiting the program : `exit`
-Exits the program.
+Closes and exits OutBook.
Format: `exit`
## Saving the data
-OutBook data are saved in the hard disk automatically after any command that changes the data. There is no need to save manually.
+OutBook data is saved in the hard disk automatically after any command that modifies the data. There is no need to save manually.
### Editing the data file
-OutBook data are saved automatically as a JSON file `[JAR file location]/data/outbook.json`. If you are an experienced user, you are welcome to update data directly by editing that data file.
+OutBook data is saved as a JSON file `[JAR file location]/data/outbook.json`. If you are an experienced user, you may attempt to update data directly by editing this data file.
:exclamation: **Caution:**
-If your changes to the data file makes its format invalid, OutBook 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.
-
-
-Return to the [Table of Contents](#table-of-contents)
+If your changes to the data file render its format invalid, OutBook will discard all data and start with an empty data file at the next run. Hence, it is recommended to make a backup of the file before editing it.
+
----
+[Click here to return to the Table of Contents](#table-of-contents)
## Command summary
-| Action | Format, Examples |
+| Action | Format, Example |
|---------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **Add contact** | `addc n/NAME p/PHONE_NUMBER e/EMAIL [lc/LAST_CONTACTED_TIME] [r/REMARK] [t/TAG]…`
e.g., `addc n/James Ho p/22224444 e/jamesho@example.com lc/09.09.2023 0000 t/friend t/colleague` |
| **Add contact to meeting** | `addmc MEETING_INDEX CONTACT_INDEX`
e.g., `addmc 2 1` |
@@ -473,7 +487,7 @@ Return to the [Table of Contents](#table-of-contents)
| **View meeting details** | `viewm INDEX`
e.g., `viewm 4` |
| **Exit** | `exit` |
-Return to the [Table of Contents](#table-of-contents)
+[Click here to return to the Table of Contents](#table-of-contents)
---
@@ -481,20 +495,20 @@ Return to the [Table of Contents](#table-of-contents)
## FAQ
-**Q**: How do I transfer my data to another Computer?
+**Q**: How do I transfer my data to another computer?
**A**: Follow these steps:
-1. Install the app in the other computer. An empty data file will be created in the same folder that the app is in.
-2. Overwrite this empty data file with the file that contains the data of your previous OutBook home folder.
+1. Install OutBook on the other computer following the same instructions as in the [Quick Start Guide](#quick-start). An empty data file will be created in the same folder as the application.
+2. Replace this empty data file with the file that contains the data from your previous OutBook installation.
3. Your transferred data should now be visible upon launching OutBook.
-Return to the [Table of Contents](#table-of-contents)
+[Click here to return to the Table of Contents](#table-of-contents)
---
## Known issues
-1. **When using multiple screens**, if you move the application to a secondary screen, and later switch to using only the primary screen, the GUI will open off-screen. The remedy is to delete the `preferences.json` file created by the application before running the application again.
+1. **When using multiple screens**, if you move the application to a secondary screen, and later switch to using only the primary screen, the GUI will open off-screen. You can solve this by deleting the `preferences.json` file created by the application, before running the application again.
-Return to the [Table of Contents](#table-of-contents)
+[Click here to return to the Table of Contents](#table-of-contents)
---
diff --git a/docs/images/Ui.png b/docs/images/Ui.png
index 981b6f0e95470f9c33635086836c83798f521b0a..eed70cb1aefe176593e11fb8c6c5dbddf342f1ed 100644
GIT binary patch
literal 47864
zcmeFZby$?$+BdACA|a?KB_ZA2EmBICbVzrXLn{?ENbUJ3M{n{MiIFK(0#kZqtZZd*wzN#3~eH45k4!|36#Wz73w5l&-hY1U~?RN(sqVI05i_#T2EGMTMkh?-Na@QTx(%Yew(wX)qT_^
z&>uB|5Bt^7dKeHuN59j0+t1hvkF4L#vW-flw3Ye&VkKMCvP$N;0SoEXWs<|vlZE3|
z0sY}C8oKRqz{d-yBUJMf5m97l6lw|MDBu_J3>)W`fi1P^|5Rr^&M!zHHc;>WlxtiH@kcv8(*iUqtuj`)-Kp`-R
zj9Zah*r+8IN~zim)YN{|xxwa}->ZVXMM4-jjGB%)gjHW@;0Qmt+{H&Z?{pE(N(RcO
z%(R)KXU4zyc60%vJc|hc4C+|aY{c72E+0uL9fjcv#r1RU_@bI
zYd3wz7no1z&irPTle25>P)pfl4Bl*Mg4_-mL>-J&`=CxY(7&1HLBHj8iTVqlfXm3q
zb3|s-eqI3~-@-{dSmF$PXfw^@xoc>wG9VMMQGbB!?0VW9NhtHDBG>dU4{_e9+o*wzm*4n+n^l
z9k$vDU;(b91t#6N?x1^OiBqtY(^j&^#n4*`wkClBq>BFD&=B2Z(R*gKVI4tSpreMJ
zfbnG|SYrSZjQY;8a6ZQY^FM*ZOXT;s{6_DXecSpkmNNHm^pI{;0$X
z=QbwF9Jn0V5j|cEA`6DB?1meke}-yrL)!y{9q`0?Q7o&d!K!@~JW0PWffXIQ@xI
zydY?G)8BMXT4{jL1Bx6;u8MiI6
z#mNTgf6|Jo&1_lWp*#jk?BQQN{h2OambbftT5QcmK1JX7aTbu}A&9HY5}{X~wD}18
z3&f)OOWN6&IX=K`FC~iZNbiPdHi0Xl>vm6$hp==zKFJiYL^}G6AH6~PA0@(eolu9U
z-7%p5LEF(K@##7kwcdJqsOA4d%IUnj0Cv1#j1no8!erGZ7W|f=mcvc2=#NK9$aT`Q
z(+=-S6(uv0mZkd`5?8AsS?c?}W#~%3^PTsWyLQm_Y3teE4(g(HVMZbwd1QfPKMw*+
zoJX}>?gbn;C7!M_pnO{VR|vvW@-CMcc1~tXr6}JDMkMy`jDHq?D*5^caCeM(3|mOQ
zSol1gh&$2*`A(jW_i8UTD%=8aPbNyyYPkSFw8Jk(Ct=6y3$1%GttixqcI^cs2z>FQ
zwc%6yKIO>{;YUoTvmbI!XHybqt&ip!elsJ9gwq;%c?w3Iwj8w_5iRUR`UD`#7S0Y)
z0O`cbE)gup`729d){jff3qb8jT=wYKI$oS%J&<+YwETU?^4ruP{CX_6Fr|#&4-=aH
z)-~eFk5kvT?5X$xR}^#Uhy3@CfZyi*wr119_Q>Bu*F3mZt0cBg`oXKWEpfg=e%tTq
z7ypAtqVK0P^-%cy{59+3gt@;mlBeLc;O8a6c}37PyRs>ASGE?fvbGkO8AN3CmMU#j
zR*52Kab!kvxn|bU=SNY&cGLcVr)b1AalYI@w7=|nn;Nt4{RMN7^
zd+Ib!M0esP5$|aGo5-)&+nvV3e@Pz&-JApqpyGA*I)-9|I#We&&Ab6_@B!5Dk|+wE
zw|m-O?Twqi;C)ac%Vd`{dQQi-82Tt$7XSR~TUu$|gK!UtGQ)HxdM8HN$Dqkix$zp-
znAa-~(>U!4uWrnX5rP{x)%jm|_ZK`rvPU90mTn=&1MW;+5wco>9-W~huJKK~)_Hm`
z6Fq*IPajV%Q>y3>H(Fp;#cv_2U*T2E=ncTFZ{ioZNuWgWU|LqG^({^pTx}qx8S?4s
znE@OIF2JlDzwhs<_1`JMZv8RTB>VuJ>y4|ln1ZuiZ)Sgj$^VVq{zJ5TSuO{EPh`2N
zlhm|&^jn7eYp(sy|4Gwu&4efG*J}o%I0)`IE1~)3)l&8W1$Rs$Wb|aty0Bo2M@_`4q_WA)s~RvVI$+`xrykfq1}7#JOKB(=6SNlOUHs-T
z#qd4jTaKa;O4MZW6ao5lnyvF&7JZa^;C^r#V1!HsM^_)2Ei0zE&|{yZj{&a;-gZ2F
zTwl&rbh^8g9mm^@N(?yJb&;l^@Z*ikk;24uqiDs;6mtKtCEo)if$;b`ADa_JbY3B_
z)w#;A#!bDyJ|6?^eesf;BGr65I9dZ*J?1{*>L?12+fvgEF2#lOF!o?X+VfULD?1+x
zyPs*e2?}y06@cgsTW9QeC$1!PEkon1jz4Bgnjav>ga->dJg&yLdv~W)Io`q)h|7?x
z?K+>|rrPFy6xutowkUk?y)rVI7|P>)!3n5$5&bhna&psZ_@lG$H2G`J-O>Sv?~|FB
zfu|REF5atg4=p@gDy5syuk_4`)^_kPSu*#9U%QK}T8z&{)^b`cJ%ULV^^b
ztZbNTjr<@1*9&2KC)Pjn2qiahneoijSZ`f$9u;OnMA9noVj|^I5;|R)aZi9J@|o`B
zwhbK@%t3$#n@4#L|5#!rKLFV1;yxAMe3E!X6U9jvp24(u-^src+QmvPF4}&SyAqR6
zhuNb@n?i^O1NsYeRdqlY{>UX*A3F#<^tM+oQQ)P)q&(01?R
z8nh~d?=*ky3#|&$92mdSv}7?mo@>8iDgHn4H2%lrSYR`kDOo%Y+o
z(FOlq27N#&naG|`#-$2QhQEpkf8)UE#A>%zJ(_e97kT;}2Fi1OON7si+Vev$#s0m|
zD!qD?0f6ovMPFsgj?@c^3wY4N=|u1AHbRN{FuNs9LIVr)Ay7%^rTZ1>l{jgo5Rq6!
z$NKTS)|;7?o!j`36^|1LW~MlU%F^gLp$YObN^(|aB|vW+p1ye2@CxR(HRP_$DKarU
zs>1OLW@71?ftCpVKqVuSf4u$`vT3$QzcahA-5Oc7WMz-U`}#BcyH`kZdI6g1PtM)+
z91`|3gIR6Jn5yHnjdvD0VOo1)Dk#d*=Cj9k_xtjPt@Nn
zUm6DH-MYw3tw}bucPM#U_9$3r$lvd>jtB+QICY&1UJ;7!c?8l%@y!DP&I
z_e-0p2^{9O{^ITq;8Y*K1^9XbPv)qxc5rxMQbeZ|Q>uvf+(9G_91sQ;wXY%Oq-hG&t$`P5eW=xWZThKwB`aUUpt}rj;m+u_u67wH!jOB-C4rgekPFPA3bBSf
zIf5=H4*#jb>b-mNDr_0LC)RuCN?-W;7-?Gc2gBR=%U1Sqj9EhU-)<+p9h8_?0SirE|_x8Cch4S
z;#KuV_fRYxTzacvKhxFOnh+D%SDaJ^5K4CCb>;?E@Jx3!{{j^hZl^XavCK#fkTfU2
zlUYX(d`FWPYkzGPl_k!hO~TLQaEQ-fwVfY+jD?STUsNliqwwf!9_D4mR2IE3#fwpB
z?vSz>x6ujJG~&$!(6Y&xOmI?)j2qA=_j4&caTPE%;`uUa>yCR#&zV&{t0l_=kgBS&
zf(SS$-@SW0h>X`mR&R_9Z`)#lqChgCN{Dr&hV=e0Q~?U14Q>Tv0ujus`N}Oa-O)gf0RhZaC@5s?Lvg``@7(KqMJV2&d1Yn
z88$_XcoH4>Bq15r!$-SeLmAz$S~kpGTo`ZyfqQBd!L}(hDU~bdutSo!K^{}8Tc&1CewFUPndOo{VbnDmseuSEf6gj0~nQDfM+20
z_4kid+UQR91df~Z38633(G*5RsOC2v*a4?hG#)YYTl#Z;Y$G{J+oVE{oeo&XWFHz`
zD#9wp6vU3&R+b3FPu0o#+4DFs$kQ|yu*Pi;U3VpG2{oD6<@?$zrdE@6BApK)tO^Qv
zcp{@BzTACZFoIPqQH>LqjmP+oN2-xyfIFZ`x0E6`bJAu~9K2bZE58{klq}k&fyi>4
zrkF>rIPC&zSry$LS1LQSCp
zaONDGoHgnh7}U$_%@?=2(FQ^rO&+IJD@OUdNGJLJPctFtORSX$XhpRh}sbaNzG4KAqmO)@8hLLWhY1_
zQs=Q?#JjbZvo*F+Z)YvE=TK4zG17wv(s$b5L-aY1=bt);f;P@X0HFln+OB)RyCtmx
zZiV|p)lcSMSC~5=ciqv8d`<1$QvHGA{5x6t;*t$oX_LhY%#j009htynl8V<0)L;QL
z{XB0N6k+S(Pk1nEe(1vw(b23Wo_!8Pj$VMmEv#puwnU;dcNynl7~lKU#+
ziqOT9_z*Eo1~cw12}Fw<%Mvh}E4AaSFX<{DVM%xXfZNjTZ2(CnHk#Cu50o#u?eTUv
z%(U9*2b1D=rFxUTFI`ylGot}tpRn(4XobX6E>EOW+#cvg?MGmny^M8Vuo0T>G^*-_ebB=z(
z6WdhtcT8u+#NbiQ)c0I&UG#%9GSyudP;LLgBj3SIW7KKpacJgo(QTmS$XK9k^8fBN
z)76y9&F308q!v)A!U#uQt-@;pel~2sJ=m-z^xa4=LXIDaot&5IYonfxD~?jn@=$Wb
z>;9cO7Gqu5l7+RcWR4=>Ui>gyA9l48_qVuZo~VJYbjZ=lthq
za&_(=QXKdGwq5^a7!weY)BGbF1>}5{?AgAYtU|pmHbRiodc59u7g?stvSyxZi|4A2;mVpn^CU}
zLfsHFdFJ9U>Yq_)bMEfa9K4rC<#8x77#t^;@ECJUVa+zvqu3`
z9fn*nc@kgc;4%v@EvcM|4>*pAnrrab%<$Rt(js+AFB4jD8wiIgOVedtZ-2RgTuRgG
zY-dGv4}2>?Fg0M0+MDUwnB|*(gXuWPN=?W{+iBb>Q>=-pNW9NxgJWGxCWEA==|H(P
zgQpEY;Hf%5G);%jL4R(aAHXmxeV`{E;mwN2XA5NskZ}M)W)H-y5?^~#Gv9Oo;c{98
zSWJ3Ae>0+F0lrbwyM??x$iT$?c(AJbX_-3WJWArS^J@mS%-;ug;{z1if93?tr$16E
zP7;mf6tL9!F{o-UTw~Ot)x!rUa2}l2jZY7ee?Ci#p*U^a^)@~Kx3t*t1Lj`WGa#$y
z+@k0li`-F*7e|S+2i{I~-iu5U$xbZ?BcTit_DKHR1N*n@IKCa1KeI177S6^d9sQO@
zKKr6FwOAa0GK>YuL7RQ<|O##3&N`_1TX7I{Bg93VmG#VOd7)^_Fk=3^;!I
zDXn>HhMwdN^pd%IlXv_#4|{v6=Y6)_Wfo8yY)(wC8Uzd+d*q>E1U{+B&!0
zcRw-7`g^l`z|MEo+%rD>r>01IAonH-XlHd;O-b6;yWv*LFu3f%{u^BEs7TJZ>9Cq%
zTbFDGeyCt~ndpzuUVl1YEpEfSd2;GDD5D5t_3bKREa|5OGQ~=<`NTswj&i<^ePEOZ
zxppg7AaNCvkj4Fzv22#arJ5t1CKL_DqRYM08>HQgXaSLywylHVYE6e0-mdy>d=8tz
zejUZz-d-+mQVD6e9k0x#g%Q0M}zK7TsG_ZRwNg_;LB;<-`PQ$uzA;(Q1s~4O2W_!aWaq@O_
z2I1bza^?I3`)EkxQNhAdr}4b^p2kikWK+9D-C}6Q|9p=jj#;aOnkf8?Q}c_Nh_W?T
zqG7a`1$#~t6S7XdRuBm*liWp_WUZ9&YKFuCp;+
z?u3N7?1=T@J4hT_q4R>!;yCVCIv>WYU#%hL4F^Y#hw>7Ck;dmmAoJH9iyf6hCUilzeYLhz+R9Oa9ToWk8FS%(Wc3j^fxV5
zOTQi%F^!~^>Dsgo*~XIrXvER;@(Qc(j;aK_Z;A6@63pf1k89X0_bGK{`4P$PQOh<$
z_akGt_XEvfoXvWuwf;dv3vF
zjhs?1C?OT8x++S7$48lNd1Ui&bST?{JI_jrA8`o4PaGs4MDD&D?=z_AxqzC4~wzb6cuEZsWS?>MB^(
zihMqg-ciC4n*{IJX!&VZxpB9bdDJVeUCt@5BEOpA2miw&Uh~kMGV08=XpMiSS)=%s
z^}YFOGiwis7mB*eE0cG=|I4IO6JKsmM@$sSra5yIkf1o%A>3zHiDCph%0q{+NmiE?
zLC0kveYYNGBAWEmXSV!L(S3#XVNG6zWC0s8v2$PMA1CMJrx9^V*H$aC=BiPbjDd39
ze>NMC3bT_No-=4x{L|}jnDsw+$^}TMW{>ab2z`zAonmI7+QV3ZAEc~yeVYGt7wKNx
zEoa*biR{%uCwo(7QS+X&4qM;S1g?B=u_%Rd3EC_>rZ!cM5`Y$z^w#t&7(PE5`i<0x
z-o$$Qjg*`dXlGSvY8Q-f
zNoYKQBJBKtHBvOnoABP+3^*?JYUYukjbv#6<)RrmOTY6tkJ24yd2Op?>o16a!}*E`
z-HhOWAuL<)nhjm0?Qk-zbG|uPRsSlMp|#emvusc7AETnNW35t#MSAtMgSnOb^jl2T
z7rHTXRHw;VW`usNYx7Sc3N@t9-gJZ8Gb5kRav#P>~4g>vwsw#*k5wjB$;d{|?0NEZK8%o#YY4FJ)ra
zW2t~T7=e_xDmLPY`J|!S_fpu6nx^n%+ooiC$}UFMS588yDxPW#*_#cR(((w|sOLR9
zE-J_fBO#;_aeeh2SGN}8a}njcFxa#<-n!c|`WWpT(nBro7qe{xQkuToQ#%pZWnANI
z9P@XY-7)Y)qpld$oG5atlwgCzZ%;SopK?tLN%DS@>iK!6&jeQ>!&vsyJHb(^5T*fp
zTDKN=$ue_QLq#=uC(D5pCD_r$&w0eKtFY-DH$fk%n*LlRFCcYR8b&{XJAN&cj|*Pt
zIu$T}FziU5YXb1V^eid^Z$c9ok8YhuM?`Y-0_#-#*92})>m7*KYvX#EUkZXhSsUCZzEU{OtF4Ga1NzRxvvRyIgzyAc?wli;!XXE9+AjFQka`KjuM
z3~60J{!-pXW;2}XoWJ=)Su%ABzR2x
z8Kgn^jxlmfL&dP(Rpzp2vr15tK#>=qW_^EjU61|EJ#`t~j!$coLdwZfUY#*U0Q$i4
za~?omjuPyo{TlvX;bE)Nnpby|Dq5f4EhPULL|zZrx18d`uJ_%Vspe!s*Dx)9RMLIk
zKo&Gf)Jfk_2=%yCw)Y)*Zg3vI$kRI{b^dck2T24e>w}&xH1gpkT^n(
zh-e^+cYKg1`sjua$uG(IGBsA>M$DB^MOHg$2N$Pei2l!tjx$GN3)Vhix9e!(PEu?c
z1mi~scu})#2Sq2!T&bJvh&T?igZ
z)#Zdt3>|qPk>?J`0iskM0KV_K9Rrt}R0X7RqVP9}-z>S_<3ujYko(C^A3N-Pw;*{E
zXCtqnbyYzdSvULtxuj8Uz@Tqav%-`B0B6+m+cHyL`CK9?g^ehj
z8tWqh1KhLrk9C~%RAU-#DNyQNsyu95WO>^t(|oyxx%IRqDAD)F@!?v>J^J{69UHAC
zU4=@#030@By>&Xd;=R#6;Yc(`&IaLZ#x|%n&|oDJwWv^=0YFL_+i`5sr!)nzRf7Ku
z3oPlK_Fio75)|4Yy(P*VW(EoP{-GhLa3ai|Qr%tSv(w8IV_&@4BNqpLK%B-@%ipx-
z3Z7jRC}%rInh%qjE`SD?UE%9_?^KgREj|^pZBM5*Vc^%IP(n78d^57^T!1r^;lA0<
zl+3?&;j0kHYlfNUYstgvF0lYmt>eG0^WJp|;O}M}y>;jc{MP50%ff4=ir|tenT9w2IFvy8N$h7Jt*5Kd8Hr7_
z0_Zrn435AZtO)?AI{TXc92FgGZi=GU0!R_yWxD$)zc_|hAj^PmHpKX%8e)MvZ-sGh@r&qLxMSlwwW@{gk{!HO&(Z$ic&
zN0mR@=K}Q8T7G=*gLWVtYfrq_6n8&86}WN=k@!-+w3tvANk;P?{*gG4>bBmu#TYpX
zl9Z<8Cz}EQiTz)hJ{x(7IYelal1};b?gYVr~=y
zGRL!NM@Bhr<)dY=7!qE6Uqy7U;7cy2--a@m3hmf~82%`Q;E?_>a_kkUa+225ad0>6
z=eVAt(T-BkEuiM=nbZ!JI$*!B67QjEyC%kobiTIUb@+QTk~RY8jS?q|H-W6*BxgES
zB8Tw+$6At3hTAtd*r0yIL))FfzZZ@$ig;1}Lk3q2)+y7sf+r-z49quK?M_jm@M7OK
zZooiR`*5uIL;WNiJ6{S|i&@^gM8~$p84S@BPR&9EnyVr$W90KQN@y`u0QE3iY#?6)
zf8HbH|9F@ps%{ei!L^w@AC|(m@ro1rupT=ao7>p;Vk|QdV)i({lzX3~^~piT;+e#*
z{+IrkX6iLGOs3+d;qGLkbJQJWVY|+R5j_TBE*TbT7n6A&nW^fH-=4;!n0}}*=0Kex
z6_3M3CrMisBz!L2ZdY0QJj5ai^d=8p!g=U?QNISYT#B}Vhf)c5uYS_qKV;rdwpR%d7S<%>!rCg@h2}lUJG-Bd{0UJyz}t946Zj#l1uia
zn()y6zHexXAZwLEZ(W}CkC33fCx
z(M=IeV7$u$HfI8_;llzXHj{7JQLIVd?AdLH86AWvN!HsjF^-b*VMl6d-pZ}W&Ls{}
zTb`fdxPXFHvqVJCnoCXg`Q+E$|SfnBf>$LeZi=
zpoGwR3cQNl$J{8#mcyS?|M)i5(qX|m&-fZp1OfW1HjbY@_)-s@&xNul#f_ovLn^@=$^Ax5X8TFI7GuL1LfP7=@!eDYM`Wcq*oD3yU
zf<6EuZbM2a;ol8|b6Z@@?fC
zbF0T+q_(|W6u#4QNVDwC-S_U7Mn)dJR4)-5`HEGC;oD_J}0Q%6qA0&t&`?&hmhHF
z2eLQQt9&3QgYb-Kb_Z@dPrIbJwOv_~k!&9pfjaAvPZe7cey(zzeyUOLVQJ0rxDN$R
zT{#AF^tI3kRsg`d@)nUJqfDiL+kxOoqy@495;8CS$*8=jrBJ}CpBXz_RDRR3(9&BTWEfT7j7N*peFfp)TVoW~c?Xl+~>#60*5}N@aA_0yTWI(@*0NF_%
z@GVI0$oMqgSdEUaLFou>HTsW?Te=M?$N@Vwp7Ot);8#_%(u#qVYK^)NO~;|M?`{F5
z=s9|TFJ)d}kB!RXwyk7R*#^WrJOM@!gWDP;Kyt}|;J#3|Y$6rbbdH!4bG~NPfdm<)
z$y%E)@=p_Qd8kA~k3U_CzNbR;hb-3BxTycrB)T^%JonpUHyO4LixRwpM~_m3z3drr
zrwcm-BE@L1kM4-on>rbl!X~pdsWg84jbE}VfsLNy#SQ%+
zXgN{#Jyl%3+nw74U6!vjYgUz?+e4=OQVQB#FUtkpO-SEzjQ7Y6jE>4=`RuSqN@CCr
zBbGVodE5hCWL>IB{Can6O}SJaFNFK@{pGPF1>@Nb?P3=?Ozd3k#K|^7ZZ>52*J7|6
z)J0#Ya?oPNyJ&JW?Yo|^`4_SpFF?Zx0T`cN>OZm6Ul`-B
z*ai*tJ}6~Whufk9^TCRNKhBxNEV%sNLtk{N;@`v6|BRW?cq}a#(zv#}KnJVxM#WT3
z|G+}&j#aAa&&^sOr>yr;81_cHT55mcG0y=w7s8D-of3Tg}^CeG}SOK(ZIvmmmy!61kzky1=57mR5Aiks#%MvxEn
z^=yv+`{=#!jcHxWcEe-dwTW@P48VlTZ!Zd~wo^H}bi-L8^q5-rZP#OYb#S-0M)t
zN{b?KJOZ`hF*uG(5-t_IqDt^QMatd$nXgF(MUM4AIMt|xiu4jsl=znx`KK0l)}@oC
zDi+#M(*)6dd3C>Be&X}rg-hgA}-^XSp^
zGUeNGy)fK|Ll*^uyoKH$d&xFIfvZwFagvaenaI%(8?Z*P73t6FIXqirT8~Hboht}f
ziN3ISu*NgWW=Es$^BSJR}{~dF?*sb6VXhY}5+>J-Sr$Bu(KQ$U@%HB6-(s(Y&
z-+=D{FUp!_RJvWLnE00YLD8FANf^dv+-d}On3*1A!AZHW0S3)jS+Q7*8T8PxLhi&T
z-?S;-2!lt|;$tLKq|}uT{7{(wER$I;KdX%;Za%QM6*m_x-hlaQ|+QXen0Z;
zZOgvvW&~Dvi_0Ugvn(c|90uY>4BBF)O#aM^=Conh3Z`L{Tiiv
z63ga&qkUoa0Pbc)8kyQFjoZ;es7>UU^xZgcyk>>W^D;_ieRL?Yzsm!dKkTp_MvcTd
zu>kcn4ZFOfov@A<4Zt
zqaKn(HC$|mOnTk4qWyf1OmOV{Ul*d&3JHJ8xL)&Azz$EpC_+oQGRi|G#xMbEw*&UL@?WVH!JRUJC#hHbw6YD({V$Ie33YXW&r4H_x
z%f*UI!-AvyH=-L6c$TmL3$h%?tY&m47ugL`-`
zM622HsGdYp4{cv3Ip!7dNXE_bNq9{1+wYR4luaoA`Hy@L_|zDw#Z@?>6of33SQ;(b
zm!Z#?UxROO+i}~nG5a<02`k~bU0jnK07`5vWu;93L1pqpENmHjgnz!?sR(`27fGCK
z4!gs67kVh&9qMic6KQxn{X!@SOrYZIyYNbpBUKcydh&C=0e0|;fj7(Rny_o@Ev!TV
zfX9gJG*yz5WnP^>K%XYC!?c3>T2^3bo%1^opbK&*MzWHKI+S`ytryk2R1vM9V^0G}
zJtx)XYC%9BBwO_)oC?7Zt67_n8K@>jm2uy8q>^eZ-AGiz)i=Y}DVei5GfPof*tX{3
zw<;!$dtH_C7)%k!t6-)6E<$bDJs3)88-A9S+SGK5De7F2!muiVQI47WajSZ+5daa*
zkLOl@#si4k|J5%6>Paig?iYQMsX`l9X>q8WDis({CHzZP{Y0S^$->-o`*StRay>?&
zVs4plmAp%vP)yy!LoGeSKe?ntc0;|Uo3J%BCbskK29YV`BFmDSTuqLC{c>!*_%*?A
zW{*T;;N?34N~L!lof~=(seA(B)wdA7Zi5yGs&^Hd!e3(FjKddNpK=4>Q3Z?9Aq?@Z
z+&4X#M#G8mLe*Go%!XjxCbxM==(NFP(H!Z@a(n>yYEL^;!B3wR#58NJ4BnCz@|b=^+KTVcqdnY6mTBk`{#Jl8qUiH-0r
z5>$bCdc~iZKDB9uTb!VO4jsG)55yJU-+GfU1;4|?2bgnH`R<<{iSD$|yGp8+Zd;zzm_K)a%12W+7v`P(}bAUo8jN85pQXW4d$e^FYc-70#%XkRI
zn8vrT%fk)JHj2kNid%+AX=J>6gV!&OfQbfjrVARh`inIRQ`dLN^te)^&zgNArGDau
zfIhh|pJ6vyWg8MhQ9ADsl1Ebw_|=bkgy>$kX`@eUP$rH
z$8m&}3Pi7OAq35DxkKDKZuj_Fe?pU-?}Y9@$oW?wbaPOzS@NOi&SA;N^9T;D8;n3F
z#t&-Go;8@uamUQ1W46+3b>}?_&!R{2V1Fb7^?itui!^79B2%v;l;kW-J
z)n5HPGW6Ap&hR7*1k8;IUX`XD_ulnVYgKY1KJ^{wQ{U5t{FwSXWZj4TLouhG%zC-a3ME&SQ*M&XUq
z&Y{30(VMQ_EZ;_GO$`u2u8!0LdCxBe7oIUUy0Iiyi3}y98BFqw4pYM^uv6B6*mIFEfQu0T2A&tPF?}E0Yu4v0H%zd
zv^fbx-6w-|+)k1enPSjR0Oc`7MBe=z
zZKcc^{Oa%l7meEk=>#{DdT|;hPDf;6L3L8oUVW&qE;l@C|NduJbH~qVeYz%~+E`fK
zdH6}5tD|Y`rGAMFIwcC1r?NFW3}Ok7{AxQD(3?{mIKUg9RndeH~cnjn{biz1BWvgnmRoSs*D_XsEM
zZEC1@Dc){2o#Ax}L_Fptl+K7PPlVas!EJNidV|%0$b>viNloHDU@Er+c`dg()n*%u
zi%HIyc?gZb_sYjumfxDYx-3VvaBE3hB9hL5<~|yOzS5)!}X_Bvs;JAp2fra&0-IK|6;|S?G;}rD0MNU
z;Q5zb6)uw44*`!lhjO#|ZW}YP7#XzqCgavms#0Jpip*xY>agPgOk>S)Mx{9BLj)f#
z7Zn&>iubw+5JhTTdOQLn_Zv1VscJ))QE*+9YEZ?8XB_>|u3>yB*yo@k`L
zU_^c*Y7`FHO#gL2FecF@`<|Hj_4fGTT80^x%j=am$hY(Hk4wC!Wf1`n%LFR4e@7gM
z&0z7js0+PMX#?*6fe-OSSa0tZ+nf)lQjU);7+enXT}%-=K93QiZ^Udjjl=DL;NB#U
zmsbLCPu-e}ZGT=A67}_+>oM^&dde`gt#vKlLU*s8aH>37*IDinny8O3$TUlClKFM9
z<8$(=G0kfIbSTj~{{1OojQ_*i#9zlL$|#dlr>HmKr)y
zt|9tflK|@kI-1^-4GUP`FdE^uKDSfDj&{A=Rz&Ax^g2$uZWF6jLVvwrP7Le^sOE;N
z4rnu|vp?hFYVfvkhoVDWrpPA26X^ykIj@UijWNdjmjqcfA3^EQ;!~!g<>k0(;#Y)K
zz+)z8=Y^IJ106pRTEho^1qTjv`AsBwu_zP2^(A1@67_C#R*BIb3bzv;uAP9?vcoOncP08y&J%ig1TJ|4DZ(u3VmUHhFKebZW)3FTslqzcbc4|Get5Pxw
z`1Zqxw_&^P5Pbg7^1`0{xRmuSH-#2js5dL3s$ZVO^|?U6#v|GHFO|fxLv9tx=SnAw
zs^wG-hsnQ-lf!=~cM4`S$E=&BZ~sTZGY)%1*snIM7sNvTWMi?Ma{z7X3H
zo7HdvlV&TT=?3P}NKxT5|G>Rqo0nFu91cvT+E(w0#D2X)VQbMo4YDH@6J^8-NBb&!>|
z2P#ZZ#Mg&WpUDW9bz?L2zd%&BiOa@7m8tyQ>dE;d3e1Lr{iS(0ckpufibd$sMfm#b
z(`>ALF>>#1wXLr{UV>s^cWjd)>J+i;&>
z^c*draVtNO@df?W>Lze>2WJS2U>O#d0X&UO8swkL5&OZLDBB`k=bs@ZnmnpD3@Hn2
zwS>ySNka$nl-yh?RU8jQ@ME~QWwV!MOK^q{F0C8Rkpagi(voj)QxVP#ww!2@#=^I3ze}>
z3v34U2|Lhi8lDNs5qSl*=+Dug`0+1E4iy{ViYswll|`0b34xT2qaNW@DEn#GR?jdKqe
z;$@uewtaOS~DZKh?Sa|PC8N0_r8
z@Bd6ckBK)#FJ;BJX-L<+F|&2pCB=YInkBvqz5)CZ5?cM<)aK#4WonH`Z*p4_YgHNM
zXDW~iE$zRuQ0PhwtKH{vavjX+p;2vg&KFfTQBh;`*RG+l$AIh+D@xq7NR+Socbn@!
z%KGSx7rLXh@!u-o|C3VZzr(!$oSsWAU5i5v!yNuYv2qc8#69)W%aFtrzA$WhaClj1
z7EwJM(1SbZesSt?vDfEnMD~S3R#|t>|7^==16-({pI==Xg)Y;hqt$(M0GA@9orC*u
zGMo4QAv7`YM!RM}&A+dUXjjx|9=;b%!9{?}1%I>N-r+B!;+cXXE~YPG$#=z7qEZP0
zL4kL;9}Cc6@FIL%O7`bJK+L|N%R}K+{R|@ftAq=x&|zK}%d?-|pPr`fHufN_K}S)S
zdr#Ty`o;*4Y?7O}8!U9QukF&ip54c0Tm$Hn<~^QZj^Q8_64AGHEKSyTQ1X(*4&FIF
zhDIlFv)+#JtZH(6=iifUqK~~tS-h&4kuW2K
z;)?V;S5Iblrnb+U3c+b%Kb1uU`&Eg0K|oh%^O^$jbR9BJeJGrExVXxbqiBdXYYhLP
zmF6n`e9D`3VYL4rMStJms-6AsEh6tQox!Qu+&>W7?JB#tT4H>>YP~lNd8NIc;A^x$xH9Ti0qAdrz@-{`L@Hyc7%(6G5+1{C`@p2nc`y@-{)&raAT9bU0wfJu
zC-SjWt-Co{r`so{W7H*NMvb1IMk7c@T$btbn4-8}h|@F-X&)}vO;V|>{HLy`b@6zg
z&_tHoUMpX5Oq3d|LmVSqUnDgd5SnB|MJr{p#AgG2laz3!3CNQb1*x)Dd!yv{vm}#~
zp79tlui+PxoxByMpGY@}Rw?&-rbm-ya5Kb-jtj7Q^0ROd?=9IX37{b%u>&dgq@KvR
zkSL66pXX2C{NK5fCAxvLxBjWtpt&qiiW(>?i5ru-IZT)OZrfb&cKbc{Ak%nFspp<|
zPs;nlz8+{5O#(igkpyaLC{h4V4E5fhx_}C(ysa3KSigc1(Cwp-+s_flba}7iX&&?^
zKbngyNN#cj;}-C{9x4<3l|=um%Pg==?%~+V)@LS(ro-p~6;o_Oo`;iW%4>`Pm<&4oGu+E$+SjHEq?iHGEthHUT3E^9^h^p~a${
zCJ#pwaG)@QZa)%`rSqF@i{EkRUQXV4NI-eVbA<>>X698JlL!KjlBE_|PXSXVr{~=|PM2LaSfypo0E+(s&vZBGU$f
z2YK4!=mTZ*SorB?*%30L-O7MqGTX#CmJYJzoLvKUxX?lHFzHQ1E^!=z_W6N=UY7PG
zH4gV0jsjK0&P#Cn@p?htmwM#gi7|p3j
z0kDR)5wRPDxa_e2?vY{aJ$Aj@OPDPvMBQQaK&luj+`~j4h4pg_C90djhKM0DGbC<4
z=jH%7l3&trbVf_Kx-w~QXE@=p0OR&O8odu~4aktVhU&4>Iz;WV?2oni*zH?-X_{dN
z`2yAIR$2&imH!|Jw(*7Z^`L$;F>JExdCOSZH*ZWJ=W`Ygas
z+_!rF#5Jiyo`Tv1c&hb6`Ib~-+>6luP7fUDk>Mx?cByTZwj=X?0h6T%^!M?JDA-;?
z?Zvs6m*Lx;P#Le-xZlSebSHx2Yj=+=e_B8J0V&Kg7LtSd`t{
z{`;5+Dj^^tp`b%|BLdQ$1BjHglt>9fib{jTfOK~&Aq`5;&{85LFay#ul=NPMK0ZF*
z@B99az4sq`|L1Wy%)Rb4_r2D&uIqE27koQW7^x1FxD=9$GEA5T0`q-t)yAUPaG*mni1>ueg=s=xee!
ze$k;^JQp|&=jxTyFf*sF5NQ=@iEOIuRNU2YpH~)ujpXP50%fsi0e^4oXhqPsK*lS4
z#U_}MI=+eyAzgs*CI66uFDMIJ{u>4#vBzMPVXY!zg&w1#Bg!Y$Wr)P$PvtYjeP0!i
z4~Y)~2t4=OVpI1zGY&tbu8;blI2sQyMk4)Z@$<3ta0$ddEHRKx^V!vq`28mL8KApb
zCi#Qz#TFS>`cR7w&1}^}wE0tY&%D1ZMt(@oy2Yz6!r&OY#`BVWNinwXaKn-`C#PsC
zo@yD_tT(+F!FGCEA?riYDOclwHef5&bFPlVdu^(1rX&t%
zL<|F19faP=1s)
zhb)cXReeIq%m`VECopC5xspr}&^sio@ek2_3Kk}aOn#fw_F&x>6%)+T5I8Dw6H!|e
zHQ+rnneQ^H?FEYV_3otGy|*p9wnx6iq+GoW-~I4uyx}_o!Ac-PuM6@C10ju3=p3!r
z%+R3Tl$oRva{F|HWQv}ONXfO
zN49HdBGQs-DJikzX%W#2LQZKL_(s)J&D)q$>->9m!s0|GW#+uS&c@Wek6y2*l&G3?
z6JccC2Yii`w}rF)7`?#8RJ?Pl_=rCk(E((=*<;1K=gKUL
zl*l#*u;1wBGtS@d8ow
z)lDR=Ga{9OxkFhW5%6TTLA5N2ZB)-j$DQ8{o=afop={`R&9!qCD=GukX)9RyhuXX5
zS^0(a&Za$@`6IUa(fp;G*mtz@J?V9N4SBdpFfns5QD*6m)e7YWB@rq5mKaFwR?6#M
zX&rGcswKSWD`+)pQZQfda3p`p(6E94P#vnhaea}!w9a~Bqa%CazV^h^?57rTK0ls!
z4-|Mf(-iI!WvoG$`gpgdTI+aj6`7Uu=VIIh-(gjB0D>N=4k{Z^|MFQ@IFyezhk+oL
zUUHHh7R|bv9GLqdUF7=GlMHgX%vf!g@I6ZxOKxXjg%^)|>KegZCB)Gc&;6m^0#xR^
ze53leMU{DfFP*THSwC|--+va0QtX*y&*(`502@n;no4{yAvxN0w~zVWu8CdX|76yU
zmBc1gBIjmWf9?_GMOO>|5t5ue8b1V~>?L?Wiw6jlTo|j!LI(O|#iZ&`vLyd`X=o3V2^pS!6ca~q(TEvxF@K$uYG(iKUs
z+@2(Ry79@byLF9wAEz8f2$p1=H1s-5$o{{>DV+#q!_g#z
zhsO^us^C|R7Q7*Z$O`_i9|k#gCF35*x{GW5HsAV>?WTi}CLtd#RSUg&`&BF<4fxl7
z2a_57r(F^n<+N^Z?PpHyZ6*P&tF)QNAZqz8G8H;_`+f$f4&b6v}l-`8P8
zHF>|7sRP)~75xpLSJEgsK)4Yl*1O}4u;&2@%0G%!QZqP~e{K5Sd|9}4+yGRW5*WX&
zFR8bGYBLg}vFDx_0o#`9$1fNDefl}eN?GwTyRYRP+lf}WUJZ>P)aya*qbx+6QwO*e
zfg^-K)4@tpuixO`!_-rr!Vx_gj%_+z)2M+`bd~k~!WB<3mcraet1teGD(1Jsi0-4;
z8xJuO9Nx#uAqhT5)%YN&DfGb@pLJK7nw`mt+X-~vEidl!jxztAF`pPNHttT8`Ks$y
zTT@q>Rf=>Ay}*3f5hzR-39UkfRmdTbC7L1PI`ac6!>zsq)uKroMWdemOyFB
zk>J|*1ak>!dsz|BKluiJ3(T8ms~h2KwCwk^Jt)~|L@u+8aKTz{hm3TO-QSgdf7IAh
zaW!5<#y;n*3$)p7$Pal~ObxQJKw=sqU8mpPbuz5Wz7p=e=i{-l*-&R?h1qe{=Yd_O
zkK6ew@dxe?C>;|`2uF%)vBk!D>x=9(>NBW^Ghg|pG(rM&JxFiymA)}r1RJ=tCTgG%
zA1!1?MaH~Y^$d&Q9L{|?SGt2HI6(+hnqLorsT;WtI)*IXNfq|qEHpk3{||0_LTTz)
zvtUPo0|nUh*QuIOM`XUrzn;VzfPp#Q^V!-oGUwX#Ve0d4Y*3oiXW&v-FHVh)|fY30ip)M3nR1XmA1lib$=-U;=u{oPGC>PVMwXiEj
z-k#G*i|;yKvUzVv^wmqF%Z=9dz_-HJzrJ;``g=a6P%bB>IY;_dmIB-H^+#{F2J`-7
zqF+MnTfUq`7mU!V{<`tK#Cn&)KVBm&9wh*eHGCB9>d2t^^KJVN{z|aP9y5~3?PDW5
z^e?#+c18aCEtmX1yyaN>2ncbO*W8wErZ$$*1Kg_rhxG#t2+*9mBQ>Cs4m1dFDm8zn
z_x=YwEU0e1@nA&sH_Wc!Bj&mljX|wk(Eg&DBjKz`uPueNYdpn;^f%_^s#8&ez
z`8;rCWN3jD-BMWtiKj`S&!~9K4}WJvTu1g-Lz)g^7VIZBEKc5jT`TyhzpD1!<7O|W
zrn10?tk1TEfH83JR3LbAKkNg$)wR7!V7h4!LhmlXwQSoTj8*x}B~H69EpkLBT-*E3
zAet}sQkMA49YNRiuoY@A#@xzsu+Ei0INopt^QrpAP;t#An54+%-J-LjiM>J;Pg;i?
zM)1+_ppeWk(C%{~C=E_sExCI!W>34{ndZqNxSLht
z3B4**-lg&JaZP2<0!6sBxcy|_$5(8Fyk)vs@*lH4RS&6Y+uYAjtGCGl3Ow5cJ`f~5
zaKS;@OmtOW);wv2r-m?G->#6!TI+>+Z<)rDikqExts_2+7dy7CuuhB8jA@7zu6U+>
z8jH*bJy@Ml{7m%l9jo{Cx6I+tDX#{)m}i<(23iHc#@P95FWqSk$%h2|||}F|#!<@^ZBVc0FbB(NK-G6jE1JDVj+c
zrU_*mY-zMhEJ4iu;$%=C1#boG!z=~dFSO|XVU?R9{1d0d+K0H)psqlkaD%>8%_SV6gw)4ymY0o
zUTNxls7=zN(o34+Bw6I_Lmn@(bxKV{g>Q=@9U2E&T&m}OZPhQ;S(+Y>^TB@90DIE=
zsZ}!H!9AGm;;hJY=662t8)W?Z2Y62^;NFO7!Z;X7I?S<~Q!lYA)gSNPbB$IYV+s$f
zzOeZ`tByv5$X_9=vI{)%?M-eUH7qF>E~x5y+*Y)Z_FK8}S#*+(kS_F5ZR<>VpBL9d
zv?-P{Un_wc)wW*8M>ECjNtJ4p-ZSi#j#o6-;cdI9lk!-@UyzkS&O-Q2;l112VapL+
zyo*QQ{s5bq&FC+Tq11!KLTIz*z9VB;f|G#A>`|0dih}|(@=6x)F&X1sK54uB#LUrZ
zVyHT@&Fd=qF30xX8wH_hKP}0NYyRr+I$7n{2-iLRHJOKZOF(=J902MsV`y-VUNGia
z0FTu;?ZzdwkIb=Q@ZrfUMt*LiO$%9=f_YQNd87!bj8{@}7Lo|A!|z7%+OgXcb$&6M
zAVJaVx+EuIr0{L0XjA_`=DSdFM{6v}+~~sCXX-8#ZtX<1LniduVvfm8Yp^icCTu6x
z6AExoc4Yb=*iOJ|rrVTjCIqrK)`UZExDKKILgIbB2p4L
zrY33=#UnW{1d4j#&QH~YwO8WnXR8P$*=6yTpLlOAR$M8sk8x!-k?T)n1!Tm
zKgz{^pGqU&u~Da;I^JU%9Kn6gci0JAXLzjl2u};|Ax}!-H3FZ$IQ%U8WLzcqxD+<3
z@-7`C%n4T`xv3)?v$#EZ
zl-hHXJGCf>jG2KvBd6{opH_C5qHisOocW=QPs)b~M+>Q^`s0H6i!s-KEs=fBz#IA5
zTV8o`ZrgbL@{SB9QABoVON+{4L}^_8w-|$D5nU=wrNACx1J~`novJ2~1m^EaP)=EU
zzW*xQgDev=U0t)hxVv8cZfUAR2f0K;5U#dXVkxOT(JyQ5*zorQo?e+Cc5ldgz`~e=
z@wwfL$JyK-X`h3Nc5FE$V1?GQs7VI&BxQypj7JmeJmpJBu9LT><`1U0;KgEm59dag?pPpyx=#RL}TD{|c;EcB`ryMthyxJpREtld`
zSU*vaCwke=&~pBD((1z<>Gg`-)UVOy_*}-#vk~3R#mcx;hs~rP^Ay9J7d6@s3xI)!^hB8jvk`wA(iv0lv@DW-tiw
zOMY&Y*ud;#xJ~)^oJHvNHR0z$*YJZf{OTkNscK5~-Hsk8t`$1s
z5q_jeM(Ht!QTX}Ff*@aLJ`+$0sEX_fZEJmDWD(~pNN!PlZK^ecVG^g!;Ny|_c5XSUH|zzsH5w#dwQ=X9
z?Gau#&q8^!@h$c05~`Yeqpveui=j-mT6jyhRAbe@+esYSsV}dzTNE<%4w^ykCvoh(
zIJ>J|U`zU27CFnSWZ3vo{j0W$Z{p2e_r?N^GoE(@>1uqJWK_w6Z&an=EJ?(>H_Dg|
zN!{8VW=ljewr=GOoXl#3qGLZS5keo4>?^j@Qc6k$l-xu41V^$Vdp>04)O1?s9#WbPY#4);V_ijydiaf@xB78qNP63EA7rOZ__M%-Rt$kR$M&T_Jp
zsR!mt+t(Mz+*x*PXC5#j}UTnb3=snRen{OM7J%?{-nW2!YfdQ<|KJBqI_UZno$5dQkcJwH$4
za7q6N#2kw`o^x&xdn6mdZS_pKCr8YR&a7NRt%Dg=N^ur>?)X;0e_bUKihQW}T}@fk
zkK8=ZRvA>f7gpyUdS%k56}@qc(@J3MPXgKx+V0(3a?xw@}`p{a<90<-9`_R-d>E*lYHcTB0JueuSIY)^p7(OM#*1u_(
zT}D5`?y!ym+%}#b3QDR~MS??bLK7UB$X`1x7DLB=tsj@!4QicP9FF$4$Dh;{S0)RC
zZB-QOZ0_J1a)au^F+-e0<1+fM$s(a4JKnX)+o4rYm>1T}G|{fHwDthiezIR9aEk3eYJsZkW%i*N&Bn8ms9#Gsy;3KIy`+qO?vH4u0DeO01hIRFEv4x
zwL4&t6IOe&q)Faj!4flp=OO_0Uvb2QrPzw_2QoYt$yTJ=Vcw^^RuDpitKPeJ3S)CO
znD<2JHANNb;CEUUbfj2gzSY>5EH>avnx8IA1OO;Ec_fdr=QV1v-g<)fCJawkDC*S^
zDu%x-ST36!`bh@9WIF#4;i*;l#>+X#Naqy7{$%Dq@+|ABRrMO~j?7L9pI6;8wG1XD
z!!?$+Ah-fwLbqD>u+~pjLrrPQu4)n}jE;83$2S&%hx2?3IPFpd<0P)-YQQM%R3;id
zXr)Jzz$3z{oZ_-?Le_Djrkh*zGm1)!6Jb=j+?T8B2oUw=!vVk7X^@7)OpO4cYmAzi
zIfo8URWh!?9xss=t(ix)+a|1X!7T42)^DED9Yxu*qwk9be`Rr=$0CpO>k*ks&ylbE
zq%%E%Uh^^C3J7(vtb=wuzr!8|J&T{21Q(C1kNOxl*a5NE8bc+^{yXP&Gf{+aWarDzt4;{(g>wA
zJ7ExnUNzdhQEfXZr{L?pppYl&T0xx1SXpTO
zWF&+`)Ghm(4w+bX#|%holITYLB_BM%JO4kyw;-F?R@fF$Zjh5$AK6)g$Rvx2lMs?H
z?FAhius(l(iu^&E@-Lk00S3g^qjNw^j?wI;9et)u)6i*=YS~MbSRb?X9&Oak5#vM*
z-m}SzG=-N5-a5d^
zeAxJp@yN&+j=wGU(+hQ=#BPtX_>-Ry8!0)uzy)|$gBS#d8g$M_a}KBdjmrW+Z7&$j
z_d(vl+QFfEC3lD6R&HQWm=Ub&?=>VC@$!(HK+sm~b=Aq}%A;DuIl5tk^#vK=-n*NT
zHvJjP?Z1(yEVr`76ucfbpFp*p6Kpcy!-gH}{M8E3XQiaZd+92^lH04piy-fS)t?=O
z*pURLYoHCi_E`GLUsV@4Ak7{fFEu}J=N&n&^>1!vcX1vvX)vFhl22zRkr;T
z6j_0wNW%RVk*aI6+qJx?T#57FICrH7D4zufR9VyAGJ@6mfJ_7Ix<+ZPhkRGsMyWKq
z!>4yT8P_P2kH&z@_lM4xvW5s`_D!b^s@h9vPZv7$*=xj^g|RZZRF)*Mvz;Mu)hv%^
z&ZAAj(qSgSyk~?p1jleS@`JACJKyHf5GvXHhqFwQ9r@67G%v8tHfJ5X?y~ji0u;`E
zskrrNT!SfN*Iy5>uCkN5K(l3L3h{|HxGYJZo(yEIaS8&GsT(H|)m
z$u-wTMx3kNQ;g-rld{IBi<8J{(cM9!f+(}Yu$poa_dxP{P5HSoxOo^~0;7xw4hzv_
zIcYO}sy3VB2FqL?V6u`C1oaGiv6P#dc9Akt1ujQ@jn=$uQR5fL2+{^gXLC#KwHZ|a
zg(?6OdcLNPpiB2Zq3Dmf^_+8Q*dW+mI3uEK(h!7R5lu!gjC#)Vx=+!JEIw=5@1ogQ
zATqie3K@`?_#0fcH>H;7P_HQOAtU?$xK#%LnmPsy7xU8))G(!7O@H#fIw!fI;$UmCj#K+aH35;`NUy4{8P&htp#cR8R42Chw3nj;)T08_a)_~=hfAqC*Y2Er}$#bP@$P*jpA!rcbtg2Z))g_
zYxxz-JbiAvYETHPH1or`V86Tp#2cdFtif(FhGzFZ_A(c(9BP=e;L&*xF|O{}EqUoI
ze3$FYJW0LgKkq{g^~Y9yz@=#qBp?py*dxqw#Vc
zAuFWQewYs>%coM{Is-jB`vNq~8e(BB@u&0X8d3U*He*ZD0AyaP*~>9nn{y!UGfrQl
zt{G~5nw^p~S;6%N$-6zZp-6`BWV0yY+w!<)Nkx7^<*F0AB_(C5Mv5L|Z{gORqTSin
z^R<=%bb9Jr!3luEUZNHVX-u+cMKMJt-KTK>HSPd0c)*sO*1d&7&DVyL(h^~fe3Hn~
z;wq(d&o1)U>b0=~;WTJ{ip{>5K;K$;H=Jq1EYO^aE07yG`ZUkBN9y;f@^dw!YxfBr
zT9l?3jZc%ox3taUR0DC3@u+&TCG?ydi=Q5b9ntbH&G#8FE@xjr6B_VZ#^9!X=vPXU
zY9DLclG7_u)!9O>*TzXwS*KtzN
z$g63~K-=q>9VMNS@PPbQNla8|G*jMP4fEr*1^Yr~3NouAM#h`-wB;u6ZL`;^SXKW*
zZz8uHicKid)?06i)~&2ox69@eTGCiP3IqglGSNS>HkY|^?wzX%O=+A
zH0&SzO@E4*b|ZfI9{+O1Y45)A%gy)~E!kba@zWUj|BnwOR2m-a(|Ru(tRF7API#CM
zB;Uq5zXIpw-^2Xrsds(w+1bdSzIT0busN&)^GXTgpe5WB1)6v5PI%boS6O76jQ;ZP
z6EU3+!x}Na^@a!7HH!pcEp9ERj-Bp23QlpGRn-f=1FU&|w9_7JTr1BQF~Jz_O4_@v
zg&5r?7|V#t2acvyK|YtE%i8dTs!*wL-S-8*8jKC-~LVV1v0l
z%8%!v^5TUGG16n7&07MHL5w%fE%pm*AoAFhr;06BfMNF71+1%d_edeXKi2{rK8<}zlBsa?zG+ukp$k^?^A&>_2;tff-vLmJ+mVSN6|3z6PXmI
zPO%M0>TLo4=CjrlD|xkiW1rEErMo6l?J@VIkZ&xbvaKR+69m{|w4vPAm*K7_pT>`d
zGn*{omfh^Y8kkh?yU_3E0%w%~h32&eDL?BpNUIue*e}sWwi)i8RBk9l=|IYmZPC#Pr%%Bnyq`zk8FmE
ziqE{3ZSq#kS^d!9b+|N}^6q)u`m}xR{uNRq;Y$ZEIgSF%#Zk7VL~l{SIxyt3
zhLakGK@LZx`k;W|wUvU=qY=fSa%g5q_;a$I9SqdvI!s^c>F3H4_p3?F=1%fmX0==+
zfl=yRKzjORC!zjp#5l_-D#Bwi1>g?j&g)ZaHmXzaoWcHvb;M>*c+eM>uLOgeI^0-hccDoe_);P1oJT1tE`TWG^L2|JEzgSej7^q
zJNNX9@5X!fm1dS>TBQg{O1Vi|_a8G;Z*_LA4pAfyb|1rC2unfH5Vz)zLJ>`G>KtOe%4c)M2(Ej5a6jH8u>~0er0S`E_
z&5bsk(ms*B^wKuPI(f+Y2oG%)f@d6*YWZwPOP`rw38irq1&=-W5mpdyXouLv92?dV
zrJk$H2mDVqgjSkAtBY=7o!{IqRMWmM#l9d|)^)_a%b@Au%9p=wK*4g<11!z&jrj)X
zHNLCc?(Wb#YHsJlKcSkM;U0+y{ALcf>=io2bH0q8eAiodx8$_~lKYypTH^n;t!^gJ^>ZY`k#%iVJPv2&j#QM>b
z&fTMK52R>(ZX82-@n&rAENlC`X|div_rC76dc)9Vw62TV#U&EnefqUvOP$^=ca8Pp
zw&WV;_E{|IHF+#L^5yiP%C*^!_0tCxO_mb#W9H3Rg>I{Y?$$36SbhWy@0Y#)Hi=r0
zkTP)jyK$;){=MdxrkrKw%FX8{wvjxQ5&v57ld?~(8kY$|WM{Ut<~h*M+a|8BoESS>
z?R5-}rz(rR?%bi3>8to3FNF8tutku86YH;-81&~b5_w@EK9WxnSYLMa@*h>He#aMp
z!qoM9-{toLmiwbQWEHo&zFq(Zi%QGV-N#}~J%sx@m+4uLNt@A4rqy5j@78epST*t0
zvdS7MVH86&Z_a!ab9W=8=WrvuX!k8eh&E}_I}~bRVkh@&LiuZ(fR({JY)*_iZtf{i
z!W-2(=TjH8Q)3Xu-3Lcp^Y%yPxosZ;~<2yez~<<{;jcdWH(%O7c?yV
z39_t<$$f^-b7Vh1a!6Dk7YIB6od@}y3&se>Q#o3&A8e=+Cs^%M7e#Xy4%=DKo_bRmXy
zt{i!oP4e_JN_y8zv5M0UXN6#L!VD8@)w^GRITKdP2MP=h-EX!`xIDs$R|4@H2
z7(zfRWJc@2=HcP7`c=x=(&Ie|%d@kV?WA*|SX+o^_2J4>GVzIsaUU&hkL?=}mvsS{
zaVLI-T-k|6aelW^@CXy6l$_6x+6r?$D!)eu0a>p&g+RDA=N}v_M=MW(yL302SC_PS
z+`(XSphUB?*6epVi6nQV0JsO(MV}Hh6xmxFVq+)j^^ft!D~vv5Q12*RhF4X1DT-A*
zUOM>3gQ2Qm#|t$oYp*i3k=`G_{p-pmfHq8>mGlpL;OSl_
zm5TZlZ9t-($v0gqtsC=})5hyr*cCHvjCLi#ByjK3aKDPiq0?%rs$w`dlx(--Ny!Uz
zt%0{ydAYPp{W7>!GpQVb7W$=OleYn`FE^h;myT9@cR-rfG-d5`<_iHZe+NS$1`A=M
z1t0-_a~t@G9?!NluU%>=`V>-lr;VTbM=oW#v-I~$4ueSnz5O)eap&)fR}@{VA8p(q
z=+UJKZFE-02?)5S8{ZUt_BAIAhv$_udw`PRbWQSqXEyhU&FycvzUaz}_u#JtQ8
z?{TpEC+;UI8C`KWJsTfxog1JG;Mz32^cP;FNSY}3f>XMvqod5mr|5n1Q7Xhm95)=yDa{ll)GE%UA+7aqONxxiad
zMDZF~+_H{SN`~&kI#Y;brT^*T94SW(oG=6Xfy7+GhNm+>x?_fh~rax)|p{3rX!X!yN7C7P)MzJdLO1e8P7j
zx+dL%3%klw?%;)wi5rCe@oEc=9OG?9fjNjJHz-?ON)5KAh8edyf|Sq{n!!qM~~;Zg%?
z;ij!ZsPvb&^z?hOq3Ymz`mu;XrdH`e;}koZ3e;i_wJ=#N{1tT7OO{JpliZq07^*vOuurNed8&37ZkSpN0`qrRp_F;&8QrorDo?Q-!0mYj4+%wfCzp+EjDf`>U@
zlJ_E{yU3W+?#5>pK_`_s{e973mQ
zuieU*XM$Zn`T(TiWvTGc1LhVr@8%NPW7(U)z^wnS9v;^?5nT4(V4z`W*G!;Ob3B)C
zAV&bKe{Jtgg(Rf3TN_m#0)^rmTy1Q(AHAmU&rkn53;pxn;{1u=IOKtP#K$UzhkpEH
z_{}8nTax_u#t6>%eJT`ax>?3Yb)4x6doOeXklBP;*}u3XZ&SRJs(3@RX)MHqM4?`&
z4Jwb@U=;jA=Vj8fJ~7fk;9}W##>@Le3mfO;g`b$0AePdG0nRDATYnftDpu
z^ZFs+C3*&DL@!^Gsjh<10M%XgI&@`+j@&ety~cL6?9ZM41}{wRO<@%`zB;aWoKXFv
z-I(#n$cm+tN3$;t5)L7K%)dtrPL}}VGp>269(JE(ZJ=KH=d{rLy{k1_76
zP^d|hyU!9n5pn5$|CU^+!S3$UMVh9sgbbrrUsIDL2;gm>66jHnWTb7Gk
zt@0reyTJla@$PD8i6ohzzC%-a@=7b`{=9W?T1qj;(g&xZ@2~boze*6lBD>$_As{xc
zZyM>Gbe(RP@;TRX!nt<%8(0MY2U+8&zl@(lorJfK)53?TSgILO6pGhZ+z*2A6JH^By(6;BG;Z>0qYGQmmWY=k5
zoWH$CZLD}b`Qmo?y`4B~WNz({QT0<_g{uk@7Ev5>-Efif3uFP&`Rd+8nXODH7V&~O
zf^#u)PTJs6aXEQ58SD<)XQYt-5MX<+flWvpU-tREJzC5jM}=79;4+u@F$QckSLa=^
zcOOjrp|A|tajkP>9i6xHuhayI2x*CCje?*AV;q-G6nD|M0Y6{qrKDQC+r?m%8E|-f
zNOi5iGlIBV26VP5!Y=G7TpPP#+xse+ABOD%R1cO0w9zOdU+#Zi%a3I9
zR)%9|^`(R_C;Px9FTZ<@c?D`;kjL8a72u{zf){FI35@G-XO@Nw6YTKWX{xH`z+41T
zaKR>Xp0j+YX)U~e-)vMbvD}0nvi@>+I$X=7a{GAPM18N7*k?apmUhx(L)u!Q<454m
zMn`I(4{n%**^kEclR9J?WgAI=6w5YLhF@mjL9~Nos9e0n6$Q?Ky;P+6S=gnDK3Q+gDPsB=W)8R<#Bcy1zo!E5&o>eajwNVvkS;7lK%bzbz#%m}@!e#fYs
zI_NcXm)|Qy*BYLE79~183NpLc$>>fX8?Vr)QTkS2J|6i=ny;pxnhwuFX6S1MFV_oF
zRdI4AYe(HPph1S(tNgOvU_bX#nIWlbVb|j0WuoVh>wnyYTkKPzGxKxj?J>=@LAIg6
z^1+=`P<37Rj}FQ-C?^DNOYkBg<}jQWR)HLsPUoZIhh;N8Vs*rCsLCw!G_+Mo?eW&X
zp>o0A_i~Uz19MkQwkahKg@BAAQ%#)a)#-zH{d`>9(Y#
zT8ml4MI`d&Gd3OeSQLqKI^A;-N|oYT6X7gQZ$7%4qXaRon!nZ^$Xcmkq95YhJ^`J%
zb6`hZ9``p&N_B^U-5Ph&izU^ijF7j_B7jd1e^8@P|a^Q5DXL%?9}&bdWVN4bigf
z!DoxP0#tqGc@m!Q<6ljG&Pe}4Pb$H`{)<{Xs)3C8Z08_1JAz}1?m<8UpECm~Uqd^4
z>>mT>NRleO%=8{Yi-~c3K#0$wUoGyNkeBsbrv<+FRl+H$q`yYBVwh_&TNZwI43u$R+Xb21)H`PDWX44#PI-lgGG@gWe
z!v~(LqlTd(f~X5kqDVC*l;811wbOAwq===goHs0UHZB;FZkOW{5>$-rmbE0IfQ~%K
zF4Ke9t@{N(pJIW;G)_|19w<*$|MN)41?`BnDq;wNjkzD%O;00QHu9Ki3B}`>mvq0fr8ai(C^1J*GX7lCa3B445p!$6l@d~{;tn?_plEIEQGXBP+
zwUhT@+5kbH-pc1L=E;$0{uuuzgS%N98sEFZ64FU
zjIvp$j!RyB;-9-ESp9qMyODWq=`MLlzda5NBH#72iMAU7l-y}({4+N2gREnhsZoRS
z80D#d|Cbhoz}|KFyJhQt|Cb-IQd^e$bN~Nir~AK~$G5-J;ILO}5{;}uG@%9n9{D@F
zekzSh_POhmfuTKPn0aal^_my9ffGEZD(vJi%dvU&C_k18e$wkyN=_HGYyGF`Rj08h
zM|I~?qL0f%V^DByz&eHi!t{4J;b$>^#=}hE(l}VExiyb7188O=&g$eJc2Qk39{a3b
zz4u9RX}l2Z_zi<8-Y?cqKG^3+{fD{KcdT(D35F5ssDaG%anFKkWFig!ypT!@%J{;T
zj%?wsE9_cjSU=Oljla(B$`>c{gKTG
zl?Vl8Te$}6JN|0-T5f5zx2+eS`aAtIxpR>4ga8`vxYB5tL>JC?KAQGxs!vju@w(_(
zm$o@J7JwyFxjwLDDmyF0R<7Ys)!$=O3q0{O;NfR8#0#!5sY6tU80{)DuH8frNVY~K
z-O4+ypC8fwV8h!pnI8;-O0~D8H|{p*Bt`e;bu))RG&cC~3R1maP(GFtR;E+*Qjv?g
zlqNHpTXkw?^edVh>HQ6pm9Hi(byRLV?-ON8aPtNm&Y$K=s*ZapQx$Sg(p=xyD5CDa
zBGSJ&8}TS61e}4N3ubv#M5Vrt6d{RaWSP&ujdnJPBIdxqpj-r?1w@Pi+Dev&kLe{c
zuyeWZ9$EgSmb+64JL{2;N!X=_`a>GWyyij6o2gT)sMAL#zOf10l?mN(?J`h4{*2f(
zXMh~CLDDoAL~>)}LtUof_i`S6l&|#Peg}-a^6wq2lqc}#>iY*StAUv`UtD#WwP%zU
z?0ELp>|5PANoANxYsD9*PJn8p)YWPb_PO1AKNmrs((gQ)-b$Q|bSv2%iSTV4GNXN2
z716+GMeB2jt91FjyI2(O|d~Q64
z%B$@Z1GD7Qw3K@b5)t?6z`cvY7Y+POE;*z{bS}qD17D2P98PYd~1q-
z5^?ID_+HaU%ZnO7v`-H4bw!
zR2rb{6CYP2AavZQnmbdKr-1!iK!dVpHfumJcX3zVW(Qz@Q;rqs_ueenq7l?BG477f1}zTg1p1fHDg3{yq}yMKp}f-vCyK}2T>R&;2SMgC
zaFoFi8t~g;YA@QDwWjB+FynR4bXqwta5h7f3}ZdFk%9DN&+>vaK_mpcY8{E*x|*eZ
za1TVLulLGn#<#y?U!MT=^bkw23_^3JhaRh!u~Bt~p%{;>C$MxXndxs4&CR|!E&hG#
zxDSQ4#a7CTcJ-nqfu$3nc>1VD>uEh*^!Zw_;hq7RQ=nvzey+?8^mLDW8
z-&W}K9zXsf^-T3G>t9mYC2Sc%_v`Y@0>kaE2TylvHRQ9=Wa{vPpYQuou9cNtfqQLIrxkpk+|#y%i6{)J>n}AMUm_V0r#IKj$t*QH5W
za=Lo2+#B9uT3!4a&G5X&f1yO=jFA>SS=8P3%zGpsmlACERbT!*jU%hbo(8~!>>gmmyg
z(x|C&L{iGByTf7F=3SktME7*e@Z8T1bt>7Q7+C8$s5cjKhZa;*JA!y-S?CKisCI>;t*CG}j4?8e
zcO{jTLPO-EwCl_cZ}3`z6av;<>g5m4pXO4hLs~ot!Qnq~)u9>Z#Nhkmz}zxzpPc8L
zc_s5r^jL`Xy$q+et9!<-vKiqsGe##-qHp+89p5c0-fRZ*tnS|sMqc~qoGUGX$xGr1
zTw|o$J$v?Ps;6q*I%P+?X?AUg+g!V$|PCWxxHdF!3f#Cmd*PV4?y#In?nFO_OFWxFpr
zfvtkb72?r?tW`hXG-@RfW$XC6`O{dhMlIOFK@szJIVb6n&qiKvDzk+ueckivsFu#~
z&64cI$C%o1AOEiR{?ExB0!ucKQZ}Qpm!jr;o$2?S;fbYmzaO3u&cku6|q-G_J$Ho
zVYOtK@wRgT|2N7AQt)O6EH_>peqfgY4zAVj4>~#c8c2vG&x~de?FrAubJytjqPQ&a
zs0xypoH`B8$G0dBJnUs*S43!%TV*uvZl^P*1kLdJZW#KNY*5kxW)i!A?2RlGx~{pk
z`G9R@HRbPDcg#q{t2}l#($n-rb^WaB@>7vLD`kp+0GEDaSjo9F74KiFmw*l?25RxQ
z)kQ}vJ*B1q0NUrP`59yeY(GHbom!u|%`{&iy%eIE6X7GDLFK5ihjX6k)u5k+5X~$=h%4UIztxxq+tMwP~
zoBnPK@H0u0@^O`+Q}{$QhUW87*NqLn=EszK@giUIOXW-+-%+*smL_*8^Di##rznnK
z85(lD*Kt&7EQEXxBX_QF!X8MfC={a|?>EL7_da(}G!yrhvGUqMjPf|nzuMXdx}V~G
z@dk3n<4E4l{BL|u8WE|=G+W-Tt!kQ$&y^a7QzU=Il%<|%)x%a*Udd74oa?;ER?rrE
z{=Az{eDk}haBLSsz@YB3813zkHZ{U(@p&uL)PJ?gj&I(go#T00fjE#o`4RS}(j4%n
zF{Oto>w7fa`mofFTQPrp__VL~&)(Kw|7g5@+8?m=+@GDfv23je^`EV~PYIRf4}Z4V
z#=atkIDhuxJ{_mgfI+)f=LEj#;gX4_@PulG_O`GYx-f5BTEi#3pG3Gw&HlE}KTpFFWlH}7a$je`&!N^xgh<8V`
z6=R>=0pSpgyOe(bH4~3@iFij|JIs#YVNy20T7-im<8`m)>*m%E$M-)25rc$7GM`h4
z49)EMQ3j*nIq!o`Cs1xIObS?=4-%p+T+}bW4`&F+OvV}=13i>p0tC3DqOU@^7#__YBg6N!;!H4R^t?$(V{Jw$3T#Ew^TAEY
z4Pp$1rV8qTJ(YklhWrQ!>LT9=1@!41?MEB}d|30ar0CX1E~@fi7D*OmhqytFoVnZ$mW4tqk-Q8N82EMC2U{R-anf{9V)s
z&Ch=jazYcOV9(K!KN8=oOHXYOZY)rsX%pr!z0yuNsUiB@N`1s*>dh@JcSZ1o3JMIShyLR?cm9=P1$eUy$4cGUgRr
zCBspuxu4elw+?o=e(qQVyxOu-2j$*=9qaS2X$;0tC`AMDPIRAXf{|
zp491qJ9lYPmSvAcuK%}79)@ttIO3;E-mI@65q7ip1Z|%Ldjc08w&@bXIWEol+n5DT
z@Tw#c6?uDMcym7NN!%4wy3(W5D;GmIF9Pg5`gnjq+Kou)qAuL9gC}D}r8dgwR`FSs
zeOdX(LniJU^ytu*JY0e;^ww)-<(XH!QdAixqrBOdI(Jw?eoVQ$jD9oMRyUfDAQ+a0
zFODogyM?%K)~aQ$zdq}p>-t_n<|=%bEcF;}@44I7H(4hLgzpvy@zqV=&%2Y|DRW^_
zxgc=!+Q?J>sjm#+_bqbNS6-)Ku%3x&l1fE)TW%)SPx;10sSv059PfcQ
zrJ-9Sb@E-(^^Zt6&v|o_fn&T8#XFw_LnJ+fgD|0DjWXuVib0lCs=f*^~xd#9b
zKAlaPM=JoM%y9Lm>nj&v)p_Ov312)DW5CkV3Y8@0DxmUx)XPg}iV-I1Xb^1;uXuJ#
z4?)mP`^8sz>JoZUu*8JKe`U0~?B!y?16rtz`Yz!|=rd}ik{KI*amK#;-hm<@KeWcB
z&lpZ>Y)&F?nRN)$Mk{TmozF9L>Y7tHAD+cLmbGTpdmoX9KsD@^Odn2M=J1&tY_bAr
zgB>0RpX6>-jO<+{kOJ-ygJqDN0j30fI~kWJyNb96zTA~m2k~*}?HPJmB^u4)uJW6r
zZ$&X0;-g`aPTR}pl)_P~Um2Z+fhgyGZBv$#`Mc(BvrZ*h&AXy~AVq_)cZpeTi==eD
zVbGLu-+?W9gEtxtJcH3IZdv**qb5ydI7_{`f>}>?4PCrqqAjDk&`PG1O(6ZCbf0Uo
z#!p5g-N_ciUcWnq4tSq>>;z`|eG)kD3@On#o6fG1om1YMd_YbSNF3R8D=jYkrtA9E
zt{4M&ZWrGZa~TUpxeVC#T58p&Uhb;amwGQibLb_VRfBP(W5mNezsn6?e+$fkBEAy}
z;*OP?;@WTzy<65Xi8j$hISPiBQH4j_)NXe38SF~lE1roUp$d@HND*;j3g=tv4$R^^
z5e_lQ%gQv7n9FbH==6*Z{o;!lw5-%Wj~ya7k|~yC1DA(R)VAoC+{1!1=gghp2GZW<
ze7%8WL8;I#v;@CKgR$bd5s0ogB>cXRLmTL;2cUn=QM!;y{nRKksu#XzGnJ}}yI6+&
z$*qLflL`RN^d;O#C
z9iC69y@Yeou*Va?ugx#Xmw42w!2gj<_}6r3U`};2US}>R@tw>!$|<51t9-DH;~zh9
zGeaC=umbc10l0xepX@bGbz_K?poZ#QbD9u8jOa(AqQ{A>zEGQsN
zq<1kO9R%qhRZx0Wz#vulKq*orG*Kx6(jx&8l-{dU2~m20PoxN<(i0F6fzbQg!4|#u
zj&a|+cZ|oc43eDev-du0uQJ!1G$GwV-5o+pu~YqHC=(^Jjnh*>q;!UYQ~3u^B9X;0HwLSW>AG_U
zaoo8+>a3ZwCO96q^I@$t)M_q$Ap*1gJcZI}%nxlcqRTj>xVQpZZ0IkGlf+?X^2iJY
z)l-btG}E0CN@ugUb3J6?@x?Ax9^@nmm1%ga=D_Q39u=q|RMYOLUwxJ>AAyh!jl`La
zIjw)#sVO=@e3x6dH8keAp6!K4raowIcA4_K+l5j)9~|5xl9-Kg=1ABnueRwN@!C+)
z5Xq;maRbQF!IG5GP0Rz^T`|>IsJ+qMdPji{`3>LW24{M$V+%de>b*5~c_jt(4{^3E^9fIF3tps|f1ny|VU{W1Lzg)I?L~VY4})?bOW_rJ)R)mzA;8S
zD4ph2r3c;p8lD=^n>J~ou#1yW*bcOvy@=ApK6eT??2rfz7YyOI{xMCG7Qk74L)SWF
z;RV#jL1hu|BzpSR0*aWLQoXnVUwX(FK-Dxhz+Ygr1chDpx{fQc`ulMOg^O8)=6lX}
zWgdxfhBY2~k_(=U_OCE=X0iP;U*rK9kIq|epmscxCjK-AZDzmGF5K|=
z=Tf%9jxktAHUmToD=7~UQIL`^{Z6Uo@0jYQp2*k`Is({a&S>lT9Yoy$UA6kXH}8E4
zH$*Kmq4Wwek}jMi<>VMz3h5XM&tE-+zIr?ZqJ4)82>N15Q
zls2n975q^vE|qT;2}ZsGM$Q}#Fh~oYm&?7{3|%F0kSHj~k-X}hrZhNJh>-QYV$-3O
zNhg9Rx5o<0v_0RJifE?~70eT}JEh%=5l_g9a!mL-Q^I7{mtax%IjL^lHuBE#DtjYs
z4|8?4HqrKSIcFR#mKtUFbD{h3&L@A?ypTB+M5vuU*C|$5XDt62vz^xw_c}LhSnUnv
zqf)o0kM!{%4m2DymK$9FOO~UwA(jZ+Ky4HCASy~k;=Ggun9Y2*VeLOBvlnlKCq(@M
zf{duKE=?GZ6ATYVdRi;;9xMbPk(@UN&{StBE?p=MX3h&P#u#RbI9jqogpgx=&I8&8
zKeoyBP5j`@foIHbva2B@f|+4wTU|wZFJ;vYg`&f&{1h`XNf}Iw{FY1k56($a#c>=8
zsf5{G>zvaXzM7XD4qER(B&g{N)>Zpe)6ToCNwRzz2xvU_m@{>;0+fO`UdEe5Afvhc
zb-VUar(1y*>r>5APw7OK+ywh+fd;CF@FIszgw(;4Yjpi2)_vrwHGsF)(9VPyTOwK0
z8I4Z=G#6B8_`yo#ob6{0wJe)XcaUa+dbOHaEJa!f?K^)8J?lQ!%7g9+73U)&|nM
zDYj2Z@g^xt79Ukvx9>8-B#aBFv1Zd06L95*aiL+w^+JFK5^L@n76}nON&fDzasUMd
zPrm5*1UC^wD1+Kvk=EvKOiw?q(ufD%eurle7%;#P^JhE_uqVSFUB!M=G672<0G#Br
zHImWAlg`q)+PmqD$UHJO`@()}w7lPq7m&j>;gk%KA1wD@n0&+AXlnxvpy
zTc3=C$#0f+ki4ozBdIn(Xi~r{Vi{(bNCxN_YJ|P}dKsl``(Q5<+G4s3SwOcufw2UX
zdm$C=lV1j>>gkJnGngqkCySwXI8fG&RjTxb7!D?^(}YqtOLv}Z4f708A_g!T!T=s%
zdqUkrY=#*7R-gcmal3~xgomi?2qu3Rqe{=IS=b+m-vqxh4gi|$1L$#AA36J9cAj6~
zd^*3abwzN;(0sreEBM?A=XNz@5Ci{OT`Qyza6hoDk%?hn{Fv}30pCuzi{bkMz@KTg
zX!O3q302}aw01L(!un#c6OJbY%{Npy6?Mn{I~J*(69nSb_$JzAXdS8tQOb&%zu;
zor@hv-A}xqOYwQ`M4UN%_Nol%kS6@XeTa~3Kc1FrZFtS!NdI)Jn(elxuHtu>vM77`92xf@9SjK24L!Ss&OM>T`t(t5{ta!=oXDZ3`a!L?k0;j
zW-PdN3ifU}^41)v3ln5Gf=<)}OdP0J63*T4yX!{TFEn#!1ju?|-pI^55w|c0{n&EJ
zXyrBp%NVfaprQkgKQ9@?fyMP2&*&@RXluw21_^Hktyj#X-*ZgTlHY6@h&Vqwqx_tm
z=Rw|}SBv#Ld80cxVm2%D{Q6e_uvgSAwnpYtX$krq{_Ec|I^XjX?Yj-{#}W3%
ziGk`!#1}a(rV!VpnskwCpp6I56uk#H)9wt60kV~_+C6Bq@k~`OYRd8{$UQ@ee;sxG
z+@HE6rDBy9H7s#CQNqt~pmY8&k~L#1lEZOx+5R)x>q(DBb?vNbAIDtRt*Msgw61J%
zmuiIweN3ND$Dkg`hA2ci#d$&ShL(92Zz^d4&hmX073$Q3^clIsgAkrKWH?8KPFfb*
z6}9V^@CpAnPF%O|v}zV*P|ok&HMGUG*m!neVisgZHl8r6#p>T~2fZvO@sDZb&jaxx
zgd%Qv&N;wLp%(%YS&2^#5OuQy#Z{qxZd@r&nEM~@$~N~rvI!2S6RNEC`^>~9_z|pC
zDd^&|cwO;Xjv?#P>MS4)D+oy7Cp%GpN&Hy4@*_@#rPfrVRwvvsU7N$bG~!b5U6B`e
zt|gpcK7#9|Sv(x~sByb%R6o~{@oBNhjih)5wXVHRMoY}YOW218>Q|w}9uZ|dYFfr*
zm-7Fz%Cn`prmWJ?rlE-B$NO#H_acC80~*H5PbscQbvl1&z&zUGuBA+rSyc)yLNm2T
z1TH<1Ems5Pump02a_}@+>mj!KCKLWp^YC^zruQs^LgcxIvPWuoR203Br9)qfigb%~
z>J|+!i;;+ndd6$0+eR8{2@0n{C^gb3b8}v+I+zpSc_L+*%0qg})G854N`MgMgP9=utV_-Y4|{5sn&D9u#T(C+3G_ETTng~H<0}Bq
zuO;Grc)8vuU34=T^dk*byPh^H0&ClIc=2O}Z)U+d)P5$Z?s+E-;;6h3^<&TpcAFo}
zV#D%-Fyyf*l^u!IfP?pxBt$hSj`ZYFH&a?h@l4hC@!bq%tl??k2}ytf=HuM(;5LI;
zv1p>S2pnZz_T&{vl=6%?+mUE)x3ukXfqNeB&6K_L^-iXf!3BO_(FNsaqFFbcoprFC
zZ~4S{9rUF%Sw|bkiw6U7LePRU+3JacbI%Ut)5x1I(IRQD26*Bl!?+Y)Gf%o&7w8WP
zOfhhhz)a{4x;cCk&vajVQfHkD%KB9p_8Mt$LO0%W_0n>tsBfxy*_{%hO6Be~
z>o1@wNOtukc@{k~tV+KUKTR(ME?NVLiY-=l#w(2yxCwYJf8vR_VgF$B
zJW}lqGxNY
z3vA*f_SuLE`|4*q
zc)L2F3ad?cLAHrq?ut2UM1C3%lzG(e;xBSgt*_wUqO1r2k7RcOfM7Zhxn}_3;|%?i
zO#0LBKL(9Ox4SO-@OfPM84i!(yLf>YuZK@!^IM#?Cc+$AX9QIBTL}J!H0YjiK+!{}
zYzOvo8h?0nuPC2w+rgpj%**sgIK_eKA<5v4p|-`TJnB*7<2|U)DyKq*X1E74O}xv?
zw!U!Y7eq#{ZgRxO^Ph{BF(6_)?Uys754ron{$XeY;Fux+j;S4NkCP#~B!|ZOzO|Y}Uy0zXmDYk5Xf&k)S
zI`%+3tbsw7;e1+EFxhe@WQ*SSZovhOe8n>>yo0)5V<%#uuGs$oxsqm$=stFxT>AAl
za1Non%Ov3qTkWXOofKi#0$Ob3q#mignUG+<6(n#X=xPF?Y`V2B2(!y{B+P1##$K1C
zz5cQ>FtiYp&y=mwO*Wand}Y4*;c@paa@EST&!@z>Wfc2lZqfQl{XLARCh|^+XwyXK
zIPY^}5c;2wp48o0J&hOlsu-weH%$jXkOapxlL42{mZ`n^(a!AaOj`T4f5Ut77Y^kA$g9AUQvlP7B6EFh{RRm~{$7RzVbdM5DV+niPjp@LCaTX<6Xf!W
zxah-k@14Ye%9=0($>?+uv9I>!e1By8KN2JiLLazglu^CL
zD!^jwbJnbQH-Wv9r_}!z@bg{oY$51e@P$%mnrw)Qf%I<)cQ*DmDN2
zU;Zwh`u}=AS7$4V_r|J*SKg%hw<5V|zjf;pJ~ANrSFrNCFzsY|5RFq=Q-
zbk*Zex95?W4ywqnA;Sxw=up*b~y;nb~U%aV5A7o+k
z@lq&+@f~QccCtY=9oM993FXS*UEy$xWk@xd(J4rN3vrg`h0g6O1`y0v5Rj6n$vibu
z1bQP~tS1h(zB>!{L)s7S0)o(UtS+gpl`WtF;!Foh3(6LwGRrq8=Gb;?Ly;SeoI9St%#t54jU83z{?
z2TqsK8(HZikY{D4r!DjB8gx}EuxmD{Zo#alt+fKg-W@^lm(J(sIO5#=k%qm@m)@j>W|-R*y%YlV*o>S_auqULz}1u+sMvr
zM_fZ7JSo;df9>vd-VT?GNp)>k$(KHPYT=7!LtDM`KI6r=kn6c?gBXVLoqcx^sLM#w
z`;y%{s$-DU;=v!6tv4=gmNxzvW}s0s5RLAA7@r*apj$#a(TzbcTR=HJ87tg%6Wr^E
zdbCd~a*bc%#ZF%;{&Lv;%Y9sc6yIT&;$oq#5)(~LRw3udrGF~LkeOU84t;?(OZbhQ
zVE=YNi%}hEidu{6SMCCR5#>U9FKbx4A3~x2;Nl1_wEzeqz1saQBiQp
z=qHrnmm7+IO#jvY_aEPXS@LuPu=+vR@wP|z@e{G
z(X$^Q{6hn%-IcwY$F+GhSuF#01_BBnC`jwuWj|4r3nR
zCq{(H>MaH>RdGM_{_DlI;|EuHwn@k#WPhLQl1)c^p&F@Fu{CGcjo#9`sHiQj$Xeux
zt5w#ulV7Ad=iR3ET=U7@5({Kwb3qOVyAB1+>}-CP7dv}whmzt-5@LTg)ELCP7ar>P
z63wTH`t$J9w7pbuyb#e)cBtd+8GlBhdx6(GliTkx#_9qn4gxB9K6D!Ha37{P@8aIn
zVyRJTKU8kOXYq0<E4xEdK7E^VDg-pZdEuS1_77S4m_=yQV>NFkm&!8hBPzbcHh(pFS{C)Ta!Y|
z5)s0ALE%TIvWn;CmtN7f3#76Ls%?_sGG(k&UM#$0;5d>1P(eYx&@0
zSKTv$MFnrfz}S$B`iW$hPHAgnI5_1g6tOQyc5eB?8yb*-4TfywI_@DIQ%oj@cwFcU
zDXph{Peb8=j1M$7gFCss$-D@mz_@*Qee~5L%|{6{1aG~t%=!HX)7$L@TIR?}Pbl=3
zTy+Kuegn32B22cCsI@iIZZb-?H;;9E9^t3Mu7eM{l*DGQivI|Gxj^0c7IeqUtb6|}
yPNc=_ANRWEcYFfoQ8zE{FN7WG`fIlBy+h{*m_tr9XEq)He;TUVDn&}y@BI$|pm7HP
literal 67823
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