From 96e59a61f223e8727fc90dcdba43103afc191869 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Tue, 26 Mar 2024 06:53:38 +0100 Subject: [PATCH 01/11] Rewrite from scratch including v2 --- .github/workflows/package_linter.yml | 31 ++ .github/workflows/update_master.yml | 26 ++ .github/workflows/updater.sh | 137 ------ LICENSE | 23 +- README.md | 71 +-- README_fr.md | 68 +-- check_process | 34 -- conf/app.src | 7 - conf/env | 22 + conf/immich-machine-learning-start.sh | 21 + ...ervice => immich-machine-learning.service} | 16 +- conf/immich-microservices.service | 54 +++ conf/immich-server-start.sh | 8 + conf/immich-server.service | 54 +++ conf/nginx.conf | 36 +- conf/php-fpm.conf | 430 ------------------ config_panel.toml.example | 295 ------------ doc/DESCRIPTION.md | 10 +- doc/DISCLAIMER.md | 12 - doc/screenshots/example.jpg | Bin 35451 -> 0 bytes doc/screenshots/immich-screenshots.png | Bin 0 -> 447300 bytes manifest.json | 74 --- manifest.toml | 73 +++ scripts/_common.sh | 275 ++++++++++- scripts/backup | 83 +--- scripts/change_url | 109 +---- scripts/config | 49 +- scripts/install | 399 ++-------------- scripts/remove | 145 +----- scripts/restore | 169 ++----- scripts/upgrade | 235 ++-------- sources/extra_files/app/.gitignore | 2 - sources/patches/.gitignore | 2 - tests.toml | 3 + 34 files changed, 825 insertions(+), 2148 deletions(-) create mode 100644 .github/workflows/package_linter.yml create mode 100644 .github/workflows/update_master.yml delete mode 100755 .github/workflows/updater.sh delete mode 100644 check_process delete mode 100644 conf/app.src create mode 100644 conf/env create mode 100644 conf/immich-machine-learning-start.sh rename conf/{systemd.service => immich-machine-learning.service} (77%) create mode 100644 conf/immich-microservices.service create mode 100644 conf/immich-server-start.sh create mode 100644 conf/immich-server.service delete mode 100644 conf/php-fpm.conf delete mode 100644 config_panel.toml.example delete mode 100644 doc/DISCLAIMER.md delete mode 100644 doc/screenshots/example.jpg create mode 100644 doc/screenshots/immich-screenshots.png delete mode 100644 manifest.json create mode 100644 manifest.toml delete mode 100644 sources/extra_files/app/.gitignore delete mode 100644 sources/patches/.gitignore create mode 100644 tests.toml diff --git a/.github/workflows/package_linter.yml b/.github/workflows/package_linter.yml new file mode 100644 index 0000000..576e4a5 --- /dev/null +++ b/.github/workflows/package_linter.yml @@ -0,0 +1,31 @@ +name: YunoHost apps package linter + +on: + # Allow to manually trigger the workflow + workflow_dispatch: + push: + pull_request: + +jobs: + test: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.9' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install toml pyparsing six + + - name: 'Clone YunoHost apps package linter' + run: | + git clone --depth=1 https://github.com/YunoHost/package_linter ~/package_linter + + - name: 'Run linter' + run: | + ~/package_linter/package_linter.py . diff --git a/.github/workflows/update_master.yml b/.github/workflows/update_master.yml new file mode 100644 index 0000000..1c477f1 --- /dev/null +++ b/.github/workflows/update_master.yml @@ -0,0 +1,26 @@ +name: Create master promotion pull request +on: + # Allow to manually trigger the workflow + workflow_dispatch: + # Run it when when someone pushes to testing + push: + branches: + - testing +jobs: + masterPromotion: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + ref: master + - name: Reset promotion branch + run: | + git fetch origin testing:testing + git reset --hard testing + - name: Create Pull Request + uses: peter-evans/create-pull-request@v6 + with: + branch: master-promotion + title: 'Upgrade master from testing' + body: | + Upgrade master from testing diff --git a/.github/workflows/updater.sh b/.github/workflows/updater.sh deleted file mode 100755 index 72eb5cb..0000000 --- a/.github/workflows/updater.sh +++ /dev/null @@ -1,137 +0,0 @@ -#!/bin/bash - -#================================================= -# PACKAGE UPDATING HELPER -#================================================= - -# This script is meant to be run by GitHub Actions -# The YunoHost-Apps organisation offers a template Action to run this script periodically -# Since each app is different, maintainers can adapt its contents so as to perform -# automatic actions when a new upstream release is detected. - -# Remove this exit command when you are ready to run this Action -exit 1 - -#================================================= -# FETCHING LATEST RELEASE AND ITS ASSETS -#================================================= - -# Fetching information -current_version=$(cat manifest.json | jq -j '.version|split("~")[0]') -repo=$(cat manifest.json | jq -j '.upstream.code|split("https://github.com/")[1]') -# Some jq magic is needed, because the latest upstream release is not always the latest version (e.g. security patches for older versions) -version=$(curl --silent "https://api.github.com/repos/$repo/releases" | jq -r '.[] | select( .prerelease != true ) | .tag_name' | sort -V | tail -1) -assets=($(curl --silent "https://api.github.com/repos/$repo/releases" | jq -r '[ .[] | select(.tag_name=="'$version'").assets[].browser_download_url ] | join(" ") | @sh' | tr -d "'")) - -# Later down the script, we assume the version has only digits and dots -# Sometimes the release name starts with a "v", so let's filter it out. -# You may need more tweaks here if the upstream repository has different naming conventions. -if [[ ${version:0:1} == "v" || ${version:0:1} == "V" ]]; then - version=${version:1} -fi - -# Setting up the environment variables -echo "Current version: $current_version" -echo "Latest release from upstream: $version" -echo "VERSION=$version" >> $GITHUB_ENV -echo "REPO=$repo" >> $GITHUB_ENV -# For the time being, let's assume the script will fail -echo "PROCEED=false" >> $GITHUB_ENV - -# Proceed only if the retrieved version is greater than the current one -if ! dpkg --compare-versions "$current_version" "lt" "$version" ; then - echo "::warning ::No new version available" - exit 0 -# Proceed only if a PR for this new version does not already exist -elif git ls-remote -q --exit-code --heads https://github.com/$GITHUB_REPOSITORY.git ci-auto-update-v$version ; then - echo "::warning ::A branch already exists for this update" - exit 0 -fi - -# Each release can hold multiple assets (e.g. binaries for different architectures, source code, etc.) -echo "${#assets[@]} available asset(s)" - -#================================================= -# UPDATE SOURCE FILES -#================================================= - -# Here we use the $assets variable to get the resources published in the upstream release. -# Here is an example for Grav, it has to be adapted in accordance with how the upstream releases look like. - -# Let's loop over the array of assets URLs -for asset_url in ${assets[@]}; do - -echo "Handling asset at $asset_url" - -# Assign the asset to a source file in conf/ directory -# Here we base the source file name upon a unique keyword in the assets url (admin vs. update) -# Leave $src empty to ignore the asset -case $asset_url in - *"admin"*) - src="app" - ;; - *"update"*) - src="app-upgrade" - ;; - *) - src="" - ;; -esac - -# If $src is not empty, let's process the asset -if [ ! -z "$src" ]; then - -# Create the temporary directory -tempdir="$(mktemp -d)" - -# Download sources and calculate checksum -filename=${asset_url##*/} -curl --silent -4 -L $asset_url -o "$tempdir/$filename" -checksum=$(sha256sum "$tempdir/$filename" | head -c 64) - -# Delete temporary directory -rm -rf $tempdir - -# Get extension -if [[ $filename == *.tar.gz ]]; then - extension=tar.gz -else - extension=${filename##*.} -fi - -# Rewrite source file -cat < conf/$src.src -SOURCE_URL=$asset_url -SOURCE_SUM=$checksum -SOURCE_SUM_PRG=sha256sum -SOURCE_FORMAT=$extension -SOURCE_IN_SUBDIR=true -SOURCE_FILENAME= -EOT -echo "... conf/$src.src updated" - -else -echo "... asset ignored" -fi - -done - -#================================================= -# SPECIFIC UPDATE STEPS -#================================================= - -# Any action on the app's source code can be done. -# The GitHub Action workflow takes care of committing all changes after this script ends. - -#================================================= -# GENERIC FINALIZATION -#================================================= - -# Replace new version in manifest -echo "$(jq -s --indent 4 ".[] | .version = \"$version~ynh1\"" manifest.json)" > manifest.json - -# No need to update the README, yunohost-bot takes care of it - -# The Action will proceed only if the PROCEED environment variable is set to true -echo "PROCEED=true" >> $GITHUB_ENV -exit 0 diff --git a/LICENSE b/LICENSE index 7d1e40b..4650540 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,21 @@ -File containing the license of your package. +MIT License -More information here: -https://yunohost.org/packaging_apps_guidelines#yep-1-3 +Copyright (c) 2022 Hau Tran + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. \ No newline at end of file diff --git a/README.md b/README.md index 60731bf..8419cfc 100644 --- a/README.md +++ b/README.md @@ -1,85 +1,48 @@ -# Packaging an app, starting from this example - -* Copy this app before working on it, using the ['Use this template'](https://github.com/YunoHost/example_ynh/generate) button on the Github repo. -* Edit the `manifest.json` with app specific info. -* Edit the `install`, `upgrade`, `remove`, `backup`, and `restore` scripts, and any relevant conf files in `conf/`. - * Using the [script helpers documentation.](https://yunohost.org/packaging_apps_helpers) -* Add a `LICENSE` file for the package. -* Edit `doc/DISCLAIMER*.md` -* The `README.md` files are to be automatically generated by https://github.com/YunoHost/apps/tree/master/tools/README-generator - ---- -# Example app for YunoHost +# Immich for YunoHost + +[![Integration level](https://dash.yunohost.org/integration/immich.svg)](https://dash.yunohost.org/appci/app/immich) ![Working status](https://ci-apps.yunohost.org/ci/badges/immich.status.svg) ![Maintenance status](https://ci-apps.yunohost.org/ci/badges/immich.maintain.svg) -[![Integration level](https://dash.yunohost.org/integration/example.svg)](https://dash.yunohost.org/appci/app/example) ![Working status](https://ci-apps.yunohost.org/ci/badges/example.status.svg) ![Maintenance status](https://ci-apps.yunohost.org/ci/badges/example.maintain.svg) -[![Install Example app with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=example) +[![Install Immich with YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=immich) *[Lire ce readme en français.](./README_fr.md)* -> *This package allows you to install Example app quickly and simply on a YunoHost server. +> *This package allows you to install Immich quickly and simply on a YunoHost server. If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/install) to learn how to install it.* ## Overview -Some long and extensive description of what the app is and does, lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. - -### Features - -- Ut enim ad minim veniam, quis nostrud exercitation ullamco ; -- Laboris nisi ut aliquip ex ea commodo consequat ; -- Duis aute irure dolor in reprehenderit in voluptate ; -- Velit esse cillum dolore eu fugiat nulla pariatur ; -- Excepteur sint occaecat cupidatat non proident, sunt in culpa." - +Photo and video backup solution directly from your mobile phone -**Shipped version:** 1.0~ynh1 - - -**Demo:** https://demo.example.com +**Shipped version:** 1.90.2~ynh1 ## Screenshots -![Screenshot of Example app](./doc/screenshots/example.jpg) - -## Disclaimers / important information - -* Any known limitations, constrains or stuff not working, such as (but not limited to): - * requiring a full dedicated domain ? - * architectures not supported ? - * not-working single-sign on or LDAP integration ? - * the app requires an important amount of RAM / disk / .. to install or to work properly - * etc... - -* Other infos that people should be aware of, such as: - * any specific step to perform after installing (such as manually finishing the install, specific admin credentials, ...) - * how to configure / administrate the application if it ain't obvious - * upgrade process / specificities / things to be aware of ? - * security considerations ? +![Screenshot of Immich](./doc/screenshots/immich-screenshots.png) ## Documentation and resources -* Official app website: -* Official user documentation: -* Official admin documentation: -* Upstream app code repository: -* YunoHost documentation for this app: -* Report a bug: +* Official app website: +* Official user documentation: +* Official admin documentation: +* Upstream app code repository: +* YunoHost Store: +* Report a bug: ## Developer info -Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/example_ynh/tree/testing). +Please send your pull request to the [testing branch](https://github.com/YunoHost-Apps/immich_ynh/tree/testing). To try the testing branch, please proceed like that. ``` bash -sudo yunohost app install https://github.com/YunoHost-Apps/example_ynh/tree/testing --debug +sudo yunohost app install https://github.com/YunoHost-Apps/immich_ynh/tree/testing --debug or -sudo yunohost app upgrade example -u https://github.com/YunoHost-Apps/example_ynh/tree/testing --debug +sudo yunohost app upgrade immich -u https://github.com/YunoHost-Apps/immich_ynh/tree/testing --debug ``` **More info regarding app packaging:** diff --git a/README_fr.md b/README_fr.md index ffa6471..a35a0a4 100644 --- a/README_fr.md +++ b/README_fr.md @@ -3,72 +3,46 @@ N.B.: This README was automatically generated by https://github.com/YunoHost/app It shall NOT be edited by hand. --> -# Example app pour YunoHost +# Immich pour YunoHost -[![Niveau d'intégration](https://dash.yunohost.org/integration/example.svg)](https://dash.yunohost.org/appci/app/example) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/example.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/example.maintain.svg) -[![Installer Example app avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=example) +[![Niveau d’intégration](https://dash.yunohost.org/integration/immich.svg)](https://dash.yunohost.org/appci/app/immich) ![Statut du fonctionnement](https://ci-apps.yunohost.org/ci/badges/immich.status.svg) ![Statut de maintenance](https://ci-apps.yunohost.org/ci/badges/immich.maintain.svg) -*[Read this readme in english.](./README.md)* - -> *Ce package vous permet d'installer Example app rapidement et simplement sur un serveur YunoHost. -Si vous n'avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l'installer et en profiter.* - -## Vue d'ensemble - -Some long and extensive description of what the app is and does, lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. - -### Features - -- Ut enim ad minim veniam, quis nostrud exercitation ullamco ; -- Laboris nisi ut aliquip ex ea commodo consequat ; -- Duis aute irure dolor in reprehenderit in voluptate ; -- Velit esse cillum dolore eu fugiat nulla pariatur ; -- Excepteur sint occaecat cupidatat non proident, sunt in culpa." - - -**Version incluse :** 1.0~ynh1 +[![Installer Immich avec YunoHost](https://install-app.yunohost.org/install-with-yunohost.svg)](https://install-app.yunohost.org/?app=immich) +*[Read this readme in english.](./README.md)* -**Démo :** https://demo.example.com +> *Ce package vous permet d’installer Immich rapidement et simplement sur un serveur YunoHost. +Si vous n’avez pas YunoHost, regardez [ici](https://yunohost.org/#/install) pour savoir comment l’installer et en profiter.* -## Captures d'écran +## Vue d’ensemble -![Capture d'écran de Example app](./doc/screenshots/example.jpg) +Photo and video backup solution directly from your mobile phone -## Avertissements / informations importantes +**Version incluse :** 1.90.2~ynh1 -* Any known limitations, constrains or stuff not working, such as (but not limited to): - * requiring a full dedicated domain ? - * architectures not supported ? - * not-working single-sign on or LDAP integration ? - * the app requires an important amount of RAM / disk / .. to install or to work properly - * etc... +## Captures d’écran -* Other infos that people should be aware of, such as: - * any specific step to perform after installing (such as manually finishing the install, specific admin credentials, ...) - * how to configure / administrate the application if it ain't obvious - * upgrade process / specificities / things to be aware of ? - * security considerations ? +![Capture d’écran de Immich](./doc/screenshots/immich-screenshots.png) ## Documentations et ressources -* Site officiel de l'app : -* Documentation officielle utilisateur : -* Documentation officielle de l'admin : -* Dépôt de code officiel de l'app : -* Documentation YunoHost pour cette app : -* Signaler un bug : +* Site officiel de l’app : +* Documentation officielle utilisateur : +* Documentation officielle de l’admin : +* Dépôt de code officiel de l’app : +* YunoHost Store: +* Signaler un bug : ## Informations pour les développeurs -Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/example_ynh/tree/testing). +Merci de faire vos pull request sur la [branche testing](https://github.com/YunoHost-Apps/immich_ynh/tree/testing). Pour essayer la branche testing, procédez comme suit. ``` bash -sudo yunohost app install https://github.com/YunoHost-Apps/example_ynh/tree/testing --debug +sudo yunohost app install https://github.com/YunoHost-Apps/immich_ynh/tree/testing --debug ou -sudo yunohost app upgrade example -u https://github.com/YunoHost-Apps/example_ynh/tree/testing --debug +sudo yunohost app upgrade immich -u https://github.com/YunoHost-Apps/immich_ynh/tree/testing --debug ``` -**Plus d'infos sur le packaging d'applications :** +**Plus d’infos sur le packaging d’applications :** \ No newline at end of file diff --git a/check_process b/check_process deleted file mode 100644 index f41c4c9..0000000 --- a/check_process +++ /dev/null @@ -1,34 +0,0 @@ -# See here for more information -# https://github.com/YunoHost/package_check#syntax-check_process-file - -# Move this file from check_process.default to check_process when you have filled it. - -;; Test complet - ; Manifest - domain="domain.tld" - path="/path" - is_public=1 - language="fr" - admin="john" - password="1Strong-Password" - port="666" - ; Checks - pkg_linter=1 - setup_sub_dir=1 - setup_root=1 - setup_nourl=0 - setup_private=1 - setup_public=1 - upgrade=1 - upgrade=1 from_commit=CommitHash - backup_restore=1 - multi_instance=1 - port_already_use=0 - change_url=1 -;;; Options -Email= -Notification=none -;;; Upgrade options - ; commit=CommitHash - name=Name and date of the commit. - manifest_arg=domain=DOMAIN&path=PATH&is_public=1&language=fr&admin=USER&password=pass&port=666& diff --git a/conf/app.src b/conf/app.src deleted file mode 100644 index 17489bf..0000000 --- a/conf/app.src +++ /dev/null @@ -1,7 +0,0 @@ -SOURCE_URL=url of app's source -SOURCE_SUM=sha256 checksum -SOURCE_SUM_PRG=sha256sum -SOURCE_FORMAT=tar.gz -SOURCE_IN_SUBDIR=true -SOURCE_FILENAME= -SOURCE_EXTRACT=true diff --git a/conf/env b/conf/env new file mode 100644 index 0000000..b454c36 --- /dev/null +++ b/conf/env @@ -0,0 +1,22 @@ +## General +NODE_ENV=production +IMMICH_MEDIA_LOCATION=__DATA_DIR__ +IMMICH_WEB_ROOT=__INSTALL_DIR__/app/www +IMMICH_REVERSE_GEOCODING_ROOT=__INSTALL_DIR__/app/resources + +## Ports +SERVER_PORT=__PORT__ +MICROSERVICES_PORT=__PORT_MICROSERVICES__ +MACHINE_LEARNING_HOST=127.0.0.1 +MACHINE_LEARNING_PORT=__PORT_MACHINELEARNING__ + +## Database +DB_HOSTNAME=127.0.0.1 +DB_PORT=__DB_PORT__ +DB_USERNAME=__APP__ +DB_PASSWORD=__DB_PWD__ +DB_DATABASE_NAME=__APP__ +DB_VECTOR_EXTENSION=pgvector + +## Redis +REDIS_HOSTNAME=127.0.0.1 diff --git a/conf/immich-machine-learning-start.sh b/conf/immich-machine-learning-start.sh new file mode 100644 index 0000000..20443e2 --- /dev/null +++ b/conf/immich-machine-learning-start.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +set -a +source "__INSTALL_DIR__/env" +set +a + +cd "__INSTALL_DIR__/app/machine-learning" +source venv/bin/activate + +: "${MACHINE_LEARNING_HOST:=127.0.0.1}" +: "${MACHINE_LEARNING_PORT:=__PORT_MACHINELEARNING__}" +: "${MACHINE_LEARNING_WORKERS:=1}" +: "${MACHINE_LEARNING_WORKER_TIMEOUT:=120}" + +exec gunicorn app.main:app \ + -k app.config.CustomUvicornWorker \ + -w "$MACHINE_LEARNING_WORKERS" \ + -b "$MACHINE_LEARNING_HOST":"$MACHINE_LEARNING_PORT" \ + -t "$MACHINE_LEARNING_WORKER_TIMEOUT" \ + --log-config-json log_conf.json \ + --graceful-timeout 0 diff --git a/conf/systemd.service b/conf/immich-machine-learning.service similarity index 77% rename from conf/systemd.service rename to conf/immich-machine-learning.service index 7bb448e..c4002b6 100644 --- a/conf/systemd.service +++ b/conf/immich-machine-learning.service @@ -1,15 +1,21 @@ [Unit] -Description=Small description of the service +Description=Immich machine-learning +Documentation=https://github.com/immich-app/immich After=network.target +PartOf=immich-server.service +Before=immich-server.service [Service] Type=simple +Restart=on-failure User=__APP__ Group=__APP__ -WorkingDirectory=__FINALPATH__/ -ExecStart=__FINALPATH__/script -StandardOutput=append:/var/log/__APP__/__APP__.log +WorkingDirectory=__INSTALL_DIR__/app +EnvironmentFile=__INSTALL_DIR__/env +ExecStart=__INSTALL_DIR__/app/machine-learning/start.sh +StandardOutput=append:/var/log/__APP__/__APP__-machine-learning.log StandardError=inherit +Restart=on-failure # Sandboxing options to harden security # Depending on specificities of your service/app, you may need to tweak these @@ -42,4 +48,4 @@ CapabilityBoundingSet=~CAP_NET_ADMIN CAP_NET_BROADCAST CAP_NET_RAW CapabilityBoundingSet=~CAP_SYS_ADMIN CAP_SYS_PTRACE CAP_SYSLOG [Install] -WantedBy=multi-user.target +WantedBy=immich-server.service diff --git a/conf/immich-microservices.service b/conf/immich-microservices.service new file mode 100644 index 0000000..dce2408 --- /dev/null +++ b/conf/immich-microservices.service @@ -0,0 +1,54 @@ +[Unit] +Description=Immich microservices +Documentation=https://github.com/immich-app/immich +Requires=redis-server.service +Requires=postgresql.service +After=network.target +PartOf=immich-server.service +Before=immich-server.service + +[Service] +Type=simple +Restart=on-failure +User=__APP__ +Group=__APP__ +WorkingDirectory=__INSTALL_DIR__/app +Environment="__YNH_NODE_LOAD_PATH__" +EnvironmentFile=__INSTALL_DIR__/env +ExecStart=__YNH_NODE__ __INSTALL_DIR__/app/dist/main microservices +StandardOutput=append:/var/log/__APP__/__APP__-microservices.log +StandardError=inherit +Restart=on-failure + +# Sandboxing options to harden security +# Depending on specificities of your service/app, you may need to tweak these +# .. but this should be a good baseline +# Details for these options: https://www.freedesktop.org/software/systemd/man/systemd.exec.html +NoNewPrivileges=yes +PrivateTmp=yes +PrivateDevices=yes +RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 +RestrictNamespaces=yes +RestrictRealtime=yes +DevicePolicy=closed +ProtectSystem=full +ProtectControlGroups=yes +ProtectKernelModules=yes +ProtectKernelTunables=yes +LockPersonality=yes +SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap + +# Denying access to capabilities that should not be relevant for webapps +# Doc: https://man7.org/linux/man-pages/man7/capabilities.7.html +CapabilityBoundingSet=~CAP_RAWIO CAP_MKNOD +CapabilityBoundingSet=~CAP_AUDIT_CONTROL CAP_AUDIT_READ CAP_AUDIT_WRITE +CapabilityBoundingSet=~CAP_SYS_BOOT CAP_SYS_TIME CAP_SYS_MODULE CAP_SYS_PACCT +CapabilityBoundingSet=~CAP_LEASE CAP_LINUX_IMMUTABLE CAP_IPC_LOCK +CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_WAKE_ALARM +CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG +CapabilityBoundingSet=~CAP_MAC_ADMIN CAP_MAC_OVERRIDE +CapabilityBoundingSet=~CAP_NET_ADMIN CAP_NET_BROADCAST CAP_NET_RAW +CapabilityBoundingSet=~CAP_SYS_ADMIN CAP_SYS_PTRACE CAP_SYSLOG + +[Install] +WantedBy=immich-server.service diff --git a/conf/immich-server-start.sh b/conf/immich-server-start.sh new file mode 100644 index 0000000..77ddfd6 --- /dev/null +++ b/conf/immich-server-start.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +set -a +. "__INSTALL_DIR__/env" +set +a + +cd "__INSTALL_DIR__/app" +exec __YNH_NODE__ "__INSTALL_DIR__/app/dist/main" "$@" diff --git a/conf/immich-server.service b/conf/immich-server.service new file mode 100644 index 0000000..f59f140 --- /dev/null +++ b/conf/immich-server.service @@ -0,0 +1,54 @@ +[Unit] +Description=Immich server +Documentation=https://github.com/immich-app/immich +Requires=redis-server.service +Requires=postgresql.service +Requires=immich-machine-learning.service +Requires=immich-microservices.service +After=network.target + +[Service] +Type=simple +Restart=on-failure +User=__APP__ +Group=__APP__ +WorkingDirectory=__INSTALL_DIR__/app +Environment="__YNH_NODE_LOAD_PATH__" +EnvironmentFile=__INSTALL_DIR__/env +ExecStart=__YNH_NODE__ __INSTALL_DIR__/app/dist/main __APP__ +StandardOutput=append:/var/log/__APP__/__APP__-server.log +StandardError=inherit +Restart=on-failure + +# Sandboxing options to harden security +# Depending on specificities of your service/app, you may need to tweak these +# .. but this should be a good baseline +# Details for these options: https://www.freedesktop.org/software/systemd/man/systemd.exec.html +NoNewPrivileges=yes +PrivateTmp=yes +PrivateDevices=yes +RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6 +RestrictNamespaces=yes +RestrictRealtime=yes +DevicePolicy=closed +ProtectSystem=full +ProtectControlGroups=yes +ProtectKernelModules=yes +ProtectKernelTunables=yes +LockPersonality=yes +SystemCallFilter=~@clock @debug @module @mount @obsolete @reboot @setuid @swap + +# Denying access to capabilities that should not be relevant for webapps +# Doc: https://man7.org/linux/man-pages/man7/capabilities.7.html +CapabilityBoundingSet=~CAP_RAWIO CAP_MKNOD +CapabilityBoundingSet=~CAP_AUDIT_CONTROL CAP_AUDIT_READ CAP_AUDIT_WRITE +CapabilityBoundingSet=~CAP_SYS_BOOT CAP_SYS_TIME CAP_SYS_MODULE CAP_SYS_PACCT +CapabilityBoundingSet=~CAP_LEASE CAP_LINUX_IMMUTABLE CAP_IPC_LOCK +CapabilityBoundingSet=~CAP_BLOCK_SUSPEND CAP_WAKE_ALARM +CapabilityBoundingSet=~CAP_SYS_TTY_CONFIG +CapabilityBoundingSet=~CAP_MAC_ADMIN CAP_MAC_OVERRIDE +CapabilityBoundingSet=~CAP_NET_ADMIN CAP_NET_BROADCAST CAP_NET_RAW +CapabilityBoundingSet=~CAP_SYS_ADMIN CAP_SYS_PTRACE CAP_SYSLOG + +[Install] +WantedBy=multi-user.target diff --git a/conf/nginx.conf b/conf/nginx.conf index 6b738ce..6986deb 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -1,28 +1,14 @@ -#sub_path_only rewrite ^__PATH__$ __PATH__/ permanent; location __PATH__/ { - # Path to source - alias __FINALPATH__/; - -### Example PHP configuration (remove it if not used) - index index.php; - - # Common parameter to increase upload size limit in conjunction with dedicated php-fpm file - #client_max_body_size 50M; - - try_files $uri $uri/ index.php; - location ~ [^/]\.php(/|$) { - fastcgi_split_path_info ^(.+?\.php)(/.*)$; - fastcgi_pass unix:/var/run/php/php__PHPVERSION__-fpm-__NAME__.sock; - - fastcgi_index index.php; - include fastcgi_params; - fastcgi_param REMOTE_USER $remote_user; - fastcgi_param PATH_INFO $fastcgi_path_info; - fastcgi_param SCRIPT_FILENAME $request_filename; - } -### End of PHP configuration part - - # Include SSOWAT user panel. - include conf.d/yunohost_panel.conf.inc; + proxy_pass http://127.0.0.1:__PORT__; + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Host $server_name; + client_max_body_size 500M; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; } diff --git a/conf/php-fpm.conf b/conf/php-fpm.conf deleted file mode 100644 index ab1a471..0000000 --- a/conf/php-fpm.conf +++ /dev/null @@ -1,430 +0,0 @@ -; Start a new pool named 'www'. -; the variable $pool can be used in any directive and will be replaced by the -; pool name ('www' here) -[__NAMETOCHANGE__] - -; Per pool prefix -; It only applies on the following directives: -; - 'access.log' -; - 'slowlog' -; - 'listen' (unixsocket) -; - 'chroot' -; - 'chdir' -; - 'php_values' -; - 'php_admin_values' -; When not set, the global prefix (or /usr) applies instead. -; Note: This directive can also be relative to the global prefix. -; Default Value: none -;prefix = /path/to/pools/$pool - -; Unix user/group of processes -; Note: The user is mandatory. If the group is not set, the default user's group -; will be used. -user = __USER__ -group = __USER__ - -; The address on which to accept FastCGI requests. -; Valid syntaxes are: -; 'ip.add.re.ss:port' - to listen on a TCP socket to a specific IPv4 address on -; a specific port; -; '[ip:6:addr:ess]:port' - to listen on a TCP socket to a specific IPv6 address on -; a specific port; -; 'port' - to listen on a TCP socket to all addresses -; (IPv6 and IPv4-mapped) on a specific port; -; '/path/to/unix/socket' - to listen on a unix socket. -; Note: This value is mandatory. -listen = /var/run/php/php__PHPVERSION__-fpm-__NAMETOCHANGE__.sock - -; Set listen(2) backlog. -; Default Value: 511 (-1 on FreeBSD and OpenBSD) -;listen.backlog = 511 - -; Set permissions for unix socket, if one is used. In Linux, read/write -; permissions must be set in order to allow connections from a web server. Many -; BSD-derived systems allow connections regardless of permissions. -; Default Values: user and group are set as the running user -; mode is set to 0660 -listen.owner = www-data -listen.group = www-data -;listen.mode = 0660 -; When POSIX Access Control Lists are supported you can set them using -; these options, value is a comma separated list of user/group names. -; When set, listen.owner and listen.group are ignored -;listen.acl_users = -;listen.acl_groups = - -; List of addresses (IPv4/IPv6) of FastCGI clients which are allowed to connect. -; Equivalent to the FCGI_WEB_SERVER_ADDRS environment variable in the original -; PHP FCGI (5.2.2+). Makes sense only with a tcp listening socket. Each address -; must be separated by a comma. If this value is left blank, connections will be -; accepted from any ip address. -; Default Value: any -;listen.allowed_clients = 127.0.0.1 - -; Specify the nice(2) priority to apply to the pool processes (only if set) -; The value can vary from -19 (highest priority) to 20 (lower priority) -; Note: - It will only work if the FPM master process is launched as root -; - The pool processes will inherit the master process priority -; unless it specified otherwise -; Default Value: no set -; process.priority = -19 - -; Set the process dumpable flag (PR_SET_DUMPABLE prctl) even if the process user -; or group is differrent than the master process user. It allows to create process -; core dump and ptrace the process for the pool user. -; Default Value: no -; process.dumpable = yes - -; Choose how the process manager will control the number of child processes. -; Possible Values: -; static - a fixed number (pm.max_children) of child processes; -; dynamic - the number of child processes are set dynamically based on the -; following directives. With this process management, there will be -; always at least 1 children. -; pm.max_children - the maximum number of children that can -; be alive at the same time. -; pm.start_servers - the number of children created on startup. -; pm.min_spare_servers - the minimum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is less than this -; number then some children will be created. -; pm.max_spare_servers - the maximum number of children in 'idle' -; state (waiting to process). If the number -; of 'idle' processes is greater than this -; number then some children will be killed. -; ondemand - no children are created at startup. Children will be forked when -; new requests will connect. The following parameter are used: -; pm.max_children - the maximum number of children that -; can be alive at the same time. -; pm.process_idle_timeout - The number of seconds after which -; an idle process will be killed. -; Note: This value is mandatory. -pm = dynamic - -; The number of child processes to be created when pm is set to 'static' and the -; maximum number of child processes when pm is set to 'dynamic' or 'ondemand'. -; This value sets the limit on the number of simultaneous requests that will be -; served. Equivalent to the ApacheMaxClients directive with mpm_prefork. -; Equivalent to the PHP_FCGI_CHILDREN environment variable in the original PHP -; CGI. The below defaults are based on a server without much resources. Don't -; forget to tweak pm.* to fit your needs. -; Note: Used when pm is set to 'static', 'dynamic' or 'ondemand' -; Note: This value is mandatory. -pm.max_children = 5 - -; The number of child processes created on startup. -; Note: Used only when pm is set to 'dynamic' -; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2 -pm.start_servers = 2 - -; The desired minimum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.min_spare_servers = 1 - -; The desired maximum number of idle server processes. -; Note: Used only when pm is set to 'dynamic' -; Note: Mandatory when pm is set to 'dynamic' -pm.max_spare_servers = 3 - -; The number of seconds after which an idle process will be killed. -; Note: Used only when pm is set to 'ondemand' -; Default Value: 10s -;pm.process_idle_timeout = 10s; - -; The number of requests each child process should execute before respawning. -; This can be useful to work around memory leaks in 3rd party libraries. For -; endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS. -; Default Value: 0 -;pm.max_requests = 500 - -; The URI to view the FPM status page. If this value is not set, no URI will be -; recognized as a status page. It shows the following informations: -; pool - the name of the pool; -; process manager - static, dynamic or ondemand; -; start time - the date and time FPM has started; -; start since - number of seconds since FPM has started; -; accepted conn - the number of request accepted by the pool; -; listen queue - the number of request in the queue of pending -; connections (see backlog in listen(2)); -; max listen queue - the maximum number of requests in the queue -; of pending connections since FPM has started; -; listen queue len - the size of the socket queue of pending connections; -; idle processes - the number of idle processes; -; active processes - the number of active processes; -; total processes - the number of idle + active processes; -; max active processes - the maximum number of active processes since FPM -; has started; -; max children reached - number of times, the process limit has been reached, -; when pm tries to start more children (works only for -; pm 'dynamic' and 'ondemand'); -; Value are updated in real time. -; Example output: -; pool: www -; process manager: static -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 62636 -; accepted conn: 190460 -; listen queue: 0 -; max listen queue: 1 -; listen queue len: 42 -; idle processes: 4 -; active processes: 11 -; total processes: 15 -; max active processes: 12 -; max children reached: 0 -; -; By default the status page output is formatted as text/plain. Passing either -; 'html', 'xml' or 'json' in the query string will return the corresponding -; output syntax. Example: -; http://www.foo.bar/status -; http://www.foo.bar/status?json -; http://www.foo.bar/status?html -; http://www.foo.bar/status?xml -; -; By default the status page only outputs short status. Passing 'full' in the -; query string will also return status for each pool process. -; Example: -; http://www.foo.bar/status?full -; http://www.foo.bar/status?json&full -; http://www.foo.bar/status?html&full -; http://www.foo.bar/status?xml&full -; The Full status returns for each process: -; pid - the PID of the process; -; state - the state of the process (Idle, Running, ...); -; start time - the date and time the process has started; -; start since - the number of seconds since the process has started; -; requests - the number of requests the process has served; -; request duration - the duration in µs of the requests; -; request method - the request method (GET, POST, ...); -; request URI - the request URI with the query string; -; content length - the content length of the request (only with POST); -; user - the user (PHP_AUTH_USER) (or '-' if not set); -; script - the main script called (or '-' if not set); -; last request cpu - the %cpu the last request consumed -; it's always 0 if the process is not in Idle state -; because CPU calculation is done when the request -; processing has terminated; -; last request memory - the max amount of memory the last request consumed -; it's always 0 if the process is not in Idle state -; because memory calculation is done when the request -; processing has terminated; -; If the process is in Idle state, then informations are related to the -; last request the process has served. Otherwise informations are related to -; the current request being served. -; Example output: -; ************************ -; pid: 31330 -; state: Running -; start time: 01/Jul/2011:17:53:49 +0200 -; start since: 63087 -; requests: 12808 -; request duration: 1250261 -; request method: GET -; request URI: /test_mem.php?N=10000 -; content length: 0 -; user: - -; script: /home/fat/web/docs/php/test_mem.php -; last request cpu: 0.00 -; last request memory: 0 -; -; Note: There is a real-time FPM status monitoring sample web page available -; It's available in: /usr/share/php/7.0/fpm/status.html -; -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;pm.status_path = /status - -; The ping URI to call the monitoring page of FPM. If this value is not set, no -; URI will be recognized as a ping page. This could be used to test from outside -; that FPM is alive and responding, or to -; - create a graph of FPM availability (rrd or such); -; - remove a server from a group if it is not responding (load balancing); -; - trigger alerts for the operating team (24/7). -; Note: The value must start with a leading slash (/). The value can be -; anything, but it may not be a good idea to use the .php extension or it -; may conflict with a real PHP file. -; Default Value: not set -;ping.path = /ping - -; This directive may be used to customize the response of a ping request. The -; response is formatted as text/plain with a 200 response code. -; Default Value: pong -;ping.response = pong - -; The access log file -; Default: not set -;access.log = log/$pool.access.log - -; The access log format. -; The following syntax is allowed -; %%: the '%' character -; %C: %CPU used by the request -; it can accept the following format: -; - %{user}C for user CPU only -; - %{system}C for system CPU only -; - %{total}C for user + system CPU (default) -; %d: time taken to serve the request -; it can accept the following format: -; - %{seconds}d (default) -; - %{miliseconds}d -; - %{mili}d -; - %{microseconds}d -; - %{micro}d -; %e: an environment variable (same as $_ENV or $_SERVER) -; it must be associated with embraces to specify the name of the env -; variable. Some exemples: -; - server specifics like: %{REQUEST_METHOD}e or %{SERVER_PROTOCOL}e -; - HTTP headers like: %{HTTP_HOST}e or %{HTTP_USER_AGENT}e -; %f: script filename -; %l: content-length of the request (for POST request only) -; %m: request method -; %M: peak of memory allocated by PHP -; it can accept the following format: -; - %{bytes}M (default) -; - %{kilobytes}M -; - %{kilo}M -; - %{megabytes}M -; - %{mega}M -; %n: pool name -; %o: output header -; it must be associated with embraces to specify the name of the header: -; - %{Content-Type}o -; - %{X-Powered-By}o -; - %{Transfert-Encoding}o -; - .... -; %p: PID of the child that serviced the request -; %P: PID of the parent of the child that serviced the request -; %q: the query string -; %Q: the '?' character if query string exists -; %r: the request URI (without the query string, see %q and %Q) -; %R: remote IP address -; %s: status (response code) -; %t: server time the request was received -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %T: time the log has been written (the request has finished) -; it can accept a strftime(3) format: -; %d/%b/%Y:%H:%M:%S %z (default) -; The strftime(3) format must be encapsuled in a %{}t tag -; e.g. for a ISO8601 formatted timestring, use: %{%Y-%m-%dT%H:%M:%S%z}t -; %u: remote user -; -; Default: "%R - %u %t \"%m %r\" %s" -;access.format = "%R - %u %t \"%m %r%Q%q\" %s %f %{mili}d %{kilo}M %C%%" - -; The log file for slow requests -; Default Value: not set -; Note: slowlog is mandatory if request_slowlog_timeout is set -;slowlog = log/$pool.log.slow - -; The timeout for serving a single request after which a PHP backtrace will be -; dumped to the 'slowlog' file. A value of '0s' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -;request_slowlog_timeout = 0 - -; The timeout for serving a single request after which the worker process will -; be killed. This option should be used when the 'max_execution_time' ini option -; does not stop script execution for some reason. A value of '0' means 'off'. -; Available units: s(econds)(default), m(inutes), h(ours), or d(ays) -; Default Value: 0 -request_terminate_timeout = 1d - -; Set open file descriptor rlimit. -; Default Value: system defined value -;rlimit_files = 1024 - -; Set max core size rlimit. -; Possible Values: 'unlimited' or an integer greater or equal to 0 -; Default Value: system defined value -;rlimit_core = 0 - -; Chroot to this directory at the start. This value must be defined as an -; absolute path. When this value is not set, chroot is not used. -; Note: you can prefix with '$prefix' to chroot to the pool prefix or one -; of its subdirectories. If the pool prefix is not set, the global prefix -; will be used instead. -; Note: chrooting is a great security feature and should be used whenever -; possible. However, all PHP paths will be relative to the chroot -; (error_log, sessions.save_path, ...). -; Default Value: not set -;chroot = - -; Chdir to this directory at the start. -; Note: relative path can be used. -; Default Value: current directory or / when chroot -chdir = __FINALPATH__ - -; Redirect worker stdout and stderr into main error log. If not set, stdout and -; stderr will be redirected to /dev/null according to FastCGI specs. -; Note: on highloaded environement, this can cause some delay in the page -; process time (several ms). -; Default Value: no -;catch_workers_output = yes - -; Clear environment in FPM workers -; Prevents arbitrary environment variables from reaching FPM worker processes -; by clearing the environment in workers before env vars specified in this -; pool configuration are added. -; Setting to "no" will make all environment variables available to PHP code -; via getenv(), $_ENV and $_SERVER. -; Default Value: yes -;clear_env = no - -; Limits the extensions of the main script FPM will allow to parse. This can -; prevent configuration mistakes on the web server side. You should only limit -; FPM to .php extensions to prevent malicious users to use other extensions to -; execute php code. -; Note: set an empty value to allow all extensions. -; Default Value: .php -;security.limit_extensions = .php .php3 .php4 .php5 .php7 - -; Pass environment variables like LD_LIBRARY_PATH. All $VARIABLEs are taken from -; the current environment. -; Default Value: clean env -;env[HOSTNAME] = $HOSTNAME -;env[PATH] = /usr/local/bin:/usr/bin:/bin -;env[TMP] = /tmp -;env[TMPDIR] = /tmp -;env[TEMP] = /tmp - -; Additional php.ini defines, specific to this pool of workers. These settings -; overwrite the values previously defined in the php.ini. The directives are the -; same as the PHP SAPI: -; php_value/php_flag - you can set classic ini defines which can -; be overwritten from PHP call 'ini_set'. -; php_admin_value/php_admin_flag - these directives won't be overwritten by -; PHP call 'ini_set' -; For php_*flag, valid values are on, off, 1, 0, true, false, yes or no. - -; Defining 'extension' will load the corresponding shared extension from -; extension_dir. Defining 'disable_functions' or 'disable_classes' will not -; overwrite previously defined php.ini values, but will append the new value -; instead. - -; Note: path INI options can be relative and will be expanded with the prefix -; (pool, global or /usr) - -; Default Value: nothing is defined by default except the values in php.ini and -; specified at startup with the -d argument -;php_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f www@my.domain.com -;php_flag[display_errors] = off -;php_admin_value[error_log] = /var/log/fpm-php.www.log -;php_admin_flag[log_errors] = on -;php_admin_value[memory_limit] = 32M - -; Common values to change to increase file upload limit -; php_admin_value[upload_max_filesize] = 50M -; php_admin_value[post_max_size] = 50M -; php_admin_flag[mail.add_x_header] = Off - -; Other common parameters -; php_admin_value[max_execution_time] = 600 -; php_admin_value[max_input_time] = 300 -; php_admin_value[memory_limit] = 256M -; php_admin_flag[short_open_tag] = On diff --git a/config_panel.toml.example b/config_panel.toml.example deleted file mode 100644 index c6bccd8..0000000 --- a/config_panel.toml.example +++ /dev/null @@ -1,295 +0,0 @@ - -## Config panel are available from webadmin > Apps > YOUR_APP > Config Panel Button -## Those panels let user configure some params on their apps using a friendly interface, -## and remove the need to manually edit files from the command line. - -## From a packager perspective, this .toml is coupled to the scripts/config script, -## which may be used to define custom getters/setters. However, most use cases -## should be covered automagically by the core, thus it may not be necessary -## to define a scripts/config at all! - -## ----------------------------------------------------------------------------- -## IMPORTANT: In accordance with YunoHost's spirit, please keep things simple and -## do not overwhelm the admin with tons of misunderstandable or advanced settings. -## ----------------------------------------------------------------------------- - -## The top level describe the entire config panels screen. - -## The version is a required property. -## Here a small reminder to associate config panel version with YunoHost version -## | Config | YNH | Config panel small change log | -## | ------ | --- | ------------------------------------------------------- | -## | 0.1 | 3.x | 0.1 config script not compatible with YNH >= 4.3 | -## | 1.0 | 4.3.x | The new config panel system with 'bind' property | -version = "1.0" - -## (optional) i18n property let you internationalize questions, however this feature -## is only available in core configuration panel (like yunohost domain config). -## So in app config panel this key is ignored for now, but you can internationalize -## by using a lang dictionary (see property name bellow) -# i18n = "prefix_translation_key" - -################################################################################ -#### ABOUT PANELS -################################################################################ - -## The next level describes web admin panels -## You have to choose an ID for each panel, in this example the ID is "main" -## Keep in mind this ID will be used in CLI to refer to your question, so choose -## something short and meaningfull. -## In the webadmin, each panel corresponds to a distinct tab / form -[main] - -## Define the label for your panel -## Internationalization works similarly to the 'description' and 'ask' questions in the manifest -# name.en = "Main configuration" -# name.fr = "Configuration principale" - -## (optional) If you need to trigger a service reload-or-restart after the user -## change a question in this panel, you can add your service in the list. -services = ["__APP__"] -# or services = ["nginx", "__APP__"] to also reload-or-restart nginx - -## (optional) This help properties is a short help displayed on the same line -## than the panel title but not displayed in the tab. -# help = "" - - ############################################################################ - #### ABOUT SECTIONS - ############################################################################ - - ## A panel is composed of one or several sections. - ## - ## Sections are meant to group questions together when they correspond to - ## a same subtopic. This impacts the rendering in terms of CLI prompts - ## and HTML forms - ## - ## You should choose an ID for your section, and prefix it with the panel ID - ## (Be sure to not make a typo in the panel ID, which would implicitly create - ## an other entire panel) - ## - ## We use the context of pepettes_ynh as an example, - ## which is a simple donation form app written in python, - ## and for which the admin will want to edit the configuration - [main.customization] - - ## (optional) Defining a proper title for sections is not mandatory - ## and depends on the exact rendering you're aiming for the CLI / webadmin - name = "" - - ## (optional) This help properties is a short help displayed on the same line - ## than the section title, meant to provide additional details - # help = "" - - ## (optional) As for panel, you can specify to trigger a service - ## reload-or-restart after the user change a question in this section. - ## This property is added to the panel property, it doesn't deactivate it. - ## So no need to replicate, the service list from panel services property. - # services = [] - - ## (optional) By default all questions are optionals, but you can specify a - ## default behaviour for question in the section - optional = false - - ## (optional) It's also possible with the 'visible' property to only - ## display the section depending on the user's answers to previous questions. - ## - ## Be careful that the 'visible' property should only refer to **previous** questions - ## Hence, it should not make sense to have a "visible" property on the very first section. - ## - ## Also, keep in mind that this feature only works in the webadmin and not in CLI - ## (therefore a user could be prompted in CLI for a question that may not be relevant) - # visible = true - - ######################################################################## - #### ABOUT QUESTIONS - ######################################################################## - - ## A section is compound of one or several questions. - - ## --------------------------------------------------------------------- - ## IMPORTANT: as for panel and section you have to choose an ID, but this - ## one should be unique in all this document, even if the question is in - ## an other panel. - ## --------------------------------------------------------------------- - - ## You can use same questions types and properties than in manifest.yml - ## install part. However, in YNH 4.3, a lot of change has been made to - ## extend availables questions types list. - ## See: TODO DOC LINK - - [main.customization.project_name] - - ## (required) The ask property is equivalent to the ask property in - ## the manifest. However, in config panels, questions are displayed on the - ## left side and therefore have less space to be rendered. Therefore, - ## it is better to use a short question, and use the "help" property to - ## provide additional details if necessary. - ask.en = "Name of the project" - - ## (required) The type property indicates how the question should be - ## displayed, validated and managed. Some types have specific properties. - ## - ## Types available: string, boolean, number, range, text, password, path - ## email, url, date, time, color, select, domain, user, tags, file. - ## - ## For a complete list with specific properties, see: TODO DOC LINK - type = "string" - - ######################################################################## - #### ABOUT THE BIND PROPERTY - ######################################################################## - - ## (recommended) 'bind' property is a powerful feature that let you - ## configure how and where the data will be read, validated and written. - - ## By default, 'bind property is in "settings" mode, it means it will - ## **only** read and write the value in application settings file. - ## bind = "settings" - - ## However, settings usually correspond to key/values in actual app configurations - ## Hence, a more useful mode is to have bind = ":FILENAME". In that case, YunoHost - ## will automagically find a line with "KEY=VALUE" in FILENAME - ## (with the adequate separator between KEY and VALUE) - ## - ## YunoHost will then use this value for the read/get operation. - ## During write/set operations, YunoHost will overwrite the value - ## in **both** FILENAME and in the app's settings.yml - - ## Configuration file format supported: yaml, toml, json, ini, env, php, - ## python. The feature probably works with others formats, but should be tested carefully. - - ## Note that this feature only works with relatively simple cases - ## such as `KEY: VALUE`, but won't properly work with - ## complex data structures like multilin array/lists or dictionnaries. - ## It also doesn't work with XML format, custom config function call, php define(), ... - - ## More info on TODO - # bind = ":/var/www/__APP__/settings.py" - - - ## By default, bind = ":FILENAME" will use the question ID as KEY - ## ... but the question ID may sometime not be the exact KEY name in the configuration file. - ## - ## In particular, in pepettes, the python variable is 'name' and not 'project_name' - ## (c.f. https://github.com/YunoHost-Apps/pepettes_ynh/blob/5cc2d3ffd6529cc7356ff93af92dbb6785c3ab9a/conf/settings.py##L11 ) - ## - ## In that case, the key name can be specified before the column ':' - - bind = "name:/var/www/__APP__/settings.py" - - ## --------------------------------------------------------------------- - ## IMPORTANT: other 'bind' mode exists: - ## - ## bind = "FILENAME" (with no column character before FILENAME) - ## may be used to bind to the **entire file content** (instead of a single KEY/VALUE) - ## This could be used to expose an entire configuration file, or binary files such as images - ## For example: - ## bind = "/var/www/__APP__/img/logo.png" - ## - ## bind = "null" can be used to disable reading / writing in settings. - ## This creates sort of a "virtual" or "ephemeral" question which is not related to any actual setting - ## In this mode, you are expected to define custom getter/setters/validators in scripts/config: - ## - ## getter: get__QUESTIONID() - ## setter: set__QUESTIONID() - ## validator: validate__QUESTIONID() - ## - ## You can also specify a common getter / setter / validator, with the - ## function 'bind' mode, for example here it will try to run - ## get__array_settings() first. - # bind = "array_settings()" - ## --------------------------------------------------------------------- - - ## --------------------------------------------------------------------- - ## IMPORTANT: with the exception of bind=null questions, - ## question IDs should almost **always** correspond to an app setting - ## initialized / reused during install/upgrade. - ## Not doing so may result in inconsistencies between the config panel mechanism - ## and the use of ynh_add_config - ## --------------------------------------------------------------------- - - ######################################################################## - #### OTHER GENERIC PROPERTY FOR QUESTIONS - ######################################################################## - - ## (optional) An help text for the question - help = "Fill the name of the project which will received donation" - - ## (optional) An example display as placeholder in web form - # example = "YunoHost" - - ## (optional) set to true in order to redact the value in operation logs - # redact = false - - ## (optional) A validation pattern - ## --------------------------------------------------------------------- - ## IMPORTANT: your pattern should be between simple quote, not double. - ## --------------------------------------------------------------------- - pattern.regexp = '^\w{3,30}$' - pattern.error = "The name should be at least 3 chars and less than 30 chars. Alphanumeric chars are accepted" - - ## Note: visible and optional properties are also available for questions - - - [main.customization.contact_url] - ask = "Contact url" - type = "url" - example = "mailto: contact@example.org" - help = "mailto: accepted" - pattern.regexp = '^mailto:[^@]+@[^@]+|https://$' - pattern.error = "Should be https or mailto:" - bind = ":/var/www/__APP__/settings.py" - - [main.customization.logo] - ask = "Logo" - type = "file" - accept = ".png" - help = "Fill with an already resized logo" - bind = "__FINALPATH__/img/logo.png" - - [main.customization.favicon] - ask = "Favicon" - type = "file" - accept = ".png" - help = "Fill with an already sized favicon" - bind = "__FINALPATH__/img/favicon.png" - - - [main.stripe] - name = "Stripe general info" - optional = false - - # The next alert is overwrited with a getter from the config script - [main.stripe.amount] - ask = "Donation in the month : XX € - type = "alert" - style = "success" - - [main.stripe.publishable_key] - ask = "Publishable key" - type = "string" - redact = true - help = "Indicate here the stripe publishable key" - bind = ":/var/www/__APP__/settings.py" - - [main.stripe.secret_key] - ask = "Secret key" - type = "string" - redact = true - help = "Indicate here the stripe secret key" - bind = ":/var/www/__APP__/settings.py" - - [main.stripe.prices] - ask = "Prices ID" - type = "tags" - help = """\ - Indicates here the prices ID of donation products you created in stripe interfaces. \ - Go on [Stripe products](https://dashboard.stripe.com/products) to create those donation products. \ - Fill it tag with 'FREQUENCY/CURRENCY/PRICE_ID' \ - FREQUENCY: 'one_time' or 'recuring' \ - CURRENCY: 'EUR' or 'USD' \ - PRICE_ID: ID from stripe interfaces starting with 'price_' \ - """ - pattern.regexp = '^(one_time|recuring)/(EUR|USD)/price_.*$' - pattern.error = "Please respect the format describe in help text for each price ID" diff --git a/doc/DESCRIPTION.md b/doc/DESCRIPTION.md index 0685205..9f1112a 100644 --- a/doc/DESCRIPTION.md +++ b/doc/DESCRIPTION.md @@ -1,9 +1 @@ -Some long and extensive description of what the app is and does, lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. - -### Features - -- Ut enim ad minim veniam, quis nostrud exercitation ullamco ; -- Laboris nisi ut aliquip ex ea commodo consequat ; -- Duis aute irure dolor in reprehenderit in voluptate ; -- Velit esse cillum dolore eu fugiat nulla pariatur ; -- Excepteur sint occaecat cupidatat non proident, sunt in culpa." +Photo and video backup solution directly from your mobile phone \ No newline at end of file diff --git a/doc/DISCLAIMER.md b/doc/DISCLAIMER.md deleted file mode 100644 index aded581..0000000 --- a/doc/DISCLAIMER.md +++ /dev/null @@ -1,12 +0,0 @@ -* Any known limitations, constrains or stuff not working, such as (but not limited to): - * requiring a full dedicated domain ? - * architectures not supported ? - * not-working single-sign on or LDAP integration ? - * the app requires an important amount of RAM / disk / .. to install or to work properly - * etc... - -* Other infos that people should be aware of, such as: - * any specific step to perform after installing (such as manually finishing the install, specific admin credentials, ...) - * how to configure / administrate the application if it ain't obvious - * upgrade process / specificities / things to be aware of ? - * security considerations ? diff --git a/doc/screenshots/example.jpg b/doc/screenshots/example.jpg deleted file mode 100644 index a1efa1a36d593384df59dc13db03fa83b0436d69..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 35451 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 UE-)&$xd9C0IsX9d#{5|Pe`qLcKmY&$ diff --git a/doc/screenshots/immich-screenshots.png b/doc/screenshots/immich-screenshots.png new file mode 100644 index 0000000000000000000000000000000000000000..1dce6bc81d270c476f1d275038f8a2f7fbe65f01 GIT binary patch literal 447300 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%0D&!4MRGcpevW2obyi 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ⅅl6H5nPY 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�WCy|j#yA{hB0-_a2GNuAV5efMQd#pr0C+t**>#iyU- z*0tx^-@eJ{XrJli=pF4t3c-A^#qWRfOFaJm4*%-u7*#g<+}Frt}rV{o9;gTVeO$kXEBfBpjPJZW2dr zvU&EM0}97ApN{S^7jVwwM8e}A{uHCbEwpm%ZC$6oaxaUR&8Jl5n@i!n4@pTLE0h$% z;Sm1Tdo$g-jZxaY9whs0{Qw zEs)^6IX1Y6bcB*R^u=pQpdehUg-|#lIkUdZ`iiGC77?fH<&w%)SP>(WWunG9{r)9- zX9r|Qw;1l;WHuQxnNAoV9kP06lhw=br))11yE#`boaU=Spp>AIN>V={EnY+kNnst< z+AzY9BzOy@sYuiC9kKwaLa2I7L}1T*4n)=C#E!2Sux86`v*gWbKJN+ zpw&*PtS5~nd&4Rg&Voh16laU}B&!lJTrf=Yi8~Txd~xPh%;e_3?*k z|I|g|Ctu>i%UjHhQp(_ zlwppNpvSypPU=~(MP7(wAn59om3rR`5=jc)a;>>2Asj-0)}BZ#%xi*Fmiid3x2%Ki zJ$M_;e(J11AtcRKGcd8n0+vWSk|;DPywH?JVr^}(BLz+8DXWxu;n=@1Co2l7dd|=} z$4-^u;ds=>xL{i3+yW5RpRbU3DG^AflMz?vV+v!)O-W@+DpOIK3g=3$UNxA~k(VB+ zg2dA~%OXCf_VD3I2)2*I?mbFMZoaJf){{F(5u;Q@J4v{-yu|sX9v7FE$jcHLCzRF( zCs6KyL62ai(V(X^H?kQ6Q;}B{hed{OC8*^k-h1gh$?gD*tDnamAnqYZm=~Yt!W8KQ z5dP@a>(9M60EfqBGjCkeV$PpW92Yl!jx@PMck};Z$87Q?QK45alYi(ue{rhI!M7p~ zC)a@ha2m}PS{VAh^UTKwRIM#4zp$cCX z^##c}$7-v=_VyOz$qc15&KjiJMF>e%<;S0FKA&;@>PsB#?_*6BKKp|KLP)%`2(cX` zHgX{asI~Av!I2^-byDx-9RHs8?Hpy1vvuQTw2tuJvA=VR+4u-ky|eRfHl6VA|McHc zZy>#AUR0!!z&gP!%lTja`9H^b zPf=EA;jz9B&93JFWqn;J-=qh3u)E1Z0DMYEY@B}xr6X2WH$wN@d31DdX6yE? zR~R4dzv*k$O5kzAdqnBLJ0YQ&Vjpw(JJM^F^=8VrWWCNF9>2SHwzVKJ{IN(M=(a2{_BT1JRik~>c< zDk>*}Yopebr3D!iw@%aVZO}dYDEVlYqpepM9_(=Y+H;HtJFH)P51rKuh|Yr`1d)ad zOGhNx%Z#!kyzStu0q4<5lO`!rfi+>SC&&*~0D(dyqz=rTQb;N2uAHYTXQXMT25>qo zvdb}Men91x7)&kAh9hZqSX)~nj>G$w=LI{rU!}b&Nqdi>ln%xoGQ7W1a{M?-iNGRw z8)gl~LcSOr9>e_6_tJa}^HAs3+nio~fKPnre&%__U^FM`^ia)JO5fnf7<{up5oUs| zwN#a%EDhN_!&!@WFwHD}m{C;~Q6%YfyPVqCKt(Y+%85jVFgfGhoXF3a9qjSi{)DAo z!ohyd;gO-74;eVev(C_xid6(Hzc$_n2)>B!*4Ow!uKS$Vz zvVyWO6jg?Z8!TOHkQ`|`2RZ6~N%zzlOs67xNYgmTh{iLTs?FYb#L$NbhY*qBk;35@ zPNP1|yE2VgVF=-7v3z z%NmHjebp=jF}E}Rd9(-)~g>u^38 z3&vaWgE_-JgR4TbCrDMp=hIRWiDgy=S*^p@^T>COM=!&Uh1A#zOchXFEP|6~5;gJO zQ{+>MY(_gtNmYe471kKMTd;0{1W`(%l}0O7144@ypnXiIRGdm9)|6&LD;o0|aaoWJ zj&KAQ{IYKFco9(fLN(ZmW0sPb*})!vH5!o>1!=p<>bX;_udHxiVNvrcj3h}}$BBsJ z&&VT!_lO8{yJKV7$=^M0+&^J}P#pgfue-gT9ptUSAcRwMaCDP(G+g*u;_)dS-2Dds zulh66b20IXXFk#lw#(!0fs&9<$Cz@);Bbg7ri_M%K?{!N>N8(qK04&vPyGe9nDdo? z_rFqRW1{9NFMad#7~|NxwTi10bqDEc+>6j zH@d{k?npN0cip_V|K_0Vom7#}`Kv$vZGQPT{wWX|k5L?)m}Syx_p7 zZ?R`7q=<1?VN4~lPDlkJ5+Fm?obv+fKq*PoN`g(gaKx%YMVeMB=rkp*G$M^PRaLOt zipdQKt;wYYVbQ6k-D!}`Cg2IiAKuptM7Y*F=lI$)S8-mlyxd~zV9tZ**2s#AteDd8 zwTa^dW5L^uX4*nGG)`*rd<@P~I)zjXbh=6sbveKB02|W-Mmtv-?%w3uGhbrm)Ol9U zy%&H;7Ie&Wcs~kqzFL~Nn1}ROw3a9-YWBk6d;oe9S+jr&AtmGetF-hXRbJ6tI(y9I zc{69c|1z_qZRX1h(P~>x*37}Bx7-LGTwHW7#K!E zLuf;No-7jiEK*d2smiym$~csQyflboDRRv~$>4Aq;y&)MiBi-c?D(h0hyr6Qno>^Qp=IiTqEgAJv z;DkX+8)gY*nA?q{tU*~YcWOp`e5)JgFl~^%T3g|*shjlS`AR{E%a9TYbd+Q@QfwqK ztBnR}q>;`B6B!8CC~FZ?vmj96jyiB5;l+DSHJU6b&DHTZF#LFuNOD;Sx|4a3gzE6P z$G~?XjrD@uIrfT@!^$$Vj_vFO5dH|4xFc&8cV-J0C(xpE@^+wbwE1>I(zBbG-D;FVyzy8Mm)}o9*i|^o{C{1ilU_#jRkh_Ke!5DuOiQL8jUwz z=zQn)f7jC1H?nAdv&Vin(fKEJQa=i1tz|x+zx{^aWBEE;YdRU$H~bi!qu%pxe*1sq zqfpl1O$Evz zwIuTbCp=LagO{|@gq2Rj#f=WD-IU>U&TG$U?A(zHflz^kP*GSec;{+%)Q5$iw>ZLg zj}U^#9=goxN*|;r%L=@AZ0{cNa1N(i*7)Yq$OCQ>-t;@};%Fl4yaBCHZ*B(e^9kdB$uuXE+?wZZ(+A=WOk4 zku)6ZtEZS}pmk1}Z8Es_zoViEsrtlG!t(i#qoQ?m4G1F*krp9~&ezcn)a#OC=Hq)g z)Pezv)D2A3h_e&2;(*C;hcA75kL%kR8|Pv^^4WeJTwbA- z03y5>lqGDw;2CZUw5jlA#l%{2Y%r4%f~N5JW{X)>;9W^&W=tmnV=a2~1-|z6FVRR6 zR#uy=t*o=uKf`IA;G{&y2|{U3w{jj#MUQYv~&D_p*OA4RTEQAD@X!FfYI9|1wK97Vd8j4uFTcs%cdq08IV zE1L?fC8HujN=u{#X$*;mIP%1iCDsP5Akm&A5hQW_6NTd}i6sJqw;_U2iqIqqQ&bWi z#Ym}wL5{b<#MD^klY;G=Gp6G*jM^ZGg=b#m92s*A1Q#;ra17S(XP{aUzGmcXErV7X zsUsw+{<}c9#o9cWu^@x-ke4Dba$bQ7&aja+^lAXO7RPiWg%%;=K`T(AmhjfGDAdg$ z5fJmSlp7IZGQwzLU}4X-nw)Jmcy$P!PMh~U@&M=7*H}HAqsj`e6wX!ndbSmU)9lzd zc8Ze2vZAyh%h7m8@eY+OKMM7e2M8BvkUMRHV;%cK@-5ze(APV|?sI>@@aB`OJ^D*b zw!TTFU!isXGDly%MK#LrUC4O<7GLcCxTE5~bCbL7XYT?!&e^x@n!j0O#t)*5F-#^C zk|g=Qxe=b!NuAUWzMOMRCKJjZglzi90SMkz2;dS%P9^`GxjtZ5dw#Irhbm~!nSs0xZAj5W2MjfQV*dtYfCH4rc=(J zS?A}MmdPtmBTbl=lKr`0WFoL7UI-MLL{&893{}nQMQVbr=1AGVT8URFjrB)KS07|) zw8J;P_B9%6jxhz3>6oQnKP)(Fd6`s-I7#uYqAW6!B(3Fp5lTgP6#${G&0bc{Tp?Ct zR?a?(iUWfeY0ES}pqlN_?X=KZv9c28%8RPt?3wfQyB)s$!dIDQ69z|nRQoYX_ZW|^ zvcA4VZ)pSU4!zSKqp|iFahwvz0;K~(sC>x#Q?;|E5`sv1V)eazk1OV4g&Y0>M)Qarybv>j1*2r zM9mIDDcS<^s^t1;M57hKxB?#-oS?k)2p`sWMV>J_Jm7GD8}Cbc-6hJ6HOkU3pXV4G z8V~t=OkR|%uAOBt95Fc9MyrS@ih~D1r-zd5#mSAwV#}QAc*Jmji}BH0DF8yXmNw8j zqI2pZl`&L##{O&+0G*J;NrJPMvMg%$OyH|2RWZYRMYkQ%>$RzhjJ%lR%$#lu{?VtF zDGGm8*j$xVgB)p?Skv9OpeJeM|DZ?sU2CXHr?vrEg&Zy#_podi}`DL~+aWMnP3 zvy4e)gJI7x+^@ecv+rN?^zXWUvH;;*%?}>W0^gC3zFm3m$j4jU`ttvLeB12W+n?M& z?&ZBF%Q6Oo0ZU6u$GKW3by6qw?k(pWKeDD(~95`ux}UFaOD>`H%jy|CaZE z|HSU?*WPx2wQq%RP9m%k0wbJDDa%rLVd_PYz#yd>kUlIH)1)L4 z0^!0OqOqQ+*$bf0j`60T$V;LXjj0=`QVNn-lO&pa9*jZ4oLq_ZzGgf%T7fV3XmiL1 ze)^}$#S%(;gc)ECzK)J6#B@k3C$u{$d6Cm-Ht2O*w0oMZom(6ZG)KcRgYgdI>72?a z(qx8Kg88gufA?I9P3H<@icO47Z;+PNzkq@l6iw7ME9L(w-_nKQoq6e=te*e$8imgsw|k!ri_jbIoR1oVwq0H z9PIBhoz4(alcXAH9M*cOvSKnG(CK#A+uh>Ag|k>|m>liW==6yCJ*+80^Tb)k!#!Sl z_Gxb4d=2Sr&6K`%9Sx4qQAC`k%(IMUnv&1v^||N~N)y*nCi5)EdB^$nlryVK=*9-W z@R^UYacYCn)UmmBz#snMAF{Li60uq$tIaXFV}=@zBNxnPhNWe%p&8fYg!2+16NFT> zTV1BpQJ7V%@9mt$T2o6i!;EGUD};=}nfm;bfk}0id6u)hwn3y7&UvoNmf>uXf|S;^RzmBa0Sgok>?rJct*RSh@yx_Z-cdq_tWmJ zpps5#GSrTfQc0waX^$tYec><3reiK$JWITBhNrgnSbOgi#A&mBoz!eMT+oX7bjso0 zE~n3(XEvQMn@zzx#P$|^aqqi6kAE2TV+{yjH^Wvl_6y?v-oyW{ZBFWMUCueC(<#On zdcEFpko8HO)JeU&Y9Rw3jYiDp^Anl%-=e(t+`j%2|J{G_>s)&9{XF);pXJoK`?03v z#;ecq{5QV9_RXvBC~pzKJ0TDrYaL1iXHV~pKw3l`);UE{k!2OFmY~QhZ~~n~n5wGH zBsBBVadU6Ns97-2O0vo`otMn!1$c*6LHVJS#u^(s`1Rb4$78+6`f%Of+ux_CDh?+F zmrk#+^w1f;{qlA8jtZO;eD>!)#4r5g-(*(BWj2yA3jWVPG5wd=z0$EQ`SnE+r*X9!vr{%GvO=*pE2biN*vE??dJmSE?d%AOs zdW7-zwtjp`&qk->?_C^lzBwflhHc>axXG-H1E7k#;4f2^V+JT9ao5+xv!Q?-KLbKAYVZu9W~5VKT07PkHuLORp7iFjZ`v zImZL<`z(WY6sdFj|L1vldes|C&GGG(6Q2!Zy!wqUit#4MXJsT8qJX*3k$ z;fVP(%tP)t!7DOI4>g)*qk(XSZVIQ*uFyI40IIb{X+3M!^2{IqTe|%|xa&Am9cT6x zMZxfBz`@=Qw{BeHXt2ls&)%Cg*_EAVde2&Gk7v#qi5Ue{6^o=uktR!)Tk38}_LY6( z8#x?dg?~{014sXYwnOT6I4nEb-Imk}i=rq_#hMFM01`t^XWsLge6da@iXthp*cwPG z-v}TwaS|KnoW1wK`quZo&pR0p8IO8wZ4GhOg~ETf4h4)gI4{W4jJjOX&r_;$O_F9T z7W42}-XqO(@E+Zkm}*8Adz{rYb@ej^)1MwcM+m|B*)dTRbNlvP7Sl7@PU8qZ*QTzi z>k!Y7_XiwIu95e4=?%y9`#q9al17GG*CzbVZ+(sWtf1{IY)F|KBnl8VcC@i*?Wlat zdE4NXL?sDr8{RMB;P&nNRFB`Isw$L<*_sSFJv*n>mN<$S405&xg560qmj@4q$ zv-1ugXT(uN6s2t4xJx;IO0PHI)^Nn(y}PWY&sZ;KG;J4JG~(sZNSekZNle#uSnC3~ zDwV9-24gJycVAaDpk0q&r!V_9_+wZ=J5QES>(Q&km_f-FiforWyJZN{{MZ9NbgFHrVUN`CXJpW|SE zH{>n~fo?Uw@zpOOqZsF)zkQ9#jo0amAzd4~EFnM}a31R&&V>TdZNlB`#%txQ#~6>c zj&d~z1Z?180gw{x7h3Buz9t3Mg~h3J8s~#=O41S6kMQj$SfgoMgR`1q{vJj7K8urg znNLrMBTd&dz1zVFjk{P#&B3ccK`q&07*naRNb3*=w}o5c87fLt?#fZ zONwGaoG7Abo6$H!2uqelRMm&9R&OyJ-oToMEKTr0Q?HTUvNh?mD&}~v$oqqzEAKXz zj$6GYH`5tjJ1XbU*5a(i>I6iDk`f^l-evTMDS2;#?pmbqELP81Rf3P7JV(lBq^V~z z9I&%Brr*yG+iyUnmphi(9>5YdNV9{7cWBB5OGvYKtx5;M2@gnR#bhP8t zF`xG_UCv+T({UB8Kx9;w%uw!oW) zBv#l?;(i8(Lh$T{&7JXRLY`;neoj$VXa{x^R4*k6p-AEwB?MYK;w0YO<9AsX$CnnV3+L1YU`A`px{5e@u|ykB+qHCU!DKw5Z8dGzP*pASMZut-u~@EI z7ZuxEBdV%HHx{H}e`i3JWyHOlOljICp*1bVx+G0gI&Cn{zd7^fPEk@iHcgVh|D~9HT+Z z?Ccqjo*uD%_zKQBx~9e$O<7bp=cwz3sw_Er_MGQWk2pO!W&HFh<+{YVm+zM`nrb!U z^yHY~Xu|CH3GcuC-9WC#QI@|#Bcm5F3>S-mi?4rm76&iKT`qm4KlIp@{&RIf9{mUL z9bM^4SGv+a5sA&Vx$r8$UEIY+D3?W>@D7|t2@Af(ng*o=+JwTcYf7qOMy#N&YKG%2 zw9!;`N!Mv)qOjJ{8G|+sXTxIAdrQ|f6h*;&G3Vs$9AhnUJ|O9jLT+o65a*Eh23)^) zpJcQT@er^2=+My>x9^=3mkFhossDLw?`C>`0pJO-B3cvAF zCb2|!1&jG9#%PkHPaG*0vvW+l*eoK=CSt+z?mOS2T)hD4SS>r+&ak(WQdb>$)GoV6&a7{obA z)WdWuR`Uv>C6A@Sq3~XW(E3djj*tRpEWKWjx`RPlGwjyPrX}w^Drp)=5+}hty@g*B zju$R02#R!fH#oXsbax{y9n#&PbjRp!5b5rQ0Rlrpx<^WP!@KYAzW4qC+dhl4bIx;~ z@RB?5RW0AAax6X(6Vps{Hy@pMD^akd!H$Wj@1*4a1H(;JUO-TtKVbahiiQy(4 zj-2Cgc4YH|4*af-9Vg~00xh!d1G-}|P?*yW!}a5P$F)V7`-gI*O#9Q!cQKsvKL|+k z4Il(?Gpvz>2~R)VnQ>}17R~wd3W`#6P+D5NY={+S<@XWYs7W$kc^*3n&h5Z$G^ zBezO0DvB3Sa%W%GQr>R!*JRreyTuduJyUkc*H6D+TgXdjBLbR0@MjXYrr0Aef|NtY zyJqUxRti$9s`)!i4cIjmKpoB5;`ttL{yq|b@2(tH!*la3J|()Pq8<#Af~gSI((QnG zOZJeDXT1>|@qhiXc;~7H1w-b;|32pwWi)b;H}twi93FnE?Y@141x&iS{+`|MCDm!@ zZKjNcW~{9Vw|KQo=YoAyv*_nw7OVSH6-SR0|9oD%|2g5e5?rg72G>9SS7WI)?xkP3 zea^zP;E#aJ$cm1Khy(m=Y(e0yZZvh^{AK`SU{yUo72`hJ{SGvuYL9^ywtOVm3W~Sa zM4E?rpgW*Sug&NwYJTZY-WTksS^6$Y>w--ax-%uv;ETiws}Bom{#)vk6jZ)|EQrIf!}vI*;3 zV=#VY%>IOxo$o_rr`K6s8pc5ue6dhfy{@^EJB+1j&)(b1}-NLQot6Q>uRdEzFH5_x$3f8XLX(sED8avF2;^UaJF7maICX1M9(@sh_f zIu3QScrbwl3d|+nTkN9DRP{m$YgD8UTFmej8@P)q>^fRrl18g3$^(PsaHWsG_KK6z zd6NotF38OQyqR8x!O@aO=+pi6NbMzjY^L&5!Wn~d=s6~CoR<8A*v*{`9 zynyG#*4KZv9P6`sZcAby32bYo;^}whWC(= zppMjU!cKXH_D+7bNw>3b+)zr*@L?TRke^}wulGClW-fs@1%D7+8cSjl?##!an6+3` z83heKH0?Fe7@;+#g1OF>rpW90r}?=dd8Hs!y=58=kcZK<2a7gMCfhGAYhmtFN=qNoE%=xr0hx9{(dB_vV zW(9xWp3%5V`gfg=S@rNN$VQozF2AFP%%ig6cNzdWOr|z{EAT_FGwfgXszo1W!RDaZ zs5=o^l)*2L#kuoA-`sWuxmpNpOTiOrdfMjaHV`5twA$%6YQ}5L;6u{AzG|1A>}>kT z<}GBZha}?Pv^h4-VMH*06`UwuQBrb*y5P9FHQY$kH2+;pK^`<@svxcal4BnmiT#N4 zp*S=H4vR-sMSo_Ls&27mZ>f>)ZH0nW-dxtYcwD765yUUg7z6vmTQ^&1*=nbjo5c++ zsIjAlaXvJ?oX=kE+;gD^hrzQ~@dgWKkKIT=O7?M+UBK%)$PkTGB5z@Ae_B}H9>2b^S?Gm}IR^$p-mX6eiPbJhGTqP+xjOYctW19G+IVi*~j z`SY6&ic{2&wbesr&oKB`H;VZPIfVTnV}}B^Y4!S$u}5>WLjfV7-igQiPMy5Fwzq%# za*cs~gEcxpVP9gAIl}^@7bEMP|1+Yd)?9lPi#;@vNEF~=?_U@zgr27#xSauB0*Rjs zIwXnWPD%CHwsO5hHtjpWexr}U_9nK==+;}qV?^_MDXp}|YKQR(cA;KPf)et&>3ByT z;tL*d^g22v<8)BL(z<35Sx~k)&p*~fDi)dp>Tg<4t(|RWd>J!S<$uGfo;yE5eGSRK4olujb`rJ}kxU7L#;aYnKM7p;1KTM@0AzHG zv&N@`j5|?ZB;)O>fjDfPO6+3cBaeQwdJ{j+LI?fd4SV*yBV1c1`^2)Usy6O}_JY=a zPT56sIr-s;m%a|V1PM%)JWrioYU;lq9=Pzw&6`+*&*VZk9gKc7<_Aa$iWPiYwu)=S ztO#u&Ip2!f?cOKznQ0KcK1QYGL$7s%)|FKgm&L^UT%;7KH?`1WpETEMKn zXyYSk-ETNT=FASvwL>K+`Ig)`<0ahF-Rysgd7mXJBwLf)3ColyeTg6bg(AMoJg}sO z@RJcaEGkhdiCP0wu|K5KE7Dw?oQ06n3|Mh+^Jw8C5BIN#?%%PYQY%q7|cnRG?~}iNNU5%Z*&GwpGjd6z z8Em}|Y(CG^t^9du$HymE2ZOEcSN{muhf_ph?jrGJPn~SPLorE7*9(pWRaE2Qh9_6< zMM{0ex!Zv@4c~(W16vp#-y=ZaKBitYVDr))^`b&lkOKZuAB;HAbENHcyFHjhditEZdyq zaw2JUDiCTZHZ>knF4!i=&BFF~adEl-D!DI3h$v%5og@oqur@P&Dmi-k+LqhyXOsDxy3#JZQh>#nKHNw5Czwv(A{P zx1ZKmO&RLHvZVs-@D&G;j3(Tn(+Lme(L^EPuJFn{#RgIoNc|*qLbJ`9ZZYz%t(F|- za3M{$f-Nte`G@|}-8C6XEjEI(q|%I~gs80&BORX!TY?SlYBc#!(xws?iLJeh>*o`h z!|qt`%}Xh#%yLi)iegZ^W2|Jg(_oWHk(~NpGKbl19N4C0g>!}}4U&_u3gM1Q)G(Bx zGZ89DL~>GBarE!TlArqs1RvyA9GX-Q`>3vP9~e_O@i@$G{*aSq;|t_HYvuT`_6e5E z==~ZBJQV{2gX(G3vq*Y<;@cOcx3>e``tvKvVp2C>64JZ8T@+R_l~<+if$AD&Rnm6j z{=Nf;W16wN*@hA%$jx!GT#9%Bos%bHMv&*k!v~^rYc7$%WwkF^>}rSYp5EC4& z$%CMQ%Rrfvbo(D(^N-fvI~H{GJ0Dn1>qDdHlj_#hk}hT zq!O*~yUan`|7RV&jsZ{sBhgrm-$9DCcH%gsvR&8-u(RsdHF(jq9n{prc;g8e_PHG* zwBU<{K}cJ`7;SNNk3udggg653dg?JVkj^v@TF0y$>5IC``q4BVhlT>WXKTBUTYdwe z-uV34{R8vva`TrA()AI-yNbstX!mdyZ=aLJ0q_sePQ5PCfG?Xj{ zhudS&tfk*d9iNh(kBuZu|1RvzY7@2KCN!_2i*|#} zlres|!yss~^_-=0)-@(4T{J0n1g-$S@~H1~>_RARY>U@Y=N)s*VXT=zDI-KpBzEC; zM#LqjFb=Fc3=P{m!2OVEnP}^HOm`fQ?P#dE+Iw=4m3AdP?5@rJRY<=)Y7#z^-e!7) zIqH&p|Jv$a?cFB`Vb@1H?sdIwDNb_5CXTtd9ru4WD;XCyO}4B^{Mza!zwy;mhQml1Zw|c z$3%)wqq0+Nq@HmRzqUd30ysF+2cliy>~ZHy(&A@L!hn%C4~dTA3+ zBP0>^i+nh^OM7d#kt=8fZ(EnN*URiFwjykccx{{DrbSF zlrkO%NEK9XNAm9%l0a(qWX!vOPj_vNf84{Rr%g-gqp2ookyMv5$D#W0@>-Omv*gBm zKv9wMjd8-APglcPRgJ5DmJ$oXX3eZF zJg2Ha+x`a|eSSff8%_T#xFu}*JPu79a73m*0xly27o>nZ^rneoJU|T|HUu5)-2ibf zvJnPNbgz*d$h?xWY}$}il7)Lfx?KqQVIxj_UVcMP<~#5K44!E?TF^qt6K3WByIwt_ z-Fmh9oZoC%x}LwIQ2qlp?+7n5EatNiT}zRx9h2=G>J}dQ@CS<)u2l~vMy0vVzG%+o zLw|VQCucvfba#kx6pC(;F^J#@XY0B6HfpQIQH`D(k0Ihc`b6O$ngVZa>KByG9pC2T zkkE263W^+j5x%6|yFSLPyut9nhcd?QrCLfa5G}V90~F_v(!_&eDf|6ogW43c_88fi zDuahzqt)v4_i>Mi91NzXKFAgR9RE;39qN7$p*mJ%+qDLHSyZ)g%p9ZL>CJV*TK=%B zcsqYNYZ)VL3yYdW(MmKw*`LMG-6p8}Zj{s{gwf0iut>(#5nlV@$BMZX$RX&f*i*yQdxcj~ZO!Kd0(1D%QRQ*&A z6v-ct$@u|pf0n4yBdi7HH2(4Fz=8Ph`jcC?nH{M^@GN3dv<-|` z4A$?uOR<#C+b>*6p_d~9%WA`Pv-xVPa+&tqNZgPm9!0IMH--lpZ#3y|kMK%^BJl z$TVefmMBC!`0YA92vWVm_t4B2M6xvQ?R%YZ#CImvNIl6}qLHnnMY8_&h}ZnIm-I0z zHK92zLF74+TmE5rVM9uxe=q{$;r44#%#!^r4#xdR&~wmsH}rn2^SL(Yp0FBC#>@YF z-OscOdcZjG;)Dc*-^}%jf;wYEX$$QPc4QMC$}ZD?F7;x-4$#T67@77bCROGl*>A|h zwub*ZilhdX?jop!s(FunV5S)uSalF2f%yI^EB>1WocfuK&PF{0*nPakgqg{EglS<} zT8=h`ZahBPdBa)H!pf4%plS@1k$ZwAt*(KO*HUrLi(uNC3$`Eidohm2cJ}vI(yUqP z@JzRB6&?BId|;*Atgo34JDWzkb`La}Y5^3@skh{}Ll;Rxr*$*oh>V$Ya42~Lxv{p3 zx*{GrpceCWHGmgD;Q|RKVVu0VbQ;*g7W?wG%etLew_5SG)wM+yHVJ7i-{AIg?VL6r zk)Ey>Ieg1%K{Nc}G1dWKiq2|01UUuWk(rgkL?@1;)bdr-T@F8EK*RR&UT|5QOC8{w zkQJD_{jBXT^sITT5e_5Gf)Z-g2sv8izjcOqwDK}(a@4dgq(-b=qANV69F>~aV?rg} zSP_RAY%j}pKabJ!NZI&(eJ5N!!I!`x_ye6yWyum@F!y!D`{iZV9vvl=kFsRRKg_%U zOC&J-g9(kC#giQ=1u4Y z+yM!-)9vpD>Y$a1a#=_nmFbmML*8mmFhAMH@D9^lPU$tgw)H8{x= z1cZc3ZNJR`(30rLJzKmMm)FgDbbFdK9Ogj~fr$^K&?=OYc{Hph=5aLI-SXVo7!TVF z1SEeHKce^6eA3xs2&3|(ROjycIEpcDX)RZ}#qC~Pg@5B?1b2hgh>N&rE8#^1nVreE zb$=wVy^&E35dMm$RVY0^j%5>0bcE7$F`^5@Q%M)}fw5GWLZip7Xi3xA(=r*Dx`Cw| z<7(d({Rmx`bzp%6zurq(v8x=Qf#<4+spK0YRY<{aJnm@uX%JTyG5+N;f8rn8L0OFa^XtRE_aq(vmkWSmSbj*N>?gASTJ5K6 zCi1xRiTqE;*24w71MKP`koo=4SAK3vjd}18R3%C|4(py-w8}0WaJADOaSp_{r)!o# zqT&_a&2!P>oVz*YQ7fg&V1U5>X>IrKwWp7yC*X-wrO2n=ep!r!M2R~638r~PV;FSV z+Iz)YyV|L!ndZGec16B%5B3tsBvB#A172NoMkvsa>QYC@AFO4)v%?Y#-MHW8Wv4Wk z_|rbdpG!d*Hh}4NxBi~I>s4B3oX!>(+GSm@Z&Gd9Y*^RWD7k**66iV5OyX4c0g7CXdU3PAY~g82k{@&E1FAJ~syBE7!#JH4aQifflq7mw2{(v3(xY*1A zp($HupQE%WOBgg@i!eYnNrRJg2NocfHOyFk2+H6mwvSen1L4{!^Q+E7laLAz?tJHz zmCIRjc}I=U+4uFpuwyGeB~=Rg-^BxVjbuws!9_wb_U@APPS`k}HgA%lw8@TE z5ppl@7s~lNr!Aj{9!0abaXRZk)q1j3OkmIQAAdm>boh{Rb;V==CFu%$ON0eR>PRcE zW!7O{=lwm#rJ|eX7d$z*i-?VoY?>wwx+crD-{^eVr;_E z1fg=y;4Q5nslq{}?;P?BR^E8m`y@FID8;2bh%GnZfq{2dw&H1!Lrbh~Kw&<^^<@T7 z`C#|c3lO$a!s&r9N7OS6T}@a>Kt*D5VK?ZdJK$P8{2Unrt8uPV<(3D6-Uqy%*S~zu zV%iJ1yIBoC4=q0x1B&i`D-*AP=mPjxsmDLk+W!7VCb3%T3>5X9xELeqn6;^0?7Z^H zYAARTXvpinOVOURSBGT`%bWeoPTPGZEky}@>32YPTHgZeo}Z4e-7nX^rAsky&u@uH zGt_}EcNZuU!N_a#{ztWM(Zk=QN$(0`Dukw-8RfKOnf*)+-ErPiYoGfGzBN!bWe2N8 zqV9W%MQ#!&BcH*yH|FodmC$U#NF24V1Ye;$_lQC(orDhJNRDeAJF>exURd0wXjrHmTc;$;CDKz-UN?K?CUEXwd%ewI3 z>-|*|NBVb0)pHD?a+i4+2}VNhUk7ypi(j$Gp^0Y7SVoJT_l>9Tr^FJmF%?t7 zB5{az1R|We1_~&Udw&O~xTRnY$qzXDeWXI@4$L>sQ%|K^*VmaP>h2o(R$pYx5(#6@ zOR6xzQ)vdi#PIRw68}sG;G>*&zcMF?KJp^<|C*an7=L0Q-lBdiCM)vpCOUHW-ePY- z$wtg9$_H~($0{(W6Vkn|uTXFp;Q_KfQ1QK5?I*fS*l_j{E4Ldu_DKYDPl{X#KPQw1 zNm#Y_s+Yd~QTEnGHva#ILLxd$Q%#a6DTOXf2|0$rqUmfjJT3`o0=T)fr`9{Unb5$z zr1ces_@c=SCV&o|zFmjw*wU}Ptr1o4>m9_3OaEQPd}!}OZV=er7vj$`qANQ~vgR@x*^n>4A_C6A%LRA`@g0PJ~QKM$z z*wLxc&pE{7uLho*J17i&eYldqR0(}CQITvuOrpfrAgwY{6<;Fp)}CXLjhUNzu>Ssgq`h48ehawV}a4B=Bk%}IlCwa?RBLZq(&>f_7!*sm$-GhyYGI$elf zHO>qz6t)niAD`M6uB27xddY)QhRwjP^`W~X7R5&70YEb&KGJ*$zd@A?_|H6E3|QTh ztf5-nOeSlmL{Fg#yhW;u0-*uQ5gB=Yd`~v-RKWRTm54$9z@93T4d4B&HwG7TgsOH% zkO2PhV#3P0$w66@k8pN|n!I0>=-Hfuu zSa!iPz3O??h=Ax{)Z>?EvIFPa_n~j+6mJL#vdE)XsOEqW@qF4SJ=QNu<@>nOKRg_v z!b*(M!N#=_nE$9Zo-Gs3XK7VgJ6uT;a+^hyN0gA-qi{a0OYeWhmWbm>vFta~3ulaO zp(ArL!;(;A!dF~t>T+>H!6>Pah<-=;t#dQ!7>&WEedLMa1u-}VC=O?%mBLOKi>aZJ zjyO-$;&mIjozd?swZg5Xt%xfQqV;Bz!@T}T)E$_>sB+FZ;3thsXDGC|b@lb0+0W0< z{lmJ?n>nYDw0?{VHcU?Jv-?^(RBypfs!l)$vyNVZU2IP}`6;58y3)B0V82mPDxTb^ zHn%(CsLM9#fvqjpp!26Unzw&nyCq5Ksy@dxb5!1dOz98G&6U)r1tUDt%IreC)D(*3 zX3ng=aVWEk$0C3IC8bbpcd1hha>|F;{5Df=XLXs^_%aFpO8he8@o_6(OZ@)uol0Qj zzQ4=t>%ltYKmN=A&h0;uGfg0h6pEPZrqu-NdTfRVn7+N@u#LZjI(GW_B(^QcIsvFE z4^ksE3SAc3XZoE}Y;6sjwzweWh?Tp@TU1jKJ9;t;xQ4x+eKv_R+<5Z>BC8wJQMgBc zLB9xL>kwn~rs(QgULrk~w)XTPo;>wMb-BlWo2NL)vT1onhc0C6-Dizu*U7b&R>FkV zpVix`2Ay4RRi$nuiNlD!>P*XJ?GtA>8kC{EvBI$94wn18`S0*wr@SR<;#uGwg5Jv% zp;jlZ^|dYNi0b0c_}1HscH_JHIK^EjoHGWJHwhEUf`0)A{kGn8BE(58TF@pwbh>x2r%j( zMY&+V!45%&74lH@FJ9sVH;lM4Ug;ZtXZ6c4Fn$qpB5;d`tECK3sW`P{2@KPy(y_}b zLpN$w-Yao)oc+Q3y-$#LO+IFtxE(GJmp(K@Hc282Z4sD2=< z=tXxV_p?^3SLOM$=Z|cgG6WnLM%HS-28AL{1)J)!5U-|7TO?|GRFr-oOn{yahTKW{ypIDvy9y7X~zqCRJHG&4jZ)yGX z{qW(FN3}SAgTL4;F*XrR2~56@{W(YNJFPNxZ1QypRSOyf$yYD9N`j8X8Ftj#>3up2 z%Kt{hYcb;=j0pmsO;en?-lZ;7{6_5V4+T(Y%+qP9>S||+zQnXH-b5&Ei_`{eiTHKm zgulRf%&PH)GfsNnUNe35KEaRrGk3%T766ccL~V#QC8wbS#9)7x>=z}!iAqK~BEvB5 zR!ogOQ1x6Q-hH0#ec;ow6klnwaUevEn6PeC^=XGqZK^*hyZ&qduAdX$p#K%jf84Ra zq+MYNIfQI=*{ut?GvL73J0(nnqIK`NLBamXK?n2}KRHyFl%%15oM%&x9fb1O^}>f7 zEne~w);i<|$E&xE`N}X-6&+5iLKrK<*lfa2I^B%X?gJIHtlv9qw62=T;EoFF8HW$!jaDJiqJ@oZ zf0rGQO-GYMwW4j#3W;OT+=_L zsJUm=AYH>OZaw8N`!wZ_aJI1X!!EaPvezej`0kfoWV9Bh2M>j~}!bhr#Er zP8$(P^5(}@vC}iWER{FJ#UcCl><3)Lh;JK~A_d6b2`dH|H{Av4lr`Tq02rpQw*mbb zm`Js8V7(Yz>{1DUG-wF*QMia7eFPu$>({}U$T$pyKr=|Lp404NkO#S?CIql--)crE0{SGdgj#w60O8&9}sM^+&-q4#|B$N;d|I+jmHMgat zm_@5)YJ|c+d*gM#SJtU(d@v$GKqL@i){YbwH|-6ND}UpA&@$*ZW9J zAnqnUCQ_PCvMN+7`hwDm{n+K~lowhptb+#>$t{kP<|AWmo+v8^`oDeTR+h#co}0u0 z@$ap_d=c<{jy$|3Wh&sam-90%qI9WaHb{$!pE_CHvomP@&%F!J{>=Ug#@tC6PX=;lXWvp+hp{v?l3Jr4^$pNWBedsX>iZZ)*SzRC+vZ%clSU&lZ~y=ORB z*5krwfp$m#YD%-a8?wipWvC;#NI_Y{iE;I)OAT;r=P}h^NX(J`P?!uRzEF<`f>;b_ zKCzo%hD=Y$6>s%$FHKq{cWY@c_}aBUb+_jUQ$J(wTdaN4;j0{5XXq8vwpD-+zE@^N;_KrIR{;-LuvIyb|9kb}Q>e7z)rd+IZf= znfQ0_)VW6LHo-AM>gMlll1n0F^P{P)OWX*VF4V!>ad?ez;j1PtqV5<$;EQ~GH48hr zD(2r`-DfM`%$zFMscc$_fu5(dJ-A(-TOC}PKF_G7ShThf?_W{n*~j)9A4~=KfhCNJ z^vR(&H#{jRu`)EFi8=f|D(XA-C$Ou+j^N-R9P}{qXJaHLc1XdJXn1q@;TA6v#uncJ zYfXJigG8oE-Q+Anwa7erMQ?r>rn{dJxyTj!;MVu8IPDp)D>8>})zKf$*EM(C`T!cl3UHvs(%RO*of}=cKjk zi$I~w*6)gNH5dnEVko~!wkfEG$3jU(zqyMFp$TaKO4z+Vl}iaT2`-^5k8W_(pY#A z3fWuGCD@V_wwVz5@9rN1;Jy@2f|x>bg%FB1!ExCL+Kb+V2>0UbGzwtCeH{a>Sn~6L zs7u^D&|eWmc~EGZEdBBu*a2(ZjfV;X$6O|(8hf=sLQZ8*g6qC5!z3LSkBhWrX zy@fY|2t6VeO!L?+0%KkuT1cc><867wm+7TxKV2aWMzY5;jt2uLGnD9$Pfj%O>0C%* z!HzL8G50+Q)yDR@6?(l4y+|*{1hAC7&z0OHaGzshEG*?=Tt}2yTP4hU_s*JujWfOj zPl7~jVpAOXJ}%Xp3t@3}LaAN9WD7d{1ewl}RK@o#r%DHGH+7cbDTo~zGe=FIfbz3m zt_D~>qcYj-=R~B(iNl|yMWhwPYd4B#9XaC|IKDQu>6FC4ETI1i!R^rwWZ_yu|c!pf< zt4!O38@4y}PZ|5>QL0(^Ku)TKVS2{NKjkZS*s3FPaBGe+xw*o?DRT$QdQhEhY*-^k zK3Ef^(@CprMonVgMK2x{2Fzt&>WN*w1(07N8gq0DLqMI~;L z_8x-V1`cJji^?6<)v?MG$2a^netaJ`BjI+cG%Qj5p#~dyV`|OwH53!XC74R(<_*Ad zM%OYZmiQ(Y83kutIqQP@N+z_J*DI>L+3}VI;ofwJ#u`S+JDf6CFA3X)oManzxM#+F zCLlz|sMm459Fk1&fw18yVI-D8Vr3MZ@a5IAL*}5GX^FdZv;6&<(Vms!m3Z6o^1&v+ z$wd++n^5wY7kmaG76sy1_XsU_#wxB$EDbGT7pr*bkS&J zGC~slUlz22_Ey7s9dtJwT;>xmTmwtOvNx? z77l$=1i@Hb1I`DA@{K?mR7w46-ghpfjlDr)dHanow*&+>yxH0}O}zF#eh5Ft+hT}W zLQ!?~L{-w#fBr`OgqnN0_Tbn`w#~EhUA1DF(Ny5h`3I}w7qaFwZVrof`Y{$WK4|Kf z)|@NnPRX3o1M1?x_J17t4x5A!0>87OsnppWy8GfvkGXT2s@KAJkx1~Nm{nEzV(D~~ z;Zro$1c$ZNrj{W9GMw-%73&`wESzJ&vIHN%Rtl4eL-jbzUb!|6F_apWH~{{PHm4vbsR~Fvm`qFmKyw)*7dkvW#s`zdb!Ttak`5I=1TR>u;~N zU-@5=e1%!8ysPVI0iV5|o?QezpS`WrdJdd%rD!w>8pX~lfs5~U2*rzsH(vbSK5?op z5|xmCwY_@A2$I6Kws&%xKD^b_J#g8LQ?wYCHK((T7ud^yhD2a$$W34cNm7aXApa1f zRv(a;FJ>MV$hWGKbY$W`~SgAjT5v&&}167muGn3(oPj>Q*Lk_pl z2fKwrPsn3Fk022{Joj05^^VbET&RltV3qtmfTf6naLA*iSJ&A+9JcUvkT|Z~e}Iuz zxk2wNoyJn@#Srpe8x})7y7;)Pzy*3UKA+X4Q2n1TZR3b0n!7!(}F5_GwE3TKO~e z@vidMx%xg#=04xy4g%AtTU%BnX+ZYGZZJ<2`*T-XFaCvvKRs968RggR`@oQnUve_) zxQ)k-)jWZ8T!=QjBvPq{Hz(}5Di^>6T9w7MB`a>iL;}R$SM2k{);87k+SVt_3dw)I z(u{Ne221_eyoMQHVVA+WL{Vl59mHApV&?Pv*K0PmS;rPz9s`R~Q$hx%5p(t|qmlD^ zd`^e+_xZCJ!V})dN}eEqq*hJovTg}xishID+fLH1heaWgHP)d8K_!<|y~34Yg392? zw|<*8)fT@fAX%bsc~Tq?jJK=>chy7D7I2i)cXtj9o9DM)n%RDe=Fh}t_(TQI1yepUcUCc)gDk8M38|o4+t(R8c z+^t%Q+0imJrk9s zrM(mU-PNsiz1lA8bDtCe`^Z*Wof><4KelO)oG)xV_v4ca1!l1YJyepOo;9{M_uKd< zFR(hSt!+HG9iNLOG6HHjBm9?VlMJM<%gBQ^h%-bF4DKIbo#|IlmqJ`CmBOkLj$zK`aBI zCxp}{WJ-CrZCbi1loxOPvk`@Eq6t^ZtXhy7SGYrDtm^>_d@hlqZx{8o`;lmfQ5A!@*tD zQ~kp8y++V^r=8=2(Ld%VWi20%G~iT*64?K!Q*`?;%0k^dXJ#y8OwOpAN*R25y$()_ z-m!#sb&7(s3(ej~(UsykZS-7B)Q_-bkvCJN+^{DwJ2g&upy1-OF$umM#c^j7JujFr zx^<~0&9-BbLJH!0=Kq^eGRvyO*7MB$7%u)0az$W&hjM$P;~e_ixi{m4bTd8jjXzqi z=Qf+X^WO~{xorB^11uhz*vX|OmsD+oJ(X8O`5zS%!Ty#}@bYP8-sHe%HK}qILPwH@ zRSm+J>4N6ID+9we4)HLoim)*gxhzY-HGx1&PkjHMliP#aM|%e+H|V3shlmJTJqhDI zn@Tvvw06R9oystntu8eX1AT<)X)x5YT;7g~c1qmG3(aB`i7;9NhXE$`TJy|?jwE#2 zV9_1A3tsyQ12>@e7f?nzx#T(dK}7GKgn7Dg6qeH=CIhRX;cNUC_3X1A@1(&)Tsq`n z%1w+O@94L?DX=|738}%wD!k?madZRaH!1IG{3R1HJ^XucF4Tm3cW#U)^n2B4Uk3op z_$|>O(KM1Ht%;GJ5S1v7p%F1YAzFHDBnxxCKW+OU*Q_O0&`)elR@Z}WqG#yzBh%R} zy_C9C@zPGab-uYd6#N4DuG856`w_d;{&GoGWO(^o3`MtZ?ts`xBk*;O>-l5l!ReN(ww+8Dzup+R+{F$i)!7)jdK%Sy@O*ymh$|DFy zT3Sn3TB8M4WH0SPN~eu3Fl<)c3ySYpMK&HJ4H>j?W^8);%@{I&d0!o!}A8IZQcRvVz zG=y$*IVbT->p4UBSn{6cG_}JT^pB^(+CgC^KvJ_fDkHtp-n!A(ekutC_^INxdm9U^ z9u}%=V8U=I9sXm0wL>+JURo#iMQxkeWncj-RFpAZ0VQzyL|S1i==JM!I)H`E?Xht7 zneFW$D6hJKEDR*FBS2sr_=ALic1qYQR^|+gwfh{KA&vOhzSh~rYcy&LpMl&jnp1_z zA_S*0_bvxBxN^N&-vJ*#T@K_ukNfIKt!i%U_dv(%9M3gs%91dke;gt;lHHtcG{HBu%WLDQN>HZ;Jnq3y?-=djCw&+qeA4ylent zow_%LNn?g$DIj;eSPGu7R%-@@%w01!SEgmmWHQMyu^;kYX^=zNiIe|4p{Ohq;*r4MM=$P4ltXgV3NW(Y=ZC z*Or(`%o>I|Ppq4izAHS-is@3sU%x}!It2|CU;ZgDaWxnSSG@+cxy7Z!!b@F`wq=Vc zY~mAOw#{DHhDIPOro1!Ff1n0;DX@;?VBTfUH4iIcoLe}}7a}3gE>-jPKBo`vnv?U@ z8QfggIs^|}l{o0=Bf7v)cj4@A;|(GbqxRntIfW@^oVl*hM?7)?xA={R6HyD>`jNYy zJ0o5`zWVuL=Q%~WA7@z7RJm!YwJTDTnPvEvc&5eU14R}f{RZkiXMWgE3EnkoQ9muq zD2*V?-jR$mb4Uq_P|0J8tA@|y0yJaKNwj=8ZX_9j;avTZ-*a;Vz)+_7tNTht(Y?7t z&88Kq?5FoC)qIC{La;s%vhvjFt)34Z2|#xEQ`%`wXqQQfj;S6=5Q=N7qTlv9{kK#^ zou;I>E%NLm>u+k6L<#C772hh{3+}R&qfWnwYD*|ZU>6G&Fz8kN^&sf}qyKJYP)uAL zTF>2@6OJ_6>wUr-MbA^NQ}2z6Fh(_xIHpD#od##4-K&~7QgGkMRWLKH4yn(^dbFIN zS3`2Sic4MZ)a^X}ih;rNtTenYU$vx|lo!#*o z(dEDt>vjytHYjspyPiK@C>|omsXePgD^%9{s)GQ5Dx@n$yr*3GfG<_AtR{`^C97x@>lbAd!@Yu8sfD0RJq}nu z(AA^wpBcpz3Q}>R@yPZQRS!lx2d;Ef3X!y}jSN+}D(lsZD(lR-Fm13(V}J2DnT4r0 z4eNo2P>#skr&yiP$q#{;iK$sdRl8M`0eW;;x>fH!i&6fOp^TG8j>0Nq9$huqtqOw2 z|12fVY^Qf<)Szo?vXOu19xo7YV(ZecJs7&Py5x4>qlz1*5?qbulcb4D*K-E_Xqx)f z7R#7Im9{Bmq`yF~eN$g>1a}%c5-bnNqqy1-xdf~{X&QGrBZlrIaqTBbxP*Zk^IuTk zmdf*}Ce834g<&wsShL-N06*b*D%%^chC+>D`|tHvxS*rYU#X)9^foF$!GNj76(JM$ z9Cl(=A|-4s%^5qCs(Apw0K{Jkc%L@!hpX3L$=3UwC#!*5*Qg`fqRi$gI0tn4?fZOc zNG%9gIwb5>fY&i^^D$0{n`D7d*{tU4Mgb%0*ZYAl_sOCUIIkgZ=Vuq!I0>%b?!J?J z4Ejyb^X&C-_gbf1;X#M?vF>>||Ha_=OsP~U)n+Y54?Fq^9`=_9{ z-U0o^w(haLJ#y)aPXiz3^>1%)Y2dbBn6-a_nwJ!N(!TQ_96{=siT^{ItvOok6Av!ZbbW*0H4Eawy`X}h%zS~>gRwu`E&*%+WWj$Tpou`eb^|e&# zObJ-7ne|Ys{U{0rMO5(oLe~&(Ny`4rZ3WBiPkt>1>&2Z zt2{j4LP*&Dh|WsyMXL5)+R%#U zu&UY8j`0zbHu#%6e}0x(L1&+u-G796;Ksft+45zVd`o1%-DOM8Q`b#4vUZ3AZ+3+x!uJ!#bk12!w@}+&f$2UB76aLR1lz%tz z{!tC4rpkvbl(1>B+3l9%Bx?)?RZSo)&MO<|i!)b3KKH2no_mba)sf{CE~(5hL@oWG zRv05e5DeyI!fAscFV|~8eIEQc^dpEPOKwi!nQA;fe|Kp#+P-tU+29HK{oViV>Q3N& zSYZFNf^U)!?cTKiwU(C*;7#I|`g@5b*>bLOl(2j**N8=aq744ex3KUyBJdHoe^SA~ zKlqiejtYr{%WWU?;3gsV%Nn|}TpFe+i74v5P zAJ@?H#X+2Qu4}+*4S}%~L;*#HiG2>W@rKPKkAUCjEbxc8nje9hfE@Qz&wO)q9v`BM#Xse^VAuTNC5^0S$z3S2ooXmr_RN}<;Y}t}eq`O!pZhk57@uEc==A<@ORyJ+&AZ6YxuvL zr%1(=A0|42BBVLsx#m~0`VpyOy?3Rel@rpr%+*P%YOnmVcj6JGsS}0y6CfuDoO{k2 z;H=q}Pctle-QJvqL2&#B>d77(h0B(U6;)xY_(|kq=@f_jLRm$=;4<+ z3g@MtG;zEp29U}jhftaKPO$&i8%eNW!A2dGL_W#o=o7o0`!&xK$hJRT6=?2=afEJT z?LQW_k8M)fH81G$^TBMcVl?R_*l@5r9Umy>^7M~>-IB4D{3zUUyfnQ^^1805 zoKaH13t+NJpaf=&Zkp~M;^o~^|E7Ey$GvL{@%RtI1B$5MM4BP0b6Gn)oV>-5#tBV1 z5B-%5(LW$nChMEnzR5e|f5j=#Pot1VGOr^3dV#J^T>Ii%jX6P+t)NLRpH}HAq;yzQ zQcsA}e3Rz1%JX270nZQ!gP(5wK1vC-sz2 zp^W~9v|=#|8K3aD|AOBCcYTNWgyDMZXf2ZxZ&n-{OB2r6{De4FkXi$eu9Z89`evJ>h9vJ9j$-!6b}V;-`(y#{t?unwov@~c?0MvEcK-a$`|kauF-+k6vO?ZBMqRrT zz4oo{BRgA^HYz6V;u4p_+dv6SxB%j5ncE_cz@?SmVfqTmQetAoF@Qr-RqA~g%`g56FiHdXrhRI5*1bYE25dN*okR;q^ioX28)!5V ziY}@SPxEktm;2_P=Q9eP*#z+uSjJ@$7g9Qo_|MLe!kF z6HS=58wg0eYhDqmP}aamIEut6cSkg+wf5w(KUb(XzVSz?YJX8tLBbC2e};3oADO1d z*KXcG_Nt&rlD6qoMp%yf}7Q*x<&0;AZ@aELW6pNIJvW_gZpFaYPwgwnXmLV!v=oisWs7O?KO z%$9rM9`}ekzN%rtPUd&9tN;xPffVMtBiD#@=8kHbO3cw~Mrd(MrO z{uD@x0`*O)9gezWnozXkw?#3c4^hbo?(}ec4tVR|xW`*-dZ*Jr(q%3&q)FraCvxyS z@643&NNF?hnH4OyY0W87p?K)=%==bMro!tTRnlRS-|{J1p`04V)kVZubm4y z{-gZ2=8rD{ALk!Em*f)P31^mU8D1b##vdZm{g{j3O&i@#!4qyWq*IvuIr1^h7SL;V z{RdWIQqTK7T4cEjsR40qGCH-wF7@f5b_cOD?e@sBlLjGq>7bc69mflui*}64=xU(Q zc^4GbRnp*DBQH-Uzqa-(NQ8Q{7)*5ZC$m}hfEthmqDY9uZ~!P{V_R1kxHGRM|9$2N zRp4%h6~=F%^?Z%XbDw++cQwAYxuapigk|scXxhYcj8#DZ2w>nH9=yj7(e?kmwqmUz zfH8MRq-Ie|-C9PamuJ3=mgA`^c8p|;kQ%Rw1WM6P2G2zga zmoX(ZAc&!6|~RKfJh{s+ z$o<&k8D&H;Ls?m>rju@|n6c`LxO3$ZeLff_YgtHAQvh_6xy$L*RjYzM(sdF(Zh{^E zQ%C}v@T5t{@beT@@2U!>m{4ANNa3Lam`4>^{h@E4YcL~;3TdlN>=dOUhGdc@Y?wLJ zZ5%_nskM84<;xeJ+tY7Av0A!rg#iayNVIU-qGwQ?f~#|fE0lLc^k?)A^|~#@!P`3; z#~&E5JD(?pB$NpLk4`u|OND3UW0p|nKM%LZN!Cugs{dTsn)cTF6+m_CbnAFio*jN2PfczsP=BD=;qWK7Se1QgcwL`>bbTyOBO9iv*o6K8uJhm!vdb3 zLsEXpkVHzuM=CM_FZeFOx*oCD26APSzZBsOE@t+J?mZe=9T z&yN;t*(o$5)8l{i`$P@CgcX)v4Bmud&x%J7QH?nY{oot2%T}~vFz^ZXf2sdqU$@8) zZHuqR?5hWPS5CA3ymb9uu1Eu&nT5);se}_$i-!_cLxjxjTQz=IZaj9Q#6qP}&XWM~eD}5+W%BBeSXT^rV?pU#Ith)p2v4O1 zuowlIE4d^7H=v~x1XD5@GU*YqD$jrA1WVzV!&KLV(`dI?5_c0JoNv~AI#x$FD4YgH z5&!J=h`PQhF!G2MjjRU+81zL-Em0f1-R>BAg9FHCPg`_Eg(NFK^??g{!IE^LhCtUA zbeGj{?%!!3LPEk@`}f)Wegp9B`<`624_2bUzKmOb?6HU8&+4lGNg{f_GfAM}S^etr zt#BK_G^|!z+t?EPA|wu7jkM8c%0j5x8<1)rLl3zovlhXd64|IOqy&N?ybx^cO)iLq zvtB4Ov~!>9BW+K`bf zG6u*ZH>BF}N%b<;%TA764af}%+Mps*Uv|74bg{iWf7N4H_e;PriKu@9Sb5x7aReC4 zw5F~up60QSXU@J$FNstqawjH1>iF4OIUtD8g&qF>(X!j=izRyU$Qxh%%aNV!uBoYM zXzm>jkZ!a+*ZatTLl)XIg@4T+0Xtubs@imN1;)oE&%U-bNO<>!Kkw=@dzNPLwr{ZX zv+WF>{cjo=(ra7a$Mty+Z?-YsU)kcS?v6$ z5mIcSG!v9CGTAhh6DZm(aA{w>kLvXRLopF;&!pb*`<5vKUhe;Lt6^l4np%xrwFf@4 zn)6s>UJX1IW#Zlh-PW6)5VrLqy4y^diV7NQ=}D`7jX4_A3-ysHBF@SUtP~Fi_AqtX(|Ory{+T*(s>TAE5S~44-294 z2y=YRqo$5UK@q42q9i^k%B)%r6w;C{$1@wT*H^l8?tFGn8ooS9$M?H4O1kQ=5Da#R z7{NcndRjPT=@d*>Xhb#cS;#~Y74AlabR((>$LsNhz-)6npGhu`whyH(9=LW!f;Tx*5~d?{)Ze z#O(~&=L%B|fW{GLF4=?jPKui~Z`YDRPyz;&KG8s}6US`Nl>c8ec=!{C)H*?5B@x;V zsJ?{;!po&9MPZMj(M-E?8huv#lN3pgmZzL6!h1`h}4Z?0-j-wE`5$?0`;Hva43 z?fugCBEZZ0A3Z-?JG<_9>~RHj(No{Xd;!L?vS;DaX8~tTeS$b4qEcX?p}Y zOdrr*j4mw6J3oxe%F4*1{k=G~yR4r|Vf$hpHi}mQ;o5g6b4-)fS|j>^T1AA;0F6HI-MvrU0f|a7CJz@oI9yiFfPX zt5=^Qc)0pkkBbri+Ta^_)Y~yjD`UV}dNd>Nm|z7pv_CS>ki0$_=|krH?@lj9wuU^V z;T%#%#|fm)>8Zj_^)z9-h*&spYFH?zo2E(7BCRP~y9i*Xqj$MU9sQLen5w7=WnY@4 z?v)}Yzbod^2lh&f89V0AHH-MBhed*f30$*49OKzbM)Ac6ovAY0UT^&wwGXZv|9Sc&gOVr?XZKEs)UHD_WC(OOgp*} zy>KO^`aj4@Qgd5HrT4rgV4y2ZDzv8Nm~HG_vXPBl+vC2FCE0n7gj!+<&kkW`>4Ag;A*9eTr!`sVeJwc@rL zs-$JHNns=Sw#bjZEp(hu9nau}n6Enhk75DZK$sIdo0ZEMTg znu3yWuy+745|$LktVyflBk#VxIc6cRtAZb?a6!osu3T0r+m}yMO{bScOKJklVLfyW zV@!D(2m(D7FR=btPksYnfe%>uT%OTVPKKLeB7T8p`@H|VoW^mF&`{^X>y5aA_@7p* z5t70&gDgoRkt3U+Q|v7`gp)=LL&eUMxbl+BsR6a-(Il8(Bo7QMB&MYciz$!3U=%-% zjcWC+m6_olbunp7*r>?e9tizmWiF7pD6D8FDM?S}jmKx7x)(cHNIol5>#4cs#f3)LqPo$sf;Ob? z7GBLxlfCiIO1L7YQCANSbBUXAstPR4gZvZNbaoam*nnYQyiR9amP$!qqVIXrzgy4? zS7eg^{KfNaDRGc)7Gc;hjT@oWMb#nXU@J9QUA|z>QiZ>)EV!^dyM*np#>XbHO6rShEt{iaj`~ zj>Zc-_ccttxxH5`hg?&~ca9H7;vk$5E#EI9b(9c6DYt%v!KG1q=Tm9^q}5eiZ>=-o zIgU&zc0v$vT|WMlz4i0U+UNWB0mH+C-af89-cQyN2v_X`kMhP0eb?FjQq}8+56Ja5 zrwaaQ7q#?&qnKBJ@!|#j?Jwhe;!HxPw+$@H8}wS=pZk-`-++dpAO2ik=8T6TG5vLA zEDx^t$Dkd~j}P9hN1Ow{zzKVHeb?b<+1tMmFMM5B?&k#Y@2|tJzgG_)rgw$Lo^T5D z$Oq~f7zKD%(O53~r_Af$w~LJ*{rc7(*;9oOtk0)#xyDEXmb7)_=YWcPcrxN4G=hD; zoGvOev{w~U-8zXJ4!xrfzZOuQZS*N%l)pZO5+#M98TVpO-BG&+F5s7<45h_ct* z=4EUgyZ&{kui>%b z&ZpWnfQFx%8RLK@o=np8wd<=G0lDPO-ka|H%}wYEel>d+6_BHsEEJF%;i_ZN>8VX! zQJUf#gSeDaz*$AIlea^YJ<~}&RA!g?eK-piAub#ACaI_4u-0s)m59l1$`eHKAHy^6pcyiZ+W)`PrTv$qfu52N;;{u}y;y#BcBUHrL$4tN6 z>B@WPwI(Y!v~)xyMZLX=T-w+rjjYc^l%d15;D6=C>bPqglbW$zF~)^?#26q8!8c^d zRZgKW0(HHJV`< z?!5nP2SkBT@w`r9tq<(Cl7$QZ-xr|Hpx-S&G7w-MGt2XRV!;0QWOF(GQ7YruinWA( zzxIz;DZyPN=JUQ#KJnA_2FI-V-f1#x99)fUGk<4keZc?Hf4||p5)R$*#(n)hHZ?T` z?@M!q+#{{dgdZDmkkLeEZdAT)hf|ue{A@kz!CObr`P_U#WWu7=ZMot$>)=lMHZ3n1 z3Tpmxr8C+qNo@`zs7~wHj}!uGzTx7Dv~SgBc>E@1WMYZKN%Pv z!ocvO_Govv;7qB*doB-b=jfR?Z^Alfq%_mU=jA7n4==>@C0o5(EY0-r-?nVwvoH6v zSI_`^!C7x4{UFn^1S^c z*k~uslz3z;Em=NYxO!wBbMWw(aN+5_`bS9d&;B7R1Vl$i$CN2+(W(t2B$z}FlmP3l zPHb%5sGD$pc7Lpsv<>_R`0}~Ix8N$NH^2U~{?8#sk|3BvPrv!rNBvy@7>OA_;M8mW zm1(lnHQ+{)GOE2t!lXInBAcj#Dw?ccKkY!!okxZ!mRMZvErbi}kvF3Ki|1G2nr`9x zJs!$cfvv1QQVsP$Q2Ew@RE|;1`5x^Q6y)nWm~j74c*H`NR51oE*TvNk#a?pOF3-6F z`LFAsUDi@!n!Y7>xessgP3!C`v(Y4w(N5jkV(4)D7%^p74S;j(ycIE zo9&~Py3OlF#|u(LHo&$szJ+YZBHwQiew*VJvVQ1EUXHaxugusp47j9{O)C2H#+m^J zfY%Ue_A+4y z8*13gHk)+;+=P<3Q`Jox|7*z)BR!Iqu>~7Zy8G{!d4455)F4r%;0ISgax`75lZ|T~ zSp+BD`4(GFE!B1qbYVX7bHS#|(9>+`&U-B_s)<~R^-|W2Myr!|sryev<+P~F+-x5h z{RzM}MX4t}UKcyfXAt*hsp5qB}@}7b$0IWx2&16W}V;r5rhFr2J9lG z6bqU9gUQ1Q`MnV054p5B`G70;E%&aS7m_GapPg?~NqBhQy<(1zjxvY!_&n<;b#fUo z!$_7-f3k-oJI;HWYjKc$kxH6rI|cf+v;^zLsKqeFOtd(%4}-Ixs;3+qDRYH(w?>1A zGq`hBL?2E%z4Ij6H(?1TEBdd8m~y^$zyGMF1=p%a^Uj-(`*U8K-QKx1tj9_4wu;B=afHrbBR3?0uZJHyHq+EUXI(Aj zpG1BoRd)F{-rHoyxf=Q^9nGwcK%z@XlqMlxyKEDRB2E@ooIx%HfcXP=)VDdh>5|kF z&6qoP4IHHt-#mUZ-}aPjBjBQr9VT~FQ6Ve=0BWErzu&G(3Wc;(7Ai^UPi;s$t5C%`Bw^EVe?ihsJzW!qT!LSwO;|{# zUBv!~sy#T5%=^MvrB2njMA5?*_5FsKt0CpzokI2(=j9>xut?>S&D{Ej2>g(}xpMNk z{PJluAz_PqB$H3Y#vr8~`?E+NzRLWAVt5567F7cgqAWbVH4^k|%G#-r}U)V`% zt{x$Tc8jw~#!^zZR9Q1eny<8~oLjl1jttpK-TwA^GaeJ}pUCQ9E}y0>JkpR6=wyy; zv6nTjHnnV-J39jqe*(}bg+`*>9$+2Em0~r#HwaM)1Dx^&Q5u!=g;ddJy5xOHe~1VY z%3zf+NlU{MRH5yw`()hn=Dw<7h>;90KK1r;{TB17LEQVEBsR1%B@6JBN72mp*rL}9ZrKy3)^+jA$8!E<11GLoh zlpSbZFy zuz0ahR@tK}g7wew3jg+bOfKb8L#lc*4eV*6B@QroQKVMsU0ErF6q%M;OIEFB zD<-wMsUC8#O?1WUHcJ+45LGjk`(WU%6VOJipYP{)uVuH)YU=FdCTqHI^ZvV@ro3ds zQ9Zfbt$=U^ZyhSAx_Sp8Z4_MvFP?4)8!JAsFFYQrQN~T6Kn3HmWSnFH7S=qJRCC%p zlPlRVbf=lz>6mqCQTTO@_o*BO9vXoE9bZRiq@_^b{r~=E6L0!cgRS>6BQk@>y~69F z(b~OvLAcenY3RJS2RY*my%r`=;Ele7C9EN=OR_moPy0LnF+@-yErE#_j>Lfz&Y18i z%RFX#?AO@6BA?oWs$QyEYG$g4sM!p<`PP-hVY~JCWCSoQq2>&KE~$%_bsy#Bk2C3k zj<@g5Gsl@lyH^Bhn0hz#bX$QnPmq29)xtm#L@UE}ZS(Z5V@w`V;X$YaTbTCD-Z(Sw zT;XT{k@)p6t`Q83QcMP9Se5XaD{fk(e0%sqYpkDFR?+Uex6?H=ti8VFkWDRF_bcgr z0sQuC5x+MPluak3U1$8*wwg&QO$|Y?u_aR`T4?wJTiAlNh!FvP{Gx4bumrl(G28JJ zo~R#AZC3bJA@_Y7wx}I^iZq4KeKFB!Fd9Eqo*rO(1>oH1_5JV9eO`pPVa)fesXsmp zaq(qEB*xl6;%{Opc~`~fFN&H1p9^+|0*kjVi?%N!-9G=4j)x1#7>_9Kvy7@cpEzQf z0JG>&Qa4t37jt00!7^iY*%hqR6`sTEAXgmrR7SvRD!*qexihlML5DfgWB-WJlfg69 z;Y0kVt`oy`N&8oMMt+Qglu`qCh)TSDIaqJ%F}5xvh%0IkT}0{GpRwU#o0W6Cp-mmK zgOq3Xq5sjMvDv`$tAyiDCbtz?`gDYCrW1W0q6kq}nXy?HN`SF#YY?yy!)z~?BQ-nX z#R7h)a?9vr1lbSRRu4Z_kJARY9*kec?uXm97HzM6(b5_8hL)Bv_PNBH*GDFkA5kbm ztgWM;Ug~*21(2aYK@iB$s*O0tjMAnT(jal2KMJ2cWPB$@e za)#S*e0S!_V%&x4Y{?$ewr0Df`hJN}05I}|)MW|P^r>Oo(Ns_WkF0=fh zqqkt`JNiIVx7jCGbgOBdu4?5h;8tRD)R9iv@klWHIPlm&odrt_ zy^0R@?v1gZz-I?%BteoJ9hJKxaT!I*QW{Q4s)(Vys}8W&@wN*x)l$SX-MLz{i!Zf< z-S|G}Nbu8&y)Y|@-Ca5N_iV@Enk08xJR_qWXz`X8t<6?MZ6)xaqb~YKW5n$2Y#?kR zU>BlZO>t@6ydHAEwcy%opOHjteOtw5OIH3obv5qDo51tOldx->LAn&9Y5mW{&-E{` zVvzBL_W%SAeL#>^cZ17My6R6EOciFgL51n6%4r2O?lW`Y*AjN93DH8cn!Len-FNc*AT#-&;Rjn zzF3z50LYB|{0P6v=L`Tg!DkQ86TW!HT#oxNewQi&;jHF!yIbdA&^SSM_Ltq9Vof^K z6tOMu`CbPbc;s{(fN6}8r3|Kx)^IrcN!|0Xs`JwI_aZpG^k)P}?7pm@>Q0-z+^(m8VvjWm! zVTEtHqL>nT2;@GM_(-65b+FH>807(y(>SgO!RWqufRURUeylh$&{E8Vg6xR-@X2pr z)ZG|YEP^cV+4c~PB@N_v9V`&?@hsC%ho1rUM!c8b|NgOOZSX>aAG-+_mI!3FDGjGU z5p??%@67PN(EIjxv!kVf$)%eLY0(m`4y5bx!W(cy`&_$v(OkuZl;fPkZXVanVL>gGr^lE5j~83QMA7PQJ!)0Yi!*ns&&;&NKd9 zsLI{=XCgs<4~R)#t8ha$tD7q>an@|{{9)nz0q!_i+1k>k?wk}w#Ky)Zf=w^$J46sy z6|_Oj+f7Fu@^n)}VJjDRPie`?R)!9|cd)VjI5x?%}|BL1af zNj~@Bh6Tz}LeFvY;RTIJd68 zfdQZLKIM-aLWhDU+nSH@zB($?(c*=5q>M;|%Mu42U{t&VtZrj-zr!ox|&hQ2GPgKEFTY%`D`e88+6f{feL? zwQSYGt>6q>)t1&)6H$??qR_81xaRZT;UsRI_3n%?${Z#WHgwIEm&FFEi=5EBb@7)B zMc3M$s$gn}bIuyDtXTK*=*Ah6nb{PV!wJ*IHpH>|^X)}|bZL-NC(5|v^@eqQpmQ7= z5Mi3Sx;Yh*J(d}Oh=7UybN>6!a-&RaeXctwmQ0k}PF|aFIAaumH6KkJme@68(bO{- z2J=61VLm&k8P z>DUX}*tb!df4)4>>F&RHb_BJM!|ouTFNwNf`~OOhxjMSYzIxLd(UFuC>@Ahb?6($= z#|<{wR-9eysm+ds`=2=aylj3%0ZvTgjm6^*Ck4^|FY#**A8(J4LTF%p?*p%Tqxl6_ zXrk9WqTnJcMOCb7+G@>?1$X4_S$xKLW0-D)TRRB~n|ehxthfUN)^MW++n2JssvQI% z)_{{CNF}p?d|6s*k<8SDGr=0pG!+^5HCPgy{J5?#!LHHGzLYSld3Z0&oskX>Rps(h zcqf&aBT7Vq0_)PTDbg2#JtK+`I(1RI>W1%l3+Wd3(~GEtdsA>m=%$4$RfX%66|bE~S}R~wNg;&vAh08)By|(zmvhD43_zpprfTS;hY3vH zsaRE7W+4nW?DTldu*&6sQeLJ_jnY&k0Wf#*ViGIV11{|GRJqhc^KeWf(iBlM(l0RovDMAKPS-`pA}A3$2t z!ybQT_L)`#yRmUdv2u0KlQ}Kjx22o!DYwmn|0^6i?hjn;eoCpmfV#>FZJw!2j5wmH zgCQ$q4Qu_K*7(W>*{@191JT?=xYy9A(X6>8NJX0}wa=ilOP`eX{sEEJ1y@iv7B z9CfvHMao=2UF-E^E3OA&JIika=k@(@$=?+AMTnk3!0{%Z&mXJH5Z=Dy=e>KiPQ{k> z$p^gC7re5f=5shM5Y_(M>$3zZkx=)xc(4BW%nXW`J{ow3KmJw~Z`SPdx45qot;(a% z8$7FPYXin{o$H+`piAhk-uIoh*-c4X>BVr%tgCwv<(Q^$M~4S2pxP7In>w0aaQT|I zHe6Z#xEH%-AkxhJI_NVW|BmT*)c;1Hj-x-`?f+V?v?@$z4@cFB$}`L0cW}B6+Ozsn;8oX`?l?jjf^0}j0W0lHPc|1+4i{N z6w$i2FBMb65is6lVS?fm#;`@1s6m9Oejc;Aw7*l4xTz_X$dB&1GubGEZ*paAO+>Kg zIx7HMi_IXqII`Xrg+fKa?rrRm94ka>_EA?o2+(1%etocWoPPZ`Nurg6Nzq@AzCv(^ zE*dOyBoa!}owE9j)X~W`TURioBnMU@Jh`aawX1P7g;y^Nu3rJ4iIM91J|34ZdTUB_ z*oBt(XAfN+??&vNVMYbI49MRWl<*+g%7OJ*w^0XKbFXAY*gN%8MTwp*ZEX?!cM2`A z$zeu|?TKfT@7>NfouLTgZsCSO$}IyD1Fzn^iKNWjTruDV#T2{dMO(LVGx2)z3u1m0@Q)g)G{23mNDA1JoXBF*r zHVI9(+Kha<(J3S;Az=G)F!0CdCnx@O4+lpz)=wQi;<#N;KFzjZ;l_x8#|EvS(U_s{MLPX1=`fi#&lo#A&`D7%v;|_-S5$Gc;<%12 z*furwwnaf>6ADCuWi$wCumrx<9s)5+F04#+pP3IT>I_12=>x~#4z^Hta}I#K1Rof7 z?~mXAFS|c7H5H5Z;irnGzJ8v?PH8EHZm$rJ5XMiH@xCzT z`aIzZez)Hi8D&ta?3Y?c8pqCFBL4xBLXC^6BX5_twqx zN4jZ)&!9;Cx97%UX zm=VIx zIj#z5^v#Q#0tuq7i3@`66NE}bpA(=6!da*y6!)nJ@zN2iH7;8J>-ZkK=J@>XJ$TTu zW6Ts$AShJ7Io4d?6X6|C6kK%{K}N)Jce8LhoWXa?z!evLXWtvjIo}_LT&h#3rh-JbR1j$X$@&D4;2HqD#9&$YS$gZ+*V-}v1~_pd{b^Yk`+%anwkhrLwCcU1DJj+Un^4EjAW4V|bI zmx1B!3VgblVo$f}{W0J?Z`4?E=|v&+5FpFvT)TXjG7~1Ts7>VW zSyLxjVU?oiGx#}SNqfcAMCGx%KhMIfuBITI9R$iIREJ+-pKd? zi9y!`IrV|Et^%*e(G#8GTXgA>sm;$gLpxJM+S##B#KD_`+~Y%`?Kkh=_+zHi8HQ#} zjMjne4-T_*#~6uoop@J$up;N~e00;kKi1ywF5BZ_MMJ4lRgntQ;d*z_S73e?4mK?A zfH-*)fjtPyhZNLiOO`xYuzZT}5Q9lBJqbOrF7sJ5VS*SP9?50A6pzv%U59AFV`3%o ztjrCXl;G!1{MknY8~Ms`35E!msLW)tvhJ3@#g?Vl;TLbhByz993x$fpsgDV&*cvN4 zJH^=$P$AoF{w}jv^uZWJ41(CU(*XIb7l^9cSQ?58})lwfH@8vFX1xho{c)>DI!GwNAVs)vG_5 zG;_Cb&@5m==RnI;XLme4bt~!_3=XBzdc3{D_Po5mFtdIS$1&iGmt}}{&*hIK3kN%1 zwl<%%dS7?hiW)`a5s^l?Si}TMkQ_VnNVmmV(L$(j4+YK(emGZ*Fz>s4jurph*M)Fs z&g6T>*B}c&-+NDBb%8Kz22J!anLi-lb7a5w0*ML13`XG8*)4-xX*Bvp>C=xq5Ktu= zfd_5OT$OGxyrR*EOn7hj9b0wG(Dd#^3{svTQ-Tp;(SqaVCjJ9P-{Z!Vj*)(Egzu5~ z{BSTM%&Il$Y{P3O>w^Od>{D>~4cLUK#eux~9-64rhmc^PJ>L_~k-*5z%c-wVW-L^sxx)7lVg?DL-}F8%-2_Zel8BH^fed*MWVWD~>-A4?S9M60;1+c%4( zI(zg$FwjEu=;B)R#V#VssuQ(IXP+lYl;ywXy5z7J6~7(&Id*rNA@zi_KftwR&&H5e zmINtZD^RyOo$XaLej;l!d4jazyh-#get(?bM4Oo4%xeN(f@Ubm0l|nKUj@-7691MHI)&iDAPWFr;C82rltb^P-e`AOqc? z4uc-N^zNriz`U6Zbn*7(>eTlL3mn-aqQ$<~$S%aB1=8Bh3_g6FwBz&6#i4l}0GN{ZyQ9)pq6>nY|(G>4HtdA{; zqou0D=$&_?v#hocJsJz{5jc*ZKi~_Ne>&!}aJS}iJw$jv{ce6e*^*# zFDSi^j;xsW`z3N4=hmdfvXAJ0Ta!tpf^-qG~J`l82`Gbo)`-?O3WSDGDQZZ*H!EHPD5pD_F=BV^9pQxhX)RqgV;2?lM zM&0Y(QxM|f1QOT1gg*7*R9pRoBCM>e9{Z8sL|L!CLyE@fu8DQ(isObA#RlmP!$X7$ z3uX8z&I^cJUk_LaT6u9p!fY@xaEp)gjqX^onr}vyAzae zX&zxG8>Z$9sYCJLMf|7 z2^tUqL4~7!6|=kqO|il^c6cDR83k4&;eS!9zz?sqHp~h>{YQ2U9Vgx#41M<|wwJli zT~k*(g!~CprWwNgm+n;nNtkgJfMvDDVnd*=9th4jHW(J=FgLWE2C|0L+Tle&J_$t- zN1=}el+pa^c%?l4^tI4#-{1SusORw)W?CA<{tX#-#=m7QpM7$_$M|=oMxsCo^p2rH z`p;2SLyz8uyg^k^j(GHvRGhvZJ@=3j8dA%&3coC6Q#>TX|&asEJ9mZ~&`Ay+vV= zY(+-txnj%9h`@xxA?HlE>c8OPuUbBpRlQ58p_WMsJG4%YNtX<%;gXm3NEZD;fLC%a zu}%=OMMW*9ap{h5FDHu>3Z6uQa|R_l*hKE4;h#N6HuM^Mlq{uxxnoS#!4~JWpE8y4iGTK;Up&27 z^q_|T#of~IJ z;9xu?4D-;haN|=he&gbednLt-Y7cevic(YnHv(C3T4A?p==yy@ElhttxUQ-} z4riIwRFwv+rmk-HY=g#TTGY)78?woPmHSs5^d_637NxdM>$p41VgE4oUo=PAQnYse zndJSs;jh~nesp1egqipD&w;QIa-4?TcrH4hLcFOe%Gr99-i{#tNT+tG36T%D>K!_9 z?-faM+_M0>?<1$8HyGF*%o5627^lO(qoM@fTPW8eOL>!tJYV z;!5%?lh<2<#Ip>x+r;*Z2d^T#q%9WY&>&(>mVc9G&Cq95xe}D# zlbwm@oJWnZWapy5VMi`RLp)1{mopjCuxJrsEy+ML(OP=DH7)9uBg|ddMYRU8qo{%h zM}mh_r8H{~V^0@o2|755zojSnx(I?L+GU*IO`dXV#b1Mbs(*21pxPkEK z__L_mdEuea$VK*rt0GeE;0qg-%noviMd`r0 zGm;QQsJK1uvB`cJy(N&H7V(G|MT$PT@IyL3Uhzy`PYg>&*j zyPcIPlpaX0RcRs(`Qr|3E%Px=B$UYO3@&HCCD-ImtTT~IL6B&re}jL_0|N||(j6OO zW{UsLG#6qM4FxChH}ZLkk8Yg=D~iXN=_98hP{bBJaIjtOUyvoCbSiwbVCK$~$ z+$1$qubfQ6(TPGN`+k$CJd?s8EB`wENN|$8W7Zt$)EV>dpQlT=9)OGA^eAr^^}PN3 zi3wyQ5GXNnZW3~3@~B_H@{gf2$z$|1ir#3XV@~xDlS-9_&Xp}YzdSQa%2F8>l5}Yj69_TL&|(9>QmyVh zs_ZDmOY-9q$7Dsy&6Hd*Ku&amDW(t(A12dbfy0UCpya{u_Ma(vy?~ZM=9c?U?_oic z1pL(H9uWHfq3J5aqHdx+%@V>A!ji&*uplihAl)q@NSD&x-QC^Y3JB6lw7d1UQnA+f zndA**ai^6vxFFx4SG$Fi=-rw&Rkn6jJCG@u|Zn^K!kLri#b0@CtiKbTa^^_=MZAY5 zZ}FK0r$imAvjJnVM?<{j2ND5~JPtiw>@8O@Y&t(TJk+{Z%p@=Q=hLZpx$#{{(Kzb5 zNwj*dE7uqqy842-uN*C%xMr26kv0jp5)rl=LsD0Ne}C+nlSbu-k9UNw@=VE7D{9|Z z+cx+|L~)WF2CN(2+EdCP@`^kO)hURlT|&N;D_S${yYt01_4I$HSbvl2w|HLL*cb|Q zjnRL-PKvQrlZ}0iHtxB6b)zO+=x)ggYJ@}RSef{v|A0^>*|rg*icMysa}yWDp<<(mJe$cA=Vd_(RJKOvtd}^WQs`dkA zBqr5VGupIaBNG#e_}(?wwZC$jcWcga$Qz$Jowf4Xjbuxq>Z~i}CTifWGalTYtuI8j z6&!MW-;FloUy-jPdDRrVYVBD4<@a(xDb3HR7RdTx`=!ygDeCmp<@?A;hA$lsPl!)S-ts;dF36&fVGxayd) z2ZjSYtmpwfImqu%i^c5UeW9)Y931;B%v(A814E1E-VR)i@2c+MRw~$uz2fKY2{a-7 zY3(vr9dbRpdng^?ASR{b-?#55T`SI0se)tAuq68&STMYjVbca{>t_i>S) z$r?G7eIu85Nqclz^YOIU1Q}`rlrrk3b@gx5We3PG)tLguklVajDxVhbn@y0k=6bfp ziWks~-gC@i0SCz- zPn4V>l9ympmc9UhVsY;Dr*J}yaUzeO#tYdhNszJuMm$fg<6s#k|56TT7su6!hoM&% z(5II&Z47WkQ;0*Zmyn1#sEvlToS!`s*zt>7xLg0tbcWOqi=`Hh1oQrYL1^W4+Cb*R zlxJC33Mf8xh~1vjX5$tGRce|L)wEscZG}dJ{kdP&GH45Ywi(v2xn$1w%>A^bh7Lnw z$;C*U_t%@6d@Vu9%cD=8>kV_={eqFzFV`zn5uFZ{4wUi=UtfvIQ;;>N3eIu#Ix?%b7joC65_sE4>ugFVly2SMwi9~D_-OHbfKXgre_i0n z$Dp1g{*{-Do=k)1kIt2)t{_msm~)e(G6gzYiznKvk~16eMOIj|JjeZ8+b>Mv__pTb zfsM6w=RYB^3%eU_9E6=80o$mDhxW-a1#deIMDn>Oyn5QHV<=wAR$7I*;p4|wo-BGe z6*}==UEANEj~e=*tWr8&myAv-=Xa2S*hE1=L6_$-TxY0F0tEJ# zB;f+HIgRce8q5X2+^F^b57@W3Qt}W?j^FA#8Hcw-`aTCbM_zhb${2p<@9#-@pFNXk zdK5^_`)qjST$!lzijetP8eq;*{M_SRKF}Ts_a2`zc^307u*Oepmup{^vkStRCd>7e z@hQXF5OyzkBGQJSOgTUxamW^~;W&JwDs;eKryU(_O0~j~@_B9_7@huOvsedF$xxA@ z#Ucx})#m^H5q zb=rvBXyaaW%k*`%1-Ub*{>>Qv<JLIq5t3nsR4m9nT^g}p*{TM;Bt z_IhuMXYih{{(kw>CyoGBwNXE61;YG9{aM~hb>~=-jKfkVvTn0IG7uRTY*zsv(;q>^ z2n6SDQgHa0hplb+nmeZBmZ)!b}PK*ksJW0oN@1a5gsj(v$j{sRNx7Vd_7?VOyP zkX3&7vzGS`+v88akB*v{nSn9kR6(VdS~>3{9CO7|iUcZ`1^xJ;1S|tU zm|0zmNV>SgZ;xweXvpH%0ihTPq_FgxNXpaomscO0Z9JA+WtLs$Uf4NDfjJv!?M<7L zzj9DMz9_(7MnIX0ubvy$tKn?w7Pk%sn^Gq3GbavExW*a{#7`V;y~j4TNJ+<)JsT%I z_T-eC&DCWTu)cQ~O+UPTV8HXJ$jVh!#PaX6)xSB3_>gS%* z7bvh{3^v5bty>Y3(L=ZY3E>0gaks_ul)1F5%t-r}zqo8ga-CX&w{@$s#~+I#X0)Blg zwk~g0Pf?smC~z-bUZSQmr~EYM1t}<2;+U55r7LBOC+crqlGf_gAAF0!g$RBQKcwdq z&)r8Q4!hQe(`wZgIx+v8BR~Al(VN{Sqb&^OTp_H9o%bd}XImzp6mg;yqTEmSJ`8Tu zt$1;P*w07mMoYVfdVfN(RM&MrUZWa-z#ZFdAlNTpBrw6n!NIv$eR*f{5Yp$`E;q91 zCdLlXR9ne6y>-ZS9A6CAN$$_m(}!E$N~2%DKws<`hnO{lKnFMhRjfNr1(~#C2rW5@ zu`*VHl~z6qs@?^IMjf(kz9|z+JskebOhTrJRm-#RXmD_1pOtCEk|*8dDpH%N3+#EW zV;m2eC|e!@pCyp~fQiAfft;6@H#jrn z8J2`XH%}*y@Sg}q??^Wo-QI~a5p=UNs6@|eo)rpj{G;thj_QXfzz zxs@bZghD_C87vkq-u{VaMANUJYN8+bGV-miSPz?X;e9!gU*e#)zwPa;6!RQAkx%5J zF>B_;V2ZyyX|VcXJEwxVK4-sed@e9XiRM2&KG8w%k)>r)l#3UasBo*Jl~aEVe`=Tg z_c?Z5cM>-n842a994)pqiO;{k(i+Sc1v}8*R2p%0ITTwJrQ@4F}$xx8LPU>TJFb{bSgC z!_ZcotnS}BM}k{iH`n+`Z+dLswF%&GPmILv`r?fP9-d_4HQ*p@u6{PYL}miA(3b0$ zBOw*UPNR*%o1HynkZ+|V0R7O}`4~fV-3TTY5om>N9Qg&??&~oI=#~jp@m?WvUk)MV z;Nb}Yo~KnH=q)%Lr#Qu?Og;AARxl9%z8Wx^R=r#3#w>7JSs7_t7PY=^7OWONQKr25 zW$~JACq_`?b)Uh_x`BT{!RDzUIYS{od3oG>MKS0Fysvf4eE#TCE&<->I`0!~zm-Ne zmnuLmMf+7BQ_cB3QOf=nrjiJ2w*irWdQXp;&j+p2U5GBfsvIP1!L&%`TuaX&Wf= ztWI3en!v1vhAs<$N8scnLBLEvvow&t_FZ+N^E7%Wu&F;I4$k4GOH0_8FcX5fCVi7F zow(BGte>_`$D{W*qx>#A#GpYk1nlRsTujl*Xt^`fugEjK*G2nLUY10bvW)m;tR z4V={%?Et05xPDST;{RTkueIV1k$&t8`GC_3~{ zH83wqh{6g6}YiYEhz!$lo`Qy1;Wy7lR;5`A3TZ6uu+u53kX@C#^+~1wk<&Cah zFW!r!rl#8O&2WA_Z#(QudG_XLT!CF|g4_F|=ZUmP-T+_w@gu-{B@dg;JB&dtR$Rye2HSJ`JyIw9u%3w#oh)Raq5_F2~u`Mu5MJ@!+KdZQ>A)vr^ zw`w5I{J}suK(Jke6wKB9D$|s!Peqw8SuR(x95JX=X*=ZPFfwM@5I?*QBuCYn=>cY) zB6ZaPS~=|VXI1GNW@R)v<9rGwgn~K1H?l4GU=1bbZ&BvJmDp-!n>6I&E%20@4TWGf zDCL_BKKcW^N~2xAcY5S$fy@R@e?1C!RSp!Q9&=+#W`n5SpD1H#z*(v6to4n#E!Dd; zEXImZHO6?nSnl;}MHQ7IK)Z}$HLwA=@4uB<3Ia2udZ-;ettqxUC30qAV4qGUjY;+Z zWdh^kbeC-l@M3iw;dJ=3doSaBvZ2`B-389CSFc`i;G+Kf_s>{o+T}Px#T!LM4u{9p; zrlz@7dQPU=;zmMnyo({BMu-E_1YxC#{K`u66j3KeBFr9+_|eUfT~orpHxu3d)}` zzNs}HGtZT#C79~!W2$!_3KhVLyXz_E*)+|84a}HgsgkkSyE(s0H5ud{_b!U9}HJhWlO95^vQqJd*k`^t%uSB z(ND}r?bagh9&_>ZW}~{ynoTNFFKCAaynd}#@6OJSXe;&ay2w@jrT_$z4-V z@nVU7WqNhZPFKOrVxHpFWJ$QBhL?<~LsPm&?Xk}jp#DvM9lO!|@S0Ov{XEemEk$c5 zLq;-cP%Uv%)swcQpQ}HZK;gp_s8vqxPK{^8k*8D+imMZ_`9H?KR#qu;`gs$Bvhd2| z1wdCHHS!pf1mH#hI(d4M14Cfre!ym?sA=X#?2c#;hh)vPM9~-&o0dRDX~GbO0cs@J zvl6RUhYGC*$rx-OvezQzg}Kh3{|k1)pdK((T&Cnq$3EhC*CrZZG$u3#XC!6o>JdRL z5+QBV$FKSN7Z^j|9f47r;Ifdqxxv~TA}@qQ$`tL^;H z7xw9lheya{%W{A%F1zS-a>zq2i>zB0!2YD+6EjT~3(^dUVwr5M4hYNqu|a@q1mzE~ z#7$Z@AP-1ir4d880t-Z}ico&2Nh;udOafG_)RM}M79rrQxED*2yb0?hLaF%b!k$jq z#-i$Vd|Y{?uo<%o0~Re{SaFFuD7QFzp8EKFL?n&%-$roKOVs6r z4vT1BEF^ZTjD}b50)PbS3$R;(5jN0YodR3kC4zF?>C^dP94z~pVK^B-YMcO4h?OPM z)7VDbuIiGQJ1`R40LX3jcQ+n@-g7umuLuS>KT5*@SjAea%k@Ouk7#@^)BMQR9mzV* zy*k3ccUONFNbvhyaX*j(QKanfq@krI-`yr)Eo(oHv4gDU*YExBv-X)k4vue+g6-aa z=SY{DxX;*HUgP&Xfqh%IIPug2K7^a=4nI3nnv(4+%|k=H5tCpe@d!1It;|-|{P#YK z&3e(6Zd;g3g19}mW1Qz>83oTh^=qrfC+QlOa7P#68LQm@wQKrUOcr=deXm`QlI2L-^0?p9K2689 zMyzWxM0=6l>&GinmHvsWha!ufm?THg-tt9ULdo`i!qEs+9NSW?u1r_H!+K6mPJVLh zUe17}ZFsAMNN|i3ZN;b@r9@Y!T7SE!T=v}l5MTh18_b0{g@swei@bgMjMdUN`C~ty zZ)OBJ^%FRSJhOx-nH+i1zCyCkvvCUdJ!siHit4zCx;QC&8Pjny+|fJr;mvVMjW>GU z?cV!>N@g&JIS`o8W*TGi?l1EO@@{~WqS5B&2>+f#!ygJ(kM+V9SggDS4jxY z(v7WEgM*cSv>@P#f#a({75a^+;c0$n^KWZF!T`s84@d8HF}b>bB_fi8gG`DfNs?U- zBKMdqIKcEOW18tNG{O^J>URd2ay60t=OWQ6eY|H~pLbSc*&mV>=xj ztxzLF6BE=Fd0>eI+%~XMfx8u&rA)7zeVFM_PmwERs7ZffB^8&!(eYe~R21;dJ>@VK! z3mX_b(3i!{0?n&f%OfyngD+>Z=HNP1FxinfQcCx&R_Ap4Rh;USQ9lOu1|DT^nBUsK zQ9p1}=zLr5>=MfL*?u%*i}&M{hmv0?Zbuqv%5wGg<&Du1O?MP~N3_fn4`NL_s{8Xi zp$5OSOn;+vgv#jBIw{XzJh}h(0^~_}yd$a33NX{&at-^!SlaB7@7V>wJAZ8L*RL$m zW(c!SAg61wbaN}2XEG4u$v;n-xLG@She8lz4Co$gyB=u-}1|=Lc20k}3 z^bDBp8`ZX;NWr1I%1Us3Rm5A)N)^CWRB0;ITjpPLu~cdJ#!QY&7XcH9WGf;deEbt< zoWdd1*{rP|hef*uuH@v}FUpe|MO?-V1GsnY=A+`+#7g;ZY{C;KdvUGGWdAxY8R;3BhT*w^QD#5$0g?We!iKlZS zd)V2}sbvfeqnXsDgjU00q3_ahy?7ISXp^M*dqhm+r2Hm%ExwsQEY18CSQ*+)x|m;R zt`tz=D?mc9;3z040HT2=Ke!HU}ogOCoiI+fAWhHp)fS1g6GFoPji;{h0RHpAP zY7p~b$}*6HUdJywb8|s|pg36RkFu|{saeE^1T|fS>Cmo1pvE)7T<^HG)!&V*vlM{p z$W>5ZGBqx(tSq0SM-h1b98^-E(w4;U0yG)`XwB7Mszeez4Zle;N5T_GuyL6ilXqq< z8-VTs(h*HOfNc(x!0Q*zg5=@r`bc^-Adnx0J4kGTI9RRIjs)c*YM z|Bgm2{4p7xhYi}F`v68s!S7!d|50mHg1DBXvSM|=`$5Yf4MK}r$lw2MYS{gQri_^j z`n!I#H+pNjq@I*LID%TO>S9F&#&S(R@nFhduaRdc&E0JG_}pL^KrZQQq;k)lHaI?r z<{OiB`1c?EQw{N#L;pCv3!K&MhdATltv|FCf^q^BDPR&9c1nViNdD1NEYZK4^jkiT zL@5)e2-z}Xes#{IP4ctnRKpy&rd$~|CNou@Qgg$xIX$rwOx1G6g4X(pvXyrAk4~fL z9p`PE&;_Wa0~7JmB?V2pS)WBt>IXwcm4y-8=}F|bgR4msTmu1(2`S&eXuyWWPuy=V z4FprY*?~CF#y%v+9SK)!ng)+`+ZjXS+3VLpB2hySOJbLS8X|2NL5y9vxP}my9u4lt{$yn7z&K6#k1! zvI)IZDv&T^jqK+}dzT#`5Dl6>NAmyt-k=Ng(%r=^UgnuISVBA~O>TGK?Y=G!118l~ zy4M~>YBIaIt6D9N4t2=;1i71_TVNDG0@}##0-kuF493@qvV}M~IRR`kGe0j0%*VxX zZ|OltETym~ab;zpdIj#}hauz}e)=Fsz|aYkqIWv$3b-T?|4{3?;}Dk}NF4gDJjXbI zh)dzb07j#2=l%nQX~5&+XQhF5Js883xKJ6vBAw;c{kH$$zOr}Qy^-I1jw=x@#>-8f;+ly@z^*=Q+KqVT z*IJDe_(J(~lKT;G$^j6=|D6!o8t}DGr3j5+pgSQ-ieR`7BUa8fvq!X-Um#2j`jB{H zq)oDZ<5z6d)v$oV(eLAjH%E4FYWC)i`)MP^CoL)X)^(ZAFw_YP5rGz& zgPZ>fX|EpIbjUS`9)}jtV9T9%%c-L>xj&r(jBdETCouQ@ZF*A0a7IDgX;6c+jWEv) z1(zT?<3(@?0?SF`GC!WP9;wp?KOX3I6QEEAlZOWAvSAL_f#9;`wQ=39 znt%{hGA0ZPQ!94Jp4d{p9``Dq)vGD^{sI}!Sp>o@z(Ue+U_FjCsej9wa3I@u@<7bW zMSiS9na-@*{0AZ!&RnCE(?5FL9?>dIi4Rk=yk(Lnke-d~5jpIXY&@nUs#$4~5&l;c z>X-q`tO{G1a_A+ui6#-NFyLa&8%5osU>JiB7LUf4S`_y6+HxpAN_mtbi(E`D4<8%K zQ~}T%(1@zU=ntKWJzz(lH|G4fu|Hr{J`kyLsC z{MeTh^Cc0A&B%M@vqk#uiZyfP7itAKGGHnXDEy6tP(``<%V=D5+kQ3E&|c~jOBLEi z%`(wHPAf(p{2@J#i`FR`xm#=kml;~X5Gy{3uZ`QAFGpa5;_cfya0vl5OA0uGj9~WJ zzK_@iA`%rWfGv?NjfknZPF)coaWIKQ=bLF_^Pcm*oTH2l;hIxI4`W4U(V!nJ6o3{~ zi_)G(fR_Mu5QsE>ylw?V`aWZV$in=$RS&0x_&5EQ$27N+wFwLZ{6gS>D4(1A;gd2T zQN>6egCR6Zk!~{ktB%FtMy-;bX%Cz=;ES+1OXU65qOn`S#eso{rhSL&fNM{!VBoS{ zxw#PdFfMlOI4RsCIwS<00}O)UIsWLEhcY>xMi;JpeslV0EG{^IV;z&tk`|GNJOg#EqwcKtID zV@g^52ldoE!DSH%-rC>oR-j&l99{$J5X9JSMT}-?^7ED69S>^elt^=Q@%YX3Tt7!1 zD&G6#*sLMbpZl&-H3EWmE2fYPBVe#y14ggpJyU6lnTbZie zHBct)0%*gvF+;)HG>fu9a%vVOed1ZflV zzz^x!GvKuKEZ1OmzYEz^vzuJp9##Y!T4aUoY48w|vzBOPb!llck63_EMofGTxVD%W z6zjlh&$Z7g_uZ6>UtSG9#hCS@`}{UwDFw1zye-Ei0Fx43x7nslHQU!Bl3qey<;^3l)rs@5RTmeI0!-6dim#k^d!Ltfq zxz$Yd3beV#khgND>B-VBBE5&CrI9c!>Al+ih{mbR>Wi=wTo?_kd_C;n{f}vHnhV+V z04ow+Xs*H_I^EyN{~jq0-m8{}YWeM#4=PW2-bYf?$hjwxg`%%`6jMs=S9-zD9VuLB z-=OhbthiQPD2FHgSh_v*dZO=pY4*TSrQIkr-``!=+FKykv|lmfQ3;{Fo&sbV7$_t( zDp8=-*FOfr? zJlES+pcB%gnm(r(SiHN2NFuQ$Ko+gnOQ$b?nkYI=j)u%K42Bx4w8~UuaQ#*sF@S{v zu41lVQJVK;mcxX=L(#MmMYK2!nQ2QeTd5s@T;Pgn4{2q0&>YbkprHmWxm9CvIYsC7@Lor6H7hw92^shR-5i8RSP07ju-~)12Bhby+)77SRyJ zwjn69oeHi9TIMU#7RzfBzCE{o;TZ?%`b5L-p*&n?4^;7ol9DY&5^X4f(BC{k^gJz` zD1inE>?rUdO{RW2Y_}#WE7C)^KA5NxW4%#P*Rx>Ja7q`#sBlkSk?&P?pNnmE%INS6wXTPKsjyft2(E4;qPNVBp#hkCv${#aF0FlLQJ2`RcW#*nyoDk_h(|M)H% z+;?-{^w6{6b-)7haMSeTQP-m1NSl;t>;@#GJBT-H50UzhES3>)nK1>@Ku_OQX`Fj0c5}?DvGU-eV&YR1 zhl+OcJWgJ^ZnvjrC5a0B2_1S0e>c}CYu3Pm13D{<)e&Dx@OIe|eBK~^P12!EhZB_y zemnKzS_?rDXmihoD{i{#k*1mfTNSDrG4M}lZVCu~!-6NbqjR*9sz94_z#iuuHSNo?NjirX@ahZ{7yyzsKsxz`2tAU|OI*mRqb zz$(9diLWgB{PI_T1g8T!QS>iH+v zV}lIMh-Olh?8Kw&meIm236yJdL`<~FodY+i@V+Vxcra)&0bDf{Nj;eXi^I(EQ1VYKA0$fv4aJ;3=5 z3IQ9J4iiZfi1YBO=NVTDCdny+o-v~R!nvDRE=tM;C7guXWveljVmZzu5$*!9K|mM- z$kbZ|e?*{KzfF+iOuWD!uszA0MgxV(D(dQTCB?f5S>Gn+Uq#`{2Y`hH9XjcgxUVLd zs#4YEUgY2rONo`Ji&bd`t@6XCxMNL#3JVCeCQ`VcoFkdt)D=YV-0L%x+ z;lL9wp{K$A91)SLFd$3F#8E%Cd2Kz{zP)PUc6K%oxWSc??gJ+cTdQbn#qpD$#7$2S z{3Wf=K@p1Dc=5uhN$CsI7UTMW%R(Uo9&o-uQ-pPS;cfq7@I!%?mYT?#r~btLA)ShY}~Qr z6VtasJe@`hD>|02p49b6R9|XIOjv99G%4`j7NlstRU?t0i%gV_q)U{rke-yymYA4` z$;~~GUTh8!f4oyIwD|9dHhaSBa`DI27_BclV7NbDdwliwXgdTm77umw_4@%K64_@g z3g6h+XicWxN7l-fQlHu(NY9Y+qO_0o?yLHE%?bVC^+l57a<7`cf~HCA3M}R-XzXd z2p{H0&<{pp_ao@b^Lv{Lq2<$7fQ)I}U+S--P~~|XhX17h=!oOtJ)@dnibA^njlPVl zt>pys9f%l}m$t@=RCx^2nNm&|Ie~eie;^J+zdQ_&TD(OAqW~@WD!~z)@I-^I$~JX8nGWig$v}i%5MLib-*QO?jc0ozUq=MsupAQ zHKFitw5bHl5#3jYMdhYix~3hXlhHP%v2{cR7WeHG!7<%?dn~}f0%{886cAtH>9K$k z3B*BGSKL!i;c$kQ>L{Rv(S(dSP=ZrRA7R=x>U$m}D}1TXz(FOD~7bpxRp- z9FZPQ&&I}v5!^h-*&u-kdB;W8Yg|jBA}-c13_2=yfgMK-yEI(X7CoBN-%(X=nd@IC zR%g1wIf4Mo(0nB5>ep#7R8dJU$V^A;?b}}PX#fBj$rcD28j|z=+i^jEx6pC#*6ef5 z+kPE#*gx!d$pzd3=wSMr@behp(!BY_{b*Z*oKYpa7hGg=YlTZ`aNj@eaCZFJeZ5A% z3va z+fpQfaP+5pg6gSRwy~Y}M{`4+x|3C>@S-dwr8ZK?Gxswvu?A&0+}_gItHb5rwT_;i zO@+@hk|N%o)tcdoN49TXO`F94az8)rDAHyBmm(v%9sEHCDg4hDG$gPP-FbfNqrg?z zy&|q~#komo*LJIEuebuc-Zli6H_lme^aD$^;IFI*hyi#;1*(u8VqmR?#XnB?L#9kbQdtiVQJee`A^Q&C z=;~eBvI()|D9+I3Wg|)fM>Mb*fV$V^GF@%^Oiq2+A-r{ZYHBJrfm7aMso-}6i|cNW z?eLT(4^YN%ad8c;t#SX;2bs!m0iwpSy!o#U*&AA-tED9h#(IE=v2uJNct50kz3ZA2 zqgw|<{T`*Ys%i3dZx zg2JKL!SLX=JQL37IG|9)_iSCLQBn)XT1$7m)NKhUQ=#hlK{2iRkGR+wPeo~Y@CYe2 zHEl_dK~rJM(3L|xcwc-lY}%3s5OkQ#X-J;4qQSf0h^4U5cxDaO>R8-vl?|UIUVcF@ zIGe$j)O&SJ(>`G+VEvO?zg;I!gE<9UT47I>BkHv#HCc%jkmxQ%T`UqhCD>y_pvGbp zp~^xMgvi@%<#*lF66HttaG_)@A0oooUitF2s%Fckj?OP@EZ4?H~JR5@BpQUMk0 zgJ+l{x|8c+!V?%O0uE63bjO_w@MVj7mk7&~hw}TacoOa88#&U(zVu#*z-syQzLdWS ztPbF^O-xL{FM|Pgo-HlNOgrGd$P8TXpo_LCB-_GDj13OWvAYmWZx+>7C|&uAmZX;( zN+RwI-ZGc>#z2OQD8KFo3i5Vu?7{QyJ8iTL0-9p4?@7_sWRw@GRh3Uvx5}fv80p ziY9(xbsES&;)}-B?c!g@LPrvX?h>@zh;2;#r(@Hje0mq~T>+0Jv?9hiaC?n8WfO^^ z9Ade>EpNbaG$3ZGF15gL@kpen%}_KpHATyI()e&^nvyPS9!C-xoINMrtjpoYHny4L1-{q> z`I30~5)>3A2v)Cq@azX!_9^a1MMXuR@lAmQk*p59Qz3ie^&JvciLG6;?$#xRbd_e${#?^Bm}9kkb-H`8 zCG!$H|9mY6+~4T(mjK*ICK5WNkOU%X*U^#v(r2;>6TsBk>tbT!QFi{w;&T819~}03 z4{i>~wA1nO;T^{x_kW}CEEujDUAVu`SySPZmsW-gji-irfUa7zC?sW zQ6L>O*I)RAdx^BO1sy0givm(oo__pAel(Bqr-L^t2y=kbTUDZ>%jnIfy-9nxyX9k? zkk{W?S@vhuB;7A)6uW!$?TvpjM~6w(KmF*8=#{uiX(i>crHBA{9$79Cm{-n|i3MXP z&K*Mf6g;PRBkyARjI-p2(0}#H&t8}4BrDQnze|^;2gMe+t$l0D{HO`G6frphxLClF z$=Q6tI^=0#O8HmThNf+Y3q*#hK|&JmFC8eRp-+4uJ=as+22 z(oWrFq$pPDjb6oCEGr)jZkZ3}TTqoIH~?glXHu`w7`4%4HUqH%o*-*zVSzPWt=BUX zz=?Eso2~eifNw>tv9qDV3PwRC!9vpWeGeB=(#-Ec5SQyq+-SCX@O@!PWHlQ&zi3Mb zu140}RgGX6+^-jQ-${leEg8`T>n(PGNb`u)+W4{G6{Eqy)&7^XYMVME0=V@f@#^+A z%`)&H*>wt3Td0ERwD+N>w*D&i#8TTC)vX3URfyF@CubujKltu2pi3?oc_}Tun`H`L z=IbAkdXRj?g2&%Lb*Rb(KN^f0M~X}q>MUMI>=Ha0hh7T&Dyu=}TP)z|VsSq{(NS^GQXDRYsyh;<2;IF?F0C3vbb=464G8KIg z{0J3UlnFBkjROO&Hdu!i_rm@uo+`@g*90aQk{b$=kVAa)9~wvc;oGfw`(x59!J;uV z{!Mm^cQ;1*F-(L(cJg4cmP3o08ycnWZjDhXiAkwb|isUFa0*M>Wc;3_s63O3KxT z`s}r`(aTv@WNl-%6$Z3{L5dg{7=|!u!-#x~x1yQgqL#mZxj>crsm8J)5-8W8C`>oP zQAa@1Z05Q=fR_vv6-sMOr5IYf0Ioj&i34g)#Ux4+O zTWxW==497o<68p)kU_!hud&k_>n;So@CF=2nH~v|0abS3TAcC=uoHW-mk_Tzdg!1r zQx@PKS`7$Y22R812+?7TOO!{tC^_oT4g7=oRY^>EQ}rKdS%t0z{hZma#4nKla+Eqcod4 z;QUaDJ;6Oa-kaG71$GpWnWMY0iaZi{S;qO0(Fiz@#K?;{()pB#ayL(vO#fYat45K= z4WNpfXTIaWg2oLPX={E`8pC`2I_RqJQ>PMN_^LL5YZn*%UI(s~O4u9x9{+LSR4dhLKh^L!s^CZXwoRV~BoK|zM@I}}>9#E<^t`qRXi?C7}Pll?LO5fMZ45=^8rH%F+dnMI?EgvGAbeS zaQC^1Gw4ggLd=yK-b!(01eaO>eOj#2tU|-`Sa%NtM0Htu!_0Sv4r9K!-GAZP;$+nW zd#RxmXWxiz;s#b>)bt&d3f|Jsu?ZNA9My)R`8_^m2(<$Dn`QIKXIk2sSnW@~ zQFnj)i%asZx=3wqCasnfOxNbhK%+%VkvB8&OtHn3iKRsL?|k!Fy<)FrpSXnhw{@f0 zinWW2%W$C_O2u~$yx5n4-+u^V3Lvjs zwB{xkzLlqwoQZS4fEX!I72u1%eHjHY4!%Y=Dmq&5m#rW!u3o$iAIygu6Y$uIH=~Lk z-RfiggiL+0&)k+qb#-9T2`F!v;ARc~<|24-W}dy}m4L#8yNVuwoi*Kr(;MCx`iiN~ z0Y@DmZ?Fr2#*c!oETx7*kbQQdU%U7ztb_%45>P=;6=3}}Ke+5kaB4&ElvCF`vsk>p z=fE=nXQ3MM7`w8NmkWe%7d>E?TKjiNqxAYD$Or~7EEaq+vlM;vtt8ru92`yy+Q!dR z-E}XR#^GGBZ`Ky=qs^H9PSB&&WHoIyPEUK33_Meg46^Z$Wk{C>!IS{ zn?jCgsoDdD9wx)6?f_qNa|ag`6y(P`8yOkBk!=y>%IN+16AHM7hmucNxQ(t*XW`*O zzWEj>%*~M;kbVFI`TLbPnAU{b)0sdg^Y&l@gbhVyWm}&wnXx@Yadg7`e$gmSyA%V@9hF9vrrRl%6PN)6Ob9|} zGbZ3%1GwwHnd9ba<3|ABBcT=%pOGwEgZ*)OI3T3GNIp%VHdMwT`rjnjL$_t58fZ!CH!I@)JRw5>Ti{P-MuD1eVQMu zbb*fT*8#?%dba%`90Jbk>3iwcGR$5%uu1r|K_4 z#4Q<;EC}ieddD5IQ@ir`@4&|gmzK~7vK9tV=sg4K(L}wdmdxuZAJVSB&pjjVvyiEg zVRTE;fv->kkE|JyI|-gAhBIOcmYz`Ydv~i`MqOjaXLI(h?Alyoii(N%aA!(-Uf$y0GhPtTL4IupeQx^R$5QUOq~**q;r1QN z%XGm7iDHB|=#o6a1P6TKX@|DI@FTZYm5JyRM4G3<=ak_e$H|o)YzCAYUPHPD>nO{E zL+1$ZbS9}I%k^1)?JP`DI}kzhA`sDq2oTFLHYouM5)io|eHRtTGO+4k@JnAUztS?^ zc-sS@9l%K~88s8k&XJQe5DZYn%HwpUISa--U{Km;k>G6;L%El0NMf-gZOlG{Udw1S zhU42@8G{1*AEH5wn z`%8oUYwRafaE2;7IL?HPC*6z>5**9~;H4K_IJ0q?Ysv*rXtTlfjWZA*5W$Sn z($ewDWok9kI>8~5_1|3M0Ow5d118)as=bI$M$l+eq+S8ulwsoPY=hO@?7Nce0mKW8`V!jbqY|`y zVa*xHkbqJOS^U^;?%hvSzpzL~v|d>_?^^s8HpiZR?%foho)<6{Ji%6aPBSbBOX_S{TC17C4eCkPY4J zIu4dg;};qI7ue-qc9&>IR>#s)$MV1mx4Jx&rF{(Ng1>!JGi?Owo{%wWR$?{DX%`*K zqwdi2?yve2-2cb_0qe||d3`v8jk7K5Ft(%wfFyyQKV!y?y^J~tyO6T|d*bjM@t`9} zvPZC|^ES*Q)vUNkpKOQ}aNP3AuwXW)0d98fO{vub0*aqQI21XsjI)V zWy;g;pk5TWf!c=L;;o*ZREfGpMmC_X=BJXcK~F&A+2?DF1cwGVgrbPqYH_~oo!z; z2eC;B3jHGyptpj1RbRB{<#e|={hwX_`+Jcfz`qFFD1b2>j4v`pzl=|!WP_k#vkjG0?s9L<0K z=-k9TQq?Xi#hMvOo!^-08YGVo5Q&u4NWhW zwdexx?69(j4HZK-FB8N@n2c+=iJv~P#0*oxeNh%4=|h5z4kog?C4#yfq^r0PtU$A6Tb$Ays;m_N(O9Xs(r(NAvsM+l>fBhCJoiFk0(GQ_rwg#cAet`%*#@-K3jG*=Sa%rPcdw zg}ZWnib|=>BJb;r1@PGJo|^7Ad!5@3qs{2cKtiOHnw4}Sa+`WwsJ_p);*Pq+3)|O! zU~1bH++`pT8kOSg2oK5F<=CD3Y{jAUFLyE|)M5QwN~&T)8^i6wQ31XWBK@n^&GA5O zb8~n_MTM}{XvXvR52Fs~KqNa~2iIsHHY=KLR;t}-ghu3aPLP?A#8 zIdtRD-I4;*jdV+QcQ*_z-7VcErGN~b(o)iW9^bRRe=e6x5%%nT-&gYUM*+)g=lx;j z!!`7Tn@mZ3q0ftokv7IrL=40p0g`|JCF(jdLfu<_R|yj;pbfSyadWIZ#x8_k4lT36 z74|F?ig7Bd08$^rV#!ImmQOv&0CeKrU={FqKJqW59&nVJ0BRAyohK4%c$aFp*vLzpEZ6z>`#;Wc zD4MN10;oVD61m_KY1|_s0?hG1LgJ9XX=gC`(@*kM*VwS9knm)z79&MBZb9y?cbz23 zV|dTwdAHm^H;MgfcWh*l4Djqe5BT3IG9T9;*oK57#MI}XNT==8aA_H*%AY#`*ARc5 zA2PG9B9R?EXgP=Uw6(;sbWTBPb(OeY>SM}KK*>SAx;^gRhMmZ2(HD3Cj%~pbX3$f> z-O+>J!y!y|`aQUPJ1TPLB=~pmb^Zu?02VuJsDA>(=j!D_QP2NW-*L?{sekGL|7R<3 zC;&{;aSAZJ0N2&O`S&mrKws;DOu&C|UmWZcq}rWpPx^y&$m^1=3jj?4@F@?$XHl7J zH`EYzb|o?JYou4na4;tn7nHKWtWTnQ59wUU%hpwuJHQfO>1c}^XIh|XaD3FYsf=}9 zLmyu!6am@=s+u)Fed6Ha3jWgGv31nd5B$a(5=a1np%3=@*LP%!2{9EAud0|(fA z&$61y2rM_TR+-G2quX4dE*Hm_;`yv&A#wFPrh8$>ZX0d z!#J3L+gJprE7ZY?GpZ>C+z1W20JcH8~s z)IZLKVEvlD1>%s@&tn3n@&_>PK14BQdS7?`2`jVF))_W>Tui@i{n_gJ z4Wi%adw+6^T>n=Nz7N?D=X6 zt&laWL0Q!l405fw?Jw$omMa5W$|jdluXl^z@m`f|K>IJiACd>yx#8?pq@_Tw_sHN{ zJ!8;q4)azYbiO(bZKGgq^*eQzSfWc@Z;1Jvd5Z*ow3u?eyemwK3Ebp({QYuUc`Nd= zmnU7_3EwN>{k^OZ3@EOmqoVocJAW9|BkvQ^zvqS_{|1a-W}iL#mf`HJPVs#)XN5h9i1@P(W%jgHEm%^>O6To3k0dF7S;iW=DlMxJ*S;4o^WNJ*0%c7=?E(An1l zcFML)z`;`%RL*f(ROV(u9w{H7SI66?pWgUcns+3NJU}S)1%2B0Qe>dg@OhwQ1078Y>jz-$3P{650ulFZxZ5IiYQFy2~A$mdLo9dr^X`!rGkp5zuBJw^V0 zY71Z{4MigW@}-?rf>@>XirRg{Y_IiXm`Lf%EcDa`i7Y9gzMYP8R|)Ab=pSQxpbA{gb;J zJ33;8Bm}I?Tk`-L4OOZ<;2Nb!AKwJ7<_;xfBuSb|6>yWJ5P;cK{9*(SJaEq8#X-Q! z*!qigitit+79RfZx&(6S#v2mG%mA`0-lQI+IGZ&sP#sF+fDc5jB#$A&DkG+F!~y&* zR-F+E_zwX>ZU`g-Xcc84f48A*DVG!?Nri2uMk3(GoFOVl_aDWXBjD}`cpQO13@6=( zWfVXp=W{=s7glrBXW^Zbn>oI729(@6DKGy(0n9(QGwIz;u*n5n!871w<$n|{Os@HG z)S6=``rck|gllhVv%h2Syj=MSGCVSJUVzyX@v?3B6dm_ot1V@~(ErHh8&6|UywCc` zCZG8N)a0n`2$oscgg^6g?M>c^Bu+o=O!=axaEp*eKM?`KJ^tx`5pSRF@LUm8`9E835zt%l) zL=)NP-QGT^bCWJ2geMY_V5FH&3<&r?aN=nU9F#s|n@CgLo}62VM6`Ba@yI42i8DK% zz#HYKP-K1p7Vuv7n2k=rnhJ1u07eL?76GfkToLNK2!jN3i~$K#LXm_%%dmW7evg-V zRNF>8tr+zR3=$%LyfpJ79fOdg8oP8XfL)^;=LF8;HUzl+0S#uPB%u2_wlS>j0>CZ` zJaiHq!qOz<=`AQ0k>WGP6l_;OVAU--IT^6Nop#-jfs50FM@K-|4Mwi9?hxRG z1}4IjwJtQ6EAR_|Ni!OwiUTr9|CMX$u{zlJKLIw8t*4uHOvEZ~MYIzpvG4k@A%G3ROsBhH$BR7W$g@`%2>YXJw>^RoPu+0%Wo zr~ns`KJ>cw>FN62>Z@j*x2N3~ba8oJcvsRGtquk~%E*V@)M-~$M&<$TqYTKCIvV8% zb7a-(`F!vj?#Y{k3#501K;SAMCIX)A4NC9~2U;jR^EfJ=#6xHyA%s^rP$nKjJekCC zdiaaqTa59rs?h{mqKcCK29nXHz~X++FVtx9EC@c6{o->k5notUZ*b#B3aplLpV{ ze&|pjB3ufwiyV2J%)NX2mU0pp-_T0_Qcta!Kpiy{UkJW6rIjWun_kfBB@$!~^d zKd{BuCf*(oKirdgJ5HVNW;^^*ZzKaZVO~@Jc_VqBEL&M9bU3jDdwb;YxyxV~VO};J zi!E|wTTH&PObE|P5`NRG;5b2?gNtbpF<{;KkH=W0kuGD3|p!)1PL0z{-F-Z8B!eYphUW}Be zg3A5>Mx6n{BcenBKIFVG6tCNKY=768$tBIE-TvlseSIA}TK^$MLN6iOA@M8!YXc9wsOyLp$?0TPRfji9ppElgb@=n%3`BXjF-nT6 z7r80WKMCyF*;b(cxc%p<@xUMX%>9}apRbC(M6QO@$N^(MFf<36lm$?T9$N*7o2PK# z-%1`!k}5+Q=&da!u{!_{yIsc~&|{4Wbb;4=MPZC;Kr!UOo-9&)KtzRUM{8okTh>Dw zUdIJtp=8BNNpOJ_qh1;qn}q`D7mS_su%1NDWJrlKRZ!ODdk4i5lo%(a|wV z#3BtHhQA?6XeLzR8E0ZZgi6^YqP)H-m871Id%$JA@9^aFsm%n7+&%|~?~{o9pm>He zI+Ciq!2*uq3Tk0iD(D8mhuQ_L#H!{UGpY$$m@GD4c_tjZT7xdEQ-$MgKjrZ};ln#) zQ_nb)f&h7jc=gYOaDmv$#*c&AvJLP7lmfhDRc%?i;>~&?6oF9hN%A}r`J@nlL&QT3 z{o#qTG*We7AuARUD*&TAZ)W4J<9;8E8!r^-!HEH9IcJm6<%{6|^4-wrdY;G8J_xIJ z44pR*c_n@nixMvc?5K~1Lz}-cVCe?RVk}UvF&VZC;NuzP3@*IoMQV^N_|AzZ1y3og zsx-`C8%}}$5ne1ClpUV;N`gW)fG*~2&uS>kH+h|HFPg>Dlas5Np1mB;};v_;6?;9$MKnmqji8E_Ona>ObRGaNsA_ zbNXS=j>OdAaTHwK=);hx(6?3069X>q;B2u>5F9t(4Y=6S@$a8nY)8Hl;g`pb9?Gxm zy}TqL6X1&rvnpCTtLs#U3q+J~E;vJufWmFA#5c?1#dtaj5yY7e*lI-#Z9zQ$VgawV z?Q&dUkgn84%bWK2U~hECh}S|KS@cZ6`6^zy=qw99rN$C30T&BtsDO(#h8OSx2u{Qr zss2!a*cBP{kDH-2z)ZLdWF?s1jF?#?!X=nzjyH4;1{SX=oC;Bie_JaAWYQ1tRDa!o zoq7StMG$nAfJ6~$I;_a2uzxtY50q8Fh%Q^Pu{Dq!Auz*U?f(|;;D0>rbha-C<$tgp z*{);3J?(j*W9@o!w^Uash|q^DeJj~->t2^iNeIT8zr?wGxfUcCT0z&uKjDp}30H>G zzy1BwZk{0w#n>Oqmr5;a`N6UpI2e?OzuH5yqg@j4FcvrQ-jEXpm@jE*m%qY)6}Ykz zme;iJW$^JaB9MciW?Z#ey{@Tg?mR0t#Oxk{GURNRM?Ra16Y7na59NxIDDCcPV!y!r z#8ALQ*7?Vv^}V=%0vL(*w`=5#Nv*lL{6$PcPf3^J(e*d9}y`^~7o}suU6|nM+)DgSsvEHeyFRS*87~D25JX z6_DVyKN3=Fa+oZpTKjELSX1MzL2?tyOqG=mma1a0nryKe`xXcL?&kF+r?o4t>ueBJ zC0t^{=vN~S_)p3~Whg2Y;;MLMS#MNOvPvXoeWs#Z z0`|>OYyV-REtSL!?<17@!62UQ`w8Y~(jbpw2lNAtf&a}+@q@Vfc0mkQ6yNQ}x?Qc@ zi(m9w4)(Q3h;?ZpIA6VgiA4E9K_X$`syQsX*>mAL{{zZXGOaO;!n&W7y*BRXG-u>c z{!QtWU~r;@OnwibniRFa4Y z>?#_u`~marc=NOE?j3E2+rJH`gH{JnpF-5 zq%foLjJ%@s8~h#*`MyD-!b93nC7xu4H;xZ^AM7i$z(@$8KQr7R>qP;je%o6}0KtVD zU2dSgCvHyf8P2$&alb=cA8^lR9{-n0hZ8xN+g$JtviA=cs`%B#a+63~&MG%U04_ew z?eVDJ6aD-6`|HE+#YO_YGpWdW|6NamKL$-M)ZnNYljugnIzz-$8hJ&zq-V9l%jOFL zw(BZNK@q+&a_`@X9bv|gZY$jW%{tX52N*!|?LQZ>Wmd~6Cm%4A*sphYl|FCy$whVp zAVqhf)snC2<&z3dzpKO!Pj*c=fC!xR?HK|p9CYFAP7mylA7O4^eF04>G87?+<~<6f zl{CE7YzE2MEZM*{0!b55y_3F$0^6uk$XQ>dotDD-Wsxf@9K1Zp`J%P1fgMdFUM$VL z2Qw2*>Xq4I;L*}qBvggaF2@6hp+h`W1Ln$2e7qgx=-=@9cU*O)jNSu_T7VqIM&r*m z4Lqc%!hnB$?(owhucj|3oUqEw0fi9abF*&!35g|gtZqdHqmGE*by z9ll72Xdw>7ROKy_^98@Y0ZZ@$BRE@t7JEq)B$|b~NP>#0F0bc^`T_bR=VHED zUCXum!SU=Rti#8w_T(49g#QcYlHu)mY52sqcl)>}6937-(|me~LN1AA{O>1*Vnd3Q z-Fy9bwRUEw=kO>RQlveREshoo(~jWRm|J^(CwsiAmAa9{ z$NiZUW=?VCPcJ)iOOAMk?+Ccc=TN5Zrsu7jg^o7p^L%jri+v0X4D7NN{{)o8KmKKV z;bhfsZ=yHF5eJ#nYcV8``S2yncYS%@8hQ{{LG}RLuQDN8g(BNazVq9+KybCgOULxa zkAi{Q!%y8Y@7Hd@)Kw_-+gNg z;uNn!79}_1^2u$rd0(fyr!9#h_wh&kd%0GGW!ql+lXSH;yaT5!o@9fv>48EP8+_6j z4j}zZosslwV$1woHMVd8n4vKAXn9{^E~KJ@cp;fFjDtkw!8KvIii# zzz1|u7+Idy!wd_DaRZJdyg;kDPN$-u``wvMre&iL+%`!?1hK4@*0mtm_s21<+e_QF z?kzq|2A@4L--K(F6~lnF;9VyDW0O4mlw& z@8PTmFP_Usv_7*T4+56xG$8WCZTe;v&7{y)IRYL|F6pp=xra(_rYGI}uG*c=;Lq~K zLH}A>auNGN%j(~&Uht|oX)nsnjB_}jmbdy=P&#IMY~e58pPRyL}qvd$c=Ke`ilbq$VH^- zJV^*1_luaK$#%@FZ_faEI{rl{6)W@w$o_rx%fzT9xL{L^9TsXl$nN@ttd!%2e&KF! zRIIhO#c>^0Gvc^4SEQvsNlm6~^tjKVm)G7fmf2X>=5ce{f;@BGLC`<=-C=sk#ou43 zNk^>xado{tZd(ktJ^Fb>rPjNS88c*`P{b9dD12B91W?d1i@GqC+O*y_v}x0_U(8_C z(2B!4JG3OpK0aQ&l2=O)8c_F{zb0qYMo(mzD4=BJruli??3Mi|QhQ~acS}8|zCxil ztp*kT)xy*3n0BlkC2NPu6KLaQ&1I|i*Ui@&fbEJ#6%05nClaJUXwAXFE-m)#+y2V= zR*YuaVTE8z?umfWJH#*5ezPrhqYdaV*X-QjW4X)8BD<(Hnq-EBmbVFF(~Y8*Zxxs{ zzPVux5JhRQ1m5W(P1uQ+z**&fbmaaeC4?p3hc)o$FBQlstGsY?taY9@!lka~bk$&? zt)sh9I2)}-@juQ6u%o&X3%2lmAztwwmI-S(tp+g*x|JAiOU10d5TM1 zadEM?JScl_;cJRP68H%x^=qwMic**N`POj52I<+!Q1n`(van|k&R+-M)nvnue#$V{ zX5;?Ab+EwO>HQ`5bge6T+W-0D;V(%?4cds)$s%7#inxZx;Fqq7^21gOmfQK`-6J?%yT0pkP#V?`!0yvBd|!ykC+2E^x2k-aMaF_mFy!b-Ee&0 zN6oW|(Ff0iL{BYdU#vzU#By2t#BnA&hwcEdXd~IAtT2WLY#p8!m z+H`|Ttn-r)2O^4qL{>DbyT(t`)foHUrh8AP^O#_FoSdbOY%)LJrZTw=h&2zIgoG)( zB5Gmj*(UiTOYEPnLYAQ{?TBYpF-q zdE~0x5%Ihmf59No)smsedbr31%HEQ&S4&8fgT!M!J`1|CD2P^dy%f{(*Qw>|x)=O- zcH^N=^0zx*2C5(v(!{kzx$;yj|DX|W#f6qxstszYu#|ff(Q}VNzT4)Fc7u`U{1gDr z4^%^ixf*Hn5^nd6#|ISYu=KYC>I55mx{{@tZ;md&y@^2&oZ-Qye$xxY+qV%%{o+6T zT(DT;m;3f64gKW!X$8%s->llVyYe-C?ntCGN&(y^dJ2v_MASAOS36Zs{vAySdUD=v zIV`Q`u~g))+2{FQYJ?}AV`>VkpB^HUmG3E@mCpNGrgx<68|CfN`o`pfu$U!k@m7>P6|{*Q+d?zy+5u<*X;=$;pkp}e$`2@%1^5>bJ>xc zobwvTckACQ17v5cClEadOhoV+%xEFx5Tcu$@gJG`D9<;-YL7>_F+2X|(8i+w@_QQ3yB zQ}ymhQaS0vt}@Y*lW*KUTZNyUVfV+iqGCSvh^X6WJg%KS%RmKg^#20`fAu_9x{j;J z1=+(L1SK9C`7ov z5};p1Rn-Sgkku6tiq$@z$2VcrbqE<|QHTFv?vD6-sepc?+b+iTg^tPF1s$5a3zyd4 zBE&xI_~&Qo*(0V8YIwW|s)oZad_n>4z{KEf*{`q9?+yL1;Wj+G^#dyyRWusRhep^F zm#zJ)s@M7VR~c?$=Kdjd?KaA+wgQp)fqc0%N#vJ@NWDU6)6W<*hvRwQJ~G~a2+KAo+!IJ|V^<(Cu}4 z89O_Vq$p*X6(Jh^U8K+J{El*m|LP0e0~_>WBiO0eI(M5i`J;XAHgN#cwD8?;SEbQ) zth_T3AJcmwe;@zPd zpC^V^vtegLZGaprT*Eb+zlu388){O#lN$}$!X3{7AiEvAjrgRORT?8Ykl)Zc)u=! zDGniY0nR}om?EUNn931Mss0eAD&(A}6E!84+$a&!_1n^#;CB;mffWcEi?P}zZu-vx#`9u z_DJ0`zdpC&*SW9ha+tRU+ONos=y4e4j+zs0Uj>#Nh~fQk)n^~3ki$8=lEy;%v$r4^ zALwGJKJ2PH^cHaw;AE|v`Md8Xf$X-lgb%}svUJ9o_(1gqpyje%?tgsrsf#U=p$FLL z`X=u9#WpLwo&vzLjcAu@&T#hrkD%v|J1^|ykC@L-D-RFN6Vc7vW-%&LVxofI`^uSB z85N)ba_Yq?eW~Tg5GV&xjOyHx(K$r6>!hEX0nF3a_8O2HFC&{}QsKKKj%(K)Q(5y+ zWM9?QZEy?Gye(r4Hg|%=k>Aa`62*qadgui*Bm82N;GgXCByF!LFt8|t*{N5er@*s* zOq>stjOW8n<%Ix%4LV(7b9<8G5d>uVmHeO!7_5)g}Nr{oP6kSo%QOQp)0GWyDH3zHj11E{rEuyTTM4dZMh$ z>o)n-=Q+GQ;8XkIt$z{IXb0Jx8eSOV5Er?U-_{sAIlbz+%g#fB(YD22D~7yf~x(jGr%l)sk|QndQE)4mFRp2sz7ysO3N?r>l5 z=;@42Xs$x($zy<|I~hIFs852@x;(E0oiE&dHc^Jp`epp_xluQH1{m9Ya$up~M6`;2jRivVfU`QyJ@+8+V9)$?x-D zJ>2v1$3=Sx2Acf~=&_-E?&d6idDPa@LPvCPZu6;QOMIhK$rI!XgctyCT)&eoItJ!| zY4>d`pfB5L_7Z=&r|4TR^v$uRde0wr=G=9%m(yAMusA<|x@WMguMFZ#2boI3r_xNj zwJ8vmqV6;>ztY>}O$K6^8u^?^Qo*Q{SNAW|YuT@tomOvh^49sfR=n4r&(6r)65t|3 z5m6iynKNhyka%WGD?0n*E! zrcUX#bc=Oj%QTNtjpDv_zO(n}^nif6_Yl8~pg z1*bWLR!3Jd-{RuNiT7~`WSiYY$Io*#XGxTE8_3tQeW_U(DQj4;7AN60()d#t6>srf zQi;#RxDKDs)VM6 zL{5fx-#`6kGCa^h@7OPlX4MQD#}QYJdQJZ9^0?FUG)<)4mBb#h!s<0gLZVYr(bgHOu2|Ce6Z=4GNNaTUyrFa349^^e5xm3lN>i!PeWD{mC0 zd~nXwN5%A?p_&oJeD18^wkp>2c8RF*KO~;}L7hLU4r+L;3YUhC=KYU1pLHkQBa*HU z8{3!0?A>C=Z=#AvoE1JO=`0=V{NLmBV7yYzfI$Y<3wEdc;CNzBYFh z%hVpvFB)m)i6vIf)RFDgt&BqtE*_KNAn>TARc$M>J4q8G8>MluSaUP(o0;~v`S^wT z(-9R;p&DA78u8vtxn=FCJgr$=Dfp*lPWuxeTyNS_t<^YaN-H)NZ8$LCaNZ&eL5gwB zM4F~Xhp*yE8UMA*N4n}@swMwb&f}uHd~l z0Bg@pZKBe5s~WK}n9is1=VkE#D%-v6ulZ`Z{kuP3nfc-uH`dz=K~f2i5sxHorg3dz zG-#9*jB>s$AZ=}?;GW0+^aCs_l*4TcGLLYE!CXdm#7(jc1-7JJzHweSSR+BF;UUIL z^q?QaTM#?bf(=;&4B{jjjj%x_kkC;SQlh++BiUCDDTE-b7zks1;byo}2Pl!>U;}$F z5Vxp|NrvwnS{+hTlE0z-2`o)B)mF&*&GjAZuYsdxCmK(yuj6Zrsm_sw1@_YT$BgAp z?B{ul!QG11@9fUaKx2jYxTHnXBHirnK()K`HdZ zXW}dF8GWVe8MN7YOWbQH!Y|M1uU|!7>%!ikiMn<2lvGQzT!xL0bh`@Tin`$Z(HWWH zopqaL%;I>$Q>5f=#frlD-pEBG7ef#NVrS=;uXhL#S05UMl z$!=sel7JFo0rlYNI@R-Xs04Kx>Z8g?ns9CCl$V0!#c!wDKY;CjLa@cmBgbpquA1jB zX69rOQ{>0zbJx))sJ`<3{VNRF0}UhqvDEU|A%GmS*p=KYtLU0%d&%CuxM3ykPOFIt zKaDB@%`f?n&hg#lP3iAdoot;q`nZDn19aBCZDjm1c4pS8^iR*lCcMU zSIZ67ztA6eUkcxm!~R~?zHIAWn6Ldi-A)Mg%#Hgg0@?1K7^xMrNa{=hh8bIY5r6{=^F#5inskhW;0*4 z(;J9jyVe;AB(DLD9^{+7fvw-3u33N#5zZg$%GCzcai)?XV`B`~&5Q{;V})R8vx0^y zUt5B#6#jVKBX&9rnvbmMW0BB^slo_WDfZ>PKAV%{@evw#$>twt5X?a!}&I5#tJ&n2i|Zppu)LyeLthvjTRS>_$@JeMDOv~d^gb>@H&C` zX&iY5R+cjR+K<#%YE6^2x0uI8GPhvqSnx!8=tMRu39u_MP)3H*;52ziZ%S4*F0;)U3Can>q>Lb znpxgWBWXwp>YPULAenGu<`!y64?{cy+Vt{u)#8EdKT$_Hw=@cL+=p z?fZoY<2d~^k>wh@5k>s+tvS0S2ojYHDfdfy?)>$q$}e0p_n)v~7IHWv-lvbiV|Es0 zND*0~NC16r=#5j2_UHLhnWO32O`K=?=K1WUg!8?WdhJ@wGizWP&DK8Nh69UibVwpL zstyg?Q)Slg+8j^`Jk&Z#j5EFd^B9$4c-M+JxMFptRnjI6uZ+LAddRGv_LB9J!Gq^` zT!`Ks^j)a=*a@l=Q8odCCsvaZP({2r3l;DT$?bmiNMZT*2eJ*u-gM`PE}IA}<}xG6 zT`||A>*A3+$Xr<&vsp(-;bZ+bmU4kimD>0C#ll()&cza4Yv1h6RSXOYR46d>@@SB& zKf?cccqOmhq&YDSBO)gLs`UZ)Bap2HP<`Q;J>ye30_EzAw|@Wj^P`g@Jb5&N2OJActeXokuDUC{n!rgWQ!MNH>k@$&WQx=+8 zVf|a4_%?v=UJ~#FM5u8SV+bA>q=wI1eUIWkQ^=mrpZr^vVw1*1MYxUSM6~!}S}rLA z2o8n2zrX*vG?W^=w_o$>=A6S}Ez;R67z9l* z96|pMGQQRkB`J)>RW{Ygufna5tbap4MLDGtj2}(cN3}qsF{2f!YSzY-Bc@G1&o6k) z2c`B!)S^&iDfr??4rziTOtBoK1@DQXYlSZmrh|g|BC({9i&M~iG1nEKE?6Vo(MXbf z>4Wo;5c)t@rIZVwqwg-RDDt@&!3)2L>o064+j9LF(ukAhO7sfq`T|Y7+7DAI#`}Vi zZW=}2jh#LjIF5HO{x{6pBc{=Y5KQ-sJ~Mp;6uI7D$%t6=XYodI94_0fxR7*>rz5Eyl%LmOaj;Io?uVo8#2+2t#R* z)D8^?Jt~WFkJK9%G?VZF@&sKFkG!V!j<$7`F1%G#@vb=Q#d2(a^UCY@*K2K^XJDdN zSSj$wA)j&|-x$~DxwhIBtL$67qmv<#iOCZlYxMt%h-)#O-^GoEzHeKlAv1oV5E}}X zmox5Kvy^I@IAKsd$mOfXo7es_jO48R-Hpm#u`DH(vBk+=^GqG z^!4@qpiJJosZv<>iz?+W_N!`N!D(s`YSU=EO$~kauOq!~@2chpj&%VddXy($U*Io` z8ZvL`VS{ItWy(4io=sR)UxSz>ynf-lzfFnQx@7>)bEOkKn^2fojAglq|EFJ+;V z$3{pK|M5$8|=yg4?W4sAfc+%B)p(66KV+1w2ppaHwInuEjANe4;kU@!~f zq$&X&j^dT3tuTH^Tq!TXn|q_~zq;i0TkgfNPwGl#$^bIbE#c7i^SMK=Kl$0XPdA5NfgY8=d5Y-?!|*d2c>nvs=j$3#uvc#ze=N^97*Y%4Fgd}!0I zprhj}m&$6aC3}Ivs93$0uU5`G9f=$KeZIh@ruil2x`Qg7zoNGozn^;)<3NX?j~^!g zk}p`uoax)KZ0Wte^uShsP=+>R5jlfOi+VKUhTjjbv&@7{oiz2LGn)GvzvGI?+CvAf5ix#Ko>=HG?LNd!oCcHW*6LW=?}u14h*mF7tdOnl|f17F8bLBb;nW z)X;F=dOY#^Sn0q8+Lpt~=r=h`RXxdy?h|sSf2881D_7ZkZ)z$tdj7qn(eY&V@?`xK z%rmp^J-DK}`DIx-QRGN)Wn9(VN9Kw--229OYUMpGkBhnjXzm=PvGw1eMd~U*Qk7;( z)!)6E=(Z43_-f~GTpC)p<5rOppEM`G(65GA_0-BM-7VSFwd*;qh0AF#Z-F>Z0M^kaFk2P_Z9_l_uxpppBb1C04HNrT|j z67C;MhQ@{jUzA0?qeIs!CA_`4#*44H;9CUMT0O+{O`EHqoD3MTmVI8U;Cg2P9G);my{f4dK<|j zbA1%m(NUPvoojU?;*K&w4W)8|8dX!qDN3`deHs!3Pl&HM7oW?YGLcs&?;wOa?(nvd zE01&8u_h|qd}Jbre!tdWWo_M&cE98Oil}bU=l6$m&vi}fjxSakXdoMG`(n3aUsgSb z&eA#~Whx&29lrWkVMIZ0Ixp)#ZM0lx2 zGTz=ED@o7wUxE16#MVk}MunKQNATc{6?@Rg?Gq_1rk zit@=&ndSb*5ALr}NBiC20(J8q{`b6R>;;UgCAJh?t#` z?$7xykG&UTmt)4I5xUVERIk;?I0h}3f_^ouva~%sKW0|al_UzsJ%8J6BP)hy&W(+K zY?{iI0m1hd9xN;5igk&(f+p2JytDt?tD2^q_Uqp+dH!=)kuoIjzJL0Bqm-;iGxBbj z>Z9w_q!Q8(imTy#p_oP@0^MB4E{`n)@kAm>VXyZxWpNZkC(6|O-f4Xt+XvT z8O~5G=~dyJY*B*5xqO57LVtVD)x4!*5c_#QTovr2oTrALIIat7z7|veeAVUL#-c_u zxxrlBoJ?n`ob+{4in~kHJk706i^TauliWJ$b*q^kE*Fu$&L?p;gN|M@p zgMkuie^ZlqUgOh?XU$Meu7a(G^E!(s@yM&QNGVubG23@PFED4uG)_f|L(R1Rd|WQ% zCgo^Qr+!o1K>tZeE9Y%El9MHemN^o-5vitNiqm}HbzQEL9}TzO78OY#tZw*j<|Aso zYhu>%2;0g**hvUW$1@2%=JOKI2R-1Y|8uB1K3g1=cX#dJviTh6Q+-jQGMtbxzuesk`(d-4Yf+QHCL1t%Ku($ z!@FE@n7GBZE!eubKUATyN?WLR2#p{jc8E|$nZeBZ{{AZSxL@VtMXvVUBZbk^@Z@ER z7j|)GX71M3pky>w1veySU%mGi{1h=%fs=FYLvQL68^i`Yt#1-E92J_&l)Jao0;~G{ zSSh7@cZWaBq)~@Q*~xLNvy_s6YM8VA!%xwk);28>cc4lTTZ-_O#wiDq)wcxg)Mq-! zDGb~279K8nC7DD^onW9C8N|br1R2(M>EKuRFs@LemCHjm-)8Po$*LuAw`I9=hYbeg5lZvG_m@ z%PpQfBjW9rlKd`w*~#))<1;R+@8>hl06sv{YjKkn%`<9?=krJI znjFT4lYZ{0I9u3AeRo;oc-FBi?{Qigs^jk7RmeMd-nRpX6!9Xx-|gz+#?C!DNg^Pmh|BoVS}4-p}h0E@*6=D5nw?<{i&O^=1a7^uk_h zpLUzm~-+Q*V+$o8KNMu6Bu5Yh1&OKiTk8E2(2hZjMz<2wD zmzKlXb;9dQGjb)qsPBFhk|?sGnaPA?s89~*d2dIcms52E>88@-Rj2jh*>*KNr;;$^ zaYwr%C+rsE;Xt3{PrV{>LK4g6@nUUpfiAeZgUt06nkf6GmY7WXY=8==2f)9NGB-k4lgTLsU5 zrF-l8SsPc)5h8(Y>&sZjlUL)Wsc5vOl^_{hAE)3KJ%QG}Gga2ph0A=iPu6!+3^WF1 z^2HSpjJg>F=B3U1;n3PGc&tz-2L}`606wiooBp=vn}84V-mjU0%~R%OX{nhnasbkT zS~~VIoSn#rVxGpIOa_Td;z!N*k7TIbcI%NpmtX1%zq#$zKR>?8U8Jvem_^x!x8<${ z3t5HV*E!fE`JsxC>5APMO3vZa8X2QmR5sPS< zW``3jY#SyK>60>Jt!nts_OMQDw2muksBWwBsukw;Rqh|^`bfewDFN#}44h?3zmEla zOseJaAzS-_Ep<-+&OaU)m~b%4S7uoV#bLA_2AV%idDGLHolQ-*z7!OWpSGG!9IUT` zp!x#Ebq)%xvol%}#j{Ao$m30LF@roxTVZg1SdwivM_{bBHm2G;p(^)Ajbe4@v9XEQ zs9pQ}bGO`TzQ`P+t;Wf|$50GSI?AKafbO1ax92Hf4|;W4KV5x=wtrgV_2y*qGPpf8 z!l6U&lfIY_ug~J_4_~SfaAf)ew?a$VXkkLeBjvfIeY<>nvi7`w+jic+^SJuAwChm{ zDM0}i9Y2marB~Bkh^psV?t8j+qQCh>&#lMdb*Z#g_5l<+A~q=AANjk~AycQ#4d=ua zFwo<%U28pdO``pHwkrIBo1h(`LLSeAIef`rKGNl^$hOW#9kXeUp^UF7?)dOFzsoOP zENdH5Sdk+sYv?mG?rXpyoz5o6-M4g2G&O8&>K4cwn)YKd1>thn!m|GGgZSWoAqph& zh(L!(w>E{`sRbO#YyI%;%7}!A{+Gr6WwJ~R5ZZaVih9`exE3TH*mjt%WwdCp7TaGa zisukkmTfCHdqc`K%AhZT?z0~GH9x()UYIy*YqKinkNPSoufV_qf>#RScjCHK)cJWiw?RHj9W#M3qMwV%F z#iG}(C)})b4ubkER-j~TKNmzH>qi6DX4xNr%7wZa8{BK*_FgEC(*#`6ma+V)V()Q6 zFiEoKYEt_XZ1z4+($r##!liN5HHF3`B5`fnQzzxI6_0P_eM<0>PpK;4uTWf8 z+N?g$U~iYL)?{Q(LUuwN(ghqdBhtW*$2${dmYcM9yJu@dw*bPUZ>D^+^qYDGoE=kD zgRU@v^|ElX?e2sFqRa^6k~!C3Hm{Gejhp$8^nJ>e3B_|Ix*QAts@bVNM1(oZIbqMk z)hw^)0PoscN7WL3(aEg_$$B|=t%Si+R;ii+1BFZ3gim9 z!otFi6&gP>R9;A)c6p?ng8Z|QV(}Hq*)VE(=aO1~a+VC%Wy(i_C-Y9e!r0yw0_lrd z$?_YRpmiuuIozjRAH2CE99iQl^zs7y#3HUOE)@4!a-MgBJ-M?v{^nj-#wftWaBYoN zpn3#*gJrNEq_D~E#fb2pRUz2QQR1FjI^n`2!ZEj$q4>9K0vu}y2pmm~poa2yJCg*b zHF@ntNX&%ZAD#_U{oZ=D#;0hi-TUtFog#33(|wfT;gFw7sORI2V?x=y4;zZ>-DZ&MKjGqdwP6nesp}4Ae}6x(*Ap*m z>)Bh#M3$L>!Eb<}lCIn0lpSwmWaLZrC34c73z#Quy;-uFwJa}}>ep5){$`Vvk@m=E z!$u(&zGzuV!y~4ucfxx89 zMOpTpxPyS(EJr-E8eF zarq5R*5Ee4r%G>+B5C`(O>2VHEPq^EnidqcbOSkO1rAWlTy6`$!1GuyOyUrGPCx+r zu)TXorf&87+~CRe^@;w7G+vK8V6H=>e51)>nWz1V)7xh;MGLt02kgTjuABD|b&qGj zZA19RIIFO+BMNYd1WmNHq@<>9p?kd^G2Q&$KR7UijJMpykln+H_w*18JB5=yZ4dyx z3+K6K0urKJC3?Hl@QH~PDWz&!j1`Y!E}*`0t##n#J+YaQsr z1p}Qz(*ky3`R|0l2uY+LRqMGsWxa8Z1Oz251EfcW%MGupUJz$5lc5ks|IG}DnHkyN z>9%^%wv^YNnOETXIS6>QdA(l*(1oAa+;30w8yk}xkH7$Ul@ItN5Fy)i-WPOy?l;Vo z-By)tPOAMo>H|IK!g9m|PluH+jQ=7M02Tc=xf2&xY-l)f~$qR`Ou?Mc@yYZw1F@Q+ZXdsegbYe`o7;MgUC~(&a`;X3206>z;HdV9Sg6F8H1g@`U z1nxHcp1N6|-cATTG9w+YwWR^nzm)cNq0_&Y3czR}F91XRLNeY|AHwc_y4>b&zD{H- z*P*DZ%Wi{Ak)D?MqoVC-rkpk5LLkAO>EQ9$*NTpn1+CN-l;iMoTu#^Me%?%?P21ve z&Ej2JmTi89d0Pu!b)kvutDQkgxXW0c#)&Z{ftH*Dr?wfpbnDkDOiWVOD`hDu^~+VL zSI~V^lWx+Q}L(!iIsuIOs^8h zA1=uQWUrK!t#?0?F!W#<6YN1-$3!hQ%jdhCM&UYw!v*9ZY3{2V|%Isi@9OTc}m+G2)Q!XH=*UT1z} zXJH2XM#lfI1?ad71E6n!=Nhm!b^)8af1wx?g9+rgDli8hpEQ1;OXe3K*npKnEbNtT zS-;C-TCR5O<|$$D*-jiO+b>qUf#~RoDf5W9vi*h-h@qYeU1x{GD~ot~phD>fl>XxR zDikR1J#K2Vc6&pxudc7zdHCI^QtxAYRYK*{c+LlV&^h_}hnEr2?Ke7?-w?Y&NE&Qb zhk=j}hCZeXxcUNfcq$*02ndOLFS!8DD`liHp#3-kSL~j}P+6}6mXK*YAi&@PEx+7R zK?lMkovOW)D~%-l_3!uTb@lF>fDVu3a=(*7mVk^zk)=p(5@}BR{q(*ig_E}6vq7q; zi$SWa&4eWVy@s*I80vQbBEFr%o#bCT5C>qJw%+yNA$9+@%=ZnpJKleT$Ey3i+R@I% z)C_3-X6Pwq9+a^V#2#cs&h}_3%{;Wq8`# zV;TR9GuKB4+|9uhvTKzRJR|zb{phT z9uHqY1^uvD5AX7XdWatNHakBLRJ3@K!ApRcLB?L?_EK#O7YsN+CYT8r<#2Ly z_W}Q(>xK^^P@$Os83{Pv&^DiXY6Pr5l&^2)C+TgmKIeDzRvQlhGPtpI0QvI|#+(T` z-_MP@=*3n%1IVwc0Ha!KvRy2DlG-z0rMUPT5gA#b9u%d(e1<*-enYCJ3`4VJ8Zrk& zDJ}c=W|xrbqfg|#{S*2dVfs&(PeWNAL0K-x@1G8`ya28eAnCUT)*eka+fHf6i}%^m zQRTla&-h>XvY8)v0}JS18jS#_0&(7cnE|ysUSJ2ncG|K)n7g8(K)^wqE$_%%* zLg$wh1zvbr1zw5gECalsI$p5XgzSEMKI(1D>OXL-KkQ+LM`g7b5dcWB$UGMKf@ff2V{LQJ_ZNmWltYSZ~q~6r!2ls^ct9#kv z3w?uqq=x?5z)>aHkK5BR;?Hi8s6^0xtnLq#*bQRo^!XS}lna6MthksoV8&|h00(wI zKTP`;C&l(=Nz=6>-5VNKjEbulexSl@hdKaUK~lGUiuUId+slWe$~fwG;^N{@PZO^K ziUQ|w6N0zI0BGC1e6htDihA_=1?FF70sw)4LSZ~hcw%%E1@Gf`^VlZfl?EWT15>$Q z_}s3{FYnqtAMaMzpLI{0Af(_jt)BZ!2xuJ03-G|g=>dqxNgk2B5FCq_5h8dRjIygA z#whs(jw~3eh*Uu}OS+fe|_%Qsm(0Z>AKx+d}sqgb2UFN0NQ+2cE!l z&n!eTk7)5AwDP|sk9yt_J})p{H)h_E(B}i^d!3Fa;d8Q=o(?mwm&28@3Ep8{u{1Av;xD=B-^(CaD={d`tck%Q9#zLFd?nlw^oiJ#6X z5kYvJH@>tC&22REHx62FKW*^zCuhJYl;C*3Gry%Iirw^hKL)+TVEt$kDs4Fu)owSNMU7yv^+J z8e!Ky1;F&>P4tvKLs-ANbfi9HOTJ;%K3RGf8T_T2qIe5Grqp8KkIm1 zeIe^M?bZTLry%3abQ2)y40vsw?|E^pU*4TMchqiiylmWhM|He>dZCRHym7hItk>Rc zGV`u7a-IN6o4C)7KmR>4>tcsD+3N<`3)S#0-^)qIeZ+^x9{ip-MK5$?)Q$`1SJKz5 z(vG!Xf^CFwhMg17PpoG%`VRyi6K2pgsP5dg{9mr!iHP7#kG)X~uh-l5eju)87`oY7 zeMQ*DJMI)a=ALeDre2Xc9UdcL&!8{6!je{!xl?2AF7+6YUTqqwbg?pfRCd}MBpO`S z;J(|b9*uwX^9oZQzEHbAH2ND-9=`|QIg4ymx`B?$c4D@r{^q`Bihnfp{pEpmz?RU^6s@PnZCbwD1j%e8Kn2#tM*xX9itT-e`m(RH zZcXYiuA3l2Ac^_9x&GR6WHa&!c!pgbis_n8ZkAo`p=%$saFe<@6@~k1h3{Utt(3f> zNBZ079p{L_gN_Wjz!1=!RkIDlx6--2HEOG$UyvTHL}RIc@%7Y;^dcE$VE=?CVv46W z>U%SMeI2M^HL&voFue`7yuJXz|Letn6e`h7#L%|F``P@=M(O-|JldEfMWDt==Px9q z70=_6DPFA8^R(&IYTL1Bzkh!IGyAx@_MZX(oz%u6X(}PN$^9(x7v30! zE0&maZWK>$$|Q`taXP?yqx0A1oNUEhQskOe=|Wm~c$1 z1nLk;hG5FRS)5k4ZGoWwiK_@!E^x)Pe2#wnrZnz?MZQaBCVGE&&B=XM|V+vA7#{5G3nb5IoK_NiQ!5S}OgTq0j zuw*l}dZn*sgV^G;2EUMAJIqf&-!k*GwrD&QWg6qEb1$%bbL8~m+_%SSIbwnUu9Lh} zO?geKE;rY2^6lYEDshhQ$4{e8234e_&G0P?e0Jm;@m1RGDyo?n=c|Ko-&QavYg)}T z_idK-Xom&=5nO!|6fTJG){M)9+TTixGKjh($KihmlhTy%*^C$b{5cl#OGEy5K&+!O=x&}*VE=OC|Gq(%x2wgL{ zocGP9JAG1J1Q&2#Jl1)F1*TFQf zX_3Dj(W)QeujdHio~fBKp?c*(ZY67H?*|1EVMYB{T40|Xp(Atqjpu#G0Sha5b%WgI z`HX@d0T>z4jHmPW?a8-U<6jbxBAu&66wBHj7a7?j6Be)xdeTbrgnSuD{z$r^9=f3)rFAlk7}c098iYe*PYxefd5ke&&u|dlsgUcXJkMX%q#( z*%gU{t2=|Iy3U zAx`Xtp;8X+!jDIyrHXBb8i!LvZijE=N4Xovn#LO@j0NG{9pL|P?5hRp@tDKh?x+>a&c+?1`u&BPP`2K7H@%eF}8oe9!bSF z{y-V`U=ddv(uv!%)?ZnTHy($|;q>Mbs1gPz4_=4d16My#jbrO3kYqY%NHd|_t6RB6 zK49ea+gcFkBBAt937~;gn7&uQ0)!>k^m{A!vSHv~cx22wQO5ZyM21@;IQ05o-+b^> z8MY`-uO9}+(9pf_yc(PTmoS3>A#-NCsCwn9KRCmczmRsEUMnlz}I>M!ajL9X6CN}*Wsno$O}< z#K`&FAKC9jI}fMk$btE}qIq(Zuy{ADKn+xt%6Y9?o8+;^D7&3OxCohumea-Iv#%jk z(D=nF6BH{PM6^sJYim?(MHu#_px#~=AEWJp`Z7`y10$pKmzU^AGR=V|PTcjNTqr4p zG_%7cW}gbHSoci}LP}*iUHaKn=EUAuDFHzZj;DOe1yC9ZcMIs z*-&?C+VTGJDOE;8Yu{j{QmMP_fx}ESm&}3LUP(8%P;#YX1|@m~YH3zqF^NJ6?kjp6 zPwUumo#I9b3T6z+cZSKak7CN%f_;OB6vMlWAl;eeW$}FNLhUdm?c9Wo(yRL;3wZ+) zWvtwKg#q<<;NO4F;wQ~#b^Mu$US;xQwHQ^I3L)?Wd~eJBsTGv8m6;QQw|S}N5bRJ; zu7DE|5aUhu61Msx`nEp2SO|gc(pyLqw@BS@U}AY`k-Dvy0DMiRihs5u1xj+6{EQAG z7Vdj;vDiFnfk@-Jn<}shvp<9MEtkwuJaHhY*G3FA4PyfTTxb{dfp#!u(9Ji?DXzdy z^fOO%V=UrG06eTxoX^wt>L^2418s-qE!g` z(nxQ=;3N1OqC+NnB1xdmasO@QLN0%qDZYCzI|;oEDq{M>^Vqf#DO0rg+TZx_nK+65t49edEJ5Z8J5o(^5yS7I*K+QG^ybtK`VOf z|0lLM) zMlW~YT!_C~X&^o!si}vDuY(yak}tqjR=|;zQ1-j9CQvSRJh+FTu{AVDDSBKe^iL>a z`G@lQE;p|A-`)sG)*rgO^ii#V9^DF9)$ny1ks%*{hcQghr3=Mrqk${eL+N_H3wWnG zueEnBaZ@-r1ZtOeKU_bfpe7-8V?ib+u;&7#JX6Pr-09)rx1<6r>$_42%Lq;i3k?<> zqq?czIUrKX#Ybw`&{$p4%6(Dc4^dEnt)gYzIarrAqd46{-?kCLeCEdr1 zn(`j}_hN?^GL{xNbYoYP-{z6pk!bhG}s{wP;BX-;FrcTDg@f=98J`lQS7+ zg0Z`+L~s&P(kfL*_6^PdNZ8uObSBMeFWBH&Q>C9I9;Gid%SBt+8hN#02j?WaRn2V4dl&($w zUNWN46E0hmd4owlwn_Mla(F!k0*s&_d@QvThx17Z~ldHRYu$trX=NIpzHAa?2$;KrTDT? zN@-?N12_p{Z9e2Sc%ZseCV>lcz+FfGD(9=tSYJ{y8cR69t8#m}5+9H6ry}-8z$0Hd zwmG+Sb^tf*PhC!BW7bC@ltE9XrSGU1y@bjsSiMVdF>qGK>3+@Tj^YYoGav3;^Ewr8RjAsam?TASYNLABzDZkM%ZvReGl0-nD z6Gj%FoR*TWd6rBpJluQF`AK-^;Vs^9e);FdKM7T1f>ibcI4;M8S?3c-Di!Z@Gx!)kjnuUB`Mxis#e`y);eHj;+?G(Geow#XJ&VKbuUU2ziWrG z#dK+tl^Z@i!DZsv9ZVC?%&^lbj&d|KWR>e^RPQ$EF(Oh)Nx50fG8ZajLGGpq8rBy_ z7OEy@Y0$q17+FMDO} zYmt$C^M;?$Ov34xEmg;fGYrbIzn4a9#>EogI9#f2^=^H_iZ5i)C>b3cS7p4O4pu2O z*F>6rNRVA6=L}PtH3!c8-!&+isv`6%vi+C(0;_58n$4=H~tzUE(yGZ`KoDJf*#TwkBoP^-fk- zja&jY9b3B`*F-ti44!|I8rVj@4(IeH6XuH@PGi8czx7iwu#^oERcJbo5Ei&uwFt*V5yTDRe&4DaAyd0oK{JwW*WcPY(JC>$=fDgW*(e<- zwVVT2*ahp>3DbdTZ`11+S<#I(i$yYT@zkn zudT?VuBW}xM=uVvo6{<1vkW$cyROC;Ck3su@%-9&lk?0*RV=WrUUsd0_&}C$_hvq> zI-DHchh-uNU>1Y3Xr43&i>Rq7G+It{iwFMe(NloXwvsf zAiK~AjaYj-01wUKdC$ZNvFevyfV9xo-KNQ5SrjHyt6RlHlzs)TGe{1D@!^?WN2jHX zM0;b1lkTs}CeMs?h{L%1C^a+lFX_*+aE58SdcTXAhK>5?+i#fF)Gn45OC=0NS`sMX zj!kK_^w{u^Yg(rZDv%}KC#vJ&Ukw1b|Bw;9%A7hlI{MI5rUDJYs1P*Z1~n&az624%w)l?S2384^DNG%v$OSahru3c*ea)k-@8zLeY^!_bJ$myJ1w>EO4g1(PW=`HR9&K(|jS(FChR3rAoT$CZ= zdC|O^7&ae4ZMQMc<);I6&YqFZDMn$}`Ud6398CD(g(!i>!^6>e49YlhW(1=6Zqf!= z$~y!z%*Gz>L2WPb`Fd#qeYh6H*%Ce4JXq6w#@92)g&2>gLywte>WMp&Q+Mq+DwcKN z9Z5;`_(_-1cx3v}5*ReShUDDGehIe(U{eH5 zT-;?|L_>@}epNAuIv9!c$VCzP_G|jd5O_7MKY8RKu*im8T^ARWu6k~7EL$t5wPZ~! z;r_&*>9sGSuzUbvsV02b@cV~3DlS2$fYY{MROVr>MLd72KmIX+T3%JZOmFTH<|8;& zs-Q$khCNMQd1>T(X-S? z8!QblNKsNT$^T}1(kCff+Zfc1X|6A6kO5Cu%}Yr_sU$Qi#mk?8D|tThVN5t#f1WqB z>em<8*HrHeY@xeBDC=XNY-Z2lA?t1MiBsA?eMDp9z|GAKtFu{F?158DI=^G+zeXJn zyo#IR>A!9z@Ftk$02LI)08S*B3hBIE=1n5++p!sT#??jAsPP6$733)=%%>QRr;UisMm?EFZB1<(q5 z54NmySACIvK}Ml(A{L$#>!r5=@}EDkMrZPhmX0qjw<^dIn+W{vvE$v%7^yrf0vWug z^<#-7&8lvx9=E>bSk^hpN*3Fj*n6szyV89lwT)g{o;_|B-e3#5>)b|i3_iE+4Ecfv zI&$k5r$d`rA9sB!7WcT+Z`_9x6v0y}9j`1>g}zO{KFHQ~3oN2%>`0C$6>-#wZF}Lb zowPsSg3rNd*45P0q>O;iE!)^D*YySdt~XZM^I@*X=i+j-#-SzDkz#UlMkgD{(pXdh z2E6!wT$-P^!F&GKM^wIS`Sh|iWd-xH>>qc)WAD((2vvV@+Stndt>*)dXcp9iVZO#+ zs50GTs$22x`4U&YvkoF7f?tg;*1DQ-W_r+zaaQ#Zi$A!1+~jgjslLBopJ1yyZFlfy zb*N@#chuwIPii|E`5Zt#84Anvp80x-)J4X1{dp8-bM?y}sq6j|Xi*WR9vn2tOAHoO zR+H=JeDHf0$Na^rZ_6l2uhI{V(q?`9-COyVRio^*E$gvyg{)1x?jNb_DWeNS1(O4tyFav~R~xux%ZAv0mHqR<5JyG5K1oZ8VzKN` zg_ZvqhnO9;g@oQt(eOqYMd;gKux!KAN;|t=24UeiGOi*S)G!-GOyXMKG`G=5-BCWM z?RG`g=A3^N)t%Se-c3~|-U>JSAc&+QG&H^78Ip^EY-L#W>5`QG$*MGga^!tUb1%Lh zMr=t9{`QPZdA)x&B~s@?sCp_^Ag0!7k2=QNa(Fcp%x;SFgM7!6E*;`Nd}I31ZrGWn zTEEMY+8GP%FPN^0u8As$n#R#$M&X7$85BOek-<3_W+Sx8{eHC~rJfsw0m~gPdw(W^ zf@ES7rI6(_6Y#Y@sVD)+tu*>~zkc_fxX+i?NPG=h@~#Yiu2U<<=`KR}Bh#(qcb2~+ z=0ea|pXk&gj$xVS!29zZ*RK`|3no`+)D+^SG~uU07#0JfbD$j6gkXSmmg?1eL1_`F z@;9;u&+4Up(5G?e_3D^7m?;D-OrG`u$fJ@~I~&S<+xny6%R}YsgE-0S zd)C%}CZdZ=OMnq#3iHTaobWyN%NFa)mbl-v{&hN^L!kHLfcGfi_QDW)ORFsua=Cv1 z(b5(SS4mCkxOE;w$h(b|&5u^8Zgooz*yaA%e&5rtu<1SUcFbMP-L>QKJ`EXtFE`^B z-oGs$mbs#gB7f(8{n`1E!SPc?YhN1cE2k@u=lt@?iW|`h$H%sZpZzlgEu}$&1Mcx^ zW7ZryCs`iY44v=B_CDLj%F}(j_ZN8GcQ%1|bxq_^U%^ha!BF2u;VmHLso*Ro+pE{M zHA$Y>x1R+R5=8cY?_l5B=@F;Ys&4a)0DMNF3Z1_>6LU(;>y6}2@a5^e&UJ{&*yF*N z{-Fmyy369&h!pAVN6ORO=@}MRmMAA26oeXjmy_mWma1x+2bZ)v`%hrrE-ar=!IGhI zETpj!sFjg^-Z(JLf9d-hFkgDT zm(Ou0*LxFVgG4+ODP!6=6f2f;^)Lmd?8eFL`4a=;GTS?Yc&-pWkNr2&Wm?+%RgPv! zt1rPrKl;tn*;9TTI~p}-%+4o%4Kb&D$v+E^s6G8?!Fbvx^nA}KFRA59kTb2MZbB6m zpN!za2PqmJepD+R_LGO_{l<9FRg_$7zg|g3CGmsb z%U`~Z9M^Qha-!Gm?*-;ea4^zLaAuRJ3uQ-3?ri1x6|Hs3Rsrm2kYg`TDK%I0dX-Rt z3BgNK7Vw>05*vziY`jMzHw=4fGsh1t=@^KFp+EbYu@=q;a-<#%D;62#Iu&`{Ktx4J zWhEYwza_H7p(SNVzk`iM#&UdmGsw(;9=`v{&>m(c%yIV$kRBU%QRgXgTPi$XJB`WJJh2 zyU;gg>sOhFSH{Qc3(cV?QtuQ-%*SbP6-Rmrku{gTu2NXXL>U$}YAs@0K<;l%K#aopPUkE>&;HvuUGu?r;-v|x^(N7#{<^3vkSPZfe99vjYTGz+Ji|cz*t$gwy4EPJ<7$1qb}< zEnq@}>`vgR1TsXIwF7i79c|W{hhA?ZY}ts>gd2?SCHJQ2gcRc&v_9L%S|yEN+@-7+ zRLFkJcw~>tczNq8L=%pMi;MndQcKhD2>hX&w~KGUM|?nfnrEK1qc4KVRz)rAqsWt1 z8juy@Hc4||&_ppVz>4iB`R1MdV@$Ji?nmii7FkDlkB{DZS!kz^FV-Hn?lYT}8usTl zUR_ZFy?fX~TbZvi3{x_O0nqECU)bYWEu+IRY7)_x{YQBFj{M)-TgNUZm~;EkUN<}R zch9lIJZ@WHE7l3wGk1Sz4Y}~{7IPNzdeB4k+pl4#sYMwjTVMwinRCQPP8B38mv@Kg z6m#ph6Ew!{PfyYW9#^Q!%EJG;8V`aWe%JTB_c&*Y0-YQ>))@8MH_i<1p|pHfmCCi+ zxew2m9J{a#dY^Q9wov?~Q{Hv|>+s1kXFS|Cvtt5wAW5L-Kt7Xdq6V&ob2D#R?drN1 ze;9coPZ&xNN#ZgLC{{HI)^sNJyzXKs*MW6SusGv!4)gIU(Tr-3RQ%P!Vd}suSKr~X zrAFH9#M4U>op!}@8Q5sU}7_?qFWh5{bn5}R=<jXZx=4!H{}VJH|vc9yvvxvn(Ko z?Y7#~5I?6L(Y;^WPUx(ER4`r}Gteg~7=h53SqNbYY2)jWZ zfgM`Y$v^c?>Kjrkml}hl-i~>`d81gTK|<#ua{k*K-YaOS6j%q3?`t%pWD#MuN7eWq z_yO_Z*n^GimMc<)BHg@##EMySlltX>3n5+wl?ioZq+@|fnt{*bj!i`dJnvmQD>q-M z4*`@h|F&BVea{4^mN7tXHwM_C<43LQBQMxAx&mUDyOEA3SuhxUS1bI;spoZX(*F7k zy#%CJY@|{DG>qP->~NwYIQMW{_pieHfQ@BMI60EbKZQ21w6*m0%|M`Y*!6)g?5j3O zxnH8rwv+T|iVimFH6%*S>$zUET{ZL#uHzPf@_Jf67+Vd!C}1W+gFB zU8O*Vm*g|yFO}ZLRa1)@V|;Ljji0THgQI{)C()siVcgQh=qG&lPZV0+I=eR@>=jq4 z0cA_m();Z0*Owp6Sr~QxaHMfi2QSOSVD%+y^GPS^>vHOD{>S@Y8C?}Q9Z8_g6l?Q<4=+!9RBbaLwOUX zkKbGS?3nqy?#MIDdy_icey?`%Z!>XT4A*!KjNF_y95+3O`#p|d32^m=JeR-|nkpaH z&Q(Y+{lqOr^Iq>RB<tlyN2{PWB$9`-%f>nThmyg7*$^GekDa!3K(#q>YwwAXmRq* z%EQ?=2(wQFB@Pt%IB!$N+|QWbxaz4A$j8!SL@KldIO68gxEk7tRZUv?mG86MR8`!( z%dSTk>H-U;)E=zW-lhlDFxx3m`77G#?q4q~o@^6;rKzg-W{C%{^;mf7lXnACUWOPd zYKe>1GP-krX}RZkG9ny*g4C6EXt=T&gf?f%X;2rgZW(Acn6>Y>9uBB;8Bx3Wy2<|} z(3-PIZ(;Zt@Dk^K``VIl?Ea>-nHG&I>yGhUH*_2*4IC|6N73|!F#}*!kYtP}wGB~c z!JKJWWPi8LZrPLMnTj!ng%y5U%1{W5SfVK7h?x$B5mV4Os!;|&%f5ft{^9J5h!`G7 z5YdEVOrrAc+Z&m=;1Z+kd0KhZbZ+@wgwYyeGt_C(JlNrq?qp;uRKwJo*`wGG##{7x zs}}5}iu4YwZKypMEHq%PJfJzV(U~3mViQ{YjpXA-ztylHH&}BN*6YBo-0(}+Ie?HW>Px8LUE0}TCkoE-c0Xn_bYp{;T zsY6!o{1NDEL-gTU2$+p{ZQ>ZX?_UI}Z$RA!*mE{CG!&JD=1DWYkULx-ssSf*mzR5p z>q-55QOP0f>NwwkIoH-^5ZNAJgbTa}@kZWXBz27bGsW=!^LSUZ_jG^h0r|{&K3D0L zkdZ+G$n7>Q}FuM;6~MV02E&PGJUV>1EVry*~j`_rokxEc8<9Magl z50j1G4Hpk;mZNL=rBltSivGmv&H&r36l3BmtAU7PA|K0af3SoQMXKoXWFA!M!M8iA zN@z^I{?ZirL43 zYv;+>(@f0Ezs3erM}%}ERrP{oaQb%=U~yzDyV>$qEvHT#J*~Y9ZC2)1Y1dUE|6MUFw9io(o#+ugEr6ND?Y*xErm>1+A*!5dIL+ppT5qq)ECy- zVEK)3(XaYVbZ7o?01{cf1zk4Dyx0)zSi)*_94Apb3O0FyI-1b z@2{N@lEn`ccs#BJ%thAk7Q}r5dnndj&Lzw0pMn6L+oku_%I5DLMmkz=03&|vs%ihlB85#8{mBHF)fBjA%keW(mGmh1);xK9C-fawGH9S z=yQ#TgGoRX2X3k|Pd6FDI`va<`I*SvUMyKT@nZ z;Bq-OvOftr0w-VEw)Kpk1`A|OSq8vuQlSLF#?}Q)vn>%gJj@d6zs#83720N+u&EJ$ zuIV&lrHFA_cswmg+orn_f^Hy08SsUCpg$N^U() zJ`A9f^{*E%%>(VL;v2p~1Wvz2ID-vSt&B;jVRPOsu;E(`U1CLt(-EjVd;@$W4(fD- zi2L}rcqxJ@eY<%wKTH4NmX4jaX^at@JaIf=`PE8SUNg$U+Q$iYJ!s-i=exuoDSZ!j zsU2z>WOVx8ejIk)Rjsovy`eskISaU+?E{13nMa5iaz&9xrezR~WiD1Wm~ry6D@Y_a z^Ha60;$wx(^IcI(N^anH71+}DkT#KeehXBdzQ?$zQ9OW2JBuB2wJgK%WgclGo_Ax@ ziT@z;psQ~TB|NMLk9}-3uYd^vi#k{n>JLB`IqdvFzrVeJ%XzaIWdnQIm2sv|obXWs zdFiUbY#HOxVi*tov{jhz$@Q4v{{-(uHJEPWLSwss5 zR*7xI^qZr!a$>KvTr4$k_9q&yp_bPn z9kdGi7P;C+kR6F1;gBhCo$@kwr$xxF0sTxpPQbjTSdtdONkI%Mt5&bB_W5kLf#=O; z#R3%FX728fu$t^(0?=*mxTWNOjFarXQ{MmFh_=haJ09b zkfW}{{lzZ2=P?lxk;i4)dfuER_b|c$&?Kbm{>Viban~QldU3OCTie)p3nCj2N?ko! zzI_JnxN562N9VrW4!ZrubcS(BufspK;UGO#7W(S=A~E{qLI=7@m$f@PN1)+E9%RDkKZqLrJOg{AuMG{r>VF=|7TgBhL%6IwaxPR26y zY-v$P6ZRu(unx zEG{BCGj`$63jL0*wee_rb+~Ev{V1egWB*6fH3rx5x6vkzZ96x%ZQEw!G;Zw1HX7S( z+}LPrHnwfO`~UFHWafU!?A)2XyXW_u=Kx))iO0X@=jipnIb@Z6T$#O2V^0f@Ydtki zPQuCLy(FZ$?eHLIwVL(i?d?LluB*YH=e@K{e%{c#!N`9c{bo+Tkb(kKW2mMIip6CD z5^rB1ks-jVBa-490dBAGorq%y`jizEsTU$4+ z0*lee0?^ctV2rNC!tuXjfuIQKB$#yZWB|NxX(O68pt-XZSxT-0IWJ?VBL$8$YK}4Q z=r>$gC2SOGmmX3GRxpacCc~7;iRB!YjXWC04x?vP&xlA9K&dxTjIk!G{%ISUPi03u zYHU|ef&Q+c!ICb|yr{eYsXI*XqQ>Z8SEw$ok|KzzEj!xBmJjn#%Vnd`pQb6UvaD{F z+{i0dQBO8Tn~agg@06IGEl@E!yk)7Qh!Yl^PhuA$+~Z+8{Y@ApRJy!uETf{T_n8-w z6!Bd1XL2lkWg4%XKGfUO{@>c&uTQ;iiMv<1(6Vq;j-oID%t+;C=+=7SB+B9{^t#pR z1iZmd!~SpkZobt`@|4}_OHu|)-6)lsOZT-1XFlUw$|Ezr9ZFcIGN2Oi@Qxt*8Tgso-bnFWZH2IXfew1CGqwblsnPZ&zzVdwUV& zce*HL9EP6z8f{L!JNf7&HijP`-9OHU&W-rEN?m&XvN2sfJbuy{Jr#Z?%7K^ zg<7BRY@}ZFuxTPS1H$;do^%`{afIIF(SDd4;sRwj{|NXO0XB@KM_m^BuSl(nrh_}XfG z^n2Wrp^#J&xP=ZZ2%_A$rF)ETsrLGc++cP6r(P!R;biUYbbfG!3xp`*t$O||E&rDU)q*BUnZ);O4dRzwF`nRQ2wsp3+G;kEHGzjwRx-){lx-+CbgCy) z{wC~iXUaKFnY2FQqIz<^<%r4v%a>%)yUTK##b)_SaIF%U#hMV+thS9O-C1fFE~*TY<%aA-O5fQ z>Bo*5)n?hjpc`Z+MQi17AmuH|{a)pioXX#ZgpF0)r`om(QWDu>z{69B}H`MATU-DaWP3iG?B%Y?IG`LVzZxM2~Vpt0tFB ze_QaK7fg$@9pL94dOgz*0l)xVCn6HwV~Oef~*(7z@@s7X{WB zVI2ACS{g>(8w>K>CVc5@%Wyi*wp09EgoR3qObJ4EewitZrsA_*PoFi^-nuT7Gi%Cg zXdbV#S!#9NeHh+Zg(*lbjLV`-X0wQ1*&uW_IsdX^d}_*_VRZhl+Qr-d{iu_suq$aC zTVO6&W(z_F4YeZ8Mr+YY@p{2iBo-@+Zo{HyY#E{C%7+_?N~Ev!I2sUX z%Qi%}W=bG4cHlR&bda}05GgypT{gFNP%;f*b zFd!hp{0)cw12j{_GFl>UK!$&Xe)N-DCVVH2IRd6I9AxLIj1D1aT*!$4Mec%rAo4Xe znq@vEzv8>a9F1P4-iFw+PglmX4ejz}wpcjj^4`V8x<04uSB%OE3)XDrU#+tHU?w<{ zU15qk$q(g81z_2-PiCvXWda%&y);=Aue*0?lWRIU)Mb)2arDp!NuAKptrS$`0Uf~h z)pj9uG5!hN?Q|_Yf(hytZWMC&%{(?@{Jt=(v(uf7mA}&+4 ztzv5vRMzG8t#uAXCuDA#&G*Ag^jy};qM|A~$$nB*uge0LSWs+P3`KN5l*=y{K06|T zdz7T>pJHJ-`wtTg7q-Z0OL2QTkcz4p95QO+MyV9KGziR@`|2r$&7tg(?~je55P=K( zjQOeZlDOuE@l!u`K$0>MbsQySnR%%{sUxVP5=U@Qez))yja#ta|J++asBVJ3R`BdB zk5MwWL({b}Eu$49fHZ5hysc<6sW<%+0@qP5P9uR48e^&UyK(+DJ2}6E)!g}<62ns@ z=a&^Gb8TCqY+|#j#av`{wE$C-CZ5grm-iK=L($ID(u0%LZ#&#O2YiArAA11li-)kh z@^5dRE!Xn!faB%;qn%N>7*1R8joBdEX@7Mh_tBWXihwj3(%akjWYwq;dI_nasdaMK zQgAqg%jmiF@p^?Y%o&Z;sc)wU{5Z?8NePb=YUwggCQ-WRIPf*i=8$MS$deiQ0G)>z zmgKG1y=y{D3it?^ihko*yiuX4Cw50o_0 zZ)Z0@9OxMdw`Na2BV$#oQqBy{m9Z{~i{Gr%d^hK&K;s^h`x_ynZ)-!^RgKc55sC3S zscL(;t_I5K(T9TW8RzE$AE%pdC_xtd4BW4yn4k)X#hW=Wd=huV}Y_yF=%Ejfq%= ze~}!r)+{WQuAlx=a4s!5?cJ(>)(LWFI1buCcxC zr7Y8w%806HgjQ`%Std@7K3J4$5fqKxz<-Sl=HB3<`izk#$V{ z=09RnnKykTXu7cC`LbT!y1D}6!<8sc#rQcVpp3Wsm{)Jz*AdrTMK zPGY|8ScVST>NU%G1@Vwi+Iaq73t(e|^-D8BmAq*6F*an?TPldUfHU-%efMC(wJPK< zy(NFTN-~8mbt768f#LQ|)2*#N1%#~g$N8mlO3?-W8 zPAp3*$(1YgpOR9hhlu7$MS;TdqF>H%3r}c--|{*wr#*gJ#6TW){<6j+O`&9hlkXRf zr83QOh4}WfAy$*l+`-`&D3(9o#*9f6rhwYIPoDrTpq~SutN`}A3N`HHeB-KJpE4`% zq2T@8d``N?hpS8yOja@V4+xL+!uYf{P$XHs?Wip$5b2L;==n@9g+!P)4k5I%EPfns z-!f>%OFl*m1mD0&VQ^1<;UZG7p_ecO>+&K~5a_SPbZKL#VpC6{K=_)tfOPF4s;LR_ z?Z~`y=ov|hqRg_SeCLWqBqiIMM1(FtL>UWm2=BYv+$qDE)-M(WNu$ZM;> zMAC04Di~^?Y)GrsnzwIqk@bCMY_sfr5OCsW6azJ62oT?j(&c@6Vo?m+47qGA9rDFm z+JDXlZW{-R-RvbP{ciO<^cB+Eb&G4-jhmjKP=&+NM7q9;=-2OXi76Z=-oHz-^ssh_ z66v1GPb%ecdgETXKr|HajwO+OnkDujtOl1n#rFIdq0u*B#z*AwxWmcB$Jd4qThhdp z|1ryL#+t$WuXT{v=bcU+%3fb!N~`O};ps1OSBPyXf#5R;nV3&J`%qqXYoW`YTWGRvwn5v=66-D%dbVLE|Q?C~utw)`S zea|~l#Qapo=!jV`~aRQ?o8;|AkkVvV&_@ak#p^=Hq*zsn* zH~nSJ<^Ep%jXwtn5EPqt5=ZfDHKU98JC?2lPR}4`W3=@U(}HVj&xRwPrpOws935&} z&o5>jGLI6H(GRWpr^&SxjPrMU`-EuiL~jtC&#^mk?=o&}_dOw?6QLTBqFCeeE~b`iYj=c)@4RD^Q^>nvB9#iSY)wph)GI6U0a=l(%#fQ&0rld{N};B@y(+I9T_) z%^4V7cnx4HXjP1?A3%UoAPoFwH@P#BB%dM*y;}O?yF&3-i-y3M7(3$WL~}C<5rdRq znaJ7Lzg1KBr>2dn5VGjdq!Ou4AOF_0D^Wcns+w}F3$9;q)zE`8+9sJx@@i-UNqTgV z3;L-Ggm9QMEvyJh1 z^zguhte{uqB%Y%+uYssb8n3Pq^CkIab=$CI*o>8Qij}D|hTZ(w*TK_}OhQ^`5l8J3 zdghCnrz9S9kxXzZ%c587iCKmU7Ua5NSUv4DFTkJwv~zNDOjsE}8LqQL(W7agFI_wS z-BAyyke2@523CCgQb;W8J1p$h zANz0;=jc-CnB?(h5~0qa>=84%bLS7sT@7P^Vz_W7nL8HPg#B?nEvbc6POPWa(J?r9 zx(?&^en8yOR$WM4X%vNFxQ4N8` zdmo)XT%(q*a6hR3T8emgq2X}m-25b4P9N8b$ndoOZJOM+wmS#|i3%iF3B9c2AI4?) zp@l`{mAHOiIZ`HvF`Q=7H&&~^_ctl*&+{b52Ja(h_p8Havf}D)HL-t~W%tc%G-pez z-#z~~cf^QG{`V@yq+e&r7}8XZswjC0lQ23<+)D-YPP^CPnsnd1+lL*LbKioVA;!O| z>^Z#nc-8!bR{7rJS3fEsz8WS={jRR)oN%EBdpQbItSJq-FfMmxh91+se4ei_O(#3! zG=N|07e*ZoOHMr1{rl*YgmO1}a1fGr9kLN`&aNrVoQJR7TYgwgIq;$nyxJ{u+c7vk zF{DunL$Zp#`H$aqSajIeNJa7X^+H+(Kw#sVtRa*7tC5c-Gt<}b-@oE|W;#SCx_#%V z-0gFCY>)SeOax1{on;`(P*2(H8Iy_#=5Vf_ikM5)S8MjHZo<0lk27 zq-LUGr2>YeAcdNBBT@qE)ifW^U-Q{!zrcMgrPPQ@PB8B4Yg6Y}O8hLF>8>QR`1jy2i7L-uS zPT6wO{OUq6ypVJBeJK++wl1X!>cz;)TRPv$vIG?eH>Uht6@TFuU>jqrsslD%t_BHHC1t{uHL&P$EBY4}b! z^DKtvUt4}jS!Lbrs$c6GDa9$xsP>W?DYmv77Vnc#BtUl0@9RIQ8rv%(`RV4kqA(Y> z=PC=KIynK2dlE98dg#L}y3nt^BoZntXG#gG@rRh^+cpZ0%9=z2V{L#tv4Mad^eq}4 z1tO52Xok zQ;0VtFD-`W^F$6qqIb5pztIbxp26jh(>vb!ejz;*qjP8L*;;ineI|2uz<^5JW8S+S zfz0;{+pd0U_cYqV@e&B9sE-RIn2B8_|5ztYw$%}olswJUjT^ive(WFb|LCet(x{01 zle4Q40gFJK&^tmQAHIC3sXQmSrBY|*d2xn-0TB0}u67kHN zyU{2AFD88p&wB`{vS%=e%qAVhpF<|s(- zyD3XaUz#UJkdln+q{@PYkiG;vt6J@P(tygiL$+sR@nEVFyarr32&v_A*x9+(gj|fV zGE(U2oC(xFXKkO6ttRsJwi^hu1itk~8?FKry`TY+X%iC-JI*G5P!jjfN0h z#^4u30Mxb)I}NB>6W%hPp6=yc1ikmdbpCW`42FmwO9D*MgQvN{g-@VFC$tVzSNbHh zE*d;$w&EMR^UVr^CBx)`nP;p7N{9;jLt&Y$7={F}%fW!$(}|^#3uG<`$uIj3tXpE) z&F$U~0`A7WbTG^s%76Wa0+Uc-K0^MjNm9(@r(`0HCXs-9(_zM&{`}ET(zByH%NAL} zsqh}OihS@ls^GeHQQP#$MGshHvk)NCj5#IA<6ouJ`h+<6zf$b{QQ)L&?X0UadPRk} z?xI@Y3FwDjqt0h(qJR@?oK-I=nA0(4CWyD>3Hs=Hbls`lZ=*+5-5JHBV_4L#@95)^ zLJ3Z5E1~7kIG@w2oOJ{eV++o+O&t!Ayb{*>E2gaYzfyYHnI&*PF}N2bed>&u6jd{~q|5`Mz5h@CO;5c-CpvxQ7w|7d=MfUKlT4#2QFR$Rf z9JynXIMOrFCn~rtZ=9-WVa^>#*H`uOK()6+sED@AnV8qfNx@Jg zfb*VXWgCW7^LdY3gw(R2#1?RNnTWtGI&6~S0uuqibvQei0SXZ;Dq_LD{$b=>q0dsG zZ@aVjZ=YwKE4AiYhKJ8Ob3~IarQ!J7I0Qs}$MU6hy=HjzI2Fn&kQF5$kS@c3Ugg5~ zV%_)1dE^e#fB`Z12>(32j)aBk66yeESaroMkN}8?%}$DYh%eWBNT4R4c(IGBPbLv0 zQPMxzB}7Ap;q=&AcOm$i)zE#)$8Z|_=#E5!I`22YO#I_M!VYQJdGXaZ=RIP$)#Vu{ z`=7Y<)M+jEP0>D;kaK#)>Q0oA7oh{@t@*^z171=(l@g}LDU6_|EI>W%gU|3$2MfDy zh-QmVWwOJWBha#p0HVeqRT|Y|D|2QU*;+1Pl(s!NC6cNKMhI}4uf1|vM>X!)aq$Io z_?Hzh6(up-G(VN$wl6xd-ei`Se3=rw7cdKwG)6UOmuV}*saXWQ-7+n6o*@Ew7r(>E z9H|nbg8K+dkKAGun~=6Z#ez*faH<2*=p+)lP5gxc_b&gJeNRO{)t`^9Yk zo;q0M)yXim6RXpAF|O;=B_12DzO=tk_(gK;IQccQ!nUrNBzUBZwz%DFdKnpaWe$Th zuLeIWCXZzT;oUE?Db_H@)IctWDi}o@Lk658hKDn3(T?9Zv{b~Cj3lD+yZBW=m=Wn0Vh$xF~91qMl)>aP%=n?VJf4A zE;o&Tl!-Q#31Nl3H^V~zc`G7sxWJnV#TUlOvNs6I7%&6LK!j)7gx=pr<8zf1SqG|R z)YmxK5t_$Og8jf$Rnwr@I=+9YR3=C|WLa-$qE7|-!0x?rm9duq`iEC-_iBQS~fj)MVNNUxkN|;A7OS*rBOE>f*;J#8j(c8 zz57-kH~od-1+wROvge**rjQ{~{BGuyt|#?25B@6Y?=NN(b~HTY@iK***!W5(7N1=Z zo9JPG#c&+AfY-J0$B}!HlBx*)a12&l!m+nUk2DC}7$}0>?LQ?x(G`T-?L0h~z(2dZ zWZ@y2gBVUfXS1!TRnby$Yodn>bOwCtp}melR5?C@OuqMW2`+IEc`o2(TFqcT%N3#ru$EJ{KaO{>>1u!XILpu=qKs+_Jz zu~-rR`F+MOdfm`R2#-mxE^h0II07v&5;0hj(~HvJbH{>FCkWLtPYn z8~nB9U08_eZ28+FvOaGS6;GGM1mu2;@#{->)-HIC(;&(vC zzilVARi+NKx~M$md0;3wIH?8%w=Q`w+2y0>O}SECw>O*HU+bB=kUAtAQjG(J*qH+76u8q)HZj$fVN~AMLD9RhOVAJ z#@2wUl%cZCw9<4ingx&a<<1LW_r)SjWOIO95AS7-T;5Z56lEhooswXVE1{ygfT$Zt z61ceRjI-ZgZ3pDZ&@{(nqMzcEN3sU){4(;xEJmoY``s+jlz;0MI7>4GLIK&SDK9Qm zAm~dEZqKmj!UJxB1XX29TsbY~+$pVSw>4h*rDN;pUS8}uCv*BHcgBmr0keO}{8QTW zC8gF!#D%B^<&{@CB(SOjkAIfyPOb%Ie~M}$7R?74ULR*o0)J8te$+o58{ctqkCA~W zU$QBoPyV?e^4L=Z8{`#Tqe5<85TX5bgryh8F#HcYnV7?FzjFz_oRYCE2m&IuP*bHU8(kC@D? zmFOnqPX0knctNLUdM+mYyfQqu$4BZhs7+4!Sh#~*iL=^U1{sqhWYrF2d8*hI+rCw+ z5l7<@);KZ8-FJhMIY?0mPEJl{8Ob_okB?U3!`Xf@s6*DtEROl8!0K(hMH=1hR_E8W z3bgTG+3c#cX7N^sJ(D^_k53154$f{iBmGK-#@$zE#4UF>Sust??JW*Y=kF}TyNN%p zQ4Xj0W%L|wUi4aM;H1_cWE#ebc#`dhJPKg@9B&UG?9c)?%o=CnzQ|c8NBkVIQZUdM zAH~Xkkb%xD>I5q|y%?*HW}ldmiIhR}3Q|ZdraHGvod4bAn_!r#i~%{epIA_4l@YqA z+u;oj%6r$u z2$XdJlSB)I^P3N;1ID4ME5V#&WQ*UZi!F^I?&+sT<3mjALD zp{1mJ_HCG0@UlgYlTW$q9Um9%0v|EPz-`te2w7^XZvkZr>6luiIV$`}_HgU+XIcr3 z!kilz3)MG1@u6}#b&WPTe+3LtJYhhFlb||#dT;f8cxD?A9yQLR9=VPiTFdDY2k8Ui z>=7&Wt#$X!nEJUC(9({qTp}%N5)cI&^^8!6*#tc^2!#kOFeEk1ogGgJE83Vnzu?wH zqJmaoMwP;VKP08*rMsIgPTOycaw>>KrItDeIEiI43Y$(&*m|I4=CmOaOY91lRORH! za1dBmEqbp#{{A??siuIS&u_N~3~P!(EErZ#EFv+77c92>s<9AK?hyz0CB=qUQ|iDA zYaB^QH2Nm931`_gGl1c@0b`*8GpMqOlEoU^M_qinOi6p==VC$=AwnpC4DMe#%zb^y zp_YqgYAe;vj!sLC&1N|280(TO@EcSo>54V+zn0$45P?BlLW;Wjol{rG!H&XRQrO{t zQ80i{gkUrT(uVw|>4dW9A{x57CWnTg7IgtpvF3Z#W1MQ_Fp+n(%~H*v*_pqIVp~*H z!4W6s?tcJmStY=9Wyfo6@ct?dLhnq3>SDdGw!~! zzG>bVgdIQI+r6tEofo+l zSJrs;rn;UmJ5bW*9Y5Z9kRIaxyo^u;V{|+$wlAaLAilD^6-GEc&1+h=5j3(htIC5|0%UN zHud_hl<085VWWrxFG#ZdXpYC;_0Q-Y}LGmU3d`rry+?_N3&vBMgs*gM>6Zh0A4O^RVp& z)`XtVAU6jk|8`8GI}f9N>?+(Sjxf~aIH%^TaNuQ;QV|Ma562^#d;khrye(cFii)9C zbRXZ?_BPm}H-FvUdRp|7p?@Yw!6|thJ8*GAEpi_w$o@DO zr(A5RtdUsKa2KyNGUFDDzkaHL=xnmX-ob0fMK_(6BuOdJPem!{wih&D%}w!u7Y+6B z6D8S_QHW&8n0W~=pax!ioJ(t=&psQzC{c_c4Kf&NQWeo1TREmEft2Il#8df!enOV4 zIlDnUVcO0KGzu!}+Na8+%32JrO`u@v2z6B{BfB}1o9K!r;9SIJK)-vf5TyzgD21=E z<|Pi(7!xB9B3^5gfphh{r9F;h`V^>;jcbYp%&t#X|3WZjD(XqboQr^DQyB~C`ryT( z-$ZMYGN&&uykpOa{9`n!Vubo&fUN)Lq9sPklh z9>9_r_K}i+VQ>0(P;E)ei^2pC7WAYQTdhr8oi$tyG6^1;=T06EJh$e)@(}snsod}% z!W%t-%hGst5;=4|Q?9M8**Z9|0d~Lt%<`A-8<#VekLmK1+BRC5T7Yfdv{nDd1i{x*hz{NFZfCWE*>USf zUns7=7WYT)w!dwD9t%0UTZVC}H;&QldIq5cEN$M=Q-=L9K0}2`uS2Eb&9*gwr>Mfx5xIT4Y&g~_S%g+DdO~7zL7HG+1^gDrti^(99dg|GC)rq{NteguA;_QE#E>IsU!@xvp+TSrPjmKmUPGhOy1?wufY@9FgZ4 zt5%JzlgFMTqwyHp%A#!*4OEb8M?=TQ14GB={K(Q;I3pDP#$9inuxm4I=OjCA`)Z(B{eLP=d) zZy8d@-`ELwx)t@G7neIAc`m`J9Ya!I7%+SSGT|$yIBAkAh^$BIOY$@X!X%svQ_Kis zHJDcLV9{yF0&y%RmJIrct)^-LQLkuC59{Ai8T<>{OK2V9(pGC|q$C`;jPvuZ5*a0x zv@kYy^x^KYGgc_=;Fe=))T^F-MahkeWIhm%R9p0^(_@o!r7~y>*ys8m*R)f| zptcJRCt+kViV$9S8a&Sy zd7#CL=S211>N*=CZ+rfG}S`^V$%bK1s8Y8fNwS*&`kBD;iS%gI2OVy9=d$!+ydeK zg~>ZBmbv>tj{IIj?mPW|{SDpkYuyvIA1AfId8XBA7YYy)|5uFwr!WTu(vSEEQcXEe z<_L`a=kEu~Hl9Ycy87gpItKs@|L?Is^#3?aS1h%)x4-$%{JZTqa(&IxeU0DU`|%-| z`*By=>T-+*n4mEr0W&b^5!vqlwE*m6<{ilXfK?EXI~%GC2>7=eym&tu3X7+?0+c>Tx~*XX9yjAY z+8sLYMbO`_pSs}pyHFYj!?a)B(Z<29Lrny`qGq8eIFi~#Phl0_w}a-OS+|2)StoV% zPfg;-tVRImM3i~2tzcoz*wF;3BY%2+NVDfYkQb_Xf>N&m7N8B z6z;zLUl0BOk~G{nEiIfoXE!%US$mTxwygGeFroymDu;U!?HWPP)a&cy_kKtb-HU$- z!LEZh`jgwXeJ-eJlLUH}%`5z6BeT)x=dR)~cT%vMevf#$ZTx#f0Xq|qSZ{0RQZuV8 zII+Sy!DlQ4)z{-}ae20bDXt;(7?*@+D2W+TM81jrP9dDecX(X(DSMuh)`$|{WM(mF z1QsRTb|6q>%co^YgH4zToQ}7paH1uxOr>Wr%vH^nUfswVk_}e)z637oEd`7mnWEDP zsmuS0PW)q78)j$Poe|}wtj}Fu`Gh1k@5>|i_{HFEP-1hUQ%XF2Utp7P8)TiVF*x*> zshrHzIZ?9hgzF4PVof}~cox?qOp!eXn|eL32_%ClD(+UAL7e#TqmeTl1%5dMLwddf ze|mEXl{?)7CPBr3KC(uZERd36Z&WKnRpnq7=)ex;R}z6ZF^{kXZ~pF7J?yrBQ~z~R zc9dE~9?eI~iYa(_6{ae*AMAENFli!H<0&rQYT=n367@IQ${9$Z2YR&Lf>$T605^_b zY2*gO!4z9D5tM8`@q?$d0uNyAU~on18`f*=kIXvioS8Ua?F5SLR*y6kOk`_kVWXPE zqi(^(g-3B7IC4`UPObH%S`oMpajP9z)5pWnRN`bfbT$f`Qt2=2nl}pdiCEH8g6m7F z86dz!>bt#1UaWv8!`?J;#7__Yb|sNr#tL69qo_`=zB<7=QU<{lU&KKLgWXkbV~m-S zwVj2a44x-2#kSl!Gp&zS7@u%OkT`Bhc6e`|Uka{_E~*JrV{WU1e2fk19SrcCrUjP> zN+1%)!OkegAg>EzegV?iQpF3n;txYXEC^7_K9}G30AdK)x5lt@6zBpgoC$BRoC53v z6aPK3Q*Yx_SAbw5lmGMW)=X#UQ1Fqb>!GRE>3U~y5}OIY=C;_*W+2o2zgh)d-_0;$ zzqHNI_szrG+)w`hibDRg1IKV}YymdHU(f%!e*NB;{Idb{{@7FcFoUF}N`mb)j0284 zfJ0bYPj5Ftis)ON_SGm|EkJ*91BFTd&CuPqeBJ#H?~4xC#Z0~tONQPta=#dXPJv=I z;U^Zt>_;x6s)|8m3>3e+!(7!7zqePaKHu!f&kXtw)2^f?`@atTCKf<3`G- z;K3iT8*1ttlRA;+B7#TGjvfOCLr|Ukr)l9mYPlbvMQ{7f&PgkFVVDWqE^!)}Rd`{! zO)Db*C)kI$Lv@MV$1aVlmrSOaHFkn?raH~5YIle2)lhvK+jx{8sT^yIVWJ`rd$?t0p zh{A6E^E*d*3hv^f+epB`6>OYjN-*#9Yw`+ zjgu$su9i*X=5)iFP{rZQQCMXuwen;m7o5q9L1U~%(X1m+?5L*pO zvtCUtv9~sWXRPi1=r8)un1@a%;NmI=gA^mKiFGavr%WpDkRC;{ z={;=QWz3o>iAx<=VwZRGuhSbFnHw8^20BOqCg9mNveJ~c)Xok<&|tOPHDItq9AAbB zTV?j-YrhI{F<61VnhY+Ny^nUlYl-!Yu4yLLA-yDB(JTz|D0H-@uny@C0#G>aKrB#4l~N7}#7VPR#VBcUaYbGQ(ZBCXhb~>t8~&fZqxE~MO*VjW7cdcob9Dh@L~|;6kO=f5;3V=-nvSJK(Z++#N!+|Mv&1$BcD* zv0AU=<)o5;i0B4*=zeR{|CgSzva+%bTvxyK2T&W~5x_sSvblK(xPQkFog)iK6z0l) z%BcO9!2u-pu%=I6KI+h80kC@YAB30Yctr}mHVBzIIK-{BIH+M<`(3*T<`fdY4@|us z?>RVpK9W9t1R0J8rF)AIP@#)HU4;2n9lSP%M!pKFwr`%6^y)~hH+BHZ1xACmk?t3* z-2a?}P`fP~lvAozj~E(*NlJ$MTaNN7^yyO;%O#R@Q$q)MFulOL>vj;MSht>j_vk3C zqn5}2ThMM0?%^#*BIvMn%Fx99k@EIAk!9h0){aEZ&lM#h9NijY(j5 zH;^7tpS%07mEFiRs4*#n9d`VHP4~2HEtFE*etl*CJ(H_0Mhv%q#&$9tQ7mtNaYD>~ zJ+0o?KB-A%)JNCRJ#FhGbPZarL?Xm{-<8p5!^BiAiMn?qKf-)@z!;N`UR45WiYH9H z4W1*Mi-OA6atK61uP~>|#h@DMfzBiWy#X2SF?MN7kFrDwWi^tt?82m|tP_3D6-qyK z^a!0cP;iP@ZevD{s(=o^WZ+{_SR>?;2^r{({Vu=^1LislY{hZR;+*quE!Rykm597< z!e$d%ZBIDC*N~)YL^bryextx;-|bGVjLXa=Ki`#|zQD6YsI$`_GAkVfKa-^IyJp1c`!D+E5$8L5XY*kvrEq9 zoRFlKc}mU{q+Lji7+CR&*_E;2$bYAp!?L z+BP&}Xf}kd3yF`nBR((GHj4)DA@L-|c}~qqVM7yuzc*fX*SAL(TW3d+wjw$Dhgq>S zTE7V@7i(f8{GLybRwF3YJC!aqtK{QgwU!5bfG)q;;+?Ny?BX>pHH;9M^_pw zX(9swcRRpj0YMGyi2v2P{dXn?NWXocMCah>D4c84C#it?5Ag8L9Vh?SKG;^{xgCPN zys`qebuf{6c7A@nsOM1E-91J8c}?u>;xa(|J_ES1C!YF+-o$`_4G#c=0a!KV&AtI@ zZE8Wcq62&TOGf_LGgiSUfxEk=!2eK>0h2=S7*qH7{@5>IiT_f8{P_O3X(Xelbhyj) zV(GW-@AtY^`#A_7_1s%4cr@svefxgxF9er&m7C%J#3rc}V-%3iE+Z`u5X*?`#jj1( z=A4=2jXUFuye$|1NVjNGLqtq)=8@<}Ig4qhK*B`G{ zcJ^d^i;j?O#*nk(RAca@;LL>zZ*50!EEk3b!Puxi6$8fg7}f~Vu(AVz9yF!`L9T>y zXi=T*<00NvThNkujj_E5bX)Fm0$9^v%igDg-{8!lm19^cO&(IDt_RE*DP&=aa_89V zh>TU*aP)Wevh2!7Q7XUNqWd~Y%YR2<-NIXH#TRp*W7L{er{QolAdk;RX03{T%!jvH zS^g(_8XOdqeU#~3XWzGSl#;BwBi5r6w^)*dPg_KiS|ca2?iHA9MQGkjHQcf|!;VDC zAte>2!W$KbNkFEl7|xg^B^QF3Lt=76*@Yf|ymVC`{%v;Z$F&Dz1>=GWZKaSUEEe@L( z9a?t3TvqG5+r$2{zSyjpy}PcmZoOk%77|VI%ITyyp^J*I*s5Udz4LqBHRe~~^U^E9 zBp^0!Bpv9S{k{YI`emn~7176Sq!7u`BtKf|$@rE}hY^1bY>7ckx~`MB{^Kq?$q4=_ zgP!G1-$rw2{wBRlh&?{QHnkr~zCQ&JmoV$8EzpV3<#87bJXi z&#p@c7VN(9JdN$kTY4Ke+1uL-4NATA8HV)o@j>V*xYby1bA|s2oK(LY-10bdTtmIS zzE%#?|B?e(rrm2CW6ZZ7w+9Me02u6)#jEBW^Vt?cX9{~)PLh;9Uq4STjb8kTtTT3oiSGi5&V1gA3#e|vunxT^PHyivCc2N@hC^WV z+g!kkF@Vw7fAZpjNLBprFTh9EeDD&(clRm)6_mx-@|Zq(u=gJP*V~lQs2M?uym`vD z&h>${Arn*7Dl`c7-EU|}+L@WpxY68c0@bpGU`-G9n}M@qM+3NUzu%-#I=RGtmZ~N^# zRYkQ__h2ZRd72|%ddX<4I!o;YR7KX*A*g;&lA4o@p#@^kYecmmRa5lx>4y)_$)c&z zwA;6$keQb5cPbA4l%kGsj_r{1t3Jhp@mPC5F$74WX>Mr2K=Nutmqf9d1t}Ps5ii_` zS&!2zqKvlF5OI^_9&bm5AoM)5I~p$^=su9__bY?4h-3qfki3c$MXX90bcs2Siuwpa zA&@9_5ds8uuf7I{G%B4yqIjYD7ns?8 z8NY3@QTM!*G?uCy>`e5=%=iuN$>30_qbO!UcQ2i3^7#D2!_GdZEHa{V+JK%KrvW^1 zk*A`fw_O+==w_ClgD6zvTx=<;WX<7PFsc5E+z*nV3$kG_*V)#GNb0%`3;p6c=VqAU zlEQwXZ_HvaWYZ@#Wwkgq!WN_w+BCy!o#C_#m{I0{1XbCRyBh>z0$Gcm3wQr9gn*KA z>x`FI?>K>M;#HSdIvCQx;UJ{o#UL2btd4rIvl2*Yw5JrKfbNe|=;r?hOyZ-gpY_0} z|FIQ$(u2`w`{%vh+}}y!e;$_(pDiUcIlj|TFOG-Arr`cAJ=^ZY*8xI`lR+pdoWs8P zh#CgK_h4A1l>Li_+dgP(+Uohrs72fzn80wd?fkE;Gm1ymHu@zR8EHj``{3o7ujB2} zff>ib=SD5JM4M_y6S!{^rSML@(rQ+_Pe{9A(T+u4~5O-BiEs z;hCAVwmMr|TV}lKx(4?V6P@d$6uEiViKa)uqP>l>eSG1U9p3(7Zb_z%*SYDURUCb6K6I}HOj{ZUyTItcD zMZK?Oor%(`FxSkIArx_ze#A?-vnz-*K-LCQ#`d9y_=Rc}iiA)DcO=#$*G;>uN!w-) z6N!RA)gu@>|1+h=G=*S;C(F@e+Z1~nnlTtTL&KpRI>ErHii>ae#(9{bG2rA8xMkv2!GC=f-b!*((G-4#GWwnos_mX1=urD|Q}a6ReDfrK{4 z^3Po5$LWDWmMcA0R88j8u8(lIuwKg3_fTgBR~E6Y5ihaPHVJDKLOFuoCdwJqe<{7Q zmoa6TrlLRD&u2JQYBDGt-E4YhoO*q*)U=X7qt)5>^IbzY&Z^w8Gq|qi))}D*)@}vFp-Qn{k8t zdLyb^lRnO$2I8}DecX?j&F!+}K~QPo6Ntmx6q$~}P)VeexI;5+cOy&!naP@(!y9;t ztTkru(K4qKT#tmX>9@Khbn>;Em0Qef@qZlg%2j$Ez9@{IE?iBr4_h8IlIzkpxE?!rPRrgbS;)mBbc&Y!&&}@hVH$SHK_NO zS?RjV+}UQ};(}DR7-4Zq#bO$aDog-1lP2QPAU^-R6&8sopSSwY+bY12I=MYpzTi_y@g&Cm2Pi1|=RG1a^qu z@ylwiKU^?rkYJ5FD~5=bG|!1qkeCq0_Jr4OGlgqTEtR5h8zuw-yVFuua>a7CxDyW5 z{Ew=znv_r`8d>O=^n?|6Pits%#CSeX1q0p2j9t*EdV-_5on2~82q0FI`%ETYdh<^N zFjMyOSi%0E!W9t3WJf=02A_Z0G00@Z@8g>5{Ew%zjEeG&_O>F(5YpX4H-dn43^{an zNvCv!NOz}nBOTJ+-5}j5-CghVf7dx@t@*?U7BO=_``&y1uB)#(aPCW1!UAVdHmwOr zSi$8uN2U5F?-VqdvlNXjJ5dx?cxu*s_2#&aiN6MKN2wOeBy^506dm>qO(@A!qrkj0 ztc0Fo;S{ahioo;_UFoev@pk_^*x_8Vxyqf|NVwF-gKR7 z3NT5qm0Qb%ygO?SBW92+fZXGy=c@==F^E%iH*~yYtN-7pfjHkmxO48-sE_4kVBO;Y zsEWE*t=3#}O}XxGyT?5q(* z%BJCP5c-eQk*`Ev`(G}BX<$?hk2qpi!+Kkvq2}fD)r6g^Ej+H2z|}EkI&VjRcxA!! zZu0u3`5AL%yT%`F7Pm*oWV{<#*V71urK@6j{?W~;1oks~Cx!Fvi64HIuVZQKvYk6| zkvANBSNLEJ0QMqPY@vsNbLQJ-RcW8fPgy#XR&57Fz)X zL$H3+f}36|^;aCR=b|oJtTS)1 zBAQ?Mn6r$b9Gf|h=I?h{FwqHNo93dG^JY3x>N0=Gq|5_BumG=UgP|Er6Te`AiUDH8oEL$qio8VXco zT!%FwY|Bwoh+Xl82y2=_JtX78ZMEo=Qeu@^aoSK-iTaXTzZ%P-D_@%u3 zUiVN|f_>t(k4YxbI5T7V0t@;CIbf`kT4mi`Reh)jTq5xT1D!hBwPlokFx~eQ6hyd0{^cDXZed zBoI}Bk`hB+!n729UOu~&RCyxXW1afzdRD63DPV}64gE3c=)fs>Uys?o9inmkJXl}@ z*yD+b#9ioXXN9u^$R^luWMyJ6bG9xEY*f&WkFks&(j&{!>8Dnfc=rTf4odmneo0$f z1F*|J@cJ{*sg#SdBPsOZ7e2ya;oBd-D=vi#e*misUNCBF(}k|>Da#9tzdZ!|1VNQ5 z^jo?NS-Z@8rV}O22B!nUamT+!7`W~;#~%bt{hpBLf5U$r@p(WRw~jpL>ffeww+-iY zHKi;zp30fv?i{;nqAxeK&nJW ziH^sR==^BTOD#|5uc}bb1TQwCv6KEwz3hx+qppii42^(=QtoH+dm0XpW`o*>p1*}A zMm3#3p7%QQw&5B5I^9RsPdijOf|4CKbym~EtKaA zTXU@hpS>qF2?0+wy4DDTS#q7jS7? zP-E-roK@I*jYV8s*TZvUBwO#0A3wCBX6(!xz5ix|+-t$uHBeR1m5nRxMv}r*_>a1( z!BI%pQ{d@W)~j&)OXfJL#g>^CT4qWw5v-fEIt@m)bHL9*M{uj_8s0w#4q%8*@(<4l zSWcmtxPos>n0dgBa*WE$%Zuixon50ZO+>Buq*s!ij`*$Cd-3IdQG#B0fx;>0o?Oxo zcf$xdNC7?J0gZ{S-JfuiG8Zhh3>Mw>RLv#FwY%fS*xm=u=$WDfZ(9I~@)>wQs8`h4)i4%2q= z?8y^E`fm1)wBf6OakY*@9S61S!irXr1>tZX1`o?G6~EkCBI5Cs=zZ9{E}pO&GD5s1 zR>rb#io$JQO^Jsn_QxHJbnJGwsI$BtVO-CS$xKFyG8bT^5+-*JcvN>kYqUSl>r>48 zJ#3{E+OIU#O+1Qc{a`VBI{v9wm_ib*iGwsPdcJ36`#FvMxqIS`Jj?Bw&9?0dg$KC) zeu6q>|HYX1I2?9)@$xJ25qg^Z-(7&;O>W;Jk#K_|qLIF@w)IC0ZT8cK%*1Fzb-|lI**ID0o_M{qB^p7jV4JJgF%#vsrzD` z;cjr!VDsgV7I2KHioEf_yQ4F(Q5R!V+iQ&53SoxAk7zrf6Rs0p3*8Qek%UksAe?$ir=MiHH@s{mGt63*EwavG@buXpA%1> z1>q%QkzfebsjSgZ4Opb;cS%xxWO32eLqvV~&>ye552qPMF*~hKK=MmFc9*+aX(cbx zkf(Ccli%Zoq~|rnzm0$IN;5gz(oW#}IsZkkDgjW~HR*5Esp}WoXvI;wILyr%CG@BK zoI`LXE~tj|M@=r~X44~1&&KR?OHmP#o?Q$Y;WjIYc+*> zbHvLA_|ef-<2iwl641v#qIs=Fw2Z*8!qkxsNMGt3+zp3xc--jLbAF{uf{T>BKbR2c ziM%E5eMT9n7uyd5+|ee=Ir(Ov@v68NjAOc*9Fy;X>7*n_J#0}i(tuHN#rasn+R3{z zN?9y*mQU`t10=hVcP@Al%w+aNYy5lN=4rOA_kZ7_+rEa!GPX=S|1fKjF2iq9Q8O*q z{pz+2bnZqCQ~+lEqzFX2lGW zfiPlf4tfwtuy;0r<=r4CY_;$W&R+fVSnjwNN9Hw4X1{coXLzbd737JfUH0XYa8fSK zx?OWzqzB<`h6F3a^EZYBb}FJth*7$V24xa8HJLfIePN4`bIVd-^Os?~m=UOZ+j*vC z&jz?Ai=vZ*!b%D&81*DobkPaLj13tp4x-~X5W{ioWT3_hGHphC#G0Dyf0;Dj$>JDq zt7)=jMut*EGBD)Q8rFY>t(+`}wO~iG=)Jg^0U#mo4;ZMwME?H5)vLD6T-52HXoh<7`e#x#^~E44~M~e*sILDrmIv*{x=5W8C&7Vm=nXE{vDZ z7|woMd*d}nX6-W~V!_gei}yp{akvJQmr_elJy0vN!A1{|C*;#2hP9Ff6aqNRXk&^+ zXA-^yu~5$DSk92@8%#JeoCJNrjksoOb2i!y5JfA~T5 z&L=U?whyg*A``;237=}05yTYHM1?G&Ez5g5k35Q4z(S45VY9JY)reibrk1s%p|=oL zpVvv6?aRX=N066mvZlqu#z3YaTl)Foot~N5`qeo_(Xab}yG(w0{w2eQsV4+n)7o3< z?>4CJTOXnwFCNUQ&rT~--pErbeZcl$H?)#pI12<3N|2A>LxRE?)&Tv z%xkSC`^-N8BSm9oGs-v}*zb-RWSbwSM~@yLB#9cVDhx)0ATgC8Lx^j5%)~%!jT?&O zpd9{Th5$q^_^8RjVPo@q!U}slSTAKIYrhgzv@41Co9NTqZE!SQcy?;E#C~@rn$Ebs z8-eCT529$`4LCo$-rAi6fE_o0AUnQHi8BM>FzCq~x}45V z@r80zqFp{s(??T1!PzKinz&X|=MdmOElVyRhQUu{QBi$Pi~5C9#28rw{8_&q!6Y)- zUCo93*3F^v+GSyJ*o6ChPEX2<-;;$Ewhtk_L!812TEL-;-c}_&x#-82zxhI1Eh)`VymuNS~0x{=682No3 zmJ7-LhWQrb@g`@N@@93;!!{^DTlS_LBa=Ps-|<5(*hPr%=Kz@yo+DeBrj;w#?=SUYp{iuYGq(RM!%-D9YjyP_`zGAtM-LL(0(`)QzGbV?{0;$Wp?R`(-`EIAiF2$^?iKzQUqX=v+rGW8wDZ>^L#@eMmp={2FD;42Y{vnhryJx zIH}hdm_rmrtvp;Rpid8JX;$|S#u{59dF+W~AJ&k-u#(vDGVgFjnP9Y}QkM+S#4Qe& zj1q+D{2Vtw)5@CDeE?0#@KI{fDoCQYVo8>v(xbH|Xz}c~VpS9)H=_|q9aumj%RD72 zM}0p2FfZ5&PJ>_H2`$WAN{+h|*R9Xk;pkr=A81M7g8sftEs#qd>JoU7ON)mRb}V&` z)3>{9e?;no`KsR$feI5ZC6~cHHdZ?C{;_L!8ntz<7JV4kCS~^3WtO5 z_CC){5;tej^Cvq`nDoN204XKU>!2??UZal7>4g~F zmG|u5^JQ^z($_t|Gap3+6powL25x7utPbeup11UTrR~-6I3ha91~FH0kDN>LD2|4O za{oqJ!#k~-{XTQhpfTxJQ?f{!WDcYJ?ZLlo#EFJg4HTgyE0B$tP)`|(YeT@@+wcD2FmEF?m)8UXRobNWqY_w(6x}v?+P}wfJWckM$xscx8eZ1`j zPL7CoT;FEhz-OBpiZwHzN*hIM(}~w($nZ_cSf&OBlP03y=<$U_ia~7~Hel!Sm08>h z=kWt|Jl)KqK=qskcKieNnY=}yO6uQJ48>Ho%un`n)mUN+)>7yerw1ha4?`jB&~pJa zix1<9V|iNECuCf4YBEKu)EX0^yUx@-tUU(-&Gn#SR!AHr@u|;_eMQG5pDO3}{Ud>A z%d(s8MSV6ck(f>OI4c24)A^xQO8#;qCK9yh?=JtDPsHmM2Cm)@1o9AB2(Lx8v!lPd z-aRMbS6d7V*`hSIUviUDaiXkkYRQXk{dPW*nn}H}-@H$-w!8n-{bC*CORT%bS=Z~Y z`# z;<($tOw8w@EbkkeXnR~A-ri^1eYi-p+=sGQsgG3HT?DO_kfg|J00ElmeM?Mysk_n# zyrQX`wmd7i7Lt{)!EDuJ8#eqIUpTkx!h|It0aA$RokvYyGBC;AHp>wp2ssL{5;5rA zn$e}$+4fy|1%71vA8#D*IzGF`$NFucg9p*l-?gSl@A{E%P(fgQv8X}#RpUrzCg!=F zCcmZV5-5M0W=6V>Ud=_Ik#F!p$OCVbdbK2pk!&3gERV3d?th~4aKXrC*P=lXW5D-W z8vGMEe0R2shq9iaC#5UVREJ`E%>zb<_Kv}?5^2^E64x^+sO|gjGks1t^p+MnnHj&7 zAl}-DnN99_aEiD^#`u<$xt-J@nS=k~^_Z(TRx4kYmp&~#QqQ@Yipj>+hD78h_9oPC z{Fn86-8AzFRi^0}w_?%zw!6T(V<)-Glvu7wgsgGQ;&{=GQ!Xc^xJ%g&UR%g*ncU)! z7VO*;AGbThaaSWh>O3afPJUY~TJ+karXk^;kY0vAKEVOVg7n%BpNSOJRgHu;8Nrh& z;b_0B+z2Hj4R$^}j5@si;&dmT;+@;qPSyu|Un;(yL^6?ZqGzp`f74Mm>2Id+b6)No z_=+KO(Zk2T^6+IPb~`x3Y@jP=OJ&p|QFQdlmGFTsc!HQ%gB>=e$A1ig9ENG{@3ozV zVzOhX3m1{)c7Vr186k|}S}6m9thT-Rp26_f9jsIVNp#V?f0;%q@Me#YUN9^m?OM%GzWT|z(j8)}qpvZK80rKhMjL06n_WL%1{0(1iFN)F{qDX9Y zI$pgiZEbAc+dXs#=IsOg!R6)F+ZES!mp9i73JP{6`Y}I8G?GfnZf+ggbI$KNSrpJx zY|&H<61Sf%`RB~1TW@CO4laM!WtZ@~`L0|}M&DVOx@x0qFX45X|<$G6}8bS}T&)1!ATg2LHidH?n zILER?Pk<*(Nu+Pl6Fz zWnWOlN*V?**Q^8I?Im{EEt3rgyQ7v^-V&R$q3yR|Wae4sfUb;!CehTu(K!Cu#ne2V zZo={s8t;wx5aO~ng0?^j9HENL5{4IGaa0+!WU17QL=)FkelWn`SB!J~8; zg4gwMmUvt^`+S7hZ;DjLivlFV6W#Fe3{G`ho=<78Ms~~!i>XgIN!&BUc8)w-f2|>V z#5w0W-{+rg^j0bFNMrvW1||?A}kI&i3d0T~xISD(?!i>qD z(DjGbNUdM_^>B|P0+o@H6_uI!^WRh?b!G}}rYP5zh{L$DLGFf??c+lXb(BKm_z#Gr z=LNeWsOuBK@|9D}4lCBA`m(V~_OF>wZV!FQ>(6a=xPoe+D}mUbo$$DRd^&hmskIsY z%|W^6waaV~;^(7Z{->)zAVrt!o@WIZke}vOr6C~{GZlOjZ{q_z>>|Y_hyNPqIAi7K zv<{nJVYXB-7-@-`FldW@Ln71Q1?M4P z1|c^;ELuW4CBNyPR@7Iq7DR+)=u2AIT3T*7-udUMx*R-;ETZR9Wd3Mm2;FdR@!H_$ z*b5N`Dqmvl%d?=CS(72l%HVJ;!aO=m?L6s8DThnZtb;NG_F({6NISM$t}9~=fX*%W zKM-|&eZLK?Wh~IvsxdM-|6{B@?*!ChLr%S=ETmOHsdu$MH(7fRIF<%J+-2sKS;{et zc}#C%Z%Xpm+@c0y&7|_o)@mj3Ri>eiEh%F8Wt4-JM0dmj(d;I&qbKb)3z!O<42l?Y z{AMY!+#@3yrI2dX7M3;xCBmpNE0#~t{rZB#(zM~tKdmujx_kHUEbepRMcXq2|4bt} zB5i6;bbXzaOY{Qw8goo_%kMvD)0Zi_odzBRtg-nLR9-i3%(L6i90EJhb9m`FIJH+U zM1e85DXHf~w>U}LzaS{(J6@7-yi`6l(;M0>o_1O}G95-ISHbK=5( zW~qbI)+yKzKDQraAPci1VEd@8Y+~ekkGiujfh*_r~oD*y8EZabQkrQY_4kG}IsLk4Q)wW53i&~Gr zXCywi=^T;ZS4*te9Ck-4I0hPc!kI4~i8wQ%IMqD9GQY!n0eENVgx3X=T4BwE%yt>g(-6x9&5S&?MIa!T}t+0|hi2VK9z1 zZ;B_oj%-+jC}dfwH4rRvAarL}x)Y#YGyXZ?7_ zpYgdzqL?pINyepeUx*>BbFf07ZMwzg^*T%UW1{F z>hCt;z?q6gVfZEm>Krs( zNOjJWXnP(`#|8r)IUKVyZaB!KE7g2`&@rsEqRIv=iL~l+|BAUzwf@emtP~%xzi$bI zO}HQ+|C^eF$iz6VIi05F&`G~dx9-bo?Ean)hlc(h&Yiw&&r5=KLIPdX&@PeJamXQf?yg*sw0rgJ>h>PiC*#pL&ur5Q*zX;blO zTk*o-HQG+nw=Y)YKs!=4tmhjGzIArHl(#Q5ns-ga*_8J}vIP5*{B;ts30GSq|mtoW7BvQo^U&uL;9{kDRanu_Mo>b&7I0_%bk-)~Y?9-pychB4X3 zR&Qn&h?T7VOv{>3O!S`;Rf_9n)x~tw>Z=WaSdL{KujdmIjx&~_Aq`n`8JjW*bF%$v zPk5eDMm@itbFLR}S;#f*>N=3i+Mc%4_lcF}Rj;bZT|d~&$YW;Qp1zzm9_(noCZ8`Y zV>JlHnx?HOG45bAcgDH+<42P$w@r;t6XLesO`zZA9IM6v-r-IR&>#%Bv)(f*tb@z5 zR~@o~U$&M((fH>aT24X0sE~kz4`Y@Lf8U&2kG%#Jwd7t4dsvtzs60NkE6tpiTE6B% z;8B#>j&mvq{T2Y&daNnPi0R~A#<%vf69PtA+9N|m9U?2Xkrj^n{&OY79<9S zv+I!m<`e{|eCO{_1)o2&wBM6=+-P_7u{?LPm^iFL{&yGP95`93YioP|i!;?(&AXj> zu8&MlVG}^s4Le{cUQ&ZE>)h(Dmy4VV5scCK=F4u0*(A50KnPz{v0|k~( zpm9~z)m=mJH14~J>Wu)nAnU%D1_TD4p%Zp5@cGwoRN%y|sXL#ziPzybnTCe@th&l= znzLQfmp^Zbf-*~9XN3CsjDI?c6kpwhE6Q4FMu$%n81MWD7$2MM+EWPx!vk5KhOG*` zFw)h(?9a|NPs4w82<1Ir0wj~#+Us8$>5J193zR|dzoIG5mb;rpJtWk4584{KJ;3QR zp^o9zcdNf$prsD6!x@&^xUPt}JEPEToj5fV)h5ohqV{Wx!8Ys7e0yfq!00x+X?U}^ z4bkNmt{XXm))2dpZn|XNZ3Y^V(*zcsggIucFZ*rI?KLR)I%wSz=xU`KwYPG`8wg!+ zG%NBBsGI8uf}f#hr6FIMWz9%Pm3FDd=kS=Olr~)YRnjms(a@tGQn*T|l+a<*x$ON0 z@pzyzf|1aCNU*6Au2m$muL5sFX&U+m8-S zwW}L^_?Yx9<)zd;aHRfXJ-Ak)E5f zdtDkQ;laPvo*(u>70Jt?DDPi1aMe9rju7c6)pdqk!@=WSjTLx{Ve`WXET$sqNh#d;>{=8i@yfKI6iMY} zL=ymy3rX!2ojUpZx4B-!4Bf5vrzitYKN_7FO(-kV(6Awd{sT+02pd&sVm`T@H=9vQ zP~;M8Nm^Jf7R(WhyTy>@$miL?4b8aJKjq8}oRg)NA5oTK-xKUB7#r~z+eBjdafPwQ zf~QgoXg6a|*%+GpTwNO6JY1ubukeNOspqQI=VeO$95}&oe$Cc?8x#fR0|@p+f0Rev z9t|*=s94XZos#7+?3pd>R}chJm}^q&_g}IimGesZE03*f%rQtTZysh3JRh2NG5MzS zsU?T{hTikgR{0(ncjscJe4yI`RnG~S_ zaWr*Lym5(^k~FRB9`9?ej8_20j$6daNH7{zoGtF=+K8|eS3u)>)0 zSB>{)BUioxLJ7W_`tF0kgwtFyD6E*G;e}+;=RW~@JR5s;Ow@UFt8&2=lYCWn$sEs= z8|O0>2j}Rps9>%DKQe43&JnHgzqHsIIss#2t}dglKu?sgcCL2W=CHYN_4^e=$0fsx z&)ds$zwPr!0KX~NaV^~;np(*BdcU1-F{~`l-)AQHqzUMgNuM|1xjkVJpO?NUN53M zFpEw>rAPY@ixV%=PR;%u$uE5tY4Sd&>Y9RAozaxsFVKLswRZHvKe}-;m;Ik7Gnx&w zJ;_zuVvun{ZXzse<$uH=u>KAi;h;5S{k5A=n0=UpRot`V_YJWc6j3T3hSL{T%>b<< zccXPAd%ubj!RA}}q2TIYeg37wC`jA`-3qR2TL;w7fPT;q>2c=!Q!Ydx-3qG>Pq4HX z>g*_UmO509nXTLf!BDjBS6V5 z?QZbRkPGvbzWdap{=C|6JR@jI7*Oc1`~b~RZ=-(yn!X0zen{z<8|Us;pY*H=R7DJ# z#|A)J8us0;y;nlyIZ5!8EBmI~H+PHTUA{0fEUu@cErX@J!~M(dnB@3RZKEHQykcJ# z%FQ5s+!{URF|js>0+IgM#_7JuMchn=A8kfPHkUeOCsjt_=hzEjt>;LrbJC()ij9p<$J)B~x-p8gTJtm(UN_kXtnTmYy(}ELx5Z#R#50Z(ZKr z%H7oC5go3|Y&ckRa&%YbO6?^w6(&*aJ5N$Sko{y16YMbMJ}LE6WZF56FDwW)jF;Zm zQ91Qot&9=0q|&dmw(jlGXwB#d~;%MHJaI?^V6irhW);tMw7 zeLU!ya;LN3S(}l^WX3k~bL2~BJRiOO8LkQ~Ugn!UoPuhv&<~``@*FFCHNyUMfXd!m zwh9fw^bf@zAL{2aC;5WbDiJ{4*_?-r2vVxSqA|y9RKzy72&px!#@3Vtj6BCUwspc68C0Hfyew+QiraJh?mBJdR)ze~9LxbMF1>{{w~@Oo z-RBgrTfpQy5M7LvFDm5zXB|p89E7X0y6T-gKivA$8ZYk-FtBa#zsqE_Dp5FbNgFcm zKA0)e)Y8hGIry(8`PzQ*38;Ah2m|fW(GgJ4_+GdHAnq=M&aEx-uisbRZ8Ys?ZUZHe z*L@G^M*{yu&(o&hn;T~!nhu;pK(KA1(eo6+MY6nM5$4`9edIFnaWY3?sy6}S-Y&I})f zPkJ@LDH$SHR5;f479KU_7&x7hiGmMu5vNIvaO#?V5NeStwvxtHTJr8elaIwEvc}6* zs7^u@@1iIJhY7oK#Kx@*TgK5M!T57xzrYQ-4FvpkL{Fynn~|n#*-hwE6ADhyRI=mW zVZ5Wd6{?zr`pbV&Oh{^!k(>d2^!_%m7R(5*gz;gTdsCD-pFV|r=Ao$lm0m~$4^Lt)h5HvQE)rEc7f+}x}2uY zKbWu~V-HHR!LZiqzB4CH!D^7WgOSysc{)d%jkD~MRP{Kf1fqINKS+#&!M3hkA=cEE zvw-PSBIx+ZFB=P~9BZF%yC&Zy35_prGXkwy@*ALpZXVa{Og%t42EK7{17c< z!nKv1s@PLX{j(C~&Zv@ZL&MmNrRm>rJ6U@byv!AC=k~O!sEIUoCF|9l!T`YZSJq_~N7gNsBOWavdBX_+P+a!vs3Ze#{I0 zPD3q~OM$^y(Az{{OB^`DtrB2GIs8>giGuxT&Y*RlEQ~g=Q)^(&DJYDBR@y;3HvmF0 zDdqcf$sZJ_LFWgjt*K*TuQfewM<3=sS*w8&LoF4^#JkGYs9Hz3YG)kV*uQfQOTFnrTuX={5&g?$^CBhUV zijb}!pb*VKr{JC^Ilo@}$Psz;=f-z+C}AeNlu;C6SxoGNQJj!R>ipN5ebW5Wv%b3C zj)TDFT-W;IC80<8adZbLN@<>gF2-tK&|YW}}fo{Pxg_E;0RJ((;T zSGAvcpKXu+`r@_Ap#MJgtS6pE{?fDK&a?G;TAJ_qyazBjvjThK8XBFR69A$@UU$Cr z_3=nlu@``80AD2=VXM$>5zpKQN_v233|zhX32n0zw*IQ??*cnKTv6-Qj(B3MMH3zH zm{jX`&(>_ld@EF8z^DW}j4!VQfQ?aFn4Ly%*pDmXe5nn!sPkNxpg;56=@C`DJOw~J z-PZ8!JWY_Nt2eBxSkzcbeFS)TZLgQTkICzfsPeCK7O%d(cltq$E!}Rd#6J#;)53>&KcjpQN_%9JISPiel=w!J`#Te_f zu-X`&r)F^f0jKBoqjQqh-T69S6&dhLdbQJbEALM@o=(5X&gpKpWAaz5q}x?jsmxtE zqGoQGWx4sW`0VrkN7LkMZXA3;%`#ao4@paF!ZV@BXaC0~j3p)6Dzw#xD&V#c2YV(8 zl2yv+Zr|GI%M}f*_NZanTYVzFSPx(*Mii z?w{{BvRpMWQ$xd-<&FARNGCs%_!sFL8kEV_T@9D~bKD>M7V~@h7DKck z)>s2P#6iwO)=9DVDF$g_*+N@76z^gn8~%A!zDb{*BEf%yx)bx4Hd+UeCTJ^T^vL${ zV=5{_XVjEU5?}&)-G568`uEH*K0=m~G@zg3nt)&NVUMF`!`=MhhJ*^(!}&!eNwyRRWt+ z(Zx55OGYNeeMe)g=Uvg?U18v1q-M(eS3ar!u^gM<1USuVQetUEc%fWtr{pE6*uSbK z&+Nd2HB6KvP{PDo+KlZv<1nO5#ovqNh__yWWmLpAAqkyex3_6lmyr*bixIKtgUw{O zzW($^D#?u{WJ+U$>_8`yt?hP#n*I8_niv&ZKI~|=6K5gv3E?4 ziluxJP_I}qE|~Fdi5_aXXN4F=z>y)0b5^TGWf#C=xeK^PxUdCmJPb-~92Bi@3a|I+ zw!-OoU5JV2p({zf{)>JMX=~#bczc+Lr$ktPy=?#pSb~S>tsXb@Yfls(esM*)zdr11 zYHL#jbOPwQ``IFaK7d0z08pqVMwwjN?*0Sj0sPx|6MO)K3!GaVZQCyb09>!HPYeLL zt5@pn79{I!tu#4$?enhx2iyAZBs)GnwzISQ?;8SV7cYRl`>#}E@jj5Igm#x!wm(K? z^wiGK*f{$PhI-pRQM2$rIe#3na%x7B5r3-X;m?mTUJOuck!a`$Q41Q29AT^|bKHBT zpmp{{FBa5z0p~t^?>bq(Y?uhbKQHomB;JT(=@~g+75v!|J)4i_hXypqT*)>Ek z^|HQq4BXD4Y}XiinIMr8ao%%(!=ki^z{>m~XnHl5vcb#$uL9H7M&<-kki^ zi71~bRa25{184K2%ER@^W95gJwu3tjE8plf?{xaw!5n$2T-wANcgRwB!KukFDb;qZ3TIay ztl~Ufo+{Cf>*VDd`Ux8M6IGVQjwYujX{KC2ya54Xr+}@qy0#~! z8ZXXzWRVPylN3^5T$IjMF6DLqw&3}PtZDpt`0UQcb!2pS2}$}r**iZZNzUR^H5N;b zzj0-Kw~|R^B#TKzo1vi>mxdj@e48MN(fE^KcSo*#&_IAmuo*%Fr4>Gttl~`hTFWBk zdp|NxLx$|zm9tx>AB~zwl2w1p@o!)@`BY3yRz0uQTEE)<*ni4;?_M>^Giro8!wsU z!s;q{7*$)jvsSD@)9M!M4<|AdhCO~ss%iil+UY5psXaZr;oZA4mA2p$Apru;m8Y6f z{??0r!ZYntfExDFX;W5CEV-udeWS{()7ZJUxA!A0=q?k$XCJf7oZTJVJ&`uP)Gz{c zKX(ICUvEu@PHkHbMSfgno%_z0#~)y~iJrLa^glndM+a8g-0?|aXyo{1I~w{jT-Qy% zZ-Pb!m;KR<-p-#j@%ZmL9 z-TtHOhkiDX#QvXq@=k#LYzYw>^1J5}8Xms)54`r2i*AOJ*X=G} zDb|TQ9p0%&oE0rvso{u7h!HqEH;OSE#e{0w)+<8Om%8gM_nc$oO42yxozX5?6mveA zV_9nElmzK`!xglJ;*?6*HI0MlMpdz6ElMa9Ae&Z5qzKqx5kVvCK&OU|iMe0bjLVWp zDyqFa)#>Cz@E#?byff=PaR4C|BX2a~s**TL z8PydVRnE`O9_3WrX1UctOMwzJpY32lh{jMyE0k_>L=}*j2pa-rRgy)9WgF;33F}6& z5NCw2Lv1aIRJ66B?O{;lfH{5tvOsx0uOlnyv{No!xx}+eC+PYgoZRU#z88dMjIe*tn<^57 z!~+UX9801|32Q4ML>0#4=sR!nF&^U)!Yi-5@`K)m?>i>rKI75ue)V(@?amyh&wU7~ zB*#xZMF3i@8Tz}MtUmEHY1V-dh?9)0-66|n_IvX8u(f`hs{GzFAAc0^$cyQ(UvIuB z%2Fd^g|=X&La1gih;IhY)5?q3*T+4Ac<+HdsEVB$Q2--nDG9_zqqV`-HI*$Bwo;MwV5#yywMTfa|#*rAms z42L7~sw9aFa+*mwnT*NW8M1`T#JHklyWU1g!E&d|i6kK@OEyL$Hl3v{4Jrt{br@N4 zekntBA}-zDVM7_-tcN7tU}QwB4UtLM%C|8}G;*W5Zj6eWNGs}Kv92VFCAL;fCLZf5 z$|{hT0<8p{b_?e{qfv=-fh5&<8|YaW`7x)ST4g4iCGYpAvsO(-?ZNYK5EcJkVs^N4 zxG#a&tM~!a@eo4F{m$2EGwk&L;(>GDT;?1Y-0b~-&*bHBby7}A;dEI+W4IFpja+o9 z4c#N42S4}eDSL<0yjEbFipze$uCR1f!oYb(-f}jb<5Ip&Ej>T3=6E)l<4rqhDsI-{ zgTOn_PEk-MfnHtG0_xh4*A}E=!3xfxIi1b(c0Ho&QcmiW|Hv$}p(kum^M)AEuSNs{ zoj77yXy&v*N`QQ$3#BBrbT|v+s-SHmUepoyiXpoyBJ+|=fcBnN5;JcM?@k;cG`Fcd zIF^$x$E;(^RcIA6jsm-b9gamY?MU--yuxVX9?$5EBc{b0Qj%MT#j{c8q*}8Q#|SAO zC@_2H36a8;CF9YUNJ_TH18ipr7a*@o9H0=ik<2A2wvx=L1RnymwPe~bpSFpDU`8ht z!Q;GVCNiW_prv7bV~f6OPgytV)igEnZqU!Z&*B zlt7xK+}+&d|G2xsx%M0%UOB>t7LRk{+>>m-bBRbu&UNN#X^rrH+G`6NqcL}eLy|0I zw%ei=DP%vVzrDq=A>w;#dT0n`!BVooLS2>Lp9A?mLw;8EMQYnR`x4VlE4s8^9SyGiv;CClWn2ln31PU$am>6R{?Vu>6U{pKG%2L-8 z29q&uqp9*SR%@gIV+8qR1bNA7&=f9kqZqLe$2@g>j+f$$?AAJ4x#Y6-n9^g4nnHMX z%9>R#P+p@=i$59dVub{02uOqy*kIAAAq$OleI6{<3WCu{DXFX@1dp|zJTEEB0C?K% zjH)cL5+ZGBwNrw32%#DDYwD^bO$@C>Q}ip2jA~{liYT~4r0hi*?w zde9?yShRYuT|!_Y99n6%>jC}Xxj5|8D=q)VZm?!^A}`2f!pK)_*aD0q6Oy8~jO&_S zT~dfZ;XRdrMLaLJm(jY(J8eZV7e z_ZTFyc1Rh}LNTgJN?WrOB`ib<8o}01pQ=+LRR@G%Vk;6`l1W1dff`R<=0w`C+L|HJ z5ocz)e0#9N#o;ziNfKlDSh|QEjd^2tov-)qbN23S%*kbfl4Me`nzfJtf{+LTJ_N1} z2VC6Qpo*a`YkW~~Dw##CoCFl@y18~X`#p{?9Q}^>$s|d5`Q^{>^S}6u6nRcrRm{)L z^XjXw@cBRgv&W?H`-HG>cqM|sH_z=V)RAUMY8EGsIT^930{4`q z)tTkaWX#Ap(kNm%O)-V!PLY$@h=sW>QE!Y&GCpY%Zrh4GwI@mi-dl88ajb%Ft(bVl zjk>^8a6Hx|{lKmp^IF*_jXDgpL=!P7O0-ib)zBAd1WE{IOv+AOGcGDZ8IW3o7mP=C zT4nZBwFTjujJPDh`wHhlDnk@UC@HbEBe$N(xW=f6yBiaBYQ^%Ti8o+62;XCAg7;Qy z;X(R#pxYFODs_9$?F*&+foAgquVXQ#qs@!%FL}^k_@2*!Ye?MT*V|u}X|Lfl@?oD0 zhP^F_2jrezvnrPdL6Z+MtL78=|6D*Wf%0)^L9^AlHgfZRwX4t67_tHk6e`rV)jx z$*YneJc%+`t!P_VQj!@ZNs+9TLjtDhRSg~`G-$(Inlj2K4C;!qC?R+%?;5fgDZDXU z@fA00&74lT~NK_oLw77s4G5NS4(gvd=DqABF2p@<8%;*Sw(^C-%K@!D8+EC_=WHd;@@vK8v zXtWR1)}v8a?}(HnH4y|DlsO7PA|(r1i%2M}6a)#2S&MkE+tkp5V9@XL($VvrKhok_ zIpTl2^ctVLeu?(RO|+I|TJglf!ojB~2>Nx&#ojjeikw8p81H#Lp5t6=j$Sop*~}1z zj$;d&L1BpWcb1H1S&OHhewr6we2K|qLI{B*N!Zv}=j&hl>O%?P@iWhGa!&K*Z(ab= z3{0GLO$A>{f)A{oc!KAjdzRZbZ(swgo;by|w=Zz}&RwkcAQYec^viTx319uftDOJH zr${5o#n->Z>1SSG`}QS{oc%GX@h%tN_%?%a@g0xjM<0TK2!wz?$j?F27=?x4kx~ey z0#Z8R9HI5NJ@hdiuc8^_YnT5 z;=+Z-?X)NYArjyvwF)>dzw%~0+BFW#dB>iW@2l$VudLN=vKnb+(lnu}N|sl;AQX4*uHyr&t{!7|cZ)bNO~2!`e=(m-h+;)6#5ikFT5zqm%bT&_ zxSAmea-V{QsSU|gh{*%N?GH#s#a=m%ARg{`6!y(y#QVtQLFB{Xb*F=;aEJ_sgX-X+ zl^@)jz`g@%n6ksLr!bw~Blmg*5BK#P5Kb^io=`KqU5u!L=b82bS0;V7s)C`du|l%u z3SuE?NdrP4gha_el*Z&miLIM~bQ)>AcWnEbFOD`Tea&0rU9Q+6k7oQvD^E60}|)WF!+BudjO zCM3?2T2F!^a*iQ2C)1cGRLr2Rn0U{T`$nFq;@rtis%(NHaJS* z8G6TzjG0Mdf)fO7xL!=ys7r!Uj9rZplBy_(vNq3T9acoda%k>pX@DnG#E~fGa#=F0 zD>lmzjy(f{H zWa|7ot}0635W+>1kQqawBm{?1n#y@vQevdy-QEt8z|)H>97)<3sp#bs?v_LDg&bSL zopL};z{C+Vs>z|fFxcUZ;TFSS>CCoKTB8wk+ZnE`VQK^y1Y95X`1;lwPC}N%JQ26~ zG11{SF}qP3cRz#X!IRFb=Q@ABKf^}loN+BJ+ZEG;cDGt+&* zk?t@)@v%>^Jfpbq)-`_lv;UCwdsne}pZ45wZePE^g-h=+$tT2Fn{!W}Cm-%m2+7G) z#~F?KZ0-y|8*DKkK6Z+yo;lBRPb~43E9<=U;g=9ehk1E~Cti4lt5@#D&`pq}L z<8l0`LjY0+oNu(FUIg6q-k=Ro1(XUXC7DdBFc=iX@uTSw_!y54jvhVA`uaMntE+?% zxPANfcfGDL2Bj2LRpI>saamnmWo>Qkf#(3CC}M7Ij`j8R_id}yY9Xa$GMV6<`X$&8<)R@tshOfDEu8D zgx9XYaF~)Lj!FTM#OHb%Vy{p_9)xxS2P5PkeLRqJ_Yf|)U*$RU+{9LFPb|t=7Fr2U z9b4e}vnP>Ku)VRv!U&$dJK^}QWm&h_DJDch^M#P(yk~dRBLqh)j(LHMZm(v|TP6WY z3Bd;@-q8w zZnz28ixDfrP%4lnqKjg;3f%CXv2%2i4nu1RRmHLnbh|0-R>ruf84PRkqQX0ek&?6% zQzNjp#5qR@0b>kFCRkW#qvAkWz)Ux#Kd_icBSnOBHQ=T_EYRtsWLZR-MbtYxXj_A| z1k5xXUQFe--`(Vcm~T+M9KCR8O}ND4|?NaiBL zZg0d;Ys$*fw-u|hsdB|aFyjRC7Cw}8=m>$yJ+`V4S`!D)8I^J=6imEht;or(#V7?K z;GD%1h=oE6!MxG5l9;@#*zEP$iZjlbgy0-fG`Vgeh<($iSSsZ7x|0MVsfnbb=W7ZV zP*SrHB?Rwin;7B7419%>89Q~!dOpC!F|*Pzt72Lvp{y%5su7pQ8)##QWS2q&YAG;M z(rI`2KQF(|Rz9XSib6Q%XF5$)s3`bIdx_PoO=xmsm^jb3cec1V*d&Q#+EK!}w97G_ z(hi!A(s&mLLa~?~A(1m&zx)2d(R(o(4cXXOC!gf}#&7=T42Q%0An5lZn?1%yKlBX! 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 GbozAfK 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 literal 0 HcmV?d00001 diff --git a/manifest.json b/manifest.json deleted file mode 100644 index 1272ce4..0000000 --- a/manifest.json +++ /dev/null @@ -1,74 +0,0 @@ -{ - "name": "Example app", - "id": "example", - "packaging_format": 1, - "description": { - "en": "Explain in *a few (10~15) words* the purpose of the app or what it actually does (it is meant to give a rough idea to users browsing a catalog of 100+ apps)", - "fr": "Expliquez en *quelques* (10~15) mots l'utilité de l'app ou ce qu'elle fait (l'objectif est de donner une idée grossière pour des utilisateurs qui naviguent dans un catalogue de 100+ apps)" - }, - "version": "1.0~ynh1", - "url": "https://example.com", - "upstream": { - "license": "free", - "website": "https://example.com", - "demo": "https://demo.example.com", - "admindoc": "https://yunohost.org/packaging_apps", - "userdoc": "https://yunohost.org/apps", - "code": "https://some.forge.com/example/example" - }, - "license": "free", - "maintainer": { - "name": "John doe", - "email": "john.doe@example.com" - }, - "requirements": { - "yunohost": ">= 11.0.0" - }, - "multi_instance": true, - "services": [ - "nginx", - "php7.4-fpm", - "mysql" - ], - "arguments": { - "install": [ - { - "name": "domain", - "type": "domain" - }, - { - "name": "path", - "type": "path", - "example": "/example", - "default": "/example" - }, - { - "name": "is_public", - "type": "boolean", - "default": true - }, - { - "name": "language", - "type": "string", - "ask": { - "en": "Choose the application language", - "fr": "Choisissez la langue de l'application" - }, - "choices": ["fr", "en"], - "default": "fr" - }, - { - "name": "admin", - "type": "user" - }, - { - "name": "password", - "type": "password", - "help": { - "en": "Use the help field to add an information for the admin about this question.", - "fr": "Utilisez le champ aide pour ajouter une information à l'intention de l'administrateur à propos de cette question." - } - } - ] - } -} diff --git a/manifest.toml b/manifest.toml new file mode 100644 index 0000000..ed35d03 --- /dev/null +++ b/manifest.toml @@ -0,0 +1,73 @@ +packaging_format = 2 + +id = "immich" +name = "Immich" +description.en = "Photo and video backup solution directly from your mobile phone" +description.fr = "Sauvegarde de photos et de vidéos directement depuis votre mobile" + +version = "1.98.2~ynh1" + +maintainers = ["ewilly"] + +[upstream] +license = "MIT" +website = "https://www.immich.app" +admindoc = "https://github.com/immich-app/immich#getting-started" +userdoc = "https://github.com/immich-app/immich#getting-started" +code = "https://github.com/immich-app/immich" + +[integration] +yunohost = ">= 11.2" +architectures = ["arm64", "amd64"] +multi_instance = false + +ldap = false +sso = false + +disk = "2G" +ram.build = "800M" +ram.runtime = "500M" + +[install] + [install.domain] + type = "domain" + + [install.init_main_permission] + type = "group" + default = "visitors" + +[resources] + [resources.sources] + + [resources.sources.main] + url = "https://github.com/immich-app/immich/archive/refs/tags/v1.98.2.tar.gz" + sha256 = "3fd79057b41a235518dde50ce62a2314758329c20360f462f77bba949f35d306" + + autoupdate.strategy = "latest_github_release" + + [resources.ports] + main.default = 3001 + microservices.default = 3002 + machinelearning.default = 3003 + + [resources.system_user] + + [resources.install_dir] + + [resources.data_dir] + + [resources.permissions] + main.url = "/" + admin.url = "/admin" + admin.allowed= "admins" + api.url = "/api" + api.allowed = "visitors" + api.show_tile = false + api.protected = true + + [resources.apt] + packages = ["python3-venv", "python3-dev", "ffmpeg"] + + extras.postgresql.repo = "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main 16" + extras.postgresql.key = "https://www.postgresql.org/media/keys/ACCC4CF8.asc" + extras.postgresql.packages = ["libllvm13", "libpq5", "libpq-dev" , "postgresql-16", "postgresql-16-pgvector", "postgresql-client-16", "postgresql-common", "postgresql-client-common"] diff --git a/scripts/_common.sh b/scripts/_common.sh index 04b61bb..3d8f9b1 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -3,30 +3,269 @@ #================================================= # COMMON VARIABLES #================================================= -# PHP APP SPECIFIC -#================================================= -# Depending on its version, YunoHost uses different default PHP version: -## YunoHost version "11.X" => PHP 7.4 -## YunoHost version "4.X" => PHP 7.3 -# -# This behaviour can be overridden by setting the YNH_PHP_VERSION variable -#YNH_PHP_VERSION=7.3 -#YNH_PHP_VERSION=7.4 -#YNH_PHP_VERSION=8.0 -# For more information, see the PHP application helper: https://github.com/YunoHost/yunohost/blob/dev/helpers/php#L3-L6 -# Or this app package depending on PHP: https://github.com/YunoHost-Apps/grav_ynh/blob/master/scripts/_common.sh -# PHP dependencies used by the app (must be on a single line) -#php_dependencies="php$YNH_PHP_VERSION-deb1 php$YNH_PHP_VERSION-deb2" -# or, if you do not need a custom YNH_PHP_VERSION: -php_dependencies="php$YNH_DEFAULT_PHP_VERSION-deb1 php$YNH_DEFAULT_PHP_VERSION-deb2" -# dependencies used by the app (must be on a single line) -pkg_dependencies="deb1 deb2 $php_dependencies" +if [[ ${BASH_SOURCE[0]} == "../settings/"* ]] +then + manifest_path="../settings/manifest.toml" +else + manifest_path="../manifest.toml" +fi + +# App version +## yq is not a dependencie of yunohost package so tomlq command is not available +## (see https://github.com/YunoHost/yunohost/blob/dev/debian/control) +app_version=$(cat "$manifest_path" 2>/dev/null \ + | grep 'version = ' | cut -d '=' -f 2 \ + | cut -d '~' -f 1 | tr -d ' "') #2024.2.5 +app_version="v$app_version" + +# NodeJS required version +nodejs_version=20 + +# PostgreSQL required version +postgresql_version=$(cat "$manifest_path" 2>/dev/null \ + | grep -o 'postgresql-[0-9][0-9]-pgvector' \ + | head -n1 | cut -d'-' -f2) #16 + +# Fail2ban +failregex="immich-server.*Failed login attempt for user.+from ip address\s?" #================================================= # PERSONAL HELPERS #================================================= +# Retrieve full latest python version from major version +# usage: py_latest_from_major --python="3.8" +# | arg: -p, --python= - the major python version +myynh_py_latest_from_major() { + # Declare an array to define the options of this helper. + local legacy_args=u + local -A args_array=( [p]=python= ) + local python + # Manage arguments with getopts + ynh_handle_getopts_args "$@" + + py_required_version=$(curl -Ls https://www.python.org/ftp/python/ \ + | grep '>'$python | cut -d '/' -f 2 \ + | cut -d '>' -f 2 | sort -rV | head -n 1) +} + +# Install specific python version +# usage: myynh_install_python --python="3.8.6" +# | arg: -p, --python= - the python version to install +myynh_install_python() { + # Declare an array to define the options of this helper. + local legacy_args=u + local -A args_array=( [p]=python= ) + local python + # Manage arguments with getopts + ynh_handle_getopts_args "$@" + + # Check python version from APT + local py_apt_version=$(python3 --version | cut -d ' ' -f 2) + + # Usefull variables + local python_major=${python%.*} + + # Check existing built version of python in /usr/local/bin + if [ -e "/usr/local/bin/python$python_major" ] + then + local py_built_version=$(/usr/local/bin/python$python_major --version \ + | cut -d ' ' -f 2) + else + local py_built_version=0 + fi + + # Compare version + if $(dpkg --compare-versions $py_apt_version ge $python) + then + # APT >= Required + ynh_print_info --message="Using provided python3..." + + py_app_version="python3" + + else + # Either python already built or to build + if $(dpkg --compare-versions $py_built_version ge $python) + then + # Built >= Required + ynh_print_info --message="Using already used python3 built version..." + + py_app_version="/usr/local/bin/python${py_built_version%.*}" + + else + # APT < Minimal & Actual < Minimal => Build & install Python into /usr/local/bin + ynh_print_info --message="Building python (may take a while)..." + + # Store current direcotry + local MY_DIR=$(pwd) + + # Create a temp direcotry + tmpdir="$(mktemp --directory)" + cd "$tmpdir" + + # Download + wget --output-document="Python-$python.tar.xz" \ + "https://www.python.org/ftp/python/$python/Python-$python.tar.xz" 2>&1 + + # Extract + tar xf "Python-$python.tar.xz" + + # Install + cd "Python-$python" + ./configure --enable-optimizations + ynh_exec_warn_less make -j4 + ynh_exec_warn_less make altinstall + + # Go back to working directory + cd "$MY_DIR" + + # Clean + ynh_secure_remove "$tmpdir" + + # Set version + py_app_version="/usr/local/bin/python$python_major" + fi + fi + # Save python version in settings + ynh_app_setting_set --app=$app --key=python --value="$python" +} + +# Install immich +myynh_install_immich() { + ynh_use_nodejs + + # Install immich-server + cd "$tmpdir/server" + "$ynh_npm" ci + "$ynh_npm" run build + "$ynh_npm" prune --omit=dev --omit=optional + + cd "$tmpdir/open-api/typescript-sdk" + "$ynh_npm" ci + "$ynh_npm" run build + + cd "$tmpdir/web" + "$ynh_npm" ci + "$ynh_npm" run build + + mkdir -p "$install_dir/app/" + cp -a "$tmpdir/server/node_modules" "$install_dir/app/" + cp -a "$tmpdir/server/dist" "$install_dir/app/" + cp -a "$tmpdir/server/bin" "$install_dir/app/" + cp -a "$tmpdir/web/build" "$install_dir/app/www" + cp -a "$tmpdir/server/resources" "$install_dir/app/" + cp -a "$tmpdir/server/package.json" "$install_dir/app/" + cp -a "$tmpdir/server/package-lock.json" "$install_dir/app/" + cp -a "$tmpdir/server/start.sh" "$install_dir/app/" + cp -a "$tmpdir/server/start-microservices.sh" "$install_dir/app/" + cp -a "$tmpdir/server/start-server.sh" "$install_dir/app/" + cp -a "$tmpdir/LICENSE" "$install_dir/app/" + # Install custom start.sh script + ynh_add_config --template="immich-server-start.sh" --destination="$install_dir/app/start.sh" + chmod +x "$install_dir/app/start.sh" + cd "$install_dir/app/" + "$ynh_npm" cache clean --force + + # Install immich-machine-learning + cd "$tmpdir/machine-learning" + mkdir -p "$install_dir/app/machine-learning" + $py_app_version -m venv "$install_dir/app/machine-learning/venv" + ( + # activate the virtual environment + set +o nounset + source "$install_dir/app/machine-learning/venv/bin/activate" + set -o nounset + + # add poetry + "$install_dir/app/machine-learning/venv/bin/pip3" install --upgrade poetry + + # poetry install + "$install_dir/app/machine-learning/venv/bin/poetry" install --no-root --with dev --with cpu + ) + cp -a "$tmpdir/machine-learning/ann" "$install_dir/app/machine-learning/" + cp -a "$tmpdir/machine-learning/start.sh" "$install_dir/app/machine-learning/" + cp -a "$tmpdir/machine-learning/app" "$install_dir/app/machine-learning/" + # Install custom start.sh script + ynh_add_config --template="immich-machine-learning-start.sh" --destination="$install_dir/app/machine-learning/start.sh" + chmod +x "$install_dir/app/machine-learning/start.sh" + + # Replace /usr/src + cd "$install_dir/app" + grep -Rl "/usr/src" | xargs -n1 sed -i -e "s@/usr/src@$install_dir@g" + ln -sf "$install_dir/app/resources" "$install_dir/" + mkdir -p "$install_dir/cache" + sed -i -e "s@\"/cache\"@\"$install_dir/cache\"@g" "$install_dir/app/machine-learning/app/config.py" + + # Install sharp + cd "$install_dir/app" + "$ynh_npm" install sharp + + # Use 127.0.0.1 for microservices + sed -i -e "s@app.listen(port)@app.listen(port, '127.0.0.1')@g" "$install_dir/app/dist/microservices/main.js" + + # Cleanup + ynh_secure_remove --file="$tmpdir" + + # Fix permissisons + chmod 750 "$install_dir" + chmod -R o-rwx "$install_dir" + chown -R $app:$app "$install_dir" +} + +# Execute a psql command as root user +# +# usage: myynh_execute_psql_as_root --sql=sql [--database=database] +# | arg: -s, --sql= - the SQL command to execute +# | arg: -d, --database= - the database to connect to +myynh_execute_psql_as_root() { + # Declare an array to define the options of this helper. + local legacy_args=sd + local -A args_array=([s]=sql= [d]=database=) + local sql + local database + # Manage arguments with getopts + ynh_handle_getopts_args "$@" + database="${database:-}" + + if [ -n "$database" ]; then + database="--dbname=$database" + fi + + sudo --login --user=postgres PGUSER=postgres PGPASSWORD="$(cat $PSQL_ROOT_PWD_FILE)" \ + psql --cluster="$postgresql_version/main" "$database" --command="$sql" +} + +# Install the database +myynh_create_psql_db() { + myynh_execute_psql_as_root --sql="CREATE DATABASE $app;" + myynh_execute_psql_as_root --sql="CREATE USER $app WITH ENCRYPTED PASSWORD '$db_pwd';" --database="$app" + myynh_execute_psql_as_root --sql="GRANT ALL PRIVILEGES ON DATABASE $app TO $app;" --database="$app" + myynh_execute_psql_as_root --sql="ALTER USER $app WITH SUPERUSER;" --database="$app" +} + +# Remove the database +myynh_drop_psql_db() { + myynh_execute_psql_as_root --sql="REVOKE CONNECT ON DATABASE $app FROM public;" + myynh_execute_psql_as_root --sql="SELECT pg_terminate_backend (pg_stat_activity.pid) FROM pg_stat_activity \ + WHERE pg_stat_activity.datname = '$app' AND pid <> pg_backend_pid();" + myynh_execute_psql_as_root --sql="DROP DATABASE $app;" + myynh_execute_psql_as_root --sql="DROP USER $app;" +} + +# Dump the database +myynh_dump_psql_db() { + local db_port=$(ynh_app_setting_get --app="$app" --key=psql_port) + + sudo --login --user=postgres pg_dump --port="$db_port" --dbname="$app" > db.sql +} + +# Restore the database +myynh_restore_psql_db() { + sudo --login --user=postgres PGUSER=postgres PGPASSWORD="$(cat $PSQL_ROOT_PWD_FILE)" \ + psql --cluster="$postgresql_version/main" --dbname="$app" < ./db.sql +} + #================================================= # EXPERIMENTAL HELPERS #================================================= diff --git a/scripts/backup b/scripts/backup index f99225d..016ed91 100755 --- a/scripts/backup +++ b/scripts/backup @@ -1,114 +1,53 @@ #!/bin/bash -#================================================= -# GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= - # Keep this path for calling _common.sh inside the execution's context of backup and restore scripts source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers -#================================================= -# MANAGE SCRIPT FAILURE -#================================================= - -ynh_clean_setup () { - ### Remove this function if there's nothing to clean before calling the remove script. - true -} -# Exit if an error occurs during the execution of the script -ynh_abort_if_errors - -#================================================= -# LOAD SETTINGS -#================================================= -ynh_print_info --message="Loading installation settings..." - -app=$YNH_APP_INSTANCE_NAME - -final_path=$(ynh_app_setting_get --app=$app --key=final_path) -domain=$(ynh_app_setting_get --app=$app --key=domain) -db_name=$(ynh_app_setting_get --app=$app --key=db_name) -phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) -datadir=$(ynh_app_setting_get --app=$app --key=datadir) - #================================================= # DECLARE DATA AND CONF FILES TO BACKUP #================================================= ynh_print_info --message="Declaring files to be backed up..." -### N.B. : the following 'ynh_backup' calls are only a *declaration* of what needs -### to be backuped and not an actual copy of any file. The actual backup that -### creates and fill the archive with the files happens in the core after this -### script is called. Hence ynh_backups calls takes basically 0 seconds to run. - #================================================= # BACKUP THE APP MAIN DIR #================================================= - -ynh_backup --src_path="$final_path" +ynh_backup --src_path="$install_dir" #================================================= # BACKUP THE DATA DIR #================================================= - -ynh_backup --src_path="$datadir" --is_big +ynh_backup --src_path="$data_dir" --is_big #================================================= -# BACKUP THE NGINX CONFIGURATION +# SYSTEM CONFIGURATION #================================================= - ynh_backup --src_path="/etc/nginx/conf.d/$domain.d/$app.conf" -#================================================= -# BACKUP THE PHP-FPM CONFIGURATION -#================================================= - -ynh_backup --src_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" +ynh_backup --src_path="/etc/systemd/system/$app-server.service" +ynh_backup --src_path="/etc/systemd/system/$app-microservices.service" +ynh_backup --src_path="/etc/systemd/system/$app-machine-learning.service" -#================================================= -# BACKUP FAIL2BAN CONFIGURATION -#================================================= +ynh_backup --src_path="/etc/logrotate.d/$app" ynh_backup --src_path="/etc/fail2ban/jail.d/$app.conf" ynh_backup --src_path="/etc/fail2ban/filter.d/$app.conf" -#================================================= -# SPECIFIC BACKUP -#================================================= -# BACKUP LOGROTATE -#================================================= - -ynh_backup --src_path="/etc/logrotate.d/$app" - -#================================================= -# BACKUP SYSTEMD -#================================================= - -ynh_backup --src_path="/etc/systemd/system/$app.service" - #================================================= # BACKUP VARIOUS FILES #================================================= - -ynh_backup --src_path="/etc/cron.d/$app" - -ynh_backup --src_path="/etc/$app/" +ynh_backup --src_path="/var/log/$app/" #================================================= -# BACKUP THE MYSQL DATABASE +# BACKUP THE POSTGRESQL DATABASE #================================================= -ynh_print_info --message="Backing up the MySQL database..." - -### (However, things like MySQL dumps *do* take some time to run, though the -### copy of the generated dump to the archive still happens later) - -ynh_mysql_dump_db --database="$db_name" > db.sql +ynh_print_info --message="Backing up a PostgreSQL database..." +myynh_dump_psql_db #================================================= # END OF SCRIPT #================================================= - ynh_print_info --message="Backup script completed for $app. (YunoHost will then actually copy those files to the archive)." diff --git a/scripts/change_url b/scripts/change_url index 322641b..8a127a8 100644 --- a/scripts/change_url +++ b/scripts/change_url @@ -1,134 +1,41 @@ #!/bin/bash -#================================================= -# GENERIC STARTING #================================================= # IMPORT GENERIC HELPERS #================================================= - source _common.sh source /usr/share/yunohost/helpers -#================================================= -# RETRIEVE ARGUMENTS -#================================================= - -old_domain=$YNH_APP_OLD_DOMAIN -old_path=$YNH_APP_OLD_PATH - -new_domain=$YNH_APP_NEW_DOMAIN -new_path=$YNH_APP_NEW_PATH - -app=$YNH_APP_INSTANCE_NAME - -#================================================= -# LOAD SETTINGS -#================================================= -ynh_script_progression --message="Loading installation settings..." --weight=1 - -# Needed for helper "ynh_add_nginx_config" -final_path=$(ynh_app_setting_get --app=$app --key=final_path) - -# Add settings here as needed by your application -#db_name=$(ynh_app_setting_get --app=$app --key=db_name) -#db_user=$db_name -#db_pwd=$(ynh_app_setting_get --app=$app --key=db_pwd) - -#================================================= -# BACKUP BEFORE CHANGE URL THEN ACTIVE TRAP -#================================================= -ynh_script_progression --message="Backing up the app before changing its URL (may take a while)..." --weight=1 - -# Backup the current version of the app -ynh_backup_before_upgrade -ynh_clean_setup () { - # Remove the new domain config file, the remove script won't do it as it doesn't know yet its location. - ynh_secure_remove --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" - - # Restore it if the upgrade fails - ynh_restore_upgradebackup -} -# Exit if an error occurs during the execution of the script -ynh_abort_if_errors - -#================================================= -# CHECK WHICH PARTS SHOULD BE CHANGED -#================================================= - -change_domain=0 -if [ "$old_domain" != "$new_domain" ] -then - change_domain=1 -fi - -change_path=0 -if [ "$old_path" != "$new_path" ] -then - change_path=1 -fi - -#================================================= -# STANDARD MODIFICATIONS #================================================= # STOP SYSTEMD SERVICE #================================================= -ynh_script_progression --message="Stopping a systemd service..." --weight=1 +ynh_script_progression --message="Stopping $app's systemd service..." --weight=1 -ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app/$app.log" +ynh_systemd_action --service_name="$app-microservices" --action="stop" --log_path="/var/log/$app/$app-microservices.log" +ynh_systemd_action --service_name="$app-machine-learning" --action="stop" --log_path="/var/log/$app/$app-machine-learning.log" +ynh_systemd_action --service_name="$app-server" --action="stop" --log_path="/var/log/$app/$app-server.log" #================================================= # MODIFY URL IN NGINX CONF #================================================= ynh_script_progression --message="Updating NGINX web server configuration..." --weight=1 -nginx_conf_path=/etc/nginx/conf.d/$old_domain.d/$app.conf - -# Change the path in the NGINX config file -if [ $change_path -eq 1 ] -then - # Make a backup of the original NGINX config file if modified - ynh_backup_if_checksum_is_different --file="$nginx_conf_path" - # Set global variables for NGINX helper - domain="$old_domain" - path_url="$new_path" - # Create a dedicated NGINX config - ynh_add_nginx_config -fi - -# Change the domain for NGINX -if [ $change_domain -eq 1 ] -then - # Delete file checksum for the old conf file location - ynh_delete_file_checksum --file="$nginx_conf_path" - mv $nginx_conf_path /etc/nginx/conf.d/$new_domain.d/$app.conf - # Store file checksum for the new config file location - ynh_store_file_checksum --file="/etc/nginx/conf.d/$new_domain.d/$app.conf" -fi +ynh_change_url_nginx_config #================================================= # SPECIFIC MODIFICATIONS #================================================= -# ... -#================================================= -#================================================= -# GENERIC FINALISATION #================================================= # START SYSTEMD SERVICE #================================================= ynh_script_progression --message="Starting a systemd service..." --weight=1 -ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" - -#================================================= -# RELOAD NGINX -#================================================= -ynh_script_progression --message="Reloading NGINX web server..." --weight=1 - -ynh_systemd_action --service_name=nginx --action=reload +ynh_systemd_action --service_name="$app-microservices" --action="start" --line_match="Immich Microservices is listening" --log_path="/var/log/$app/$app-microservices.log" +ynh_systemd_action --service_name="$app-machine-learning" --action="start" --line_match="Application startup complete" --log_path="/var/log/$app/$app-machine-learning.log" +ynh_systemd_action --service_name="$app-server" --action="start" --line_match="Immich Server is listening" --log_path="/var/log/$app/$app-server.log" #================================================= # END OF SCRIPT #================================================= - ynh_script_progression --message="Change of URL completed for $app" --last diff --git a/scripts/config b/scripts/config index b9e79f8..48be2ff 100644 --- a/scripts/config +++ b/scripts/config @@ -1,15 +1,13 @@ #!/bin/bash -# In simple cases, you don't need a config script. +# In simple cases, you don't need a config script. -# With a simple config_panel.toml, you can write in the app settings, in the +# With a simple config_panel.toml, you can write in the app settings, in the # upstream config file or replace complete files (logo ...) and restart services. -# The config scripts allows you to go further, to handle specific cases +# The config scripts allows you to go further, to handle specific cases # (validation of several interdependent fields, specific getter/setter for a value, # display dynamic informations or choices, pre-loading of config type .cube... ). -#================================================= -# GENERIC STARTING #================================================= # IMPORT GENERIC HELPERS #================================================= @@ -22,7 +20,7 @@ ynh_abort_if_errors # RETRIEVE ARGUMENTS #================================================= -final_path=$(ynh_app_setting_get $app final_path) +install_dir=$(ynh_app_setting_get --app="$app" --key=install_dir) #================================================= # SPECIFIC GETTERS FOR TOML SHORT KEY @@ -30,11 +28,10 @@ final_path=$(ynh_app_setting_get $app final_path) get__amount() { # Here we can imagine to have an API call to stripe to know the amount of donation during a month - local amount = 200 + local amount=200 # It's possible to change some properties of the question by overriding it: - if [ $amount -gt 100 ] - then + if [ "$amount" -gt 100 ]; then cat << EOF style: success value: $amount @@ -52,13 +49,13 @@ EOF } get__prices() { - local prices = "$(grep "DONATION\['" "$final_path/settings.py" | sed -r "s@^DONATION\['([^']*)'\]\['([^']*)'\] = '([^']*)'@\1/\2/\3@g" | sed -z 's/\n/,/g;s/,$/\n/')" - if [ "$prices" == "," ]; - then + local prices + prices="$(grep "DONATION\['" "$install_dir/settings.py" | sed -r "s@^DONATION\['([^']*)'\]\['([^']*)'\] = '([^']*)'@\1/\2/\3@g" | sed -z 's/\n/,/g;s/,$/\n/')" + if [ "$prices" == "," ]; then # Return YNH_NULL if you prefer to not return a value at all. echo YNH_NULL else - echo $prices + echo "$prices" fi } @@ -68,8 +65,8 @@ get__prices() { #================================================= validate__publishable_key() { - # We can imagine here we test if the key is really a publisheable key - (is_secret_key $publishable_key) && + # We can imagine here we test if the key is really a publishable key + (is_secret_key "$publishable_key") && echo 'This key seems to be a secret key' } @@ -79,24 +76,24 @@ validate__publishable_key() { set__prices() { #--------------------------------------------- - # IMPORTANT: setter are trigger only if a change is detected + # IMPORTANT: setters are triggered only if a change is detected #--------------------------------------------- - for price in $(echo $prices | sed "s/,/ /"); do - frequency=$(echo $price | cut -d/ -f1) - currency=$(echo $price | cut -d/ -f2) - price_id=$(echo $price | cut -d/ -f3) - sed "d/DONATION\['$frequency'\]\['$currency'\]" "$final_path/settings.py" + for price in $(echo "$prices" | sed "s/,/ /"); do + frequency=$(echo "$price" | cut -d/ -f1) + currency=$(echo "$price" | cut -d/ -f2) + price_id=$(echo "$price" | cut -d/ -f3) + sed "d/DONATION\['$frequency'\]\['$currency'\]" "$install_dir/settings.py" - echo "DONATION['$frequency']['$currency'] = '$price_id'" >> "$final_path/settings.py" + echo "DONATION['$frequency']['$currency'] = '$price_id'" >> "$install_dir/settings.py" done - + #--------------------------------------------- - # IMPORTANT: to be able to upgrade properly, you have to saved the value in settings too + # IMPORTANT: to be able to upgrade properly, you have to save the value in settings too #--------------------------------------------- - ynh_app_setting_set $app prices $prices + ynh_app_setting_set --app="$app" --key=prices --value="$prices" } #================================================= # GENERIC FINALIZATION #================================================= -ynh_app_config_run $1 +ynh_app_config_run "$1" diff --git a/scripts/install b/scripts/install index 1fc28de..02f6908 100755 --- a/scripts/install +++ b/scripts/install @@ -1,410 +1,97 @@ #!/bin/bash -#================================================= -# GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= - source _common.sh source /usr/share/yunohost/helpers -#================================================= -# MANAGE SCRIPT FAILURE -#================================================= - -ynh_clean_setup () { - ### Remove this function if there's nothing to clean before calling the remove script. - true -} -# Exit if an error occurs during the execution of the script -ynh_abort_if_errors - -#================================================= -# RETRIEVE ARGUMENTS FROM THE MANIFEST -#================================================= - -domain=$YNH_APP_ARG_DOMAIN -path_url=$YNH_APP_ARG_PATH -is_public=$YNH_APP_ARG_IS_PUBLIC -language=$YNH_APP_ARG_LANGUAGE -admin=$YNH_APP_ARG_ADMIN -password=$YNH_APP_ARG_PASSWORD - -### If it's a multi-instance app, meaning it can be installed several times independently -### The id of the app as stated in the manifest is available as $YNH_APP_ID -### The instance number is available as $YNH_APP_INSTANCE_NUMBER (equals "1", "2"...) -### The app instance name is available as $YNH_APP_INSTANCE_NAME -### - the first time the app is installed, YNH_APP_INSTANCE_NAME = ynhexample -### - the second time the app is installed, YNH_APP_INSTANCE_NAME = ynhexample__2 -### - ynhexample__{N} for the subsequent installations, with N=3,4... -### The app instance name is probably what interests you most, since this is -### guaranteed to be unique. This is a good unique identifier to define installation path, -### db names... -app=$YNH_APP_INSTANCE_NAME - -#================================================= -# CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS -#================================================= -### About --weight and --time -### ynh_script_progression will show to your final users the progression of each scripts. -### In order to do that, --weight will represent the relative time of execution compared to the other steps in the script. -### --time is a packager option, it will show you the execution time since the previous call. -### This option is implied when running in CI_package_check, you can manually add it if you are manually testing the app. -### Use the execution time displayed in the CI report or by adding --time to the command, to estimate the weight of a step. -### A common way to do it is to set a weight equal to the execution time in second +1. -### The execution time is given for the duration since the previous call. So the weight should be applied to this previous call. -ynh_script_progression --message="Validating installation parameters..." --weight=1 - -### If the app uses NGINX as web server (written in HTML/PHP in most cases), the final path should be "/var/www/$app". -### If the app provides an internal web server (or uses another application server such as uWSGI), the final path should be "/opt/yunohost/$app" -final_path=/var/www/$app -test ! -e "$final_path" || ynh_die --message="This path already contains a folder" - -# Register (book) web path -ynh_webpath_register --app=$app --domain=$domain --path_url=$path_url - -#================================================= -# STORE SETTINGS FROM MANIFEST -#================================================= -ynh_script_progression --message="Storing installation settings..." --weight=1 - -ynh_app_setting_set --app=$app --key=domain --value=$domain -ynh_app_setting_set --app=$app --key=path --value=$path_url -ynh_app_setting_set --app=$app --key=language --value=$language -ynh_app_setting_set --app=$app --key=admin --value=$admin - -#================================================= -# STANDARD MODIFICATIONS -#================================================= -# FIND AND OPEN A PORT -#================================================= -ynh_script_progression --message="Finding an available port..." --weight=1 - -### Use these lines if you have to open a port for the application -### `ynh_find_port` will find the first available port starting from the given port. -### If you're not using these lines: -### - Remove the section "CLOSE A PORT" in the remove script - -# Find an available port -port=$(ynh_find_port --port=8095) -ynh_app_setting_set --app=$app --key=port --value=$port - -# Optional: Expose this port publicly -# (N.B.: you only need to do this if the app actually needs to expose the port publicly. -# If you do this and the app doesn't actually need you are CREATING SECURITY HOLES IN THE SERVER !) - -# Open the port -# ynh_script_progression --message="Configuring firewall..." --weight=1 -# ynh_exec_warn_less yunohost firewall allow --no-upnp TCP $port - -#================================================= -# INSTALL DEPENDENCIES -#================================================= -ynh_script_progression --message="Installing dependencies..." --weight=1 - -### `ynh_install_app_dependencies` allows you to add any "apt" dependencies to the package. -### Those deb packages will be installed as dependencies of this package. -### If you're not using this helper: -### - Remove the section "REMOVE DEPENDENCIES" in the remove script -### - Remove the variable "pkg_dependencies" in _common.sh -### - As well as the section "REINSTALL DEPENDENCIES" in the restore script -### - And the section "UPGRADE DEPENDENCIES" in the upgrade script - -ynh_install_app_dependencies $pkg_dependencies - -#================================================= -# CREATE DEDICATED USER -#================================================= -ynh_script_progression --message="Configuring system user..." --weight=1 - -# Create a system user -ynh_system_user_create --username=$app --home_dir="$final_path" +# read -p "Continue [Y] ? " reponse +# [[ $reponse == "Y" ]] || ynh_die #================================================= -# CREATE A MYSQL DATABASE -#================================================= -ynh_script_progression --message="Creating a MySQL database..." --weight=1 - -### Use these lines if you need a database for the application. -### `ynh_mysql_setup_db` will create a database, an associated user and a ramdom password. -### The password will be stored as 'mysqlpwd' into the app settings, -### and will be available as $db_pwd -### If you're not using these lines: -### - Remove the section "BACKUP THE MYSQL DATABASE" in the backup script -### - Remove also the section "REMOVE THE MYSQL DATABASE" in the remove script -### - As well as the section "RESTORE THE MYSQL DATABASE" in the restore script - -db_name=$(ynh_sanitize_dbid --db_name=$app) -db_user=$db_name -ynh_app_setting_set --app=$app --key=db_name --value=$db_name -ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name - +# APP "BUILD" (DEPLOYING SOURCES, VENV, COMPILING ETC) #================================================= # DOWNLOAD, CHECK AND UNPACK SOURCE #================================================= ynh_script_progression --message="Setting up source files..." --weight=1 -### `ynh_setup_source` is used to install an app from a zip or tar.gz file, -### downloaded from an upstream source, like a git repository. -### `ynh_setup_source` use the file conf/app.src - -ynh_app_setting_set --app=$app --key=final_path --value=$final_path -# Download, check integrity, uncompress and patch the source from app.src -ynh_setup_source --dest_dir="$final_path" - -# FIXME: this should be managed by the core in the future -# Here, as a packager, you may have to tweak the ownerhsip/permissions -# such that the appropriate users (e.g. maybe www-data) can access -# files in some cases. -# But FOR THE LOVE OF GOD, do not allow r/x for "others" on the entire folder - -# this will be treated as a security issue. -chmod 750 "$final_path" -chmod -R o-rwx "$final_path" -chown -R $app:www-data "$final_path" +tmpdir="$(mktemp --directory)" +ynh_setup_source --source_id="main" --dest_dir="$tmpdir" #================================================= -# PHP-FPM CONFIGURATION +# CHECK PYTHON VERSION AND COMPILE IF NEEDED #================================================= -ynh_script_progression --message="Configuring PHP-FPM..." --weight=1 +ynh_script_progression --message="Check Python version & compile the required one if needed..." --weight=1 -### `ynh_add_fpm_config` is used to set up a PHP config. -### You can remove it if your app doesn't use PHP. -### `ynh_add_fpm_config` will use the files conf/php-fpm.conf -### If you're not using these lines: -### - You can remove these files in conf/. -### - Remove the section "BACKUP THE PHP-FPM CONFIGURATION" in the backup script -### - Remove also the section "REMOVE PHP-FPM CONFIGURATION" in the remove script -### - As well as the section "RESTORE THE PHP-FPM CONFIGURATION" in the restore script -### with the reload at the end of the script. -### - And the section "PHP-FPM CONFIGURATION" in the upgrade script - -# Create a dedicated PHP-FPM config -ynh_add_fpm_config +py_required_major=$(cat "$tmpdir/machine-learning/Dockerfile" | grep "FROM python:" | head -n1 | cut -d':' -f2 | cut -d'-' -f1) +myynh_py_latest_from_major --python="$py_required_major" +myynh_install_python --python="$py_required_version" #================================================= -# NGINX CONFIGURATION +# INSTALL NODEJS #================================================= -ynh_script_progression --message="Configuring NGINX web server..." --weight=1 +ynh_script_progression --message="Installing nodejs..." --weight=1 -### `ynh_add_nginx_config` will use the file conf/nginx.conf +ynh_exec_warn_less ynh_install_nodejs --nodejs_version="$nodejs_version" -# Create a dedicated NGINX config -ynh_add_nginx_config - -#================================================= -# SPECIFIC SETUP -#================================================= -# ... #================================================= - -#================================================= -# CREATE DATA DIRECTORY +# CREATE A POSTGRESQL DATABASE #================================================= -ynh_script_progression --message="Creating a data directory..." --weight=1 - -### Use these lines if you need to create a directory to store "persistent files" for the application. -### Usually this directory is used to store uploaded files or any file that won't be updated during -### an upgrade and that won't be deleted during app removal unless "--purge" option is used. -### If you're not using these lines: -### - Remove the section "BACKUP THE DATA DIR" in the backup script -### - Remove the section "RESTORE THE DATA DIRECTORY" in the restore script -### - As well as the section "REMOVE DATA DIR" in the remove script +ynh_script_progression --message="Creating a PostgreSQL database..." --weight=1 -datadir=/home/yunohost.app/$app -ynh_app_setting_set --app=$app --key=datadir --value=$datadir - -mkdir -p $datadir - -# FIXME: this should be managed by the core in the future -# Here, as a packager, you may have to tweak the ownerhsip/permissions -# such that the appropriate users (e.g. maybe www-data) can access -# files in some cases. -# But FOR THE LOVE OF GOD, do not allow r/x for "others" on the entire folder - -# this will be treated as a security issue. -chmod 750 "$datadir" -chmod -R o-rwx "$datadir" -chown -R $app:www-data "$datadir" +db_pwd=$(ynh_string_random) +myynh_create_psql_db +db_port=$(myynh_execute_psql_as_root --sql="\conninfo" | cut -d'"' -f8) +ynh_app_setting_set --app="$app" --key=psql_pwd --value="$db_pwd" +ynh_app_setting_set --app="$app" --key=psql_version --value="$postgresql_version" +ynh_app_setting_set --app="$app" --key=psql_port --value="$db_port" #================================================= -# ADD A CONFIGURATION +# MAKE INSTALL #================================================= -ynh_script_progression --message="Adding a configuration file..." --weight=1 - -### You can add specific configuration files. -### -### Typically, put your template conf file in ../conf/your_config_file -### The template may contain strings such as __FOO__ or __FOO_BAR__, -### which will automatically be replaced by the values of $foo and $foo_bar -### -### ynh_add_config will also keep track of the config file's checksum, -### which later during upgrade may allow to automatically backup the config file -### if it's found that the file was manually modified -### -### Check the documentation of `ynh_add_config` for more info. - -ynh_add_config --template="some_config_file" --destination="$final_path/some_config_file" +ynh_script_progression --message="Making install..." --weight=5 -# FIXME: this should be handled by the core in the future -# You may need to use chmod 600 instead of 400, -# for example if the app is expected to be able to modify its own config -chmod 400 "$final_path/some_config_file" -chown $app:$app "$final_path/some_config_file" - -### For more complex cases where you want to replace stuff using regexes, -### you shoud rely on ynh_replace_string (which is basically a wrapper for sed) -### When doing so, you also need to manually call ynh_store_file_checksum -### -### ynh_replace_string --match_string="match_string" --replace_string="replace_string" --target_file="$final_path/some_config_file" -### ynh_store_file_checksum --file="$final_path/some_config_file" +myynh_install_immich #================================================= -# SETUP SYSTEMD +# ADD A CONFIGURATION #================================================= -ynh_script_progression --message="Configuring a systemd service..." --weight=1 - -### `ynh_systemd_config` is used to configure a systemd script for an app. -### It can be used for apps that use sysvinit (with adaptation) or systemd. -### Have a look at the app to be sure this app needs a systemd script. -### `ynh_systemd_config` will use the file conf/systemd.service -### If you're not using these lines: -### - You can remove those files in conf/. -### - Remove the section "BACKUP SYSTEMD" in the backup script -### - Remove also the section "STOP AND REMOVE SERVICE" in the remove script -### - As well as the section "RESTORE SYSTEMD" in the restore script -### - And the section "SETUP SYSTEMD" in the upgrade script +ynh_script_progression --message="Adding a configuration file..." -# Create a dedicated systemd config -ynh_add_systemd_config +ynh_add_config --template="env" --destination="$install_dir/env" +chmod 600 "$install_dir/env" +chown $app:$app "$install_dir/env" #================================================= -# SETUP APPLICATION WITH CURL +# SYSTEM CONFIGURATION #================================================= +ynh_script_progression --message="Adding system configurations related to $app..." --weight=1 -### Use these lines only if the app installation needs to be finalized through -### web forms. We generally don't want to ask the final user, -### so we're going to use curl to automatically fill the fields and submit the -### forms. - -# Set the app as temporarily public for curl call -ynh_script_progression --message="Configuring SSOwat..." --weight=1 -# Making the app public for curl -ynh_permission_update --permission="main" --add="visitors" - -# Installation with curl -ynh_script_progression --message="Finalizing installation..." --weight=1 -ynh_local_curl "/INSTALL_PATH" "key1=value1" "key2=value2" "key3=value3" - -# Remove the public access -ynh_permission_update --permission="main" --remove="visitors" +ynh_add_nginx_config -#================================================= -# GENERIC FINALIZATION -#================================================= -# SETUP LOGROTATE -#================================================= -ynh_script_progression --message="Configuring log rotation..." --weight=1 +ynh_add_systemd_config --service="$app-server" --template="immich-server.service" +ynh_add_systemd_config --service="$app-microservices" --template="immich-microservices.service" +ynh_add_systemd_config --service="$app-machine-learning" --template="immich-machine-learning.service" -### `ynh_use_logrotate` is used to configure a logrotate configuration for the logs of this app. -### Use this helper only if there is effectively a log file for this app. -### If you're not using this helper: -### - Remove the section "BACKUP LOGROTATE" in the backup script -### - Remove also the section "REMOVE LOGROTATE CONFIGURATION" in the remove script -### - As well as the section "RESTORE THE LOGROTATE CONFIGURATION" in the restore script -### - And the section "SETUP LOGROTATE" in the upgrade script +yunohost service add "$app-server" --description="Immich Server" --log="/var/log/$app/$app-server.log" +yunohost service add "$app-microservices" --description="Immich Microservices" --log="/var/log/$app/$app-microservices.log" +yunohost service add "$app-machine-learning" --description="Immich Machine Learning" --log="/var/log/$app/$app-machine-learning.log" -# Use logrotate to manage application logfile(s) ynh_use_logrotate -#================================================= -# INTEGRATE SERVICE IN YUNOHOST -#================================================= -ynh_script_progression --message="Integrating service in YunoHost..." --weight=1 - -### `yunohost service add` integrates a service in YunoHost. It then gets -### displayed in the admin interface and through the others `yunohost service` commands. -### (N.B.: this line only makes sense if the app adds a service to the system!) -### If you're not using these lines: -### - You can remove these files in conf/. -### - Remove the section "REMOVE SERVICE INTEGRATION IN YUNOHOST" in the remove script -### - As well as the section "INTEGRATE SERVICE IN YUNOHOST" in the restore script -### - And the section "INTEGRATE SERVICE IN YUNOHOST" in the upgrade script - -yunohost service add $app --description="A short description of the app" --log="/var/log/$app/$app.log" - -### Additional options starting with 3.8: -### -### --needs_exposed_ports "$port" a list of ports that needs to be publicly exposed -### which will then be checked by YunoHost's diagnosis system -### (N.B. DO NOT USE THIS is the port is only internal!!!) -### -### --test_status "some command" a custom command to check the status of the service -### (only relevant if 'systemctl status' doesn't do a good job) -### -### --test_conf "some command" some command similar to "nginx -t" that validates the conf of the service -### -### Re-calling 'yunohost service add' during the upgrade script is the right way -### to proceed if you later realize that you need to enable some flags that -### weren't enabled on old installs (be careful it'll override the existing -### service though so you should re-provide all relevant flags when doing so) +ynh_add_fail2ban_config --logpath="/var/log/$app/$app-server.log" --failregex="$failregex" #================================================= # START SYSTEMD SERVICE #================================================= -ynh_script_progression --message="Starting a systemd service..." --weight=1 - -### `ynh_systemd_action` is used to start a systemd service for an app. -### Only needed if you have configure a systemd service -### If you're not using these lines: -### - Remove the section "STOP SYSTEMD SERVICE" and "START SYSTEMD SERVICE" in the backup script -### - As well as the section "START SYSTEMD SERVICE" in the restore script -### - As well as the section"STOP SYSTEMD SERVICE" and "START SYSTEMD SERVICE" in the upgrade script -### - And the section "STOP SYSTEMD SERVICE" and "START SYSTEMD SERVICE" in the change_url script +ynh_script_progression --message="Starting a systemd service..." -# Start a systemd service -ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" - -#================================================= -# SETUP FAIL2BAN -#================================================= -ynh_script_progression --message="Configuring Fail2Ban..." --weight=1 - -# Create a dedicated Fail2Ban config -ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="Regex to match into the log for a failed login" - -#================================================= -# SETUP SSOWAT -#================================================= -ynh_script_progression --message="Configuring permissions..." --weight=1 - -# Make app public if necessary -if [ $is_public -eq 1 ] -then - # Everyone can access the app. - # The "main" permission is automatically created before the install script. - ynh_permission_update --permission="main" --add="visitors" -fi - -### N.B. : the following extra permissions only make sense if your app -### does have for example an admin interface or an API. - -# Only the admin can access the admin panel of the app (if the app has an admin panel) -ynh_permission_create --permission="admin" --url="/admin" --allowed=$admin - -# Everyone can access the API part -# We don't want to display the tile in the SSO so we put --show_tile="false" -# And we don't want the YunoHost admin to be able to remove visitors group to this permission, so we put --protected="true" -ynh_permission_create --permission="api" --url="/api" --allowed="visitors" --show_tile="false" --protected="true" - -#================================================= -# RELOAD NGINX -#================================================= -ynh_script_progression --message="Reloading NGINX web server..." --weight=1 - -ynh_systemd_action --service_name=nginx --action=reload +ynh_systemd_action --service_name="$app-microservices" --action="start" --line_match="Immich Microservices is listening" --log_path="/var/log/$app/$app-microservices.log" +ynh_systemd_action --service_name="$app-machine-learning" --action="start" --line_match="Application startup complete" --log_path="/var/log/$app/$app-machine-learning.log" +ynh_systemd_action --service_name="$app-server" --action="start" --line_match="Immich Server is listening" --log_path="/var/log/$app/$app-server.log" #================================================= # END OF SCRIPT #================================================= - ynh_script_progression --message="Installation of $app completed" --last diff --git a/scripts/remove b/scripts/remove index ca31e5a..094edf5 100755 --- a/scripts/remove +++ b/scripts/remove @@ -1,154 +1,57 @@ #!/bin/bash -#================================================= -# GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= - source _common.sh source /usr/share/yunohost/helpers #================================================= -# LOAD SETTINGS -#================================================= -ynh_script_progression --message="Loading installation settings..." --weight=1 - -app=$YNH_APP_INSTANCE_NAME - -domain=$(ynh_app_setting_get --app=$app --key=domain) -port=$(ynh_app_setting_get --app=$app --key=port) -db_name=$(ynh_app_setting_get --app=$app --key=db_name) -db_user=$db_name -final_path=$(ynh_app_setting_get --app=$app --key=final_path) -datadir=$(ynh_app_setting_get --app=$app --key=datadir) - -#================================================= -# STANDARD REMOVE -#================================================= -# REMOVE SERVICE INTEGRATION IN YUNOHOST +# REMOVE SYSTEM CONFIGURATIONS #================================================= +ynh_script_progression --message="Removing system configurations related to $app..." --weight=1 # Remove the service from the list of services known by YunoHost (added from `yunohost service add`) -if ynh_exec_warn_less yunohost service status $app >/dev/null +if ynh_exec_warn_less yunohost service status "$app-server" >/dev/null then - ynh_script_progression --message="Removing $app service integration..." --weight=1 - yunohost service remove $app + ynh_script_progression --message="Removing $app-server service integration..." --weight=1 + yunohost service remove "$app-server" fi - -#================================================= -# STOP AND REMOVE SERVICE -#================================================= -ynh_script_progression --message="Stopping and removing the systemd service..." --weight=1 - -# Remove the dedicated systemd config -ynh_remove_systemd_config - -#================================================= -# REMOVE LOGROTATE CONFIGURATION -#================================================= -ynh_script_progression --message="Removing logrotate configuration..." --weight=1 - -# Remove the app-specific logrotate config -ynh_remove_logrotate - -#================================================= -# REMOVE THE MYSQL DATABASE -#================================================= -ynh_script_progression --message="Removing the MySQL database..." --weight=1 - -# Remove a database if it exists, along with the associated user -ynh_mysql_remove_db --db_user=$db_user --db_name=$db_name - -#================================================= -# REMOVE APP MAIN DIR -#================================================= -ynh_script_progression --message="Removing app main directory..." --weight=1 - -# Remove the app directory securely -ynh_secure_remove --file="$final_path" - -#================================================= -# REMOVE DATA DIR -#================================================= - -# Remove the data directory if --purge option is used -if [ "${YNH_APP_PURGE:-0}" -eq 1 ] +if ynh_exec_warn_less yunohost service status "$app-microservices" >/dev/null then - ynh_script_progression --message="Removing app data directory..." --weight=1 - ynh_secure_remove --file="$datadir" + ynh_script_progression --message="Removing $app-microservices service integration..." --weight=1 + yunohost service remove "$app-microservices" fi - -#================================================= -# REMOVE NGINX CONFIGURATION -#================================================= -ynh_script_progression --message="Removing NGINX web server configuration..." --weight=1 - -# Remove the dedicated NGINX config -ynh_remove_nginx_config - -#================================================= -# REMOVE PHP-FPM CONFIGURATION -#================================================= -ynh_script_progression --message="Removing PHP-FPM configuration..." --weight=1 - -# Remove the dedicated PHP-FPM config -ynh_remove_fpm_config - -#================================================= -# REMOVE DEPENDENCIES -#================================================= -ynh_script_progression --message="Removing dependencies..." --weight=1 - -# Remove metapackage and its dependencies -ynh_remove_app_dependencies - -#================================================= -# CLOSE A PORT -#================================================= - -if yunohost firewall list | grep -q "\- $port$" +if ynh_exec_warn_less yunohost service status "$app-machine-learning" >/dev/null then - ynh_script_progression --message="Closing port $port..." --weight=1 - ynh_exec_warn_less yunohost firewall disallow TCP $port + ynh_script_progression --message="Removing $app-machine-learning service integration..." --weight=1 + yunohost service remove "$app-machine-learning" fi -#================================================= -# REMOVE FAIL2BAN CONFIGURATION -#================================================= -ynh_script_progression --message="Removing Fail2Ban configuration..." --weight=1 - -# Remove the dedicated Fail2Ban config +# Remove the app-specific fail2ban config ynh_remove_fail2ban_config -#================================================= -# SPECIFIC REMOVE -#================================================= -# REMOVE VARIOUS FILES -#================================================= -ynh_script_progression --message="Removing various files..." --weight=1 +# Remove the app-specific logrotate config +ynh_remove_logrotate -# Remove a cron file -ynh_secure_remove --file="/etc/cron.d/$app" +# Remove the dedicated systemd config +ynh_remove_systemd_config --service="immich-server" +ynh_remove_systemd_config --service="immich-microservices" +ynh_remove_systemd_config --service="immich-machine-learning" -# Remove a directory securely -ynh_secure_remove --file="/etc/$app" +# Remove the dedicated NGINX config +ynh_remove_nginx_config # Remove the log files ynh_secure_remove --file="/var/log/$app" -#================================================= -# GENERIC FINALIZATION -#================================================= -# REMOVE DEDICATED USER -#================================================= -ynh_script_progression --message="Removing the dedicated system user..." --weight=1 +# Remove database +myynh_drop_psql_db -# Delete a system user -ynh_system_user_delete --username=$app +# Remove dependencies +ynh_remove_nodejs #================================================= # END OF SCRIPT #================================================= - ynh_script_progression --message="Removal of $app completed" --last diff --git a/scripts/restore b/scripts/restore index 1be949b..5758241 100755 --- a/scripts/restore +++ b/scripts/restore @@ -1,187 +1,90 @@ #!/bin/bash -#================================================= -# GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= - # Keep this path for calling _common.sh inside the execution's context of backup and restore scripts source ../settings/scripts/_common.sh source /usr/share/yunohost/helpers -#================================================= -# MANAGE SCRIPT FAILURE -#================================================= - -ynh_clean_setup () { - #### Remove this function if there's nothing to clean before calling the remove script. - true -} -# Exit if an error occurs during the execution of the script -ynh_abort_if_errors - -#================================================= -# LOAD SETTINGS -#================================================= -ynh_script_progression --message="Loading installation settings..." --weight=1 - -app=$YNH_APP_INSTANCE_NAME - -domain=$(ynh_app_setting_get --app=$app --key=domain) -path_url=$(ynh_app_setting_get --app=$app --key=path) -final_path=$(ynh_app_setting_get --app=$app --key=final_path) -db_name=$(ynh_app_setting_get --app=$app --key=db_name) -db_user=$db_name -phpversion=$(ynh_app_setting_get --app=$app --key=phpversion) -datadir=$(ynh_app_setting_get --app=$app --key=datadir) - -#================================================= -# CHECK IF THE APP CAN BE RESTORED -#================================================= -ynh_script_progression --message="Validating restoration parameters..." --weight=1 - -test ! -d $final_path \ - || ynh_die --message="There is already a directory: $final_path " - -#================================================= -# STANDARD RESTORATION STEPS -#================================================= -# RECREATE THE DEDICATED USER -#================================================= -ynh_script_progression --message="Recreating the dedicated system user..." --weight=1 - -# Create the dedicated user (if not existing) -ynh_system_user_create --username=$app --home_dir="$final_path" - #================================================= # RESTORE THE APP MAIN DIR #================================================= ynh_script_progression --message="Restoring the app main directory..." --weight=1 -ynh_restore_file --origin_path="$final_path" +ynh_restore_file --origin_path="$install_dir" -# FIXME: this should be managed by the core in the future -# Here, as a packager, you may have to tweak the ownerhsip/permissions -# such that the appropriate users (e.g. maybe www-data) can access -# files in some cases. -# But FOR THE LOVE OF GOD, do not allow r/x for "others" on the entire folder - -# this will be treated as a security issue. -chmod 750 "$final_path" -chmod -R o-rwx "$final_path" -chown -R $app:www-data "$final_path" +chmod 750 "$install_dir" +chmod -R o-rwx "$install_dir" +chown -R $app:$app "$install_dir" #================================================= # RESTORE THE DATA DIRECTORY #================================================= ynh_script_progression --message="Restoring the data directory..." --weight=1 -ynh_restore_file --origin_path="$datadir" --not_mandatory - -mkdir -p $datadir +ynh_restore_file --origin_path="$data_dir" --not_mandatory -# FIXME: this should be managed by the core in the future -# Here, as a packager, you may have to tweak the ownerhsip/permissions -# such that the appropriate users (e.g. maybe www-data) can access -# files in some cases. -# But FOR THE LOVE OF GOD, do not allow r/x for "others" on the entire folder - -# this will be treated as a security issue. -chmod 750 "$datadir" -chmod -R o-rwx "$datadir" -chown -R $app:www-data "$datadir" - -#================================================= -# RESTORE FAIL2BAN CONFIGURATION -#================================================= -ynh_script_progression --message="Restoring the Fail2Ban configuration..." --weight=1 - -ynh_restore_file --origin_path="/etc/fail2ban/jail.d/$app.conf" -ynh_restore_file --origin_path="/etc/fail2ban/filter.d/$app.conf" -ynh_systemd_action --action=restart --service_name=fail2ban +chown -R $app:$app "$data_dir" #================================================= -# SPECIFIC RESTORATION -#================================================= -# REINSTALL DEPENDENCIES +# RESTORE THE DATABASE #================================================= -ynh_script_progression --message="Reinstalling dependencies..." --weight=1 +ynh_script_progression --message="Restoring the database..." --weight=1 -# Define and install dependencies -ynh_install_app_dependencies $pkg_dependencies +db_pwd=$(ynh_app_setting_get --app="$app" --key=psql_pwd) +myynh_create_psql_db +myynh_restore_psql_db #================================================= -# RESTORE THE PHP-FPM CONFIGURATION +# INSTALL NODEJS #================================================= -ynh_script_progression --message="Restoring the PHP-FPM configuration..." --time --weight=1 +ynh_script_progression --message="Reinstalling nodejs..." --weight=5 -ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" +ynh_exec_warn_less ynh_install_nodejs --nodejs_version="$nodejs_version" #================================================= -# RESTORE THE NGINX CONFIGURATION +# RESTORE SYSTEM CONFIGURATIONS #================================================= -ynh_script_progression --message="Restoring the NGINX web server configuration..." --time --weight=1 +ynh_script_progression --message="Restoring system configurations related to $app..." --weight=1 ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" -#================================================= -# RESTORE THE MYSQL DATABASE -#================================================= -ynh_script_progression --message="Restoring the MySQL database..." --weight=1 - -db_pwd=$(ynh_app_setting_get --app=$app --key=mysqlpwd) -ynh_mysql_setup_db --db_user=$db_user --db_name=$db_name --db_pwd=$db_pwd -ynh_mysql_connect_as --user=$db_user --password=$db_pwd --database=$db_name < ./db.sql - -#================================================= -# RESTORE VARIOUS FILES -#================================================= -ynh_script_progression --message="Restoring various files..." --weight=1 - -ynh_restore_file --origin_path="/etc/cron.d/$app" +ynh_restore_file --origin_path="/etc/systemd/system/$app-server.service" +ynh_restore_file --origin_path="/etc/systemd/system/$app-microservices.service" +ynh_restore_file --origin_path="/etc/systemd/system/$app-machine-learning.service" -ynh_restore_file --origin_path="/etc/$app/" +systemctl enable "$app-server.service" --quiet +systemctl enable "$app-microservices.service" --quiet +systemctl enable "$app-machine-learning.service" --quiet -#================================================= -# RESTORE SYSTEMD -#================================================= -ynh_script_progression --message="Restoring the systemd configuration..." --weight=1 - -ynh_restore_file --origin_path="/etc/systemd/system/$app.service" -systemctl enable $app.service --quiet - -#================================================= -# RESTORE THE LOGROTATE CONFIGURATION -#================================================= -ynh_script_progression --message="Restoring the logrotate configuration..." --weight=1 +yunohost service add "$app-server" --description="Immich Server" --log="/var/log/$app/$app-server.log" +yunohost service add "$app-microservices" --description="Immich Microservices" --log="/var/log/$app/$app-microservices.log" +yunohost service add "$app-machine-learning" --description="Immich Machine Learning" --log="/var/log/$app/$app-machine-learning.log" ynh_restore_file --origin_path="/etc/logrotate.d/$app" -#================================================= -# INTEGRATE SERVICE IN YUNOHOST -#================================================= -ynh_script_progression --message="Integrating service in YunoHost..." --weight=1 - -yunohost service add $app --description="A short description of the app" --log="/var/log/$app/$app.log" +ynh_restore_file --origin_path="/etc/fail2ban/jail.d/$app.conf" +ynh_restore_file --origin_path="/etc/fail2ban/filter.d/$app.conf" +ynh_systemd_action --action=restart --service_name=fail2ban #================================================= -# START SYSTEMD SERVICE +# RESTORE VARIOUS FILES #================================================= -ynh_script_progression --message="Starting a systemd service..." --weight=1 - -ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" +ynh_restore_file --origin_path="/var/log/$app/" #================================================= -# GENERIC FINALIZATION +# RELOAD NGINX AND PHP-FPM OR THE APP SERVICE #================================================= -# RELOAD NGINX AND PHP-FPM -#================================================= -ynh_script_progression --message="Reloading NGINX web server and PHP-FPM..." --weight=1 +ynh_script_progression --message="Reloading NGINX web server and $app's service..." --weight=1 + +ynh_systemd_action --service_name="$app-microservices" --action="start" --line_match="Immich Microservices is listening" --log_path="/var/log/$app/$app-microservices.log" +ynh_systemd_action --service_name="$app-machine-learning" --action="start" --line_match="Application startup complete" --log_path="/var/log/$app/$app-machine-learning.log" +ynh_systemd_action --service_name="$app-server" --action="start" --line_match="Immich Server is listening" --log_path="/var/log/$app/$app-server.log" -ynh_systemd_action --service_name=php$phpversion-fpm --action=reload ynh_systemd_action --service_name=nginx --action=reload #================================================= # END OF SCRIPT #================================================= - ynh_script_progression --message="Restoration completed for $app" --last diff --git a/scripts/upgrade b/scripts/upgrade index f38c139..a0ccd88 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -1,239 +1,104 @@ #!/bin/bash -#================================================= -# GENERIC START #================================================= # IMPORT GENERIC HELPERS #================================================= - source _common.sh source /usr/share/yunohost/helpers -#================================================= -# LOAD SETTINGS -#================================================= -ynh_script_progression --message="Loading installation settings..." --weight=1 - -app=$YNH_APP_INSTANCE_NAME - -domain=$(ynh_app_setting_get --app=$app --key=domain) -path_url=$(ynh_app_setting_get --app=$app --key=path) -language=$(ynh_app_setting_get --app=$app --key=language) -admin=$(ynh_app_setting_get --app=$app --key=admin) -final_path=$(ynh_app_setting_get --app=$app --key=final_path) -db_name=$(ynh_app_setting_get --app=$app --key=db_name) - #================================================= # CHECK VERSION #================================================= - -### This helper will compare the version of the currently installed app and the version of the upstream package. -### $upgrade_type can have 2 different values -### - UPGRADE_APP if the upstream app version has changed -### - UPGRADE_PACKAGE if only the YunoHost package has changed -### ynh_check_app_version_changed will stop the upgrade if the app is up to date. -### UPGRADE_APP should be used to upgrade the core app only if there's an upgrade to do. upgrade_type=$(ynh_check_app_version_changed) -#================================================= -# BACKUP BEFORE UPGRADE THEN ACTIVE TRAP -#================================================= -ynh_script_progression --message="Backing up the app before upgrading (may take a while)..." --weight=1 - -# Backup the current version of the app -ynh_backup_before_upgrade -ynh_clean_setup () { - # Restore it if the upgrade fails - ynh_restore_upgradebackup -} -# Exit if an error occurs during the execution of the script -ynh_abort_if_errors - -#================================================= -# STANDARD UPGRADE STEPS #================================================= # STOP SYSTEMD SERVICE #================================================= ynh_script_progression --message="Stopping a systemd service..." --weight=1 -ynh_systemd_action --service_name=$app --action="stop" --log_path="/var/log/$app/$app.log" +ynh_systemd_action --service_name="$app-server" --action="stop" +ynh_systemd_action --service_name="$app-microservices" --action="stop" +ynh_systemd_action --service_name="$app-machine-learning" --action="stop" #================================================= # ENSURE DOWNWARD COMPATIBILITY #================================================= -ynh_script_progression --message="Ensuring downward compatibility..." --weight=1 - -# -# N.B. : the followings setting migrations snippets are provided as *EXAMPLES* -# of what you may want to do in some cases (e.g. a setting was not defined on -# some legacy installs and you therefore want to initiaze stuff during upgrade) -# - -# If db_name doesn't exist, create it -#if [ -z "$db_name" ]; then -# db_name=$(ynh_sanitize_dbid --db_name=$app) -# ynh_app_setting_set --app=$app --key=db_name --value=$db_name -#fi - -# If final_path doesn't exist, create it -#if [ -z "$final_path" ]; then -# final_path=/var/www/$app -# ynh_app_setting_set --app=$app --key=final_path --value=$final_path -#fi - -### If nobody installed your app before 4.1, -### then you may safely remove these lines +#ynh_script_progression --message="Ensuring downward compatibility..." --weight=1 -# Cleaning legacy permissions -if ynh_legacy_permissions_exists; then - ynh_legacy_permissions_delete_all - - ynh_app_setting_delete --app=$app --key=is_public -fi - -if ! ynh_permission_exists --permission="admin"; then - # Create the required permissions - ynh_permission_create --permission="admin" --url="/admin" --allowed=$admin -fi - -# Create a permission if needed -if ! ynh_permission_exists --permission="api"; then - ynh_permission_create --permission="api" --url="/api" --allowed="visitors" --show_tile="false" --protected="true" -fi - -#================================================= -# CREATE DEDICATED USER #================================================= -ynh_script_progression --message="Making sure dedicated system user exists..." --weight=1 - -# Create a dedicated user (if not existing) -ynh_system_user_create --username=$app --home_dir="$final_path" - +# APP "BUILD" (DEPLOYING SOURCES, VENV, COMPILING ETC) #================================================= -# DOWNLOAD, CHECK AND UNPACK SOURCE -#================================================= - if [ "$upgrade_type" == "UPGRADE_APP" ] then + #================================================= + # DOWNLOAD, CHECK AND UNPACK SOURCE + #================================================= ynh_script_progression --message="Upgrading source files..." --weight=1 - - # Download, check integrity, uncompress and patch the source from app.src - ynh_setup_source --dest_dir="$final_path" + tmpdir="$(mktemp --directory)" + ynh_setup_source --source_id="main" --dest_dir="$tmpdir" + + #================================================= + # CHECK PYTHON VERSION AND COMPILE IF NEEDED + #================================================= + ynh_script_progression --message="Check Python version & compile the required one if needed..." --weight=1 + py_required_major=$(cat "$tmpdir/machine-learning/Dockerfile" | grep "FROM python:" | head -n1 | cut -d':' -f2 | cut -d'-' -f1) + myynh_py_latest_from_major --python="$py_required_major" + myynh_install_python --python="$py_required_version" + + #================================================= + # INSTALL NODEJS + #================================================= + ynh_script_progression --message="Installing nodejs..." --weight=1 + ynh_exec_warn_less ynh_install_nodejs --nodejs_version="$nodejs_version" + + #================================================= + # MAKE INSTALL + #================================================= + ynh_script_progression --message="Making install..." --weight=5 + ynh_secure_remove --file="$install_dir" + myynh_install_immich fi -# FIXME: this should be managed by the core in the future -# Here, as a packager, you may have to tweak the ownerhsip/permissions -# such that the appropriate users (e.g. maybe www-data) can access -# files in some cases. -# But FOR THE LOVE OF GOD, do not allow r/x for "others" on the entire folder - -# this will be treated as a security issue. -chmod 750 "$final_path" -chmod -R o-rwx "$final_path" -chown -R $app:www-data "$final_path" - -#================================================= -# UPGRADE DEPENDENCIES -#================================================= -ynh_script_progression --message="Upgrading dependencies..." --weight=1 - -ynh_install_app_dependencies $pkg_dependencies - #================================================= -# PHP-FPM CONFIGURATION +# UPDATE A CONFIG FILE #================================================= -ynh_script_progression --message="Upgrading PHP-FPM configuration..." --weight=1 +ynh_script_progression --message="Updating $app's configuration files..." --weight=1 -# Create a dedicated PHP-FPM config -ynh_add_fpm_config +db_pwd=$(ynh_app_setting_get --app="$app" --key=psql_pwd) +db_port=$(ynh_app_setting_get --app="$app" --key=psql_port) +ynh_add_config --template="env" --destination="$install_dir/env" +chmod 600 "$install_dir/env" +chown $app:$app "$install_dir/env" #================================================= -# NGINX CONFIGURATION +# REAPPLY SYSTEM CONFIGURATIONS #================================================= -ynh_script_progression --message="Upgrading NGINX web server configuration..." --time --weight=1 +ynh_script_progression --message="Upgrading system configurations related to $app..." --weight=1 -# Create a dedicated NGINX config ynh_add_nginx_config -#================================================= -# SPECIFIC UPGRADE -#================================================= -# ... -#================================================= - -#================================================= -# UPDATE A CONFIG FILE -#================================================= -ynh_script_progression --message="Updating a configuration file..." --weight=1 - -### Same as during install -### -### The file will automatically be backed-up if it's found to be manually modified (because -### ynh_add_config keeps track of the file's checksum) - -ynh_add_config --template="some_config_file" --destination="$final_path/some_config_file" - -# FIXME: this should be handled by the core in the future -# You may need to use chmod 600 instead of 400, -# for example if the app is expected to be able to modify its own config -chmod 400 "$final_path/some_config_file" -chown $app:$app "$final_path/some_config_file" - -### For more complex cases where you want to replace stuff using regexes, -### you shoud rely on ynh_replace_string (which is basically a wrapper for sed) -### When doing so, you also need to manually call ynh_store_file_checksum -### -### ynh_replace_string --match_string="match_string" --replace_string="replace_string" --target_file="$final_path/some_config_file" -### ynh_store_file_checksum --file="$final_path/some_config_file" - -#================================================= -# SETUP SYSTEMD -#================================================= -ynh_script_progression --message="Upgrading systemd configuration..." --weight=1 +ynh_add_systemd_config --service="$app-server" --template="immich-server.service" +ynh_add_systemd_config --service="$app-microservices" --template="immich-microservices.service" +ynh_add_systemd_config --service="$app-machine-learning" --template="immich-machine-learning.service" -# Create a dedicated systemd config -ynh_add_systemd_config +yunohost service add "$app-microservices" --description="Immich Microservices" --log="/var/log/$app/$app-microservices.log" +yunohost service add "$app-machine-learning" --description="Immich Machine Learning" --log="/var/log/$app/$app-machine-learning.log" +yunohost service add "$app-server" --description="Immich Server" --log="/var/log/$app/$app-server.log" -#================================================= -# GENERIC FINALIZATION -#================================================= -# SETUP LOGROTATE -#================================================= -ynh_script_progression --message="Upgrading logrotate configuration..." --weight=1 - -# Use logrotate to manage app-specific logfile(s) ynh_use_logrotate --non-append -#================================================= -# INTEGRATE SERVICE IN YUNOHOST -#================================================= -ynh_script_progression --message="Integrating service in YunoHost..." --weight=1 - -yunohost service add $app --description="A short description of the app" --log="/var/log/$app/$app.log" +ynh_add_fail2ban_config --logpath="/var/log/$app/$app-server.log" --failregex="$failregex" #================================================= # START SYSTEMD SERVICE #================================================= ynh_script_progression --message="Starting a systemd service..." --weight=1 -ynh_systemd_action --service_name=$app --action="start" --log_path="/var/log/$app/$app.log" - -#================================================= -# UPGRADE FAIL2BAN -#================================================= -ynh_script_progression --message="Reconfiguring Fail2Ban..." --weight=1 - -# Create a dedicated Fail2Ban config -ynh_add_fail2ban_config --logpath="/var/log/nginx/${domain}-error.log" --failregex="Regex to match into the log for a failed login" - -#================================================= -# RELOAD NGINX -#================================================= -ynh_script_progression --message="Reloading NGINX web server..." --weight=1 - -ynh_systemd_action --service_name=nginx --action=reload +ynh_systemd_action --service_name="$app-microservices" --action="start" --line_match="Immich Microservices is listening" --log_path="/var/log/$app/$app-microservices.log" +ynh_systemd_action --service_name="$app-machine-learning" --action="start" --line_match="Application startup complete" --log_path="/var/log/$app/$app-machine-learning.log" +ynh_systemd_action --service_name="$app-server" --action="start" --line_match="Immich Server is listening" --log_path="/var/log/$app/$app-server.log" #================================================= # END OF SCRIPT #================================================= - ynh_script_progression --message="Upgrade of $app completed" --last diff --git a/sources/extra_files/app/.gitignore b/sources/extra_files/app/.gitignore deleted file mode 100644 index 783a4ae..0000000 --- a/sources/extra_files/app/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*~ -*.sw[op] diff --git a/sources/patches/.gitignore b/sources/patches/.gitignore deleted file mode 100644 index 783a4ae..0000000 --- a/sources/patches/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -*~ -*.sw[op] diff --git a/tests.toml b/tests.toml new file mode 100644 index 0000000..cbbeef1 --- /dev/null +++ b/tests.toml @@ -0,0 +1,3 @@ +test_format = 1.0 + +[default] From 45242d2b29da27cfb66734c6bbad2b964eb57db9 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Tue, 26 Mar 2024 21:04:14 +0100 Subject: [PATCH 02/11] Fix --- manifest.toml | 3 +++ scripts/_common.sh | 6 +++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/manifest.toml b/manifest.toml index ed35d03..207b940 100644 --- a/manifest.toml +++ b/manifest.toml @@ -71,3 +71,6 @@ ram.runtime = "500M" extras.postgresql.repo = "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main 16" extras.postgresql.key = "https://www.postgresql.org/media/keys/ACCC4CF8.asc" extras.postgresql.packages = ["libllvm13", "libpq5", "libpq-dev" , "postgresql-16", "postgresql-16-pgvector", "postgresql-client-16", "postgresql-common", "postgresql-client-common"] + + [resources.database] + type = "postgresql" diff --git a/scripts/_common.sh b/scripts/_common.sh index 3d8f9b1..f72e3e3 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -101,8 +101,8 @@ myynh_install_python() { local MY_DIR=$(pwd) # Create a temp direcotry - tmpdir="$(mktemp --directory)" - cd "$tmpdir" + tmpdir_py="$(mktemp --directory)" + cd "$tmpdir_py" # Download wget --output-document="Python-$python.tar.xz" \ @@ -121,7 +121,7 @@ myynh_install_python() { cd "$MY_DIR" # Clean - ynh_secure_remove "$tmpdir" + ynh_secure_remove "$tmpdir_py" # Set version py_app_version="/usr/local/bin/python$python_major" From 17843fcf58f1fa505aa6937937841d60b0ec2a4c Mon Sep 17 00:00:00 2001 From: Sylvain Date: Tue, 26 Mar 2024 21:29:01 +0100 Subject: [PATCH 03/11] Fix --- manifest.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manifest.toml b/manifest.toml index 207b940..5bf061a 100644 --- a/manifest.toml +++ b/manifest.toml @@ -66,7 +66,7 @@ ram.runtime = "500M" api.protected = true [resources.apt] - packages = ["python3-venv", "python3-dev", "ffmpeg"] + packages = ["python3-venv", "python3-dev", "ffmpeg", "postgresql"] extras.postgresql.repo = "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main 16" extras.postgresql.key = "https://www.postgresql.org/media/keys/ACCC4CF8.asc" From 4db4b1dea720442a25cee1bb088f0b1ec3aaeac2 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 27 Mar 2024 07:26:34 +0100 Subject: [PATCH 04/11] Fix --- manifest.toml | 2 +- scripts/_common.sh | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/manifest.toml b/manifest.toml index 5bf061a..087c621 100644 --- a/manifest.toml +++ b/manifest.toml @@ -66,7 +66,7 @@ ram.runtime = "500M" api.protected = true [resources.apt] - packages = ["python3-venv", "python3-dev", "ffmpeg", "postgresql"] + packages = ["python3-venv", "python3-dev", "ffmpeg", "postgresql", "wget", "build-essential", "libreadline-dev", "libncursesw5-dev", "libssl-dev", "libsqlite3-dev", "tk-dev", "libgdbm-dev", "libc6-dev", "libbz2-dev", "libffi-dev", "zlib1g-dev"] extras.postgresql.repo = "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main 16" extras.postgresql.key = "https://www.postgresql.org/media/keys/ACCC4CF8.asc" diff --git a/scripts/_common.sh b/scripts/_common.sh index f72e3e3..62da058 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -178,10 +178,10 @@ myynh_install_immich() { set -o nounset # add poetry - "$install_dir/app/machine-learning/venv/bin/pip3" install --upgrade poetry + ynh_exec_warn_less "$install_dir/app/machine-learning/venv/bin/pip3" install --upgrade poetry # poetry install - "$install_dir/app/machine-learning/venv/bin/poetry" install --no-root --with dev --with cpu + ynh_exec_warn_less "$install_dir/app/machine-learning/venv/bin/poetry" install --no-root --with dev --with cpu ) cp -a "$tmpdir/machine-learning/ann" "$install_dir/app/machine-learning/" cp -a "$tmpdir/machine-learning/start.sh" "$install_dir/app/machine-learning/" From 655f0e6b628565539fbc88d9ab1b7a013ac882d4 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 27 Mar 2024 21:01:23 +0100 Subject: [PATCH 05/11] Fix --- scripts/_common.sh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/scripts/_common.sh b/scripts/_common.sh index 62da058..fe40810 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -134,6 +134,7 @@ myynh_install_python() { # Install immich myynh_install_immich() { ynh_use_nodejs + ynh_npm="ynh_exec_warn_less $ynh_npm" # Install immich-server cd "$tmpdir/server" @@ -157,7 +158,6 @@ myynh_install_immich() { cp -a "$tmpdir/server/resources" "$install_dir/app/" cp -a "$tmpdir/server/package.json" "$install_dir/app/" cp -a "$tmpdir/server/package-lock.json" "$install_dir/app/" - cp -a "$tmpdir/server/start.sh" "$install_dir/app/" cp -a "$tmpdir/server/start-microservices.sh" "$install_dir/app/" cp -a "$tmpdir/server/start-server.sh" "$install_dir/app/" cp -a "$tmpdir/LICENSE" "$install_dir/app/" @@ -184,8 +184,7 @@ myynh_install_immich() { ynh_exec_warn_less "$install_dir/app/machine-learning/venv/bin/poetry" install --no-root --with dev --with cpu ) cp -a "$tmpdir/machine-learning/ann" "$install_dir/app/machine-learning/" - cp -a "$tmpdir/machine-learning/start.sh" "$install_dir/app/machine-learning/" - cp -a "$tmpdir/machine-learning/app" "$install_dir/app/machine-learning/" + cp -a "$tmpdir/machine-learning/app" "$install_dir/app/machine-learning/" # Install custom start.sh script ynh_add_config --template="immich-machine-learning-start.sh" --destination="$install_dir/app/machine-learning/start.sh" chmod +x "$install_dir/app/machine-learning/start.sh" @@ -262,7 +261,7 @@ myynh_dump_psql_db() { # Restore the database myynh_restore_psql_db() { - sudo --login --user=postgres PGUSER=postgres PGPASSWORD="$(cat $PSQL_ROOT_PWD_FILE)" \ + sudo --login --user=postgres PGUSER=postgres PGPASSWORD="$(cat $PSQL_ROOT_PWD_FILE)" \ psql --cluster="$postgresql_version/main" --dbname="$app" < ./db.sql } From 6a96007b1c5f2b8aed406b48fd9549689c2532ca Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 27 Mar 2024 21:20:28 +0100 Subject: [PATCH 06/11] Fix --- scripts/_common.sh | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/scripts/_common.sh b/scripts/_common.sh index fe40810..822a3eb 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -134,21 +134,20 @@ myynh_install_python() { # Install immich myynh_install_immich() { ynh_use_nodejs - ynh_npm="ynh_exec_warn_less $ynh_npm" # Install immich-server cd "$tmpdir/server" - "$ynh_npm" ci - "$ynh_npm" run build - "$ynh_npm" prune --omit=dev --omit=optional + ynh_exec_warn_less "$ynh_npm" ci + ynh_exec_warn_less "$ynh_npm" run build + ynh_exec_warn_less "$ynh_npm" prune --omit=dev --omit=optional cd "$tmpdir/open-api/typescript-sdk" - "$ynh_npm" ci - "$ynh_npm" run build + ynh_exec_warn_less "$ynh_npm" ci + ynh_exec_warn_less "$ynh_npm" run build cd "$tmpdir/web" - "$ynh_npm" ci - "$ynh_npm" run build + ynh_exec_warn_less "$ynh_npm" ci + ynh_exec_warn_less "$ynh_npm" run build mkdir -p "$install_dir/app/" cp -a "$tmpdir/server/node_modules" "$install_dir/app/" @@ -198,7 +197,7 @@ myynh_install_immich() { # Install sharp cd "$install_dir/app" - "$ynh_npm" install sharp + ynh_exec_warn_less "$ynh_npm" install sharp # Use 127.0.0.1 for microservices sed -i -e "s@app.listen(port)@app.listen(port, '127.0.0.1')@g" "$install_dir/app/dist/microservices/main.js" From 7a3f3d17efa6d7a37db0d4461799a1fc6c83d0aa Mon Sep 17 00:00:00 2001 From: Sylvain Date: Thu, 28 Mar 2024 07:40:12 +0100 Subject: [PATCH 07/11] Fix --- scripts/_common.sh | 2 +- scripts/install | 3 --- scripts/restore | 22 +++++++++++++++------- 3 files changed, 16 insertions(+), 11 deletions(-) diff --git a/scripts/_common.sh b/scripts/_common.sh index 822a3eb..d82b3be 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -164,7 +164,7 @@ myynh_install_immich() { ynh_add_config --template="immich-server-start.sh" --destination="$install_dir/app/start.sh" chmod +x "$install_dir/app/start.sh" cd "$install_dir/app/" - "$ynh_npm" cache clean --force + ynh_exec_warn_less "$ynh_npm" cache clean --force # Install immich-machine-learning cd "$tmpdir/machine-learning" diff --git a/scripts/install b/scripts/install index 02f6908..f0bf438 100755 --- a/scripts/install +++ b/scripts/install @@ -6,9 +6,6 @@ source _common.sh source /usr/share/yunohost/helpers -# read -p "Continue [Y] ? " reponse -# [[ $reponse == "Y" ]] || ynh_die - #================================================= # APP "BUILD" (DEPLOYING SOURCES, VENV, COMPILING ETC) #================================================= diff --git a/scripts/restore b/scripts/restore index 5758241..0f19c04 100755 --- a/scripts/restore +++ b/scripts/restore @@ -27,6 +27,21 @@ ynh_restore_file --origin_path="$data_dir" --not_mandatory chown -R $app:$app "$data_dir" +#================================================= +# INSTALL NODEJS +#================================================= +ynh_script_progression --message="Reinstalling nodejs..." --weight=5 + +ynh_exec_warn_less ynh_install_nodejs --nodejs_version="$nodejs_version" + +#================================================= +# CHECK PYTHON VERSION AND COMPILE IF NEEDED +#================================================= +ynh_script_progression --message="Check Python version & compile the required one if needed..." --weight=1 + +py_required_version=$(ynh_app_setting_get --app="$app" --key=python) +myynh_install_python --python="$py_required_version" + #================================================= # RESTORE THE DATABASE #================================================= @@ -36,13 +51,6 @@ db_pwd=$(ynh_app_setting_get --app="$app" --key=psql_pwd) myynh_create_psql_db myynh_restore_psql_db -#================================================= -# INSTALL NODEJS -#================================================= -ynh_script_progression --message="Reinstalling nodejs..." --weight=5 - -ynh_exec_warn_less ynh_install_nodejs --nodejs_version="$nodejs_version" - #================================================= # RESTORE SYSTEM CONFIGURATIONS #================================================= From 788f9f5a2849f6b57119b13713d070469b1948da Mon Sep 17 00:00:00 2001 From: Sylvain Date: Thu, 28 Mar 2024 18:33:41 +0100 Subject: [PATCH 08/11] Fix --- scripts/_common.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/_common.sh b/scripts/_common.sh index d82b3be..99e5c2e 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -260,6 +260,10 @@ myynh_dump_psql_db() { # Restore the database myynh_restore_psql_db() { + # https://github.com/immich-app/immich/issues/5630#issuecomment-1866581570 + ynh_replace_string --match_string="SELECT pg_catalog.set_config('search_path', '', false);" \ + --replace_string="SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);" --target_file=target_file + sudo --login --user=postgres PGUSER=postgres PGPASSWORD="$(cat $PSQL_ROOT_PWD_FILE)" \ psql --cluster="$postgresql_version/main" --dbname="$app" < ./db.sql } From 93fa4676e2cf42908af8fbdbe46617e7c95c5f21 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Thu, 28 Mar 2024 19:26:48 +0100 Subject: [PATCH 09/11] Fix --- scripts/_common.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/scripts/_common.sh b/scripts/_common.sh index 99e5c2e..4f6012a 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -133,6 +133,8 @@ myynh_install_python() { # Install immich myynh_install_immich() { + # Thanks to https://github.com/arter97/immich-native + ynh_use_nodejs # Install immich-server @@ -262,7 +264,7 @@ myynh_dump_psql_db() { myynh_restore_psql_db() { # https://github.com/immich-app/immich/issues/5630#issuecomment-1866581570 ynh_replace_string --match_string="SELECT pg_catalog.set_config('search_path', '', false);" \ - --replace_string="SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);" --target_file=target_file + --replace_string="SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);" --target_file="db.sql" sudo --login --user=postgres PGUSER=postgres PGPASSWORD="$(cat $PSQL_ROOT_PWD_FILE)" \ psql --cluster="$postgresql_version/main" --dbname="$app" < ./db.sql From 0b60b00597567fb2bbd114ff9c26af84cfa6ae51 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Thu, 28 Mar 2024 21:31:12 +0100 Subject: [PATCH 10/11] Add geonames --- manifest.toml | 2 +- scripts/_common.sh | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/manifest.toml b/manifest.toml index 087c621..7fbee9e 100644 --- a/manifest.toml +++ b/manifest.toml @@ -66,7 +66,7 @@ ram.runtime = "500M" api.protected = true [resources.apt] - packages = ["python3-venv", "python3-dev", "ffmpeg", "postgresql", "wget", "build-essential", "libreadline-dev", "libncursesw5-dev", "libssl-dev", "libsqlite3-dev", "tk-dev", "libgdbm-dev", "libc6-dev", "libbz2-dev", "libffi-dev", "zlib1g-dev"] + packages = ["python3-venv", "python3-dev", "ffmpeg", "postgresql", "wget", "build-essential", "libreadline-dev", "libncursesw5-dev", "libssl-dev", "libsqlite3-dev", "tk-dev", "libgdbm-dev", "libc6-dev", "libbz2-dev", "libffi-dev", "zlib1g-dev", "unzip"] extras.postgresql.repo = "deb https://apt.postgresql.org/pub/repos/apt bullseye-pgdg main 16" extras.postgresql.key = "https://www.postgresql.org/media/keys/ACCC4CF8.asc" diff --git a/scripts/_common.sh b/scripts/_common.sh index 4f6012a..cff87f3 100644 --- a/scripts/_common.sh +++ b/scripts/_common.sh @@ -207,6 +207,17 @@ myynh_install_immich() { # Cleanup ynh_secure_remove --file="$tmpdir" + # Install geonames + wget --output-document="$install_dir/resources/cities500.zip" \ + "https://download.geonames.org/export/dump/cities500.zip" 2>&1 + unzip "$install_dir/resources/cities500.zip" -d "$install_dir/resources/" + ynh_secure_remove --file="$install_dir/resources/cities500.zip" + wget --output-document="$install_dir/resources/admin1CodesASCII.txt" \ + "https://download.geonames.org/export/dump/admin1CodesASCII.txt" 2>&1 + wget --output-document="$install_dir/resources/admin2Codes.txt" \ + "https://download.geonames.org/export/dump/admin2Codes.txt" 2>&1 + date --iso-8601=seconds | tr -d "\n" > "$install_dir/resources/geodata-date.txt" + # Fix permissisons chmod 750 "$install_dir" chmod -R o-rwx "$install_dir" From f94769b15f8e4574b55dc8b2169b57a3e381222a Mon Sep 17 00:00:00 2001 From: Sylvain Date: Thu, 28 Mar 2024 22:15:04 +0100 Subject: [PATCH 11/11] Update documentation --- doc/DESCRIPTION.md | 7 ++++++- doc/DESCRIPTION_fr.md | 6 ++++++ doc/PRE_INSTALL.md | 1 + doc/PRE_INSTALL_fr.md | 1 + 4 files changed, 14 insertions(+), 1 deletion(-) create mode 100644 doc/DESCRIPTION_fr.md create mode 100644 doc/PRE_INSTALL.md create mode 100644 doc/PRE_INSTALL_fr.md diff --git a/doc/DESCRIPTION.md b/doc/DESCRIPTION.md index 9f1112a..2ae5585 100644 --- a/doc/DESCRIPTION.md +++ b/doc/DESCRIPTION.md @@ -1 +1,6 @@ -Photo and video backup solution directly from your mobile phone \ No newline at end of file +Self-hosted photo and video management solution. + +### Features + +- Simple-to-use backup tool with a native mobile app that can view photos and videos efficiently ; +- Easy-to-use and friendly interface ; diff --git a/doc/DESCRIPTION_fr.md b/doc/DESCRIPTION_fr.md new file mode 100644 index 0000000..c49faea --- /dev/null +++ b/doc/DESCRIPTION_fr.md @@ -0,0 +1,6 @@ +Solution d'autohébergement pour a gestion de vos photos et vidéos. + +### Caractéristiques + +- Sauvegarde depuis l'applicaton mobile qui permet également de visualiser efficacement photos et vidéos ; +- Interface conviviale et egronomique ; diff --git a/doc/PRE_INSTALL.md b/doc/PRE_INSTALL.md new file mode 100644 index 0000000..29e9b5c --- /dev/null +++ b/doc/PRE_INSTALL.md @@ -0,0 +1 @@ +As the pyhton version shipped in Debian stable is not always supported, a recent version could be built during the installation process. It may take a while to achieve that (15 to 60 minutes). diff --git a/doc/PRE_INSTALL_fr.md b/doc/PRE_INSTALL_fr.md new file mode 100644 index 0000000..112cf44 --- /dev/null +++ b/doc/PRE_INSTALL_fr.md @@ -0,0 +1 @@ +Comme la version python livrée dans Debian stable n'est pas toujours prise en charge, une version récente pourrait être construite pendant le processus d'installation. Cela peut prendre un certain temps pour y parvenir (15 à 60 minutes).