From 98d1f3c9e2a7ed29bd513c1cf51fe45130da88a6 Mon Sep 17 00:00:00 2001 From: damithc Date: Tue, 12 Sep 2023 01:20:47 +0800 Subject: [PATCH 001/464] Migrate docs to MarkBind Let's migrate the docs site from Jekyll to MarkBind. Primary author: @tlylt in se-edu/addressbook-level3/pull/156 Further tweaks: @damithc in se-edu/addressbook-level3/pull/206 --- .github/workflows/docs.yml | 25 + .gitignore | 1 + docs/.gitignore | 23 + docs/AboutUs.md | 6 +- docs/Configuration.md | 6 +- docs/DevOps.md | 13 +- docs/DeveloperGuide.md | 116 +- docs/Documentation.md | 28 +- docs/Gemfile | 10 - docs/Logging.md | 6 +- docs/SettingUp.md | 26 +- docs/Testing.md | 19 +- docs/UserGuide.md | 52 +- docs/_config.yml | 15 - docs/_data/projects.yml | 23 - docs/_includes/custom-head.html | 6 - docs/_includes/head.html | 12 - docs/_includes/header.html | 36 - docs/_layouts/alt-page.html | 14 - docs/_layouts/default.html | 18 - docs/_layouts/page.html | 14 - docs/_markbind/layouts/default.md | 66 + docs/_markbind/variables.json | 3 + docs/_markbind/variables.md | 4 + docs/_sass/minima/_base.scss | 295 - docs/_sass/minima/_layout.scss | 263 - docs/_sass/minima/custom-mixins.scss | 21 - docs/_sass/minima/custom-styles.scss | 34 - docs/_sass/minima/custom-variables.scss | 76 - docs/_sass/minima/initialize.scss | 51 - docs/_sass/minima/skins/classic.scss | 84 - docs/_sass/minima/skins/solarized-dark.scss | 4 - docs/_sass/minima/skins/solarized.scss | 133 - docs/assets/css/style.scss | 12 - docs/images/ArchitectureDiagram.png | Bin 19887 -> 0 bytes docs/images/ArchitectureSequenceDiagram.png | Bin 15175 -> 0 bytes docs/images/BetterModelClassDiagram.png | Bin 14116 -> 0 bytes docs/images/CommitActivityDiagram.png | Bin 16227 -> 0 bytes docs/images/ComponentManagers.png | Bin 17411 -> 0 bytes docs/images/DeleteSequenceDiagram.png | Bin 28142 -> 0 bytes docs/images/LogicClassDiagram.png | Bin 36769 -> 0 bytes docs/images/LogicStorageDIP.png | Bin 5808 -> 0 bytes docs/images/ModelClassDiagram.png | Bin 27204 -> 0 bytes docs/images/ParserClasses.png | Bin 28856 -> 0 bytes docs/images/StorageClassDiagram.png | Bin 29426 -> 0 bytes docs/images/UiClassDiagram.png | Bin 48363 -> 0 bytes docs/images/UndoRedoState0.png | Bin 6619 -> 0 bytes docs/images/UndoRedoState1.png | Bin 7454 -> 0 bytes docs/images/UndoRedoState2.png | Bin 7855 -> 0 bytes docs/images/UndoRedoState3.png | Bin 7588 -> 0 bytes docs/images/UndoRedoState4.png | Bin 7605 -> 0 bytes docs/images/UndoRedoState5.png | Bin 9427 -> 0 bytes docs/images/tracing/LogicSequenceDiagram.png | Bin 16688 -> 0 bytes docs/index.md | 6 +- docs/package-lock.json | 8587 ++++++++++++++++++ docs/package.json | 14 + docs/site.json | 29 + docs/stylesheets/main.css | 144 + docs/team/johndoe.md | 4 +- docs/tutorials/AddRemark.md | 49 +- docs/tutorials/RemovingFields.md | 23 +- docs/tutorials/TracingCode.md | 76 +- 62 files changed, 9136 insertions(+), 1311 deletions(-) create mode 100644 .github/workflows/docs.yml create mode 100644 docs/.gitignore delete mode 100644 docs/Gemfile delete mode 100644 docs/_config.yml delete mode 100644 docs/_data/projects.yml delete mode 100644 docs/_includes/custom-head.html delete mode 100644 docs/_includes/head.html delete mode 100644 docs/_includes/header.html delete mode 100644 docs/_layouts/alt-page.html delete mode 100644 docs/_layouts/default.html delete mode 100644 docs/_layouts/page.html create mode 100644 docs/_markbind/layouts/default.md create mode 100644 docs/_markbind/variables.json create mode 100644 docs/_markbind/variables.md delete mode 100644 docs/_sass/minima/_base.scss delete mode 100644 docs/_sass/minima/_layout.scss delete mode 100644 docs/_sass/minima/custom-mixins.scss delete mode 100644 docs/_sass/minima/custom-styles.scss delete mode 100644 docs/_sass/minima/custom-variables.scss delete mode 100644 docs/_sass/minima/initialize.scss delete mode 100644 docs/_sass/minima/skins/classic.scss delete mode 100644 docs/_sass/minima/skins/solarized-dark.scss delete mode 100644 docs/_sass/minima/skins/solarized.scss delete mode 100644 docs/assets/css/style.scss delete mode 100644 docs/images/ArchitectureDiagram.png delete mode 100644 docs/images/ArchitectureSequenceDiagram.png delete mode 100644 docs/images/BetterModelClassDiagram.png delete mode 100644 docs/images/CommitActivityDiagram.png delete mode 100644 docs/images/ComponentManagers.png delete mode 100644 docs/images/DeleteSequenceDiagram.png delete mode 100644 docs/images/LogicClassDiagram.png delete mode 100644 docs/images/LogicStorageDIP.png delete mode 100644 docs/images/ModelClassDiagram.png delete mode 100644 docs/images/ParserClasses.png delete mode 100644 docs/images/StorageClassDiagram.png delete mode 100644 docs/images/UiClassDiagram.png delete mode 100644 docs/images/UndoRedoState0.png delete mode 100644 docs/images/UndoRedoState1.png delete mode 100644 docs/images/UndoRedoState2.png delete mode 100644 docs/images/UndoRedoState3.png delete mode 100644 docs/images/UndoRedoState4.png delete mode 100644 docs/images/UndoRedoState5.png delete mode 100644 docs/images/tracing/LogicSequenceDiagram.png create mode 100644 docs/package-lock.json create mode 100644 docs/package.json create mode 100644 docs/site.json create mode 100644 docs/stylesheets/main.css diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 00000000000..57737a615fc --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,25 @@ +name: MarkBind Action + +on: + push: + branches: + - master + +jobs: + build_and_deploy: + runs-on: ubuntu-latest + steps: + - name: Install Graphviz + run: sudo apt-get install graphviz + - name: Install Java + uses: actions/setup-java@v3 + with: + java-version: '11' + distribution: 'temurin' + - name: Build & Deploy MarkBind site + uses: MarkBind/markbind-action@v2 + with: + token: ${{ secrets.GITHUB_TOKEN }} + rootDirectory: './docs' + baseUrl: '/addressbook-level3' # replace with your repo name + version: '^5.1.0' diff --git a/.gitignore b/.gitignore index 284c4ca7cd9..eab4c7db6a5 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ src/test/data/sandbox/ # MacOS custom attributes files created by Finder .DS_Store docs/_site/ +docs/_markbind/logs/ diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 00000000000..1748e487fbd --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,23 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* +_markbind/logs/ + +# Dependency directories +node_modules/ + +# Production build files (change if you output the build to a different directory) +_site/ + +# Env +.env +.env.local + +# IDE configs +.vscode/ +.idea/* +*.iml diff --git a/docs/AboutUs.md b/docs/AboutUs.md index 1c9514e966a..8cf4ab68e9e 100644 --- a/docs/AboutUs.md +++ b/docs/AboutUs.md @@ -1,8 +1,10 @@ --- -layout: page -title: About Us + layout: default.md + title: "About Us" --- +# About Us + We are a team based in the [School of Computing, National University of Singapore](http://www.comp.nus.edu.sg). You can reach us at the email `seer[at]comp.nus.edu.sg` diff --git a/docs/Configuration.md b/docs/Configuration.md index 13cf0faea16..32f6255f3b9 100644 --- a/docs/Configuration.md +++ b/docs/Configuration.md @@ -1,6 +1,8 @@ --- -layout: page -title: Configuration guide + layout: default.md + title: "Configuration guide" --- +# Configuration guide + Certain properties of the application can be controlled (e.g user preferences file location, logging level) through the configuration file (default: `config.json`). diff --git a/docs/DevOps.md b/docs/DevOps.md index d2fd91a6001..8228c845e86 100644 --- a/docs/DevOps.md +++ b/docs/DevOps.md @@ -1,12 +1,15 @@ --- -layout: page -title: DevOps guide + layout: default.md + title: "DevOps guide" + pageNav: 3 --- -* Table of Contents -{:toc} +# DevOps guide --------------------------------------------------------------------------------------------------------------------- + + + + ## Build automation diff --git a/docs/DeveloperGuide.md b/docs/DeveloperGuide.md index 1b56bb5d31b..519c64ef564 100644 --- a/docs/DeveloperGuide.md +++ b/docs/DeveloperGuide.md @@ -1,15 +1,19 @@ --- -layout: page -title: Developer Guide + layout: default.md + title: "Developer Guide" + pageNav: 3 --- -* Table of Contents -{:toc} + +# AB-3 Developer Guide + + + -------------------------------------------------------------------------------------------------------------------- ## **Acknowledgements** -* {list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well} +_{ list here sources of all reused/adapted ideas, code, documentation, and third-party libraries -- include links to the original source as well }_ -------------------------------------------------------------------------------------------------------------------- @@ -21,14 +25,9 @@ Refer to the guide [_Setting up and getting started_](SettingUp.md). ## **Design** -
- -:bulb: **Tip:** The `.puml` files used to create diagrams in this document `docs/diagrams` folder. Refer to the [_PlantUML Tutorial_ at se-edu/guides](https://se-education.org/guides/tutorials/plantUml.html) to learn how to create and edit diagrams. -
- ### Architecture - + The ***Architecture Diagram*** given above explains the high-level design of the App. @@ -53,7 +52,7 @@ The bulk of the app's work is done by the following four components: The *Sequence Diagram* below shows how the components interact with each other for the scenario where the user issues the command `delete 1`. - + Each of the four main components (also shown in the diagram above), @@ -62,7 +61,7 @@ Each of the four main components (also shown in the diagram above), For example, the `Logic` component defines its API in the `Logic.java` interface and implements its functionality using the `LogicManager.java` class which follows the `Logic` interface. Other components interact with a given component through its interface rather than the concrete class (reason: to prevent outside component's being coupled to the implementation of a component), as illustrated in the (partial) class diagram below. - + The sections below give more details of each component. @@ -70,7 +69,7 @@ The sections below give more details of each component. The **API** of this component is specified in [`Ui.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/ui/Ui.java) -![Structure of the UI Component](images/UiClassDiagram.png) + The UI consists of a `MainWindow` that is made up of parts e.g.`CommandBox`, `ResultDisplay`, `PersonListPanel`, `StatusBarFooter` etc. All these, including the `MainWindow`, inherit from the abstract `UiPart` class which captures the commonalities between classes that represent parts of the visible GUI. @@ -89,14 +88,16 @@ The `UI` component, Here's a (partial) class diagram of the `Logic` component: - + The sequence diagram below illustrates the interactions within the `Logic` component, taking `execute("delete 1")` API call as an example. -![Interactions Inside the Logic Component for the `delete 1` Command](images/DeleteSequenceDiagram.png) + + + -
:information_source: **Note:** The lifeline for `DeleteCommandParser` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline continues till the end of diagram. -
+**Note:** The lifeline for `DeleteCommandParser` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline continues till the end of diagram. +
How the `Logic` component works: @@ -108,7 +109,7 @@ How the `Logic` component works: Here are the other classes in `Logic` (omitted from the class diagram above) that are used for parsing a user command: - + How the parsing works: * When called upon to parse a user command, the `AddressBookParser` class creates an `XYZCommandParser` (`XYZ` is a placeholder for the specific command name e.g., `AddCommandParser`) which uses the other classes shown above to parse the user command and create a `XYZCommand` object (e.g., `AddCommand`) which the `AddressBookParser` returns back as a `Command` object. @@ -117,7 +118,7 @@ How the parsing works: ### Model component **API** : [`Model.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/model/Model.java) - + The `Model` component, @@ -127,18 +128,20 @@ The `Model` component, * stores a `UserPref` object that represents the user’s preferences. This is exposed to the outside as a `ReadOnlyUserPref` objects. * does not depend on any of the other three components (as the `Model` represents data entities of the domain, they should make sense on their own without depending on other components) -
:information_source: **Note:** An alternative (arguably, a more OOP) model is given below. It has a `Tag` list in the `AddressBook`, which `Person` references. This allows `AddressBook` to only require one `Tag` object per unique tag, instead of each `Person` needing their own `Tag` objects.
+ + +**Note:** An alternative (arguably, a more OOP) model is given below. It has a `Tag` list in the `AddressBook`, which `Person` references. This allows `AddressBook` to only require one `Tag` object per unique tag, instead of each `Person` needing their own `Tag` objects.
- + -
+ ### Storage component **API** : [`Storage.java`](https://github.com/se-edu/addressbook-level3/tree/master/src/main/java/seedu/address/storage/Storage.java) - + The `Storage` component, * can save both address book data and user preference data in JSON format, and read them back into corresponding objects. @@ -171,58 +174,67 @@ Given below is an example usage scenario and how the undo/redo mechanism behaves Step 1. The user launches the application for the first time. The `VersionedAddressBook` will be initialized with the initial address book state, and the `currentStatePointer` pointing to that single address book state. -![UndoRedoState0](images/UndoRedoState0.png) + Step 2. The user executes `delete 5` command to delete the 5th person in the address book. The `delete` command calls `Model#commitAddressBook()`, causing the modified state of the address book after the `delete 5` command executes to be saved in the `addressBookStateList`, and the `currentStatePointer` is shifted to the newly inserted address book state. -![UndoRedoState1](images/UndoRedoState1.png) + Step 3. The user executes `add n/David …​` to add a new person. The `add` command also calls `Model#commitAddressBook()`, causing another modified address book state to be saved into the `addressBookStateList`. -![UndoRedoState2](images/UndoRedoState2.png) + -
:information_source: **Note:** If a command fails its execution, it will not call `Model#commitAddressBook()`, so the address book state will not be saved into the `addressBookStateList`. + -
+**Note:** If a command fails its execution, it will not call `Model#commitAddressBook()`, so the address book state will not be saved into the `addressBookStateList`. + + Step 4. The user now decides that adding the person was a mistake, and decides to undo that action by executing the `undo` command. The `undo` command will call `Model#undoAddressBook()`, which will shift the `currentStatePointer` once to the left, pointing it to the previous address book state, and restores the address book to that state. -![UndoRedoState3](images/UndoRedoState3.png) + + + + -
:information_source: **Note:** If the `currentStatePointer` is at index 0, pointing to the initial AddressBook state, then there are no previous AddressBook states to restore. The `undo` command uses `Model#canUndoAddressBook()` to check if this is the case. If so, it will return an error to the user rather +**Note:** If the `currentStatePointer` is at index 0, pointing to the initial AddressBook state, then there are no previous AddressBook states to restore. The `undo` command uses `Model#canUndoAddressBook()` to check if this is the case. If so, it will return an error to the user rather than attempting to perform the undo. -
+
The following sequence diagram shows how an undo operation goes through the `Logic` component: -![UndoSequenceDiagram](images/UndoSequenceDiagram-Logic.png) + -
:information_source: **Note:** The lifeline for `UndoCommand` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline reaches the end of diagram. + -
+**Note:** The lifeline for `UndoCommand` should end at the destroy marker (X) but due to a limitation of PlantUML, the lifeline reaches the end of diagram. + + Similarly, how an undo operation goes through the `Model` component is shown below: -![UndoSequenceDiagram](images/UndoSequenceDiagram-Model.png) + The `redo` command does the opposite — it calls `Model#redoAddressBook()`, which shifts the `currentStatePointer` once to the right, pointing to the previously undone state, and restores the address book to that state. -
:information_source: **Note:** If the `currentStatePointer` is at index `addressBookStateList.size() - 1`, pointing to the latest address book state, then there are no undone AddressBook states to restore. The `redo` command uses `Model#canRedoAddressBook()` to check if this is the case. If so, it will return an error to the user rather than attempting to perform the redo. + + +**Note:** If the `currentStatePointer` is at index `addressBookStateList.size() - 1`, pointing to the latest address book state, then there are no undone AddressBook states to restore. The `redo` command uses `Model#canRedoAddressBook()` to check if this is the case. If so, it will return an error to the user rather than attempting to perform the redo. -
+ Step 5. The user then decides to execute the command `list`. Commands that do not modify the address book, such as `list`, will usually not call `Model#commitAddressBook()`, `Model#undoAddressBook()` or `Model#redoAddressBook()`. Thus, the `addressBookStateList` remains unchanged. -![UndoRedoState4](images/UndoRedoState4.png) + Step 6. The user executes `clear`, which calls `Model#commitAddressBook()`. Since the `currentStatePointer` is not pointing at the end of the `addressBookStateList`, all address book states after the `currentStatePointer` will be purged. Reason: It no longer makes sense to redo the `add n/David …​` command. This is the behavior that most modern desktop applications follow. -![UndoRedoState5](images/UndoRedoState5.png) + The following activity diagram summarizes what happens when a user executes a new command: - + #### Design considerations: @@ -275,14 +287,14 @@ _{Explain here how the data archiving feature will be implemented}_ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unlikely to have) - `*` -| Priority | As a …​ | I want to …​ | So that I can…​ | -| -------- | ------------------------------------------ | ------------------------------ | ---------------------------------------------------------------------- | -| `* * *` | new user | see usage instructions | refer to instructions when I forget how to use the App | -| `* * *` | user | add a new person | | -| `* * *` | user | delete a person | remove entries that I no longer need | -| `* * *` | user | find a person by name | locate details of persons without having to go through the entire list | -| `* *` | user | hide private contact details | minimize chance of someone else seeing them by accident | -| `*` | user with many persons in the address book | sort persons by name | locate a person easily | +| Priority | As a …​ | I want to …​ | So that I can…​ | +|----------|--------------------------------------------|------------------------------|------------------------------------------------------------------------| +| `* * *` | new user | see usage instructions | refer to instructions when I forget how to use the App | +| `* * *` | user | add a new person | | +| `* * *` | user | delete a person | remove entries that I no longer need | +| `* * *` | user | find a person by name | locate details of persons without having to go through the entire list | +| `* *` | user | hide private contact details | minimize chance of someone else seeing them by accident | +| `*` | user with many persons in the address book | sort persons by name | locate a person easily | *{More to be added}* @@ -334,10 +346,12 @@ Priorities: High (must have) - `* * *`, Medium (nice to have) - `* *`, Low (unli Given below are instructions to test the app manually. -
:information_source: **Note:** These instructions only provide a starting point for testers to work on; + + +**Note:** These instructions only provide a starting point for testers to work on; testers are expected to do more *exploratory* testing. -
+ ### Launch and shutdown diff --git a/docs/Documentation.md b/docs/Documentation.md index 3e68ea364e7..082e652d947 100644 --- a/docs/Documentation.md +++ b/docs/Documentation.md @@ -1,29 +1,21 @@ --- -layout: page -title: Documentation guide + layout: default.md + title: "Documentation guide" + pageNav: 3 --- -**Setting up and maintaining the project website:** - -* We use [**Jekyll**](https://jekyllrb.com/) to manage documentation. -* The `docs/` folder is used for documentation. -* To learn how set it up and maintain the project website, follow the guide [_[se-edu/guides] **Using Jekyll for project documentation**_](https://se-education.org/guides/tutorials/jekyll.html). -* Note these points when adapting the documentation to a different project/product: - * The 'Site-wide settings' section of the page linked above has information on how to update site-wide elements such as the top navigation bar. - * :bulb: In addition to updating content files, you might have to update the config files `docs\_config.yml` and `docs\_sass\minima\_base.scss` (which contains a reference to `AB-3` that comes into play when converting documentation pages to PDF format). -* If you are using Intellij for editing documentation files, you can consider enabling 'soft wrapping' for `*.md` files, as explained in [_[se-edu/guides] **Intellij IDEA: Useful settings**_](https://se-education.org/guides/tutorials/intellijUsefulSettings.html#enabling-soft-wrapping) +# Documentation Guide +* We use [**MarkBind**](https://markbind.org/) to manage documentation. +* The `docs/` folder contains the source files for the documentation website. +* To learn how set it up and maintain the project website, follow the guide [[se-edu/guides] Working with Forked MarkBind sites](https://se-education.org/guides/tutorials/markbind-forked-sites.html) for project documentation. **Style guidance:** * Follow the [**_Google developer documentation style guide_**](https://developers.google.com/style). +* Also relevant is the [_se-edu/guides **Markdown coding standard**_](https://se-education.org/guides/conventions/markdown.html). -* Also relevant is the [_[se-edu/guides] **Markdown coding standard**_](https://se-education.org/guides/conventions/markdown.html) - -**Diagrams:** - -* See the [_[se-edu/guides] **Using PlantUML**_](https://se-education.org/guides/tutorials/plantUml.html) -**Converting a document to the PDF format:** +**Converting to PDF** -* See the guide [_[se-edu/guides] **Saving web documents as PDF files**_](https://se-education.org/guides/tutorials/savingPdf.html) +* See the guide [_se-edu/guides **Saving web documents as PDF files**_](https://se-education.org/guides/tutorials/savingPdf.html). diff --git a/docs/Gemfile b/docs/Gemfile deleted file mode 100644 index c8385d85874..00000000000 --- a/docs/Gemfile +++ /dev/null @@ -1,10 +0,0 @@ -# frozen_string_literal: true - -source "https://rubygems.org" - -git_source(:github) {|repo_name| "https://github.com/#{repo_name}" } - -gem 'jekyll' -gem 'github-pages', group: :jekyll_plugins -gem 'wdm', '~> 0.1.0' if Gem.win_platform? -gem 'webrick' diff --git a/docs/Logging.md b/docs/Logging.md index 5e4fb9bc217..589644ad5c6 100644 --- a/docs/Logging.md +++ b/docs/Logging.md @@ -1,8 +1,10 @@ --- -layout: page -title: Logging guide + layout: default.md + title: "Logging guide" --- +# Logging guide + * We are using `java.util.logging` package for logging. * The `LogsCenter` class is used to manage the logging levels and logging destinations. * The `Logger` for a class can be obtained using `LogsCenter.getLogger(Class)` which will log messages according to the specified logging level. diff --git a/docs/SettingUp.md b/docs/SettingUp.md index 275445bd551..03df0295bd2 100644 --- a/docs/SettingUp.md +++ b/docs/SettingUp.md @@ -1,27 +1,32 @@ --- -layout: page -title: Setting up and getting started + layout: default.md + title: "Setting up and getting started" + pageNav: 3 --- -* Table of Contents -{:toc} +# Setting up and getting started + + -------------------------------------------------------------------------------------------------------------------- ## Setting up the project in your computer -
:exclamation: **Caution:** + +**Caution:** Follow the steps in the following guide precisely. Things will not work out if you deviate in some steps. -
+ First, **fork** this repo, and **clone** the fork into your computer. If you plan to use Intellij IDEA (highly recommended): 1. **Configure the JDK**: Follow the guide [_[se-edu/guides] IDEA: Configuring the JDK_](https://se-education.org/guides/tutorials/intellijJdk.html) to to ensure Intellij is configured to use **JDK 11**. -1. **Import the project as a Gradle project**: Follow the guide [_[se-edu/guides] IDEA: Importing a Gradle project_](https://se-education.org/guides/tutorials/intellijImportGradleProject.html) to import the project into IDEA.
- :exclamation: Note: Importing a Gradle project is slightly different from importing a normal Java project. +1. **Import the project as a Gradle project**: Follow the guide [_[se-edu/guides] IDEA: Importing a Gradle project_](https://se-education.org/guides/tutorials/intellijImportGradleProject.html) to import the project into IDEA. + + Note: Importing a Gradle project is slightly different from importing a normal Java project. + 1. **Verify the setup**: 1. Run the `seedu.address.Main` and try a few commands. 1. [Run the tests](Testing.md) to ensure they all pass. @@ -34,10 +39,11 @@ If you plan to use Intellij IDEA (highly recommended): If using IDEA, follow the guide [_[se-edu/guides] IDEA: Configuring the code style_](https://se-education.org/guides/tutorials/intellijCodeStyle.html) to set up IDEA's coding style to match ours. -
:bulb: **Tip:** + + **Tip:** Optionally, you can follow the guide [_[se-edu/guides] Using Checkstyle_](https://se-education.org/guides/tutorials/checkstyle.html) to find how to use the CheckStyle within IDEA e.g., to report problems _as_ you write code. -
+ 1. **Set up CI** diff --git a/docs/Testing.md b/docs/Testing.md index 8a99e82438a..78ddc57e670 100644 --- a/docs/Testing.md +++ b/docs/Testing.md @@ -1,12 +1,15 @@ --- -layout: page -title: Testing guide + layout: default.md + title: "Testing guide" + pageNav: 3 --- -* Table of Contents -{:toc} +# Testing guide --------------------------------------------------------------------------------------------------------------------- + + + + ## Running tests @@ -19,8 +22,10 @@ There are two ways to run tests. * **Method 2: Using Gradle** * Open a console and run the command `gradlew clean test` (Mac/Linux: `./gradlew clean test`) -
:link: **Link**: Read [this Gradle Tutorial from the se-edu/guides](https://se-education.org/guides/tutorials/gradle.html) to learn more about using Gradle. -
+ + +**Link**: Read [this Gradle Tutorial from the se-edu/guides](https://se-education.org/guides/tutorials/gradle.html) to learn more about using Gradle. + -------------------------------------------------------------------------------------------------------------------- diff --git a/docs/UserGuide.md b/docs/UserGuide.md index 7abd1984218..5123a969436 100644 --- a/docs/UserGuide.md +++ b/docs/UserGuide.md @@ -1,12 +1,15 @@ --- -layout: page -title: User Guide + layout: default.md + title: "User Guide" + pageNav: 3 --- -AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized for use via a Command Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, AB3 can get your contact management tasks done faster than traditional GUI apps. +# AB-3 User Guide -* Table of Contents -{:toc} +AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized for use via a Line Interface** (CLI) while still having the benefits of a Graphical User Interface (GUI). If you can type fast, AB3 can get your contact management tasks done faster than traditional GUI apps. + + + -------------------------------------------------------------------------------------------------------------------- @@ -41,9 +44,9 @@ AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized fo ## Features -
+ -**:information_source: Notes about the command format:**
+**Notes about the command format:**
* Words in `UPPER_CASE` are the parameters to be supplied by the user.
e.g. in `add n/NAME`, `NAME` is a parameter which can be used as `add n/John Doe`. @@ -61,7 +64,7 @@ AddressBook Level 3 (AB3) is a **desktop app for managing contacts, optimized fo e.g. if the command specifies `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. -
+ ### Viewing help : `help` @@ -78,9 +81,10 @@ Adds a person to the address book. Format: `add n/NAME p/PHONE_NUMBER e/EMAIL a/ADDRESS [t/TAG]…​` -
:bulb: **Tip:** -A person can have any number of tags (including 0) -
+ + +**Tip:** A person can have any number of tags (including 0) + Examples: * `add n/John Doe p/98765432 e/johnd@example.com a/John street, block 123, #01-01` @@ -161,10 +165,12 @@ AddressBook data are saved in the hard disk automatically after any command that 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, 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. -
+ + +**Caution:** +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 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]` @@ -187,12 +193,12 @@ _Details coming soon ..._ ## Command summary -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` +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` +**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/_config.yml b/docs/_config.yml deleted file mode 100644 index 6bd245d8f4e..00000000000 --- a/docs/_config.yml +++ /dev/null @@ -1,15 +0,0 @@ -title: "AB-3" -theme: minima - -header_pages: - - UserGuide.md - - DeveloperGuide.md - - AboutUs.md - -markdown: kramdown - -repository: "se-edu/addressbook-level3" -github_icon: "images/github-icon.png" - -plugins: - - jemoji diff --git a/docs/_data/projects.yml b/docs/_data/projects.yml deleted file mode 100644 index 8f3e50cb601..00000000000 --- a/docs/_data/projects.yml +++ /dev/null @@ -1,23 +0,0 @@ -- name: "AB-1" - url: https://se-edu.github.io/addressbook-level1 - -- name: "AB-2" - url: https://se-edu.github.io/addressbook-level2 - -- name: "AB-3" - url: https://se-edu.github.io/addressbook-level3 - -- name: "AB-4" - url: https://se-edu.github.io/addressbook-level4 - -- name: "Duke" - url: https://se-edu.github.io/duke - -- name: "Collate" - url: https://se-edu.github.io/collate - -- name: "Book" - url: https://se-edu.github.io/se-book - -- name: "Resources" - url: https://se-edu.github.io/resources diff --git a/docs/_includes/custom-head.html b/docs/_includes/custom-head.html deleted file mode 100644 index 8559a67ffad..00000000000 --- a/docs/_includes/custom-head.html +++ /dev/null @@ -1,6 +0,0 @@ -{% comment %} - Placeholder to allow defining custom head, in principle, you can add anything here, e.g. favicons: - - 1. Head over to https://realfavicongenerator.net/ to add your own favicons. - 2. Customize default _includes/custom-head.html in your source directory and insert the given code snippet. -{% endcomment %} diff --git a/docs/_includes/head.html b/docs/_includes/head.html deleted file mode 100644 index 83ac5326933..00000000000 --- a/docs/_includes/head.html +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - {%- include custom-head.html -%} - - {{page.title}} - - diff --git a/docs/_includes/header.html b/docs/_includes/header.html deleted file mode 100644 index 33badcd4f99..00000000000 --- a/docs/_includes/header.html +++ /dev/null @@ -1,36 +0,0 @@ - diff --git a/docs/_layouts/alt-page.html b/docs/_layouts/alt-page.html deleted file mode 100644 index 5dbc6ef245f..00000000000 --- a/docs/_layouts/alt-page.html +++ /dev/null @@ -1,14 +0,0 @@ ---- -layout: default ---- -
- -
-

{{ page.alt_title | escape }}

-
- -
- {{ content }} -
- -
diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html deleted file mode 100644 index e092cd572e0..00000000000 --- a/docs/_layouts/default.html +++ /dev/null @@ -1,18 +0,0 @@ - - - - {%- include head.html -%} - - - - {%- include header.html -%} - -
-
- {{ content }} -
-
- - - - diff --git a/docs/_layouts/page.html b/docs/_layouts/page.html deleted file mode 100644 index 01e4b2a93b8..00000000000 --- a/docs/_layouts/page.html +++ /dev/null @@ -1,14 +0,0 @@ ---- -layout: default ---- -
- -
-

{{ page.title | escape }}

-
- -
- {{ content }} -
- -
diff --git a/docs/_markbind/layouts/default.md b/docs/_markbind/layouts/default.md new file mode 100644 index 00000000000..7348aace92c --- /dev/null +++ b/docs/_markbind/layouts/default.md @@ -0,0 +1,66 @@ + + + + +
+ + AB-3 +
  • User Guide
  • +
  • Developer Guide
  • +
  • About Us
  • +
  • :fab-github: +
  • +
  • + +
  • +
    +
    + +
    + +
    + {{ content }} +
    + + +
    + +
    + +
    + [**Powered by** {{MarkBind}}, generated on {{timestamp}}] +
    +
    diff --git a/docs/_markbind/variables.json b/docs/_markbind/variables.json new file mode 100644 index 00000000000..9d89eb0358b --- /dev/null +++ b/docs/_markbind/variables.json @@ -0,0 +1,3 @@ +{ + "jsonVariableExample": "Your variables can be defined here as well" +} diff --git a/docs/_markbind/variables.md b/docs/_markbind/variables.md new file mode 100644 index 00000000000..89ae5318fa4 --- /dev/null +++ b/docs/_markbind/variables.md @@ -0,0 +1,4 @@ + +To inject this HTML segment in your markbind files, use {{ example }} where you want to place it. +More generally, surround the segment's id with double curly braces. + diff --git a/docs/_sass/minima/_base.scss b/docs/_sass/minima/_base.scss deleted file mode 100644 index 0d3f6e80ced..00000000000 --- a/docs/_sass/minima/_base.scss +++ /dev/null @@ -1,295 +0,0 @@ -html { - font-size: $base-font-size; -} - -/** - * Reset some basic elements - */ -body, h1, h2, h3, h4, h5, h6, -p, blockquote, pre, hr, -dl, dd, ol, ul, figure { - margin: 0; - padding: 0; - -} - - - -/** - * Basic styling - */ -body { - font: $base-font-weight #{$base-font-size}/#{$base-line-height} $base-font-family; - color: $text-color; - background-color: $background-color; - -webkit-text-size-adjust: 100%; - -webkit-font-feature-settings: "kern" 1; - -moz-font-feature-settings: "kern" 1; - -o-font-feature-settings: "kern" 1; - font-feature-settings: "kern" 1; - font-kerning: normal; - display: flex; - min-height: 100vh; - flex-direction: column; - overflow-wrap: break-word; -} - - - -/** - * Set `margin-bottom` to maintain vertical rhythm - */ -h1, h2, h3, h4, h5, h6, -p, blockquote, pre, -ul, ol, dl, figure, -%vertical-rhythm { - margin-bottom: $spacing-unit / 2; -} - -hr { - margin-top: $spacing-unit; - margin-bottom: $spacing-unit; -} - -/** - * `main` element - */ -main { - display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */ -} - - - -/** - * Images - */ -img { - max-width: 100%; - vertical-align: middle; -} - - - -/** - * Figures - */ -figure > img { - display: block; -} - -figcaption { - font-size: $small-font-size; -} - - - -/** - * Lists - */ -ul, ol { - margin-left: $spacing-unit; -} - -li { - > ul, - > ol { - margin-bottom: 0; - } -} - - - -/** - * Headings - */ -h1, h2, h3, h4, h5, h6 { - font-weight: $base-font-weight; -} - - - -/** - * Links - */ -a { - color: $link-base-color; - text-decoration: none; - - &:visited { - color: $link-visited-color; - } - - &:hover { - color: $text-color; - text-decoration: underline; - } - - .social-media-list &:hover { - text-decoration: none; - - .username { - text-decoration: underline; - } - } -} - - -/** - * Blockquotes - */ -blockquote { - color: $brand-color; - border-left: 4px solid $brand-color-light; - padding-left: $spacing-unit / 2; - @include relative-font-size(1.125); - font-style: italic; - - > :last-child { - margin-bottom: 0; - } - - i, em { - font-style: normal; - } -} - - - -/** - * Code formatting - */ -pre, -code { - font-family: $code-font-family; - font-size: 0.9375em; - border: 1px solid $brand-color-light; - border-radius: 3px; - background-color: $code-background-color; -} - -code { - padding: 1px 5px; -} - -pre { - padding: 8px 12px; - overflow-x: auto; - - > code { - border: 0; - padding-right: 0; - padding-left: 0; - } -} - -.highlight { - border-radius: 3px; - background: $code-background-color; - @extend %vertical-rhythm; - - .highlighter-rouge & { - background: $code-background-color; - } -} - - - -/** - * Wrapper - */ -.wrapper { - max-width: calc(#{$content-width} - (#{$spacing-unit})); - margin-right: auto; - margin-left: auto; - padding-right: $spacing-unit / 2; - padding-left: $spacing-unit / 2; - @extend %clearfix; - - @media screen and (min-width: $on-large) { - max-width: calc(#{$content-width} - (#{$spacing-unit} * 2)); - padding-right: $spacing-unit; - padding-left: $spacing-unit; - } -} - - - -/** - * Clearfix - */ -%clearfix:after { - content: ""; - display: table; - clear: both; -} - - - -/** - * Icons - */ - -.orange { - color: #f66a0a; -} - -.grey { - color: #828282; -} - -/** - * Tables - */ -table { - margin-bottom: $spacing-unit; - width: 100%; - text-align: $table-text-align; - color: $table-text-color; - border-collapse: collapse; - border: 1px solid $table-border-color; - tr { - &:nth-child(even) { - background-color: $table-zebra-color; - } - } - th, td { - padding: ($spacing-unit / 3) ($spacing-unit / 2); - } - th { - background-color: $table-header-bg-color; - border: 1px solid $table-header-border; - } - td { - border: 1px solid $table-border-color; - } - - @include media-query($on-laptop) { - display: block; - overflow-x: auto; - -webkit-overflow-scrolling: touch; - -ms-overflow-style: -ms-autohiding-scrollbar; - } -} - -@media print { - /** - * Prevents page break from cutting through content when printing - */ - body { - display: block; - } - /** - * Replaces the top navigation menu with the project name when printing - */ - .site-header .wrapper { - display: none; - } - .site-header { - text-align: center; - } - .site-header:before { - content: "AB-3"; - font-size: 32px; - } -} - diff --git a/docs/_sass/minima/_layout.scss b/docs/_sass/minima/_layout.scss deleted file mode 100644 index ca99f981701..00000000000 --- a/docs/_sass/minima/_layout.scss +++ /dev/null @@ -1,263 +0,0 @@ -/** - * Site header - */ -.site-header { - border-top: 5px solid $brand-color-dark; - border-bottom: 1px solid $brand-color-light; - min-height: $spacing-unit * 1.865; - line-height: $base-line-height * $base-font-size * 2.25; - - // Positioning context for the mobile navigation icon - position: relative; -} - -.site-title { - @include relative-font-size(1.625); - font-weight: 300; - letter-spacing: -1px; - margin-bottom: 0; - float: left; - - @include media-query($on-palm) { - padding-right: 45px; - } - - &, - &:visited { - color: $brand-color-dark; - } -} - -.site-nav { - position: absolute; - top: 9px; - right: $spacing-unit / 2; - background-color: $background-color; - border: 1px solid $brand-color-light; - border-radius: 5px; - text-align: right; - - .nav-trigger { - display: none; - } - - .menu-icon { - float: right; - width: 36px; - height: 26px; - line-height: 0; - padding-top: 10px; - text-align: center; - - > svg path { - fill: $brand-color-dark; - } - } - - label[for="nav-trigger"] { - display: block; - float: right; - width: 36px; - height: 36px; - z-index: 2; - cursor: pointer; - } - - input ~ .trigger { - clear: both; - display: none; - } - - input:checked ~ .trigger { - display: block; - padding-bottom: 5px; - } - - .page-link { - color: $text-color; - line-height: $base-line-height; - display: block; - padding: 5px 10px; - - // Gaps between nav items, but not on the last one - &:not(:last-child) { - margin-right: 0; - } - margin-left: 20px; - } - - @media screen and (min-width: $on-medium) { - position: static; - float: right; - border: none; - background-color: inherit; - - label[for="nav-trigger"] { - display: none; - } - - .menu-icon { - display: none; - } - - input ~ .trigger { - display: block; - } - - .page-link { - display: inline; - padding: 0; - - &:not(:last-child) { - margin-right: 20px; - } - margin-left: auto; - } - } -} - - - -/** - * Page content - */ -.page-content { - padding: $spacing-unit 0; - flex: 1 0 auto; -} - -.page-heading { - @include relative-font-size(2); -} - -.post-list-heading { - @include relative-font-size(1.75); -} - -.post-list { - margin-left: 0; - list-style: none; - - > li { - margin-bottom: $spacing-unit; - } -} - -.post-meta { - font-size: $small-font-size; - color: $brand-color; -} - -.post-link { - display: block; - @include relative-font-size(1.5); -} - - - -/** - * Posts - */ -.post-header { - margin-bottom: $spacing-unit; -} - -.post-title, -.post-content h1 { - @include relative-font-size(2.625); - letter-spacing: -1px; - line-height: 1.15; - - @media screen and (min-width: $on-large) { - @include relative-font-size(2.625); - } -} - -.post-content { - margin-bottom: $spacing-unit; - - h1, h2, h3 { margin-top: $spacing-unit * 2 } - h4, h5, h6 { margin-top: $spacing-unit } - - h2 { - @include relative-font-size(1.75); - - @media screen and (min-width: $on-large) { - @include relative-font-size(2); - } - } - - h3 { - @include relative-font-size(1.375); - - @media screen and (min-width: $on-large) { - @include relative-font-size(1.625); - } - } - - h4 { - @include relative-font-size(1.25); - } - - h5 { - @include relative-font-size(1.125); - } - h6 { - @include relative-font-size(1.0625); - } -} - - -.social-media-list { - display: table; - margin: 0 auto; - li { - float: left; - margin: 5px 10px 5px 0; - &:last-of-type { margin-right: 0 } - a { - display: block; - padding: $spacing-unit / 4; - border: 1px solid $brand-color-light; - &:hover { border-color: darken($brand-color-light, 10%) } - } - } -} - - - -/** - * Pagination navbar - */ -.pagination { - margin-bottom: $spacing-unit; - @extend .social-media-list; - li { - a, div { - min-width: 41px; - text-align: center; - box-sizing: border-box; - } - div { - display: block; - padding: $spacing-unit / 4; - border: 1px solid transparent; - - &.pager-edge { - color: darken($brand-color-light, 5%); - border: 1px dashed; - } - } - } -} - - - -/** - * Grid helpers - */ -@media screen and (min-width: $on-large) { - .one-half { - width: calc(50% - (#{$spacing-unit} / 2)); - } -} diff --git a/docs/_sass/minima/custom-mixins.scss b/docs/_sass/minima/custom-mixins.scss deleted file mode 100644 index 9d4bedc1c67..00000000000 --- a/docs/_sass/minima/custom-mixins.scss +++ /dev/null @@ -1,21 +0,0 @@ -@mixin alert-variant($background, $border, $color) { - color: $color; - @include gradient-bg($background); - border-color: $border; - - .alert-link { - color: darken($color, 10%); - } -} - -@mixin gradient-bg($color, $foreground: null) { - @if $enable-gradients { - @if $foreground { - background-image: $foreground, linear-gradient(180deg, mix($body-bg, $color, 15%), $color); - } @else { - background-image: linear-gradient(180deg, mix($body-bg, $color, 15%), $color); - } - } @else { - background-color: $color; - } -} diff --git a/docs/_sass/minima/custom-styles.scss b/docs/_sass/minima/custom-styles.scss deleted file mode 100644 index 56b5d56b430..00000000000 --- a/docs/_sass/minima/custom-styles.scss +++ /dev/null @@ -1,34 +0,0 @@ -// Placeholder to allow defining custom styles that override everything else. -// (Use `_sass/minima/custom-variables.scss` to override variable defaults) -h2, h3, h4, h5, h6 { - color: #e46c0a; -} - -// Bootstrap style alerts -.alert { - position: relative; - padding: $alert-padding-y $alert-padding-x; - margin-bottom: $alert-margin-bottom; - border: $alert-border-width solid transparent; - border-radius : $alert-border-radius; -} - -// Headings for larger alerts -.alert-heading { - // Specified to prevent conflicts of changing $headings-color - color: inherit; -} - -// Provide class for links that match alerts -.alert-link { - font-weight: $alert-link-font-weight; -} - -// Generate contextual modifier classes for colorizing the alert. - -@each $color, $value in $theme-colors { - .alert-#{$color} { - @include alert-variant(color-level($value, $alert-bg-level), color-level($value, $alert-border-level), color-level($value, $alert-color-level)); - } -} - diff --git a/docs/_sass/minima/custom-variables.scss b/docs/_sass/minima/custom-variables.scss deleted file mode 100644 index a128970cbe7..00000000000 --- a/docs/_sass/minima/custom-variables.scss +++ /dev/null @@ -1,76 +0,0 @@ -// Placeholder to allow overriding predefined variables smoothly. - -//Bootstrap's default -$white: #fff !default; -$gray-100: #f8f9fa !default; -$gray-200: #e9ecef !default; -$gray-300: #dee2e6 !default; -$gray-400: #ced4da !default; -$gray-500: #adb5bd !default; -$gray-600: #6c757d !default; -$gray-700: #495057 !default; -$gray-800: #343a40 !default; -$gray-900: #212529 !default; -$black: #000 !default; -$blue: #0d6efd !default; -$indigo: #6610f2 !default; -$purple: #6f42c1 !default; -$pink: #d63384 !default; -$red: #dc3545 !default; -$orange: #fd7e14 !default; -$yellow: #ffc107 !default; -$green: #28a745 !default; -$teal: #20c997 !default; -$cyan: #17a2b8 !default; - -$primary: $blue !default; -$secondary: $gray-600 !default; -$success: $green !default; -$info: $cyan !default; -$warning: $yellow !default; -$danger: $red !default; -$light: $gray-100 !default; -$dark: $gray-800 !default; - -$theme-colors: ( - "primary": $primary, - "secondary": $secondary, - "success": $success, - "info": $info, - "warning": $warning, - "danger": $danger, - "light": $light, - "dark": $dark -) !default; - -$theme-color-interval: 8% !default; - -$body-bg: $white !default; -$body-color: $gray-900 !default; -$body-text-align: null !default; - -$enable-gradients: true; - -// Define alert colors, border radius, and padding. -$border-radius: .25rem !default; -$border-width: 1px !default; -$font-weight-bold: 700 !default; - -$alert-padding-y: .75rem !default; -$alert-padding-x: 1.25rem !default; -$alert-margin-bottom: 1rem !default; -$alert-border-radius: $border-radius !default; -$alert-link-font-weight: $font-weight-bold !default; -$alert-border-width: $border-width !default; - -$alert-bg-level: -10 !default; -$alert-border-level: -9 !default; -$alert-color-level: 6 !default; - -// Request a color level -// scss-docs-start color-level -@function color-level($color: $primary, $level: 0) { - $color-base: if($level > 0, $black, $white); - $level: abs($level); - @return mix($color-base, $color, $level * $theme-color-interval); -} diff --git a/docs/_sass/minima/initialize.scss b/docs/_sass/minima/initialize.scss deleted file mode 100644 index 30288811151..00000000000 --- a/docs/_sass/minima/initialize.scss +++ /dev/null @@ -1,51 +0,0 @@ -@charset "utf-8"; - -// Define defaults for each variable. - -$base-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Segoe UI Symbol", "Segoe UI Emoji", "Apple Color Emoji", Roboto, Helvetica, Arial, sans-serif !default; -$code-font-family: "Menlo", "Inconsolata", "Consolas", "Roboto Mono", "Ubuntu Mono", "Liberation Mono", "Courier New", monospace; -$base-font-size: 16px !default; -$base-font-weight: 400 !default; -$small-font-size: $base-font-size * 0.875 !default; -$base-line-height: 1.5 !default; - -$spacing-unit: 30px !default; - -$table-text-align: left !default; - -// Width of the content area -$content-width: 800px !default; - -$on-palm: 600px !default; -$on-laptop: 800px !default; - -$on-medium: $on-palm !default; -$on-large: $on-laptop !default; - -// Use media queries like this: -// @include media-query($on-palm) { -// .wrapper { -// padding-right: $spacing-unit / 2; -// padding-left: $spacing-unit / 2; -// } -// } -// Notice the following mixin uses max-width, in a deprecated, desktop-first -// approach, whereas media queries used elsewhere now use min-width. -@mixin media-query($device) { - @media screen and (max-width: $device) { - @content; - } -} - -@mixin relative-font-size($ratio) { - font-size: #{$ratio}rem; -} - -// Import pre-styling-overrides hook and style-partials. -@import - "minima/custom-variables", // Hook to override predefined variables. - "minima/custom-mixins", // Hook to add custom mixins. - "minima/base", // Defines element resets. - "minima/layout", // Defines structure and style based on CSS selectors. - "minima/custom-styles" // Hook to override existing styles. -; diff --git a/docs/_sass/minima/skins/classic.scss b/docs/_sass/minima/skins/classic.scss deleted file mode 100644 index 37ea9c5244c..00000000000 --- a/docs/_sass/minima/skins/classic.scss +++ /dev/null @@ -1,84 +0,0 @@ -@charset "utf-8"; - -$brand-color: #828282 !default; -$brand-color-light: lighten($brand-color, 40%) !default; -$brand-color-dark: darken($brand-color, 25%) !default; - -$text-color: #111 !default; -$background-color: #fdfdfd !default; -$code-background-color: #eef !default; - -$link-base-color: #2a7ae2 !default; -$link-visited-color: darken($link-base-color, 15%) !default; - -$table-text-color: lighten($text-color, 18%) !default; -$table-zebra-color: lighten($brand-color, 46%) !default; -$table-header-bg-color: lighten($brand-color, 43%) !default; -$table-header-border: lighten($brand-color, 36%) !default; -$table-border-color: $brand-color-light !default; - - -// Syntax highlighting styles should be adjusted appropriately for every "skin" -// ---------------------------------------------------------------------------- - -.highlight { - .c { color: #998; font-style: italic } // Comment - .err { color: #a61717; background-color: #e3d2d2 } // Error - .k { font-weight: bold } // Keyword - .o { font-weight: bold } // Operator - .cm { color: #998; font-style: italic } // Comment.Multiline - .cp { color: #999; font-weight: bold } // Comment.Preproc - .c1 { color: #998; font-style: italic } // Comment.Single - .cs { color: #999; font-weight: bold; font-style: italic } // Comment.Special - .gd { color: #000; background-color: #fdd } // Generic.Deleted - .gd .x { color: #000; background-color: #faa } // Generic.Deleted.Specific - .ge { font-style: italic } // Generic.Emph - .gr { color: #a00 } // Generic.Error - .gh { color: #999 } // Generic.Heading - .gi { color: #000; background-color: #dfd } // Generic.Inserted - .gi .x { color: #000; background-color: #afa } // Generic.Inserted.Specific - .go { color: #888 } // Generic.Output - .gp { color: #555 } // Generic.Prompt - .gs { font-weight: bold } // Generic.Strong - .gu { color: #aaa } // Generic.Subheading - .gt { color: #a00 } // Generic.Traceback - .kc { font-weight: bold } // Keyword.Constant - .kd { font-weight: bold } // Keyword.Declaration - .kp { font-weight: bold } // Keyword.Pseudo - .kr { font-weight: bold } // Keyword.Reserved - .kt { color: #458; font-weight: bold } // Keyword.Type - .m { color: #099 } // Literal.Number - .s { color: #d14 } // Literal.String - .na { color: #008080 } // Name.Attribute - .nb { color: #0086B3 } // Name.Builtin - .nc { color: #458; font-weight: bold } // Name.Class - .no { color: #008080 } // Name.Constant - .ni { color: #800080 } // Name.Entity - .ne { color: #900; font-weight: bold } // Name.Exception - .nf { color: #900; font-weight: bold } // Name.Function - .nn { color: #555 } // Name.Namespace - .nt { color: #000080 } // Name.Tag - .nv { color: #008080 } // Name.Variable - .ow { font-weight: bold } // Operator.Word - .w { color: #bbb } // Text.Whitespace - .mf { color: #099 } // Literal.Number.Float - .mh { color: #099 } // Literal.Number.Hex - .mi { color: #099 } // Literal.Number.Integer - .mo { color: #099 } // Literal.Number.Oct - .sb { color: #d14 } // Literal.String.Backtick - .sc { color: #d14 } // Literal.String.Char - .sd { color: #d14 } // Literal.String.Doc - .s2 { color: #d14 } // Literal.String.Double - .se { color: #d14 } // Literal.String.Escape - .sh { color: #d14 } // Literal.String.Heredoc - .si { color: #d14 } // Literal.String.Interpol - .sx { color: #d14 } // Literal.String.Other - .sr { color: #009926 } // Literal.String.Regex - .s1 { color: #d14 } // Literal.String.Single - .ss { color: #990073 } // Literal.String.Symbol - .bp { color: #999 } // Name.Builtin.Pseudo - .vc { color: #008080 } // Name.Variable.Class - .vg { color: #008080 } // Name.Variable.Global - .vi { color: #008080 } // Name.Variable.Instance - .il { color: #099 } // Literal.Number.Integer.Long -} diff --git a/docs/_sass/minima/skins/solarized-dark.scss b/docs/_sass/minima/skins/solarized-dark.scss deleted file mode 100644 index f3b1f387de0..00000000000 --- a/docs/_sass/minima/skins/solarized-dark.scss +++ /dev/null @@ -1,4 +0,0 @@ -@charset "utf-8"; - -$sol-is-dark: true; -@import "minima/skins/solarized"; diff --git a/docs/_sass/minima/skins/solarized.scss b/docs/_sass/minima/skins/solarized.scss deleted file mode 100644 index 982bd7f2990..00000000000 --- a/docs/_sass/minima/skins/solarized.scss +++ /dev/null @@ -1,133 +0,0 @@ -@charset "utf-8"; - -// Solarized skin -// ============== -// Created by Sander Voerman using the Solarized -// color scheme by Ethan Schoonover . - -// This style sheet implements two options for the minima.skin setting: -// "solarized" for light mode and "solarized-dark" for dark mode. -$sol-is-dark: false !default; - - -// Color scheme -// ------------ -// The inline comments show the canonical L*a*b values for each color. - -$sol-base03: #002b36; // 15 -12 -12 -$sol-base02: #073642; // 20 -12 -12 -$sol-base01: #586e75; // 45 -07 -07 -$sol-base00: #657b83; // 50 -07 -07 -$sol-base0: #839496; // 60 -06 -03 -$sol-base1: #93a1a1; // 65 -05 -02 -$sol-base2: #eee8d5; // 92 -00 10 -$sol-base3: #fdf6e3; // 97 00 10 -$sol-yellow: #b58900; // 60 10 65 -$sol-orange: #cb4b16; // 50 50 55 -$sol-red: #dc322f; // 50 65 45 -$sol-magenta: #d33682; // 50 65 -05 -$sol-violet: #6c71c4; // 50 15 -45 -$sol-blue: #268bd2; // 55 -10 -45 -$sol-cyan: #2aa198; // 60 -35 -05 -$sol-green: #859900; // 60 -20 65 - -$sol-mono3: $sol-base3; -$sol-mono2: $sol-base2; -$sol-mono1: $sol-base1; -$sol-mono00: $sol-base00; -$sol-mono01: $sol-base01; - -@if $sol-is-dark { - $sol-mono3: $sol-base03; - $sol-mono2: $sol-base02; - $sol-mono1: $sol-base01; - $sol-mono00: $sol-base0; - $sol-mono01: $sol-base1; -} - - -// Minima color variables -// ---------------------- - -$brand-color: $sol-mono1 !default; -$brand-color-light: mix($sol-mono1, $sol-mono3) !default; -$brand-color-dark: $sol-mono00 !default; - -$text-color: $sol-mono01 !default; -$background-color: $sol-mono3 !default; -$code-background-color: $sol-mono2 !default; - -$link-base-color: $sol-blue !default; -$link-visited-color: mix($sol-blue, $sol-mono00) !default; - -$table-text-color: $sol-mono00 !default; -$table-zebra-color: mix($sol-mono2, $sol-mono3) !default; -$table-header-bg-color: $sol-mono2 !default; -$table-header-border: $sol-mono1 !default; -$table-border-color: $sol-mono1 !default; - - -// Syntax highlighting styles -// -------------------------- - -.highlight { - .c { color: $sol-mono1; font-style: italic } // Comment - .err { color: $sol-red } // Error - .k { color: $sol-mono01; font-weight: bold } // Keyword - .o { color: $sol-mono01; font-weight: bold } // Operator - .cm { color: $sol-mono1; font-style: italic } // Comment.Multiline - .cp { color: $sol-mono1; font-weight: bold } // Comment.Preproc - .c1 { color: $sol-mono1; font-style: italic } // Comment.Single - .cs { color: $sol-mono1; font-weight: bold; font-style: italic } // Comment.Special - .gd { color: $sol-red } // Generic.Deleted - .gd .x { color: $sol-red } // Generic.Deleted.Specific - .ge { color: $sol-mono00; font-style: italic } // Generic.Emph - .gr { color: $sol-red } // Generic.Error - .gh { color: $sol-mono1 } // Generic.Heading - .gi { color: $sol-green } // Generic.Inserted - .gi .x { color: $sol-green } // Generic.Inserted.Specific - .go { color: $sol-mono00 } // Generic.Output - .gp { color: $sol-mono00 } // Generic.Prompt - .gs { color: $sol-mono01; font-weight: bold } // Generic.Strong - .gu { color: $sol-mono1 } // Generic.Subheading - .gt { color: $sol-red } // Generic.Traceback - .kc { color: $sol-mono01; font-weight: bold } // Keyword.Constant - .kd { color: $sol-mono01; font-weight: bold } // Keyword.Declaration - .kp { color: $sol-mono01; font-weight: bold } // Keyword.Pseudo - .kr { color: $sol-mono01; font-weight: bold } // Keyword.Reserved - .kt { color: $sol-violet; font-weight: bold } // Keyword.Type - .m { color: $sol-cyan } // Literal.Number - .s { color: $sol-magenta } // Literal.String - .na { color: $sol-cyan } // Name.Attribute - .nb { color: $sol-blue } // Name.Builtin - .nc { color: $sol-violet; font-weight: bold } // Name.Class - .no { color: $sol-cyan } // Name.Constant - .ni { color: $sol-violet } // Name.Entity - .ne { color: $sol-violet; font-weight: bold } // Name.Exception - .nf { color: $sol-blue; font-weight: bold } // Name.Function - .nn { color: $sol-mono00 } // Name.Namespace - .nt { color: $sol-blue } // Name.Tag - .nv { color: $sol-cyan } // Name.Variable - .ow { color: $sol-mono01; font-weight: bold } // Operator.Word - .w { color: $sol-mono1 } // Text.Whitespace - .mf { color: $sol-cyan } // Literal.Number.Float - .mh { color: $sol-cyan } // Literal.Number.Hex - .mi { color: $sol-cyan } // Literal.Number.Integer - .mo { color: $sol-cyan } // Literal.Number.Oct - .sb { color: $sol-magenta } // Literal.String.Backtick - .sc { color: $sol-magenta } // Literal.String.Char - .sd { color: $sol-magenta } // Literal.String.Doc - .s2 { color: $sol-magenta } // Literal.String.Double - .se { color: $sol-magenta } // Literal.String.Escape - .sh { color: $sol-magenta } // Literal.String.Heredoc - .si { color: $sol-magenta } // Literal.String.Interpol - .sx { color: $sol-magenta } // Literal.String.Other - .sr { color: $sol-green } // Literal.String.Regex - .s1 { color: $sol-magenta } // Literal.String.Single - .ss { color: $sol-magenta } // Literal.String.Symbol - .bp { color: $sol-mono1 } // Name.Builtin.Pseudo - .vc { color: $sol-cyan } // Name.Variable.Class - .vg { color: $sol-cyan } // Name.Variable.Global - .vi { color: $sol-cyan } // Name.Variable.Instance - .il { color: $sol-cyan } // Literal.Number.Integer.Long -} diff --git a/docs/assets/css/style.scss b/docs/assets/css/style.scss deleted file mode 100644 index b5ec6976efa..00000000000 --- a/docs/assets/css/style.scss +++ /dev/null @@ -1,12 +0,0 @@ ---- -# Only the main Sass file needs front matter (the dashes are enough) ---- - -@import - "minima/skins/{{ site.minima.skin | default: 'classic' }}", - "minima/initialize"; - -.icon { - height: 21px; - width: 21px -} diff --git a/docs/images/ArchitectureDiagram.png b/docs/images/ArchitectureDiagram.png deleted file mode 100644 index cd540665053ef53e3c0eb01ec3607b02f44a3ada..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19887 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 diff --git a/docs/images/ArchitectureSequenceDiagram.png b/docs/images/ArchitectureSequenceDiagram.png deleted file mode 100644 index 37ad06a2803cb13da66978062b40b9555ecbd55a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15175 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 diff --git a/docs/images/BetterModelClassDiagram.png b/docs/images/BetterModelClassDiagram.png deleted file mode 100644 index 02a42e35e76b2a1b61e7feade34a0271e0640aec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14116 zcmbWebyOAJ)-DVP(%m54f~15r8xW+CRJyxMx;EV)B_JJwNVhZyN|$tZcS+sF&-32% zo_Bor8{^)8fWcn9=9=@F&og(Jl7bXE3JD4f3=H}kX^FQmFtAhL?-?XG@G~5~%K`j) z?kuV4Y-DHeZf#=f3?pS?YvO3&Y+_7l=uT}>DE&&FnNZD8x{Vq?u}WM|_#_=^Gt z1}@w}Rnz&u{tp8S#`%!Gud1v#%Z}x9SytbUN|`SMXY!tcUWQ4o$UhYCLrTHVD0$0? z3a%c1&gzF2+0o%@GD`Y=8=tV-`OTr^n**wNPete(C7X=(fK{ zld#CLkwX~Z>VMx&3zw>sjRiZ5owPy}YbxWeezptHw$5|}jvfYCznQ_)Cf{#y6pOO` z9L>V3J=+u6`c*dx^UrIghEG}|wY@$w<8CEt%W1t<;n-4TYIEZpZMPN0-b^?M92zOR zE0xz9dPCyBQk0PEZ3b`d86^TGSvZULWVy>EKQ(!|mC~-?sy8I&V&cAd$4r8xcJ0ob zk^z~#I~|Csos5=J34fy6;ikIr9skv`TXn2!|7PuT)o>Tf@ET(im%!f^I>%FQ6Qvc9 zFc?AvO7|s(cIAJKAxDcfhXsYvJw!}e-He6pdfaQVX^7uESl*RrFn^qSJK2tO5Jwlg z;o>#9c=+L9@P(PZuJn=D(WU2n;O86coGOlw$2yfx1ksd}LG2F4SE#S$P$J-(*3uVL z>YsnaXF3#Xm?cJR!a^s-3f|Er(y5_-)rxG1<2AzbtGcu|1aYvUobTxAX+WAE%M4M> zk4EbUax~7N!#~E*jQ9Gx7kSmhdF#m)&p+)BRm{3 z{HPyP3Cvb?Rg%YWwHx>&Q zUW|ws#}IU)5&z$vAWw7}o!eOhV$lX5+G^_R9-H4}@;iu=WZYf9RlfCaj*`k&lFJls zmP8#G7|gmTBlJE;8tPBwB4p9jH#4hqT>tg1%5>QpySq*$JFR?Dx@{tdk+og7Lt^+V z65Y=)*$*DG*^(NZ?Oq{r{gL562F9fgjf@KAQb%(L(lrPzA3WsQgmU5{BO|X*H^nLZ zQN&5i7NwMdZ>Xbyw)dE_2(;LnxVR%=d}K#>$sF)jd3|c;)1ifI?fm?{0~a?A(JU^# zoOvjg$_;PVr$ri)ca6^5!RVxhhK5Ur@pQ8G7v5Ph+B26Mxtuxe+_`U`J7htbvedAz zZ0S2~#-%p~(vs8CX0fQgWnb8(EUR;|cnQAdeMW6SZLS9267$oZlp7hxP>95qyR)Om z$hngWhdw}Ea_J@otxh?ClInNv|5KMSieJBE_EwfwIU1L-ka5LIsIxFIylr0bi4%VB zzHGjtUdrIV{ln=nB@>i$<@zh%Mj)MHyF1xBbURdCJ5JQ)-7D9L5Xvq(CJVk?*2dM5 zEo)W(*TmuSXnOU!W3|aVB2`9ZEX!_jp-l$L6`8gp^YUKM@5|m2M?qYMj;?3=( z2;_ZwKB-u!4*%IJ9^ZGa{jbu!DdvyOok@Ot(sN0OX*<*`{CS41y+7OvZeB}^_ZWMp zmVR$k^YQ2)fzYYk*`@Gw?K;*czp9)l2i!!OkUkV*w6;Ww+}oy6snO+o{R}4Zed&-S zdJrTl?7EshGgI%nw>#lG-ZC=Q*6BzJhvwMBGrydINH6Hy$0n+#6NR!BEtNaQ{`0fiQ@|If`#*E*@S0O6>HNU zHq2_@Ir&n5{XLwd-haru_Jv+9YU2Ie3`vLI#>t+L;QeIAN@h_wvx&t5au}}NH`Yc6 z*?d*V>a&a+`sXk`tw)*r_zmtR#P62-7Vr;?j{Pv+^Gh1NY4>^>BfCJM`YGw#*RTDp z@kE@S%YowF=R#i4PIRB~Px3Rxrax{;1m2qyz#g-{ee!;9xHwH^mi!45$o z&zZDU)+p_pF0Pb93Klxf%Ga?9e-+)}uJ$igoQfF+_q4oav9BW1DGrb)6WHm-_e0=~ z+gV0?Y+0;>U+8)pF3T`(%zfJgMrz38&4j0d`s;gltY5r6{zf;$)qN*L2@q4{1FAt#-e=6+tZjO)I?e`Mth9!#HwlRf;Zr0WLq^|OQ zHhp;aJ@>~G%U!${+NyLX2Zl-8;3XY_%ZR%@(kpA+TWq_sz!;9B(_~nFxD(#I+|(YJ zqRnob@l(V4M%PQCm6;LsEqXk;X7$eQ#i@dlN&78mm{KcNpg938eZ@eB6)!w7Lf|_F zmHe#DjmqZgYpP|D6=GM$VK*WR$V}CceF`>`MM`u#OANkI!9WbPM(*2+c=pI<#7Kfs z^7(y(i|koF719@x4}A|ezD3kTA-#e9=v~#*BA!7%lRXGreN{pciJc%F4`GGee}drA zR)v~_k+*5sSeH<<=aDjeNOus zFbCh40}lgC38G;7E#r?r{mv(B!eq*(<>tu-Z;E7vJAJpFBz4NO9>Q-DT!toUiAE*1 zE8+UM=@1f`aI-CIsU$yjlT3;O9mHdV;euL)W!dl-OWTA)cGt-CSCYK86>#>%<;4a+ zdTvQ#C@=or6)gqQTfMp$6U|HGGbFTpj@=&3{h?$e)6VDbGwPAYvVEvnWg5dOMf0F6 zYA)O=u=P=fV7n2Rs826940Q-*7nD_KG<;I(`_So&SANF57UBOYzW<`MvhuAoGfD(G zlC2i0x+ZV}lh1^fc0z7oQkWtzwN!4%j>CA>Lt80bi!z?Q60#nH9)=o}`}>zS3e7z1 zC2Mi}NNImgM5i!a*_kWd(;w`G;Fwj&Cl&SnEUjZ(atgKC*~0UYYNt+W#Y~1bAM+1; zING_SWmbBp)LZPjZ(LGgSrK-JzGt3YN-KF)S8OEf!YtO;b9anXkYKA4xn7d9^Z%UJ>QTY9 zkb;Pt3SCiP5Lp)>P?%9=BPmnU+!{A~FI$Oxw)s8FRP?&MGLq$DAMqsubF4dO@b#0z z?_a?dEY5Zhwq^?Au`cW*7GuMBy)Sm}zJ&eY(P^f~h+(JN!CrxikS(o}xVVn*M1dd^ z(DkC#ufB9PNUHwP(|~)bf)`K#2Ah>4Ro7mT>Fu;>p0b1(7WuvknI0}ynEz7#0+Z3k z=h%QuOG`W-i>F`laH7&O@G8^sh$?$_DEg@*8h4JJK5@r*Ju>bx$ujH&hBt@;eG?Sk-ahZo+98DnIn{RolUr-jJ4tPXl}HzAs` z%u34wR17J4T7^ey?18UzrdB4{W1f!SJ(z8G<*048{2?F26Sl6*89J%35U8w;4o)L# zHArxsMZ-R%ChKtO5*uozo_FesvT5`{my}LHX@n9LSlfFJK1iT{!>sqCB(yCmyWdBv z`ku43=vK7NBSee1{e}S_qtP|w~Nvq0JaOByLp*{NXlh% zSoEb~lWj#XAeQ_AJ3-7h!HObDsg;If`O}eUL4wu9?jKHZS5EB#2(GTK%o^X)xvdC3z-78`7hDQ! zN0$>xhjJ^~pL?|B5&MW|=FEyiP&hd`H-<77b0krf45R}$k3@7E4pzeYunC?ZSD32G ztOF>hZ~3fhyKl$w6AA7go62D){S_1Xl`i-X+lk%9QQY>GJQk-8DdUfwV2s=&kgGs7MRvetQcw^A(WA^q5yZ(JclZ(MmAVJXU0F?#cn?rJB&Pu=OQZ2s z1CL-?Fu=W-|#VS;nm5g)n{+1JaUwF(3$;PlLvy32*Q z9XtD4>t9v6F`uH^lZ%b_yvV!*CuR80vUj6K&mutpyF4SI*ELI`B!TR-FL~z{{@v7W zDlI038*>wGgu2?=2AF&p;$aRwj18NT)kLH1`cue4vpaR0-((X!cY)dE4xb&?uVVJy zTI%oEvfc8B-sHb8vddl+CZFJ($CDCbYM@@=Jl-$V4?Ym96DF6t6?q;{w`qB%g6;1I zYha`~8?H4lEHHn*7)nc~H_fY4GbI0PX9`PoZ6iao`q%s~)}Nh-o7fWj_$$LX%*`2n zhE!BM&we5XT%3^*aGGH^6UK`I_ZNtzv9`X7*1<_h#lr|-D#&_Ve61;)vm%QEW!8sB zi_Zpi_83^6;26@xdN6iX9fs1dHLJ&afT5GZWp5TF-|$u>m!nCCMg``SGXj)YCw0Sc z;MnO7m0YnkNp?Htyue97t)ERnq1zoA1k3y8-H6%0I!ERd@mUVg zPY&K~+3XNRm)%`8F;M^g%tQ80O@*wDa>mc+#XQ9E9`SpH*(-s_)-S z7-qw=5EjeGfGA5;@I&K%N-g*8vbB8Ij~@!DocWS3_+r?(;phkI*9rZap(dhFG12H!ZIcIb9+X2G%u6wCA}ls)vHKSFn!58C*djbdX27oo))thWGY6FgLrMv0A%*B78xKX1g{?@Dj!U`*DsqK8 zR*lChaCpFEh=*Z#V2hcb4|?5l%SEx>AEgyHlB~yLr6CrI+-9Z>=mDdAY(rdWG80OsdYxPren;E2A-4D6<#{qc0POPVOFwyJ6B85Q>FS-gaO+%}DvM?8PaxXwlo%Ii zof5UmdE1+%?to=o)fU#0l@hnSTgJ`5g|yy z#s&o^p-Ta>q3yKbbQN^{xI)^l0^pF1MDAxQ@+TU~YQr^(j>;0RJ@(Pl zPyS_BuVTqbmT#`0;M$nvWeEj+I_Y0kZ+*h{sk9Y?w16aLM#Po>?_N@s)ZP;`7&bR0 z&f7eQP6@Wy)5#@FJZUmOZNPrLIXJ?8b=CEEoy?*^Vi96-Ww-ZwAxZPv{L>3l`w^(v zm9$*XXFS`?_vjwqgH!Iy7k9%|PT)E73ysfbn@rC0h?g)wx2J;mtffcH+Hk>pBKP@0 zr{s!Q82kCjJkMKMm92OVC@#~T1V}>&blTHr&%Ynd^JssHr9eQQoFm_lc{EOl^^D&= zJ%2q#I=^hJ4m(KfSO%(7d={yE!|e+BYH9%G_js1LqH%}M(3{RqDSC8uHiYb7Zk2_c z>mQ04fehHy+Q{3G>dsj9;G>zTc-e6TKXwufa>a7db7tmdCk>O>9-^+sJ+2SwW8y+A zYnNo}(+$655H4hb$!}DZRnZ`5z7DSw*zE`;WAR!S}m1XU(vwJ_ByOUHwJo zb7%2Xv%=i})q)XUExNSynnS!mZ+3p3oVVGyw?Pqo8bg8$JOajBbEY6?t)%5k)e}!uQ(@^REt|2clV>(xhfHEE7U?aLU6yypq>=>-5 z&R{p5Vo@XcXK9ti#eA>MS1?-}st*T}U;0@H2-x_T_UOLrI2`o?7TE36m`_WGZZgdJuDy#2+c6kAl@%%#`oo}8fR5WCD!R0>!F7+c`8WbV2d_6zG!qmv7b_HUc>~v; zhyk|bnWxJ?%sk-Gx9If}YT~ z*!QvdJs?*`vqw&)1Y|2APeUNqN?kM(tK|m&W~ZLxhvzyiN+9TWxGamzg52O2XC(l$ z%nQn^u6J~X4vP;v;{^hGqU@MfH}T^F=Lh&Tmf|L227ivFrv&-!IN*^L z7?V8Mr+lxBvx(r{{|ATG?Kl~A6V`F)fm?q(@MAwQ1?fBr)XN%*!{O1LDP~!HzihZdkt@|Zg3XI&1JMng z?<|i??Ib7@uCUKP?G(xYmS1fn)nCANeF8iHctX0@Mw8cNzF*zSXnEP{&o3%SQPXyg zMeI0e+i+`4Rdl@ql+bMZ#j3OgrXlI&hw^33)^77=A(7WLYF&q#vr~WItEaZJ$#(+l z_BL#}dusy!SRpR&8VM^P62GMHqmzRJMn_FfwE`QM9(&}wViDy-73aA;`dPOVdKO1W zc!V%)`g>cGXzGz#I=W>J`wElW_#N)nOynV2{<>DlPFX=9x{fE6v5f5%NfOZ(5X9j`+xi&1QOx{aRlwEz5p zDfi`Sq#K8Q@KAo(vNd!KHEZD4Et~^UdDD-RUgtf8F@ALx5Lx^f=$6>!)*%}#hW9(+ zC@C-~7Q-}C#!b7z0>=GirPMw>h+@0Q=f3+hm#)P^R$EMkwL%?9Une+dHU`?Fe)1qE z0N0aMj{Wv?;{N@V=y8feU1i{OZ0#}>2me)r^;LuORwto-5!p9u6=hWx^8J1#$zGC{ z$$!%}rk2)_LPi#kEV3He&sK9fX_;(GS^3mHQZ8D%m`VmcAs&3S2OCo}GtGT|r&>O? zOKx3;T=qtl@*T8~Si%~bM}~}^TB9Urs?YV}s{V0e;$?eu&6Xx50YwMK(PqaohZR;Yg+tAl~fP5>qcovLOv&Q+(oSsu;pPHC_5)oCbXZ zT)9$LAg%FWPJaT2eF7?PX{z!F#5W1wyAnotqn3?Sfu3wR=HY1 zqUoSj*SQt6BdUFI_Uso$Y~9lXgd9vKcco5}^FQA&@3-0Ze2#k-0a|Udy++t06_Q^) zSgBgYCLC5DNsVa@MgriwyT@8s{>p?*_CMDm5ko&8CqHiA#EbmiDuA7cw(DsS#d8mi z?P%+q;8`7+tC@8pK6S{qSS(UJpQ5eqJb}tE5?eQrtS84TYa%y1I;X2_2z}79YcfuY z>orkyVl4CDL5$xL{bxhI@z#QbT~gnHpCHb4$+HnV9;k@dJ{ggd4n>!GBlF3_fxxyc zc6&01*DE?rmve2dFxVO~ClyQ`{XHT%Vb1$ei-{rTY$oc5?R?DKb^mELT^MZlx7o*E zw~+eOZe56CQE_pJM2V=h{K&v8Noz6;gYohxb-3*uiigind8C-DiRZa zykV3+3X?2(HmfNPo4rP!M#U?1=kN+Uc30?Vfuu|STgFY32+vVJgO<$O!=)TUw8pNi5BBxzlP*9vVUQtsscIU!^aJt96*HJfX zuMCD1v5x;hSjh96a)4dz8_3`Ctt>GF&*3OA&3U2W5jdQIK$|3q^5Fk!;b0Jwq;tAb zwlvDk9iC&TT`8%7$=r05Z{_ef&O=wT+wZXA@{@A%$cW$Z0Kdcg^>yZ5Eq{K=l=SNH zxXksVx4Aw%V{-?lznoKJj%S!M_0;l{Fc;;d*)UOcGRVbT_UL?UaJYtAXw2WTI03;l z$6+nKxots3t>^vwd@|(je5(=0E{vKolXgkT56*RNhx|zUE7P9!(e7vSxN#VtT9|_U zsH_1nLVui5>7$z3X5H=DZxc~T1=hi_u-8PbM#D(H=$Gm!ZI#E~8Rw-Nwh~P?PO-y(y_&y^2Dtq_k{?MA#__f7J`k zEMCVgSnCbxDsK7whL8f<;91HQ<{}j?7q#N5V8_(s-3qlyT!Ca5KxU_dlEXw4gh5*v zYO30kt^2D)G7SFDNUueImNd-?+DM_4-MQ`$Yg~@?@GCJT?p(fbIdF5_H$_4=!~OAi z4bE|dndQE7Ri2r*zOObvG5T`XK(ud!I?G8tZ|!vh8*rZi^J6Of{kzdOMuQE=z0v)* z$!3e#fSqz6H=qT_3E?W<*#TLD0kzk~>ES0HY}2*__vDv?zkkD@u<3PwqmNrV*dMX6 z-?HlK>oQlxz@nJl>4yY+r>3q;qhTAYiq*>BwWuOPwijR_|vpGgvZ;iMA9pN z&Ts-^6F@EBULCf(Lk)n&9m)@OzY^2hDZzI!_TrDn4@$%98zAs>F3@8)7i%LFnmJaBi%egR#1z}?>l%m0dg6>|DX=D5^&Q_5r8ibN|teFr=+ zu@3I^5i~r>ZlE6lhTapTOOJULeO?GSs_~*s#;bKj;G2zv|G2qGic?saBe91}9O9S* zCYSN7W_@bbnv+`LdL|}hC>w-rzL;1dAiNj(Z(A;{rMAQ<_VSZOoPI)_JM46>KWg+T z=!65ZA;4{bd|Hh(eUd2(bX)(x%!iFl(|g}|bFgNpN$%VBJHEL@DZAU8<)I6n^xi~@ zohwPlgs|ybwcf8mQzZ()s($j_LtEPA|mFOTj=b z@~ylze*n&(Ph63)qKxR ztrsyF81KWl&d|MzihS|s&G_z~zo!O$WV31M_KzYpn*YSeh!8}do<%t?VnlrTRs<9k z<1qpwE4WFW=D8*e{t9~&cUO!-noo$x90u6hPG|O>)vbT-XDCaezhsgn?adl+OzH@F z@BJXzQ?5Gc-y24-bJv{ZH9Myc0C&vpBy%{2?sM$|yanw8|G997;&$F=aCRSM9A0qp8DkA;RAL}a1nOlcva$kRNDy8yGhQkD@> zK*fDQK2)?6wrKAGdq(lFWo@Qw1n~&hv{zoy7qC3#-6aMq!KbwJ!1$N#nnRj#5 zVgB%=<&7d6W4NqB^FtV*(607gR|hFibpRqHDyfV=Gv(P}{y{JJ00darPrtZzpG9@*GrV`mf{n{a!+ z_ukHjua3-Q37NHp$k`%z1ClndaUt44h#3$ zXXNr28EEnjN$5CbpIe5k>R10^fn%pRmIq{oAZQ&#rSbqp z3Hx7MD44@#?Rlsk?^ftJDhkbl?&kee8%PJz&CpQFN(wu>>*5`PIqHw*+5CsTLz{m* zIlu|{oVhvS`?1|;+C2PmXHO%|fE@+s`7{IGD&34$pZ^)CHn<=OD~=x(5(=TGVDA|7 zdX-vGhnO6yP!kY9q2Gg1K$1nLpmN-w#kFw@Nh!9A^?vHk({#a)PE((DlPQlQG6 zR?lZ~yBow6!H7r0MIVg`>fGO7CN4|L%Uc%A1-iQpcvlsZMU40;neD5O?vt2vsi3e` z%I(Iej5VQ?_vXYOni4BuU*-+C7!dz;?q-QMiPM1CJw9fzdKU>Hxx~}=HSoM()%s=6l)hZVc=Gt%=uNSa zzJ-hVa6#s<){Vecm?>tirGlOwTk9n* zHbA#83j&@sC6*ANq7l+o`@cSXT~Idu+F6tG)Ht%@(KtY*21i<}J6sN1`o+znJlJQyxL^3ZKuRBgb=7| zsCIds*`?riKb#cKk^8O3Emw8U^hQOvZ4Vc|6nbLTi<1v=Se~^ZsMp5=-pK2b2}4iA zW48$Y;w8&ik~umd3xc9z^CkAhuM`k3b`S#hdd#4iUGAnRpuOD3#KaEE6++)z9Z>L6 zWdfNmD-H_!ZCqI?AT~BXXu*_CTN z#{;P*27L#>{(WxLUKB`)`C=c*wBD!A`6f6H>e`!6b04mlZ1`JLGV1+)q^uA5x2{N; zcXY1wdgvG)G1eQ#p}~grDhf|4Sp3DvN`^HWZa4QfqFhdmgheZ-3!D) zZUlm!!Q<+1OnzkmkGxvex@v1u=((&?zqZuTsjK1#mIYPW6&@5M4oqjq7QURg+_{wX zxs3QC$Xd+!+|}Gd4QQd;)tx<}sL<-4ao9eixwHDq%Fxkj=R%%&`GclOP~&jvgI~Jt zj{om5heZ&=-hh06*n4HZTsr0b0V$WfS0IZo$~Rp%^AYYlO+GKjEA%wl*+s2W(Y7ry zQS%20L^tX5#S`3gy!20eleB)AF+dVx7VUm$Oz`c;W_?wEB)2|I$^mTr9yzrNiC)hd z_h~<%4EbxT!|#kEzQ{p|w|i*Bs#x!jW)nqRuSJeu-n?!CF#rhja=J2kQM=!CH(Re$ zOS3SaqrFF)U!J}}PTA=EGV#KeQ?%*^BlUy+ipbT)WjVPQC`nrTC<12s?60M-^bKf0 zggncvSAYWaqR0d^q;g%Bh5h^hs>0^d`1FCgE0Fgm{@f(5W?NK&R3>rlAWF6m6KOQx z+wRI-4q5Om(0k1swtE)mDM+_QM|c2TpUguB43HzO1*&)n9%Pr@-4w4Y|5@@+AwM~Y z+!lVKg7Q%azD+^*MjMFG{^qs zS{Ruln-_4}qV5x?J+94w34#~mtpib>kdr&W>;)cF(_1&@?1J>q$1h)J{rt-RVK;5O z54Fi_U)}#e(e5=?R@3OrBVuiBE7XJ92H--g1@)A2uz|O*OTW7nVBi^?J)aXfXei<) zExVsYIG~WfeB;T7x*VyGf=uzkQP-?lm-4F3%#^>TMmbYiwgfo5Wt;+JZ5_AhV4XkL zF?uaOwiTIPQ4zlYe+d!!Xtv2GG#)5Veuy5duFitqDLm3XzlKL#aAApm zFw6@O0{vw#B4#=S6f+EBUP2R2Do7)$+b<|-+jEXU?meHKBG+zN?(2NJ)E z3sTOJ9-muqMV;(NwWOYV6DI76{?p+e3zT_?1Pz{Kz#t2mW$K=Frrxs zJObcuxXWD`sS7mJxlv#Y6P!Iv$7kaihiW-rwO?MtkS- z`oz`uMGYkm+J}M>SmE0Q&TVHb+o@!b^*m+TmO)k+j|qSLZUxC56mXKGX96aFI;)}z zbLa#2NITiT$BXM}-ldc@h^y6RLJMJ}^V)~Nd{;RvC?$B7^D(Q~;6yntVHcntfYm>R zX8n)BmLC~aAbL_Wqzo-N{JaU285>PZOavL@^e-mvniF*LBSKp3KxcqAf+lSNHV0wW z`59KHAd&|U)YZW9nnyh5R;Yx3>isO1ZXIf~_G5VskuMOHKcDM5M54`>--TW)_ zgOkfhlvb1_JYIHQ=q^5Dn?QF1`nEaQWZ1#`ou`a1igr{Ey`2Xvcxjgof4cEsk3tF@suYFP;XqXZ|I*=Y5uYk#G#T{Ld@u ztCkNxFDM$nmaK{hPV9e0_?VI>V|Z)-Em%~dP^Y9>!84BqlBSvPG+aEqMm9j@ly8Ap z07sal#A1ECgNv%cFER&eGlpbmUAwIRyfuP(8d&xzKVxR*!*ulblb&y&o*SXQXmF_*||GA zCn!jY&FYm~V@Sd2_2sdC*(*Z&)v*^_wwPn0>TRG@^7^EaRP0&cc<62^FHF*GY%~FB zqk{8CyxXVZ+H9ewVum=g&{r*#x%$B29F%s?#H;xDAi<(RP^z`~WMZ6lG@${!%f8OmK7-Vb6eZDqO#9>LXnq@pcNzgyY)}7;@!x z%L*ftt|0WMdfXH-e96s45bgTL9EfJoWOnU{egeLz4K=MZZvdaHW!L$MgJm_zLEcN( z>cER#C>v8PV*8tzdfocNusdheS?F1V?*nCCiA>+p=hxDJgp1uT8o)$Oxvdnp*gaVC zZGlY#WQ)N)DwmbIZkiq+X8=&~u-v$It&=d)1y2E@pCYcfz3bTJ1yu(k?8g+kcb|=Y zoEdG>0HJowT|CmY{09ATm9^TnUjT(p*=1vsqG#ov5k-liXn8dg1oNS=R@)}+T$f?S z5?hkt)rv<%ylswls9x_|HI1qv^5mJC6qlQkI2Y&3e-rWtIbBuyHa>U;=)eKA={@Up z9~fCZLOo5bVxh58EHi+R95kg;?C0BXUEWHv&Bm>;Ec~~1q&o2odM*)B?T^fVzOG4} zoJU$Y$_p;jLGp96?3<{4cj%H+N}%i<-}xNihYKOLWXFNrd-0? zA)jg0(_%jbirX8UUdm}l;`0!BO?U~;I8K`aAhF{6yZ!2G;rGGUMYx$=p}Xs=0HVYTliM&4kQyj)g9yqA(2mj7?HjM=T<|HS+fbO{Dm$0l59|14@AJ#!HVtnDUG zwt-sab>yq?;$QDy%&WV6@HKh8tl=QwQaa_bi>uLIPXcN-*nSZPk0Fp>f zdC}`;zLRDKI_Il@z1w4a8r;rD&)+nH{*Mm_Uy{gq6iMffkU<kNB(jxlPO` z(!Q51#p={sXWM7jM8;Mmq#@9$XN=8Gyk6VyTl%8Rfv|%w+0Cb9ku_F0wrLbwYGM5h z=;c|BU%ylHvRVHmNtHu?M8u$8O7qDu%ec>kc0TX6nV~gd@**N&R8q6C>1&MDE{eb@k_lCKB diff --git a/docs/images/CommitActivityDiagram.png b/docs/images/CommitActivityDiagram.png deleted file mode 100644 index 5b464126b35fc8025f8b92e7261f5ed6287c5eae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16227 zcmaib1yq$?*R4oMcXxM42ps8>Zlt?G^3WkjmvqaaK~x$<8l*XNNJvN>K%~3jKH&Sk z|9}5`@3@Y^aEyKSvv%*j=3H|{sj0|fppv3KdGZ89UQSx$$rCs};4cXIDNteqo5KYD zV|AC&b+>SK@o})Sc7GykGUTUgXQYwe zi#3#@_O@Te1UJE7+%n_Ocg}YXd01WzJFZQ*nMNkr3VIM%haKy8(fmHls?uH|>TtNj ziB&iLmEVccXy}v0{IpdgI~DiG#JB!{l?8c%2F5X_U|Ee&cgr4~19Nu5u#{$%0?8Ru z3U4v&H)d3P$RU=>9at-S-On5_f`~|G5hUOyvGchN?jjAvB$kUp16B=ZJ8T!$&Ho5Se$)5(!4Hq6MEl_H{VO|B=AO1P3g9Bl(FZlVD`|*!d#eHDj6G2 z^dvYyTcusx<1M_1sAu8!E@=|Xwsu*WJ-lxret5S0;N1aTZFri(Z|B0SVd5{P?eQ)> z5!hh{<{qWZ!(=FJG1}R`#qa#jwmKQh3T)e!oz~hWFx?6X^<(PwI96)12#!0;6VFM` zKT7X#_TaBp^X2XdgzhkwCb^gdJb5DWQeIj@%iDN28%0;^^?jeKiHow^@WR{=Uro&p zzH<&uHUmDB`kE6D`5!!=X1W8N*4tne9q7os@LeDCBJ(n66UAdb9(+s*Li-rr81(dh z-{r`&d49oc@7>6a=;;1RquXBN=E#DZ=sCnKvvH<8gF5mWSHSG41ortedM1g5k^~5X zYpx_1xBD$BR37`B<^Nt-!itKDs>C=sTWvuVcyp-FU<${T82P$$0U;lezQm)mvvcm7 z<2EC_Hcf~NS#T9ul4cZ8*66m0>XGvFXM$dXh{P-$^mC{JFUeYOtWdy>x3>0lv0}Q@ zQX2<*47EcjECn&-b$;Mi$pgiG3r%C_IC*DDTeIh0T2~^gaFaGJ9lcY030? zcW-aah^FpKiBIofDIb4;r$4E~FEY;fd@L$5-C$wQrq&V%D`@^PbF8%<9Da-+!E!2+cycOw3WukySfUr-b)Q1zXR&~(Q#SFZ;x2uHC5_KQG(bw5e{S*bVWZw^fjjo(Nnq2UP-{_jm=Ly-vm zmmxGSlb=DPol!VGchP?hhJDS9d8R>Qv)7@uf*L%ApEPMLr&8cR4SMZ*ys)%%gfj>= zQN-4l0DoCMnRXd@6$H`!KG$B08~Q2%@}<8WLZsi!g_p#&sj7I}MT*|7zk-BdCO}`J zzbd@M{dyOU2?Ww)46yz(&FcfHe9k6e3vBPS<7%i2Pj{?=Au`1(6{!d{b z2y0E(dSmY!UDu!U5=Dv7HENI}-N-QoqmAT}ojXgU3p0I*qb?`f>yvj7_4v3vpo$a? z$dU1@CsluA>C|8+0YW~@*?^wQ>0I4VEfJRP-SsAI;+PF7O!(%H?CR?g(od^5Y%`%A zs)89B13sKrE(6VIv{_gyCapy-dy%$0%sw}Pff#WdLtNPW$enPr?3-Z?u-VPtye~ti zSM;qfZh!nC&Xf1NI#+!RWpGtG)#; z!wmua0i(Q?9~S%=p2{wD(=kEioKP~4kt@KfD z#CC9aI5M^d=5J!^`8u#Iv z-ad7(%t}pVa8L@3O@QE&A|z|>*GiX6W-5KWxbRjIdi)jx=I-XEnR!9|%9hy(z1BF3 zzJ!h%R319%kL}m_M}ite0SC2XfNX@!;%Q?&g>E5}bC&#UsZmHB@cvmOACfQScXtpH zHMq7dRBYDeD|ddDqpNl>L*$j{Hu>>>y4;{tHJ5YMyeCU39)ovVc zrk?*@;|yIqpQl$Pw@cpUsMx-FRIqA?anqq1v*rr#krcSyYoGG^Wb*t2zoTy9t2#=N zmpOuF8^6Bih>*?Iy)mk@Pc6x@53>rqAEgYu8ILAlGdD3aV{;rxOT^(em)_qPCZi$a zk(Dmn;Gfwhsc-tKf9-e5aDb@ej`UnEDNax7vaTN62QL`KwdXJyN(g;1>mN#nlGi_Q)%a*~eIVuf{Y}FB{?U4EYfG;xDsqBrnO*sxPH6ZDtX@j-tPICt>!nC?3}A3#ayv_;iEn(6E1x|ip{4^#{suZ zIWGx}bu$J=<5`ihOu|%AOLO0zp+H$To;@xN(@2}3Kn$<9w{UFQK-y@|V#p+@e&u{g z@mv_3^_}9Y0|_G7w<`T+_|jQbnZJ9bD}Y$6(59DK+sy6T zJFl3w6pq5u&2%~vVB3y~k3>*a#9ytI7&f^-$woQn;o$H--tb9gYz=k_+BUPF@k~!q z%ctmf)X<`3I_po@J2NPW6JlZ#PF$$$RBUwb z7<8Q95IfUF8={P-oU*Z!F<5NTD2|4F{e3{d8iokWJYRy_Sl(V@;+qQ=Z;(q~iQs0n zg@oY?ubm4RS9^ElG4ogWM&;)zJ@|X8J>KX-jb`PB*63Uyl8cTdt_{s#+1b(k_TIH@YM6}g)8N|)I@ucrF&r^q+vWv9n!PIh zPR1F>$G5pRC2~n{s+&BvH~h|>Oy7)O@H<=xa_zrij|kJNu&+6ZB@@$Y@kaXSlEKEQ z&(|7w@5FADPa)?NoZYF!@A}fUbD?~Gawj;!a-$$gwA)hObFFuLDNyX4K)4;Nq79M9 zSYyW!9K3KteNYZYXRZ)YiQ2~n8(73bfPmu_*L^T{ndugI4%v917|pm~{>K(!!F*q1 zNMMjG=Y4-v&SUewgiV3<1sX@Asr=~BP*z^N~<@!;Dxa{~#Rz@=l; z<1qzMg~5%bA7mJgHMGR$Xupw)w&cG*QY9><|;Lw&XTmJ-a}t1|yTomJmhXvBM-B_kg7;|Fyb zXG!dGv0>A)mHBEMCdHgNBMLA4Q$oGPn?F-h$xQLxN^n%3i!YtS6wDs>I2(APQiJ(N zcjH?j4sbwC3hW0qP_z$X`61owIk*q<7@SUmkebV=G~qoB`(WxNd9d^?8L9xU_AF_D3DCk`?Zc7iUlL>>Q*%bR*pvBA}R; z7(E~$z#WSQL!H5tf+b4E>a&9 zgNkN>q*Q&9d*ZJWowVupf$Gm2?ny6(A?bP)4jQJ#dTps611LNy+0m5S7I{nt&7Ll* z-}t{#nCaGsWs(pR_ft(;1AVOfjs)UX>mcF2I*!d(ZF%3sJ+qyBGJT?1s$+@h)RtiC zlHDJ7BvxlHbHUqa^0Lm)lEVy?m6Pmu7?(e2z{W-p1%9`rVjU$b-T22j@NHgsAoe<6Dv zkMz#^UGFY!Or;&+Xx>jFh{zY-EHLzo*`s-x83cmZ zKd*`l|BOEwLmwj^qwiO8tkxS@#TDcJ{JkjGBmeO5ka!|AB4Q2Q9t_9cC0y_H5s@v7 z%@9e8?+aOK+!q@PMpF0>2$`QbiW8GNbnux}h6G%YV!hzbD&{aj=M{5|hATXI1?r2R z+$SdTQ;b!RH1XF+v~ZF5GdacW#pz*6Xz%eWTu9W$KRIc=wA)hKNu5MAJAXYOlEG>y zf&D=eaH2OF+uPqWrX{zhQ3KAmR?k-X3MBR^sQO)9pbZ0ZEZ}!127Z_2O-2^r z`x4^nIx&zto#a&NcJ>dQKKVHdLZLp~EAt8VBFTN1sDLL)}QFHJ^gk)Rj0zJ znNgRFkWjl=Ar*Kt{k*-&U%JZ;GlsH>r4G_StGM z&1-L=L(negGY?@NU_vEKdZn{tIXa_21+fK7YCmNr!r-CO4du$`-y7IiDVKhZkr z6lam4msmA)xGPh?;wqz3YgsxCFkeLGIB#hrHuCFwyP%NKfWnG~YlK%ub8>j629KVM zE<0J!rj?0RN#qg|U$*y$LKl zZwr3MT}W>|umst;LrPs^_f-+q&ybK_$;cEJ6(vBVS*Sr)po_R3zS97(bwL+BNM7Zd z24vOY!si58_p7zPfn}jE{apKLr>i&%4`orbwzk&L(Aa6`xF=FS({x~*aV$VMBwEb| zm>V{LeK1WS6@x0l(U)i^Kx)1-mj)zdn#-w_Q-e~~&XR{xLSa8p0d@ck6oV5W0EX6= z-Pzph3tw>_OMn8~%JSorM?0?%Zu#n~{GIt54#kn7U+H--A8UUJyY%_fOm*(dQP&T0 zstDM|%vLFx*&Yu}$|QemlK=aS5=Nx-+WcwHtJ5fasoXA<^zwepeTk*uxP^0|Oh=tSfx#v!>0(!HQ0W;mXnV<>d=@8Xg`nz{x0Q z@t129D|mZ144?xP*kZF6@K3f$rDW}!ex3d6?dkGM5cllfOeNK??`OO7J&v6?&Vv4j zzT~+?q+f9@O#?}Kc(C%9-=Umt&x}H$pLHrJy(%4{qqLckVPR-Qo_~IP*4^kJO!7-t zf>H62WA8+AC{i**r7I8`L~KUL1EP5z#*7b>rqgZn2hBMFM^SI!WNUJ!!sr_Cwj{Ic zCO^7fGO0i!!*OwOgOR?Pc09EN_?m^c+~wBaFNOH{PJo+5$aCi%)`B*`#5Dxmz7*Rm zl22~CIa1_PV~?BEXIR42xY(t)PY3+SK{dR!ZGP-}{?T2fRQ0{NzT;VS|H0#_Do_0*{4LTV;q=t$SqX_CZ?K;dTrMIDh16Ja z^42@N=mMz9I5RSRT%_uo@@`OLeM)XFmlGb)3D)%#e`G}XR>N}rx`jRUW>3c={6T+0 zsPx@+qJLEw>=y%GBagZ$(*5v<7ZzL$SSgmY3dFqD=!PPGXYA>ngeiaL!KUz4Y#v5B zrWyk=3_tz%j|NwZwEjvms1;xcJeniI{q22JRL47IpVE!ttlIj}G@5@}w?w9t?1+qv z{JqpJc3z{JE1L0}@NfIZ^i&QV2@B2Ci6;2IS`e1m8dy-0k|l%bj)++&LO}FuEi2j! z=KjmMHIl@0jN3o8@l_cr6UxD>_659>yos1xJ+z`LbY_F91&LNwh zHC7o(%GobpFEElHhNrGe2ZC3E*VDcwVda~?rx2PpeeS{q4-elLOQyqqtVfS`xi5S4 z&(@7LcT?fV<4glRZibWMQQ>3sUnuG31g|rZMNz@P?PhKtq{(>2mj>RNV9;U;mk)V{ z)muZ|zEERH8wdh+DU>N!I``eHyp}0|(B`)6$3B6#Ba&8SAN&(w3>VFRs zeROdg7LB-72(Ua2K6{n5rqx<&rJLF^>nom!-F*?uT~}siU+{rbS5hDDR<1mDQT5<4 zdH6hDw+}wksA1rfH!e55=LWWtx*pY7ve zu5F!V6&TRZ1OQW6bHZ)wW_J3_vJ9oS6HC;Dl+~A%&1ZvBfymm!@zJ~^b&++Y+PN{{ z{fu3_ClL0mBgdHxNO_(-C&c9XH-kRsre?vQm8S_Cdl3tr zK!le65_%~QblMK4y@#4+?LmdHu#*lO!fMdN1OLOAM*03(VfP9zyfNVjG($MYmggO z@!DAK5*0hZ{1Qd&vyKECD7n9L$7N;#<_fkp$`?V|yMM+4we*>rpX zYJ}=7-^$e~z3a#|>jFEL2R>sOt%8w??I*|dpFdza$$it*pg|;AD3oKV)o*96u4^!T zG>31C;Gw<(M=G^~QCvCM7icA8e7OWT4FfYhxo5wf>XT-l5#+cH^>CikD5Z(qKtLeTRmTf%3nRxcCNOUCa%w1m2a zK{ownq9~~TygT@5)c&~wA;T~FzYL|6Z{aH}$Dcg$_bLd*u4ulu1^kX5bjozA0pbP7_Y8!+aTL+qF4orc#!gFnLe9UM1Mhqg zhW7v;d%0%o|H6fGDc3MJDkm@r`x8tcHmi9@++KNzc(ArqJtuGj@!76}UwZid8RU9< zfOB`Twk;F$QNVFdt&zMVpivy@A_UQ&7ETDqC)vb!_$&`ko=booSVrDyqQ*)S zBJ{{d-U;EP^m5!>SVRgMRgedWN1+n1GN;ou(mZ`j;j8c3WEjxV*5KZ_My=Ckm;kW~ zDTLuO4V147C_}~@Pd>aT-P|mxvN}OB{N{UV-+cJ)=4OIECTSj_S$wG{jmt#zHzOU2 zSaxzkE~gIW>Va9is@U88VS#7n*l+3{#uf<>pRc>ZTi@Mb7=87YA_QNr^7KR5*W<_Hs}y*qj6lW$#5GiPAXC968x|`*V&mii~#%N zt=H`}wH80Y=Bt=aj(u^e=D35SESM7N;4EMRrYnkpyG@R=nOmgxiVZ=rWCF{gPkXDi z2XTrNdjZ}u>2hjEaZm6d#N=^?q(J>pPBByRNKY}-cM+Dnk_ZUwN2l4ralcQtj24?j zhRYWl4wHLgY)to3va+gd$4~BVo1?sFm=&Co6X~umFIr+xcx^oWd_}t)i;pP4Ts5QvtRD@#Yf}_5%rnG{9d^Hj6o*adjL0RW|qcQx_Sdl;AWx_CU|`i z5!kvZA&{Lb%bsY0T<-z~YeBFwAvds7u|%}$0os$e{B^m07{jktKXk^t+Apt5Hx5=> z!Qiuh`ckTc1$Z(wK$Jqa&M8}2Q^hUs!uTe)%I1Km+N;FdxA@OK6{g+UU zq{;kQcAL!GoLarwh;evRi07UE!p_h8yMwO7Rbl*f-23DCNdCNQa}Ma1nnN1zy#h2F zn>?_2?&5;OsOf8^df{9b*39`4soQqiiPfvnn3?;v5GT^khqV0V8RU|={n*MV_uMk4Q7atlgZV~A{A$;&GA=- zi7vSJFw8Qi^@@cC*s_3Bfk1p6aj$YK%K%L#IA>$Ze1{7_U>v^WosQR#;$ zK;b}guO=wLM``K5{&sD`1Cr*F6l~k7U_=!BW@4%v*ZNv!0dn?-|Ta9Lf>2l z6+$?Rjl4s|xJ){r<$QxSmHM~O$eMX*NM2@RTIg$Wvyx76*jaN!KT`m~VE<87bm!-{ za!N|?|5A>IF|}nQTMv{Ysmb@gG!x#Yr=O&?7+CSAq6cIM3IS#?$(k@3GM66&>0t;k zUrkI-?rItXpf|c-XIGbN+6xfHtEE(1|3}&pg0DsU1(zV&-im_pznY!vhc2^4C$nwP z3l8=QQTXXN%C5~f+h@6iB?l`=zb=q0w}%4$j-(=pL`nUbhPEz;@1JE8xBYxQt!7?kXdrgUfNSCLbB4Ko?xo!K7^g$?>lS3S_LWdu&kUly9# zEfbSD5r3ips)bn<3n}}SCxD_M@Rue3>)k}*5uJ>wx~PC74D#IDoPA^+Y<_^@U7uNg zo5q%KdTsN7C%oLW$ymMr3s1xao)N^2s>a-gvLOSUmm@VGgOEGT*+_ar*^5fqJl{h4 z7g)H_+!4o(_Jlfz{jIm0g_4{9Gi=&B$mlq7{{_e*Rw4tsj$<;+2#9j*;Oj^3<1mvm zNwh1e!W;ezVeD)@{{SVK_YwXVPw>xL(MUn#Ieu#-(EsI-EWZ50i*?p1O%G#>#0B7v zO9SK*U`q#uV^G~bL;`Fu>C%dh7;dGn3%rMx%jt)zBZVHBBuzSUS{t(fxbQ&e+NLaD zzHEuG9L`UF+kxhoQ5hgduwI%w!elw}k$QvK6NGxfue01Q4zu6dU-{ z@ejmUwp1mNqR7^7rQIsu+VD*?N$wUExRYEE=$w1~4DkQ;2QD|ab^y;k-yHWUPN?0v zC-I<6~(r4Bwy4 ze|B4${UtG38+fg}-uep&YiirlZKhf<0deoZR^MBPmWGcklw;ph5I*#@ikPfqnm=%P zK;$#HbcXf=`p?CUVgOZi6DS>u%PPpPGYHrv;{;Bk1Yw&%lNM(_1RB76(1lD_J zI(`|r3>YCOpAZOJ9ITq`6a#`T$aLec)8vI-S%6*8TVp? zwfNlSHE0080}6?->0OEiXALDKB?Sf4ja(le1(S0o01_C3EaqB$^6n8_V>JXd$pb9( zU2fZuLTLE;`9(xTn3!bqACUtmX#dxMfYyOvwRhCR_0FPF{>|_k#%#;513wcZqq$4z zm`@T!-z*&xcy~kgg+{Sm-Y^?~1iu}@Sw`lXOOF5_KeU76rRtDySosPiFkiC_o5hvw zQZIlP8CQoXjJN0VHf^49OVk(_8ylOFGAAV^G_kzu#lpkY(+snma-r#LDj03 zQQ7bDZOw^wsI939{c8;nPE3bD0VPzyXevH}RTV(sz| z7^FYmuEhoco=o(yEm=oLZgXQJNvuhvj%yJ5s&trpd1tI_Dr>62H;0!tBeP@zanWvH zP)hgt`P{<<$3FrXB&;UE?bbKftjkzV5v?siWNRR`yP;ti@CmTc3|K}!o0-NJ%3@K9 zwxoL#5P^sFIgLt}(*w7)j{xDs2mak*`DA09O)Wg_rSd6sZ2*W64M?h-q_yAQ#aAxg zU0BEgNTC~47rn56u!GMO9FDPVrUwZMGb~M2oMG)=2jaP#d&W`_P31_%+7}^He>-%% z60z+(cVgoDGUomJNE|xfE+AH0`t{AsOIq_6O1*`%thIF1{%+0x?>TaKGN-k2$kXwaWK@mF^L z#?MR?b+;X*3V6;^664tD%}p6%@Xh~xuNv^NEA1x3U)XDHj~A{*;aRV{2iO6k2{FL; zyGdH~X2vfdr?+WTBLs6Ay~N{ykKNDqGJZ9A59lfG=KfD5#V%5mW=UJM!%ue3(P#p< zyW`xM>byw~bacb_`OCvu(2SD9 z6?%ik7I395_WeWewPuCTLnCAum=Xckb#E-c9Q@Lxw^7 z$E=AKgx9@0zf@(V^tSO~z8_FjX){~WlF*e#YXDAqEL!79`%50miyww6g8o-0oZtKb z?T6D1SNfjzkrU1Rdy+x~p;a3-PHB+b2sr;e4AwVZ=nHA#9$M4Dq&n-;MYA~sK&cyt z-Nk`107|-^Hl@%=<=8|4lst-8+p zGbC=}oAdeGooYhjNpR0mNV`y@WXj`Smr&`xJa#<@;&7hlr@}z%GLp+mB^a(N3JooH zoEHUej&MT&IrPu(xNl}WH|J?dW}_>y#V;LR7b_4nQsTnfIhlaB7M`MowU!hku4(bu zO|borxo9o6Y|5K0NOI-+xZu#JLg6(+)xySE3v~QffFA-QA~9DUFMi4pkINu9jQJT< zk256<0tCCT4ZYtzSvZaFjU}_R>8n|%3PfKKNFT}0)o;C$dQaKtRBqA76nM!HZjwSB zM}8Q1wbh3ZH73L&ucHNC%$O$!HNJ%wqs>)JwGySGFEbbjiy1-SLM)v^qf~E?M+4)9 z8;8JKx($Bk#Dw3RZruk`W)K)^(HCkAX#l<~4b6&Xb2Hb^Y={u2npF9qH?|PClT%qA}LXZ(*wDYf+~=*3GNm4dt-A=Gok|+1q9%vIsoK`a`wXG583Zf#Hd;O zxvv7%&%u^rRJrxlmzliHA|kmfXAJ3_w#{Ha*_ghRcq3y>v|7Xb*D9MtG5K(w(e<(8 zf{GoR>n61wQBt66HjHTVc)W|OQz9{AY{mB*e z``mw_I%YFKsqwImPeJQv0e`eEz6a&Fd@qNQiS3}4OE!^V6|ISM;pqfmkSi1LqPkDY?@(0kRGV zc+EtB(+~tJs-gt09C5IQE*4Oc8pKleumK)l3*hdRQ$gK+Sc~&SNbvoIf$|J1f(eSt zn6ebU(~p7;ep>sZ{#|{}Y_!s_<(J@0THsPh_$^BCqAxmEb}wWwwX2wo9L|+i?C+(J(t;DUFf0L^ScI&8q>(8g zt2|Z38<}?}$r_6htgRpxfSR8>^{K7M$K1CG)lF5pxB zx>nSj+B~kL#F=3ZOO`gXpY6KEXk|=-SiJ{aGLR?k3s-Otj~U=dJrE6&1Z1tEbf7_E zzjcI&@L|l-rOmVA_FNCe6{YI-b6tzByWVUGdK;3$Ac&8c6$zV{*vpOml09`nWlPzs zF21gLQKXQL(NWdPnXKUrAnaOJ#%?Cm@ZiOg_M-$`8Ae<^I%A$Jlna3JRa5EST4vk%Y@V9K~m?9}wtjd1-_>Y^rQfLZC0;22=qg`YEAHVGk z>lv7tk>T~x-;4+L_V!YW1>8&&D|Qk-I#7Jc$4VRbo~?oub-{n+|kWh5H|rw8lS`&^$nnxQ=o@dGq!u2YyEa6zs8@~V$*2Yb$07tgUW zF1k8p{(=6C{|)+|F8AKI%_UrIbuLmmld$^gnvYp_VFtdp*2{$sb-yD#jnUVBUYh~? zfjJCAApT?eJvk{USfB50Tfk=3=Z;t;{fbj{Vdim%$irB@@E2K`X&II^Y+r|zev}=( zOM3`!q=8pMqv2Gotr?Fe9r!Jzi|bT{!4{9Ev2 zxt1*kUxsDP*ZAjCAZ z45vjUG;LHJL9|aSKZxuxJo;WL{b2l~6`R>ZU*c)Y#S~J>Jkl&LFE0q!CxrOlxPaPs zA0*%APdiK{J&dyuX8Bx(n_QB@!Z2kEzX(aX;IJ6+)xTzkwK*O}A*iiV5=xrO{U z`X{mX9~e6vM@`Zs5E#9^eXZfTwpPgiMB11s=u22toG~`_v+@qj;NIMi{5kq7N1(k2 z8{1~Lm317Fne={Gu0n#Z)@}$wdyIj7PJ3&_l=0x0aCe0vySkhSNI*K3IDu>rAbf`bAoni8v`muI-;q^Uw*U=54B!Vq zpENt;@idvYZ3e#ypB{kkK-EY6|3TFWgd=>im|FgCXpix$wliOwQMoZ;1+~Io;Y4Ov z*{c7kKsy-mvEA1+{K@;9IrS~PQ;Yl) z1b-U_q(uH=g|fp8Vh`&DWTL3?C*R=zo!?MWUd2tDyY-eygRbnOJI2Qf50anOTp6#u zyRWlc`TJjiCCRS41R$LRSizz+Q~S2%YVjTuGsCQGVNtDv?ni4qUcJ%d^gPOWf^zFC zmc(^Pe(o@YWUX%>xl%gI@{#T=V5C2+iDsmTb&YAjD|ZU2(-Y=FP1}7DQ?C3?KeN*- zfZBL-arFgy^lVx8;L?=U&27nwE6>ABB%3+36<4eYoF{j9s|lK_xE<%o5M+ zjN2ZS7#ahD7o}r>oxWV51dYd4l}TpxHCFzVdH-g2kSJd6;lH9GmLQRUUe%0PNBC#0 z+xz>@&xy?~ERx$$<%vN80CS=hgVU>!voZG;Y$y8aG5g3pfKlnI@X6fs6EQeAI6$ij zT&(Kq>OejZ2n3oLS+_33j0;%xu#kyQ_#*;U?PR4dVfXuW^bM*yqU4@o4r&Z6HN3iN zF0^=?eQ^&71s0*EsH7yK{ZH|PYFnnuL^}e1nGDDuM51zoK_mH~0pbC2B9f9MWrwQ% zl*}qs%uA!Ja?xXllKv|X>Xi6b9Q2Tu@+b|We-Owag2aB_^Foz6T@xVFIM*a+fL~0; zX9)(RqnYx8$iT_;7n91V7v{9GnHk4UvXi&Qje7^vLff?IO!ozHCboE5jVmX&01(KO zDQ}Aj&_F|@Ki{pU> z1870$uXJ=!;B#r4Um;Gc%7RaU6d=yDg>X8yD>X_ip5!rdpdbTsl7-tj{z%f{TERm< zqux0;cY`Om+L2|&|KGVmB@eklHve80a1ygX(EXpQ;$1QXVrN{Mko3T#rBZ(dhNh@; zf+I+xUy9|c$WHFF*r(Rf1rR3ZYE6GLhwR`tnr>%XZ7>+lmE(2=`9Iz=n=uBDAp_UP zM2oim*Rq2dX{BUj2-=K50Bs?r(}f_6eBpqboepse&>p;_-U)|&RWUR)EK$jR>A7FG0otk9Z2D{R}_l;en+=?HBG zN7@dMrv=${g=6>~_7EK(mEH5=`5*y|NVC^|GLz~C3^vw^gZ!XjlTbzGo$?Cr2bq3< zH)9eAJi^&~tkOVE91F%q0`cd&!#*lQ1$Fgt9h0{&+%|@Qq{FMLtAHaY6Pr%O4Il#a zCL^E=j3ML@y}xm5qM|Yr1GIGqRed*pY0q!JHKOgLaWkh>r!prii|o$)=lndN zWBOWEl`v@coOtf59UcXRvR4fQK((e&b8{a8BVIQ)Z+U4qQB-Zw2Ph1uc5|uMftY)MU#8F+iD!+HOV z%KteaKMAuL!FxDcC{6BLNf5|TE99jI>#HhB7N7T&BBUV(oPf^q+Mv$9cxIdX`75UP z5BWe3sy_zX=`xZgp}qA8ssLR;VUwRIOz8tl1OnOM%kh}$N|UA0Q7*up3Ndic$?yTc zL6Kwt#t%?3gQKIH#v@q*m4Mt#lFsMHXUzyP^fuSESE;P8scpo?#s7LxCLY0RC{UK5 zyv>udGwnT)-^uTeeGqq?l?anS&G5j$>NIYs0?=&)HAokjI}NfGRE#5}KU= z!9~6sMe*EQ0QnqQR_CgUUc%Bi48~rALHi4hlK_{5h(?(3w_;>Fjh3!1F(Ki`_O_7s zf$14WzDW7J|ges61F~|q5>py7)bCy5+yK-*o)@69)^3mjs-xYm8zu3ek@zN zT)z|ma8S?|pJQq!BW&7-Rqh!ad;>_){sg9ik2i)njhfIYUjDG%lY*DM`uD?Y$tB&8yRG zKsOsL3eee)+V_c>^T-JaFl*2q_U$h~T=(mvau!pLcjx^4^}$M4hOYTkCa(?fER?9` z#sN{vx=vxdLOtt`fhZ?EUY!89&oH)TWn~5EKc!`5udlAmQRjd}jtENM{^4PaKtQ-B zofC&7BlE=K%|i_~mw*DY z?&k!Pa??QPDX@U-9Bmr-nsG;khXYyOb<_QX0Iwg&!##;!Sy@RK>xO?w2JROZxS$2{ zIkgb^x_)poF+IDbS?Ee2!0kQ$u1IfAz%y3P{gCJC_>Lu-6Xz=5c?cGiF4xUEku-*y yluW&+DW?+Lph^QmSrrX~(MMk6|9=WE1CxE2TM~=*u7Pa#C-O2X(iM`X!T$?`*Sq=v diff --git a/docs/images/ComponentManagers.png b/docs/images/ComponentManagers.png deleted file mode 100644 index ae52a35718a82846d19185f2e5bed573d67cfbcc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17411 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

    L`n{HvGzzHFon;CZ>OTfI1 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 diff --git a/docs/images/LogicStorageDIP.png b/docs/images/LogicStorageDIP.png deleted file mode 100644 index 871157f5a9c35321a8004b0017fe6a0533129e1f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5808 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 TX#zhdLZYs$rBtk7`R2a>OJ+-` diff --git a/docs/images/ParserClasses.png b/docs/images/ParserClasses.png deleted file mode 100644 index 2caeeb1a067e5e2459376de1a91699a661b41855..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28856 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 diff --git a/docs/images/StorageClassDiagram.png b/docs/images/StorageClassDiagram.png deleted file mode 100644 index 18fa4d0d51f03505593ab4dbadd5821491548e4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29426 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�y3#e%kgElqe^sH=7 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 DN7m$8 diff --git a/docs/images/UiClassDiagram.png b/docs/images/UiClassDiagram.png deleted file mode 100644 index 11f06d686714cf02d88c4b32879bb71b11f56e13..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48363 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 diff --git a/docs/images/UndoRedoState0.png b/docs/images/UndoRedoState0.png deleted file mode 100644 index c5f91b5853370c1d6a8b9f5f9a9724e4a4a2c429..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6619 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 diff --git a/docs/images/UndoRedoState2.png b/docs/images/UndoRedoState2.png deleted file mode 100644 index 20853694e0338a708b62ce3a20c72bff00c0b8e9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7855 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 diff --git a/docs/images/UndoRedoState3.png b/docs/images/UndoRedoState3.png deleted file mode 100644 index 1a9551b31bea8ffedd9db1094f06ef6b74431fe8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7588 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 E2LvS7wEzGB diff --git a/docs/images/UndoRedoState4.png b/docs/images/UndoRedoState4.png deleted file mode 100644 index 46dfae78c94886758c6d6c3c525db41b361d14e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7605 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 diff --git a/docs/images/UndoRedoState5.png b/docs/images/UndoRedoState5.png deleted file mode 100644 index f45889b5fdff0652cf017fd906297d229e49c8fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9427 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 diff --git a/docs/images/tracing/LogicSequenceDiagram.png b/docs/images/tracing/LogicSequenceDiagram.png deleted file mode 100644 index 25c8b66b9f12ddad7feb7610fbdb2012d612a91a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16688 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 jA=0.1.90" + } + }, + "node_modules/@fortawesome/fontawesome-free": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.2.tgz", + "integrity": "sha512-m5cPn3e2+FDCOgi1mz0RexTUvvQibBebOUlUlW0+YrMjDTPkiJ6VTKukA1GRsvRw+12KyJndNjj0O4AgTxm2Pg==", + "dev": true, + "hasInstallScript": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@kwsites/file-exists": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "dev": true, + "dependencies": { + "debug": "^4.1.1" + } + }, + "node_modules/@kwsites/file-exists/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@kwsites/file-exists/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@kwsites/promise-deferred": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", + "dev": true + }, + "node_modules/@markbind/core": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@markbind/core/-/core-5.1.0.tgz", + "integrity": "sha512-YAXjH+qCXnrBzpKIAJkayVLmyIUaG/8Dms3Gpd2VIufeZyW8w0diXdgKSsymjzodTMgghZMdxG3Qpng833ARPg==", + "dev": true, + "dependencies": { + "@fortawesome/fontawesome-free": "^6.4.0", + "@markbind/core-web": "5.1.0", + "@primer/octicons": "^15.0.1", + "@sindresorhus/slugify": "^0.9.1", + "@tlylt/markdown-it-imsize": "^3.0.0", + "bluebird": "^3.7.2", + "bootswatch": "5.1.3", + "cheerio": "^0.22.0", + "crypto-js": "^4.0.0", + "csv-parse": "^4.14.2", + "ensure-posix-path": "^1.1.1", + "fastmatter": "^2.1.1", + "fs-extra": "^9.0.1", + "gh-pages": "^2.1.1", + "highlight.js": "^10.4.1", + "htmlparser2": "^3.10.1", + "ignore": "^5.1.4", + "js-beautify": "1.14.3", + "katex": "^0.15.6", + "lodash": "^4.17.15", + "markdown-it": "^12.3.2", + "markdown-it-attrs": "^4.1.3", + "markdown-it-emoji": "^1.4.0", + "markdown-it-linkify-images": "^3.0.0", + "markdown-it-mark": "^3.0.0", + "markdown-it-regexp": "^0.4.0", + "markdown-it-sub": "^1.0.0", + "markdown-it-sup": "^1.0.0", + "markdown-it-table-of-contents": "^0.4.4", + "markdown-it-task-lists": "^2.1.1", + "markdown-it-texmath": "^1.0.0", + "markdown-it-video": "^0.6.3", + "material-icons": "^1.9.1", + "moment": "^2.29.4", + "nunjucks": "3.2.2", + "path-is-inside": "^1.0.2", + "simple-git": "^2.17.0", + "url-parse": "^1.5.10", + "uuid": "^8.3.1", + "vue": "2.6.14", + "vue-server-renderer": "2.6.14", + "vue-template-compiler": "2.6.14", + "walk-sync": "^2.0.2", + "winston": "^2.4.4" + } + }, + "node_modules/@markbind/core-web": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@markbind/core-web/-/core-web-5.1.0.tgz", + "integrity": "sha512-TRzz8ZCr25pylKvFxF/WwXDi4Gbtsb2OLXV61WyTFqVy03tFoEJ2mqncpbliI9DrfDdKWcm1YZPgDCedVkYjKA==", + "dev": true + }, + "node_modules/@primer/octicons": { + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@primer/octicons/-/octicons-15.2.0.tgz", + "integrity": "sha512-4cHZzcZ3F/HQNL4EKSaFyVsW7XtITiJkTeB1JDDmRuP/XobyWyF9gWxuV9c+byUa8dOB5KNQn37iRvNrIehPUQ==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1" + } + }, + "node_modules/@sindresorhus/slugify": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-0.9.1.tgz", + "integrity": "sha512-b6heYM9dzZD13t2GOiEQTDE0qX+I1GyOotMwKh9VQqzuNiVdPVT8dM43fe9HNb/3ul+Qwd5oKSEDrDIfhq3bnQ==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5", + "lodash.deburr": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@tlylt/markdown-it-imsize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@tlylt/markdown-it-imsize/-/markdown-it-imsize-3.0.0.tgz", + "integrity": "sha512-6kTM+vRJTuN2UxNPyJ8yC+NHrzS+MxVHV+z+bDxSr/Fd7eTah2+otLKC2B17YI/1lQnSumA2qokPGuzsA98c6g==", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "node_modules/a-sync-waterfall": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "dependencies": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/apache-crypt": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.5.tgz", + "integrity": "sha512-ICnYQH+DFVmw+S4Q0QY2XRXD8Ne8ewh8HgbuFH4K7022zCxgHM0Hz1xkRnUlEfAXNbwp1Cnhbedu60USIfDxvg==", + "dev": true, + "dependencies": { + "unix-crypt-td-js": "^1.1.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/apache-md5": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.7.tgz", + "integrity": "sha512-JtHjzZmJxtzfTSjsCyHgPR155HBe5WGyUyHTaEkfy46qhwCFKx1Epm6nAxgUG3WfUZP1dWhGqj9Z2NOBeZ+uBw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "node_modules/at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "node_modules/bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/bootswatch": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bootswatch/-/bootswatch-5.1.3.tgz", + "integrity": "sha512-NmZFN6rOCoXWQ/PkzmD8FFWDe24kocX9OXWHNVaLxVVnpqpAzEbMFsf8bAfKwVtpNXibasZCzv09B5fLieAh2g==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cheerio": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA==", + "dev": true, + "dependencies": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash.assignin": "^4.0.9", + "lodash.bind": "^4.1.4", + "lodash.defaults": "^4.0.1", + "lodash.filter": "^4.4.0", + "lodash.flatten": "^4.2.0", + "lodash.foreach": "^4.3.0", + "lodash.map": "^4.4.0", + "lodash.merge": "^4.4.0", + "lodash.pick": "^4.2.1", + "lodash.reduce": "^4.4.0", + "lodash.reject": "^4.4.0", + "lodash.some": "^4.4.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true, + "engines": { + "node": ">= 12" + } + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==", + "dev": true + }, + "node_modules/css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA==", + "dev": true, + "dependencies": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "node_modules/css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/csv-parse": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.16.3.tgz", + "integrity": "sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==", + "dev": true + }, + "node_modules/cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha512-TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true, + "engines": { + "node": ">= 0.8", + "npm": "1.2.8000 || >= 1.4.16" + } + }, + "node_modules/dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "dependencies": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "node_modules/editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", + "dev": true, + "dependencies": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + }, + "bin": { + "editorconfig": "bin/editorconfig" + } + }, + "node_modules/editorconfig/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/email-addresses": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", + "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/ensure-posix-path": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ensure-posix-path/-/ensure-posix-path-1.1.1.tgz", + "integrity": "sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw==", + "dev": true + }, + "node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + } + }, + "node_modules/event-stream/node_modules/split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", + "dev": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/event-stream/node_modules/stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", + "dev": true, + "engines": { + "node": "> 0.1.90" + } + }, + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "node_modules/fastmatter": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fastmatter/-/fastmatter-2.1.1.tgz", + "integrity": "sha512-NFrjZEPJZTexoJEuyM5J7n4uFaLf0dOI7Ok4b2IZXOYBqCp1Bh5RskANmQ2TuDsz3M35B1yL2AP/Rn+kp85KeA==", + "dev": true, + "dependencies": { + "js-yaml": "^3.13.0", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through2": "^3.0.1" + } + }, + "node_modules/faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fecha": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz", + "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==", + "dev": true + }, + "node_modules/figlet": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.2.tgz", + "integrity": "sha512-WOn21V8AhyE1QqVfPIVxe3tupJacq1xGkPTB4iagT6o+P2cAgEOOwIxMftr4+ZCTI6d551ij9j61DFr0nsP2uQ==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/file-stream-rotator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.4.1.tgz", + "integrity": "sha512-W3aa3QJEc8BS2MmdVpQiYLKHj3ijpto1gMDlsgCRSKfIUe6MwkcpODGPQ3vZfb0XvCeCqlu9CBQTN7oQri2TZQ==", + "dev": true, + "dependencies": { + "moment": "^2.11.2" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "node_modules/filename-reserved-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", + "integrity": "sha512-UZArj7+U+2reBBVCvVmRlyq9D7EYQdUtuNN+1iz7pF1jGcJ2L0TjiRCxsTZfj2xFbM4c25uGCUDpKTHA7L2TKg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/filenamify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", + "integrity": "sha512-DKVP0WQcB7WaIMSwDETqImRej2fepPqvXQjaVib7LRZn9Rxn5UbvK2tYTqGf1A1DkIprQQkG4XSQXSOZp7Q3GQ==", + "dev": true, + "dependencies": { + "filename-reserved-regex": "^1.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/filenamify-url": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz", + "integrity": "sha512-O9K9JcZeF5VdZWM1qR92NSv1WY2EofwudQayPx5dbnnFl9k0IcZha4eV/FGkjnBK+1irOQInij0yiooCHu/0Fg==", + "dev": true, + "dependencies": { + "filenamify": "^1.0.0", + "humanize-url": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", + "dev": true + }, + "node_modules/fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "dependencies": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/gh-pages": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-2.2.0.tgz", + "integrity": "sha512-c+yPkNOPMFGNisYg9r4qvsMIjVYikJv7ImFOhPIVPt0+AcRUamZ7zkGRLHz7FKB0xrlZ+ddSOJsZv9XAFVXLmA==", + "dev": true, + "dependencies": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify-url": "^1.0.0", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "bin": { + "gh-pages": "bin/gh-pages.js", + "gh-pages-clean": "bin/gh-pages-clean.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/gh-pages/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "node_modules/gh-pages/node_modules/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/gh-pages/node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/gh-pages/node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/http-auth": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-3.1.3.tgz", + "integrity": "sha512-Jbx0+ejo2IOx+cRUYAGS1z6RGc6JfYUNkysZM4u4Sfk1uLlGv814F7/PIjQQAuThLdAWxb74JMGd5J8zex1VQg==", + "dev": true, + "dependencies": { + "apache-crypt": "^1.1.2", + "apache-md5": "^1.0.6", + "bcryptjs": "^2.3.0", + "uuid": "^3.0.0" + }, + "engines": { + "node": ">=4.6.1" + } + }, + "node_modules/http-auth/node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-errors/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "node_modules/humanize-url": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz", + "integrity": "sha512-RtgTzXCPVb/te+e82NDhAc5paj+DuKSratIGAr+v+HZK24eAQ8LMoBGYoL7N/O+9iEc33AKHg45dOMKw3DNldQ==", + "dev": true, + "dependencies": { + "normalize-url": "^1.0.0", + "strip-url-auth": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "node_modules/js-beautify": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.3.tgz", + "integrity": "sha512-f1ra8PHtOEu/70EBnmiUlV8nJePS58y9qKjl4JHfYWlFH6bo7ogZBz//FAZp7jDuXtYnGYKymZPlrg2I/9Zo4g==", + "dev": true, + "dependencies": { + "config-chain": "^1.1.13", + "editorconfig": "^0.15.3", + "glob": "^7.1.3", + "nopt": "^5.0.0" + }, + "bin": { + "css-beautify": "js/bin/css-beautify.js", + "html-beautify": "js/bin/html-beautify.js", + "js-beautify": "js/bin/js-beautify.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "dependencies": { + "universalify": "^2.0.0" + }, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/katex": { + "version": "0.15.6", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.15.6.tgz", + "integrity": "sha512-UpzJy4yrnqnhXvRPhjEuLA4lcPn6eRngixW7Q3TJErjg3Aw2PuLFBzTkdUb89UtumxjhHTqL3a5GDGETMSwgJA==", + "dev": true, + "funding": [ + "https://opencollective.com/katex", + "https://github.com/sponsors/katex" + ], + "dependencies": { + "commander": "^8.0.0" + }, + "bin": { + "katex": "cli.js" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/live-server": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/live-server/-/live-server-1.2.1.tgz", + "integrity": "sha512-Yn2XCVjErTkqnM3FfTmM7/kWy3zP7+cEtC7x6u+wUzlQ+1UW3zEYbbyJrc0jNDwiMDZI0m4a0i3dxlGHVyXczw==", + "dev": true, + "dependencies": { + "chokidar": "^2.0.4", + "colors": "latest", + "connect": "^3.6.6", + "cors": "latest", + "event-stream": "3.3.4", + "faye-websocket": "0.11.x", + "http-auth": "3.1.x", + "morgan": "^1.9.1", + "object-assign": "latest", + "opn": "latest", + "proxy-middleware": "latest", + "send": "latest", + "serve-index": "^1.9.1" + }, + "bin": { + "live-server": "live-server.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/live-server/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/live-server/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/live-server/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/live-server/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/live-server/node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/live-server/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/live-server/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/live-server/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", + "dev": true + }, + "node_modules/lodash.assignin": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", + "integrity": "sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg==", + "dev": true + }, + "node_modules/lodash.bind": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", + "integrity": "sha512-lxdsn7xxlCymgLYo1gGvVrfHmkjDiyqVv62FAeF2i5ta72BipE1SLxw8hPEPLhD4/247Ijw07UQH7Hq/chT5LA==", + "dev": true + }, + "node_modules/lodash.deburr": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", + "integrity": "sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==", + "dev": true + }, + "node_modules/lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "dev": true + }, + "node_modules/lodash.filter": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", + "integrity": "sha512-pXYUy7PR8BCLwX5mgJ/aNtyOvuJTdZAo9EQFUvMIYugqmJxnrYaANvTbgndOzHSCSR0wnlBBfRXJL5SbWxo3FQ==", + "dev": true + }, + "node_modules/lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true + }, + "node_modules/lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==", + "dev": true + }, + "node_modules/lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", + "dev": true + }, + "node_modules/lodash.reduce": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", + "integrity": "sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw==", + "dev": true + }, + "node_modules/lodash.reject": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", + "integrity": "sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ==", + "dev": true + }, + "node_modules/lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", + "integrity": "sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ==", + "dev": true + }, + "node_modules/lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dev": true, + "dependencies": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "node_modules/lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dev": true, + "dependencies": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "node_modules/logform": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz", + "integrity": "sha512-em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg==", + "dev": true, + "dependencies": { + "colors": "^1.2.1", + "fast-safe-stringify": "^2.0.4", + "fecha": "^2.3.3", + "ms": "^2.1.1", + "triple-beam": "^1.2.0" + } + }, + "node_modules/logform/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", + "dev": true + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/markbind-cli": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/markbind-cli/-/markbind-cli-5.1.0.tgz", + "integrity": "sha512-6POI1Q++2aZa+Udk/oQ6LX1oNPbKUBDY0mN3Up7VOFeK+XYW51faxuCk2Q91JTBxYRKLNtshxf0y12kB4Cj9Qw==", + "dev": true, + "dependencies": { + "@markbind/core": "5.1.0", + "@markbind/core-web": "5.1.0", + "bluebird": "^3.7.2", + "chalk": "^3.0.0", + "cheerio": "^0.22.0", + "chokidar": "^3.3.0", + "colors": "1.4.0", + "commander": "^8.1.0", + "figlet": "^1.2.4", + "find-up": "^4.1.0", + "fs-extra": "^9.0.1", + "live-server": "1.2.1", + "lodash": "^4.17.15", + "url-parse": "^1.5.10", + "winston": "^2.4.4", + "winston-daily-rotate-file": "^3.10.0" + }, + "bin": { + "markbind": "index.js" + } + }, + "node_modules/markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it-attrs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/markdown-it-attrs/-/markdown-it-attrs-4.1.6.tgz", + "integrity": "sha512-O7PDKZlN8RFMyDX13JnctQompwrrILuz2y43pW2GagcwpIIElkAdfeek+erHfxUOlXWPsjFeWmZ8ch1xtRLWpA==", + "dev": true, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "markdown-it": ">= 9.0.0" + } + }, + "node_modules/markdown-it-emoji": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz", + "integrity": "sha512-QCz3Hkd+r5gDYtS2xsFXmBYrgw6KuWcJZLCEkdfAuwzZbShCmCfta+hwAMq4NX/4xPzkSHduMKgMkkPUJxSXNg==", + "dev": true + }, + "node_modules/markdown-it-linkify-images": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/markdown-it-linkify-images/-/markdown-it-linkify-images-3.0.0.tgz", + "integrity": "sha512-Vs5yGJa5MWjFgytzgtn8c1U6RcStj3FZKhhx459U8dYbEE5FTWZ6mMRkYMiDlkFO0j4VCsQT1LT557bY0ETgtg==", + "dev": true, + "dependencies": { + "markdown-it": "^13.0.1" + } + }, + "node_modules/markdown-it-linkify-images/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/markdown-it-linkify-images/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/markdown-it-linkify-images/node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/markdown-it-linkify-images/node_modules/markdown-it": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", + "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/markdown-it-mark": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/markdown-it-mark/-/markdown-it-mark-3.0.1.tgz", + "integrity": "sha512-HyxjAu6BRsdt6Xcv6TKVQnkz/E70TdGXEFHRYBGLncRE9lBFwDNLVtFojKxjJWgJ+5XxUwLaHXy+2sGBbDn+4A==", + "dev": true + }, + "node_modules/markdown-it-regexp": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/markdown-it-regexp/-/markdown-it-regexp-0.4.0.tgz", + "integrity": "sha512-0XQmr46K/rMKnI93Y3CLXsHj4jIioRETTAiVnJnjrZCEkGaDOmUxTbZj/aZ17G5NlRcVpWBYjqpwSlQ9lj+Kxw==", + "dev": true + }, + "node_modules/markdown-it-sub": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/markdown-it-sub/-/markdown-it-sub-1.0.0.tgz", + "integrity": "sha512-z2Rm/LzEE1wzwTSDrI+FlPEveAAbgdAdPhdWarq/ZGJrGW/uCQbKAnhoCsE4hAbc3SEym26+W2z/VQB0cQiA9Q==", + "dev": true + }, + "node_modules/markdown-it-sup": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/markdown-it-sup/-/markdown-it-sup-1.0.0.tgz", + "integrity": "sha512-E32m0nV9iyhRR7CrhnzL5msqic7rL1juWre6TQNxsnApg7Uf+F97JOKxUijg5YwXz86lZ0mqfOnutoryyNdntQ==", + "dev": true + }, + "node_modules/markdown-it-table-of-contents": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz", + "integrity": "sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw==", + "dev": true, + "engines": { + "node": ">6.4.0" + } + }, + "node_modules/markdown-it-task-lists": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz", + "integrity": "sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==", + "dev": true + }, + "node_modules/markdown-it-texmath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/markdown-it-texmath/-/markdown-it-texmath-1.0.0.tgz", + "integrity": "sha512-4hhkiX8/gus+6e53PLCUmUrsa6ZWGgJW2XCW6O0ASvZUiezIK900ZicinTDtG3kAO2kon7oUA/ReWmpW2FByxg==", + "dev": true + }, + "node_modules/markdown-it-video": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/markdown-it-video/-/markdown-it-video-0.6.3.tgz", + "integrity": "sha512-T4th1kwy0OcvyWSN4u3rqPGxvbDclpucnVSSaH3ZacbGsAts964dxokx9s/I3GYsrDCJs4ogtEeEeVP18DQj0Q==", + "dev": true + }, + "node_modules/markdown-it/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/matcher-collection": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/matcher-collection/-/matcher-collection-2.0.1.tgz", + "integrity": "sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ==", + "dev": true, + "dependencies": { + "@types/minimatch": "^3.0.3", + "minimatch": "^3.0.2" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/material-icons": { + "version": "1.13.11", + "resolved": "https://registry.npmjs.org/material-icons/-/material-icons-1.13.11.tgz", + "integrity": "sha512-kp2oAdaqo/Zp6hpTZW01rOgDPWmxBUszSdDzkRm1idCjjNvdUMnqu8qu58cll6CObo+o0cydOiPLdoSugLm+mQ==", + "dev": true + }, + "node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "dev": true, + "dependencies": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/nan": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", + "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==", + "dev": true, + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==", + "dev": true, + "dependencies": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/nunjucks": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.2.tgz", + "integrity": "sha512-KUi85OoF2NMygwODAy28Lh9qHmq5hO3rBlbkYoC8v377h4l8Pt5qFjILl0LWpMbOrZ18CzfVVUvIHUIrtED3sA==", + "dev": true, + "dependencies": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "commander": "^5.1.0" + }, + "bin": { + "nunjucks-precompile": "bin/precompile" + }, + "engines": { + "node": ">= 6.9.0" + }, + "optionalDependencies": { + "chokidar": "^3.3.0" + } + }, + "node_modules/nunjucks/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/opn": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz", + "integrity": "sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==", + "deprecated": "The package has been renamed to `open`", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "dev": true, + "dependencies": { + "through": "~2.3" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true + }, + "node_modules/proxy-middleware": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", + "integrity": "sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "node_modules/query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "node_modules/resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safe-stable-stringify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", + "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/send/node_modules/on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/send/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "node_modules/sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==", + "dev": true + }, + "node_modules/simple-git": { + "version": "2.48.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-2.48.0.tgz", + "integrity": "sha512-z4qtrRuaAFJS4PUd0g+xy7aN4y+RvEt/QTJpR184lhJguBA1S/LsVlvE/CM95RsYMOFJG3NGGDjqFCzKU19S/A==", + "dev": true, + "dependencies": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "debug": "^4.3.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/steveukx/" + } + }, + "node_modules/simple-git/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/simple-git/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "dev": true, + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true + }, + "node_modules/split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "dependencies": { + "through": "2" + }, + "engines": { + "node": "*" + } + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stream-combiner": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", + "dev": true, + "dependencies": { + "duplexer": "~0.1.1", + "through": "~2.3.4" + } + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string_decoder/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-url-auth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz", + "integrity": "sha512-++41PnXftlL3pvI6lpvhSEO+89g1kIJC4MYB5E6yH+WHa5InIqz51yGd1YOGd7VNSNdoEOfzTMqbAM/2PbgaHQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/triple-beam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", + "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", + "dev": true + }, + "node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/union-value/node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unix-crypt-td-js": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz", + "integrity": "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==", + "dev": true + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vue": { + "version": "2.6.14", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz", + "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==", + "dev": true + }, + "node_modules/vue-server-renderer": { + "version": "2.6.14", + "resolved": "https://registry.npmjs.org/vue-server-renderer/-/vue-server-renderer-2.6.14.tgz", + "integrity": "sha512-HifYRa/LW7cKywg9gd4ZtvtRuBlstQBao5ZCWlg40fyB4OPoGfEXAzxb0emSLv4pBDOHYx0UjpqvxpiQFEuoLA==", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "hash-sum": "^1.0.2", + "he": "^1.1.0", + "lodash.template": "^4.5.0", + "lodash.uniq": "^4.5.0", + "resolve": "^1.2.0", + "serialize-javascript": "^3.1.0", + "source-map": "0.5.6" + } + }, + "node_modules/vue-server-renderer/node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vue-server-renderer/node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vue-server-renderer/node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.6.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz", + "integrity": "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "node_modules/walk-sync": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/walk-sync/-/walk-sync-2.2.0.tgz", + "integrity": "sha512-IC8sL7aB4/ZgFcGI2T1LczZeFWZ06b3zoHH7jBPyHxOtIIz1jppWHjjEXkOFvFojBVAK9pV7g47xOZ4LW3QLfg==", + "dev": true, + "dependencies": { + "@types/minimatch": "^3.0.3", + "ensure-posix-path": "^1.1.0", + "matcher-collection": "^2.0.0", + "minimatch": "^3.0.4" + }, + "engines": { + "node": "8.* || >= 10.*" + } + }, + "node_modules/websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "dependencies": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/winston": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.6.tgz", + "integrity": "sha512-J5Zu4p0tojLde8mIOyDSsmLmcP8I3Z6wtwpTDHx1+hGcdhxcJaAmG4CFtagkb+NiN1M9Ek4b42pzMWqfc9jm8w==", + "dev": true, + "dependencies": { + "async": "^3.2.3", + "colors": "1.0.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "stack-trace": "0.0.x" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/winston-compat": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/winston-compat/-/winston-compat-0.1.5.tgz", + "integrity": "sha512-EPvPcHT604AV3Ji6d3+vX8ENKIml9VSxMRnPQ+cuK/FX6f3hvPP2hxyoeeCOCFvDrJEujalfcKWlWPvAnFyS9g==", + "dev": true, + "dependencies": { + "cycle": "~1.0.3", + "logform": "^1.6.0", + "triple-beam": "^1.2.0" + }, + "engines": { + "node": ">= 6.4.0" + } + }, + "node_modules/winston-daily-rotate-file": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-3.10.0.tgz", + "integrity": "sha512-KO8CfbI2CvdR3PaFApEH02GPXiwJ+vbkF1mCkTlvRIoXFI8EFlf1ACcuaahXTEiDEKCii6cNe95gsL4ZkbnphA==", + "dev": true, + "dependencies": { + "file-stream-rotator": "^0.4.1", + "object-hash": "^1.3.0", + "semver": "^6.2.0", + "triple-beam": "^1.3.0", + "winston-compat": "^0.1.4", + "winston-transport": "^4.2.0" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "winston": "^2 || ^3" + } + }, + "node_modules/winston-daily-rotate-file/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/winston-transport": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", + "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", + "dev": true, + "dependencies": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "engines": { + "node": ">= 6.4.0" + } + }, + "node_modules/winston-transport/node_modules/fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "dev": true + }, + "node_modules/winston-transport/node_modules/logform": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", + "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", + "dev": true, + "dependencies": { + "@colors/colors": "1.5.0", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + } + }, + "node_modules/winston-transport/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/winston/node_modules/async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "node_modules/winston/node_modules/colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "dev": true, + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + }, + "dependencies": { + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true + }, + "@fortawesome/fontawesome-free": { + "version": "6.4.2", + "resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-6.4.2.tgz", + "integrity": "sha512-m5cPn3e2+FDCOgi1mz0RexTUvvQibBebOUlUlW0+YrMjDTPkiJ6VTKukA1GRsvRw+12KyJndNjj0O4AgTxm2Pg==", + "dev": true + }, + "@kwsites/file-exists": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/file-exists/-/file-exists-1.1.1.tgz", + "integrity": "sha512-m9/5YGR18lIwxSFDwfE3oA7bWuq9kdau6ugN4H2rJeyhFQZcG9AgSHkQtSD15a8WvTgfz9aikZMrKPHvbpqFiw==", + "dev": true, + "requires": { + "debug": "^4.1.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@kwsites/promise-deferred": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@kwsites/promise-deferred/-/promise-deferred-1.1.1.tgz", + "integrity": "sha512-GaHYm+c0O9MjZRu0ongGBRbinu8gVAMd2UZjji6jVmqKtZluZnptXGWhz1E8j8D2HJ3f/yMxKAUC0b+57wncIw==", + "dev": true + }, + "@markbind/core": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@markbind/core/-/core-5.1.0.tgz", + "integrity": "sha512-YAXjH+qCXnrBzpKIAJkayVLmyIUaG/8Dms3Gpd2VIufeZyW8w0diXdgKSsymjzodTMgghZMdxG3Qpng833ARPg==", + "dev": true, + "requires": { + "@fortawesome/fontawesome-free": "^6.4.0", + "@markbind/core-web": "5.1.0", + "@primer/octicons": "^15.0.1", + "@sindresorhus/slugify": "^0.9.1", + "@tlylt/markdown-it-imsize": "^3.0.0", + "bluebird": "^3.7.2", + "bootswatch": "5.1.3", + "cheerio": "^0.22.0", + "crypto-js": "^4.0.0", + "csv-parse": "^4.14.2", + "ensure-posix-path": "^1.1.1", + "fastmatter": "^2.1.1", + "fs-extra": "^9.0.1", + "gh-pages": "^2.1.1", + "highlight.js": "^10.4.1", + "htmlparser2": "^3.10.1", + "ignore": "^5.1.4", + "js-beautify": "1.14.3", + "katex": "^0.15.6", + "lodash": "^4.17.15", + "markdown-it": "^12.3.2", + "markdown-it-attrs": "^4.1.3", + "markdown-it-emoji": "^1.4.0", + "markdown-it-linkify-images": "^3.0.0", + "markdown-it-mark": "^3.0.0", + "markdown-it-regexp": "^0.4.0", + "markdown-it-sub": "^1.0.0", + "markdown-it-sup": "^1.0.0", + "markdown-it-table-of-contents": "^0.4.4", + "markdown-it-task-lists": "^2.1.1", + "markdown-it-texmath": "^1.0.0", + "markdown-it-video": "^0.6.3", + "material-icons": "^1.9.1", + "moment": "^2.29.4", + "nunjucks": "3.2.2", + "path-is-inside": "^1.0.2", + "simple-git": "^2.17.0", + "url-parse": "^1.5.10", + "uuid": "^8.3.1", + "vue": "2.6.14", + "vue-server-renderer": "2.6.14", + "vue-template-compiler": "2.6.14", + "walk-sync": "^2.0.2", + "winston": "^2.4.4" + } + }, + "@markbind/core-web": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@markbind/core-web/-/core-web-5.1.0.tgz", + "integrity": "sha512-TRzz8ZCr25pylKvFxF/WwXDi4Gbtsb2OLXV61WyTFqVy03tFoEJ2mqncpbliI9DrfDdKWcm1YZPgDCedVkYjKA==", + "dev": true + }, + "@primer/octicons": { + "version": "15.2.0", + "resolved": "https://registry.npmjs.org/@primer/octicons/-/octicons-15.2.0.tgz", + "integrity": "sha512-4cHZzcZ3F/HQNL4EKSaFyVsW7XtITiJkTeB1JDDmRuP/XobyWyF9gWxuV9c+byUa8dOB5KNQn37iRvNrIehPUQ==", + "dev": true, + "requires": { + "object-assign": "^4.1.1" + } + }, + "@sindresorhus/slugify": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-0.9.1.tgz", + "integrity": "sha512-b6heYM9dzZD13t2GOiEQTDE0qX+I1GyOotMwKh9VQqzuNiVdPVT8dM43fe9HNb/3ul+Qwd5oKSEDrDIfhq3bnQ==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "lodash.deburr": "^4.1.0" + } + }, + "@tlylt/markdown-it-imsize": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@tlylt/markdown-it-imsize/-/markdown-it-imsize-3.0.0.tgz", + "integrity": "sha512-6kTM+vRJTuN2UxNPyJ8yC+NHrzS+MxVHV+z+bDxSr/Fd7eTah2+otLKC2B17YI/1lQnSumA2qokPGuzsA98c6g==", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", + "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", + "dev": true + }, + "a-sync-waterfall": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", + "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" + } + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "apache-crypt": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/apache-crypt/-/apache-crypt-1.2.5.tgz", + "integrity": "sha512-ICnYQH+DFVmw+S4Q0QY2XRXD8Ne8ewh8HgbuFH4K7022zCxgHM0Hz1xkRnUlEfAXNbwp1Cnhbedu60USIfDxvg==", + "dev": true, + "requires": { + "unix-crypt-td-js": "^1.1.4" + } + }, + "apache-md5": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/apache-md5/-/apache-md5-1.1.7.tgz", + "integrity": "sha512-JtHjzZmJxtzfTSjsCyHgPR155HBe5WGyUyHTaEkfy46qhwCFKx1Epm6nAxgUG3WfUZP1dWhGqj9Z2NOBeZ+uBw==", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==", + "dev": true + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==", + "dev": true + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==", + "dev": true + }, + "async": { + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", + "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", + "dev": true + }, + "at-least-node": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", + "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "basic-auth": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", + "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", + "dev": true + }, + "bcryptjs": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/bcryptjs/-/bcryptjs-2.4.3.tgz", + "integrity": "sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", + "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "bootswatch": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bootswatch/-/bootswatch-5.1.3.tgz", + "integrity": "sha512-NmZFN6rOCoXWQ/PkzmD8FFWDe24kocX9OXWHNVaLxVVnpqpAzEbMFsf8bAfKwVtpNXibasZCzv09B5fLieAh2g==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cheerio": { + "version": "0.22.0", + "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", + "integrity": "sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA==", + "dev": true, + "requires": { + "css-select": "~1.2.0", + "dom-serializer": "~0.1.0", + "entities": "~1.1.1", + "htmlparser2": "^3.9.1", + "lodash.assignin": "^4.0.9", + "lodash.bind": "^4.1.4", + "lodash.defaults": "^4.0.1", + "lodash.filter": "^4.4.0", + "lodash.flatten": "^4.2.0", + "lodash.foreach": "^4.3.0", + "lodash.map": "^4.4.0", + "lodash.merge": "^4.4.0", + "lodash.pick": "^4.2.1", + "lodash.reduce": "^4.4.0", + "lodash.reject": "^4.4.0", + "lodash.some": "^4.4.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", + "dev": true + }, + "commander": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz", + "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "config-chain": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.13.tgz", + "integrity": "sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==", + "dev": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "requires": { + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==", + "dev": true + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", + "dev": true + }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dev": true, + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, + "crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==", + "dev": true + }, + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", + "integrity": "sha512-dUQOBoqdR7QwV90WysXPLXG5LO7nhYBgiWVfxF80DKPF8zx1t/pUd2FYy73emg3zrjtM6dzmYgbHKfV2rxiHQA==", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz", + "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==", + "dev": true + }, + "csv-parse": { + "version": "4.16.3", + "resolved": "https://registry.npmjs.org/csv-parse/-/csv-parse-4.16.3.tgz", + "integrity": "sha512-cO1I/zmz4w2dcKHVvpCr7JVRu8/FymG5OEpmvsZYlccYolPBLoVGKUHgNoc4ZGkFeFlWGEDmMyBM+TTqRdW/wg==", + "dev": true + }, + "cycle": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz", + "integrity": "sha512-TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA==", + "dev": true + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/de-indent/-/de-indent-1.0.2.tgz", + "integrity": "sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", + "dev": true + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + } + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "dom-serializer": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz", + "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==", + "dev": true, + "requires": { + "domelementtype": "^1.3.0", + "entities": "^1.1.1" + } + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", + "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", + "dev": true + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", + "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", + "integrity": "sha512-gSu5Oi/I+3wDENBsOWBiRK1eoGxcywYSqg3rR960/+EfY0CF4EX1VPkgHOZ3WiS/Jg2DtliF6BhWcHlfpYUcGw==", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "duplexer": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz", + "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==", + "dev": true + }, + "editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npmjs.org/editorconfig/-/editorconfig-0.15.3.tgz", + "integrity": "sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==", + "dev": true, + "requires": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + } + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "email-addresses": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", + "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, + "ensure-posix-path": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ensure-posix-path/-/ensure-posix-path-1.1.1.tgz", + "integrity": "sha512-VWU0/zXzVbeJNXvME/5EmLuEj2TauvoaTz6aFYK1Z92JCBlDlZ3Gu0tuGR42kpW1754ywTs+QB0g5TP0oj9Zaw==", + "dev": true + }, + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", + "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", + "dev": true + }, + "event-stream": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz", + "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==", + "dev": true, + "requires": { + "duplexer": "~0.1.1", + "from": "~0", + "map-stream": "~0.1.0", + "pause-stream": "0.0.11", + "split": "0.3", + "stream-combiner": "~0.0.4", + "through": "~2.3.1" + }, + "dependencies": { + "split": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", + "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==", + "dev": true, + "requires": { + "through": "2" + } + }, + "stream-combiner": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==", + "dev": true, + "requires": { + "duplexer": "~0.1.1" + } + } + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + } + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", + "dev": true + }, + "fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "fastmatter": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fastmatter/-/fastmatter-2.1.1.tgz", + "integrity": "sha512-NFrjZEPJZTexoJEuyM5J7n4uFaLf0dOI7Ok4b2IZXOYBqCp1Bh5RskANmQ2TuDsz3M35B1yL2AP/Rn+kp85KeA==", + "dev": true, + "requires": { + "js-yaml": "^3.13.0", + "split": "^1.0.1", + "stream-combiner": "^0.2.2", + "through2": "^3.0.1" + } + }, + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fecha": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz", + "integrity": "sha512-lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg==", + "dev": true + }, + "figlet": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.2.tgz", + "integrity": "sha512-WOn21V8AhyE1QqVfPIVxe3tupJacq1xGkPTB4iagT6o+P2cAgEOOwIxMftr4+ZCTI6d551ij9j61DFr0nsP2uQ==", + "dev": true + }, + "file-stream-rotator": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.4.1.tgz", + "integrity": "sha512-W3aa3QJEc8BS2MmdVpQiYLKHj3ijpto1gMDlsgCRSKfIUe6MwkcpODGPQ3vZfb0XvCeCqlu9CBQTN7oQri2TZQ==", + "dev": true, + "requires": { + "moment": "^2.11.2" + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "dev": true, + "optional": true + }, + "filename-reserved-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-1.0.0.tgz", + "integrity": "sha512-UZArj7+U+2reBBVCvVmRlyq9D7EYQdUtuNN+1iz7pF1jGcJ2L0TjiRCxsTZfj2xFbM4c25uGCUDpKTHA7L2TKg==", + "dev": true + }, + "filenamify": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-1.2.1.tgz", + "integrity": "sha512-DKVP0WQcB7WaIMSwDETqImRej2fepPqvXQjaVib7LRZn9Rxn5UbvK2tYTqGf1A1DkIprQQkG4XSQXSOZp7Q3GQ==", + "dev": true, + "requires": { + "filename-reserved-regex": "^1.0.0", + "strip-outer": "^1.0.0", + "trim-repeated": "^1.0.0" + } + }, + "filenamify-url": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/filenamify-url/-/filenamify-url-1.0.0.tgz", + "integrity": "sha512-O9K9JcZeF5VdZWM1qR92NSv1WY2EofwudQayPx5dbnnFl9k0IcZha4eV/FGkjnBK+1irOQInij0yiooCHu/0Fg==", + "dev": true, + "requires": { + "filenamify": "^1.0.0", + "humanize-url": "^1.0.0" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "requires": { + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==", + "dev": true + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", + "dev": true + }, + "from": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz", + "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g==", + "dev": true + }, + "fs-extra": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==", + "dev": true + }, + "gh-pages": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-2.2.0.tgz", + "integrity": "sha512-c+yPkNOPMFGNisYg9r4qvsMIjVYikJv7ImFOhPIVPt0+AcRUamZ7zkGRLHz7FKB0xrlZ+ddSOJsZv9XAFVXLmA==", + "dev": true, + "requires": { + "async": "^2.6.1", + "commander": "^2.18.0", + "email-addresses": "^3.0.1", + "filenamify-url": "^1.0.0", + "fs-extra": "^8.1.0", + "globby": "^6.1.0" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "dev": true + } + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", + "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/hash-sum/-/hash-sum-1.0.2.tgz", + "integrity": "sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "dev": true + }, + "highlight.js": { + "version": "10.7.3", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.3.tgz", + "integrity": "sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==", + "dev": true + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", + "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", + "dev": true, + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "http-auth": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/http-auth/-/http-auth-3.1.3.tgz", + "integrity": "sha512-Jbx0+ejo2IOx+cRUYAGS1z6RGc6JfYUNkysZM4u4Sfk1uLlGv814F7/PIjQQAuThLdAWxb74JMGd5J8zex1VQg==", + "dev": true, + "requires": { + "apache-crypt": "^1.1.2", + "apache-md5": "^1.0.6", + "bcryptjs": "^2.3.0", + "uuid": "^3.0.0" + }, + "dependencies": { + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + } + } + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "requires": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "dependencies": { + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + } + } + }, + "http-parser-js": { + "version": "0.5.8", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.8.tgz", + "integrity": "sha512-SGeBX54F94Wgu5RH3X5jsDtf4eHyRogWX1XGT3b4HuW3tQPM4AaBzoUji/4AAJNXCEOWZ5O0DgZmJw1947gD5Q==", + "dev": true + }, + "humanize-url": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/humanize-url/-/humanize-url-1.0.1.tgz", + "integrity": "sha512-RtgTzXCPVb/te+e82NDhAc5paj+DuKSratIGAr+v+HZK24eAQ8LMoBGYoL7N/O+9iEc33AKHg45dOMKw3DNldQ==", + "dev": true, + "requires": { + "normalize-url": "^1.0.0", + "strip-url-auth": "^1.0.0" + } + }, + "ignore": { + "version": "5.2.4", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", + "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", + "integrity": "sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw==", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", + "dev": true + }, + "js-beautify": { + "version": "1.14.3", + "resolved": "https://registry.npmjs.org/js-beautify/-/js-beautify-1.14.3.tgz", + "integrity": "sha512-f1ra8PHtOEu/70EBnmiUlV8nJePS58y9qKjl4JHfYWlFH6bo7ogZBz//FAZp7jDuXtYnGYKymZPlrg2I/9Zo4g==", + "dev": true, + "requires": { + "config-chain": "^1.1.13", + "editorconfig": "^0.15.3", + "glob": "^7.1.3", + "nopt": "^5.0.0" + } + }, + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "katex": { + "version": "0.15.6", + "resolved": "https://registry.npmjs.org/katex/-/katex-0.15.6.tgz", + "integrity": "sha512-UpzJy4yrnqnhXvRPhjEuLA4lcPn6eRngixW7Q3TJErjg3Aw2PuLFBzTkdUb89UtumxjhHTqL3a5GDGETMSwgJA==", + "dev": true, + "requires": { + "commander": "^8.0.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "linkify-it": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-3.0.3.tgz", + "integrity": "sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, + "live-server": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/live-server/-/live-server-1.2.1.tgz", + "integrity": "sha512-Yn2XCVjErTkqnM3FfTmM7/kWy3zP7+cEtC7x6u+wUzlQ+1UW3zEYbbyJrc0jNDwiMDZI0m4a0i3dxlGHVyXczw==", + "dev": true, + "requires": { + "chokidar": "^2.0.4", + "colors": "latest", + "connect": "^3.6.6", + "cors": "latest", + "event-stream": "3.3.4", + "faye-websocket": "0.11.x", + "http-auth": "3.1.x", + "morgan": "^1.9.1", + "object-assign": "latest", + "opn": "latest", + "proxy-middleware": "latest", + "send": "latest", + "serve-index": "^1.9.1" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", + "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "dev": true + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", + "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", + "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", + "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lodash._reinterpolate": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz", + "integrity": "sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA==", + "dev": true + }, + "lodash.assignin": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assignin/-/lodash.assignin-4.2.0.tgz", + "integrity": "sha512-yX/rx6d/UTVh7sSVWVSIMjfnz95evAgDFdb1ZozC35I9mSFCkmzptOzevxjgbQUsc78NR44LVHWjsoMQXy9FDg==", + "dev": true + }, + "lodash.bind": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.bind/-/lodash.bind-4.2.1.tgz", + "integrity": "sha512-lxdsn7xxlCymgLYo1gGvVrfHmkjDiyqVv62FAeF2i5ta72BipE1SLxw8hPEPLhD4/247Ijw07UQH7Hq/chT5LA==", + "dev": true + }, + "lodash.deburr": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", + "integrity": "sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==", + "dev": true + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==", + "dev": true + }, + "lodash.filter": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.filter/-/lodash.filter-4.6.0.tgz", + "integrity": "sha512-pXYUy7PR8BCLwX5mgJ/aNtyOvuJTdZAo9EQFUvMIYugqmJxnrYaANvTbgndOzHSCSR0wnlBBfRXJL5SbWxo3FQ==", + "dev": true + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==", + "dev": true + }, + "lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==", + "dev": true + }, + "lodash.map": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.map/-/lodash.map-4.6.0.tgz", + "integrity": "sha512-worNHGKLDetmcEYDvh2stPCrrQRkP20E4l0iIS7F8EvzMqBBi7ltvFN5m1HvTf1P7Jk1txKhvFcmYsCr8O2F1Q==", + "dev": true + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", + "dev": true + }, + "lodash.reduce": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reduce/-/lodash.reduce-4.6.0.tgz", + "integrity": "sha512-6raRe2vxCYBhpBu+B+TtNGUzah+hQjVdu3E17wfusjyrXBka2nBS8OH/gjVZ5PvHOhWmIZTYri09Z6n/QfnNMw==", + "dev": true + }, + "lodash.reject": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.reject/-/lodash.reject-4.6.0.tgz", + "integrity": "sha512-qkTuvgEzYdyhiJBx42YPzPo71R1aEr0z79kAv7Ixg8wPFEjgRgJdUsGMG3Hf3OYSF/kHI79XhNlt+5Ar6OzwxQ==", + "dev": true + }, + "lodash.some": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/lodash.some/-/lodash.some-4.6.0.tgz", + "integrity": "sha512-j7MJE+TuT51q9ggt4fSgVqro163BEFjAt3u97IqU+JA2DkWl80nFTrowzLpZ/BnpN7rrl0JA/593NAdd8p/scQ==", + "dev": true + }, + "lodash.template": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", + "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" + } + }, + "lodash.templatesettings": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", + "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", + "dev": true, + "requires": { + "lodash._reinterpolate": "^3.0.0" + } + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", + "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", + "dev": true + }, + "logform": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz", + "integrity": "sha512-em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg==", + "dev": true, + "requires": { + "colors": "^1.2.1", + "fast-safe-stringify": "^2.0.4", + "fecha": "^2.3.3", + "ms": "^2.1.1", + "triple-beam": "^1.2.0" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true + }, + "map-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "integrity": "sha512-CkYQrPYZfWnu/DAmVCpTSX/xHpKZ80eKh2lAkyA6AJTef6bW+6JpbQZN5rofum7da+SyN1bi5ctTm+lTfcCW3g==", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "markbind-cli": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/markbind-cli/-/markbind-cli-5.1.0.tgz", + "integrity": "sha512-6POI1Q++2aZa+Udk/oQ6LX1oNPbKUBDY0mN3Up7VOFeK+XYW51faxuCk2Q91JTBxYRKLNtshxf0y12kB4Cj9Qw==", + "dev": true, + "requires": { + "@markbind/core": "5.1.0", + "@markbind/core-web": "5.1.0", + "bluebird": "^3.7.2", + "chalk": "^3.0.0", + "cheerio": "^0.22.0", + "chokidar": "^3.3.0", + "colors": "1.4.0", + "commander": "^8.1.0", + "figlet": "^1.2.4", + "find-up": "^4.1.0", + "fs-extra": "^9.0.1", + "live-server": "1.2.1", + "lodash": "^4.17.15", + "url-parse": "^1.5.10", + "winston": "^2.4.4", + "winston-daily-rotate-file": "^3.10.0" + } + }, + "markdown-it": { + "version": "12.3.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-12.3.2.tgz", + "integrity": "sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==", + "dev": true, + "requires": { + "argparse": "^2.0.1", + "entities": "~2.1.0", + "linkify-it": "^3.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "entities": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", + "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", + "dev": true + } + } + }, + "markdown-it-attrs": { + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/markdown-it-attrs/-/markdown-it-attrs-4.1.6.tgz", + "integrity": "sha512-O7PDKZlN8RFMyDX13JnctQompwrrILuz2y43pW2GagcwpIIElkAdfeek+erHfxUOlXWPsjFeWmZ8ch1xtRLWpA==", + "dev": true, + "requires": {} + }, + "markdown-it-emoji": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz", + "integrity": "sha512-QCz3Hkd+r5gDYtS2xsFXmBYrgw6KuWcJZLCEkdfAuwzZbShCmCfta+hwAMq4NX/4xPzkSHduMKgMkkPUJxSXNg==", + "dev": true + }, + "markdown-it-linkify-images": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/markdown-it-linkify-images/-/markdown-it-linkify-images-3.0.0.tgz", + "integrity": "sha512-Vs5yGJa5MWjFgytzgtn8c1U6RcStj3FZKhhx459U8dYbEE5FTWZ6mMRkYMiDlkFO0j4VCsQT1LT557bY0ETgtg==", + "dev": true, + "requires": { + "markdown-it": "^13.0.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true + }, + "linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "dev": true, + "requires": { + "uc.micro": "^1.0.1" + } + }, + "markdown-it": { + "version": "13.0.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", + "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", + "dev": true, + "requires": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + } + } + } + }, + "markdown-it-mark": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/markdown-it-mark/-/markdown-it-mark-3.0.1.tgz", + "integrity": "sha512-HyxjAu6BRsdt6Xcv6TKVQnkz/E70TdGXEFHRYBGLncRE9lBFwDNLVtFojKxjJWgJ+5XxUwLaHXy+2sGBbDn+4A==", + "dev": true + }, + "markdown-it-regexp": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/markdown-it-regexp/-/markdown-it-regexp-0.4.0.tgz", + "integrity": "sha512-0XQmr46K/rMKnI93Y3CLXsHj4jIioRETTAiVnJnjrZCEkGaDOmUxTbZj/aZ17G5NlRcVpWBYjqpwSlQ9lj+Kxw==", + "dev": true + }, + "markdown-it-sub": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/markdown-it-sub/-/markdown-it-sub-1.0.0.tgz", + "integrity": "sha512-z2Rm/LzEE1wzwTSDrI+FlPEveAAbgdAdPhdWarq/ZGJrGW/uCQbKAnhoCsE4hAbc3SEym26+W2z/VQB0cQiA9Q==", + "dev": true + }, + "markdown-it-sup": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/markdown-it-sup/-/markdown-it-sup-1.0.0.tgz", + "integrity": "sha512-E32m0nV9iyhRR7CrhnzL5msqic7rL1juWre6TQNxsnApg7Uf+F97JOKxUijg5YwXz86lZ0mqfOnutoryyNdntQ==", + "dev": true + }, + "markdown-it-table-of-contents": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.4.tgz", + "integrity": "sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw==", + "dev": true + }, + "markdown-it-task-lists": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/markdown-it-task-lists/-/markdown-it-task-lists-2.1.1.tgz", + "integrity": "sha512-TxFAc76Jnhb2OUu+n3yz9RMu4CwGfaT788br6HhEDlvWfdeJcLUsxk1Hgw2yJio0OXsxv7pyIPmvECY7bMbluA==", + "dev": true + }, + "markdown-it-texmath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/markdown-it-texmath/-/markdown-it-texmath-1.0.0.tgz", + "integrity": "sha512-4hhkiX8/gus+6e53PLCUmUrsa6ZWGgJW2XCW6O0ASvZUiezIK900ZicinTDtG3kAO2kon7oUA/ReWmpW2FByxg==", + "dev": true + }, + "markdown-it-video": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/markdown-it-video/-/markdown-it-video-0.6.3.tgz", + "integrity": "sha512-T4th1kwy0OcvyWSN4u3rqPGxvbDclpucnVSSaH3ZacbGsAts964dxokx9s/I3GYsrDCJs4ogtEeEeVP18DQj0Q==", + "dev": true + }, + "matcher-collection": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/matcher-collection/-/matcher-collection-2.0.1.tgz", + "integrity": "sha512-daE62nS2ZQsDg9raM0IlZzLmI2u+7ZapXBwdoeBUKAYERPDDIc0qNqA8E0Rp2D+gspKR7BgIFP52GeujaGXWeQ==", + "dev": true, + "requires": { + "@types/minimatch": "^3.0.3", + "minimatch": "^3.0.2" + } + }, + "material-icons": { + "version": "1.13.11", + "resolved": "https://registry.npmjs.org/material-icons/-/material-icons-1.13.11.tgz", + "integrity": "sha512-kp2oAdaqo/Zp6hpTZW01rOgDPWmxBUszSdDzkRm1idCjjNvdUMnqu8qu58cll6CObo+o0cydOiPLdoSugLm+mQ==", + "dev": true + }, + "mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dev": true, + "requires": { + "mime-db": "1.52.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + } + }, + "moment": { + "version": "2.29.4", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz", + "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==", + "dev": true + }, + "morgan": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", + "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "dev": true, + "requires": { + "basic-auth": "~2.0.1", + "debug": "2.6.9", + "depd": "~2.0.0", + "on-finished": "~2.3.0", + "on-headers": "~1.0.2" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "nan": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz", + "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + } + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "requires": { + "abbrev": "1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", + "integrity": "sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", + "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "nunjucks": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.2.tgz", + "integrity": "sha512-KUi85OoF2NMygwODAy28Lh9qHmq5hO3rBlbkYoC8v377h4l8Pt5qFjILl0LWpMbOrZ18CzfVVUvIHUIrtED3sA==", + "dev": true, + "requires": { + "a-sync-waterfall": "^1.0.0", + "asap": "^2.0.3", + "chokidar": "^3.3.0", + "commander": "^5.1.0" + }, + "dependencies": { + "commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true + } + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz", + "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", + "dev": true + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "opn": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/opn/-/opn-6.0.0.tgz", + "integrity": "sha512-I9PKfIZC+e4RXZ/qr1RhgyCnGgYX0UEIlXgWnCOVACIvFgaC9rz6Won7xbdhoHrd8IIhV7YEpHjreNUNkqCGkQ==", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "pause-stream": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==", + "dev": true, + "requires": { + "through": "~2.3" + } + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", + "integrity": "sha512-PhmXi5XmoyKw1Un4E+opM2KcsJInDvKyuOumcjjw3waw86ZNjHwVUOOWLc4bCzLdcKNaWBH9e99sbWzDQsVaYg==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==", + "dev": true + }, + "proxy-middleware": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/proxy-middleware/-/proxy-middleware-0.15.0.tgz", + "integrity": "sha512-EGCG8SeoIRVMhsqHQUdDigB2i7qU7fCsWASwn54+nPutYO8n4q6EiwMzyfWlC+dzRFExP+kvcnDFdBDHoZBU7Q==", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", + "integrity": "sha512-O2XLNDBIg1DnTOa+2XrIwSiXEV8h2KImXUnjhhn2+UsvZ+Es2uyd5CCRTNQlDGbzUQOW3aYCBx9rVA6dzsiY7Q==", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw==", + "dev": true + }, + "repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dev": true, + "requires": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==", + "dev": true + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "dev": true + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safe-stable-stringify": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz", + "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==", + "dev": true + }, + "semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "dev": true + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", + "dev": true + } + } + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + } + } + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha512-fCvEXfh6NWpm+YSuY2bpXb/VIihqWA6hLsgboC+0nl71Q7N7o2eaCW8mJa/NLvQhs6jpd3VZV4UiUQlV6+lc8g==", + "dev": true + }, + "simple-git": { + "version": "2.48.0", + "resolved": "https://registry.npmjs.org/simple-git/-/simple-git-2.48.0.tgz", + "integrity": "sha512-z4qtrRuaAFJS4PUd0g+xy7aN4y+RvEt/QTJpR184lhJguBA1S/LsVlvE/CM95RsYMOFJG3NGGDjqFCzKU19S/A==", + "dev": true, + "requires": { + "@kwsites/file-exists": "^1.1.1", + "@kwsites/promise-deferred": "^1.1.1", + "debug": "^4.3.2" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", + "integrity": "sha512-vzn8aSqKgytVik0iwdBEi+zevbTYZogewTUM6dtpmGwEcdzbub/TX4bCzRhebDCRC3QzXgJsLRKB2V/Oof7HXg==", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha512-MjZkVp0NHr5+TPihLcadqnlVoGIoWo4IBHptutGh9wI3ttUYvCG26HkSuDi+K6lsZ25syXJXcctwgyVCt//xqA==", + "dev": true + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==", + "dev": true + }, + "split": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz", + "integrity": "sha512-mTyOoPbrivtXnwnIxZRFYRrPNtEFKlpB2fvjSnCQUiAA6qAZzqwna5envK4uk6OIeP17CsdF3rSBGYVBsU0Tkg==", + "dev": true, + "requires": { + "through": "2" + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "stack-trace": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", + "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "dev": true + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + }, + "stream-combiner": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.2.2.tgz", + "integrity": "sha512-6yHMqgLYDzQDcAkL+tjJDC5nSNuNIx0vZtRZeiPh7Saef7VHX9H5Ijn9l2VIol2zaNYlYEX6KyuT/237A58qEQ==", + "dev": true, + "requires": { + "duplexer": "~0.1.1", + "through": "~2.3.4" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", + "integrity": "sha512-R3f198pcvnB+5IpnBlRkphuE9n46WyVl8I39W/ZUTZLz4nqSP/oLYUrcnJrw462Ds8he4YKMov2efsTIw1BDGQ==", + "dev": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "requires": { + "safe-buffer": "~5.2.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + } + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-outer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", + "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "strip-url-auth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/strip-url-auth/-/strip-url-auth-1.0.1.tgz", + "integrity": "sha512-++41PnXftlL3pvI6lpvhSEO+89g1kIJC4MYB5E6yH+WHa5InIqz51yGd1YOGd7VNSNdoEOfzTMqbAM/2PbgaHQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "through2": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/through2/-/through2-3.0.2.tgz", + "integrity": "sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ==", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "2 || 3" + } + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true + }, + "trim-repeated": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", + "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.2" + } + }, + "triple-beam": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", + "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", + "dev": true + }, + "uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", + "dev": true + } + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "unix-crypt-td-js": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/unix-crypt-td-js/-/unix-crypt-td-js-1.1.4.tgz", + "integrity": "sha512-8rMeVYWSIyccIJscb9NdCfZKSRBKYTeVnwmiRYT2ulE3qd1RaDQ0xQDP+rI3ccIWbhu/zuo5cgN8z73belNZgw==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", + "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", + "dev": true + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==", + "dev": true + }, + "url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", + "dev": true + }, + "vue": { + "version": "2.6.14", + "resolved": "https://registry.npmjs.org/vue/-/vue-2.6.14.tgz", + "integrity": "sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==", + "dev": true + }, + "vue-server-renderer": { + "version": "2.6.14", + "resolved": "https://registry.npmjs.org/vue-server-renderer/-/vue-server-renderer-2.6.14.tgz", + "integrity": "sha512-HifYRa/LW7cKywg9gd4ZtvtRuBlstQBao5ZCWlg40fyB4OPoGfEXAzxb0emSLv4pBDOHYx0UjpqvxpiQFEuoLA==", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "hash-sum": "^1.0.2", + "he": "^1.1.0", + "lodash.template": "^4.5.0", + "lodash.uniq": "^4.5.0", + "resolve": "^1.2.0", + "serialize-javascript": "^3.1.0", + "source-map": "0.5.6" + }, + "dependencies": { + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", + "dev": true, + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", + "dev": true + } + } + }, + "vue-template-compiler": { + "version": "2.6.14", + "resolved": "https://registry.npmjs.org/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz", + "integrity": "sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "walk-sync": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/walk-sync/-/walk-sync-2.2.0.tgz", + "integrity": "sha512-IC8sL7aB4/ZgFcGI2T1LczZeFWZ06b3zoHH7jBPyHxOtIIz1jppWHjjEXkOFvFojBVAK9pV7g47xOZ4LW3QLfg==", + "dev": true, + "requires": { + "@types/minimatch": "^3.0.3", + "ensure-posix-path": "^1.1.0", + "matcher-collection": "^2.0.0", + "minimatch": "^3.0.4" + } + }, + "websocket-driver": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", + "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, + "requires": { + "http-parser-js": ">=0.5.1", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", + "dev": true + }, + "winston": { + "version": "2.4.6", + "resolved": "https://registry.npmjs.org/winston/-/winston-2.4.6.tgz", + "integrity": "sha512-J5Zu4p0tojLde8mIOyDSsmLmcP8I3Z6wtwpTDHx1+hGcdhxcJaAmG4CFtagkb+NiN1M9Ek4b42pzMWqfc9jm8w==", + "dev": true, + "requires": { + "async": "^3.2.3", + "colors": "1.0.x", + "cycle": "1.0.x", + "eyes": "0.1.x", + "isstream": "0.1.x", + "stack-trace": "0.0.x" + }, + "dependencies": { + "async": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", + "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "dev": true + }, + "colors": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz", + "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==", + "dev": true + } + } + }, + "winston-compat": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/winston-compat/-/winston-compat-0.1.5.tgz", + "integrity": "sha512-EPvPcHT604AV3Ji6d3+vX8ENKIml9VSxMRnPQ+cuK/FX6f3hvPP2hxyoeeCOCFvDrJEujalfcKWlWPvAnFyS9g==", + "dev": true, + "requires": { + "cycle": "~1.0.3", + "logform": "^1.6.0", + "triple-beam": "^1.2.0" + } + }, + "winston-daily-rotate-file": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-3.10.0.tgz", + "integrity": "sha512-KO8CfbI2CvdR3PaFApEH02GPXiwJ+vbkF1mCkTlvRIoXFI8EFlf1ACcuaahXTEiDEKCii6cNe95gsL4ZkbnphA==", + "dev": true, + "requires": { + "file-stream-rotator": "^0.4.1", + "object-hash": "^1.3.0", + "semver": "^6.2.0", + "triple-beam": "^1.3.0", + "winston-compat": "^0.1.4", + "winston-transport": "^4.2.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } + } + }, + "winston-transport": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz", + "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==", + "dev": true, + "requires": { + "logform": "^2.3.2", + "readable-stream": "^3.6.0", + "triple-beam": "^1.3.0" + }, + "dependencies": { + "fecha": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", + "dev": true + }, + "logform": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.2.tgz", + "integrity": "sha512-W4c9himeAwXEdZ05dQNerhFz2XG80P9Oj0loPUMV23VC2it0orMHQhJm4hdnnor3rd1HsGf6a2lPwBM1zeXHGw==", + "dev": true, + "requires": { + "@colors/colors": "1.5.0", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==", + "dev": true + } + } +} diff --git a/docs/package.json b/docs/package.json new file mode 100644 index 00000000000..aa7083fd8a7 --- /dev/null +++ b/docs/package.json @@ -0,0 +1,14 @@ +{ + "name": "docs", + "version": "1.0.0", + "description": "AB-3 docs", + "scripts": { + "init": "markbind init", + "build": "markbind build", + "serve": "markbind serve", + "deploy": "markbind deploy" + }, + "devDependencies": { + "markbind-cli": "^5.1.0" + } +} diff --git a/docs/site.json b/docs/site.json new file mode 100644 index 00000000000..ffe411c3f82 --- /dev/null +++ b/docs/site.json @@ -0,0 +1,29 @@ +{ + "baseUrl": "", + "titlePrefix": "", + "titleSuffix": "AddressBook Level-3", + "faviconPath": "images/SeEduLogo.png", + "style": { + "codeTheme": "light" + }, + "ignore": [ + "_markbind/layouts/*", + "_markbind/logs/*", + "_site/*", + "site.json", + "*.md", + "*.njk", + ".git/*", + "node_modules/*" + ], + "pagesExclude": ["node_modules/*"], + "pages": [ + { + "glob": ["**/index.md", "**/*.md"] + } + ], + "deploy": { + "message": "Site Update." + }, + "timeZone": "Asia/Singapore" +} diff --git a/docs/stylesheets/main.css b/docs/stylesheets/main.css new file mode 100644 index 00000000000..1074ade42dd --- /dev/null +++ b/docs/stylesheets/main.css @@ -0,0 +1,144 @@ +mark { + background-color: #ff0; + border-radius: 5px; + padding-top: 0; + padding-bottom: 0; +} + +.indented { + padding-left: 20px; +} + +.theme-card img { + width: 100%; +} + +/* Scrollbar */ + +.slim-scroll::-webkit-scrollbar { + width: 5px; +} + +.slim-scroll::-webkit-scrollbar-thumb { + background: #808080; + border-radius: 20px; +} + +.slim-scroll::-webkit-scrollbar-track { + background: transparent; + border-radius: 20px; +} + +.slim-scroll-blue::-webkit-scrollbar { + width: 5px; +} + +.slim-scroll-blue::-webkit-scrollbar-thumb { + background: #00b0ef; + border-radius: 20px; +} + +.slim-scroll-blue::-webkit-scrollbar-track { + background: transparent; + border-radius: 20px; +} + +/* Layout containers */ + +#flex-body { + display: flex; + flex: 1; + align-items: start; +} + +#content-wrapper { + flex: 1; + margin: 0 auto; + min-width: 0; + max-width: 1000px; + overflow-x: auto; + padding: 0.8rem 20px 0 20px; + transition: 0.4s; + -webkit-transition: 0.4s; +} + +#site-nav, +#page-nav { + display: flex; + flex-direction: column; + position: sticky; + top: var(--sticky-header-height); + flex: 0 0 auto; + max-width: 300px; + max-height: calc(100vh - var(--sticky-header-height)); + width: 300px; +} + +#site-nav { + border-right: 1px solid lightgrey; + padding-bottom: 20px; + z-index: 999; +} + +.site-nav-top { + margin: 0.8rem 0; + padding: 0 12px 12px 12px; +} + +.nav-component { + overflow-y: auto; +} + +#page-nav { + border-left: 1px solid lightgrey; +} + +@media screen and (max-width: 1299.98px) { + #page-nav { + display: none; + } +} + +/* Bootstrap medium(md) responsive breakpoint */ +@media screen and (max-width: 991.98px) { + #site-nav { + display: none; + } +} + +/* Bootstrap small(sm) responsive breakpoint */ +@media (max-width: 767.98px) { + .indented { + padding-left: 10px; + } + + #content-wrapper { + padding: 0 10px; + } +} + +/* Bootstrap extra small(xs) responsive breakpoint */ +@media screen and (max-width: 575.98px) { + #site-nav { + display: none; + } +} + +/* Hide site navigation when printing */ +@media print { + #site-nav { + display: none; + } + + #page-nav { + display: none; + } +} + +h2, +h3, +h4, +h5, +h6 { + color: #e46c0a; +} diff --git a/docs/team/johndoe.md b/docs/team/johndoe.md index 773a07794e2..86aa7ebfc34 100644 --- a/docs/team/johndoe.md +++ b/docs/team/johndoe.md @@ -1,6 +1,6 @@ --- -layout: page -title: John Doe's Project Portfolio Page + layout: default.md + title: "John Doe's Project Portfolio Page" --- ### Project: AddressBook Level 3 diff --git a/docs/tutorials/AddRemark.md b/docs/tutorials/AddRemark.md index d98f38982e7..8b18f27946b 100644 --- a/docs/tutorials/AddRemark.md +++ b/docs/tutorials/AddRemark.md @@ -1,8 +1,11 @@ --- -layout: page -title: "Tutorial: Adding a command" + layout: default.md + title: "Tutorial: Adding a command" + pageNav: 3 --- +# Tutorial: Adding a command + Let's walk you through the implementation of a new command — `remark`. This command allows users of the AddressBook application to add optional remarks to people in their address book and edit it if required. The command should have the following format: @@ -22,7 +25,7 @@ For now, let’s keep `RemarkCommand` as simple as possible and print some outpu **`RemarkCommand.java`:** -``` java +```java package seedu.address.logic.commands; import seedu.address.model.Model; @@ -57,13 +60,13 @@ Run `Main#main` and try out your new `RemarkCommand`. If everything went well, y While we have successfully printed a message to `ResultDisplay`, the command does not do what it is supposed to do. Let’s change the command to throw a `CommandException` to accurately reflect that our command is still a work in progress. -![The relationship between RemarkCommand and Command](../images/add-remark/RemarkCommandClass.png) + Following the convention in other commands, we add relevant messages as constants and use them. **`RemarkCommand.java`:** -``` java +```java public static final String MESSAGE_USAGE = COMMAND_WORD + ": Edits the remark of the person identified " + "by the index number used in the last person listing. " @@ -90,7 +93,7 @@ Let’s change `RemarkCommand` to parse input from the user. We start by modifying the constructor of `RemarkCommand` to accept an `Index` and a `String`. While we are at it, let’s change the error message to echo the values. While this is not a replacement for tests, it is an obvious way to tell if our code is functioning as intended. -``` java +```java import static seedu.address.commons.util.CollectionUtil.requireAllNonNull; //... public class RemarkCommand extends Command { @@ -142,13 +145,13 @@ Now let’s move on to writing a parser that will extract the index and remark f Create a `RemarkCommandParser` class in the `seedu.address.logic.parser` package. The class must extend the `Parser` interface. -![The relationship between Parser and RemarkCommandParser](../images/add-remark/RemarkCommandParserClass.png) + Thankfully, `ArgumentTokenizer#tokenize()` makes it trivial to parse user input. Let’s take a look at the JavaDoc provided for the function to understand what it does. **`ArgumentTokenizer.java`:** -``` java +```java /** * Tokenizes an arguments string and returns an {@code ArgumentMultimap} * object that maps prefixes to their respective argument values. Only the @@ -166,7 +169,7 @@ We can tell `ArgumentTokenizer#tokenize()` to look out for our new prefix `r/` a **`ArgumentMultimap.java`:** -``` java +```java /** * Returns the last value of {@code prefix}. */ @@ -181,7 +184,7 @@ This appears to be what we need to get a String of the remark. But what about th **`DeleteCommandParser.java`:** -``` java +```java Index index = ParserUtil.parseIndex(args); return new DeleteCommand(index); ``` @@ -192,7 +195,7 @@ Now that we have the know-how to extract the data that we need from the user’s **`RemarkCommandParser.java`:** -``` java +```java public RemarkCommand parse(String args) throws ParseException { requireNonNull(args); ArgumentMultimap argMultimap = ArgumentTokenizer.tokenize(args, @@ -212,11 +215,11 @@ public RemarkCommand parse(String args) throws ParseException { } ``` -

    + If you are stuck, check out the sample [here](https://github.com/se-edu/addressbook-level3/commit/dc6d5139d08f6403da0ec624ea32bd79a2ae0cbf#diff-8bf239e8e9529369b577701303ddd96af93178b4ed6735f91c2d8488b20c6b4a). @@ -244,7 +247,7 @@ Simply add the following to [`seedu.address.ui.PersonCard`](https://github.com/s **`PersonCard.java`:** -``` java +```java @FXML private Label remark; ``` @@ -276,11 +279,11 @@ We change the constructor of `Person` to take a `Remark`. We will also need to d Unfortunately, a change to `Person` will cause other commands to break, you will have to modify these commands to use the updated `Person`! -
    + -:bulb: Use the `Find Usages` feature in IntelliJ IDEA on the `Person` class to find these commands. +Use the `Find Usages` feature in IntelliJ IDEA on the `Person` class to find these commands. -
    + Refer to [this commit](https://github.com/se-edu/addressbook-level3/commit/ce998c37e65b92d35c91d28c7822cd139c2c0a5c) and check that you have got everything in order! @@ -291,11 +294,11 @@ AddressBook stores data by serializing `JsonAdaptedPerson` into `json` with the While the changes to code may be minimal, the test data will have to be updated as well. -
    + -:exclamation: You must delete AddressBook’s storage file located at `/data/addressbook.json` before running it! Not doing so will cause AddressBook to default to an empty address book! +You must delete AddressBook’s storage file located at `/data/addressbook.json` before running it! Not doing so will cause AddressBook to default to an empty address book! -
    + Check out [this commit](https://github.com/se-edu/addressbook-level3/commit/556cbd0e03ff224d7a68afba171ad2eb0ce56bbf) to see what the changes entail. @@ -308,7 +311,7 @@ Just add [this one line of code!](https://github.com/se-edu/addressbook-level3/c **`PersonCard.java`:** -``` java +```java public PersonCard(Person person, int displayedIndex) { //... remark.setText(person.getRemark().value); @@ -328,7 +331,7 @@ save it with `Model#setPerson()`. **`RemarkCommand.java`:** -``` java +```java //... public static final String MESSAGE_ADD_REMARK_SUCCESS = "Added remark to Person: %1$s"; public static final String MESSAGE_DELETE_REMARK_SUCCESS = "Removed remark from Person: %1$s"; diff --git a/docs/tutorials/RemovingFields.md b/docs/tutorials/RemovingFields.md index f29169bc924..c73bd379e5e 100644 --- a/docs/tutorials/RemovingFields.md +++ b/docs/tutorials/RemovingFields.md @@ -1,8 +1,11 @@ --- -layout: page -title: "Tutorial: Removing Fields" + layout: default.md + title: "Tutorial: Removing Fields" + pageNav: 3 --- +# Tutorial: Removing Fields + > Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. > > — Antoine de Saint-Exupery @@ -10,17 +13,17 @@ title: "Tutorial: Removing Fields" When working on an existing code base, you will most likely find that some features that are no longer necessary. This tutorial aims to give you some practice on such a code 'removal' activity by removing the `address` field from `Person` class. -
    + **If you have done the [Add `remark` command tutorial](AddRemark.html) already**, you should know where the code had to be updated to add the field `remark`. From that experience, you can deduce where the code needs to be changed to _remove_ that field too. The removing of the `address` field can be done similarly.

    However, if you have no such prior knowledge, removing a field can take a quite a bit of detective work. This tutorial takes you through that process. **At least have a read even if you don't actually do the steps yourself.** -
    + -* Table of Contents -{:toc} + + ## Safely deleting `Address` @@ -50,10 +53,10 @@ Let’s try removing references to `Address` in `EditPersonDescriptor`. 1. Remove the usages of `address` and select `Do refactor` when you are done. -
    + - :bulb: **Tip:** Removing usages may result in errors. Exercise discretion and fix them. For example, removing the `address` field from the `Person` class will require you to modify its constructor. -
    + **Tip:** Removing usages may result in errors. Exercise discretion and fix them. For example, removing the `address` field from the `Person` class will require you to modify its constructor. + 1. Repeat the steps for the remaining usages of `Address` @@ -71,7 +74,7 @@ A quick look at the `PersonCard` class and its `fxml` file quickly reveals why i **`PersonCard.java`** -``` java +```java ... @FXML private Label address; diff --git a/docs/tutorials/TracingCode.md b/docs/tutorials/TracingCode.md index 4fb62a83ef6..2b1b0f2d6b7 100644 --- a/docs/tutorials/TracingCode.md +++ b/docs/tutorials/TracingCode.md @@ -1,26 +1,30 @@ --- -layout: page -title: "Tutorial: Tracing code" + layout: default.md + title: "Tutorial: Tracing code" + pageNav: 3 --- +# Tutorial: Tracing code + + > Indeed, the ratio of time spent reading versus writing is well over 10 to 1. We are constantly reading old code as part of the effort to write new code. …​\[Therefore,\] making it easy to read makes it easier to write. > > — Robert C. Martin Clean Code: A Handbook of Agile Software Craftsmanship When trying to understand an unfamiliar code base, one common strategy used is to trace some representative execution path through the code base. One easy way to trace an execution path is to use a debugger to step through the code. In this tutorial, you will be using the IntelliJ IDEA’s debugger to trace the execution path of a specific user command. -* Table of Contents -{:toc} + + ## Before we start Before we jump into the code, it is useful to get an idea of the overall structure and the high-level behavior of the application. This is provided in the 'Architecture' section of the developer guide. In particular, the architecture diagram (reproduced below), tells us that the App consists of several components. -![ArchitectureDiagram](../images/ArchitectureDiagram.png) + It also has a sequence diagram (reproduced below) that tells us how a command propagates through the App. - + Note how the diagram shows only the execution flows _between_ the main components. That is, it does not show details of the execution path *inside* each component. By hiding those details, the diagram aims to inform the reader about the overall execution path of a command without overwhelming the reader with too much details. In this tutorial, you aim to find those omitted details so that you get a more in-depth understanding of how the code works. @@ -37,16 +41,16 @@ As you know, the first step of debugging is to put in a breakpoint where you wan In our case, we would want to begin the tracing at the very point where the App start processing user input (i.e., somewhere in the UI component), and then trace through how the execution proceeds through the UI component. However, the execution path through a GUI is often somewhat obscure due to various *event-driven mechanisms* used by GUI frameworks, which happens to be the case here too. Therefore, let us put the breakpoint where the `UI` transfers control to the `Logic` component. - + According to the sequence diagram you saw earlier (and repeated above for reference), the `UI` component yields control to the `Logic` component through a method named `execute`. Searching through the code base for an `execute()` method that belongs to the `Logic` component yields a promising candidate in `seedu.address.logic.Logic`. -
    + -:bulb: **Intellij Tip:** The ['**Search Everywhere**' feature](https://www.jetbrains.com/help/idea/searching-everywhere.html) can be used here. In particular, the '**Find Symbol**' ('Symbol' here refers to methods, variables, classes etc.) variant of that feature is quite useful here as we are looking for a _method_ named `execute`, not simply the text `execute`. -
    +**Intellij Tip:** The ['**Search Everywhere**' feature](https://www.jetbrains.com/help/idea/searching-everywhere.html) can be used here. In particular, the '**Find Symbol**' ('Symbol' here refers to methods, variables, classes etc.) variant of that feature is quite useful here as we are looking for a _method_ named `execute`, not simply the text `execute`. + A quick look at the `seedu.address.logic.Logic` (an extract given below) confirms that this indeed might be what we’re looking for. @@ -67,14 +71,14 @@ public interface Logic { But apparently, this is an interface, not a concrete implementation. That should be fine because the [Architecture section of the Developer Guide](../DeveloperGuide.html#architecture) tells us that components interact through interfaces. Here's the relevant diagram: - + Next, let's find out which statement(s) in the `UI` code is calling this method, thus transferring control from the `UI` to the `Logic`. -
    + -:bulb: **Intellij Tip:** The ['**Find Usages**' feature](https://www.jetbrains.com/help/idea/find-highlight-usages.html#find-usages) can find from which parts of the code a class/method/variable is being used. -
    +**Intellij Tip:** The ['**Find Usages**' feature](https://www.jetbrains.com/help/idea/find-highlight-usages.html#find-usages) can find from which parts of the code a class/method/variable is being used. + ![`Find Usages` tool window. `Edit` \> `Find` \> `Find Usages`.](../images/tracing/FindUsages.png) @@ -87,10 +91,10 @@ Now let’s set the breakpoint. First, double-click the item to reach the corres Recall from the User Guide that the `edit` command has the format: `edit INDEX [n/NAME] [p/PHONE] [e/EMAIL] [a/ADDRESS] [t/TAG]…​` For this tutorial we will be issuing the command `edit 1 n/Alice Yeoh`. -
    + -:bulb: **Tip:** Over the course of the debugging session, you will encounter every major component in the application. Try to keep track of what happens inside the component and where the execution transfers to another component. -
    +**Tip:** Over the course of the debugging session, you will encounter every major component in the application. Try to keep track of what happens inside the component and where the execution transfers to another component. + 1. To start the debugging session, simply `Run` \> `Debug Main` @@ -110,7 +114,7 @@ Recall from the User Guide that the `edit` command has the format: `edit INDEX [ **LogicManager\#execute().** - ``` java + ```java @Override public CommandResult execute(String commandText) throws CommandException, ParseException { @@ -142,7 +146,7 @@ Recall from the User Guide that the `edit` command has the format: `edit INDEX [ ![StepOver](../images/tracing/StepOver.png) 1. _Step into_ the line where user input in parsed from a String to a Command, which should bring you to the `AddressBookParser#parseCommand()` method (partial code given below): - ``` java + ```java public Command parseCommand(String userInput) throws ParseException { ... final String commandWord = matcher.group("commandWord"); @@ -157,7 +161,7 @@ Recall from the User Guide that the `edit` command has the format: `edit INDEX [ 1. Stepping through the `switch` block, we end up at a call to `EditCommandParser().parse()` as expected (because the command we typed is an edit command). - ``` java + ```java ... case EditCommand.COMMAND_WORD: return new EditCommandParser().parse(arguments); @@ -166,8 +170,10 @@ Recall from the User Guide that the `edit` command has the format: `edit INDEX [ 1. Let’s see what `EditCommandParser#parse()` does by stepping into it. You might have to click the 'step into' button multiple times here because there are two method calls in that statement: `EditCommandParser()` and `parse()`. -
    :bulb: **Intellij Tip:** Sometimes, you might end up stepping into functions that are not of interest. Simply use the `step out` button to get out of them! -
    + + + **Intellij Tip:** Sometimes, you might end up stepping into functions that are not of interest. Simply use the `step out` button to get out of them! + 1. Stepping through the method shows that it calls `ArgumentTokenizer#tokenize()` and `ParserUtil#parseIndex()` to obtain the arguments and index required. @@ -175,17 +181,17 @@ Recall from the User Guide that the `edit` command has the format: `edit INDEX [ ![EditCommand](../images/tracing/EditCommand.png) 1. As you just traced through some code involved in parsing a command, you can take a look at this class diagram to see where the various parsing-related classes you encountered fit into the design of the `Logic` component. - + 1. Let’s continue stepping through until we return to `LogicManager#execute()`. The sequence diagram below shows the details of the execution path through the Logic component. Does the execution path you traced in the code so far match the diagram?
    - ![Tracing an `edit` command through the Logic component](../images/tracing/LogicSequenceDiagram.png) + 1. Now, step over until you read the statement that calls the `execute()` method of the `EditCommand` object received, and step into that `execute()` method (partial code given below): **`EditCommand#execute()`:** - ``` java + ```java @Override public CommandResult execute(Model model) throws CommandException { ... @@ -205,25 +211,28 @@ Recall from the User Guide that the `edit` command has the format: `edit INDEX [ * it uses the `updateFilteredPersonList` method to ask the `Model` to populate the 'filtered list' with _all_ persons.
    FYI, The 'filtered list' is the list of persons resulting from the most recent operation that will be shown to the user immediately after. For the `edit` command, we populate it with all the persons so that the user can see the edited person along with all other persons. If this was a `find` command, we would be setting that list to contain the search results instead.
    To provide some context, given below is the class diagram of the `Model` component. See if you can figure out where the 'filtered list' of persons is being tracked. -
    +
    * :bulb: This may be a good time to read through the [`Model` component section of the DG](../DeveloperGuide.html#model-component) 1. As you step through the rest of the statements in the `EditCommand#execute()` method, you'll see that it creates a `CommandResult` object (containing information about the result of the execution) and returns it.
    Advancing the debugger by one more step should take you back to the middle of the `LogicManager#execute()` method.
    1. Given that you have already seen quite a few classes in the `Logic` component in action, see if you can identify in this partial class diagram some of the classes you've encountered so far, and see how they fit into the class structure of the `Logic` component: - + + * :bulb: This may be a good time to read through the [`Logic` component section of the DG](../DeveloperGuide.html#logic-component) 1. Similar to before, you can step over/into statements in the `LogicManager#execute()` method to examine how the control is transferred to the `Storage` component and what happens inside that component. -
    :bulb: **Intellij Tip:** When trying to step into a statement such as `storage.saveAddressBook(model.getAddressBook())` which contains multiple method calls, Intellij will let you choose (by clicking) which one you want to step into. -
    + + + **Intellij Tip:** When trying to step into a statement such as `storage.saveAddressBook(model.getAddressBook())` which contains multiple method calls, Intellij will let you choose (by clicking) which one you want to step into. + -1. As you step through the code inside the `Storage` component, you will eventually arrive at the `JsonAddressBook#saveAddressBook()` method which calls the `JsonSerializableAddressBook` constructor, to create an object that can be _serialized_ (i.e., stored in storage medium) in JSON format. That constructor is given below (with added line breaks for easier readability): +1. As you step through the code inside the `Storage` component, you will eventually arrive at the `JsonAddressBook#saveAddressBook()` method which calls the `JsonSerializableAddressBook` constructor, to create an object that can be _serialized_ (i.e., stored in storage medium) in JSON format. That constructor is given below (with added line breaks for easier readability): **`JsonSerializableAddressBook` constructor:** - ``` java + ```java /** * Converts a given {@code ReadOnlyAddressBook} into this class for Jackson use. * @@ -243,7 +252,8 @@ Recall from the User Guide that the `edit` command has the format: `edit INDEX [ This is because regular Java objects need to go through an _adaptation_ for them to be suitable to be saved in JSON format. 1. While you are stepping through the classes in the `Storage` component, here is the component's class diagram to help you understand how those classes fit into the structure of the component.
    - + + * :bulb: This may be a good time to read through the [`Storage` component section of the DG](../DeveloperGuide.html#storage-component) 1. We can continue to step through until you reach the end of the `LogicManager#execute()` method and return to the `MainWindow#executeCommand()` method (the place where we put the original breakpoint). @@ -251,7 +261,7 @@ Recall from the User Guide that the `edit` command has the format: `edit INDEX [ 1. Stepping into `resultDisplay.setFeedbackToUser(commandResult.getFeedbackToUser());`, we end up in: **`ResultDisplay#setFeedbackToUser()`** - ``` java + ```java public void setFeedbackToUser(String feedbackToUser) { requireNonNull(feedbackToUser); resultDisplay.setText(feedbackToUser); From f74c450e62663b60996def9c31372166b46574e6 Mon Sep 17 00:00:00 2001 From: damithc Date: Fri, 9 Feb 2024 18:07:35 +0800 Subject: [PATCH 002/464] Bump MarkBind version --- .github/workflows/docs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 57737a615fc..0cd51c5fb97 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -21,5 +21,5 @@ jobs: with: token: ${{ secrets.GITHUB_TOKEN }} rootDirectory: './docs' - baseUrl: '/addressbook-level3' # replace with your repo name - version: '^5.1.0' + baseUrl: '/tp' # assuming your repo name is tp + version: '^5.2.0' From 353996b3207c00f1cb54ebb080fa80079add475d Mon Sep 17 00:00:00 2001 From: damithc Date: Fri, 9 Feb 2024 18:08:02 +0800 Subject: [PATCH 003/464] Add a Home button in the top NavBar --- docs/_markbind/layouts/default.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/_markbind/layouts/default.md b/docs/_markbind/layouts/default.md index 7348aace92c..8576932d696 100644 --- a/docs/_markbind/layouts/default.md +++ b/docs/_markbind/layouts/default.md @@ -5,6 +5,7 @@
    AB-3 +
  • Home
  • User Guide
  • Developer Guide
  • About Us
  • From 8d18d37017ac5b670b8eca7691af95087ab138e0 Mon Sep 17 00:00:00 2001 From: damithc Date: Fri, 9 Feb 2024 18:09:08 +0800 Subject: [PATCH 004/464] Reduce font size for printing --- docs/stylesheets/main.css | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/docs/stylesheets/main.css b/docs/stylesheets/main.css index 1074ade42dd..ba6f8385d2d 100644 --- a/docs/stylesheets/main.css +++ b/docs/stylesheets/main.css @@ -133,6 +133,32 @@ mark { #page-nav { display: none; } + + /* Reduce font size when printing */ + h1 { + font-size: 1.2rem !important; + } + h2 { + font-size: 1.0rem !important; + } + h3 { + font-size: 0.9rem !important; + } + h4 { + font-size: 0.8rem !important; + } + h5 { + font-size: 0.7rem !important; + } + body { + font-size: 0.65rem !important; + } + .btn { + font-size: 0.65rem !important; + } + img { + zoom: 0.8; /* might not work on some browsers */ + } } h2, From 00deb0bdddb41ccdb57b16d2b6fb845d8ae99cd5 Mon Sep 17 00:00:00 2001 From: Puri Virakarin Date: Wed, 21 Feb 2024 13:59:18 +0800 Subject: [PATCH 005/464] Edit site configs for MarkBind --- bin/main/images/address_book_32.png | Bin 0 -> 4214 bytes bin/main/images/calendar.png | Bin 0 -> 1215 bytes bin/main/images/clock.png | Bin 0 -> 13751 bytes bin/main/images/fail.png | Bin 0 -> 20783 bytes bin/main/images/help_icon.png | Bin 0 -> 31256 bytes bin/main/images/info_icon.png | Bin 0 -> 5424 bytes bin/main/seedu/address/AppParameters.class | Bin 0 -> 3148 bytes bin/main/seedu/address/Main.class | Bin 0 -> 916 bytes bin/main/seedu/address/MainApp.class | Bin 0 -> 8336 bytes .../seedu/address/commons/core/Config.class | Bin 0 -> 2039 bytes .../address/commons/core/GuiSettings.class | Bin 0 -> 2081 bytes .../address/commons/core/LogsCenter.class | Bin 0 -> 4304 bytes .../seedu/address/commons/core/Version.class | Bin 0 -> 3878 bytes .../address/commons/core/index/Index.class | Bin 0 -> 1471 bytes .../exceptions/DataLoadingException.class | Bin 0 -> 449 bytes .../exceptions/IllegalValueException.class | Bin 0 -> 595 bytes .../seedu/address/commons/util/AppUtil.class | Bin 0 -> 1225 bytes .../address/commons/util/CollectionUtil.class | Bin 0 -> 1909 bytes .../address/commons/util/ConfigUtil.class | Bin 0 -> 1122 bytes .../seedu/address/commons/util/FileUtil.class | Bin 0 -> 2373 bytes .../util/JsonUtil$LevelDeserializer.class | Bin 0 -> 1637 bytes .../seedu/address/commons/util/JsonUtil.class | Bin 0 -> 6375 bytes .../address/commons/util/StringUtil.class | Bin 0 -> 3204 bytes .../commons/util/ToStringBuilder.class | Bin 0 -> 1946 bytes bin/main/seedu/address/logic/Logic.class | Bin 0 -> 780 bytes .../seedu/address/logic/LogicManager.class | Bin 0 -> 4003 bytes bin/main/seedu/address/logic/Messages.class | Bin 0 -> 4069 bytes .../address/logic/commands/AddCommand.class | Bin 0 -> 3490 bytes .../address/logic/commands/ClearCommand.class | Bin 0 -> 1034 bytes .../address/logic/commands/Command.class | Bin 0 -> 483 bytes .../logic/commands/CommandResult.class | Bin 0 -> 1854 bytes .../logic/commands/DeleteCommand.class | Bin 0 -> 2817 bytes .../EditCommand$EditPersonDescriptor.class | Bin 0 -> 3964 bytes .../address/logic/commands/EditCommand.class | Bin 0 -> 6566 bytes .../address/logic/commands/ExitCommand.class | Bin 0 -> 790 bytes .../address/logic/commands/FindCommand.class | Bin 0 -> 2353 bytes .../address/logic/commands/HelpCommand.class | Bin 0 -> 855 bytes .../address/logic/commands/ListCommand.class | Bin 0 -> 1043 bytes .../exceptions/CommandException.class | Bin 0 -> 594 bytes .../logic/parser/AddCommandParser.class | Bin 0 -> 4678 bytes .../logic/parser/AddressBookParser.class | Bin 0 -> 3601 bytes .../logic/parser/ArgumentMultimap.class | Bin 0 -> 4066 bytes .../ArgumentTokenizer$PrefixPosition.class | Bin 0 -> 863 bytes .../logic/parser/ArgumentTokenizer.class | Bin 0 -> 5945 bytes .../address/logic/parser/CliSyntax.class | Bin 0 -> 755 bytes .../logic/parser/DeleteCommandParser.class | Bin 0 -> 1696 bytes .../logic/parser/EditCommandParser.class | Bin 0 -> 5741 bytes .../logic/parser/FindCommandParser.class | Bin 0 -> 1874 bytes .../seedu/address/logic/parser/Parser.class | Bin 0 -> 395 bytes .../address/logic/parser/ParserUtil.class | Bin 0 -> 4510 bytes .../seedu/address/logic/parser/Prefix.class | Bin 0 -> 946 bytes .../parser/exceptions/ParseException.class | Bin 0 -> 619 bytes .../seedu/address/model/AddressBook.class | Bin 0 -> 2829 bytes bin/main/seedu/address/model/Model.class | Bin 0 -> 2128 bytes .../seedu/address/model/ModelManager.class | Bin 0 -> 5288 bytes .../address/model/ReadOnlyAddressBook.class | Bin 0 -> 300 bytes .../address/model/ReadOnlyUserPrefs.class | Bin 0 -> 263 bytes bin/main/seedu/address/model/UserPrefs.class | Bin 0 -> 3018 bytes .../seedu/address/model/person/Address.class | Bin 0 -> 1453 bytes .../seedu/address/model/person/Email.class | Bin 0 -> 2488 bytes .../seedu/address/model/person/Name.class | Bin 0 -> 1486 bytes .../NameContainsKeywordsPredicate.class | Bin 0 -> 2725 bytes .../seedu/address/model/person/Person.class | Bin 0 -> 3356 bytes .../seedu/address/model/person/Phone.class | Bin 0 -> 1465 bytes .../model/person/UniquePersonList.class | Bin 0 -> 4868 bytes .../exceptions/DuplicatePersonException.class | Bin 0 -> 462 bytes .../exceptions/PersonNotFoundException.class | Bin 0 -> 380 bytes bin/main/seedu/address/model/tag/Tag.class | Bin 0 -> 1856 bytes .../address/model/util/SampleDataUtil.class | Bin 0 -> 3742 bytes .../address/storage/AddressBookStorage.class | Bin 0 -> 770 bytes .../address/storage/JsonAdaptedPerson.class | Bin 0 -> 6204 bytes .../address/storage/JsonAdaptedTag.class | Bin 0 -> 1210 bytes .../storage/JsonAddressBookStorage.class | Bin 0 -> 3604 bytes .../storage/JsonSerializableAddressBook.class | Bin 0 -> 3550 bytes .../storage/JsonUserPrefsStorage.class | Bin 0 -> 1552 bytes bin/main/seedu/address/storage/Storage.class | Bin 0 -> 777 bytes .../address/storage/StorageManager.class | Bin 0 -> 3289 bytes .../address/storage/UserPrefsStorage.class | Bin 0 -> 504 bytes .../ui/CommandBox$CommandExecutor.class | Bin 0 -> 539 bytes bin/main/seedu/address/ui/CommandBox.class | Bin 0 -> 3329 bytes bin/main/seedu/address/ui/HelpWindow.class | Bin 0 -> 2442 bytes bin/main/seedu/address/ui/MainWindow.class | Bin 0 -> 7645 bytes bin/main/seedu/address/ui/PersonCard.class | Bin 0 -> 3573 bytes .../PersonListPanel$PersonListViewCell.class | Bin 0 -> 1367 bytes .../seedu/address/ui/PersonListPanel.class | Bin 0 -> 2248 bytes bin/main/seedu/address/ui/ResultDisplay.class | Bin 0 -> 897 bytes .../seedu/address/ui/StatusBarFooter.class | Bin 0 -> 1052 bytes bin/main/seedu/address/ui/Ui.class | Bin 0 -> 144 bytes bin/main/seedu/address/ui/UiManager.class | Bin 0 -> 4299 bytes bin/main/seedu/address/ui/UiPart.class | Bin 0 -> 2730 bytes bin/main/view/CommandBox.fxml | 9 + bin/main/view/DarkTheme.css | 352 ++++++++++++++++++ bin/main/view/Extensions.css | 20 + bin/main/view/HelpWindow.css | 19 + bin/main/view/HelpWindow.fxml | 44 +++ bin/main/view/MainWindow.fxml | 60 +++ bin/main/view/PersonListCard.fxml | 36 ++ bin/main/view/PersonListPanel.fxml | 8 + bin/main/view/ResultDisplay.fxml | 9 + bin/main/view/StatusBarFooter.fxml | 12 + .../AppParametersTest$ParametersStub.class | Bin 0 -> 1270 bytes .../seedu/address/AppParametersTest.class | Bin 0 -> 3066 bytes .../address/commons/core/ConfigTest.class | Bin 0 -> 1833 bytes .../commons/core/GuiSettingsTest.class | Bin 0 -> 1609 bytes .../address/commons/core/VersionTest.class | Bin 0 -> 4231 bytes .../commons/core/index/IndexTest.class | Bin 0 -> 2932 bytes .../address/commons/util/AppUtilTest.class | Bin 0 -> 2767 bytes .../commons/util/CollectionUtilTest.class | Bin 0 -> 3730 bytes .../address/commons/util/ConfigUtilTest.class | Bin 0 -> 5350 bytes .../address/commons/util/FileUtilTest.class | Bin 0 -> 1483 bytes .../address/commons/util/JsonUtilTest.class | Bin 0 -> 2048 bytes .../address/commons/util/StringUtilTest.class | Bin 0 -> 4126 bytes .../address/logic/LogicManagerTest$1.class | Bin 0 -> 1125 bytes .../address/logic/LogicManagerTest.class | Bin 0 -> 8450 bytes .../commands/AddCommandIntegrationTest.class | Bin 0 -> 2548 bytes .../commands/AddCommandTest$ModelStub.class | Bin 0 -> 3172 bytes ...ndTest$ModelStubAcceptingPersonAdded.class | Bin 0 -> 2307 bytes .../AddCommandTest$ModelStubWithPerson.class | Bin 0 -> 1144 bytes .../logic/commands/AddCommandTest.class | Bin 0 -> 5365 bytes .../logic/commands/ClearCommandTest.class | Bin 0 -> 1544 bytes .../logic/commands/CommandResultTest.class | Bin 0 -> 2266 bytes .../logic/commands/CommandTestUtil.class | Bin 0 -> 7961 bytes .../logic/commands/DeleteCommandTest.class | Bin 0 -> 5682 bytes .../logic/commands/EditCommandTest.class | Bin 0 -> 7710 bytes .../commands/EditPersonDescriptorTest.class | Bin 0 -> 3225 bytes .../logic/commands/ExitCommandTest.class | Bin 0 -> 1169 bytes .../logic/commands/FindCommandTest.class | Bin 0 -> 4348 bytes .../logic/commands/HelpCommandTest.class | Bin 0 -> 1151 bytes .../logic/commands/ListCommandTest.class | Bin 0 -> 1817 bytes .../logic/parser/AddCommandParserTest.class | Bin 0 -> 6676 bytes .../logic/parser/AddressBookParserTest.class | Bin 0 -> 6553 bytes .../logic/parser/ArgumentTokenizerTest.class | Bin 0 -> 5591 bytes .../logic/parser/CommandParserTestUtil.class | Bin 0 -> 2098 bytes .../parser/DeleteCommandParserTest.class | Bin 0 -> 1653 bytes .../logic/parser/EditCommandParserTest.class | Bin 0 -> 8113 bytes .../logic/parser/FindCommandParserTest.class | Bin 0 -> 1945 bytes .../address/logic/parser/ParserUtilTest.class | Bin 0 -> 9646 bytes .../AddressBookTest$AddressBookStub.class | Bin 0 -> 1288 bytes .../seedu/address/model/AddressBookTest.class | Bin 0 -> 5665 bytes .../address/model/ModelManagerTest.class | Bin 0 -> 6870 bytes .../seedu/address/model/UserPrefsTest.class | Bin 0 -> 1895 bytes .../address/model/person/AddressTest.class | Bin 0 -> 2674 bytes .../address/model/person/EmailTest.class | Bin 0 -> 3726 bytes .../NameContainsKeywordsPredicateTest.class | Bin 0 -> 3690 bytes .../seedu/address/model/person/NameTest.class | Bin 0 -> 2707 bytes .../address/model/person/PersonTest.class | Bin 0 -> 4295 bytes .../address/model/person/PhoneTest.class | Bin 0 -> 2662 bytes .../model/person/UniquePersonListTest.class | Bin 0 -> 8514 bytes .../seedu/address/model/tag/TagTest.class | Bin 0 -> 2012 bytes .../storage/JsonAdaptedPersonTest.class | Bin 0 -> 7001 bytes .../storage/JsonAddressBookStorageTest.class | Bin 0 -> 6041 bytes .../JsonSerializableAddressBookTest.class | Bin 0 -> 3362 bytes .../storage/JsonUserPrefsStorageTest.class | Bin 0 -> 5940 bytes .../address/storage/StorageManagerTest.class | Bin 0 -> 2934 bytes .../address/testutil/AddressBookBuilder.class | Bin 0 -> 970 bytes bin/test/seedu/address/testutil/Assert.class | Bin 0 -> 1418 bytes .../EditPersonDescriptorBuilder.class | Bin 0 -> 3834 bytes .../address/testutil/PersonBuilder.class | Bin 0 -> 2864 bytes .../seedu/address/testutil/PersonUtil.class | Bin 0 -> 5383 bytes .../testutil/SerializableTestClass.class | Bin 0 -> 2620 bytes .../seedu/address/testutil/TestUtil.class | Bin 0 -> 2125 bytes .../address/testutil/TypicalIndexes.class | Bin 0 -> 676 bytes .../address/testutil/TypicalPersons.class | Bin 0 -> 3564 bytes .../seedu/address/ui/TestFxmlObject.class | Bin 0 -> 1045 bytes .../address/ui/UiPartTest$TestUiPart.class | Bin 0 -> 1526 bytes bin/test/seedu/address/ui/UiPartTest.class | Bin 0 -> 5844 bytes bin/test/view/UiPartTest/invalidFile.fxml | 1 + bin/test/view/UiPartTest/validFile.fxml | 4 + .../view/UiPartTest/validFileWithFxRoot.fxml | 6 + docs/_markbind/layouts/default.md | 2 +- docs/site.json | 2 +- 171 files changed, 582 insertions(+), 2 deletions(-) create mode 100644 bin/main/images/address_book_32.png create mode 100644 bin/main/images/calendar.png create mode 100644 bin/main/images/clock.png create mode 100644 bin/main/images/fail.png create mode 100644 bin/main/images/help_icon.png create mode 100644 bin/main/images/info_icon.png create mode 100644 bin/main/seedu/address/AppParameters.class create mode 100644 bin/main/seedu/address/Main.class create mode 100644 bin/main/seedu/address/MainApp.class create mode 100644 bin/main/seedu/address/commons/core/Config.class create mode 100644 bin/main/seedu/address/commons/core/GuiSettings.class create mode 100644 bin/main/seedu/address/commons/core/LogsCenter.class create mode 100644 bin/main/seedu/address/commons/core/Version.class create mode 100644 bin/main/seedu/address/commons/core/index/Index.class create mode 100644 bin/main/seedu/address/commons/exceptions/DataLoadingException.class create mode 100644 bin/main/seedu/address/commons/exceptions/IllegalValueException.class create mode 100644 bin/main/seedu/address/commons/util/AppUtil.class create mode 100644 bin/main/seedu/address/commons/util/CollectionUtil.class create mode 100644 bin/main/seedu/address/commons/util/ConfigUtil.class create mode 100644 bin/main/seedu/address/commons/util/FileUtil.class create mode 100644 bin/main/seedu/address/commons/util/JsonUtil$LevelDeserializer.class create mode 100644 bin/main/seedu/address/commons/util/JsonUtil.class create mode 100644 bin/main/seedu/address/commons/util/StringUtil.class create mode 100644 bin/main/seedu/address/commons/util/ToStringBuilder.class create mode 100644 bin/main/seedu/address/logic/Logic.class create mode 100644 bin/main/seedu/address/logic/LogicManager.class create mode 100644 bin/main/seedu/address/logic/Messages.class create mode 100644 bin/main/seedu/address/logic/commands/AddCommand.class create mode 100644 bin/main/seedu/address/logic/commands/ClearCommand.class create mode 100644 bin/main/seedu/address/logic/commands/Command.class create mode 100644 bin/main/seedu/address/logic/commands/CommandResult.class create mode 100644 bin/main/seedu/address/logic/commands/DeleteCommand.class create mode 100644 bin/main/seedu/address/logic/commands/EditCommand$EditPersonDescriptor.class create mode 100644 bin/main/seedu/address/logic/commands/EditCommand.class create mode 100644 bin/main/seedu/address/logic/commands/ExitCommand.class create mode 100644 bin/main/seedu/address/logic/commands/FindCommand.class create mode 100644 bin/main/seedu/address/logic/commands/HelpCommand.class create mode 100644 bin/main/seedu/address/logic/commands/ListCommand.class create mode 100644 bin/main/seedu/address/logic/commands/exceptions/CommandException.class create mode 100644 bin/main/seedu/address/logic/parser/AddCommandParser.class create mode 100644 bin/main/seedu/address/logic/parser/AddressBookParser.class create mode 100644 bin/main/seedu/address/logic/parser/ArgumentMultimap.class create mode 100644 bin/main/seedu/address/logic/parser/ArgumentTokenizer$PrefixPosition.class create mode 100644 bin/main/seedu/address/logic/parser/ArgumentTokenizer.class create mode 100644 bin/main/seedu/address/logic/parser/CliSyntax.class create mode 100644 bin/main/seedu/address/logic/parser/DeleteCommandParser.class create mode 100644 bin/main/seedu/address/logic/parser/EditCommandParser.class create mode 100644 bin/main/seedu/address/logic/parser/FindCommandParser.class create mode 100644 bin/main/seedu/address/logic/parser/Parser.class create mode 100644 bin/main/seedu/address/logic/parser/ParserUtil.class create mode 100644 bin/main/seedu/address/logic/parser/Prefix.class create mode 100644 bin/main/seedu/address/logic/parser/exceptions/ParseException.class create mode 100644 bin/main/seedu/address/model/AddressBook.class create mode 100644 bin/main/seedu/address/model/Model.class create mode 100644 bin/main/seedu/address/model/ModelManager.class create mode 100644 bin/main/seedu/address/model/ReadOnlyAddressBook.class create mode 100644 bin/main/seedu/address/model/ReadOnlyUserPrefs.class create mode 100644 bin/main/seedu/address/model/UserPrefs.class create mode 100644 bin/main/seedu/address/model/person/Address.class create mode 100644 bin/main/seedu/address/model/person/Email.class create mode 100644 bin/main/seedu/address/model/person/Name.class create mode 100644 bin/main/seedu/address/model/person/NameContainsKeywordsPredicate.class create mode 100644 bin/main/seedu/address/model/person/Person.class create mode 100644 bin/main/seedu/address/model/person/Phone.class create mode 100644 bin/main/seedu/address/model/person/UniquePersonList.class create mode 100644 bin/main/seedu/address/model/person/exceptions/DuplicatePersonException.class create mode 100644 bin/main/seedu/address/model/person/exceptions/PersonNotFoundException.class create mode 100644 bin/main/seedu/address/model/tag/Tag.class create mode 100644 bin/main/seedu/address/model/util/SampleDataUtil.class create mode 100644 bin/main/seedu/address/storage/AddressBookStorage.class create mode 100644 bin/main/seedu/address/storage/JsonAdaptedPerson.class create mode 100644 bin/main/seedu/address/storage/JsonAdaptedTag.class create mode 100644 bin/main/seedu/address/storage/JsonAddressBookStorage.class create mode 100644 bin/main/seedu/address/storage/JsonSerializableAddressBook.class create mode 100644 bin/main/seedu/address/storage/JsonUserPrefsStorage.class create mode 100644 bin/main/seedu/address/storage/Storage.class create mode 100644 bin/main/seedu/address/storage/StorageManager.class create mode 100644 bin/main/seedu/address/storage/UserPrefsStorage.class create mode 100644 bin/main/seedu/address/ui/CommandBox$CommandExecutor.class create mode 100644 bin/main/seedu/address/ui/CommandBox.class create mode 100644 bin/main/seedu/address/ui/HelpWindow.class create mode 100644 bin/main/seedu/address/ui/MainWindow.class create mode 100644 bin/main/seedu/address/ui/PersonCard.class create mode 100644 bin/main/seedu/address/ui/PersonListPanel$PersonListViewCell.class create mode 100644 bin/main/seedu/address/ui/PersonListPanel.class create mode 100644 bin/main/seedu/address/ui/ResultDisplay.class create mode 100644 bin/main/seedu/address/ui/StatusBarFooter.class create mode 100644 bin/main/seedu/address/ui/Ui.class create mode 100644 bin/main/seedu/address/ui/UiManager.class create mode 100644 bin/main/seedu/address/ui/UiPart.class create mode 100644 bin/main/view/CommandBox.fxml create mode 100644 bin/main/view/DarkTheme.css create mode 100644 bin/main/view/Extensions.css create mode 100644 bin/main/view/HelpWindow.css create mode 100644 bin/main/view/HelpWindow.fxml create mode 100644 bin/main/view/MainWindow.fxml create mode 100644 bin/main/view/PersonListCard.fxml create mode 100644 bin/main/view/PersonListPanel.fxml create mode 100644 bin/main/view/ResultDisplay.fxml create mode 100644 bin/main/view/StatusBarFooter.fxml create mode 100644 bin/test/seedu/address/AppParametersTest$ParametersStub.class create mode 100644 bin/test/seedu/address/AppParametersTest.class create mode 100644 bin/test/seedu/address/commons/core/ConfigTest.class create mode 100644 bin/test/seedu/address/commons/core/GuiSettingsTest.class create mode 100644 bin/test/seedu/address/commons/core/VersionTest.class create mode 100644 bin/test/seedu/address/commons/core/index/IndexTest.class create mode 100644 bin/test/seedu/address/commons/util/AppUtilTest.class create mode 100644 bin/test/seedu/address/commons/util/CollectionUtilTest.class create mode 100644 bin/test/seedu/address/commons/util/ConfigUtilTest.class create mode 100644 bin/test/seedu/address/commons/util/FileUtilTest.class create mode 100644 bin/test/seedu/address/commons/util/JsonUtilTest.class create mode 100644 bin/test/seedu/address/commons/util/StringUtilTest.class create mode 100644 bin/test/seedu/address/logic/LogicManagerTest$1.class create mode 100644 bin/test/seedu/address/logic/LogicManagerTest.class create mode 100644 bin/test/seedu/address/logic/commands/AddCommandIntegrationTest.class create mode 100644 bin/test/seedu/address/logic/commands/AddCommandTest$ModelStub.class create mode 100644 bin/test/seedu/address/logic/commands/AddCommandTest$ModelStubAcceptingPersonAdded.class create mode 100644 bin/test/seedu/address/logic/commands/AddCommandTest$ModelStubWithPerson.class create mode 100644 bin/test/seedu/address/logic/commands/AddCommandTest.class create mode 100644 bin/test/seedu/address/logic/commands/ClearCommandTest.class create mode 100644 bin/test/seedu/address/logic/commands/CommandResultTest.class create mode 100644 bin/test/seedu/address/logic/commands/CommandTestUtil.class create mode 100644 bin/test/seedu/address/logic/commands/DeleteCommandTest.class create mode 100644 bin/test/seedu/address/logic/commands/EditCommandTest.class create mode 100644 bin/test/seedu/address/logic/commands/EditPersonDescriptorTest.class create mode 100644 bin/test/seedu/address/logic/commands/ExitCommandTest.class create mode 100644 bin/test/seedu/address/logic/commands/FindCommandTest.class create mode 100644 bin/test/seedu/address/logic/commands/HelpCommandTest.class create mode 100644 bin/test/seedu/address/logic/commands/ListCommandTest.class create mode 100644 bin/test/seedu/address/logic/parser/AddCommandParserTest.class create mode 100644 bin/test/seedu/address/logic/parser/AddressBookParserTest.class create mode 100644 bin/test/seedu/address/logic/parser/ArgumentTokenizerTest.class create mode 100644 bin/test/seedu/address/logic/parser/CommandParserTestUtil.class create mode 100644 bin/test/seedu/address/logic/parser/DeleteCommandParserTest.class create mode 100644 bin/test/seedu/address/logic/parser/EditCommandParserTest.class create mode 100644 bin/test/seedu/address/logic/parser/FindCommandParserTest.class create mode 100644 bin/test/seedu/address/logic/parser/ParserUtilTest.class create mode 100644 bin/test/seedu/address/model/AddressBookTest$AddressBookStub.class create mode 100644 bin/test/seedu/address/model/AddressBookTest.class create mode 100644 bin/test/seedu/address/model/ModelManagerTest.class create mode 100644 bin/test/seedu/address/model/UserPrefsTest.class create mode 100644 bin/test/seedu/address/model/person/AddressTest.class create mode 100644 bin/test/seedu/address/model/person/EmailTest.class create mode 100644 bin/test/seedu/address/model/person/NameContainsKeywordsPredicateTest.class create mode 100644 bin/test/seedu/address/model/person/NameTest.class create mode 100644 bin/test/seedu/address/model/person/PersonTest.class create mode 100644 bin/test/seedu/address/model/person/PhoneTest.class create mode 100644 bin/test/seedu/address/model/person/UniquePersonListTest.class create mode 100644 bin/test/seedu/address/model/tag/TagTest.class create mode 100644 bin/test/seedu/address/storage/JsonAdaptedPersonTest.class create mode 100644 bin/test/seedu/address/storage/JsonAddressBookStorageTest.class create mode 100644 bin/test/seedu/address/storage/JsonSerializableAddressBookTest.class create mode 100644 bin/test/seedu/address/storage/JsonUserPrefsStorageTest.class create mode 100644 bin/test/seedu/address/storage/StorageManagerTest.class create mode 100644 bin/test/seedu/address/testutil/AddressBookBuilder.class create mode 100644 bin/test/seedu/address/testutil/Assert.class create mode 100644 bin/test/seedu/address/testutil/EditPersonDescriptorBuilder.class create mode 100644 bin/test/seedu/address/testutil/PersonBuilder.class create mode 100644 bin/test/seedu/address/testutil/PersonUtil.class create mode 100644 bin/test/seedu/address/testutil/SerializableTestClass.class create mode 100644 bin/test/seedu/address/testutil/TestUtil.class create mode 100644 bin/test/seedu/address/testutil/TypicalIndexes.class create mode 100644 bin/test/seedu/address/testutil/TypicalPersons.class create mode 100644 bin/test/seedu/address/ui/TestFxmlObject.class create mode 100644 bin/test/seedu/address/ui/UiPartTest$TestUiPart.class create mode 100644 bin/test/seedu/address/ui/UiPartTest.class create mode 100644 bin/test/view/UiPartTest/invalidFile.fxml create mode 100644 bin/test/view/UiPartTest/validFile.fxml create mode 100644 bin/test/view/UiPartTest/validFileWithFxRoot.fxml diff --git a/bin/main/images/address_book_32.png b/bin/main/images/address_book_32.png new file mode 100644 index 0000000000000000000000000000000000000000..29810cf1fd938e8568946ad28ee0c678564804b2 GIT binary patch literal 4214 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 literal 0 HcmV?d00001 diff --git a/bin/main/images/calendar.png b/bin/main/images/calendar.png new file mode 100644 index 0000000000000000000000000000000000000000..8b2bdf4f1c16ad2abafd46df82582aad743d1846 GIT binary patch literal 1215 zcmaJ>-D}fO6pv1(lL-#-^XZx)DA*=9ZPGNX&NfMB#m?Ck9r$9F+_qs!ZcJ`%H}^0U z1odhEfiJ#^_$Vm&38IMTqy7P+FY1F2zUfKV&Vj>_+}wL|e&_toS8mQsPwm=yXeY;U zyDF!Q8oc+zb703XtYgcKHoOipbB@i@2J2W6;ffBOC#d3EO;RJ4vv~P6nc%pgZ*F~# z%~j86Huck1qLc3WA)q;KVzL`r_5xvOo;2N{z<+=Agh#GZ;4jEku^Q^6<(^uK$n4T| z-CkO-^A10G0!?%^FyIqrp|0-*vDPi{J-Zt06S2Ufo(fwi@N1;zsxwHZ5kYb~ld?sO zk)ot=R#p^z97!UU1QBi}g|nKhXi^UKFCM%_PD861<-RXC75Elop(Y5OPAA>Tq-oR? za6X?;Y)DcHG*a5#cz;rDHKde^Q4F_>QQIImB zYlQ+%i-PYbarLxgRwI9DY^ojC7egY{NKD(24fSY@55SPS|2rBeI`+C=*p9qjoQ^FJ zkN6~DF_6MNM!;M<8@W(G%QL9mPQF%*0^e@Cj;6?_lF5sTs_12mjZ#rDB|}wnx>?jq zSuvM5OAKrTf+Xz#R?TM0k|FD&k}F|sO8I=*C@N)DRgIji=1K!>C5V|7*d%e9VBNpi z(toj<9ubSts7|RjXqA~3Wi)Ql5b3iDI$E`CH%J7>l1lculE}S6oN`2c)GLMNZo)vs zDl}RSVw50!3@0^HHl>zEgSjALueWghAG zXwhT+o#!TfqIp)(goLCV(y-bd<4-ib#jxetG>9jJqz6400KMHBR@h*%C*IJs15KEO zWV=3sa9AH=62Rm}Frs&#ez*qX-K-eJdiT@(uiw8Xhen5gw3LEw?h#?vWo~uYWx4KVBJob7$nh^Bdz+Us?}F$6u_*`;NXk_h$QtGo#sUS$R48 scIpKz$F{vad2h$d;jDP|@X3`e+{NX)?EUBSdy`*E#hf_YHzxz(i*V^rNc+9wpx2rTcfpth*=#dt+rMZEiG!)-m!_AX{%yK zNGk{;V$c8S_jmnsUFW>HawR$Eecxx?_x(KQ#T^S{E_N|?5D3I&^52bnz!>}QU}Xl* z-TH2WAdou3cNZDSv_gUbd71_Bm`b2W=UfA&<4)zgxf_xAo4)F3o+a zuXy$9BOf!fA>Ikjg!w4Wf$!fdO-xLxlG+>Cxws@JWYQKgGBdr^!`B_jy~)DUz;8K6 zMn1O(I|T3WETNaSpWRiRmg*XEyogZOPGTbIP`i?%WBWQEET30z+H0ehLj(|@0E zl4+It9OTifSFc*`9UQ#c+THErQe~{|m6=e)&Cky>h%dB6#{RVa^5u(0$3|z3*RU8f zDD}ycCz0&eqVUtxhhypK>8JF}(-n3#vW3mfkt0-M-?*lR#(IFizb<@xs;t1p}0nxwF?V59KU0pP;vvZy; zJbd@eM$NN$PWn_gE^$xS>yV+M;^Ob@znjdxycS(ucZ0mWNpf`0h2d~GJ~mZ3um@e9`W~{>LswevCP~jJ{lZUEN9VvYS0nIt)04jgCZJEb&qHu-kRk@T0!{hYc@9H4X*r0e8}a1B*pVSkuLKo9_hiN%XJ9{Q*X*AhAC7+=C{jw1V^7h%Sjn@Lz@pb$US7T} zt`TsFVKMEg`Js-^2VkQt&GYo5we~J1z~Rhl@txkC@k}_8Z~OcEpLS0m6H&X1i;L$$ z|D~xEl2u&pOuq-uX%V-rne`o_T=^lc3O-Lqum-1aCtKSImP$6~z9sted=sqQ^b8Dv zXf&ExBYqF`5-8G%+`qWbQD?K%w--&}&Mdbe1_CV$>l9_GO#Sg^~~w zhDWzOCSvwcC={iG8OEj7#ldU;irz{^&PH#$_0cxmJMqr>au%rkyy&)!Z_|~pua=bM2j3?BnnBa&ync5b zta`WFSLZ*s$81Ok{j{r2^&hOEC+X{xEoms-aFlb~lc!Z<61o+AFg7w*|4)xTZu+JA zN;Z5?zF=108Q#l?)8qK39K!a0|NiBA>ax@nI9>mxW3Yv$jE(|*a103eoJW~47kY5@ zlig&*1#NYt?1jSgy&eIvymYe#zBj&(Mtm=lE%U3WCKrUp8*k7Xc`Wd;vZlT;m#J|l zE|+D&>SblWyjlGKX^tGWf3mftGWGLucF1|3%c3zZ�CA>i!LlVRJ>huB}1y?$JIz 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 literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/Main.class b/bin/main/seedu/address/Main.class new file mode 100644 index 0000000000000000000000000000000000000000..b96a3f8b880cd2061e69a846f18c2c8f1a966ae9 GIT binary patch literal 916 zcmZ`%+iuf95IviuaS}`u(hF&UVlHhiK>Wxg;0QpmI#TbjlFfYa@N+`ru-Hl zLB#_fz(*lwod7Acmb|k&*E474$Ioxy0X&6kp}^2ggzz($`@R-Q;=bfkStv0yPWgN8 zhFk^i>&dC`QigIE1%c2E+oRl=r80DlPLk6ow+$F7`(7xOOrJ3nJKZruX&CvUhHJQP z!DiUKSkQ}Rvq&Yb7inRVBtxN6p>3?9&QJ|RI?v4Tq%$v@V;Y7$Ne11kfmFe8!^R5A z4E2#z;#D@A2z|^ap`fluk;lU^*V4Qf%JP1WyM`h*ZLFh0*wd*@7}iG@K^vB+)zXY4 z!)E8*60)OI6CZ=_xPsdZ&yT0VIpbQ9&f$|NOPx0=$>KQDsqmc_MDpQV$BWd73^L7A z87XHX!syKLxVbqpP{fSiuVDv{g}V%`tH`%;5BC|YMLC9zWyb#Cvha{h|2K3H$2IJs zW1-EkV~U)7aCsbu(#vtV8z^*mDQmM2j4&*uwTA_<#zS;QA*tnzz2-PV+(U9J_zhtmcsS Xs9KwrxwDk6jz@S*p|sO<7SR6%AmG?5 literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/MainApp.class b/bin/main/seedu/address/MainApp.class new file mode 100644 index 0000000000000000000000000000000000000000..30d5487cfead7ff05965943d11befebb374a4d0a GIT binary patch literal 8336 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 XC3?6EV^ORX>%@B02u7#a7#j0G6zU-M literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/commons/core/Config.class b/bin/main/seedu/address/commons/core/Config.class new file mode 100644 index 0000000000000000000000000000000000000000..fa02726ece72b860de988d507f10fa87eb5ed10d GIT binary patch literal 2039 zcmah}TT|Os5dIFfk!(Z&115xoa%t-uK_w}rttq*XICX0xJ?HO#fBOT#8ukN`g3xFDcfcB3qxNlReb_h`3FOQ+R_NtoUixsA15>FhZ2 z$SqPZ$5QBe%`%&2YeOKC$?gk8H|@GqaYbOL<}qA8aqXsp(N}0zTMi*7ki>+7aiZJH z%hfQ66u~wm)l4RK}^Z5^Agz+(A-drd7EA~DLHX3b=RdVAThuN(Hg9thaSmD@H!zkmXf(PB19HZW|UAIvMVyKdy!B7YV$F_Z6(sly&v>cWDrA;{$jmoQTuAkcp5ZbJvQ899${~uOHAvYhWps0 zM)8(FDifZ&i>xI&3N70oOj7egw(z(rcqEYP-({~WyFvW@wrSO+lRyzA9==a55p7?E z!cJQnwoxI%bWaF84$BmrlwKXOmyBCKA_Wz3&huEq1JEs!sM>9(CixN|IejIUS!vAE zTu12sieQ?L8+{G%A@JTb?DUS4mB0}BX=L4`ef|w6ha)dBa*nZ|G4&%Y3=jY)K+tmp z*Sr;wMJF)`txyu)ozDG=>$#sW`y7k8vLnSM#~=5sRMX z|AP1yvB+8ePlzp+X^H;lSp5d$WTnYUdlvad&M1&a0(?c%Gfk;8RP7S3& zS3QU_t?D`MGMjKe*FrL;I{lwcK-wFuA}_` literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/commons/core/GuiSettings.class b/bin/main/seedu/address/commons/core/GuiSettings.class new file mode 100644 index 0000000000000000000000000000000000000000..64a728105959e5cc76cbe4b7858b8c19a2c4905a GIT binary patch literal 2081 zcma)7ZBrXn6n-vw*^n*;!dshCilv1lKx4JGYOoCuUZUYek_Ks=aTccP#*R+?;s<||G`&zhNBXjpmEajfcgU4vhs>w)peNLGyMc5-F&fw|>q z2nzJ7UCU19&6;IYtgnpCiYah5GdDkdH&^&%aW1>CSP&2yfsR=QcZ{l2G%5`N^Zg)9r+qIHaH5{`}k~zi4 z*maVtwpDdf0>LS(YB{$Be6e^@z&~r3%rJZy(9wh5cEX?6(TR|>F6iiTt&2Lk5fSLj zSygknv9oE`3T|qVoV{gKiU!kVs@|sGDO-e(<^G?bq@~3&nQS&*)NqAzon#%x2u3Bn zF@Zo#dI_|Dv1->X$Fi#wGt2dtFV<(bO=rDXDW*!jJCC=IBc~6B*25*^Gf#q``FX>rP=r3uy{T1F@q1x5-8&lIX5Cb>4acf@ja1ih z1MdoqwYcaapA1D&Y^QA21R^gVvj@~+Q~L^p%0|5`3$MB$8^$zdHO!o7>WtlBJ#}O- z$Lc(iExPil%qHWBqe!@3DVfcJjzzE%ei>Y#KX(6RHgTSZ96RsSI7gh8BcW9+cQ>VB zNg&a>ag<60@BU1~s+7!H7&)xS(yYEh>tYC<(kZW_fV)hY^DVH}tgZ*$g77OkxD}C9 z2wfp`OQ;PU@8bi3aNcgzw#<1;{t0w7)!>>eI$q<9`S=a+6NQEl?RL(38^T=cP3sOs zT*M{r>Ws!17$!schtz}1Ui`0lOXJ>#d*#28g5Hxz>*4}~#Rh7x&5<>*sZ3~|pdK`Tfelz<%abiHUqjMEUiNezAoAc}=$83Q^8l|u;oIS7;`@}$E|=>~ z;RZY|Z_W5XFTx(0{*@6KOr6?;M*I24zVOto#6Mo$GAj0 zN;^usN21dnJjBiKcN=^$_X&hF>yOmMqm^{t)w$ zUURt?nj{)IE*GcB3;mF)$k3C|klSGQEk{1|!av1Yr04-idtE}%c#4l?9bAwoTL+xX b5SBPB%LG_qhpe(2a!tUK$H4d0&HMiWDe#=9 literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/commons/core/LogsCenter.class b/bin/main/seedu/address/commons/core/LogsCenter.class new file mode 100644 index 0000000000000000000000000000000000000000..65b5432033749cf122b6adb133b8fc846c40c87d GIT binary patch literal 4304 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 H5bpm5hnO6` literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/commons/util/CollectionUtil.class b/bin/main/seedu/address/commons/util/CollectionUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..810ea10f8b0557f5d71e1c8e63bb940e93cdbb39 GIT binary patch literal 1909 zcmbVN+j1L45IrNw-dJASvh3I>S1TkzQo!PVlLfCLtc0S{J>)#D87l}>?Pg}R#FtD+L@l2?$bSex<`Nhee?%_kMN_0oIu@Esuwh6 zujeYyYZ^|!@7P{5@J*}Pb}UO7zUkOoTxuu?lpe{)vS~?szj=4}5f25%S4`XVuM6aB z^=*Md+v%wy@|e&uhH-(Jj%llnpuel!O}T3+fpW(&q_r(wGh8Q|1^>YG1g>@db3iSD zSy%lOn66s2tPRKB2rNrrq4u!z?GhPu#{XU@^aEBWN*y$Ri8A>jmV)u zB@2*N2eT_M(KYvN=?5+eJ~vu#rE#6AWeA*~#5GhkyeTlBrYuDyi<$eS`=or~#o`$b zo)=JMq($gcKsUWrdw9(2=n~l};yrwz;r-`j9_4A(b>)y1@?l8ec+5>1Iee_+6MV{g z_mxLRmPRvj&s9CskiLp2S<&$s*eR!^JzST5$VoMus$))4v-*y}RM(fr;kq0oty1hd zforHWGi;{0G&@`D(&aFnyub~|@foZftSkS(>3Kzbi8T#31ujJik6PHYA3KMt*^&L- zo}{AOlZNlOLmjtpTVS%EZVCLAM4GjX!EZ~uXDRP;$8ipWK`Z7VQe*X-_I`FJaTyzK zlD+?T7`uG6ZPFsyc-zvlx-9Y5%sAQtr?Xdz-vSnB319KJ#3_|tqPtVV{qSMg)Uk#8 z>@_=ng=pX95ex5*Z7a8JNzYTB29kN@MEXZ1QN#BF7hbK(a*Q*MDqAYgcLFF-;;YM1 zb#LB_xp0-r$% zXEVUF1b&NP%lzW-!<{BqPw+P0Ny6_WE-H;@SfHDCkNBTQC#@WQ##rHL{wWP&S8+b7 z85fl#_Rk|7u}H-)DCV$=8=RN8zQgZpbg&*t8@P*mk@O9=@c`datH?;c!$bUl%0J20 BsUpKmtVssgS)hFM7&w>>d z3qF94LR@>&B#Wt(jeTD}zUN%~@4w%F0KCSL4U6F*6(Y<%9)^iXQ!h}nnTk^{&t&8c zRD3F@U&*vlVQ8H53+_cco_eFnxd<|b>amPv)@Ru0bjJ*pfeM9#4b)t0qRLPo%2<5L zXA_Zp;gd)(G>0nS(U>Pv`}1HWJCiBH;c%^Hd8JRwe_wHr9T zhGC!*F_+u#`!@C%+U1R{R64kWdp7Pe?3dRX?jKVX>k+!Rj|U8{R!+y>lTr+RY3qe_ zX3~R*r|ETKZU^RtXeg~YL#u2OBznp(#MQXobk-1|45vG`@swf544Y>CVYHZsmg1R< z13V{&`m!a%?wsMuyYF+?R zO`bl&$uTF0sFC%rVgxG1xU&dqouv(V=SH NxJK2Sy5w2t{RcotA_V{d literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/commons/util/FileUtil.class b/bin/main/seedu/address/commons/util/FileUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..bcd9bc038f8f8bc8ff22d8969635f2afdc409d09 GIT binary patch literal 2373 zcma)7+j7%Z6kR8FqS%%bC*($e(gG=t)8H0bNE>c($gOp7$hF|oRz$XOzEf4 zALvUS%1cSxfyX}dn>wAYBPsEf8OAe~&e>xSo;*8Z$Oa-K+@VR_p|r6zk36X@RBT%4W}=(%ZHrgvK)lAhcah|b$(8Ak+tI^swO z^yf`W-me|(N@vs9tw_aSmyF7`;h1V2ZbrQ)rYkU!e-9B1NH<+2Y2k(GdUP922T@z5 zo!#SpcFpjf%uYViFd{JK3pz0|o@a%sXWCXAV;I+PTHsXk5e4n)ID@m)Cqs^_9XX0E z#C3GiD}oPnoL4wW(_NSQwTj^=bS6s0DKOOH?+4D)8=g^mwrW(v^dwA|sW;2YEHE5~ z;+HTik`nuIQ*8r79BE`UOty(sP!u_ZPguKs$tIZX02}ISV(JvKhARRWn$x&qJwJ|l z;YCUMIj8WduOVVqDgROnRwoyhyT9Z}!;>p}tETI+CErR85#K#Ua*6i`sQBaDjj z8y$HSh?B@}grO1kIf8C@N%W>>b7NK*u^ZLX5deCHJ$Z z;Kw>+6mxM*U`tIC7I!pV%mpcEL{)<)@sneEa?=h1n(PSH$y1>}(ow{B0=-O97|los z&_q+rY52ZvpcJaost=SObr{&?eDvcHSn3!_G1odc>L{Iy%o$y>Esrh8M%}P$PDut* zlj@;n`xRAue8kR;@T(v&j&Ahusd3eXUjFEb1pjsJWcd_)c4uBA`N}`i&wu3r9!UBB z{s9bNkgJ%wE}`=(0hMh$6M2K-BaFU8DttZn65Y|m$RVu})DZ_75XbQ$!vrq)XT%tx zFXB=Ny+`OS8U_^J#1Ss<{ED7@D-yQ_slux?(MJNKYjvO#6k`!hJ{!Nw`OtIjYJ$VX@RYsB>)i5rP_b5g9>=BW9fs~LuM%)siv+`! zj+CXsvd%JALRaLGMvsXMvJ8E;7l@5owJf4-UiPVY&<-8$?{MNz`{tn`cfFWl(Y}xc zC5BYpVHoIO&M@-#a|ioJPY$;yD-8_hTkTb1E`!@DHSw)vpJVokv0Qp#uo4DRG-PQy zc~H004=WXFfu*}y%7Z*LaTV9du!@j&a;q;HW>2ATHWovs&i$G;`lOFd<_v}-8&Vm4 zF%5Z);!X}@#8-oNiZO9l$;j;UC{`qzO0|}R1w+p+4_sfk+tdw)p{b^tmM@NBuJd&1 zOaoQp-kf671y#24*(~n~M-qPiS;Gm3kE>r$iSc@F7 z=Bbaq_h^3SR29SP^O&7Cu>bbLTn_>f>ERW`_94Uge+-ryp!RZwqwQdyHCUo8oq+YPlD0{L zn4%Jc3a2&5Bq>lTbA{r}A&Tul^d-@yB5hz+M{`XM79P-EeSi$}ctp`-eLw#P{8pZ? literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/commons/util/JsonUtil.class b/bin/main/seedu/address/commons/util/JsonUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..c2c06f94ee7628ba9f18d0b9007e8fb6620be963 GIT binary patch literal 6375 zcmbtY33wFM9sfNNm}D6a(+EOAqaY@MxPn@QAQE$6aI>4TOJamJo$Strfz3>uosFPv zrT1kIds^Gt!?xN}jBQAvYVX6|t-bI2zVCkh`t|qTOm=6JO=9%h@0)r1j{oudpKl)i z-{}VdY{!2zEE3p|H_c2TYGg95na@Yl&d7*k=c5JB%0>6(9s2+W8ma|W9x=v@XwI;Q zqluv-X4(^2l5>WKO;=!TOf9NIa?awWm|ANU&>gkC#~2-zds|}U5zQKT&vcKCHhLM=b=NpkpzXXgFJ7^8%EJpdPDroP!7< z+og1oQ)_iR5$gn2WvO+Wo!M^=TN0EWCsW9od4XtS(}J+7#kpwEaGt=W^GKI8UCYQ> zHyNJg*j=XK6g0R;lYo z9T#E~@lQK;)*2=|0kiQjk-L7OpfsXcLldQ+2b2yoUlEqg*g_BQYU_>-CgOt!;@8F# z{qe!x{fXYr{i*Iw;<9}{MJkh4$XqOui3$wQi^eQO7L3PMT&iK4z}Cum7`E+r$}yt7 zuEUV^j<==L%nc5M=rUZ+Fl>v(=wq`eJ;(XhTBe;H8m9|@NWN}w_XRJel+o7XVf>YHNAJDK@U|VIJi^+CGC7Wo{8X3)*e&(q`HdC0&{8Z`rDcJ!ut` zwty+3?)%sLto{BX=m2El&FIijLnvaFZN>{DL#CTDhH@+-bulMxs)b^}aCW zND7?gs2-8QKV=1J+UXr9&9tiA-p5CMn=|7P8iDnhVi6DQ*yTDSB}?w8h-!#YSsxf` zc1gQ)0d|^BaTlfA-P**bg#LLto{tyMc&=$=q<}u8jTMCpdQv4z(R>0g((z)vgkhKs z6r6H_?O_)P4onwks?jZ1aBW&P!HMit0EF@dEi{9MG)Bon3OHZQK(P|)trZoUet1eK zl{*tEgp3@s>?>!@vSu;Vq8+?F#2h2Tauf=)gOA^2zLaG$`C3Ns8oW-!YY9!M?)lK= zb=;2Es}y-d!E(*GW5)}*-2CAgM68B42%Mv+76XNu@2C$-1aHEdHQYIsTZ&tx7m@W_ z@K)Y4%wxPvF#m0V!V_132ABe)Ci(C~JKU`VsTAUfWOyV-J>BctANx&ZGe zGdI!8--Y*Rcz4;g(RW52@0E#58#8hRGm)+1UG)7r?!`$q5F^G>v)!@NhSzU-hdIi7 zhAp)y%WHvCR}74Cd_cqfQ|KwPm0w78d{DMA)s~%gWFkGK<5_ri9Y-IMQk)jJV(tK% zoBM}#JRs?7HyW-@XN=%BJR~dqM<`R6aM4RuLca?i)A4b9LST`T6`0Bd;rOhGGjnT} zR+sfiK(JJu?OUU~-Y|JBOM1L#v!n)fQ_mY?W+_6aDqNW1G#61dPgc0u>J^h)sp9@fDf=YGn%TldeRY$}&@4Hv(f(e@ppN+ElbO zd}G$uSbaE<$nf?fuRY}%rDYcRseDC$tjD)?dXbAJxVF5H5`Ae3B(^b0r{Jbdzc4M6 zaL7*JVj1d;>8l;b%X_Xd+GBc$olHK0U*K07ekrg~B?DzO%N}!%no*y)AJtt(+H+jq z;O@n*1#S<=L$KQ?c#UCan9DZC9Or0ZG~8(g1`Rn!*})VWf(qM%bQkvSu(bjb?M5z_ zB($w7mf+_#_#IK&mrTSPWP~+{hOAStGZ)w34{RzsUDt6Nr0>x^8e|D>kj^LJ3byZT z5UhjUwr#q~q7oH>mpQW$GC9|-*6)&B}?pC~vGqrd*UJ+t>>?&d^Z|eXm}MAJZfV`MI1q!I^6OgwI9zDSpQHa*lpO p!oO9|-{X&*TT3Cf<4^d@o;CO@{*He#?)$jsU&Qg>iUL1I{2$p#P~!jq literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/commons/util/StringUtil.class b/bin/main/seedu/address/commons/util/StringUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..02d815d74144535abc859b35a5c897c307f51a00 GIT binary patch literal 3204 zcmcImS$7mg7`>I5(8JJ>IA}0{VL+Bl0*w1M2*d~)odh%?k>FODsZ5&mbPwGiUmRn=d8>;0DMU;n)D3xFH(oq;xi9llc4 zW>HqFp7Q--#jV#}$1gSm%Px)vp5@ez@n|3|(0NjxmPK1Swc?Sfld2L3tlDQeR4xO|)Z`Ku6hf)JU^FrMxjYWh;SP*{w)>TzZ!Nj*01D#_|PrmH(47 zC4sJr>jctr{0Y~q4%HmjQ-ji{`dz){MK2@&OUo&R$t*6xdILFuOG5rI-Y6>H#HF}Q zV4bH*_wwB9bB5reCTS>>ncI=?QX=yjrk!b?dJDF4-vz0Q~ zCD5Zm%QvJa>nc!Qz9JpR4f0beue7x+3g|b`C$Q}z=@@7JGxJK)ut zb>*-wdXrGKj3=OqgDs3_P-JxX`~5oZt4&;kYX#czSQ@MCH%8 zO}nb2l6jwHY^(ek#+_y5-)!KfR(8U~4|txOW8QB8YipGscuF!qdwY|%mL@zDix_pA zkiVqs{#FzFaX=tbQ^BAueHQilC0P!Mr5qb@z{G7B)Wx8D#(GT>u@*d0sG+Utrc((l z*C`(LRMo1;K$X_u5biK=SYX3q4KMM@#GM$TH`19KmO*7kU~6pV-*grx$?h|U%Bh6i zx~!Y%vBptgO~X@-hN^1Z+3E4u=z?sQX7h&}I;`0iFV-hvjYDM#jRvwZJ1iUVOvn<# z+ZCJKCWwV3I%6}Qdqz)>CEXV*GH{HY6?$#C@dTUjEY^7zV_0qAKBlB~eU$SpXx&a= zQctZDI%N^?R1jU33gcNkfQJk`*pd#rZ^0824?~6^P+=Izm?t%WmoKVH7>o5)OjPwe z(4h`<`pO!I=NP6<)HFF0xKU6!2v{agVwS0{%ULz(I;?;RE12QQ52OJSnhcv2LU1 z=dkP5WpL<`ifZUKqC6pM59cM%Y?72S&3tW5ps=DK5y_6aO|PO3TlzighyXdpS-4l* z8 zizM({63SRIQhuj&s$+Js6!67 zFg=M+1U~-%QH+e2k^`<4+ww#t5&0m4&sl>aD+J6T$5CGRQYhcRSNus^7UfFWH}DM~ z_lvXgd5cN~TRBuxe20KEPyAcsYVfPbU2t#jJBQ4VJhUOpRbK;Zv4*P|F>qhYuhm$G z4pOx6?^M~&{Y2k+bWZe#%RIVoyS$bq`!udCOxI; z*OA^gvM0Q`CEZQl8+IR`$G(XRI0*cN+uLxK>QkXhec`%^1~>E6LnpT2O5{<(Hr&e7 zA?(0i*ojH*+U@Hi*GRjYUvv^>p4h_Nhk0tFR1ZdYN>R28M{tzb+(XW_NdJM21~wcN zT?Yjtz89l$#5J(ORVe5Ju;6+KSg`` zZ0c+|b(Y-i`i~P&#E5l;2$Z<)Ct?S9bCB2#gm&}fp+-CvqND$hpT;xPu$h*g#dADq zB-W$t4|I#a_$i2oUbOP(dDVs&@FMpdPj8U+7T&}A_>`QV;S18UJbj6;@h!Ul1~G1E AJ^%m! literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/commons/util/ToStringBuilder.class b/bin/main/seedu/address/commons/util/ToStringBuilder.class new file mode 100644 index 0000000000000000000000000000000000000000..6527c9dd69f29d6a9e0ff7b0c6b26557be328922 GIT binary patch literal 1946 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 Z{G6jov=90JH~1Y_Db9Y6kMJi9{}*5dL_Poj literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/Messages.class b/bin/main/seedu/address/logic/Messages.class new file mode 100644 index 0000000000000000000000000000000000000000..6dcac64de4c79e9c76564697d029174ac0279c04 GIT binary patch literal 4069 zcmcIn`Fk5z6+O?J6nTOjXK6y6L?%w^1zRZ;+D0M7vE)WnmQCc?O#(4v>DiumG^5Up zvapq{g|b5nlt9^`?A^dg97y?@kH3kJ^JYf&C{j&-0Q-~Xy*Kxsd*5Bod-~_UH|_y= z6mP}QCeZInS+1q@a@motn=^Z!SM;lT%G9lu)XdTqS@HxPn9df9 z6HjCp&ljF7%q$cZCugRoCkh#XzWkPS(Q^!IB`vUX(zaYrx4e1XtjRcb2=tt{)-3y) zl`Pqnif)w!4%IPph53nmE>p)`oSHc|Juw%DCU7ukUDZvaT-Qo2+fGII29k-R4-dKm z$L`0N&7LdH6c#hN;%t86LN>FQD`c`y#nB@$IJYX3Rq434l{Bofyq>H&_En=S%SprK zif>5Za2+y$DlX=8#W@1a%xBNd=dufN^a<>t`Em&6CQZZjWO+bfe_c0oem0+*oS4fl zPUW)sOfinV0-5QW=^0g1CTXfB-K1NUC1cs31Kd{9qkGG?Y1-Eq#H7nFQ;zwPd~Zmz zJme0aNDAy8)LmCPp1~Mr3|C(=C8H@W3dB#AOv5s~Qv&Tn!}9_ilXh7q(2qkg9Apl* zQZ;E3M8jbaa9>%vh9k=pb=ab(do@OvAQyK);5{1l;Q{LB4NDekl_lxSDYGj3c1btq zb;nTiaB(N~OKa15HJo>y^qoqe9YY$9;Q$@;Rt*|Bl;5rxSx84#q?dIZ+X)MF%62lf zs%eyTPtH1W*|;tV^Vra(mOxeAVW3ihV0yT@Qezlr(zc?q83EsB0%I8J#>04j4DVwP z_;NMRFjKDQNWGF`z4M{r5qveZ@wgY`EQ zI_k?W*Q}DtbZRObq?JQy4JYv-Ca9uU)%F9MZ=(=}Yj8ZBz=tsr!)bvBoAx%zN@VNX z4y)u0Ch4DN7bU6SP=kLV;HI?iURJ{to)CzY0uX`YQ5TzZqL~R}7DJ9SvgH*`$MGb~ zJej~WW@0Eb@Dww_e$gBPt z8nYu%)G&whOnyaQlVmj(-h$z+*7;3QP}EGQ8QoC0B(SU8T)Bhqq;T1Io2pZa2xzq@ zl5)m|t+KDN6>n7Q?Rcb7^kiiBp>L zX!~vWQgou`JCUvEhN+xb!Zi)oL3U73{_=l?@}&s%DS_^Eaw0hH1F+9%_$;0gNDwT1 zq3U?s0Ecn}{5-u#C+GAPH$eNMhA-jSAXjRYmEJ%Rsyr3F< zRGmrex;A`G!`JZ*mBdm>R!KT_iffUvD7|g6rRvXGMLMLTv-p;VZ{s_3kR_hgORECO zC>=E`4bQ8*zo6koe2@N;_cx8bFgZoL z=9J`=q0ZTz^$Xg#qC`^P8Qb<;&(W*X(p$C5ZUR5S&tmu~59_V-hj$u#O{VgCWvQ%F zP+!&+qu3^!gOAWoSN!H}br5*^N{aN89;W0i0WD`)((!pl{j9kwaI`7dt;#!wzw?f> zy(oz(=miY$iqOtWTo(?YlizG^&e{;?JQ109bG|b&e;4Pyk@+spcSq)XdiSdH;33rTA2Mog=sKkV0tl5!5ymg3{Ik0Sse=v*$62_i{zK@*?di?8o20z)kdy+IJA8wEe1f36aggx+ zymlY*y6KSpPs!UdYY$eD61Sh>WJ+F(1xZtTFv@bS>YS3?hrcX63+eIh?P zvJQP6D}8J0sBm0WV=owARpU#c=Qv)V&=*E8tmCIl9uE8ma?OT0 literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/commands/AddCommand.class b/bin/main/seedu/address/logic/commands/AddCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..46318a571eb4bc507bd9b07f7a1660f21eb748f3 GIT binary patch literal 3490 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 B2?GEC literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/commands/Command.class b/bin/main/seedu/address/logic/commands/Command.class new file mode 100644 index 0000000000000000000000000000000000000000..e35925db868abb614a4cce89fb63db419fa4d3ea GIT binary patch literal 483 zcma)3O-sW-5Ph4bjg8UPsy{#wX+5|{3l%R#L5K<}y>B){-I5Qq&WoL|)f+G+5()zwM4}m6SZyznE)!DovhQ z4?Th5pWD!?_(!BwJCC~0t3uPIsZS1;BA(Rxxd&jiSbxA_k5yvpaU>Z9WApeG8!z9q h&$gz4Ha6J?ivq?i)E}~q4rjW|xQsjecG-8Z_XWzeebN8` literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/commands/CommandResult.class b/bin/main/seedu/address/logic/commands/CommandResult.class new file mode 100644 index 0000000000000000000000000000000000000000..22f69e61bee631ff9b8c50c753d49b8b83e78f6e GIT binary patch literal 1854 zcma)6T~iZR7=BJRVVCU+m`cGueI5Iq&E5JZJxY_vb4B*Rif5!C?BFx5Kj4 zZhPGK%Z|Hax5_Pdch~B+{qk~TJm7xl1S*mY6OXK?R@t$-JLUE5N4ym~>itn*%>d0WufQceQ$_+Y$WXFy)yF5Im9)?qmfJ9QWp2S#a9n0?sawVm! zI=;en71!QVDmAv`x(>Ix25#UcgZk8RLcacxA(LcG}$2v4ACk`|`iww5cH_oK_5cgZnfc-7ba) zLr5Ib*?=WQTx!>tDfsg2!p^U(J^3P%% zQ*;e;w3^1pv};CLaDh4yzpSjzq$TPnq$N5~Wc^R$`im4N&NQ>AC@(N`R85!r7peQt zWQ9!R*Q-Dz(0uf@q4U`|TUoAwl=%nF{YGh{#)TV@muU=Xr{XjWpVNK>MSpO1Zy>ld zG`KJ{I5!x4d1x?Qv$*oF)TbbAzG(h}RC2HQ2J9J9%3kp`SWV1QqW=L(KVynkSz2YE zV}i^anYrg8MiE67$jg=>V~EsUXp3DVCb326q4xP-g7Nw(naLR7ei>O7qa zASP+D%fw{@Uyv7lo>lEFOqEU;zQh%J3iZ^8Jpt{^$V(_&is-bll@u)=;%Z|{(2x_> zA#M#~veJjiOpgr`d7S#O6bdl+7Z$cioOjb-i}VM$mtKtv2>aW(1lb2zJEA-*wZBGs btI{{4Mk=kNfOV9x)>nA0SGYz~BvAhc$TVuG literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/commands/DeleteCommand.class b/bin/main/seedu/address/logic/commands/DeleteCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..a10fad259c209a65f39ff2dc83a85a6d215c5aa5 GIT binary patch literal 2817 zcma)8-%}G;6#i}qYzzw`73=RV6=*`xRIQ?bwh*F?l0XSY(YAESUc$;|H|}l_I@5oo zGkxewpL}R%T9rC&?Q8#l{xzLW&%L`~mLmGHnS0N<=X~e8-#Isb{rl_h07kK?AjUB4 zac(rTx?#B7^RkvxGppIEQ?Ki`;bo_}#eJR&mI~qw1N-`io(yVkwpg4jO)uS@ou6jt zoq4FQ>sd>;YuU2zns#lRp)2Rup0C?}MYozffddR3hD=DdV!m9SyqRCRBfbf!4BrK| zF)aY)Y5pqL8r=09TQd!A`{s(t4Q+W-8cf^Z8=Bp$FLPIGdSozdX)sK$Vd@jWd{D8;M>FaKd`vn1+AvF`F zSX>4XMVI38tSl=lJ&D1N3DY+H>kOHH6+Jk_ zaB#-7c}a4&pf6ioT%c3ct%~lNVjXVA{Z*6TkL&`xpN0su!Z&!e=~K|cZq#+cWo3)v zJD%P@YN)h%?lmo+qSB32dBZn}DFyE{T#1sn3lraQ&W3?@jwdmIAq9gBhookkzG-D= zmml(~@2U6zDTZ#BKWdsTFFAIpX;}#t2LnKjgRUC554BiHb=~5dgv?{0e)JsetB6f3&=S$DpsX0d0cw z8!B$%Qz|cL*1#Zd?TyFB(-j4`-ZUm7VpK50(6jsUlPFv7)hUP<0Ucz&vBS_XHMSc5GZ%XtmnN&-E?$yMQjl+{L0 zKEwPTD%eW|QO)iLgoe)=)>W8zNK?7&G~FtvNhaQq2nFXvhtM=2B=mPAj$>#?2dxxZ z#gL$NvSr;#>#mk{H&secl{`t2@eZ9lOsgAoHb%e6;b-U@&isO-KgoE<>Dw(cou*vx z;Q%z8puHo3H%{Udt>~PL$|%}t@`{m{z(#{cM*o}8#c8LKd5$x8Gh0YA6o-Gt(Wl6c zY~d2a_vm_o{>9$0XPEe7Bs6W|;}~8dSIV5-LOzBUC@l7N$A81^#kRB0Q7k`4`5Es0 zD02yA;?4wk{7xW$MzN3blORP{Ue^b%VZ%H(^oL~4OzvF^k;^DKzsa2=1;J1(cbnX^Ab!JJ0c4< zo{&=;1l;3vF~9|ady#;T646(P#&PsvLPFJofICq8v4R?<>myLBM0@}zj+jD_gm6MA zx9J?C$bB!cwn!IR?`;H(K6;9#U@Iom_ev%vsh%lPM2@PMlxao9bT~}Q@K~PM_z&&n B@k9Us literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/commands/EditCommand$EditPersonDescriptor.class b/bin/main/seedu/address/logic/commands/EditCommand$EditPersonDescriptor.class new file mode 100644 index 0000000000000000000000000000000000000000..4466e6c86a7c72393868be958beebdad08fa96d2 GIT binary patch literal 3964 zcmbtXNpl-j5dKE8G>VvjQDT!2mN*G`Q5*qb3(7)b5)yEn5G4k)g^4w>C&)8GGXjFy z_pLawB_|GShfoDo#Bs3|Tqxki0XRSv>xKOfP{7x3WNRdkoeGqy)UTi3>;Agm*ZrP8 z`}>^_09=Bnb;LBR^DL`a&6&kw#qzvd$sMtWbHnb~nCTR~+~%U~_XWxd8Sk_zp6gs; zdBYXE?7I~mEgD)6n75m`lIe`(cI-P~4f`5e9COUl(9z#$eatOdrCeDV$qjHxUPGch z>N;GzY_7FCWsNMh#!S0(oW+}E4HxURpfs$Q%l5_~bZ%(z%@I$-Dg7#-s&AKa1HNUci1cqniX60+GLAAY7^XsCVwY*V8pYj>wlW)9-IdaXBbEznday$ z17~9?^X*x_94hnO>|*A@2S%0|(2)`&D-4{2b2X%BM4h&VbLO-XP$DqXWndoCVy4GH z7ApfYiU-Ft6Obh^v&z6pFvQGx2F}L?8q!2lBdv?A6d#-&qIj88ESrEwt*e!`S;(zf?$;h9l%mK1^uQg^xu8mhdj-?iY2$z$p6E zB~$iUiAn3Ws##*ewnb5q6#LhJPp082}nK#J%xEGoRq?Rarm$S43No?;|UF2jp5IJWip4eWO=~y{H?C%qk}Cy&i7LSF}eRZ zipdqGB<~<4d5I{=8-S}%QR7xhG6flaFW^j$Qlm`t9K*u5)RK07C)MOLIE`Z?Sb#-X zOiebQ&TrX#kWOQiy|TF{`!<$L;7pMn6Id>?a{}EWdnb?+xq1Q@)t#J0#K5y?!Euffq9r&wK>#M&cV9z#9SmqL+drz7QaqUK_KEz)F9_9&LrLr5!lFY^dq3BgTH z!%eEg5xASs$F;#BT%ode0cQnvilCNEV)L6#m|hQIN=;+p>m&+OM>D1)^!&ywn1m?e z`|1#;{u!7$A~3xfiHT30C`_HrnBFF)qqATV(h8>SAxr}^Fm*;?nvBH6cT*Im-eyei z5!3s#V3Gn7OgloDcFw@m8-eM=NKAZyO>^KHW#?W}S1PEjC;Kr@eiyrjvd6IdHU6DB ziq!(OMUgb1*(a=!PeV}KrfJqDuRH?1mOFxSm6=w~T*sNki0#y&{lj65QpZqD?&5+Q zLb2VbFzw*1@N$t9%g1OHF^QWdG5i{mlh`jjjfZOI^H8jdYLLV&|JNxy~j#>vb@{n4NS|>F!fLaH& zUTVxewFT5xQzJ}jv>KQC4lu6bTN?P1r~DNWea$p|!^C`xHhhQW_@3|UAFu&Gl6OBb z7vHH^mIe@~)4LaC+{OUfa1|<&PL)>vdD2sVp`R(`hj&6P#QV5g^0($)REO9Z@5tOm zd~A*5nfo|kZye9u&jFj`c;*2P*d50+4|2fvI6i@g>WyHT>gYf7`xmy|U)gwnBk12* nZhzn+{7E|f97_J08sIn{q5Bvf#bcB~Sv`&?`QPLzHUId(GWv?s literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/commands/EditCommand.class b/bin/main/seedu/address/logic/commands/EditCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..0aa49e737acacaaf937dce5e1682dc85ed545429 GIT binary patch literal 6566 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 literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/commands/ExitCommand.class b/bin/main/seedu/address/logic/commands/ExitCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..95fbc38ce20613dc8cc91a2c1c46f2831b2f6083 GIT binary patch literal 790 zcmaJfgc6r9aR9n!Q70s27;xDrTd5Al&h5F$9Hs)!S*iBjk#+S;qI;Ml^uM*UfE zsss{0fFFf;>qH_1DVMjJ^}N}6^Ze`g_n!csq-|2TJmxGHgL!hAlUVmFBS? z^C%M)++ipQdXC}9_lCpHnK$v?osT9R_icZ0+4H(*p6~TX71S7>8DAu0cjmV3*Gclp z=E_dR=S(OqLc7&!F>Jh$vD7aaip`TT>AOiNswm=a4O`e|*y+hw^t0KuNJsoS62@v0 z@Mz3aY4GB*q(4Z-aN1it{Zdvmo+WNXkZF=UZ?5#s$VKG%rnXO3zOCfHNc2LeEYfWY z2jpU{iGLcZ*vFw6^@w4w`Tr8Gu1qTB+z-Ryij`%X4Ao(hrGa=OO-l8pSzBheI0l7G zzf}PTC}V?=m7@yb>Jr{02JIf(RCkEs(8=g5pWdSWEpKU1H3C2d_o&w91l-31LJYgu uqiUL8(NhJ(_<{ZRjm=`|77xD?F5s_5J=fTs^A;LL^AR4C3d56}Z~p;Bd%=(Z literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/commands/FindCommand.class b/bin/main/seedu/address/logic/commands/FindCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..0e575ed4f2b19c59358eaac520f1e9743165b0a8 GIT binary patch literal 2353 zcmbVNTT>KA6#jZyoMjnAS23bVY>b*+7Ffx}3uqEWFa#C|t4q)r(#-Ti>+H;CE{Lhh zAIT5MlMhK%;w4s6$!lKoe^NO;GXjf9rSh<|)7|Hs@0{;^ede!!e*GQ5Mc4*148=f7 zJE{oV_GJ)M9B)lo70YWjg=+_uDdpM|$-+RE;mp3)sU?FsF<-4-o4c{HG{1O*p)h-2 zY>0{@+_g$A^p(3d&d@XAxj`u0ur8cP=Fr8EZ4extR3~e-Yd0rXZtG_bCd1$QWQ^-{ z0xlefx1=ACKYzIH1(Lg>DFbeKZYY$?h5Lwm4IZvb9<-#T8cN#yfqeAP^U1qti9il3 zH;`_iLbV}FNmsRdBO@dE$xYF0IdY8aa%)}qj*<*rEnnKo5+S{h&9+n9 z^la%=k}@lE1V?n~>VlcHkcF4N#N~l2%2nY<3|EW)KTN4k9he~4JUVd1L@$mqbQDYV zE-)N3(Sw5wy|c=db1@OO#HvGy7iK+6ICbGGy-qi?;kpVK26tuidUa6|hTN1^q`8>h zyNar&WW2P0%v6JmGKidTJdd}*4V+>)97`|?l~b8ty)UgWFfoAB3jj|+70EJ^i5m^soU7lqhh{6ax6~oY)NWH?fwMU4P0w0GnqIh zCP1U;K*RH!f{4Gov&-pFy8CLEccP?Ld6Y1vug6UyY>z1V9(Bgom*M0tu_m`V5i%u1 z$`cOVleRD~C3h!}D&`H$F{XFVe))d}(P3`p@dbH6! z6JKG41VY~@hQ&SD-m7KpZ0(l_DW(o#;udZ*cWzZ^v9If*^*4-%RSxIMEvgySkdLE|L6xn9zKR@^sg~9SK==&-5e}kR}Vv*0`y zoFak51MpCY>hVYzBl%LTzx%JRtE&6g@9#eWyvBis978=4!bwc-IH8Cl(+$SbHtoRk zxbH+}N4V40TxcjT9ISL_PKI)8(CeM_Pe+%7i&KV5_lAGrrpx`YX~m)R$4!RyR^Uf5 z_v0aV6H&rFhQfrdqmy3SvQEz0qfaW9P-b|gPL2(063ilF8V2K#dqxuRu`nc2!o-dx z;Tn4TmU~lI92;}gj@21lp7+m2op$%bDC3r}$xt0kg)f}cXUwGU1hWRi+8gQ1_$@=e zemJCpT7e^UaHBu!fT`y@`v0$X zb)}|KOzUB&EtRrZCWCGTNob4rQcY=Vq1T4`40r(=GX29m9-)XeQW~ioN~HA#eV_FD zg5Dqx@vu#?LK!BljMn1O9jf0_!~=>72!icWEYA(t!$VSxfR8Dv2N76g`tJZWA|MXiFEC7D`E4sNso+Af(6*P$`?@l8UFuwTCj*#4h$2@mau2 zStLGyk3!sWEa66?FL!)r?mhR+Ipg1de*6OP3{MRd7%DO6eqy=4AMrT0WOyb#%L|7? zH}GStDPm=h5(ASAJJ(icl?+@I~&tCQ>@41M5)14~!LXPLmM9^u&gnV#RBYlFZZni4 z{vi<&Z-+rUk&y}8SuJu zGN?D3gKneeblMKXoe^}(>|GLgN`!&cjkqs7SMgej#yl{wi-!zr$%RjQFNIW`3c9Ij zT11BJjP(Cts(k}hGUO`N>$EGPf_?4!BZif{B-wk@&todRE5qiPCpiho*rF3Ak*8^s zw+lJb545P*2E8`=e+uN)6s9RN(rkwEVlFRH1wC?RDflyP{y!|n-q2PF^w$Hy0-rfYbX0(apyaB3iyf2+ojSa_CC{D0UEEIl3ONf ZEA+jZ;;xQ*Gh9N!V;m4NBT~BW$zLbD3V{Fs literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/commands/exceptions/CommandException.class b/bin/main/seedu/address/logic/commands/exceptions/CommandException.class new file mode 100644 index 0000000000000000000000000000000000000000..40ff643fea049ba40351bd72f93c1bc01eef4b8d GIT binary patch literal 594 zcmbV|%}&BV6ot=Jpiof|1h=|VG|o~Zh7Hlgq;UgbKeUrFraz|Bs;}jW#Dx#wLmBTB zM1!pCVmkNEneU!6AD?gU04{J~!(zD9Qu;X;zMo31d6)#s<6aU)BK9?xFP?nNR1#}G zT=Z_fJ2pxT?FaEBcqrn4uMQY0*D6-ofT45j{s=}{s^Xx3GGQnU6JI*mLamN6Dhv%* z#qvInrZOFiX($<5ZsLh>B2s1QWwVsclxDbc|7*I>U`Lcw1jUFy<`{Y#EdL5Io~6mN zaYQ*xfR+i+WGH(g*Tn2>)G|1uBu_ngt4y}e`dgkGBRB#hqWLV^(Yw%UQ#GL4qJO1# zI!E=jICp4uif)yZHEdJeU8qpU4ppSbE*iuztmcw+M-$8pyLWmv$KE=uL6@2Z>~JAl T!R#fBuA+^78bvt>WTE>7s@#XG literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/parser/AddCommandParser.class b/bin/main/seedu/address/logic/parser/AddCommandParser.class new file mode 100644 index 0000000000000000000000000000000000000000..073652c6cbed2fe24a181f1402fa12ea0ef15c4d GIT binary patch literal 4678 zcmbVP=~o-q75_c90eKt~J9bKHr(k0P1|uhN+ypskWe_&0gsFu|Ad54W1{gD%QAZ8JF2{)T++>FMe3y&0he9T|sn(9GO-?|t|F?(**Y z=l`y~3gF%NyM`u#!GdXKi%}z+^~^#cYP$%dz~21)BQ@W&~PB-K-fwGj{0E&@QkmX*uR( zF?Y%Irj1LsDX=@~W(<4A@GSWq5?lO5s~~VJ*ze|@i%zL+Vsf9mb-YVT>!I}2*>jT# zxzMBIVC6z06`x4TgDM0{-Qd?KBeOMN=}jyamqO@?-hJ-T0Sf zgRaDyE|bDCk6;gyve~2r_SVrdFeC9lr(+857udgSde;2Pq&rs3+g8T#H*;Xz_2_N? zwnC~@rgco?0<)MAnlbDmTN}No2Um4nhCUR1%Z{E?J;$(_nU7*t!(&8Dd04foV-Alq zcHBsyIt4;pB6t!PH9RG7xRC*>;a}j!I-Z6h(4j1wG;*~4{(9KexRYaZx1)K}E4WTn ziqY;TkUYGEizohRVx$m0Xl$(Y1#o@R_cbrQrz_y>)-G69lS!B<8WboeNiLNaYEP+MPU zp-P5P*S2{u^N1={fg-0(Kc?Y>TMnM8P)(_bMX-z&St-v5yijXs6~78?jVDzML9iNe z1n@WFD8U(&^rkbiUQgr0($0?v9BF80;8#oy9)>3&+rdYvgWhbMsA;(DpDm6mg`P%c zD{SQC5#;&7M!W$`WHy5&Zpa)U#%67lGPJjm?hRIv?E9)`vz2^lJ{zvqe5$Txv?I#QjXg|FJJY_ASxOmsHQ?>Q*YQma-w?R7Y+=Ed z=US9~oDUt}!nXyQ+GW^UUE3UFU>xd1^@kC}ms@bQUly1r04x zdTLX%2AJ};Dos02yROf4GV&?YUv#sD2wuXfhL;5nmQ&DjmN}_LlL|jF8uLcRcRe=K zKjKepI=M1Q;9r%|3MB*OXL;$e%|dU|b(f0yScP}20eNMqpi~J?vk>3jVz6an*~+0R z+;)^%p0<25wyO<)sF|xu^*GmwHJM(o==d3aPR5No?Ye%dbmBUX&I!jcy;0jJ6inW_ zUgPYt1@U^gY51$a-Hln<_yUm8LkpYv-^wP@$|o^Cj^+9TD7e^8}V_n*P`8`wMByox*1vn{JQke+Q_MR$6( zZ54;ov)U?-q&F~-8q%uRxI{KGldYQ!(dV#pXbtzR;lbx|*LCcf-Tj`H8)%k_<6J+p zj`zJ*qoaDOHB1iCh&7yF!_4a#*}xN$aG-*4X{3de?h4BMNGmCaDkzsn+DJLF24@4_ zh;|*zv&Xtxx>~#1y0mp%8EL-f-13J;0hNrl=$93kv|=*1(vOHT7^2?O{d zuZmYOh!-)0*LnYY1H*U|$MF{KRZ>p`D27-QPka>PM7ad#k)5|fGRRPlakC~qI|n!LwWHVY9pDu_--O?hR+%It%J6*wFMdEH9UWZ5Pb74e8hLIi3OXaQs6u=03uQW_45Rvs`i2DA+JRrwf1ZT+ hjZ*d7(Cpt6wE%-Z6Tx*{!(VWN6j{Qr634%x>;KRTX0iYP literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/parser/AddressBookParser.class b/bin/main/seedu/address/logic/parser/AddressBookParser.class new file mode 100644 index 0000000000000000000000000000000000000000..8655aca58971b7b1a0ebbe5079382fac18b08b74 GIT binary patch literal 3601 zcmbVPZFdvL6@JE+yh1D?s5FUbk_uvoDE4fzDL=s6Zs^6lDyX1RhH5A1OGCi-ui1 z=D5YtMx+wcW}4JGL}c6-~a zvzFm`EpNV!9QEo4bZCePY|fdsoUSgOlZ?t!lL09$|^N? zH}5K2Hr%{CU6po0w#2285mODL;W+kUpN22BNx5)|j>qxD>T5_oGyC}%NW=q^_8G%6 zi^-6r_vA<0XAGh6#a< z;WpIqRJ0t@F^Q)Iq9xa)$cs+}~|LstQOIFDW2j7a0BQ0GgZG2N3-koVB`B(*gB$GM)}#iY$Z1}%_ePw;0pRcrWa$AE^v3Ou;}QWoF_UD(bf>f~+G!B&hN97o$! zJ4M;a-wlZK`9^AcDb;67Lcfl?KE~FBxQ=^1#{D00vI7tDH%<&!y#sWNqp1^n~cG1nl97p&hrI2*&B0l02r>43Y38wj@^VkcMX;9NFAq_Z=y=&tWuV!oTKthrJSeoDwS_jUZDJrntYwgn^e9> zd6Du5ly6i1Xqn{n-N26(HSY#&UQ!HlSDitKC$NR%G~>|A{~7ui5q6dQ?!z98tA3A7 z-6o8PZP+g!#sQJRxER49aS+dl9HzxAo)s^$SgG{b!+c{D!&s})WqiOWZxkokgZ`9p z&xm16aIO>k#BRpp17^X`XxW3re~{9!_ft3;`Wk=wt&gT_nno)Xl@9y@zofj2quIU&zf>#Rl`vm(L#J$24YVp` zE?RR|&b2C~+=&Yp?Lw%~ZuzCUjY8*?wy1@Uo6B3(QH2fDPN`yrHQ!cveEIBwsa4{i z^z9kv@@QhkloNypqHm30I`o}NY4jj}3T+3RiW44GXc@?!R%jjbigp?;=rFMXX#<@K zn;OuLS-~vfrLhqm8=%l-VjbE9zEiP}*UA@c|CDvXCFHItuVA^SE#Hyvc(65`bpnOG ztKnbCA2GI6Yb5M}fz_5R+jerB+0$tP-DYAtb|{!7J3Qav>m;; z%fP1wA9owrt+osB6cqSqa z|KKN0!ij3=cooZ~H1hxN+NQ81u_Gq#!)Fx?Cm1hR!+Bj9=hAoppEK|v$!esnj>E(# z4k)a%Bm16#q+;quS~Ukvd;y18W`XlGi-a{dDKU?j7{gJ1lN1roWRnCNm{`_FqC^R< zVNdBRhkutGcPadt4_`3idmo>)Vj%g)l{ zmkYKonZQ6rVPusZ*h{9llX9LdEp0~?zJaeOY-z9@ghE)3JK{rB$X>CJxU@wwJ;{Pt zwun_xMa{$lyUPt?YLu zUc^hC27a5tOBo!Mu|Jx48L!ajY6h?H!Zul{*#4Mn1%b`>^{&G1+emCig@L~*^sa8o z>W+BhwT*`_+X@9H7g|0IexR8Lhm}bz(DrfElepH+uNR4vJ63{;trvm1ElnhpuDm@x8-~xHE+_gMY`Sp}mXP z)q*qPx&`98OPlT_ygr86g>5`0#rME?jer4pEAB*&2{t}~JP5ZwlPrwyKtJQ1*C31wcR^cYdc z(sV82cnYth{T3c&Ql_uTGoCmlD9nYsCx8?17vY+Sj!|%U=&RZy-9ln7dEZ~I?8dB-i z>71Z)A7bQV)b|8M^Dy?1;Qh!a5;L;2-4Xl@&l5){o|B?YQZn`+pCmp6yq(9{RVI2_mHv!;1T*KD? E0UWa}3jhEB literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/parser/ArgumentTokenizer$PrefixPosition.class b/bin/main/seedu/address/logic/parser/ArgumentTokenizer$PrefixPosition.class new file mode 100644 index 0000000000000000000000000000000000000000..8762d805bfe39e337a7b02547f90463d94aef352 GIT binary patch literal 863 zcma)4T~8B16g{^sEv-unMez#}QDa+)`{)B|Vn~cl8YF=<;c?nt>fo|VW~RjW0{{~r z{2@MQA~Es7AK;HN-q}U`z*Muz%$alVJ@?L;{rc_m7XbIMR6>rhVwne{Pz?r#tqr4O zsQclbGL}vF*bGOz9J|fr1;_don_KIKxAn{Q#A>ILxP$^>dPnW6FjDa_eAe6Hz9URo zr;PiNMW8mJxR;g^Zg$3W%=A|z{eh0PdqlX?_>cT{vr8zfCIhY@kEsAP0M(PSRIVR~hZkCuG4r*Ou^b+ywvfNbWK{WVi9V zBQlzJQkFn=W5Vr5b6lHKV=5cT$n^P%_EXQD>3+|@1|ew2F`Ly$SxAVouAfmM zRI`RZ-*9q`t$UhShea_mFMm)@K5Bj`h=i$_gKLEF=jpp zmBXy8brfVhko8c?j!?yGoEK&>E5ilM$w>rKc}kIQm=kmnmrmM*visOX>mz2~3CP5Y wDfuQ946=k%!OOTJjGyt>;@bN^ir@aFIFGAo);zAs?ypK%kclg}k@5@Q0Uu(;4FCWD literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/parser/ArgumentTokenizer.class b/bin/main/seedu/address/logic/parser/ArgumentTokenizer.class new file mode 100644 index 0000000000000000000000000000000000000000..8f0636e00faf35b7f66eb4bc961e49d2e24c1d7f GIT binary patch literal 5945 zcmcIo`F~Vb9X)rJykzo#G&Hm+qy#`oS( zpbJ$iU9?*FDpjc)E>+vAA%R-!u2}bd`N2O##dGhQH%l@M!B#$G=Dxdp@A;nZ`F`(x zbLl@9UIuUn{-Gft(CL_FG8Z$FN!xUsSSmANC1P2_c1%0gYft2+%(QzTGij!+lcud9 zB+ziwIA+9BMtUN)ckHN{a0P0*t+eI#2n5^OM+8EBnWPy(5Oq4js1aB)V5QBW+|-z9 zA27yJraBjE=8H(~C=US=Q zfaSPqw~D)!Eq+r5xb6(qZ+JTCDb>ZNYjnn)XN&ZZC_t-#(w{Aquk zQAKboS~aZk^Gn69*S3ulj*i=~mPzKgwrNZ;KiUqLM8wNM3b?2mZ(@w`DYkV1+?*$;SL&Efo=Is zlq>TsmhM-MID$>sqG7YZ@_BppWl|~DoQzFcw&D)b;$~!)2;AIO!D3;$a$viTE>Hkk z!m}c+*N_)YU1?_l!a0i0D;r5kEPd| zIvREgEG;^(^eG`m(2KeV?!;Xhb_uMiQoubYb?inzGjYOny$*rv{rD-mDPCE-Wu?7a z#{dRdhvt(k&{l~Vg|O62e|x`%y#nzn!2FVWrP2|>5cbOh?H+-(Z3~EFfBQ&1x^Y0q zo552t$TL=;sT8lDyZ2JYSyfL3Ze4(7D$twmA2$MmY%b>EV5XC1UWo!bs@b}lzs!?G z!>*B-WHPG*x{a=h0BXBqK`sjN6&1emPB`-eV;H^i+i2ss6c~v9(GP2uXabvaWMpnl=Ve>lWWNg;A=DbUDr?!vOg2RyM zcTDQ@zBwxMgP_!SLaOnkk?UisT%SbAamA34OFpw)r6=9>#B=Oy)NXyDSSZ32k{iy$>zuokIX6n^RAb~tt_-3*6|S;w~)iT zIxpSjC4#9bi-s}9`}Uw=PnuNLb*vVC3Gw^t4ST|mp}@LoczmDz>8u#SVph_E2bI@E zwpBP}gg>q0GZJ6}mB7kkyZ+u%b!T-vi_dYjlN)nX@mC@(Q%ixj1iql-i}C~saVqab zO^KXs^Hs&$*SE_vBTa40?Ob$B3dBdiTakJu*c91G8f!KP?7K$ocw3Ym-E@L%`?oN8 zkbPZ858fbi;+yhL_dM@6W%*yeqKJpLst2nI!w2ecUj!0id_P)mIf!k(lfr>NGDUKvt}TZnapM5^E0KSr)=Q?zHgLH zU-+Q6W%aeCxu3V(XQWcYmTShB)L>@Lsp($}O2Fp38t^?Sq#x+`D!#^*-xuhqs*J1Z zvH?Ge;HUVxhM)0GZeBpVjPnlqU4BSLaY^9m|9=p?&H4UbgjIo>3WWZo7QYk-tQ6{| zHg9zWd;Jagm1Op}I$pqwWcD`=cu_#_Pp3`0FJ(B6>1g;9Pp6`_GL4igPs3mMLQ;Jy z4_Hs8EX-b*ie;;Q$aLI6Q~qG$U=?u%`4R`zvBe)$_^I(J#&4ec2uIJO_60TqyaPZD z0}ZHWTlXgLdl8==$6_qWFCOJ=X;hDP%%EW~+Bt*kpXYN>*@$oySWa6jl%18{T-=Ce z_Dj1rag-jY87-WBv+DJGZeh<8^7j#bujEL8PDsdy*;1Cd>FVeOw1LH-Gk_UvoW-^P zUO~46;W^TX5Zi0{*+$sy+;Xh~v&=J50JA&~CL*gV$5tu}Z&Vvz;_5J;yDp;l(0TL? zMmwhQrr-?r^qj-0ix@i8(Q+R9xO9ee`4 zS(3oFaW@9y-)Pd%En3*-YfwIX_j840r#aej0dEIZOk+#}h88%7nwHS$a~$+y>CxEF znC&6ty9sNLf*JJ;6ks+JW;4yxD2@g{uWgr`luvYSae#_ zbB1^(WmGc(NO~{g&O?pPdE|nmd9WkcIg8`L@{#B??&si8$2u!kFyn|oqhNOSB7};*@I7Vw=l=n;#1T@jl3J<42jkXaVK@Ob_=aZvTs7* zGGWwcNHF*shSdL4jLvq_&s%R^2TyXR8qRN}tWOW|iO6B9e$5LaE5$I X`y>90ztWi@j{l98{?7go+e7~a>Hdpq literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/parser/CliSyntax.class b/bin/main/seedu/address/logic/parser/CliSyntax.class new file mode 100644 index 0000000000000000000000000000000000000000..1eb463a24dec85da932f319b5ba76e332b806fb9 GIT binary patch literal 755 zcmaixT~8B16o%hv>9#Cu!751ou2gJM8ScCQO&TalvXq7;ja-rGcC15|E!o`~{8`2e z5>5O8{wU*_lNIjpX3sm%?D=@l{QmRf7l1d|D5D_IOtl_Or5cSAou)FHj7=!dRg&sN zZbv5g8fWUFj2VH2Q}sp3NX27$Fg(>^CNS4O?C$P;Jn41zy8f}fbBP~$#C!vZ4DlzuV&_xk1?Tj9I z%s!h`VD+Z$UcD48*bOGrB-Fdc)~;UNtXqF*(ELSu{u1ie7OA>5!;vg-q`^7TxD*Ry zZ4Msg-J;VOX9I74qIz6gxJ2zcmRK*dzR&t0>&L90vVO+8$$Ir0mu=B^iG~1e%I;>F s+B8XRP@^{g0cuJs$XiQ_f_Q1|5^L8b9EJ|3*k7%;S9ncPV4cgzzfPQ$A^-pY literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/parser/DeleteCommandParser.class b/bin/main/seedu/address/logic/parser/DeleteCommandParser.class new file mode 100644 index 0000000000000000000000000000000000000000..f895138d75c7c15fa6c55483438fe531ad596748 GIT binary patch literal 1696 zcma)6TTc@~6#j-53TqK;1@VFo2-p^7#T(KRqCrha08Oey;?s0@D5KlmW_OGFM||@? z;ENKC`tFZ1o}F#5z*>3Ooik_7eZFsg{r>s`zyc~6^f1f?Qraz3*tRc&z;wL2vdpIN z1L>QOq$5MQ;x!t=wV!ES25E-j*J4+gj&SSd)7ookg&FiQOmvA9J2UhxDOZKd45>nK zlOet0+0sA?r?SYPpJ8ZCxpJe`s7e31s5z1$x8_;G*%ZEt_HAW4+))9;&9yEm6N;}e z^y=0a9u(I8Hc<_I<<=|3#Bf&JesFji6v}w~&XUbgd2W!wS%y1ZijfDVrXIzCtASCB zWpIvRx{G@}z89f#vN(?mlv}s4>e})h!_o3&;Mk@$;O>)7TUZ6s?D=9`O>(VdM4U0z8k!2ni#pex7<5~tYhd2mRB$80p>>vS^-Q93-H@A%%^h!_=3C*jwL7P$_CHna)& zdQ=Q2zA}cMCh_mykt;s*K>QQdM32F0D6BW@qS@wbIiZvPFm5HLUc~^_k;O315b~>D z%eUkc6+I4P2_&D3=E*QnRdrW{EuYM+j)Ant-mR;cZA*zJ$)u<(S1>_Ers(UX$2D5% zJ){2s?Mzx3t-Yl$Fg}scgDm~~v@(l9lC!Y^PGg96gf5&Rs~pK`+U0ea4-_&*nwi;s zjI4jd#jWdKFuq4pek;e*-;vr%|xWA literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/parser/EditCommandParser.class b/bin/main/seedu/address/logic/parser/EditCommandParser.class new file mode 100644 index 0000000000000000000000000000000000000000..c79ebd49f59098d06d1f30b534bf45fc63ea86a0 GIT binary patch literal 5741 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 GZTcS(ETFdl literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/parser/FindCommandParser.class b/bin/main/seedu/address/logic/parser/FindCommandParser.class new file mode 100644 index 0000000000000000000000000000000000000000..16297c9c7edaf1c96b1857fe4c0d66488497bca5 GIT binary patch literal 1874 zcma)7TT@e46#g~|9E?#hQIuBchKeR!a@5+Y1ZimuttEhCI&@Oo>Fk`dfvx9~Ir{+e zQ~DSB)V_dIruDtA{X3mb*SUznWSBlA`;v9}*0;XB^4Gt={|VqeRt*d=%xWp^9aGqL zAhk9fe@j_rM+901=Cbnan(w;8v!BK{2C@tzFT}1e9pP=6>+KiP3JnY~Oq>!Yab_4= zP@W1G88W5v21B;y+cJj?&gNlYnBhW0d2(&XZOh&go?~+*X>Q z(l{k$5A-U-U|bf%VyW@2gk~5hZ>w7F8_Y_I*WFA|pj`cxB|D+=J#F9;!@X00$YWD8 zrs3E%hf!QLaODJ{37R~{@B#5d&|HQ~rE)Lc$opCz*D=muC|!3u;eO2P_ru@}*PnR1 z!cjI)E8v@c;EHg9=cex5(8HKy_r?m1F_u^*jN{+apgdstg=PUKrck9m{^XIGU&+0#=r{<59N`;6QZpV@HJOWRs zl_h!GZ*yx~1dbvxjp9ZgQ@BZDOG;*V*r(mkyBJMGObX}`MGi%jB5jr#F87I2-WbLV zvHpXei89aSQGrQ1qq0@VaI2q7cji=k2JSGF`e~@2{tSG=@ZhAiOApC0lLne=L}V@L zn_fv<^fZvRvP4J>eTw@AK6|UWolrUEQV>v^@_2xU#GB9!>Jr0LsT=D_mSVTateV4J zR3nZS7>a4Z?|vMaIP5&>*cEGq;qAyU%%c%oXp4LzSNQdK`bzQoyQ0+(sXG0JAoyaRW!gx zdj?S@k{QF9rrPpExD$|(=qf1Xxo_Hdeg(-K2^RXA93$(>TV1STf&gadGf1O9T4~CzpHB>M9vA3D(!oWtD$qVlr(zuD7YdoBn}wMJ zTwa|$z=uC$>@#t6b z&&1isDH`ZW4dM!&uTsV_jMF-aYbet$LN%S_OHol~e1RpxGf4k!U(#-XEQ_e&F~zKt uJr(>9CJl^^EK$7Wo(gW#%>daAO;ZV9MOeC-Ai2ah(e0CX_YGF!wecT=QvN#t literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/parser/Parser.class b/bin/main/seedu/address/logic/parser/Parser.class new file mode 100644 index 0000000000000000000000000000000000000000..982a9364d07707d5a9e4a547f6d450b5eb60b7ec GIT binary patch literal 395 zcma)&y>7xV6ot=Cft0_Njk#O9-~|bZpe|LJkXk8u0oS>TjDmyg1o3Pg`T%{XswP3u zAwvht$JgiD-#yQ;ldU{RkxP?_ zw~sBWlF+SPgyrMrdKs5in=E?Tv^}ee-AY|4Lp+9we{T2hS0u22c)oOgM-2DQVm2si~ literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/parser/ParserUtil.class b/bin/main/seedu/address/logic/parser/ParserUtil.class new file mode 100644 index 0000000000000000000000000000000000000000..c3ee91896736fe8d7df2a2e38d43bfac1c11cf1f GIT binary patch literal 4510 zcmb7|S$7o28HV2yf|f=tVG|=`NbHskM*A3SydW8nLADhnp;$sPvK>;IDQOz@bdS4x zghZUg+3Y0FzK85rxlL{YgmdCt=YQm1Od2@bCZqse?Qc<7qkkal zYSVEe#}8sh^6HP=P+{Oy{m5PORnc+%SgomWRAAq@>$~w8fj#{LivsQEgQCh|4|;6m z&?T^c+V$0JwY;Lj1-arWO%W8Nwhk#2AY;C z1m!X{%@=}D?-}8PnOfJxA7#N5;){Wvw^=%-&{^zGnIITLD0%3 z%Q^Jon0C$6_n5JmLq7&B3~zq9g|+8{>FcpeI!CR^3q1NwZbYqdn?( zO6HE$heJA)!&yvNI4AH#qXBnN*my+;LYEscf8C-6>%awpH}zBGM5UnW6`jEMwwyxX z$I|s3=~YV7ua;Hl7Mwy!hO!V-El2uAC#uMTiiXXz8)xFW46G<;g;i!s3w5O|v^2)G>0j>P5_0m==EV^-^Kr@EW54$KL>VICdo z$gPS1hnrKY1VJ)7dtbwfa4&`sru~-WGT%ePIL?r0>LXoqG9O&W5h>pW@ynt*0e3 zU3yXvrz>Voo-9k3@%+F}HgeRn0A+zWem^Ihxi(hooovQBP!eq)na7%U>A7IliA%~^ z4Z^Z^qCRFu=$QCiF(54ip8+n5B^4?s4$`Tf7hLB-sFNd#L(Yn$)43C)&H@+OULi|_ zUFQ)wBE@V{1y_1?NjB{80P(6ty`^R)p7PCPdZmBp>gdS8j=jrr%N)c!rNh_>LPt@L z>uy{!F5S7uXzrw5gU2`jtp-{{9@#5fJjsurJ8rDN9cd0HwTn*WWY@X@EnJpGzy?QlngA4DHcvYqYLwDZo9}(SCQC>{Rg{b#b^(TjPIPvb0s91?e)EV*b{sj%QsR zRFV~0bubZ{otF!8P2j|?D?=>T@)TjJ1bEj%Mc_!Ql8{cb5!TlN3hIj70UptPd|@ZY z*ZN$kS5|L9`aN8W>7C{~r38{gQZK;XEJZiR+K| z%3b&&er(}K?6|jABCd^};HNY`3vN?8m9+=U8sg_Ret}=IFqdRBYxZNqy{wx`D6TvY%Hi z035_ayxPeGJd6W;>%?d92p2lY=XQSSHOqM1tc@d&5B?p8riX6h@tf$ri{2{-I&R_U z#~e6*8zX<^j6KlnAD}GQweN*P`97}ll-a8{Sq0CMfKY^g&aj-~8^QmJUW;R$c%DD@ zni)1yhNFYG@#0bjawY>guR-qO?3JNgnA|4m+!#!2%sY0i-5ENLbhXx^yN%(tXjz~x=iEM_!s zB{WN#=ACAmi=>$*%?xQ~Ni)|#^Tis?)s{40g4`v|N=CDm&=fR{+f1`enzu;vHfi1= z&D92)Yc-nnmNYCSyQJ|mnkb`rw8xgYXY->!J&~m__n~m@Yu}I@NIl_2R~@T5(j@K zaPyP@3~A7IlWK+a`v2KZP3x)**uazms3#*SvRQ5Wm4qCUzfd#BV9v rhTm~KNlZQK_qADn;4Gb(EC-+9QM6ll-(sD%Sa3Ne@JD`Y!=L^ScoMl0 literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/logic/parser/Prefix.class b/bin/main/seedu/address/logic/parser/Prefix.class new file mode 100644 index 0000000000000000000000000000000000000000..6129b2f8ccc8c5bade276d0b5da2926102612e3d GIT binary patch literal 946 zcmah`%Wl(96rAfv+&E5CNLpxtwxNaQf$)+=5gVikq!f^Xvgpo9E{RKsgY6(T{0JWa zn=C+rBC$ZQLgJ$kb8SNjtwgNY=bp!$nYllHe*OaB7HSqWfode>VCH&*K`5ih9S1|d z?@qlilA-%3lu!JZ77T%vBkzUhj=jmyeb_sa{a7G3P09l2+b6|N9Qu>tKC8F=i67q) zSgoBd*SiA7-C!VX=qNa_;0WlodN&V&Wd|m50;RS;kq>6idNO?M^~O>y3i{r->xI5L zXGtR-`H{d*`@cfSDnFEQs!E_ztDj~juoMTW2%B6kI4GmS=RBa^X(CBE}KwV?3eCuP8uy zSZy}mz%=H~ZxF9x>htDThy#UxBiT_s*|CvWy-Bn!n!Q6Sce!tmI%~<^?G*5jjaByS Ya@{IzzD8>`C@uyxOI_4;#v1m10gWg#FM?%9#F;X{)}LD-stzfDdK7 zQ&2%!*u}Kx_T2BDJMSN_ZvZZFXu@DPPlWI?n|q!TNn!`FFI{`aRU(uvo?S6ZWgI2; zy{_DRX%hv8i}g-74nyr+X&MB9@Od!iLH5(jP`Z+lO#2MY6X$_Hay#IWZx2%?Bfob# zW++_8p0KcmoeGL5F;pEHiMuSE2sPr9Krqyu*wthuwO$qr=~N~Z%vn$NznyvvW=L1S z{T%-%7(;tQ+?54JQx!kyG_->bU)SMl3`Lh`2{D@+y$sec&Xg-|rQWNte$ibW1IJ** z(~m)4bR%?{r23={dY9UrIksQ&{}!EAUM-Wef->pW!bNJA6#21-Dls&xwqy-xf}UZv iJ7;t3|Atkmsg}cz7PfDgxr9+G8aSX)v?_rNv_1jVoss_l literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/model/AddressBook.class b/bin/main/seedu/address/model/AddressBook.class new file mode 100644 index 0000000000000000000000000000000000000000..a5c03169b61f009ee86a8873cc1afc46e981b654 GIT binary patch literal 2829 zcmb7FZBrXn7(F)u^3o*)T3W4Dz}f-{ZQ9z}+F%u^RZ4(b-fY#@CAq-Dl7-ENijFh> z4u3#D^@GkRRXgM8SAUe_x%Vz%8`BQ`kj?Ji`<&-I=bq=;fByaBPXJf3oe++61!e_Ksa}?dob_c6nWvg9JJR23v*Rm3C#e>h4A$ z1QJ`)uX)v)z`0VZAhTRps5;wqc}MRpIkliD&@t*%o#2K*d}w%4plyQu(ukweLJH{w zx&-pCfS5)GohbnvqJg zc!@_tL5J@vbG~P>GcOAy%U(6G9n~@&MtI^M;#hdHY~@!=Oc!SGfrT5Oed7!l5L*Ol zxJY2KwW$rWLRi5e=qbl%Fk#^%jIpx7_NlgjB`Z!K8?-H7ZhAZ6AW#9HT9{PiI?MuD zZpdAV6nJxi?^IU>j)kXWhLm|*OkhSJ_q_CFZ*xm9avGPrNy3+3=rc5R`` zLGP^S5%;{4DKdM=c4@qp5@?q`wD2Xq5@`2=HR-FF+5CavVP*AVWH_?7<^sFCF>P;! zV>QVpSyLlj&-Y1n)T>zaBNp`AM^Q&yNDH zNBA_Z*MV&ADXiQxWbQph_E&WO%(WPf@|xiepbu?0g)aUd^#{|fI!h{RX-bQAh* z1s&HU(|X|o3%nSCO*LRsEdCvWo?(O`uil*1iTFj~ze-RF6J+zhVQ?vz{~hN9_HePe zgsT+veTs2Cl51ZKCCjC-gm-Z{MBbMrV~`F1D^Hlyh-~ZH3ybn%Mf$R5TIK#dXR$#IdUSkl1# zCZxf$3pX_|Vem2UVg$eSLdKsQfE&gS$oSz47~c*Vv*$y`Q%tUW*!v9A_vp9Tp1aB! zdzjn9;!h22duTX75_$#QSS7sFDU1(#L+(O-*T}bD$9=B-aEb6LLDIn9JHYJF@7)Ma zvVp^%=c@A4_rz0@4&-x>(cbnX|2M>sXpcY1{{=CvKu0v+2g(S>$S2Xk`)!Ks)1W&P z`VkHFEy2Ij$&BCw4Z#QSHEgEqrLC9QjWLuN--cKs$+w&lA(f_5Rt~IZO8KE>DQm=v G!TAqQd1wm& literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/model/Model.class b/bin/main/seedu/address/model/Model.class new file mode 100644 index 0000000000000000000000000000000000000000..a8a40f8ac5aa0608df58727663f0e39d394d863f GIT binary patch literal 2128 zcmbVNSyK~15dH>{kPsnWDBj9p0_u8SK@=mGwE{&Dt9YS?-3hF2c2hgEl>8@OEZ=i^#&=tP*PXDIR z&5--Zcev&AV9Q$C{3sm7aAA36=FLKBdUa-_Jiqi|W7@VimSQkyiSI7JqFCmr7lJT=8|EMHh- z=q?fbQxxNgEc!7(3?(E1zm_kwby!S;;ba!a(Zeucdx2PttD7QP<(odCJ!OXu_t$vj z>2sZ#l|sFjBBBs0l3_gG67-7T?o#0I?n@Rm&g|A9-2%aD74hH74E>}!7kg!)loxCn z$IZ%4SgnSEw45*!R)Z{Mte-$Pa2O_7-s>hvBDL&lk&FZPUeGf&(wK zD#W%lpBxU7!Io%P#B1+_+74Zr z!Bad>;Tgk?gJJ3gJK-l`*~UK!@(OoU80}_J#3Vys^?=3js~)cz!*$KX_&g6>U&s-g z`Y^5)lV&nvWfjq6XyhDHT-~jS|GP|Fw%4uC*+#r2?)znrR=_|Ho=`b9hLmiUVqrap zsXm&)(^=fZC<(sGVU*fxAqYfN^0|~krZ7uI`&S}cr6YxTT1f3h>EV;y(a5L$K}&;H zqTT>RQ*`P=FLLxvBSV}%;uMJLPx?Euz>+(xD4_-)JRZ0H+N{ug^0$3rz=c&d~E@ zT%RxCqM?^?+0ZMvYUnjwH}nRE4IRO#p<}pdXueJh7&qq$+}a0vo9y0!wST^w%jh)H yS;N+H8eLcS7lW=DZ#KEbeLSH1V|Zw!9^o-jefNTRFYy{BydjQG#ti1LfT2GzvuUIN literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/model/ModelManager.class b/bin/main/seedu/address/model/ModelManager.class new file mode 100644 index 0000000000000000000000000000000000000000..d9120111a94d3b738aa8e6f596434e9fe2858df1 GIT binary patch literal 5288 zcmb7I`CHre9e%$UFt{p7$W^j6HEEJ!pmmz9D+?qkHPDb6OmG6DO~-^SKtWj4l4+A2 zJ+^e~u_oQwbXRw!JF=}w6UfrF&-Uy7ragQ1ekEC!9pO=)$A_fP@qW(lYySP;JD&o0 z9G^zfAP~1SEniBi`Fv5ctmLwp*No(td>>N_>Vj5`qETS$IdxS{8fsx7nVCDM;@0GaY7d(1j*NsL@)owBkfj zo3{iW2$erm7NGQ&dEKzJqL!b~ik4ZR&LIcR{ENw)X&4Md=iQ`TR14O;SzK1-b#la0 zO6!&_U1s%#f@+tFn!uUQs6G%1am7KCbV2nWqmPz>oS_$V`=HOootd1uyexs|%%UcF^7P%W!Jv2jIOA@Df` zQM533X}zG0mzL+W;%RlxVDRl}Gp8C;YEhTh-p%F#4|ldJG}cK?&1VY6`Cu9A3Rdcu zn2I5SP6d0>9>aq;5XF9hM0hHk221%xJ;Q!ea1aj(Y%6Ndm-M1GXc*&WVZ3A*0=v4N z4dlh`>3-=ifu1P3t2#bw7umE5dhxJ8bX7GnRRzTpl&hrp_we@urG8pg8P`uA`vPSHfRD5)s?LzP$r;L zrk-yCUy*@4AfQ;9?aRdQES`(vEGMecYHs6O3ciY2fi`c{{5ku7L*mVibgU|vlQnPU zL8RG3s;$yLOX2%x;H*Sg@03ILMVX{FsyFSfL2fhwAS3)oIeoMg{xG1;Q+X^n>GMUoE%Z1zNE zdUi0Ko}Cz;%x1>30(;%8JEz=yso)ToBzaI?=V79;<^n%Z@I(BF2SI5i&wFJSGh^Xx{C*z64?1X_m>9u#= zHM&`XHBvwF&6$y5jNq3FekJoPm!n?+=53{14USzkQ#!v=W=pBMW!xMJwloQiYH+7j z9p+^Y;&lI21;54bxTF<%vEGVMi4$lC+F!c*Z!cOC}M8J>e#Tg@$vsVg4Si)GDH zF(>j;Sd+Suxc)8NteI4WN1Xq z*=F&)WJxy#-VHJoPuewjLM`MC&Dx*lZ-LTEe;|;%DN~i=X;vUaJd6VdjCv+gs$pc= zu>D(_@nH+r1rCprs_UwuU*ORae}Pmk&e@hfpyG3cb|fz1L>e!VAjH`f^HyB2T}BH9 zt>{p2&5Gg2@5lde{lTki?Su$oS>77Ai`G@8nH(bdD72z$-JCTvLok{l!G!` z_`LyJ`Md?&_|A>bI|+Wuzt(nf8#_M2p6k45z~}ki>^$0m`<*-B6h%Q zI^s>AATkr_$<8$PW^ZHP4eaT;jjmq4?%)w%4TrlwM&C@&I*#1JQGP!@)4PtrTNvW^ zk(utBIJ$-t>qy^1rs94t;{lz==yp5eWcT}Un7<2-VLv8tz=0KaLEsc7DN8tvJ?p?e zMQ(VSfk@EhSO=LU8SQol&N|LWBSv>vFpq6TbI?kY;U{He_1htHUgM+Lj9M|); zxQ0V<)TGY?WQe`dz4)bUR^^NT6dH}Fl*T(EXWYh#=a#8{~vX^W>k;$iU{N&c;9(6PF63g~7Tl1Ab zMuMe#AD0R7*VJ-7w&8vJhIfQK+4(Lv&UJc{IZE|(Uqw^nwVr=LyoaX9wVr=MjLA&( zI=l4uSJ26;AzpC@d~k&u?LyKC-8TCj8D+b;@5S$}`V@F7od;pO&T$zF>5)>(rC8F?xvv09Xj=Sj2M)0*1Jb*_b*0`mh zn_11y&g}W}e**B1mk1q!Ng&d-R9brqLGGL;BY#Ngl{LqCJ6$;U8=)&O+^W5jM%hBH zvMuG6z@VV&n|yFKEd%rM>s#8WHV2tIV^~u<8(1F5?^R}~kp^&>h+>oatPC_E*O-WiPuO6C9n literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/model/UserPrefs.class b/bin/main/seedu/address/model/UserPrefs.class new file mode 100644 index 0000000000000000000000000000000000000000..e14a7e438c107f95ac5782916026e737c3d25e03 GIT binary patch literal 3018 zcma)8TUQfT7~O{iCWa9ZODMEzu&9tIv9&E~tW~gFS}xWgi1y-;9ARLX!I=q`UjIhz zTVML*L%UYR+p?>D?QiPp>OM0A3?#H&tjy)iIs4n+{`PkcfByaaHvoh9PD6vh5l_lW zwO~{#uJpXZs#B3x;if0u>#n@#X-EpREgS1b!7}W{!t}zjEc+Uo1WwdjctaYMY1`V^ z1`udotePe1`=-6<3G_|uURHKiR~_3clpR+VMt5cw1rA4?h8$;Q#I)pf!(S43Wg=i> zn@-^#2McPHlbbG?w&`CMNc8p33M7Y_M;ZyV>S%_p;gG<|{}(xpHnbi9Bk9nPN+CnI zis2g?Ufrcd$#Cy}T98<2nu?Ezmk)+H$J8x***dW5JRF?GsMfux1U{RPWJX(qA%Jhhux{u&3@+ zG`F`@;gp&R7yD<^q|vG_IURYN5;#CFN&gx}<8yV(OaiCsMy-WRqkuOxoE10}$XE4E zEAk%2dkg0TT3mU*YPxdDv8Sq*#q!2=41HRRM2lIs*o;QJqvKr+5`zVZc~0frzlY(z z{#5B+&~Xuzs)fn!!pZN|ZeN)GSw-kQ9hdRGK!${_hMl+D*|WYh1qv)lu)sq z?zpRPOdYeB6KL?rtSeTP5Mpb-K)U2q-Lh1>Ei1KMqyZ%vcR6~}_k7n_o0R^NQ}NPR zgR9}bK<|#IroHa0$U+DmDllS{eaGEU(olf!<4HubL%=b^u2|CRo!~ZFT`SfQjgRbF zIJ2=P;~yhw>e(a)8bJ&jmQ^x+S!`{BlfpU^Wiw~D&aCXktVrPto|NfeKh3JMAgj)v zti}D+Hyv9|VKQbL}0;m*|{Nw0D)B;dCl<3LlB1;ErVW;C`=;Z1WxjX_ja6aT#Mpx>yP3Tg1A6q?pGZCnTr~rLxY8mEB<# zW+X@hJa0#H14LG=G~IeTWXe_3*9d8O9s%P|Z#};?hK* z>hZv;?~%Y|CO(7~@@`|84vg~q7|!vo3YQJTZOb%>2~3hq2kke-Dl}l4v-rQAmii05 z8ovl!$H%-X(_f+4lvOj0FOir}D1N2+q#{PI-%xDgHJ*$qn%S-~_sR&(A)2yl;RSB7 zdu~tU72s3cd5+IPAC~9TKu<8R7!7P_53s>8Ri7{MHNHjHKiTcM;Q#;t literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/model/person/Address.class b/bin/main/seedu/address/model/person/Address.class new file mode 100644 index 0000000000000000000000000000000000000000..d20fd1f2bffb55ecfac2212cd89e3d908459adb4 GIT binary patch literal 1453 zcmah}+fLL_6kTU7w2TGis^YD9o#`M&ydsK@I1&;V5(h_v7jkCi$W%Hl_G03LKjH`Y z#DgY^#0R6Vew1;aPQjuvKJ;?V*?aB1)?V$8pI^QLxQaOiDTb525Y5o!&88=O-)y^0 zVVfJm^IgX*bv6}b7!JJPuefP*XU$xyzYvXpVPLUbt(NA>tFud$>hk^4d}X=H(7*6I zvKn}nvo_7pGwV8jz@4DR?NF%bW|)f6g|9cbqX&Fl=-hd&zmgID7`-=jE71Lx8`@3X zaRa?B^g1=LPR-Ox3-fnN%kxW>)%)eS@*@=*gYx*<6aVSB!H|tW7`kp)jup%>4CVjs zs!(Id%o5)m(&*RFivfmozEI0y2nQ7mGxSAN!oad)(!Pd6ILy%NiI<_}iHhq~Lfd9I zn=H@~Xu6Q78E@sla74pV93u?NCpD~QtiwN=T*=`CMiuBg-9#g};VG@@VT-;;MP8%97ONo^>4~PaqX9D392{mv#0Strrq*A+1?V`bQn=BWA!AE4DL#ir;jcybfy^n`?hdllU`Ghz_M?UBPEd53Bi@9TSmX7YjL_sPZ^grKEilU zFUe#hk(`aYpkE5E$H{LfS_(BH?%D1>r%(6v{{7GIe*pLtU&j$);I5S2 zVNrCuj&$8(-|kAYIFOEOTg7r;7-k$%hQp7<6HzpUwOy=lK9ah}FwxdRt%g>q zwVDZ}Smb*j+U0J~9-3XgDY?DHy`JP-w$m3LH*H;*^8?{{i(Q*oT3lFNF1kJGNbcEz zt7+O#i2~OZzC&J~do_8fz+05)b%rsBZJ9gD)$`MtgPyR4ed!oF*L%Vdx<{h;FvP=^ z+#N{W5N7CMp384_bJ$goiYw8RmhbH5d0JJR*@fK~JKVB8PWm_=w;e92j;Ds#Bcz=@ zFbc^9mBVm3{chQ+LP`4UaKSGuUKrCOIe4IpCHiuN8ahzHebJSCI8ed{PfW2XP10Nv zap8^9(j*vm*DWNKX5kF|q3c~ua{8GMaUQ$)skmyC6t2e?LMoB+)^-rs6Hg?ULhnt+ zjl@tLeXYjc{rK-Zs_zEDQ;A~l_eT9;joK28d#Ta}rY?=e)~R@venss0Bc_C&1*hJDu!%kXY8%%*p5lT4eI zM~RkH5>q&r0>_68Q|U}Qi3`ZYktRv~6*Tk=GuTyb3RzHd4m$Fiq2b7yZPkXR$#6al zFxqR^G9k?1C<%u76bdMkmWE4P%;@_2=`9rRCUFUu<5(DT@%QE}+osE4rSK6xrjhZB zt#2{RrSFC@1Gj5Q+R&fHafRXR=dGDh14GSg57K zq=<=O8TXPpv4mO*U!qDZY}&=naSH->0&_;e*^uoWD&U`Iopj zv;QSN$>x5=^`CvhH|cYZf`JU8bdjc!!z}UyJCD!(XMP$iLL-Y3;+79Ttu72fDzHlg z#ppYpojLsirRVf-1S+x81-R@dN{w8w>a(TYf-iz_l}7o+vcKT^Pj3WY2?fUj7EE$*&h*$KF|FH_5)&5&vSo*t*MN8`g?&j#cIlDb<$^WgNnXMUAu*YC{a(A zsq7UWjE@q&D)|iRSSPqyr0^BV5J7`-MG=W7=#=Ippt3;Us*Z$0eSwWPb*P3)NxUlM JHbq2m=U+cxV%`7% literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/model/person/Name.class b/bin/main/seedu/address/model/person/Name.class new file mode 100644 index 0000000000000000000000000000000000000000..816d0519e8f796a0753f536ad23aa93b1ecb86bf GIT binary patch literal 1486 zcmZuxYj4|B7=BJJwUfHtnyqE)*y;=@xs;g}*kBoBS(jCn(o|YXmJo#Wuk zB!u=y_yK(C2auptd_e3gKML_4$L*Yr53&9FyqD+lI{*Cp=U)JBVM{}XVI>e^5LtXM z@I??~S{|ItmPrRqMbEhF;_jOi#K$n6@WF?nsln;~|&P zNcfIz+C%PhJ0v(Jmjg2xb6W&!@v{@2mP;=*`@-xKzC*&=Yqqx^H21c5JNu7XTdl`B z42DbJemDNH=~Ca9PhUTpPiqYNv&eN79)_7aj&#Di42zYwiBx+GxlPiih%8D5=5c`` zTdDSnSj0OTmKYXd_EG4#iB5rmOSsH1?~Csv#}^$>c4!*IYI?v#(?&HlGkH}6!xaPX z;wr_)X$AcA!R zbC_W`*LI}nM5Dg&_junWKT2)S=5CMsj*63)xp3$N4CVGTy0FsO`rrCIDYxjZ^76IcQ2XVL;{0!1upQNLjef^yC{)=P)pCqrok(wxsy9isTcp`- zqTPsxnUjWRl*{-McWK-r417g0WN?pq<&e>IdP_DYP&VkUc<5^CF*e`S;a-Z0enzE5 I6&XDI4+t4R%K!iX literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/model/person/NameContainsKeywordsPredicate.class b/bin/main/seedu/address/model/person/NameContainsKeywordsPredicate.class new file mode 100644 index 0000000000000000000000000000000000000000..f569350cca1261c3d40fe829aabaa6e4a22619f6 GIT binary patch literal 2725 zcmbVNT~pge6g_Jj1V#bJjY$(|!e@f*Bu>9b8dK8XHVus-5CduG=VC2JAWNn+>4Pop?!EWid+yn*zy5joJAhkgXoxY~_JlB+ z1#TFw@Vr9ZF@#lU2-kD$!XmGWl4JYaw7rL7_glv`yd_r{W|jLwLxLf-&7bjt#qC<* z(Z;r@`Wm_!hJ)RvZ(4=Trd{<-igoD6(6ggrk$<^mS~fku$k1CcYc}_ru3(rray%2R z1H6jwns%)?OD^3rrfvGO46jWcaVTcj7_J`OJu!^5Oq8hnB;rWv=)+lt_*8bS7Zg~B zh8~82vT2LOW_?4rD}2ME6w_s=%B?l-nsTi+6aJRzG2AKtUvjCa!S=wrjaG2s`3zU4 zIz?X!I#|rE_hA^9G`zvk-%hoT%NQZ&KioS}3o z+(@Y75-9dz5?3``VL0DPstr=d6tW~0ZtpH|zq-XR8tviiD|qiWqaop^{n+klSc3Bn8jVvHr;uK z$I;Tmgo?*&%pT#hQzAtPa!anxq@{k(Ad(>bS-08wQ`aNu%jB zN{i&Gvd^w3F^72_pWq>bRujJL3~7Q`?vRQ!D)wRlk2EYYT>cMJ9ZOiIbT^xp6~>QB zL#2{L1*;lX7$)1pwec4kuhO{Gv4$sf^{Z;=KB0*_U$Y%ol(DAF5J+YGCbkl|EUig?9DpXo%a8boqTr{)~T_k5Q(7KFd$7+w-z z;%g0GQC_WEW!lf29Z@I;G9W{~$*aEO?&{#!VCbv2wiy17s#kf2!5?tju!J{JcATAN zBPwatn@Evujw>{2qvoeS3?V!Fsu>$JP(?0r%c_{ZC=PVvixjTQ+pwwQK0c-m>RH=x zQpso6Q=pls&)c?eOBVM$;c2i)XUB*DNWSwEPazvzNXI zF(lDV?|sneJ={5iemeP-)-ie}bH899m;V{*pJ)}wIr{IXCoq5nQsi?M8Cng7*7Q72 zEAmq)uhY9u2;q(-hRG>G{}N?cp=5H;k$!<8hWtxP7B4Un!yXyLB7hkJ8>Dq60+=}j z%piw+5T2&J3jZDX%T&knxgXG#*vtP3_C31dd-*@W79{4i0QW`+7FKtW7y*Wet6{2P zgz_AvIwuHpG5{V4LmmQ;<0jrDzzkWwMb*dfHu)zI(+^=mF)o4B1sL2Q#GdU5pf5VWyxB$r#DBX%^xQrkJV!bID;^*99E?Egq=RMhP2gz|ZCz>PGkmVnt5Q`4YA~@)JF>q!sKdd9 Fe*p?n%B}za literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/model/person/Person.class b/bin/main/seedu/address/model/person/Person.class new file mode 100644 index 0000000000000000000000000000000000000000..6f490acfdaad73ac508be0e67c6c69f4c8c6c8ba GIT binary patch literal 3356 zcmd5;TUQfT6#ga`CJaM`DAY(T2qGi_qPEuBC>E_$EJWKN8m}E-45O17%*EFBp}&Ln zy-z;0YYE;~yV{pN^bho`0Xl}yQ9HSNs0S+2NF=89ZYL=^PgHy#-o+i;4R%ggu8m8yb>W0Xuf zm=Exfqe@mmbbZZrs5=~_dqwC7WwT^h_Abg7gbtNeKX3(ygM80;>CqrkHHsAld*)?A zwW?)j@@AD6oq4P17}Z*taZWYgo^I=!jxvizF*{A;j?kb+l( zAPq0^AdPyi%{gR~OA228U!&Wt!Xo&{d2&-j82vhW@wS5ScydWaLP75imKTl68u8Sy zAN`$B@Q#jdyrtn?45=7YkZdOFid!nVP9-CGaNf0TGTU;UtE7dFLl~y-viY!PmCYI3 z&bdymW|Nuy<2SwHHuMAQE8aV-BZ>|o9nqm8CZus4ozR4o($NLI3lo@9F{z+?CvXO> zBZH&l5-H8s6ePwQAlwNqo4g_TYdL1FR$4a8i^j4|&c^566~kUK%9hyshmq=Y7=u2h^Rf8Y>SLjCDyh4U6Knt4uB6H3_$dYeMyUu&Tsa!wsQ& zlOKZsuRgq@t#bT)$S6fWNJtu!P!L<=d=PU)PLDYa%UD&h(lkQ6?;Ei*agS3+SiGs_ z=jgHO=Bs7PDJs}kr;mKoJI$)N&%SStzG><#`u68)mc440HCW*6=|$-cKrF=&6-w(m z9-_=VI4%@?(TJJ<^y>v^ZQh_jvN5PJbjHvXL$`SFYaKGJOH7?Ej}B9! z)*P4&hyPnd5f@XCQe4bHxpD%^mGe)ooXXVRLpg*V-Vp+7hy0Vh*vFf{5s_YUsb}a* zy~6&&GaT5&KL~^i(HBUEaP4P$4&xYqk8myngM8%x`Y=TP9OC&fyJrMh9L5Yru|Tck)SC7p!Fzb0 zJ0K@BRHP(w3`t33DJqZ?bDn;MBr=WS1ZACBdM7}JmaVzfPxQks*UkztMO!8o1SB8Xs$Gd>Uuk7$;kePqa0j#@TI@KbE;4 zr!$dzOn~$pGp&BkH28^ar~fG~`awLPKT-XI>C}&iMxLbqz~1y0=2HCI!e<-eEc}ED z9_alnJvf)6m?b&q2-GDcxC)T_JxALhAH?T`o885`2tw*!%AA${!+%j*fNj(t{vFEq zh=!k}e}l3hkeuM34B;$yquh;dA-{oR+>LQJwuPk)lJzN)+$FbA*dWhY1?~o3;8qB& z!A~(qh<-8vsmi z1ISt8Kk*#{6i=Lb1*^bTe-L-*iiLCI6$-4G8?RDex!ib-0xRXlA5j>fu!XO77&9!V jjm_T@=ZV9hz;7p>$FP=dFcxmBlIfXl8DLm3@iyLJFx`k$avi15|3G|d z;61EruqIg4U>*hmsp6Zsj`tZfMRxyNhNbe;Y|k`o%fN@Yp<#{T`m_al!Ei|PvK7I` zX!L}Lnkb_}gX|4N?|CEaCqvYAY9uoyBTZlzO z1oSu<2QXYIXH`1)?hK8Tdz3L{mdPw>5*xT@;xpVO6hS-?;q*I@1~M4xFrDgLC+5B9 zdwi5~)dxHpNYg2+?aHE$Of>M2@;X5h_QYdX3T3GLo6>(+B}w!2BIj`pMaw_L)!(sDJHwT)=(2o!j)}Qf-|yyG^w3sAkr<;5p@0e2)9nZjm@V qAQ^J_f@&3z({$RUIi^rH=q`Eavg;|f|Et5@3>E#HN|Q2jc>E6+UN}(z literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/model/person/UniquePersonList.class b/bin/main/seedu/address/model/person/UniquePersonList.class new file mode 100644 index 0000000000000000000000000000000000000000..8a4af7356eb335e9ee20005b5576ef9716ae3580 GIT binary patch literal 4868 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 A`v3p{ literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/model/person/exceptions/DuplicatePersonException.class b/bin/main/seedu/address/model/person/exceptions/DuplicatePersonException.class new file mode 100644 index 0000000000000000000000000000000000000000..b93c81ba426c06105c73cf70e713308f169106ac GIT binary patch literal 462 zcmbtQO-sW-5Ph50rj5~R#fu=sTUBsR;-OLmKTbi#O7GibsVkdJ$?mFu%ah>2AK;G? zC)Vo8lb1L1W`=oh=KbUK4ZsmLLIey$D`oDv$n#2C%ZoCXn$KiqOT*<;CTC8S#_}^i z(<&2AUVpXD7o8AIhOK+?Ah;H0%5S`Js*pc@hSsq%$_*JB{oOG`^OO|Y=rHVGk&LL< zCy%Aqc|r!fc8M}czEDf%PHcn*mSZd-X4vefzj`BADKj0^o4ctp^3oR*S>1|>mJGeL z%!D3`O4aG+kbuNpf-yg&;#i0pvdTs7GX&25CLUC jxYujHAbO@WzzShR5$MohgjLGo`53xbBgU{!7@+qFqHlgD literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/model/person/exceptions/PersonNotFoundException.class b/bin/main/seedu/address/model/person/exceptions/PersonNotFoundException.class new file mode 100644 index 0000000000000000000000000000000000000000..305ea5676497c579bae3a1478120265db136f9e5 GIT binary patch literal 380 zcmbu5y-veG5QJwPI|dU-M2TqVfPyP2_(_3CWkm>3`is4SL-t+dvk|XFg+##v@KA_7 zE6`EVe0wuf?CgDhy?+2W#Uw>UxbVznr*v61?7ga8$(34hVQ<@16g@9VV>k2KHCtQSv5}6pq{*o1C=AFLWLeq;(iEC39UG{6O&*CC#}2kr zX+rxSh#$bGegKJ;Y9A1MOoOAEVU2CQ=i+Kfe3^P9Op=X$(LRZ6USYViP#CJo(5jESY4Na3_HCiBW zqp%jK87`$jzG`?K*9gOKNxIP{(E;0YNj^^D4J;|hjM(^o-?ME~a7)7tyh(zOq=mcR zGR$QkN2`Wug%nosmV#A=8{h17BNL}r6w=1W}pPh;sddV$nmgjm7AM6OP zYq#ALs;DX0VOV~3E)DC*?g>385D?koEzfqINrt-&KScWR%iSm_U*ug`yZ#ic^vJ0%qh%pm!6LGlgloU!v%M za%1$on)?ki`BPlkr`zHwuBX*gEa&nsko(04yh-;t+AQx0%wv*1K(kb2k$!Lct3C|Y zp;JVFemO>Y^pOdRZBQvj@048n!U^6vroS;rV96WE_&{2ag7u|3B(kYR_Qc_RBq8zQdVWv6MXt#DVq@~YKYEo52bMbX6Qsp r?th8G#uTCwnREeLy+7YxA= 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 CgCs-% literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/storage/JsonAdaptedTag.class b/bin/main/seedu/address/storage/JsonAdaptedTag.class new file mode 100644 index 0000000000000000000000000000000000000000..8f1e94de2cd6700b3202f0e81153c452ab34ccc7 GIT binary patch literal 1210 zcma)5TTc@~7(LS#3QG$J1w=%)irALRzUc$Tgb+zEMH3-S(5GoTE{l6<_G0j__$xHQ zU?kCZf0XgewkcEy;i0p0Ip6utoH_mT_vbGF&tT<|5m=6tYA2R#w?h?0Rul)Jw3YQL z3jD3M?8K^lAniPI0+Yw`leApv+t!=rv1-Kv`B>VorKbd@>KCW`ap?H=roixX$9Liv z0yCAX$JK_w{M*Ej9Zxl!$Z5K2%lCs=#!lcz0vq*K;8`DJ6sz#WbFE|9`bbfh?1NH~ z+o6)w%x<~upsfsKQ7j;jae-{5+870e7chijfr+}~tJjIwRN;YSJFPlsNw*k2FE&JeehXR(!d4p8qjh81a)k&W!kB0(J2jP4=kFRK{ zKFZp4U1e*t*|1-1(3<4}9%Dsd+=+PT=)84rc5Q0jji4e>CMYs}MlUj>qabnHW>cBc z?Hoxz@l@!v43tsRK^W0JY68XmmESIjt;`~VBR-$m|-$IS^ia+6CEJV za-5S98H{o@%$33K7=Jt5%kXQ|&QPeWe#gW&t}?j8aXe)yv3iDevt$Fu6pd+=xME$} zL8SaM95v@|kF(h2JjLuavntE@Ur~UbnE)GhnE8iixk> z=qlDX0}a$l3+a5QM=9_COGKGG(QcGen)ke+t}r#t4?OyU;yKEPQ%}xN{e6zPL%n~7 gRox+b$&(uIy-EkxFLg3|oz_yUD3N%b(+oEL0dh7I>;M1& literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/storage/JsonAddressBookStorage.class b/bin/main/seedu/address/storage/JsonAddressBookStorage.class new file mode 100644 index 0000000000000000000000000000000000000000..1461ecb6000e333974f8e33235d245387fcb62bf GIT binary patch literal 3604 zcmb7H`BM}}6#jZeM%Gaj4WO7vA`nhjB_45!5l|v#7mO%I%{A^eI55oM%q$Ue-}jwV zrSeyp3n{Hi@^k)x{57dmzMdJD8CVRVYG z#wZqD>3JE?cU)sqX3lz!-5<^kIL`D~IIW>dVB3^2XJjnHp3ID1o00`zL$yGAWj(8P z2vl3n3cIN_BCEv6%YR;s}T(FiE*fe2U@|@vc7uXrf*`||GlNmLuB>D=LX`B8D zfeq~);{sKKPEn>&i|rb=3A83%DmXJUj_qX%jw_WJZ&2F4bam8Whd|Aw^h4VMJ?){v zAjUz<@Vsot+OF0>-~k;PHVM?`Ok0kWX0A#1f^p4~0(Cj3U|8dZYpQWHS=|@;-4Izy zhSo8j#s)O$XoRk`Kd7SyX~ySYH$8#Wk; z)UhNQWNUQRHyzuss62i8WJVgmsIk{q~bmADL(Tian zXYsVaX5Y!H!nrU%%MkWaJQ;sjRWYPkOMS@e7{RDO%9$Y7t(}=Gx9JVvROzS#na54^5OiO~(~nW!n<1 zJQ<&4zY?^_QXNl;=XJb*7X=z-jA=RO*agGCWct_n<@tu~lZ=kVv50oYDj=GPXeP)> zIS>N{4c7!3mkS_y3g{?;-c_0QghP(4U`a7$D+p#Icuq9NCCUM3)zMHpl|0bOhe|SG ztRi!cCXcNsiuHo4$Tms%tg?vohbs`yN)A~^}IS$?L*byriuP zzfwRNz7crn{-V5ChSB3;R_zAS9JFOQ|aq-)giOI#;)F)WNsVWJ^?X(bOZ8|7X24M+c17EUD3juRy7LZpcXs`XJo>&ZA1jv&)^O+ zK?j(iL)gKFZQwsDtvH4@UO;#S34HDhy(ptO5TU8FtxZfZ@HXN;4U3V?P^*G1T(i06 z1T(3>(V(F(uh9cRe!IbyB_Q1(+5zqkbKDgo=r89u9ju(B-TuI%)%krHH>p=?o?E5a zq-IqkO#zPG3QRuc@1gf{*B!jh?>CoC)e{n6n9s8;n;fd6*@io51u73dlW5VA6 literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/storage/JsonSerializableAddressBook.class b/bin/main/seedu/address/storage/JsonSerializableAddressBook.class new file mode 100644 index 0000000000000000000000000000000000000000..2624110a9a9392039d17e746b4f93bd81c044d0b GIT binary patch literal 3550 zcmb7HYj@OC6y3K>Ntp&Il}8H-TF_*K_Zv9gx>+2t31h<`!cH%Z&1FJZAJ%{{sIoPGD%=iJMm|Ni*z_3KZ?i2wXe+r+AT5r{wW@8EWMH;c!|&~Wu2VpZ20p<=?rVW%8wIYU^9@C7 z(vd;UGX?TXKA$YCzUQ8@tOjN|!jbQ$r}ZZ-#|pXyZf#%UC!ZS==w52Q8SlzL>qyNB ztcp2i`IaKuaoj)#7FiJJER@`eF(LiH^kyoyF(pe^$d4fxCWVRW^-RgU5$xWyvtjAU zipj+(uf~me9rj!@9L&;f{j^GvK&IC%n^~+wi;i2+DzL6SH>P1H$q5r2W}wIOpWYO4&Htf}~N8pyl$!eaCeb`T;slguGCL>8odtKY6yvRpB_qf2Og5{Wl zwaU2ZjVfI#ZMh|Bk4b8kb%#(?MwVsNQZ5Vn6f5X@Lx%W#^mTwAynh z`9|D@yEPmW*rV88bFz+maGZqu0fkc$*cnGK!u&;6gLTS}`DXTt6FTlg7iA!;ReM%o zcWVAb%?a~koQYrZjW~&J4fhLdU(9sMt&RuqAmvk$Re=-9d@uJF?S3U}S)9UY4ZYmK zvN*ABT+i3hhcn!5;6{AzN}-QoEldx=pVQHg^K3CO;Q~jJ7?-VyAtu^kUPD1(%Ob2e z0ClX0cWYjW+Rfdto&*{LcRzSUgWIOFuFT+_7>SNH5Mkp2Y~Rs6NS-wl$Vdh@O?DPQcul3gGB)!6Mke?sszm z*kLZh)8T{sXv8-dGR2lm@*C++9q8)7W=mLcw~6Gj>usLm$&zAhxjt7Vm+RL@`=>Nl z43=hxU9K4LFdLB7uw!d@ktqK+B~)}VES)o!YW;0%+)_G~q6BX6tQ&FNV30>8_c71h zc*tB62@F{8vN~V}m))|T#T$4_!<#&7L(PU6wVY}9ifI&NWxOmoQBKGbg+Hs~ZM;L5 zJcH*=0)Hj75U-4!pOa46HvRnthOSlPYfDlx(FG(KGFqs5LUMY_>zW^pQ<`JzfthVv&sKKA2CgicL*;PgUWEswk?P8t{R@;0@K%5=E^p!zO$zp!YkD z>Gj&u_f22J=dAZdbSY}mglqVcca^oLQs+^2*ywnE@o=m|E9$YHBP|>?pjq8^IM&1Q zM$Y1u2b++IElt?WFKUH4TyN!17aVNiZ>!I>+i0n9RUQBC?6`{U9oMkq!d2Y%6K?PL z5w{b2uvSEB_0@w|pIbLC+k{*5MC4w1})Of$U(6tew}0Tmo6w0Jd70-3v+ms^7#&j@0`OEg2Cm$;h$0J${cFV z{EUfju<;s3E;Kh>#nkVisltiR2z-0}??d0ySw!7lH1Pc>pLdbCV+4ISI(a=h!QFM! zc9xJ8l^r3){W0JM^q_`m0^H4i&tis<4^RiQBrk*KIll|*u45}Q8id9!ud!9*I`*PI zGH8%AX?Q_d>(kTd;U#*g!^@#gl#*WIkJ5M*uknM*+`EMTK0d-H_>`6`EuY~Fe1+Ek E0D0f`2LJ#7 literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/storage/JsonUserPrefsStorage.class b/bin/main/seedu/address/storage/JsonUserPrefsStorage.class new file mode 100644 index 0000000000000000000000000000000000000000..e4c5c78b4a1d2709ecaaecfd21576dfac3449578 GIT binary patch literal 1552 zcma)6ZBNrs6n^d)l+F$m28arRDC`BOipYl&5`&VcizA}@e%UUgq-#lUNAzE5;tTPE zKfoVlJok1h+iapA`f^UsdG7O^m;U=?)}l%){Oj?J6RP)KRZC)u6$>IuBiCcb(bj)RheD)pYi0H6Vh8mWUEz2Z@~7VkwO;Lp~I|nIteIft|?p z?Am$c20r%)IQQa1LugYPxXrLVNUIUF+kr1_kwn?gdBm#$Z@PXf$z?E)+?LOyPDr|U zdaMQx+Z|Herh0mI!qM4ta#YQ`7Ur--Ba+^TSnU8ViFp0r!T%;|eV{lR_$MW=`?|WQIr`z6P!TEEwB3E;em;6E` zrPS3MWELxUOB8Cp_c4idN_7L94AXimXenOSlAbD+4=p^xV`f?`3ojL z(Mt?Brk(Q|#)<>FF!W==O*(9zVzcz+7VhY*1x;~_@)ev}R(RjAI1IVi2Wj>}E~P*& zYeNVB3?Uc$brV@{v7PRSd6 Sz&)lU3|n}jfw#5nr+)x;e0eVb literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/storage/Storage.class b/bin/main/seedu/address/storage/Storage.class new file mode 100644 index 0000000000000000000000000000000000000000..b071eb42645c1542ae56010176ef5d1b45803b09 GIT binary patch literal 777 zcmb7CO;5r=5Pgea1wmB&{-?@1$CW^1yX`5k`SzXy+EY>@B7q zD_eRz?Xh!3-PE+0$P{8YZRUy|$eihWA1SlbdNR;pXe1t8#qZ5bZ##|*GXuSIJ=quG zOJ*uQNrnXT7^gn!@%S~DV=E;*#n8mK6+WNd(;I{WPN z*fVVs!x9Q8!JxG)(Y}>Yq4z4iiWIA2jcx_h<4wc{A@j&4AzRoc8Vw{@vrCaZ>}NG} JKS=T&{sP6g-iiPK literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/storage/StorageManager.class b/bin/main/seedu/address/storage/StorageManager.class new file mode 100644 index 0000000000000000000000000000000000000000..a959c12fc8c7ec930725e4f2110ee9af6b82bf95 GIT binary patch literal 3289 zcmb7GYgZFj6x|mnfiMz_N;RmB^%Vk|KD1gxD;ULB5G#tcYTHY4fsx4!ote=3Px>?Z z(uyDY1Nx)7y6>IIFoD3buH{VT-gEXjXP+1U{QLHA0GH6pphw_Tpj4w(mW_t5f}k9P zo-bEac_DhwNta)K27LniU&swvcBH#fo?m*Q>R|@`0>}2$7wC7q6(R`aYev5n+D=)Y z*~F=tyNbX_Z2y|)t;MDVO119TGm)<;St9Ij1oYMS;Gm*HBr!j{_Nu2%PTpr0zAFo*R_wp09KeK~=e-@+}<1A%Vda6-JQ>oGV6Q z8``Rl41&t|?nDei-~$U83<%_EwyW;7noG)mD3=^Xl4@REI*Zb`^>=*OKNb7^Xt!{? z(Dkmwj4x)I% zz43Ehna?1D^8yz;&9w8Z5~=ca8OoX`8!X>MmnmPcS6mske5UDAJC+V(Q`;D7vc8;h z;$!726YQrJN|;~(f!t8ZC0k*8awGKz40GOfUM7;2@x=^27dT*gja=TIPrTG*UbgTV zF3{gry9Wf$cJ*v0G-+h=Qq|N>-w?jU)eP7>#ZLO#SxV_7d8+6<<#e7>w*oW&gS@tj zDFD)#Wp!39Oyjzt%@EO9Rp|yy)dCyn9fiB+ayNHw;&ukNI_Bp>=(Bz-+`(Oe%!YJY zYJQnTo*ov_jBQT~Ge07=$_U5zoP~Rs=d@_bHC6T8x(pxN;VORxp>#vtl4-D5GmbnB zmc`dt$l!s%;oau5g@<^=R$t~o5;)WicTv|sm2*`0Zq(8TyRpfX>&i}LOki^F+D^%` zx^;G+S$Kly0@LrV*v%I`=7;3gE)f{tvlG&ejL?la9rH8JkOi;h*Ol%DHeOud@!~wM zIc4g(tHL1k<@%foSG`7%#WGeiSmFLPtecG3?uNIfSFbLPD5tZs&Pn%DC)*bIB~5)S z9Rc2wZo^T*sT%iZYrPVMn@)4;q(kxH%XQU7{Ao(QOCiP(Rp~ejcBm@3ey9OBjAkYb zRg(kNT`7cKLAQ6I!HHQ|_Pu677sr)?7=SBqvQzRWpEz12l8yugtlO@ue6u$dC-jfp z#5?%v#y|$_fa80M@^6!fE}URCd-?x8KJ$9}vcY=vrZaEuIli+z-G^aH<@hzuxBfRc zBHm#C9~k|OA3ZqCXTP~RfFtGv{K{i2R(nF3UY_Slf8l6p;uVgUCSRejr96T@Ug!B7 zqy3|_cgz44A~k%3le{N@@lN}Y(|ee(&A%(DrPXL=v3 J!$*iC{{f~nFNOdB literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/storage/UserPrefsStorage.class b/bin/main/seedu/address/storage/UserPrefsStorage.class new file mode 100644 index 0000000000000000000000000000000000000000..8dac21a29ec787f0ac8acf0520863f32be2cbab0 GIT binary patch literal 504 zcmZuu%T59@6g>rG1VvHMPcY!Zu8a$eD>X4886wgBb>=b-8CuhJi2j-jKfsSNc19T? zad&$j?diFnU+*6PF3=B96F9NVaV{y24O=U%(}oh350=fu@XStsfB+4F?wpn+Gg65R zpXMAnfqufS(%z;SPslwB91n)$Qmj%fXC9UXJ`(5{rnoY!33HcbGJJ8VR+M>R`{p&` z@@NC>2%K-`jPzomm6cqn5qR9=DBG))w_+_1pKD%Hkgm*dT=7dqzbuYl22 z5!=#|*J7Uz{x#kE&xI;`tCXYRV}JvJURj3k;x1gv)}HFzL|oJ+a8#LoD?ckdO#y+r p-xpB#8`we<#U=u5qlT788=h}t*H1NcJhO*=kF1!kpASo}_YE1akZJ$` literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/ui/CommandBox$CommandExecutor.class b/bin/main/seedu/address/ui/CommandBox$CommandExecutor.class new file mode 100644 index 0000000000000000000000000000000000000000..efc51a9432959b4960ba2fa4eb86018b70014e46 GIT binary patch literal 539 zcmaJ;O-lnY5Phk2x2;uMKMvx-iw8w;FM>iZYH6`hR9f(!X2+6}CMC&Af13w?fImu1 zSNjFxAtW<-Z{Ezj&#(6n0M|H-QDC@mL}`}rG_~YhlF6iL#$&G2dow-#eYU0~GH+~* zB13J&-*}?99wtwN5ed%_Qw|`8+q3TSyYH>k!^U}cT|$|m6p8pzadWvIxlH*6L!~tp zH1X1C7o*H@^Dmng;CZ11J;oNp)nDuhw~lPG!hN1)7R=B@-(*%$TdFYB?s6lSv*{R) zdYSfeOfS;OfucLDjpupG3@0laXlGi?(p+`4C;Q3;g$b)2t;seOcaFl0dkn|xU9Oq1 z)SuhHP=-b6y4VuWE`al211#_6d*&1m|6y>ki;Z~;sA|<8C$B@H$fmvMv~K{bLl+% zK);|bePOLOUGUHk=;|l2y1K6<$Id_seUWs}J>x!;{`%+Xp8!tcCk+XK9ln&Ms$rH& zp7edAY8hF#TsEE3s5`HrSzzlbhHKVU(+dPPj!jNpnY^2yx|tiho6U{n^8)GIeRIw< zY}1)F@_}bLvl)T*tn2uJ=>!GSuF51f2((Dgb3K9P@f#DlBy@p}y4}H<`Laz)G4f<= zUKXo?;y#>P?1OT_^Bd+gReD)V9g0 z6If+guzYLUmLrbi24-L}hFW|SS1uaLc?z@+S&kK)6*$uSQV#YN2td{?$rPHfRmUd0 zDzK$@HH3YI4G`F_qaClPubnzN(3wIv_Gs8G(5*m!eoQ*{VxNE>5QeLsTajL{Akf>} zSHogjnvQQ&;;T4uHO@?$<%MXaXmr0=) z{TliNdg1`qbwtMiUK40zt=3cs9E{*%@R97Ah7`~pIm?lktL16wO_@xq%B5R0?Sko9 z>KqfBgL@Y9ylcHgGUb~YNy(PAl5+y-DNvev`wA*8Cv?1yHwf3P3{+`RAVzyxYb0?> z04bcokOoz+E1O5hn_ykF%7<0crd!L3v&6*vF1mSr&z8Rb-ayZ>^;)*!2+>% zFFGZwXa+R^$4$$wdQwA9;MDRMR#=qtMOg`(v1WX%M$vFt;KW+e71Q&jXEexig86bu zl10@pDFg)3*wWC3ON`7>dp(Q5 z(D4yIW^a`1B!Ryhr$j6nDZdboM87BJx(}+A^>eaJaEdk4$o}G&k;(OCqfHde-B@$h zwC%hV$V^8oKKLIs7Ej)W#MWkUp%b5~GW$Y@h5H>EKJUbRuHK6d7hc#_(%0|}`+XJs zYk{cYyLh`V^M4sD*F%JOy^LzVK+N4`=?4>1Z9SiV0c>+F^JZ*A3tD;7cuF9N?Oa0j za~sm?Pb0kJe+KzB@>|`jUx60BH(@iMTX?!d`2^oP`_pZIpsRo2cWmqb4LcUGtN$tX z1B*EHnD+@B<}*#(jhXnst}wt*)&m%w#(spw`aK7s%o;E=bJK&MYOA2TA5g;vTN_PryeIzN?tyTe+d(B)ys6!~X&e0C_0L>&9SFSC50ZCx=FXj&JF9>G{qrvXm*J<8(r_veq8S=iv+0W< zFhbi{6Ha%-cAMU_G=?>tc*~$>-?MzF;ZV&iRaa}bZkD!c)v|_M`H}V1G91fo8K(4Y zw^g7~(Q^Z7xpLidLXp9UhNZTY-C)Tu0x{3n4NKadyWsh)T^4oEdpz%mr^2~p)B@qJ zhIUgdv}MQ9ps$t6_qHk})4aY~%0Sm(R>ijP^U}-9w#bLH&$pDrQvUzMIp}z;mhd%9 z#94*Xb_})0w2X3e#_Wby9#qO19My27U$%wq=Za~z;dNi!2&ME~4U-Yd_H!d>2v-;l z&y~LC81XTI#;c(#?T%Qt1H0~s>#pm`s4l^7UFoZE4Hc0NqiwdS!j@Srq2cuY@MWtm z92#eq8;6vx%E_zLo#c7;LV^YJ^-X1r+PKRA1OJAs5gQ9Sy@O6BIyoQmM zkZ}Pt%uf&Wyy#d#P?&jly+)wnV;zTZnDr{#uDBC+>cYQoF=Lgc*RY&*%eU1!**v(M z@IDboQWca;nF8apFteV;5T3G`{B%Ru?LnXtND$4kcw8)v4T|=fQ_%l)Tfg!N3)*PRZ+a9V_8vL#BCjAjB7Yd zy;D1PU9;f}!ATgggM@1&#!Y2>Pe%oJ7_!Z|RU4*`@09m}ZLbjqYG+-?hT746@gx+1 zTu}$)q=u~KJ6UYvhcv$DDC`z58Z_JOhSDfHcDL?XepAPf_=yE(CgzJkicarDLq18W zCxSP83u*kU;oSS+dDls%o5dEcs7FIb6O{G{NyK`5hj>_pO|*2hVe{gk&=Mq4O|%yE zsbX~tGn>TYIL8TTIMb8SehE`Db9`p`24OP14bDfqpfQIl zajlTBvN$@M8@u=t7iRy!Y;JT1bA5=zQBLQX%M`}ws9=uAPWT*`xS~70z?Xzn(7UXb z=%;w;v#+uE@Fl)_iKRYjOl%ILWUmnQ*fv4b)R=KcWoI&$!kPRHXLDcg;M(jCZvKtM z9jx{KecK1lVVK4@m~oNCyvc7sX&}I4F8~KJ2@n$pMtg8~e<4I%K-ERy_5j3a4}v3{ zKwRNl+4Ui+eMWJrRrbQ%7v}zZU}|r|JS5EKJ}@afAWUkHa#Z!&+*6vIc!h`M*Vtks ztjb(2vxEA^#kn19Z}cM^r)mL<1+23l4JxroOc6!P$0$ke!&JZ{JZ8>1b?l(SC@Hw~ LPQgPrdO!IOzi2Qe literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/ui/MainWindow.class b/bin/main/seedu/address/ui/MainWindow.class new file mode 100644 index 0000000000000000000000000000000000000000..dcf860b4da67bd35afd3a2e6792000459e5f2905 GIT binary patch literal 7645 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 literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/ui/PersonCard.class b/bin/main/seedu/address/ui/PersonCard.class new file mode 100644 index 0000000000000000000000000000000000000000..4c012c6395b75933522788e9ada373a8fd8961c0 GIT binary patch literal 3573 zcmcImX?qh@6n-aNrcDRBAjnd%NP#ZefP#oY6e^W!fJ#dhal1`!+o6-0I5VlO3-02+ zFSzgft`%ree}Ioaz+dCzduOI?($wG=za;mZIrp6REccxA$KNx*1K5Gzbi_2Q@ubY; z6C#swrROE`W};8Jo?~|lH>0Cc!-XXRN6bFq`Wh;GZaI+B(3CnZ#zn#s_DG`NcTIaF zsbNXCV|%`^{Xt>nWesXIEDIH;{2F1R-kLP8 z_6b{RSRL3Mo=A9UX-nFlbn<>;|6XT;a;pyKZQsnwLDMsbEV;+F9bfn+LCpf@MTH=t zoZy8@TV$!Uxmao1v3=LE5-BkxElS1AjE1V*sG|VrQP9YdSz*$dN?(l7z`9~35waf3 zxkn+Vn(AGqZTh=4Y;OAxUiY>SQgt`u5l01@4Xngk4a?g~;Y(~3|Hilbec`n*Tficjb5b2)u z2jqmWEMH=v0gZ8VVT+Cgk(@WV2DaidDjAXf!5|eI+SmCJpSu)%;BBePMQ6%bO3RX#X1Q(Q&PYmNNDOSp$0&fU0rz zAe8m%3|tUe?=f&a_G^gK`kwG1YS>iXek4Z(Hz))*YPh%zf=F7KJz!vYX!ekSKHL;K zy)P`_^Ee$y(PY0eIZ)o|KvosNpn;olOPJY#;C(dGwV-F@ebY+xOFvnMTXCC?V{9Bn z9}L`%JNRBa-<2ZEZdG(MLocNc2Pp+Rb2C z2OskV^LD$PY)-hscU%J_7}Zdl4mj*=8n#EzE`VODu+Xu2J+yNimX0w#z-QnlZf`o2bn6+8H^aLF;AFS|U4?5v^N-P%T#a?8OPz+pLd;^QjgO;Sn7VmyEw~ z=tMUSJgQ!-PBQFB6+D%~ExN!7;aB+#DJ@P9w?oTiLVvoxGctJ*LWX{rv9GrPTB3^qV8L@bfOe?kLT3 zxJv9=bY32oBYdmL-3)2NUdQoS?IL$T`lC+9i{o9quj4%pt-*T=l55)I&X|mLkZ{KJ zh%}$^q#Ax7XgF0kG9&3w;eKIfEa|nT9A_+_OP0>T0#4Dzfyta)MEqER{A{oaSdofu zVOjmAFO&7vc&7#*GuB#HOB|o#a~+?tqnG%W3W}bX#qg|WU*JpDLw25};m`ly&$2-% z`WS|`Fh)h6g8)Wts4$C#vH3(z!-DWF648j&fUn~m1K$~V04EsLZyRvpUut)-0Y56) zDFaX7WWA1`8*oyC(QDh%?Y4yHNl(W#Usp*M7ONQ@=eYQl7iC`#3k>UNxPoh0Emorn z)ueP%G1Q<@?QX%@z!LJ8@~pns2R!anB|L6;B|NS*B|I)0B|L5dB|J8x1-uHumkIu>Z&mc> z!5?^tK^a!502M2RMks*C@Ho&AQ)NVs3Q-D`lm}Mw@{_0W^f_!k+DScU@ZvOHDs&{& zw=>YUBD^yPaAlyGt3TeLt{6_?&EWqnyv_e+y7M9JeT1)g`UcMP(oGr KSqAf0tojG^k=d{S literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/ui/PersonListPanel$PersonListViewCell.class b/bin/main/seedu/address/ui/PersonListPanel$PersonListViewCell.class new file mode 100644 index 0000000000000000000000000000000000000000..011b43afc8275d5ab7a478a1381c123b60629b4f GIT binary patch literal 1367 zcma)5T~8B16g|@x7U}{8`O;P_-|ZGzlp<;YH6?13io}v8^5n7|%i?yo*_|r>5MTTQ zKKo!vG%>uH_@j(>mI_iZkS5ca*)!*!d+xozet-J`U>T1Ugcufm&MOVws8l@e`+CFD zH@WA#PSNtkrr~gV>f~Iu`1?G!Z3PjA8+*n(g2%|@Zf?kGjN&@^m~GcyBaOCR4-9Sjn%hp7 zrPyH=S24mcoGMBqb=z>N`iq@CZi*ua!!;Gx5vLeF7f(H-zH6Ds_+#TYC`3+DQbkmZ z;U52OFA2|bs)SWA&Jh1kQSydYkz|u9rZCOWRpp}KRQP`2YaxmxW~I-m zOQu_p+LF*zWH3kCi0-B9lD5HA`fTP3<{A1=b(Tz!`s2t%($!X|^DJiQ;I+E=z`(W{ zdP>4D-#$0$LB$m;F^r#1{u~Zz!LlsTAo*W%8=lFZSh9%*PsSk_k9jGUp}S;N9YZuc zf~*I59apG*G*&K=!5X!eT5ufhrehknlB7JHx zd?cLY%xam$0frKvpk#g`rm-eQ<&yY}xb_{%R~fB|iOA~%%rucc#4Y+RV}*lQW26a~ zA+8j9ktTi(qtroh%wZApfrjK!oR$WuUB^P8D~sE>L#h{vqXXeybtJYfr>!MXqlZ!= qC3%Q!qKUihNwOe-G$Mj~w1#jW4}$+3R^&@!VpzpP+CK{JSN{O$El;)p literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/ui/PersonListPanel.class b/bin/main/seedu/address/ui/PersonListPanel.class new file mode 100644 index 0000000000000000000000000000000000000000..62f755bb4f528b48ad33ab9ea178838c531312ad GIT binary patch literal 2248 zcma)6ZFAE`5Pr@vk!=Ka4I~XOp@2gZQxGj}Q{t2YrfE`~m&U<`k7xU0MC4OOcS_0h zPqi~Gbm&ZfK&QWn>7L|QOoBhy(yex%-P?Wk`SuiZY`Lg0Fy~U;QEF>AGN4%c6TRhMV$(5(;6^4A}1wY`9$7Rc@>cEw)62qyoFO}v} z*SHso6w(Z5-$B2%`?BpZOnQE+B?5-?F;1vm&oMRvaw^d`!aKd+E3M{=Ul=Y&-n%ay z)eurR4PWZO_Z(BZaiEZN)on?x!$2@RI^KJ^GJMIl-xQt`r|dMPbdMlswnM4iwy3$v zt$X5ul)mQLrK@(^Kn0m=Ii@ufFuCkXSKni}KHsgN;d`EFL_yAGU5Vg;6O^gDv`}Ms zJci?V7=CD43$+Z+-7E+7A z#wE;Bhg(9&6JoeI2we8KQl*8X2bu=a&qf9(&D&KQHcn+wz;z3A43`X{jvTFxPjQAJ zrG#G7qOI~o=>;1_+@Sk5xJR5?ntx}YqulOPM_D4ml_{>y8+#>F#Z4Qx;1KC3MOk>> z3U6pXIHdXahBF*wTAi)9Qf!3nx(Ig6L=7W+DyPN+*PJ`Xq<-!aTdsb%K!!}8^bFU= zAP~dUaL&X1Zr;@ohmS`q>b%F>^(HUeX1L#L$PsH8bKt$RG@UJ3pe?yGOuErw75dU) zmfJ*Tu!L_7scE_9#u+z_DCKq3fm&Pj!=NEnTr;QEEPcz}UdEU9_@N(a zXIr#L2_l`yJ@kF8binu5g?{cgRR-VV2Ma4S_`X=W^1$DtwTik)j(j)fnT=JfF`R7o zO$`4H?pG%=24Cf}=?PV+`2JqFUy7G*P>lyHLxDTQjzRbFKgKDKkL_%KR7eNeELqjn zqLiJ)qn;+lTC`bzL8{o*j3}yO%HeT_L}J6nH@KU%u%5$R2766P5kx{Gl!Yp>V5GC} z>yL#e4710(l5WS%q#Yh*9!+LLD7`Mssw-Tf+9pVXCP+h1V3JN2of1e9H%Z^3cTzX9 zoQ~eJ$kEgIeH5K32hQ}qp2az`{z~TrJ?Dz~)N4!?^XxCo{E5rOKXB#7D_k?r;v38Z zukhLL{5iFN5 zeI|=3WRs9hT>5V;JuAM(@^5sAlbIWU67<2-J@7QXqZ3qO%1Pd?k&K@Bss=nOxT?J50|^uF{z=ze_( literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/ui/ResultDisplay.class b/bin/main/seedu/address/ui/ResultDisplay.class new file mode 100644 index 0000000000000000000000000000000000000000..a6c347ebb176222c52dc83b662641d9e17cf426e GIT binary patch literal 897 zcmZ`%U2hUW6g>mjg>_3U{iNE~`ce5vx=*GLG)l=?a>15RCLb#}(!&oVJ; zeDDYOql|YKOiPH_WGDB|x#ymH=KlWk^A~_))E#6P_F^Fh*5`wP7IExb>0gN0hUSHg zKZN|VgB-)w0_IY_;o30dnr~mV7)q^c{)zh`S0le;v{a)8!}58gV#Af`@z9Dq3WS^E zJ{nHOA>pX;O+$wLlx#Th<3K3k2az&53jMB_m@_RnF_$l_GIA_>GM4>NoGBF}%6tTvzQCS=y0j{*95^X!~3*F_^DWQ)7 z9`?AFNjyvD%sWY~AGQ{Jnwyt|tj5AL$?!f8-gl$RSZEhJc;MhZ-K8E{BSZgn|5^kl z_OOdRhN2c9t<<6&skRNtvBTSPr`SgI)&#Ru0i?-;i@Po!;faIC47*8_|9b1;X<~;% zDigb@^>9usgWHL$4n$L?X3ULulu$DiI&!4Av6|dEUUX!-IVbaPOp6v-Lz_3EM{Jxn za6rRw%kh(R0EuI-Oc6{~fDeQouU>UAh3) zsceHj5Jd{ZCblSI*v8t7;w2#yY_a|W<*V9P?AO2H;D)J~irXe>WfHKHvTaT)W^7c8 R!&G1f&xk353aaT@`wQc++3NrR literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/ui/StatusBarFooter.class b/bin/main/seedu/address/ui/StatusBarFooter.class new file mode 100644 index 0000000000000000000000000000000000000000..939a09aa487af0fa6676c066aed9a3b5cc79a474 GIT binary patch literal 1052 zcmZ`(YflqF6g{&bTgvjVAdiZI_@YHw-)Krml%$`kA%KmEiOIB`mNCmrvO7!gXPFok z6a4}HDC5}{4bu8$C-=_1=RVGv{rT(L4*(l@=EDv)j7?!ZK*tlPzW%AX@N_p zp=Spx)kndb0C|k%Fef0^eJlt}onJv7mvP0%qQG?b>YsW^fU8&%80sjlu`-~}+y0%F z1~op0Yq;)Xg=6=Z32*~91$?q=qa!6y9z6X2fNuv_MM)s%Y>!uRxO&>g*`?&MhPyuQ z2o$p>2D27mJzJ`uD7UYUIrd~t8}%wZY^Zo&lEjQTsvxS%SZDUBbJ!hdvbs|1li@iz zk>%j5l-TT`!36SqHjSIAO7;hcGMhkPbWe8--$KlgjsDWT7qHpI|2u9ZKiJfTyQ)JW zR<bb`kgJo9&_CJ|55_9v|Xx6#xJL literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/ui/Ui.class b/bin/main/seedu/address/ui/Ui.class new file mode 100644 index 0000000000000000000000000000000000000000..8778b647196c33894314477054cfa5a1b4837c0b GIT binary patch literal 144 zcmWknF%H5o5c3t<022}eUx0-h8Q7VS7^<=#%~7SQKuQ|K+ZcENk3uAiZP}Ln{k=Z` z_Lv(KgjGhwX*1 gs2|a{dUS&lOyhRBR}l!4^a)TJE>UF#ld!<-4|U)n_y7O^ literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/ui/UiManager.class b/bin/main/seedu/address/ui/UiManager.class new file mode 100644 index 0000000000000000000000000000000000000000..d006ec289a2bcae756eca555bf5bf9c712e49cd0 GIT binary patch literal 4299 zcmcIn`CHu96+OZXg0YOr#3sf`9PHQ*`y_UnG~l|yGhk0L7z!Bbq%9FM0%U|Vl{8@7 zC2id%-S;Kk_ojPeJ03fBo1}Z2?tA~5emz$bvtaPoUpjm<(tGc|`|dsGE{|9KbL~X{ z58~e{>J;qu3?pAm>iN8DcwVw-CQq3ox~n9QoJnT}v!lmn#s*Ig%?xLTvgw&jT0tUP(KO+^raeEPU|Y(uJzux|Dcvd> zjo7MSyKWh-pEh;NnIF?_LqP-IXb$ydWHd0=uaO07jW!k2HRKb>x&M5`;DJO5l(T3Yq>{f7~_N1J%v_uG!Imb2RKrdz3 zzTs-P19vKDnm2q-2F~|(Q~{W>bk7^;+#HW4D7Z_5hHXSNYud)i;?k_)PU^E35lv*B zoNi6&t|{Yavf)T%_nwY*K32ogITgni9MG^2t#Zgc8g4;?Zu$$Rr{IotTdU)V=)_32 z>npe|bY|{sk`wbrazcIwI;R@ZtDu=9*C)B{r!swgeQ_jlpNe}G>l8Cw!znO*;-n;P__}G4l+J2g zCl_32MVMI2gP=%7d`r;0Uc+e#iw4hFHe6Ph$C(quy02U9hU+?Rd%h@Ts9nOI<;Fb6 zfe`ve4R68>WyPaFen`Z_k~C=NCl-o6Yk{qxtJSP_UyMC{?MUKw(_%+)z2oD7WSoNAyCF$|@G3T-hkvRGgur+USr9HdrXcVZm0h z#F9}lG$=J19296j$rv|0r|9O4L5~g_I)!UkiBO12lj$TgcA@BpqD+^0u(s_3x!e_D zw@yS#W>ZkJ$8?{5vm6kyKr*)GhWTq0hK|(QYeb=#)f$aX^cXG903{*jOBSV|c zNWDnotcF#bBOLU5tcIl4N_p_AXp-=GtA--progKhSS3*=_y1zF)L}ZU;Nbsu4lA;6 z`qC2O3x=L&gD}n#+pPj78dV!~5|8 zMz5rJRlmQx3fr3VDng8;58)#!KFloL(6oxEhL1{VZ{{Hr{;Fko3x?r)jrcel!Ln(r zB-6UPIJsaf8GSjARq8xGso_)jw1goG!{`bNSUFn7vw+O-I>3%48=ledSt&G)p5adl zoHF@&4PTJSZJaz&##UCoq~Xi5(#(}q1!!^Us~Wy0OEE5G@*?~V4d2AKNJ)?fYr(%3 ze#xL{juxaj>6SED)+Mnw7TltwA8!axkRAl_34Bk(_wj?U&W`W~81%0l5d-19FG`XG zZ;e0F@Ek6%e=q5a25ryj{1DxO!ce{&})nXaLP zC+Ydn`1t6!xOP>;3*uU%?}W!nc3zk4T#n->cuB>J?30mdy-=`Bx;|%)E|_6tDP1P#%X($*Sh^Wx7w!;pStG<9oiV z7e)+!!O1h=Ucv8G{4R1bMBKEOokh77Nq-7q9@cZdHh#EIHGF-(!6zsXVC_8)TB~!Ir@3EI8Z{at_zc#37Iv2%nwd#>VjCCVlq zql!0Npzd9G01q*3wgjFX3_v?T&pNo$&EFngsd_1sL_h9jbG#3a;&5PfduUJD>MUlF zqsD$(pNB!8=4dbf-CR}i#4Q~1z8pDojP46S&DSx1I$_e4#VdI8bDRkQZlD}^Xa$_+ z@-fZu0~R3}9qF43cn4ZSZ&$i|dfV!+;w=@}L(2NG9Rq>Z`?-ViWvwlEJDvFYRuy88;=(;sV#mGIsYKA8AeNJ(3)tAtOq z#fbH1+G4#We6B6lR$syw1HnYRgs;fk*QYCXh6JQ|QkwBPL{f%v5XVWw3BsNsf{!3Y z3Iv&>;rV!$u*)Z1_90#NAzk(%UG||L-^O?7f1O--BX7=8mw4L4AnB&P-<3$Yh983E zb-L>!E{2mOTq)t&Rs5Lf{6MlQ5Fxi4% laa4z2<2QUt=Khi2KjAMNB{=_A{2l*fR$pRc{MW;6{{`=MdgcHC literal 0 HcmV?d00001 diff --git a/bin/main/seedu/address/ui/UiPart.class b/bin/main/seedu/address/ui/UiPart.class new file mode 100644 index 0000000000000000000000000000000000000000..558b3782392e263c90d7001f2e36c0af5cad0c59 GIT binary patch literal 2730 zcmaJ@e^V1z6g>;bCQA?v;LmFPftmy~t<>5IwN*$eHh?7ow6?VidBV!F8+SKUXZk_< z4f=1LvCz?(wtsf|p*lTxcS8~qI}F)<@7;UPJ?GwclYjnw^9O*N*wN9W;kd6YPl|J;!js}+X|}MWAzf;k zl>^UmHl{QT&bW>rm`<=_+I5vcQbT`!$5KD$H5gA{Y}+N*tSV2#iO~D$i@a>+C3E;z$Z99M#a9$*$-a)^JSH=?rKfjU!3$ zJOu*-2H#Gka1y69q--WrB!1Ddm4=H4;9B@aGK2{Xl`Kas)VJ4^S25SbFI{riO?$=k zELq2!eZi*XYdBeYhtT9XAk+nV*|RkqZs*E;+rz%BHA0_#SIp^3W$HEqkH$p83dW_$ zt_br>DO|=Cf^DdvK|Dmi(9NYiBk|9Q=z~vy2tmC11d77ux_5~ zvX5GuCKiY9vT~g>?f)iaVLl{YMQc`4bby8dkF-J1l&NvzlWwLaV_V^@)k8s1l zEllfRCP%}@t_PMK_rIUQXJA7f_SEyb<*5bNS*Y7A+U3?v8cos(CLmv=a7UyY@Kqp{ z4J_A@{h1VIQQ*ztJ}*z;xwb7Aq^*dJ&@5saU#4(RJal>pL)p8Z!dJM#>meuy0@-$tg&B1yLgW9YPGhnq*rw9a4H$)&?lM) z1JOvlCcYXn)0JB-S;iH)-MPhKd6!l31JA6@t63F7LteLRo?6_MhAJL7J zDw^wo>%9~S*<3%jHdkyN1-xfERa^OECD+}m*QQ!>h{bE!X>+V_igYo5++yEowU(_o z#Efa%Wh+oqL;cuHz-0%ctqfOfNxA=Ei@= z*d8)XAR|1uhy=!30FwIvN#sIWO#nG-0Gy)tI0N@!BBb{d(-%29=}mN@my79*lioy# zelGIfM{m#*T32z6IFd(G1j!>h%kxYqf3Tm?hx>v{Mn*_|Vh`63a-T$!!&bzN(2ad` zBj!%;4s@}K(B&*b=g8hi|2RaSWlmC*MD8_4cX9JqzDEU?RsrX`;6{Z@#JIw+xg!|T zTnCl@n{lK?CRx!>S0()TE@k literal 0 HcmV?d00001 diff --git a/bin/main/view/CommandBox.fxml b/bin/main/view/CommandBox.fxml new file mode 100644 index 00000000000..124283a392e --- /dev/null +++ b/bin/main/view/CommandBox.fxml @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/bin/main/view/DarkTheme.css b/bin/main/view/DarkTheme.css new file mode 100644 index 00000000000..36e6b001cd8 --- /dev/null +++ b/bin/main/view/DarkTheme.css @@ -0,0 +1,352 @@ +.background { + -fx-background-color: derive(#1d1d1d, 20%); + background-color: #383838; /* Used in the default.html file */ +} + +.label { + -fx-font-size: 11pt; + -fx-font-family: "Segoe UI Semibold"; + -fx-text-fill: #555555; + -fx-opacity: 0.9; +} + +.label-bright { + -fx-font-size: 11pt; + -fx-font-family: "Segoe UI Semibold"; + -fx-text-fill: white; + -fx-opacity: 1; +} + +.label-header { + -fx-font-size: 32pt; + -fx-font-family: "Segoe UI Light"; + -fx-text-fill: white; + -fx-opacity: 1; +} + +.text-field { + -fx-font-size: 12pt; + -fx-font-family: "Segoe UI Semibold"; +} + +.tab-pane { + -fx-padding: 0 0 0 1; +} + +.tab-pane .tab-header-area { + -fx-padding: 0 0 0 0; + -fx-min-height: 0; + -fx-max-height: 0; +} + +.table-view { + -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; +} + +.table-view .column-header-background { + -fx-background-color: transparent; +} + +.table-view .column-header, .table-view .filler { + -fx-size: 35; + -fx-border-width: 0 0 1 0; + -fx-background-color: transparent; + -fx-border-color: + transparent + transparent + derive(-fx-base, 80%) + transparent; + -fx-border-insets: 0 10 1 0; +} + +.table-view .column-header .label { + -fx-font-size: 20pt; + -fx-font-family: "Segoe UI Light"; + -fx-text-fill: white; + -fx-alignment: center-left; + -fx-opacity: 1; +} + +.table-view:focused .table-row-cell:filled:focused:selected { + -fx-background-color: -fx-focus-color; +} + +.split-pane:horizontal .split-pane-divider { + -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(#1d1d1d, 20%); +} + +.list-view { + -fx-background-insets: 0; + -fx-padding: 0; + -fx-background-color: derive(#1d1d1d, 20%); +} + +.list-cell { + -fx-label-padding: 0 0 0 0; + -fx-graphic-text-gap : 0; + -fx-padding: 0 0 0 0; +} + +.list-cell:filled:even { + -fx-background-color: #3c3e3f; +} + +.list-cell:filled:odd { + -fx-background-color: #515658; +} + +.list-cell:filled:selected { + -fx-background-color: #424d5f; +} + +.list-cell:filled:selected #cardPane { + -fx-border-color: #3e7b91; + -fx-border-width: 1; +} + +.list-cell .label { + -fx-text-fill: white; +} + +.cell_big_label { + -fx-font-family: "Segoe UI Semibold"; + -fx-font-size: 16px; + -fx-text-fill: #010504; +} + +.cell_small_label { + -fx-font-family: "Segoe UI"; + -fx-font-size: 13px; + -fx-text-fill: #010504; +} + +.stack-pane { + -fx-background-color: derive(#1d1d1d, 20%); +} + +.pane-with-border { + -fx-background-color: derive(#1d1d1d, 20%); + -fx-border-color: derive(#1d1d1d, 10%); + -fx-border-top-width: 1px; +} + +.status-bar { + -fx-background-color: derive(#1d1d1d, 30%); +} + +.result-display { + -fx-background-color: transparent; + -fx-font-family: "Segoe UI Light"; + -fx-font-size: 13pt; + -fx-text-fill: white; +} + +.result-display .label { + -fx-text-fill: black !important; +} + +.status-bar .label { + -fx-font-family: "Segoe UI Light"; + -fx-text-fill: white; + -fx-padding: 4px; + -fx-pref-height: 30px; +} + +.status-bar-with-border { + -fx-background-color: derive(#1d1d1d, 30%); + -fx-border-color: derive(#1d1d1d, 25%); + -fx-border-width: 1px; +} + +.status-bar-with-border .label { + -fx-text-fill: white; +} + +.grid-pane { + -fx-background-color: derive(#1d1d1d, 30%); + -fx-border-color: derive(#1d1d1d, 30%); + -fx-border-width: 1px; +} + +.grid-pane .stack-pane { + -fx-background-color: derive(#1d1d1d, 30%); +} + +.context-menu { + -fx-background-color: derive(#1d1d1d, 50%); +} + +.context-menu .label { + -fx-text-fill: white; +} + +.menu-bar { + -fx-background-color: derive(#1d1d1d, 20%); +} + +.menu-bar .label { + -fx-font-size: 14pt; + -fx-font-family: "Segoe UI Light"; + -fx-text-fill: white; + -fx-opacity: 0.9; +} + +.menu .left-container { + -fx-background-color: black; +} + +/* + * Metro style Push Button + * Author: Pedro Duque Vieira + * http://pixelduke.wordpress.com/2012/10/23/jmetro-windows-8-controls-on-java/ + */ +.button { + -fx-padding: 5 22 5 22; + -fx-border-color: #e2e2e2; + -fx-border-width: 2; + -fx-background-radius: 0; + -fx-background-color: #1d1d1d; + -fx-font-family: "Segoe UI", Helvetica, Arial, sans-serif; + -fx-font-size: 11pt; + -fx-text-fill: #d8d8d8; + -fx-background-insets: 0 0 0 0, 0, 1, 2; +} + +.button:hover { + -fx-background-color: #3a3a3a; +} + +.button:pressed, .button:default:hover:pressed { + -fx-background-color: white; + -fx-text-fill: #1d1d1d; +} + +.button:focused { + -fx-border-color: white, white; + -fx-border-width: 1, 1; + -fx-border-style: solid, segments(1, 1); + -fx-border-radius: 0, 0; + -fx-border-insets: 1 1 1 1, 0; +} + +.button:disabled, .button:default:disabled { + -fx-opacity: 0.4; + -fx-background-color: #1d1d1d; + -fx-text-fill: white; +} + +.button:default { + -fx-background-color: -fx-focus-color; + -fx-text-fill: #ffffff; +} + +.button:default:hover { + -fx-background-color: derive(-fx-focus-color, 30%); +} + +.dialog-pane { + -fx-background-color: #1d1d1d; +} + +.dialog-pane > *.button-bar > *.container { + -fx-background-color: #1d1d1d; +} + +.dialog-pane > *.label.content { + -fx-font-size: 14px; + -fx-font-weight: bold; + -fx-text-fill: white; +} + +.dialog-pane:header *.header-panel { + -fx-background-color: derive(#1d1d1d, 25%); +} + +.dialog-pane:header *.header-panel *.label { + -fx-font-size: 18px; + -fx-font-style: italic; + -fx-fill: white; + -fx-text-fill: white; +} + +.scroll-bar { + -fx-background-color: derive(#1d1d1d, 20%); +} + +.scroll-bar .thumb { + -fx-background-color: derive(#1d1d1d, 50%); + -fx-background-insets: 3; +} + +.scroll-bar .increment-button, .scroll-bar .decrement-button { + -fx-background-color: transparent; + -fx-padding: 0 0 0 0; +} + +.scroll-bar .increment-arrow, .scroll-bar .decrement-arrow { + -fx-shape: " "; +} + +.scroll-bar:vertical .increment-arrow, .scroll-bar:vertical .decrement-arrow { + -fx-padding: 1 8 1 8; +} + +.scroll-bar:horizontal .increment-arrow, .scroll-bar:horizontal .decrement-arrow { + -fx-padding: 8 1 8 1; +} + +#cardPane { + -fx-background-color: transparent; + -fx-border-width: 0; +} + +#commandTypeLabel { + -fx-font-size: 11px; + -fx-text-fill: #F70D1A; +} + +#commandTextField { + -fx-background-color: transparent #383838 transparent #383838; + -fx-background-insets: 0; + -fx-border-color: #383838 #383838 #ffffff #383838; + -fx-border-insets: 0; + -fx-border-width: 1; + -fx-font-family: "Segoe UI Light"; + -fx-font-size: 13pt; + -fx-text-fill: white; +} + +#filterField, #personListPanel, #personWebpage { + -fx-effect: innershadow(gaussian, black, 10, 0, 0, 0); +} + +#resultDisplay .content { + -fx-background-color: transparent, #383838, transparent, #383838; + -fx-background-radius: 0; +} + +#tags { + -fx-hgap: 7; + -fx-vgap: 3; +} + +#tags .label { + -fx-text-fill: white; + -fx-background-color: #3e7b91; + -fx-padding: 1 3 1 3; + -fx-border-radius: 2; + -fx-background-radius: 2; + -fx-font-size: 11; +} diff --git a/bin/main/view/Extensions.css b/bin/main/view/Extensions.css new file mode 100644 index 00000000000..bfe82a85964 --- /dev/null +++ b/bin/main/view/Extensions.css @@ -0,0 +1,20 @@ + +.error { + -fx-text-fill: #d06651 !important; /* The error class should always override the default text-fill style */ +} + +.list-cell:empty { + /* Empty cells will not have alternating colours */ + -fx-background: #383838; +} + +.tag-selector { + -fx-border-width: 1; + -fx-border-color: white; + -fx-border-radius: 3; + -fx-background-radius: 3; +} + +.tooltip-text { + -fx-text-fill: white; +} diff --git a/bin/main/view/HelpWindow.css b/bin/main/view/HelpWindow.css new file mode 100644 index 00000000000..17e8a8722cd --- /dev/null +++ b/bin/main/view/HelpWindow.css @@ -0,0 +1,19 @@ +#copyButton, #helpMessage { + -fx-text-fill: white; +} + +#copyButton { + -fx-background-color: dimgray; +} + +#copyButton:hover { + -fx-background-color: gray; +} + +#copyButton:armed { + -fx-background-color: darkgray; +} + +#helpMessageContainer { + -fx-background-color: derive(#1d1d1d, 20%); +} diff --git a/bin/main/view/HelpWindow.fxml b/bin/main/view/HelpWindow.fxml new file mode 100644 index 00000000000..e01f330de33 --- /dev/null +++ b/bin/main/view/HelpWindow.fxml @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/main/view/MainWindow.fxml b/bin/main/view/MainWindow.fxml new file mode 100644 index 00000000000..7778f666a0a --- /dev/null +++ b/bin/main/view/MainWindow.fxml @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/main/view/PersonListCard.fxml b/bin/main/view/PersonListCard.fxml new file mode 100644 index 00000000000..f5e812e25e6 --- /dev/null +++ b/bin/main/view/PersonListCard.fxml @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/bin/main/view/PersonListPanel.fxml b/bin/main/view/PersonListPanel.fxml new file mode 100644 index 00000000000..a1bb6bbace8 --- /dev/null +++ b/bin/main/view/PersonListPanel.fxml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/bin/main/view/ResultDisplay.fxml b/bin/main/view/ResultDisplay.fxml new file mode 100644 index 00000000000..01b691792a9 --- /dev/null +++ b/bin/main/view/ResultDisplay.fxml @@ -0,0 +1,9 @@ + + + + + + +