From 50321ef4115507fd95e351a417abe8b45a84cd83 Mon Sep 17 00:00:00 2001 From: Stille Date: Thu, 6 Jan 2022 16:41:18 +0800 Subject: [PATCH] Update README.md --- 01.jpg | Bin 12473 -> 0 bytes README.md | 185 +++++++++++-------------------------------------- snapshot01.jpg | Bin 0 -> 86057 bytes 3 files changed, 40 insertions(+), 145 deletions(-) delete mode 100644 01.jpg create mode 100644 snapshot01.jpg diff --git a/01.jpg b/01.jpg deleted file mode 100644 index d60e11b3cfc2a9bc331f85feb4e54538480f4943..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12473 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 diff --git a/README.md b/README.md index d51b5f4..d62cfc4 100644 --- a/README.md +++ b/README.md @@ -1,183 +1,85 @@ # rssforever ## 简介 -本项目为 Nginx + TTRSS + RSSHub + Watchtower + ACME 整合 docker 容器化快速一键部署方案,支持一键脚本快速安装部署. +本项目为 Nginx + TTRSS / FreshRSS + RSSHub + Watchtower + ACME 整合 docker 容器化快速一键部署方案,支持一键脚本快速安装部署. > *一键安装脚本已同时支持 X86 和 ARM 架构* ### 前言 -[rssforever.com](rssforever.com) 为网友提供免费的 RSS 和 RSSHub 服务已经一年有余,由于服务器压力及个人精力有限等原因已停止提供 RSS 服务.鉴于很多新手用户技术有限,特将 nginx , ttrss , rsshub 三个项目整合到 docker compose 中,实现一键部署使用. +[rssforever.com](rssforever.com) 为网友提供免费的 RSS 和 RSSHub 服务已经一年有余,由于服务器压力及个人精力有限等原因已停止提供 RSS 服务.鉴于很多新手用户技术有限,特将 Nginx + TTRSS / FreshRSS + RSSHub + Watchtower + ACME 整合到 docker compose 中,并编写脚本,实现一键部署使用. ### 特点 1. 本项目针对新手用户,提供整合配置,无需繁琐的设置,即使是新手用户最快也只需要几步操作,几分钟即可部署使用. 2. 使用 docker compose 编排配置,所有命令,配置及环境变量集中管理,方便维护和迁移. 3. 更换服务器也仅需打包备份一个文件夹,迁移解压后一条命令即可恢复使用. +**一键安装脚本支持以下八种模式,请根据自身情况选择:** +1. Nginx + TTRSS + RSSHub + Watchtower + ACME 自动申请和续签证书并开启 HTTPS 模式 +2. Nginx + TTRSS + RSSHub + Watchtower + 无证书 HTTP 模式 +3. Nginx + TTRSS + ACME 自动申请和续签证书并开启 HTTPS 模式 +4. Nginx + TTRSS + 无证书 HTTP 模式 +5. Nginx + FreshRSS + RSSHub + Watchtower + ACME 自动申请和续签证书并开启 HTTPS 模式 +6. Nginx + FreshRSS + RSSHub + Watchtower + 无证书 HTTP 模式 +7. Nginx + FreshRSS + ACME 自动申请和续签证书并开启 HTTPS 模式 +8. Nginx + FreshRSS + 无证书 HTTP 模式 + ### 环境需求 -- 至少 1 核 1G 境外 VPS 服务器 ( 国内服务器由于网络问题,不推荐使用. ) -- 拥有自己的域名 ( 自行申请泛域名证书可使用 HTTPS 部署 ) +- 境外 VPS 服务器 ( 国内服务器网络不佳,可能导致无法下载脚本, clone 仓库, docker 拉取等问题 ) +- 拥有自己的域名 ( 托管与 腾讯云 / 阿里云 / Cloudflare 方便申请证书 ) - 服务器未占用 80/443 端口 - 服务器已安装 docker 和 docker compose 环境 ( 未安装可参考下文简易安装指南 ) > 本项目不支持已被其他服务占用 80/443 端口的服务器.请停止相关服务或更换新服务器部署使用. -> 此项目最多一共会启动 10 个容器,服务器性能不足请不要部署其他应用,并且私有化个人使用.避免服务器压力过大. +> 此项目最多一共会启动 10 个容器,建议 2C2G 及以上配置. > 如果服务器上已有 nginx 等占用 80/443 端口的服务,同时又有部署的需求,请联系我进行付费技术支持. ---- - -## 更新 +## 安装 +### 更新 +- **2022-01-06** 更新脚本支持 FreshRSS, 老版本已转移至`ttrss-rsshub`分支,同样也可以继续使用. - **2021-07-01** 更新一键安装脚本同时支持 X86 和 ARM 架构. - **2021-06-18** 更新一键安装脚本. -## 一键安装脚本 -一键安装脚本支持以下四种模式,请根据自身情况选择. -1. nginx + ttrss + rsshub + watchtoer + acme 自动申请和续签证书并开启 HTTPS 模式 -2. nginx + ttrss + rsshub + watchtoer + 无证书 HTTP 模式 -3. nginx + ttrss + acme 自动申请和续签证书并开启 HTTPS 模式 -4. nginx + ttrss + 无证书 HTTP 模式 - ### 前期准备 -本脚本适用于`ttrss`和`rsshub`域名使用同一根域名,例如`rss.rssforever.com`和`rsshub.rssforever.com`将自动申请`*.rssforever.com`泛域名证书.且脚本仅适用于首次安装.请提前将以上域名解析指向服务器.同时参考 [这篇文章](https://www.ioiox.com/archives/87.html) 中的 `准备 DNS API` 章节来获取域名服务商 API 以便脚本申请证书使用. +- 准备 RSS 和 RSSHub 域名并解析至服务器 +- 参考[这里](https://ssl.ioiox.com/dnsapi.html)获取域名 DNSAPI 以便脚本申请证书 ### 执行脚本 ```shell wget https://raw.githubusercontent.com/stilleshan/rssforever/main/install.sh && chmod +x install.sh && ./install.sh ``` +## 注意事项 +### docker-compose 版本 +建议将 docker-compose 版本升级到 v2.x.x 以上,建议 v2.2.2 版本. +新版 docker-compose 启动的容器名命名格式于老版本不同,使用旧版会导致`Watchtower`无法监控更新镜像.除此之外无其他影响. + +### TTRSS +默认账户: admin +默认密码: password + +### FreshRSS +FreshRSS 首次访问需要设置数据库,选择`PostgreSQL`: +- 主机 freshrss.db +- 用户名 freshrss +- 密码 在`rssforever`目录下的`.env`中`POSTGRES_PASSWORD`变量的值`rssforever.com-xxxxx`为数据库密码 +- 数据库 freshrss + +![snapshot01.jpg](./snapshot01.jpg) + ### 定时更新证书 证书每月`1`日自动更新,请执行以下命令来定时每月重启`nginx`服务刷新证书.也可每月手动执行`docker-compose restart`来重启服务. ```shell crontab -e # 添加以下计划任务 -0 0 2 * * docker restart rssforever_nginx_1 +0 0 2 * * docker restart rssforever-nginx-1 # 为避免时区问题,将在每月 2 号 0 点执行 ``` -## 手动部署 -**首次部署建议使用上文一键安装脚本,以便配置证书的申请和更新.下文手动部署将无法自动更新证书.** - -docker 及 docker compose 必须提前安装到服务器中,相关教程网上很多,也可逐一执行以下 6 条命令安装启动: -```shell -# 安装 docker -curl -fsSL https://get.docker.com -o get-docker.sh -sudo sh get-docker.sh -sudo systemctl start docker -sudo systemctl enable docker -# 安装 docker compose -curl -L https://github.com/docker/compose/releases/download/1.29.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose -chmod +x /usr/local/bin/docker-compose -``` -安装完成并检查 -```shell -docker -v -docker-compose -v -``` - -### 配置域名解析 -分别为`RSS`和`RSSHub`两个站点配置两个二级域名,例如`rss.yourdomain.com`和`rsshub.yourdomain.com`.并设置 A 记录或 CNAME 到服务器. - -![01](./01.jpg) - -### HTTP 部署 -#### 拉取代码 -```shell -git clone https://github.com/stilleshan/rssforever.git -# 拉取代码 -cd rssforever -# 进入目录,注意不要修改目录名,否则会导致 watchtower 无法监控容器自动更新镜像. -``` - -#### 配置 .env 文件 -修改`.env`文件中`RSS`和`RSSHub`的域名以及数据库密码 -```shell -RSS_DOMAIN=rss.yourdomain.com -RSSHUB_DOMAIN=rsshub.yourdomain.com -POSTGRES_PASSWORD=rssforever.com -``` - -#### 启动 -```shell -docker-compose up -d -# 再次注意需要在 rssforever 目录下执行 -``` - -#### 完成 -访问 http://rss.yourdomain.com 使用`admin`和`password`登陆使用,请及时修改密码. -访问 http://rsshub.yourdomain.com 并参考[官方文档](https://docs.rsshub.app/)使用. - -### HTTPS 部署 -#### 拉取代码 -```shell -git clone https://github.com/stilleshan/rssforever.git -# 拉取代码 -cd rssforever -# 进入目录,注意不要修改目录名,否则会导致 watchtower 无法监控自动更新容器. -``` - -#### 配置 .env 文件 -修改`.env`文件中`RSS`和`RSSHub`的域名以及数据库密码 -```shell -RSS_DOMAIN=rss.yourdomain.com -RSSHUB_DOMAIN=rsshub.yourdomain.com -POSTGRES_PASSWORD=rssforever.com -``` - -上传`泛域名`证书和密钥文件至`nginx/ssl`目录下. -并以`yourdomain.com.cer`形式命名,证书后缀`cer`或者`crt`等均不影响使用. -修改`.env`文件中域名证书和密钥文件名 -修改`.env`文件中`PROTOCOL=https` -具体参考如下: -```shell -PROTOCOL=https -RSS_DOAMIN_CERT=yourdomain.com.cer -RSS_DOMAIN_KEY=yourdomain.com.key -RSSHUB_DOAMIN_CERT=yourdomain.com.cer -RSSHUB_DOMAIN_KEY=yourdomain.com.key -``` -**注意:如果使用单域名证书,请分别将两个域名证书上传至`nginx/ssl`中,分别修改`.env`文件中 RSS 和 RSSHub 域名证书和密钥文件名.** -```shell -# 单域名参考配置 -RSS_DOAMIN_CERT=rss.yourdomain.com.cer -RSS_DOMAIN_KEY=rss.yourdomain.com.key -RSSHUB_DOAMIN_CERT=rsshub.yourdomain.com.cer -RSSHUB_DOMAIN_KEY=rsshub.yourdomain.com.key -``` - -#### 启动 -```shell -docker-compose up -d -# 再次注意需要在 rssforever 目录下执行 -``` - -#### 完成 -访问 https://rss.yourdomain.com 使用`admin`和`password`登陆使用,请及时修改密码. -访问 https://rsshub.yourdomain.com 并参考[官方文档](https://docs.rsshub.app/)使用. - - ---- - - -## 进阶 -### 强制跳转 HTTPS -**2021-05-28 新增功能:** -当`.env`配置`PROTOCOL=https`时,将自动配置`return 301`强制跳转至`HTTPS`协议. - -### 证书更新 -本项目目前并未配置自动更新证书的功能,今后视情况加入其中. -泛域名有效期三个月,请自行续签后覆盖原有证书,执行`docker-compose down`停止服务,并在次执行`docker-compose up -d`启动即可. - -### 高级配置 -TTRSS 和 RSSHub 可以通过修改`docker-compose.yml`设置环境变量来配置高级功能,详情请参考本文末尾项目官方文档进行修改. -值得注意的是本项目的`docker-compose.yml`定制化过多,请慎重修改. -通常来说修改`volumes`和`environment`参数来挂载目录,设置一些高级配置并不会对本服务有影响.如诺出现问题请提交`issue`. - ### 备份恢复 #### 备份 本项目采用 docker compose 部署,所有配置及数据都在`rssforever`目录中,方便备份和迁移. -`rss`目录会在项目启动后自动生成,存放`rss`的数据库,不可删除.( 除非希望重新部署 ) -`rsshub`目录会在项目启动后自动生成,此目录为缓存数据,迁移时可以删除以免占用过大空间. **其他所有文件及目录,如不清楚请不要随意修改和删除,否则会导致服务无法启动.** #### 恢复 -将域名 A 记录重新指向新服务器,将备份的`rssforever`目录解压进入启动即可. +将域名重新指向新服务器,将备份的`rssforever`目录解压进入启动即可. ```shell cd rssforever # 进入目录 @@ -185,13 +87,6 @@ docker-compose up -d # 启动 ``` -### 初始化 -如果误操作修改了相关参数导致无法使用,请备份`rss`目录后,删除整个`rssforever`目录.重新按照上文`git clone`拉取代码,修改`.env`文件,在将`rss`移动至`rssforever`下,执行`docker-compose up -d`重新部署. - - ---- - - ## 其他 ### 感谢 感谢以下大神提供的项目: diff --git a/snapshot01.jpg b/snapshot01.jpg new file mode 100644 index 0000000000000000000000000000000000000000..fb8e1659d14af94d5b81fe924cc9beafddc137f8 GIT binary patch literal 86057 zcmeFa2OyW<_c;DCvO-c+L{?>lGDBo!XKzBtUdhTivFye&7H5me=##b?$l2J@=e*&%Muc*IU*?ynSI9^%5))ICr%QaIz_;JmG~<6FNgJyppyu2CP?pKpiY9IPeQ?* zgjz2Iod=MFhJga(yB(llpka@}!6N{t{Lc!0I&|<4IM{Cd z-?;q;e-J?+;6FIPf<*%B#_d1)Lj>a4A_5u+55$TGM&q9hPT}PrCj7pT`3P1AQFXk;on3M-a#s0q-%wwQD4Fhrq+`PT?U+{U`!M zefLKM(j6l0ipXN3E)J84v0=xytA&#%F1_z_0d2K88UqugU0jIOEOJZ#%V)_G2=7ZdNK_R zStFApqN6g|b**&O_@xX;b+PuIBTdieJ){g|Z#7`vT%)sEhkGcRt*YNi7Id|?HIwGtsAavN^E?v3= zcMP7@7FpTaqIx!lKB;zw!rPsrauK)Kc0qS!p+=tN*X}Y$%GImDI>TBMdy4On2dJG<+567^^#});8nwpxB zkbsv6niUqr21j)E>}w3)f!jZxGah(OkB#Rvr~8tx2!77q>Aah-U(!@rv_|vhHkn^PZs}Z*O7^jT6T^qfa+V*)-po_f~tl8=koR zKoEaMr5q>ZrLr{J<%r#NzNz7LFuT%K9>l{ZSj=I>o3GH@f^aov-hy~5=#C>-yey>x zb0!)B?Ah0^Ut_$+DiH>u>S3B;G2%F_tT`Jy`0HlfS!T*bYWFfm)yq9^-e7^LH)8=%I(9gk;s3OyO1k@(m?<8Xfne=-%_z{&k% z0W~!>Fy7F?<^bF!IJje+YKg6XvXw)_x*lGur0L`1bLkeCIINrelN2I7b_fPKbR&l@ zh;D%5UI$Qz>NcQ1z{GI`xJO1rCd%{>+;iww4qXtcknY8Cen4n|)!7epL}HGH4j%fU zTi(AQ(HFmqVPOtxTwEKyg@9LBSol8X-Mc2HyZcu-Ftw<8i1)x?cgqcg@*9UbSlQ z_C8AJKoGk!;n7;j$*)jTQBe`O@&L9XpfNA19pmIm?7-Vq@(@vYYU`Ih+*4vR455Uc@2P0!Mub&zId9?yVYeN}g~3UW4W%n46ng zCTABdabw3mDPHsMB8;s3Xb?}Fk33JS^HsXGB~~R?q2$rXgIrGRlnV2*GrWgDW_OVu z?2BRc_6|E4Dkdi8T_aQI?vj5UhjSPcJH_?TFkN%8S>0nsk6y0oP9%UOqKkUv;N)oY zlsv9Y(pMu>I=#;fn(TLt~d!nKWU8)#j!l0qoSkWEf zlP%P^z?^-*+D$Fpe%R2;n?9s7TD?Lctk3+kb=b$zcIUf)joj`M=Q-}BBqSt!`t-@2 z4G$U$YzKJ)0juP`?e3z7h$B;#$lWkDY<4$I)yYO)m?K+^o>`qBe8(c!*|W;+*m7$n zI=66%@8ll?Q&U@W!XYr(RRsOMQ*hnKj|E`E7S`!?{@l*5#&|!{z2FC1q&qaGjEsy(lI`xytbm;NdpW3PNwU(?()aG&;|1JnpvTC!Z}XLvl{txJu^s@J*6BcW z52*Q9Sx}b)j>12GA3~t(a1a^jT?4(d*`rH~8W5feDn`#1Le}plLk(0y5^gAl6~5f} znrQ_%nsLw|v;!mE2_fgVlVNOiyu2_m!EO`4X9&zEPMtzeN=gb5A9oeLUnWrhS{uzg z#1c|7P4ujgvVJoiHsB#7eSeG_)~@zE$L-J=u0aT`{GDC-o{oP%iFxoG11>QO0;<2A z3?B$-2p%Mjw-BP?t46g*Vk@Jq?D43z1>?d1FI)k5#`^jp zP6tN3jpdfr)ov;lSaUJL&I=TbC3QkhxVCeb?`OdDsAsU;H>pmzKtglk#y$N&WB4i* zQIFxz2ekUvS&(I)IqLznQ4KaYf#vjFaZ_i8ndA=`7=GOKf~^%ScdUrISU^_S`_YB( z$eI(Dz&KkKE(FbT^q16EzYdgS)NR{Rk$1u0>Vq^`=W2iVw@p-PqK9`gW#Mi@H zi1f&>HR&4x-qQTbX@<-%hn zUC$zJ?(xQKdLq2Eg2lw@P9uxBmF1$rqgDzAxXc)TFJ~uTRf*cn<;eHe=q?#qDdl;Wh(P@}{5-_hAb&D+q+d&&HMj)YJBM z7w1(H(V!Lb@b~DzK{FFgre+<%ed&Q7{0#!wLnfn}^+M_wGAPTJusesBSMhIpI99|kD32-MmV<`8m!D;e>|WXk>%vpN_dW^2A#Qn#kYJf*K=4S*DGot_x$eGQ?#E&jqa z>ctUzYwSW{Bt*$ueQD9DuiaXbqJ4{N*fk@28*RJe<|Zryo4_}(@huXNm*hfAGpvN zR2ej|_?kcfag=1pDjqJScR*L7ucbcS!Q!EMX?Mt}j_E9HX*CF~Kviu_XyB`>%)-U3 z?k|3Lr}qYCaKM+LxOS*&agsVq+h3*Wd_n1HZ1sj0?;!v=LNWx?ODn(?P3hVj5VR;H zm|OC3;gRMnbzek#wJT2YsQ?SHGCyuNChmL|J`-nyIgjc$(`DG)G|OipLHYIc0~r1w zV1^r>2m}^!whVp0ryh(0R|fq#yv)T)0zyXuspzYe1_eT%86q2SuM-;O{2b!89g-KJf6vnZaLOwO&D9XA6|~jl-@HIiFo_v z{ed)yF02a6{QAX;2hNRhxaHopAvdl|j?9dVRU^+`EiW_DSn{PCEx1Wi6EdjT4y>0M zKVOpz66-Wrk||tlpS@AE#JUe^CvU1wt+|*G?UVIKk|6mA)mRjVR=zTDtvPkG_0B9b z8HssaCrni+j_HlfR&eOFdfvW(Ibtp=IcGdjk}fBAgPEIUOdYFV|77F9et6wl^)6px zhCEV9Nw;eu(jji&{?Zkq6qa%EUb10u7I`B`s_1wn zS6KIHX~zKGnG553Utl`pL6wNekjr&pb2M>TX*0VTcT>?B!q(R=7`=nc+K4 zbZsARbi)(3?mHC_`kDwDB$*zE3Vt9s8FfS(3!*jRv>;Emz9LPZJdpT>rBGzizndWtsU&+%ISO+l0);uWGn7?|hAmDKNk zf_>P?0bYcIKn!5Ng_Lc_lYqXJhgX=;0;$-6>5!N^#{4SsZ78Kjt{`+}sQo7df8+cY z*Ajw*eF$`8^6fp7DmIxEEl+>Z`l{DBD)qMeJ>lOtqk=@UD05cSbCvX!_0QNE7&zfI zh61GR>LGOB0o}Ua)BHjjw9pNRQ)4?@Ex(HnnK62AdXl41MR>>f-|q)`YpStd)^Ddl zu;G9S9VjND&=wI`J0!B*uayHj6dHwfPYq1$JxK>8KwPOX-wXN&oCADPC}Q{a+QIeo zKk6Rh4zf?-pvs#QnLQ=WC%?OEh$=J83&`eHyxrMQ;kvt%4va&zcA58p-T?=Khw228 znMa*>z}2BZc5*OwkNTX43^b#Jd22~X=w1pGcs<~+X5BF_hV$9IU3o_v``kiM8XKzz z`xM_yg1~R^Z*Dk_IKcqBiCeJ&UEL1sGN(o96|d-Ecp7|TvKDXTeEln<3ZYv+;QlJM zkS1Uep&&bu8t*aA_aJfEAK-V~K^V7Zae4auRq6w8Fl$yYyMh|&N*O*kU7@M;FsfyQ zKiht+gr<$Asx;#VpkKup0(}7&0nBp)B$xYU)OS0X@X!pL2;=sjIzvDlj1g3nuKN$n zw(hXhYWAcZkO0vZ6{`c8aoounc{5FD`3}0*8P#q7owE@57ThFUV!{s2+(H72tK|T6 z_GCd)D1Z_c29_}_+h|@?Wu`$D6JKGn-BTHyaDZPEMtX0RoL}1nGX1r7-;FOqJiuBk zkt_21V;3D*!D#FW5XR7+az{vjL^D7M9{}wDfqg)&LuC<77egY`0rd~yd=TxkJr$2v zyx)^{KmsHMqO!T34xuIl1p+Ruea^>rcP+TcJ;wF!B0t3skZ(Vg`#G|&!2}J3*GvZ$ z2khLZ6?p%1c_8+SQsNJC6jYzk6}CaPI5l&X_t@N7jCg>eAo}e88R%{PpV5T5-S%_B z!Li?4*#8+eRNn~}wl*5nM8}33P#G2>F#r*hlFKnLu+^`R_hW2SFklU|}B+ATax)$U7as;>il8 zr%B-H;N_|lqGl=$0n)RVy#P0z%Z^Cb4&a)8c+;2MWDJIZCFz~%JBsXcd(hlqpW@p| z`(q9VU(M(IMWl?03qElJb1x?D(_`nwQVaxZi+9-hiX4Hl zjY1vzbJGXJAZ{t1u|1&H0n;mtSLgOrgad{)=OM+`hBOQSZ;g?Em5u;G;Pp>^q0qEFaUjR|r$ly*~iho-E!02yZDJMMHq01N)Z2 z>t{a)6hdIO^$Xzue=lSx`}else5+ty5V|p`D#Zc#rT*$wMz~9nS!_)^AN*G*Dv*6`JE88n z-`@-{gDJrYX$rX7M9HLn_H!U7GcnjVcw-U%dKc}Zrt43`ZhXl(acd_i6l#r~(Z9O? zlLj8}g$ci}+(fOk&R-g?KYf@20`!6J=g^8qx^h005HDS{jor}O82#de2I8wZE?nCX z_qiTm8vhBew+WO)Qw(ho4=6=>+k8LGwMJcQm!XyNb68{#FB> z6ZPG%SS7bcK!CT(bw{1e+j=_NJ!uCdK$>A4!Iz6FGX36SdVuSLS>6Kym3rJhurS?& z%&%&uKj=ck)%g~7Irj$e@(MjFNw|4I%il`DBg|1z4SJkgvw+ViiPhrXZ(tgT-+$)x zZ!W5WS?TX|KpttP2}TOo)N~bm{VCMZz5glx7ZFI?nZ##o52$&-Jnj!Hll`AkjcAew z(D5i)8(Z-}kmgM#AqT!pXxu7;J8?U2qe$WVct-JM*acq$K82; z+C0PVX)y2;9M!{CFfPFNjs?Ja9IEoyq!kGC=@S_4?`X*VxxYsydRm_Y_;?!#gzMs0 zw{+q{3h1o2Ef7UDO9Os?AskG`!w6Q$WK#iO zXG?sZJ)gY};_R7y4+H)FzB5S;eFf@CwlODHO>Eo!U_ws2cMqKRJ04(!tNTGWAeUTJ z4FBShuV|XmJ41LWwAgu73RA_K+B)!NZ8)9 z2MTi9xebRdBy0OHwjyNYxg&asfaPIVka-nnb%+7udnlRLU`!f*ZC~J)JUM8mC*%eGM^IN?1N72~=_6IjL{TcLr%aHstDC~j)VcvEqWxEU1 zABn<1{z}3D@b_ObIiSMfvmlw)hp`C{-^wqP{NpQKztHx+MInu{BkXkB7yd6N{_)ot zei?&Z6@F(*y9?BxiT=?S82$uGkVe^|l-Zv^U^k3E?ql2Cz^}%C$0q;PwhmMNPp%jo zroF!|18I~U*;o75O&(n0cbsbnLq1|IBnRY?H*OpekL_x|Wmazk`J-1zqwEOlOn(Ni z-|-{-84Pwofi$Q6zq5~a*8~4@6w)X=jGO>=9w>mraw*u^~RC$0xoKc;r~pzPnsgBD@|zSryH zwex$uzyUJBA<`4JzXA5hRl!0iC81*H$LU{Vcw%6c9DbMek=x#co6st3)Iv^TVL)+Q@(o__@ccw&cA{U`i3|x*f=?A;{*F_z(GI2VJ$JHtbaQt z_Gtk1WRkS3nwr`@UZTyDkibWy#KeRS`t4KrZ%=}XGkoy^_zpgBFw^EyDBxoj&SH3a zq8Z%`&bDBK zh5iRg1p*PF^IqcO;!;ynbx;EiBmzz(;(-N@$+Km11P-(Uj*5}~mHM_&GO0h$%o z9gLM4fEMs~%Lf{~Zifdx7VXrjQ!v0E@HKh_JhXofBcLVN$Gk+JJOD9CNKHrpKGzBn zI2REX4FNc+aU(niPBUfwM==5z%AFTD_y!0>9(cUqW2wLgqyPt#zIJ7Eghl&jN8JW1 z5&59=f)8i|j-lWIZJ#p=hgS%kNcK-M5P%Cb8=ePnG@CmwAh%&{H_n@V3Vv9yBk&&P48j3<78Zf(1@f0H1t|0Q!gd*A@{3KERf3^Y}76fO(;T1H}JHQh?hc z0`U-`12ka;?m@P|paux?j|W#oK%Q(YtplwifIzJOGzQSDAVA33f;Ivxuy(n5_YeL; z;Q_2@3)&2LTi1X10!Yy9@Q?E$(C{V$Y-8~M*DK6=A&3kRMaN(Od2kF02pg1ufRZv!C!C7_@|>!6;hahwjO4AcALUpfo2pPHino6-E* zbr8>&&i~c04(bR~eR-|73{u3&tE-W^f49e@f8Q;3JIHNiaTM^GlZ*STB~!8);@AF zdYvrhVtB0ipYDFJV~j5wF<%a^H(!#vVC?Notr(v+4`R&HYLIlPm)49H;f^^K8y;U`@C37QNejherv40H+}CD_ zg>mdu_sV6)_|~pe@91!I4Av@db4k4{{yO>~95Z=STCc@)6pOaBWrKXY3HoK0p1965 zzeIf}`2p>WwOA#(%Hw)nO-sV&YG3(8(jC6mB(BlU+L#Y2uFcjou8^=n!y=qnxPA8O z-Kyxx2Hqj)x_ZH2BWvFR0Y*p3XM)bYHaNvd?WxwjcK23k)&lj`q}ne!&x5h)ME70A zF&DU-I9W%dn?g&=n9?@SmI4iD+is`g^bSSxOB@RmCe&nCUg>70lrn)Rzuey?sk?yBg z_jOo8n!G@$$TF#&#s;7|Uo<(b9slifGO@DD{Oli{yp0n_+Vry3%2m>3&m@suks?De zcAmbQJk~ZAp_$SeE2%9IP`{L26rxbguaZ_{Ma)cXOgKTA6W8w59JHv>WblW8 zPM^prfNB zpy4SP!XXnAOW2f%Kf=ey$9n`l{rc+Lw?Pu?ARN&rKzIy$yaFKev13T_3&Y@N0v?Jr zrx>WSv(mACa9`{!qo4wY3zR`JfAKP%){fc35?`@QlN|_b(8s=Bz5DU;V|&GKQA<(g z%>2$h9SzvSi>YaPJxfxOR%7$2!P7li?ic!9oBc@&si@~w6u?^iu79TFJ zT-rkAdozeJjcJ3D+V#R(^@=8X%{ltnf{htY9d!2IqjI!vri|_OdHvB*7QVirk_t4Y zSP~hW#!b!(EPUA7TH`o=ll|p=q+=1OQ6{twjX9)4bS!BF1Z$_jGy;f3$zX?sgoL5^ zQLiid^%k zl9gNLw3D=qM%xHYQBsxHLDf2#PJ<*V<4DP5KKE0@pXcky&KF@Q^zoi>ds<@G7o^$- z&&%Ux(k|7RovhF3Ybx&+5zQ;INvO>(J1ZuOUALdQ*^O^}HW%gH*}oxS%p#^nbx@)$z|Czy+}^h|v9ztC)R%h{_+ zY;5e&3%bU1o>{?3kG+SCf)aGA!@AW&?YqkIU1GCw``Mx=XE8t4*2TAeTnDKpv{B9- zr%m~k#yS2z-$jG&k}rh?aUOHBuFaQSJh(#lB_7Md;LMcoE)s#66Bf*y2xne@*ytOZ z$woXLAZ+j^_(7x22MAsEDD9gvyYUBa*wa}o7pDiR1OKmF>Hso=$9UDoc$5m4u}KG0 zcIU9aowN?p3q?dkgat;zHL#dFO}Y+3A&s``#PXf**CW!yk_}|rE(Da??h{4XrFPvW z*U`pw9IXO!fxP^m3ccABDzSQDp)pH-5ATrFM~9kFvhNEgCHRZL-MaeB+LmT&B1*d!ekshH%wrYU9QL$q3+3_WIjYqqwbrD-Z1>W8)vBNUgEo0GYTY8MGUGXO6IbbMOV#cYcu z7m?76T6obb-!4SAyL8bgJz%(dncLiE6l=M>PZp`$Y0kf%y_PK{P4{XiOb=6j7j4$E zwvgV6(v-tj?t*pDIX%kP6R&L0M|A_IHQE(%x->LXW3y)43zRkVwJA!w=mbh*BRHd# zx>c-o80GP&$Wg58^V>`+;khRpQHwJzbq#Am+RdBB(pE#>mc@QX5Df#xU%+minnSQ>wL=#E&wJSgI3NjC1Im zW8;-3Z2UOwFVG(c4X3ZYU&#APNry6@oF>tg_0-Z*ck!4%h zcV%=<$Sbc+;o zsZP6gx|UN73)+%A{6`xhk2ELv@@0PO39FI#sdZ2x<_SN}SC$=Dpv%bKjTtj_t%HK5 zG1k^W+UX)I`8JD}dsgG~O*<*xc4Fd0rl$vtaO%Bpm3q#2;rTln)kyxyqI!M+FCVFC z)c5Td%1EHuH+1H}rlcJa&mv>Vb7&9Cj>|QdB2x%_+iIB}?>J_2vOPAvGWYJnd;LmJ zwn+@H(#$-@7C(*;@m#OorRc8V$eE+l4jGXY$5Pgfu)91X&qtGqQ52X+N(+CVpo2p0 zWYzMCwV}Qycuj0u?QISAywn+NbN}PXgX5<^ht$rHQO*s6Pubxpe6G`2n`DvvjI@lt%B7FOWU zX+Y!vHq&=|rfD7YpxuN;m(F1#NFh_ZeGuG4XQSk?iMHjgjuy<$wcLtqx}mp=CweRt zWiHk8~@gh&DX5K6(0CWj=DcqHo7sZ zB!TjHRGyeVlLWb)PE(E6xNdFyOnY`jzkz0oQHpqeo#w7y50|lgAu%-&H0k+uK6Wzv zeU5(nWR13V$9Vqf6V5UDcUOYah)pgA>a`%P7&pLAQ5Iubb!Q9_KlH_70_>el>~>f# zsN;tS6RK;SyV&>fDn^8{HfO!1Qa|C{M@_dn7NBa%W7Ay<5GWZyq)FVUB;VoEGj-bBbPj z_#<&#uWxm$xqHXh@g?1BksJahU08C0mBG1pL&6p8^APAhTLgd)$orW~4^JNUhMRd$em^get3&AQ_~0|{E!xD)hV^p9jEDwtkuSYxm2uuzy^kkA@}MtaAd!!1s$q?fajkfYVnhz(-);MH41mTaTd zy@0z$&nAeFfk9*Joh{HZF&`Zp_t~kat39qHBQAArM4oTV?}7bkHlKLUWv%=>kvE@h z8x30%r?>h1No(nS{#qzEy^Lb8PBU5P$-k@aOSFs)j%uCPAT+|8_i`BMFmGOc5wswG zjNu|#a8QCYEy2{OrkVuZPNPA>J$(wu@*p1! z2JO8zvo(7&zrYInE)!tobgY13GklEJMXU&d8$P@?S^HUp_D%8P!<;Cb4BDO;aJ>yl z8dB0R;pUo{%r`rCSg_kV!KRMXkDR=ny)x+5i?gYNA!3q6!s3HX^=V>j!#hO7){NEa z_GnYNDu%Orx|p1l7+3gLCsGN?4*FwXE(=HT#c#vk!AmyIUaoxT_CxUkyyP_DXphc} z$K*Mrdg@bpm-kOCTIMPK!cCTWyxDe_ZcS|zd{k$c-UaB zyN;cwTOMp`NFBehijTBH@#tnkDQ}q86eB6TF~f*9zg=tsJa^lv3IXM8V3;;Lm#sI? z8C;n;^KSfteGSn$-P5|}%!En8gS8#B(Yno|8EvVllyu9Ss=Z>maymS1X{$bK!-3|z zXrTBgK&P97rqTLh{Bkzs*lcxrLHh{$6^o|IG~%1b-wM^$YNxb~(~(JdVw;M75aEnh z$`HYA&y*fZlQWLQR(t#*ER9^Ud#+*m`z&#jGS=A9cO3G3FfK))Ke`~sNNz4JHW82AKjkPosQ{S9Da?+nO)F7int4-Fz>S9v4&T6A~%{Xsu!>V;u?$=!m zz0}w+B5se;)SE#rdqFO`G8ML@UTk|;sTCl@FR; z)YLe%r~8%5K1{zFQgu&-FMmk>j;A#}Yha7`?#=^D$GJe#7rDV7G!|Y(yJIVGRsBR{kx&sb0%EAfjuxMGA1I=2SvXx5?Oik8xb*T(NUyhhMa@oFofMj4*c47m+|Ab>k$Gp7F5PZ^Gk9z4>@a`<>old?&g2D4&%%IW zZ|sRs&G>w)72)`ggQsTNQ<%&h!krsvkw+y`Qce6GlMO|CXr-+^-ybWq&~ut0BN2i$ zB>XW_Z=df>d#7Mkylq`>sSq${E-gv&D-Y7@1(IqA-&tT{wgIpiGHy+i6KGaz z)uosBQ%&hK(eEMw=8VUEVoi;@lecPJcdAJx?&y^7^i9QQiLB7^dE znJ#*K%Yt3|7(Zf=zUrp`cByl9ACzjw0l6RZtuyy~-VcT{#^Px_lCLa|s=wTu;!dUz ze+S7P`+w7!^fTsr>~nyhcbn&67B|KUl|G!pbHQas(ceda08*S!#%JFUBCIgI?Ev5E zvn8O<{G7+-K4u$<+*uCQKOR1vuSmwinY`k1w-ZoZmj|QPK_5fpNmrSLa`!q^*6RCY z<+y4SD0`1fNVbJGr-`rl#pXrD`litUvdB#$GPOZ2Aa7MYC!jCCnec(Ue#(4)W}J7l z{K$+1%k1`)Wz*3NX#CZPQpN@>n=3=oG{h!z9oZs*rOJzPoD#`;-C#aS;i|)8r1OcslEDjYwW(K_R4wR6k|`{(`tN=g9&;j9 z1k0z8pwOU34*YbWoiT<8mL z_0~D7z$5)=DCX=PsE2Y#0t)8`3;h^_HBCvezifel%{3v337TzZ;^uM)pd~r7V22K6 zfB`nz{U)LB&$7LIayx0QE-ESCutv{ZwtTfO+GK2a#2~hda|-3fgEc^1Z7aB+rE!~{ z?D78a63xUm<1w!njoNK=XBErRN~KchFwT52LR_`qkK>nc zHpJ@&DDXnkk8$*~Ed(qWZRY`Uu@*!BsOkaGD%>1h+mio4O=S7vM&^S}!Sw&!rC!l} zmk9|BIyc2ek^WsqF(4+U$d;mRr0ii;g8ZnE@@<*&gDv``#)fHUO$WLIt*sX4f4V5= zt&xhrsj2CQTyw%vwBq*K4~6uuM;lu#x|M94J10I(ZI9L;9KMLLY&DFtQE2YO!dTae z3;CX@$fx-B3E}a_`E3|U6WMytE0x>YveojMCK7HEE_La@=v-p*au}8xKAw7Pu3KUz z-D2v;1AZ52d7ReW=1(oi%Z()^F~4EUNtr6rRW=)HXRlZ+l8xjZYnM}ap*uJtF42fZ zJZtSWVGZelg1Yq@x+%>i=x1xj8Bv&P<1O-;R!jjHIYnK8M%rV{$H!Ea<7B<^W7E6c z_U(YVV>G~*Ucc4p&F^ft~m7gzN$<>FdHliG-NQ)o_~nGqRUCC`IQ z5wLe_VzQ(!pFH`1rn13dMR!rlOgCT)*3SZiAYb1&sJZom>Z@RAr{aymzDn$=*JFL=*{$jNn3@mHfD{LS4Oz(nukV~1efrNGHt z>u{gV4H}!9I*3zfXN>cE<>hs)jNCVxU4sE;hQcDmPRE3e-;CQRwE*jf5M8wYW$f>| z{w=z+%w4=cij))mJYg6Sk!WL~9V~?G;E-SO0dE%&5?<0MzNS%3ezqv&Y>EozOXb>^ zve#a4{m&)=0>03lmtb?V{f2`b*cL{06?iY`-aXZSTlODa`xJVh1Dp15fp_ln!rlV* zx>W!#R{{Y`;L_`VS)m>Mp^C2oPebHRK;+Kz>=}4RA-)?py!zL5^zT0s0T2LfzKFch zOI-g0cE{15X=6NrABb}195u~m=lt&rg6}d5Jm{5gZG_{i$i=s70qJ#gV*Ja4P5HLW zvuDrp8$S5>_>yD(KlvESwHnFP)F!7%4n^=g98fUF5Ri`_gM&c;?tr&6U|^4(L>D_H?hzaUhfgG-@}Tw$ z+UbkeSlL8G?%9+{o4|V?E06BEQ&T6{IolXHO)zjP!B^)EAD?Q&Ef#c%VRrVvAZ>xe$dWL} zXk?`{YBac1&@xmz`_!O5WaNZO1a}i|$#yZ*|BC%bkpDPjW61nB7XA|s|F*PD{8>c5 z1WWRBfFxfu^=Ho~e^jWS1&I60n$RM$+?o&d={DFVK6{F@WQ_+D?)BCfTKc4gTw282C?htu~}IP>An z*AqXdBG`uJl;OEVb^fOw2+ztg{)Fd)KEj4Ec3sUG&+xW2#%^mr=q1;N2pvOlz59K0k-VwP zdL8BZZFp68daPGp=II6(Aqlxn%syA+G^Hw)_bahvy7a`(%(N1TMy_S?*o+YK<EcRs@BR{O6M(Md?vlY#I$1N z38}q@Sd?l*mWL>!;-y*tsr0gQ{uf9~mtHB*1lG`bqqoKqrCN!%=UI7mCAzBg{;E_AJ|pQE$FPW5G*cn=yOO-eSt%3bIDr$)0S;Ud z+~xcaddL%U!j)a*qqsO-$eZFx5JjYI3w>ti!U&dS*mGluE0P+-8JC0~XYm=}y>b`5 z{qkij;lf0;Nj)J+zaPoHxbz5T3yn zU8$o!?%vavo!49Pa2?bqZ(nSHF3WWO-o%-ePl~!^)6ZObO&>g6W6T#vR6IT(>BBV8 zl}@hCv)C3ftu<=dmJii&VO7F}g$+LFBYlfHxl!4q*{OcCHI%V-V1VZumRNkk^+5=< zdgJ)6YRF8if1x@`QzSCGI$MdnYSznv$*pPY*hiDY}&we4rP_v*N${rubFVKS9B2}pbx=|=`IuEIWKwUKB!te zhkzNRe=DF+!vC3jFD4yASsfEk(baiHf%25aYPx1OS?e%+i#+^#wK+Gcl}t%lT`taP zo~JS#{;^i5G$z-}!;Cdghu)ODj$j<^E-orQZ$4?p%pPc^*1%hxV3#P0t=53xrcoLd zMp61a8g&};tQ~YfVUeO0Ito#lOt+ZV;;}w-r%N7GDRov;XoDlV-j2b`Wi87|`D_eHCGKx!b6PCzm&1_ zqu}iL)Gg#L!FV42QMxIFQVOD1QqKz#)+oPA6}hoUT!VARxD5>a$FH7rlP30&V}Y#9=$2CO>gup>ti4J6cO3WW4YGjt04ng zftAsT(^@O=_ibh+0EyD_^xIP%{l4tQ3mEx0QPK1sDi7Rd&jS#jimrn`7{8Ev<gmzSeNWqiXi*1;Atj_!m%{Rr-+map5ZvXeoQk-WS< z0pCbHIjQ^zKV7xsLoO?qv|20qB=s51zdTHVHY-u$5yidOiYj~Zr=7I1Pc8YTWZ5xn z9!$S}RWF|JrF&ELiM!$}DUH*w=0@&oHH61a$IZK+dq9X9Tu3*Ju0hz@x1>e-J7G-m>vugR*|Mu!57P`A`ww&~GxNAx5UHeuxaQ(9vu}mhj|I zT1>3*EQUi*HhGz(2q|3v`N+^J^6jd#D|#1r^hlkGh&vz7$4AdlRA~9Xkcee*Pk6)X z9Y`B|a>y%|E^Fy|fq@OKcvYhZY<>GlDJw+bP9Y4gx-;t_gDgI?Pjrzlqba^*L|0w5 zkk*TMuA+H-9hA|@?-Y3fu9$OdWWL-&n$(BymO6%6xd4B1nU#yH;;l-Vm-Mx>IOx(5 zDGkkz1Fn)Js&j#eifvAeCM9N{O3YWEbqh?8+xo37sl;6>PZyOk&3S~J=GDfFk4T2_ zB2n`k9C5>xJ%%26%DbxOE7aX+&E(BJ75?y7OtPL;%k$YYJZBuzP;Mz->Wf>dE>pv6 zaR~4ewx&XDC^lG@LmQ4bMd`_{MX`LZEzaRWOi>iMUVraJUUt6n2+ec)&x}cOvxImY zNy|}M$}_ak20t05#%GKGYK76%D+ntfGfJZ=uftd{OHf)>^SM>@rLZa`d;cis_9nbr zo?HSXNG3GmEmG16vG{NyP|vjU$_Rb1N!85+TKi6_SJ;vA$NMEXPhFAlc4@+I!fdaK zY`UO5%x34kTr}sje4MnprUUWh8)d3aQOuz%Gk)Z;o5|Sk zf|mq)hbG9%hp!1MnVgr1Z+e__`IEx(r8-M3!-up&PVU;4)mHqI@0M?NSui6TM-0{1 z)cN1y*1yhsx`N^6AcY(MG|@WfZPqPWCx#Z`*H-$>$~u49n#S*}`CqtTmkzeI#tnr=k0X6tepuSRcG28YQ>SsjocTlhS8w}orVM#57d5kj zQyyFLQ=Jcg*H6n$62%}OQl{lBCjP)T=p+Ex^Xzq`NiznqUT#W!<+t z)B*Yx|NBOU{2v#X-T-Rg@||rt0hC~52>W7*Q~e&8mo&q3gN>=o%9|O{P$xU@#;$`Z zl*OGVf!8J3i;X?aHaYQ1eQ{)gJM2nb4d!#T;=Uj%GZ4E$;f~4Y+E94$^;&M-KWMc;XTkolfLoDox_Xennxd#E*<41LNyRL(;uR>EE*cyU6b=uEZ6E&L|5 z;UM2pt@36M_1Xsf=77ib*PKEb9@O(?Srd`c@uv%@dZmpuw0E6WWFA8c=9T~G|o3HaneD3Gjjs~TecSA)wn9g{s2RPeZ!?ZZ3p&!&|CQ9)BZuje{ zbNXdLyzHYK58lkWBZ!3IbY#7jy0Qs|JC94zV4Il0<1(Br6EUrR=pa&WAm3*lBzmDV zWZ12Rv;XRoOU-;s`7KW_JNH&x{jwOvew*Xf$Ifs<{L3OrOBbb5iQ2p{`%8r5SCFQj ze2l!Lf|wY|vcTwh%v;hV%f-)dlA>fhr%TDAkf2G?-O+SZ7gjTa1XqTU4gL93G1OJ( z7OgyG7(*tJ2d%eX@FbZ&pN;4ugJm>FG`yEqdck~h;`LKe_U2<#X2eVwszGU3^tcA( zLCmwnqXeh<=ULD+u93K#P=7K`o*+RYq$r|88t3;d*PhnxKCSL)jDcx$t#g%K(p?n! zmB+-n6Wxe6dtD>y=fn9m!_1K9izu|c392-;Ckfh-m$4frRu$I>{KbQ5DR}d()S~sS z&_ly`;IX8J#m=UEHWs`oU?AnnQ$~lQ{JK!mc|wPHVhxs{;jPKcEIF@e3_BW$;M*xA zD|=XxA;)L--Au({6y=m>&8>&-DA#9{IfmDf2wdg$@U-g2nrOjOtx3CJjF2N$lYROM z+3|-j#>wnLz!S2LuYnyxpLAKosLwIVddW|xzeNxA&8a&frbJUHamRRBSJ92=d|AJK z)M{FHx^>Mg->DcriFxUyqD4_9WGTl!ebu&$XMwj~TYJ&HXWRL;(}i)_Em(-ikw&dY zD!-n|VJAX-(0Fa;DnGkk_h~(iK9zR(ZH` z8+U;+wEyk)DCGk6aTUbeEg;t3Fofo4*wgiGSIOR8|#zRS;jPPsr8hh(z#be#J^TdJ?%ro_8^V62{ z`j9KQ4r&BGON4(dGY#8X1%+a2jIV=W^0}Gl1xJh-mg%8P6{W5=YxC#DarfMDBJ12U zO7mt6a}CQ}`!QSMQ$3wx9tlR-z+WU)I5$DIWOCt!q&!BK^EisWQo)=XYhQtp*M2 zTvmML=bW$lY>LQEh?hVXE!$pg5tg2Z|I(9ADqi_yi!!t}98t7a3RL7hTb;ui9iP`) z`stoKw{H1|8=46t$2cS2+{u$|^qr8;x@rE^TF3zZO0i}r#xr(AB89i1V)tTkW|BfE z2bIl9dE|*>U)?g*;l0q?jh$X#%Kj*e@ztB07NP57-ntpLPEkC5CWdZ8{v=4XmoPz+ zxVryyw;AFDV^R8(mh#dDzw(gcXo{F?jD!zVD3%2=LY3D>R3pkJO_)5eR}4DfZC*=d zxowjiCtB)O%g$%r#>XMZQF)ispJ-p3Ix6$vpdXS!}fN z8;_P){j)x-vKKhgTXU6hxh6vkQni$y3oei1G?G=}J(UyFd+TMdk0lO>HM>iV??nm? zg~ih;rL%QQPOA2q*7UGnEKuXO5otg#Z=c7QM%Yxo5%XAe5>`@(3Svn$Pl!rG^5W<4 zB2TEEndKRyo_bxzRA`s8Lw3c#waN**teuS0tBTOd}FE#w~c%rJMV;Fr30-S+WrZytb z^3*B#Oy05$QrJf6L|v(kFmM<=x6b?Wf%t< zDduCANg~A*98!JJhh!ew(a;ANL^O>{(BX`iWAOPUOOZE_wBKxr!6bT-2$#^<>NF8C zoZ;V3L@?PGC3g~uaL{UzA}_7cq5`i{5XQByt29$JU9g~wi9>D?%e}Tr?c0;O3I10j zOOMiI_;0^;eS+c0i}B>vSwD#f=3!Z$rPZi{(&R91%3?@imM2HVzdyffg zWxJN;r6tkFWRD~ecnI90>kxC~j4)G3h6OgCXr6u9Fy8ip_A3fm-itJx59n!LRibY= zoID+6p>IeqKb5xqI8koZD(i@#nUdDVi@+<*OOWvF$+SgkLT)XMRCl6B@+|TD5^fINLi4ki`mtdlh^nX{{LSmr!sc7s)wXfLJ z=$Y__c{g|6Y=k)PCTar2TYOsR`LAA`iyDrhN*Oz&)Z(oxKZ|+0UT@M(zwMj^j{Ci_ z?3{ejT4l^&#ca-ApHs7AM- z3|sIL$$L%FVvT^32b55cJb#VpizDP-oR@g}A;MmUR_?TCTrN5rX`BL)f?9%w%LfEQSE!TQGAupTXw?4(% z>Le9C)v#7rd(#+RCeG3T-o3?9M?g^!h`jR59XeuTD|nedI>a-~JA<;C*NvuR5{D7N zTI;@r+VmcLKs5z~O^{XfdN@Yeh(56krI3lcJ(epD7%O1QLvCocFwd@BcE4LDw%gN@ zv+??DWJuCa2PD)|9pjGazbahxHRd9ZRGV`_?!mfPc3v|kz%w>={#A|*_5Stigu|(n z4-~JPn&Rlg+VLw;V-tnaQ{{3A2XRhh(-%&w7iUuIf3B0D(@zU&jC*hWUOEks9lvjT zD872*-}_I&F3AUkkKYTRbEn0|%-z;`(idq>w|bdx=s?r?TOz`V+D;$5Mq8H^($r;t zXFHkkppz}V?Yt;*=__;X!}uD1f#`&f*i*+sosA(Mjr=aX5-08sn4tP>)tJB}Mf0Xv zI9<#B(%$B6$6OcJ><1@zOgnf`KG68tK1men{$XXO?@#ez!`*Eq}LU8iE{PdmbMVtg3#td7J z%hlpEv4{!bmyUL{a&HYvguu_!L(FP$XZ2ms+kn)C(VEK*)xdOm{^Oushild_Ce(BE z*x)x>_Rg%QrinOfZu-_kT9u1-R+)xWZhB)=nZx+F+Gb|*^U+lup<~jP!`?IOyeM(0 zFfxB4dgHv_#dspA80r6s1Y6$bw@aC@V4|vQcGZ>YMGfYBmwxqb(KcQ{uV`F90NRAG zM%W2H3cruiA5P$tXEg4q953*gnO0K(@hC-C5S2;r+slOn3IGcET5;QE`8% zC88}|k^Qk(d(gBbLkV?QJ9U}W6@zx>g$GI8j*RCbRJ99+dnPLsYhQs z)Za6piEUeeDHDo5ef>#KzrOfm@>Q`IB49yA`7Nh44BVxqSQ=o&pKc0z;1HZLewXrLaLq$9pJBhedb|!M*3*tBhIZ$0=If4ET58p{jQG(w!`*qtra6VX8FKi6H`^Q??{G|_5dowvHf62O zMTIo4n$xU{PbQisk$!~4!74(5!MOtdWv5u|ncBLJQ8|XYzgRj?XOcQ^zTWt!K*GyLobUZ#nB|KBRlzpj<(Z6L*m6V=PuF(q$u36JJfxvw~U=l@9cs%R(M zikc0mnY)gDW8?!K>VVD&5B7SIiiAakW1*{zX>aMBnvH_mbOflw&qHrd{7c8oH(Bq1T^RZbwLSfhTcmceyGg2jWqJ5K zm`LU)%L0PfocHdIOJSAzNv2b8%+qo+IicO#pQLwbrpgV(^_zxVZdq(3K+Td_^4WxX zCmeZeIk{@^h25nMRcNo)?6X9Z6_;};%eiWgo8$X}-aH-n#^LaD`~Z9(PkUVI_&H4O z-DIMumbUe2=?7Q+Z*yrl_+(RqjYkd>+Kb+57na#*ZnSQnllIR0biT9w8u}KUROhw#`HAys$w!3eWHGB_F$2ZPE|pOO+tFOt zXOQ=;<5xuOl3N5VN_4zL`=%B5gVgn15c@wjYhv{EN5pt8phBS>TBPk;g0yE*Td(Lg zg=HNd>n3R6_+%u2YH~#noXmf1(xo-em7|TR(^t86N~14r*T^EL&Q2?{`D{e+O3GYJ#Z)`A zctYydS^Sf${0+NA*7SONBNPKmTr>xtx zL4eQplUSFfCa#K;Z6XoS!h?>jVSxsmvFDWK$(|2|($6 z)AdE6I^tC1S+4J`#5Q^t7jiGUWrI1*KXGA5Fomk@2rAhatb$XdUSTme@9?+}E68vl zf9xR^2xy0X{>uHw7G8N*CM~%tMKg*}q`rtKW~@>{=Fo^wcu<(E*0W`|SK=mdr8owqv`CvTwEK6yeFrf_gAg88z0Rk~rr! zxy^^?eHFF~lBKRRITG!nqvu7>%gEcZ2~ZkMosC|kLa-e+J`dD8j=WHBg-@>&@+F(J z&rPZxuLq(5KvnZ6gXMwTEmba@z3BkL+6Ti-H2lXUcurjO+Y7XfsgiUVPwJ-;LA`fR z?KMBSP}v{KZn1YmpxE7T;2R(6g;K1A{eyfLb?AJX?RMS8=aYZ_{oJU{E%;`;SXWmcDeKdle3#GTE^GyGX+0xy32usp!T#mxxR+OLy|$#=+6; z5d7oR$)UXb&!~ZeZv(a|;+-!Jf(R76@y(?oC5M!Fkjxg=@y=ogUrS+(scXjeNkBr_ zibh!YX?TOEnp(y0W^C`kCQ3ZzmV7E%kOe<)e$`~_vd>w8E}`hU-(Sbdk(%P`9QB6^ za)dTQ#3pJv!7_&W3}>ZM2hhD>6!sE z0!W@&zc5`Jrb{*`$Vrju572gk8joAh6zc_0HWd~C%%XHNrYR%>8SFWj#+5A`IL_ee zZ`hg7{m>(ixV&}Qb=%;oHrMKeDT$qHRb&r`;)P(GI2Nt@I$P@S3d0sp+BcZ?o2xi~ zGuaBmIfg03Ei>(XhIk~h)4bU>XQTw*2E~N7e#!J{34DdW_ISk18s=OV!wXQsfdzP( zEz1qX?)7fcFw=4;|LkGuh zNtiaeEH2F~?VHmSI+pE~z7MCdyNIx~IEj*hc&e(le8AV|%nJ$XxR2G&ufgEP1M503 zHQ=1MxGl^+z7*$(%y{j|o9Wcz4|WAQwO#QMw0vB0$WNlfd=7Tq6H}omat4b^0JW3% zOqBBsrn<)#SrdAX33^vu2yG8Wj)_9)!xvPi6SPQVGim0U7xw+xj8rc#kr;pN|< zG&Bnt@ei>mX!^=|gFR>2!vrQJ&k<`DGKdZ~j~a~<->0pmOz|hj>Vb6&Z=b1<@z(4c z1DTK3AGmkWww)r?SI^XPKIIKfb&q@&`G_>z2ksbHw@%#CJHW%xor|rpZN5655)Bz9 z1&vu^GuE>2SmbYa%ofcq5Q~l@l>Xjo5GM=#kQ!;57C`UxyOp|J!_aJ9>qHdtX z2rY`KP?RHL#1FD5a-t$25=^B8ql#5(`^x;!E&p)t{qRpIe`w(EqQ;*R!~eVJfZ6`D znt(F6|AWQyLkGa(cJWN{?%haAV%>rnYk(xmktbFWk-%<>Z3)^9zi?5ey_Dt!Wd2Ys z{`vq!Vs?l4^A6KGoI;$;l!ZOG2=vuX{)IJY5{fY}q7c`Hc&$fFCd3jZ-oA z$EAw^UcwAGA~H5@xdfm{|s&mY~O!mirTen38bp`AUqW+RidMC!VP0H_7_V5Pl$8(yJb zk{xi6I?bgup69Eow7KJxZ7SdC&x#-|y}-6pF@UP3Bt80WhlT}(70wdJ1Fmh$u#RrB z2X&3-;Ex}8?p)Vnw$S7hCs}-AaZlzk-RUDO((U}KBU2Ie#04%MeAbI0ZN2;q>gywU8vV8^&E&JUWgBMo@&KMkL1U9@V&;hc1I zukT9cD`od-Q2A0{4mc^Hm(a_Bk8NX=f25q(=MqQEsB@CY1#Ezq;7Dj!=bl}cby&}E;rG5`$7u))7l3OHy|@r zVnnr5(?n`<>hq#z`uzvaA_LiiF3M&AT7{i}B7Hxveusi+O>=$4 zvB;_N=pIL80wp!Sfslbin`O}2WFtx9L3%#L#Wrmfv|*SdV=1;gK_IKdF?v#R#Gt_$ zCbi;%iQVaw{N~hay7ZB{Ig&JXao!uRLw{VV!||y^S|@n`oN~d^){(3)oCDW_mY4%h z4mCP%F!fILQUoh)7DUgG4b&04dJ17}Ej1Cgt!#{Ek$%Tc=E_B# za~-|wUvDqSOTJV5pp=n|mSW0MC|VYxcM)##-cJC$C!`ymt1P_yxP9%uE9N*1r0G^w z&_1X7fb%I|;&BvRf3l?Ts)s0!_>uhC_!`o$~BG?9;T#Q581~7oq zFc9a?v`|U7|H76}2Y$yRC9jVc7J{QU?jg}Q=AJx^`*X{v?x?X^a6DJ|;Cw%i!sZHa z7nL3Z@CE$Q>ZAnz0x$iFNzNF0T+6(|xobFK|9% zn~_g4SD4FYWqh4B^?EYCF|DQu#?#1Sk~Etpoc95x9-pYyJF%ziHesL#4_aml!bUyK zg&I@k(R6h@j2`NLl3?_1LDoox%JVegmZf9L6+Uc#sn`hR@hl}QwRBDrG8wyth8REp zh%kTvbz47fgF)mr7iw*{q*j^?K{b`^Yi#j1eQbAQ?Nro3gi5xfv8aSYUyZ?5(}q#f zYlYd-{fF^k@Jvklp(U%?KJi`_>kJ|I1^;-1fiqCyvsfIBnyB{d^TR~H?*)*>w|UJH z?)QB`eX4Lx#LMTbmiO-PQsfBI10;3T>XjQ#5X;|w6|EgbHu!MiD1GsOH6z%u8lBZ^ z@0)+v10bqIXsE_p!Oa%rLhL3oe~DLXww3lOPo74yL@uE3t+LlGkZv%~Ou}nT-!1oi z4D{i^PM9RLEWaecBs})S!OSzNXRWdo^J8AWTX-SyZ_)$5J zHB7`hL4@b8?f8nKXUIn0rkA*5oztpVtqA>z3 zn?z4XEjeC2_4L0;QkNtu*9X)thUDvMyqanA8!<8$Vs3P4+9KW_VJ%|}&&41ggx@#K zY57$6TFyOU@9R2kbFSNGJr_>snp)G}zGjJ>2(WLGNoO$DH1+{27 zPyEGX?Z$mP-YEjcv)NSaiibCy+Tz2u&HR$c% z=S&&u*qz61OBGKxP2D}mI1PkW0HH#OG0isSBW+Ien!mtMl7KAXpHSg1=<VFj{>k=Hh{U3k*vObUL?tQaH~a}HFNsKLB$qk+ zrfNU}k~gqclWWhWg5Kl4wy`=NHpSwUPI|~CG!4b3EywGEq$;tN}8pRH9d-g`yp0)p3+TB zxlK)=kquI@cxq zIQF^DAuoxJT8fT8M<#=ctep{2{}8(-j4WpQWqGZi?Cm-=AAu&r7>b;x1P-n-`Y?21 zkNa9x*rQI!bM~&c8vFS`twn&TN*^^TYfCYIO!3)gBcwq{`(W0L`!cISoU*s#)-szU z*xk!#QfK`(Qh9l{$SR^OxH|{0oJcDi$*-pSC zgq+kDU3VF@`37(!(YwE25;c;rx|lV~1F=?1>hF25C5Brt*0M~S|MC#Tdt7Cu`Z&Tz z<9I54A08xK-DlF2I1$nI&7*u*^2a5f2M6mGY@&~J3HKdHtQBoM=C8Fb=+b^aeM@Sp zuL^Vr>V06A7;()(dFMPQkXZaty;+xeWr8P&vs^3|h0W0)@jX}B}bZs#uQd56t_U{rZK2~ud zRO%NW1doN&qConTs0giLLrXL51BRkJIu&{yV~S^sdJE-~HkI{8=DLx2CJ4kXsbfx> zdkP}5*FsFi0=$5h)rDJweYR#JzH`nRsxfp@g{2B8MKv(3@&x)8t25Reh1>BNq;enj zmEnz^@k-ZDj+O8~C@pRcy>oLJ^BpI#{J25CG+PRVGl+UG=MrgPY7CjSCgbLhsLIf4 z=vt+t855LuFHpbf?B&ihN|iDjDO_jsA=H8J5tzm-acd)0>P~8`q2zFL4`1kECPxsn0E#L5gv7311!e3k$Eu=_{u7`xonecZxQAk`^@&EUw(FZ3(*Hz3hS& zYf*0T^v{Y8RvD98H)TVsawan+7+Gg48-Ykf3Zq7ZBuOJ4J27^x_jj7W@k|9d-Y?o<#9oJSvD!8G7k|e?0*T#ZP4W;L!2%vVD z!RRGzfoAKJ5l8m2TYSysQq94B-wFmHaaVke6eIVk1vowY<*43yuF9b&;it?qQj&)i zb2QU&t5qtqZH{#$kR{&vd9e71xPtPVraGo>D?=p&0`r>cwd&UKv1#OTepl~kZO8o) zpW1BQF!lBxXppDVji{u-_B(4U;w{^L}2DMvD$$-W^82Ol+8zVkIN#V;GU8Uo!b)z`rI=xro1QJ zg-uIfKYm$Y)KPasFn0ICRG@0HK?G5JQFp3G9&V?EL~z1d0;$4#m7IpVxLsbb=0H<@ z%Qh9Q4a}oQ;k&$6io`0M9Npc7E*Y*G8NLcSgc$x*f37Xg2(VaQJV<#gNyibV&=L$f zmXZ@_Vov(mx+Azdesn_j$7Y$*sdD7@g+-dbc$X$xZ=W?^XUVuDUNgi0CZLQ~WMIOG zdfj^7TY;;&8JDvDGWwLW%8IjXzOg@)Qo1S-$m%?OY_hR4i?I@aq&9cq|EeSGWqGb0 zL;d}EeYJ*7D||s{<1)?{I^Ih!Cz?xu^QffREsZpSN&cMmi=#kO_{l_Iy}p@V;vEM6 zmys7mUA23gMOWP)S?02--9o;I3}S$vn{bJn_T^@E6b%b~qgVLOn^=Yh+FA?-X9R6D zU}QQuDb4nA;vyTXS6wr2>A%<&LdGgRvMe50n=Z)S#`$Kg%wyJvQk^ac#hn`k4OcLo zj_(B9(R0U&^=V(q*ifC9k6*5TeM?_Yt0`j7>E-jGjp}uiZ>t48w{;b+&x+dKx=?=< z-P-@;$zG8a4YvR zEDj)W`KE8Nv|ef`(FN5VfSjYXJLQp ze#*+;n|e!AQR)pXFVFcKuX{cJ}jU0s&ZSob6bQ*ywE zJR;Ur@2dcu8-4c;5ZIv@pfbyN8%@YVz#;Ft=oIEyb)xG49H^9`%m*LwWpbx?{6dd{ zH48vpBXBP$XZ3#Yr!hxNqKiO!xG?*?^g}1|HR0nn&8GYR5m5bNB4WNI+#gFi3BMtJsv>wedi%hhp3r>Zc<6;Jk7MovnTfEjxV*aAslj@3DfhcBKakfBUd3@R|Z z6_uMrG>3LnF?J0Lt={jOyO2-@f!kF4rG21I8eUd~3>tF-gbp~g#Imnv^ z1(`Q`5;xYEjP1?MuhLP~P)uc)QNZHXy0OJ4-1#5%OGw5~%~vHi&r~ZtZrW^jxiBPb znv}8NMUOay8K4dr!tMfF74X#-n$faEFY2V{cIsj8!Txf9%3SVtm)@6|ckZ19EjIij z-;1wX^Vp0+Qasm#;Xa`;oXciV*^qnvog6vodt4^M94DoLgymz8U@m#xnAiQ#1z)Lec7#bbx`9pGEt}6#RIB?DQqr zhF%M@?TKszOvXz4ghS->oLr&NF;$LKZ&5Vi1xrD+l4W^%qKsO?tPM+}-OJOR7QUjI z|7C(bdwu2N#V8lS$p70vnEvUOOxG3X_Sb2a`7)BPyqmR|q&d2a>a@ts!=~PFHCqdL zg^vhyKIycC7rP9M3HrBSWpLLaFKjic6Hc7i?%#UTBth%HFEq zIdlrrZourzO17LNF)=#vL40!@Jzm^HTRr|-_s+&g0RwGz6co*Oe_R^y6TBt-Ts|gx zE)ZP2$X3jkpDL$rx}Y$GmCubBRpT4A{+<=0S;Bw50mKg~+P=3+p&&{829tkLTW;EI z3QQm#E2wUcEpNL_f8jz%43(>iNs&~XGC9*eG%E~tN}AK{c2bCI25z>5hiks?W-NM5 zTo@z%+&M_wnfU0@m4@r9dIsgET!ECPn((}m%sT@a7dsj4-FeE?wB<3;=iB+~lQ4Xu z<#h$CCTDzULxnL+kTzog%*ZhUs)ay(=UwQb!nNClBkb`S<6K&5X3cRm-oKAaaJ)f@ zC78b~1Ac)6l{LV3VrNHT=~1buRNw6UuVkYyIMR2TEHeFOWLU4oBLfsHNL2Bu+a17l zNsUhW8jVta`*4b}fLTl;gr@lZ|6ta(8wtBplv>T?eNS zVxZN+d1vqQX9@=H^i=Dy>6&bpU`p0m)qguT=de#rFml*uUPr`B_2S$)P<)X9m80$t zFwJhS7YMlCM62>9^9R1nhd(aO{DrhKfBH^YR;ZMVR;f_Rfi4vRF{p0DrZ%xx)Koyr zM|)Xwi+Wap2Qw6jNe&^ZePSJ)Ul=W^_Q2p+ZRwDBj37we^w4Fa@tCQq51ZMUm< z@uh}v>*~jX7KDiTPeR^kw&W1=AIDrf?x0?!s1;MPD3cx&4|%svQMO#h<(Erv`kQ7{ zu)_(C5xT`qFNl+|rai2f;A~doAt@Yn;jJvgI^l_{hmZihM-z)|=L&T=eY*I7H8*+8 z8!J==f)=MzJ#2t9K`aA!+vqt)BDTfF{(6wXeskg718GD)_g3Y~H#FC#bfjjI62<~bv2a;^>pE7T5H1>-?4S(pt4DF#m_Vp%Kt;s=?gQxc zQtj+C9_^>6BXr$i z=D?ION3IZZ2;;SOgvS_LCY|Ek)k9+LS{PYL^zRuKJt2q}PU~8{yc@`QlWG;~p!ABR z&61S=vp*T*{L@eNKQ0AjjxHWPT6nQ8_ezvjVgcdFC}W&=10Z^6j)eG~8}p!C) zciZBVQnhMi!`91c1En$o?loPT+pXiYNKW><#-?l3+wR4m1+m1~OAB&*W(u}cmz~2( zbFrThf`S=Wqw_?9482`k8mN8R7WR|EualMQbl^<2S-DpPHItm~zX;^|*`y5;y?Jiv-yR8ab7 z-$uQ-{+YrmtnPrVQ<7h(Fw|@q?N3nd_I>>E1M^Mut&DLXKlG$QapP`b?Uo{@qcG3m zK!=j2g-ahGSV#ney^VboXSM_4#j^-~-0a)flB%agyCpE&-JiUpOwT+ONA!3^VEr{U z|F}56S)+FBx#~yPR;SKwSIpp8&^Jz+Fg78gRvpPan3`eK=1I+VbzmbTK30@CYP&dp zPh?Ep1k6FJJ)+)mQbt4TDf_+Q85{L&QOoFH<=$_FL&KbTBe)`YXT`jSndL04jdVzL zdz|GMvh!8cF;V2UsI4l|F=fRG-pC6mmJIP~4HiOQ!}i@_aca6GF%6r>a*^8k562rudi&b4-n8~t zc?G3mb0$egs3NhG6p`P#0mg5r8Xoq4VQ}SBiWlWzVArs?X~);AE&h3KB=q>lCC$H< z;Hj*Nv5mY;sjh$FTf+;dP20nsa%@c`5hs4TCDzDfC;1Wgy)+fHN{j8z^ug*sCEaq7Z%j~eA{+zQk2X7G7mWMEw;z`dix?ZuCw!&9U9&qY!cFtfJe^xO6}WxzUhU|; zvAhMx4eT>KOVrFA7@lM{{dX;KNt{M?@B-9H;QF=2c;*sEiHkbPfE9a1m3!k9X&0uLzR5GJ4vXAY=BEkdLeu^x*%(VR&5}0jAcM~`*W+HxzS5TO zkNMI^g#-*A3Dj`isr!J4H&sDZ&@6Dic3v&^T`NfjtaKEPy2YC3kc2cPdpUyTktWUq zyUHq-1d4UMAeoIvjq6#+hi4-NGVzheWKp?{CxHS45Ov>73Ha!+a{mGbnkRN z-+{Ei4HDa%^QiaEGycj(IZBq$0PiPT$I5GhxKAF_Bh(+fmk~vO=9(bJ;@*RD26iE` z9Gf+J>lKxG5+#v&GknUk7th}3iN@ai9a>awZDd-5ml#jqIV+uS_ZyUB7<~6*j5P;N z$H#kE$N}Ou<*I$JI$2Wpjou=wXan6$+%QK31`K(l`4hurAqG6BPon1ua%gR7>9w`L z5?Mk)GzLomw+2T0a74a}$rt9jLpm|-2P3iJD)IBRrzj@f{G>-n+JyB|g`*y2QwFM$ z0`-r&X|Z}s+DV}|xvzeTO*&x!r-{^qCDk4%z_wxDSH4oLbn?bz34JINl9^S{Y0K;y z-X}TtXH*&k9-lfeYelR)swpi+#sYOq9FaL!hpg32sbK*e{i&vUC3m`bcv7`x=Cw`s zBg%FuiC}U%F=X2FJDeH}n3;bn&SzIee|L*pmp&wNuQtA;sC4kgwD^It@gQ9R z^uf=J7(~YSv$<~cevpDYYF;bGzDQHCs6MYuf zA))yPGyZe+0ZwMXq8guWDm%_OV23{CblWqI84F4i45PKUu>;RPpxBK$^+^-(=(4sk zlqUEdW(ib=*yvTEf1_d;%O+qj)B0bu3jXC>|EwbLdm}GfDjq(i_O1N1789^`*mvp>(@I-)ne zi^O{&l!sCC9pVK~h>O(uRXG%wP%q=W5;Y9stF|=$gE#cmjaRh1aM^d zTFJj{Qa`@|LFe#>(~}BczX4oUpU1U)a=4*Uja8kA-`BH@C$a%65S{CSY6-^EaP}5@ zz;)$Zr%F9>M_0!z#|*!%)e)X?G1eNIgxRVIV#E&m$E9FDdcgNP{XJGr%aUu1Wx0+~ z;j~5ik)TlgEPC`>47F=z^lANq+niZfsx@6CoT|ah%sO&(?EH#Z;%A+0JDx%BZ$(3f zvJ7+X5Hp3nCI&XXmMRI(E9^7|1M(vZ6#^3o=AS@tE-W2fe*7ST@h$z5gJ&70Eo@&R z?6jVLh0+5%Uq^Y>Ls(TWG2xB&Sl@_)fm919Cl(# zhL!NTB~bJwQd88akxmZkDA{CudJ;KPl5k|_=9Zg=B^P{N?6{Os5&p-c`!w5F618JI z6KGi~c}*^nU!fBk$*XKHs-Ld&D5^Qe5wcy2G}Onj^i_0QmJ+&ysh5SY9{3~}dgdDo zW}{Mf?f`!{lzrL7D%Y(yzHfzZ`%#-)_!z$-8#r5$A3H^$FZ${ z>A@arX;)+PFrqSStq|q(YrppgU@P$kc$4v6f4Y~!W7SJES{m7!eL zG_6vIv@kYXx|MTLqUScrE4)r`EqKZ(zHRs${*)Vf5xx{oi1(QkUHEw;w>y%|+Gaqr zy*-d&j1pWvNn=by)l+Chx7H~J7o(G}56uKyP+d6sdU1NA?5sxKs_(|im29w#QK>Xr zqGUsH8XZUtOVkBe*jQ8XfpFF|Hoyw2)_~gl_%H0YC7UKKvuRtL%c&5a@~b?$A>Edf z&(VPrshutIocyi>7;Ps8H>pY1S?}OI^Qa z`H#T$Vr6L0rF3mbpdLT|~>a~c|il(O$kPk}MjD$o#i z6;yY`yI0+;`6DyRV2U>!dAt`nhl>wp1|H9VvM23(LA-2`O}w$6R6Av~Z3NanYhb1f z6|4UX!y&T&i`DWIQq*xC1iSsG1n+_z+d^pdQN8U{jKI=9i1s2UOFY+$87gYwtx)3R zgN}ecf~BktqKZ{mYAQN8(_UF^u%6@Jet^}ixT&*7qqX(Y_rFqQ{+m+tKgFY;yY{~x zVXuoqq8?@(Q@|AL8qy3R6>}-S)kP?Mm=I*XW!T{hdj4;J*-o6w)RNg_w$TYY3Xy$3 zp%wVHH2c;~BUxJV>Ht0_Ya&C5UW!Whc-ChdJmOabdm`avH}sK9RSHh|(!cQ9uk-x% zAC%f>i~NtRV(5?)kHypFKmH|F{Yr_LnoD<~RDIJ)vN(at=3i*>RNUlrM57w3i&PVO zi3>i1CaZnFqq^4FbeIaKpT@QeEZ^(q?KI3b%^#(Mpavu9L;C4kf{k1380%6m-|j1u zdzKlApkt>wh=1-j?(OOH`&=(mowrw=%T`;G}Jbw5}J>xxVv3kNZ4R7wX0weJL|B1S2OsniZL`I-+ds4UAU zAHVf|VwKq~-t+M|YOjd}KEIdsNZJ^>HvWz6lT^lBO9yzI?v}w^q^i#5K`Qtrc$WM3 z!mLS2SC&PAgUoJBR(rh2FbQ8ir%ozglT>)>M(w$PYx;p7O1znddtGChqp@AtD39o= zUy&x%foau9Z)Op7rZO9lco%j{B%A2=IPb<*Zp#Ls*;hBSNHRKhiHy}Ip7ruc-V;Qv zXS%h4Q&`+Sw+of21&VJZfJIujprSr%ue5k;2jYj?mQ{@q2~5!nxVav`e=t1njx@sn zG{@4rRh)yOYrqu0ok21%ILU$Pl7>!|lei{g{s$wpFj)%bVx7quC9erRkE0@Kh$ky& z7lUj+kL=Zbus6XLFVS1R@a_C-$3G4X8y%OFJRRu}4{Wb;rmMiW7>~(@d1_dve#vbRc$KX0$0ZzqWtlhgM!Ga`USYOuhZYIV*0yEJNrFrq zn2~zN-UW5H32;QT9>n;6^f>ZvYfeF>_e;mTTHDII6+ancZF|AC??K#d2odV$)JhI7 zL?if#pcgUyjE!;q6nKcehx2E0WV!Dh3{e#wBv`l?G|yK{tNu zzfUWJgbGVyp=lP>-27@rMx@#E#$=aM9`n5gU~D`S+8%!3(lAY`uBMl3sb#n-^2+Fj zo^Kx>E9+z;JCC0|~6+3iKJS*`Sh16kuGu`*f0N`cYV27Lp&ldH_Z zhl&ELXOhx49H*1PcDt44wbRdZ_41SGdb6 zwzAd6g0DI#rX`*u7W&#lGU2dhUqH>z;%5NbpG!P@%uZmOyK}1`6AWHIFSch)ShNuh zyuoD52_`ik_Xce=U4#qnhPc}*QDt4U!_Wg(@=aEbhzc{BdMvK<+V&L9NNE>z^VS{P z`njw?!Tg5UNuq9@!UxTegf4{=Ctw#``X>^&K*QN|d*|s%;}55am0Qf&FQV`sL6;I; zdtNH$cX6@htozR?tw@K?er(Oy@qYgIb9YGUANH%V6C%5P@j~qU>XUTgiwUT``jt}l zGsx!ThGu2`JMSIhvi!wd&KdCv>Hz)FI8$xUB@{>kqpxtN3UvD@yF8?sTuYm>VsnPT&t;U)UN$8 z#7$qi17`QEWdGdg~ppZ6?Bp z%qL(q;vH)S@iDa)yadTzdT(+77gA(cWwKI$j-5dP0qL zG7v}>#{xcGE0xzSr8|}F>QJmz*G6)@+g+ptm-$s5OrX$ygMtI;qi=gda~_A?4^cTl zOtat5lm2Z)mq|pmQ)6r$C}#SV#Fn|v0Ax4Z6bVJB0u67savlw>X<+vF8OYZUOIh-{ z;_qrD3YpCeumUPmi3%I{$SWJGlTS8Fr4EeT)^)0Lg-VLO&xXd8oHctb_s8cByQMmA zWL{)p%F0ruwc-yeg*6MhQq&pyrBElO>_7+dG!GZy~~P}K{SrM|5KBz!3|Sx)*e}>S?zgFx+%op)$U*6Uqw>asXspy zRnZobX6NVyVQe_t;Yjc-W<8N#t!}|Rfx_VK-dHXr3*?#PjqV!AQW1>IqEQJ+nLcZ! z$P2Nz*5(&Ec~ozH>OhfoKC&zNVy<|(D81H6UGjkcsHijWGTM~rT~9eSk!#vK8?D~? zzS^F|a!EB4)BGjR_!D>ba8c8oIx4bf+-}8CaU(O3lWci3MmA8S!ARTLrzQh?V}xHF zIJt1A0cT32cUW>eXHwm1#t;9~s5pG?S9H4g-ufcQVt_~bthlIJPh-d(&dD{=y&Fm< zj#e@=d(mJWCkDFKpSlowD^gm()xEa1e+iQ8x$fWSQPfDcj0q2KiQkB3oAoK$mAlB* z1RnvOQAauvDt}U{sr|f`r%aHVM5r z%*0;v8qFhR%l;9y#8?FRY~udq!8tRb(v5?v%eSiDovtoX)QE|w(34H+7MHUDa(ZF4 zBIEtv%_yhzz8J!4@Wug@zW*$7x^NZPWqS{541}=abeI?L09%`#F2~O;HO@X?JPMx{ z%{?lm4%76~Pre(dE|Wt|3_tWGeDNE--EhbjJqD9Ya(>hXiXA ziE_lKTky}}?;q3qC_l|N-{M)bA73!={c)-2Echp7{?mj0Ne}-*3I7$RhWoKc7GSLI za!l?)WduXIy|CjY)ULHiEsC}Kk8{}WF7fBPkcO2j6nYd_O8Xm*+Zp(iWrl4gJJY{Vsk_)nc)^y2)sq?GL>NVZ{Dq8$CM${H z$KVJ~&m#MACcBjyrg1ZNt(0+c_+;ZLLCELF$kCMAg$Jf2yo&-{VB zk-Qs4ve?C8_$GX7CQ*c23v+@O{ zPkI+vJ$(-?l*;EsL$w09s-Gl9sZ#AC{I23m3#(9ulp zav%agh3a;LEd^TCPqauxw8Sj28uVsES1rW)4fX{_cZ%x1=oA~}QWYIMj#zzA`p!-~ z%aS@XNi|H_<1F>OK4qM`)Wd}$hX#{zuFk35rsCtg<#7>0bov?vyVj^d@?3z6sVA6T z&s5+DQLL+6pw_%+4El*Xuv~UMp_pRr@QilF&U;Q3)`Q5gVW7SBI z=%;YCOi-^P6W(_SS<%*^MN5vmq@;}B5fhi8FMn|)s+kX^IlvXyi8{K_+Kygzk>Keo&bulUA2M&`^POKi}yZMbR}<_!{MN*gt;~V_@UW%nmbz zpDUkCsSG?_pg%%JY*)F5OCsZRcWBLSJ=rGoL56d`7kf?DF@>yb`d&G{UsG-^JG|(i z3!6aN(8e#m122D{$*jjS*C@?N(rj(ng_kQnr&`Ao2aU4Ei-n6RTZ!$UmTMH1AC+U9 zB5hNb6OdEM&zHRWB#Q&tZP_uMR7aOQ7wv0$o5um0KdQ+t|8x^q{CH9h$_34$p|^!j+Ekp})vT!|qO`O0=wy709RN@!=|q|PgBnPewSB{+V@_J^zXyq^E@6#?+e*Q@I~C$#7%;OubNoLy`D(9arFB8xR>Zh^ zXyz>Oo!If&JMRk0X+dHQ#R^p34@`tHS6f-fi#F zXFST?F36K+*Jpj52fa7r3ZsR&ln8i*$G!FG5g1ML*qz-i)b-}(896W+s{C6_^lf~H z#e@KAlS=aa!X8GPY9D_RtSuU4y7$3VF?M?axQ!ZMORns4+dfs61B{)k9wC>!J<7mB z&O`f_w9v2_-hZw2+d<9hs1!5oC9jODm8{sc36m@&hT7SVht`vsbR zJ9W%27>Sc{b}qT-bE@Ohf3hgG*ibWv<-I{{mPd?uJD@DEAr27$j7}t4vyuhE!VeryJ}eo=ivodpoA--4@yh=<_12D#1^ zlR5k|!ykCJZyu)g>8&8VJ-YGIO}7L$oYg27Ku=rt1Gp-^rK#65j*gVewglh{4tc=P z8Sw!;zVKdr*rGwU(tTU;MS4lGe19KoGdxR5LF(7J!by6M<%pWpTqbk9{Bv1`M~8~u zI3gA^;)V}H=r%c=lw#~unvygpUYe;)dl7EDORSjpW9LMz#zw+cI@A_ihWtHKVAJR2 zHOk?@al%2Hd%M&4zVel&f41ip_(#`_aVNjZbC}?v&*qu&Ui$^Sb=B7?(`oi|%XoX5 z2@GjuDg4oo<_x%BH>L@d#_nncYgx9*?#GwsZc~{Ozy`uJIj2)6X&GA~4jSYCaFJm~ zSXXsWV2^aL_<+3U*_d|*e&@b1$tT)s?CH>HMi0|^#mqE^L^dmGi-^B^A#M7wlAGe%kZ(O+3C{_*|BYw@VVfFtg>YeZXI5xjR zjeOTY|LalRzHiOHQ6^mdQ|5)=d*mP0=zm`$e$(&!zZtJzpy~cbBYwet|GqK*nj_(t zE599yKl{i_-@wG9;Cs>$^xyb!2#tUyxnu8>BU$NN#%g4Ov{R%L{sr#WY=Dc0?%#7U z!hRk%w|H z^}w05Y|l2YQ6QKLfTL6uQ0Ya6@BnW!T-nc5bAbgyWvK90=?b>|j^_+tQ7?tfG{Sm8 zweVaq?hAvsxZWAjDBC&`OjSk<{bJYPo*Pc6S2>j!hJu7{3@uuI7N>mdbBz(we1!)^ z>ycymIoht>)?=d_k5+1}H%Pe-z7oWKBT)H9Q232N^DhZ%{vi0Hmyo>l2W$Lk0{t-` z{#Z4>uC0H}hyN4vf#xr`^>;SKr(ZWk(3?r*2AQ2%dU0;|s5fq)p`)YUz{EoN`a(rPyMazb%)n1bLi#g?fS|^0 z#)q1GGU`uE&2nEY(K9`d&#CIToOW7=*Fi;GG2`*w#G^ek=duJnS zd^}`=>aiECOi_3*0}XrLTK|(ku@EL_VS}O>WAzK4BbOsA-Y~k&>d=EMNYX8cTY}GO z4%C84jjEW*ZmQGgc3&6PrRYqlVQ6NNut1x7P8RFNN_C))5NXK!@cOXYBjFjC#13K1 zLm+ie@n<>P&fF4L0%DGmX9pSgt3&qiahD2BFgQ}l0qx7Zic<=iV-wNp%|_r3sU1drjW2liQ)7mv+Mx!zB8nF|a&e2a6M)-gjv%I0;X)-ce zFJa0%Rcf$!N78VyB0u!^SxB%cwLp3Auv-LEEE<|8i{a|JlZVynFiqdFSKw~;O zqOsi(DdRUvQjP5@iYX|`lqTUMd88F}kz!ecc?%mEO^SdN8iqaQOR^i5k8YYj$B8)Q zt1a?Zj^ZUmTZ+BiR;5$jv}8u!)xVR~+4Yn|H|zl_s3`VULN1UWGJ7|TK8~qbXr$TI zP>Zx@3lmG33Zcawj3?vZ+Lo)t#y`zr>Lrs{#<%jSczqoWr#KE99~|aysoS}UA6N+U z_F}d!Eg-|gi8VI-qBVi72Ao&AF}+5^&We#nDnvA2Jmd<@oc7!8a#!Gsc_*!tHm|En zw|y%wJhgta06ed{vTYK=TS6+gMtINY!DWe!cg4U!(kS-Y9*e>nj`|y;Y9(2$O2(M$19>?NQFW)4GHf9Jnq-+H_{6et_jgi0)5?8o;P(aneT^ zZO`(akKeGcDa5i=Qafs4%B%2K!#^^)c{rEeMrC3Nq6`UR;e>ljLik@XvBB+li$R_f z(V8yviCH;=JsdUEd~m64!0k7210ew|+9?%YRb(13tEbU9N8o<0eN|+D*BMY|{SacF5ytYL2ZQb|`BO`&ew7&6)|R zx>uRZ#K?9gd>-)gy{xy?J{y?~!p!>6ri(n4K*-^8aU%zhVMuk8YB#us438?6Ep-t= z3*+yGE-NoN^XNHJENRC&@zQ7;mP-z}ho2qgGUXFJZ_?^HmfGczZ>pN^)--<8Z4ls2 z0e<`@vj|Mm+%%2mg%*HNG?3pcXLDpIoG;?f?Rh;7y7?N#UB4OgJ#Hc_uuFJHn?B*m zEL4hK5mg)uFW;fl|J<;4!+dy&eU0o+|C8nTW)B(q?Y&~8qrnaM>xRRSST5I};jV+j zBQ_n~%@|Csc-H#L+|XR@&K*EKPP$0#8pagoiFA6$d$PLJ_WiHyu`6|rvVSx`VZc?5 zOZe|QZaz296VK{2Y<64>$+=TSFfH!?^<)kkpPV!8m4ln5Wu<$b>&!4tf36jwh#oe) z`bx(=?NOc80?n%$TLP>vp7xpTrrh%)j-+&us^+12iNtq&xOWTF`h(gc%lG?m?F&Se zJnQImJ3_azSzo20TF#x55}G#gz(Znq$BuRMvEs){pmuaiQ}}P+jtK>akW|CaOY!V0 z#yzxyv9cG>TI$snt5Wwe8gOzw9G{1`I}k-7)*4LV`JzoD93^JQD45-ZS60w&+z5$l zl&w0#L?bsq4hp`mgN-$+R%@(B3_PA(o3Lz6;+9=ej$2t@lK|iQgL!erW0dsXdp6f7 zk#TDdBU^jl+s)=<(3S8Io*F-vC$QRa+gt}XQ|*ElUYbzhg+Iq;G~^aSt`Hjycvpxj zj9p#xxG?s?QQ&GH3==V6=$h&5hIJa)Ie-Hd;8NSldeB!BFiFlo!s3fuH2XD%dhiIY zQA%4ZcF(aLH(Q=@6Ht}nKEixno`6zD?fx_4JN=L#=Ou&jhs)tqWe+ExOg^bXeexFN z%)eqcsbPnu1-g5F`_HAuM;2rc|9uC^3$D!eqxv_OB|=Tq=y$QnS=>Gy^JMuWCPwC( zz0biQX_w9QJtK+BL0ERvFICOyH|Q=4G|##Y>@M1j7c-KB zCk9l6waeEPjSq96_RI;@A6BF^W&mtugv**HAs^;(yg!OL7UU$f0cB!R9(DmVIcP2n z;bC3-WrZpa9=-%wgDOe-KokH*T z-*n!7iU~Uk?nO#Cfx4t8|cLR8VrO#liVg{6cBvKr;hQ& z)H&BIKIhd^)i>eh##iA6X;^9MfMz{iI@4Nr&IU^Gj+F6>)*!^JR9&90TngGUM0iW( zHRcm|SsF_g@JiuJ3B^&VOlU+{1gZK{L_4eNY$kFjhbe(|t@_)U>^v`-Hh#C2O? z1A0r*cU?DzvzhM%Qq^84QMzr}`Qi(ElGhv8BnHlnyy)>=5G2z_d^mHR6iTust=k53 zIUoA235bxuC2~ zNIX}iq+@qTDCvb8Ccv^zezFbFy7%5Zp+yQr8HLmR>JT7iaVXC@$dD*_p(I47P}Dn3 zS?s*YH5$hi>+5t%0tyn@qtjPNRS*_^b}6*j5d_5Uauu`@<{q<(;&ieTN^;hY5l$D3 z-6S6CIEjcN?~0*(kByL7?QxSmhNy*LW`?Jx0z$(<+X-b*+@-g#(4q zE%FG8Pcn8L7gS|H&`V5no(vU#MyF8{!RQBieq7D-P=iuFv)iTq?;1_*-WEf7^#GANkHgfwE3f- z`>b;^8_bkASPC>#w?7Yut(@?iohV12kQwlspE%D5`DWiuK4!Ii1$Xg{JBuF!xUMRv zFtH{Ics}j(UhRg)N=pr`%}8zH+&Oc^PK`2-Rq|0!(M!BP-t3QkcV9c2zX!4GEg;%^ z$~>11!Ey0b4Ba|!g{k4F^ha_#&Um-ZMmziLDh_r46KXGEaH5Q)fR0dgjq`*ESn7(c z?Ibv~k?rH+O33a*01tjiPi12KO7@j@1gwMo?x(F)a2;NvvoTQ^C-D7hjmiin-hxLB zZiz5_7xyJ4iIlOTz-Uh%6`(%=b}s|Yuc6%vQ|5S_ zmNh(_QGI&vl(Yo_StoyHzj%$JcY$N)K49`uMp=2P_Kf|uCj0I7U4V710XJC`AaCqn zSU9?ULhae#bY!?QcP=6|Xj$X>r-Ie`bkmWeUq<%-ib8^8-<4FS33^k&YGGgF5%CGj z;Af?p<-QY_4`UDeH0;l6 zN;NzZw$usGVBvgyh*OtFV&J&Q%iSinA77{Y>w^gpC&JpGn!CdpEHOqqj7vX?8!OE^w1(@dIcZ>a$ER)ITsO!6Ga40&S4OOV5BwZ2iP z42G_EG<|eTu&;M=GyJ7h-+Puh6An>@YOyB|SPJ~B3Ta8z&O00liUmkMjs!6N>k5U} zCQFlPf~?+am5P1ds5KMxBkelz_wlMb6(`#uScsiG7y~C zhN|){QfSP%Xe~e*A+)|kdkRWrK9mp1?Xh*M4i=H?Eqw8ziNej_|6t>(m61d>C%7W$ z@CXTW4VnTaEe~uAtu8O)2I*$>E{$_lcKYKR+k7a8W;4TXHBR~(7PlMSLhLf>oMjhM zdCLo&M?(w>@2qO2UY5NTuCAAr_&{6DUl|t*wY}3B`kvBNg~g;I>Q6sD9?ijH^6c<~ z<~52LRguae8yCJb>#ZP)xh4VRV}?_Fu_=KRpQyc%bTa|h#^`MYOpaaoj|-U;Bi9h6 z({sgs{DT=uVZbsI;_$O?n{ga?aP08(Cn*zNg+au|sc-8YUU2@eRj^mfh;zk*OA}-m M+=o$QI^F6209)Q{^#A|> literal 0 HcmV?d00001