From e8075dc8d356c8d5a306d6e0943350d45897448f Mon Sep 17 00:00:00 2001 From: dnomd343 Date: Mon, 22 Aug 2022 21:15:30 +0800 Subject: [PATCH] docs: complete example_1 --- README.md | 81 +++++++++--------- docs/example_1.md | 190 +++++++++++++++++++++++++++++++++++++++++ docs/example_2.md | 4 +- docs/img/example_1.png | Bin 0 -> 51041 bytes 4 files changed, 235 insertions(+), 40 deletions(-) create mode 100644 docs/img/example_1.png diff --git a/README.md b/README.md index 965ffff..e78285d 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ ## 拓扑模型 -XProxy部署在内网Linux主机上,通过 `macvlan` 网络创建独立MAC地址的虚拟网关,劫持内网设备的网络流量并进行透明代理;宿主机一般以单臂旁路由的方式接入,虚拟网关运行时不会干扰宿主机网络,且宿主机系统的流量也可被网关代理。 +XProxy 部署在内网 Linux 主机上,通过 `macvlan` 网络创建独立 MAC 地址的虚拟网关,劫持内网设备的网络流量进行透明代理;宿主机一般以单臂旁路由的方式接入,虚拟网关运行时不会干扰宿主机网络,同时宿主机系统的流量也可被网关代理。
@@ -26,15 +26,15 @@ XProxy部署在内网Linux主机上,通过 `macvlan` 网络创建独立MAC地
-XProxy运行以后,内网流量将被收集到代理内核上,目前内置了 `xray` ,`v2ray` ,`sagray` 三种内核,支持 `Shadowsocks` ,`ShadowsocksR` ,`VMess` ,`VLESS` ,`Trojan` ,`WireGuard` ,`SSH` ,`PingTunnel` 等多种代理协议,支持 `XTLS` ,`WebSocket` ,`QUIC` ,`gRPC` 等多种传输方式。同时,得益于V2ray的路由设计,代理的网络流量可被精确地分流,可以依据内网设备、目标地址、访问端口、连接域名、流量类型等多种方式进行路由。 +XProxy 运行以后,内网流量将被收集到代理内核上,目前内置了 `xray` ,`v2ray` ,`sagray` 三种内核,支持 `Shadowsocks` ,`ShadowsocksR` ,`VMess` ,`VLESS` ,`Trojan` ,`WireGuard` ,`SSH` ,`PingTunnel` 等多种代理协议,支持 `XTLS` ,`WebSocket` ,`QUIC` ,`gRPC` 等多种传输方式。同时,得益于V2ray的路由设计,代理的网络流量可被精确地分流,可以依据内网设备、目标地址、访问端口、连接域名、流量类型等多种方式进行路由。 -由于 XProxy 与宿主机网络完全解耦,一台主机上可运行多个虚拟网关,它们拥有不同的MAC地址,在网络模型上是多台独立的主机;因此各个虚拟网关能负责不同的功能,甚至它们之间还能互为上下级路由的关系,灵活实现多种网络功能。 +由于 XProxy 与宿主机网络完全解耦,一台主机上可运行多个虚拟网关,它们拥有不同的 MAC 地址,在网络模型上是多台独立的主机;因此各个虚拟网关能负责不同的功能,甚至它们之间还能互为上下级路由的关系,灵活实现多种网络功能。 ## 配置格式 -> 所有 `.json` 后缀的文件将视为JSON格式文件,其余将以YAML格式进行解析 +> 所有 `.json` 后缀的文件将视为 JSON 格式文件,其余将以 YAML 格式进行解析 -XProxy使用YAML或JSON格式的配置文件,包含以下部分: +XProxy 使用 YAML 或 JSON 格式的配置文件,包含以下部分: ```yaml proxy: @@ -89,9 +89,9 @@ proxy: + `core` :代理内核类型,可选 `xray` 、`v2ray` 、`sagray`,默认为 `xray` -+ `http` 与 `socks` :配置 http 与 socks5 入站代理,使用 `key: value` 格式,前者指定入站标志(路由配置中的inboundTag),后者指定监听端口,默认为空 ++ `http` 与 `socks` :配置 http 与 socks5 入站代理,使用 `key: value` 格式,前者指定入站标志(路由配置中的 inboundTag),后者指定监听端口,默认为空 -+ `addon` :自定义入站配置,每一项为单个内核inbound接口,具体格式可见[内核文档](https://xtls.github.io/config/inbound.html#inboundobject),默认为空 ++ `addon` :自定义入站配置,每一项为单个内核 inbound 接口,具体格式可见[内核文档](https://xtls.github.io/config/inbound.html#inboundobject),默认为空 + `sniff` :嗅探选项,用于获取透明代理中的连接域名: @@ -130,21 +130,21 @@ network: + `ipv4` 与 `ipv6` :指定 IPv4 与 IPv6 的网络信息,其中 `gateway` 为上游网关地址,`address` 为虚拟网关地址(CIDR格式,包含子网长度),不填写时保持不变,默认为空 -+ `bypass` :绕过代理的目标网段或IP,默认为空,建议绕过以下5个网段: ++ `bypass` :绕过代理的目标网段或 IP,默认为空,建议绕过以下5个网段: - + `169.254.0.0/16` :IPv4链路本地地址 + + `169.254.0.0/16` :IPv4 链路本地地址 + `224.0.0.0/3` :D类多点播送地址,E类保留地址 - + `fc00::/7` :IPv6唯一本地地址 + + `fc00::/7` :IPv6 唯一本地地址 - + `fe80::/10` :IPv6链路本地地址 + + `fe80::/10` :IPv6 链路本地地址 - + `ff00::/8` :IPv6组播地址 + + `ff00::/8` :IPv6 组播地址 -+ `exclude` :不代理的来源网段或IP; ++ `exclude` :不代理的来源网段或 IP -> `bypass` 与 `exclude` 中指定的IP或CIDR,在运行时将不会被TProxy捕获,即不进入用户态的代理路由,相当于无损耗的直连 +> `bypass` 与 `exclude` 中指定的 IP 或 CIDR,在运行时将不会被 TProxy 捕获,即不进入用户态的代理路由,相当于无损耗的直连 ### 路由资源 @@ -178,7 +178,7 @@ custom: - "ip6tables -t nat -A POSTROUTING -d fc00::3 -p tcp --dport 5353 -j SNAT --to fc00::4" ``` -自定义脚本命令,在启动代理前将依次执行,用于注入一些其他功能,默认为空 +自定义脚本命令,在启动代理前将依次执行,用于注入额外功能,默认为空 ### IPv6路由广播 @@ -226,17 +226,17 @@ radvd: + `AdvSendAdvert` :是否开启 RA 报文广播,启用 IPv6 时必须打开,默认为 `off` - + `AdvManagedFlag` :指示 IPv6 管理地址配置,即M位,默认为 `off` + + `AdvManagedFlag` :指示 IPv6 管理地址配置,即 M 位,默认为 `off` - + `AdvOtherConfigFlag` :指示 IPv6 其他有状态配置,即O位,默认为 `off` + + `AdvOtherConfigFlag` :指示 IPv6 其他有状态配置,即 O 位,默认为 `off` - + > M位与O位的详细定义在 [RFC4862](https://www.rfc-editor.org/rfc/rfc4862) 中给出: + + > M 位与 O 位的详细定义在 [RFC4862](https://www.rfc-editor.org/rfc/rfc4862) 中给出: - + `M=off` 且 `O=off` :使用 `Stateless` 模式,设备通过RA广播的前缀,配合 `EUI-64` 算法直接得到接口地址,即 `SLAAC` 方式 + + `M=off` 且 `O=off` :使用 `Stateless` 模式,设备通过 RA 广播的前缀,配合 `EUI-64` 算法直接得到接口地址,即 `SLAAC` 方式 - + `M=off` 且 `O=on` :使用 `Stateless DHCPv6` 模式,设备通过RA广播前缀与 `EUI-64` 计算接口地址,同时从 `DHCPv6` 获取DNS等其他配置 + + `M=off` 且 `O=on` :使用 `Stateless DHCPv6` 模式,设备通过 RA 广播前缀与 `EUI-64` 计算接口地址,同时从 `DHCPv6` 获取 DNS 等其他配置 - + `M=on` 且 `O=on` :使用 `Stateful DHCPv6` 模式,设备通过 `DHCPv6` 获取地址以及DNS等其他配置 + + `M=on` 且 `O=on` :使用 `Stateful DHCPv6` 模式,设备通过 `DHCPv6` 获取地址以及 DNS 等其他配置 + `M=on` 且 `O=off` :理论上不存在此配置 @@ -244,13 +244,13 @@ radvd: + `prefix` :IPv6 地址前缀配置,`cidr` 指定分配的前缀及掩码长度,`option` 指定[前缀选项](https://code.tools/man/5/radvd.conf/#lbAE) - + `route` :IPv6 路由定义,`cidr` 指定通告的路由 CIDR(注意客户端仅将RA报文来源链路地址设置为IPv6网关,此处设置并不能更改路由网关地址),`option` 指定[路由选项](https://code.tools/man/5/radvd.conf/#lbAF) + + `route` :指定 IPv6 路由,`cidr` 为通告的路由 CIDR(注意客户端仅将 RA 报文来源链路地址设置为 IPv6 网关,此处设置并不能更改路由网关地址),`option` 指定[路由选项](https://code.tools/man/5/radvd.conf/#lbAF) - + `rdnss` :递归 DNS 服务器地址,`ip` 指定 IPv6 下的 DNS 服务器列表,`option` 指定 [RDNSS 选项](https://code.tools/man/5/radvd.conf/#lbAG) + + `rdnss` :递归 DNS 服务器地址,`ip` 指定 IPv6 下的 DNS 服务器列表,`option` 指定[RDNSS选项](https://code.tools/man/5/radvd.conf/#lbAG) - + `dnssl` :DNS 搜寻域名,`suffix` 指定DNS解析的搜寻后缀列表,`option` 指定 [DNSSL 选项](https://code.tools/man/5/radvd.conf/#lbAH) + + `dnssl` :DNS 搜寻域名,`suffix` 指定 DNS 解析的搜寻后缀列表,`option` 指定[DNSSL选项](https://code.tools/man/5/radvd.conf/#lbAH) -> `RDNSS` 与 `DNSSL` 在 [RFC6106](https://www.rfc-editor.org/rfc/rfc6106) 中定义,将 DNS 配置信息直接放置在 RA 报文中发送,使用 `SLAAC` 时无需 `DHCPv6` 即可获取 DNS 服务器,但是旧版本 Windows 与 Android 等系统不支持该功能。 +> `RDNSS` 与 `DNSSL` 在 [RFC6106](https://www.rfc-editor.org/rfc/rfc6106) 中定义,将 DNS 配置信息直接放置在 RA 报文中发送,使用 `SLAAC` 时无需 `DHCPv6` 即可获取 DNS 服务器,但旧版本 Windows 与 Android 等系统不支持该功能。 ### DHCP服务选项 @@ -260,8 +260,10 @@ WIP... ### 1. 初始配置 +> XProxy 基于 macvlan 网络,开启混杂模式可以捕获非本机物理网卡的数据包,以此模拟出不同 MAC 地址的网卡 + ``` -# 开启网卡混杂模式 +# 开启混杂模式,网卡按实际情况指定 shell> ip link set eth0 promisc on # 启用IPv6内核模块 @@ -273,10 +275,8 @@ shell> modprobe ip6table_filter ``` # 网络配置按实际情况指定 shell> docker network create -d macvlan \ - --subnet=192.168.2.0/24 \ - --gateway=192.168.2.1 \ - --subnet=fc00::/64 \ - --gateway=fc00::1 \ + --subnet={IPv4网段} --gateway={IPv4网关} \ + --subnet={IPv6网段} --gateway={IPv6网关} \ --ipv6 -o parent=eth0 macvlan # 此处指定eth0网卡,需按实际调整 ``` @@ -386,12 +386,13 @@ shell> docker logs -f xproxy > 这一步旨在让宿主机能够使用虚拟网关,若无此需求可以跳过 -由于macvlan方式的限制,宿主机上开启macvlan的网卡无法直接与虚拟网关通讯,需要另外配置网桥才可连接 +由于 macvlan 限制,宿主机网卡无法直接与虚拟网关通讯,需要另外配置网桥才可连接 > 以下为配置基于 Debian,基于 RH、Arch 等的发行版配置略有不同 +编辑网卡配置文件 + ``` -# 编辑网卡配置文件 shell> vim /etc/network/interfaces ``` @@ -433,12 +434,18 @@ shell> /etc/init.d/networking restart ## 演示实例 -实例1. [使用XProxy绕过校园网认证登录](./docs/example_1.md) +> 由于 XProxy 涉及较为复杂的网络配置,这里准备了两个详细的实例供您理解 + ++ 实例1. [使用XProxy绕过校园网认证登录](./docs/example_1.md) -实例2. [家庭网络的IPv4与IPv6透明代理](./docs/example_2.md) ++ 实例2. [家庭网络的IPv4与IPv6透明代理](./docs/example_2.md) ## 开发相关 +### 运行参数 + +XProxy 默认使用 `/xproxy` 作为存储文件夹,该文件夹映射到外部主机作为持久存储,您可以使用 `EXPOSE_DIR` 环境变量修改该文件夹路径;同时,XProxy将默认读取该文件夹下的 `xproxy.yml` 作为配置文件,在运行时添加 `--config ...` 参数将读取指定配置文件;启动 XProxy 时若添加 `--debug` 参数,将进入调试模式,输出日志切换到 DEBUG 级别。 + ### TProxy配置 XProxy 默认使用以下配置: @@ -451,13 +458,9 @@ XProxy 默认使用以下配置: + IPv6 透明代理端口:`7289`,使用 `IPV6_TPROXY` 环境变量修改 -### 运行参数 - -XProxy 默认使用 `/xproxy` 作为存储文件夹,该文件夹映射到外部主机作为持久存储,您可以使用 `EXPOSE_DIR` 环境变量修改该文件夹路径;同时,XProxy将默认读取该文件夹下的 `xproxy.yml` 作为配置文件,在运行时添加 `--config custom.yml` 参数将读取指定配置文件;启动 XProxy 时若添加 `--debug` 参数,将进入调试模式,输出日志切换到 `DEBUG` 级别。 - ### 容器构建 -> XProxy 针对 buildkit 进行优化,使用 buildx 命令将会加快构建速度 +> XProxy 针对 buildkit 进行优化,使用 buildx 命令可加快构建速度 **本地构建** diff --git a/docs/example_1.md b/docs/example_1.md index c21580d..e6278cd 100644 --- a/docs/example_1.md +++ b/docs/example_1.md @@ -1 +1,191 @@ ## 使用XProxy绕过校园网认证登录 + +部分校园网在登录认证时需要 DNS 解析,因而在防火墙上允许 `TCP/53` 或 `UDP/53` 端口通行,借助这个漏洞,可将内网流量用 XProxy 代理并转发到公网服务器上,实现免认证、无限速的上网。 + +以下为一般情况下的网络拓扑: + +![Network](./img/example_1.png) + +为了方便讲解,我们假设以下典型情况: + ++ 校园网交换机无IPv6支持,同时存在QoS + ++ 无认证时允许53端口通行,ICMP流量无法通过 + ++ 使用三台公网服务器负载均衡,其53端口上运行有代理服务 + ++ 三台服务器只有一台支持 IPv4 与 IPv6 双栈,其余只支持 IPv4 + +### 代理协议 + +首先,从速度上考虑,我们应该选用socks层面的代理,它在代理服务器上的部署更方便,且CPU负载较低,缺点则是ICMP流量无法被代理,不过绝大多数情况下并不会用到公网ICMP流量(例如PING命令);其次,由于存在高峰期QoS,应使用基于TCP的代理协议,此外,为了避开校园网的流量审查,我们应该将流量加密传输;最后,由于软路由性能一般较差,而代理服务器无需考虑协议兼容性问题,我们可以考虑基于 XTLS 的传输方式,它可以显著降低代理 https 流量时的性能开销。 + +综上,选择 VLESS + XTLS 或者 Trojan + XTLS 代理是当前网络环境下的最优解。 + +### 初始化配置 + +> 分配 `192.168.2.0/24` 和 `fc00::/64` 给内网使用 + +路由器 WAN 口接入学校交换机,构建一个 NAT 转换,代理流量在路由器转发后送到公网服务器的53端口上;假设内网中路由器地址为 `192.168.2.1` ,配置虚拟网关 IPv4 地址为 `192.168.2.2` ,IPv6 地址为 `fc00::2` ;在网关中,无论 IPv4 还是 IPv6 流量都会被透明代理,由于校园网无 IPv6 支持,数据被封装后只通过 IPv4 网络发送,代理服务器接收以后再将其解开,对于 IPv6 流量,这里相当于一个 6to4 隧道。 + +``` +# 宿主机网卡假定为 eth0 +shell> ip link set eth0 promisc on +shell> modprobe ip6table_filter +shell> docker network create -d macvlan \ + --subnet=192.168.2.0/24 \ # 此处指定的参数为容器的默认网络配置 + --gateway=192.168.2.1 \ + --subnet=fc00::/64 \ + --gateway=fc00::1 \ + --ipv6 -o parent=eth0 macvlan +``` + +我们将配置文件保存在 `/etc/scutweb` 目录下,使用以下命令开启 XProxy 服务: + +``` +shell> docker run --restart always \ + --privileged --network macvlan -dt \ + --name scutweb --hostname scutweb \ + --volume /etc/scutweb/:/xproxy/ \ + --volume /etc/timezone:/etc/timezone:ro \ + --volume /etc/localtime:/etc/localtime:ro \ + dnomd343/xproxy:latest +``` + +### 参数配置 + +我们将三台服务器分别称为 `nodeA` ,`nodeB` 与 `nodeC` ,其中只有 `nodeC` 支持IPv6网络;此外,我们在内网分别暴露3个 socks 服务端口,用于检测三台服务器的可用性。 + +由于校园网无 IPv6 支持,这里 IPv6 上游网关可以不填写;虚拟网关对内网发布 RA 通告,让内网设备使用 SLAAC 配置网络地址,同时将其作为 IPv6 网关;此外,如果路由器开启了 DHCP 服务,需要将默认网关改为 `192.168.2.2` ,也可以启用 XProxy 自带的 DHCPv4 服务。 + +修改 `xproxy.yml` ,写入以下配置: + +```yaml +proxy: + log: debug + core: xray + socks: + nodeA: 1081 + nodeB: 1082 + nodeC: 1083 + +network: + dns: + - 192.168.2.1 + ipv4: + gateway: 192.168.2.1 + address: 192.168.2.2/24 + ipv6: + gateway: null + address: fc00::2/64 + bypass: + - 169.254.0.0/16 + - 224.0.0.0/3 + - fc00::/7 + - fe80::/10 + - ff00::/8 + +radvd: + log: 5 + enable: true + option: + AdvSendAdvert: on + prefix: + cidr: fc00::/64 + +custom: + - "iptables -t nat -N FAKE_PING" + - "iptables -t nat -A FAKE_PING -j DNAT --to-destination 192.168.2.2" + - "iptables -t nat -A PREROUTING -i eth0 -p icmp -j FAKE_PING" + - "ip6tables -t nat -N FAKE_PING" + - "ip6tables -t nat -A FAKE_PING -j DNAT --to-destination fc00::2" + - "ip6tables -t nat -A PREROUTING -i eth0 -p icmp -j FAKE_PING" + +update: + cron: "0 0 4 * * *" + url: + geoip.dat: "https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geoip.dat" + geosite.dat: "https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat" +``` + +在开始代理前,我们使用 `custom` 注入了一段脚本配置:由于这里我们只代理 TCP 与 UDP 流量,ICMP 数据包不走代理,内网设备 ping 外网时会一直无响应,加入这段脚本可以创建一个 NAT,假冒远程主机返回成功回复,但实际上 ICMP 数据包并未实际到达,效果上表现为 ping 成功且延迟为内网访问时间。 + +> 这段脚本并无实质作用,只是演示 `custom` 功能 + +### 代理配置 + +接下来,我们应该配置出站代理,修改 `config/outbounds.json` 文件,填入公网代理服务器参数: + +```json +{ + "outbounds": [ + { + "tag": "nodeA", + ··· + }, + { + "tag": "nodeB", + ··· + }, + { + "tag": "nodeC", + ··· + }, + ] +} +``` + +接着配置路由部分,让暴露的三个 socks5 接口对接到三台服务器上,并分别配置IPv4与IPv6的负载均衡;路由核心在这里接管所有流量,IPv4 流量应将随机转发到三台服务器,而 IPv6 流量只送往 `nodeC` 服务器;创建 `config/routing.json` 文件,写入以下配置: + +```json +{ + "routing": { + "domainStrategy": "AsIs", + "rules": [ + { + "type": "field", + "inboundTag": ["nodeA"], + "outboundTag": "nodeA" + }, + { + "type": "field", + "inboundTag": ["nodeB"], + "outboundTag": "nodeB" + }, + { + "type": "field", + "inboundTag": ["nodeC"], + "outboundTag": "nodeC" + }, + { + "type": "field", + "ip": ["0.0.0.0/0"], + "balancerTag": "ipv4" + }, + { + "type": "field", + "ip": ["::/0"], + "balancerTag": "ipv6" + } + ], + "balancers": [ + { + "tag": "ipv4", + "selector": [ "nodeA", "nodeB", "nodeC" ] + }, + { + "tag": "ipv6", + "selector": [ "nodeC" ] + } + ] + } +} +``` + +重启 XProxy 容器让配置生效: + +``` +shell> docker restart scutweb +``` + +最后,验证代理服务是否正常工作,若出现问题可以查看 XProxy 以及 `/etc/scutweb/log` 文件夹下的日志,定位错误原因。 diff --git a/docs/example_2.md b/docs/example_2.md index f042f88..b6fa935 100644 --- a/docs/example_2.md +++ b/docs/example_2.md @@ -1 +1,3 @@ -## 家庭网络的IPv4与IPv6透明代理 \ No newline at end of file +## 家庭网络的IPv4与IPv6透明代理 + +WIP... diff --git a/docs/img/example_1.png b/docs/img/example_1.png new file mode 100644 index 0000000000000000000000000000000000000000..7a5b7a844ec0a4aa7b9f0770b53785337626b3af GIT binary patch literal 51041 zcmbrm2RPeZ|37}W?pC!$CoL^)QEGM=RYezS*NjmVMeRK!bSR}o?b@xqBDE4kq&2Gc z3^h}mAh9BZ@H=te_w#%H&-4BMuj_yPuj?a{Px3kEea?B0*L$23`b0yC`6$QHKmPcG zS^4oJ?LYotSO$Sf~9b_Ujq%gawao$tU{WRJDE-rSKi5q<;05a+{N6_|+pBc`p~=T|qC( zOoWAT3WgmMY`OYQptyO@De_t?F~{~ZC+B8B@%HM2yy9Y~xn8V0wJ%?O=P)4PneHZo z<^k~LUM1uI_R-T9ve@^W&1k%;lBs3_gAv->`uM{Dw0lsy&YCLp}>Tg(;5 zX(<@+ORrXB`iY9ENdURAKG*qab^lP$%I^WQknKxQZh7>m+n!o|YS?7>Jm0KW_Qlbp zr#y^ES+dJ>!g%U-gktu^m^Yd~y7;x4Jk2A9g?21a}`VX$IyFoE~DYU+J+(no3{rD zK9ra5?qA62>#G{JDGE(c;z-lg@mg;g-C*1S(+LKxh(vaz_3iYgzdc)n73>f{5V^*b zd|k%P;$Ba-6gdN+QmVHfnJ@w1o}@E-ue=?wIeBS+u%8`d4rXPm>ig|wy zf>DglkS>XEZ^y``E&DNed zauna$CQgygDQT@hp{ea6d~QWhD~r`$efp;g`bu-eX32&*d&kb`n|1}JUB4!vl~#!I z38FsqOisukSH2#|j_0~Ou}@H*JGCcOB$N?vcD7J+`1FpKibHCRz{8BH)Wg_Z;bu2x z4cCpx9vhl+!1&%+Y_eX!?n;b}V$=CVzbRbPAvts68pRI*cMIw&;(8ynDTNmLvf7ms z5_{+8NkXfoc~WoN5yvywFOkv;bT#%WDhsnV9v?)&ibi&~mxO-2C+|6Uz&?1&Q7+YF zwR&Bk{Eh2c=e&Z;!OXt_CayMjr<}+T*u2#2ek~w}zKX?XU*~S!Z#qF;i2u|B?+DqazoJH>=N5i`wvVKuDou%O{fZ zI#rBuu|8L{-LpJaIAlFHfuAjsGAe2Yg?p_VAk0`EZ+{!lRA;}W=NacEe6=gX!gL0z@^~D&iZ3~vCitnq3uN?vTjx5ipHeLTn5>fT|tC_k^qgA zHz{+rRefRN8n<{ZEdRMFs2;8>f{ozN;YX%u6j5Zy0$+Gz zri#hyj#B^3bnQ2nw$s*1eljy>HY#wUuSx(rM9e)$m@uir@z~AQ^4Wfq#A9?zrC5eu zVhytsbsRF0ro_lvmu&)WZq_`_;Eg`ar|ghg$_pi|-tC;;>eWA^G6aO$$M11I8x2(IGhyn1!KIi z?{{2aVbU35)m`VQhITgzej7sRh}Oq6rEjOXv~%L?@fVC6Tj|Q7$)In0m z$oqcHq|>Aq@7vamfo;foH(Kx8C`2A`BlpXij?%~dBP;}?c}t~pUM#xc@C^UqhRRO7 z(5r1nk?(SjdMi^3=VNBB&LJLC-8%d#hilGso;@@LX>rRZyYE)touN9e$^vW<*kbTQu~Ru}F!FX;U);~}b(mD4FIQVoYc3iQ6VIKH_0{_EIB{;G>Mma5wqZ1;R`aH( zA(vtNO%YG)rQ7K)y)k!Y0!sPs(0)yGE|oLwuVj`EyVD+2r`YK#jfHY(Taow^m9?Yn zK4~U@0h{{Vuw{LsVig5uYpSC9sozWDv7Vc-6! zw7=BUwy;QhCrfiQ zz}r>##RE^(CI+M9bR5P~fSz6XF&75O&7eBCCZn3{J*5*PGs=^y?{>b(81R-+L5wYa zCeyndH@K3dkoE|bjSx5XRg_A%5{=qMo2_T*k~*G?I;_X|ZjN~?iIrr+Hb%$TFB zSy|@5g?X#BV)g9577Od!zbG)`Hl(hfS6!e>whvUp%q}1hS9suYq{4iIL>R}W9m|@1MIl>=N<0EU>RUt}#nIjH6Bw!eAD_Aq5F~UAg(GqnPqrbYm9$5QwAT>&o`whnF%1l1+6l zYr-S2zt>=5raLP341n}+wZQaokjffAF3#qjY7}T;f#?cAwgTEC2gPsGn^>F!Dx4(p z{zlsmCKcWwtyoM)sfpf%_^k(~F90IyS)|YD*94MReC^#gl1ZBiT3)8dur4FV>y@5& z&o{mBrNh-4NBP+25Di)RyStYyrD6%+_QIgzl9P#yp>9yi`m!6J_W6M z9l`@7fQ>H#_n+2=S-v;_6`+_$Nm9AOuE5+&r3f9J_LPE+u_RrhLki@&`_s6f<3Pq& z*%X*<)R%{^iDBOGBf5_spi`GvmA)7ibOZ3J`TLCEvMePLF-&FA>GB8k0Xj^A0TOhL zNELcPB4HdINx-0)`k5)7={~XlaCowJHLvLh%BV(9MxMDSShrQewv*B|=96^zIb7+V zsXoydG#JGT9-eVC`*;;mo9+ea`TOBD2$7=>gV%@#bW!X+y((EHwC3mKUOouc?-^$* zgWki2V3585?Zjy28SyLOvZ_|507Yr5raICA{gS?;XD`$|TG($_ z5Rx=RIh(d6UjAE5HIpoDDwLaO%)hzhu`%5ETKbGciiEAx>zcWEe@wddQNXqLI1#N^G>cZ%Og~&DC z4+Y11YyGRFJCCBhwz-zh(kE;!O%9r-@1bbow4wJo{p|Qn{xM)~0gLym?RjoQUh!eJ zQFd`&^0T;%#@j*HlgA%eimBKcw>zDP>K5P}A^Bc4X2DE7d+uDS86e@Mwhj$1bhM%v{cBs)w>idj($CJtD!fVo9&!Xlb$afQib2S6Vk}nm;ohQC8X#q`nn!!RB0k!z%M7E=awe}taJk+&**Kf6#c+@d( zY*5~BbwXHM*KB+YsaB66k1|wMY1NYKe~m3hmQy8nGaPt~hnBBRXf|?5c-j`PS2OdY z+JP%JE{r8hPBqIVW>o zFv3`w6AMXa=rbcp$`&+fny$-4XjFQyzjf``uR5HYH;@mOVu0Ybqy#J-;80O~ddbyY zLOaWlIG72`#i0{=yLK~9_u9(OzI~K;AENA72wyE>YhX>i^{2!ZWKV}Cg$>8%al;Z$ zh{@j>?8=Af@a?t{tnE)pkB^z#uTC77cqTS27l=r#x>MMiO3R$e4K(C{<-(KWnE_v% zd#}Iu2|n?=k42$>M z)XI5FUK(;&c=c8lS5UR-F0TyR*g3SsN!RemqG9bz($8L#B;UKfDn<4cdE5W^xx`K+ zXYSf@&}eBk`o%Bv-$JXtXa(LQpPx!5yg68P48HeSq~aRq&&&DSS4M^l`kr%2)SGJ8 zN(_{1FIWat-UzwMLZ|g%Ene>`)3X%Kb2_dL&{NO3sMJ2>+l3|CJuJ_gRj|^u4tjbZ1FY{J2jlJ>G7%u3VbY4_S zO-x$pAtMmj4@^vh{CzH;XIJlDiG_ERRw!ju+#F$jj2#bH>c3@2tnJs*ay8q2@&Kmz zMP9Jtm1K%$W#Gas-{T14=bsV9A>!V2j4?+^$PNyza$4Is@x}ov37?+6x^$Ar_b$1k zy5zcZ)8a;sI}x{Bv*FU09`5zf@etRN3<29#<(=Zj^dW9wv(r`YuXY3yOx-$`4Y7EQ zgCE;FbK+hOlUmm8oTxABFx?VmeTy8&WJ>N{!?&Ea<4lJ3Y3Rl#>}_~%d?hf=<<6fb z;{AM!ucv6;^6fy*rWhWhkIo6WW#TmpV&fcoNa3@U@aHr>TamWv67Nb#jC+=Di&(y+ z1oh8*H1TIN*R$*7++U}N7r*qie1aa+=$)gh(#-yt+)n1%?v7s%)=SKlzv*crrjIGu zuC2o5=eo zy<}^!T=Bp_dEa{6f$T99C$U14x2-r3VRD*+k`hZ+sPz7rge)~MT?Dr4%im8IqKKHM zPsO6=EZ2HXw=p$^Lq&MGmk-}UD~{v@`IJdD7dc688~!;ycHb^V^Ha?j8p_qXzE8PM zJy}wb=x91rl`A>Va9g($VsEi)eRI|{FtrG;)^X+1h|FW@_7On@C8AhK97bQqJPAwn zy4JJAwNN>vY%&sW-&@f5J3KzMM5z)|zx0rmV)xASBC=braNU09)7VEBlE8R?eo)OX z5-^D%kOQVm-^VSy29G|>e;NiD!4aF=oMgJ?Ij3r#w5tn8+HPzUlwdHAXGz_-#)2u= zMA{1rz-9zfH8FqHO7B=(>01w`8^_k>n3lNc!ey6=_J^3Hc@4EZ=;`cgrS?A8o8fv? zDW!Uh!eC`p35isNHLVxu4L#3_9@3ZihQPjLA0InuM=dy|k#~r$t%87!$J~X-FBmW{ zOc(aWIMc3B^i99?JE-loKR?7td*o{mSnDZ|L>S^?sMd(o&?gttZB_GPs$2{kD_sO> zJ9{w>pHfc8K03@{VVj#`)QlV-t5Yt9iMU#}r$8O=eC*zVW{M*&zMazcQ}QRLZ%eKB43}-F#3FVgpCW87`|#-ifE> zeO+?~2&*U2KVeaKKZe$tYo^KNR_&|mAP}31nRU3;*10k)4bx*%9xcumVR9~X5xf7i z-A@WFnj5ysVC1Fah%iZN@%U{<N?i6DzKt3+ zcqdii98Ft*iRGEt%$B;+w8(X$+c*6z@c?iZZp?s~&K_;+rONfw)}&9RyvdiGBDHl4 z4~xeZzug9gJQ3Hvir~8D7#lb$sW>nFB~RJH&(b|ouDviz6#C@!Gd0b;xX*}STt$QY=QuKBH{~2yN+IC( z0DrprUHaVDTZ16NHg!aP=URgGzDZh$cGL9h#BbSg)fFA7zZ-P6=&f_Bi?e!1e{ooL z=Q>{n+~_&UzT$#}i4s1rYa##(>Es(RmKG?E+;m#gx#(U%lhDb5#&Kbg{Vs-oQE%ObQPzkUwF7t(7rc8tq5ZxLYaZjA8xgrK#5F*i*pd>?~p=`x>3EmV;x+sK5_`-mLGs5EoXV zZ#4jP-TGmvRXrPa5Fk>^%c)Aw#f{vv1zRCsqidWtaw*WXdCg}gX!3`*XC>9^G4a3K zy|{EC-`#4t=l+Cc4!1n~I2lE^wQfeJ-+9< z;>r~7=X>&-rCB9kZ}S#GJet?dgYIo6)HG?Pb$ijZ>UFjRy~4L=NfKxEgFnn)wgPUu zI&jzxmCSmWpVeVxb-J%7Wzf= zIb#A+f{y{c_VWDp`;NTIZxZkecSj0i%=k)GTTpI&W|9l`Ml2HR6*p6@oi3*Fd1Q&* zxN%7lqmd90V~YRvp#BgYiIR``l`4z1iAXyD|LS84S6qT~+UNz;QJ52wR%&+V9Kkc?Urs=2}Vv z597E%Fz9l+R^JKs&O{LA&PxmkC|G=C>?yd6y=JRmlO`W{-|`UPoyzr zc4pq?ejogjn9bNMi-Sq4M4V2-Om(|z;%9VhL;3HEcn2}*fQ_q;XXrZMz@}tr-}0Be z3=g{3`g{f>F6m7Lv_JK*$SHbD@FO20?X`nFi&E1Vp>(Pv4f2rT191VIb{ui8(fHxs3Gb5K6Wz z{N%2wg%qqPDAH0-D-!`z06fD+oAf+sPny#sQzH%Hx#+OKWtDb)Wx6dzxbD0Hv!jGsJueFA!(6=spu?5^ zMX@_Vp$&u1?BgFYg3FCMUc*+ksTTGp;YaBMLCphyt?IFe0&~gL&GY>g!t(u(WA@_( zj&}m5i=p>|rcMDL_zH&tv$aOYsrrJ_v1496Y5S3fZ5EsfLgh9Mp{s z#kE;H2|Z6MBqMr1bSB^{x6z|#pLtv6LVlv})4nQ)9SWqP20khm`A=v3N~Al0MhVic1ZU3~MkcyO zx7rU=mCE{3Yw~i&-@_HkcetHzK3Y@ve+MaX%e^@JWzfne?wybDkD= zFD%20S`ZCPc>_R5lTq%c9m+SK;Ec2K+9ZCM6hE{dL`%-?OiQ<|EJH1~Ne!z47_~#3 z5STSIw?2(kj*SG~MGQ;Z58(&yku6fWhGE2HBZ=X!< zrTIZ!hcR5H+kXWcJBUg^A%o1=G{j6z=uR1S(?PMh3V^J^X>wH@8QTDXw&TA9697`- z8`5@K(>`85?mltB#R&ua&VHWMy{+0IcPZaj`?qdQzd{^{8VV}@&FvxZA#9n5wJ z9`Db-jksANm!&JOD@I=F^kvjEos6S16a#E1&Px}q+aJqk*f4UV`t#ICgX=BihxD^I zd|iXH2q;O4wdYnW-yksc!M*6f&h^OBDryK_2!m8C* z79;YLY6~7kV|Je(Z|*O?9~#4M!_lu^x|SWq*Yy|rx@o?lLA#-rR<<;0wra0oGJAGE zBgKH^M>r8iAobZGEPK($@5c%Imgu6;-R=}2hc9%1k-)VI(^oMaW#n`(muDD#P#Cq! zKMwMJ9y@m-XU+w0Fve|S26S8SxG6qE03)nIqG!V69XRCOTYC__nH$_Pu>8aXUb+k% zR~~pX#_bhnuiVOaz2DvU`%km68>`b+Fv}w=Ftwk`9|1N1Nuotq28}Ppw(@jLzz#?* zjIo9;K=ZTV(H+^Ampb7)`D#g=^4A2qC2kK&+*aP0zsavrD<+?M9ohtxaB0b4HYEG* z8zdtv2_!S!r__4ivtw6p{t0B~fN^ziKgQNO+bc@g2Aj(DzDJ4pld}F%+fzHIx9AA8 z^ZI$;X1Sj(QGc@IU5+hu-VLDcj7+1?XU|GLg6wSPj!1Lo0{qZotC%NY59f$0+|$Ri z#$Lw$+xr1M^hQUBc_?FU=kN+4+Thj$z9SkYUeBJ39@3ebI_>ny zbOJ>epqrS0wt$+>_7wvxL=iwnfS1)fr0*Pbm`KpYh zU=Y;9rD65(zucDkG4T>=ne1+l0mL%=pI3 zjLa;p09f+dupg?P{imO_E{K#dhb(bQJ6er@Qr`d}^}^Y4nx5+{qI?;(uf8lH?hCZ? zj9VZ-n>fY3OC3>3cLCB4Tp3N1wAqU4k^6^p_fusm+6)^x5{D7P(-k=n)ElFW(3f*( z$4~F39iU4G;z9ws*4BGkUY$+XHL1$e;$FGE%j#6)`81)U!Q;=LB5-Gc8P_mO;<?!S`z8ZC9XblB$g1N^xeuA^|$R12< zuTrZl4_lR6tdb^lb|G6ImhMT`XACT%tIPxT5-2YS&NS{B&GtntDMb0SwbQ(J)FY<3 zo&)DdXp`MIUV`|or?r-q4h5d7qAHOV{UM>zGXOSg3f<{-!L%n$sJq zBUa?%d$7P%0ME~9*I4$=6}(}keMb{?w`}X>;&V+?lg5=FssqEpr9UP{H;5q0TTOMu zT_phYwq~j$(ZgQvnw(w$`&_d8UOc|xz`nS1GtGf?n3K5om{S#gsJnNNHut^038V{d zrD|ES0<6Y2lhRlGw0`33z9Ut;55<%K=dyGDo+u?2$Ts*+lPv92yV;1J_*@RS-e|6G|Pt z4?w&uTMjUaQzzaV1;?rzCQV8@cLoh2ZqazL@bqA|GZ*d7rA5l@SEHO$P9l0-olY~# zLEj^_9!>p?a@T&60n%LcH)UudWXsG7xz=1!ncs4OB;aC#6ykc*=D48lNzhz%NAkUIQEnlJNmm4K|^aq?Y?4t~xgytycQ1 zeCaAXe*3rvh-FC_AusCL>9AWyJG;xtC)4REpy_{XXmbc>bB`NA0?EnB${v$qb=%L1Yn^0 z;A;0|?p@n`p1&cEC6L8TjKK=U7kD$~4q2IsB_+R?{532sF-+w3L|3~k1!sxX9M|Vdk znTjBntsub+@=t#vRAJ7BA6gfeN3Gf8*4?TBPc&@2ui+}2ISRFe6 zS_*N`&Zot6`RAVhQsb_}VgP*90v|yEB_UhM?3LK7v6Pcwa%5Uw&?2>_hdATP0%Jiv z4?W5JPz5ufZ_AT&MnNk!_TL&dn!Lt*EprnrT41Xv{zW?Z{zT#T?$5kHKaN#h3(F`H zqqnRJ&jTXZlegM&@QRM+cDxEAwpRA=?_V_8EmiL{?(l5B;R4W8Q#`ot1!znx_45 z_my+T&>I!9wazYyyP80`2bwHmY^e#TUC`YTRfn23CTml4Mx_ z_MlD3S}i@3DWhE|wpOdEb;gRMy(B`C0c7%z=$uhFNsn`}*2yYpodJw`gc3xbu`nP_ zLD2o13PAemWXIF~xp{&J#spZ7{`l#Cdk>n@0^CTKslR^kzdrT<{G|X8x)VeuO5Z)g z^M^JxGVvw3DZDn_a8&qgRQC%iPm4oyuV>*>)K2Ry#eG^eD|5#*MnR$r+Y3@Yk0S;G z_qwWB$O{?*cG~!;HoM_pf?5Vd$ZkbWUp&u5Vqe;g`Hg7l#rw%RhA68r$T9kroej74*k$S%MFb8p(NlUZilHVbHkRg(LGw@0EA%m@xo8er|Efi_y>qw+aZX~qHVf(b8F6Wz z$50*}>Y@o2^{#`BzUxeQKv#8J1y=msYx|66T8fl_Y!l_!taf_Gciu?2|+EA`|5wHftGDa1(B@ zY7KqTURa`Bnb235{-KyHR{Rbh1m=FO4pYqo;^py+xbsJbg7~&-nPXsPoza7{k7RK< zHn$3)bne^dT$+GzbCMvtQADdCJjvv-%{`oRB`U4G9>o3{dbVuWA6j_8wv+y zuoz#b5;h8X%QQ{Vk+yxGcRL_G8$@xL6x8iH;}hyGP!ZAp3`Tl_&lVoqI#eyi))T1g zXb%Ff4f@9zw(6xtnml}rr#+AHP>engd=lNl4-DPTDLg#SPxu+xS4zbimIUNYm+=Vi z>B@R-K^E@jx%*GwCZj5L>)HMhEQy;cs_9hnj7SJnBu?d~es7C=z^v>e4sOq`63q> zLeo5M&As%CPI^{F{!-405j@hioH3JCPk2vps&;*0*M^B;pz^USqzDfxYysLP02}k7oDtnMapDGTc#QJ!1)p9Hbg0J?}@_2T*1K~ zi=iE*n74+qZdkieO&IGVvQ(ePrOYkJKipGC`*eh27c|_$H0LZkLTOxNsvuldq_Ii3 z=O8*h+>xArV8F!!fl9V4#Pe^RQ*bO}RZ=gyIh^_x_|*c_LOI;(PyRLlzW9r@aZ_}E z{+kdeIbo3GaS>K2b+HCA%VsRs^eu_?#$i;;$9cvhgdz)(h-6s`1kEmSITsP##FyQn z%4Ojk{*MfX_qm7}>eG4{W#8AE*JC6#5H#J?dk*T$vOuu=*|qt$Zx}f=J-7g28m2P7 z*lNtfM^202GW8QAp0Ua8o3l$Jk&P~h>B;+%4=J8Xb|{#YS!VY2>^_&u!O$6kut8Px zy?P8s0R%#h-fLmE_O>vx9>APGA;eyT>T=f7EUFdi8HlfUH!=N}xLf%h znkl25P1TKJ4|d`KQGl`=6?b^ z`ZtF#QR3}B-%?g1J?<&XGOgf_ySZ(o{G;wwVwz7uXD`t3j3KeE7(yy<3 zO2Uy{yInRHP6As=2dm?09BLp_I&9sPynS?JsD?fByfDG70GaBJAl5BX~7#3d?RtX9rTT3 zJZLR{bWUod6<)52+1*$b{&he7j<8f;pt!j?`OAT62RaFV!vw3z<08#^>bGySPz2$2 zgGQ+t1$*{d-FRxl-7bbQ|MMoTRmgkY36rR0CxLo&>$BcX9E~N4t+L|Qfpx}b9!C+oI)}~@ zr)BIod!Hk+T`Fvj&F&V+eW;Cj#xYot84Zm}w}ZVrpuPZ+nx{zRv2E{#+e+`t&>I)| z!>Vrw?wcj4^c2KLGK#Z^RQbM3P>MtMTX*LHEbT+JSkC=G_W@GnRX>N^`Fg9Ky#z8f22{%OH879tflvD_I9k{r~{4s z;@Ur}_YZo!^e;%MSvjko@DFJGACTn#1&VYV@h^D!pTGQ9-)H^;qDLtI;LONtqGk2d z?LVN7XG!S)uUJ`Yxmp)s<)>+#|H8_)4%z<>(QELPVvi@`U(V9Lwed&EQQoX_aQYZbF4`-)jFufI0EwcJgJsWmw@fF?0?7jX6Zp3 z)~~A%^Q|0K18_Vt`mlbI;XgjbsEMr|q)<%L*suY59iVte)g*n~4;9N+8J2xt1o&RT ziIf1e4`&W=Q&t?HSd*S_Dz{pp%=E97f#V0F>f%qIS!vuQHGtlcg0{NZwy9N;QG*-6 z8guI>IG3Xt6+e;y=?=+@vIlvxUQL@Erh7*4ea|Z>DZPFN_yBod+R7kht{^m!Wjjqf z1b*P`xHCqn=k+8e*grY7UYw}0B&5i znC-c2-&jTMBo*Kr>GgcP*-3XeA|_OHwtv zM&P0Y5ODqH$NzW7eLrB(RLP!-@;&v}liMdr17pOFcGAk-zx{2VvHG5+i|I1W*t=){ ziXG67Y}h+fFr*xn%7j2)$$uVHV;(NFSf=N;03qD@<>pYm<74!U0JwPK0)C}^2UOBS z1OZt$IgmF0_m^rROXq7)WAE9;(qy3?Ry zkQpNR(P|n?Szv`jDWhZB6($W%c7Mgtb+x@$W^oaq6Pyxm~JnXV;s+}M7J6AJZ z?);^y(2*|jz83F3pQ>)TX{_DihyzPMYYD~EyY$r{baBDelRenJQ?I^Qf=ni-rlu0k z3F8xT5Z?pH=hV}sS|d;XH4e*!x8_h|<}uDwE>s8`vF<^|)j)sJn5=TS(MLU6P+IR> zO0?YKFG3-{QpCa9euRMJNu-eQfjgTeT8atc4qLUyr6P@b^uMb2Y-K7%7KLt>hI<`{ zn^mzby)P^*jA4l1aim!~*xE*+Z?#ZX@%-=sbZM>BVjw1@+tNYaq&X(lxPzZ%wB`b&m>i;-4ZTz{ zyg1pz-5Ks&^Be+xxkMmDqoKcC);;&8LIU+3?Vzk@Z9=?Y0k;XqU>8GoSAP)^tlV<` zvmF=D62s+~KUPym(<2=Xzc>ZlaR}|UEb1KOL*X=y={3MWrx-k+{z~g&B$?ItbochU zPyPt6uC4}L!sR>P_2r?Bw&Wb?3Ljr~US3{Kj$&Q$kfLOK@=s>&yFQl&2VO`<1kEf4 zU1Vgr0KWfd+{^;lsdI_?7~4L*)XKrhIX#yB#{3L%L9#s#9h3IP!DVTvqBTLR6=w2o z%K)ohkIaS?KaEOGW(imQRBLu3$MM=0x~AqSO9cuAAujBGk)_JCG&e`p%lNK7A5ESb z%a(T`6L8xUQlYO>uqJ~Aq(<%~X%7iFV`9R>S8{5GUnAwVX|zZxnOlD>#+1r~qQf2s62fJ5PB+P_HIpdvdZM!97lJlP9 zVYhJtgCsl_TToC?Te~~co(#H)GnSB&QdM;R;47;)(;=m!nR>?)NTT!~nfW(u0$Acj zUyY2`hpsXZ4XIGVPUyQBoc!$;d7R)f0~)TR}6dkF)dAW+!&^EiPM`) zt>4Sd&;5y&RW`5Bpk{7pak1$9-52g|$89DEa;XCE#&}`DK*E|CV(VjQtp}tUi@GH% zckA~q%6JvQ;p)T$h&ZrL2kL0&m?;b#NN(zH46mJAdLuG zQOS7{d@^2Q1D!vbHGW-gHa%4qWH}gD9l9eV`^p&Qq|PF5C8xa%l>OGz@oLNEm({2`t`y9A~{vgNjweaHR&+V^t96DzPif* zBKq2W!&4jW$x;ghLc~RxtIY-(RYos*UKmBljVzGzM5a&EtQ#8})z#G%m8@>Rzc(-_ zFhna`EXdAQVE)F*WwgSwlq(@4AHx%szOk{vA>!;@4yvVZ+(X8)C( zJ(MJ`sO014eq!J6`QwL2C3nMDOuLwYJ**PcuBM3gIs5u7Fh;-Nt4LmA`kBVp4urqF zqC%Mp8F()t3knr06AgPCtzD!-vXN-2ipFkD! zU3s#QUcUF+(clU8iYaXIbL8e~g@?w_@GxI*D?@C^r9C~)Jg55l86j$bhVs+Aq}z}7 z0Vgnknd1R2^&7~GH7L0eRg3=gbiufUQ*i5^WR152P8nBAUQ`XXxa_UZ_iij3QseB@ zl!#WdsoQb`6mdZzA-duVN3^mGQ~arZ_o-3?C|^rB^*VOu7(drtpU<$}&)C&sNm*r+ zFB|twzGFT(lbd&c#h>k=RC>%uFTOf$M-LdCAU0W4a<6~II5Lvptdw98zCHr7t+~0% zXC-4$!GY@E#|Au2(XlwJ0yaErmOvoP%vjS>p!H0D$k%2bqO`TCdFmO#bAj3r830^U z=|{Hn_D0z%DI9{WVO}G0ALmYdd&SVx92N38HF7_fAGBR^mKbu=!MXlBbfF$IFY$GC zZH?~)Wn;rA{Y85)lx8O#jPvp6ox}BzbH1Bw^qO$N(^pNkwcUU^0-Da2(eem|$v(Wl zK%NV!4c7~_uz%NWu$%o$GdU?~9oj`~UDWgJq)jEHe&rDpBQ=Dc9y))hCgtzZKCR@Q z_=;g>Br%>Lh99mIN$~?5fqDw`z2I;~ZE5N1k8n=vFUL=sSRRAn#d~gjC6-NU{6y7C z?An^V^Umg21!>PMASO^zQPI{mKLAcm=G?O`H?>hx3hDlhxdTIX9-DJws_`hwfWyOu z4Cu90-+-V$(+(A_x<-HP$7NjFz9}CC1(kSea-9T7>o$v%6YCmhbr4 z+IlN>)#=k%FAmq$b;-82pn&lE`eI+P&?vjZf@@C>Ix(ssH4tw`M`yKkwI+tyUKtn8YkYT*|9T4n&jXeyF{@ETseZm>}+`0ZVk&jKa+HreqfqXtszP4DqJe9ylPBNLTb?P0-$jAV&0?e>!V19o7{KnES91bVw=RiJH1M_M2IJc-s z%?UTacmzxMw5!Xah@F}FVv^n(^;rJC2;R0&=!p=tfEaecz}PssJ8!S?J-Z?EX*!%5 z4_E}X)bHN9IOjqybSV_^b|V{t=cJ0;!!W*UIksOVli2XoUZ}Tdn(n}>=+t%kOyUeG z%4-5*O#;7Nl;1Ov8I=^{t46Q{Z&bZP>SJsdC4;uPYs|#rxyf&XwxJZFXSTnGm<6(h z2H&oYCVkRq2wb1j8qUEIlxSdrGv%fJhW@}WVWwd7k2UqjEl4>HEf190bgFFNMEBN* zN%l%Aw*xR?JCwab_@B-k#PI$qluNlHq!|vN)dk0g4k}m})a&CT$XrXw zdpRan`ooH)wdT|6qu-y~*nkzTEi2Q(&dmb#l7~Q$=H|L6+{d@E9#i29 z854zvXN0rI#hbE}CpGW|zvvDpehe~FUb6d8Lm}#ARuJsH0x+0-eh<7({ zn|T<*GFs){G^cCinWs38zOnK?C+F(?;k;{7buKB`z$2flk18lAKoF*|<=^+WyM<|v z3z>U`wTRLF>s60YY`NplHh!eZcoTPN+iI=!jdt`@P~=OnIiwAb@gQ_W2KM8#mh4e8 zKMw)h>8QGuB@z(sg)C%Ca(8#{Op`6_@V%%~893s$6#n+6yIV)Pyt7w0hw?9g2^~U@ z_-AsTlB0Ney)ag&83#eZ0nMMbTW;Fj#B}hzuMa8IjrrICy0740svko_l6_~`V6#G5PExi`D*dCFf@Q}PELMrjfCnk zm}Sy_PYI!_y11}U1v$;r9E!fSfO%!3xPXTRkZ zEs0fFB{rL}#W%cFksse&nJkr3#t6Pn4&HYEvSyWxL`s6#oKv3smR>b8Kq1k&B5H56 zntVxP7y#&S{QfZCwZ&w7ZD!|sLf|IUakHSUt!;I66|g*AEy9qWNA>+!+=k1blBP#f zg(ABJdegU?5m%^afE$vMl7t||KTl`K7oPjeB?{UeXQ9}U{gj(SSh?dXpBfqYtxh$^ z$FsFc>xJW0pF2A_)w+zo&RPS*oj-e~me)*IPY>7MuW~cKp~x&#arDWC8088@Pghsh z#6%>SjQ;syT-Runsi?68djYJ92-dPn^)vNy&-dHzGi_fUhVVAE*2lhyMT-gv$@nZk zGcg$@FAU%;5~!};p2Gm9<7<4^MylMEA}-|T>-b!P_TCj4Z^{pr_S;ppf{n2|D#7MsE@EiFawS}|mrGzVJkxry09m4BQn z67hfXc@EN!t#q}%fB#hyw{yEI2iuSNrKQEiSQ(7xLcCW>^iVeGGDWn>QZmUN6-RvK z!8`S28rlEU_SnCc`2?}zh|ozhlY1?TjcLM4{+?g*`0ub4KgeFi?C1`c;-Bvj7Js3= zfz8n~H8s`J(t<#8J4`EXYA=Yru<}UhAAy>oDwfaD^~Fn&-U~bicIDB64)B>QNX7e% z0-5OPaa)^d2gn+@H1=zgjNU2r8~^$_chvY;@#x{uRlCKfoHu7#>2V@((E}_0{e~XI z0O>}6^!7~%Jxu-IZ}zJ!_5;WJF^PW_VEoT-_PttqRmT7L##v+pHM$_(>yn$7b6Iqu zp%|uw%H?9wEMQX48!Jbo6( zJH0mV)?B|v=?kSAvqIB{mTyRo&I=Y)or(8x8I+m_WyN>ek4QlO0O{i$U8gyU)+#@C zihmj$6Hv0X^`3oaWqDl9#j+cg4#z=yXZK^1@>eT zk8Muph-G>AZP$2<71fl2t8}`8_)Lp^`szr}WJHmzQq@KBh;oUf#DO z`THz54YZ?8)V;IrIE#CmVn=<+`c1gxi(n`2pv(v;LNh^S-;=*9@1&Rq>OX=u^Htr! zVFIA$AbY95B|6!sSYR2H+JZAO{0@ObW){AaDUilsKCZjoTg4Jh^jaeEFGfxleZ8N~ zeKo#wj(z|E>ou@NsbbLb>j~m?E;ySY2QH8T4heAyDhro6zPEb~^>wD_y;&lLfsW_q z>f>@YY6^~_Z$&zP$ls*ojDTIeTi_56rdue3H2lqOsl`s!j9LF0o2B3sl2B@c{z9+lta3m150D)&HHK$9H$Yq`byE)zQx@)&EBOn;K?5CV`Xg3owBBWFU0I@ zWdT+c4?nhk64ciMGX0d3P(&_}t(_eEnbeZsx(YUoq@FvGIhqe@RT54rfP&1G+=Rr-yroj`-*RaVN77(x6Jm1Fkw*Z`c@Pjts3J?J+m*c=w204D?# zx;d)LO--%YiNnB-l2dkIQcIL_NIcX0w%7K|3Mbu##9lOcp=jT8M&l*}(iO!t-+3_I zO_*h!h&X(PNCpSXv;pn_RbE3nOMB_heWSOahk^9HDwzZI`Xui-nw4$2)`f&T!cG1T ziQA2q=0l)#INC5bBz8k)UP1C>J1Epu12u0Y0;7(mU^|1CRk=IqkPJADWl?IR$qHxJ z+ixWgYAZwddz0huGV~yxDBT1nPt5b#NGU>Iu+C1GFwfr#x*r0CgWVBcptulP@CF== z!i}y=m!e1IJ}`kwM@O(^|A(u$4r_w_{>KGHI#du41d)f35ETJw1rY%OMM7Gnq&r6_ zsie}~AvvWsVjv)05@WzdN!LaX81cLDc|V`)d;R|Nx^TPeoY#HMxnJkCX@yr%9w;G5 zmFkl_5Or~`MXf$ShnNBm``?xbb+D;(fb?CbxKZeZWQ?SN)>cDi8LglNN0)w4*+0T8 zig>*Wao=p}I6APZS$3w9#@H+X0gK^M9d?n@h=H0&7k2C6K< z(?&oll;S2rp}O@O`y$F!wyUH%Ng(0o=&q+U3R5&5uF&6{18<+tII<_HAn zJj9|3?+&bMv z9!c$6pe+z+sHjnmZGfhi#>Zs>$xF34Zzsa!K1U4e!~?Y1(=)_Y7qkEoA|Ju&U4smv zWM|N>4rB`e&VsfdC-R7!IF>`efh!e1Mb) z_vK&TijYtp6WRzM2xDp6ZVuilRU*oYG%ZDJ!^!~glS4sE#w?quo=IOmI2)V6ajQjb z&>*8U0C4!`d%vDAV)5dwCgb+!suU>?#Y`s9^$q+Bw`Pr$>#`=;+hw)e{f?T|8CTh+*Qx{_MNuBlxS^R!3a(K(OV}smV3$#tm#f=g}&z zd44_;+z-LrnwgDby()kEf0kWwr@4S?s&|wO?m>WQfXU6t|47YP>(7m}oW3#8aust= z+M*RPa-bWskU9?qf?7FX-G+g&d8FSmfA66d?x(uzjAkq~{LQy>pYNWUP9#?V7$4S- zTDKCMvMG_eUJwb?0HTBMNrSYA5a0`hhqm!=y%*bi$PLlE;pO(KG9%+BpGME0k2=T_ zwA@b-=JzMWi`)%o(sDw?G5RhOAwXYdg|soHZ-J$TYxXT!7`Rt3jS{{Xo?URUfP1J4xI5_A4gpGIF>k3VhkRjxQ2yjkUb`n8 zb$Pq`lTf_R487f7F1jL2rsAo2B2c!PKFmsiD_y}(M;ru$MvM`gdC;Z7F6Hwg_ngGq z`s4(^Bo(hGbv^&u!#gd$#^=gObyTC^+00tauyExZ9%kPdH5|CL!IFib&l!N8Pi7qW zI)c7#wJYGyuTpj7u^0Z^s`U7r(w$;95c7zBcIwC((6&K?$GBI@mGdRi%qAXKi&)6o zY27~rY$@7rU_Xm|jD7#yh$IJC9}N>|I?4&-F7*IkPAcvvE2Lob1WR;z4D zv;n;0{UxptuU0_&j}^Gna*|~Oh|gX(`%XQs{;!qGLf*A@b}039@RxF!qwKF6pg*S} zr8`<===*E0gp4j;bVL z$R$ROn}qA?`Je4tPb4WlhFZ=i#-t6|Ui~K+i1hsX$@3O+FWr-AP!VQ2zffBFWC%fd zbbtna>3m`(DL{(NNE`G^WC#DNY7<5)_ML_s%xTZf`r5oXL#nO{ZJh5&Nqa+zPDEQ#Pw*Tpp|LJC^tfr2Rex0E_*Pg;8V z*=7u86onGw;%ZA_@jF^6oS;6($FDfr9r=5Zd$>k|eN%MHdRfReo$YDb7*2^BbJ2Zp zXzLbqwFO8joD;)ANO|fpcsE`aNCgQ*zW|3HY6K|6+W|*k#KoDA|7O9d=B9@_g#Hj}mXHmOZ-KAUi8fv>pP^B?UjiR`uOEfJ zRmHbY4SY_|FawQ;ra-KZg2w2`UU8*KyMsl+OG~ZtHfRX|UTy!VQ1p|FHL$6dHmel| zdw(QAZxJ_HF65_CC!;pEso=QEixHl;g8V8e>uZf8)R7@ykoPK&zS;^?(LTxiuu$G7 zLt$)eOiA0k{G$h@x6J;s5q9YEu8@a02r|}tLW=m2TrFdBZCBhcO?~Xwhe-|4zQy_zH@IAnDQLo^?gFFxlBgWP3LAI56kit2n{ z^YQ*u2~Hw>xpg)S%rFB!`j`q$UI!lXQaz*OalDz@es*}s!Znp zOfd)R*u*$B4Zi%7JAUE=4ECzTf-$9}PV45VIt4pM{x@6O$BU$w2X9vV=3-iw{|?SD z`uq&3x`1*eNGo(wA#*@(0ASdT1R&pr#^9KLEmPj--s=uj@$Y(*x@YpxxJ`S@X}Q+rv2gh1I+xT?!mO9t zd6wKDqHDgyGcazE^ifzC1G?7n6V^G$S*-|}X<5JRKY$pljgYqhmUIDwbFm?Jq8Jw`zTvL60wD!O_870P8WNVmvYwxle;1HQVI~fv{x! zkl0=NH6{5E=AwnG^zwOzmQMjXFTo{FwgrSVG;ClQU(JNj(>O1SlBa5L_W0Q;kXqUy z?^N=40UAmXHBDyYlUR}#gb2qQx%m&+$?j;95H_r@uPd)gto+s8itH5C%=2ZwN1Xu2M5v|5NO#dqz}>x zf~rGF&@?mXXkr^eXj~jly;;k?+`#C@-&0sJ@egKgDWA!3UCA)4r=<^R*H<1>Jz zv~p`~Ui`-z4LN8c2kpnPzh>6iMS!}*xUb`^Q98nU_LugsLou^tLG#4JuO%3%PkYuN z8(Oeg30?N*gTw|36xnH=^#RqAFv6;nl^73(_IS0DK}{G|{06sfOgDv zhi=2vx|vG_Vw>x@v(dL4qrb2q&NkFcg4??&B_hSi;Pnb#3ccKqQB6$w*2HzwR+ee4 z2>C-&ytR_JNF;7MbRz2pb!q=d3)Y%wkHZnC^W}sMS#B@sQ{Sp35iPyFok~4!#pocV zuoryw8W!Pxvikexk|VTo4qfO)K6+m;LfC=%z759K*6k^W8dD7SpJ7bF~N!2*NMw{JOxF@?2>xAhsmse zb<2NgJ|SgoHJjKv3958vO_Ux+3a6c`s%EC{DxFI65`ukDrsBGVSnA^go7{NnuudM7%f*4yR~MZ3?0@)R8HPETT%dJJNRtw1Z*85Xq~ct?-eb~@3;0>r z9Y1Q}XX;8lc~|Ah$?$v6Ttk^N?*5kbJ#yuEPGqoD%e_|+K$0%gj9{%ip`_3`(m6SC zPH~>M;6WStlJh-?d z*#KeD^D2uKQx(x~iro;_TkVISXcvA-=ckbSoT9RfV_zDWosYaKT9ds4-S}>It6qNX zo+}G{Iwrp4x??(A`LS->8k%R|vuzD4Lz)ZN3<A7Hhrr|4G9lI$O)lQP=rX zTFzcm%aCx}*5i677IOo$7U@VIYKD_2i|2aZA^25tAa*V#twR=`$f+qv7kp6OAv7H( zcwhXd@4=+S^7Y!_X##iP1QnM629j^7ZrBE%;H^JCi@ZT1Z5O_Czqzpm!DjpRTJLKd zZWs2XiJJp)J|Y%d7f`_{Z?zP#-k%<;Z*3$W>l^I72P=QEo`93CCNh|vqCKR>TU=|~ zK$8=BBN$PGWIuhAI9*O9e8{VriLr+Ha<8SR1(Cm*!@T0s(gI@p-E^LLJl{BN_Wcc2 zdM@lZp7ukDebaO^VLz{eCrJJwlH=Uz{GB|owiX!hmdD3(>wdS>_ zm3vLpaw5Wh5@~28Eu8j9gnUooGWLpdu0DQexfb7L5fqX0CVkV0&fqlujPJ(vNA9Ut z6<-=%fBpK&=Y=MF#!4RNP)GJos_HriqgzuOSBgF86Z(kpv#^v4Yr3z*8Ez=^!ZT%j zy)`sqRHo{vSp(3+!8Qzv5CwYeG+PKDu| zH#)n4kn8-}m6!C!Lx(bDjoI3bm^EHVV9=pRFJU<^;3t>51dnZuz(y-SgzIds)}XEY) zH)npxZIsKO5Hc*%OiR2r-$L(24}moDw0w9O?7(i1Lw}q;yfh~Tm=-;TQl>cXK3^u{ z)Zoz@OG8&Q6z68GuRiqguG*jAG@&9>o!(p#%WrNAria>YhxLoKP_d!F?gt4_sdTyD z(9hE>Pk%~N1oRvEe!IHp>LYp0$79G2+KCK;^hA8Os9{dOFlF|R@T11)vw>o({?HQO zQ1`V5+AJZs{d`qj``Kq?dK1tIMAf_n@#*Q4Z3>H}B^FUCC^v>_{$7#7_toDk_}zQL z3|TwLJ1;v^a8vLnTh9K2j7BqCBi#+Atvn@yvy87biGBJ2p=VXiKopwrrA?{)^necT z*U_Sh@fo)*Uqqp@1+M?W$9E#XCUNRc-WB*+=04AlNfqLC6>1#!a`@9|ZZactyXc;x z+T;uAkawCXG>C3NlH%lIfh2w^yIAgR+Q#$YJt@37ySlo(f}fz5 zge1pMhL;#^lz4aE$1=z{&D%eU^=;TFm&BLo^(ICPImX7J%bUy zUuxf{=20$U6fg4JiSZWRX-AAV&%l7H@Im?@Z`ebN8R11Mcn_Ay>>$YObvS17hD)LvT=a`uYIjZuz_2v1h4(;s+j zk1N;y{kvgWS!3C=LLQF#cz3VS6|Mitz~fsmc!vS@qyk=K*dZ2g?7OHqB+L!7EK+x79fBYJ;N z%dD`jZi#aArhoog?{v;4%I${lg%mt3*6kZ2=H!=_sEK$$kJ^o^PttzzeW5EzVta}9 zvei!INKM@}_}1NYJm`L~zf9G+B4#DM$MAO*;u_f4KhaBAnON$68Yrendz5QgV z{Pe*VI{n6$F;=1woRKO-DBfS6c52LT9@}pkeF1M@W@;6*9=z?A!_qdMkz*t9wEXtW z#i|Jh&lw|gd~~5^QW>d(XFi(s&N0+A{TlTKI>Djrwb)#vso1wHIyv9~oq&jzScvPz zO1Q@t_zbIh`%E{St&Ylzx-r!j?u-e{_^o5YSJ6k)(f$lss4cwQ#{MPSs9)4!wlhXI z%QDPId5jVI0tqfx)+)m*rSR$PthS?;wR{_bN6^nRcRHt#ChOgGYKWk}W_4<_QZU>U z`QU|(w5L4SMv`TcHACIAh4M-kkId=3rIrFjBE{9@s6u-`m?QLR|8n@E`*8_&5cLV? zexXE9;FF0s-(+K7?SbOFwHm()f6E%=^P4nKJ~?sVkmzak-vq9*h|Tp1~_K4DY7lt_L2(#_>Iy`zw}AgNVXXH?qKQA8WFb^e8>A-nP$0ayDu z9VBhh{F94ae#R=g?xzz%n#zAIY`##rr^GwL;nSt}7+*hq%h#UneoKxWg9OP4%OnRg1JWm9TDFdmG>vy1S!95x-xvl-JzL!U>G;8bhPj&@Tvy;Fbyk~Wym~gf}o7Q z+;2Ytv3eu1PAiIoX;eo7Fx)QvmZnV35k%)0eT@2aCl#5d4R+$Td{lmY-6`H_HGlvd zcqkYrCC(jn8SXGcfZ>(&b<96guMoj*?9TNVT8dHGtccq5MY(7yl5qq9jQ+wsFjaQ6 z-sKYg5i-2->{v2bvpz23C95?!HZ8&vsm1Uzyi0Q6^}mA>4|m&H8t0v*PMVAu!RapI zN8{oyqDpja13iP%r^PYWzoT!g5mfa&mR)JwuE>#b%&?IFg4BfCMV1G%zjU*tE@J~p z@PG1*!UIKKG@Nu!3Jn>YLZrN59y+*NTr~fFK!pWw=zZVJk^JeWkC4=PacWKtZ^3=S z7m0`o;5=^LYzAA)R{FG=wW3vLOsR-y ziD7p?@CC8L&j&kS6pV!=cX!fxG-du>ypJ1O)psJ@Pc&4@AU-iMF(zhvNJZ#mHaI3Www4=A!Kp;Ys8_)} z8A@R~GbN(G5T2H_k}x3Im_F`);GTVG;hT{9N~{~fU3%i)_LVbe`WF4G3Uy^=jW|ol~5n8e}asWC#Yli1d6gkp78!jk@2m|vdeuISy5RT zSkb(@>pGrt+alZYqeb6uxeZas7DU0A>kTy7sM>PZZy`D&f=ZdhG5U|LKg$mRSMi4X zQ7mxW!=n%U-Qo3AhEmR}3CSfD4`__*o$xC=OPYLS3W=IxUe?yuFKf8XN_llflVW!= zscO!z1-SuxNXLoMpbi%gPf3~X(TcgE+~F!yz}T0^Kc&MYRF!(@A6wnOb@TSGp9s6U zRA1`8nNvz_+#?w7ppQ~k)_b=KPLrU>do;crTv1U$JRSGFVwD&Khjps*fJ4pohX1G- ztcI|o<-_jz_A1z*-PP_gV-j5>tVC)jD-{N-g3xLOhUHUW(0vOd&Fho#-hQCe>wl-^YPk>yq64u4fsN#co$wOuU6H zp7p&i(Wbv4>NTO1!K^|THO(I)SIl+IQ;+QuCO2uYS4%exm%6VzYBJAu?+VW&Ovwk< zt$dc~Z|rno!f>5SnQ?LR?h5hujPP(m_p*1iAC$?pXop%`&iC)fn`2={Hyd6Osh$Td zQB$-6e|`lKMgzr)SxoHOy{s<>{h`9TI6JSK=(Tl`#qrZexxrC)Hj}fj!xcY&YY3>o zH=&D`W^4!jRXbq9PoAZ{bey)Hp)EcZnsyG6Aj&=nBve&B^*H|hGrqYLYw=Gd_MRL^zVPD3XdzfsVIslava^Y!Nrm@;AwJ7{ms zuyIw{PeG2l8W7M1@!_oFHo3!_&qxGsXLe@(a`N`7hrcFOX1$3hM)`IJVYOQTM5=GcPzXP+(6N#ZUYAe#ND24~I-+KzfGfJ+Zvj)W5$0DPNFKf+b|OTPA7)2Zu=?9U+7 zw8Bcv_Wu-FB?ogcVAesP=l2uF-%UWgyESx32*!aU@bxeYlspXL!ZVaoYYM%A%=lb~okw z{(Kt&GeO2hj3L}`F~$jS%ZP|*B`B$>(R7EMDlOp{D|ptp9HU=8E-otT@zwKLY0nKT zbQWDlz@2byeFPx~X-9K(bBQF4u?k`K7sv_hW(egj6ExE_IPSRA-2)@PBT;$SQ*w-l z_tMLfCoHZGzQgn5{53HQq}i7OAn}jeU&laT8p*gmD;vZ7qaHzd9e{MQ6*_~DzDR>{ zA8Bf8h+|7`o@J1F%+TI)0J8mGLW;72@^U%!)d*kfQ}O!w##|@9^Vt?|w6;mV! zWn)SIwpBPyue$80tQ(@|!kQO|hV2eV>%gJZu>Sz%zGOeQ4NEs4h%tH=o!EKDnO=mPVcQUAaSwYC8+xs~A*CXG=xcDU`YOS{#FK0A$h*Drzr80NP?8AogF7 z>SRCbqlxq;?$}UV4}0~+H{V7+X8>HQKX)gg>JQ1vnv7!60sN=xR zP*6|#`Vyqh6oZ3~X)!VHu2q(65B6O!*#%p~V`}1SI4BGExXmNHczz6LZaYR(BRG7j z3CoWpwZfB6>8l6&GzPSzVnGvl-P3o!z|Wc#wq^Jo5uz#fZ#Ibwos1EtH&`DXhN3hQ zxZN^0{wXYO19!OX$dZ1euDd5lT7l=C2V>ctYb%vQ;x43Y59vRPFwzDJ!~=kbIUWBF1@(|MA39-0Q_sG(_$Ztg79aGztLLs~;t z+lT7GH0jFWq(A_Fkgtb7KH~HntM3kWHcoEdgu15kEKRws7pIXPUb!Rw-;#N?+*CI{ z#=>OMn{euZj8@(LwQIIS%iu}@)>JYq8G3u_6{zivo`ap5noA@}A}u<9{W)DlVnL$B z+Td_af|jOYaWC+`zmt0RcpT-QT)Fsu8;;cefR%w-Wtt04>!IAoYN9y$3&#)BTW>zw zuo3f7Tx(8E!RrIS#BC!U;>10E#i@pirAfFf%&zd$9;xaTx*Ya|ZAp=Cd@ob=KCZW` z^qec|Ot=ON;5@#6DX`*a-&~hIo+;Q#?`=QmQXaf#?B}8#n?VT>as1uS36N{Qmo|%i z>`%BN3DSGCRWFf))kvio5z&^KDUFh3wxM!J=@dveEqrx4MU7WPJE|QT4Vy?z8^`M2 zt&N9^vDLDz=1}watAMzx@3)|nxFP@+N~HL{uk7T8!UgQV0X#<`@bYnxNG|5Hvw*_@ zHs-CGdf<#22QkO_p>U{p!)gQ8w?985KRsxF0bLVayT8Pqn-HB;VP&mnan!%Q=8@qk z-2hU*?(HUoS<k|zcWD1Rv4dAmRtw4ewBRPxN6cX` z)rzuberE>`?o_AC9rmU=2no+@-y3^6b^Y`{4oFL*P$Da66T;`9FjYqXOD)*NbX}B? z!GP~k=?E@&BF?L}<3QwSQV!JTKtRD>@j*(+)0MQ-}rwANJo(ge8caa4NUxb7AWNai;e7m0s}~6egEwS|KzD~O*WVq zKP)|RqK6X0`L`4xH#>TQ2~c2B+fPoiZzmDiK$P}<>AN}IAK~dYP}5pNKAgJp;q-7n z%xk5?uW{#Lw~&Bi^xq_iOyLEspP&KQuiw#PZ=RiqZdA`tA4FT`QihW**z<9*n8WUz$2Xvo@b-vO$l(C(I4sli3lt|DR${~^ z^U$TIMQcq)?w*#TdjRZA>mxzs?ca?WEDeng2k2KTI(J;ErOVzwB@A+ZhsMeZyCxE& zYdiIeN9zw9fLSEAI$*=W0khE8NiP= zNO*pQYEiTgzP(eY@gbi{#U$ajAc=mM7}(=5B`s|v#$VGByDDTC>R_|^eFG9b`NiV# z;#Mk1xg;F7N1I=ZuTJyB*klEHRf24YL0wu&fr|me8L9U;bIqZ(bR1C*uw`+busV9r zJNsa7c=z*iS8M6PzplsYXhZuR$sP|!Hc_^()qeLnLkg0XJ4le@|Tr~65fH>$l}hB#`n}?(T{c8o9bd+g15wo!90nv0Ds@<1GBP2`G5TC;9<4a z%wp;hVjGdZNqX+> zz3LGehB4pB7hW)7T{RfcI1pJlGaYfR6#>9Z=g5wB%)}GUuKSGFdbWM4kQOevi!Jwc z4h;|a^Fpy7gB7z%r)jd1^pOk-{edBqFi^Cot5yB?ld+DOOX4pT564GF+f**coBL>a zx!Y{yt{KSF52sY_FE{;=0d+i%)F%=Vsy(XNJjRKsBydIGpFc?PjYs1=s^LRNadzn% zUfZE5q>Py;O((5aFTT~(*#Ch^GE`UH*yUsj{lU{ior9&XHJ@)M0?z%@SD@K%6)B zXhO>F`=pDFz!aUYonL1&GNLo5y5Drq)|%*{Y=({ge#rO}w*j{8YgwDI2#R~}M?Dml ze(2J%w9Cv7F{g5gMb!o7e8GXE`~aD0l<76Yh3qvgziIIC9LM5{@2;2nrnL$M$Q4UA zNfF8h{H|n${P0geEACAz>if_DD{!R6pim6Q@9HF$p8Aa)o_dsp-zf`Yq!mDKnJ*;w zRo9|2WTA6na?KiccIjc24x=6H^rw4h7>`c#4+fa-8nbNXaO+P50Q5{JU@O zPQqeRBrW-(%I;3?zM92guUMSW8sAA9uAc803Cra#aZ!^I68b|bN0YxjE`}8iy;8+Q zYU5MZoq0|A@P9in<$=^jNx?O}yyaI$ixj5ueP?;PX1Yx?=%)C*Xd&6EZ%0dP3Y;r)WRxH#G4g1o$c2*Kt=2uEw{;**xh8zMuL zh57m80*B}IoaQem!83vd0a2iyiFISpZ7*E-NO(SU3KioUu;WJ`st(3956C#Mn2esS z4z!g_-5p5Nck?nfJiX|5GjGIUNW!AH<&o=-ewW~7;QW=~`S-=s{+^zlsyrX_yLX=2 zSB|f*+q%rAu|}^bgR+J|l6{l8x}!rA?*V=^b_J}r9AzZDP*?Y$8Md;r zqA{8DahsXHXFJmf`eT0j=6v^S&Rw+$<)iU4uGpV!aWD>dUHpfno=?l1@FN?N&l?hRCd?i znu_w#f7Q=%WoaNe9HFz5b>*K4cIxEBh1$oX?G6fA0A%>YGOOc6pBj1m=!q#mtL~(N z!&W|sd8A}yl*`1me>i=)JWY-%NxZm7xMWoV_sze6;l!6_`Zuj^H*Wj7sAwY$H<6jQ zdyg_<{6-Rawo53jB^XMot{HmGj*qYCB{N*I$%SdN<LjHC2$8-A}!i;6Wnsv;8$`0}nhgcw;X717tolBauOSTH@8#a99lc zYf8%|=EK?Aofs7{Ujrvw)xC7#0e+Rkk1eI-!ViLk^=PNaoK0BSdN#Pl(lOqD-HH`$ z-TZEnvs`ko59>wAm1?SQ7xOkHTQXts1Z?45_Z{w^%l zHVY$2XCna%+8TR!71PN3J(}1#$!_>{WwY~b@Tg0)jzS(gS8uN`4s96I3wraPRVG}a z89!Tua@n*eus<(pbpKv{D{-0!-Yo&)v0d3XI~_bSsw|++KAm>#Z^7l%vNa&z+77_L8-AUc08 zm1F87KxyubdL+XwA5VCCUg;>$zi?*$C*#%>{rS3i#Lk&Q4iA#wa8~zQnbJVY&U|mH zP%m4k{NyGtKz;Lek<54pvDLd`(b`JYPlSDSpoL#I*^56}NZwJ_j=pf+b0ys_`Zmtcowb8vlC@|`lPXrYjH}u7UU(G@h2ZdfXg|Cr?Cy{F^ShB+)^Ngo zy*X+w`v3Mri(&(=dKO14Wj)zcr>0L=N|3XcsNI{tdNa7zqV+~Kp;U{?$Z+2&> znfbM3o{2MgEzw`U?rID}8OFX%ao!javy9oMS2HbudGNx15cVA%lHGMk=##S*K`EPJ zR7j|}UtG({RjVt6mSV{@+=nj%1U_PZZ=77+_BLJ*@P{3K6u2Q>W+IdB-s%yQH{drx z+$L|8Y;)l$>srFQ(ry=&&=7HxlZsUSiI`0FOQ=!?i{0YlU}Q0tHJ53c)SqOle*`xyhcVlaB?KXRnifM z%QW`gdpubgN`ByS9^=zJE4)t{02(|mZB#{QexmD$)$)m=$6aust6iBNjb%CKidiN< z*&$v_*^|!x-YSMGOhJcXYIFj5Cy2`EhzdiMJ?_7Q~De+xe+in!Y* zxp|zlioFPIOxFTe&&=wOY}sASW0XQ<5#R-*)c-SMXOXE@(ffRX6r-QQZy^B+&ut%9 zDg25Wy|aAI0%AmP^gcU@WTET+qs8yH^z$VfOQq`b7ZYvv_69yeLa`z)#lHt4CXHJI z9-Rt+Y{mns`x;o&ZSJK*YXh%I8S;X0J;y%89G}XE#{7@7bXapvi_$CL9q7$~%1(&` zYuTfUDzlTI7TvQ5V9FzTyk#E$27e{Bi6HnR1`i)5J){&TrH`s;>3(fl-Wk(q$o~Su z1%($Dqz%{TJQOU|mF|HjM|CI3e)L5eP>#emgYt~>tx+g%QKN6&pRtr7Rd$B{4K{Fz zyVNDvA7uS0j7N&|WF|5a<0m*#?uAqh@yA6GY>HOO04)IlKfMB zL5*wbrD2)&_SoKg96b>_{paJ{IsOQV%PKW~t+g|w(N@H+0#g-yv6gzKR0#mf!(T{= z-Pq~9)82q$2BWN!8JxXx7Ahy(s~J4!=Er|$N~81dKB1no5N14k@-#DkPWo`n+)0c= ziCtV|G5{nIwPqg&aDDz$?6vE%aA;@FY|JRcd~9o-dTxBH16(D~5-t17>SAN)Y!Y&#aoy<%-tm4a!!WQertJSBzD9AcY;K^3;sYe&BLpl1B;@l#YpBr?sRjcl zZ_|~1D-fPT_N{in2E+XMbqV%u&B0pd0n!NtCUiKn_sxm_+4LC-?iKp=S`&qjjrHqE zLbTGfFLHy}IN$ChQ|zco#M!ym@LL;;+Cf!=#A|gF(SJ+f(Aaivy15Z){+Qmyvgb5o~$abWvVV6*8If3}tC zoo{kW{{VV+np<_77*_Sn%*M!rPqAb|u>Xp2r_oKzmv;p~0tK=@NYJs4;i)gt8iJ~7TLoRfa|95wY*p=)Ypka0g?h*cmx=LD;#i|m=}~D1 z@p^AkxQ1k${ItyHo_K*L3*Z*#b=a97euL-XPaM0!8xa10JVpV8Ke7LXKij+QDWr+3 zYt|nKSw9iJw0Qp$JUe(fFWxaSTOrA;d{DVj0;Q}+lWy?#(skNeIVnzl-gCCMTQcl!{A zJ|AM=E|3h6B?AOzuy>v+_CNPs`^TH~zhiziaO74k(qvF3Ras=)!Ppi)<-M=l13Y6O zRuY#nB5U_b0wKcqUzmp5D*1ECIdvQs+%?5Cm~jPlCGWnIAWwS?T^bPuOviHGvOVD zcC9ksJZt`jN`kl?s#}!qGhnq?qsC959c?L98+pklKy>?a@HV>fsBT?l=}%m+AddA? zy*UxG3@e5y(GFU3`*PB5|LuRiD|h-0JKkE%p9~_GFrCQr$i+E-FcZxjgRw=mP)tf!&OERI-8TzoIOX;JUr>gGsbH?k!dnpJ#kwl zXA;<#rL72y_k@wVEzSGPEFwz!oyggH20Cz^i|T^D$9}t*k{@Mtg%}@}tk&s1MABDT zK$pAzMevbNVfKFh&@808i2Yin$KUb>fU}3vP~QJH=x`7BaGa`i|p%!7S`I zzBaet_O2J9^G=&`tQE0J;z7;j(Q|a8U=LWrE~HoxETcauvnOAc5(O(0#qPzWM?ZJ3 z5CN5sXlgA@ZJe~X>Gt~MMVU8edfh`7(u?0RS?4+@G)PTYpQyC)B6BrkG_;h1?;yDc zXlTEmHHhN%7RCk5nZeKW(E5nxyXEovpEbS)@62+^a`|C145z0+0{#_k`Cfgc_^~52 z&}DZ^--!F014DC(F!H|Clh3uZ_A@fTN)_wvCkIj=x}f+S`sceMbAJn7F4bDpn0a5R znX2KX%+T%ftHe4JQ(gxzvBi6|^}NpT9lS4PcD6j%{$tDqO4=|%m7qnwf_(U+7L&xK5J!X&Rb7TvXob=;m9m%P@7(T(R^0Ir-uKjt(*Yr?hi%Dt^1Jss3m> zJ@*9Vdc*evk61gCB*HZZgcuIjQM!7D#s+COb810S< zt=_X1qP2>+zdxW6%)Mvu53)$JSfhH|XX_%iZ&2iqe*{|0`?$h^M{V+<)!1Pd6p*re z7^|ZTiK^|4eGNZC(d&^Cn6|E8FRV@C>4#X+tE||`cBE%8q|#x^F2#!>mXp*XL*XUd zr^S*I)a_*Y3G4cMR<{V?0cQJcJJZ}xL8R5iX?(KcneU9F!E9GFnIB)7I8bFc&=hwWeoS=elL(1?b?&z;^< zT_uB%Wo7|>d+8SIN$iS2?CeK~mFMyo7L;yDZ@-($5<&-lCjb5taMb&pA_1aBOSdzA zF`2R&lpL@YS#Xl!D{_KgX=rF1e;_0pdEc>~o%-W9C+7FiWPj*0?&k9iH;A(&2|lqv zBr;p6)U_e3Z$#5VsQx%R1T8`IGTTfTQh>eb5hJKLTK!L+&R1b0PJ$t5tqDH*^}r@R znaucZ@al|?u#s0VBvg=nCo;4(d~sfc?A(`(VA!Q1_LxVIi2F1O$B1Inlb&d1dN?Dm z$3|c;D9$lp(^=)?ej?hW+a3Jm);2ev@3sD$8)(Y2_=9`4(plEB$(i&!n*jb{n9yw}bY z+QR1_rCD?3BLPsXD%T9p(i0LENipGomSswVjb}LebsfXM?0WO4=qE~q%24dGK#>Jz z|3wchg#bEAXuf)=dd%Iiispgq=!+5veUUaPsL;GdtsYX4!q_;^r)&#CInV7aBzFV( zLdy*Ci)rrnLWky#{^1ob_D7h)yu75UvNJVhWoH^ZD0w==Z#%LJl)Pb7t>gR0@ZvWf zxR{p?$-d`ph%EOH4e8yACp$L-uuk|JRHiKm3CSM4)eq*;64sq=fB34EfqasD#t75J zbk|P1I<|ADyuTssE#IfvHp~dDjmhimogaUZb1M}d^hP9nIs^~gp}w2kn4a?Bm2_5e zFtGlnq2l1T?+!eU&_WM48Bf$@EE0WDhj=vEowYIii|MHC#*G4K-I*4DOLcQr&in%U z!mLp>t1DKmHm`W&pG-wBO@LhuHUOHblP50Q%?yU$Z_lpOtkf7+j%TregB-E4)c)DZ z7;TBjtWiQ-!iVv%nX$1KF`*;n@5={ALG7#D30k`ZwwBuy5mpS)t^qVCR>59DnNxHVcV=McPG1>^&QhI($e7ANn=3Xm; z*$nDr&@tA@PBUxt#ZX2`RkhlO7!%rGEHu8(jS4E$cr)=6QMw>nnaA$vP!Q+D1(`Li z{8V@M?KKyNYZp0r-e+b{JHSz>-_>_=nyxlR4<4|B@s`0e9d)Ho^wdD^`OaDvS>#v5 z^NFQ7I_y{T@bIh+s6JCaFZZ5rv{C3hh&owSORoOZf2l7+pH~wKX)7|SA40Ssq6$4y zsT36}j|W&z+^7($E-f4XXn%|r-OnAE8V*arAwd_%M?#WjC7a7U&$`q;*?-HkOXB_B zk>=Qf5RV&8tL{!4?gq6reYnR>bMOPm7cr!56!Lwuc{i-JnCej9)5Q6OeJO;T!WTuG zx4e5xqRI!8y`@5-DfGcX{u)pv|*|fCr!Z4jfBzyLR|6vKl4iIZdiDK=y7r9= z+@n2w`|`vXwleY0(C(p&0Ovr)#570t6M<^3Cz7y%!Iz?tK-(p4u?-3^$xtJJ7_RtLLQrutr#sEXiqoQiJ46l~6+GkRoFy#StG(IEv99lTiII`aw z=jTIC?kAkiU09&NUnj2NF%%h(Mg2-7{$>9|k`Atusujr`e`mVOT(h3?d%dAH>XZ6_ zG=N9bi2G3&FsU=xr}o#T(5;9n_TCxRzAf(Ei}=$m#J#GJ=OQdNFTKO}-WsUPADyQm z=Fvv-+PyN6%s=|KMVcID-Z<2H5BiV(lqSaBZ+|2+JN4qt%1ev)k=NiLVW85jP^=~q ze?B8)BuGu0`j(06fBSY3-y8}NzBN^A5IYJ9h5#DjjT%buv)TXm=O=*>m50Z!0}o>L zxVg9viSXs;HG}g+`0u10*;(NOK#NglE3S2FqXp29K<`z4iIE=J|L;GE&CM7}&Ka7! zPw9ssC4wMd*E@S7n5!LSEn1C9d~0q(E|B~=sHC_3H`@nz*1ND~pM(gHR*h$6ix7DS{;Z=oql z4<)qF6cGhADpe2=5kp5h0Rspk5SmDb(24ZW37s=Rp7MV0cb)6}IR46(y=Sjkvu4e# zHS50jYT+nKBbe`%ipIB?F|knY!y$UbP*xf%avDrwzT0-d-S7<9_9PNIbP+uNR+eT2G_pXLwE~0|z)gsgsH(m6yF83O`9nZ%j+V zAiHg!#hHmOOo;6H^g2o6D8W~ns@$|a+!r%QBXr7m{6Ne{Gsb+qSQ;RFN6yavb$aQEb?Wn|JNDl| zPtL!{_#*%XY@tNNg1_Q;lOzJK`N4>1U^%Zgm|K8fMk~gRL(EpCCB{E%YWU7@2Ir+1 zp>kCz3-;e{8VhNGpEv{LmztfnQ);|yItagUBw+HCd(AN-G>22buH(jfR=oJKtIpV- zB=XL8a6cH@Bs!L`TH8se6xtkan=tG*gN!ZKhrOC9L0Xg=IuNhQ-@@#b7RAZOzS{b($DtiJs_aQ*In@1OtG59TRM_92aP!e)cdjz_XGU*? zb9YzeRX*R`5i>z2jrrD)5i=XDgT{o-s^r-Npa7xiJ|XScXm`pa!kPCSC=HpEm-Xxz zYAU1Q04b%i`l}^154)%r*a%b)sBrM%ucp0XBbinlg&VX=6{iEGzT@b>%|1Ncb?kM{ zw9LuJ8wHMhzz+X%mE&3P7L=EI%$v!rK0} z844m(2tvE!!uE)g*s1Ic*r7p<@ajGqqp98PjP6C{KYwHq1~a_wJ&XywcA|4l>8k_3U4w|=bS&+ z)csqA)H=Hpuc~u<(C@fo$_1YwwB0pBr-`pFkUXsQ9Zf3WNXBmY&0uGb=R?&{w-9{C zz?>AV=l=fX{g9p(b4eW_XmCt_1V?ahjZ$ci8n5xU3KKfF&q z`j?~0AZ-^(zVlGQ|MTi_aAC-Fa3i$JO=Fn~XYUc?+{iI0QzHplo?aJ0Kxr<-M9U*9HTliWey7O@@A?U&K z-4y<-`b*y&Ft~tzJCX>Mp(mcj+P*G!ch?Zfn(>r;T|(^-QrgLDrr5iiw4e@B+a7FQ zf0|^PWH_Z^@o2D}r*EmHAXb(buq4udHY+o)+ZP0gzwFbGJF_Ubm{>rbKl$=V$l5Y9 zD4UJ=1(fht$kpTlSP{5zv%!JdhJ4~r=GV=NO|)mRrXZ3cUwyn*K5St;?EYH%tuwZ~ zpapn0_lZnrE0-e_#D+HjdnTr04QlKKTflx@UgNSzbdEk+(K{HC_b~U%0C@-SdrAFd z(lE%cP0%xkBXaagC$BK?04#0hKJ==;?2^UtAA1dWkJ1Oi?3N5B>z8lQg3Z{O z4;VGq2JN^`N6Ek98B(}ro}^HXVJ`DVm?W_nZc-94sP`pd?PRs?PSUwh&bTuH6hT*+ zKHwdut}U|?G}Xr`4`LP8=q>>9&YNiF%~xd6OYAC9)~SNr=W7by3iUM z1&r2=U8S9SlhgQFDhO<+QLc&Khcz6pd!_V~F@+&`Bqk^c7Hv1gMv;EZ9lw|)M$$4qC{9ywl4 zVaCR06&<6-oe7%* z>8~~`5W423IT*l!DJi-EMPJhxbVtp=*;L^tZ@RW6{th-u$S+x6x2+M)gGq=T0URvN zPftaOZf7c`4)Igc5XcLh#;Qdrn9W~eK1%&vRB#`{-tC9uuEs|DzyUB?1ycYX8 zXO!krC%SBe&FkTmnP@7L!Sga-Bjenw!hX>$^uKsje5Ft;LdbF2`#4+1j@%EH#uc5b-3QOk zd}_K`n{1=S&@Lu6R#!BBxo%$*HlD6q{Ev z@OhU~?oX=sqI;oQi(n6}bD~g6)$@uLY*hJGeJ455E$tf0!*nePHRkcG3d9jt#^wy9 zw3?tRpB(U;}m{Cyv8*E;6lOAMN&iaM(gKSqbI}iL^b= zdwCOpYqG>2bRE^<&Mqi6_8WHg(GND0;b-Z~;_$ATXLYy?NkB0(l^ONu^mFBwEkJOy z5vS@&{1&($!&ytkSQ3zgvnXZvnFWv9!U9MJXuG_Slon%6)koe{zip6Vmw7iPJW3V; zV3u?p26wUz9IXft3*zHlWlK z#^g_SLJ)F_o41Rcg6Sc_;$Tb15+k=>jSS}QAs#zEI+Qa(P1pX63T*Wm9VPaLQe}V>QUZ=GFHO|B z+xED&3%5zOtE5#9=ZRmwPBEEJ0Wj!Irz0&pwHo%W!N{o2A zIO7c-6!uAG7xpLI$sp^T`%0v(=%PPDKRCnF$nQH7vu-buWY{C+`UqjP)x$j1y{$}R zY;juSiq;4$PrRZig8W@CJs4mnRR&?9ygr|e*de|Bm4?lZvSEXp3qe7foyFwhETDvS z)hx0|)r>j5OUfWugHA90oupVIQQ5lmqgjvER)$EP8I-3ipzDNunM@elLx3ZQ?O3J# zyk>Q@G>2us#=TR&!o9t-f~C)g+j|u37*k-jn3we}6`oSJ^osaEed~#|DBa-niXrC@ zCJ)dV`vH6}(^iHU%e)mLa<~)xXQhwbynIR2`VzFFE%8B9yXz&eu&mKo?b|&v$U<;# zaQO(|!MxbLQ%wrQPPm7xiFgecTJ5T+$nt0B?IR|2`(CWch_QA|^|2pM3c^xdrzu1B z2XiwsD7Am$jLDRL-gVK>GlTHedw#q0Q-qtQcdA-wx#m;b6|_9Z%C&@tK9`qb8h?UQ zn&i(8r5jm83x)CC!VX_7t6a;7oW%Cq+<|@H}?DPtU78i_2&2;qpXCG;K7^J8AOV8 zb;Q@BJbh-D-%Z@=3=(^z0*v&c1NnhX@a98h_q>tS87MJhR|?|ow(zXjd$<7SF-Z@F z-Oq`aEjLbsv75>l(JcS{wFgqpK;>4G`nx8VOLuxj4B?pu)ovGcp$NYdWt1E@H~~)C z;B_Aq1g+)DCzb!{5?Cq*%+dAbElJ6VdrKp={pFM99-!IuPy|nuYh(TCUJ$L!lz0rv z;Slj6x7$L@7Wfwct%d7!NzY4a4|pkTK{_Icr3Mp@X0$&;3C@Sl(RC|4L8M`4%2%7I z2bGoWUG`fTwR2nib#x7y*3`h@3zr$`HD>N_NqI!(!4|x}W(-vfoPFC02)`C89FKBo zt0T+{H`KtcLOqm68V-`%yeZeeZEc#ln0*QCeX#<~9|GC%OvIjlZHndA9VJ`BEF_~o zcA?V9+_2X55hze+0BO?1fwKtULs@+XbTSq(1783jf1%&mwY6rJl^}NJc`7xbMUl9+ zlpstx(+=gD-3>!Po8hkUBZsY@k~n zI3w*wZ_Y zbb2xLtM_kXh^{4SxS>&Oy!0AP8Dj|iho>b9-37+0>smbehR)FY6Fqy^o1gJ0DfeE6 zV+aXG^bOCAIgiN?e!3OU;3j9mLYj$`-PETD(XT99gIvGe*O-@fUTf=Fh+R}TO^H+E z$ITWO;a)vnz$O|CQTjRW;fL-3FFEfq$Q9k zTq%2h`Y!Z~7n6CJk-P_n58lqI!9$#0c8qmlUrHb~EP$hzp}$7W;}6&35TJ26NEv=>fbv?ek}> z*Zb_a_wTcfqCm*CY`vlVZOsbmH=Pz0#gg}6wA?Tlb;6*BGMkYCCt^`%u(4F&7!&WZ zJeKt!NIbX{i~;la%u?u-`N(!J-oGk!D6~l_N2GRUt_x2NvVl^Q1p6kcGdpy$DfG=@0O2s;{ed@pJe$erjRRj-gLbcU*u27%B5EP`2r z_gDzcfK)(5TT9DO&_2-RZngtOLlt0j`)#yrxf`7ao2wU!yCsHL^<>M{&(Z$oPB^`p z*Z)D=A42LYk_9I+=x@B$)z1}Ux-f{2EfD|R_4jLh+X&!eNcgJdJZ3um&M8`J*4uPQ zzpdNrQ(iYVe=5ekPI@eO`Eu89t4=vOJVIVU8}$K(+Z4Lqb@{pbpr0{kU^b%wXn(hO zt^(p>I#a1zD9$ZQq$CFxcu>mZ+%`khg=h(000qXMU56%gd%m!3!`K7JT)2*2RiqMl zz@MBof@qpd(rTe}OxEJ}%T*V(!T9qgQP6;PcbAK7hJFvkaKeD|KxipFtp#HQBD_Zk zB&NqMET5UqlRPg|4_Clrt=Yxn!fbu|R*sd-C)9^FRhnMp@7J1<)jfL8G9Agg)mU*N zNUCn`yo@+Nq=PTuq$q?wGiUyy zyfq3{mxVs8tVf}mHCBI2FxTwfk1popRNc#%L^wXV0I*0DPS)I7;1kiMNx0zZfV047 zD`HSd;6MPnYWk=dH!;B?`ba#cFZJ!)xA)E@Jsw#rckyVOwF?=3H+=@K`SHlC3e-=G zE?>ES1nSuF23MJ!EGf}5EWl$~zT%S7bR9{oOR+RfIbC_y{NVSt11(D7Ds>I zk3pgR&Dqvb=z~PY*H;shAK%7jJV3rxY3}pFGivAYtg^lin11dQ`Ws&b^_brH1cOFC zv&G5bEX7pLi< zG#R2^=KU)+Tflhj%wWY2{LjS4(3?L^B+L7>^CmwQXh&rTlwUjt*0|s>z}y)`m>)0azn8~=kf5`cTBzdet&x2nlc43I1d52aX=*XY*_l=W zPNZiS3ub<18+3n^mC&L|bxvzgpv*fl6}v_iicg=YqMHSrBo0ilO<&uHKkilqtzq+*!G1WZ$<-z|Y)J;~5R66fYK~7|PilF)+zy2fY zxPg&U-+G_Blwd+f#?w(2{hwcZ^y6GCmD3rWO{oI!2yz{$jtls7w{tmM}e^WmD2qAOQi@n*vO$ac60lhkdXJ>(fmV>0!5BqUWwE{?A8{8v*YbFUiZ)5Df(@aE^|`a zF~eikUN~zCeLkgjOKnp!*;&bD1UkJJxopDaVlvamG<^R-QULi-%JuI47c19)TXDC> zaigb$w;O6PPmTC3N{2I#yOt)7Ie>z8Zt2$sx8_T@pcJKPA{JMM9oZ{dwHFq-ffo&4 zqa`QauKI0+bzMcdRb@Gc`3Jaw4b~Oj+jjtvvUIleN-&9Vi3Gwa#M!u~HUdNk4-Dd4 z*2B{)y!`$8FHnb(_@kZGAn}g#th(^eI@%<8Y7?GgXZ&5g+5mgtAbF`)>U8`hRQe+- z2d)IZ)^ftR=d7`Dl?@S7_H9e{DI#s>W9AJ7!d}}G+uumpk%+>9SIXpTI^+)clESlJ z>tz+E=kZ<V3e}AFP3-;we`>0fAA5}rSp&>UfDqCrv#~xX8zkRsPpMYoE-fpq*Z zATY3c#ql-#bkjq9Z9c9Mq0Xvj)o%haa{XHRpxf<$sRQg!MDIxKU%s@vO-a;+Yt9+m zg+}TaC-cGb^mPp??1n>fA&F8!I07X3cALMBfgbfr3T1mqh*78_r$8Gu2{i`5-V%q{ zG^QAa?k1z900L>yis5ZRiW^@hAD~(wTb7Xb#^_0?{S7f0^4pYa2}N2XsQ_#|df`Qg zBRXdS0MA4@37#XokJg?)TLV0&re+21+nNftdsBIsAb<5AgAeKqa4dqA@QG&U=tmWR z1K=mek8cGyotf6RX2;6Z1Z|A>JJP;h|FLx)jM$5D$A zm*l7D(JispT*8?ypw#@)8i>mGA&KRN7wkt_H5iodL<7WkbzitUT**+5PG*`Ga(crhH=PfQ89NnP@Ww7;4_Bk3L5@Y zPkfPA*Skq$%KAW}RGZ~3i2kenKx&1U4qkxD{_2v^J-olSoZ(1i&dmY=K-){KLBnMO z+{?B$b7yDMurE6tYx*BXkWjkD;4E0JeCfkP(`6aawe2$B*jG?2c$2ISfT&`@x4sQI z6y9ar#{YPp$y5YDE@s*6uVh?RQ~bYxOpYn_WNN{wSyxlxt#+_+#0FyPuDbC>?^mYK zS8eY|Uy}}T<4A}}P<3H|Bd=>KgK+ZE8VGIl8Iz;hhT?29R`n`d0F{pHUShFjG^g$5x9haBJ=!i!MmPnFE zcBb!UOmO1`s;XL1}Ed*L~e*oY7ti$g$n4d;zb5O9+5`;9#^NI`2qPUfP}Yow-#cHKe;+X>#jBuYvFVHQ;ywbnugq zTIej;9hBp%*K)#~TmWB1*c$|(X(nSDGcIDW5URfW0??tIyVlbEtlJ= z$2UA8l04GVH6F#+eol$nk|Qo(6!OkAG0`qM;_?MWot|CAVa9A`Q^rqisIN zfp#_50N-xW(tkpDbM6C967tz^ek023MY9umq+tB{a@6Bp$G~&!)CZIsCpl+>%A=@( zO!?`}h1xd*W1X+=m~gohRKzF8_(-$^x~FZF*s05qaGuK7#Mbu_Y~T0gcW-LBoH}e_ z>^5>)1WW*BCeJzdJp{eD*@>Y3ndH1-iP6Iba5e$!Evn+6WGC-1f~6k|D&Of(8@Tbe zj7%^Hq8ygB2(~1m&s2Puq6<~nVQzrs0Wdb%dCpo38H4bebd(CdxZ`ql=ed2Xwt3@U z65atpPix%~0<#I&p7|HAKc!l#Z^gvH-&hO$;k*mLR+`X&J~lv!ys<&VT21;fWW4Wa zHCo_51i-dr#g%TBP%VYE$W~2u+KT^S=OaxUq>_?Ywkat98d7i=Ql>y94+PFJ9jc(( zj}lj(bQs$ZiO6@QcZb{BoaEm&)mJ8wDrLnbLA^7_x{cZCD2Lg z3H!rvVxg=`TfWk%2UGKl^KZd{6NDiCZ2u>lD;6XccycTBq<#Zz4LR6TvLFt& z@24ikMqwT@_=(>J2Z{%HFs5!ZD{^39y7%BCxJcbg62>R?!ESqKxA;Xw$N}GtGO1&E zr0Exa^u9#{mjdx4)l!uyV*GdQNs!;lTH79Fz}T#TU`}(hwnFDI66D& ziYB>v!FV{~=IBJ7k?6C1kXm4OVRa{sKbU#DL0|TCl_}N$?2N12vtp_P-`yv0m)%0n z0~7p5jsqL#txL)sme{muX=D2i@-O)D*cG(wf%>1+Zn0J@90&r(Ps9Wk5M~_#Ls*eJMh^ z?>OV;7A`judH5EeTEETkSpdr`GYZu0`pDzG|6okA@Fd4#T^~rWxgB-}xKZ7?jIwOI zO#&hhm2^Sm2{>DJm0fM}$UV@PAU1ywrQu6*w{LC$*WyT2n%ZhtFLa;UTWSQEMT5(5 zbI8HGbh6t0QCk&ETIi5b4zo%7K8x0EZCYl+;n4^}v|*<^$)Nr?ZrwS14MUeI`v=Xp z$BT(bvBt9P?6UAbx(ny%rvFAv^5Z0_VEG!z>oRQ3yf=BYB*Wa#eq+g0O9^6~O;Bl3*!gLC8n#dah>Evwcs_-}{}YcK^>Gb<-)k&y4Vf zYN<)!K_0LD@y3m`F7s2QUZm_|9Az5JD`8-94}c> z2s1loybZW_+Wm{%eetK8(qibvV=cs$>&`d3sMy51XLG}FQSai!RY;^+v2Rl{;{g}Y z55se(Vs9Kwf0=T)itDdt3virysf1UbjlQLxvb&<#+<%jHBJ4x&h^+V}H@(2Oeq#1u zMF5OBLV!04}X^bfhOH{qirL}N|G%gnuY znH$>pRp{!D)|Pqa5$kQq>cdoE-aZ}%ax_s?`pGcWI z@j=d(l%fq_MQSV*>lanIT^mx;_VwZHt<+u}J3$o|;M;+2wZIu}<9PStvzL3+&VX-J zO`A`&?&-yAn<+pqAYc6Q?zO(Re&S=+Y%PWoSbY7*-VqM5OHq*U15d=?15QvKHdv12 zwL@sK0y7@o(pSq*Y1Ro8{G*@L^DVfvxB8155rJ9P*_I=9onXz;r?89%O5c8+Rgig8 z^VGF1w6VHA>U{k3x$AFPxc=#|l*2+hmjjlA*GiI^eB0(D0I36wJpJbeSt;Lj!qa;X zLZla0!&#e<=TzS9zq9bsZvxqAD>v_m*pc7{~q*14gPSzI)%B z8^l612uUc>qXbD9@{h@^MB#-r@ST+d)G-2ya<$Tkw{HI`BB{8 z+HcciqabpW)&ChQU+i*JTJJ&S9m)9qv_w+&g#!@eBg8SB-a%7;#)k9?Q0Z|vkpEj# zI(EU}nLn>x0Zo(4g5v+(vp-P)xj7?<2IqEXhB8mTt zbY|G8X9NubxI|)9#~VM+#-T2I-ir5-Z?$9uA-SkinLK}FlH89H6V7>Kp(vESy!s?E z%<{fLq9VPLiD7c7TzwTLuODHVI3AO2K7_1i!|AyPBj^rI<>8!aWLSDjh+$Fz6#26X zl|835zcn*x^Vrfhe=_MU1y0ZBkIB_@q-CJyYEgKX9s@Owkp#DdJvpO#titN`XK2&} z8IgteP?DSW{C-#{#%vCt(auDTuP#uo5o)?EV)-Z>#xo|G2i}j{!{s7Ce|N+K0Z)j5 z0;rK|R$RIM$};hTi`J8JmOlWmvVCOfJ$&Y%$(T-;UNA8w`+9ziN<>;IX69bfMCgZ?KO7Zs^tAfme(gAnr{fP8>;)@qya31{3t2k59P{@ zoy@wGbXYyZB>%1Avi?|3-0$aT3IPP>4Jb+-+k(CPsFAK8x1{SXg)@7M4z0a+#&1Eo z_R6De$~>=oj+t+DDJ8NTpT*_@cJD__4G2(A1v{k4hu0Y8P*9Kg-2piFbM-5_0lv2RlJF@Gbuy}%Vt*9IIVMO#; ztphVR!8U&a)B|gVS1X0qJBNJd&(mN%yRKlMa%lQ0+ijiKI)CfNf)hEv>OG93bged7VoAm z0mHg9n6NWH%-?v)pv5eMCF;pZPP{V=QihrU_{jo=k))b&`AL`W0zbe83Akp}TFmS# zsg4H7mNT5ArsKZ%md`yTC{mrO&)MOj8LJ2w%e<1P!A*hA3=Z$kEp;Gwi(|Hr_Y>T0cfi0js$3eNLKru3Ms*bRwkWv5bajYqmJV zM0QyC_|O!3%rgXNzh*omlLT@Fft*O1uOD`%9`?*H~g9d z-d?y(zbE%%^mNVppxeBq%Ol{kEX=mMCQacSM_&3}g_K(t zgUrj4zPpnR0ncm#O%;)Rw>wBB}_3`z#`f&v@KQ!+kaTJc}2)5=sp!BZb?_jR*>F->c{0+IAM6@JJAEgb6^{ zGB>PeJv(;aCAS+9j^Lqa$OX)=iqYM=b9(`~HJj2b9lKuk*yCSQ;9Fu(2WS1}q7qka z{L6*vp$tF|R%i)%IlcGjbDz77S!x}2Z@lVcUskVP#X!>m2Zsv`)br^uAq|#qFNGVU-q)^?+mCY zj1N!DLM3B(l@W=RKC72ApQ7eGC(kWg_x16n5LD5YaTEIfs?HY|kr_B|MMcc;O0U_{ z4|Y#}RWj@@?z7WEMHhuO>N|IfQS0)KhPHq6xUYvJYAb&&{_|Wf>X-CpQNMW9cBp!5 zuRCOTGE2sFoIP*)%>y1$B0XEup2pE748GLQ?~Hyu6#~zzLx|q~hV<{3vFY%?9gAI8 zu4=-msM!jxAOFJfV<|$>f8B5OyR$piYdy)6Aqvr`O9)kaLKd|hQ&Oa8W7}E>n^&6P z+*jQ4Rob?jA1XT|4j(S5i5hgAX~s+l5^K%?nFF}YO!s%MtScw$X9Sk4#SR4hNY`3W zZX=ekes)^Pf5VN3`dkM}a<$hO!1ce|IwFD!43uBjnSMsB&+;d4i*kP8bXE<`&dWru zLon7dy`mZZgGU(r{*{DL>#63cyXqq)Q4x;^%B35$TI(RKU}M zL@ee$HvDCC1Cr(l=>psz|L*_xI5t3yThUDknumn?J9$PI*c93{*^GbxAuM=l`9LGg zuM(?RCHmA1dEY_PvU{_83wmYq^XagEgc^QQXhf*fSRbXI{cHrp5GfIr)^f^z48$SH zDKk1#Ouh6L<4LHTHo%6rgo{PIWai5Ha44Txld{(o(IkO-;T@VX2wt}@wd zA#>ahcmA&?7|>t0rZ3=AE_t_nS!dPOjC{RMn;agr;?F~WYF?K&oe7^_6{lrStow7e(I#j^~5+xC%m6Ile z<$2=V_NZsIWFxl8G5@NKt=JX2i31D$E&eGWXxe3KqZ9OFFx{oHG+9F?;~9Jhr65+d zCrlb#k~T}*D+U>-LtN~6j4RQeggu~iFf2Tnjo!s9*E*z3V8c@CD~ONZy*sA)Jo74x z|2){U5<3uU)YB1SmyOQe7_DcEf^W;^zd5zZ#7~B=#CQz{;d~0