From e9d09ef2e9e0d9349aa50e29fa9fa6f4c599578b Mon Sep 17 00:00:00 2001 From: StepanovPlaton Date: Thu, 29 Jan 2026 15:50:13 +0400 Subject: [PATCH 1/3] Update readme --- Debian.md | 93 +++++++++++++++++ OPNsense.md | 97 +++++++++++++++++ Proxmox.md | 62 +++++++++++ README.md | 206 ++++--------------------------------- Services.md | 168 ++++++++++++++++++++++++++++++ autossh/docker-compose.yml | 8 +- pihole/.env.example | 1 - pihole/block-lists.txt | 9 -- pihole/docker-compose.yml | 33 ------ pihole/etc-dnsmasq.d/.keep | 0 pihole/etc-pihole/.keep | 0 pihole/set-password.sh | 1 - proxy/crowdsec.sh | 34 ++++++ proxy/install-bouncer.sh | 26 ++++- samba/docker-compose.yml | 2 +- 15 files changed, 502 insertions(+), 238 deletions(-) create mode 100644 Debian.md create mode 100644 OPNsense.md create mode 100644 Proxmox.md create mode 100644 Services.md delete mode 100644 pihole/.env.example delete mode 100644 pihole/block-lists.txt delete mode 100644 pihole/docker-compose.yml delete mode 100644 pihole/etc-dnsmasq.d/.keep delete mode 100644 pihole/etc-pihole/.keep delete mode 100644 pihole/set-password.sh create mode 100644 proxy/crowdsec.sh diff --git a/Debian.md b/Debian.md new file mode 100644 index 0000000..0b74de1 --- /dev/null +++ b/Debian.md @@ -0,0 +1,93 @@ +# Настройка Debian + +## 1. Установка Debian + +Стандартная установка Debian Minimal. Занимаем весь виртуальный диск. При установке отключаем графический интерфейс и ставим SSH сервер. + +После установки заходим под root и устанавливаем `sudo`. +```bash +apt install sudo +usermod -aG sudo имя_пользователя +``` + +Перезаходим и дальше работаем под обычным пользователем. + +## 2. Статический IP +Смотрим название сетевого интерфейса и устанавливаем resolvconf (для поддержки dns-nameservers): +```bash +ip addr +sudo apt install resolvconf +``` +Редактируем настройки +```bash +sudo nano /etc/network/interfaces +``` +Добавляем настройки: +``` +auto enp0s3 +iface enp0s3 inet static + address 192.168.1.100 + netmask 255.255.255.0 + gateway 192.168.1.1 + dns-nameservers 77.88.8.8 8.8.8.8 +``` +Перезагружаемся: +```bash +sudo reboot +``` + +## 3. Установка Podman + +> Мы будем использовать Podman вместо Docker в целях безопасности. Podman не требует запущенного демона для работы и по умолчанию нацелен на работу в rootless режиме, что нам очень интересно. + +```bash +sudo apt install podman podman-compose +``` + +Добавляем загрузку контейнеров с параметром `restart: always` при загрузке системы +```bash +systemctl --user enable podman-restart.service +sudo loginctl enable-linger USER +``` + +## 4. Клонируем этот репозиторий для запуска сервисов + +```bash +sudo apt install git +mkdir ~/services +cd ~/services +git clone https://github.com/StepanovPlaton/HomeServerServices . +``` + +## 5. Монтирование дисков + +Смотрим список разделов с их UUID +```bash +sudo blkid +``` +Создаём точку монтирования +```bash +mkdir ~/diskN +``` +Добавляем запись в fstab +```bash +sudo nano /etc/fstab +``` +В конец добавляем +``` +UUID=***-***-***-***-*** /home/USER/diskN ext4 defaults,nofail 0 2 +``` +Монтируем диск +```bash +sudo systemctl daemon-reload +sudo mount -a +``` + + +Для корректной работы с диском может потребоваться изменить права доступа. +```bash +sudo chown -R 1000:1000 path/to/disk +podman unshare chown -R 1000:1000 path/to/disk +``` + +**Настройка сервисов описана в файле [Services.md](Services.md)** diff --git a/OPNsense.md b/OPNsense.md new file mode 100644 index 0000000..27cb2bd --- /dev/null +++ b/OPNsense.md @@ -0,0 +1,97 @@ +# Настройка OPNsense + +## 1. Установка OPNsense + +Ничего не трогаем в момент загрузки. Авторизуемся как `installer`, пароль по умолчанию - `opnsense`. + +- Добавляем английскую локаль +- Выбираем ФС - **ZFS RAID0** +- Предупреждение о недостатке ОЗУ можно пропустить +- Устанавливаем систему + +## 2. Создаём второй сетевой мост + +Создаём второй сетевой мост для второго порта, подключаем сетевое устройство в ВМ OPNsense. Перезагружаем ВМ OPNsense. + +## 3. Настройка OPNsense + +В меню терминала: + +1. Выбираем **1 - assign interfaces**: + - Назначаем одному порту **WAN** (порт для провайдера, во внешний интернет) + - Второму порту **LAN** (порт для локальной сети) + +2. Выбираем **2 - set interface ip address**: + - Для LAN указываем статический IPv4 (это будет наш Gateway) + - DHCP можно пока не включать, настроим позже + +## 4. Обновляем OPNsense + +1. Открываем web интерфейс по адресу установленному для LAN +2. Заходим **Система > Программное обеспечение > Статус > Проверить наличие обновлений** +3. Потом раздел обновления, снизу кнопка **обновить** +4. Ждём обновления всех пакетов + +## 5. Устанавливаем плагин Qemu Agent + +Нужен для управления OPNsense из Proxmox. + +1. Заходим **Система > Программное обеспечение > Плагины** +2. Включаем галочку **показать плагины сообщества** +3. Ставим плагин `os-qemu-guest-agent` + +## 6. Настраиваем доступ в интернет + +Можно воспользоваться стандартным мастером настройки: + +1. Открываем его в разделе **Система > Конфигурация > Мастер** +2. Для доступа в WAN выбираем пункт **PPPoE** +3. Устанавливаем логин и пароль провайдера +4. Остальное уже должно быть настроено, но можно что-то изменить + +## 7. Настройка DHCP + +В разделе **Службы**: + +- Выключаем **Dnsmasq DNS & DHCP** +- Включаем **ISC DHCPv4** + - В настройках DNS первым сервером указываем IP адрес OPNsense. Сам DNS сервер настроем в следущем шаге + +## 8. Настройка DNS + +> Для безопасности домашней сети от чрезмерной рекламы и сбора статистики добавим фильтр [AdGuard Home](https://github.com/AdguardTeam/AdGuardHome) +> Если для вашей сети достаточно обычного DNS просто включите в настройках **Unbound DNS** + +В консоли OPNsense добавим новый репоизторий +```bash +fetch -o /usr/local/etc/pkg/repos/mimugmail.conf https://www.routerperformance.net/mimugmail.conf +pkg update +``` +После чего в разделе **Система > ПО > Плагины** появится пакет os-adguardhome-maxit (ставим калочку показать пользовательские пакеты). Устанавливаем его и включаем в разделе **Службы**. Мастер настройки запуститься на IP OPNsense на 3000 порту. + +В настройках **указываем внутренний интерфейс LAN** и ставим WebUI AdGuardHome на 3000 порт. В разделе DNS-сервер так же **выбираем только внутренний интерфейс LAN**, порт по умолчанию 53. По какой-то причине AdGuard думает что у нас динамический IP, хотя это не так - игнорируем предупреждение. + +В настройках добавляем блоклисты по выбору: +- [Hagezi Multi Pro++ — Идеальный баланс. Блокирует почти всё, при этом редко «ломает» сайты](https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.plus.txt) +- [Hagezi Multi Ultimate — Самый жесткий вариант. Блокирует агрессивно, включая глубокую телеметрию. Может потребоваться ручная разблокировка некоторых сервисов (белый список)](https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/ultimate.txt) +- и любые другие на своё усмотрение + +## 9. Проброс портов + +> Для начала нужно освободить 80 порт, потому что на нём по умолчанию доступен сам OPNsense. В разделе **Система > Настройки > Администрирование** заменим 80 порт на 8000 + +В разделе **Межсетевой экран > NAT > Передаресация портов** добавим правило. +- **Interface:** WAN +- **TCP/IP Version:** IPv4 +- **Protocol:** TCP +- **Destination:** WAN address +- **Destination port range:** Внешний порт +- **Redirect target IP:** Введите локальный IP вашего сервера +- **Redirect target port:** Порт назначения +- **Pool Options:** Default +- **Filter rule association:** Add associated filter rule + - **Это важно:** OPNsense автоматически создаст разрешающее правило в брандмауэре + +Для HTTP нужно добавить перенаправления на 8080 порт сервера, для HTTPS на 8443. Базовые порты 80 и 443 недоступны в rootless контейнере. Сохраняем изменения и проверяем в разделе **Межсетевой экран > Правила > WAN**. + +Для доступа из домашней сети нужно добавить зеркальный NAT в разделе **Межсетевой экран > Настройки > Дополнительно** ставим галочки **Отображение для перенаправлений портов** и **Автоматический исходящий NAT для отображения** \ No newline at end of file diff --git a/Proxmox.md b/Proxmox.md new file mode 100644 index 0000000..d96edcd --- /dev/null +++ b/Proxmox.md @@ -0,0 +1,62 @@ +# Настройка Proxmox + +## 1. Отключаем enterprise репозитории и обновляем пакеты + +В разделе **Сервер > Обновления > Репозитории**: +- Отключаем всё с упоминанием enterprise +- Добавляем No-Subscription репозиторий + +Затем обновляем пакеты в терминале сервера: +```bash +apt update && apt upgrade +``` + +## 2. Загружаем на сервер ISO образы + +- Для OPNsense выбираем образ типа **DVD** +- Для Debian нужен minimal образ netinst +- Копируем файлы в разделе **Сервер > local > ISO-образы** + +## 3. Создаём ВМ с OPNsense + +Настройки ВМ: + +- **Общее > Запуск при загрузке**: Включаем +- **ОС > Гостевая ОС**: Other (OPNsense - это FreeBSD) +- **Система > Агент QEMU**: включить (нужен для просмотра информации о системе в гипервизоре) +- **Диски > Шина**: SCSI +- **Размер диска**: 16Гб (достаточно) +- **ЦП > Тип**: host +- **ЦП > Кол-во ядер**: 2 +- **Объём ОЗУ**: 2Гб (не менее 1Гб) +- **Сеть > Модель**: VirtIO +- **Сетевой экран**: отключаем (OPNsense сам решает эту задачу) +- Остальные настройки по умолчанию + +Выбираем загруженный ISO-образ и запускаем ВМ. + +**Настройка OPNsense описана в файле [OPNsense.md](OPNsense.md)** + +## 4. Создаём ВМ с Debian + +> По идее Proxmox работает на ядре Linux и построен на Debian, поэтому мы могли бы использовать LXC контейнер, однако для запуска Docker (Podman) внутри LXC нужны разрешения, и модули ядра, не способствующие безопасности. По сути при таком подходе Docker (Podman) будет работать чуть ли не в самом гипервизоре, что плохо. Поэтому используем ВМ + +Настройки ВМ: + +- **Общее > Запуск при загрузке**: Включаем +- **ОС > Гостевая ОС**: Linux 6.x +- **Система > Агент QEMU**: включить (нужен для просмотра информации о системе в гипервизоре) +- **Диски > Шина**: SCSI +- **Размер диска**: 48Гб (и более) +- **ЦП > Тип**: host +- **ЦП > Кол-во ядер**: 4 (и более) +- **Объём ОЗУ**: 4Гб (и более) +- **Сеть > Модель**: VirtIO +- **Сетевой экран**: отключаем (нас прикрывает OPNsense) +- Остальные настройки по умолчанию + +> Если мы хотим добавить внешние диски для хранения данных, нужно дать ВМ доступ к ним через USB. В разделе **Оборудование** нужно добавить USB-устройство. Лучше всего дать доступ ВМ к самому USB-порту, тогда любое устройство в него вставленное будет доступно внутри ВМ, но можно так же предоставить доступ к конкретному устройству, в какой порт оно не было бы вставлено. +> +> Чтобы посмотреть подключенные USB-устройства и скорости их работы запускаем команду `lsusb -t` и ищем наши диски (`Class=Mass Storage`) + +**Настройка Debian описана в файле [Debian.md](Debian.md)** \ No newline at end of file diff --git a/README.md b/README.md index daf33ae..86f36ba 100644 --- a/README.md +++ b/README.md @@ -1,50 +1,33 @@ # Home Server Services -> **Home Server Services** - это полный набор сервисов в Docker для организации домашнего сервера! +> **Home Server Services** - это гайд по настройке и полный набор сервисов в Docker для организации домашнего роутера/сервера! > -> Главное - это **модульность** и **воспроизводимая установка**. Можно развернуть за 15 минут! +> Главное - это **модульность** и **воспроизводимая установка**. Можно развернуть за 30 минут! ![](./screenshots/grafana.jpg) ![](./screenshots/portainer.jpg) ## Мой сервер: -- CheckWay POS88 +- CheckWay Sherman Micro - [Intel Celeron J1900](https://technical.city/ru/cpu/Core-2-Duo-E8400-protiv-Celeron-J1900) @ 1.99GHz (64 bit) - - 4Gb RAM + - 8Gb RAM - 120Gb SSD - - Не греется, не шумит, мало потребляет -- Debian 13 (Trixie) Minimal - - [Docker](https://www.docker.com/) - - [Docker Compose](https://docs.docker.com/compose/) - - Политика частоты работы CPU - `ondemand` - -## Сервисы: - -- [Portainer](./portainer/) - Управление контейнерами -- [Grafana](./grafana/) - Загруженность сервера - - [Prometheus](./grafana/prometheus.yml) - - [Node Exporter](./grafana/) -- [Proxy](./proxy/) - Reverse proxy - - [Nginx](./proxy/nginx/) - - [DDNS](./proxy/ddns/) - Автоматическое обновление DNS записей у регистратора [рег.ру](https://www.reg.ru) - - Let's Encrypt - Автоматическое обновление SSL сертификатов на все домены -- [Samba](./samba/) - Сетевой диск -- [Syncthing](./syncthing/) - Синхронизация данных между устройствами -- [Transmission](./transmission/) - BitTorrent клиент -- [AutoSSH](./autossh/) - SSH тунель -- [Gitea](./gitea/) - Git-сервер -- [Cloud](./cloud/) - FileBrowser - веб-интерфейс для управления файлами -- [Matrix](./matrix/) - сервер Matrix - - [Synapse](./matrix/create_config.sh) - Matrix сервер Synapse - - [Element](./matrix/docker-compose.yml) - Matrix веб-клиент Element -- [Pi-hole](./pihole/) - DNS фильтр (блокировка рекламы, слежки, защита от атак) + - 2x 1Gbps (WAN+LAN) +- Proxmox VE 9.1.4 + - OPNsense 25.7 + - [CrowdSec](https://www.crowdsec.net) + - Debian 13 (Trixie) Minimal + - [Podman](https://podman.io) ## О проекте: - **Полнофункциональный домашний сервер** -- **Все сервисы настроены через Docker Compose** для легкого управления и быстрого запуска -- **Мониторинг системы через Grafana** с готовыми дашбордами +- Две одновременно запущенные операционные системы запущенны в гипервизоре Proxmox + - OPNsense выполняет функции роутера, DHCP и NTP сервера, защищает домашнюю сеть от вторжений с CrowSec + - В Debian в Podman запущены контейнеры с сервисами +- **Все сервисы настроены через Docker Compose (совместим с Podman)** для легкого управления и быстрого запуска +- **Мониторинг системы через Grafana** с готовым дашбордом - **Файловый сервер Samba** для доступа к файлам по сети - Открытый диск только на чтение - Доступ на запись только после авторизации @@ -56,172 +39,21 @@ - **Nginx reverse proxy** для маршрутизации трафика к сервисам - Автоматическое получение и обновление SSL сертификатов через Let's Encrypt - Автоматическое обновление DNS записей у регистратора [рег.ру](https://www.reg.ru) -- **Git-сервер Gitea** для хостинга собственных репозиториев +- **Git-сервер Gitea** для хостинга репозиториев - **FileBrowser** - веб-интерфейс для управления файлами через браузер - **Matrix Synapse** - собственный сервер для мессенджера Matrix с веб-клиентом Element - Блокировка рекламы, нежелательной слежки, частичная защита от атак с помощью **Pi-hole** -- Управление Docker через **Portainer с веб-интерфейсом** -- Скрипт для снижения энергопотребления -- Все **сервисы используют переменные окружения** для гибкой настройки и примеры конфигураций -- Автоматический перезапуск контейнеров при сбоях +- Управление контейнерами через **Portainer** +- Все **сервисы используют переменные окружения** для гибкой настройки и примеры конфигурации ## Подготовка: - Купить белый IP адрес у провайдера -- В настройках роутера пробросить 80 и 443 порт на сервер - Купить домен второго уровня у регистратора [рег.ру](https://www.reg.ru) - [В настройках API рег.ру](https://www.reg.ru/user/account/settings/api/) добавить CIDR вашего провайдера (чтобы при смене IP наш скрипт смог обновить DNS записи) - В настройках DNS-серверов зоны указать бесплатные DNS-серверы рег.ру: `ns1.reg.ru`, `ns2.reg.ru` -## Запуск: - -### 1. Portainer - -```bash -cd portainer -cp .env.example .env && vim .env -sudo docker compose up -d -``` - -### 2. Grafana - -```bash -cd grafana -cp .env.example .env && vim .env -sudo docker compose up -d -``` - -### 3. AutoSSH - -```bash -cd autossh -cp .env.example .env && vim .env -sudo docker compose up -d --build -``` - -### 4. Samba - -```bash -cd samba -cp .env.example .env && vim .env -sudo docker compose up -d -``` - -### 5. Transmission - -```bash -cd transmission -cp .env.example .env && vim .env -sudo docker compose up -d -``` - -### 6. Syncthing - -```bash -cd syncthing -cp .env.example .env && vim .env -sudo docker compose up -d -``` - -### 7. Gitea - -```bash -cd gitea -cp .env.example .env && vim .env -sudo docker compose up -d -``` - -> **Примечание:** Конфигурируется позже, уже в веб-форме. - -### 8. Cloud (FileBrowser) - -```bash -cd cloud -cp .env.example .env && vim .env -touch filebrowser.db -sudo docker compose up -d -``` - -### 9. Matrix - -```bash -cd matrix -cp .env.example .env && vim .env -``` - -Создаём конфиг [по примеру](./matrix/create_config.sh). Меняем базу данных на PostgreSQL: - -```yaml -database: - name: psycopg2 - args: - user: user - password: passw0rd - database: db - host: matrix-db - cp_min: 5 - cp_max: 10 -``` - -Запускаем: - -```bash -sudo docker compose up -d -``` - -Создаём пользователя [по примеру](./matrix/create_user.sh). - -### 10. Pi-hole - -```bash -cd pihole -cp .env.example .env && vim .env -sudo docker compose up -d -``` - -[Устанавливаем пароль](./pihole/set-password.sh) (оставить пустым для доступа без пароля) - -В разделе Settings > DNS выбираем вышестоящие DNS сервер. Включаем сверху расширенные настройки и в блоке interface settings выбираем пункт `Permit all origins`. В разделе Lists добавляем [списки доменов для блокировки](./pihole/block-lists.txt). Затем обновляем их в Tools > Update Gravity. В настройках ПК (роутера) устанавливаем в качестве DNS наш сервер. - -### 11. Nginx Reverse Proxy (Entrypoint) - -```bash -cd proxy -cp .env.example .env && vim .env -``` - -Создаём конфиг для DynDNS: - -```bash -cp ddns/domains.txt.example ddns/domains.txt && vim ddns/domains.txt -``` - -Нужно указать ресурсные записи `@` и `www` для доступа к домену второго уровня напрямую. Также нужно добавить домены 3-го уровня для: gitea, cloud (filebrowser), matrix server (synapse), matrix client (element). - -В первый раз SSL сертификаты нужно создать вручную. - -Запускаем DDNS скрипт и HTTP сервер для Let's Encrypt: - -```bash -sudo docker compose -f init-compose.yml up -d --build -``` - -Проверяем по логам в portainer и в личном кабинете рег.ру что ресурсные записи обновились. Ожидаем пока DNS обновит информацию о наших поддоменах (занимает от 15 минут до 24 часов). Затем создаём SSL сертификаты на каждый домен(-ы) [по примеру](./proxy/create-first-cert-example.sh). - -Настраиваем Nginx: - -```bash -cd nginx/conf.d -cp default.conf.example default.conf -vim default.conf -``` - -Запускаем основной контейнер: - -```bash -sudo docker compose -f init-compose.yml down -sudo docker compose up -d --build -``` +После этих шагов можно переходить к настройке сервера. **[Первым шагом установим гипервизор Proxmox](./Proxmox.md)** ## Использование: diff --git a/Services.md b/Services.md new file mode 100644 index 0000000..51b2c58 --- /dev/null +++ b/Services.md @@ -0,0 +1,168 @@ +# Настройка сервисов + +## 1. [Portainer](./portainer/) - WebUI для управления контейнерами +> Для запуска Portainer требуется активный Docker сокет. В Podman по-умолчанию его нет, так как это является потенциальным вектором атаки. Запускайте сокет только для конкретного пользователя (не root!) +```bash +cd portainer +cp .env.example .env && vim .env +systemctl --user enable --now podman.socket +podman-compose up -d +podman generate systemd --new --files --name portainer +systemctl --user enable ./container-portainer.service +``` + +## 2. [Grafana](./grafana/) - Dashboard со статистикой загруженности сервера +> Proxmox предоставляет достаточно информации об использовании ресурсов системы, но если вы ставите Debian как контейнеров сервисов отдельно, вам может потребоваться Grafana +```bash +cd grafana +cp .env.example .env && vim .env +podman-compose up -d +podman generate systemd --new --files --name portainer +systemctl --user enable ./container-portainer.service +``` + +### 3. [AutoSSH](./autossh/) - SSH тунель, проброс портов + +```bash +cd autossh +cp .env.example .env && vim .env +podman-compose up -d --build +``` + +### 4. [Samba](./samba/) - сетевой диск в локальной сети + + +```bash +cd samba +cp .env.example .env && vim .env +podman-compose up -d +``` + +> Samba работает на 139 и 445 порту, для доступа к ним нужны root права. Чтобы не запускать контейнер от имени root пробросим порты из контейнера на 1139 и 1445 порты соответственно, и добавим правила в iptables для переадресации трафика + +```bash +sudo iptables -t nat -A PREROUTING -p tcp --dport 139 -j REDIRECT --to-ports 1139 +sudo iptables -t nat -A PREROUTING -p tcp --dport 445 -j REDIRECT --to-ports 1445 +sudo iptables -t nat -L -n -v # Посмотреть список правил + +# Для сохранения правил iptables после перезагрузки +sudo apt install iptables-persistent +sudo netfilter-persistent save # сохранить текущие iptables +``` + +### 5. [Transmission](./transmission/) - qBitTorrent клиент + +```bash +cd transmission +cp .env.example .env && vim .env +podman-compose up -d +``` + +В настройках клиента указанная в `.env` папка доступна по пути `/downloads`. Можно подключиться с помощью [Transmission Remote GUI](https://github.com/transmission-remote-gui/transgui) или [Transmission Qt](https://transmissionbt.com/download.html) + +### 6. [Syncthing](./syncthing/) - синхронизация файлов между устройствами + +```bash +cd syncthing +cp .env.example .env && vim .env +mkdir config && podman unshare chown -R 1000:1000 config +podman-compose up -d +``` + +### 7. [Gitea](./gitea/) + +```bash +cd gitea +cp .env.example .env && vim .env +mkdir config && podman unshare chown -R 1000:1000 config +mkdir data && podman unshare chown -R 1000:1000 data +mkdir db && podman unshare chown -R 1000:1000 db +podman-compose up -d +``` + +Gitea конфигурируется позже, уже в веб-форме. Обязательно **отключаем самостоятельную регистрацию** и создаём администратора (пользователя по умолчанию). Остальное не трогаем, уже сконфигурировано в `.env` + +### 8. [Cloud (FileBrowser)](./cloud/) + +```bash +cd cloud +cp .env.example .env && vim .env +touch filebrowser.db && podman unshare chown -R 1000:1000 filebrowser.db +podman-compose up -d +``` + +### 9. [Matrix](./matrix/) + +```bash +cd matrix +mkdir data && podman unshare chown -R 1000:1000 data +podman run -it --rm -v "$(pwd)/data:/data" -e SYNAPSE_SERVER_NAME=MATRIX.DOMAIN.ru -e SYNAPSE_REPORT_STATS=no docker.io/matrixdotorg/synapse:latest generate +``` +Меняем базу данных на PostgreSQL и прописываем БД, пользователя, пароль: + +```yaml +database: + name: psycopg2 + args: + user: user + password: passw0rd + database: db + host: matrix-db + cp_min: 5 + cp_max: 10 +``` +```bash +mkdir db && podman unshare chown -R 1000:1000 db +cp .env.example .env && vim .env +podman-compose up -d +``` + +Создаём пользователя +```bash +podman exec -it matrix-synapse register_new_matrix_user -c /data/homeserver.yaml http://localhost:8008 +``` + +### 10. [Nginx Reverse Proxy (Entrypoint)](./proxy) + +```bash +cd proxy +cp .env.example .env && vim .env +``` + +Создаём конфиг для DynDNS: + +```bash +cp ddns/domains.txt.example ddns/domains.txt && vim ddns/domains.txt +``` + +Нужно указать ресурсные записи `@` и `www` для доступа к домену второго уровня напрямую. Также нужно добавить домены 3-го уровня для: gitea, cloud (filebrowser), matrix server (synapse), matrix client (element). + +В первый раз SSL сертификаты нужно создать вручную. + +Запускаем DDNS скрипт и HTTP сервер для Let's Encrypt: + +```bash +podman-compose -f init-compose.yml up -d --build +``` + +Проверяем по логам в portainer и в личном кабинете рег.ру что ресурсные записи обновились. Ожидаем пока DNS обновит информацию о наших поддоменах (занимает от 15 минут до 24 часов). + +Затем создаём SSL сертификаты на каждый домен(-ы) c помощью команды +```bash +podman-compose run --rm --entrypoint "certbot" certbot certonly --webroot --webroot-path=/var/www/certbot --email your-email@gmail.com --agree-tos --no-eff-email -d domain.com -d domain2.com +``` + +Настраиваем Nginx: + +```bash +cd nginx/conf.d +cp default.conf.example default.conf +vim default.conf +``` + +Запускаем основной контейнер: + +```bash +podman-compose -f init-compose.yml down +podman-compose up -d --build +``` \ No newline at end of file diff --git a/autossh/docker-compose.yml b/autossh/docker-compose.yml index 8aa0768..ae379ce 100644 --- a/autossh/docker-compose.yml +++ b/autossh/docker-compose.yml @@ -20,18 +20,18 @@ services: command: > -M 0 -N - + -v -o StrictHostKeyChecking=no -o ServerAliveInterval=60 -o ServerAliveCountMax=3 - + -o ExitOnForwardFailure=yes + -p ${SSH_PORT:-22} -L 0.0.0.0:${SSH_TUNNEL_TO:?}:localhost:${SSH_TUNNEL_FROM:?} ${SSH_USER:?}@${SSH_HOST:?} - -p ${SSH_PORT:-22} deploy: resources: limits: - cpus: '0.1' + cpus: "0.1" memory: 64M reservations: memory: 32M diff --git a/pihole/.env.example b/pihole/.env.example deleted file mode 100644 index f985156..0000000 --- a/pihole/.env.example +++ /dev/null @@ -1 +0,0 @@ -PIHOLE_IP=192.168.32.1 \ No newline at end of file diff --git a/pihole/block-lists.txt b/pihole/block-lists.txt deleted file mode 100644 index 5225b37..0000000 --- a/pihole/block-lists.txt +++ /dev/null @@ -1,9 +0,0 @@ -https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts -https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/multi.txt -https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt -https://raw.githubusercontent.com/ElkyBoy/ruadlist-pihole/refs/heads/main/adservers_pihole.txt -https://abp.oisd.nl/basic/ -https://adaway.org/hosts.txt -https://v.firebog.net/hosts/RPiList-Malware.txt -https://raw.githubusercontent.com/anudeepND/blacklist/master/adservers.txt -https://raw.githubusercontent.com/mmotti/pihole-regex/refs/heads/master/regex.list diff --git a/pihole/docker-compose.yml b/pihole/docker-compose.yml deleted file mode 100644 index 4ed09d2..0000000 --- a/pihole/docker-compose.yml +++ /dev/null @@ -1,33 +0,0 @@ -services: - pihole: - container_name: pihole - image: pihole/pihole:latest - # Для корректной работы DNS-фильтрации контейнеру нужны права администратора сети - cap_add: - - NET_ADMIN - ports: - - "53:53/tcp" - - "53:53/udp" - # - "67:67/udp" # Раскомментируйте, если планируете использовать Pi-hole как DHCP-сервер - - "8080:80/tcp" # Веб-интерфейс будет доступен на порту 8080 (чтобы не занимать 80) - environment: - TZ: "Europe/Samara" # Укажите ваш часовой пояс - FTLCONF_LOCAL_IPV4: "${PIHOLE_IP:?}" # IP-адрес вашего хоста (сервера) - volumes: - - "./etc-pihole:/etc/pihole" - - "./etc-dnsmasq.d:/etc/dnsmasq.d" - restart: unless-stopped - deploy: - resources: - limits: - cpus: "0.25" - memory: 128M - reservations: - memory: 64M - networks: - - pihole_network - -networks: - pihole_network: - name: pihole_network - driver: bridge diff --git a/pihole/etc-dnsmasq.d/.keep b/pihole/etc-dnsmasq.d/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/pihole/etc-pihole/.keep b/pihole/etc-pihole/.keep deleted file mode 100644 index e69de29..0000000 diff --git a/pihole/set-password.sh b/pihole/set-password.sh deleted file mode 100644 index 7752f4a..0000000 --- a/pihole/set-password.sh +++ /dev/null @@ -1 +0,0 @@ -docker exec -it pihole pihole setpassword diff --git a/proxy/crowdsec.sh b/proxy/crowdsec.sh new file mode 100644 index 0000000..01e93af --- /dev/null +++ b/proxy/crowdsec.sh @@ -0,0 +1,34 @@ +# Получить API ключ +docker exec crowdsec cscli bouncers add firewall-bouncer + +# Посмотреть статистику в реальном времени: +docker exec crowdsec cscli metrics + +# Добавить IP в белый список (локально): +docker exec crowdsec cscli whitelists add --ip 192.168.1.5 +# Посмотреть белые списки: +docker exec crowdsec cscli parsers list | grep whitelist + +# Список всех активных банов: +docker exec crowdsec cscli decisions list +# Забанить IP вручную (на 24 часа по умолчанию): +docker exec crowdsec cscli decisions add --ip 1.2.3.4 --duration 24h --reason "Причина" +# Забанить целую подсеть: +docker exec crowdsec cscli decisions add --range 1.2.3.0/24 +# Удалить вообще все активные баны: +docker exec crowdsec cscli decisions delete --all + +# Список последних событий: +docker exec crowdsec cscli alerts list +# Посмотреть подробности конкретного алерта (по ID): +docker exec crowdsec cscli alerts inspect + +# Посмотреть, что установлено: +docker exec crowdsec cscli hub list +# Обновить базу правил (как apt update): +docker exec crowdsec cscli hub update +# Установить новую коллекцию (например, для защиты SSH): +docker exec crowdsec cscli collections install crowdsecurity/sshd + +# Список подключенных баунсеров (исполнителей, блокировщиков): +docker exec crowdsec cscli bouncers list \ No newline at end of file diff --git a/proxy/install-bouncer.sh b/proxy/install-bouncer.sh index 92e0042..8d433a3 100644 --- a/proxy/install-bouncer.sh +++ b/proxy/install-bouncer.sh @@ -1,12 +1,34 @@ curl -s https://api.github.com/repos/crowdsecurity/cs-firewall-bouncer/releases/latest | grep browser_download_url | grep linux-amd64 | cut -d '"' -f 4 | wget -qi - tar xzvf crowdsec-firewall-bouncer-linux-amd64.tgz cd crowdsec-firewall-bouncer-v*/ +# Выбираем nftables sudo ./install.sh # Получаем API KEY sudo docker exec crowdsec cscli bouncers add firewall-bouncer - # Прописываем ключ в конфиге -# Указваем так же API_URL (см docker-compose.yml, по умолчанию меняем на 8081) sudo nano /etc/crowdsec/bouncers/crowdsec-firewall-bouncer.yaml +# Указваем так же API_URL (см docker-compose.yml, по умолчанию меняем на 8081) +# В разделе nftables ipv4 (и ipv6) добавляем параметр hook: prerouting + +# nftables: +# ipv4: +# enabled: true +# set-only: false +# table: crowdsec +# chain: crowdsec-chain +# priority: -10 +# hook: prerouting +# ipv6: +# enabled: true +# set-only: false +# table: crowdsec6 +# chain: crowdsec6-chain +# priority: -10 +# hook: prerouting + +# Создаём список исключений +sudo docker exec crowdsec cscli allowlists create my_vps -d "Allow list for my vps" +# Добавляем туда IP нашего VPS сервера для AutoSSH сервиса +sudo docker exec crowdsec cscli allowlists add my_vps 1.2.3.4 \ No newline at end of file diff --git a/samba/docker-compose.yml b/samba/docker-compose.yml index 08f22ba..17e813e 100644 --- a/samba/docker-compose.yml +++ b/samba/docker-compose.yml @@ -24,7 +24,7 @@ services: resources: limits: cpus: '0.5' - memory: 256M + memory: 512M reservations: memory: 128M networks: From 7ca59cf3652256c7751e3899c364d45a3d313129 Mon Sep 17 00:00:00 2001 From: StepanovPlaton Date: Thu, 29 Jan 2026 16:10:31 +0400 Subject: [PATCH 2/3] Update readme --- Debian.md | 85 +++++++++++++++++++------ OPNsense.md | 103 ++++++++++++++++++++---------- Proxmox.md | 74 +++++++++++++--------- README.md | 116 +++++++++++++++++++++------------- Services.md | 86 +++++++++++++++++-------- screenshots/synapse-admin.png | Bin 0 -> 164627 bytes 6 files changed, 310 insertions(+), 154 deletions(-) create mode 100644 screenshots/synapse-admin.png diff --git a/Debian.md b/Debian.md index 0b74de1..07ab96f 100644 --- a/Debian.md +++ b/Debian.md @@ -1,10 +1,15 @@ -# Настройка Debian +# 🐧 Настройка Debian -## 1. Установка Debian +> Этот гайд описывает установку и настройку Debian для запуска сервисов в контейнерах. + +--- + +## 1️⃣ Установка Debian Стандартная установка Debian Minimal. Занимаем весь виртуальный диск. При установке отключаем графический интерфейс и ставим SSH сервер. -После установки заходим под root и устанавливаем `sudo`. +После установки заходим под `root` и устанавливаем `sudo`: + ```bash apt install sudo usermod -aG sudo имя_пользователя @@ -12,18 +17,26 @@ usermod -aG sudo имя_пользователя Перезаходим и дальше работаем под обычным пользователем. -## 2. Статический IP -Смотрим название сетевого интерфейса и устанавливаем resolvconf (для поддержки dns-nameservers): +--- + +## 2️⃣ Настройка статического IP + +Смотрим название сетевого интерфейса и устанавливаем `resolvconf` (для поддержки `dns-nameservers`): + ```bash ip addr sudo apt install resolvconf ``` -Редактируем настройки + +Редактируем настройки: + ```bash sudo nano /etc/network/interfaces ``` + Добавляем настройки: -``` + +```ini auto enp0s3 iface enp0s3 inet static address 192.168.1.100 @@ -31,26 +44,41 @@ iface enp0s3 inet static gateway 192.168.1.1 dns-nameservers 77.88.8.8 8.8.8.8 ``` + +> ⚠️Замените `enp0s3` на название вашего сетевого интерфейса и настройте IP адрес в соответствии с вашей сетевой конфигурацией. + Перезагружаемся: + ```bash sudo reboot ``` -## 3. Установка Podman +--- + +## 3️⃣ Установка Podman > Мы будем использовать Podman вместо Docker в целях безопасности. Podman не требует запущенного демона для работы и по умолчанию нацелен на работу в rootless режиме, что нам очень интересно. +Устанавливаем Podman и podman-compose: + ```bash sudo apt install podman podman-compose ``` -Добавляем загрузку контейнеров с параметром `restart: always` при загрузке системы +Добавляем загрузку контейнеров с параметром `restart: always` при загрузке системы: + ```bash systemctl --user enable podman-restart.service sudo loginctl enable-linger USER ``` -## 4. Клонируем этот репозиторий для запуска сервисов +> ⚠️ Замените `USER` на имя вашего пользователя. + +--- + +## 4️⃣ Клонирование репозитория + +Клонируем этот репозиторий для запуска сервисов: ```bash sudo apt install git @@ -59,35 +87,54 @@ cd ~/services git clone https://github.com/StepanovPlaton/HomeServerServices . ``` -## 5. Монтирование дисков +--- + +## 5️⃣ Монтирование дисков + +Смотрим список разделов с их UUID: -Смотрим список разделов с их UUID ```bash sudo blkid ``` -Создаём точку монтирования + +Создаём точку монтирования: + ```bash mkdir ~/diskN ``` -Добавляем запись в fstab + +Добавляем запись в `fstab`: + ```bash sudo nano /etc/fstab ``` -В конец добавляем -``` + +В конец добавляем: + +```ini UUID=***-***-***-***-*** /home/USER/diskN ext4 defaults,nofail 0 2 ``` -Монтируем диск + +> ⚠️ Замените `UUID=***-***-***-***-***` на UUID вашего диска и `USER` на имя вашего пользователя. + +Монтируем диск: + ```bash sudo systemctl daemon-reload sudo mount -a ``` +Для корректной работы с диском может потребоваться изменить права доступа: -Для корректной работы с диском может потребоваться изменить права доступа. ```bash sudo chown -R 1000:1000 path/to/disk podman unshare chown -R 1000:1000 path/to/disk ``` -**Настройка сервисов описана в файле [Services.md](Services.md)** +> ⚠️ Замените `path/to/disk` на путь к вашему диску. + +--- + +## 📚 Следующие шаги + +**Настройка сервисов описана в файле [Services.md](./Services.md)** diff --git a/OPNsense.md b/OPNsense.md index 27cb2bd..c81fc76 100644 --- a/OPNsense.md +++ b/OPNsense.md @@ -1,38 +1,56 @@ -# Настройка OPNsense +# 🔒 Настройка OPNsense -## 1. Установка OPNsense +> Этот гайд описывает установку и настройку OPNsense в качестве роутера и файрвола для домашней сети. -Ничего не трогаем в момент загрузки. Авторизуемся как `installer`, пароль по умолчанию - `opnsense`. +--- + +## 1️⃣ Установка OPNsense + +Ничего не трогаем в момент загрузки. Авторизуемся как `installer`, пароль по умолчанию — `opnsense`. - Добавляем английскую локаль -- Выбираем ФС - **ZFS RAID0** +- Выбираем ФС — **ZFS RAID0** - Предупреждение о недостатке ОЗУ можно пропустить - Устанавливаем систему -## 2. Создаём второй сетевой мост +--- -Создаём второй сетевой мост для второго порта, подключаем сетевое устройство в ВМ OPNsense. Перезагружаем ВМ OPNsense. +## 2️⃣ Создание второго сетевого моста -## 3. Настройка OPNsense +Создаём второй сетевой мост в Proxmox для второго порта, подключаем сетевое устройство в ВМ OPNsense. Перезагружаем ВМ OPNsense. + +--- + +## 3️⃣ Настройка OPNsense В меню терминала: -1. Выбираем **1 - assign interfaces**: - - Назначаем одному порту **WAN** (порт для провайдера, во внешний интернет) - - Второму порту **LAN** (порт для локальной сети) +### 1. Назначение интерфейсов -2. Выбираем **2 - set interface ip address**: - - Для LAN указываем статический IPv4 (это будет наш Gateway) - - DHCP можно пока не включать, настроим позже +Выбираем **1 - assign interfaces**: -## 4. Обновляем OPNsense +- Назначаем одному порту **WAN** (порт для провайдера, во внешний интернет) +- Второму порту **LAN** (порт для локальной сети) -1. Открываем web интерфейс по адресу установленному для LAN +### 2. Настройка IP адресов + +Выбираем **2 - set interface ip address**: + +- Для LAN указываем статический IPv4 (это будет наш Gateway) +- DHCP можно пока не включать, настроим позже + +--- + +## 4️⃣ Обновление OPNsense + +1. Открываем web интерфейс по адресу, установленному для LAN 2. Заходим **Система > Программное обеспечение > Статус > Проверить наличие обновлений** 3. Потом раздел обновления, снизу кнопка **обновить** 4. Ждём обновления всех пакетов -## 5. Устанавливаем плагин Qemu Agent +--- + +## 5️⃣ Установка плагина Qemu Agent Нужен для управления OPNsense из Proxmox. @@ -40,7 +58,9 @@ 2. Включаем галочку **показать плагины сообщества** 3. Ставим плагин `os-qemu-guest-agent` -## 6. Настраиваем доступ в интернет +--- + +## 6️⃣ Настройка доступа в интернет Можно воспользоваться стандартным мастером настройки: @@ -49,38 +69,54 @@ 3. Устанавливаем логин и пароль провайдера 4. Остальное уже должно быть настроено, но можно что-то изменить -## 7. Настройка DHCP +--- + +## 7️⃣ Настройка DHCP В разделе **Службы**: - Выключаем **Dnsmasq DNS & DHCP** - Включаем **ISC DHCPv4** - - В настройках DNS первым сервером указываем IP адрес OPNsense. Сам DNS сервер настроем в следущем шаге + - В настройках DNS первым сервером указываем IP адрес OPNsense. Сам DNS сервер настроим в следующем шаге -## 8. Настройка DNS +--- + +## 8️⃣ Настройка DNS > Для безопасности домашней сети от чрезмерной рекламы и сбора статистики добавим фильтр [AdGuard Home](https://github.com/AdguardTeam/AdGuardHome) -> Если для вашей сети достаточно обычного DNS просто включите в настройках **Unbound DNS** +> +> Если для вашей сети достаточно обычного DNS, просто включите в настройках **Unbound DNS** + +В консоли OPNsense добавим новый репозиторий: -В консоли OPNsense добавим новый репоизторий ```bash fetch -o /usr/local/etc/pkg/repos/mimugmail.conf https://www.routerperformance.net/mimugmail.conf pkg update ``` -После чего в разделе **Система > ПО > Плагины** появится пакет os-adguardhome-maxit (ставим калочку показать пользовательские пакеты). Устанавливаем его и включаем в разделе **Службы**. Мастер настройки запуститься на IP OPNsense на 3000 порту. -В настройках **указываем внутренний интерфейс LAN** и ставим WebUI AdGuardHome на 3000 порт. В разделе DNS-сервер так же **выбираем только внутренний интерфейс LAN**, порт по умолчанию 53. По какой-то причине AdGuard думает что у нас динамический IP, хотя это не так - игнорируем предупреждение. +После чего в разделе **Система > ПО > Плагины** появится пакет `os-adguardhome-maxit` (ставим галочку показать пользовательские пакеты). Устанавливаем его и включаем в разделе **Службы**. Мастер настройки запустится на IP OPNsense на 3000 порту. + +В настройках: + +- **Указываем внутренний интерфейс LAN** и ставим WebUI AdGuardHome на 3000 порт +- В разделе DNS-сервер также **выбираем только внутренний интерфейс LAN**, порт по умолчанию 53 + +> ⚠️ По какой-то причине AdGuard думает, что у нас динамический IP, хотя это не так — игнорируем предупреждение. В настройках добавляем блоклисты по выбору: -- [Hagezi Multi Pro++ — Идеальный баланс. Блокирует почти всё, при этом редко «ломает» сайты](https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.plus.txt) -- [Hagezi Multi Ultimate — Самый жесткий вариант. Блокирует агрессивно, включая глубокую телеметрию. Может потребоваться ручная разблокировка некоторых сервисов (белый список)](https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/ultimate.txt) -- и любые другие на своё усмотрение -## 9. Проброс портов +- [Hagezi Multi Pro++](https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.plus.txt) — Идеальный баланс. Блокирует почти всё, при этом редко «ломает» сайты +- [Hagezi Multi Ultimate](https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/ultimate.txt) — Самый жесткий вариант. Блокирует агрессивно, включая глубокую телеметрию. Может потребоваться ручная разблокировка некоторых сервисов (белый список) +- И любые другие на своё усмотрение + +--- + +## 9️⃣ Проброс портов > Для начала нужно освободить 80 порт, потому что на нём по умолчанию доступен сам OPNsense. В разделе **Система > Настройки > Администрирование** заменим 80 порт на 8000 -В разделе **Межсетевой экран > NAT > Передаресация портов** добавим правило. +В разделе **Межсетевой экран > NAT > Переадресация портов** добавим правило: + - **Interface:** WAN - **TCP/IP Version:** IPv4 - **Protocol:** TCP @@ -89,9 +125,12 @@ pkg update - **Redirect target IP:** Введите локальный IP вашего сервера - **Redirect target port:** Порт назначения - **Pool Options:** Default -- **Filter rule association:** Add associated filter rule - - **Это важно:** OPNsense автоматически создаст разрешающее правило в брандмауэре +- **Filter rule association:** Add associated filter rule + - OPNsense автоматически создаст разрешающее правило в брандмауэре Для HTTP нужно добавить перенаправления на 8080 порт сервера, для HTTPS на 8443. Базовые порты 80 и 443 недоступны в rootless контейнере. Сохраняем изменения и проверяем в разделе **Межсетевой экран > Правила > WAN**. -Для доступа из домашней сети нужно добавить зеркальный NAT в разделе **Межсетевой экран > Настройки > Дополнительно** ставим галочки **Отображение для перенаправлений портов** и **Автоматический исходящий NAT для отображения** \ No newline at end of file +Для доступа из домашней сети нужно добавить зеркальный NAT в разделе **Межсетевой экран > Настройки > Дополнительно** ставим галочки: + +- **Отображение для перенаправлений портов** +- **Автоматический исходящий NAT для отображения** diff --git a/Proxmox.md b/Proxmox.md index d96edcd..278b913 100644 --- a/Proxmox.md +++ b/Proxmox.md @@ -1,62 +1,76 @@ -# Настройка Proxmox +# 🖥️ Настройка Proxmox -## 1. Отключаем enterprise репозитории и обновляем пакеты +> Этот гайд описывает установку и настройку Proxmox VE для виртуализации OPNsense и Debian. + +--- + +## 1️⃣ Отключение enterprise репозиториев и обновление пакетов В разделе **Сервер > Обновления > Репозитории**: + - Отключаем всё с упоминанием enterprise - Добавляем No-Subscription репозиторий Затем обновляем пакеты в терминале сервера: + ```bash apt update && apt upgrade ``` -## 2. Загружаем на сервер ISO образы +--- + +## 2️⃣ Загрузка ISO образов + +Загружаем на сервер ISO образы: - Для OPNsense выбираем образ типа **DVD** - Для Debian нужен minimal образ netinst - Копируем файлы в разделе **Сервер > local > ISO-образы** -## 3. Создаём ВМ с OPNsense +--- + +## 3️⃣ Создание ВМ с OPNsense Настройки ВМ: -- **Общее > Запуск при загрузке**: Включаем -- **ОС > Гостевая ОС**: Other (OPNsense - это FreeBSD) -- **Система > Агент QEMU**: включить (нужен для просмотра информации о системе в гипервизоре) -- **Диски > Шина**: SCSI -- **Размер диска**: 16Гб (достаточно) -- **ЦП > Тип**: host -- **ЦП > Кол-во ядер**: 2 -- **Объём ОЗУ**: 2Гб (не менее 1Гб) -- **Сеть > Модель**: VirtIO -- **Сетевой экран**: отключаем (OPNsense сам решает эту задачу) +- **Общее > Запуск при загрузке:** Включаем +- **ОС > Гостевая ОС:** Other (OPNsense — это FreeBSD) +- **Система > Агент QEMU:** включить (нужен для просмотра информации о системе в гипервизоре) +- **Диски > Шина:** SCSI +- **Размер диска:** 16Гб (достаточно) +- **ЦП > Тип:** host +- **ЦП > Кол-во ядер:** 2 +- **Объём ОЗУ:** 2Гб (не менее 1Гб) +- **Сеть > Модель:** VirtIO +- **Сетевой экран:** отключаем (OPNsense сам решает эту задачу) - Остальные настройки по умолчанию Выбираем загруженный ISO-образ и запускаем ВМ. -**Настройка OPNsense описана в файле [OPNsense.md](OPNsense.md)** +**Настройка OPNsense описана в файле [OPNsense.md](./OPNsense.md)** -## 4. Создаём ВМ с Debian +--- -> По идее Proxmox работает на ядре Linux и построен на Debian, поэтому мы могли бы использовать LXC контейнер, однако для запуска Docker (Podman) внутри LXC нужны разрешения, и модули ядра, не способствующие безопасности. По сути при таком подходе Docker (Podman) будет работать чуть ли не в самом гипервизоре, что плохо. Поэтому используем ВМ +## 4️⃣ Создание ВМ с Debian + +> По идее Proxmox работает на ядре Linux и построен на Debian, поэтому мы могли бы использовать LXC контейнер, однако для запуска Docker (Podman) внутри LXC нужны разрешения и модули ядра, не способствующие безопасности. По сути при таком подходе Docker (Podman) будет работать чуть ли не в самом гипервизоре, что плохо. Поэтому используем ВМ. Настройки ВМ: -- **Общее > Запуск при загрузке**: Включаем -- **ОС > Гостевая ОС**: Linux 6.x -- **Система > Агент QEMU**: включить (нужен для просмотра информации о системе в гипервизоре) -- **Диски > Шина**: SCSI -- **Размер диска**: 48Гб (и более) -- **ЦП > Тип**: host -- **ЦП > Кол-во ядер**: 4 (и более) -- **Объём ОЗУ**: 4Гб (и более) -- **Сеть > Модель**: VirtIO -- **Сетевой экран**: отключаем (нас прикрывает OPNsense) +- **Общее > Запуск при загрузке:** Включаем +- **ОС > Гостевая ОС:** Linux 6.x +- **Система > Агент QEMU:** включить (нужен для просмотра информации о системе в гипервизоре) +- **Диски > Шина:** SCSI +- **Размер диска:** 48Гб (и более) +- **ЦП > Тип:** host +- **ЦП > Кол-во ядер:** 4 (и более) +- **Объём ОЗУ:** 4Гб (и более) +- **Сеть > Модель:** VirtIO +- **Сетевой экран:** отключаем (нас прикрывает OPNsense) - Остальные настройки по умолчанию -> Если мы хотим добавить внешние диски для хранения данных, нужно дать ВМ доступ к ним через USB. В разделе **Оборудование** нужно добавить USB-устройство. Лучше всего дать доступ ВМ к самому USB-порту, тогда любое устройство в него вставленное будет доступно внутри ВМ, но можно так же предоставить доступ к конкретному устройству, в какой порт оно не было бы вставлено. +> Если мы хотим добавить внешние диски для хранения данных, нужно дать ВМ доступ к ним через USB. В разделе **Оборудование** нужно добавить USB-устройство. Лучше всего дать доступ ВМ к самому USB-порту, тогда любое устройство в него вставленное будет доступно внутри ВМ, но можно также предоставить доступ к конкретному устройству, в какой порт оно не было бы вставлено. > -> Чтобы посмотреть подключенные USB-устройства и скорости их работы запускаем команду `lsusb -t` и ищем наши диски (`Class=Mass Storage`) +> Чтобы посмотреть подключенные USB-устройства и скорости их работы, запускаем команду `lsusb -t` и ищем наши диски (`Class=Mass Storage`) -**Настройка Debian описана в файле [Debian.md](Debian.md)** \ No newline at end of file +**Настройка Debian описана в файле [Debian.md](./Debian.md)** diff --git a/README.md b/README.md index 86f36ba..3d57fad 100644 --- a/README.md +++ b/README.md @@ -1,38 +1,43 @@ -# Home Server Services +# 🏠 Home Server Services -> **Home Server Services** - это гайд по настройке и полный набор сервисов в Docker для организации домашнего роутера/сервера! +> **Home Server Services** — это гайд по настройке и полный набор сервисов в Docker для организации домашнего роутера/сервера! > -> Главное - это **модульность** и **воспроизводимая установка**. Можно развернуть за 30 минут! +> Главное — это **модульность** и **воспроизводимая установка**. -![](./screenshots/grafana.jpg) -![](./screenshots/portainer.jpg) +![Grafana Dashboard](./screenshots/grafana.jpg) +![Portainer Interface](./screenshots/portainer.jpg) -## Мой сервер: +--- -- CheckWay Sherman Micro +## 📋 Мой сервер + +- **CheckWay Sherman Micro** - [Intel Celeron J1900](https://technical.city/ru/cpu/Core-2-Duo-E8400-protiv-Celeron-J1900) @ 1.99GHz (64 bit) - - 8Gb RAM - - 120Gb SSD + - 8GB RAM + - 120GB SSD - 2x 1Gbps (WAN+LAN) -- Proxmox VE 9.1.4 - - OPNsense 25.7 +- **Proxmox VE 9.1.4** + - **OPNsense 25.7** - [CrowdSec](https://www.crowdsec.net) - - Debian 13 (Trixie) Minimal + - [AdGuard Home](https://github.com/AdguardTeam/AdGuardHome) + - **Debian 13 (Trixie) Minimal** - [Podman](https://podman.io) -## О проекте: +--- + +## 🚀 О проекте - **Полнофункциональный домашний сервер** -- Две одновременно запущенные операционные системы запущенны в гипервизоре Proxmox +- Две одновременно запущенные операционные системы в гипервизоре Proxmox - OPNsense выполняет функции роутера, DHCP и NTP сервера, защищает домашнюю сеть от вторжений с CrowSec - В Debian в Podman запущены контейнеры с сервисами -- **Все сервисы настроены через Docker Compose (совместим с Podman)** для легкого управления и быстрого запуска +- **Все сервисы настроены через Docker Compose** (совместим с Podman) для легкого управления и быстрого запуска - **Мониторинг системы через Grafana** с готовым дашбордом - **Файловый сервер Samba** для доступа к файлам по сети - Открытый диск только на чтение - Доступ на запись только после авторизации - **Синхронизация файлов** между устройствами через **Syncthing** - - Постоянная точка синхронизации позволяет обмениваться файлами между устройствами, даже если они не бывают одновременно в сети - домашний сервер выступает посредником + - Постоянная точка синхронизации позволяет обмениваться файлами между устройствами, даже если они не бывают одновременно в сети — домашний сервер выступает посредником - **BitTorrent клиент Transmission** с веб-интерфейсом - **SSH туннелирование через AutoSSH** - Можно пробросить порт на удалённый VPS, автоматически переподключается при потере соединения @@ -40,46 +45,67 @@ - Автоматическое получение и обновление SSL сертификатов через Let's Encrypt - Автоматическое обновление DNS записей у регистратора [рег.ру](https://www.reg.ru) - **Git-сервер Gitea** для хостинга репозиториев -- **FileBrowser** - веб-интерфейс для управления файлами через браузер -- **Matrix Synapse** - собственный сервер для мессенджера Matrix с веб-клиентом Element -- Блокировка рекламы, нежелательной слежки, частичная защита от атак с помощью **Pi-hole** +- **FileBrowser** — веб-интерфейс для управления файлами через браузер +- **Matrix Synapse** — собственный сервер для мессенджера Matrix с веб-клиентом Element +- Блокировка рекламы, нежелательной слежки, частичная защита от атак с помощью **AdGuard Home** - Управление контейнерами через **Portainer** - Все **сервисы используют переменные окружения** для гибкой настройки и примеры конфигурации -## Подготовка: +--- -- Купить белый IP адрес у провайдера -- Купить домен второго уровня у регистратора [рег.ру](https://www.reg.ru) -- [В настройках API рег.ру](https://www.reg.ru/user/account/settings/api/) добавить CIDR вашего провайдера (чтобы при смене IP наш скрипт смог обновить DNS записи) -- В настройках DNS-серверов зоны указать бесплатные DNS-серверы рег.ру: `ns1.reg.ru`, `ns2.reg.ru` +## 📝 Подготовка -После этих шагов можно переходить к настройке сервера. **[Первым шагом установим гипервизор Proxmox](./Proxmox.md)** +Перед началом установки необходимо выполнить следующие шаги: -## Использование: +1. **Купить белый IP адрес** у провайдера +2. **Купить домен второго уровня** у регистратора [рег.ру](https://www.reg.ru) +3. [В настройках API рег.ру](https://www.reg.ru/user/account/settings/api/) добавить CIDR вашего провайдера (чтобы при смене IP наш скрипт смог обновить DNS записи) +4. В настройках DNS-серверов зоны указать бесплатные DNS-серверы рег.ру: `ns1.reg.ru`, `ns2.reg.ru` -#### После настройки и запуска внутренние сервисы доступны (по умолчанию) по следующим портам: +> После выполнения этих шагов можно переходить к настройке сервера. **[Первым шагом установим гипервизор Proxmox](./Proxmox.md)**. Вы также можете установить [Debian с сервисами отдельно, если у вас уже настроен роутер](./Debian.md) -- **Grafana** — порт `3000`: - ![](./screenshots/grafana.jpg) +--- -- **Portainer** — порт `9000`: - ![](./screenshots/portainer.jpg) +## 🎯 Использование -- **Transmission** — порт `9091`: - ![](./screenshots/transmission.png) +### Внутренние сервисы -- **Syncthing** — порт `8384`: - ![](./screenshots/syncthing.png) +После настройки и запуска внутренние сервисы доступны (по умолчанию) по следующим портам: -- **Pi-hole** — порт `8080`: - ![](./screenshots/pihole.png) +#### Grafana — порт `3000` -#### Внешние сервисы запустятся на указанных в конфиге nginx поддоменах: +![Grafana Dashboard](./screenshots/grafana.jpg) -- **Gitea** - ![](./screenshots/gitea.png) -- **Synapse и Element** - |![](./screenshots/synapse.png)|![](./screenshots/element.png)| - |-|-| -- **FileBrowser** - ![](./screenshots/cloud.png) +#### Portainer — порт `9000` + +![Portainer Interface](./screenshots/portainer.jpg) + +#### Transmission — порт `9091` + +![Transmission Interface](./screenshots/transmission.png) + +#### Syncthing — порт `8384` + +![Syncthing Interface](./screenshots/syncthing.png) + +#### Matrix Admin — порт `8009` + +![Matrix Admin Interface](./screenshots/synapse-admin.png) + +### Внешние сервисы + +Внешние сервисы запустятся на указанных в конфиге nginx поддоменах: + +#### Gitea + +![Gitea Interface](./screenshots/gitea.png) + +#### Synapse и Element + +| Synapse | Element | +|---------|---------| +| ![Synapse Interface](./screenshots/synapse.png) | ![Element Interface](./screenshots/element.png) | + +#### FileBrowser + +![FileBrowser Interface](./screenshots/cloud.png) diff --git a/Services.md b/Services.md index 51b2c58..8a9c8c3 100644 --- a/Services.md +++ b/Services.md @@ -1,27 +1,35 @@ -# Настройка сервисов +# ⚙️ Настройка сервисов + +> Этот гайд описывает настройку и запуск всех сервисов в контейнерах. + +--- + +## 1️⃣ Portainer — WebUI для управления контейнерами + +> Для запуска Portainer требуется активный Docker сокет. В Podman по умолчанию его нет, так как это является потенциальным вектором атаки. Запускайте сокет только для конкретного пользователя (не root!) -## 1. [Portainer](./portainer/) - WebUI для управления контейнерами -> Для запуска Portainer требуется активный Docker сокет. В Podman по-умолчанию его нет, так как это является потенциальным вектором атаки. Запускайте сокет только для конкретного пользователя (не root!) ```bash cd portainer cp .env.example .env && vim .env systemctl --user enable --now podman.socket podman-compose up -d -podman generate systemd --new --files --name portainer -systemctl --user enable ./container-portainer.service ``` -## 2. [Grafana](./grafana/) - Dashboard со статистикой загруженности сервера -> Proxmox предоставляет достаточно информации об использовании ресурсов системы, но если вы ставите Debian как контейнеров сервисов отдельно, вам может потребоваться Grafana +--- + +## 2️⃣ Grafana — Dashboard со статистикой загруженности сервера + +> Proxmox предоставляет достаточно информации об использовании ресурсов системы, но если вы ставите Debian как контейнер сервисов отдельно, вам может потребоваться Grafana + ```bash cd grafana cp .env.example .env && vim .env podman-compose up -d -podman generate systemd --new --files --name portainer -systemctl --user enable ./container-portainer.service ``` -### 3. [AutoSSH](./autossh/) - SSH тунель, проброс портов +--- + +## 3️⃣ AutoSSH — SSH туннель, проброс портов ```bash cd autossh @@ -29,8 +37,9 @@ cp .env.example .env && vim .env podman-compose up -d --build ``` -### 4. [Samba](./samba/) - сетевой диск в локальной сети +--- +## 4️⃣ Samba — сетевой диск в локальной сети ```bash cd samba @@ -38,7 +47,7 @@ cp .env.example .env && vim .env podman-compose up -d ``` -> Samba работает на 139 и 445 порту, для доступа к ним нужны root права. Чтобы не запускать контейнер от имени root пробросим порты из контейнера на 1139 и 1445 порты соответственно, и добавим правила в iptables для переадресации трафика +> Samba работает на 139 и 445 порту, для доступа к ним нужны root права. Чтобы не запускать контейнер от имени root, пробросим порты из контейнера на 1139 и 1445 порты соответственно, и добавим правила в iptables для переадресации трафика: ```bash sudo iptables -t nat -A PREROUTING -p tcp --dport 139 -j REDIRECT --to-ports 1139 @@ -47,10 +56,12 @@ sudo iptables -t nat -L -n -v # Посмотреть список правил # Для сохранения правил iptables после перезагрузки sudo apt install iptables-persistent -sudo netfilter-persistent save # сохранить текущие iptables +sudo netfilter-persistent save # сохранить текущие iptables ``` -### 5. [Transmission](./transmission/) - qBitTorrent клиент +--- + +## 5️⃣ Transmission — BitTorrent клиент ```bash cd transmission @@ -58,9 +69,11 @@ cp .env.example .env && vim .env podman-compose up -d ``` -В настройках клиента указанная в `.env` папка доступна по пути `/downloads`. Можно подключиться с помощью [Transmission Remote GUI](https://github.com/transmission-remote-gui/transgui) или [Transmission Qt](https://transmissionbt.com/download.html) +> В настройках клиента указанная в `.env` папка доступна по пути `/downloads`. Можно подключиться с помощью [Transmission Remote GUI](https://github.com/transmission-remote-gui/transgui) или [Transmission Qt](https://transmissionbt.com/download.html) -### 6. [Syncthing](./syncthing/) - синхронизация файлов между устройствами +--- + +## 6️⃣ Syncthing — синхронизация файлов между устройствами ```bash cd syncthing @@ -69,7 +82,9 @@ mkdir config && podman unshare chown -R 1000:1000 config podman-compose up -d ``` -### 7. [Gitea](./gitea/) +--- + +## 7️⃣ Gitea — Git-сервер ```bash cd gitea @@ -80,9 +95,11 @@ mkdir db && podman unshare chown -R 1000:1000 db podman-compose up -d ``` -Gitea конфигурируется позже, уже в веб-форме. Обязательно **отключаем самостоятельную регистрацию** и создаём администратора (пользователя по умолчанию). Остальное не трогаем, уже сконфигурировано в `.env` +> Gitea конфигурируется позже, уже в веб-форме. Обязательно **отключаем самостоятельную регистрацию** и создаём администратора (пользователя по умолчанию). Остальное не трогаем, уже сконфигурировано в `.env` -### 8. [Cloud (FileBrowser)](./cloud/) +--- + +## 8️⃣ Cloud (FileBrowser) — веб-интерфейс для управления файлами ```bash cd cloud @@ -91,13 +108,17 @@ touch filebrowser.db && podman unshare chown -R 1000:1000 filebrowser.db podman-compose up -d ``` -### 9. [Matrix](./matrix/) +--- + +## 9️⃣ Matrix — собственный сервер для мессенджера Matrix ```bash cd matrix mkdir data && podman unshare chown -R 1000:1000 data podman run -it --rm -v "$(pwd)/data:/data" -e SYNAPSE_SERVER_NAME=MATRIX.DOMAIN.ru -e SYNAPSE_REPORT_STATS=no docker.io/matrixdotorg/synapse:latest generate ``` +> ⚠️ Замените `MATRIX.DOMAIN.ru` на ваш домен для Matrix сервера. + Меняем базу данных на PostgreSQL и прописываем БД, пользователя, пароль: ```yaml @@ -111,31 +132,37 @@ database: cp_min: 5 cp_max: 10 ``` + ```bash mkdir db && podman unshare chown -R 1000:1000 db cp .env.example .env && vim .env podman-compose up -d ``` -Создаём пользователя +Создаём пользователя: + ```bash podman exec -it matrix-synapse register_new_matrix_user -c /data/homeserver.yaml http://localhost:8008 ``` -### 10. [Nginx Reverse Proxy (Entrypoint)](./proxy) +--- + +## 🔟 Nginx Reverse Proxy (Entrypoint) ```bash cd proxy cp .env.example .env && vim .env ``` -Создаём конфиг для DynDNS: +### Создание конфига для DynDNS ```bash cp ddns/domains.txt.example ddns/domains.txt && vim ddns/domains.txt ``` -Нужно указать ресурсные записи `@` и `www` для доступа к домену второго уровня напрямую. Также нужно добавить домены 3-го уровня для: gitea, cloud (filebrowser), matrix server (synapse), matrix client (element). +> Нужно указать ресурсные записи `@` и `www` для доступа к домену второго уровня напрямую. Также нужно добавить домены 3-го уровня для: gitea, cloud (filebrowser), matrix server (synapse), matrix client (element). + +### Первоначальная настройка SSL В первый раз SSL сертификаты нужно создать вручную. @@ -145,14 +172,17 @@ cp ddns/domains.txt.example ddns/domains.txt && vim ddns/domains.txt podman-compose -f init-compose.yml up -d --build ``` -Проверяем по логам в portainer и в личном кабинете рег.ру что ресурсные записи обновились. Ожидаем пока DNS обновит информацию о наших поддоменах (занимает от 15 минут до 24 часов). +Проверяем по логам в portainer и в личном кабинете рег.ру, что ресурсные записи обновились. Ожидаем, пока DNS обновит информацию о наших поддоменах (занимает от 15 минут до 24 часов). + +Затем создаём SSL сертификаты на каждый домен(-ы) с помощью команды: -Затем создаём SSL сертификаты на каждый домен(-ы) c помощью команды ```bash podman-compose run --rm --entrypoint "certbot" certbot certonly --webroot --webroot-path=/var/www/certbot --email your-email@gmail.com --agree-tos --no-eff-email -d domain.com -d domain2.com ``` -Настраиваем Nginx: +> ⚠️ Замените `your-email@gmail.com` на ваш email и `domain.com`, `domain2.com` на ваши домены. + +### Настройка Nginx ```bash cd nginx/conf.d @@ -160,7 +190,7 @@ cp default.conf.example default.conf vim default.conf ``` -Запускаем основной контейнер: +### Запуск основного контейнера ```bash podman-compose -f init-compose.yml down diff --git a/screenshots/synapse-admin.png b/screenshots/synapse-admin.png new file mode 100644 index 0000000000000000000000000000000000000000..d7df0a5f9d8c4680a554ab960d6ccd48e408fe52 GIT binary patch literal 164627 zcmYg%XH=7Ivo*v#h)M^M-Vu=A6MF9i0Yy4!C_?C=NC)Xi?;QmpqI3vIN5RlLgf2aF zklx{o&pGe+p0%=8^6Soh&Fq;yvuCcT=MYuGhcpjyaBv9K)s*ybaQ?ym1PtTjVZVm_ z=M8XhNO07Z9;a+yUKS|{mLpX|9@*ED2z5ERKDN2aVxwuX{xjpQfg z)WIlnE|W(63F^G36U_1Z9n+tfLy~qKQaz?bCZ?DI5|+jH9@->ITksjrE7q!6M@dHD zsMp=8jK|>2_BfsBH-j=`B$}bDT>l$pJ>w3%o&mjHFP#~>-rK+3oAst=45{$ng*o4$ zoo~=z4ZjVg-uPbMI{r8hydAo`I1Rkpzw`g&b8|BJik_DD&?d_3;(T}NToJy;Rn^_NAKp3? zFc=_nK&9rNb*&l~OdgM0M@VbC;dB0H>Fu50-C5w>EWE$Tf1rwiTdooY+l z54@?kn@FrL%F%*@0I1Hp3)wq_@o>|^&7Qrf3L7A*T>{@U@x^50=neKy&n8Qbb$R#w z)+L*~TDHyN^TM6cDaf@g_D^l4tmsr3hn?H|x9yA@=6(mi_WbvKEzUf!A83#8EeXyli;iRjcmYY|~% zutM8KcH6YzM^eW~86q+cLfpvX5pTrPneGo6*I1v-_-|@jG%9N)Wna(yz@ID^@l0oY z9yw`TG9+{5a29d*hp}AQ_8m(CerXVnw7TM`@YTKZTN_lrQYU*dip;_iVP#5bR| z7ZmTV_wR1nB&!L3X%l591T()8ek4{lO(lk3QgL@#;XIJENu-3MZbQ&=ce9^gTTFGf z6NH=$fDh7r$hyfpYqr%hDX2y*cXyOSyO?jURe(Qjd7M!kfG9capJPog$1)rp6l+4e zhCFsiFrNFgq>dxT)Xk}qchd9&GA@`VoiAxu>_}(2yJ%?tq-*lzVkq#|$2MqP6lP76<5$0FKGcz--Sp?pcj)&=vpHaq^}mk zLEsVFz4Ag2pXUyl7D>Y19X!`tX5zM3C{z6y^3uGcy z%V@Z>jHYv0rQqs?%L6Bkj~1ll;yN97t$%(#%H98msEd#MtG0Xdm0?u38sdgTyDJT* zl@=376Wkh@(|g`L=X@UPFM|3#OJJ#b1+tv!qG`;$6N-T+y;i?j6GQH!m;g|>y8Uv1}4zOgOlvg1&v zND>e{(cU|05iSE;^fnk_}DdXm9kW#eT~dE+(W= zvTunuVLh&a4@%vPuku?F4}iYveP==ap*6&|Og1eN(k>}#ticmMlvo?nm6bE|-qdz~ zdQKTLF{-k3n02O`6{Gn#G5jysK0Xfa4!40b;hOYr^~kQN4_SOk4DyP`u{su9qza~^ z8=R#uc%0!a9UJtcCwPxu_57#z4qM+CyO{xg1iOTw<@+=;NtrGMwmxm_Lur8i3z7I#HZr(pyzcd2@c{Tjn(5QQIs>CQHQh z8Lp#TthyB;oQxt^EX~uYSwBjxhqJ9A6c{tQ)0LTwq44cgDMDtHRp&eP3QLik=pS0m z{O1gRk7AEs*;Q~)p2&3Ka4%f)BEn=bl zW;Oxx;QlmxQy#$YjUOl9^G#Suy+kvo1s$@D{TRy$t{)u^Vb-zac=sJD&Ww8{a&yD- zKu!+#qc}h`!0sm?ctr`XGPn1Sf9@-D@1mOQ`H-fyCViaW#OpwpRVmoesF3gsxC5`? zDnq#0{RZ)Dh$`kOcWLY={T}fmbI4-^VqdW$6ddciVHeFMgf+9J9k5>)XjwL=rxB6y zE;&}ea8+GdH(i76k z+jG2ygx4T8!lapZ4ACYm{T6KuHTk8AiejMxR=#a2-g(@~f()dEm`5fyP8W!wbh3XF z```SY9)=^CMIYp~SU3ZWx&Bjz{LP_TAa4K17%Ehgm=JhPXgBR3{b0lUtdSEitWFf3 z30Z$Z{|31C{)I-v(^HUix6tS57T+_8ijnj4257cFLXgPo$mymYx2wmaK+)IS|70RA zWZlR&mx6QcPx5;gK~iuQ1dpcs={EWxlRLl89?mOkJ4;pe%bD5qE@8w^p}==U%9Bm_O=v4(JCR)NiqoIM*0Gw2m2*SxgV6h7SX6+jckXpzM4?FXvL{(` zuoN$hU9WS-i^s^bvp1ic#WLqgjAh&KTp-De%=<|0twSer|HgSC}W z*_0j;N1wfQ#pA&rinn(BLY3l?VPH|0FLZc<>$9IlUY{&{vUcJP)XYx!NcRzvqel)2Ozkz_Ul3RC30{%^vrWB@qe)}1_$bpU3EIpA&At$%Vy zJY0d+{DK|s_ll+!+hm_CHCgA1;&ulgm5Za@V;;{t9uM#9IYBPKn?HJvG%6NanmXcDN=oj<4*=9Ax;*dcJa2FayI6TLuujRv;2^=0WKhVgm--M2M?WVO| z&8iScH__IOJHyj{&pR&!Tok3m@hK|pb*&v)GY5@}6_=erd7(;@BNAy&kY+IIH2RRH zP1ldY7Cza$wf<)qRb1!FS>WdPu+Sqnrnl$&ziH7xf$5t%kdFu#Rwe3N`g+GviHaqG zm?XE3mK#>`u8zROFJ?-gaW>{|>5Oc0nlz}1e&cv5;~sf%=#*Q*kodI^bXc7j?`_I{ zc^7jX)o`TTcV;|7t#^aJP$j}QQGSg;781&w5=sEIckGSq;|CiQjQ@mcarC9gd~QCT zO_9nJBL#^9jwdn*&@@K{#qs^S0lOdXNyn#7(^zP1rkM3gxe0#l$`PI1oZ~d(TDzPL z;WboVvzohLdX9}-KhjyKp73|lVCW{Mv!*YN&I=8-HcocjtF|D?yQDC=}* zl&N-k^T$yZ;r<`@w_7s}S4`_)+uAw)W(Jg<;dknP9GP9_J(>MdOKs8XCi7#OBq(S` z`X@NO!MalLHsKYd#(OuUsxL$G7Y^u5f_mhpT?tR9GVzP&^m=Wqe)MzfNh?#_cI9X- zpoW%riG(TBhBNHTTyhBFTsH-ouYpbthchoTvt^Ii0Wem}CuL!l!a5tQFdc0b*nN7n zGv+5bX@yT?Z_5w-I9AkKyWiHAVB8HnjK|w5a0@k>h|zMq&no z&!uJ^%IQbaZLgn2I4Z8bB>-OnCIun|33x(IsQ~AU5za(SLxZc zrDs)#fbI{C)knj6 zeC*9HjCfD1vy>K}14)k5nkcIWXF@o|0}FgeDZ3>@L#j91^oq+Kv|iY@L~mu%+SbGS z7c0%5UWh+g>g(xRbTFzX2}0^uM|^xu$HIb0dree*P~0z{Z5VTqCK~hGa<+COwxrtj z^1l>Mr5ZH9#MJk$_kiNsS?rc3BK{98eix<1!usOc6Fe6JH_4^j4gLlHBd(j% zZUoh1nEB1w<~k)51!hV~IABZ_7mX`$jeZb^?=hs`x0s;po$v^vrEDj}M><6Ya8J=@ zJ`-%%Au_J*!mn+mL&W;rtYaPaZJu{@6unIRKzyH+UYB~ymZx@+G&R{ZJvhjtFA80S zp3-_F7msy}GhH=3>d+`VVHZ_Cpb9Iil1lp!G*$N>EkH-=eu2k|c7s}vUUA~(RuA{T zJsmkq!b=XolMo!nG;LbZNHdaO#J^5*LMB66mMUv?`U2k~#iwZWiSHeI`?UTtqyBj| z+oTRikPrVNhqL!c>eN(Y(?>A@YJ0yae4o(gV1` z(HWd94XqwkRBIPxajd6<7h5Ddgb&}NT$>lUasD9UeYsw=N03<+E8_O^2WndH#0I<` zj{_LQvmYn(j2DG%U6Q3vcU95buYyf}<_K1htRvn1jjp`5A0N8O`rS2Piws94xR>mn zU!MNxe~__wO={_^bl=)fA;PS^*qTGj(RF|5FxORAb4sjtQTDs);c?x&4?5KrL>5rl z{-fvT#rSfP-R-XvVsSsqH$6c_eTufqg5vL`d35jVp;>8(6OUeaYb&vR4EU)*yPQdGMe~OHd8011dKU*eknuHvzYzx z2L78o7%ulQCHvJ$88h_IID2Q2dK+qYwlcuX_TKxKKow`YTa8VIv;Kpao5P5_0aYbc zaf%Dh7*nzS{v%a+Z%rTrt7RDjEAEvyDfL?Xqnz`OEW4Oqo0u#_jBg!~wIL-N%+|Wb zQV5QrV$`fKuej#BP*q25^`HO8EKH>DXmCU6S~oT`IG7#6^_*lhQ4p7)u(CgF%Cr2Q zv6m#lJ8y>^!On;z;Z-V3nUdcU@ zQfRq@zQD}RRoh=&#s(QTyErPl4EN+6X#m4Xw1uDuE3 zI$_G*_O3hs)D@NcWm%Nn#QCO!})2&M*Na;JCu1-tOgshH#^WrwIfRUugp+buNw0UX09=Xk5P-43;yC|-;>g3A zwjKvz8I3Ny`e~{QwC*j~m4g+>7l$+m$NsUo?WR;{B81PH=EJP9PO-@o+|cBnw_btI zBz3qzu^~7x!JSD*qZTnq3OWME3dEKK+9Z2ZQ%vEvoIv)miP8O2X{-H~W=?PB{yH?w%mVAMjlk@x!5(Gz`_!H}W6} zVoNA}!@^W+4TePN%6jd{lT-j#OJ(Q!#rr3?HePo*ksNFv$w5V(ad@_0ouAxCIjbg; z=EEcJH?hUhu!2z#cY;_-w{66y?=l1pvUS@dhyh=gN>Shj3$P_w4qBZV;yyH`AZswF zcc8NiBBF@-gMi*I5aJ~L!t%U#fU#3R_G?r*i-WOXLPbE{ai9vwcgz_46kl?z@vYO} z0{Ooo4w36JMKdb0Kzc3j92-!kVo}b03cK z1Bl(1oioc5t$6uBu7V5jmLS0lM}sSO65>u&cS^yu+bew9l#U75pBR{uUK;mf`Ug_Slej27!7nYZV~05J|Q zHLj`_XiN2`?^pDfSt6l}rBj)GMr(A^r~ch;`gIW_AS#XxpD! zuFj&3cL3jeV4t)=RD z0l4FLzq? zYa8ovQQa=pu5``sYgT8z%>7UA1`-4q`Lnp7@hh3>I7>u-HpX&%{iQ=_OFXq`MXt3( zf9W$N&Fd^%*)gr_--_H<<-nn~fIyKu?WeK#TazsyoJ>KNf0`G}fS|G*!kz1s2P+~m zSBMI0q<#!qY&;lq4?zP%?>b8X>aUgvUG^)u`>q|ZU9HIW$X&I zhOW0epaUhXk?tBL_XvP}Ye8LOSjFU<0ujxwX>aj62f5f(>99FQZdmpK*USG%t}X%i zm7g3PRFgi`V^r-hol7)-i2UB(dUKt0@agxd-X3rjV@!l@M)2i62PNZ|sbr`yU*&MR zjRKZfcjowZWyCXw)Xn$T;Xg^Oi)yu1AVIDhZ~1Hj`gT2HG7G>;D)25l1&&*gEoOpw zZQ_sx+<$p#3_!Phl zKvOAMrgTfZrjHxtd2Gv2>*rIDGHS%(D8m2JD=qndbmPDBLLXCmM6I2f#?JoiwGEtK ze|uMN>c-(8B_`hpt$KYe-=FZHp+5aj>VKHHrccY{39pY_&L`n68CpT8qOZxq-8(IO@OX~JJOA`{- zW^p0H2T9wSN`gh6R?KU{mIOUHyta$S5_p0_+o5Y+p0Wz8aaeWoJt%-a<}(z8tLUwey-*Z<5m8W()Oe;(zq zR4@PiAMoCLf}5$ODYssenSRnEN4dB+nwR=TRf@w~rJA-x%){#>5&E-l)2;h6xz{lK z${4%Ck`0?nxO@<6X8IO+W7s8Kie3&=sbK= zAmEm>i|Ro)(Vs5ysn9M5cP^dQZ}ClU^lQhv@KkZ?KAW))ya9epCJH*sVvqQ&{EmaO zIB(gW>nz1iqlC5{k+Pk%Emk6MSho7Af-P<>fj`)TOPnY*H{RHLrY}+cwrs7R=`@iV z3ZL7IRy#G$7LpRoD#mH4D{+L8hia4{3TX#JN{dYxf$JZshX zHG*%fq9A=jc`6^h+_ZlhtmG-i^()}Zm@RKA*7n48?Qu2gIe9XW67!;SqRN7pk!0zuyqHH}ETf}E7Ert{_CuA*g+nB=r%@tJY~{Zls-+2j zr63A2!hARNir4dpUKw0r1jFL=NVma+FS~nIq3N~BxxWDJ+b6SpQtc)*oz%F)TscLQ z7ew0nz1E~z5zAGc0m%u%5cS&efr|o8<1S~-OwHn@x#!Q+E8sR(~q*KoTH&Pz)R!Ry=2l^`sTxzMtGOM4-N0I072a_sF9Lq!VM-AN! zJyGq*2fxDKXe!$cu{-q-Pe2gj>Gs45&JHozUJgS=Tm5eTpM8`p{ekB{p)xYFU)S1u zM@Luc97GN$db;tv1WHm)8a`Fk(JSEyEgP%hDlqYo2onenVKZ-+LXct*oABl}!?&() zijYb-E!1cp3qy(J-gBRT3f_B%@gZ9b69YeJ;GG56*ilN3FaQ(r4ULyg9us1GJ?>J` zGHQnObI;fR`S;CjZJBO!u4!k3s9@xhRy+ga??6q(m|5+8Hdd49A2cVMPI+awbw<`V zv8!Y0Bc@S@M85=UBYs|0mX+_e_<8?JrIxRO)!&sC-;i2D-<65kGd1<%!BQ}Wt`6El z67BFW{_l9GZOMZOKoyI%_~E!7Tk)@_l5TUxOnZAm;d>$Go<#MolgsXK6_7>FmQ3L9 zrnnBmCxKGzKkpr+uLguZN0~_gppDR;i`Tga4?^(uL$A5S2v{^m<|9^j z$LwWUM@nja&-Og_{O9z%JUFk4(#^LVMk~Fr(%9^_@Uxkn_^geUA}iA-x=_>FJ>yq7 ztEL)!sJeji)GjOuyg{PteBPn{D-=iJ_{Oz7Mh;>YO4Qob%6U7rpW;v#wL6IZrs_1Y zk*gnmz}0a;vPk99&$9lpVtxwq?n16r32?e90U4+{?_L87~$Z>67=!Vte%Ff z6<5gS%lIKt7%Ocer=si6@so0|mcF5y=2~J>v0~p-+E*HzwYl^1`)!B4+`0M*w}yRH zUawE8e5NJ0PG}-yNnyjSInW{atgOLa)`1Iu5hPS%+U_?G`xw;^qOqc_-v5KEMR)uZ zJqhQ_sumV5zpW1zj71F}T$8(}*kk{r1>nmO-B-ZLfLaRHc@TuW6=(FUFA2TpVGMJ=80n%JRAZOLMg2GciJHQG__6u^QpWwfHzaLQppZFgH_ zH)!%zU@m?k+{7VnXCr!>c<_b^)S=9jZs+S6&(W`PRL# z`leHQx|1wU8YE3U`sRx_{jk?06~;DxFa|GW)M;vnQ>KP4GDx2p#S!69%DK|A7H<)g z3U@ka-M6b}OUl-dxaMZ>@(tBTl|=+y*t^nQk`>H98-)`)U zDT<9VzBcH{9sE<)hQ3w!Dq*(X$>>KNWa2nmZn}CpPZP@CplLUjZyu%saC7nMlZ;r1 zoK}NuYg5Rw4>mdxjUSdOqo7q5icmPEDBE4CZcA$@pcdb6>0A4{bf za4LwG?PI;>IsU9;k55u8SrA3>$~axTTB)8!*YMGnE|;T<>}yJvK6Gj=hQ zs?;Se>1uLu8cG5iW(&248nj{C;0h(nNBD;0ynEejFf>B;W^-?;BVsbWjfK1a3`VMr z0tp3$4C*qPEEJq_At-ewK?g6fws*QO+bm6WogQWF2Xm9`y&@ap?~HqU1yh5csb z-z3jR$q%>QUT)9BDq1|t;8KsgvhvK6EWp^5>_v*(_&euQ$HsM$;PcxIhD^ybR-7<-R z?sV#qDJr6v0K7-{pgg+<%j?}gNTHod-rz+~qq#zNY(_7Q#ZmP80*R{!JN(Gs`VRjC z=Ea0xUm+f*mi2$~31cqNFtSn9qU|o2`_$KiV7Cxu_zLY2FdY516O-nasJ0Hd-mOn& zKvJ)Xi0Zk>25e-;sYnq1aun@{Z6-QkjQ;xCgwv&L&6UMje2`9sZkTb|fvElaf?B0_ zWv7b5XAaM`o`tCPA||=|?AdOYRZxpH1HSlVngc?ptG6aRz9^HXLK`haD=bEhB=0Hl zPu~;P`t=MuitJKpH=*1q(cAJAhdipEC=ib0-52b2=B?4d0pQ66ML&eT6||&Y*KKSf zd!^w&JpY(ruq0OvR$&#}(|>^}HQ#zac(L?H36!zj-DaRF`ivWESa#CIPX5<(+_w1y zmW$c6F}{*F-9h(>8QddrC76v_)1_{@5~Bqq5o3Xu4?U0V$Dg_$$BIA7kvKJ(Dl&_l zriC=uz4n%hTocKj<<)(imp~;^W}D}VDPm0)Yy=MW8h`aSg8Y>x zW4t67J~?U6r%y_KKo8y=LxMlSDqo~)~<3{I;Kp|Uv$TPB;UZamZ8c{takEBCv z)bG7{bS^l)W2jP{;s)=X+|x+m!=726$+E+Kz-QC@l1Ydmfx%qeP=OC7q)=dh2It<6 z#Zg`^B?USX7eI%)0mP7vA90sNfd{yE(Z%%@*_1+iNc>4xGkGbh zor_d1Jg55hQ)4EO~W$0ugGWp z$IPVHP@{{9e_->=pdLyv^3c{4ODO%SL4-1=nf&ncB)?0pxAQDG)EvB$N1h1kFMImW z`f8)v(?}QJnE@V5MZ4E< z$36OM>G&&@V<&?D6h@@~bS`b>Ma@RO57v1R)6;d~I9*H6Z5w+oSU@A+oI+Vmq<-8!?Q$5O$nZZ#Cw1u^IL8DjA7=BfH^bV4nA?2EAx#_*Rh7S! z1rR#`RXOlYzqistT){~zVrRWX+Sgi4LQq`g>v*r3@Z2T=M{L(tZHd|)CcJ}C@3>;} zy>s5y-RZf?%I7@a7OK<22HkHXhT{3K1O1=LI63bPinW1h${$ne#+=mxPmh_AlG1Zo z`DFr_^|;ivi3LhC6AfBC=!tgZ(C5E&5P?JM-Om7eLTg`PcVF6^JSc@<$Wn`oMb$6= zX-`{-z)(M}YCE=+{T>&4g!ZmMV%#c?F-@}1EYGZ9hX|>tc0Rz!CJ281yTy0DkH2ls zs42%r`O6fk6$uk-0-0u_M~i9iULd1SJcPzD8M!np5to^7Hd5Vmxl=RbdCW)lC*v^3 zWcoI#wn|b=CD*|Y{Mvi#R2T&la`{RMK%R3gVOj-6*>zItQbwt>u~MlZtWY#b#?^Ri z%6~2OmBa#hc`E#xJP4VET^=%g60A4V%@1ezXN|c%$R1W>_~Nn*EEKA5XAa4 zDPpXr;a`|l{sZKh5d|keBgv1ZXfWAKC^544^23sQYCm6D_#;=^C4-;lK%I$Pj;V?0 z0@qT=B*nJ$owbX(mLOuof=DT=rpNVF_g5|YZ0`LO+5Ohrl6d>?a_D?Xe>2}!F*}jD{+s1vie39dO z{%=}guXH5R^d?CYTccO|v4NgL!dWD9|8!Q~85~^0`1{Zymb%9FtPgBO6o6eHoZ~OQ zG}VyAn@|v9!Ahu<^6j`do_;Sf27n7CaigXhbHcnRa7QHb3yo(rRdM|6f;1f)rpwev zWo%4(gbkisb+Hr9UiV5!im>{=Y=H=t^Bn#O-oUDFmeEztgTf@BV>(|V8P)ubp#!fZ z64D^f&$OiZXF6VA3@ls^aQ5`9 zfL5TWN48Pq?ryL3gOonv;vU6~nQ2DvoI08Wa*48x*Te_pXurQySqv+$uvVimrbs}HGs{AWcX8@HECEHuuu`Xe<{-Bb@XNs z6($-`pOdyQ0~@USJg+UBO2KLE4IlwmagPn|UuRlj~~YaS_;>?ymhu zp`z9ITRh9MAOmPknk;seP*X0bU{NUs8CKK!GVBKzwJ=?dpGI|HX}WNLCcX=e@#@kX zld^f>&B->o9_3J)A3_V-ssb5Ldmu-I&Zr5MQ_jdEgL=S$v8?aL7FO$w-h;$!u2VHa zQwGRa)O;==9zPtlbZ8f5T%J*PZCQt^uDrq)%~fIV5GG}1`o|A{E`y+NA4Ps9SPue3v-G*d7suB5o#r0Y5PdaYlaV9kP%`2Ixw1*J7C zIl5>8H+ULx57x{1d=eRy?0sd9pIJBZmN*^t%+Em1vTRrVc9E0i9-{PGkZj>&(T4SI zjry^r-dA}N3^IOG4N}~+VwkTIQbQ%SB~n`)@rR3JeX-vu(q3U{x0baX&++2(L+Oq| z82`mN*XDb6tFL51o*7{3F6UnBiRZn?%KOzM-{;V^&E=@dY5}+S#Aw>U}7uw{9(*CHWm09=V zI`U)wO!p=iQdHB^R7@1|U^LzzhxKSa3pX1K;z_(uv^vfIA?K3J29e@yQSJu;4&vgT zMubQgbv8!ls`5L0(moD?S)_r7LV!$%@vdTs_WopiQy~B^Bt0zSp!y%WWUkEjqnl!aIyW!+kX|xQQOG8z zlK*(N%34>(`p?>_1unow66KJ;`IdR{9($(?tvRhWWGsFx2x4o}gM~y-}I}W|D5Qt%IS7oR{{BnLhVBQRziqs}U4VI?@&8aY5fx>z-4!0{oDi z00WJnT5@-cC3EtYl+epM)N!@(Te3y^Fzs3~7LQmMNTr(S7xgy2bD%YdMKaF1#eC%Q-rYkJ1uVGAl}06Fo#Z2 zic^0?K+@&Awv9KpJxQW-EI2nOKLtY^dV2Y*O7)2J&(kA&*z0(HpT)Wj6WIJao+Pt;r#cLMMf!#V1u&F;i99|Q9j)@7hX4;Q0 zIUBD!>BErIt#{i=7X=z0O8invulqb8f~B}WK-{|9WCS7*T-6rV@T(ljbx|97q{u)X zloNf{ye@sD*|-7*JLLS*rz(YiRMj%FZ!>NUr|Iz;&!TKz`FO-rVk~J6{%RvRo`;i4v5f6 zOR#+^!2$%wVTNW`M-`s&-B`Q3Y1f}8GvL%OOcnDa0~LFq7*(aE`+>V zB3y(-ia@1n&4Uc#YOIb>cYIyn4&ssz2(O6xXog7KxVA5%L#e^zs-R5>RB9;{;SBn^ zKKY2tm4$>gNWk~*YGL7GYM)}=w*CbkSn;>13`(Kdm7;OwahZ!O*ag#h4Ng`mrS%tnl ze<<_bnU84gQ{X0LYiOVIYel>ChlMrB;JuIOzVq7mM<>N@O3&OuW=`f05eow^H>dwW z>nllXr6oCjp_2%YSMK`m%b>y0za2SxKL5^RW+Y2&j2*kR;#x%3`u`cGMr@J+qc=``$Nbr(2lA8}9iXM4tzHw9@bqYenY;K9mc?LcA}r4W%9Y zDP-CsM;2<$GhekrEt3d;!!!Fsx{l5$fW_q@kgA6cV8yf&7)Nki03I3vQ)U*%WjW-e z8qbydEc*b_n%J_Hb8WUihzK1k6I&=g{YN@-T$s{4;9{-Zi>#*yylUts08T%Csz^fp z_Ij=@@J^yd@C9~11D|8NJ!1s?gm{$^47-^2?h;~ydDMl{GLC$=!KqIX7LE0`*~u6R z&>7Hi`uzT2h3KxtnkQLCQyo~$EZ3&p^Mh}darm{rjF^BK>WN!=alFZL+-i-@SQoxj zXx|=c5vj^u~-XF-d^$8CalrOT*A~OmD!XA{_--9?f5J9I!;LYnThx4$j$L+ z(h*I7AFo6NVO51!DU>Kx>qk7p=pdK3kRyxBBq`OASBt2Ua}F8D<@*7wDqsGfz11Z= z?bS<8_~WxBuZzLA#VH=|!{XdL_4bkkt2nXC;HN&VtEUjhY;N$>=DHfZlpO~lmZE4y#Xb43qe1z?+4I8iUh}#gZ1eIR>JO4y{@yc*cL{JCjH6^ z6LI8qE^|-pM-Q^E1qCOA9CE;jN2KIv-Os@X?lDy@R=zc*N|ublZ(DZ}yZL3_YI2uo zj91&~$w9>L9wiReQ=cT_&4|*KNRumvIXYt-O*w18k z%IAZff(%zVt$Q!ZUt1oxnpYq;IvOY_?r(Tk) z-`kHZtHCVo3H9CC*$|?B*VQueV_fM5Al}H_%EtunD4(=vidSWikcXfb-POj|b1ojn z>7}~7)=c&!t(U%ho3Fm9UV+NW(bbzqY!n=o277ZZjxmSTu!3{_&e$?_ee|qaKqvR% z8=?naofBJ8i3b!D$*zBO4S}>W4t;B-jGExY4gI6NV*Vm`j8sAFZ>94FlZdeW;`yJ> zhRk@0i5S`JU_Qh5BuZZn1( zC+{+Iv~z5>Fdpb$_XB^Ja0Rkl3)@gq<2JfFUi7nHj`Y~UAL3GNenqaq%HkP5J(_xi ze!|gd{L|kEGMzNnv!e1G`d-6E>|h1`;k}3y*W^HqM3@bGaE@# z1B<4(XUZ60=f#HbWRaro)~wa(at$JQieeS>igGjQTO4QkIPP3!ynNm)7=+{Q6HJb2 zc$o*+?2=auXO?E|@@q4TxtFnhB-mvmyH7J@CB$Iw!3<8%x`&j&4vVK~01%v+k@_a* zTgXVd`wiJ{712bmpfk)B@lX{tv1L=L4x)g7vuOtahZdT(Yat(S{KOM489W^x~*mD%lw?m&%TCmxU0SX#P;uP&5Y`l)Y=L zq!i~cHRH9)^w3_&rQwIkc6pVSm3_t-f}0Lz2D#=5XK(yBxc!=}c~2y>Y*900Csee$ zU~C07SN~u!+k!M)7yMU>pvNW~`e#kv9Vn6bb4AQJ8Eo~FTUlcMkn%oE^5>X}0#_es z=jw3m=<4-F4z?Taz+dELnT?1uo^hg2voe3nRn##*_4eZ{OzI)qq;Seaa@YBjbs%me zz7jsFq@KPn(u+jKQAS1?)Bl`S+WAx#!zi?t zijVCOJhx1n+MW{Mz=)=UJ_YVwN)?QqM-Z70bE6MvJmEi6WjQP`ScRMguv6L{x7d~+ zGRVT(^0Q9rGh@DP(0ht0W0I8-?jMi=!G7Z-M`n65a@{rBK)j9@nTuA5aG_8=uQMJ$ zdm|Gy9Vf^`jwjS_d0c!nGgU0JUPQ{RR$fugh$)B93&vjC5A=Ns%5|+gUjF^8W6qtR zR&VPjW+&go6RXWndj;X9JvA%g$ zR6bT95%<_OIaPm$VdC|eU61w?e@p+032@hKNh(t5oGOuFARc|WwDh%zku?K$@ps2V z6_{rDN~7Uod#mM6KrDWU6rpI%w}!E*QUv@)83PJ!^Sm*a#3gjkOfWjYy@vo&@gIEc zVL9ZKP_Z>blX44O8_rWnF(|d?3iUTgz{NNF#E{zT^^~^U<8006xLNQKemA&UwSHYo zkrR2lp`48!;#Ed*k}(SR{o_HDs%8s9tA^Wob$G82pZh#RTywu*Z_=aG)-jSI@0J$c z7|%ZYyg|)a$ko(L(N2hm6odyrnU~G6$9P+-0=ux6S)8j!a#tA|9ry^sh92mrbN6b- zGvgGBAYuw(W#9G^>BI~Yzv*UixsGt{3u+<8Ym|&bT}1{9F9eHjBP-)E7by~G^=#za zW8g+8w0}|&U+yS1Pu0FEtjm4YZ1Y={rv$aLV)yos>)xtkpj1}3S{+WF|l(rn*6$-h4X^idheWd`F;a?=?Q>`Ww=FjC~MQb zksR21vVNA*$OS{NnRQojc@Kfh4lET6=XhV}6aEukOI~1JlNWtq{GB;5X7=qXOEt>D zr_01LiU;cysGtw4xzXA$3@B`4m}sdRC`qsvbUK`y4^-A`_pn1hG;`{ep!Ha=E?sIS zmQVHYl~y}wfFC^tzBrk+9ZAlYyspi@wmsB}{%R5HX2dVPeJAEXjZV z`97-yqK>uNXk2+R&z^vA;!&Y7Z6VmOPnd#%G)Qwo@P%_YJ67GWT>oQsF0jK`caq~4 zepuNM{t&96R>0h-}+eCrgRB%HZ<2|ih zeD~b?b)SU+(3Zcr*N~sYDP2I?Zhc&JL|wrm$WM+G*8z z;6GXb=vURJNYGkqKB{uNPx7SYm3?FwS2Yzu_wz0!@pMt9-nzkbrF}DHWFf(r2+YgiiE~Q0@=4jrqBGvjg&k_Y!h`9h`i!p)kBY@sM z_U8U1TfWTeRbx3$7*xe#g!k%DFuJFXF>ffUeH35dc{s|_VkpICfi1dW|}76wBMHz_pj@G>l=-;^T@hWvREp0 z=c5*t8zpb<@AUdpv-wql44)!2O9(yuQI4l@p2^`{stAGYYNcy10nD+!b+Ns%_*fZs zQMTy==JAXyLi^3clGLkR&1dbKjtXwE7$v&uN|`RHH)z5JGw)pLj*ezv6&@+RvW(RK zkEyqgiZW{3w*e7B5ExJz1_lvEO1cM-?ow*#p@;4cK{};dNl{vc?rxM$>F$mpzVUh9 z_xHVju@-Bw7W>}!-uK?;b)Lsn-Z(&=Mw(<8nKuDy!sY%=&v$KGz_X$ zI#7s#B&JhbL534JcJ1JAdaS7B*?f4b`YvPYzq_#teE{}4^hBi8R;8%!mD9aZsgV{X z!8AJY!%Af3Wc1TZq~Fxs%)CmMO^Lnc;wGs2p6 zVs|&ae)y^sITlf`X`xWpoy(wKD2ItJP78WElqE56cs9qs=bv*%UH{&m?GM)Nn~uMH zj}x_$`tX$Y_!!gL_zot6_hn%CInf36&!~d^5X%v^kG+-eJk;$T8eA}Yu*n(#H=T4e z&H>&f{38RlN-8Nr#{juV&%( zpGMEKtHt*L5WzxfxD7orO8*jY>UH%soUi{FvKh$l+;N?(*`jNoYH_Z|`tYSw21hKq zma^SQ3RBtl=?6wtZb2oT-X^jkZ5VFu607S)Bb(eE;;XCBi+#etvMHRdwwkr-9uL~m z1k|%xeGXtMK{){DqZ^rpp1?3gr4))m>c#_1Uyq>`!kQG$3(}pH1EWsF=-85LO&^cI zj19ShSZB7}4suoD2deNl3p?AocLKq`imjbE-N?)S)z)~+XB;$6ZFpFbE2^^~mJ)Di za?TBLpaj6EyvELHVLbId z-kMQFEQ{}M_uAzZL!vT4Ru%P~_hq1Gz%@+tRL9m!(kc3;MeVP1EF6S}l%5l~c+OO? z{!$wVajU&n<$u{*ngUBB^Fo*0x6ZZn(RbvEVKdydIq`NTd=n`E zOR35sz)&twj3*KA%&w_#Q9(=N`rEWZR+}iNRT0>HUo~+%rEXv7NfB7=YfQDh_YLuc zZuOny9{+X$2Z=M)x#fCu2wFxdN$sQqgnh~V=jr6S?pq%s^cgLAumH7LppoLm3d}vC z7vpnM!S|lA+MaoE-Z?1LxRymom!!^FRJ>xoP~(xUz(tw6ZSvYOz8Ca4AL_(H_M|7p z(Yy)KM>ot?@2mCd6Sbjs=D2H2raA{ur1cIMy3D<>W3rZY6@Ls&LB` z&FNDVkQ+G`zQ*sNKgq`mdZIelv`N?IU?f(Z{dH|wkwXNqZYmi7xnRfP!2)RwUGzc%JC+5 zmO(5s=pm?FTJ~w>Z*pAhZ{N5jj7_=iprjMuIN4bD$+Wf6qMkUb-e7Cx5FOt(e_ol? zGCYX$!BbrlF%I6P93cN@6BySTa#7qWqL#qiSsR4bEY|ui0xr2k^=xUzAUCPU@9d)G z$`z^zH((EZ>K)+w?gJ``ohK8rI>Lh|pp~#Vrx}?+WS42@IHZ^qzV@zQ5m9~oz55_U zh7$8Hr%})t<*ij&LNnCxK^fBv(`)I6f3{co&hLAtY~Rb-n9{=*V9LLcnc$!wFQg|Q zPW?n;qoR3sMZysk6xs(7-Wcukz$QI9TFErR%v!Q9a*leR`TQ&TkK$W~Z!yasP5iuT zykI?n-Y6tGkC;&@qFqK$*U#uv_Zc5`_8#^D8$Yz*@JZ?PccxJ?8{WPA4E8lZg#b`s zlWIk7-&jmj+1jbUvDA$h8c|0UKyqO>P~VL1lI9q-2L6a8_~MBE#iVTu{r3Jg?a{J4 z0j-vIw;k0x-65&9_FP((pC*jcs*4?kQRF*k4SJYfxuakjN({GFTYO=k>xw)>uTbCO z1mV)PD<^nUBifVv2rkX1_oG41T0EyAqujyBSd;MgVrJ<_p4@*N42*@cNw!-32>-YRPFi`@C4Y4lwx^enj0J$s1(~tBrW~+LFp8 zA5G8RFKK^J6f5!Q<-4-m)61h(eph9j{oVu7pGyJa{QIbo zx)*k8NnZ|$MH-zgi{zN&DZ%|nj{fKGF^v>Ov4oz!$YDBd4*vaxZ3Q82Y!M+|Y={tl z_Q5tST0!13o9E{nR9;&CrFgiik&y2jqsM0w0r*BP`$WFwtq)$)#J=Z2(_iD{dS9y! z#hyvn&lAZ6w@|OxDv0U}!op%oH=>TeZ}cCN1**qv&493G--&Q+vy$e#lr?#Gm=HxR z9l*{*#U+|JV*IPXo*URnyy2tAO7z6jI|^cI|7!)Pl`KjW_#7kNw{w0{$ zJMy;3j>(Qsu?Y20W?zgh6^XZf8k+;&rou#D7dv1f8c#SA%|%NRGYDouKl&M{+*_Y+5h4BoO3rkbFq- z3O?-{enAJ%Bi3*kWvIz$R)=eu8cn0Dw^0EXuazrpSfFNMWG*JZ=UEOAW&@2OXj`rk zK%Ni+p$Mfd2+EaTi!xmm?D1`+e5poPy&4i0T zln@6ui#Fy%M7I8lJV&2-lFQ|ScI+yT`aW;Q4TI#x8;}60$kT6f#hevQ)mP5%m~%`PITgt4HZbxoT{s zp9~uIh8O*on!!11h3cfcgTRtk6&+MhJ|OQS4Rbe$85v$obBdG%w+s% z6QYYX25aGK*}BOk{u$W(!&SkDc@{Iv3W*4%{KLWzE@^)H9W;(;w7tEHR5BXSVUn$k z=~MC)M4d)3<@D5@dd>+hjP|0vG!ZCrvX1ZJF&?mOUT znh|EGz+3cW`Umr#fC^@bRL>^e*n9ro4C_ZQoMh5D8pv1`_-vb zCSKO7=2?fU--1ou3Mmz+DZ(8Nw6LVx#*2aY>>s|?9>f9S&wh(sPh}x*#lwiQ$LiO% zx(}`H9lJOo5jCTK1Qq>I$+ zd#sFgN&m+va~tAPxsu%4%tk<%0_rwb%Yv*QG`BU*sRGUt@R+DJs3$Y1%InlLIUhwP z`jer=o^Vc$w=0s@ zkz;BypdlI($2_G-0hZ##ZrdN_clK>qKmPr8YWl#7N%k5qp=QGI2g;A^ag`-1bnUns zC8C9yE5)E2HG*gcUpZmZ#>II|;bf@xi4@)F`Hjo0=Eu9$r~k^=MES(+lo_j&onv-# zIZ)?8E3ZU)+hJoUE!J!)FV=zxE-AY{xcAMea*+5`12txennr>6?s{=q@%JoyFG@LQ ze6im!o18OSPx+QN7&eIQQsy-)CC{p|9qbZiv`dh>Itf?ft57Ct>0d|p8%BHaBIQDz zUHtr#*1^ElSPp}M4f2(j2XxnZ@&?Kd=OQd8fB3rCo`yCq#Hjad)$+9O7@GcN`_t=q z6b{Kyouc0RJ-h7r43j4mK0Hy5s8hg>?J)@+WT?K+oKuzGA@tkF=M5dU2>vRX-kmLl z2LMQv|F0HM1)s@h&3A3V@KJ8|*VRF~mP$Rp9rM}}nql4H8s4D&dK4evqN?yy9z5-@ zn9pE~x-!weyX<*o$l|Ld>$<4v$WM;$@kC)-pvorRgj)*BA;<5^Kz=9ApQ?WG_|De= z+hO8BT{-DCu96E;rjfsOeuJNTWc1^)%z!GNZ^`Eua-s+_8O0-EYM4yndl`Si;8mux9Jr z0kJk`r`TjL)&dIu9ZCePYrR!eAPLd$xwQtp*HvZ;^r-(jY1I8h-?zhdr(v{MxQ23R za)~SKE~S!}n*L!O(`boFns_UE<-@==nBXSPKNHe=CTNejuP#_RKK2~ z+EOMAUY8ck?&3Qs{l#mI4j>Myl{f_hQey%%cnt4WNoBZBquC~TX>9Mz-lQ(ReZ4%R zeSEOU?z4jXYp*ZL9T)ww?;pl6mN)%qmvHbO+VHUKw!%lXUAkP4?l=F*vUF}Saa4k z$?FbgtQ1MKr6Q7N`+mr&$>Ub)4`!{nKShV_oaH?F@YU1^+&sj%H?5VmeL1iZ3uqN~ zb4ol4%(rA>OIUEk+|KROoDc0S%77qeQT|OW)2;oj#^5deC2G6Y6Ux>(g=CHr^WOAcdF$W$JGW2wdUIc#>8OiP0DvU`e&8e*SyQ_|!3)$lsaWmhvbp;2mMbF{k-~H9b}q(?PiS z$V=FC=6k$s!#y^QRlh8tH8nNIOFyu2ytq#|d`aLk15%|d^k*v(;&g;cTVxH|!|VC2 z@@=j15X~rEq`ncG46a-wgI$rvTi7`$>{8p#Hsab(CTS~yaaxqe zqv=&HY(hrYR88Tqs0U zr2k-x7Pb0JcYvl*)8YgWI|tn#4!A$)dYyid&y}i?7_&_2Zu6BFAfb+om9iZAo~CYB z*ldHzk1cE7MGGV4xJHRz`u@(u9NX2(L_tO5PXK>hcSfKSEfe;8F*2qYrvX8qCL|68 zhPO_ksi=YJYc-S{=n)!?YpW2dJDb&zfEfoyWlXqatk@Xv1)dVu>6Y74KwIOFH;XLb z4SeWBAKfnt__cC0Gd=Oo%(>>u-BTQ0p-NhE*1};Ahy9e(WY%=zqSl6It3q5j}azSkwa3GG+x|OfMhZ8LCT;{l0#4~HnhB(XMmw(qiBy3I zl#67965ZdjCy=_qGGf@|A>FxWgpQH{DlvMUlPfwT;1yPmp1?Eb%!|29VPr}j-o^ni z8d7t4bE78}8o*x|1y3wJc=vUisd-8;{)t;XDks2BBbb)Nc@}2pxVKA*s zum)f4g51ra>S~`uJ|Ekw=OgB&sB;oRn4E?_Ab91w(`~7gESj>Y%#o(fd}n#>nM~UY%{7 zZGe^uT)bf8SF)&Ozrg7>GtmcI+gkwS%4}8#mK)P!e52WU5HLI1lEZKS#uG#KY$7w! zjgD2b4Y-VD>%2)uJa}~SMZeYQxYA?bJ@f7R`o}+dmWFZu-dG$m?N>BGu9?{6*fL+X z?G7$Dv(5O&>l;)-la$r>%OuXh!z-eZx8h@q3B-H9tGBhvajc!ISVU~S@f$eRjFRm_ zp=a<@nbe7Y$A7e<36BU3YCe+6LBJ@_K^=cit_%E$ce5s6#_voEf=b+YB^$|`TVd=Z z4x#?5Kekbqo+CFSHBzr!`OP>DE+1qEmKQfK3ZX*6AO?j*D3LBL_OH6rF zVa}{+$ZxV##oNSG?aba%Eq}*jtSfO>OE2wB3!N(-R(?2+ta3mzIte9jue^Q~!xvui* zyIWKFxxgJM=VP)3WugF{byEByH1elmLcnj6-?Cr4bQJVbPCD(k|MHH4j4(`m1F9X% zVY%7oIepru4@_;k{f@ZLeEOWr={7E+bR$bJ>twhNw!ryDcS9UQo12X3oz-y4&LIg# zl-5#+>-!1qSw<`YIT4ONG93zP<@PbNzZa*VMR&UlAgiy{eM}EPe@0!o&`QQ=KzBm- zhpW8dWEiBOub9$m&Q%S5kY>k>O(pM9K{~6X=3V01qmyVp=xBi0D6e=Sa68vz=6Pk7 z_ltT$3@heh((f;;$hd@Zyfo)dhQtMfA>R-BH8x6gdybj?^xH)@xA;m}cAE3nCw0@J z(~mZ{Nn;OK2{mhO+lpt7V5%=@de8d93 zo%_nnScUHEsFHf>UQiJcCi=^uR_j5zW35GNx#(}jjSh&am{(;7iM%X@Q9{A^L0u-s zfB2JqbPl;O$pW@qE=KC=gH`#mGwV27$>>OooQKGm3tXJ%&09u?=M#?(YApuc$~K(s z;8o+^yjs>LTV!?;MQ>_}Aq7Lg9E8)67e9sx8&;OjHh{jbV zB4xMn+sC=N9%+h*c`vfX1J*YXKxPfwQL4`rJue$5!Jn^tikjIQWnYM*5i<9^U3481 ztlB@IH*!vSG4iIUSC@fz)PYIXy%llzw!GV?qGY-f>2QgjR!>GV7vj!-{= zb>IGp%>%oyeQzxhWm|K&stS}6Jq)qE=fflP=k3WG=O{f8qxl`3Y325--YQ{KcO>LI zqIvJ1Jh>n+ANFjo$;D>a@1g3M?p|rZIAre&PaLGYVBXpzw!3mYk9}thmXx!RO^Ol5 ze)gv>10*065^GzQ=B#mAmPCTC{WG%6F}$erhRTIR|BcNfg;x#4QdEDf`bITb)Tbj8!K{^6hU=kA(5|*+?!Y+i%xTsE4?E5sc)}mllZI~8(sD|Zx#0CI`XoN- zh4I;3T@gu7*m;IN6hYIU2eGJ~$5X=xg)6PcUBiQxgZY+H zWU~ED@?jA0Zg~y<=*c&7S5U z6L~N$>MM99urWAoSTyw5`*;mJ^4kve+jfLrY#m9ZA>*lyGtwl0)buWJ@G%f-{sO)FtdN(C81e*sheJ&=oglevFwK6`T zz~d!0zu4|KDxQk|e$!dEVMhZ#fm(&q)=PgWf+nF0+IL6*+EKI{Md*ixtJKIpPMi!Az_JaBK9mmOVnNmn|d5 zNUC?@V{zmFOWLfUA!q`?v20Xd<6U*1x=-q3-wc^Li3k=ppL4B0WMeU=C~L8JU`CF) zhm^(0X@J*sQH8$kq~ZKd}-d>`G}a}ogQ9+-1-2_g01Z) z0YQr&C1av%KvKr+s_fmaL2oVgC%>5yVcgICaj0CHaEv)PY4<o&Nl?ccqNO)TQ8ztpAcx92fy&m=FH}I@eT@2;IB0iB;e< z*zNV6yDJFB{G_jT^S18yBqU&mUAN4gX^GY|X*)SRpby-*E2Wm8?#D)8o zH!%zhaIyi>*G4jB&Q;RRd|p0F+s-KPNUgV&fe08*^JwyBh0?d(L=}i|KX9Obr^S6? z(mB#y&&1-Cv+7i`$oJ5sE>!Dhnk_|5Zqoj1&$RLcnkw~-k|p|c-!B}{!^1stda34} zYQ7Xv4PIG#$z0HH!F&-!6+4(p9G~$DeDHpAhxtBy-L{`uzd9h>I)+mb3|(^h<^!Dr zMPHKjI(*&#yn#TGov2a9TtE%8nSAnpA3+?p9u0=_5;Q1YWy^@G^4U#nSUI@)n=Lkd z%L@!bRA}_Ea=faud0>|tbTd;`>bfg>$qD?)GYTH3Gr})!O&mLsyAcjeOz=EmH6`5{p4V##k|;G0Y$B-z#-MF5$2K$6<=F3@v0_w=E(l#~e|+9d zFzP)$`=_c+fTO6h$Vgp&=U>SNAIFqVe3R}lcv$C{<-M%vjS@*$#Gw89>dV=D9;-~t zbNQbdb{(e;;%y_J{AA)fciy<%8QynRINpe4uen9YTBQ~hZ8MTdMjX1~Hk2ifaimAx z@VN1yx;6kXxA|_DW(@P&SYH1x)=d^OozQ4aCv;XtiCj6gkCKkJw}0U+mPs_wg)JD+ zt7k~dbnTc8ogc7}#N@ptDD7s;j$t2Q&(e68lUUx#n3W)k^2MT(kS;yTR5|f9UT4F6 zuYT?FY%)r<_$aC7_je$8|~$m=q7(aq0E}RiXRA(HoOm@HHVb z;fqFrs6zFDxmq_v_}ddnXf^(QEuTADPGV)2Myn5@hV-Y8Gl({QWuHa5Nk_al~EDFaetom z2?#p-{W-<)MK>aNCC&k-B0x?dJDHmfeTH;-oAdoPTPw|O28ptyvVh~Hd%6@ppvtuO z!k2gv?7&zS7gGjKz&QDQo__lS{(4lPo5OS;2vJTm zLXZ2@@=fFf0T8l(&2h(PZ?6O{;$f}A1I&1J6kU}n8#mV06eo`D6iuDqys!Y9rQY%v@#Yk8=8q5F<$>eG=*+sNlsx@_yA zPw`LOvG?ZHwczOnZ zF2*3X(W#4zHT1&E^=4+4w6}hr(M?eVKSSifdeP^Sv3~8^(@Nbw&HxEl;TCi9S-i9iYSQaAH3& zr@7F19rdt&B>fVLpm5H`@;&U!vh0#KuDT(Ft=~%!k_;bQ4QawS(D_%vPIVY?t+hlst0R75eM;p^d>BdX2t z5EO+18G)l1sKOvX2nb`6XTiuXw}89jQlfATm#8iYDCLiFUgu3L_> zXCepDZyfR7)%XZs9~V@VqXjlS_U681|9ewuPkU#-yzh$p&rA}hvv$+KGtKFR7NoY)R#|on_(keRuJ)h2QuOmg@+*sp+GR zey>8CFQ%Z26SeU%bVq(^f52j)1T{=&ew3#-oP=Tcsr+4=^B(XT?lIAGx3GNhs8-0mi&jFg}Q$oqOvsX zl(BW&paYe%bbJcoDmo6-1MPDRX>a7Z=Sbquiy^*xstjTd`eFk2rD?7zP5wy zOhs)SNp}s@-`v7YQe0Uh#nz$Hkew=ZVKD0|ab~vf7box5_ZV??Vb7MF!~(7h11pko zS0v*FPTZb5@n&jsuwJ#1F!o^T`kvjqeb)89 z5hhz)bF~M=>g^?cVbKK6v!$C~4jIohPHE_E^A(jjdO<<7>SMiaZw3`H*-*<#^8YO- z0OmCZ%s#b33F;F9<1X$7QvPtaYx!2C+ermFt}m!O$Ir7F4vE3XIALz~<((=+@lEli zXwyk~>F`-5S%{#uXh`>a|Ky*kzqBFvu|^1p!r$B znVeJ5!Pqe=$MqlGl%0q=*k_s3wg>GC^Lo@m`JWBp-;Z92woL*5H$MWY`!r+5sJN8x zH3oD3Ef~akpL!1TNB7l=vcB>O^wy`h0r})x{9_}7|CKhGX?>9l?J4VY_VjhBWlZ{> z1|d|)mJ3y#-hBC0L+!|O)Vo35#OeF!+Mx@z`Vc%7U^G_dNmssKBk782vt+8Be|LLl z-*RIv<4C`7TLE@w9F9}QiXpai)A#WYJiTDi^8p{s98Hxs8_3uRnAmYfvwj#D|GOxt ze4n9s`#~sg@sqE>MfrG{vS){<=)=S)jI&g!f)dE1Sh#G!Oy5}>*p|vRcwO5WBahnq zEdyA1ApaWq_+EDc4}<1Tl1`7-Ri@9+(iJe!>5b8=>nNwkVc^$GEu=bdNXf<_&rn#qEg06%O~N0n_TdeYjZGlOJAg5E+xL=t{vgcCP>)Yr|C*d&!u>In z_^T#Oj8l~AJg}OktGek!mt+=R zgr1dV#Z-RIFPWqS=jmokbkJ`|%f*skhE8O8PD^}E)UHkZa-wFR_~rUF#1&IMO%zh{ zD0&3Cr;cOc`buFsZR20LE-TPs^Jx3abZY({C%%`|GB>fR$=jmtKI*n$k4@cfhNWtKo zZrqcX@j{KB$R%vDo5UdD4g(c|_lT+_D$^z`#Mkj6s=e8Rc}QXES<8&*oI z@FptyqjOvC_I)xzC30hgCKZhKOA=L|Mi-b~+RM18MRzy$mPcKh)ofIb*qD#EaC0KX z^FPP_xYz~b3(wA|5P~N(|BLW)XZ3FKE#Gb-~?kvhTFS+(apqcl5{HVxB(K6P?TM|07 zSL?ZCOggP_(r&#-DAxjh%I7l8qHfHckCCKot;8;Wz9x>CP3JSp(VMX!d`k%oU2uv9 z81KF}0HL#TXNR(3(pRyhoAyaAc~K3tx@mKdRCn{6k(IDcf4h*nCkN+A?3HfB_MC#( zi~G}7{Z3)8f#%$FJt0pU5W_1iuvz_@214en{LtYeGJ4aC^fW7kd zvkJpW5LMmsxUHJ`Lm#Sp6j{XPM(Kam%`6Fy`|etolc(2%Y!94A9JK7-Rww zU;M))*L5WSwwdqXPRYvPu4>QT4!fi0x%7!P!cp}PpXw>l#{`Wf@+XLE)=(Mw?)Qx~ z`|)FlnQ~T@ssA>5V?b5KJot;<_iKtJ^n1$~2bZL1{TVTeWQ=Txa|qh_1e^0y7|;z5 z^n8A*%ah({g`N*-%8p3P#d*etimhu%w`_B~?x0&H3K{63{*xr(2z?ICMC-bnrjWHl zD?}ypueDlElkD85javZljU<`w$-7Y$aPo0)Ng$I@<#>lJK| zj{a0+?^JzaxUs%_ErGOfsxH1hYgmR7bU)@XgoyR=FXjUfV3AyxB z0@@`!V*t`4y7i_d-L@jayREWd>OB2;miQ`22#e09BOw_VKi9(n;dK||NjR1)H{?zY zzkFT#CYHR&j#JWA@^moeMBpJhXfA1uo(9OXkc=;bHZ{Of-~wC!z-k{73p(ZxeBlb& zUJGaj`e;G+4UXk#sNV`mcf&&AF=`gc^}d)<_p$@R=w#oxsA`$e`&Pw^m-m20i$X8@iDE@O5F?b`My2dM@v-`UAbW!vTj>_wYVjRR|+TxR#QRMw^3 zF~x?>=(YpY^ap<>9fxWEB|^7sDY=(F)x6#Qf=Y{DC!MuK7nu6QcK>cp?6Sa4fs`b6 z74@22jkMp!18?FNziuu)%&oTGYCZly?&Lh|?Cn|jUs?zm4?o?1{rZWH+b6qw76#-I z39UClLDWjZiFe$h7t4m-nlo+`y$Eg63>>jKi-cZSS###V`GMT0qadK$FfVXVY*YX^ zqD}nRsHwF+k3!iYE;PF6mUSAquI<%OFJ0ZA@JfWkscnO0{Mm~Tj&4c-1!@`>rme>_ zy$EF=5WELsx5PNWdu?)nN6ep7yB| z#T%l)1W;TOBgPZ#yKvDH#s*7bIPIY8Z-1oyW2wY-{Z)}yoPUSkhL+!k;BcaUpIGvL zNCl|vi~s{r+-2x-g(B)gq6M7gZdhC94d7Tn5@TqjA#)~yw!GqqO44VQeuA8I_HjdA z415NuJN5M-8r-zL=@_4LRQuDSg-Pr-3ILbPcD-j)3v>{UCKX9lFi$y-;Eb~-8PvT? z?f@TI#?$T1fFVL3$0p0Lk94yOItADfoVD+jC)a;|mT?BF%Og(lU+}qGoB2GP>gFI9wi-r# zHn|p2<fs@3HWl`+W-`|GM}WyGB7z(4ck+#MANY0y3e%yykd+o&w0j_fc~JF=B+b zd|KM2FhK0`WH{Q<9_06rYej>CMBU8eB1lS=>iz)vzoiRn^f;gn9vxcrXiCRC6d!&{ zgz9WtpG3ig*byF)3arZfYu6LDuX_^}GFZ70!ciE(N~|=1iv{P=$y^~^TOOx^Fv~y_ z?vmF%xs#Fu$~kIZBQ^QewI$Imbq@ZjZsT$H%)(=3#YcN)>My01T2Rm?)G#YvVl16d zFLC_*Zg@Xw*gO(??0vJ5Qtpr3g0^fx1^p*F?O%UIPQc3)HTL??|NQ|Ciu)&8qi?!a z&bTqoQwfg8z=rTL0HaxVD4q8E|B71>)4#m-w^7aS=nN$glB5F`s9d?c_!<0xc_n8O zWP9$NSBl#H>xjKWCq6TIqE2P=s8+W}8Lo5paSdEYyoB#!hoNUT3jt8ngY*aTr>@M{=2c^eIz{`mW4T^fb@<_8zUu zqxS&y!{#fZ3avZk=U(QiSzh~!RthMrBI-zE1jdA%e4jiXz>v5WV9rick$A*9#|EJjIK21r35rlhEkjq!D_!m%m z4C;|E8+grGWhD)>=xKRw(_Ht}9V(9aTMA-|>Vkq&Sv@czK%(qe3w(Oy5NtH`+NWnc z-BPl_#Fq0k&P~)=c5|_b1VG(HIrW(R^Y!hW!U7nnDklwM|EKG06XCMU^lMaFN%p($ z-Q0?e1Y=O<0<4k!qiAD-ay7?lTj$)Rb15~-LUkM2<};@;IPe&WAGcpynmG1vXU-bm zQJcR!+c>+SGipiK>TA|F#Gf7MTfcQjipN={(RTNBVamR@ zv3fB9jRg9zqQ~6vAUF0JF$a9aPo5}H3|6U}9&_YrY)qg`-SmK-ps+P1L$!;q#y~~} zuk|=;)A(2eduwR>4a!2+m`^M5`+Y}%>sa;2DHL}C^#w+uIA%EeYs_YA7K*@7P=yrc zj0#VEoc}&j_bz?KMuhQm%#I4}IAK7T81Gj4!OzKVzMtJVu|66naJ|xp@*3I)!hnK_ zB_myl%@UXn<`5}FS5yV5BJ4@xXCsPCg=~MwFYMz)>=%r)OQT8mR;auPYnQ8^Zi~bg zYh*$Abd27d18^X&2m{mS)(6HL+>!-bO8KeY9Ocwt~-@WYZMJ_!)Fx_Z48W^9E`uXn``RxkE7@T`= z6EVi~d#+zBc)jSaVSn_~AoRwq8(QAM8?G(bv}bW%eIjT1jL6J$ zE{kJUI3mVgMWxiYk7X<)-oAx|t@MIL8cjVNA@8crY8UN*t6xgCK|5anP`JM>*SaiEvEuVk>h^jrCU5B`ZVb)p;! z-VRiGcKNp;XSfhhP+eX+%n~>Vwg=nQxFhl{FJBpyoy242bEzk z^;qXa-N0MK*MnHW3dsl-3?Fw>pi?;`vT0;5t=#O66$)$ShV@aV;4|OkaauEm-DpOhRI@Bm+y zbez}?f8)eDO46ZF%$%k{!P4_d;4@nFG5u5UZuZNUjKdUUmuJ)OFFv#Td=o0*sF(Ks z6~iS#+pUC&MR@#ULd=0D%o!LpT3qq6~4`svY_M#@VNEdZBPOrRNqgVHkySykA%s zb53@U(xcH!Q3Kxbv?t^BnoJLH^;tUt9L)lx^R-HcP*)di)zv>ZZ@ZLBZQ*ZY=*aiY z@jv56_LN@33_=sB!D*$4@RFWq>L>yCW&RK#_+en7IO&G&KF;$$tt+&N0{gz{R%HvA z+3M5?9Q328w)&C*N;I?KMX%9r;L3jy=eYA6zKqK-?Adx*gx5j=49MC!CqyP3 zfU~YEaW#44ddH}_AcC2Io8sO?t6Ce6BgoN1%w5l-%MH>FWaM{<485n~sU4p8W3zwy zP1ZeGT{QC-^CO8LY9E+VR+ow}eu3ta_)}A>8e39`8K9&26TY|dW>rr(*Qdw;Etf-^ zvKD&uQ+-$d4aE`EDh0w3TGP<^>s6*YYNG!Cl4-KQ?E?1yY60)jia#>r_K%W&?*?*Z z9_*IiNi*6^#1e|(^UwB%n5sOtZ=T6kehzv8z=Pdfe|iw>({8{yN%-=mHkodB@ZW(8 zP=er8Ie460A2_}MeASBc-L&&3!<^l!eF9p|*D8&ni*gyS?4)_1o_iOj%N! zo2n}?g_j;VjhhXkIN5ZBSrjmftoNL5%%`!fgp;vf^G6B&c^V-Dt&~NjHcI|qP56Aa z`7qv{28Nunydt5lSnia}`JpQx@|~*2n-%i!A~uiDzVXg5GS=D;)yJrg$HKd6bU}o) z%Km%G_K$B4#&ZXL_|qUv+NU3$yjI79qpeR)>WYxWs)sxiDEJ8102gq1z&Em;JtWbj zg_J6y=3b04JFM(oNQq0N9@OM7?TqVDuO@?Wm?;0ArW8 zOFewOAmEd?cf@W+rjPP`7bXfdiF=dl8Z*;#l(P-6I;C!ywO76k>u9lWYq}oFZL7K_ z8se0M5@BU}>WJV)V!>~TUiTdr=7wGGT>kBfH8qgQx z8kL=`cN^@XZ>F64=2r={1lAYblz=o@IXnaLjLGB z!w{~rO8g@3{$z#yNNNYV=66EsU+Mg#$ME)|k;gF6PPWGP=IYGCC+6{))}#Y`tm)U-`tYE zTu)R04CGh;Kepa7D(bN79tK1~KpJTV21F_8?k)jIX;4y-?(XiEZUO0*96(}dL8QAo zhOU|aPoMjKp0(cfuKB>%VXo_3=bU}^+51Tt-1Br*9C4l}xPDUNcURJu`#6_-^dM4N zBby#($^~W1A`~|4&j*4J$adyHK||kAVh85 z;r*~EH^sy@ojMCB7yqM9l&F^b6z><`nc96SCSKU%YH{4a5cI}|CU2$b)r4zNM86Zm z!EV{BU)sS)iyR~gYSGDBQ{Te9bqds#4MLwb(@O>`2Je)m$WK{Jkd&?2@1H7KkC&Z| z+z|x)!G%WR2OuHS>22bo>BNyq)7McpCNc{F?_w+f{VHrTEa&8XD0t>I$_A4!Xm{H1 z=IAc_sq4EU5#yb&+bP*I_kf38BJz|ZCcCj#0Ci_16MY1j(&Rb~3z>HUKXABMenae> ze{CJ@I>Ua2+(+r#{!RX{n^GSqhlqYC+1F$>i>*Q)O35aZG}4$`lbLKlbL$@}NDEAr%6noe)3`lIB_ z$gBh2w;Db#>)B9%w{<(DT%dd%dyAuKYPOKTU(f2WlR2R$Qh%+Pd~_T;VBOVGW)n+4Ywj76g_<+`b&uh zb|+y3C_O4K!}(j2Lf)xnL|cnf1H;i0Now$d0)v6+id!7q#LM>|1OO;f1Diqj`q#y* zK4s?*dn$gd=dyv{a8=QJW&1>2Xfg4R%fgACJbY}?bxAms^oaNU%S-vY%Vc~8E^o$tftFdur_E@LJqJ(-BDtTR>2zJP&5i%H4eY;hKJPYhmPqw*MpY<_ zb80=?MPb(No_OA+{)8h9T7NTTzsxbAndG7HZ||+Ny3qG4cwwL__sGQ68+#MO!`%WElIV3ze4ljsHTiK2sliOyr7m*$C1|D>7s-xDJb zfHuW-t}QiV32+9oH6uZ*Rxw8?w(I&y`@ zuL{wq*I(<~eB)kIlS7S!mtWm+HP6i+E)`mQV=|bwMUSFL{eEccW+n>PUr$S+cuJ6I zzASQ{kflHot42NTqxknh+%^0)9fb~%l?w~0NVAgSP+moGRjDuw=9!wKDgVFw4wzBU zt~Qn#-GmrvcdkafN(^8os5gTF$2&`cg4fMq&N~!U8hPkFYL@A{hH13hKPexD<}+f_@-*+2l9 zgk{mmfuUGLCUyUyWh=SPV9v@W@@2o}$js32DIjXq^%Z;krrG+JLD*}Ni1ACY(g%W= zI0P^)bUH8ZN?FIjxY|GQyHi0hFw-U)^+%7N*-=bYQGm{FO4oQ^3)PV;MjRQJG-M%t zDf=M&cOedsK81e&KHMD>(~ytj4%>K>3GYcuqvZZ`3|10ZxS8p~Pfq3sXhL!CMoF>f z269;>)}<#uxCPkdlSiGF%HzR_F`CJ!qfi4%4r3{dY_e#%COHq;TkumKIg2l^PW1H) zyjiM=De505*0nQ729kGv)fIYZ4y|FH<-@YUq8n54DV7vD5>-ys^~vr+DZpS4l=h#& zUc|tFC}IcE{*Sxsi7XqbTGFZ*vBmUiqwwvU;sFajO$JiY=n*B$zs(LgVd^b!T@Y=q z?2#Pl^)%*f$Vgdn+{2r?Wc+Kd%EjWJgKA8iJ?g-^%c36ZmUQsP&2lLbaqGvhq9{|r zqQwy}GSq^zO-;WQm-g~bEe4k*Q|#Pt1K(y^(UD1%9@K;I@Kj7N-@i}}63w7!^xna( zvf<`eWLR44jJ?a(TZ7E=MZdfz>di2a=7JZ9WEiaVbC8ulML=rDMwF*`R&8Sw?aSJn zYFTZ;Volt5Un9BzHZ{Uo6Cd}sWGsE%yy@=+q(%Wq%Rpw#Al-^OY+#w&ngA__&m$4L ze!ov<>S3-sD(uWwLo7BVd~q5c@h$--p#paOa6w6tZjb^9>}OOH~62V@dPw{yQ>XmK!{`(nQ zZ9qN)Kj2)}|3uANn!zP(Wr3*CTh%?8wQjD-G)=Z{>H*`cr4b?P=&!zIN(^Exg^swX z*Gh(e{Q&^1sM*^j3un8*S_R`Sl~yf&d^=C32+egEsGbwz3^K#?zAS)I^Fsdsb^Cy9 zZ&CpH3)n8JSflq8(c2wY>7&Tg@K_W*F~u@g{egaHaK)vQ%_5Z^P~^>g(-)FROT;}@I2OIPKve8iKT)yaUHbmT<=to|AX+SC ze2*@5Wo!CD8jYbqOBVitPSJEl=8}^3ZDNR>db#?&>$>$|4n|x}?46vC3Q;O@MAtiD z7=0p}!6_#$k{Lv{JO=dkofK+p;8u&scHJhm{aMR4{)yXLstMEBXn$_D2)SL$FBLQk?E8FSJnW{-xKI(yU;-cIE1E}U z+@2Wez1RTN)W3!ae-&X@ae^MER34`a{3v?MM9moQDcI*aM;JbW?LC2Swe!PwX~t)X zd9BbJZ-R*O&DU2@!qr3;xlxoeIczJ=zt+vvq__P3s8C|fTIcD(8T&kEAV-4af6ZYGSMSVhC9t~ zmshI)l=v0)34x^wy&LaRvEur3U0HNybj<*p=~nQT#<0_feVy7vTbnpkM7B4y}Rf%_&71b}?6 za(QF0((T{%kjC9^d*2UI<_u138=A&+!>?>zxC7L{@ELB@6)Hia7vDA=9mtd1Q{QXO%c0DR|hYF81F-} zSA)MnMmGhX|B3gGp!KOMp`TO{0N~dDX}6Y=+F&JXRvc<_)?uqo(HRnm^eXjryaaj| z@k6Rdk-lqcz}T4o;o*GTZRI9rWtLqbY;&yUUr90c0$Jb^py&I|J$68@uUq{t;^3;+ z)rd<-C)|WaS(CGZwD2t?|(=yLJv0{oTpoat}cCZ;G{W^ zC+dr|bKi!3FC3nJ&EWmb8ibUKAn#lw7wAP~gt?FSI90uVnvLshjLHuU#Ty$)woOk} zW_^`mEqQM2`Ql*H-Mq{SECxm~FS{#r1fvWc$TwKopF9N(6B`?gj^IAhOYvUrEe8M8e*Z zmMry?)y19N!mlBaHa~>#^`s)J%S#Ty@}2n=#dWU6irNsKjTLMfrT=nhNCrWOn*l+; zt_{#bkl(MzCCI&78|2&#u6+Hsgz1F;Q0NW3{xWEY%O(BN zINtqWaH{~#Dj$AV+c$eN(6=nHenV-Xnz3syqp>~dkYGeOxH5dU9>p38IK0Ik-SuFy zUc?1m*NTvhG^nl8)O{ALJIRFHX0`!)e!@+2A=PxgTJ?arUgv>g$K8JU%;P$B$Z2XV z>oYuL%N-0 zozokz?oLyE>iD|pI}Wnt`{ip_&`lRw)r+ueV5Tu+x-#FU#m&!3)1KUVJk_bjK?NYy zz)UeT=2Q(I^nWnqoPY>JuJ3n)VmcA-FR9pZhf6Q-V?-}t!>n#!s%hqu?S2x8vk^i- zuF&ql$GX_Fk>)ah@|Dbp-BwqlIal)K&(bN}jbZEVh_J~Tq}3+tgL<#q$=zekcQj)# z^um_4{Zyi4H2js@>vu6>jgM(Qx3HF2q{(q{3{;3m)d@vI4ZHD}C=hZ<%Fk!4t)kWz zXrC@EI5HAM?mO!QZj{s@^2^E|OWypBBlOo)IwSGg35+BGa1a^uK zN`N%1c)Kq7Y9kK0yP&QozbVhhAmu5bL6Ky%?mpK>z{*1U>%|o_$og+BA3RWIvub&G zTG+Vq<4h~IjoqmVKI02n+_LaF=z409XOz7vu*e6y9*(_N;}9XE2M zVeyh$`wWvr(!Y=+-s?s~tn@3dog89UzEP(%t|eX7&YtIPUN1N84t zQy>y~IlZFkhvS{KbBEIe?Ju0MaNmqt3p1&!#jkc8T5y1ftQAIUWj6A;x(SSkr$r~Y zIwbTG-p?&HvbNFY5b}IFdt;B{h;6Po^wq2~2#I5!kGDS|(3>ywNk^4fP9~B6jl2rGk&SJ3O!3 zw4>SL6)s!qZ8$dQ3`9vNjv?cOz1L)}7;WJ=y&nxd1t8*JRt2Q}23=b4mL@PY;*Y$S)UH%e_1wZFJ7oS#Cv_>SvSZfZMQXRQJ9< zE5nX052pa}i&TY*Um_?#ZeHFRX#FGTXxs{F@6|yd#U`RY1s8(;fVlX3EqiL3E}{uS~B4TGy7+)G(WY?Jw4p>XSA~ zISh5zpNU@~5s}q4K-oVldw5iGe_uf{!K)}1|H3b?9YuVs`RVmxfn$;0{XX%JTHhLS zVwN|_9d@Qun{J-=U)Za+3^;^z*$N$6i?9aXV8R<66HWnwajKF@AC$I1zlR}Pu!jK1|=MqeeeV(DsJ<+VB+ zKvzMrNBU#=(IMK4dicBevjp13Muit(;B7JdVV53*#{w~8 z`sQs3?#u!hjtjV4(j1<4mxx@Jje*#OG?cH(d7H8x&IK9AyK&IO3b+O$Hy||pp+mq* zK*^N_IM;OK1C^CJpe!wkE+t~d^(<^ifQuQ{IKYFCUFlW!FwU&`-blG9T)DC4qVDpV zJ#fgnYvPk}KCGlXA;KqJ(ya|FCpP5u#>eDMYurc&Z#4TEPFsjS9|9R4&~Tl;O*M&y>d8_=6>c6>wC-jFRqKceFx!Q?yH@ zxuQ=hXdY{Mmfc?4q-_~*H>BtFo{yu-R#4x>(JF3Y7L5jVP*_Ul?B`7m{8ynQX*i^ox8qL0bEPy{z|dzt`@TRl+p~hGl-1h7 zIz-mDi{T-$aX$O9B1()awSe6ni-8v5YNNB=1n{%s*NcN`Kfc)oj^YPn%ok?DCToUa{s3wibtmi728%uZHnmzfVO)mVRq;1B~t8&BcEFeAzT{Mga*B@I3`rDBP(SF3eP2QNy&HDoMwywU= zH%o6P+4}+hMi`L&9RDGeM-*U5C9^1HeXIUk+C&icr)1ix;sO8!ldB=Wq|N{d*N?QH z=!cq}Df(hjqlX$LO;sZ%soR&Y0g+I-hBpSFogXcI=!S$|Am3dBP}j8WSCcc7$6qrR z5(%L6xv&>Y3Hc^wO^NxETdbt!wG=s zky4!2SO%5q_Siw|{J$gZR!jS1H~PgxIbrwHJjr>F&{5yk-E@69g{|2wHEevgp?dO} zVd17O9sjBNOgBXH2|VUwOYV;LxQUdR5$jJRJnNDgZk1fOL*I%UxiL9XN=d4l7ArG= zSgRBZ=m-8^s-njGA>IXgh{AsBZoNmpwFj401FuocYO6;AoV58%?8XEHH{sjpl`Y>P z>*(FnCL$1%)d0iRcKqrfi`$DfM^=eBX( zfxnx)!M@$wT$x1)GnER&PMHW}*!bJF-VG$JFg*WIPVI_u$qv3GR4CF^HYL}w-Wv#C z)a`6po9GdJifFmC=ybu&D=f(1fFGgfygic#W`~Izv;(rSaRMlAKE6{4{LJ5yCuxwa zi}{k@1N7`HgZls+@4Rybdj=OHo9F2_B@YEpR?KxJk`Fj;d=B9UVF7-)MNhiRpPi`; zFm5)Ve!gvTdiYZd%Zs#a{Q(a2o;QE`H3d%k1^wxz&>oAqiCCodh*?lZ#NH3{Z3Qo|@QeRU3Pedpzw|T=dY4H0SjOPy+}uZ5#*} z`-Gs)(;}cR4W}H>@dH?Qf^bcSv#-x1$)Z11!%To5BdlBMHTve0>F?57Fe6}{BbfFo zI%&G~1`AvFl*!?FK+7zx>vT0p<<>T3Znl-oI-czfXeqE=4^zyl2@uvC6*R0>rX z`7aj025)=O;1m=;*W<8d&~mpD>m`es?+hh2%~~-bc6@>Nqc|jZWWE&CFyrLBXIE4r zPEmYLDUGR`yiEvL)*Vnv9%XYJ$7e@VZ7e<#*3Im5Jp+txcArQ&E9JT^h!=OF5W4=V3)9k(*e{S++?lTv7%4*mZGtTtKzG;{~k z{lJn^e%|`yOwvL`$6q-oNsKyR`K=f$7dtu3U>^w;atOF0Q?B@fejA>9GSI?OM32M< zJSVYc2yc;o^4o^N%6zVd*1%!PwgcPh;8QM??bF}+yfoGX{#M0qi}%*ozPk^zEC(bI zNt7CkJtgH}xpE{qdW`7=D-1xUjN!LxscYaOEq}Z?w064i+cPv~eRcFwxzOn!IXAy? z?uuUJUU|H5t?(JDcW+8=3E`@-V2)3x`Nc>;5#QO_0VS~-ZFUxjGAVi&U0-|!=UEcF^5Bb=IUm2e9U2Q^uGaKdHWjU zInykl9!Z%7J|%q%Zi^Spu}<@Cs%f2>{KB18YvMgGoCPj4c<(oeK`IhDp6saiTc#gL za#eeyjNV8}CUHkU9HD#v*ZhSE^%zh**_9O)@b+2hAXW0{y#IyZe7{^#XReW}Glm(E zf9CdjUKMmG)RQ|*)EnW?(VFRTUkLJq$4hXWP)hiBY-{LO4tk4qinI7et$7nj zA-CNueo=)#6)g<428ii*<*9ai_P+Mc=*Ct)LzA|-IT-*BxI&3Ka-eHXE83E}^UEHs z(#q^tcE1Y?d}^&3T`bV^XySPd!=@GkFUIrQPZsM_F#<)tuloRVS_Lw30hflR6exOGH=f{Hr$-UooVwHI*4Za^8@omGdafi{RBLf95N+Z2A3 zr2~?gm!Uo%{BRTj^Z9hF%_nt90vh<77pG>Dn}ij%+^w>IPDPn9p)5-_gKvb&|cUx10u(reP}C*lVGO zfb9@ie_i9N^z3t~puyNIbt||%S|G;Yj?NEv0wkIl@XC8KADeuK`Fb<|#2AWAa>kRa zpSYIF)yl7G6O0YhT}>$yJl|nWX)>+2m-bOI38~ffZ`baRI?e!FK9X+$_*Zai>PG0* zV&R7uAP7gho5Dc|an8XP^yT}`r4Rmo4fns=+!R{hZZICgN3ElLbR?@;m*4IbF8OAZ zoRWHGUlf|&+PfW?ZCjHDi?+JXJE-rZcz@t9O7k<=9zAzqx@%u?t8R;hV6+dOmoi@p zGgil)R1MEYq-{?$u6%o}v+cWf5gl4Ext_AlRQWSA>{oq%YPj4P9p`&NKYCf#?sHo` z&v)Us(s>}HlH#Sgd_HmGoA0$|AX#h};&V%|H12a~vIOx_f|I9*Ex2nAXo|Xg=qNV; zb^0Y;Ib>Gd?S5~_M&$b4U0y74&DizU7#e8_?x3#RH@XdHJJ2x#LH^&mE)q(4uGpIe!1 zCXJ+Y-zXwJzV&o_ZR8ByBox31doPI~giV>w;rR9Mu_k$l7F>M^6bRwjxg69@*L%@S z5O6WM%}#o>_Ivw1YRXaLEOYTxqOk6&`^|At zPtBX1HWgRUp$P1&lzXSwHBtWgq#JM#a*oqL#kbnmwSEY#>u%8P!~&i1wf=SYN#~02 zu8|=8+Rhm!Oe2s3p||SXd9-tecuS)iKr$XQGOC!&&~vkeV1`= zXG;t_q5Y=7I;<%?ZZsOTaOpg=QPKuKnGikc1ou^M&tBemPN|3@2CEH5W3q40-;5@C z+zcCBcjFk2mdcu4G?%mA2(v!S$ey2Cy)!JnS&j2idRneR|C-~>f#2cgj7+Qa07wVGKx?(>ok2LJp z2a{%uCvz6LF2hWC=zyHXh&rzA#E(}ho2+3kUVzVBZ`!B_EvGg<_{*vrz7mV3mOGTt z7haA)xG=+_U^bsmMez8V1ZUN@@jo-qD?ca!89M6XH@s1v-X(W^a$FgOZ0F855({1I z=4}U`%*wo&no5F0M1zT-Uot*(bjz##VSol$FSZ&iVOTwAbgOo4PW*W7eVvauh_t^Q zVLkDtt+@KWO@!wx9V`6ysC%Hznq${X)H$lF<#K<=C8Nq~58;`-4R3YZY=%m z%zNbWxhe885u|FL?l^;gX!BA@@u~K@j7;`E5(lld94y};L?(o99p_(s{L^u;v~=!M zmwLa*1Gz0`0-v=U3$re2I4VW^Y(tj8=Kx@^!3c}Y^SS&?!j907dCl^Ts zjh^3aRPSTq%}tSRceG-K#j6LkOQ{P>_32flJ}qTT6y zqRQHN&j?|^Gy=tyR^7vh0&Y^6@L?guwv3(^c3eEwJHwilM!xTa3`c|f9He_isLroj z?e15X%SVmiQrBlp;FA^{U%hL&3|a1_PGP?j-|NK>B6E)roSb0D!Mx`*v(o2h{53yx5V z%GdC_JG@TTjte!n5BH0ED%Hl#iMjTLd54LeXZ_@q+eWkb9~x$J0+A@Ji6`4YPMr*% zmiL@~05ZTF(1p3=wd^8Y(|)^s)YIuLnI}ZA)9bt4XdCtkZ&Fz4nNOwH>FIMb`iU2V zPLd=J^litL$HQ^*FBw{o=|>+a!MpVBk1Nxz)Ut;Ah8=!wrYn5jds_EZ(6l(8iu)Vx zk4`6N2aPM|@P%95ob9ID46fFK@Xm`;>v$`Wmy`^Dw)>;Np&Mih+!OdY=fr!Zn*3F2 z_1#p&FcX&O6?@5)t&~04MIp%L)7f^5m%TL9b=>9pMA(nO9`Wb6xSZ!Cj^=7oDKNmV zTJA^g{cNFntn!2bK`f{RoN@iT-{d?r-mC0Br~KhwYRg5Qd#);?9jNRe_X2-bMeTgn zcUt2fqsTet7Q`KIh|;a(50%EFJ`=_J6-9z> z`~-Ou#RUbGxbg{?wEsL-2BctKW`d+Li0O~m;et%8f4{3(XR=&G^1DdUi%icG->WSC zlN=v6bBpW4ocf(C)^4Bi;}Onrq4TA=x%3kuPR09Y^h%RjgEG&>!a?Y`;qkK-?^D(_ zF`r=C8-qIO&4O-%D!0CM&%!vq)4tExtxhZsc)R_a^mkFWd1}Nx_S!*K`Oqhu9{0Vv z#q9fIeSw#YCURoXF8bNDfGxwGo3x*gE)^4J90rJQJXOh=$|RRLj?Ok=7tfJt*d$h0 zyM4@OR-n606E26W*Ly2D8`m*YJZYv9LjgpuXd=n+5<13*e#vL+tCPiwGB>#Q`LnuVuS{xDaxjG}X*rd1gg)bl z+~j2oxG;+T*v>NQSEHz?=_w1{n5{MGpUrq;ks0z*IUNTZnVx)AWmVa|UmZ)o*NKX@ zx;E_0KJrMDBS$4~Ddr4W^Rvmv6x2MYF>ER!OQBL+YWAlGF9(RfTGmjbW~NfE2dCln z;(GOqW1j_DeJ^2F3CUC4e%0L4^4a@qU^m{TiB8io8Lt+Z+0ymrq8}$VIcO{H1|6O* zx*ykxIMZlUkBLle-gH*miwH~>!PQU7lBUL6W0j3~6svKy4N!StKKHhU9T^(E32F1n z6RLOCS2BH$3PqB8;pYR`>8r2_=G;V!yqSc%Hri^39##Gyd?{Y%!d9g6$w?NZ>6bB_ zbAJkd-~TZS9$gW(O(o!Vul1>Xz9ubFOj|pW^Z-2{Id?r;Q<=5&Yk6_5*yscv^=eP4 zE9;;jNT;RLX{i>~pFLntzAI3=vhJ-K>HtZ8R$SYWQB=A%^N|N7c`Z}&*_51!nBkaz zO-n;~wyd6fhEzPflX)Rf7TKgaHO(ce|pnP!pAv{H8=cYVurk*oSu_geOs_FS`3AW=@g3pyZ>jlmS>}NB>l&uOF5#m7EFt-4q}zS7md9 zjS`PWQn0bw9VE!hYnwS7SzOrt>Dd#tQk#h%we8{V5jnzM)6~bO$?F;9*bAe>0sSwp zNOY>wS-?5Oq@23A5k*^y4H|6FE*_omff6xf_Rm+LRV3XH6$m%Znx z*Pr|1Z1*FVlqOwio9KMZf$15S5QwEi#1yTv8{%ZaiF&PcMZcK9ajoIqL&dPPQLxBE zlNr+KFg9i|zCXI+!$#Ytw*Mvd+o`DEPIAYyfy-v<)NFH)ta+$!GlKYF+qG157}~X{ zXs2&Yiw8${QSJQGrkB8jo4s*L|&+^UbBp79zV#~qPw3Zm<-c3#CiQe01pLI z5~*iL1zNddqp@WVrCETO4X)vC)%PJfubFn9i0HSVydFlIo>aeD#r!}0>=)29xwNHDQ?a^5R)=&obo0M4RG}^nzma? zi5-XKSq4#>U$0PZb6m~Tia3I-uX>D(xCG(5v%j(OUwCbTgoG|90YruAt)+8J!CKU?Di56htLY??4`a`v-G3cc&6 zA?9~PVR!I=NsaDJi1_&0^~nDaEd!cr!IHBixNKC!zxt4QYo0T&YoowJlLk;uV zIS;#jUO}?2(xVSp(_T$_=0YI7TQ^G$!~-r)n;pDhSok)H$8n5}r^!WkoQbF&9k0sV zhN#zwZRd^Xmn77bfkwQR4-fCp`w1> z{1!)CA0onNlKl1Eio&i5<9}92Ju}Sy!%&Wy{OK~+m60ds`c|?|@`1ffm0RS>(cr=Sq3>-F z)E}v!`$S?-V6RIrHl5>C@7rA5VLv&}3sh`Y53&=NRy%`aq8`GBuG$C@G88iY>GJ`y zU~O9HV_^7~L_1JjCwzlwkWRviDtUqTip#xhkB-+5b>C1TawT#(S>){FiNFY9CB6J$zfD5v%=jN=)7b zTO>&mGe%sUy}HGsulcJ_>cbG-w63fBMsxLu$AY6wV_1=})%e1UQF}V+kB@G46eLH2 zX$hiQcN})~@9%Q8%<(Dj=h$ue`{U+oG2sUzyCfbA%Ex=-8N#_s&5H#wFA`@!q}^Qd zxm#zuXHi$)$HhF^&Sbeg9Yd2fZtEdCh!I0{e3zNSYWVLDoE1DxC+vHC%Gr&a7M*50 zP2Y0kyh-iN1C8K<*?uqa?sJ#ij)!?%b8CL@KvMtIGOI>Z#QafezwU&uH;kHj%W%vU zt{+?{#m)Ce8L@hc3l4MM8#Vcz11dhMYd88NYPW*Zy{P(j%tPpMoy7%1OW7eBAPe zG0!IOh8!bIbq7mQPp1LmK2{&%giG+G0k7{z=a`$gv6$&aN_XpS$O9iBM^rn(pcq7B z8LI7yPL6JLEQs@BMzX<4=ga!j7qP4ICR4q(SMbvqL(Nug6ZVEQ7E?MpzHzanRuxIv zAlaV-6_!NU7<$YoV=bk~V+6+-*ve-y`sN=jT+c>gq)O*SIq31QN2X!pZIo6j3B6)_98)D{x*{kZ9E11*U z-?=5M^UW+yKKMp8oIg=fcCqeH4B9$lq+cpeCz*Va^vG=<)lMJy?7CRbu#|aKNuh4{ zyZMV#*700{>=Iu^76R&;JB=_Gpbxdn-j5y35mzmspQznd^&Ob&sML-n;K=H1&w;PdO~ag) z;fG*^Xp@H{qSURh?v_<>=hKGQ&OvvxA<5jqu;`E=le##fkvNAX;gW~(en!S+=}Yo; zQ+DPRaXO`;Mb3$K|H8Wd96TWzagenx{8AG#b{VCjnRAY%xc8gg-iYuy)YOq&X#SgZ zQkn`tJ?*qLSdM1cRlj$Zyy@_~w3@<#u9y0QL&TmVYYA~Y`*u|7MIR}@re`nEa?*Jp z{YV$(5G53*5+U5IsVwX+vW|rc=oTm)hFM#IjZ#N%q6QgP9kZ(RsF7~F1)Rgh%^PL>BA(3ylHB{=xpEe z?S}0tkMhsu=RF8}X|Bb}i-q~ckfy!)&Au+tzVkSCT2$Fgp}TiK zb1v8)C25&Wniy>z(0{!hSwHG`T=`})Z3@FAJJ~LSbkRXTT41X7QNENR(yqjU!DV>!F0ov~m`qo;aV=t;jj+as5|+Ih)gQ;|x9z&=fOHD*nc8 zsu20kgt>p1xFqc*&vXH*b#RxZ{6RXUqPAd|m`lBrT=9GKUtuPz@{qTo&xY@)+rCc4 z4!RJ{ghEXgH9y2w9sV3f6WX2Wcjln#Riy>j$G>UXUdsvP7^p286-M7vzuBh|TMCmB z@q@Q>Q~vI@UVVpR!BK7Dnku-ORXo}ex+!98}X|?zsDjB6i%+N}!ar5|hA1vcjCU4QO% z(VQ;O8AMi~cM&FUQ$LZHD9&dOSq$O}{AJSrB2L`5g+9yO(0GJ|n?_^%J(ihj0Md21 z7xXc+k)|+K4E({A^M-n#=>@6FkLTFV^y%y$Be;eO(Tv`czCpbc6B7vW$HhgF5JP9i zMSiw@VR3M0k86A}r-ojm6DjHU6(^-=zst8@r3_}Xxm#Zs_-dPf=W?>d!h5GW>>`TT z;)@`-#^O+bF4Jt74Y%uakUXHcY9rw(zRjuiEk(uu7J6S&Y;z83luXy2uS(z4rNin5G0jNX5@LXFhW?*l zn?wKw%bpZyEd7&%Ue$O%6pV|I2bsx`#RAs1pmy(+9S(w!ir9NamC13}%3kfv^|eH>bC_&RIZLLPWG(db%xlbZ z%+G+4=Vd+^WE9gNIZ!I4E0reA3roA}0;>6yw=9opLKhfhRumy*DTHoEJ(C}=H_mFF1_v5>}1 zWqmN~>eZ5kiDOoT+1;ND)+iqK`2M6&aToroH@w6Arf5ZI3)4lrAKPA|#}VpqX10+~ z>9e1R+TmWOI+oz(h{X7Qz(JNX&f?TQUT{9d*6FXur0HaY{=(*F!DJHa4rr?QJkJAD z6i2$_-W=g#Yn%L*r%lmHtL4U5bd13_SmV-YCs>7>qwxJs@Hl$JK4k29u9c}w{#fM`k-|Ey zM;GO->YlzZ{^rFSF3NZJj^i6?aB`p7DMj+T+---ijTRl) zSN%MaQSg}((qt)H{d;{$Y<8|q;!i|S4C_!NqrrS}nw07%@d4#Gj@^ZEW6$f8xJZ)u zoky&-sFVG2*H*aZP}AKsr#uFQ!wE zv3vXe3p1wj8Jo2p&!GYh{lb0;MYL=tE@&3@qrgR{&<1P2p;C=_&e1y{=nU&kp$4TWf5kh>0hrPmlk+dx1E&W^#DIKICI9ixV&%u^0aqK=+zpYyP< zAXX{?A+rT)pW9$Q2gzfslq2PiZ|A`WtPsu5)X1#=Um3Y?FIA6fFhGif*NBXJ7D>6n&>~9n) zNvn(IN7H=wHh!n&5*>*AR$tk_f@5xt%idADPT(b~-oR+P9zzcM4wAfbbiwHM?M4os zq<2p7y5GK1JJ6&Qs(~+@-9y>l6dIA z+%Ls(|1@7cf^k78YHH?WbqNBeo2S9?6Rn9FlqDR80zYF`4wA$A*mRi5GiYV5)304t zWUgsGrEb68%xL(rJU}dIXR2jl`I_0O@;p-Sg>#dlD%DR%U{@;m5gSbsNiF>Wle+j! zJTz20X2exmZ=3U2bXkwVY}IUJgy!0hNZxocaF2PFEP4i%{Y*fMVYVU>tDep|YxjNX z^NIKTGk7JqFENP!KAY$PX0l>en8=)Rb!J@wzT}F5dua1(oS{7dqCH_sI^Cl4@I#PA@do_MC!o|k}*$UjiA3$ zXd**~itZz^E?PzGzn`o$WP}dQse+civTpu`^x0cHvef7w&lcv)or2Nh`mg zrdUR-AM@W6+oenEKSRnyk@^%>j`gnE7iqEA_U_!S{VcSW3=8&R2TA0aygPxgk{PM` zD)PV&*kX%QXd&`fUdl|iE(=j>(TJ6)Sm{B|)O|*~VXR2X;MCZM5W%OBq|_ZGL1H&&n8u3{I*KA4Wjm-u6EZ)uzz*1`jhe_L-{!Cl6hT!^h zZ5!b8aB=+jd=B0vU$VR_dG6=4ZG_e3l^a%5g*zs4x^D3q63>e>!*n(-QU-tlyMhWKZ9<=adTZ@5ob<# zg%7K9vgT7d{X6khKD)qmqVBrVU=NJ5aAr?sn9)Gp{(pqMcQl-9+de!qCX7CMXGV<> zJy9|kC3=a@)_Wv+38HtR22r9%ix3P6A$l2Q1Q7|6=tND_=;e3I-uro<_x=9()~sb2 z%ewEYo$WY}^SsnRBJa_~LmFg>@~@t@2-(n(O2g4&2d}&fh0h{PZd=UwWQ=)qx?evm077)3`qkgm(@Na zb<(@MO+T;0$iyK`<}0ApHL;8%Ky*}TY3<;mK(_lSy(zy^wu=0s1X;so2+KFfFqhre#^hu8QLfM{lv$AMfU2Wa=F1$y zRHmQU_tKs#3b$;svN4%J`MaxWN{V+Q;q~DEoOyl%2wYskh(G4-XTveK#rV$spUAlA zUvhn%qBHU3T6uN$JQwdc5=J&+?Q-3;3S?Z)L?d7gl4Ji{33OAr4Ud zPe3Iuc2#N@362bxi-Ayr4vRtzX329l(cz1)7O3tJ5>PA0JO_FHfJ_j?XvBC)Up%A^ zmSkL(n$`!oN|2i8RV|z7d;qXvDH~9q5_E*0sq!47dHJ?@~nER|ksWpH9yF1jg+_@Mo6cr~c z-zfsa@JW=mcP#-^;cI0b9_hD~(nq^4WBc{Cf6ZUdhhb=R6fBf_t~8y9I#Eg#I&@ZY zo4O@L4e#(y)j5Tf_!!V zx<1d7mkGn2(T)z@G#9w@5{e%tQ=;~|_sL+jOgROUrOuAYFD<>hWWK|Vf4}$73*(3>ba?(zU z1Y41;6Ut(#k@62${Yod5XY*tv7wc0{NBXb3UZoO*U~O1su|LeH$dU}4s2ikU+syMF zG&giUHN;_%!#sXl!VZx}FWN*hA}1r}A{@JllO?#(^o=64QSK$dG0r>lDPakg=f9gT z9?65`LGB7iE)dQ{XyQ#$_cZT*sg(r$8^0IfaB6+TwD;)7<(zei);7F+>4)VyZ{1x6 z3;mXs3gwoecn^#hBjGxfRP9xwa8OXsO?e(tSEJ*x&O+qMH8ck)g@!_sk-)ptXy)+z z=-g8s=l)ifRk@gUflI7I;b2`e?H^C$ZyPOw=(w0j;T1MrGy1raG*BhatPU_m5g-Q9 zxx5&HuMy-j_s{A?Vui5L3B(;_lti9S+?h4E*B8;WbwrZb!hH?~?J9^CMxo}1YT4a6YS>99{G;0g>WW{UTkkl+Xsb}&x(D}6xTIH? zCwmn2SElWBweyYj?7m|SC_?;cCo1BQTRhr?iP4fVt|2jjAO=4lJ80P#T!Bu})o;$q zUHHm@mYxfX9-nW~qB<-vk+xX(sl)hLh_wv)5A->33`*5Ljm8gf${O6+@YdwGqfLUa z9!P!^sg%DmHj%fBLp)+zeb>7{BhCc*UY-@5?k5E!m)=jgy6d2!;5fS=TS{j4X|jen zpT!aNM(BD>ezHx_^@2*kyryp`?mV9P9pTHoB{k#UBCa=++#f}D(x2dw8(-rYI%%Ci zHCDeqKNl%Zxu{+nGu|x+Ri-+LjTF6YOqp7f`K{NOV5>aKv)@3aB`aYe5={ZluUYWf z$rWaeWbI*vvN4k^y7+Nm10{k+UFTbkG$sxudpL)=059C`{57nD-Kop7Z5%R&-eZp_ zDJs&^G~!XVC69}|kTO}Q@Ya`)C8+lCjsTI1L<+U@G9rJza~oPO?Jw`&PIb&kHfiM+ ze7p|u1_W=d`>I(~az|v&j1Km+&RwIdi%(KZJ7pd#-UiHVF9GXt?;_y20#_A|y|ldC z3%Srf#kHT|Di-g|9uJSdU5L`gki86EJ-+@WX7~8Pm*k(f(aWaQCnI-~d|9?oSnlE8 z*<|1m{-U3hvGIv}qn%c?ltN!DiAoKQ);U1)kTnWEUPUsfm4=dsd|?9Ur(Qxx*qklD zkyc~>!>>5~YMZBz4zhiL+U0Eie$lM&&Cw2Ni4gQ~=-AVX4fvxyj}r*}ik=;?~DlQz1_7cFnPy z@A;wE6Zh+$MUdg@rdnJNc60ZJtqvsL1{sSdJW4kL|82Nyyf+x{z z94L=j@1?MAAU zh7l;cCk_mYYC-2vA6+x)>`*@y-;b+t{o~bIHNofd`rg;5SFXi)^mvbjL_yPS6-Y{d z#}&IJD?g~}N$8!FkDCPqED{Y1LnijR^V?JrUG}`YWha_sVE)=^}*GIfiLufHh*dk_2ZiiZV zgc)+yVKbJO>rQzUg$-*Sse59OuTz?fQA&xXW~W)8WuE#z;nqBKYksp=)iKlLLB`=o zF-Mqr#faa!bf(!M>>k~H(dG&M{~$ThF`zBfOpv*$(&Z~Ho^ykP>8@xglU{PNuwjy} z?l_D~p8QJgZyh7e%P;t0{)v6`d!1Zp36URm?**}i+nT}7Pd+i&>K*Ycs8BUi_$>Kd zpS}@E0QgzVn+zSE{oEG!K%}eRNnFQXpkIhA9N*{GuEk2_bN zXf@$Z3@xiZYd<%Xd94}sl6ai3{}s33oqpj#jj0L_^RHr1^Y6GU7Wlfs4r&AC2yb?7 z&`=oSXXg~OG`SOW@+M5&8Xns(#G&vWE$!}lJK5@&<1=$2s(%!9Z7!_;0rFmA=vIVL zpH_?r26sd%;x46Rv=Itgq`_|U+Pmo1=@)}m2-+hR$ZfUWUE8%c8_0TdBLtgoFdvEeZLm(Hv}CmQk`sh%N1%>ebdAwJxP|-O zQmX|`R9J7Qvf!Bw7hqGOso3H2?$efqD8%L#0c-8Driu`&1FIpc{)z)f;NW4!hqqqC zU&rQhp;e8h;!$7$))BcnKt@lo6Dft%o?qiT z@yP~z?kVU3RoqJl;Y12TGZ^(^o(MwoZOO(SSx0#Pi$Pxbs4roovnARy<1!~z36@_z z<4SogaQq|miR2;;6+G!oF?7K`u&~=O^mr$Mu#D~52z?HQ=?rcwiS;(iWRaQtQaG}c z>orVo89fL+?4@{8;CO`E8ze-dzTX$~Q=Pk={{WQ0FHVJ@$rV(wMvEj6CM+iTq+$Q? z0p7ES*11U@czAjyZ=#Eyv_eMA{-Uj5uV+Ix#S8FU*j5f|9iraP)6dOV!c7X#69)KP zX!nh-4F8S73#=3o3h;J5e5>{hek0mq>{lVg(c?9wlkv$%7IshD<~dC}O+;U0@^+j7 z{4+W5Nfv@^Tm<^r(fc0lm9<*|aLYx|r#Gnue2~|ow#;4h`4}ftt^_Xw<*zTwy%8X` zo}+}F_QM$_h-~D|ZS!MISs({X< z$F&IpJ(C*cNd1{I2(@kqeLj!}Rl5!U~eNN442CR7<*N(YHY zgR~%&Lh0g5;>y>9W9RE-%HJcvy2L-e_a{=mfVu(aNg;hNl3bCSrZ_P%bi|oZ^kEA6 z%u~~kDQHhEBFGz(bu;{|H~uvt*sOs{m*xwbcC$T4WW2rgBhVPJxc$1au)rg&zCo(B zluqHPqMnb|vC^k0i+-MDy%tkQ=obi>M)x1&yMrElvSI$X9KDT(zVOYB3eKPhs}MK* zdQkUR(C~XRMvnjWLS#n@MF-!*#>+@MCO*l)c2YB%;l&50eP~(kvtg`Z6yVwU}7FL9loiE2<#S?o0*I zq_A>k+k=!ym$*2;YUDenmfpVoW_nw_Ugq#E6v0WZ*dKH_?YP zpI=HMHuTP>dz4nS(WGVb>!iYk<4FFk8^n>8Ms}PQ!En1dnt-gYlc*B0bSlsKip=Ze z*A*Yqk>6+Y8|~MjlW+DP&hbM>?_W3jPqG0J^gnntxd3GSVO`wXy3* zA))+=h<1aWc%lfBq~)7i?etPl{xvY8w;*FY&>zX5bGZXh!QqkJ1($guvxyV-9fT)M zMm@5d$p3eCj5l$ZKSwAXLOo33xGRUmX^70XhZbJN|MTk|Oe$zUlAs-#VkpfFj7Rw( zA_CsY_uw(yWseXU?jJ4DPv-a8sJ zryx-ICijlMRupkqClV3y2SEp1v7uPdx%a_R_1>eMDfGdpa^i2&)~aB-7?9n~ZzOU= z<0hSIx0!G2ZlIsZUrGy%a4;&7OHt3G;7kK+Ens3AwfkT(g{ z?|tBg5^SwGx!t`7muX>wmYF?#wJ()dTG{VaFtbAhQT?(i9co3o2-91_z-@fnItk14 zi=t%n-($)F-}HnNsq37Q0AFPUALT5F>VDB~O-{_j?FN~33u1Qb$fs9_2+^#+?$S}) zW~_x?4G%`pDo2U{_HySyay{r2J{6o&7q!qR3BkI3< zVYhL=Kw&U0{(AC?K}j}1&Pdg>)`@!gN5zbv&6 zNQOmqh#=6@NmGQ!tnmfP%v2J~s(IDB9|+Ou7_pS|PKk++Bwz=9tF&yNd52r-t@KVA zw?vr~dx?A)X>F%=mj+4Xrg7Pig(IcF#{`7*@|llo@285`<#a`L4004g{!Z(M!c`PO zy7+Z51E+oufR7-01gMPE*h~crzXNb%S$7OeO;xGgG z&;ubu*8BnEKspazDL=#PebuL$&$8J;QxEYd;av!Wu%*b3W+X`U;_JhjyYU}zw|w@N zU%nt?-}#kTG0&CUD$MYI#|1uls==Mc!AY*}pKY9PFBB`Yk7g|rU$){EvMgLyKq_oM zQN{Q(*tt$OKf6QKa<+>zY<%(3nDu0{YN6}S{V&a+Y>hlm*EjrGQWMc;0$>ZM?-NI`(+qiPqn7{{Ti^r2>6*7z02JuW; z?zG=?pxlsp$bPosE1RD7uMg`2_2!0l!O*{iwim6k9gR%i7B+quBgCgLqWO^ zUkgMF-%i`}Gn5zVX;`foyXMiULo>lmq6|8S=;LsQeWQKL8!-k8D+4el&z`Y)@bvz1 z!rDV70v$q~+1o*q(_|1hm|mOl2uV#Jkg?Vg@0q>%?DZOKRAt+2eA<@v9_zUGhjUdC zTeAt(P=uXBqby&E3G5AeZlcXbF!zq*3Z$!K59je<0T;PqZ~v&y!vX2!R?B z)YqHUHcW``nd@i^i|V6I5^%2I1nF!t9X2FVNqNJ<4CF$i!&@c&{QCxbhD<)ih?dpF zOE@HLSgd<uywT=h=sSI{Dr>*sE?bD||y8Lzr@*vOWs0XhapPjh{q3V|x54YDQK9z+yH(It4_~0^a+Ga z%bdr2BWydXm~C81LNx_0e-#KH{$rKY!#en(g@Op%yA4TQX^C7_j8fi-xBkTfL?7Fg zg?LmIC6j8^!$U0iY$*+ojvijIcv6x;KdG14ej4%9sLyX45GIt?#6P5(eU_#JSoZ5? ztxmNPfS`V%0ngssh9p~uHnIRM*6e60R&qsEI$nJ!i9gu3rZUTmx0a%Vj9=0d1@+~) z{Op(Ec~b2%X?wZJuyN?3ERn?=d|mdEX970L~S zACjfbn?o!cv_m*J#6vm*2pxPwDqoyki~ZpfLS&+qcOzuFpn^!J`QG`x^Xmq26}aXT zVXp5xcj=&o;&B(kOg{=_Lu4+)U-$Ehsz|Bm9B4)!6(^fF&$6}|wwuqi8{%Jo3OCk; zZd+78EH;)F?-7|WOdvsBk%_8Ykz_4;jjZ@~q zsn<(fgzSvCcyghYqWw~FLL7&Pp zd9?$$gMSPiZkjnvh)!k(v=xPzVkLJ&fQ!8Km>&JCX?L<@t+;u{)#h%3V#$Iau;lwdV;b)h5dVyR*i)euIK>uWrZG|>2IooS+mi;o<)Gd&G zbci}Cf<iL+u7-G1XW+jcAI+J};7hPtoXhEX^&yyRNRTKkTj>AL>lD?H^cIdJ}~e zAvzTAviP?-jG{afT$ov{sVOrh z#E0}+jz~9l4^7s4aN~~O@RZ{7*;jsS*b7c?tFyO&<=ck)4QjCtR5b^-g$v=j_%0P} zFq>~`OKw}Lz1PIbsYv@TNuGvVdY&Dx46&a7+)mYpb!xM|U6BcSyzu$aj~J$d$(1ry zc^vFDPjYY&|K7C#vaR0PvnSHaKhNGKPiecE)o-0==Is~IWnbh8Tz;B84x7Sif9oSU zU7MnlwIR=*P@NhvX>wMUUCX4H=*{%JT<6(b-LtIylpNShd0Ad}6jPSA*>du>W|Bwd zjp*d2)9LW!d&~_(>nr#!tQvl_=_qUZyu&)&;RKB}+_W@rZ-`%zKNEfw35$eB(pP;` zDvuAOE5Z{YvjLN9j?#-{ITW%5CrkiVr{eEoCPP#YgPP(GnQ4>xmGnW+*+&Mm@f`7&M$1P>-SZt5lf zl~pwq+dA97P-C8>rr+ET>zfVaf6wq)ezrY5icQk#TPZKsMCp}LE5w7g?UxEpwO>qJ zO1+GeunUK%GlKoav_F}+_R&*@lZd2*NdyhqbJZTXgA^h8!Rc}KZDu1mbI@-88Rcaz zXa)_~uyKBrwqEubRs5PtqUjs6HUg^~-&7aNq``DSxb%=&*eEjWta1Y(S0nW zd7Ad^Pk&fC_I!%Tf3qtxoARq%_R&|Zg%1^AqjzKu(y%xpT&VeEwDC)adyK(?-{9HaviJ3pg*w zyB4VPSiTIw9Tc6{@Dvss%_8BBXm>qP4%#n^RSjmLu)5SVZ0sG>I*pDXX%}uXh{F-0 ziPD;97~n{Jm0|^06(gjje=T9WRez^2;w(bLREcD@!#ZT>Q47NV%SKx&^`{~Uq!1rO z&k}r*#ub_qwhf zamK1D!m4gU{06>A*6g6h%68rhpfzD=q9Ho%BxY+{uIerVQZmy07RIGot|t_bX=I0b z-eXP2VlBQ?yg5lz9`PkVmCNRpylfi>rzxC$zx`8}hv6M=LEjPEh!;npcXM=CIA_;B z9R~-l){#p)>9N)J?@CA~$&zL_?qr=m3gi4f?4@Wo6{(gR*4JnZ ziQj|cnhA>)9V5DewI*y^$gISJ_8`}Q*&cqsUA8URN)E@Ji~5z#L)qWUs?FI3R8 zDnIe*U&X3`=Ml-)!$z>O#+#|03ihCiKacdqjBK1H^JwMvw@&1GY3k$KGZ;OFkR`Lg z-VxIY(DxuXnS;DzC146L`B*7zNl9mYN@>&n^4j}U!j*l?wFwS|shzJJH!WiGmnsJ% z{Jhgx&CQvu{EoJ*BaXWF$emkfZgV1*i=8cEf&oF8R0?&>7v6l-KP(FHoXac?WAgL3 z)QEvdK(#A@ERkvjgLlsz#(N`R^SLMtRiPz9Q-rZKQp6uNQUViEIy%f4H55Pn+XlXQf4H z_)A&*tDbuu`K&}{ZXi=Z`NdMe%rj?g&G$FO|LSVl(JQD+w%hZYz~VyUMl#30ejICy z>`6#!K6*NSwB;6bt2?Bd_0;iOewzQ#N9`#dnSH#|$LW)I9u%BJ#cUGH9=!>Y)Yd=e zX?G)Jjr&|dbK}Y_z8?eXVN-rTj(bW($^TgwcH^W4Ze-vzNx-x~Bp+{Sn5jSDL!o4u zj^Qa`gCd|vI|L^(NdJJ=&PhNKsU8mm^AB?uJC!e48Tvs7KRIqL74RG*KAtePhaqQz z=KRi%JifJuguuy!5_*leoIPbL$M`g0RqT+26(=Sed#~YT%hR9r)2{|YVAgkF=!6$L zom|;_lbz1Qq&E^hHC*!+ayJ}ko%4iDy-oagK6$8A^!W|FCOTg6Sn-zynz#XVj!}qZ z6S{dz!VxusFFsFBlf=K>m_M~Y-QSXSoY+JL?BPSr{_z(5B_L0J)-Uqs63M0Q4Bu8w5HHDRyBy>O-P+cnQIyz~rVuO` zQSGuhj^$%}GV;rfA-(JEHib;odhMeAZ`;Y=wtb{I!XU`aw`>F+y>+wjV^r*rX6yQ}Drrc93B$z1Tc1ja zGVRvmXHZ0(hh`bY0_u?%QrqUSAy;*^=-V61X3soJQYVKci;M2>>RNCo0EM^4->er+ z9B<$C3C#Yrx!E8^S1|5gJ?mFbbRKf#bb7v0!+`T`_x&N7amf_0p((?-+f;n;dqjcy z2WG0E{O4l%$Rw8xB$XnJpI7RzsZV5Vop>?X$*$)Mhh;4gyJQQB4=#>KJCUDnCrInA zeU3h3I0dUmwzg?M&tq8e-?vk$vTriX)~=P!#SI!6w{3JchSVSZjAwBirdjZk&Q_V{ zU>T-JeqH`^Xt~e1?$Fw>p?D;ull54v%@0uM!wZ)rmo=B}OHs#n$5%YSTkWVzGsLCd z%DE$h@Bo2^Qb|>|R~kvxdV$xIKYU)EK-5+7$xTRsi+Zl!#kc#LC@bX#D6M?MF7HHnu1MG&2e+)A zH{!+cOS1_z9hkk&wBoL~{5vB(3JRl!j5g^Mh<~-n9OkZsec-teJ z5{ptCX}5bG7Q6j&%CD>8+@z53txqqyaultu!By693rA1c=^~1&-B{Es-%&t@6JsX< zBp_KGd!tzYgb(_K3jCGXumW>vNdh)}Hv@q1!cQ$0qhGXSfO_s(K%Fg~FJOnTui$*O zwI!dC(CA2z;;rgVXLd73Izj#Z_Vjb@b?=*cfodyT*hD65eVfK|>T7wcNm!ud?6>Xv zpZhe|NiKo7fS6z5Vo4|9*B-Ei8%qR?m*Yl&9)BOmz4}}7UcG(BpYig-twMYcO1hhh z2d$W8)?wwZyv?I90HN$U$rwYx82Of(FO_u4gR0n0z1TR9mFIVS(JJ~&Qxez5c?g(( z@dOAon7o>vgmb|mcuJsMa)M`Byc1~qf3bkLH-acp;cTBcb)e;71oj$b3VzJSWapTg z3T*~{-x4(dyT^e@@zg(02^I@js>oWr3Y@Rfdh~fA&+B+b&Jz3S0BOFzH zyEUZ8QE7ycOl(xvDM>**+WBH+!^j0#UjPAvGnXcl7_T^#?QuWV*wbA$+2HS2wLHa_ z+QCav%M=H!|;JgE*0- z+^jl73GOU++&d$kKTgEiT<3MQfT8sqH#ZdCn?o?YWWThetA?-JL=gFTJ7C07_L7i_%^w74U!`4pKWGkG>0 zb_^q7g+u8qp5*e0yQ0IdMVJ{jUp~oErVsLjsST3v#7swi;BZ?8&Q1cz^zpnOZT-`O zh!tt>dRLD`7`h`29twqORNE5ZLOli|Ib#Q2>zd`5)EL~j9332cLpBC3)cd#+?{l9% zY7>m7f(}*?iTrf*{0^xIepsUcU82hqK%P2NZ|Q*y$ZrI%IQjcg=kxMx3~l_L;fMKMr-@b3c~ zdRik#S!=?vB0OcEs29;bc_(IqjjeE=_$}{Y_!Rg6UBoK*W!L=|N^rBjk2N~wxmcj} zTCh!){jy}T(;@D46M?W~FJai*yXb3wGxEX6+67q2e!Dbub8Thh+u4|`ODb6xCN5AX zqeYjnhnt>yZ?p+GxYkhj=n9TY#5sMv2$uZex=geqP{yGy*lIV~Ph`xT+C1X)C{dIu zGz%R8i%b3bQr?RHNq>h0OJy90obmUK&%}x67cUz%4zd zK~je9>sy;nDJO0;F)0{=z~6X^M*# zdQpKx(N@u~fMD`-5a|c;aem@opJ>F?6r2c8q)4PZqF#J2bLEf!oNbqVMa%R&gX7h`r}9?W6e&Od_6iWt zFCg$q3C5=GBs$nmqfFIoy|A5c1hLtE`s;l$_ZMrpW|a!CvYybnsL5{yvna%N%x9;B zJ-m;3(8V|SM!=P+H(I&XFa>YUZmUjYItxM(SP>??sj-rt!q=bDRe_Ki0JGl|5PC_*YVFRj+4RkiDqUvy7!OA%z zdqu@7jsht~M|^`T31P)nL3i}}!`^uoV-o_wUi#MCa^WD<1RMnp-~n}p=P20r<3cym z@d`}@N%g*#)9F3AnQFoh@q4oax{bW3&B6~mzwi_Gl3v1dQ*w}8@0XR*(!_PvN7Av< zk7eD`WJ?QKOcZ}%Y5O8VG3I)ig2%s0Y)A)w284iukbToBk?1zW61^63xR)m>=fz#w zfV=m6_58l7TIh(vg}|MDUIP1o@FWy8%JbHC8tF#7&VZgNC@ zAkg0Gu8qRf%ULlg;X7ILCB>ZyHvo0~N@6!mar*mrvDo)gbr>~eVGE7C1$@(_$ zp}~28mi#a(l!)&tat7Q;G|YHv?cvE-3w{3CR@UhSy9A z6V~#NWy%P*K;V8K^XE1#UIMdBY!_j8D~&dR$IO&My*uT()s-7fl%ez=NJu)wd=jIb zJDA|LRskPNZEsOnt=&-X*a0nrRc~?$TElo?b>mzs70r&%h)ZMAi!CN@iHU`7TF0^u zZ@u4=S(LOf{M_UqS^*C+sx}iwL7X<%cezJ)>m`M!4+OHrqj?juHK#ygDCjIxZKRB(ks{c z@Qt~k;0n-L1%a`h7!QF;#hvf!ABcv*yQImoGP@tsQ6-5nI2)2-!HM3MCM+^;*2eFc z`8~#VW-A`3a%$Utrwk$6c#k9r^cxi1XqEP$;9%GFR&~I@?j4&zaGm~C4-qNIRR1Fz zQU$8Ky_C}7vXl@M#}IqZpwc2_iuOU|`k+Fw@}e?_3Ws7by?VDyID7}mu#)?Eidn64 z`?CTlHG9SDw^|wHpM3T@{N9-qdk4Vcot4TkxBsK}TfMne4O@{+xLJDkpW z9OmvLE?rWLb6`&+)v49J_CI zKVgz51sexc;~RL0MPKBPs$|%2Q`$|rOSbrF_BCqG++~qs1G2k4!VlLMOop}dmi(8m zS$r|Ls3U!7I>DC2j8Dtn>dJ@5A!V)&0)I~6 z!vxSbHB75M3B)jV!A>uu)BjqZ@DV$#(KB%R7MXIwfQMAqx5*~4Hi9+?Ws0u?Ke-<~ z*Zs#bp#%&viq|EgWbqud(XAVT~WTjpxvF_-DJ|7X4ZbP5I}(OCE%#g>F9TJKOTn@ z($Wikyi?OH**a8NTgIVS>Z(2}A2|&uRs0=-CWB{vqunp#Q$obFgiU$*NJ#-yK3yUo z>Aiz`+ezA$8l8?!%OzxoqHrHJnKn-Q>?~2$A-Vk#*X-dtrMRLrOB?Ei5X?Bwuzzk* z91%paF}7n3H`MBM{5&vBDJuckO#DKG0EpG?I@`=rCY?|Tm4(K;;Nb`z7n|8vxZRGO zIXTw1T(-z(h>L9!bB7U;mcp0uK0YbC3pc(u49Bcfk5KhA_kC<~P`vd>!76&6YPg;# zY@~?{a4`OyxQ)b6HNn4s1y~w;;t;n(jw$_hc#PCO^u)m2z#>1_2 z1sNbY93nv?hmT!yh-2ahuM+o)Xww@T>$OF%cjuffyp7!8QKYue2ucmZEI-wBwlFlg zaZ|k(`M!f`!Zfy{Y!M2|DJ^p4+-zUA&Hca-9 z-|+hvS?^7p0P3w{2paz1_WsJ?_&>9rzvrIV;IszW>E0{I`z*ng>=}=aS)3&$Bow$|nD@>6b)| zF?fJZrgHcZir&L4;{B7ghg6MX09k>#urpWQZ0K=4q5@Hgc#Wt*U;txnaq?OT#Qxbf zCX>ze)zyGa@?OZK$AA__>bHhJtRSlzt6HHx#E@Doyd|ck+a+ds&J#Psl8cfrc5EYb z^J}>MtwcwPy>KDz&(lro{+IQWFNA=v0V;S@6yi?cEc;oEiFttDSE0*eMl6VKm*18< zWDx#|UrEupmtPccIt-+Sj( zsT$cKU!R}fde+ewpuO;dv5TFHxhpOv^ECF`Yp=>Mw%-I>V^So#OrcWJ<~@sQnzo9? zSzi&mB*Q10KGyI5L%pUagVZVhCoWl~0{cPz3e!>Uew|??eKdwOr6p^6_yh>-H1Fbl zL#nzcbE5Y`!X;-bWel^! zNsqSMxy7g=dw{{i>+djeE`3pNmmZVyWJD&pe%18L8!?%5HdM4e{^kphrHdXF6UH&0 zR$ql?%b;(%6J@-?l_#_b3Q@`13`S9dY*z&8!6(9G`sc=5C&JbEClr6%Xb{AmD8an) z1%oYBaeN(p~wTi252GX;;fX!pXcbmCXU`Lc2Hl&my)t&sd7cfmz!tEtv;Y^S}I3HD{E zNL0dJ^``K*<|NzO>}6@uMEuP!i!p%?af=tV{5g(KPVaK8|Ndx2u~PHA@@dvR$iLl01R@yCahGRAG*58`@RQ|I$!#-~5@4p4dLX*204gY>hXL zE%km+5)m3RJ7)U82^tN^+yYufpjH&1?{ZW0yFeovrKr`f>V&%R1#%z?fNx2Vp_UN1 zCk-UOnNM4PraYe{8z7vTx;C|f`#@>LiVhJpc359DJkE?^=n~aeQdzW7ph;ztmq;Xo zB6@BDvd4yN$craOMO(dh{^NlD4@=)m9z6wo6LN&oS9YDxS#{IXERgpJtz5sAaY zUvJb^ae|GZER>InC#o|y$$W4>>>`dp6>LWR%I88 zqZkhKcDOzM>@UE0$gv}e|9;26isVWMQb3LU8G!Pv8u#iaFYhzIy$vijLqED@%qk99 zX*|D`AuS@x2u!%vg=<>&XiUtk3#!tN>&ulDysR_J<(jzS{(=8B z3ICbG)k|<;XeK_l@9(TJG}#iyZ$C1r*Jl9lfyeU0&>6Sn@$1a!#~h|xC!WxIknJTr zyqO=gd5yp@mkPh=NkUQ{EL1zeEQ4-NYlxctKSt)yMrDwIv;PDS_ai~G=`gNP<jR;obSiR{K@}5TQP=WKd%94SPD0rD>*+um3;K^D_j2OM3 zM65{50%8y`^bTv9B;iUw6FE%kD2Q6=Qe?vw?EH!VMNXC^43qX9L^s}_U$Do^^`hN_ zRM}qQPP}gd&~vEQPD2M!YX2+7>wht6yZQh+5|s>vUq;(S&tTaV_zavEKxt~;oWBFY z7=#M{Ds-~2_ooQ8S7fwUp_c09OK%8G4nJ_!3O~B>x=j?$&MxrMm zXPB{`2cWuOk)Y?|V3js_n*NKjN9t{+P{fl8Jml+%8q4Hh@bz@9D{$s-+3kSCQ%L{w zEfgNh5xT<08j7rtX}#(;Seu0h+Jo-%OW%oKakAfIx#TQ6M6LGzgPU<2VEUp zFw}>Z4pSj|L!Akb$tF2 zXk(Zd=EwQrtoXqtd1>eANYjIuqI=KF=0zz&YuYcGTldG*A1x2koX$m%KmT#lA6e@T zec3p^xVJLGgmXW=9UCK+PQbZ@a)vF}xc}#={|u55iLk!<8=4XVbo5!t?QI}YA4JH# zqyhIU6AM_jcL~tPw5C_)$N2}_be@gkC$6mZK)LzKG}P1WCvk(ZrGHIwmtIY z%Kv$K;Z2Ad&p+e8+7uy(#A#0h0JJT>2V0X)_lR+WkY^S_zdy57$Iqk@$#XSSSc^NT z$HVU@gP7bbTKqmD&ivr<&$k`8TIj$0KJJVlh`8ZF9K82IJYwew9I~erdRsQ5e4$Zk z8+t*+Hc$1E(Z6;*W?k8W0uu5^0HCj;uAu6x+!7&0$MN-j3*TXeS>h~Z3?oHoN?=Ne zaQIg1;Y>YnrBH9mVjyeOJyvFrESuHGlRnUK#Nj5-Tea zor0ProC^RK9SL-&5u*ELV_WHgbn)iv#u<@VS{PkyrcLf}6ri)`!Xos$@7y|=qjBky zrlZVx)4N?gY)c}$WVi11<(c%@9|rAz*&8$ml#~DJT`%u~T#?wg-ZrXxl`TbRN^pOj zVm~TF>-I--f5<#!r;ARj$u-pi=ze7g^_!e5NG)wmnbh2uvr&ND*33**X2FqLXJ4gA z|2@PV>=gHA{_`yq4`eVceqM)J^wPEQ?Fmp})Qxogd7GeVF@%CaX<<)9Bj>Km@# zFsFiU7Z%UdrHf-5Ce{?m^J{{Dwt0f+e&zgDsZ$`E5!nHPrx57+y`n-2c+=-J?wwWQ=tM>*Ps`>A4mrx@6b0l@4rUap+8do&Gr3<=ZvHn zzvEr|J3z}fjM(J9_Ei~)`UjJB;!cfemlwaP-~XyJe;=MKUrpqOLJ=V`d!b|(5-TK> zLM2a@apq}BMJ@jy8AgjhD5)X9JQXQIGdr@cb5fg9(5s0)^yB(}e7$v4lxrV0I*fx1 zQiF8QNJ&U4-HoImwdvk&N*bgkg(0MoR7yfArMqDW0qHL38oJMed++yszjMBI7Jso8 zYq+0h?)cr;?~1L(hR>TP+jZ9`(>rGe%Wk*Vr_)2(@_0O@?<8ZW*zx87*eiMHs|a4| z1blK;*8f7PAwc1mIj>4j4KO`NqG*H@#|<}M(_kz31Ve&ww;w#?yK>>UA`$N$*E0H_ zDdO_Z-{pTu`dO5BZ6s}Zi;v#NNqb<6eCO+?Ku~+!1I|JrHWAMyMWXu8v>po>b*FP) zk*z;-IXk6S_TS$ZsRr04e}o?ZBw|^}XS$z6n>fcITV~#~f-=YN>E)f!(Ql9M!y-eO4V$ z#K9sm9l6UtlbCYf7B{YCcx|`8Bhv1ul*W|;FHKU8C^c?#uhXq3+dii@@<#}w-^LSk z09T}=NPlNj0xh(g>cIj`2sptIworG~Gk@vz*Q#ehrHC29#e4W4+koP;HRSbLNF)K@ z=0B5l5fNkd!j{oEok%_WrjiFxP5@3c=p*?FJOQ!Uj zg~ecgGo3l@RS}m4YUml`278m;;Q=|IyeS7nB~)zB2ME)fWCm$rM zM_1dha3;0}YtE1<&Y0l%w#s;G=Dg5qa&GMV?3i+@|JBt2R>Ky7|1%!9N9t?3WK@@XKgaC4 zIiN^lrvS!=?Y(g(ulj-s=g8ca(sUJ92?jnD`twnVto{af`;~)GELPXbNPIPLr^um5 ztH)rcfp>$!Hd*=5p1dw&D4B^?bt^C@bm8D$pajMEKUXxDT-Jam7FI6bRl9D(V$cfE zXxnXV`^tfs(`4WH5?2&qT|iG8;9>D%U&xbgaL)F|plK^qV)Humo3O{eNn;nCt6L%# zDjV5lQ~dRfpqN~1sN$7ts`PG_IBa zYv^npNhg;UH>z?F6Ch~Amrc8PfgbB?#1CQ&gP(}6=gk8s&L-QKz93K0GP2|(phE>r zP?Kwz`n&(BhPVLeG=E9=FQGA~wJImw-e*FbM)iLJ_OJHg9xwA^K|ugl2+9>d^pi$5 z))=|6F_m3JUy*C23T@xL73neU77S~yHLED5C1BOP5Sj#FNZOQ`XRA*E_+JHPVijJZ zaX?~If2~_f`zB?-Tv9C0&u+OZ>+_YqIYXfzASf>QN|CL8cOQPC^7*E2_c)u9B={eD zRCU6z$kD|oW?na;y+=2fdsHiQMc<`(R9f9({xMHt{Ji6{-hI-uG{rFnMn8hl zhkC+)>G6o*-y!_Y1A6SnBFAvu4>7=>=e*kpHb9E9m3<4>cYu73+up+3a0kv4udOdt zv7myYt%8GY$9Uc^57>Gi&yg%nIC6Lg4MshG0sXC+co|BQUr0AQMzFuKFF`iwqkB-r z(fGLNpDCv+0_MhfT^i;{gj}Que71+|rg+i6r(C5uU29w@uge*#GtNX(!=ftv2vnB7y2-)-S8~%7#Xy|szQtCQrY)oA ztAHuxS079JyM3uHF`gg%3u-#`x?cYP5J#yC;iq!J?ib#>`zg}G^5{DFx|~k-hK|*H zgHRpg_okfyEltp{ltI8^VNwJcSug|7aNG<(!$WppQ;b~&&bP|XNu)9cT0JQ=fyu>y zP!TtpTx{p*6 zccgwkA}c^!-W5f|n^@9yBpLITa6+r6tRC}ff}bn5@x5{8rIYsL=Tg7`&>9?@Om=^V za*)Y1f)$hKId0fgbv$3L}yA)@)YWOY%kQwvUW zE|(lm&k`|&Goh6r$R()N861;DVj-6)qu&i`rAU(sdTk_j@eSJ~0<};YXaki1%>xIv z+Jhz8zSU)@UEZevJO=OzF$poX(VGp%HoJt^OA)8QGx_?M5Ek7Nk?>hb`4l%` z*y|h^8N=;iPI9b~1jjn)Weo`(I1uq(2*AQcb2DV`AItf>MOc%>X6R)jvRW<~PjCrZ zIy?Cu2mG`727tizhaRVxpGbZefiN&z7@%dvcYO_U?Ff_)Fn((t;KkD0Ca)DtW@#lj z-+>dpimWfTdht{Vc&EgNHy;?)hItfz@w=H&@ngKjQImwG0){)kG8{bY9GBs*;q5Vz z8$@T)}8(PQds65RZ2*)*Cji|Jj%0fwQryh!p~3Ym>$8Z2_}ob3$#q z=zgtP)9H+J^pgw0$jSU_Q@FZs0Q(fHRf~rlsa+`gU#bL`8sum28PrAr58{ z{Ba@;mb#zU-G(SL!%@BOsjc7I^LlQ)EJE}au6xl7m*u3@K-37CF~)!8pa$P3C>E+w z7kM>Vg=Yps<2qptQgut(KjM#iU60*^qcgzXC!f5{cdDrB(Y;pu^`y4 zL0a!?dma4PGT{Mlg?@x@Q_d8t;J>GWAtDQ~eNn)F9*z8swlN@@GfMARg|i&EmKpTT zHOSG#ppK}z-C8zML#iqqg2+D#GB6*zJdPkgAbPGz7L|nCZjf#;?NMI~AAyf{W0i+e zg?EuLAWZFC^K-J7VhB*GJxNyxR=rkS)C{xf{gh-gbIlZ8(e(=17rOF~Cm{1!dRlts|S6l(Z)8lm3J)bG*cL&=9k5K*n|7_Ok z(I9ir%Dv|_sO4&{`~(LK3HGs`j-^9UkU97;ERYLl^Gu$fDFns07H2s-hvrAI4%(B?@0fSb0#E(#k=@eRcH+VQ6T*c}XMBJ1K)+NuSepecmY3pxLoenHTU{?Le+2)%9@%jN^mxTw z)?*eQzjUep^V1>V>>U!Q9`_V6*+S&cy~ON0UK*EUl44)3SvOb`MiH7BkZ_V^LZ zi%-)4g}{1sFG9%mzovZ9fM;?NvSeUkSo31=mvpJFD98g{8wj~E_gJXXD==h$3a}I! zZnwaa1a&5Yy23JbTMC!pT@zR(tWjL{_xo74*)Pq~MLdTEuv|o}CwOt3uqO2g5_<;< zvsry~-moysfO1|E#sM6O731uV>!)rG6KkbPX85O*h3JR(7rXa<;BTt*w)HB5f)D}( zUvSH<&tVgBDkee2zw{J6IZ|WCKVJQPSJI_{ynOiY0-A<$?fzPh`k2ibnrVmQQfUiq zepUJhECbZYXeEB|8e$lYx-SU|xt{})X)$kp`mX3w0+avK=jba6<$D*4ZK095Dfw!d z1Ad6+7-sw>SjiWr%3%}Y!_7_VSY9o%cA^|6TIu*ew0e(89t-oq>7+`|#7yobz9?tQ=(4ZS4 z8ZN6`Wc`1Ye zr!(q8_EMYvWWz|#(wO@XaY@M@Vh#6s;Yq=y(t^=jMUr99WVUyL4PjnDQYU>5Q$mE3 zIxVXnD}J{WZb)ypPK^0n`bQV7#j;vhk+fE=6}C-W;u}zafhy{H!Kl4gTQ%DT5%U%l z_YhH2HTQ;%_!)_6L;8b%C+dF-YC*8;@_FrJ0|Pe50_N*ZvksH@%>HVdIAOteYl=zc>?vj- zfksdmw~OS@W9}avH!()Nc&731YBI-N)?*$u?`0Xf_dfI z6Gz-c*$<_m}?+XO&=<(_@KD7gc_T>Hs`zj|Ghf6QtEM(GkM zLAKmU>=gZ_6#l^adlQbA^>@jQOL@>-SoU6;b_U48pT=u{GqH5w%{{XWckb4&DvjJe z+&oz-MjcOM@VFl)bP{m(nSJ0}TOoQ*MjtEv>O+W<5!59Bv_oi&V;-$s$+W&S`MI2} z5?5f9jjZa3yhg1t+`Snl0#w}C+EMIMcV6Q~_giiY>9!2T-;ziZ0;BpS<*$f&F$aVZ z#^$Pqgz^AtZpBpAP}|WK`DbNGdlWA_*ouuI+Al7%u$##jx^AxY@ds9U(ak2(*R8N2pNBhdcgTW)m3OeCi1(c z-A*K-|2I+CdplRQ^#8f70{k};M_E`F!2m?WTqCSm$Jl4o3NgB_lrKRmfDtS!`}JZgW*dEFnj{?q+>T(- zSCG?BbgM6aJlptgD{TIYK5O`I%m%n$Huoka8T(GIM_f8d zN>`4jFKzzr5~T4%{%8i+0Djt5;14dKS;g4hL{@Z72sCU1Q9(HsBrb-NL00 zAsv*6F#o)ZsqP9-OJq(Pip8yI3*fF}l@=?Ncpyq2Ly}D`#<;cB>X^X@{M_4Cc1z2|WMkJ3pu}N)y)S<5^_I{)f+0-x06w2pH z=H$Sw!ayiULLc(^u#ZdQcFV;@1w7|EZrH+p7mIB&qfVbOS2e9lFe)(l-2@`nK3{c` z(%@@@+K!s$dE{9o+F()?-|(N|my$ykDC}pdU!)2`OlaKIUk(TTG)IQhbR2zjUV-1f zws_D38%PFsQ4Y8sg*F%dW%L+>{4nI5XYA-K?u@zTgp`washRd$?wmSSkzc_?^t**F z!L4R^Ln7GCqFyJuwt(*^+f*Wj+Vdz@Tr<~#=SHSdCbUqAt7nElz@GxuSg?;sG(uE_ zx6F+v-rjT(c>7o=W~_g)0Os9^a_2pcKCq?8pODJ!q>_4v=%zZ9SpD>*+QbvDt6nTO z`;QH2lJ}UFf8Wof;8Ff&Nz@pfmjEQE#)|3VaIwSETIT4kbwTWTv06-8NPk=Jdxq=x z)fn*u5)kYbX^xWgG)X0HN42K4EnRM*Ip3^ZH@8EpUs1B-n48Sr-}%_yOK^Qc32E8hL0_9A5W}Q&+f_wY!H!C3 z80UE9g~C=rf|1O3pvoqZ3xuITNF&M=X_j5+=X zncXUAmaWXh!#BO>%1H$;LuLlbG8Dy9Xec&>dz#=Chep=r=eK>8*8>9$t|;3*4zH=o z?LI8epc`mFBJ^>}KUEzsSf%s&Xd1D&UmB56vvJm-Iu}i~xl*r!3^gzEu21`o&EPPC z%;%V2ZnFk%weD9gA|CV{d<>uP7l^k{+$YB%quJ&IFv0IUu!i{%^YHs4K*#@1Q(aNpPnSlm#Gx3P~P@`8f^R zUzX06``w;sckJ}G@-%ksmTvf9R8&o?ZOe&7tT79t8QZJuC+QYg_{44&zU-VSTXfxi zaXhM_+M8Zpej06DW4YED>v`@jc=?Ciw{%~!l8W~;6?;Nnk8r%+*c6+v14a+|w4Ceb zyO+yh&1zr$9%4Brn!Zmk%~?+Lakr_uu4RUqyD7W8F1H+vvOBAxYp@<{v^iNs3LIXt zO5KQ-c?A(2L~G8?ie;AN(`?LFTe26km>o_cUk6@Y9yeIc`z-sQMy#DqcT3=}c+hFC>PH?NN+u?y4-8V=>x9zh{dY*%10>p2Ca@)nyk)lz2zRLb*!=E z-9GlM^;OL_zw;%kQ6(uksSANYVH`UAbZ43O1aAYq z9P&fA5ol3pRIoO*j!^~JhJ6zNnaLO;*Rl1GV$f!F5gA=%@`K#eXK5kKFKKO~o^i2w zc2OpfpC^B+`vR!QdU?9|YFl{X@!6#vD}va*z!YTt32YY5lQhW8QO-WThB5vFo_jnc zu9y6|_m&L=L_ef$3HqLLTsFbu>}@A0cxD`9Zl7GH>euZIwNmZ$2=kom&3-{()$&a2_O}{$Rc`Yi&DTg> zoZ3$=kINmeq@?amb6Uw{IR~FTU>sm+1ScxSIJa7ZW>-~q+}r)6xkw?-G9n7BZ&>^_Cqt?Rkrs*{!Bb_Yqx=126H z#Mt@a&v_w@jX5t0)ttY!v^lhCX>atLB66FSqlB$q%nCh;Bw{d8z&I6?8w(lkfHpg2 zQx1Ow;7Kg-Hce}1151#Y-4M_`bqK|$DSQSfsZ^!Em?(nwT9S<3^pqA6KdWiiwi05- zxF^!1_{H6U!a}339*5$^5s~{@OMHcVMc$snTrkaHLFKlmLb0$euZJMf^N zU8Y=#$IZ4;B~B(!ZFSqv&Rd)w9j#=jzTEhiS0phHRk(eCX!a1WTx!s@2oviT>=wIN zOyV#s2OJ5_6VzUCtfo0~Ug8XMGK>1ST+A0NhnUe)QBid$rQ-y2LUY_YsMu5$Vf41} z7!4N>3cztw)z9!|w$8oena@5-$f_pFbIJ6Qz1Do=)xOn`sL~%+%w|C}UeAW%d_DAe zB?VuZ&Yx>T+hHbyVo}Msjst>$XUmfdA1HdrUqssdFxBZ@2vYll5u4iCXEG7*bhekeuHNb~r>E z6XRk=1tleZv6^Jecd>X>k|N+xn9WX5ra(tS(3W?R=KQM*X4wE>$pui0ww#wkKzQ$G zsXxqR)U-Yb?KOGr*5tEJ&a|3A;CL=eARB-W9cz9Oe&F-iSXN2p!kC$ra7zb!18Xi2RPd>e45X z*cRfrgCy`vLy>>6*1&Bw?{iy2`OBmHzI^-Xp2IMY1si6c*WC5F46Kq{Oz@+E><%h? zdwzfIg zEO771Ft=5{Y`--8mR#+rS^+U&X%%pnA!8e5$GdFp(b-79uwc#Lc47V zil&7B{*9KCN%gwZA;w#v;CY#n6e^ka6v1Y;iVmzcPO%5spQ3d=dZ{ z#HtH7YnV(Gs2hnanVjA!n&)u~UX`>-IHx$v^Wl3jeDx@#jkX5vpz`%dFAmar~qTPud8hC1Fy#ZqXB z#HrmmOAl~m<#NLidfv<3n!=*?WIC~dEBNv=yPoa!tv=mEq%!Mx!nNwneB<=~WA;4^ zfp;YWi_4t(75jUQ-y5pT-2Ro<0@XU8+DA$}H?Aui7GzRzBu~y3WJ?__B(pVzm>`Sa zd3q)|K#eT8_nHjr+$LePq#~4MxwhitCKxHro+I?Xj!7R;efY&)05i^VSL5zPlzMRBWwiW|ub*z1b&fHkH#R3g)OlXI>GK=O=t6Ounz zWjN*UB^xDvh~>ZR)03k{KbvD!tMC?YLC##1IJhf47Cjt$QpbJ%e79R;@0EbF(WL$b zGmqKsvHrw1TJ*fJ(mEB_`-3Q&XE^fu@{eimxhl@v1-ZN}IXNRV=IjeaUHkfJ_>wKZ zOf~`DRTRKG=J_>~%|(XVp4%&?IM~E}M7Gyd=#^45O7}0AGfNMTWD9R@^tmklDlYc( z)82fO-zz&h*1WC1bojpMDi28;+34OY=+LON8ULzBQ=rLw@0>p#OH{7=`!N`q8?lNt za41w7D9090#}LB&REoy~Tgs`lN>3rAb~sT1Z{uY(EDZ5_rJHa%L4~K?V*jQn?qCCf z;kb7?uGOUcrgWR!L1L;$SO1TMMun>~>QB$DV5WOxerM*P>E;eK&K?~J^j-%yRMxTY zjhZ}G6VvPNaq^!O*7avh_@Hj!IBg^QJ)%L9pX~G=AfTRnlc&48$ZHg|b4XqgsJDS~ zCMHen=ACfmwqBERRcBP$_enLmuPP^?K3i0`VB*y;87d**tiM4jq_3Fj>7jFn2cnpd zC?{;*=Z>T@8`H!e3p8 zSTE2F)6t`)UO}UC13jdzpjb-O>C-2FuuQ)^#=z{oV-2;nVJ}5{;SuVp>euH1^%GDy zUC8+N1Ou8Z`3jR1FPav^m(65vw-h8+iW0#@v_gOS)pyO$HF!yz3AZAs-65o4p=iIo z#MR4&Nb#!|W0`wCYuF`yQ6-JX8KPn}v_1l6GKrS&fza)DbPfC$Z(qCJMCi;_r3LkV zy1Lys68qWLnXeD5H%{vfCZWT9WEfSbo!w%J{K8}QD$$5TK0*Qn--9NtKi&KX1xqElEio3Qi* z&c!n(*G5(u5FM-CwixpT--4_|lLkku-!NG|UY8>~vsgO6U1~Vq@Z&x8?#r$a&%P8M zlI@1vZhuRa^8wi50eIV4(fSb+YP|8oH_rkF z6LvK^dEp-+XNMc$G;8p~&R8W%hKnS0v#4;u!IV(Xsof2hDN&FKAG8}?MLM1?H4p;%P&qj(m z{IovVwTT@pW`OVXv$q=)=`;RUo&^mck&uwpy$2zW<51$JFfPqJE1zH!4vlUGY!C0Z z`?R+C*Q;IIxl}L+%J>7e^h6CY9}%ASZ$DPc1~1$D01=r+6%OI1C7lZAQ}Bf}-jjPs z67oIm6ZXiS_+>bT`K5K@YRxY}dKx-f(;kqi&_6d{5{!TH5}R4+n^{{qdb_GK8u@%& zweLx?moMQlGbjjOtW^AJ^JwbPma6!be^m7MfIi2#h)^50^-1%~fRRqEONaWd?TLrl zJze$p%~6rS-Iop7S!Oex=G@7nd}5Y8l&+%}9}Qsg5)D?<0cN`AX+A2cVrxHbroNSb zEwq^$!J_qO_82H!B1sJMZ~uF2fX0LzHPdBRyiT>xH`#F!Deh=Bm$U@~%tfa3Ye+3{ps&wSA1tEb$V z97u+YuE)Hb23=Gf%*C{fT4WhVexY#S8NvtjdCzNsx?yDo;*I5V%y)f6Aa>R~p;n(p zw-}$mGa^@-K2}uH_?I{DB9H<`sHnLkD=;2+$#Xp$r^2(1sB)U@|VK zL#!ke`clR?b{`yMwgMt}O%!K_F7y7dG8D>=hp=$aoQwNSF?-bQ~1E(_|;bAv)+OGLDJ-Jd@c-)AwVaDbkTYN z$xIe#NDK2lIC@n7SjQC~;MAyU&8WAURbYxt6u6;5p);B3RC8Doy{oOu71Y|U{XU^b zZ57zV(Jpq~ZLG5Z^yUMX5S9^*-1vp563WP=NwTKsumrf)i-}Neb3RZ0N2ZgEiIGbJ zZUg)(z~zCC&81HgT&1$SAfGQ)zM<13LL_~^Z+MO5TdUbszhgQd>si89plek9O09M- zxPbd7PVa&1xW|LBp2xn&gyhs1x*#7YViv1!fKqyi% zfkvd8TFY^@)bjY|a213VChBK+g-K^62j{Eadm7^*NMh;2ap%(zNBT{Rn<}Lx+x%f1 zOPAmp(k*5!kP-UP`g59n;uad$OmDomBk93swB7%$o5(gA?Qxwfr=$Zw(|vKxX2s#- z#>PdP>utPa>1&4R%)W>0N$9^qngKN0=>`0rV@n5b3|0tM7m=@RcaN)JKdhwenS~B= zf-NuLoD)b9GB*m5t&zp5rA?0naqOT#RU;tD&VhPi)fzU z|90`kh8<9!b%~l?pK+iqiX*Z$$!axR7O?gB4`M%AlUR-wC@aZ=E~u8%cxlN++V)|A zxIyGc2hz8Z{S2i6YokRvJAd^DTsnMCLrDSYl}r8Y+r96In9+C|<`Y4^0E?GP29lii z*{h%eH`&@Z>;%R1Z$SsVq+)C^>#t^jG~-jpmww~bXPS??(tQ?0q?{xqT?@a3-x1)A z2_T8FAoh96?qQs@Q{8Kb2|Rph7{%RBGeNtF}|9 z8;1XQ_TF8A|M4lnCBf*75QsjqqhouZ=Q`moCVO4Hor1NfKzrC+s>_#7KoF1s2ZdtU z%siqjt(LjeT?@Izh&jpCe2ysfhVGkwsZJ zAi>0|O^$IgW_4>*znT`|;P-?suf&gSZFcDyVL;#i=q za3>=$qtn~^n1QF2OA0omUr0lV&ny~LSG>i7XZRbgJ@Elv(|%l9vm zBe;4M|6*@DR;lKBCAb^#83ANWqd}WZg>;2U!Nk#5bzs zqM&#pDu@L8=>2*VSAgKRo*tG!R|JFya&_YmxaXDf86ViiF`+6CZ|%1I&w|bZp*u5K zBs$em9Yh$_S#_%PqtDJm8!<`bCm#glN`W-+qnpZyJm?MT-1-MH#T{IHH5Ka0qtM5| zp~9ZK+(%0TSOBH@PL|N!+_2?IlYhql`=?l+Mz`~nKZou*@zW0MEg6RaSD1v@AKFO$ z0A~`@4w%XOPPTkBCCWrl?a7>a+Mgeae@$0dM@xF}g!t<#JSkckqXNFoEuUMhH;B?i z=)#W9+G=PhoHihd(^&PP=S5%-dnT%Q0vwPS^8$VQGHT&up^iReeqP<1DXVKbA5v zf&MT~Nm5+ta5DDYLgzTNL0*mP=lxtQ^0=ccYG38#yppQTT~C$G!=|8kv}N66{7Q!o zc*G*VXsuQVgrQsv`oq*tbBcf7n|B_TiqBKAz)jOG4eGQAGcUoPIr(jh{##gZx5}d> zkjSmrQhx?hPX~5!2hD?VhZL!%!dFwDXaO`%mLC4dZpht)`@F>F>m$(k@j%gx6hOBz z5#-<(|B*XYVhn29YKTf|Jg*Kh#$wX;@Sc^+gjA+ zSdU_ITaBxppHwCZ;o}~=r#Up+&Vkl$=zw6g~ku|@Z z)*Ytj`0`>GmSvRxaM}Z;5n6|8Xvkx-U{J+VfwrA!v#hcrfR&Z7o7W47t0Z6nTjM42 z;=fvSs-|2D56*x%NN>U9sHfwS^ySb-o;&uor8VjxQ}spPaBlScR5;1tOR+_wBKX}p z2fThDN8WuW-a#>TBRU1c#}`{A`lHW7KH0`ycWa1OtN$!B4~}0xp_glw#0iez(SiQ1qhm$gYXuCv-kggqnar_Xz47>#sSBO5fWu< zUHFjue2imOo4Ny-y-v0dS`wPtg~_@qcs_!ICFG$$#;tP+*qk@Rb_&@;%YzysX?!Wf znzSr6CsZM0f-;Z=p?RMK!@D!}ZvU115gcAuR%Yt)i_mY}(0#JZ93V%uMR><8?=QBE z$#yj;W}rAO&uteDmZIk!vX@J*>!wkRQ+Btz@zHeGzLy!ZmWcld=yb6mRy*<%R{*`I z+5hU0DA9`t9W6%aldDd-BJFq&FG-Ir2;@o$(AA3v4h3Fr*D7AA*K)KWxTmLD1iFZ_ z>|9;+NH-`sz>h$oUJe#_Jun)$|D`y@M1cgQ4|oq&(@(j3MAM1edzYGrO0D$pvqO-MS5}x06`3(K>1IW>K-6&d(&q=iFn<+ zSZyhr+%x-t78D{q?=Thu*%IRt_WB09;7-s57YgZlU>=T8-8s0U~Ol+^=Ejl zrrYt(d5ws@S+u(>^V%yn=DwMIbz5gxm9*R7w~g>D0wN;BXC0V zjjSspxZ|ldl(|35wtggo2KDe)^oumTAtmm-2$whybj__QI|~ggQ&vqL&0$2;WN73d zt=MxG`)#_M^TtDRaL0YJ3T63Wf;Sz@tx4b=Rndt!5JJMkNRxjhn%c=WZupIDWEwN$ zyn%D--dtlnrat=8Fedf6{0Aum`|*|9mtrnzOXX7Qzl*3WX2{e-e-AmsMsLBtNNNvG z%$>fmLnSrv566$3uWEpIwg?&lhQZ^<%%Pn#tOpU3b=_# z^F=!+O8*dCT4rzotshCB%vL+LiEwoPnDob;0jRPo<{tfR_L*I41lwg>{BvdE<-<+x z^WV4J=PYkya+`sEH$4{qq`2=Xx?6hxQfC|8Am2&*)_qF6VSIbq+Bl{CdPhb}4oTBw zM=k&19=#ci$L8Tpxai@7c`uQ+&kTfGBRqd_{HQqFK%{au6M%BFiH;Z8`S4t(=7eS&#lUbdM0^`0%-sAEV68kb}QO z@pDu-_ONybi}IZpf(+?#vhNd!PEzeq$3rvpg7+NO^&WZ8+!$?dP!faBO{I`jv3SS7 zSb+AE+1ey|$U^NnD8U$7%msFNXx0(5RtQ1`+Oj@-)ml6Xrq4p zU^mv6V>g{d&m(z=WM+28e@cp{!o5h>y%6Gl&*M5!mZYu+gC-50N=3TDK>GAn* z;^o`({aX|T?x~{Q@Ys3by(t3TA-P+GUfjc(a^qQQ!jJR^)7uJGbZePjjP$2WbE#!s z0Y@hXABA~DjGOE;>HkEoMX#R5`MY(MP*ksp;tFCsJ6@! z!^P}D8dv}p0fzxS^t1USjgli@|--fQ#Rk1VUd}(PydR(r{ zR`_Aur*;+C7EVrB4)ZyhWvkJ#$Qaq_VC>YJiJz^J>ByWFY|%rWE!Md**h<#=uZ^50 z?zW^;ojkQ%%o1^*Go?c-ngh{b(|fa9Cq=SSH7s)LL)>tPMflx*J&{>bu!?)5hY3^a z>b);=F2%zQ=1SzqQ3Ez>7VyzV0ZL`$S%UQy$aL=MEIT^J@2J6g=zVOW$gcp?JL4*9 zU^^iTZEymdb$|_OV(_c|{pjdGuDFQ~&@FgC};nV++?8br9+Q;(SjK|Ws zHmp#n!Iu$rYnJg#ZGN^CDEfEHexC3wHy!fJ)}b<7gt05i-VP1YxF6%I1bU$?l&u^x4%YTP;AFUo(Qy?+qW@o6eZF{Yprf{tyu|U_tO5vhE2vL$=sK>VzAUBl=k^d7ki znvQYuK<7YTn2Y5;lx|V8m|*o#tAuV9?KInYF9uum0z0QfC>ht%Qd%pGAcD~U$o)4p z#TeS>EJf1_4cDspmlr|1H8YMGF`6Nicv6cpAx9u6r@k4s}hz=P>B34e{ zYe}$F+UWb>0)+z&QMc{nvQT_Fd_@)h2f8Qd7E)O9!mz zP44jJEdzrl=Wqf^wQA>9Eb9N1iBI^&;y-%Nkm`QYPXtcWP_sGZ0l}iJlJ;Tg8%fr) zt0Oi*7H$GusK-J;4(0?wf|q8zs(;3bJ;Q4kg7_3(6+0m{twzhXfx0{eDlrNM?)uvJ z7>VVjSA5@10R7RQh7Ic*IZta|K541j?x-lS z<>c+hy_sQ4!Xs!L8n?hfd7jcd6&pC9bFh+Hz1?egb$dRGG_Vj{kEZK^W*iJ_DRjA? zOmMC)hV~gXS&c_1$)etr+tfo3=BS=PKZ7&lka#Zgi#JHG81 z*6SDVy|fE^VcU0fyA!-4iW8xD82x%i&)|7l0&kPppP7TDo(C;>!Z2OhtMkj2gW5%e z&d-{|G*L1Ks%6(EyQD?!#=$v@S4RO=+iFCoa(xH&VvSfSksgE>(O>G56Zpf|RPV_n zCa-VSgHM@Jh0dIV{Rd*<^zXXot9I1bM1)4T!#``s-x0F15MY%HQV*`OZ(NC(Y$Wzg z=_;?=G&~*$n;}4d7r08uyVm0`D^YWB=lvKLAB)~Xn#!FGX?KNuApD$Xi-ZIGx?#8K zIp8b|2)fgT3Oa}g%Gq*%c>E|6K}*Lh(lfKr5OJA!5_qJEc=FuFa<2g(bk>2_ z{(>ZMO&)}We`^c5GJnY4)gR4T&PJcgXH4;=tMMj5GRzsK``?K_kI11T`70OEnA=Ee`b`dfo& z%QDAUehSj1>Yv;e5Q|ipt`TGc3vVwc{vnqnxjs{a`<{{T>jjCIBt^JpbePieFYi({ zLZROfrR(>kUjlvI`7=8+{A0SHkN<*S>e$M}*p;jucD;gLjULajb={(P@kVvK(A&0?E3&^yl@y0!k4`p%&e_<#x>cR`;Q zI_qg`*bdFLYl!%{(8In)z+d6Z$#&j$d_bVsB>xw0!m#;wgOoc~fGyp|yW3=^ur`iDKgPIjL)*dOb$wllgf3$<|`7T4-n#Y>lN-B7WF(80q`q zkG8}XX}f9Ez;rmjY0G6l7NFGm4Ywsez^K1HfWO7HAmC=g^uY)#N`))$P_-xC4(nt^ zuO9Afk#QC`x+v|T5uhH-Nm;s6z}Tj$>~a6 z)sZHgn`@py5-WPEDVDDsxy4q~){xef&l7nhPs&6n(b4Dt%rgmJsfWW=){N>}7p@O9 z_2hwjH1*^YUElJK zI$x`G(I+B!{rh}7EjE{=cq3gm?i>jKuM!S$IpBrK0fxE75Gb33Jnv~VEy$2K@{@YA zE}a___VLJdQQ2wf6{h1`b_j~fp}wU6AHl^7K8mx}j%8WUGarRPo(6n*E%g-V5664=5$p#c4{-soOHDUe0jSA2O#O;F?fAp zOE+}kYIyl=Ex0Va`(;m+$c$N$+w-gl9v>D!F6t7Q+^7LWY$bms9MLJHs~C-b^|Y?W zY=dFNFuZbt@9|N#hRf50j{_2BOV4EIi;^?M$Q?Vl05A%O1D^PN_ocv~<NSk1ao=Zs60EomyOKlp0q z$tYv0Ro@yUK?D9tv-u)@CT5Ak54R`7@|!H513dsMQQ_Rd1f?O+AMY%kXMU=3E7@)e zefDY9ts+k0{OFqCSC}NBbFLWu-{}VE3j`{kn9}<(v1#f&L29Vo<~o2d1ZXH5!#x#D zvAn{AHTfd~VoYzpv6eKks>H-?*U8luo=GIX4VH)kxeCkKuSwmzyeDWheoL3!!(-ii zw+8n6-@p31>QAgge`mLv)^y4l>ER(3%3?tq_O=T>84%nm*PP3p9sV7fuFDPv&`Wk^ zuyQB2UQb~#ppqh=b}kJ^e18hi=@gU`@-qqb?Lgcqg+;3PW`T-YCu&7;Pdel9TVeVU zi-7vY70O=3KU?nkWNa3zgA*T^HW6(`f&eRoiwm;;@-TPdZW}x`Mb+jFd-^O_)gvuF_l0lVPRz1*no& z-rK8t2K<+hXWtdke=qa9riwSA3Ck`Z!rB3Lqx(HN&pdm^r4MLr&Ge9Hs7h*xDt(!8@pYO7VkHR_!0hWR zUx2y976Ia%)LmSM2$L}_o4vAr7x85Iqh>RAgfGwm1s=GV7R(By)e%7UAJhXXb|A;f z2WWkz#-~|^AUw4d`pQSU@7iqN$Bl3bG9Ps9(#uDYTL%1GdGkEWMRGp0Aw{XBmKaO~ znew;QP0f0j!sTny2WS z*-dA+pH}QdfWik9*yktueAo>iM-9k5j@r+C*EJDN?mesUFBTwu;-HmPPQw6f8*X+J zo_T=Hds&6HZRls;K5g;J_qM*BP78S!vsiTACLZg-PUcIz#5!d70N}36EH5I1lY@hb ztO@b3@cUJJLvSfT4;W_06J|M3UzV!qW!P-e&_P##p-X+Pn8~m_ZRZ#K(b1Sr?XfEL z(^=xR^aH*jz)q)PiXqY>7|>G^`pZ6bX&i=rek}zj38)q2TZcaNG0p#F$Sg0kCQZzCGZIhLR$y`j}VBCjnSRU{}r2#-6(m>GZwXS!jV@x#nwabHj6J$?LXYRmQ{$|{N z9iX|CA?xBn?0_G@h))QD6@II6!QdgixJtIU%*CyA%WgquEQjCD;?Yl-MVklvLCbWK z9uyzAeQ3IBEOOCnTDFxeLUj4_nknbg#TxfF5}i<>QzsPk+b8D_g!;JR0;8(D>x(R| zz%abBD`UUwV_g@G|A(!w42!bs+8%}hMyVmBVP*h95Tv^XP(UdKB}BSQTDrSS>5>#d z8Wg3wq#LA>lm=T$FwSa0x*UX%oKgVB}Rw^q38sjD0+ zWbY++>RPr{B47)50l%dBJg#pT7=;V#BqcJW3?Tx2b&(58b0L2~q>fyw-!IQ-YVm7lF}b!$NC#?&k8} z9>G_7Gkk%GsDj$KzLIX&rGzag&n!U@a zv5n((=XxRlD$f1Y%_9c`IqGzsE@9zRK&iWYLdX5*y2tPxKzY0h2=k}{$R}cS`s5g7 zW#b$jvy#gn#RYDs%9`>(pgh4WwBygu#alMMzH5p2X zpYyB6^60q4`OcHRI?7vDAL||tUXsRP$)%m-8loNvHC1QRv6IRQ0S(-T2#~A?EE^{- z1%?5Alsr23bO>_bZwTb;JBlcFAFs_CtwNV$M~{FG!B+s7DVBPo{}2#OuXKZ=#>YO~ zZNZfy91id2%J75vIzB++?z{Q3tt`+;vE|1{S+aQ%*-f_L>1Vo%kk6BJ)!NoM^lu7_ z_Xm!sK3XFs{I4of0HI(2!CHVal)43&-0>e7B@OKDS*z0kNAlJU!lAGF!|_jFgj5=M z%s6xrpOeFw(!P!@k4RSW4z=4G^!y%4^hVk}4tW1!$muQ^)`^zUuLG;DNOKoL^gh3N z0EadKI7)*R2_LR}yU1!o;j6v);2+(NpkUCPMIXPjG3EEcZlV#P+||Y>A{($lp$9?u zt7*O=!t2tt)D`~@Vfh`{R5$Ob;3k#A^)b|0!ZYbJD1xB|nb6AAKeyEQyZJV<`hZ~>_3j`a`yXZng4Jydq zrdB|CWk2bOIS*t3kn*yg!;BK|W&Cw}t*2nmEs$kiP!vQ8v_u3&b{!W#01Cbc@AK|2 z9J($&3F-XMSaQ*>qh`?tbQg}!haz*oxgtO;>R;15)pi?Q-%Gm|!vRM!v71rUCZ$(M z6vBRIqe!pM=P-L$-kaQQ|GAM3tqJvy!OmfAx%Nkn>oVQ(S_^gel}Y1R=*yWM*PnMR;=g%Xq? zdU&+$?C9VnTuSGx9}B~{!VSvSg2|azDFVsepg8=%lQ3OXo!o!74Q@ogCjB7sf3#4` z-a7ltn9Jp}UZQ6*1$Td5@}RgP zLH8h*nL#$syN`Owt(S#=mvVOkmP*knTMld`9-i+Lpcj1tA1~;W5FYV*Rwlam(N7}+ zFPBGI)ZQvgp}=#hhZ;*d7QOEnfUioR!RX>;`s<=x;D&YJC0i4nEzLHpi-^wlf)dq1 zQils?ys2%~+0!RF% z=2>-omV7^GH2ctfp$Wr(bm_@2M;82p-swf7@yrToZ1K|te{3XF#)WuLk~yLovfuSV zJhtPKjZ0GI{@JSu-a`qAI(lzv+!LkbZDU3Eb9n;SM(3tq<{5e9>91L>=B z0-+5Y>S((un`t<&2aZ|RurPMk%8xNgN|AfBNEF#REyPyf<7245wPerx*#fn!s_@1rn~C z=6K~@JrUTh^8dCY(E}bh!YAhea4UlXK|JlqaD((;(cr{X{B0O~si2&WKKlxR@N z2}7F_uA#jWxP!ZHse>ey9N7wNJa-we6 z)aRIIICf-V-hgOTL=J04Ub{!cGB8ZH!}WuLx_*rH94=RGyeAftS9)JNpfZ~N@e1&| zJETo%?Wa4>akT*Y+qAd-?jyP^#LW5eiKCy-dmvzPlu14#_@DqNss2~!RL_;@v`bdp z;O1ohTFcO8Zk7FsdoQvVv5F`ZCDO=?jLs_0v;)!@MGUZ52Esaw?!>JU!gG6<>GmTP z0`X#4yg9Y(bxgF&Ia&nuj4mYL-tnUGl=@lt**c(n?z;nv$>&8wmPJMuV8h8GP<Xd1@|%)p`8L#R9~%`^J{+zXQm&RQ@#T`!*|e7p3b_u=XO#{)!7jS!PVV~hJweEThGUJA z@o0q;YS`R^|C}FhovFM>H~uB0C7ZRZ*KsraD;D*` zK%B}vQOJD6w}%~Z+^ph+?5r?3=S&MGNVpbWlNyR_L7uHs4=ZOkzD#s}A!Nj2emh4V zIAJz)ML^;eL5~-*j0rkO6n^hRKTG8dOyBV+sW!h7SD#E?AXiX$x=(>eWUlS4$r@4| ziM#R1`6(n@Bsf0J3?7+Sva?Lc(MFjOs; z<#Sx@k}PMp9JfO(rs(EJsAwHUd2>67R^(f~Yz*^etmEe(K9G7V25DvLo3V7oH9h`& z;fs%ai3Aw%QF@H1A(X&pgms9?D^hGd%q0W+*lwekZpQdNguKeT9O|y}%!_JjFR|IE z3hNLF2H4PDi}xf4`!lTVhYJ0B~R_Kxk^^!%b0cwAD)R@!T``n55fv06{M3C0N- zhhc<>KpWl0?oda{kPL_q+o2ACPqHrk-7F1LZnBu9*OfTz<2gv*^^kqFzuyTb7u_-l zOpU>& zu#edKzV3LkJ>>@)vo%t=cV=)y2@a3+F*k)W5^;h#@5J8cgy8v(0HyEDeN>g*)ea@j zPJ0c8sNRS}S-2--jLEc5Eg=@gsESTvvqkEGv=Cn0%!*b@73}T21harw^}`=7BWKH3 zKTKD9qAeL`fA=0#)JZ5ETGk@fS7cxL5ei8((AzIh?DJwhAk2L|zEk?P%b&h(IWzN3 z!cQE5m8-Aw34}Xud*p5ESx+)=uS5_k6qHLk=f3)DUsv=Jar&7Nkqh6z?C!j>i#oWg znai?EcEQo>hU|T$Q}=-F(CMw)-~&uWAcr~ zt=qPTewRD(vz3ocRnW0`%n(5H@WH8MRgED_S>BFbI1Xa~qekb^eHyl8jn!#_+e1pY z=gZUk`P+sya80-TL6sGK_B_w|X6JkoR`jvB>5o0SHzL_9dk+FWUL0>d$K~$9u0=tA9N^6K}ev z1Z%^}M1z{{A~~rdsVp&TgJt2duZUxgd>0IbIQNe+Ihx%j>F1X}bUJ%mTFPte^opGm zcL=>JBjk?vDR+@;_dZa*?taO;%-%t%@LlN%?<}X9K}*$^%SJbICaEZl`mwU#159FD z;suU93sF%~(u7Nk~(X5ZrOSK3iKYEXZIrY2L!rOkQl<%(BJiiquU0(y>*>RY45h zkiGiE%ri2}!!wZe!I#Hh!=!Wzb3H7i`+jfg8Q+hmO<`|PDSx6u>${2Pcip*5bsB#N z+#mFQGP*1Nz7>alts%VgSALqv!-ECtkXHJdOCF_4*TVBk8sqm@eCU-m!34!1r`Iop zb$rsc7!msA3@efC92SDh#86bjg|fs|6(?EP#$7IK42p2V3WI%x3ht?A-!-UOkN~~x z(7~Hq3Lo{iQxvOn8#u+<6-ih;s7oHqowZ0AJqE-wA>ez%FH=Po75k**maZQBdzIzG ze29GH&liX-w19jqKa?}4x0u~u7~7c!h{X)roUrKm*8i|3Hs9}6tGa|G@qv061`au<&sOf9d&_c+;Q=Vd_szbL`rJiQl8#`7< zW)9raARiK73v<{VFQbHjW1e3+H|=L&-Dnb*sdsKTOs|5Xe}} z#%DTg3;sDx(%IkR##R5cqeRW8@no&=`v;)pS56UJCmH|CFC*i(An*@+T9c@t|J0Uc( zp-%A2#SSPuEqRugu*m(*vEPX}x}Pn0ock+nnn=Oc(yV!hP0zCFlbyMg*Rv1X8+;65 zY1CU^T{ZK`4z3sO2r(0`?6uCHy?0(s#i2JH7)v0yS$I;rzG|7_+aI~=&Y}nepa(Pa z@bkF-u@go%RguJg-F&O-t+Z7enS4B_w?Fq-ip0*g(#E{OGOd9QLCTnH@rX4t%uLjQ zBIzMH%=0oUxbgjv86(UuKoVll6w%Gw?+YZ$ih? ztto0?1Gnc*P=S#!6*ve8_yyMj>P9 zfB|lpUQAkS@dP7VZRnkVZ>>CBWb;fk^s&BC?n^tH7xsU*@0|_JWo+Ad z=&oGp{))lTSuDI?pV9RL$&qM&;>D=m;Huja9ekQg-}sH`hj`|jvmwWnBAZ?tv3g*_ zso2zV=M$z}{n&>Grm8wJiTnFG59tNGoD}n~NEtNQCxL|kCzC~l5h5ywk}HYLpL=cEWV8*yU=ohB#JJlp95a zM2Gkj?2iA;2R&{-Yqk8*-r(^gm-fcqmWb#&;_%+SsyTwnxwr1vV_B5M6G_}H;`BzW zTtNT9aR04^Qh?8(sP*z$@|MzPkn#JlP7FyoI=Lpdl(FxbCHNU`qnfFB#lQ93iT7F_ zmQl?){xmWsc#2crbui6D`I=&xoPZtw*r1m*!L@QeGogkh%5E@S#Q8D9O;=}yuAEHC zzmMTPH0->Wkv-N7Z0~D^Ed28{>LAeNz|EP2?6DCib>ueeW4Gb>4}ZB{1K=8lNBC@* zK#PgMF>Wwl8n!>ip*B$eBZf3gm2meZK$ICuug}5;p$yPgsz7%{PLbN~NEurNfsFyckWaD(}$X2Ypb*P}E-eQR4juMIB!!Vq49v zsaG~@X=O&_6$A%t_k+7%bd{&A{@5;zc%#Tv#D40u@MxI;`i(O|@^54${$iph5}v-r zuhhywrA89=3i&YiguQp@f-PxtK0wXXRpb$W_z1e8#o+3yyc!FjvjkUt#Z>mkhQ>J$5sJw5l zr8;P0!qTc8j|DqqU=c2y*&+~x{;^~2-Oht3%k+{q0VLz4H3{`-EFDiodAEg9cvufBL0y zQFijel34ZYxcIpxJjTc6t{R4pqes#A%?a0X1zxF7N$#{Y%ZrcY>y;ZRn{9tvECW!4Ao%k0FAlXAFa+ z&Ha?(Sg=?L;D^X8Om8iyz2Je7kA%xN?Qgb{_8s8bHcC1NAjbM!6CvMlx`fO36BY~e z7JAGy7ojY6JPKn?Qn+0Y88)yU^4~9#=+Wy@24;p6&IThug{l0L<6ek>y22c~o6PGG z@6R}jJA7hHq1!G0I2Lr&qehJ31FY2z+Yy5qUE)&=)b$ zYEnC~V(!+blE3;d;6q0?t0)jKC1o#GmhLI*Wv9gT3;Tq<3J)@FMUt*LKNm6!bCXCz zn$8CQ_4GI_b92B>-m`g05^+}J`Hn*=Fea(Ed(mNPk&lmq9oY5(A?hR{RKFAPYUV3P zLMaQ)f$||}^vEpERR3SEg0__qXkR|bL-3wQ@0nc;kfZD}kawl}4;QeO>7Bs_157hdBeYyXVJ6zxv#^=E(0zgI`#u+$4 zhtI_B6-59}<0uMr1;JE5$v8V2Q4SPmRfDcjZW!)swDfH_QCH<^&zh4DS9Jl|~MtpE2BO+!~6g&MQ9fBe||3^xJO z(mW|iv3uwsSkOw+N?EQQHts0H3@DSUJy2ZNn2bZ}ZBl{LVe9E2qm#UNCLSZ zTn?7^17ssUD0C}mEa7)KZ7<-+G+g}J?Z^(d?RXSn7?w)lO>x0BCm)#%K1-zXcY5Aj z@sHo;Mc*La=pIt^4H5?9og+>uPO(}D!7+R97oR7-YJ?lyv3qbe}2%a2-L)K+~g%6+A(Lpd{L^fA5&{@r{t_>Eq^o zqW<(p;yQt<7o8dHfG!u7MoTz(X2K4j4w3CT%cWx|f$C35%NO)Q{n`2Tqr00lfnMTb zyYc`Xw<{X3^`V`FZ?$BWGhkz-lz&3gWRg?F$xMNBZbblPmW%Cr95Amw8tDWlN}RLT(OB7p6(j~R7g}H6-r?C3ax%4nn>5B+2H(DT z|5_*&*rjJ*n({T(5@J_{&ZEmWfWdR5d7Ld`EoG^yENvfdSOQF;`gB2LVGO(sx5gjP z^bF=x7~Rh*Ru=SKBL-P^00;t0pO*LCYYCq+=_+q{*spT$1Q^ep^id!<2xO&-9l(fb zg#81+%4_3|)|$2U?CJkq0#M=@p-Lfb#%Cnj(Z;r>AerhGpTuC;=nO z4Na%!=rVJ2wtkofH$*{OI*SKfPvS%IDZP3liO4?7Q0*4C%KLyY1+4X^s_$+Gcj^e> zJJ1m{`8E16j_PbHIz$FQIANSOPtHzvF1d$!R|LC>ewOx8;B zeB`dOs2YQrxyJFJiC_Fa^4y$zib^K@tKhBM2Zoc(-9d?ixIkQ=O@*o`=|l|-R$qSu zK8j5M+%M!?oLWtWM+$e}=JItx=Xpedx`r0L_x0vg*T&=a)tBqw4Zy!s3FL0SNk2I` zF&ZFfZJI{iST}L*uq%mTY)Z4wjZhpG?_)*0tOmaNMYD zbK(`_YfzW*>sjmlnr^CVs61p19wTTrW!m%@p%2 zi?So#%=bOp%U=gxeLk}zPT=(h?7ro|Y;#VXlBpB@{NebHtW)oXk9Ucwpr->+3A^8;J@#+U&Dij>q3R}ky1h*ZF{#~2YR{@VPB~>a$4;Z zV!n(tZSCAMx1v}^S;EJ~I}|_e8~rh?pOH1pc>q@4B?P!C<``ct_A*aStI*&F{xtq< z%i@3a@`BW4;?v%f>uJ$Gz^sTCg8-g|$9KWMZ6(FH2be1A0rP-GOkX?`UYXJdwrVR9 zWCXujF39v^)wcwn$Gc_^Kg5t*BUcqSZtFOB)yhXnb*AxwtBo&R7#{N7s^#oC1(Akq z2N1uUK+Q-%F}pBRYn<>u)k(SpCKXfEFm9N#Oah1W9@pOQzAK=mA_@;4>=!Bs zbLwB>^GW0Jz{?Z__d8j^4P*N?uenGgnb+_#W%N3H0hem{fJzzdJ0qX5qY%qnHL61| zo4GKlp{-<6&*ilu4Yymr1zja0sf+9iEtwu`?i0xee}N(?!iAgA1duBsE;Xnk79+oq-J6w$T!09)We6=&LfU1TsKoJ+0l7DmrI-w zCi%oONq(=SKP`c{Ezyb3-zhwL*f~AQz|`4--Y6~@RFoh}-?M(kR%-I2^jMhy_<2#8 z%yjjaBpId?MNpgLGQ(pWy70B-Cbs8n;$;2B&zXoQNc0zjnw~MlxZPCOzd{@!j$EAW z27Zf~>m6zWobz`OM$q!)^8m9lHQGT@M?Q;c@WP?vc_r z$rQ;;^A!!%{q3AU>oyLf3Uyu8lzh$vkT;O}H4n46*YS;{RD3h|8s^F7ZjvdPz)7M@ zo!MUjCx~=XV)hs6@g8>667p*?I&?pWA>eky13~;R5!Yo5 zGe@$c0pbDI0S$rTu?>EE`Ix5nwny^6X|}onf+NMDEYik?cGj(Ynv0l2Y9^^i-;69U zxy7k`hm6tRAA=JuOKgM%Z{c@){aRY@711CQ1_h1%puUvt5c8nsfFIUbEMIuUNT2+C zU$GFTx!iN;3$Lpv_wz)UjD&Qiv}e(|FnQ(>bGic=AwhYoP%Co~pgBPaRLzN`6)mdD zucx(7AdTSevXLnAex`!g6$x}V!K6i?Uos0F#frD; znJmrXBBBX0c({JK#%x=^h~5o{8j)G83y(W}b(hu~f(@Sgd~^(?pnmpFtG0FnDYfs@ zwnbEGj6IAeoO*C*_c02X2;`?N{#MbR{T6higKHok2^1ppBy>vU+PzhE=wOe~+$#%R zZFP_0l4on6)0x2FCLTc55$n1vVl}_OoWa*pJnSg!wf-*4K?5+=^$*MU)w*Q0TdUJ= zjgx3Wtb?f~!wkg+(SsO@}jKZ;XS!NJ9 z;6=o$ipnj*r4NS{1|Dl`pDJA-_&d%JOJ>}y26^a=3KpN;#9S0h&c9O zAC)-?57(KCAkS$Kbj6Td-gNO_6mEg7xE$iRPI z5Df*0n)1W6hkFUj3&LN6C{`v-YB#u=9IUI}BqM3tP$d&^SA?7$#Fue(4xO{qcmr7% znKqM^Xl2AC(5+3w_ml!MDkroxX4KkMRrN3*s*R4m@O)IFprVOxkj*QOglh|XB%>X? z^mlhH!D9rT-J`9k_)#{@mr92>O0&njC^1g}LPmr!hw(>j$T6Rx;3mr*QkG9qvAfP7hXZ1Kul*06P zE^w|WOfZ>a7*tQhy#4D`6e`{yKg>Em@8iw3|JG(8Xq2>heUx?hzEXVh407##ubZVP z$k2QU(@>afoq=3z(r{hD>b$nyc<$+;U9ZQH-Mk0wu?zn?z7rggLM z_T*2a5&9jH(owxJ1BCBUIyHru%c^zP1|&tb8XCfAL&t;gUc~6$-BFd_=Gv}EQaGpo zc^$r56qISsL#_H#qkg<@d>v9`e(}A8y6{!4=eLA{$ydToqT!!c``x~Hww*%zS?3SX z>{=9vR@8q$gSGC@`MR#bLG_+n+W48s8e~bCT5w|3PB}A379nVB^M4o=Z6e$LJN&9j zUJ2dY*uEgg5=LFk@~kP3X^jU3efhkT)swz#e~o7+-ZPPP)Nqd?`Sz)LZP3oS%mr#D ziuX<*?(zB)-@6A&Ccy3JyIYpOH(SQzXj>aIzz`W+K3~dW-H_+6Q0&h!r>_%R#o*j8rX^wV|jQ$W-x)gt-@TVZ|qum*eEVF8=M(swdsPG!wv6vlJ|L>Pu)HF~%6rMed|` zIYw%uAB2*Hu+4xGO&33jRG&C3g{=;?01@&F^R2dz-9?@E=zL^lWsmn(#N36;nEeve zF?s|V0kD66<6Nnu$A7Z9+4o(%>jz684<-X;{(&)fcaLmTG zp@Mh)A0Aemzo#_12SEtDS_)5worwDIUI3IcKwC=TR}i+6U?zzcO7mo^x~lHiRuszb zZRSKd9>gTRk%kh(d$Jq0FJL=crXh_D5nG?FdfEc(snqH_V5M`n=~ujPlm%y}kDUg7 zexCa7dgc1aXZ^(#j6!}P;^EbdY7FNRJo*2{r~pCGGKsZSAVZi5uDL5$UH3e;K2%op zy6npS&olzg9S=WS*nU&1t{+l~cF4s{;5`)84McX_`KR5pkC_`)Ao0cDB(*?-a6Z&LR6oWt-%4hVRN{kr%lw!2EaIR9|$#Fxe<(K9NYAxL-$uz*8 zcA*eYJh&!};uwK$|ECW`nBEgUVJngUcJgtHe&FDLsGp!FH~N@!E|^s%1-DgjfFfzQ z%`z5rG5A-f5EGE7AU*&@T>RGH0Vb+cxI7TI$4!sfDZnYJ2_0*FD)?T`**5N0QlM;# zuuf6=5F7VCso}hyO;vtur?AV`L*ga^=LEhwBTJ{%_o?fEcUyVn@^#MCV z)fihah@QpMh<1sW@cc!?Q#1Uw>ELQYOSm0m{OSr8YFHV;MNvLIc~=XMIa1>nV!^;J zh5gk)D@AFfVsQWVey5K2%9q|-Vh`x-T*o!wYxmcz95OglS?m|uxcJMQ4{dr6wqCwq z+(_xkP-pIw1%u0;25YvOJ>X4BqOq=bWsAN=)Z5V9IWZ>rB+;b$+;_z5JO)BZ$mn(_ zd}k%yxuvvr%SmC=QwniANSb^VVR*FvnqeBxr6}HzHxL56u=NOV2#<_bw_Cl=s{`@T zD^n+yr>msCvJ`Ts;mLOca#HAwMZ!nx=@0IM0N$fW%FmZMxRSk`3E- zuf;&}09`$Uci0?abax;9);1nLeDSrRsigO}&djdg_Yi3J?Ozo__&EO}*Y!Zs2pLiN z|4eiA{H)YS4dfh8M3{1@2erNFLdtE*ImV6n&d!9p-q& znytvoQv?c>O&zcRuxodTiQ{1DL-p1|qru;+eo#$I}BAg1~rvI_j2emz0M0) z2oM|2K%M9lY81i8^6^f965xixvk90+{)4PJA-oVZ0fJqTwIxU@KSAqUICA72Wtj=J zL04x_xh?vM)rG7J@M>AfaWpl2D|~<<*N!;$!{yC*x9#5~md>#se!Y$ns>$Ri^Y=Lp zRPy9_M|!C7ClvlE-yIe+BD)eiwEM0|nShJqWVi+wo`1$#Hrlt{R`SO`mJme-B$EK(9Iq z0FTc<3s)Se^Hdd?|Io3-e{89t-COAa{7Ya$IHqXb_33KuM$&JQ^E-7BcFiWBnY7Q1 zgG^7?n}$dM5+XfiX*x(U$inlb78?HD5+eWbBCw{DrCCSL>p><&b)9twd&-wUf||S8 z8ygx)fI~F%#Cb>2e_#6J%Ivn1g(;#H@k4_jmjxRGN+kGxIGmB3Atf5xn}ifClyF(# zgYFCEmUw8GA08 zhDE6}UcLPG_5T23PehYOPwh8{(BD{cb4dgd8%cPP?dq-Nn0%?~l_Q_+x2Iw2lo%vm zffjbLVj(}XD|Ps*k@GJ!XQqhnlWT9yY`)SMD~aIi`Qcn(6MVtFh-~j!@P|yn!ZX!R zf%y!^a@g)V$7S|-zN}z8Jc+Xvk|8hil9UX~b4U%*!mpLbRMfauETs<3R{f_xrC_}7I*f_o+KZ!f~Py5T0Vb8DXlYNOGrqF#gT>V z<(dj=5+xE87A6KJVLaN>yTGi=*}t1nkWpBXgc!tbL?>XwoCSsNc9$fnyl%|4Lly1)mOpOR-#WhydLRE5G#Wv7 zRBx~@$txdAhHpPMhGcpB9A3-%4~nx+uc>m!7&JSYsP)VwI0rP>l z^ZpH_+OW6PP)iuQL8pzK|2~OZoVdLAExZm)7GN5dU1oeRmcNtyA+KnuDUYCnj z2IUYk`u^VNB*aBA^}SA56@dH>1i^9ZG+V7+DAjIb^bmS-`V2hvo;Kg3)89)O_SfXW zE?uy@IQi4kOV~mvaE?yUW_T}rh#R?2$L8R;O+WKrBoiJ4La+bV(d*JT)1R4{*zKN& zAi;Mi!VPCh!i$0}2f{*MbSP^RbY#Ym=-0KM;=1Dw`+ZR>`%%_B==6z8qrT*w4U~-< z9OG5TQ|=6jqm?C`8*-gc+-e-OoI77h0M6%;idbF_k>#A@AtMN2Od*KB1{|+G@x%3W z#QTwb{Q##;k1FUzgf|;TMfF|3efze@x$#1KQJ8svKDSwGA1GtC$h*7C`K`}TW?G23 zhV=8;a(P>jPl!I6T#%3U@w_;oL%xf4*dHT{cx4dByQI{so>-@zKmiNuXbIxz{n>0_iUjeb@=pFoO6cT9riAN!Z>KWVcICEwvOrca8kf%(Ttw-sNE$ zMEbTunck=9Z}%W~n-KFdp&BJ;lkS@-yz@A3w8XW`V!dDyO)r{|xqTwh!JjD6AQTme zHxeSUT{s)6_vO-c3D%Q>V@K3eaVUk<>v;)lGQZ0)_3Zh{eb;?#Mu~pt6r~nZZuHO! zHO3_I;41|s%podpudN;Cgj`F>H`L>W4*}HdtBxO}#k*ROj*n|-gHXCq)Q%9juG&%> z3IAqBp6Hyp=+$Z0-dnB(yn_%!?67EQDD^?#b>M*Lp~9|wQeklZ*LI1~1)|o@y&L!eDsWujhc zzxEJq`%jm3zb8oE_*tci8*neYsXEnY_}Kar)7C8D;ek0w$e)r*G__T&;$1_4N0TAP z7-|bES3Dqwc3QUf(EyOCbY*DrAy8pcdz8)%57MY3Q<^KAfb3dWmB|S1W-=8G2#Ufr z`-{g!zKR-2J`g5nei6Hx*6uI84X_fS=z%psgn|lD)9CtO{J26bAX&+RvJe0uGM`-j z+jK1}kNo%Ai_{&|<(vAQDD1W+z5^JhSVAdX32?({&oj!G2aS_F&>4z_bY-FExh`QA zzg#jk(gPXZk0-u7%q_7CG8iL2(PRAsTQU6H_p*-2hXs&dDJYkEwi41-6cY3#=jYS; z_d)kVU6_XCQkPO&PG4X|c*#K&)k73?m~@7jga9&+4Gd-Q(kG%!INh6?&Sy5@Fdtiw8az03Pc*LD1&@#0GxQi z*nlZ2nv_GGi0G^p=WdWVv2}A$Qz1iBR@^&U)c~(Mgbf-V(1M#q&n5Ng^~^5vCHwyO zz7c6vo_W4~-Ur>xt7mJO|5PPa907Sa&l#pDX^2$FrJmeQsdk^ZA3=ldCkriFKu zkrnD-SVd^`y(ZM}=7oxaUqC6>YEHB`alcDH$^rvHXGAeZ(J5+s(Dcb3rsM?$*pIBY zzrNq6SXg1^I71M!kZ^C3?pbOx;=d0H3szDx;l#p}3x4S~>_>a*^OV&yq;qmD2XY72 zA}CF|x40zyZtul!&GsesS(u{?5NDg?ERH4GHN$6AYe%ckwVle)fccg}_CaPLZMh$rZhLc2*aw+C*0G9^QLNsl zB`KYh$<@lm)QUNmg0&s_S%tJ~enXapK~Y_j{pL=sYK4dQ0v4NI5>Bi%Q8)86a}6n* znTO^O`sp@zhh2>N{s|o+-*sjEW8UV>1loAcm4;mWe~i6VR2*Hm{oP1{JHerGg1fsz zumpk=+%0HuXxt@%K+psa?(Xgq+@0V78ux#Z_j%5H&c!#zcU3S37u8MG-fOQl=WoIe zAao$aVM@e#2+5&ZPF$+lBLaz);xT#mpH>-cb|Jxi~6 z;MZ8!c&pV_+VHBvFnG6aDgMINKJshT^m_h2;c0Vhfw>Q$IOoW|(D{`Pn(T>4% z!cL&My_Xv^?RA9xn=jbz_;!YVM|$H0%rTRHVn60LPS|D(ozKIM;~^e()h*Hhu>=6m$fEz zD1MAOHg=q&t*G}1;XI9eKspVzE5S$Wc=e)4}T;==-hhRI!;%J!wxFgA+8?`Y_y16(&fOm3nR4^ z3tZq+DCZh_dh_2-JauSy06Fe0JrYC=xJtocT+* z;@_ycfZljy6zKTnaZui-Tk9F=z%m0fZRjJ+u@DK*Z8?l2e_X_zzfRk$36_N$)HS!g zZwnegorbB$mJ51e={|H~c$(H>8S--@g{_}q!r^4i-Eb?(|8aBk&Cc*JYMYpI3a89k zyHlrj5ppZ0Uw^8)Mn6WyXHP5&4d)N$fqH;w_e=~T5;Xs#)a+FG6l>jLc`w`8$=z>n z$M`g8vTuARNSw^*(|;>D2*q1z5T!g-d!bd*jSexd)kR-z)O2cv22<&=LmGK`QSw?( zL(sGf-?U|8pG$d#5h@{y!3%hY#*O9i{eUXz!Be>*gV?~Xc4D?3lc_WA zL%=uyTBXvD3P~(T9ATkcIZT65dy_nA=vR*qcL8+NL+97KwO@a+KfLD&d%Mr~>YE1~ z+13k#qwH_=f21l&H1z;3T02fMGvGHggWs*b`C0uAP^I}sx<$x`zt9bkj z+_X@UcCYIcLX*431Jjc#dHJU|P?mfRlnH!8*$Xsur*-zVM5n`sJm`A;T4BmY2zs_? zV1B2OU1BAz0;CBsGY}SDu1V}%e9DL#j)fX8gvZeBGk8d{fndueCIM(V>*2iYT9i%3 z)EZtHm$NEn_X$DHkHP$5w+~B?EdFLC^IU?3m1fNUU=GIKo5bW4Xi=o$!Jgyrn@Qq9 zKmTa4;ha>ebQg8t1$wT=Qme2?a``LN7A0N2PU_Fn&*KGM=)Mk|(N|u;`LyO!;YI`Z zTEQ5R2^-d0+-^ZD0B#@7T?z0;y(wvrN0-f7|<-PVW!J7nxN&dhg8U^RYdaG}q zO19r-SG#N$*>^7${&U%ab0*^TKt7w$3@Lj#|xoib&R1g|xl$=rWLc<}e0E#uh zs@mAQ(YQd75E=?bM`PLxKIy_c3_L+;GVesrK zlZ+!cVyFLyS}>?vklm%&z1J$|D=q%o-o252jf+p;JBsFEgTW@Mo)VS9Ej@2MWXgh1^z@I;*OG0kaqxSaU_lqCqAFkX&8ONxfd+AG9 zhPLH@sL6TeN_6YCG`czn7%tx~0A@blI9!6IgwWGyD!K1C)pMD1GjpGSM;vc*^|^2n zgFK=@^@>oAVbDM5q_l3n#u1Ems|bg&yVYmn38!nYpOGT(`l*iQxA)=XADomT1?b`>WW-D*UWRm+kGnruWhhb{ zVOp4XS7Wf41+aTM*#Qg!ImB_gaUOoockQT{Ict~?B!Pm1Z>GP;n(U{)8PNKAt=U#b zW3gSjbl>xFyDI>unJF4~ZSKzM<42WC+CFZN0|XOlq0jDiW2;YF%ndx@tMNr>WWi+y z%QlJZcs+a5b*1VPhXXZrs*&*qU+Yf#3lm!UT$d$_#+{F~KH1S*yuLE^5N|Cr`NG|M1Eg>ybu?% zSv-KV1*=SKl+|E8NyDidpe|)tvM+VlM>fGQ(ll5r2l%@ryH7TiJ z(LXG4?tLS0l290x!5hW8&fBd{>AdBykG|#~9oGwu9R*C;ns#;d(eo`nELbx{Dt@E?4iU6|8DE zKp&X-@24G8MvjxH4GE8}h*ciNe>97JK8x17InB6_6+MOafy5{ub_aPm*wnkQB%fgnfU9}M=`d{6Ari<`hJ2;O2`b2gerOT>( z6ncH~boGS&g8?V%iSqbvXREjD(>7q5)}}anXd(*)f2U4~fcDL&DEHNTjCd96%lx8S zJ(orFZoX`*w;_r6(y>{0jo`fLG7?I7k4VtG($v&cdB-?cjN2;u8gV9ROnm_|=2i;z z_OMqP!;>h{c^WxxW5UjePofZ7d@3C*oS5q5WVrAuzi|py^j*dYV;%avd}W6J@NjzE zb~@%*79yyyP=_ALqwuiW)f>jziv34 zH@2TOOUNNUbt1N#M*j7Lhsv82os2<|H6zAl+)h-;JBk7()M3oF^E(F4ScJt4u4pWq zo~qhKF4}3PP2>&`N5O&myc5Jb_YFZLuQ4qIT$EUjQ6I_@e{*f5O`ba1L$1NiT5&pV zA0JfH&Y*r*Mh&RftjdoBVL17n8+wFKYrSppb$-0cw~;o`)*U3?mS#VhW;#7Bd+)2` z(gD^!dDFDt$!*uix#y=|A6PzmDp#iT=0AQH9&o-ms;~R%Y<44V`*64<8ejJa+i^Tp zk+wRx_;eXkezh+8@T7SL9$e?ug&GIP-&#B!N9q?eZ4`8bTlSMT+=;(4*crTUYu;vL z0tgjv^f~x6d!3hEb}J}HpIE;>=|AObZWYs+J}ndA?D+B)3=N^dmpYdY3wylOL}`g^ zUu|K28pScNCh(N^f^y3wHG%jw5rol*T?m?*p|| zmOkg#UvNZJJ{9>9G3)wX<$7=8e82ls^jOwk^s$9Hbt8PlCSHU3sjueBr$4WmYn$G) zxa{oW$&6WP{b8Todo@05^y_s3^)+Au7teciE{%HHuK7T}IL5lY@P|EQ^y{fwG6V0Z zw)cw|oFt%uMJHAO7$UFVukktV0d&Nv7sdp$T^dIjj@qlP)+UOA`Jz<`_WmbbFB@I< zzBu%@nnooJ+MI^83y_13zd(PQd~csz!VC8eQ#U%>&|Ql^xlNso6;3x&;$))Bpc@^T z*<*Ij4*r=H7=oB%Byzi(JwM%H=JLVZWe&KZFUX1BCwvxxmPly+uVg@-LbWb*?^At4 zF_h~KcFqn=u#sSMx;t=;pE_`~Eb<3fH}oI=@PGc;Dn#ptDC8&<*R`s$n@L$q-aVRe z78ETfUhkgrJC9B;qW|=}HPOw0+4oC-Z)XdVWS@luXNwx|?nt5Q-q|t+&bW-47L2y@ zsL7eDH=P4EEUfn7Br8z=ug!7dO|x&X_b-aPD(mX#yjHKMO=w2glFIO@_X4{x^1t`h zv-rQZVY=(&=VzpIWC$-CkvUe`N*Mb?e8Umf1g{apk&(OgRm_k7!uCPTj3Y2RO?Mdt?OZp4kcLiLDl|N*6UL5#S=m(bUmSU(#rSlQhmNf2Ro(bi&4gE ztZ)U9)WWlHeg+#xNJ^t+Lvjw?4zZnQlWoG7mBS-)S&il%(cr?u?1B@%krMQj;3-?4 zN)FSMSfO}B=COt4A2~G5AN=9XXfiHbDt39qX}#~n=N&^hPDQHUQ~(|;cc3?e;Qsb& z9vdGdbi~E#wf2$#MLR_JVukI7&Bmft;9DZ~m$Vj2(SU12S#iVkuO>hy^677W72@fE zDvrYKRV5Gpgjb`|$?EKmSp_N9`?m-{r(AxAQ9h?2Et=QO&+j#MBFrW|eTHIT{1+w| zvf1_R5riJqwcCkZnRR~u=rJ>a&3Q)AFD;HY+c&aK+lMYGzni#}qi@K(sWMD#q8Q+u zGwhN%F5C+3t78iR1v0Ne>9miEeyM{WwLF<9-%1%&maN|R=DN(@-IFVM68pJD6G2tJ zuMd&LgxFo;bj5^oQ*4x@ouV3Bk$c@3u~zydMz0(H)OLsWufZ@+WlQ_XMSc>dQ1W8} z%Bn`fDCA5sxJ%VxpV*k5OmoJtW0uSqtz1Nf0g3rum1zHJ<9eFxQfO))XnYfy?wie+ zKAWVi5l_}9E|H995MUjq_m>+)f;FeVRWB^3ALiB`lxf#`@x&QO!;}r;>;xcaV8uP; zpOB=z@u{1Ox1UYo^m(87!i%A-HR#hDsY$d9JNbY&)W1n*cL`tX_HYtZ z%RlysLDHkEim{B=FaO~3z{#&`AH&~W!U11zzi*DpnbLB9V>*j86ewix4l1GsD!1a= z|H`Fc5nYM`upmc{Hk&X%<#!N-9Gv*v{-m*enw-#iw*KuRiv2tj$xREn9)a=o5=*Kj zsyJs?%KZ1Hf!*0?l_R~UnHRVXyw8~GVW ze5dAi4X)zYvJ1w^!4~V_l?FPYqg!1gk6PSWGuxY4oXXkDJiphpOlGV&*KN~4(1QPk z*%S@BNWlZ(jPS3K5lelm_rg%?WuNMT2u2!?Q-$NGbbP76<*x|cAOJK8d-9s!8(Ehg zu*ah1^caWdw!KkeYabcTx*%*`QqA~KgT6-)j2?X(;V> zx56*^v!4>8&Rio91)jFR8gEAZ;TFr>Pve!QZ&bFjuj2k~WNN4CnAj9xBTpYgQdu?SC{>6ah8TNdtw@dowWwJh%X!oF z8YojY!MCqr>HOYc$AIhIxdHs)_V2@R@MrSswyxP=Fl%yQB#esxY*@f{nYN(Ys zqb*kC=HqjS(;Bnya2L*$Xrt$SJWW~a1?$$}d=s?eTK3%=!pU3ZO*QOrHBoPlnc!x2 zm3JF|V;Fp|qTzhVr9fUxog5EKUD!vm1lbKS+1k9_D3^W$lcjrI_;i?aRcW zl^2`B^NWk|Eyv&EiQ5_(K5F`g`GZH@pZ@$l6@dW2u+{tJ()URQUw+T>j*{lj-+k7* z`R#)wTE8C2|F|QcYU9OSymnT`q1apFAj! z3t129S-hao24d)e)(3_F1#e;0b^hq@{;e+GZvPD4t?Ct22PSPVMH?vehb~Q3Nk=2_ z-g92J_6?a-@Uk@B-pg~=Adp{&l`Wcju(q`yRP4-Cc7a73q0!B4UL`Vy!09Jc7suz| z`X0JaCS0KH!6UlzrOUvhLEpasjB|Q*38??23s5cp?FGQkpuqIvAEbUksB#Q8^(Mk&%ud_E7GD&hU^PmmO&JZpaeWoy5et18{8 z%VbSOF*aC5?3L9gx}0xf0=Had_kZM3eU?f^!!V>4s?jZ3p(lP%vmzgBY{4Qdj9VCO zmIo#ge!(P9sHgjk=d2P#qGn5_N!nyjw|;(FGE$Er_ZJrUE-^iUq?D3Evy|XB?RK-X z>0EuMab8V0EuVaZ`o;iUgX=AREaM#hsp#FTNKS(O!yQfA`GFarxd5MHueLVoCa8Dg zA9vT^J2oL!#$2FKOj<;a*@#a5BwZ!+4Ow-x;q#bo@kyvuy%~Bx>DRQCoM`CwxBJIL z2Fs_pZn~|P79?wL7P2ATH zw%kHgr|?0jhgB?U@Z!|B28HQ4@QN!}-=4!~F zW^}GH6)wZY225(Ii*`1ih_2qw)J1@GTua*?ci>_A;d&rFk--P*B3dyDoBrn$`vYWd z?oC!!#*XDJN{#?mBVPKfcGxG`Nq;y`;Mwi5k60cJnfX2*{$13s^%biB{p1#9+#@PB z+ssa!Idg14*dlY{S*h7W$pj%{!jMf@<$4rqdVGRHS{XMB${(hwXZ%O|0{M6yUH<~e z;uSYM9vsXhC7eHrEY%?;U`g`hkQ!x1`b4}14l-zYs}Y>#CM@Lo)K3+QOKr&T!QPt+ zM$Q~{eyy_qp^#JvcZuV4?$`b$z(+tK6Vyr3A}K8(3USwE!A3$Pj2NxB#Z-nHb{wH8 zAqCDk6zxrEo_<=l2YQdF=$x|NOAFpiCofGuwu?UOsT{z!O;7*(ZEC^7o2ykET~bti z<#}3)$}S(f6>_j0C_x&e0`!%#C#AcXGoVn?W;D-ZdTt|GXz zVzSY)W1s!7pT*h{v3?@z{%;F zLQTG%pXgoXf(0E*B#oX0-NUrHf<;#&zCoG0y?cMq#LJ7sHn7$bdXC0%g z10$n9>WUB5P(n5K`Jwv#%cI3kJ~R{GuZLUrbY}Eu{x{_9 zAJNOHwHVQwkVfBl`PJN4^>*BhgSY1FPHd`dXW=O#)CQOYzRMHlg5-lipArM`C_dVM z(E6RS;H_Gu(iZXeKMaU)G%X<^|EHFs>CPs{dCBh_c=Rn9#k}ao+s0 z={T8*mKq%cBls%a*CCe-qW(WGlolL3`BR$ikvd%P03 z-C!_72}ytCvmW}hAJH4Ux>CfG)=FxrB2gdPKX-7Sxpnj+ObL!f;~+Al-4-C zxDRpqI*sp1NLwyXA*NHNarjZ8*Psw5D_gEPhgHA_^-7dCeWH%O46u+KKtMjy*0jhZ zyR6AV>w(<>b>&W(Xo9CFl_hKGhq<4`qs`D33veZwg(d9p4{g=+h>t zaGFrTf|w#A18q~Vpq5NT(n9mAm_0R&e8~|XzJkUXGv4LE z(Ar@F)vvKK{gHJvMu4F#YWO{A3e?I-XjM$AcLJ>^v2U=-LDFy@%kU1~+~b-&cfa$l zM=Tahy)g`WI~1sBy5rj|H`e!(GOmN+D#iQdlumQcv)@St@f*S4f1Uv4+Zqai2(4?| z1^2KDR361*Y{j2EJ^VXTLv+bcMvNTmD0^=&FilZ|?URkO1_*E}t)p9D`JKT^wphTr zLO!QPgxZ|yQ|8pE%e#HDoyJ)EE_+N&^cH-`QJRW=E9_pBSD)Fbj0wS&l1<#yK@#tI z^xV?Ufivg1a2V$e4Wjxm3gcCj+l5)yJ4s*|($Pqy-zLMtH``^=U?IcEHAu_P^=HyS z)^4Jw6V=~L90DN!EWWF^SV(?2$s!B5M}hKB_OWSg`|PytLEdj!MxYoK$dg6-5&WzJf?(ObT`871EPBtlE3>6?j*;H=i3j2A#pIExDYCZ<_qV#qT74y1lHkH}b!dB_K?4IFZMq z(!LfOkBawFSrMmKx`J=y^>Ahx9{M{UkcF>(M zlkcuWl-?z^;#Wz8rF>%Hiy1OJH1RvjOja592>76-9HxmYS4c1|3avoRz0@<+v0Z?w z{ZLJLRl6_jF$)8V(QqD_W`f|O!cELZq7x@rN5?%Wkt zWlQ8J3H>!-g__WJNCt*4H9@$x1~+K6YVmEcpz+|TJScB^^qvD=Aj5gg_Q^yT zFkA!4vb^kVtB9T=N%vszeRga_&(*8PB)^*^<4_|*yY>Z04U7%k!OY9s>lkQ>KK@5G zJ3$&WIMj0h5K(08n2!}BGMDZC!uYPoW!Hv;ARh3<0xo;dPS=bLfOGih&>q%Pht`LM z924%$#OjUA*k*h>?eG#5LQel@Zh0Z4N7Bs z_>j8Xx<86*SaDdP(g!FFt>PlUl{6Hok)b)J@p^0o{_t6|^!8zWp^TM4)R9~q_l$mr zSx*m{%Ep*pGkh!8$m0`28(WVHBS$3oZ%qn#(Acrs6SWjaZl{q2m7Sdoqi`AD4bAR+ zW6*fST-WgleLZH19s)u7gXNFQ3X?Qp;uvuDN-v%^zGS=l+EZ^3C6433?C>3) z5lo<@vR}Y{r1Jsz&$Ge5f#1c@LRU0+AENlQEqs`Izqvg9vS$Hxs`}HX|7F}<#@x+_ zMCzW}GIHCC{EBl&n}=ocI!3FRX9lKAt9256_S{_0ec@L724DeDv{U={%CCjvS5-Am z1zvI1JP_ThE{cSlFGRc-%B=DHRG=WN!U!8Td?+by)-Z#n^C5dTjs%3ITuplq+7ed+HVzw>O+!kIsEUeJk*4+^dUrJ zIRm5Ng7NV`GeQO>h^D)Wu3n=d{dC=(KDR5~W21O7G_Ub?uis+QoiXL=c}EwWoGU)u zDR$N|Ykq${{);WeU=2=5UqJY>b3-&7a3C5_0H*=oA&z(u`OKY>=oMWA^R$SMvPs!_!M4<7a z^hx<%XMEE?m(}qxxpC?e#DXA(f~J=6sxPRjQ4&2SVp)DiI6DbQdgJc%`UJs z#FB$0MIsEmPlMxLCVt1DWi|MIL|0fWO#tgG1$ji;h?Ufx;fQ?GELd@$0FEpQIRlIa z$Dwiu|NpnL(xDD_Dh z2Cv~YlnEEu5IzYoVpG6*Scp8FPj+UsxgI2X-=Fq%3X@=-HtU{%_-@)!#vdJjTf?E7 zS$n7o$)r}w4G9hbxdADWS6q1CabhIHXyI0*4(OZ)!*cf&L6n%9LkaoB5tAVDz<$mH zf2NWuSrIT`SlYQg7NV%KY)+VTVbe{r(c|65FdDwk36s+Q8Rt90i59m#!Op+lv$+lD z=K%SU4Yx+K4kwEMD(EYoVP1uCP$F=2!R9iB#^DoIhfe_qaZ7g`fI?6ng;R(dv^9iT{QL7P%zJ97^kCfSBUkU%3xm~pLYinu}-A8n4 z&cU)p>Cu`BBAj7T*Y)Z|c{2>;2hs##K;ki)LCT_WK@Km{9FYT7{Z)QCy+}aN1Qn(T zciwg4x#k>fLW&?cQ3IVJZ%z%KEp5#p$Dc(Z>SY~RhlNHyAI79WS@0Rwpbpo=AFx7t zqZM5I>s&GK5zria&F>&7R8@9FMCFMHGFp)zaS%9BlL?35@ZzkVpU#B*?RA>%HEoIg z(<})IXx0x|_jfh1^|YdRp-Wn6f1S?|##cxf=oD8CBtz5QF9U z8maV6AxB({Yk;q$T(3n%L6p%=7;D@%a#9K&yQBjzL#~6^J8wF_dt^oCyJAvdEzun>nqYX!b`C;~-b9+%0 zr5;)V^idvk>uAZh-r+>uZpg4+b`In6Kg~GcHE>~8@Q{JP~oWG^X$ z3#|p{LF7NykiJ35vtjF9J1u{|MmZ=DMl}tpyt4-N7lY&cxS~AW>qGAYgHW%0GMq1A zhkH14@$IWextkX9q3DEVXy_qKv!;LmG6Zs2%C|$!{Z7(n@0jmzP5!s1LGU*xgdfpR zcYPRBp(t9r`ZUJ;?d(trZ-xJIL`&3q?B72+2Hl!q2^-SX(mZ3up>1t(E%?3Po& zsBNE+tA_k^Rz4B2<(!OXs3TJeludg67}vy=ReAOczZ2c>bL1v|*z6B;2Ei-l9&nP~ zUt?Myz1*lD<4{VZC@(~`)TJ3uI*GAy%@;MQmH$twLYzN@26)(?57ck5#x>lH@EyA0 zExXfYNM^RJcwTPi0dY0&8%f;h#NU>8W9YsjCJZ8)< z0;@t#w|k_>z`XnIvAt|v7r>+iuS)N)dBz(tyle>hitFCN&f+OK5{RCpK^ zSil}a6_^d6F3>YP=2+}7Y~Le_gu(515-^#8HHT_#06!Kc;F#+_pl!;y3cd<;gBUag zW2^~7>ip>-oGH1!&6-tPWxsn)Gp+C5Z`RBB?SyQ5s(NF4<2If?+(9h2^XL-|%uxS5oS+_aW=s)I<1 zcTS;)yFAiP?zZ$!ZgwVA^^Anvr>?d(NV^1I-(9?(mTB1jbD~iBV!s%kYhmI$)+(aD z*fLA-uC)%}YnXWjvx0RSp!IMHB!Jb-Z6&%DW}utIb4@$!oMU7-;~Df6`5pnNw!R$C zW8l)0{r~aXlJTb6wCk%f!Ya#dSX1%h6~Eib@5b)}>_V2YmEMMr5B4dGYtS@&AcEyb zEY?fm8GW(d(yqMXcy#tlI#}%LxI310q3qpZYx)S;b zC+0i}7v)ixSc*stE><|1PeMFZU{YVhX0O3mHus9>!jy27u)argg8Sa-7pN0-0=sW0 zTocR+Kjxq0tikg=BsS`s{erAO;3vgOI2myWa|E)Lv+o#B6Ck%O4H!O)IbiKpv2OKib?SZYKC#10?of9!Y}&eV0`z|^*#9)w zU|zwX9s?t66k|t49qXbDF5N7ac*nQGOiRQt1aakO0#rX7QR37cUY>P^Lf7clzTGn5 z$cBAmx&@W6MrF)&~rj6W<@oV1i+be!#X63Q?Lm+oXDHZZN z0dsPsbC%5iD;(%fP=kKNK6YC>=VXcpenF}`?qd9!g_eaJ#)AF{m6NRsv3~>wQgxVw zu-Bt=vII4kM;PcPI`{^Fmn<=86U)jR`un~y5f~i>;tkckUiY@W+3h|5C6K8_26(S# zUcl&0pDLQiq6(EIb7?0v>I(l)n{-mPovUA5jOw(U5a6AAl+N?dMe=XQ%fxrN12hNp zt-3BuEd+S3#ndZPZFY#<=P{x0CCPS-Zub)i%+(otKWmjtjM7=FZpa;k7r7 zd7j<|W6SV=T>hx0&|qJa z`F+D%A|RIAv$QXfy3gMEYzvZRI@pOM{G9Khc*e1+Bi zr^ThO>lUHQMg01%up zt-&*ub6vCgM1STo@#g{A-ASkm-V>YHFLxdQIounjRU?mv-qjM-7&(a_u{PZIj6F{}VxA3=&+00+^1LyhKMgxu&zM(JnL<%#W$ikdcxc3H?NQ{I zas}RdMp4cM@r69&%HsUn2Wfthd`wIRZMDqo&*ZTZLNmLP(J0!;K}K#h=&oS_1(-vg z{3byhi(SKLq@vWs3bSD!?=$0MEJ%}{^mVy2hq zLit+F&lR~C8LW4GvbRw$%f8Z%EvOtDue&Uiv85s?z?sE9Z z0Oy4zSV><>kE*S-PJv2F0eS|9i0@$910_H@CWI5=iV%(K!R#ilLV25Cp_kt{weVK+5+erq4010|{Q9JML%p(D8eo(vL4eOJ%AV(TbXChxCS9iNqUti8BZ6-%y&2KMO9Q-htK;jMvG&P)bf#F z!rtno?-@4e*HLXh^rc?YDzcAZ)Bvjfvo(mm*bl zVPby%3McMd|LgEv8bM-Hc2@zf!k*8f{6W`XP8kbQFJ+VNY!J+nLZa7LqfA1prTfJ* z<>Hq};*es36)Sl7p%HsJe}1Oe_J6O}sQ$F@Op20*c*mk!U%op}{z~jd;W#n&yxq$W zR>xQv%#LgI?CtF&#w-&%{9>K<0kHW%ATpp@9|Jrjj1qkyfp3?xKpAbfk)v=>BsHKo}3(^AO|tR2_|I zN#<=jp18H~(_cxlF;8-6F`<<#GxCQQ`i5+Fx=f?$(lD9mtS#l_%Ey}h2kL3UQppF3mpDvjrxRY zoA}}^+tMy+F_X%b?Jg+axUZ5b&Z)Y=@2T~T!YFH5 z_XcsN3XR;|37Ws|_phc7eTRfwtfWX|fuFuGnEX2UIAYmVaUL!a{Lu^vD1_aifxRy%ehSye(Osd= z=WxFlVXzZ;TynZo&aaq`e3S5t))J)}seh$*?5n3Z*=2O@z<-Ci|5+oUSmg=q@a0tm zXMGz7>+Z-BSw_T$a1sntlR;iluKkS;t2^`jbhgcHH8nJLN8&Ca{oNXSYIN~th{GuU zJbGvXrz^&@n`=Eyi!-INy+Y_m=~EWH9du?A`VR0vhlYA3PFLRZF0n!hdHC|cRqp_Jgh$9ES$o=!Z0Z^u zf26%om&g7`v*$pGf8GSGAAf%cX-9&0$U&q|ac=Ch=H}#itqi*m>t~qHpTt_lAbLgg zKmj^M48j~935^bD39OR0Cj;1mOvtd+tEG)6e>!JR9w#0xDlVG#F^BT8;(dCU|6taxYU6QtpZlsLO=Kg@8P^aRa4t9;$lq z^;<9l^EIikNIs9#=LPmpEs3YSR3b;&GxNnk&_nIU=zK7%FsFM(th?ed=I9|YSl2f*l8{g9qewT!%3q0g zH=^xP{~t^0><|+-3!8Apyq_!Yca}-De=RVGO=ThLt;8MaIP8DA%cqjB`^r2&Pdc!h zPnY}g=uo+)jaQl0>aCIP%Fo*QmknsiO#Oc+@io$r3PI8G4tM=3T_;c{iX~VQMOLpIP-DkX51~2V=Sj1SFV<)G!@ftD_OdL$K#YMM=iK`cq9pGn`1KewdVES zTs=o#-9 zde7n@QKwBrl__uvx;~9Lp{O3u8;xhV06op-dRHjyslS>OagzYeEU-ppVy%$|gM!XO zFw=U@5^FKAVgfNUD)ctFxLio%${ewYVkK781pxwS%?P~5Yj>yZ_h~U`5-fDgR^;xM zZ{q}AvbY#TUhZ}kzhS{axk1*ecrqH<3@Og=TOL}5DC;h_Nyk2FD2QG+ z(0$&jY_5!<#?JXkHzmZOE{8pvE4!MiRID$&GZWK1^UYq@cem@~pW}hYb-u|C!OG*s zA(BZ_t_#WS-0GwQG3_ zsSYIPEP$(3P$oSI>U7+$PLlk+Yi;!$yyU>^!2N7IFQ-ZB6`eYpIbJtei&?{%V~BFg z&d3|{x{mlJw6dwS#1MiHPfl9Se9(W*Mxn4hzA zl>_H*!g1xs!Afs{ynv;(4RxQbxg8;4#o#`5qFjjQZ&Fw3NGZY_64(B%ohI4XyIr$5 zslX@u>bNN&j^P-5tL=r`t!BHmtsaSD6r>qzoe~Eoq|}AFjG!Fxt;EaeKdyXx&tT?7 z+PfWk-#4VC0Bh@J(WJMqe}*S8wI6X$&m^ZQ&l&!-SF4yy{QvlR%c!Uxc>9}DP-&3v zF6r)&k`ig@2I=mSuAxIxNu|5HhDJad$r-w4$RVG>-@SMJUp;R)Yw?0LoO9-!Z|uE4 zrPP6C_Rs{Z10S+ejk)~z457EDDSw{C?w`7-3vCy`Cob8{4NccNby0vbCtfoihYrEz1d6WULr4#`o?DSGT7E;hIz)_Ojb$&TeOCkG zEOlLs7TQ+`bwkUOdnT;d6KMa!km5CIH+Y8S9T6TCr;5d#z#|M|V-QZ?l`G^2TU7>(98%}n;`v|rbd5Eg zZvB#Q*XY5{L`It2r)Zg+AmT{6&r|jVCo_7NRk@1WHycz78TtAcVosh8+bClP|G%nhJ-ZxT2hp{G$tn zP%4(AckXJ+@-|5BFv}_D6*B4Rc7xu7&wbJ!_+`>6TBj>jLmO zFTuxtZFbf=k8^`AfeFB9>-t*Sr`e~oYSCjw#fiwfNUxY({HQ5kmfay}DGjD&(9|KP zuRLZ}0jn*?BWwEOR;5=d?q?%Mu>d2`Uf!zIH4>=>pd|fCSck);oXRDkiwO)r`9Y8S zm7i{Is@-NG+Z!VzLb3V5)6Vb&j#-2;x?!Py>wiexv3NC^Gy-unv)JSBR4dDZR3`mr zg~*HkSzMTknKE@RzEcrUt+oJ-!V%s#Kd0CYP=_Ixlh>ww%2&YS;)_b1$aSxYu8I!LqTx@a}GQFIPO09zq5dn zbMAHvJ4*O!t>m@|W7|Bs)OrDn{yjYk=M=X;oyJr{CE#CXXF3+*l_9B?0@2mTO5*t^ zutw7ptjV5?e7N15Lr5)UUkf(1Uuf9 zinzk|6aYog^>9W@834#=1X=MUD6%VOX7;#_kxag894ZK*C5WU%GcfgF{_>-FHI+G` z@xXPf#{PCx$$Z8^->8Gm^}I7cP3$EG7N}qU(RX{_g(S%EewMSHO3g6}Wu{yq5W&T( z!=3+W3BPss!dgGDrIT9VIy>KPa|D(6Hfy;3$MM^N9o|=hjFy$p3N2k>6y;48B%(#4 z(=e%~T4^-YBz}Hm5F&-FnkXcUcL|j_JGHJH)zkE{%Qs#F8G?;*WH>pq`rK7hk@L2< zusn~8S<~f8(7IB^K4;j$cOTqTlI@WLz*cK>^Fj#uWF_i7zJBa<254t`W?Eu!iw~1N z-TGTUTrme=*M4Qi!>gV8El-nCQD(2dJvOpmKEzGgxUU}=d3f6kL_sQpUok#5=`2|> zyB3=wo9x?QwExOs$q)p6E-~~K8hmORK@3S0GY&v#o$BJ3UUe#qp7engrq$BP)Ngg_ z<=i!C!^r!=sJOl|Xxg1<<@=3x!?C)ebgwXRYQ5nz!gO-P8zeNzqd;$}W&Z`?OGuRs z;N#vw&dIwqt!vo{uL!_NLeRarW;fj1%|;^68078_r)nX2ISx}+-3fXtc;kJE4^hp~ z%hmPq*EDnC#kMM6_UAOK+aa&Q3I0=#6~McC2=&n(|5JOEok6*pt6xo60f_!vO@X9c z_yhY4H20{I6wmqzy!aZojA}|Qk8|4_{tj9`{ElZ0gub3?(udayuhb-}^B1-aeHF~pXS^O<*X=n$!Jj%+tz!r5wg>}1Ap2bp=p0L)!@xoBa4Y&Axj~Q0b+Ag z@l&HL<;Q6`g{d!OTGM(mc>vP5-w@-b*utd~1vCg)12ZOpD~OEW`RT+xzN&4Aj{Sg8 zkpyuoeUsUlyUoaPo%&4;6y`+vz3J*GoH;iQol&<#F-sZG;S|MP;!#x^i)12D>z}3I zzbq&$?Jqq~7$J`27+3U@vT|Vhk^GsM8pGjbGQoVliVI(b3%o4%_a>n2sR{4ElGy*@GOy2X78s!p(`>@m+h`39Zv9XAaT@O4k5b%c2fi`8$Cm$pTfw--}vHvnLuUF_05ay z3khYpahkihbmD?|084rVF+i8hhdRg%QXetvGZSUz%KLX%CUA0DiV<)pP%k!qVPi{3 zjX7@aYxCZLO--Zas(`!j#XeA;MBt(1{y)}sDi`k5G;_I!D-S5=|g27eC<6U^BOz7#Tw|MLpY8_}qj z;#+Cd8B~TFZ+g&b-V&{KdcSZ5{3?TB){3fZV%h2AY0lah=-dHz9extDR-UGRvPl)7RB?rq>-rBGU zWqyGKq&jiKYkw0%?6ZNjNlT$DZ0ATYR-i%FmGFvHesdu*Y$cS1J;TzvPSium(`Y3< zUjI~aV;}QzM-sqa67)`|Y5i>AqX$;km@5poo8pbFZkkxvl?BC`2k=dfn znBx*5y_WQSMX*Tptsh1~tit6&(Ae<6y2v$1fqje>Nc!eONXE^RDx1q3=lN7$imjHD z1oH)kaH9`@*O4qtM>GLrDes7fx$E=e(gvRp{G~qoI}RLucyF@a^wu-G>FXgcMj$Q1N)x_PH{8kO%Bd|MzY+zueO=mZ`ZIQP9Y-pT>zI>WF!Q?t498 zhwJ_Z1B5}MruANbc>)HptWs^g_#cg`7BZTArOzZihoEbz$AtmJTGwA?CT)yQbU<;Q zlViP?ov#!Xd=mYFD8KRLct2@f(rO(4+}7|eIbP2=7EpSS&(mcEEWBSMSIJ2D8Hx2| zB;GNo^*1GsVVQz{-0d^17G$+XR6>#qyny{Fkb6nQ881|!r-#QA@9>nj%R{3l{ zvmui;J{=Ps-8&c35`wo{-eDo)~F zpiU=|37dHq)ek77lY%v^snUJzMDnTxE6^xOi~i|jn;?}7i>=&S=rbd?-n zPS+*R=uQ;t+Hxwo+F3JSsT(O4XA|T)!?#x(Z#X)ra`X(Z;Nn1ryOT`+cLw$4js679 z&S;s^Vl>|&sFV8v-c=;^7tF1e7fFCXXNq#wQZz}0+Gl9(O(VTQYHn<370w3|<^@zi zE#jvT=*ipnXN)*DXk?yRA$DXl4Qt7wph z=fuJ>AXGA`t>e5;U%o-C@3Rr^!J z;OH)DIF|k5&1H?x+U#jIvE5O;8$JtTqyL7>-kq7^e1lF^(vJO{}o8{_=wt4np;s-3dEGxNV;dNTKM2W$EUOwTn*VZzgKKC#2!XRK}RN4>~(6!~pf zSkPztUZ`>anFe%uXbRbDcT2ZDS5kV9gXuVki{rRH{4Rc$L3 zLiQF~=+DrG?Y6@Z@x2#_!`ga_zZc`+qN8N^M3~?`qes!>?qn{W_JGt^v;2wAo;tbj z@~La~;N+n9lb8J>J<|iu&QVFQ; zXs(CLGu`Qi!5=8la%PP3ajNl8O^lvIbe~h=bcq0jwSs-r$AVZMlJ?T>pX3h`9<#Hv z`woQD@ia<*jPkd-$@aX~mqy_Q^tHmy7@a?12cE%WP*$76lONMY@EItVcPdLb(h+o! zU90(KRA^D%z|D%KhzgOba@u_Fd|U{3%?I_$-S~_zv&7ioN>~lk>bRz=BP}7J1(Fj( zcPAD%9HZ|HopA2pvq1j8V*B|(L=bYB3czrKe^DBtru1p)Q4f`g#l`TXcGC723GV@! z$`^fZ90dQdt}@YVI%JGV?CupQEo&Mwy3XMqH3Ei@ZGWO4V=E69>k^_P^ezvS5u^cw zuNTl-b@TN48llVnl4inG$ZC?JNZ+RSxnuhy_n()GflJ}W-qC4%N-gu>a}Fc_&W~ow zdX3rr@49q+V36Q{X8~+4kV=aF-7$7y2w~&^^v`LzZeLwuCh(OaJBLPp!a3uM`pj5T zGvUbXbl`_bJb48tYxw`B%Z38~%Z0zc6kjS`P=8*la#8k#<5bu#2mRVA$#xBD7nttx zQfQPd8q#o-B+w8AtLdvXKd`<@o@sp~Npn+mJ{+P=MD6Xu-21)rlmBJ7KTyj+z$*(cR6juE3~2{Dby3~wm}NpGcY7@CT<#hde5 z_g_*Y{PM0ssxR5@$4}uxG1;y|(NVtgFlj1}Wo0<|KCWAfN#^xioFxA$*=F49r^cin zYk%v_SQ_mLJW3V*!lT~Ec{CEShAeBiO~U7fTWEsT@CaH!6kL+P^aS_DGo7&o+)W?w zCkWcJiRw1gO8A;o)Cs&@s15C`<}Jm5O3}b&*tRoT3HUJi&mB%bQ5WD9E)SK79!3Zg z(wxJ(^Gysx-20xnnwiw%u8UtXP~F^DlJOT?p*X+vPkTw~%k~#DX#CImtm5vMHS}A@ z!yxKmXh&_-7EBs;Snal|u{;?VVXNCUn@LK}ukQPTDbA}E4y=RmuP78zB zo-c>If!DjONE9s_YR*}2-@;r)5`k$ym|CXBm+-tMg6|z{$ijz28m7lvZwC4*0+0eo zMKM=Mix`Bm+^y_{Zn*;4q8>H-3z>s5Y9`^Cz!`26CeRv$!dPhsDCc26Doc8#@jo%x zWZ>J)g}k;@rR`9JBE(H%G_FN$d5Zz)#ayO$Q!RInog-H5#XrKyf9=*=q>_q%w=OFH zq3P|I2VXl9T8$T{K`Vf~!n=(=s00GRc`K%GUi^< zY~7BclRjgYwBI6@XTU%4MSM^C(GdU?f7}JmE9r3XG3QO5-op@5uRIp;Z%J7Bn^dW% zwYr@2ce?6moK3+3KI)V!RChUIKxtAWEo*t0O)3IKG}OAmcQVTaZSinCY9sm1XxV&t z-KDFH9|>&td}xIKEpi1{M|j0=?Kk$g#}ziQd%FpGE1ryc;Ck&9UB=dUsw#V`ZEuCT zNUX~T!dgTwBR;Acr8Am87N+?{AREgtLHjB)A@4nZ_&#T5sOz=m;6&o4mH{Q^%12f^y@c}!?q%#w) zJFP=dp8ANY#EhEFE0=g`%guk+o(QQtp(lxq+%TQc4t?Y5n!Wj_uj2e3=;Irg+M+xn zpNT^s=f5ce3s~=)jAK(`9A*Gxq4+DUyj}agUkus9erMNpCNcd^F%Zdc92KWqcvNZa z;6d(9XB{i`bGr-F+bLQV>}`6OC2#e&TTcn1UF!DG^9*du{i!J`te+0_^V;pecj!CR z<&70EU-YgRdkOOBU`Nd>@P8*o1LQkmu(R839H>8G5UAQc801Wv5){|sLD#*KR4eX3 z=dgTpRv44zlE+d=@&pgi9^si1OuD>nwIdQ?pek0Tm#yptx5q)<>`S z?#I}Z{Y}J5+_voUvXiOm_;aMa$WUpG`$lazH$L0dZHT3rg%J7$G}29L?1+^0HL>&Z z2VX+8!anp+-lza|#*Qj6gRjjfn8;P$&9C`HX;@2@c*x6iGoNv1S z-EAc=kNZ@evRc+M*JV|KX_`?+?@0;DcWX08R;60B%MvA1tf6n@b=anW0~vYR%%&rQ~$*I@S7;nH@O;H8g6!7iKv-v-Da|INs-N)xHm+fWIl6lw97vn!XFigexa|wl?Y(rxXM{#E%4>oMo z1F_N{#u=cm;L_|)OqasiweWElpMkg6v>yA=&UL?;q7UJOk~?tq4_SNqgLs2^}^Gx_bbjRbKbH&`Q;=vjRqYK3%Eg))@QraDHRNB za)oco+ zSY$LVwMD>OcMDJ2i9hWaU)p;V|MDp_yO(-=(;ChCYGXb^$$lCvc}@&l7Ps9F>4tZ^ z9fw?G5Q+&ZyO`iyb~#XAN*(nz`25$)iz41;s&BWaVE}RqhbMP=izmY;E0yTHu6-)6 z&piigrg1#lYIE2eB*T36B=6oqvyM`~P@tP0{rIA5yf7>`m3n-BwkgxwiZli68s!&) zf7_hn5LQt{u~A6wVmy5os16h8J=+UTW5D(_G@GoyGmeoy1?VZWui*CFZGcz7r~ot9 zJGA_72>ySj8h%fI8I?qmHfW?zIN(kI0Ky`FjBFM*z;WwSZJgJ8s8Z4L8+dA>)SpA+ zm{nxLmA5U+>ZUs^YDH5?W3%N2DfNt~#2c_P8=}RH_I&mnEs2m2Lp(&!Prh8{@flJ0 zZr^SAD!%uoy}a$6c5zwj5jSGcVQ2N5O?gX=7}hhfey{b->&Xg@eTt|}9@X`sI_lbo z)l9Yt952ue?qXzkjJbKZs}pN%aFA)LUQIbP%I|J_yxyXHlf3I3q$XGNunTWZm2e<0 z!@TRZ(lCtY*B2O1IHd?_&iL1fzyvVv=4ZpV1WPXbg>SodkKmF zvrqJb-=3?(3)cO35^FmT6UG|dN%$@C8E60&U*)_h{B+tSiDiNs|6%0B7}dgnpxrlQ zPj>8Hc4XNuNR$cvllYijRe5o6-i=?#lOIinzyKxv&Yy>SRYilhON@gz{u-_fICaPQ zucq9pox{)fhja;`KwbVyg`5pHwldeoxwCsfA+y`|O%vo`GZzaaH&}>{E9>Y_g~wj{ zbEBz4UGIy~ayK*Sio`|b#mB(&1@L)Gt3+zXekj`r{0LQ7?{pF3lK|$-y756?N zz*6k~Mt45CL;QQ<>74-DfIzbVXvc3hzyRlT_U#kkguMAs$5!sE4*-C|Nl)GiH~dFx;$O>@+BkSgffbS_8+s53^gMdJ6mJw{7}8AenC zAAcvNiiNOYs!%jxt#LBzWyNWd-NJ3a^?gEV1l2{Ulgz~bsN3{N7qPuN@FZE;8kj~3 zVn~WfF@0X|*;~QfG``U%rTmvu{T#QRU>~T`VV*18jaIPa&i8^XSo;2cTjG&c?=yK# zjVL-=kEWcic8^-|ABQxAG5CHtjA_^j@?+E6qU(s%@r`HFU+hA#>4t@J(rAe>5I zqHT?ALn;J=Cy1D!jZ-4-URa7xP7rW>xcUWl&--ky_f50&S1_%57w@1`H&cd~P*m?; zj?Q<}C1Xzaznk4j*N!6)Zq*sb4jMe}k=;nNHe;SR^?0#gkL9GOp9&eG%gB0(BvKzb z%?k=Ie&V=121N~IRB6UL<$HDvoD^^v!&QB5vPZn>G>NjbYWFSDfk{Q1Q|SYv6D0@% zunp(pnErW)tJH3eP6Rl?Rhgaa#BW?6hW_V!)IrtZS2%erevp}o*FIYiV)Ol+3}f#{ zWn48w!QJgrX@C(X`CnZ`wbnTDPs=cS+C*)MzGZ2-C z&LQP~9Cj&cGYE-Us=N^Icgg#pQNgeb<$B1!r>nXxS+zg zd*Mwj%;w~Xoj9(F^dx=~FB-BJeQ_>QXvR$!hH<$6+( zFW5>Wu$Iff5WVfJI;BQ(4F7q$S_8>)tRFI!0g<#WG6_+55IuN5*|wQ->_S|BW}B_Nx_5d@qVFu1Y3^We!hLxm{DDDKXC9 zOc1-uz@)xO!N zjjdnIzZ?|j$Q(QNv{NA7=T0Z&2#Y1?&2_?Et*w-XL( zfe)3XNuxIDeeu$(tZcWe{j%)CDMk{bSp%mA1WVpCz%brr;)?fWYZ{*qwp;YZWM@24 zA|?HkcL1wO*tT1WU4nVl!<~n-pph#z`8*U-N)6plMw2+R*&X_I+m;mf6R4|n3H?*2 zV?${f_dVEK=b0TMlY8J}fXC(3QzI*o>$n;dc*X+v*!hd~VU@)_-~uiZEYDg{Cu9hFl^7uC}lkxCh44hFUEXv5vB zt?fFd(!xuRrv31s9qQVAoH~wtYA&6hgKD~Umxms;e`T3waPFwZUlLE%!}V)eQxZo* znr&TM(;^F9ed$|!<@PD&XccgA7WNrmqP3vi=3cn9ONMX1&IVa{DVN{QrlPzqp`MCQ z*JY&>-wQ%hZ{|L+w*v1Te|L*Q2Jiy?o9PqaY`Phlw(vcvlq)zsnVJ#}VMEwM5{ke( zum<-d((w{SNug0yL2L@CU8dw&=o7r7y5r+9*fXvK{jMs`l8QGq^1E32#tn_@%3N=P zLxsk^!CIuzwYOIcX7zrDNMg>uwAzmo0tBl%58WIQXhKPXU^KT9;1ii`gzP(iNC;ixl1SK#wBc%ZoY&Mr?!T)2%* zq>3&c)qcB+=$P+S!Fh^cX63UU0ymjj)tke55vA7vTtJ|7g3&|CXU*Y0h6 zfOB1Xy;3d@Jh4u0)auBHKQ6Epa`0$%P|hzoBdB{lwbQrl0b0*>{bXf+H-Y!yqOSa= zRrdDn1Ktq_`nBd;;sx`JqBv)JzI5DDkSS}!QAV`fi*W=iP+pJHtF1gd_N@Dm8@1C2d|9)K zyz{H$5TQ@n)fgFSvUegwQ;KVykl<$+pdE`5U?9c{w=BvqUP`LDXgYIV5$npQi#Jd< zXYN}I985rZKa7%tT{u9F5{T7gCmDD8kG4-WAmNGkL{n*6@-iLmj_K-7r?B8YiM2MxBLcdT=^^_ z=Oy74W~`w&AWEQz&{+z%JnBODF@|dDy!1(Q2P-^Z`-LL#bw$p>MnHdycp5=JB@I>D zNi<^~wtcu}o3Ch{9&?ymPsJ6&Wv_N+hI%*fDtO~(4easQxEb(!rM|9bA~z&{lh`Gch2Ds&IKzq<6(Oo@IJ&(g+Y>+ z1T6J2LAO&_uc7eU!(t1z886|a9LwmqcE4{29kP*Uk7dkUyVwkO**o{;KZdGuT48~5 zA%WVoTd~D0bCwQf>cF{50+#D3qLIn4^JB_jmlys@|4o&>^lDL6bms!<$bU2!p?n-n1Z}K1($H0$=t`FV(b>fST?-)_ zfpJlznQF`z-&>kQ-|s4B{H+t~)W0VQciO%a0JluY*M*xTEVZN3taR{D1U+rA4E$*d zD(!3E=4ntoOaVU4frjwXxdPJKA0m{K)*t^ac6+oQS^G!vdd8Ny1}Q|IWgs(QkH&Pv!T62 zI6BI{k=+yBLgqK|F2d+n@9zecqVF(il5cHoqe8ull&g+)?NH{sphw3e?UCk~P2L9q z3kc@82x}!+k<^trC4$~*C1*J`&t~~Enuv-42pb$~Te_c%P*f*sfM6EQbS*q?3i2yh6!-zj_q@6$wzj&pKjn^a3$Az2$@1}i^j z25ns6^n`AE?^k-CSgDn*kz#+OjZ?!^BT*6jaTePgmXL6WD!={O2Wj_qn6zLHS=xbY z;?=fijuU7~i#)39TEGa4(kPzQ{TtERTIMP#`RRksu%A4pC?Y2bIqArnyToHiB+Z1) z=jso+J!ZTlZy~2--bg@Wos5^-+w!!=1TlaF+rL90jT%WqV`OiEf~VGXmlaihF<0s(PPrJEatotg<_f>Uejqhfu5PpZuQ89cw58A?n1)Vm?) zzYh50En%y2U2z9owjv`?IpCDR2R%H)U;Ut;o4UhdL#@9(phrqV#o`oqp#e*zu=AGM z$Tob31_od^=XQfRG2S<$B%0$|GD_}8osxH;cp1UB!trw4P@ua(CA+vwc7u59(}Lzs z2xIr@T}wpJV7=HczdP6I&f9T+y^T+U(ceFi=KJQo5IV%;eUMQ-7NgViHrfz;H`aXW z(mLmx$WDfMO%u49o+NbH^=DLcHE2prH}%&+&>O=NP-4MA5!-o-3a(qhY5}0IKqbz< z{pbAd`{k`~@uLmfzBIGf2cPbPHGJH*oC*P16<@kV=quNTM(@fd!FMx7g);<}Wr@Y@ zrblsbSZ9OCF3Ji^Bvq*9c+%L1685HL%BLIo5c{9VnAB+BMgl{<>E^cGPJU5dMW+)) zA|J(9S=!XSg9mlFqfm82!Uj)v47USL%Xmazo|5?^sG60^e)ph8SmF;}w++6}4hQbV z{QU@nuW8f?5)sk+V(!GTNHC3DL{r7V>}_mO65<7aa(UJ~nR7?_>lKPgxz~gk(Gk3T zoG*)2K=1&hSI~q6C>u{O*MGS5e*Kb|uF%LB})=N~DhTO%<4A2ON_?f0t zySVrlxUG< zk8VYV(7>zW0w0TFs<=?2SJR0mQ!%>^Pb6~WKokb>m{$dIla$1S1O}fYfXmQKtm|KM zTmpaxr>nKcSWbwDg0aVx@bqlK9EBSMHQ z@WwVu^!rGRY|+>X%gHxYi8dRf=;>F|?>-lTiDwuxUu+1?u;((~eA>;Hjv6KH zfF5CBom#o}(`;0=Z=U8DNB?@7mmDxp1_<%)B#Vp`CI?0)?$-}WI4t(=Xt7w3XlTyJR=L3unpf~5zPN9c=zC&Uhq z$df>&J*Dn@2fkndE;c3AgzZ;>E`&~Z>S(S*yWyfjyJ5s^l|P_}Mhf80PyXIA?ZNmU zy}ONyAcy6T>5@to|7?zerFa*UmAd}57e|>)?v8^8I)0;*mj)7Qa&atUPdQ^rK}>f^ zmI0GsP_>!E?sW3s6DPY@eN?%0@di8yRQXep=DY_B4z$h< z?Y5M_bQZrX!U?IarWsrWz#Em~NQ?e$_A~%Q)KecY-o|DxpwQ#n;;Cj>d;Jwid;R(L z3mHX%H=|bn!Gbs4PGa7rzi0OaT7|<4R~P}pmRO`R^2WD4 zEIweFY`L0F06bVZjF^suj?#ki?w$X|wES0A-du^Q1>=CrG-nXOBx(r!w3$eVh+~d- zYz)3c9O&hXFPF!a#ux9L& zZ8Y#I)MERy$XS*YyRXfD)>e%G^-9*3YabP6?cEvL0Kxc(3`ty&Jr+Eg&y$vD;2GPi zOON787F9F2>9XNYHR%e?;g{1g3KPff+@#z?Zjo?!*wG4P zRG`R=CT(T6Jl;eViG_?2`Hiq+kt$fQr37y$^8HOzV$(!OS1o217V=s!cJSUfYQbl< ztA=5Z45z|b(b+96U?d?8271P(WyO|Eb}+(Fc`ZDElfh7I{N(>)3yg3$P5(W0*ocu9 z)wN`r6$8lFKiLjP#z%=|%KYTw2fo}lQ;=CTb^5eZfqF&JMCEBzrEH&oPhk@LSEM`; zo}31MQhI0bk-Pl)Y8MQgo_Y6~Y|^G<_aev{Lpiud@m*G)%%NLJ^pTy?S1#5WtLkWK zmKRddm<}RV;`Y6>IMZlbmSN2)n1^)eNs(E^?lxBNkej?WBhaR}(J zYq$mdb)6F&^^6@i&LqW+tJd~Ky!`|V@ho03^!|{$Cu#&9>iREQ_y6=6CP_FwJH0PW zm1xo7;ic%N5sW4k;)@Q8Lbcx7vZmLP1%oqT&K)+ouZd1pa;6baCEj5fi6pvV2eU2M z*>z~>G==u1sMD%K48n&0xc5HxV8Wy4S3gkIT%~=-iVpdHDOM{=ke7gPPZq!#K>I)t zAdb2aX8WM4$~=g>krUQx`<%J5%O!$@_d(Ae-R&})o*adik_Ank0wM2f>eLag@EP}+ zOI|Vhm_7}{Ja}%T`*Wl_cVqbfyRUy<&^ci1<}@r4Eb6e?4!-PtloF{D0%BevxwD^e zMJih?oYQ7#sS5!x*@~5XNaw+ke)cS6tbGBq#C`E^RTA9>+)9+MqODhG`&_Y(c%wAX zZ4Y#t`KVs^zE1&uGIjs`FHQe7n$4Bx!(YAd+dMh)J@fsHjikLd-`ro_;|6f91r9`t zcXN>YF(Rm=(_33IB&7)3_@}0Q5U>zMKYr?8TNxU4$@R*cqPB^ld0TEfy|qFwJNk(s zsS&4OB-e(Pp>|tP!Jko=l*>~9@g?ueQG~~udi0zDo^OIDblY@~*lb+J9hul6VR}@g zJ?$e%R>9%&!AT0F)Ly`lp}MbOF$zjL97UG(mSf2(Jez;2+sd6h{tByUdFXWiz3aB{ z(8|r&72P%7%_-Y8o)Q|o#a&gPdZDM0NXjcf#7^>lufrq9>Y+lc&&VV zn`4-*ATwsJ!CW2!2(Z_-Kek_(^d>CLubDnQkZ;reWyj*83f`?2S-7A*M*3*@6xbPg zY`X(4-M9|=#5TDcHqpRgcec{<_|7==0E#C|dYwk6Ht`e)3%67IJ6qXlw~?`4{XWoO zUsV`zCF}V3)gfHjJxBX)UDJXKP{YOfn!19jB*ua~>@D4AW&J3Yd7Xqo^L&$X3rLRn zm`R+K=^90KcgdRfH_;CLpZcB@E88#~{&yLiTbYv!f7rk0{lPKM)-xj8-j6yam<@Fn zWywy4Cn+?E;VhmsLeV5|u>-8y&3{`x^q?C>ab?uL>_V$c;3A}mt|fCk+?mLBAkb$i z=R%Ak<##gwPz*-;WpU!p66rCP*;vj`j)a6ysA4eL>Qe8bOypAZ?KRViBome(g}92- z#R>whmK54JMo1ayH1C#~ zlO`w7Lh+=FtId+H{NXJU)(WcjJ!(kOegCJF(2$C5;U~pIObhxs6&ksxQdmlZ^@3{J zLFQ0`mEvUbZGOOjw#bO-VCV;*N4oWmAaRQRz+(`VSud7gj#0I!eR=KU<&Dpt z?Sw}&BVn5C$o$jEPvBd;*>xzyDY>cM74XEcn_)CV@QpZ)~9`3x2bu#7#UqvDVd`U{ny zG&X#UFce&<_7eCdvJ$QoJv^qi93F3B43*&Mrdx(W=D>`&xL;3_=IlJF-#v9aXhDUy zajg9($JAV%U=q09zC&#zf~jh}xcToT#jA2Vc$vEG2pyXio^T=hkA!0!bVR+?L_k;( zj0@d``wWzd6PlXq0LP<-Ecv)3aK(s)Z@wbl=?tENnxWRMt;12r_21?Ej;K2H%eXfk zbS}rS6hqh(LlVDgamPXue-f<|ZRZ__Jcv}4n%64lz6r6E40h>1)QBS<`>cRS5Rh zY~)XCGzVbyascB5dqAtxpK6IN$Ig^%dMk$Fx6N7yVFpQ)>Nn1 z#Z{IE5(A;h9wz}k0BeZia@`X(I&_!TtxkF|Rcoi(>ptYPaT5IIO1E3M$z?OgW6F@T zLDB*)n9`wWSrG1wo!5bU74vB|U%%^dNtSKK=0D%Xv#fhOl*8?w&hR)z*5^Z~*3IHC zFh^5-#OaOh{R_Y0{4&r_dSf84h7lLE@Owqw#~`!;#(~e$Ocfru-#Yy(=(nPqCnV4^ zThqE76X<=d7G~`K=5^Z7`|KvEJiL~t#=qc*uQq?&fSmFO6QrrS0%5c;ygvJ5 zP3Z`Xm3{?#UtA>UZ2wF?c2u?T<7;HcQ$9cXv?kN1OS2gyVJ}Q$o1)&BxvDs;vgDIDdbu-gBdrnK}>m?q3cfom|Xn6pz`RY1%Q-{bB?`}{M7c0lCUjS>bx(;>+QEa&?z~#w z*MvwsGLkP;;t(R%mlASn>tEF-t1>EK+~;-9H*=ywu@-ZS35?cBZFrBVlw7<(-#uIh zLLdu5HZBJdDE6#Po=tYvxa947QO!yYdaMDVm*uo+Qa1aZpj`6$wK-}b1)2l{8u7oM zJ{>6+m@l+N1C+-qIm*8QtaOeQJE|!H_}{giOu=74^Do-jWXjHW{tQ}k&_Q-7niuMB z_5#j9MCz?PH|q&w2j5TWv*vdR(0wl$bcnVoy)Ox{ z)QI;ST~D=6k5j_RuUoriAWlzsN71bHI5cNx)$igK3>++#AF420%F#)4GVV%@Gu%Cb zR42D>^8YC{?Q%#Z6X~Npr2=;B?zT0(^u*`iT3Nels{P%65@KI58mAI*td~~Bmgg^6 zZc=FFX{Xo5V4ADS*qD+HQvXa{LyrA@3V5)&bXY4oMm9+l%cE1hz++^#!IuN!_rC32 zVSB^e_9pqLs{Mo;jcZuqrRu5KE(aO1yS=kzBI-~7+ol9Dq~Ejes!=T%ET{!u6MPd3 zyl;_0cYS^>jqHw4HV2?Px-*gB&{3V-aE@?}=Ja#Uwshq(84((|xMwn2mfU ze6^oWHFx<$@`ovXjlqghuk{wHC~A2?|7r~Um9eDoYX8Qh2+xi3T|C-0kqdr%n(`(9 z>0wh|D~IqUlU!vGELm?dh3B$pw1fOzQmfH8j!?cA%%>3-_k6SH*lMi|_H)a{?vfHs z^;OzQR_;ON$~Iq(UHyGpW8|@<%9ic-sz$BAgOGW>M){ep_ubcb8Y^JhYENToh>2bK zBeIK?w}~hFQc7)WcYoMJ==`X0(0JRfaebu5J!NgEn&+_r2Kha7Vt&DncPq@QBMUv6 z{9vs*z48%M=5ZtmdXaSeQv&^Cb)TSwH$=;2Jg@KE30MA=z1&fKS=~Vq#3BqEop`Zj z(RCX)J+&8qTeY$V42^rc>ypQ6%{);X%dWHe;^9r6A>a zmKefD5)Is-Y0m&?SVyS{8?tc-Z0Y9og$HBnenMfF$o?p4z6TIUyo@*u@!&A1)3D1n zvYg*Cu8zo1s%X)$yI!jQ)w|mGCPQuM^B~PNmr$U$6KCg=+S}ONHo)Q3XIGD-F2uX& z$gN^Vfl_JU#g}&-mr$MKaoSg~#BAZ?gJoCPzUD@eis2r;g>LTEA8pvHeb}ZS$Fj9u zqByO0gQocL5bn&m|EFumy15gzcWG+5LkFzy(i1StPsQQ<%vJke{_`7$;;uDMeGI)% zOI}{`Vt(pX_IAJSFXg9Jd^w0^QtH}AJlAy=-ff~dUp;LNg$~u7G--^tbpzF^@ z=J)yz6^Scs?v6V<-UVa4C=+A2+zNDsj6sfG)QOf z&uF;*ie`(YTPO8VbMgRL1>cfYZ|E+%0k+>lin5E>1oJmrC%mIINHD+H#|?J;>5+24 z4VYo>NkNnB)eTJe9t-|OIvE}{Qu>3Rc;hfNT3J`eG0*#hD{bpxRr`$XOb(u^=>Ea5 z9W934OM)fa;a+}=DW#WK9Erh};7II>gC9TG^83Qzmxvz))85y;$S4r!0V21bw_<=m zSzTlV9G!1dq6d}66oX7jgxA!N^~5enQtKY`@j@Hjs?*qj870GNFqIJiuX{&6LtWOM zU>^VB)s63zYA5MS=eZLRpOHL6O0^m9)@8OJc!9rgOIhYJZ%jH@KLHh>*J&&@7}Y)l zZXYb`4mgNhszpz&l4R9aNq7Smbe4ZffO#ISCntA=e?8Qct@Do>?{nCGB%4wdx1aQK zei_rKE?&SdCmse}oJ%eyS7=gcW?6a3h**6Wv~-Cy0?yFg4br8Qba!{k5K2l89RdRk4d3AX-MhXuf3R3MdDrl#ZRu!!k(OR*wJLzc|X#km)2{f?sl)dCi8UMx{NhbVm-nddDi#XrF(9NyCq z+z^tA`jXPtFXN^A)1?&EHg2eYilS`b#met%62$)8ajRtRWC_zeTZj4`osLxYHKl^< zT;9h*&u1I;iG$n@>P_!=R@XPcf6_Ab_6jt9wm_uyd>*%poh@DYBqT2<*PMOPI?FDt zsMWgfQV9K2=9Pv~Qiu4=pH8cmd*kx@q7e=u-Ppll69$$>u~^sTK? zLQVVP5Y}p_?^zA#jCXpp6#AS@E$h$CCRQ_%dUO2<_i%a&nmG~AZrm4)5AoGjOJoI@^OYQdJY)6rCxOwKZ_N; zuCNfD>6R8h=_N((YM1^U?V+!A0DBu7Y&=+5n0ZtJbPbWTPl2odh%iQ4Vfz>_xzOV%vwg{4Zg>fDXjiiM>#iXvO`kz<=jAE zJRhQ`gf4yO9s16rltn@;klG_*N@KA%{DEZGvu+3Tb*CeVRSu7_Anf2c1jLTL3yF1cBMv^g{dMXD!T%C z7HUd-zXr8NH%olKbdmCG2&vjTW+9v5RJm746i*4xJ*Jr;EEYT=#D<%wU zdxID;(?Ffz#$>ZeNK2FE)m82Tt*iSr^6_B(c?)lbWh&(j4j>jvWA{PWYKvz{?1r(E zsU*zL`>qN=#jAJ?)&o%P9T$RqJ+S~u^j>4VR<^$O$O})6+G` z?C7|ygDP{K!=AUA-cp)(U!HV$s@w~cEXSyL7t+Q2^z}=7^6~~IlJ}c8$FZ~K3e~mG z5J)G{hen6bH=@X6n^Ix%c=fi54kJiGsueOP?0pmZZJiP*H#du$}EPhVk1I#lX z+-FbmfcnNc!2?6r?*=6-+4HfFHrhO4iYo%*XI=Is|p zgO;s3PU{`Uq58V0z}SH=sXqDq~%fSV(>0&k^bC2KAYg<4-}VFO6R&EG^v8) z?h>e{_U{qD=lpOep$?Dry^X_Jr<}yK3gomU_t^Elg@66McV;_}39j-yWe?u@0Nj6% zDGS_;^PRm_tupcaZUo+~vIUrtFO4`7YL|cDYqzefs)|Dp@U$NJJK-I6V*4xhV9kuz z{;58V^l=pqCX&74Lhn~H{4Ra8IvS)w!K21VLZzQ``t^t~d z56X+eof-Fp`@cn=ep{XNZF}Jg-;U(-1f4M-)Ver|x^Ef`qM@~@H}TOGF$7w38m`J3 z7XW`$+J$uPw%GME2kc2mwL5!58s*i3den)I?07J&m&Y9p&}`253bYZ%ektdjIKna=4k({^!4 zmtUxJO4#|@e8mSsaMrj6eLL|p0RRWtS+Cif6k1VTPPK=}0QxBr>-e1V(TqJye?R*k z;V>Jdz%v^2p+uuF3Ku!MDGnDEnOCiu8d299@LU*dUHCCPb7pkJSKUWU81Os&xL4T? zCJ@pJxiuM7D<+4XQJ!knzb>Usl111Gg+AI3*6|L)_0t7aYK$E3JN8pwNntX$Ndz+7 zlA*`)0c45jeZBuM^T;*X84w!Ec3StXcNz7rCGmNhqQ}1W@U4S>W8+v5Z_1L?y|b7X zC`;lh5D;?OOdeQE4+PKF&3#KtJjn0E7?04-ARGrtB%_6n!Ez1_guF=2(7I_P*bST2`wORO*V03gPDH^zf9$?cu%o? z0VnTVk~id@>w9|J`R2E>X65MrJ`@9>@A1QvS;nBjHYr<1(@eZdMPYlKRp4gpkGNDJ z-1{epiMW@omA?_Ingc|5nl-5@BER0-Yc_?Wm}?F-pph)*uqcT)^GT$Tol-wdntT7c z3|jw1p-z@OzR_#+aV9c~DknAPV{2POuj5Fw+eoG1!L2?`A)j{OfJ^^@n*jwtdxw`9 zeVF;-?fmCe`B5=;){4*qQcMTv-&H78LAGS*1&1`gk}qJwI#T#XQF>K+ylZJqkO3)2 zHi8jgcKnYZ!s9E^?b5c0_1qxmctR=IxqBfQ7N7d`k@bJDUn!m)R zHH_i?zgw&&?OinS%Ty1g>}TogRnHtaZl4ke+x=E`{@=6w+cs%p!1QGI2mud8B+S(F zw+NDIZ!c)Y=b-Vm8hMO?{}+ZlQ*!bJvy>WU9a1sgKx0h}zbZ`~4NlZ7<)F@5qS+ni z<4FTKJW7UzNn9T3!{?Y5FR7;HCrj)^%7}dFcLece!)V^%0bBb_okqyV^r)Bg#YET2 z8kXku>L9sWIASPep^8qz{nv#lrI0l}r{i2<&q`RRS}nGYi@H`qW1Gjhpi+4)>Xg-n z`U+vaja+j;2fL6;cC*Y2#{=sK>tgb#>=F}&gLt&>G_2AF-dJMlNS zfQ)hoMRP9lA2#V~c}3+sgc+H?51( zZR6Z#BYE?froK&3b;m}lg%rZIiGvd0%6E5D;rhW@w3J7 zVM|3|w-sqrnF0uyUG~E^IIyzjcuwy75;4zOP4cO@+04jBVfRUF(Ewa!N1p$3C?akQ znu))FF2S9${(H$^g4o2u3eU z)>JY|^}mlV(?~)2YC@F@?21B3#~%ZLexw`$GNR-{_Khr4Qx>RZ^_em07Gy1WAZ+M# zlD+1VkIPztMG#SN0Dz87ic%VDa&_mT@|q}^MLkO;)w?^?tkZbqV@+0p6o?lGeOQbE zQwx3Ns&%V3-IUAy z-7Q-oQG`Q!EcjeUHxM4QFOnB$8P}i%ly2=dr6A=mvE%84lK9p%ru=!tpqP(Li=_;SnOKb zZ^U`9OQnzE;M}OpTASmLTG{Vsq#UR&^&Y)idu+)>K^xYf`DryR@@ZBX(o_p;?P-$k ziW>W^F3!2Jiu5wcNpkzB;_tox@ylF@J<=Fn0#cS04itO9e*XnLPnSd*e_0$JN*(8k1Pw}{*!!(D{E!a3g2NN)+XobZv4 z#gEQRJ~SND@({5HiBm@tpXB{cXwTd zd9v36QGUiDO@#Zmd%C`ytyMNy)|C`-IKQF%RT^Tgz3er-kEls<)Un))S#Up0Tx`%| zn^Z@en^gt2Ej=&!#hvE%kZ7!*Rx&@mS=${DjH6O-`A-I+GD@b4M%}13i>^{^!S&sX zTbu{CmW1XP^p;qxaB3${z_Jos*g->NKbG0%)+A;HKahneQ2HykFl{Awj@5_-KO>EJ z>MV~d&ag@W67|+NS1B(`NWV8^3?qd{&tEY*>gHjWO+2P| zPaJKZ)+p(P&o`xi;(joU6hd^$w(A5dpHRVqD=n%5_{T7O^y7hF_04(INI);clJxc< zLV{NNE3Ag`8Ka=0rk>)M4)v+$?b(dk#J>nc1L~y2z@aQ5frkxP_ageb*<$j6rpJLj z3vajwMr!L`p}Euh+M&aLHUyXIF&~{YJCnA!pA|2uP9?+nrc^X8Y3M{_Yxdz&b+fjJXwVeBnmf50IC~LQ!kv(f&n!P3@oUj@Nn`K zt*_GI03MN6{wkYQhk4G= z#tLVSpMu^n&OIcj+FU(6@!r`|*UcNx+iV%`og_d=khZr{Jig9*u=(c;8U3E9G)T+o z`licbeU-8M+5Ax6-|S37D!V;S=!2v1vrs^bkJ>sSDga+?9C!8b`p}D6X40)yx zVWC$>_n^ZPOYcWNe^4P`6=n*26Ai!;ekHY2i{od_$e0=tfF>T=Ajn`gyvOD7NFb{# ztoKc)2Q@tlc}M7K8L@8`HX}uD*|0~oINdzE54AI7Ps{ZL{%YiOS#V^)?svif{!E1S zpD`IdmN%8>IRD+*`_Sg=pHUVi(rP8G3sEQNuOy zdOr}%K5HU+B8Kisf*%E=8h#Zd2p0gV^df4!MK1iL(WWGvuYCjt29s(5H+VqO}+e%8#_bVUfoJiS;9PH3X@p(?Dr%+5Mk*LiqKi<4VX_%c`5HXJ}>?(KG~n zfTr%H1iukBA$16? z`I#$U-Cc!EFNktMl_yQ4zmA&7>Td+FOjrF@AQ^2=Ur0@hO~3mOLoqG~9?|}i1MCai z`s&c{hv;NbjMY$1`R&b;i!ZF^b=H_!o|u504J~v|#CLbT34_L;0P>AgFeyul#p4V4 z=qu~l;JSEZ{p_^w(@9O<2!=oG^tt*^>wE(kLO<)Q--g+(h9=C_dsF1 zGICf{T`?FkQ>AI~%yyOdh#vD~_@pwpka5bvdcm#@`mMufPk)&oC^aZIY;2rQxG};b zR$k(vYZ&yC+RxRabfIp*wA>QMZ{}cAu|=*e3U{mY`lC{Ce65nRzK=^nFEyLht&@Jm z1-oNfLn$Ywe%Rk_$MXFEs^``kR46U`dG_L zJH4&H%$AE?$3V9yxvCGWyV8qTr#bD|vsYQyFbA>!s}>#7)QdRsPui;1X{CtnBEZ=m zf^BVC@bknM;WD_Fz!wLwH4yy&iC6MD;T4@w%)&T9VqcqXk&y(PjsUJvo&9_pF>WnG z-HUgq78#6g@YViqd25={`i*b*92KpmnhsTsVXAN@+C)N}?ccbFV75d<>b?U!%#R_i zHpA&ASZ&Qa=>@s>8d%q&(DZFXg{(E9f$7rXwdYROCLRC%LaM69UmI;Z9aNZ z_A43s1L~4QpCub@_q~AUbHc7EJ2ZK2BVNMiaMFt@vog(?%m?86hmCN8l9qB2CGoI#kq$tUQX zdQ*L*g(Dr~YXe7z@V8cvbfzd!_C8ute(|`%b9!jy)n-1G5J7$GSem~$Z{o`orxDHe z4LM)rB=X6rE~pD_@wF~VbsO<)qj5|WWQpswtI&RTu7zP>#P{se|0DO%r@jUNP>2~| z$(a_Mw&A)KBq?VsS-P9TbJ0IpYeG}$t-a_9FmpFwjr|HCua_`mPpD`^8GA$!+EOP( zh+?4mdy?=wRhtjSk>&-KRiif|?%mhCYFj;pu6Uqul&Fwgg_?h8np#HUOaIoFq^~K z>CBhg#+CvmGrhxa8;K|>02}(^n2z85)r+WMkfAs76%tX25k{^7n_T4U3_`Wm zdyk7Wk}+-JucQvH6z@)nj70}e^VAji4?INUzhwO?7P1ZR*b#h;ipi~5-;v)?A7TaL zvD=EV4`^?jTQ~Z4=r<9 zA0$3Gwfzwu{}7lvft?t9$g1;SyPc1gt! z9uv?II7o|s+6DG#J-vM@=JTs4WD?~n-Vg%%B`%&I4G9WvOwHV_=Ob}JlmwcZX2fRD z#Tcr(A|n;863iT{MvdbX64xFHD#JO~jfPBu$;g)?j`yeLA>$6>nt0VLW`BhL+ne&vSinvr5om?v-LNGyKn;xo{qI7QowYQwWwX75DyUqFSwR#>6c)c1RO}1jkiAdJ!XYYM|(`) zq0ORprkSwWb%QR)gYf%S7G(zQ?=tR%ae7)ub z*`VuGCx%TH%_;(TlYwQ$c=pDz&tA+I*G@%my^5en(pH=P*tWN_q5a1h2l#nf7e=%$;`3LZ2F)2*GAK2o^-U`am>F7Vb?%;HpS^y78(WxNfBN zXxaqc1rp;~0I#9?66%pxRQ4&LIj4n49ojvflG|<1%vn5|&J7D$YGggOd{iMlTmrs2 zaonxbp68p=fiR6x3X~fTv!GC;8(8}6-;v_PMi(bMews~1D$Z1O6J97HAO?{{OcJ3+ z2H8fB)Qck3blaOv#7~Y}L!4my@y(a0%N;H zt`EQQ^vM6oFOecjz6TQ(%VV$?{jZxw3GJQePkp=6p?zhgrIhra1HZAuEHq&XtrySi zeg~K8P-oGZIoSon)*gLMzj~d7I*3yyLd0{7mCM#Eq^P0KjFa4TtL^3g}p=8RZP+X*8GqnG>psaXeEgBa`SY1NXO#oA; zmTHY7J3?>-Z6tuvoROidON=+WU_S+0dESXmXsi0hF3Z{sCZCC1JV- z*21;|D4!chsto+k;88bNo?t>Gw?yb1q*~V?^c+)B!Z6-Vsvj3BI?UMdRh${TS)j8& zm?ZP{r0B&Xp2VF31nHww{#E#g#t)CyXOg?Nuer7H2+ms1md6s!UNa8021<8^0r+{) ziKgAm%z6xcZqHIaF|9(lxSY*?CgOuA2`Mz!3C<{RQohw+cwoJ+V0eqsx-siP6G-DA zNcpGLrB8Tx6CZmWHI%oO4of_G2i&T(=~tUlvD;cMnP~JJ*PwWEzZMc|RxyT(L0x9u z3KtN3xdSlj!xY__aW(Mf8#Gz!{j)E=3WjvKBt4WQyveR3Aefo>h(p-mBSw~2{P8N7 zjI19~R+EE|$#_?(EulM`J^Srs%}0DO-06tTlczZHDl9uG}R(cCAW-7)^z zRb1(!I+UHqmJ^{5rdk~Uv)F~mM4PpKJeKWENOFk{zzcL$6mwZ!O%&n+snnx!5>{_V zs@Qp9${z9I%N%><4f}wJBsT_6!C)OZ&#UHR8vj#_kXds7qc9UN1lWyDYpM_IW(ij1 z%-Cwu`M{T9mCFuKu;STIGhMoA+IplT&$zj^pv%Bp5PT*oh*=XaaljfBZT%QFEs_{glpXt~XTJ3lky!AD8!@-8o8X$%%@>anT z*u|(iyPIc}_hRL-_0ZB(1OW$(jquy$K%J8p1TAo|T!ZEcJC9+V;h<-)Lmr9;ITf%+ zAM~Xybr+V$62h3ST!+MSaUC+;JCP6%b3BM+{|DZtiC3tK!rn*{tckp4jM?H+XO=VN zG{iK6?Vd84xD3qKTCx(Oe?>gtlH732cbps zWk4{0^R17tZxI8h906Rro%kdb&jh0*jxDyf`})e2(-MbLzEG|+xEdes_)}=p&|4Z( zh0`zqD(-*94W|icYAD6_1TbQX5GJ@@<6N53m|-0}POYudY39rT)R%{tCKcLB{T0?^ zRyO(nOz9(rU%}WD5N3(HNO;u_Robj8UvBzVzEhHeH3sew5xN}{BeX^VZGqT3zu3H= zZ-1iLC4!pp61&j9Oiw{!|D)nt%M5;SnOat}wH^x^8|7LAD%fxn1ArC?;K?wPcYKud zF|eByry{Spy0P)(PEpptpk&gI=Wo3@8pOJ*h(HNG^yZHXk+Hk&{%TpV92Vz?l1rf`G0x3e><^&?-x`76Lxzd z@azcllzl)T>D+Te0&LppQB8*O@4iH=VBciySRY}}#6ByN(Y!$Yp|NCF!eoC{gO~JM zdjl6&!yFZqQ~m=~_b1iW@O(xzXv>opHo&u29$Me(k%=J`q(=sDCyi>V2L@ z6Rb_(RcUQNrNH>wdN0ei52ZO*W)imFps{w9_T*%% znriXKD65wS_7ZiP1fKmhHB(E9d3l-y6|~Tbxyd@FOeb9sVE9YdQ?U|@CH3;J7h^&P zZnxz-P->;^Aruzb^T8dOhL*gub-;%EMLASzn(t(i9InFzpRF?M*R$?xJa8QQncc6a zNkRE(6QP~2abrvD+Y7&%P}@tw+u1v_>L*xwJ&IV3;RgZQ_`%y1q;J1?=0rDIzz;sU zcD)rv>E{2nhEXCwq(xRhKU+MTi#TpSg8yfv)kQVrFrWQ$7{RLYV9#%Y(ab2vnD$53 zYIrSOHN6H|m0N5*AY_o-f|}`-LLF+G_^ZFB!_4Ls4qoB`%}OB3sj5>V+p0#L#u?$( zYE#5;x5+oqov~J%EAKGES)dOEt4f*!!KoP*z}za?$C^9ymLA3I%ExEKz;Ei2znyX| zrPtg&CY#1ouU;T1N1Zkb=wuWpzc>cHV!4XfHk2$cwl#mNC8<8ghq8VneKRFps>e1A zfY$1|#TO=(0(>7k6qLTBjD5u4*NOt_+WBhrazwcY_lBP&wpExO)GaVix`FJi_d z#{ul{(_m8a?8f>)Zhu$7EpyLYUUzA2^x+{LZ9Ta-QYmCCR$Y67HGFlKqay&hz?#9n zB96S2F@e1F*hi@!cw)4*lBDVjqlt2K+tNvV2J@ZDOG`&b_hN9P_gDg-qx89eA4TrI zovcAQ6Bu3M;&MC%*l|p9zFTk08T4bg@QwRW3MLBtHlV z_RAn`dm_@rLW8W7o^)i)7|m3~NRJ#e@Vqz|bGQ`Id_^G9^6{C;5Dw25s33b7H5T7* zJbg1tUg0Cl*k4e3+R%vya6}i52IHKy*A&O9VXLCsdPM5ZuU!8cR)5;_w~vM>B&FWm z-8mT3I4Lxof7{B??+<2mW3xw0BF$DokXluBdS(9LiofjX#KjLLiZ8S<1@0#dmpM+| zOHV!KX#$^{KgZ;f<7(E(wocY(&JMxeTu<(^Fxkc$gMTpf2**=O;pEdrlw4VW0OU&R0cJn5SbNf=mu3AnWa}FgBkcpIE6}uZq7TL4cKs)SgATV`!H> zR)DpZ8!jM)2akzC=!n7)(#7~lWQ#dgUBm59~!a^i}Ey0 z`uDnXcKaYvopVlgt#RJe>QU9^DE_ozV>L`7$QK zuDs^A3JwNR>)1Q0oSv)&2ykwVygSw`-_gyi*&kuc55YKUtnHEj`#EzVQ%}@L>!r3BVr0v z370rJ2s5{0y@z~fwkBeCcj$ynfU7uEEi10_W%0UcE(8{=c}d2Dxf$j=oF$3wh_0#e z0qX77k=ibp{+!osl@`nD3H+Vo)1JG<(U-SON8MPK@W!7cHpISt=pe5~;aIg~9wR|y zW&WRM)#>l3_>zZ)Ce61rJ-Agk@i&MFzX6E*`vUUJciBW`vnEnZFH5@PVrbZV8Kx*p zCL8Do<8a!4O(gt$=~sspP+Xgp(d_hReTUP~Jv0Yeb&+KlE|A;S>v%NCe?@Z3o+K1_ zr|_x~S@i-QI2GL*^8U)lcDz8mLhY1dUSOw|iyr-pgroa$V*D#vV*v4wDeZX(UyZM3 z@@rY+cbN6-M(gd}pGU}p27oKN`0)5!%DD#fwqA=68s2$$mw<&H#TwGhmmQ*O~#119~>3{qr;qa&40#xFqpAcNiEr-X8h*Uiwh0=Rn)#SAlQJv&4) zRfs2s41jV5ea;Ytq>1v@*3!!mY}6&j#?{uM0x9=P3DbCN=pjIxu#CR?B&w&zx}EyR zX{KK%Vy0Tn2uEhgXT&F8GeDP-sCy0hRnSNeVcY8>kX6&)_tlCsQseN_>BHPVW{PTL zHoy)cuh5FMJ5n}GQ(B9~KgRyHbxhUAztXaj5x!a@9CBlpVF8E4^MB#fBoz8$kCp%& z-U?zo>U<`dy(Cut6t`qeV$Q-T)(dT9-t43`jxRs1->AS$lky^-;%O|F;n#L+ar}q?@j~; z$pef3pAdu2NW`=uPGdt`2W>YMb)0GyKaY!fna%Q2F+Hj56!pD_B)N^Np=hU2r**Ba z@;WGa?kl`q(PWzHa)CZ%Z#tohyu8@{s@kQ6^7MGVYbr{HmPsUVr~T{`I)rTEy;f0y z2@(CMl2sZ{FIlJH*9lAaf@xG+@jcRr!0m5-Ph+s8sygM+RG?%aQ&ocgW&i(!VvOm5#;gOw8>y&1 zT57`egl@)}t+T4L%EHR~3k?-&34~+$$)1t&1Z| zXr`YPvoA-4xa1H+mvnW#?VD5Y{zTR|I;aN}V!Z7a#wTk#dUiVO`?Er?@aITHBa$db z!eS=Nd1g@l$Cph$p6n1w6bz1{5W5y%w#$-B;J)LJv9Ly zzYu#U>#5nuUb4E8c-DYO6iJM@!@Q|sMJe|sZ#mB28irUA-tLg4Gua&IzbqJKxbIC*`%PUL(YX>W5Bo{+K7x;~2)7MPu znNi14RFSb>@*d>g5izt-0)AbpZLPXrT1jq8*RL>*-|BYy5(Tn7dI1y? zt}GnGW^62Oz&)K!T5tVe$j$S*PYql#d zOY_)(y7NcZ<_D|;{W3#3!zE4~q-=d|CwxphZoAIsj5^Mf_vxpy9{{7VHF4}30s2x+ zQiAH+e`fj$*vZxfhor6quBff>gzuyrC;fCh-S0G&w0ztBd{s^>a%5~Zdqsy4qlVXk zumPQTR*q18>BSoJQ?!vMYnA{iOg2oaAR+o389dovRUxHJ2D*2ql$S$2r)EoXPSGE@ zDL2NA!=dDtwC9>1YvyMjymz7*b2)dJKK2B8cg1%I ze|6>U8?x+x3A?cpqQOJ!p;L&n{GS@Oq`qy1NS| zfi#v`0-v8h$0xya)1Nv!V`a07?O{Fqrc%KfD^X2feI4UG+AkuSY}e#6$g!=T!P^05lU|0T%Nc-_*OdF<^AMbbw~fqm3MKpfaw8oqw*wv zz?GE^C>(&}`B=lVW~W_Mu|AT?Z!};)+Asm%JIDei`@@a3OM{p@s7#5fMp5iDx+D45 zPkQ~OlT+KfiDa_8p)aX*Gf%5tK=9Y_b&?my)}_&8-&<~3c+5H%7}xMbXwN!7T|xQ# zIwV3B0|(V-dh#>1YqARH4X)q$jm&O-NTH$6HAc%lZpTL|oRG+^vFDhJg?If+_o?j) zMrnTqZrR!|UGlgV+rdmEy+LrIK+HB+^o|dOTCo*26vdm3f=f z0-Kn@>pzQ?OD9dv*@tscem{o3Jeuoimau@eW+Zs$>YTIezjKJ8lQdxbx#am$yD($S z$dj84YsU?uZm8uym(}AY8l#)We~)qbW!T=s>`4XvB?97iw%9O7^QaU_D{7a!&W=!9 zC>nG1aMf9so8d_MwN={(>}h=^Drlyc?)YHWqCmx6)2C=CMWM4-K@uf&?RS|TFj5>} z^>h_e&a7v|1gw~Ei1e>-{NC_EKnuJ$(H-Z3TkGIK&6nuZQxmxgW#PADVP)cZT>>4M zSo*1rmgvA?r<9YlwXe45C>o~qdyEsY1s$9aWSYZE-q-oCu-d3OV6OE$y@9W)waO7F zU$1lHMp)5pJAb@Dw>Swyb!5t~xLT0Qf7y(0(Wx_L@u8x~`%X_svj6=A7AL+zU@1b;Z*?#H8 zVFkO7JW{Te#|N%lF_&IHfFzK3tWd|sb-%|mPpU3q#`9e1`dF#016eTF-oP^W%&+PG z_Tt&fHlW4s9Nz=JxBhx;>YisV*|5=4$ZgpY8*78XW5BNdx}V0)PWnT^rIB~P;r?Rf zVgnr|!l;&|yw&=eKq6%~e)Di3@lH*oo#Y;xd?=Cd z6&+P&hO(y4_=nh&cGx zuh!@r!O4{?x&-*np#Jw}!l^%;It%f4-B-D&q-qpd(?JgyXio=Dv2WFHd`iQ3w1vzM zJo30VUTojWy2+UHxC{9OTz>it1X#Y$>S*ZjW>?Qz*RY$_=(x5PyE*h;Zs%bT|I25- ze!|d@eLueWq~A&YaN|WnDtv2b+6d`h-%@xOIz)8rG6+FTA++^CSer`4v%(aAoIUqXS~bFeILhkOBHM>YY_M? z+eg6plr=DuPAWWj>>o-J!vG9Q+0H6`!aeV@ecgH{e(m^&KbG+Aj)+~?PGyun%Kaat zB^eKKDRkOAqrZH|T?S>9>#s5!z$4+oyzeSj5yjj*XjnER&#!z0_U%eQ_OA@+KMv)@ zVjnC^Db8ZaR=BFRe1@s7VxPY1&~~QvKBLfV=Y5)A9+AIHB7YfOMx(AY+N2SdQY|U^ zNKhw*cU5KmGS9pKQV2QE@g9|=@>tqmG5GTNT{B(lo&j=RJ6_JBYVSVX>+Y{qC1F{T zydb{vVDJ5@5c1CFny1X{YT+38Y<;q*tJ%45>XvQq8IQvGK7;&bzLlYhQl8hfz0P4! zdxL(`+ANpHsQrhA?aVd(nS)odON(h1lvX~+G{}O3ng9%S*^#?<{Cr|V$dM*GF;U6+c~aCw6SBm6=ve!O=W-3g z+iP<*uWi?2zL<22NhRr`2 z|G^7B0od}kB42^`G8f$z?68*o?6i3XE{epjDVEGVho(lFY}~&mgAt{5d3@l}-r=*> zbW>E}<0kz!5@Nr^Z#BF*i_^~_5exxLS`TyxjAti@UnRXyrb{{9Rc9Wh@= zrfcK~kde?~A19YH)K2x)Vb++>-ECOy7sjB@Zs%L36#dBcRW1tuJI5T$gTV^fll|HIxSEC(uKfOpYZFho!?kiQzE+txCBw3NK zwphLm9j25=i#K^;eqyVI$@qMd?+9X=maDLDZhcIT3vw*B3nNAqVS$EPLtX=Wb$(wy zCB-n|Y>#q0RDO+jRlB1jlC_l+qNI|AD*AB-RhkmsM)=qxgYE~iYRJSO4Z6R2V4>I7 z?+Cl@^t|q?=(_DIqgPp0B2nZtoudqXE-L6d5hWTo`p`A<>r-47J zXkY@JMsEL8td^3#Y)&{@X^Wb!^6o6Exe305bb)w3s{6A7IJ%F+6G~*v`}o^U7cm0H zG%T+D34xF=um*KeWQ!k49pV%B=A8#yCJ9AYuQD|aGo7JIApcV%Ae%#u&az~Ooe+2~ zo)PCaq;%{fJL+|Zdsxlj`O)HqC7kf!WJk{{=xE}79W3h_u3oqYL@EW$&*{BplOmT+z-6hdH?SOPu#&ulXjq&WQdjR%w9o%I<|2_Y9Sf zsXe9hKM#lR;Ug<1Z2n(cR~`;!+rGz`n6eEDWtka@EZItl!5Fe-sSqM$NwSMF*1=@o z%AU2d6v|G?G8wzFXDw@XV_!%3JyPHMz2EUW<`2irG3I&h=f1D&zLxVm@69ix3Ield z!hwLb-ny}QL)z;wNVQxeC+@$3a!5KN_9PKD%xm0Sl<@=fowOlP>Nab?dTF!7V)`UD35$XNF@=c43)j_Z9%2M@+>_MkdMWlDH_wq#_ zn;jP-?UMC85w7AHFZ+vvc2J2Chd<+u=SCJipCEd;$9YdaL390>sggYV0^n%l(@4^l zvnh|C@#p0aZs7Cgd^*4e*$ZV?gzdcFZO-g%cFYowy9QAsS3Z&!@h<9S^l~~=r}{)n z_Z@UD3+%g`HZIo9)Z7u8gA#k+efEF&~t>_-jcYN75K_6dGjwN6tW zEgQ1G81~&WA>vSxf|g>^SQFxC{F&wqsqh*Qr3XxSawSkn%5;mw z`7S5iDlDz9y)!|V;94?xI@XaNHcD-8DNj?sTs$9MNGewf{C-WQb zk0)DBnY%lwQ)QGY-&zZ3V9$^dGP7LFaAfdsOn8j4d|(rRo>uU=pSInN|1M~6X+wIq z?~Np-4ZN9#TOK5MK@HCBbQkR_Bcr2$YWv$@4B-RjI}&pE3csGe0sg zwaLzBh1I7}wV!T0O|7bv-1k`DTQzy$(WXgLT6BDSC_d@Ri2Cujo{7W>L5GU1RPX(y z1!s1}L2U)U)v2$coApLJ3IqNHHNU!)@vOB50V-eCP#%s*X$wb= zp$EkEbJg_f2O*h)G*$vDts*tHRd|q4XnWuoIYmx{OYhq?h$&-X=Nhb~@vV^V@8%vL zRZtR0XnS_D)@9cUI7o2Bfd(n$v6oTv@{=WzgtT2>Wzl ziGd_n&Ii2JbiK@^0-A+*ftA1(CH?K?VGRilU4TGtXSgF8hTS8|gsl2a-Batq)sZYbhp+e!v=WWP$@SYX8(xWO=lNupU}RJhx?{K6sE z@lYIsNQ`_$9@nd0ja^R$4uI$7gGaEtebf1AoUeEFX{dPT1rfvlMu#2wKR85(8QDPv z=F%bxwO?)tY9@RsZ|`oMWOQ1)F|`y_)|191W`I4<;#Y`9O#nGxC-jK06&|V!0D~FO1o?-ZABO{rGokF+@e7t9bM@@q~UT zq0>~W5u)y~C%4VNFr&ZYT6-52A;kJm*8Ed9|iCg)yZV*N`tF}&4K%h6r zNdC%ju4^;LoPw7Gb{)q7@;f>(+Sv>j_c%6~_khv&aRwHf8 zVvT}6i?Tbl%Ehj}a35jvmL92i4Pz{hR$`7(6uqs(n0jvDBtVHJ+(IHOj~FO_n>*-7 zfF}zc=<2WSUI*0)Z#6Ymlv*o-;*LK(tH2m$MQdNVAZ${dtT`=sedIn{gOoNk@)u$k zP~rWG0JQ3<(~+8k&-G#^3hTOs%HIUGm0tmun3J0%OEc1R8Fy(P13W0P>LzK;)2?gF zpBbQN5g7|P*KoSFDT{!GjA~7$YyZ`u`Fl$QdIivX{@a!dWBT7S#vJYKu4ZYdgBk=V z@8MWA52H|MkyF^OEK3C_$i3UswaWv7u&fpDd-nPghM)jqxGPdEK#!p_`+9w=ti0-L z1eeT1_2c&`bVTgBC40$-40G(>x#;H5Ak_vg6?A35MeN`|6L@3`1(i^hM~90{vbz3f zfuioA?#aTCfMKQmX>A_R&2$Yd)X!5_phaf=m)iKVFEo_Cfxmw>e92U$&5R4^@n%6? zq*AgBl)Ad(6OHAV^qnyt_tlnx1d^8*{4AEyCvQtHP{+cnOLdpl!NLCHWZd&X(wFp{ zc%klyk;FH-y_j@PNY)Rza|c--FY)b|vEs=)7swj}uL{7w7a7LX9*W+tSNQ<*(+CCC zU42?Kl(P+`2pXGzc2k2UrH&>$C-1W5#79WyXl(GO>5MvzdUc=v`73c+W0-VdaLJNt z_O$qN&k975uSq%xUAdWX#uGp%vG0XRI{5!o(Ca;k0#MuE&h1AvGlA@28*ZZ9T83~y z1=Qxkb8h_Rgu+ZK?aP{M4m*sgGo-8r42~`sinWDtX^>CPm7#PqV4Cea-Xo2De!l{znQJ5G?x4P$t30sv<28`=4y#`Y!4VL73f=T4RRJ7Yx#VgpM*qG4Y)ezB+A6G04mH9+VKQA(K0^6 zw@yty)@W&6Bud^mB-~8A*HTS;o%WK(E84s^r{!x)`_gRm%&qK5w2(M`$H=O9k$H<1 zQ1vf0p@j(VZKR0=aCc##LXu!ta)|MH;q7ZN?lk^5a!akz34U$}uM!%JCuBfPx7-yu z9&ct?o?N@Q5$_y27M+?6K?FE`IiCdzdnEAGiIx$H3@WD|mX5lg!9O(j+{F@`TZ>{q zyIgCJjg9R|Vw6E%L`nkG=>aTvi4dov|Mb2=T(%~gRAZOM>q>ot6C=aWj=thEUDL?A z8Th(YlN=d39d*y3qDZEWJr$StQIAC~RFtYN-o$$VaW=Q*^|0HP7`>?QGB>V}hDp4& zb-O`7KEzpf@0&Ju9?zP7-SofFPdZG;$=j@Y@ZSWzR=J?F-Rt_Tcb? ztGl1F_e~gmLtU-o)RRbWh3nv6{<0X8w>jt9HNyrf(Y`<5sO7sM3!-7^S{(omX+1VY z=gBwSqy1$ZItpP4efs23=A$i7dr@^_YHO9`N4w0_6HH8q$V}>`>xq`8Uy1L7n<17? z$3#xBZD|RgXtc94otY&`RFt_yC8zj;EH0A1=3dA^%;VgxizJ7GY;A4XEKE5u!mWKS z?T8@3^-z)Ogg9M3Ij_VE8tglt=krxyO3ww{0-*Q~6P5UQ4LuPVo3y>H$o?g-<-40p za*parqBq#tN+`&X-=ldM8ql#M%@J>hl3U?sW|)gNc5f~@PFd>f&3-g0OE2X=z}12^ z*l2x})kK*F$ZYA>eOhbVK7FH<<)2uwlw(GGc9+7HjWi~BPcV+&#j|~6e1}$rbR)0( z1 zuzhW~x(fi*ey|V&9LI{2w;g}<&#>AeW1@Y4a{P0j?n=3_V%WB#Narh)v^V2NX(iM* z5lOHu*T0uasV5Z4YAn$jvx;hKicYBqBu!RfFOCZ>X3O7^r$5=++$Q#*XhL-h28AKS zuELmfS^4A2g_5lsQBCpnj8hV_*X6ukm(>& zE0vRoFi90+YrIIdb{7=h7Y%brur@7ZwhVxMe;6pbw++M09cQbZlGPT#M{&k2D%|ko z7xgE=9)o55TjCZl`fcPuSeNW)eOAoDhYWY?7e&iLLjU?Ez8w_Obr)KjeKJAb6e=t0 zZ!vfjXb_TNglF|hUYGe#$LF&Y&!UD{Qy<(~l54Sf3i|n)0xCGPY$QmNc9zx*88^bi zV~(v{meTfJ(OI?V3D4!;Ms0OhSe{RTJqSS?lIUxb<>|2MX+U>QA!=WN&B=Jg{?!%j zb>*&kiyD`Ajl1H@QF`yX@OImPs!P#aJ1L*l~c-a>q|Cp8u)+s7RpiDJ9} z;e~j8WxQPIy{f(-Bwe|p)Usn*@ECe$?Uz$n*q3Z;XZ0UBS>Q*7sQVvsP)#rv)2UqZ z)MNpwiX4u58eb=vzLGedxKnb4z;A%z-+1Z}Pt_WUdx(JWUIY2HM}H2xe7|6<$FDdv zzBknTakBE+)z50Z(*U+D+z`+)S`)w*LTq0jQwccAE}*`d*U%w<<0&>83dwA#Hd{%@F&I^Tx62Rr zlm4i>&d`aX@V7O24kiE+2N)>gn8!R2Zj?u9TdfJ>vz0jq3NI~rPD^)-+-w*}vL|%0 z0qIzD1Xb-BE91MXSYU^1jwl6$s+Dk`p-hg0lj;iIv8{ljUW__WfnuSfnB{>S#Yul2 zzzZaf^ZQw9`tvZHCxNLQ-IlvbjF#tepUrVQFXCWeWCKZ`#wyphoPhJuii6`M;`+LI zfX&N|b1F8Jm1n(!eLRu@*@38(ikVf|5hC}m0|y2b0l45f?i=xn{%$4)24aJ6w#Jex zCRw`0O4F{uV?Osqh5+b(g?8YO#{b43{WBxy<#E>Kjw1ap&vkaD^Hyqo6Y9!Id~@?$ zau7h~hT`ZQ6s!O0xt>ksO1a?@IU`?8>#3qW?d~h9Kp^&nSr?K2+bFfU_~wv`_L$^aO?uC>vlab3*fIV+|x&$G)d zH2@azQ<))Os9u+c5K1Q!JMQ4VoUqI&YfO1__Xh9^;t{=fpif@85)o$hCq9k?_Qn9O zkh}8(>0&9Pfe5e@i+{V{Hc?e5E_Ke;7)9~N{QSRc&ef>^j=Nb zGeuqk(A5d%zka<&-YRGf*5gBPd42%`CjwGUW9)v*iE!EbNT|=FeGE*N9`#V}A>4Q^ z!F|_}Mla*YY`$<%*lMYuFGnN^EH|(_u+f_VVth^}x9&AY@YF=e9*Sl-F|-;eCrVkP z3;>b2PR4fL@A6lLhuqAYZ?mw{P|B&Wp!N}>X0t#uW6Bp~$Fya&8N=|hk)Zr(va;>A z6-6{*|I1wN+-!A*>Ied&47Eq0iIwWT1z#-gxfwi6GE^*fQw$cu`~4)WLG}h7u8YP zmY#rJdse+jbzEQh@m;Li-_{ZUP?P}Q0t6;0e)np>zz6~L$Yb2FTaMrTc4p2MHGDPU zGXdzX%7jvRkodc@mb*oonL}!nvyMY{A(zjA$AYC&+InK`VnK?t2@R>!#zIH&I#QfDJ>2dgP1ngdzkWNaPBwRoc)oJG|Hbd0a5?MMZ=bq}R#uIFiliCbT<= zoTTgX79fNv3h{u7)ifWquPX@O&ZAxDPGvYBv>o~~V>!hS1ZN!ksx&~ASgq}NL*{>{ z-~lUzDl<3~4^l*E`;Yl;l7?7y0q-msc8$4&P3$7LW7kdj2ic7ar>jjfA19_MRrvyO zc@_H+_hcBGE%r^X&V=hU=aL144bs{qSKFh-QfyhU?w6hT|Cs6h1GW=Jo4<%5Gk@Gn z+!^06c0Zu}4`HIFkjy<%rUr69n><~mS6-A#iz3anBq~)Lrg0n7V9YNkCz-e>XQWiJ z4wq269l%Mu+o^D)G7t+$pKWg2#T89_DT)~^s4WR(As}kv#kkUUe=SA``9E@f zzt_+2IWheVYYHMT^J(_yVe!{LEE|%Xvr~9Yu1}{dbS%A&72MtGmH4zhKXcN4i!2nSbAu5Zv592q{Tui6*Fx z$n3zC@!J3GtAD=s5t05U)BeYipI0z7gyGf@oUH_%1YrC$IGoPEjPRc~O0fPo$fydP zEBF7i^Z-v`dmW;~53I{MWQP=mWaR9Jwe!VXm1^e>zYUnO{cz>%ZS+cQqYdIA{P5)j z>5;obf*azDAA6STs8IZMHoS_5xAX#xx+i$!@!>j0LwsSFvsrKszwup_n1cX>XUntM zz<>^3S+B&M5!hL|NaYnt$e4EBSsyOH<>rZ-D0=zrlVZ(jfug5nu?A8s;G>_0DIhlG zzZWg{9!JMWVOKL!lE=z`9!AJF08B{GR7P(&(D}m10j)rV;Z8Ka{NMY*qb0xtRREs7 z>Vs6^tv_x;^V(>e^im1;K)FqyFi&MrvksJChAc+u865pv2R#7g_Zao19%SU@|L2!3 zKt5~*AXf8P^wmlx7-1lcX*LfbtRL7x=~U6c8N%aZbv3+v5RYnr>3^z14o+EyE5nq0U<3vMvkG=o;r^z_OTkUd- z=SKDxpOnY&f*onjo;aFJ;AxUstX*Bdc~9zj*H<6x*2q;A0((3G!;Q%Nyc>o%E zZ-&ARs2B}t9jt2&0cY+y?XG9b+0|@$)L7N*eyXvlS(C207)$E&+3O?4d(Xx{w1e;V zH!eh{{rai1o^X5bK60zio7DGkjFq^f=d+NF?rp3_ZfVL@rlRG z%fN;G-KBDBxTj-|lt%7*yVkuz_-^6JNcgYMa2F@R@e{pE9wWQ73qFg}-fgn$FBt}? zWtS;--=>lIcZ1Wmg9rN(OO|{Nc1c#=Q&zW5!}pg1Nmf3aR^bKky-v7YMmNJ=2ScWD z_D>u3Y|9vGuEVwgDG(Ttpi@SgpY)J;udY;0`QtR^+e4JOTW7a)7T>MkT`c|n=;M|% z13mJ0WEaGf&IZ^S8H(PN2UlZG$50ra}?M7~g}4R-ZsbIgNJ zyNjPlGo7yk#;(2 z$|ijtKWuWW+)&<~`abl*d!5s9#9IGtb@@`yii2TK(n`YRFZykg!mI7;f3|cw#!>7_ zuF2j*@^`jY0kCL5SnZKHAyQ6oU{r$9y*y^-ce+ZhsKB9bfq*Z|hT+!xawp=1UEjuh zU-x=lLOBB6h21kbAoopYIY6r; zkR?XlY)&8$Xy#Bmko^FN2s3QFZ*0Ll2iQ_!IeePQ1?4q+q(?+3Lp%`AXL6;wRp3YG zfeOHTenaRtYX$xNOZheX6^AXd&B%l8$k@K)3gD4LX%? zcTUHs{0+k{%cH*m-YWen_<#-sIye|Z+D`yuraBxmCFmIoQS1z=Y!LVaq Date: Thu, 29 Jan 2026 16:12:28 +0400 Subject: [PATCH 3/3] delete powersave script --- powersave_mode.sh | 7 ------- 1 file changed, 7 deletions(-) delete mode 100755 powersave_mode.sh diff --git a/powersave_mode.sh b/powersave_mode.sh deleted file mode 100755 index a2c38a8..0000000 --- a/powersave_mode.sh +++ /dev/null @@ -1,7 +0,0 @@ -sudo apt update -sudo apt install linux-cpupower - -sudo cpupower frequency-set -g ondemand - -echo "===== CPU FREQUENCY INFO =====" -cpupower frequency-info