From 55de6b22ce7524ecda7ed4623f7e18ab1475b8d3 Mon Sep 17 00:00:00 2001 From: jiaziyang Date: Tue, 8 Mar 2022 10:32:48 +0800 Subject: [PATCH] add pin files Signed-off-by: jiaziyang --- zh-cn/device-dev/driver/Readme-CN.md | 1 + .../driver/driver-platform-pin-des.md | 416 ++++++++++++ .../driver/driver-platform-pin-develop.md | 625 +++++++++++------- zh-cn/device-dev/driver/driver-platform.md | 2 + ...0\346\265\201\347\250\213\345\233\276.png" | Bin 0 -> 29496 bytes ...7\347\273\223\346\236\204\345\233\276.png" | Bin 85756 -> 35169 bytes 6 files changed, 790 insertions(+), 254 deletions(-) create mode 100644 zh-cn/device-dev/driver/driver-platform-pin-des.md create mode 100644 "zh-cn/device-dev/driver/figures/PIN\344\275\277\347\224\250\346\265\201\347\250\213\345\233\276.png" mode change 100755 => 100644 "zh-cn/device-dev/driver/figures/\346\227\240\346\234\215\345\212\241\346\250\241\345\274\217\347\273\223\346\236\204\345\233\276.png" diff --git a/zh-cn/device-dev/driver/Readme-CN.md b/zh-cn/device-dev/driver/Readme-CN.md index 257ae75de4..faecd64a7e 100755 --- a/zh-cn/device-dev/driver/Readme-CN.md +++ b/zh-cn/device-dev/driver/Readme-CN.md @@ -32,6 +32,7 @@ - [I3C](driver-platform-i3c-des.md) - [MIPI-CSI](driver-platform-mipicsi-des.md) - [MIPI-DSI](driver-platform-mipidsi-des.md) + - [PIN](driver-platform-pin-des.md) - [PWM](driver-platform-pwm-des.md) - [REGULATOR](driver-platform-regulator-des.md) - [RTC](driver-platform-rtc-des.md) diff --git a/zh-cn/device-dev/driver/driver-platform-pin-des.md b/zh-cn/device-dev/driver/driver-platform-pin-des.md new file mode 100644 index 0000000000..88d20ee83e --- /dev/null +++ b/zh-cn/device-dev/driver/driver-platform-pin-des.md @@ -0,0 +1,416 @@ +# PIN + +- [概述](#section1) + - [功能简介](#section2) + - [基本概念](#section3) + - [运作机制](#section4) + - [约束与限制](#section5) +- [使用指导](#section6) + - [场景介绍](#section7) + - [接口说明](#section8) + - [开发步骤](#section9) + - [使用实例](#section10) + +## 概述 + +### 功能简介 + +- PIN即管脚控制器,用于统一管理各SoC厂商管脚资源,对外提供管脚复用功能:包括管脚推拉方式、管脚推拉强度以及管脚功能。 +- PIN接口定义了操作PIN管脚的通用方法集合,包括: + - 获取/释放管脚描述句柄: 传入管脚名与链表中每个控制器下管脚名进行匹配,匹配则会获取一个管脚描述句柄,操作完PIN管脚后释放该管脚描述句柄。 + - 设置/获取管脚推拉方式:推拉方式可以是上拉、下拉以及悬空。 + - 设置/获取管脚推拉强度:用户可根据实际设置管脚推拉强度大小。 + - 设置/获取管脚功能:通过管脚功能名设置/获取管脚功能,实现管脚复用。 + +### 基本概念 +PIN是一个软件层面的概念,目的是为了统一各SoC厂商PIN管脚管理,对外提供管脚复用功能,配置PIN管脚的电气特性。 + +- SoC(System on Chip) + + 系统级芯片,也有称作片上系统,通常是面向特定用途将微处理器、模拟IP核、数字IP核和存储器集成在单一芯片的标准产品。 + +- 管脚复用 + + 由于芯片自身的引脚数量有限,无法满足日益增多的外接需求。此时可以通过软件层面的寄存器设置,让引脚工作在不同的状态,从而实现相同引脚完成不同功能的目的。 + +### 运作机制 + +在HDF框架中,PIN模块暂不支持用户态,所以不需要发布服务,接口适配模式采用无服务模式,用于不需要在用户态提供API的设备类型,或者没有用户态和内核区分的OS系统,其关联方式是DevHandle直接指向设备对象内核态地址(DevHandle是一个void类型指针)。 + +PIN模块各分层作用:接口层提供获取PIN管脚、设置PIN管脚推拉方式、获取PIN管脚推拉方式、设置PIN管脚推拉强度、获取PIN管脚推拉强度、设置PIN管脚功能、获取PIN管脚功能、释放PIN管脚的接口。核心层主要提供PIN管脚资源匹配,PIN管脚控制器的添加、移除以及管理的能力,通过钩子函数与适配层交互。适配层主要是将钩子函数的功能实例化,实现具体的功能。 + +**图 1** PIN无服务模式 +![](figures/无服务模式结构图.png "PIN无服务模式") + +### 约束与限制 + + PIN模块目前仅支持轻量和小型系统内核(LiteOS)。 + + ## 使用指导 + + ### 场景介绍 + + PIN模块仅是一个软件层面的概念,主要工作是管脚资源管理。使用复用管脚时,通过设置管脚功能、设置管脚推拉方式、设置管脚推拉强度来适配指定场景的需求。 + +### 接口说明 + +PIN模块提供的主要接口如[表1](#table1)所示,更多关于接口的介绍请参考对应的API接口文档。 + +**表 1** PIN驱动API接口功能介绍 + + +| **接口名** | **描述** | +| ------------------------------------------------------------ | ---------------- | +| DevHandle PinGet(const char *pinName); | 获取管脚描述句柄 | +| void PinPut(DevHandle handle); | 释放管脚描述句柄 | +| int32_t PinSetPull(DevHandle handle, enum PinPullType pullType); | 设置管脚推拉方式 | +| int32_t PinGetPull(DevHandle handle, enum PinPullType *pullType); | 获取管脚推拉方式 | +| int32_t PinSetStrength(DevHandle handle, uint32_t strength); | 设置管脚推拉强度 | +| int32_t PinGetStrength(DevHandle handle, uint32_t *strength); | 获取管脚推拉强度 | +| int32_t PinSetFunc(DevHandle handle, const char *funcName); | 设置管脚功能 | +| int32_t PinGetFunc(DevHandle handle, const char **funcName); | 获取管脚功能 | + +>![](../public_sys-resources/icon-note.gif) **说明:** +>本文涉及的所有接口,仅限内核态使用,不支持在用户态使用。 + +### 开发步骤 + +使用PIN设备的一般流程如[图2](#fig2)所示。 + + **图 2** PIN使用流程图 +![](figures/PIN使用流程图.png "PIN使用流程图") + +#### 获取PIN管脚描述句柄 + +在使用PIN进行管脚操作时,首先要调用PinGet获取管脚描述句柄,该函数会返回匹配传入管脚名的管脚描述句柄。 + +``` +DevHandle PinGet(const char *pinName); +``` + +**表 2** PinGet参数和返回值描述 + + + +| 参数 | 参数描述 | +| ---------- | ----------------------- | +| pinName | 管脚名 | +| **返回值** | **返回值描述** | +| NULL | 获取PIN管脚描述句柄失败 | +| handle | PIN管脚描述句柄 | + +假设PIN需要操作的管脚名为P18,获取其管脚描述句柄的示例如下: + +``` +DevHandle handle = NULL; /* PIN管脚描述句柄 */ +char pinName = "P18"; /* PIN管脚号 */ +handle = PinGet(pinName); +if (handle == NULL) { + HDF_LOGE("PinGet: get handle failed!\n"); + return; +} +``` + +#### PIN设置管脚推拉方式 + +PIN设置管脚推拉方式的函数如下所示: + +``` +int32_t PinSetPull(DevHandle handle, enum PinPullType pullType); +``` + +**表 3** 参数和返回值描述 + + + +| 参数 | 参数描述 | +| ---------- | ----------------------- | +| handle | PIN管脚描述句柄 | +| pullType | PIN管脚推拉方式 | +| **返回值** | **返回值描述** | +| 0 | PIN设置管脚推拉方式成功 | +| 负数 | PIN设置管脚推拉方式失败 | + +假设PIN要设置的管脚推拉方式为上拉,其实例如下: + +``` +int32_t ret; +enum PinPullType pullTypeNum; +/* PIN设置管脚推拉方式 */ +pullTypeNum = 1; +ret = PinSetPull(handle, pullTypeNum); +if (ret != HDF_SUCCESS) { + HDF_LOGE("PinSetPull: failed, ret %d\n", ret); + return ret; +} +``` + +#### PIN获取管脚推拉方式 + +PIN获取管脚推拉方式的函数如下所示: + +``` +int32_t PinGetPull(DevHandle handle, enum PinPullType *pullType); +``` + +**表 4** PinGetPull参数和返回值描述 + + + +| 参数 | 参数描述 | +| ---------- | ------------------------- | +| handle | PIN管脚描述句柄 | +| pullType | 接收PIN管脚推拉方式的指针 | +| **返回值** | **返回值描述** | +| 0 | PIN获取管脚推拉方式成功 | +| 负数 | PIN获取管脚推拉方式失败 | + +PIN获取管脚推拉方式的实例如下: + +``` +int32_t ret; +enum PinPullType pullTypeNum; +/* PIN获取管脚推拉方式 */ +ret = PinGetPull(handle, &pullTypeNum); +if (ret != HDF_SUCCESS) { + HDF_LOGE("PinGetPull: failed, ret %d\n", ret); + return ret; +} +``` + +#### PIN设置管脚推拉强度 + +PIN设置管脚推拉强度函数如下所示: + +``` +int32_t PinSetStrength(DevHandle handle, uint32_t strength); +``` + +**表 5** PinSetStrength参数和返回值描述 + + + +| 参数 | 参数描述 | +| ---------- | ----------------------- | +| handle | 管脚描述句柄 | +| strength | PIN管脚推拉强度 | +| **返回值** | **返回值描述** | +| 0 | PIN设置管脚推拉强度成功 | +| 负数 | PIN设置管脚推拉强度失败 | + +假设PIN要设置的管脚推拉强度为2,其实例如下: + +``` +int32_t ret; +uint32_t strengthNum; +/* PIN设置管脚推拉强度 */ +strengthNum = 2; +ret = PinSetStrength(handle, strengthNum); +if (ret != HDF_SUCCESS) { + HDF_LOGE("PinSetStrength: failed, ret %d\n", ret); + return ret; +} +``` + +#### PIN获取管脚推拉强度 + +PIN设置管脚推拉强度后,可以通过PIN获取管脚推拉强度接口来查看PIN管脚推拉强度,PIN获取管脚推拉强度的函数如下所示: + +``` +int32_t PinGetStrength(DevHandle handle, uint32_t *strength); +``` + +**表 6** PinGetStrength参数和返回值描述 + + + +| 参数 | 参数描述 | +| ---------- | ------------------------- | +| handle | 管脚描述句柄 | +| strength | 接收PIN管脚推拉强度的指针 | +| **返回值** | **返回值描述** | +| 0 | PIN获取管脚推拉强度成功 | +| 负数 | PIN获取管脚推拉强度失败 | + +PIN获取管脚推拉强度的实例如下: + +``` +int32_t ret; +uint32_t strengthNum; +/* PIN获取管脚推拉强度 */ +ret = PinGetStrength(handle, &strengthNum); +if (ret != HDF_SUCCESS) { + HDF_LOGE("PinGetStrength: failed, ret %d\n", ret); + return ret; +} +``` + +#### PIN设置管脚功能 + +管脚功能特指的是管脚复用的功能,每个管脚功能都不相同,管脚功能名详细可以参考[PIN配置hcs文件](https://gitee.com/openharmony/device_soc_hisilicon/blob/master/hi3516dv300/sdk_liteos/hdf_config/pin/pin_config.hcs)。 + +PIN设置管脚功能函数如下所示: + +``` +int32_t PinSetFunc(DevHandle handle, const char *funcName); +``` + +**表 7** PinSetFunc参数和返回值描述 + + + +| 参数 | 参数描述 | +| ---------- | ------------------- | +| handle | 管脚描述句柄 | +| funcName | PIN管脚功能名 | +| **返回值** | **返回值描述** | +| 0 | PIN设置管脚功能成功 | +| 负数 | PIN设置管脚功能失败 | + +假设PIN需要设置的管脚功能为LSADC_CH1(ADC通道1),其实例如下: + +``` +int32_t ret; +char funcName = "LSADC_CH1"; +/* PIN设置管脚功能 */ +ret = PinSetFunc(handle, funcName); +if (ret != HDF_SUCCESS) { + HDF_LOGE("PinSetFunc: failed, ret %d\n", ret); + return ret; +} +``` + +#### PIN获取管脚功能 + +PIN设置管脚功能后,可以通过PIN获取管脚功能接口来查看PIN管脚功能,PIN获取管脚功能的函数如下所示: + +``` +int32_t PinGetFunc(DevHandle handle, const char **funcName); +``` + +**表 8** PinGetFunc参数和返回值描述 + + + +| 参数 | 参数描述 | +| ---------- | --------------------- | +| handle | 管脚描述句柄 | +| funcName | 接收PIN管脚功能名指针 | +| **返回值** | **返回值描述** | +| 0 | PIN获取管脚功能成功 | +| 负数 | PIN获取管脚功能失败 | + +PIN获取管脚功能的实例如下: + +``` +int32_t ret; +char *funcName; +/* PIN获取管脚功能 */ +ret = PinGetFunc(handle,&funcName); +if (ret != HDF_SUCCESS) { + HDF_LOGE("PinGetFunc: failed, ret %d\n", ret); + return ret; +} +``` + +#### 释放PIN管脚描述句柄 + +PIN不再进行任何操作后,需要释放PIN管脚描述管脚句柄,函数如下所示: + +``` +void PinPut(DevHandle handle); +``` + +**表 9** PinPut参数和返回值描述 + + + +| 参数 | 参数描述 | +| ---------- | -------------- | +| handle | 管脚描述句柄 | +| **返回值** | **返回值描述** | +| NA | 无返回值 | + +PIN销毁管脚描述句柄实例如下: + +``` +PinPut(handle); +``` + +## 使用实例 + +使用PIN设置管脚相关属性完整使用可以参考如下示例代码,示例代码步骤主要如下: +1. 传入要设置的管脚名,获取PIN管脚描述句柄。 +2. 通过PIN管脚描述句柄以及推拉方式pullTypeNum设置管脚推拉方式,如果操作失败则释放PIN管脚描述句柄。 +3. 通过PIN管脚描述句柄,并用pullTypeNum承接获取的管脚推拉方式,如果操作失败则释放PIN管脚描述句柄。 +4. 通过PIN管脚描述句柄以及推拉强度strengthNum设置管脚推拉强度,如果操作失败则释放PIN管脚描述句柄。 +5. 通过PIN管脚描述句柄,并用strengthNum承接获取的管脚推拉强度,如果操作失败则释放PIN管脚描述句柄。 +5. 通过PIN管脚描述句柄以及管脚功能名funName设置管脚功能,如果操作失败则释放PIN管脚描述句柄。 +6. 通过PIN管脚描述句柄,并用funName承接获取的管脚功能名,如果操作失败则释放PIN管脚描述句柄。 +7. 使用完PIN后,不再对管脚进行操作,释放PIN管脚描述句柄。 + +``` +#include "hdf_log.h" /* 标准日志打印头文件 */ +#include "pin_if.h" /* PIN标准接口头文件 */ + +int32_t PinTestSample(void) +{ + int32_t ret; + uint32_t strengthNum; + enum PinPullType pullTypeNum; + char pinName; + char *funName; + DevHandle handle = NULL; + + /* PIN管脚名,要填写实际要设置的管脚名 */ + pinName = "P18"; + /* PIN获取管脚描述句柄 */ + handle = PinGet(pinName); + if (handle == NULL) { + HDF_LOGE("PinGet: failed!\n"); + return; + } + /* PIN设置管脚推拉方式为上拉 */ + pullTypeNum = 1; + ret = PinSetPull(handle, pullTypeNum); + if (ret != HDF_SUCCESS) { + HDF_LOGE("PinSetPull: failed, ret %d\n", ret); + goto ERR; + } + /* PIN获取管脚推拉方式 */ + ret = PinGetPull(handle, &pullTypeNum); + if (ret != HDF_SUCCESS) { + HDF_LOGE("PinGetPull: failed, ret %d\n", ret); + goto ERR; + } + /* PIN设置管脚推拉强度为2 */ + strengthNum = 2; + ret = PinSetStrength(handle, strengthNum); + if (ret != HDF_SUCCESS) { + HDF_LOGE("PinSetStrength: failed, ret %d\n", ret); + goto ERR; + } + /* PIN获取管脚推拉强度 */ + ret = PinGetStrength(handle, &strengthNum); + if (ret != HDF_SUCCESS) { + HDF_LOGE("PinGetStrength: failed, ret %d\n", ret); + goto ERR; + } + /* PIN设置管脚功能为LSADC_CH1 */ + funName = "LSADC_CH1"; + ret = PinSetFunc(handle, funName); + if (ret != HDF_SUCCESS) { + HDF_LOGE("PinSetFunc: failed, ret %d\n", ret); + goto ERR; + } + /* PIN获取管脚功能 */ + ret = PinGetFunc(handle, &funcName); + if (ret != HDF_SUCCESS) { + HDF_LOGE("PinGetFunc: failed, ret %d\n", ret); + goto ERR; + } +ERR: + /* 释放PIN管脚描述句柄 */ + PinPut(handle); + return ret; +} diff --git a/zh-cn/device-dev/driver/driver-platform-pin-develop.md b/zh-cn/device-dev/driver/driver-platform-pin-develop.md index ca0ca47d8e..3e098c1fd4 100755 --- a/zh-cn/device-dev/driver/driver-platform-pin-develop.md +++ b/zh-cn/device-dev/driver/driver-platform-pin-develop.md @@ -1,19 +1,54 @@ # PIN -- [概述](#section1_PinDevelop) -- [接口说明](#section2_PinDevelop) -- [开发步骤](#section3_PinDevelop) -- [开发实例](#section4_PinDevelop) +- [概述](#section1_PinDevelop) + - [功能简介](#section2_PinDevelop) + - [基本概念](#section3_PinDevelop) + - [运作机制](#section4_PinDevelop) + - [约束与限制](#section5_PinDevelop) +- [使用指导](#section6_PinDevelop) + - [场景介绍](#section7_PinDevelop) + - [接口说明](#section8_PinDevelop) + - [开发步骤](#section9_PinDevelop) ## 概述 -PIN模块用于控制系统中管脚的状态和功能特性。在HDF框架中,PIN的接口适配模式采用无服务模式,用于不需要在用户态提供API的设备类型,或者没有用户态和内核区分的OS系统,其关联方式是DevHandle直接指向设备对象内核态地址(DevHandle是一个void类型指针)。 +### 功能简介 +PIN即管脚控制器,用于统一管理各SoC厂商管脚资源,对外提供管脚复用功能。 -图 1 无服务模式结构图 +### 基本概念 + +PIN是一个软件层面的概念,目的是为了统一各SoC厂商PIN管脚管理,对外提供管脚复用功能,配置PIN管脚的电气特性。 + +- SoC(System on Chip) + + 系统级芯片,也有称作片上系统,通常是面向特定用途将微处理器、模拟IP核、数字IP核和存储器集成在单一芯片的标准产品。 + +- 管脚复用 + + 由于芯片自身的引脚数量有限,无法满足日益增多的外接需求。此时可以通过软件层面的寄存器设置,让引脚工作在不同的状态,从而实现相同引脚完成不同功能的目的。 + +### 运作机制 + +在HDF框架中,PIN模块暂不支持用户态,所以不需要发布服务,接口适配模式采用无服务模式(如图1所示),用于不需要在用户态提供API的设备类型,或者没有用户态和内核区分的OS系统,其关联方式是DevHandle直接指向设备对象内核态地址(DevHandle是一个void类型指针)。 + +PIN模块各分层作用:接口层提供获取PIN管脚、设置PIN管脚推拉方式、获取PIN管脚推拉方式、设置PIN管脚推拉强度、获取PIN管脚推拉强度、设置PIN管脚功能、获取PIN管脚功能、释放PIN管脚的接口。核心层主要提供PIN管脚资源匹配,PIN管脚控制器的添加、移除以及管理的能力,通过钩子函数与适配层交互。适配层主要是将钩子函数的功能实例化,实现具体的功能。 + +**图 1** 无服务模式结构图 ![image1](figures/无服务模式结构图.png) -## 接口说明 +### 约束与限制 + + PIN模块目前仅支持轻量和小型系统内核(LiteOS)。 + +## 开发指导 + +### 场景介绍 +PIN模块主要用于管脚资源管理。在各SoC厂商对接HDF框架时,需要来适配PIN驱动。 + +### 接口说明 + +通过以下PinCntlrMethod中的函数调用PIN驱动对应的函数。 PinCntlrMethod定义: ```c @@ -29,288 +64,370 @@ struct PinCntlrMethod { **表 1** PinCntlrMethod成员的回调函数功能说明 -| 成员函数 | 入参 | 返回值 | 功能 | -| ------------ | ------------------------------------------- | ------ | ---- | -| SetPinPull | **cntlr**:结构体指针,核心层Pin控制器;
**index**:uint32_t变量,管脚索引号;
**pullType**:枚举常量,Pin管脚推拉方式; |HDF_STATUS相关状态|设置Pin管脚推拉方式| -| GetPinPull | **cntlr**:结构体指针,核心层Pin控制器;
**index**:uint32_t变量,管脚索引号;
**pullType**:枚举常量指针,传出Pin管脚推拉方式; | HDF_STATUS相关状态 | 获取Pin管脚推拉方式 | -| SetPinStrength | **cntlr**:结构体指针,核心层Pin控制器;
**index**:uint32_t变量,管脚索引号;
**strength**:uint32_t变量,Pin推拉强度; | HDF_STATUS相关状态 | 设置Pin推拉强度 | -| GetPinStrength | **cntlr**:结构体指针,核心层Pin控制器;
**index**:uint32_t变量,管脚索引号;
**strength**:uint32_t变量指针,传出Pin推拉强度; | HDF_STATUS相关状态 | 获取Pin推拉强度 | -| SetPinFunc | **cntlr**:结构体指针,核心层Pin控制器;
**index**:uint32_t变量,管脚索引号;
**funcName**:char指针常量,传入Pin管脚功能; | HDF_STATUS相关状态 | 设置Pin管脚功能 | -| GetPinFunc | **cntlr**:结构体指针,核心层Pin控制器;
**index**:uint32_t变量,管脚索引号;
**funcName**:char双重指针常量,传出Pin管脚功能; | HDF_STATUS相关状态 | 获取Pin管脚功能 | +| 成员函数 | 入参 | 出参 | 返回值 | 功能 | +| ------------ | ------------------------------------------- | ------ | ---- | ---- | +| SetPinPull | **cntlr**:结构体指针,核心层Pin控制器;
**index**:uint32_t变量,管脚索引号;
**pullType**:枚举常量,Pin管脚推拉方式; | 无 |HDF_STATUS相关状态|PIN设置管脚推拉方式| +| GetPinPull | **cntlr**:结构体指针,核心层Pin控制器;
**index**:uint32_t变量,管脚索引号; | **pullType**:枚举常量指针,传出Pin管脚推拉方式; | HDF_STATUS相关状态 | PIN获取管脚推拉方式 | +| SetPinStrength | **cntlr**:结构体指针,核心层Pin控制器;
**index**:uint32_t变量,管脚索引号;
**strength**:uint32_t变量,Pin推拉强度; | 无 | HDF_STATUS相关状态 | PIN设置推拉强度 | +| GetPinStrength | **cntlr**:结构体指针,核心层Pin控制器;
**index**:uint32_t变量,管脚索引号; | **strength**:uint32_t变量指针,传出Pin推拉强度; | HDF_STATUS相关状态 | PIN获取推拉强度 | +| SetPinFunc | **cntlr**:结构体指针,核心层Pin控制器;
**index**:uint32_t变量,管脚索引号;
**funcName**:char指针常量,传入Pin管脚功能; | 无 | HDF_STATUS相关状态 | PIN设置管脚功能 | +| GetPinFunc | **cntlr**:结构体指针,核心层Pin控制器;
**index**:uint32_t变量,管脚索引号; | **funcName**:char双重指针常量,传出Pin管脚功能; | HDF_STATUS相关状态 | PIN获取管脚功能 | + +### 开发步骤 -## 开发步骤 +PIN模块适配包含以下四个步骤: -PIN模块适配的三个环节是实例化驱动入口、配置属性文件、以及实例化核心层接口函数。 +- 实例化驱动入口。 +- 配置属性文件。 +- 实例化核心层接口函数。 +- 驱动调试。 1. **实例化驱动入口:** - + - 实例化HdfDriverEntry结构体成员。 + 驱动开发首先需要实例化驱动入口,驱动入口必须为HdfDriverEntry(在 hdf_device_desc.h 中定义)类型的全局变量,且moduleName要和device_info.hcs中保持一致。 + - 调用HDF_INIT将HdfDriverEntry实例化对象注册到HDF框架中。 - -2. **配置属性文件:** + 一般在加载驱动时HDF会先调用Init函数加载该驱动。当Init调用异常时,HDF框架会调用Release释放驱动资源并退出。 + + ```c + static struct HdfDriverEntry g_hi35xxPinDriverEntry = { + .moduleVersion = 1, + .Bind = Hi35xxPinBind, + .Init = Hi35xxPinInit, + .Release = Hi35xxPinRelease, + .moduleName = "hi35xx_pin_driver", // 【必要且与HCS文件中里面的moduleName匹配】 + }; + HDF_INIT(g_hi35xxPinDriverEntry); // 调用HDF_INIT将驱动入口注册到HDF框架中 + ``` - - 在device_info.hcs文件中添加deviceNode描述。 - - 【可选】添加pin_config.hcs器件属性文件。 +2. **配置属性文件:** + - 在vendor/hisilicon/hispark_taurus/hdf_config/device_info/device_info.hcs文件中添加deviceNode描述。 + ```c + root { + device_info { + platform :: host { + hostName = "platform_host"; + priority = 50; + device_pin :: device { + device0 :: deviceNode { // 为每一个Pin控制器配置一个HDF设备节点,存在多个时须添加,否则不用 + policy = 0; // 2:用户态可见,1:内核态可见,0:不需要发布服务 + priority = 10; // 驱动启动优先级 + permission = 0644; // 驱动创建设备节点权限 + /* 【必要】用于指定驱动名称,需要与期望的驱动Entry中的moduleName一致 */ + moduleName = "hi35xx_pin_driver"; + /* 【必要】用于配置控制器私有数据,要与pin_config.hcs中对应控制器保持一致,具体的控制器信息在pin_config.hcs中 */ + deviceMatchAttr = "hisilicon_hi35xx_pin_0"; + } + device1 :: deviceNode { + policy = 0; + priority = 10; + permission = 0644; + moduleName = "hi35xx_pin_driver"; + deviceMatchAttr = "hisilicon_hi35xx_pin_1"; + } + ...... + } + } + } + } + ``` + - 添加pin_config.hcs器件属性文件。 + 在device/soc/hisilicon/hi3516dv300/sdk_liteos/hdf_config/pin/pin_config.hcs目录下配置器件属性 ,其中配置参数如下: + ```c + root { + platform { + pin_config_hi35xx { + template pin_controller { // 【必要】模板配置,继承该模板的节点如果使用模板中的默认值,则节点字段可以缺省 + number = 0; // 【必要】controller编号 + regStartBasePhy = 0; // 【必要】寄存器物理基地址起始地址 + regSize = 0; // 【必要】寄存器位宽 + pinCount = 0; // 【必要】管脚数量 + match_attr = ""; + template pin_desc { + pinName = ""; // 【必要】管脚名称 + init = 0; // 【必要】寄存器默认值 + F0 = ""; // 【必要】功能0 + F1 = ""; // 功能1 + F2 = ""; // 功能2 + F3 = ""; // 功能3 + F4 = ""; // 功能4 + F5 = ""; // 功能5 + } + } + controller_0 :: pin_controller { + number = 0; + regStartBasePhy = 0x10FF0000; + regSize = 0x48; + pinCount = 18; + match_attr = "hisilicon_hi35xx_pin_0"; + T1 :: pin_desc { + pinName = "T1"; + init = 0x0600; + F0 = "EMMC_CLK"; + F1 = "SFC_CLK"; + F2 = "SFC_BOOT_MODE"; + } + ...... // 对应管脚控制器下的每个管脚,按实际添加 + } + ......//每个管脚控制器对应一个controller节点,如存在多个Pin控制器,请依次添加对应的controller节点。 + } + } + } + ``` 3. **实例化PIN控制器对象:** - - 初始化PinCntlr成员。 - - - 实例化PinCntlr成员PinCntlrMethod。 - - >![](../public_sys-resources/icon-note.gif) **说明:** - >实例化PinCntlr成员PinCntlrMethod,其定义和成员说明见[接口说明](#section2_PINDevelop)。 - -4. **驱动调试:** - - - 【可选】针对新增驱动程序,建议验证驱动基本功能,例如挂载后的信息反馈,数据传输的成功与否等。 - -## 开发实例 + 在Hi35xxPinCntlrInit函数中对PinCntlr成员进行初始化操作。 -下方将以pin_hi35xx.c为示例,展示需要厂商提供哪些内容来完整实现设备功能。 + ```c + struct Hi35xxPinDesc { + // 管脚名 + const char *pinName; + // 初始化值 + uint32_t init; + // 管脚索引 + uint32_t index; + // 管脚推拉方式 + int32_t pullType; + // 管脚推拉强度 + int32_t strength; + // 管脚功能名字符串数组 + const char *func[HI35XX_PIN_FUNC_MAX]; + }; + + struct Hi35xxPinCntlr { + // 管脚控制器 + struct PinCntlr cntlr; + // 管脚描述结构体指针 + struct Hi35xxPinDesc *desc; + // 寄存器映射地址 + volatile unsigned char *regBase; + // 管脚控制器编号 + uint16_t number; + // 寄存器物理基地址起始地址 + uint32_t regStartBasePhy; + // 寄存器位宽 + uint32_t regSize; + // 管脚数量 + uint32_t pinCount; + }; + + // PinCntlr是核心层控制器,其中的成员在init函数中会被赋值 + struct PinCntlr { + struct IDeviceIoService service; + struct HdfDeviceObject *device; + struct PinCntlrMethod *method; + struct DListHead node; // 链表节点 + OsalSpinlock spin; // 自旋锁 + uint16_t number; // 管脚控制器编号 + uint16_t pinCount; // 管脚数量 + struct PinDesc *pins; + void *priv; // 私有数据 + }; + + // PinCntlr管脚控制器初始化 + static int32_t Hi35xxPinCntlrInit(struct HdfDeviceObject *device, struct Hi35xxPinCntlr *hi35xx) + { + struct DeviceResourceIface *drsOps = NULL; + int32_t ret; + // 从hcs文件读取管脚控制器相关属性 + drsOps = DeviceResourceGetIfaceInstance(HDF_CONFIG_SOURCE); + if (drsOps == NULL || drsOps->GetUint32 == NULL || drsOps->GetUint16 == NULL) { + HDF_LOGE("%s: invalid drs ops fail!", __func__); + return HDF_FAILURE; + } + ret = drsOps->GetUint16(device->property, "number", &hi35xx->number, 0); + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s: read number failed", __func__); + return ret; + } + + ret = drsOps->GetUint32(device->property, "regStartBasePhy", &hi35xx->regStartBasePhy, 0); + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s: read regStartBasePhy failed", __func__); + return ret; + } + ret = drsOps->GetUint32(device->property, "regSize", &hi35xx->regSize, 0); + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s: read regSize failed", __func__); + return ret; + } + ret = drsOps->GetUint32(device->property, "pinCount", &hi35xx->pinCount, 0); + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s: read pinCount failed", __func__); + return ret; + } + // 将读取的值赋值给管脚控制器的成员,完成管脚控制器初始化 + hi35xx->cntlr.pinCount = hi35xx->pinCount; + hi35xx->cntlr.number = hi35xx->number; + hi35xx->regBase = OsalIoRemap(hi35xx->regStartBasePhy, hi35xx->regSize); // 管脚控制器映射 + if (hi35xx->regBase == NULL) { + HDF_LOGE("%s: remap Pin base failed", __func__); + return HDF_ERR_IO; + } + hi35xx->desc = (struct Hi35xxPinDesc *)OsalMemCalloc(sizeof(struct Hi35xxPinDesc) * hi35xx->pinCount); + hi35xx->cntlr.pins = (struct PinDesc *)OsalMemCalloc(sizeof(struct PinDesc) * hi35xx->pinCount); + return HDF_SUCCESS; + } + ``` -1. 驱动开发首先需要实例化驱动入口,驱动入口必须为HdfDriverEntry(在 hdf\_device\_desc.h 中定义)类型的全局变量,且moduleName要和device\_info.hcs中保持一致。HDF框架会将所有加载的驱动的HdfDriverEntry对象首地址汇总,形成一个类似数组的段地址空间,方便上层调用。 + - PinCntlr成员回调函数结构体PinCntlrMethod的实例化,其他成员在Init函数中初始化。 - 一般在加载驱动时HDF会先调用Bind函数,再调用Init函数加载该驱动。当Init调用异常时,HDF框架会调用Release释放驱动资源并退出。 + ```c + // PinCntlrMethod结构体成员都是回调函数,厂商需要根据表1完成相应的函数功能。 + static struct PinCntlrMethod g_method = { + .SetPinPull = Hi35xxPinSetPull, // 设置推拉方式 + .GetPinPull = Hi35xxPinGetPull, // 获取推拉方式 + .SetPinStrength = Hi35xxPinSetStrength, // 设置推拉强度 + .GetPinStrength = Hi35xxPinGetStrength, // 获取推拉强度 + .SetPinFunc = Hi35xxPinSetFunc, // 设置管脚功能 + .GetPinFunc = Hi35xxPinGetFunc, // 获取管脚功能 + }; + ``` - PIN驱动入口参考 + - Init函数 - ```c - static struct HdfDriverEntry g_hi35xxPinDriverEntry = { - .moduleVersion = 1, - .Bind = Hi35xxPinBind, - .Init = Hi35xxPinInit, - .Release = Hi35xxPinRelease, - .moduleName = "hi35xx_pin_driver",//【必要且与HCS文件中里面的moduleName匹配】 - }; - //调用HDF_INIT将驱动入口注册到HDF框架中 - HDF_INIT(g_hi35xxPinDriverEntry); - ``` + 入参: + HdfDeviceObject这个是整个驱动对外暴露的接口参数,具备HCS配置文件的信息。 -2. 完成驱动入口注册之后,下一步请在device\_info.hcs文件中添加deviceNode信息,并在pin\_config.hcs中配置器件属性。deviceNode信息与驱动入口注册相关,器件属性值与核心层PinCntlr成员的默认值或限制范围有密切关系。 - - >![](../public_sys-resources/icon-note.gif) **说明:** - >如有更多个器件信息,则需要在device\_info文件增加deviceNode信息,以及在pin\_config文件中增加对应的器件属性。 - - - device\_info.hcs 配置参考。 - - ```c - root { - device_info { - platform :: host { - hostName = "platform_host"; - priority = 50; - device_pin :: device { - device0 :: deviceNode { //为每一个Pin控制器配置一个HDF设备节点,存在多个时须添加,否则不用 - policy = 0; //2:用户态可见,1:内核态可见,0:不需要发布服务 - priority = 10; // 驱动启动优先级 - permission = 0644; // 驱动创建设备节点权限 - /*【必要】用于指定驱动名称,需要与期望的驱动Entry中的moduleName一致;*/ - moduleName = "hi35xx_Pin_driver"; - /*【必要】用于配置控制器私有数据,要与Pin_config.hcs中对应控制器保持一致,具体的控制器信息在Pin_config.hcs 中*/ - deviceMatchAttr = "hisilicon_hi35xx_Pin_0"; - } - device1 :: deviceNode { - policy = 0; - priority = 10; - permission = 0644; - moduleName = "hi35xx_Pin_driver"; - deviceMatchAttr = "hisilicon_hi35xx_Pin_1"; - } - ... - } - } - } - } - ``` - - - Pin\_config.hcs 配置参考。 - - ```c - root { - platform { - Pin_config_hi35xx { - template Pin_controller { //【必要】模板配置,继承该模板的节点如果使用模板中的默认值,则节点字段可以缺省 - number = 0; //【必要】controller 编号 - regStartBasePhy = 0; //【必要】寄存器物理基地址起始地址 - regSize = 0; //【必要】寄存器位宽 - PinCount = 0; //【必要】管脚数量 - match_attr = ""; - template Pin_desc { - PinName = ""; //【必要】管脚名称 - init = 0; //【必要】寄存器默认值 - F0 = ""; //【必要】功能0 - F1 = ""; //功能1 - F2 = ""; //功能2 - F3 = ""; //功能3 - F4 = ""; //功能4 - F5 = ""; //功能5 - } - } - controller_0 :: Pin_controller { - number = 0; - regStartBasePhy = 0x10FF0000; - regSize = 0x48; - PinCount = 18; - match_attr = "hisilicon_hi35xx_Pin_0"; - T1 :: Pin_desc { - PinName = "T1"; - init = 0x0600; - F0 = "EMMC_CLK"; - F1 = "SFC_CLK"; - F2 = "SFC_BOOT_MODE"; - } - ... - } - ...//每个Pin控制器对应一个controller节点,如存在多个Pin控制器,请依次添加对应的controller节点。 - } - } - } - ``` - -3. 完成驱动入口注册之后,最后一步就是对核心层PinCntlr对象的初始化,包括厂商自定义结构体(传递参数和数据),实例化PinCntlr成员PinCntlrMethod(让用户可以通过接口来调用驱动底层函数),实现HdfDriverEntry成员函数(Bind,Init,Release)。 - - - 自定义结构体参考。 - - 从驱动的角度看,PinCntlr结构体是参数和数据的载体,HDF框架通过DeviceResourceIface将pin\_config.hcs文件中的数值读入其中。 - - ```c - // PinCntlr是核心层控制器结构体,其中的成员在Init函数中会被赋值 - struct PinCntlr { - struct IDeviceIoService service; - struct HdfDeviceObject *device; - struct PinCntlrMethod *method; - struct DListHead node; - OsalSPinlock sPin; - uint16_t number; - uint16_t PinCount; - struct PinDesc *Pins; - void *priv; - }; - - struct PinDesc { - const char *PinName; //Pin管脚名 - void *priv; - }; - ``` - - - 实例化PinCntlr成员PinCntlrMethod,其他成员在Init函数中初始化。 - - ```c - // Pin_hi35xx.c 中的示例:钩子函数的填充 - static struct PinCntlrMethod g_method = { - .SetPinPull = Hi35xxPinSetPull, - .GetPinPull = Hi35xxPinGetPull, - .SetPinStrength = Hi35xxPinSetStrength, - .GetPinStrength = Hi35xxPinGetStrength, - .SetPinFunc = Hi35xxPinSetFunc, - .GetPinFunc = Hi35xxPinGetFunc, - }; - ``` - - - Init函数参考 - - 入参: - - HdfDeviceObject 是整个驱动对外暴露的接口参数,具备 HCS 配置文件的信息。 - - 返回值: - - HDF\_STATUS相关状态 (下表为部分展示,如需使用其他状态,可见/drivers/framework/include/utils/hdf\_base.h中HDF\_STATUS 定义)。 - - **表 2** HDF\_STATUS相关状态 + 返回值: + HDF\_STATUS相关状态 (下表为部分展示,如需使用其他状态,可见/drivers/framework/include/utils/hdf\_base.h中HDF\_STATUS 定义)。 - - - - - - - - - - - - - - - - - - - - - - - -

状态(值)

-

问题描述

-

HDF_ERR_INVALID_OBJECT

-

控制器对象非法

-

HDF_ERR_MALLOC_FAIL

-

内存分配失败

-

HDF_ERR_INVALID_PARAM

-

参数非法

-

HDF_ERR_IO

-

I/O 错误

-

HDF_SUCCESS

-

初始化成功

-

HDF_FAILURE

-

初始化失败

-
- - 函数说明: - 初始化自定义结构体和PinCntlr成员,并通过调用核心层PinCntlrAdd函数挂载Pin控制器。 - + | **状态(值)** | **问题描述** | + | ---------------------- | -------------- | + | HDF_ERR_INVALID_OBJECT | 控制器对象非法 | + | HDF_ERR_MALLOC_FAIL | 内存分配失败 | + | HDF_ERR_INVALID_PARAM | 参数非法 | + | HDF_ERR_IO | I/O 错误 | + | HDF_SUCCESS | 初始化成功 | + | HDF_FAILURE | 初始化失败 | + + 函数说明: + 初始化自定义结构体对象和PinCntlr成员,并通过调用核心层PinCntlrAdd函数挂载Pin控制器。 + ```c - static int32_t Hi35xxPinInit(struct HdfDeviceObject *device) + static int32_t Hi35xxPinReadFunc(struct Hi35xxPinDesc *desc, const struct DeviceResourceNode *node, struct DeviceResourceIface *drsOps) { - ... - struct Hi35xxPinCntlr *hi35xx = NULL; - ... - ret = Hi35xxPinCntlrInit(device, hi35xx); //读取hcs文件信息 - ... - DEV_RES_NODE_FOR_EACH_CHILD_NODE(device->property, childNode) { - ret = Hi35xxPinParsePinNode(childNode, hi35xx, index); //【必要】实现如下 - ... + int32_t ret; + uint32_t funcNum = 0; + // 从hcs中读取管脚控制器子节点管脚功能名 + ret = drsOps->GetString(node, "F0", &desc->func[funcNum], "NULL"); + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s: read F0 failed", __func__); + return ret; + } + + funcNum++; + ret = drsOps->GetString(node, "F1", &desc->func[funcNum], "NULL"); + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s: read F1 failed", __func__); + return ret; + } + + funcNum++; + ...... + return HDF_SUCCESS; + } + + static int32_t Hi35xxPinParsePinNode(const struct DeviceResourceNode *node, struct Hi35xxPinCntlr *hi35xx, int32_t index) + { + int32_t ret; + struct DeviceResourceIface *drsOps = NULL; + // 从hcs中读取管脚控制器子节点管脚相关属性 + drsOps = DeviceResourceGetIfaceInstance(HDF_CONFIG_SOURCE); + if (drsOps == NULL || drsOps->GetUint32 == NULL || drsOps->GetString == NULL) { + HDF_LOGE("%s: invalid drs ops fail!", __func__); + return HDF_FAILURE; } - - hi35xx->cntlr.method = &g_method; //实例化ops - ret = PinCntlrAdd(&hi35xx->cntlr); //挂载控制器 - ... + ret = drsOps->GetString(node, "pinName", &hi35xx->desc[index].pinName, "NULL"); + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s: read pinName failed", __func__); + return ret; + } + ...... + ret = Hi35xxPinReadFunc(&hi35xx->desc[index], node, drsOps); + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s:Pin read Func failed", __func__); + return ret; + } + hi35xx->cntlr.pins[index].pinName = hi35xx->desc[index].pinName; + hi35xx->cntlr.pins[index].priv = (void *)node; + ...... + return HDF_SUCCESS; } - - static int32_t Hi35xxPinParsePinNode(const struct DeviceResourceNode *node, - struct Hi35xxPinCntlr *hi35xx, - int32_t index) + + static int32_t Hi35xxPinInit(struct HdfDeviceObject *device) { - ... - hi35xx->cntlr.Pins[index].PinName = hi35xx->desc[index].PinName; //实例化PinName - hi35xx->cntlr.Pins[index].priv = (void *)node; //实例化节点 - ... + ...... + struct Hi35xxPinCntlr *hi35xx = NULL; + ...... + ret = Hi35xxPinCntlrInit(device, hi35xx); // 管脚控制器初始化 + ...... + DEV_RES_NODE_FOR_EACH_CHILD_NODE(device->property, childNode) { // 遍历管脚控制器的每个子节点 + ret = Hi35xxPinParsePinNode(childNode, hi35xx, index); // 解析子节点 + ...... + } + + hi35xx->cntlr.method = &g_method; // 实例化method + ret = PinCntlrAdd(&hi35xx->cntlr); // 挂载控制器 + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s: add Pin cntlr: failed", __func__); + ret = HDF_FAILURE; + } + return HDF_SUCCESS; } + ``` - - - Release 函数参考 + - Release 函数 入参: HdfDeviceObject 是整个驱动对外暴露的接口参数,具备 HCS 配置文件的信息。 - + 返回值: - + 无。 - + 函数说明: - + 释放内存和删除控制器,该函数需要在驱动入口结构体中赋值给 Release 接口, 当HDF框架调用Init函数初始化驱动失败时,可以调用 Release 释放驱动资源。 ```c static void Hi35xxPinRelease(struct HdfDeviceObject *device) { - struct PinCntlr *cntlr = NULL; - ... - PinCntlrRemove(cntlr);//【必要】调用核心层函数,释放PinCntlr的设备和服务 - ... + int32_t ret; + uint16_t number; + struct PinCntlr *cntlr = NULL; + struct Hi35xxPinCntlr *hi35xx = NULL; + struct DeviceResourceIface *drsOps = NULL; + + if (device == NULL || device->property == NULL) { + HDF_LOGE("%s: device or property is null", __func__); + return; + } + // 从hcs文件中读取管脚控制器编号 + drsOps = DeviceResourceGetIfaceInstance(HDF_CONFIG_SOURCE); + if (drsOps == NULL || drsOps->GetUint32 == NULL || drsOps->GetString == NULL) { + HDF_LOGE("%s: invalid drs ops", __func__); + return; + } + ret = drsOps->GetUint16(device->property, "number", &number, 0); + if (ret != HDF_SUCCESS) { + HDF_LOGE("%s: read cntlr number failed", __func__); + return; + } + + cntlr = PinCntlrGetByNumber(number); // 通过管脚控制器编号获取管脚控制器 + PinCntlrRemove(cntlr); + hi35xx = (struct Hi35xxPinCntlr *)cntlr; + if (hi35xx != NULL) { + if (hi35xx->regBase != NULL) { + OsalIoUnmap((void *)hi35xx->regBase); + } + OsalMemFree(hi35xx); + } } ``` +4. **驱动调试:** + 【可选】针对新增驱动程序,建议验证驱动基本功能,例如挂载后的信息反馈,数据传输的成功与否等。 \ No newline at end of file diff --git a/zh-cn/device-dev/driver/driver-platform.md b/zh-cn/device-dev/driver/driver-platform.md index 01fc51f6cd..fcd3111df1 100644 --- a/zh-cn/device-dev/driver/driver-platform.md +++ b/zh-cn/device-dev/driver/driver-platform.md @@ -14,6 +14,8 @@ - **[MIPI-DSI](driver-platform-mipidsi-des.md)** +- **[PIN](driver-platform-pin-des.md)** + - **[PWM](driver-platform-pwm-des.md)** - **[RTC](driver-platform-rtc-des.md)** diff --git "a/zh-cn/device-dev/driver/figures/PIN\344\275\277\347\224\250\346\265\201\347\250\213\345\233\276.png" "b/zh-cn/device-dev/driver/figures/PIN\344\275\277\347\224\250\346\265\201\347\250\213\345\233\276.png" new file mode 100644 index 0000000000000000000000000000000000000000..15b8ad952b8a9b89c9e9e04490599aa7be3ee94a GIT binary patch literal 29496 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 literal 0 HcmV?d00001 diff --git "a/zh-cn/device-dev/driver/figures/\346\227\240\346\234\215\345\212\241\346\250\241\345\274\217\347\273\223\346\236\204\345\233\276.png" "b/zh-cn/device-dev/driver/figures/\346\227\240\346\234\215\345\212\241\346\250\241\345\274\217\347\273\223\346\236\204\345\233\276.png" old mode 100755 new mode 100644 index d75a35cfb12f998856d266f1d8ff0d2e5d9cea75..2302826389d670059680ee69814d35c14522ef2c GIT binary patch literal 35169 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 literal 85756 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ν8(`ZiC!1**g88&mF;iL?rj$L{;+0;EK&(#ZH|(Cf;0YYQUCFgp^6^5 z;x>8Eg?=rKw{lH2VZ@6JYArKW-R!7DgVn8~u)5WLsZF~$SdG0w`&pviWynak#UuR* z2YlhPqMz_lx5)?Vi`j}8RVRqY?#ucCF&B@`qRjKadTdtn+hYzT2vDunyY{Cc!XMod zaqd4Ns10?ChZRP~FiqhI#Dc7xwuis0KNA-}8WpF>Xc94L8Q6U(41Iab)Jg>F$cVn3 zU;pY~c0-wtlNxqLd2D*U9@w)zoXOJXziYT93ck15ck0$Oy~(a4uN3R3Q<~fUeiL&| zvWX3&^{9*~4NX+RFfy09;?xeQyZ2RfG=3VVMNjy+C=P?fOt3XRLgx$RA~{ zRiUfzc6v4@BG`4~h=P48_N1=scKhmUOq`iK((*T@(uep|_k@pxmET2a43T6|2@mK$3Fi!fQ1OATq(!dTxrs#O!e*`dY=$EC|Zcz3!po0>Glejt(%h3lchdP zgxBkjjN8gUQ%=rAr^Tbp?{1NZIa!$$j0nl+cAQqAounFaUjHWknr6`AcB5zd6IRbt zaa(WSR#}bjD$xp56(96!jh6Li)w)Z&pSC`Mz1N%pzh1P8J={QR^cFA^ zjY`D<8c{4r+%}e&kK;ub%F9F`_}Qg!1guElkx7U7-(K=DH*^E-wA%@|=ON;kV)#|- z&H8q#W{<5Z8x#>|1T$PN?}sK0rsOyeF$Udk>QIJ)BU-Av?rgOuew#54L-rdiCWZjxjgNw0`L7mP2Q+MyeP zhq=nk3Y^akLS-lmUceU}s+u7~sScNb=8;4dF{Zk+*|t&;gb>y*=$IYu(y?;)3<;q;*^1VD?AX8FbSUo=)#lq_376gP$6^ey zYP%g)ZP&5iK+aa%NjzfXw@=@$ z#kwcYy5cNfXjqPSRFiV|#=pHWl68J@j6_^Rjq9+KgLK!QFp?3e;c@s`&|0U)yQWtM z{Tgp&;Rj`W!YWwL^5!?%mz+Pf-sc983Gn0DYByS`nE}7UgrAblj(^zAKmBOB|0_HA zf1fHNfd;zps5HY@H{EkwNB;5%5K_vEQeArqF$8+n@#f|JvnbX8X$nNv0cIY%H}Db`i{+} zDehl#9p!09us*2L^&nn{xa@b{%36jc4?D2ZcN>Qov%fWO2e}7Z8Q#J>H0Xn>-S>O? zypJq}a!rgaRceyy^eZ#YlOA5PGm2zqD~5hgULG7;ygj&uaTUtE{XG?U1i$ zhM-#1Mhaw7W#8?jensHR49jfg1r3{{HX;yx3Zw!QGROG8IgE6PHWLX43$WoGHk4a( zIzEd0b5jDi`>8GxF2OHe;92`Ow^{7z#_t@!-XiLm%SE}8>w3N!>%`v*`n>4 zb7_l)1R=*-K1w4_zw88Fz-2tF*Jhw}Mrn=&f(u|2akDf~2<^Nvz|1a}EFoFq>Vp2~tbOd}qC&XZ{9caf~cmA{rPPjn-XM-*# zEXb2T?W_>gh>ncV(BttwjwydKH?5W3nY#eHoZG%v%~=U~4eFd_MeuBetb3+&$hgQ)R2{f}WE0(Y_%QpEYT81bqxMN#6hSEZx$U7|7Lctj4rBN>1oPRc)2c`qthpQRcKyO~QAj;C9|Deax7A!eq zF5@;lO4+r`nQ^Vs(5rD%SiW@m_I25^jDyW(xR?ATN!>EF*|nhgc|gYxVe|A`*~9va z3`0q_rSCg&uiAXv*p@zSe@Ib^GpHS*1|$6DMH6&NUbS+lhsG#1e_k|)+GN{v>kxfR z=V3gmKMyrbBX1eoH0gLFY@6;q=*dT1V;mvhdfbDbeZHsZD_q7VXns1;YGxl{#uL|Y zNsc>0Z<*>|3o73fy^lH96VN|LRpL()K-d{!QqqUV3Iw=6$#L(cCU$^^;NkSi6SjqW2(MIQuWUizFrb z^ks6|z(EH55Bmh!Trw}imSeUWzXWBwQYj-}t^G~$B+Z#IDbe`K9*Jkx{owfCu672< zCz6eAsqHMAM#V4@<2DSrf`E>q`3KmYZ6CwgfXfvLZ813$EF*`@1Z0Ided6_J851=_ zX5J_*v_hu8wgx61^B)yRDH}G97}qgyxELs*LS{6bV)zX>aJM2}b#Te#3_eqjcjmP& zP)*iW_QWW}8*s&;425lVek5~h6k)?v&XR$n)uFR@C%o4A>sD}LCr5iBc;A3A4))ay9&!uHmE??R}H2R zO^8A49@^r^C0Vekzt)=DiDF5LFS>hd5i;MV2!FpwsqJKcDc>O@M@`PLt!@Bfu#LA! z`7qWPqlv$MS+g8t_u>%uz+-rYR(apTKqKZL;T(;l{q--}1If+yfnx8zHWrtr!<7`< z(1Z>|zzJt?fDS`3pi4ld-ba9#+<7`*q*_=~Keq~6l&kF~A^cV*>0wvSh{diS`)1N1 zlS&>LkvN<|d`4F%E+$V(bxB}Tn=N&8wm_iXI4)S$r~_`dW83ccqkH==B3t`e{e6?fL}rpOK=wUsPe zrk5V)#(6#&(vFoCh_!;knRMQ=(h?joqV;*aqeX~ktk#u^;gVrn{J8zzJ!W1@-+7L$ z-%9`j_C)lM?;>Ec=^Ujuz4PVx^|rf^o6`b7bfog0eItaFzlFX)(YeoR&5E zcc97RT)qK7a|fkVTV-Xu)@9bK-e)qRp!0M|5GschQxr{fBAtKHvd)-gZD z2Cx~dWBI>4QwY33s_n}>vzwZrXoMzsl4vm`!fC5wkfK}Rp={GZK~A_8^;9Ehqy5`u zpf4_i&O(Bl*7lD?X(1Yt?LlTN(_wY%wS9_6_0!sOmJW`j+!BDt{`akqZk_q?yo25h zw8}MfFB{BQrvkg`rjSeEGGl-Is)G!*MLwoq&lSg&F<7+&6m5mj@8#k5qXZz%=wpqCh?W^n+0eKzuRbj-OF2+`BEEaEy)l7eHGF3Fdu~|5h5*HL_~3iH?D7_1T3#| z-q*@{l5CA@q<7*Tor3a{55$B3owN0SFTDa{i`TB^?{c00q$5VL^Q!F3t8$@g+A`3v zNml_yl9Q%1H2C(XvqIB z?-;InMR@dcFW52L5ai(|JW5UBWnli2c4Bxnw0jRLVRQfL`|vFbM?Lj-hR0^1k~M|0 zIo)GUQAQUf6dH#*=IKgNjZhrdj{i;wZ2}SeLioQ^_fb~$gu8wUrn|3hr!0max}KfL zz-fg9Cv+eUZ|Q8g;cP`Da!vCtddxFuVE?*w3z?fpP^5@mYrOM&B{_Tq({=r?gYLq% z)K!1oDZ5K{Cii^gXw$Jq@82R2V`b7|kKG`z;~w)##6^u?OC4CAAYDjCl6_#9cgwAQ zztNCQhzy9{wz<8nS;6!90suyUsmUSKK+8bpGYnGUhU~(<4hVStt@w)-*sHyyA36Q( z%~68Fa zv*m-~X42A_A*bjtTVEpYJU=ZRlK6+Ed~NEP_mP&5i@*nG|2KN@;xckF*j@zSBS{lq zwSahqhs!G~6acHt5Yis^2-)kQ!AZ)UM=BnC-(z8;Il7>4spS8iSe$57*KzwEFpA)R z8O60_^DXip>hw;Si~2ZvC=SIc!>}N!0Mr_MyODLY}_C%-D@E z8>Z)&{1$ZIT|Y1YjT+Vq`CqxPO~0TcFDn+WODdrrtfz)SsMFIcU|mLG-@W4 z8Hg0y;P4MA&;9xlYI44I04lWDi)|%haQKM=!G{>g<+~BCpXeW=G-w=-Z*0;Hv}3cg z6xoPpYd$@z`=yV({!e7uKK{<)7_UDeEo5PzAa#}307N(+6BX1pE~-tu{QmJW2Ttd3 zDZMHWg_9~a-GFbjh0{i{pm$46msVLgu6$C#mM^y7Lsn@4dA*M7m3mB0&!K9e+cZhG zEhoxyY;D{23VrtR$@mrRlE2dR?T-Os0(BcrNpj&=%m*zeX)vj`3INJk0c8*UM^#z;nQ)3R_)c@S-i**;5g8TJ+?W5<4zHP1uMu03Pa^T=Ri7;HM zbW`Y0Wh1E{V+B&`M>p?*tsN*jH61m+HKBN1Y}Q*{*S&Esa-_8YebJ{z$b__Ox(3#w-!f<9 zQP05ee2|wN70Xi6v0FgsW4trB@ z#t-8S)-UQ^G7pXWZbW|s0#CppAc8b?_#D(R}vihu`A1pwYa(%EnAV*=PA_k@@ioPvKiOOkQmUr)UW z5I=e< z6!+?+Z7$ObM7^UsEc%0k8pQ=8e<$WCUi~EvuGC>uR0H zZdKFmR#NuQ7t@VL8YV>;!7?$*-0El^9kpwCdot^MPlbs-=`W!bFRov95$pUmaYbKuwHQpRw-2&)^8+^c-QzFM9)Tu1-2~#B?Y) z59e-Q$A)q3slHGLP&=`!yqiRhggwzm0Mn2i6%Kw2T->GNEP8HIdHNKQy=m1$DUOw@_rsHao==v zy7U)EZ4)XGZ=m`Dk0lOL%HUNr^0_5|jRe#OELVSOGmB!7jye)_{;$`kN-TpAED?jEHLNn0p2m2t&&?PjHeX&SZ7u28&TLkkfUirFsp z^q{ZV_8g324os~uXP<($F=^_uS{xbM&bL#;DSUJ&{7$L8H~LV3zBgs6D*^Lp$WDd3 zs9Zxni*{<|qER}9|6K(jWSs|8=p`3?>!XV7J(Y&cb;iLs)^f%xwq*U-1c6B~83!;*IK+Gn` ztnx%cWFfP`JhhZne=ISf;S4HOn%nKH_HKE1^`8423zlf+peS##%^3hY1_Q_vup?^Q zb}B$%sr$Am3Oc!tPNQZ&$OB#(2A{vr5=RX11q`h7{3X-O=`iApOZ$dQYIqeLDGRBE zW~#R^xp3x-FFQ=`S#q*r>iY0L$6n%tR+F9w9Wa=n$#6-@X|Vf7k70KAO#-3A@|f(q zs8N_geS~YzR+>l}%lsF6kLFKQo^=QDznH|l>h)buVfZX(bx}+Zg|%vNFr2ikGNjPb z=ZxN;{62UhxnCxJ;ltn?-3Cxi`uygd4mRZHHv+ruBd>L?G;g&i&^@^5{xLjm%Hn{} zk@+N0N0nZ$svT<^P#2!v2U$0VjqAxZ^Q}!;V)9RN?XoBBLkSh`*;Y%=Pk!#KUW+E= zw7D|M7mVw*N{^!GNfKq3Uy+VQ?IMyL- zxf~O%DHGj;d;X&@(#hgC-2|zN{O12$WgQ#7s3y6iFahklMRo7=2eIG-um zPrW{+lu7cNxG43G^W<-{nIa`$CiTwH2dyLQSn+;WBn*Ny$#>BbEoPA(ypI98d0+U?39RAnZvjcJ0w4#sc&bm$0!7WK zllAW!-fz!NiY^>&8kju$BQ5pE3)AEWYU-s`>M;(*Zh_~PyH64tkEe7wyDpMCfq^Vg zAk)W`{`C z40bSi1|lrRJ9AKb2~89CL%r1O2kHd?8Zf2?)|Bpl?cQ62q5fVNAt660o)hf<+lZuV z;S<}>&CQnrIF5KN+2?QQPX&uH*+%o%#?op4HFEDBX}+6WBke2CHghk~I)Ig+fmH`N#m zF7qMu=X$$uW(wrp2vTssFcBG`bhT^$Gd<;omc{`iR%&4!zzhqH70?-plksVyH3n!c zk}f{wJW~^YTJJ0ELxQ&5wl{Uv(Jy{~y;o2AJfrE=NcO8kbG}-St}on6e-&EaS^Rb^7D!AF92J1}vfzSkfox(C$;AKK}lb z1W#A|G&}0sHf{JWBK#+{+pF#`Nxzbrp-#-ckF7{gIK36{b|!rkwWN2kZJ))AXW zVhWQJl=e7U36#zzv0oy9e1X8GDs$SP<%eKIz#a0_?hGth4YD@;f>=AQ6=Abq;!1e} zvfql>D$1pp4`}0sZOQH_Vuhi`FNea+e0F|n0|09Yw1?<1hfcajVpIOhX&o9Z$3G`K zmcvs~8a-j$%-q-P2v9)O!LTAR$tYMDBkp{3Bi9ku7z8MBI{t5#0=-u#@Vf?o)D{~9 z-ih4RmU^yBH8uI_&SpiznTQe9*nr(%6F$-7T^;)S*-;8YGz= zhpn*e<%rjMTAF%^XyTb!_`nDmCCy|$zSaBI>I#*b>Le~JPZFMw2|0qz&+XnWqEuh0 zUQ?HRlYCiW4`qD#!O?Yfe`TNMJt!cDeh>>ql;37?rec(eqnvURa5(>Upwr-*Xu$6! zS)(|7_Lv5JpUI! zgzZpUf<&tjww!WOApU905fb!o3&=%;Hl4+(%rzBr;5YOYT0 z>fjxbMG{M3%=eR=%zpMW*}QoLDna(K~m#Ioky z5tM`aQo;ERjw;?@?36l())+pEo(}DS^BNUO)vkoh4-FNOFMA^f>=QgR$LK_Ns>T?I zx97WQj)qGI_iHN?$K<4thwJqbyP7T<_O6tXBos#BXeRQfF8`jz zkub1#WsIC>B=>h+uhDwD?j>`VkNOA%q6IileZhNkUjX{g*#AFK_ zlETA^EZ6PPDp!=xH_M)fALYlIkD6Y*P{&FPiTE&-b|k3K&4*z<&RH3FoV0VU_L~M| z(d;smcXNa+SzziLtzDg}ZtPcbuYa~@3^ClR=CuB9U8TkgD9~-DS~C@TmkF$)Y1MN+ zw(%lYt%R3DJ`d?q++?j#i3&KV{=Ob{h^|=QsAaGC=&a)S zAWJ8ytb1G%_|uuQvTs@}LQr!pqW6YTPI@ZT3^4YT79LM?_okkXnDs5+lh-iWb=Ta2 zFOL@6)NDW06iHTlj4`;rwbl>urkaW(VzIYBvC9CKw7X=bmacCC}t{48$IgK1F){l}pnI}7SKS_3T zT_HfP4%gJKjuvs*odX_sWN$a2NzC!UryE7#v%NM>f0E4NbD%=FzfM_d`bu)2DNmcD z#g@%Z8-_KtU>tBupUL5nV^kr(CHuGCiD4=XYoAf5rAmWvJfFIx=WgX!3p*ZaBg%1) zaZ8=cYW>YEh^M^xeuHIdv*?ixG&DQHzt`l5O1A;n&q}yotn^!za@F57sE74}di+of zF2YUVa3sQAo>1##7G?Ld7CNDy@wzPFn;XPt&&m}8-LzG1t6vA|-KP%^Zi<(j&VQqv z$Pb+FY?fh>uV^FL^kJ{3kKoDDXHZgQIn3VeFcXeH_K={_PFMEGqEeFpzt052@m;~Y zUk051Yc#PLl1KFf2YhxQny9nD8#U8M9*bWYXIbCc?oFKG6F#;Alk%x*I2v+4zY8*s zXVB7%J*%%hZb+^2wrdql02AzL4L?>qfm(BhBD>kXn4IesQj5tg^D2>h1+3i8vhqj4 z`f1i-7~K4EmBHb|=>{0vW|T$U_%U4yW!AXj!SQf%jE}$?#{kFSb2LG^CTYuPHG(W| zjxof=aoJauc0FO#`|wBXyK;7b8bl-nz`2|cE%y?O2KFY&9KDp6!1mm`>`#soc`s1O z^e=RkkXCxEqS0fE!#!>AiNqDQ6TuyjPt)Jji$1*~VA{1~z;TWy`jN6B)zS2lME$O^ z8A;U+Gikd)J%4nFK5C@=Hv*5ybfD-V3glH$db6WJNmI+i-Wd{;L&U^a!-gz{Y-)si zx?kAR`uyz@-^k;-J*$r{!#PZY~AP8CthpZ62EavM90PRt_nP%c#$2L4W@I z>`Kn7(KZT@Uuton4!=H`ay#l-d-QElh_=L{*KdAvcT!1$S0Z2Bey$b#pnlqa{eg}8 z(tWFahgrM(p(v&EaXy>VV#Yd_4g3jQU^m|w?C4ce7hft2PLZYqNfXRts6qd-uvg$1 z);p)k9GhkeHhmpA7`#fHiG-pShHpu`lYhsZ7)t~Tl{g-WIWkXCjXLLSTttG^Z`1R+ z-z{hth?ooS(OM9C9Jq^aiG&VIpb7zk)`fWT#o|3Cj;mwtL1t*FojKuz{z;x8o%OZl zn70err}!+UoKMfn`GU%S7ph#O&bLQO7I0~1{(9ia$wP^2pXCwg@6mVPxLrnXeo(53wma0++r0(S?Mio){(smy>$oVpx7$m13L=BRkO~M$ zcaMN{BdrJmL$`Fp7{Gvpbd7Wf(kY5aNDnQbbR*qxHqSZlIlt$;@Be-PXYPCNeXX^= zYn!SIDho=_k;e~#IsZlw+2;l_V)2Exf-Ya2@2eB553RM&e=u-2l3|R1$*ni^6!CQ( zuo(yZ=47N26*~AM-t>~iGi(-tOZv0`i?}Hu;5gd7Z_L=|eJYDD2#W|f^rY=Rn15@$ zL;U!t@3c~erd;%+MwlY!gp*tkyf@Vx^+mD@ zHhpB$oUA*|$E{u%hq1O2G>+q)_|TnGMTZly$XP{pzdir1S4|J?3wkJzoN)tWS`E1cYY_nAywJxkXTC zgNGSu&&0Y!x&&b4a$P5iM<-YWk*l;YBI*Z7i?gHk;?N&(b2K&`e_?FC8MB-1^(?pX zNH5&nqSn#8OxyjljT%)fOZlCtrMJ&@4(qa(HY%jY0}eA7DGU<>FaAVgk_dIMYu;r` z4CJh!u#_=4F=sQ2VC*S=@Xb}>!5>pOTuZuWy3tWYSLYzZA{`-koOt>%HJkE7A& zE$h5Vi(OZZ&9<9!;Dt7BHJ^N1`)Ze2eC~sG*lhZL|8*i4sshW9^REc73 z%7_d1=eFHO6>ZqiY5!c4jg3)@rCg}z9AQxB6bQ(u{>psnO8csLY>xLI>ogT7U)B#a zwxA4Ja8u9l+NtmPYLI3T>WX2XM$DhI>7AP0h@p%@#ws`zI?Ryay~kg;U=c67{{5%w*`$hCrm`O7|IQx_e<5MBTpAS)q=(AqBs^<1qt7qq*vFg4 z!j@5(aS^r^$8&xrFV&;`-@NAozYk^<6f!m`543} z{P4U#stW?!f<7jZFM=mpu-Yg6)g$HvBi6C_);mHfpFpaXhXAc_RQ11CsIh2 z?c^^5HQQ3qi3SV8_i*)I8)NJA!P4Ildj7yomqbftiHPQ3b$*`#f~Q=3ar9Y{HRp@e zSX98~ugd65rH4^IaWRPMem)kw-kgAGPe@Grb@Qxp_GtNOljQ!-k>MJ5iM8>9CWaR| zvC>GJtN=xvXIYtMg2u(Raj_3^jL{L~)Je+sBOZqNV-<28ZBIKF9fXOt+@t0cD9{{K z=0PD0&MKQT{ZOOxlC7sNrK2SU$J3}>%E)OE$~+0hax7tKA1}@@jf@szIXSDK1Qfeb zk+`kTvH~9*m*wkw?M%siv_Mp;!F?s+dDuDoL}$^$`Qa;V84~sT$W$Wp zfJ1Aa`Q0D-KT}4KFW*l2-Ws3wHg6tlb==3^Xr)H>thr1sDWeQG*ysH^)+Hjz<6FT3 z{DsOEKO}P1ZYJlmFy0qIG+N&K3DtDeq8ticw-h)?`aao|;FwH)Wn`cYNn`G>ZU2_Z zk%H3UDEH%3+3ooPP`qOOwK|0$2@By6CK>ic4r1HZ{*Cpbilto=XsjEx+X=;^_B{)l zl1w*_%QClF&UrL`BSQe5a=&TAM?e6CoV>^?1nGz6My7nImcK54g{e4;xs9pd z-P{IJTt`EnI1x=AYFO(G4F-xJHxPZNpqZr!G~ zV{n7U)C_o#OSSc{4l9C+t3wujHY=5uTFDZWgzJ`T z2E}32^?BRG-`NN2-)1yl-z{xyLyRr8J zr_J0%zvc~<8q5iRg_;P6MESDkZP({ABw>N*`XaeUA>akoa9jNOks}dtPr-NzKp6Vw zOj3j1Qre`kn=)Q1>%#C{d3?Lfn|`a^ozI*|=$}sYlpJk~)?SQ<@(mP@W4v z`Re7q(o+Po+31{&Bi{LoC$s`^gkpmnl^lv`orFSnSrXA1b|KeTT=79Zbq$eoStHgS zbhXduvzmjq^e2ij-p#tV>q1Odzw5(3duQY5TOs3(8bgbrRJbxuHRf6_BJ`{>^iUG9 ze1?MY`COf@SUqcF7=QhhPBDA5INx)Id>4-cQCMrisgHCp`fPhZoqHPyPLMKe2>94V z`YB>2vwS_T2AMCE*E$*m3t052&Z7_XQ4N-<&Wm$>vcC2uNzqG23#mD83qS{lbJUUJ zNVOqX(Z<^fS%vU>G4AcZiU_{AGJU7QB;hC&)l|LH|1OArt?1m#c?jYuLTOtci6HN& z!9a+^QhB5qm#YK(gzaGr5MAi}aC*!!?{bS-$Q|pqaUgv%?DA1JpWZ{Yi%oh5oN|Hf zcPkYCumKb!r6G;ng)Hs10MUA^O)9YsO>~b~ zA1*t(%{z2>S`y2iYyw)juE~FfUET8_3y+_$2xa^9({b196L##^A&_UvN*U75Ir*Zw zckUih$io-1fkE@|`6cXkD zA9Zl{p^EYxGY%1;u#baI+n6eeW%%~a=WVsN!U?s_#l-{}IuD?yiRLm7?VY~SphD&w zpI?(@;zw)tsoVWmA|`%JZi^WfP5kRmJV-U)ghVZ!1w2Qv<1w&2Q8_L98W`NaW4mb7 zG}W?6R>u_xX*dflm;9f)gdV1dzW7?xNdu2s>dw$zQ9^4(>{&1Ucr#~D$cRlj7BXc^ zvN0Y%#+_`^~08y(|y2FQE*ukRT@={j=P|Yrg_d_mv}5^gT+RQI*+0CfUJT2_BAUQ=R6xV=>P zXy!ibcMdJq`aq7YR6j+B@wc-YP+>tXUuZ4tIlQ{@LGU?PM}%efmP01|r(ZFmHU5e- z*Mh+kl`kdiJf+1R!ENt|qj&WN7emi%M=oe1eO zttBdK14~O%OzL6cqAbKy*kv28s;jX;?thiBI$Z-ms~&QZ|OiD#_cJIB665 zVb?s>BzkXw#P>*IT%0L-Ot%ftwJ@d_CK%RLNoiArgMC{x;7{%wVcl0BSw#cW-{1KE z?{<-JmGZ@4Yo=w52&E#2Z+ySh9^^m%j|Zx8G~#aErs#|07jeR_4P|)Ub>EVrxrEqA zaC#{yJXk`69rx~1JCW?d z$Uzb3h=d~PkXA@TBqyT!tnfG9R0yRT{)V)tLzW6RTFid9KJ!jk6r#O0&bZ$0l8~A~ zAU|eA-0U?*Na%yc_wDC;C|TJC2MW%|pXLg2BAKrcKjm3XQ!3ifx%>1}H3=!5XB1-L z_|hJqI*v?gY)kuak+o4>EM4*_F8M+d#wiPH>i)?o{kM8C*%N_k2S$nPqSr#jhC^F3 z2=HjA9>Nnn=Uf6`YNTby=^+f>OkWdCMOSq)>K~rv^wTge4$j<`$Fp=Sb|s+*IqKo! zE%KL#L9iK6{XiEjwxn303B~{M8}wX|5mUSrOm#i3 z(FuQEMhkjUj*kQd*s6utN;VHbC!v>6=KwJpFTFGdK?f}pU4LzNlH5LjdZ3!douotA zCfic5W_#;9Mez`g9oHC*)y$X2BnypD`3jXKm9w2`XX?Q-8$`dr%J+s2q0Q+gdoaOq z+VW$rwX&gk%!I{0UdPn)RgRwoVi?Rxfb#(k*hc?f1{M_{>Bc=qJLf3SKra%|9?Tf0 zkHo&^h8ce=POI>-moWN+m!LANOo!Kevd`G(gW5`1rON8G0`EcA*Z6*uJ` zQZY&+76GFZ^AE1SWW_-dG71)O@Q;5^$Pc3uj1Z4JuEXzkR7#(AEHqvt z?tSx7vZ6v!_ZM*tLbtV^GJYi&be@uBy9=Y!v2?%tBXm3CgHvma=km`Kvntwg!g1`N zv|g+(H4kZ_iZX)S=MjzS2HEAh*U~d=-sSgF;Ze$rC8z!& zdQC1zu+Xh+f%*1;Y3rpbpKi=JS0%FT;cA^OrfY-)hg@W+?vrhG~A_e z8m&-DLiJnZ?coSf-RwVepO6X=YTP1x3Y^LPw$)D%!hV8$CLR2${&c5MUuV(S)n5d! z!(N1_9n1s)4S7H{Ah(Z}=W%8$lX3;D8iEb6qDZ~}wCpyk0TxMy!uip5zU9xwGR)JZ z2%5~~^PM&eU1B2Y3+R;)ieJ9?EFU&+{M#8{sY}R1EyCro6>SXNc&E2H;%jS5W3gIz zsRAo=stPoeD9-(A{LaYWJh-3pqT{6Yr{Ugr8n%xIhFNx28KaV|(13%#AsJ`Vj|o2ucOeLyNSiBMNTJ@^ zhTuJhO9z#k5|8X}1!X!VF2o7n#h1YVzcE48ZV54uF2(xiT;)UjIWhDNMV6$ z+q7mkEfVoc7F4miZjbOp{m%5;u6!lMgnWqT*qtG5WRqvj84Pp_M$2J%>t>$zVu7K> z2dWC?BM*t75{2=~EuV%8K1Smyyy1jJHaMBhPB7@~K}QAyDB?7cD#`;e0qo!e7|b-s zZz(w|`AwEnC_W3?Rw0$M0}mp6veQO@4T1a0t=HI%Zbnwyjw!Q@Iw@uUxsVl<3rvyy zD<{k(-t%zVxizx-X;8>(_pt301ThRo3!#LHJIrntL3Sff`+O?zeG#URiqzBDyq!CL z=VwMfbDwu$@ch-wIzz!HvLTmd(_?RECTL2z_<-)};;%%yo$!Xb$1dzm7H1$Y#Y)VE z$Ir0SxX54Gfm<-SsL5n=U+vkSS%%g{H=p|yanTpPa|7)bn;aTgpExZNHCpnQBQ}M z8H=hRQf@Axo@bV9gZ^?9*K>hosI>%O73qd4dK;9f$%-AloyNsr0`>i zjv%oEJC)i%9lLZn3|nCzQ&1!Lm;8NQ{Fct>bvOzC=508diGGCQwo~a!yrR}~$V7u< znHo^5muQAfhO97$o|=i*BuYt$z)=tYxo?wS;t!$oOq9TxrAb9wx0;Q8@Tx8=4nqCf zR-{=58AGUz*X}j>Dl4}u=x@%k74?#EMfYq`*C`_Skjk z_3_`0)xyk|Rk(c%Rv^a@i_B`|KsXd%Y{YU>0K4b;IdCmv|5%^`b2nI6)kZoGm#Qnx zQOwNW$#rtU8(gB?5SI`v%cTX)@_O)i=#_3N^o%ItMBBpQ>%?<{a6;L|;WGScdB%Wj zGbxIe1S+k(UbT_~nH_fU8`b%{xIHey(~Un{=H%yltxd2qz>MUcN?#u68h<8MC;T}+ z`07?oEA%6DY!HLWOfPQsBW9g)Wan$<@ zzof2CUKkgU3_Vrmj?9*54vJC?mb1)Bu9ZpWwPPqxU09~uM8^ADXr3V_oc!Qbke!foj>nC=ogv|ij_I~;D7eSH8BF%L5OEz zU;LL6lZB}7?3m1rYqOB<*a*DY_WJwE(h2}N9#e}6Ae`#PI?TlrJ91FOqt8;xN-jZ!*o6Ze-IW4UK!(tm@u{cge@S=ZYguh9k` zxEV4w#dpS)dj4XO{oP(dpa6&mUGIS$>9fC_RGu-le)WOk2{@`p>J2pe zxY=)&yUhiZLB+|6;tHwpiYzrmya9-Ezg%5 zo6Fz29UV{@RXSwmQ!U2cq*fj)B(AvQ3yH7?@Q$u+!&|+zBYo(8Filxkln7J4NPF;@y|P;8F;Q zRPGAsT=`wXD?MU=Y?d-S<>_&NXonCW&^GvUV`Zu9hjLbo%uCSG(lMF`&6#(_sIA}U z13)*Z$t1MjZ$d2?=|TMOT|+d_3#Nwr^iiG!d{~bYJKV*&#vMSRCaMMjC)zwezd2`3yE}K@H^G@r@CBP9E5$H<*%%pgaMq_F z*z15;x>@P#z&%5)kuswZT;ppZ5}KcD?8^4dpfEH+7R8?_6>yNhIsN&ueS#5zAjtex zIUQPp$U?K%EvZ0{iXH}2%@T1>_BxiqM(?fcc*;J^Pg3}wzeY%3WXTGYV~A@q;7=9r z-$IkvPd64V4y4`x2J9vGu7%Y?t(kF#8FAZ7DN`BLmt5Cd*eto%(CFzp#~jKD2j6Ek z{j$LisulhS-_S-Z$MtNYZw5}oQHK9MZ?RAt|ZMltYoGo>> z%Cgr#?OYr#t9_J);fkAbYuAe<mofa+|wrvvPqJg`If>!CLd9-~82L4{;hX{8ZTFJo8N9rFP$50`J`pq<8@6zj^ zi#|Nu9x|dM&3@0tjI$f4I3tE$J^!flcqaDozKsgdq8iQJud&**D)}tEJG*{okiID0 zjMu+^ny#tr3$lX$!PgBFf<}%MuR-pzF)?ce1h+cAU>A~q&Y!I$X#fN~UqW>VDG9!> zX-^k9ZLLH2yab?idn>(p+NLiQNh(c6>hDtIhLXh3ujb5fMvs*lFfE%Og0;282fSES?2z0wG?x$ z=b`c^R~rX-8TXhv$Z4bYJp`cjpJaGjPeMygg?WeM&keG#jDUcJLKiUJzom`^b(FrW zKk=*x;kO7XS|Og{>hp|97lmp{Ue$Z;!1iys&uJyJeMvhNvL$!as|D_lMI1luxXXM+ZiW~z2GKZ_ zZ%q&9w2N7>{-wVCl-RY?I||!73^l4N>KZBabKJr-SrPb8V*f?hDH}iE@rfm#T8no| zqj&qG^3GIsiAn>;%amBE(3Av8d?5rx=?pH^v5=FVVSfaDbTYBXH^*3{9F{LUe5mUC z>v7Je<%Uvuyz6=Ai=dU-8l6giG4&`|Dx0|Y8Lv$!X*$w>^{1GvEN`^Neij~ux#tEN z`Q)}Dp^oAZJs$_U#6-b9BuBaVTKqDk)NZ6WB;!uYx3rha9iqrX?wDxlm ztRY=dUeR)sb~TQ7o|n9YoEMv})C#vdNyjykms_Lh1oR;266$dyfrn4?)fw_EN!)rQ zBX6|t-N3GIAb-O)@dM?;zW9k42vtC9wDLDzDhu}YDlvShB^S{Ji)G;nCEj?vqI1t3 zJs17ps|NiTekX`6tp(<_V=^DzSg|Ui=`?emVg2;eg~}1+oi?|2vbgCCR8CS}B$?@6 zHn?opD}JhRnuNheFU+oY=q_oLNzFcW7fRhU25@V8NfS}TGyDrmM^@izoZ}YTj=KSl z++t_kkgE6u56Qoa6cZ)i`O^CF;A+y0&rR?vU;<4$uTLMslzsorst#io1_|@v4#l{@c^>ENa((%JZ|T;*P6wLZ7b-sM+BFH4DNGcQ&dnVwl5Gj{jaxxj%sx z0D3S=FEcfns()X`01W`iZRPUWV%%+c_)KMP-Y#f`$BY^P z^+A(4V6nbTKxX6IAw*dSwqMIKEpWp3NdBa0UyxiMw&L_o`(+>WR10?dqw^{y;^om_BRnx_redD^E`{$t}^ywS-0 zE>LIBs(^bK_gCPDN8>aFN8E}gJ9+O5Mbf1C?}WV|@X`aat(47P!Uu(KY)px+9a(Ac zt4k`K7S3M}z`{}Yha+TJyfZIpBz@^6oIEzL3P!=DXz~9Pe-yo*SxQu(Fu#0GPJ+#2 zTFHQBPX^)Ko_BT&*66<>Ne5s%lD^*5_1SK)xmnG75znz6u3+i1$Bea0bd8tMl#m<}(uA z9}y!2M?njX)|`K0=qGQ>Y<0C~a8Bo|K{A5v-v8+NHK}U_0_s(sBb;KM4sD8GPRn;R zLc5y4O3-t}ZO_Vik+3Am(O277V!f6-iSe38a0H*CrXJu5{{%sSHPq+~3&~87|z@i(UI8n}nZ5;XLKTA~|T zL+AZXR7PSUj=jXJ>TjVL&vY4HP4~wa=LYctN?tw}yFV6z&H3aGZ_7b0&o!`_)}GPp z5b|4s$mX6>&0GSR%qz{zfMq+5zb~aPn?P{SYN_gUxXxRI+T$k8@|`9aJz42lwmH|N ze@!p>sm{vxkB@4|(Ty-)nHyn+{wudTf_u2b#@KuvBYC_j5Puo%u)7F^+Sz~=ZVvsu z7pFz@WSlggVxQW;yYAf!`cAln0#Z6SEK>IR=%gA81ty0ww(^1$Y_-2sk!+@1YNmLt zX2ifsRuHFARWo}Ee+x9l!cX5kV9DAC=pxO>+tb6Z%pdjV!0E?X{5;K2MB%sagLq^>e_)$_3FT_OJ5}3fzX*c02_o-~1yI8Mj{WzX zS8XP+N0>&;efi!8ZnM9mXzFEOsi^Pxa|D0WFnWB4iFFHL=nuhC zAC3*K!2s(AC^G1oB99d`Uy5J)u{G~vMCS0G2;2De{NtrMiv>70TNKFd!pqn#LYCVy zt^yiM(D2D-?a(zu{^@$}07~(Yb9ZEUAcd1Fx$ph{^L9?k8^sQ@QziQ*cMQqF?S84D zfHvJW71JB@+?kTj^m0sn5-n5QMU$1B@G!;V{f%dS6XUc3A&nx+*JCA0_q*d3NV>Cl zV~HVyy>6Ka`Fj;IPi7?>4t^Q8Wa>eKEO{~#;rd*?Z&S=c7=K?SV`|j;WbmpAeu|kQ z;#aH)3$RV!0bHZ<$C*Eu62p2_sl8ruGGr+NZN<4{6z&H5AE`t^1skJSz3O+@@qWjf zy5FQuk_}rlYpw)E${kN87z@vCrn#M(42`cI%Zgf~ms3Hg@5RI)$kOUN0lbJ5DWHJ<1h-N&WqD$?5CDT{@Nwk>$@Ip1lvw zE{1=+$0mYGPIU;o_|ipCJT`r)MnFxbJq2~K9H5dI)qFHn!taG9pHYfs(HUTaX9@wk zBh<@r_{{C;)#h5>9vGG(kE5vUU}bVYaX5#0d+y{hw{`L-ZwhC|TAKRvF#jVF{pZ7o z8B)9YG+ow&#`1lM`OODLD~!rQmzhZgx{%6^);~An*zYqOE|haDGm4P^J1&`Qy^%kv z)8?dp3KEh8V4g#BKrhvYnz*0s`Y;71`SZz13IjSE>Chcd9)1+U2(v6Bft+QXx5?Gec zJ@*g@iG0!YiU~$14dq||+OUw+cMIyFwRzQjpCOra%LHD=bM5m5c+=qNeWPd)aO`Ne zCAcO-c0|3O6Y@Q9;WE6Cvx{lpKkfIg-xDs)6PgdB0;GIx>%uc7QS+oLbkX^@wAfc1Mjbi0uY|=%DJ2t(ivVqI}Hu^cD_6j*W&i2K1sQ# z!`DBS;5>9-0N_9R4%b@SCN~(5pe1E4u{`bm3o|FbaK)5A_hRUz^a@@CX^W89rJbZ_ zO8Y!&m&Oi#8$?vi`PMAeIEKo-WQQAc*#N}$=?%6>aB~YE5{-?8-s=3kHqoLX=F!d` z)MwWL=q@!lG~~XBeZYf)$P4F8NWv2X&YtXIZ^&|U!3v@o zCDeG*rI@ZL2~lhz%S18Pbv=o!0JW%IZE>#j>`KYQ^X~3?j)n5<%{Qhg(I|rt=a{KR z4@*$oLos88;tI7idO8)5kmT~1&XL~=#pQQf&6cim-Qv%Pv=vR?NEzw;LGwB`YfiKP z@5m{ULg8GsBuRZ9-mQPFZY*eDIC6A%`rB2?{`Fc*?w-w7@plN*1WMaXs(_pWaqzX4 zf?}CB2h_2P^4vS07*hD?n6|95A6x8uQD!VSw*QA$<=X(m`<$@z9w3$FVBU$w^dGkg z-O7`&a+HeY_K;e(e|617?|Ss}$#8=%U6Elyq~3K)RrRA;f%;Z*<<@aLZNK;I?-FQr zf6(o;sq+V{i?#^Y*c*)G;~>6#-7r>o_$uoo?3)|87Wo&X7t@bpdlg=0;5_=TM7*2+ z?4HMPzZ~m`WaaJ(_D)nlr_C3OM!7c`1Y*o11@H7ZaMvO>5Z0di zw_r3}PP~X+cLTiH*s4~ST(iZk+1ocX5Rmio=81otsju;}swVxMs_|N1Cay4z3 z!$!!~7A9ZFDkrQg`z7VNF3IY&g7kGMYK+pP?d9vA>C$o$#%sJXpG~7=Ui#k0y?$^n zYy9qJ-uwGkid3YvVO@1-DqF;I=&# z&fdn^Q1~qh<)^q+m{ki=J8k;i^KJAn7p7eN!+z+OMDnXD4 z$a&1Zl1gh%k;xh(R=~ohdKdLKbWrEDb?n=h-x|#8;FV5{=TYuDt9fLCjikN5?@gL^SbZi^o#ywvyJl?A~qJJ9aoqL+<4V1HS82jw=`d2%F{@v2G+aH1C!1XwKA@K6B)VJT2L7K1Mq_#9= z>CnOG@a`kBaz7wT=pUVx%QQeS9aCsS?sVdVav4xm(eclz1A21+LE&7z^8`&7j!9ut z(>QKe6ngq47tA*Z8#qj_KcmmZT(i6VgKYdj0QN!dC_6H7)b}C;yLeYgf6JF(?eA({ zEPf;I{El<4|HrRRi=RSvF-gubw5HbzBv=Q(bnLR|BV==-)D-8pD29t4-&PkY)oLvz zgeh}w4n)?del(rrH_j_IN%nHPQv0+y+iHHiFluNq)=7vIXq^sz5RQIuIl2OwjIaaO zf1xuK!tXS4$Qv+w9`$^Gr2ZDB^tg24`fBGI1@hUc%ZM({hh%>MERmw;pAt&xMmCI7 zA@@sm_H;WfQTCgV(jQ+Bz6fHI8vjd(tH#AN;rO( zUNopwOC#?L>I_h0A300eKlJ#Ntkhm^M_-Xtb02XIZJhnv-?tnj0maE zwDP_omk|NM2sxDg(Po8x0<9HQKGp?eobThefvnc8S2_TY%?+w^8ii&0?-8uceEytH zqP($4rW<{9~49!U5b?%+E#@Q(og$K9u*E^9vR@M&xAP;98=I(PeBB+l0hG&bSV#bI|LLBIp;z1p$ z)>^GwPj%R6hsBsoT(|y;=hj2pI4`seKCazp+&UD@|Xf}>Wkk2+#eW| zHE4@BzS)a9brs?s+S_42tJu!)y!qZsRtznY;un;T*3WUq@i+>}y?~)Kc&q`O<+bxJ z@1~~=^tN&F@7#S^LLvoUDjUF_SxS)mEekaOp)wl!X@`++LxF{4^Y~0ib?MT3Zpc2O zT5ppsrrVTsDELO}o7)M)yV$t|_YdHn;!@z|H2QbnOZ3YBiS2HqIb@n=%&z&NuQ=^@l}GMr1{1U*MB<`RLiOm2`ZCx;UaFK4LA*|KPh&BaP0oG zL5n5>&kRz#`8HB6a=tM6BjrN{2<vFTLev!6n&8TYGiWaQ5id5X zrn_0MPVVADv`O_dJ4yAc(|*T|Lm?D>uE2e4;$i$gYyXgN z*>K{H;A^k=Vc4xI{I8_)rAF`1AUW>$v8N6=78YBM=NCz9U;A1kC6SEaBlt)RlnA2M z^DxJ@150-5XmYAm^y>p%{JUKY__q<=K6L^+CBa+n~#pi!_wt$2&;+GZ}U0 z5&)95`0!2z{W@V%c*-IX%5t|ct^>Blo6@MxRu$w(1m@hA06ZRmkVPRZ&-0XsRX&;B zhAHI)%fN%=ewCS5LgP+(*2N}keGHSoDaS&HKlc)BbvRt z+RqK9+r{{n?m%RJUqI)#TLB~ACF7q|8biQ=LZH7%PLOukTPzsM<>oHW+@RDrM6DH7 z&VMe}QWecwrkq{xu3(J|j1Uc!JbRnvgwdE{EOcD2KiGvD5RUSgSe+Mri}V0jyZ(Ez z1&J+zG4>!MVz@J&2Pe!*V-8q|!5A`cKBWcK!DpY|Kxc=!)x9|b&HqS#(Hlwj2hrDF z;Ao3@71q)2f%+xa3H78LGE=q)e`eI+km>)oy@}sn`Ff*~02J3KpeYH*SANEsEs?VR zj^VZ!oX4jyBew^9uUZq`nQksj8ysQk4kZ74sJuRr>DS%QClRb6%iXB6;Iez}hk(rW zr(9u@R4w~Y@SQF$%yZfg+6{SI+{V&&v=zSD=HaO1(N@eZ4hJI7m7mt&Ug_Fcy(cI^ z<}w#W=II~)%I{%|G{b64qPrrC_u)TMqA@N)eooc;)F>WHo&OwZq&MBUtrUiG|1q`) zZVOjU!(;U#{ypc9-L*`mf4o6t}?FX6> z7aj(Ia=WHl?t{BfFF%is>}YDjz>`eLi$Mirfo=5{mxydZIkTFAOn;rFaxs#%!I$eU zZgN=frEDB;5=XdO9=)e`rEgQjX9C$c=|&>M{6{Sll6yl{Z{^)hU0~MCu+i@5Cbw`4 zMc?}O>wc1?Gx1=S?;gSFaoZIexGp4X%%>`q4BCUY_D(tMU@iuv5|fa35P}MzcBIO2 z1Wqeu`RPt$o7>tuptGostZTin@A!l2(O0qR9VXaYQ;Ht=rBO$I8r0tdavT>{VdEh zOa)E}Ja<7J!2ft_eD9}#X76fTSats0jzRE6F*^1SwmHXc95H53Vy&0tyrgHo&C~?# zY~|85-l#Hi>_q`b?@T%b9a^|PQc}`Ez@kGjJ`SII-y>A9nY>&Ed+INF>ltolNT{}7)C_E|P5yZrsA z|E&yyfe2iC@w96%wGe}n&YeaL*gd&aFb0+iWql&f&4Q-3o;0IW1W`57V8)Nowxqx3 zY?z&sM8kRq9wTSj5FH@L5|S!ZT>KRF#~0S(b5DC5<4LIXARFa54it~cf}C%>QC~ND zUOw&|2z$Mi-~1>Yra2>S{~&BQI5NSpdUkD2uq^Vr(M4tCdN3Pxb0ewFn;mWzwIQG!X>AKRmQX>I-LgpikAsa-l z?+wzjUE0l=P@06J>6&Diky!VE!I{PVm>Y>Vz``7C3u_)Yf?R;1eJ$n*wJk`J zzyBIR1X-!AR!ofQX_dSnBoafBP#x{e6rYC-U`Ue{j^eI?`jMX-VZQbx>!X54D`rwW%`2Z`MORK_ zW{*L@MP)>tkN%m_vl>t}u>3CWQi$Vt0K z2iP(}{d&|SA805{Hw<{=XflH|SW^CqFVjiw1%1WjuzlKgDxw@C8>SrW@Ki7;a;)7~ zAV}H{ogJgXj!&qJ05JvljF3k_hjeN@&a+8X3MS+GBsJ56?L(%#tJ6&-V<_L9nY!v; zX6CY=f=cf6UsSR~47k&juP%HR4Z%t#_)XBAR+*-Y3#}J62-9O=j$a=;RR9+=ORtT6 zY)O}Pg|>U$>K7UtuXeqJ;iQU@xDk2wK!^M3_Rkn3ME%YX+1qp|I1spn;H2}_&J|8m z5!Jveo_g@roA!1o(O2TbgG|38+LqQrTHGQKMNpQ-ms4h(TXJFWr5&f9k%}T)D;W97 zjtTD8E2KH@9iY}H9y`e^&R@yxzZ;$_rfG>ug03)87|_iy9<9;H*lDD|srUUZA29Ie zGTi?4K%!9-*^lt;ysIDK>~w%7K&r@GWyg88Ry_B?e`FC7x%L!qSV1-M0yZL2DTOXp zNT8jq6U{;-eY=w1JS*S#67v&N%xCzd>b{V&YKv0Zbow8bZSF_HUEF3O64pxuO-sLp zk6J|Oi zo+0F0RT9zgh=++otgt$;m`5*gAnT&)_hjUgcrPv5Pw2p)8b8(Oqc2JB@l-@S$jf$G z{>H7h#y{j(TMD*)8Yd@1^(N=I4Pz)~V0#VflW{XEvjIIL0hICSyM#IFVlu zmaA@AZk|_JR~O2_Oa4qSHTXaNAeL1jD^Q@&nQ*ynPc2ODv+73h+MEAXmP*?VIt&gf zTxBN0LtVTm-TqYR_KB>AH{ysD8X@Pl*~Rc$@aVXHmv{IQsq^MR&9<2Y>nhBSZSWH> z((wkvUG9Ux1NfBrL7Ki&W6xCSQu<&oRwHw@)aQ|HnrlC) zJ)DV^7N#BMTcd|!R;QsPUcuRkV2@t!1`|}#P6~DJvRxx{4Bc0+zrp6lG^BC*8{-|G zqAk=RxJ)<=A4Hs;+ORI*blxXmO@T2C%?eO9(GIjda)hXyfMythj^ ze47gmBdK1(Jm){S{Cwpsb@5k0r^1OOF$0pKeW;52+MVM>xGhfEI&Kb@?B1cy5bx$nzvz9@*Rd`V`}(6aHIP zis$-}iGKs+)ZVMeB#lE}B3~lq$X_n|le3ar*4XQh02P@Uk^548y~I?OUeJ9uC+tia zbfM_!d>Ck2bJ(x1N-u-Uy%&weTUBaG6C;oZ0dol>Y*yLio8$0&?GD zUB(^alV# z=~vtp?D-O(kx1WJrYBIm$~nZZZ~O(C_w;f?10L&9GWS8>{pEc#$^t0|^eRCuRw;IB z@12|sDJJPTe}SwXCNv=+ELfS|OyoV1f}`ZzQhNVLs@)TjkHrIzOJyv%@&qsH9&>Kl zUnNHPIxDp( zNzHG67Kk(JpcWn3PNk+aPyWi?Dl*F&y9Hm)Qfa|_rc0{c51wbxWY=gYAw?VlU(}zp z5wcRLvXtcsDd(GAK>QZ0!*Ss$IQi&u)=COxS0ZJ6kOdZvIh&gZ{t%Tdszd&0-hGwV z>3whKi11p&caF=tCZV!>ag_#h`XDs`j(7h$wSy|~VW0P^o!d3N)=h`Ejt#zKLjbV~ z56t;1@#dF;X^sIE90_=2rD({W87Y<@Y%aT1*R=9H6v7=je?V@*H)P{E7~?~Mfm4am z?cTTFCMc^r_B@d43-9%%cl>>Co>LH!DtnC^H&kr>LY>87q_`+NUG&*cI#h;OT&-xf zbL@#{&N3CM7mR501#;_h#n7oPn$n8Jg6~V?SzPdgJJ?yy*zq!j0k!Z`e*ipPn-3)E zw_gVV++NXw>8uw%X(Yf7ucm_AMX-K9gWw)`Op6RAOZ zqwXthl7vSJ=y`F4%$FiZ^qymGi?0+~FPc$`V}CB6_qW;nz&)K24f?iX}--U1)ARF7+*17vF+vUdHXwA8~CzQlTHM{N*K?77HI-%%Q(r)DZpqv1g$l zzI*;J_RjMk&aUhGN{A4GR7CFti5k6kLlC`11T#j7Iv6d9goqY3dM}CI>yV;%hEWGm zqK?r=_Z-gayzb||${+B&c)aA}m^t=dd+oK?UhDVmu)ntV+n33Wie8SnkQ4NPMxgWc z#rE+?*N+^yL8|m|+ilt#VL*SEqzC+cc>9KAT`6)r8kH;-wZkALSNF^V8+@cPZZvB7 zF88o?tB#bGq)+yxScj2zQoxYYF}*U0`ZRDN(7ej4zqv}W$J~4B-_3hodxh}`c^FZD zE&+Z}Z1XH)D=@TF;W_09K}Ns{_t$4Fsa}VQJ=tTGc)d1{WdZewcnLssf`?R(l%>;w z=JsfnLP!tLMZ*I~WfgigDaGB*{@mwlR>(?ha`<3B?e^t2V8RkqZGz4Ac{j?C;- zr!Pe^WdFED8>%fU$FV3C(ma6)IS$*4NV}aTjPZD%vtHA`9V*()Nckgwt>!*8s!Q|c zs1%t@wWgP|Ssmq9khC5$@~>&Q<-l)JEnD z+!vtIXL2cSjMJr+g7(@2Ikrh1*?=;L?^Uu?SRypCx8nt4_IC%9AloPNQ8#7thM%cn zd5_mR1tDi$DWn`E!XBTLG#K=LQ&xB!?(5zqH5T|I&%@0E<}u{De@o)!K)Sdt+0iL5 zl0O>c99UVpojoiG$Oo?1u8gXXQ&B_D=A=|Vz8N2Wjo+Ku@o;INKSBNGqmWfmN4gD- zb%4Bdzhr?7X!8IodL+BBEkuNxiR$S~x<2Z@8^nzt2`c+o;qpgZz2~_739|xu?{UjG z=yiB>S7DJo3J#sEesd)lSm(L`jz+b?ap*eX^-7D4Kgo9CYR#{0#8a*Mu6KV-h961g z$m5TcD(Wz3m6w<;d*_0PH(#sGVVrM#{PTD1*8jTj9w8_ctA6}|pr3v5-NRk`N5s3R zcW5(wqV4e#lkBh1)%sBR0KHd10zelLw<2E^khJ{fSdlzT=e}hbaqRC==7|BxhlJ|nz8gprnLLtu zG+u3>lzOaMiLa#?N0)s23uN?SZ-!KjZq5_+b@3GdmQeVQ8Rp%5oUW_;y=moMhHi>%cneDts6W1V#dgs5cGsEw{u({{Xkg5T0$-#-X#af0Ckb#b80{8>GI5Sb$o|9N%xmF<%}H~;7aY^9{$nYsJW79g0&_=+!mvrq6E~; z0OU8frp&`hK%Tw>cB`{9I2U&H0YGu}Fh$wJ$Eb$0Ys|3gDGJgHuRFs!q322U(^qob zx$F;}%QmI4pZ`G3ueA2HRVKdxpR7)`jdl}3+4|wOk3*vODS&rl8zSHXB*l;vjaM4U z)h5^&FFNy)^yr&v8=m}-#wm8RXwy;*tKrNY@D+4~t>n#0iY^>I(snd3>oLVak$5nl zNU0F>NhPB_dD#A+y*rO?R0Ar&-MlvMX7pfrn#7pHt_gojn%0cy@Xnw#N@eG}ko(L- zQmBlNP5-E%TMR?;!Uy2FI}VBAWNuwIRI-2sN#9lFU&pGDg5XWyo+&1d8tjB>vUO<_ zxdFRi*L7A9WRUz-);(`wNh&OR9D)$G@1LpCP#`5#ni!U?MPfJr1*T;A?hgsg|Dpj!TjwNQWCkeD3X=(VM zR4nz!YWm_fFF<>!@J(H)&e0VoFZB?52R{rGPaRtG8=QCEqi5eXw3bh5Lp z$O8`8t=iQpy>CmMe`%?$73_}G=ufjDEBtvO&&m>jzKUNXK+T1CwM)~os9FaRWPbSY zK}pdBBv#Xo-s=;R+{EP^p-7@`^&cN0W65_I!6mGcjYfPSDA|NrUDfviYMD240~w_2 zH39X&Hv|~|YuxjeI^m8IPGTL;v}qc9`9fHpa&WM*{+;b$^LdtOas}{IXY^hgEb=0) zZn~mMn3uM9bScBbJ*HOU3_INCzr`}_Jl+kDz6o?GU#-0>OqbnNV+))A{Mhq>)|XBR zgs)@Oc^8d9d}z# zJS`3k;|ADJ;+Y#9dSYg!o*Jzf=Sjvbs*sdHNkGH?@3qSYRQ^D(3~KGVpXycL*>!z! ztOD0iSIL5F=N0CKrWwiHKVA<=_(yr+YAynRqSk+|`~UmDwu|`UGyI%6juOvQ z5~Yjeg}a{u=!)DREWr!+j;>KcuSJ?pZXj{Q-gB?F13&oHi~o29@|$lHGq%-MK>Ri@ zHluqZA2j@_VbF>V2Y`|4q|x@#>+ZLvBkW}g0I>;CVx+5u7|qpk`Humd{myh`9B0I_ z1=Fk&(WYTsiY7DS8WsegC2ZUiX-_H-b1kMyRFQazKpCl8_@_a!;8!01@m;8zo-k36 z;<|<`oFVl+++>kc%V*2=UAK$mMbs~W_eyyanPR5s)bX^N+d{1A)tGve(!`M?AbJe6 zoBXRKAlxR`;-x!a5A?*RonH5hEP8zmwU(~F0wXn0g-T5WvhM(0EU()k@sZ4*&+bM? z=D<__u3-4T_9XpowAf;$8A#A-N;tmmsazDLS4(-{Rzf_*<`0;UbK4GA3gC{^kYoHw zu3fC3y~@1#T7&={$$u6*{?9V^?btX71H4B>!6M7>R57e8`$dy^j$H3+;H~Ifhn-{l zv$T`^Cs;)jjifqYSFldlt-tTiW3Ce=i(I*%@b3T$5|z5E22fFeCK6_{sHyft7+dn# ziM5SuCJ!CQw^AJ+ML&5=G__G?9}jfF!~udh97$Kon^$SX znZQf`J7Aj7)|(g24v9dc_@ZQxjk&^>-M`N)%||lPvSRWbH6!7B#@JDh0ioe1Zevhs zJkGW2r^|bQ)FNZv%lB?0tu8Q=Ry*|=KxFO>AZ%_@g=BIWVux?6iddNBaWh5zJ=P8Tr*%xa;&k?Y= z+v|d5sgJH>^n8G3axQ$FqSA54@#9n2PdAyEL;2Ap?!nTI#)v_w3=0x~^Ts1B+6ym@_XQ(^)o_Ym@d%WlUk_~WIFA*&V14n%dB*%>ZVE|g;y}Z}M z?F+tMM^9z#?Xx#gbd>ys40%6(RLl@n-QCRU6~Q76pJeC1wM@gjlyg?a#B+iu;u6CuS9elZqw56UGaQM zh*u(PepLhf0ss-hKk2?YK`%a+$g~r_K}Q{+>qY;R#|+01&B|=Qoa(xjy~%JF!p)83 z8Y;djPnk*cuBH@cOZGb0qwBh@u=Q~Dn@>L->l1(y!RQ=2JDsZM@?L+c6xRLo#g*Uj z0|L7zS8>PwqoF^1Cd{&zh6aGBe`1iI%f0Bg?@2W$ckkxO$Jz-3+QgHAkJ{YmVFZq? zj>n{WfI4;W_&JT3ZKI#wx)5YGKP^~A2@s*5dSq3n-eXY6CHwqL-D^v>7^wpK@~Bah0E6|Gn>T zX>a?ljDf3LOFPtsi{3~xvn@BQM|}Qu-%-#yLovD3O9K&q)rs>U<-uZluXfo^U&qRA zg{}x-EE00<--udIX>pr22TPsz3F&=xi}&WaI4knQ`TKAmv>WYSgb*#K;bx77MLiFt zK8CuYhxZkRT)JNSoT72L9!V~IR=5HHnGqunH9Q7j@NR%y*Rs^t{-1Y?mKS64mSXiX zplr1H=K)ck45T$t_EQIJoTAWYjtR+b4Z_( z$6uC)ralt;48iCIlUY~R`aBX;^zS)C{EZ&9W28cN-<2dHKM z0ns>y>YC}6ln(cE}V^-Hg>7nArH!y1MPq!ThV0q zJrMxwVHMiad-V1g-=WT$#&J-JvzrQROmX_=#ACvxSYQ`xYJ0KALHuf>(vyxIAfqf- z3265A5q&C4xlUcPdF$@do9hhGx{I6zUxIW05pcQHy~URp`SmuZ+0-7g8vqCoz57Fe zdKUl?(0;7+0GBApj=jweq!&%oII|N<(jeXXQ6(n4(|cga9UvP6aUzwbV5Qt1kzU@J zj%=^cpiI%%R6D09U36+}Y6&H9imqz$y_$skZGDmFAtLXoD@pe(+}eBA$P!;62M}(n zufB+KZO>6$8wSuxe5HZgN07UQZ>Yf&gXLYlZu|Qtlg-c!*N1zyZS@}k9L>u~29Ia# ziDi_(TCUMcXAvDny-yn-ucO%m0Z5`KSAg$hx;>}iB`=lzizCwgcq&40*qC^F+H*cM zoiO*=Y?$0H9}YRueYTxzYfujE>AmK$Zu~4b_u51c$^6rC^~v=pmi*J zQtbP?*4b^4t4LuHgYAC713a^`vq!9K<@1T;{5Q6amieGKs->wYvZd3 zy4(d2WG$~~y+wB^^KuhO#`6h4G%?7^N(2U&ZC$?ty$C~wO-*aC;77P(2FC0v2A_Rh zZoT5*@FZcr0GiuMANkBHRO$}eVs&~HJ8BvHH=pHexeR2h02w_uPZmk2mSilEP=+< zR+PLXwcDRY9|HXU8DOP!`pE4onkWQ-1J@)rU163}L&J)?+komu0x}t+tYJ||!@$={ z-!|vONcFO(h=twE0U98DTRObD$DiRNASbx#Ib4bOY@y+2s#m)?TYzN#!Snn?nKk*M z(835HBCu86=Zk-GyFeq2I6~Nh>MJ#p2 zo7KU7hY0~imR8&9@d}NX8F6ukX-(ZrN$%C36{-xKmP%lA@nV%LL$*;Fh|FF*G`rLr3c>UP?NfY`0HVk}VJ$<`ux#AMf9bQThh+4di@j?Ef1jgZ zWUEUsfDHDB{$SPJHRXW+>Hq~KT$az`AMDg~50cyv4s4%dM{UGCC@?e3*j;s31y>s_ z(`3s}vIS96lU&6OuupP?y(s4)JA#JrW9Ao;!Knt^@$6=z$BlikN{<8I8xi4#>h6CQ z?()f5&XT(i3mn z3v|Uz?u8!&a7W4RECGkwrF*Nguj)xFZ^`oHQd8)@QVUV`{d4FaA}omME=V`*{@|hC zHQ?DHGvB<@m88irm|V2?l1_|}`>U}|sgzIkEWMs_1z(Ym3!skq*O8Tm-fxc8!X03l z10Z+J5OV%SlOFE9$cg1`qLliXC%c^OG|c$F1={WW@;3p|udf!)Ha5}=JHG5Af9^I( zYNwj`UwMp%D+j#A@#cdaLA%U_k|iK29#(K%#*eKm~EU51V~Jg0N5b z5d}n1YpKr1VB3!)3g5mG9A{kK2K#bm_l4aPUwi#jdQOo{w>rC82b| z7w6Jj8?zPI@-R>;ol>~9#CjKS`*D*+VgToT{^O)Py}#*gu4l-AUOm`VIx5y~;PYN0 zeM0a5ST7CDsG$VFQzcTB9&s-+n<`d3`JxDraoKz9`0!%FOvbsFvO$MwQG{tk0_Gp7 zLU^@%m(f;u5xq?$|e-jR(PZ$)} z37floMjZ7ZXD@{SQ`47J-VF(p?RM`7xJf5u$$v`Hl=8-j$&~Vx zavUO(VYw*N;klFO`R2plsW27AlxyD2Za@CS^I0=oWrzAvnbR5i_a4@09>qUs@J)#z zVCrBZ&vq0|Dj#G{6BCbTmZYbhtlcXHHIb`yw5f%&s>}qcHat;|%Qf1bZHGU=F86l8 zPiB@M+=#61?&eZ*oia$Zi14JzkdG7rFp3O+kMq4pX6)kb%c#{{P}AGzJczUPqTOxQ zs6ub`n|G#F*I!*`{aPF!%eAEg5h*joP z+Q-jtNikh@xGi55i!WX2xu71s>-u>HNC9cAWm4rVjxUlq6e2EEypH?6+^T7h&JJsQ z7230bDk|$yC|dp_VD`0g8_?b$fX6cI2KpcAvCgza0L<27JKvn$GRI$cUZ>>*vg-0 zTGaG5@M=R^f7nXdH|56eIHJJuJN}Im><0HGJ)5qW>#pS%kt_zI%5PLg1nkO})f}q`DHU37NDyC9356AN1Gp6!{*~M>AobPy&q<=BwEs!QvjR zjx*WuDyQ~}&@0+-2#f1Ch^X8FU;pvgCIzgG z2Z8-OVnDm1c-@{7_&UPb`QVIEyw(iA3MGyEa^6Kqr3St=uOw4`5%b;MFY8c<)U($Yj5UX29QU3=f@iL5@+qE_fiyUIbk)sYAbUn>M8xdADc z+}rl7xtBv!Qy?MuKx!pG3E=~`p1vr*r7BY5{(E=KwC!@JyZq>YUh+1B)hHtig=aG* z(R+&cPll!HVQ>pjV50QrcMWiu-Dr68NYguD@w>PREoUy30?qmwgM1V;Ez`_G6jQcn?v$N#I#z9^9_`sW`r6`sMPu_wzHTu}f3{ z;d6((mrMF0el<>rU?KG$dKcTVS6lnZ>qH>PD@po?H z)lI2|*G;c*CIwoO^U4)xER(?L0|}BUu&X+j2cqQ$F08!gKY6T0^J^ zGy5P^gro*JY&mHw^-e(ccLMiywBV~mGhgsjfo7wNR~Nw9ZJ@NVLE^i0%1I0P5wnC3 z;w4*cO4-E5b8dF5aB3%ePKP%J@UJ1pO4f$lqv~xn3srL-2}n+;$5O`BUPZ{SuDv-_ ziA<$_=p~a5q-6|xm@rfXH`m^T&L|kEcYO_Q&52`zM(2~57&JJDOqToCc|`vt!#`0DkJ@w*v5W?$NrcuZuc9 zDr-JWCcR1yxea>{g$jNTV5zAFg1;$mrq+ryU@pFV05`cU^Y#F(Ff6}1wT9NBJwmsB z9-^Gl+*bge)2-G^V6(dOB~(hW+O#4{cFgX2;jR1D?&{!I)s{H`ND7?RFm*up7eljQ z(OzKnfL_ood{f#_%5ouVk&Bjd-n0eC)`&_xeSKDK=^hAJ2-Lia*R7j|F0dK6+5g9t z&=SIS0I}Zb@@;gHi)F^sb8UH1Ct)I^t~QDUZcP*6 zgFi3!L?cEY)^KWnsWH8e6JKra=KJN9^LE^c}bA>YvJ=1Ch zh;KU{n<&L~071IkV>EPPtRr=ts}h!F_dqGy<=P!Uq?L%0x;S9bPB3td6x00CQ!$-+ zx#}lyOb6tzsU7K<5EWN+>%qVaeX^sRdfD}?<3U&x0Xa1(ckF6-k`T-pU58MOqVXXTdEOz=otWGG_xt>>x?BHolg4?}vg;81Anf>5)%mNp zV34q)DeVX=^FZzUNn7A(NLtm%Yp&;>q#cT+L8SnO9U#9>v-L4n<3ENScbY$pI; z2qXR6)Bhw@pKD77U*XDY*N)Hhdb!`NnWSJ z%6R8%mWLa7tCta%XJ#A6B|WBt0?X(91v6Y~L{*U4ouCWGAz!;9YDirIV@^Nb9cltv zg1c^VNMY%;nw{xbMu@G4V~V7P^$P~z}7^&g&{P9?@)#-uBET*hCVu!Ct`u;yorgmxwj5H zJ?u;Iz?3?&dMokX#5hLyV%O~cqzCZ;uujZcvslp**1n}_zWc6;NKavmuD1RLP6rZO3kBHG({K=X{6!;>DA zH+tjFzA13+?w@>5(r@OK*vaO*jtn#OxMdyjEXIEa9ktcsSv$D7u_`j|zfqGW47Kdu zC>vK~y_Qnz&@=#NSPJ=5G6T(tUY&D}BLV*)0ps;Z(s%JX7%8 zWCkheEOSFX2^q9lROdGji;dm&)Hn7(Nv*N5diIaUllB}npm#$furQOKKI~DLZ$93 zrq3ds#@4W_;>ATzb%fOyFV>JoEp?MmuG}y?rL-?{_Ufan5=Ts_CVM&76P=T2oF*tA*22#HbnH$aOv%9DjO zLhbDJ>z}?_gV%&21W%=#i7)x^A~JEv*b%*YTm#zQSRc2%MwX^cEjQYscxN!|Cg72UthD2hWibQI|k_r82Kj zmgCvmcu}`m4Z6qfd7eqlBgs*~Oxc#$b5|;`R!m}0GWOA!0~Byb>DNH zS}ct({k`Jn#+qhjG~7^e8QTmB&BpeH8iBKy-aqxYFO`V0zZ{-+lUA-N5do;n^1LEJ z&c{PtTxrA4IR(}1(z@jANye7nvFJWQx})52I;NjbB20ss!8SMeU8cgvnJOTK_)+Z%YqSs}VeWLM)$ZQU&)V zaz`Nd*+sH-^o?rd&NK!W3?OC;>hM;9a|ws_44^9kF`FzZ>Gi{*XvP3qQsVV_r7Eka zWbKOq%6dd&L((SCECkvSqxC{xt|wCSuKWmmz;~-Ep|sqU%y23iaFna5@%$1eiO16E zB_7bYwHi|uZ$6)rf z5T}RzI%|gL+``JtyWrvRkOGU3YA6V#C`YCuNBE54kyRB+LR-6mJ4C=kb3zf*jM1CE z36kFwM>9hHM2XtK7qa8bY%mcQNw}QGI)O10P~N%#v{)rd z#IQH5*t$kC>4zDi;k2rvAgAz=>pl;RV^llV(4;kq*8F)d zmcaBe0c}t}w~&TIi5W?&N>s4)rvJ8q6!MO!|LpL>5jx)vB}mpNvrteKx9%7r!9=rw z5%Rc)+(PQ{dtXQ~+sa0OreL%3pJa3bp0Yu(H?rmk$K zAlwcq;ng}!!zNvXDz20fGMv=0F*K>FC~9u~Y=9a;I-Grr5z?;RtIjC={5nZ)9J0%^ zv3jmAi;U|+wVnrbr5dzGob@DlX0)nvAUf;7HHgW;8r+1D*||)TP=f>JDc?xh%FuVX zjIX6{fQ!$d{-BYoE@$!4$SHgbnl-Mp@wwl$_V;|z@GC<50(7Wm`%6RsFZG5M1zx%J zHQ{S4nfNImg6@R}5x;QXB}|r?21juETaHOslynq0X5x|z7(+#tAFnn}H1D@?<3S`= zQc*{sd_SP1aiKTCnZUfCusArqV(V zIF0(xrlwD=gsHX3)>}vHBgO=jWsz8qh7ae|D7WVP96M*2f9o8KC29Zgy#z#=Bg|iz z4HAK9Rek>?Ej9bNKCUL|i;rbks08F)_5v4n?>HEk+ZJIbcM-QfIA|YMbo5|<>KNGU zD9QiLoLBoklk&0t;g-5)Mf@HF^*DYTV3nMIuwI{sZquqB0gJsih%j^%6@`F0*-AdH zz_CH<*FjcMec=Eaf$Ko%T>D4qL2&M;3VEDv^4qQCR~&C4qv&t1?5OuvV{ z*uil9oBtgD_Payh&SI+hk%68$9>Ub*T%z;^7t@y543^Az1v$kyk9je;&lCqgLD0;a z`+By)kLi?`{~SuL(xAg~Tu6SXAwtzog7cZ9<@QBO#_AWQfBb8;4n#uKRsg4kCpR!l z8(lps6o#94A4H5d40!Bkqxeogda6%f>@J70?JiYWtHY;H<&2jTgAua=kPP2TdJplo zoaLjq)7Peb`U;}JeCX2FJ$7RBxgMnBr9E+7aRlYugKLtatJ#Zu z7%Pr}KeEeaj;*IvLU=C*6Y`%{2?c@nj=QSIHWcLu@y?$7W#gob_~gqsfR6%}a40EY zbd>l0vak11K_7O5gFbKpL6Oqc(2#rz`XG0$`lqU#qR-Xv1JjhP06ZsH`N~L5f3s$0 zNikvv5!j`NzZ5-?&+JixQ$jQ_IiyD|i{J+}#Hvz6osDenR=&-Cd3fBpYI z`v287fo+0_TB>6HOO`l6odQ-<*CZt{uK5B|Gp@|2=(>m52K21}1|TU$i}JN|o! zS(2KW#C#=StN+dTi|YUQsuuQl=51zqB@xy&B5sR1TK4GSCz5~quU2c?9&FnpEhfgB+KuJ4-UjutWdHqB6d|9CN@}){BU_uPx2k)!);1+XY}Al*)qi6A>oSl^u$)&hR|X zVVT1V3#610``b%H9#c89Y93qt75>WKi=5MM<8PRyb37pUFJ5O`wS!;HB=(7V(WH=d z6l|Yjo0t>fWZZMF*!&WkH$(s^+E-zkGEAp>4=l-_m;InS^va3COy~EP;O2kVzBX`3 zQxkQbdUU$KfyHc{GL&1}a8AawwT?HOgDPIwj@Sv9P#sCmwI%Hp``4u($}bLcj$4&uwT})MVdpZ6DiegaWbFb^ zkQv2_b(XbV)9HyVQ4v|0*aKaMuudl7xBcneC7`OKMKt*;~d%WKx>zU2CZ%d6BxV^_* zjuPOQrIQrric-XBNHXzsv(t6Sl{2!LgTq;v)oFz-T}q9&&%CW}{eSLS!Fh7E9g-6% zO;S!SxB9eJ{C@5o1_kq3B2Y13e^P*HBWhpURtD!QI#^Ws^cpp-rRYfGn$Mk1F_<^1 z3{}4uIhr<9>4$_Z_N#>ks(DLWIJR+QhHSY!<`ct7<%v2#xlM#uiJ{ufxLDE zAA<#MME!S{#j^5UWp?(fYFB3Aw}-+W{&OF{Gi14ua(rlYoqH}^DeL&9_XzEwrk%>` zv+S?WZor{()Dw>!4m2iMXXmmBrg;62%-TL6)`kx?t?;B4{DF*s1xN1KM%uA|@6Ok^ zBhtRqx*Z0@j=$m-BcnJY*ph#;omZAjhX zJPo*u6lMXjB7G?yu5SfSowc(gbu^LweHM*97OIK5a+^Zl!3T7rJ)oq~6KD74xldb~ zPh9$zXi)CoDa8(iCH>Y~4jx{Qc(@|nktOQ8yMKVP-y@tdG&>)YUU8~J4}fAZvX1)_ ziM{!!55%p*(tHlZy@q~-Ok7-lcoc#Uih^~0xv^ElDCpZv_rvI{ZU|a1J#xNQL5%(o zAZt6IfUTijMtx3sY!i7pO-5Sii}p10ZQX~XXNR8LM$eU^wt4-JfpF{ZFl#aJ)XVC3 zo+UOIZl!B%xg&Ga5S#9CJ&p8!l+Wd8D`CpJ3t}uzrh4ODQ?~PvZ4lEfIODUkR{CME zu)q4VaD32|*P3%@+P03^iRQ3^EH7^+x1Lr~)pwbT1t>hrl)UNm;yPx1!@0b-ta-}0 z1w&C}QrD7FS_l^MoMow_y!aI*3n@tTYBU>%V*L+2IXR*`to)(afTNEo8otwMxQQhD z4Cu5IPE2y4D`%!!_0la&sy8M{7mU3B$aSMo`e1Xj^)Cqb%X;D!^I=4EY<`A%NhOicM=UpPV7Fat zL#ouVG19W=SLD;5${oGU<3e1S{pR(3K!SE`z4@e3`plTU>GvNq^y28oK{Re|P7DgU zZP#b9QhRV_bvS!p`tlw|Vv;pJy%OqD-yK2RyoQ>_xw(qnsFQnj2jrzLY^J{V7|3>45RI*Qrg zW}=`I>rRvUJ$s#@5?b2&Ls|xLF=*h^eICK{({|1%HlYOlk#_d&V5HP%Kt8rV){F}9=b{=39;Hbab!QMNsq4lv#7Tvx5xWJ2pI~XmLlX%U%cM7 z#hXiHjX9hIVuAyT!#h@tj)~>=5}d`KFT9%P*5v9Q5GKD3c{^$y!f1UdwZkUHqb_@k z6dXoHOEtQU#$iSQKZG0v_L0{0^_VXn3+e?ERI2nCf>?#_T$8;LUrZx^^Xg&UT)_2d z;GzKY_7lG=ZOdNECqpAE7{UyviH`*?Q;Nt`8=WrQNX^5TW9|B@%2Ljjwlsg}v^H(! zr&y5a`$?{Uu_@X8B+#%DE#0_wlHyWf6D9lO{Z}(=bMJ-Eh`JX_e5HXqkJOt~uk#_S znclA}i~l=Ux`j`_r`Ke>QNsqNY3{-~xrqPt`SSf4_m$xRPzYkElbSAvX7U!K}^m@nu6mL03ODiQWN3=(fu{AczyB5@q;9gFsu#%vw0 z*66D_O?@ko9DW~YW$qt5dKZU!58L{*obap9~jyXS~K_x*8BPB|pX2%MIbu0pI( zdT1td@hb_ZUR16Vka{uGnE$Aqbo+*%xYU~Vcf=Wy0xFYEjeaJ(v zFJ$(ltfY#xUvrh+sFamu*~`+EUYCa;Lz*Gc=WXHO-Kd;7^TN*Y&rzo>OHKlr5VJ;6xJ zDdP+HR!tq*qq5e$7P{flY$sJQw_?zWGyke%!a^+LEh3BW+RRR{q)An=c z=JWc+Bh|X?kCcBF@EWBQsgFq*(HH{8jvQi@aDGZeM?p@*}CRwt+9@UPP^S>B2u7{v-J>s^*`=lepo#|ULMPuIJ zC?yGKf0{N*I0083#d-yOqx}xE_*Nm^8v*%TOF^i7eKE1~p@P+HrjbT{qdL*?mQ$=t z(`IAJ`6xh2ch?#Ryo9O!W=eiPrdnvQa(vdWQ$;7eV)oo2H~}zfhGYBvxH_4mt_Vt= z4K@PPoDF1ItNTVEBrfKs=^>W0FLfiIn&+*7Z+<2G(PZm**H<8tZwe~tELeMcfxQ!b zCrw-WToo8Zd)dGpObVZDZC#F(#4uh?bVo{Wd5h&eIfa=n zYW~*XBz<<2EC~DUi|;hEKY2J2tJ9?GJovn{a^OH2sm)llU+siAKph@L^_x$Sl7cZ! z2i0%}?=F7Cf(D(q^*6Gt3n%c@xBMgq_f1!?4io$7mAQ*&yONj38L;2V{G-RR_alUn z8{fPS3ULn(U|BW2v&Y*uFx2QR+Q2OYN)y#EFk@S^2`m<`L2S~B)g$pI$^{Jm=FcTB ze||zgAKBdKBEdcxFWd_|#|2*2ky!=EL6@aD+8Z&ji68A{n=9;%PGaOoqsS7Cnq+oa zBe`jtL20Mf^INa&6AZNaTP%HmX2Rx7t)WL>1F1-OClI(&9J{uwK z(j9$CVfS_qrXu8%c6W}R7w0Qga<>b^YemeIFvymJ~h* z7@h>&{UPkHgM3)UYFvt60$Q<}saA|g7+K98*+}JXTeZI>vs+KMyl)==jlFeG^#$bQ z<=Qp}DVX+mHFBWIxacr#9Bz4F30<`mk}hC4zh1T{8S%Vm&w)@(+F-*KvU4(m58A=@ zVgo(&wFf0u%waUL)N2RM!=*W7Ix7~hKhvS}$7Q%OA;RMmUxh3}M@W8d4ja%qi3GOO ziYZ`~um|I(YnR%Cfl-J?W#JuW-AJ@y^h`I}syD zeDsc5iS=Ixnjfl+uupw+UMpy4zEa@O)Lv4ztaClyoN&tCDiBK$hU!YjpaTzW`t#Qc zY1cegq;U<9jFTjSnEWG%DP-v2&QNs%>NBt_FPN_dAq#izJMSlz-fz3Vyh-pDfW7svo{`CAozTFhOWyna%Lse`dD2#*>3!0d2lxZ=ui zOkAa5mR4zO3U`K7w3GkjFJ3GQ1Xcv5d4!#seKW6_^4*8!a2Jvmo|p~KWf3Ij&pJ31 zq^qvsO8#|LC`;^XUxKE9>&!_r!WbZ%(-+sDZxbVG1G&on_{)#;E(IMf-vU|0b?4U< za}1dTFcYActFB;F?yP9vEI&dIK<-!(2TVg*_& z7Ilsi$%0AECtHz=0dsIiQn0}DA`?3~{l3%HshM5bNs67bOPv^hat*Q#UDT#9HN$hf!c_+r!f7972i*{Te@*N~jGz-mj6(BGL? zJSHz7Pg~0o?`7|Y^0k*JL?+wUz}bs|OOBF#ip`O=`3-gE>(%6G@2eiYfoArbZK6<9 z*dRhQ2^-(mY_2l&zVaOf4~4fdTK|QC4jNB6WU^gBhEIaooEG#ok+SSCm>ZZG@bGh` zb1i)J9gzM_O)JY?sv!@Ph!(xqC#SMrZl5loQ(5_e>n&LS?cXs%TEs-cM87Cn_bXFe zT9HH=7M4+(8COl`L+{bW>?~c=NKV`M8Ek3;${`gY z(5@?kd=HRA-XQkaB~ELT-#|np3p*iBhYO#SEarcHMN74+k_r0aU;rJhY;{J|ki9i^ z2LeeUY2kAN?2EWVP&aEw2V)5?3pna_ZaCK#3)8Ttw`k@N z!aU*1Tx;NVfbfY$kN_E)3yCPjGQ`iA{2>P(2VgwP4&uknR|4{%N(3HbbGr8>Hd;4Y zP8uZ@3mAtyRK`1IH*#0=YZg3GCO_+sBYo|CFU%Y(-qZVm|F98U9rtpG50cH7(e@_L zOh|I!z-Tgpm>$2x5Ad0C!dDrR396xJ5H!VKP#6*~!LezLCG1N470VyC#w4)13tRz> z@E4l{F_-fX*!z2d!HHbkt8CXKPV?{O3eXP$yX$SqgK!}<4cmE!?P*R>e*1~%%OC`9 zay;EnbpBE5>>_gVk&euPaGhatcH(8zF7=SGZ58}d-kDx3O?bYNx3n@=N4y{2@9e(O zc>J3S7>b%P8ZJ*kypkLF+i~YlJV;u8P*Rd-o)Cvq?iUoR&%0K8L0Cz7|8 zN2)ccPtvO?7rTSBZ&E&lP5Z;9cd&tVKsF6&8F(r!*5jav4}#`EK!S+cFf%8~%Y}T< z!0uL29qt0#opNnwI=u1oyI-9;UaWl{**6d{2^0A>k)i#G zL|?4!qCjg6S@ZNT*Z1kI#%YIfmwATXMIC7Y-kZiHwZ8A-nw6EQwaeUFBX_wQ%+v;l(wu6mnWB}cIX9UjS}9r* zV%tW|%(P6+AqUJHNJVf$nys8r6ciLHb3g=A5mZFZv)aSA{rmj?FV2he;(X5cHL%v= zS@&~4_i$a;t?M&fr|x%=deI2&Nyl4y zo#z%#FJj!=wWi-gTdhRDZhpo0tnZJRi1dn!WLZJnmIUYe*3IdDpe_=7!v{mvlT<3}Bbbn-Ymfc>jfzfRuUMd-iiK(vaDT6@2WX6548WqK;XIfn1N zUs`59HJ`|@iXK3b6EjUeyb20<{J_P^~fN`VRPE7q-W(B9&x+}L_!TmH7F(K!XXI~S}EueNj1nVv#v zU3w2Mfr_Nw{g>)5s;Qr@7i*q1;x?Y{3GS)9Kt1=MpY?~@a^elow)$xwO5OO!(sB>3 zC~QDqEP1e;_+nnFYB{#kr84AXxc1glTOclnM6z5|BM;OX7?tfh!@m?x94s zk8`_2zTGf)on2ybeWzr^Vu|kCZ8rJiKYtCO*EC2-v|p*x01zm0K?2|3?W%Xt(w~2T zX#2?a=)lEhA5n>TPtw{c104N)ju-{MaD1iYYa-6)cuP}TXKFxigO(AYL4bNe%BgRR ztq3YjaEj5_*cc_cJi^?Z?(_K-Ra0Pm(Pf)vlcY(rt>;YxMkW%@tC`k>Wy`8VSCom( zXKs;>R}+-dHI$1}myFJC*T~_Lnn8H`1a;Sy)H1qDxPIpwl5cpUA29G`w3eaHDBcZ;mnad*xrkeqa`)t&q8p- zJstb#@L6+ugWp?2AI!xP@^ZKlx(l^3ro0N{yX>#R^mpI8U7y7EOLnZUY0nvb^jxgy zPcu`h4?S^x9py{miA^BDKKHTpezo0jB1X2t_F$x_VRxo=Oq#9<jQ`1)+%70*WK}&JOr=G{e8j7GZfd@?WwBvi zXoB|&-;SmuJ>{KI!+j&Qw`fmL2AYN!%d&DxIT@ab@U1bUy`*TCo&H16n*QFB{&UyR z0W2$vv>)Nnh*>I)by-D;v!oTsPMXv^%EJT38b`ZYcnr<3?H<*<$W5YwBjcU+z)0yUS9uBA}5Jvu=)~T`_)mor{FQ&4sKl&5@FLfq1`Kico;1n zqiMtP(Ac?q%;+t-_D3s!jLbi)#aN|oE~PUvyFDG`hOBnO=1r9T!wTe}%t#K3AO2;Q|9znU?G^IetGgyBi`-ScNN&=O znG^ZKxCE+z{`fMk@A)X9OwN8QMDJfKHyO~|zZNX}_HBRV$>5ECj?8^n_0eaI=yCBg zF>(5s_&2#X2be!2Lbf9hpGemMM)340^xi?q2Kb5V1@R|flqRE{{ytbKGp2n`P40B3 z{~VbYzcEOi!f=L6;d{IZS`on4=&fIZSI5{hqR-G6jYhHnU7Cj6o6}9iq@Z1&*&=WH zZ_vX42<-Qy9eNmGGhdbDl`l{&_6*r$<-Q)48N8j|mj>Aj3^G#Bz2Jdn0o1hrehFUB zE0wTM_xqPNF9(l!z{W}`Ic^=m$XYc4bSZI`WsNERkWphU|J9bsu_^sS=GUV3k9FhE zgTFO-J?=(r+k{AL>3pb90YXz@K3c5LBskwtSmq$>XdIT3rvh(YtNA&%YKd z4l{d~1c_O=Lxp;3*51I4K!#cc?XeH6g-|@vFKYSBX{fB%o&fnUdT9P%h~ zT3$*uJEc8bgs6-DmU4JR)c@B83)LPeZal-fW)`;)d7|r`-XW%jz^Hw5{*PAbyKAW- zx;M~R-`_dX@x=6otx#}*6$i&EM-#PD}kPKxA}J z6ZnrjaN4}meHTYym|e>HjQ(^)_>8K1s>U2NLJ?j0a9J71t?wBuHatsRfUkyA_h!XN zcJt`IoK!r(`2qkQ<9^o8SDA53zuo|@W}C)h{I`T%d4P0A*j!4bp*=scMEV7s$9^lF z8PDso2(c^wbTLOBavZ3%sM8+-fUe%)W^8x*LDtB69{mq}zjgn5Fk0L&b#1ylptQ(U z06q}Od?yFiD;1Tax6hbb|FufWoeK_rDnVK^SBTfpgD~&pN9k2XrLQsj{=L{6D8G}l z@Y@jVJB|!$_8Pb9fLE|9t9jAA~uQIXs12@WKQtj-Ij%o#?Lh zys3q4h5uT1o8^Hk{8yZVD$bx`Tsq#_o&LNd<4?CUqs_o=j%DJ|d%Bo7WXqL(-RBN` zd}{>aPlLagymXm-TXB4nO=%Ymr%D0}P(Gn@b=tulEk+`qtq>vKdJ%y_rndq8Cd5AXH}A+ZF`_ zuS3fMd)FrTA0(j%?O5D$o$R@Q++TFE$fu6}{^thR9&EM7ry2J9C9NyMBoa1q>>x#0 z6y)U-JmvrvDMKl}FT&Ng3KrGhDe8@IHXHqPa6Ipz3R1;Fc*Jb}y*AHpYwqch$I(}# z>z;`sZt4T5OV@oaW)|&YHZ>kG{zsw#@`7G^9G0u^TTNSfcYO%@#+~QO_Y5!gb(#qM zbgR;B_H8=&mOh~%*_;NjOFK$E2mJ+dyH5cr0qo-~%C$`R0 z+r>F-IFS`rGe!!AHHZnEsr1^opCi341ot#m51gMWk7_m-do)xGC>T`NjlMuU6cdZd zx3}iR(p2^dcQ$~YG~(On#MN|z-xeE&J~Ofx#4(vS(Z>6OTpOjH@v-(?!#=ZGzZ60m zv13a7Ky6u53QQjFU!%xZ~juQv#8`=mE2*`&;jt z4xd0tdE!N2Ww&iNme!T~j7z0q0CFWNwv>JdYv68BKOL{{2MqT8b7ZwgM>g(sZ@w2T?Dq6`AY2LW7!f zzZnooISs$q<{MoZL5potL~D?~h*g&|+KL_#$)}*CbXR1?Y30BKLx3Z#+U0Vt_iNu&wtdd+JtKX+LDgmK=SM}9GtRZD-@dm< zw)nc}X)6Z;O!`xMYQKD&5uJVFoE6vX?6qvv%j;3yoz0iTvI5i{>aanSOX$TqS=&q1 zz!9HIM?Y}&W1I#X>FAjm9exeYvzmbNfiO(bJJoos)y4QW2gyN?#_c@p`6iQXoK2ZD$@+$0hj@GTY~Ap5R35_M zdqhjj9GL7rMUQu9 z@Qtek4PUEnV;b0;!e#Y2j#C#;51kX4M7unG%cX zA@5!lg=r*)9dz+GdZjPf{Y4QE`d$}F?Av@hViD-y8^T6?F3vvS|9bf4E=g7W<4yU# zXJCzYaxI$8hsRq+FLP?ThYUS&Wt_bFJHBS{bfk=D9$;e#d(Vk3GQc&Lj1<>&;Z^Q} zA25AzLjUTZkGvBCW5rA9bZ!})T-LnyD_1M4ZuR}l-NFy*>=W@sRt*3iS8Y@9Bv~w% zY(I%|%|To2kGLYbMufRqQI8*h>#VHb@uldJTRH00h6$CXns5}!Z+Ni+Vk>t06)Q8| zojnQ|K{&?F@zK~OhE8!dpC@QXGUvOPZa!|3jpgZBL`QE)bwA;lrP!c=d6DTCo?A3+ z*TSH2q8SUplBZm*DMJ*jxgHO1+u!bo_}G6v%#w-e-9{u&iCv2f1XMw@a~6+4XEcvm z)PN!2q4!R+7j8hUgYU@&C``QDai}i-a5l&u94d8J)RO`l>4UL?JZHsN&s%j#(RmZn z(S%WvCPY{R&(;ur3M^)`)CTVTBYc7?bo(UvT%Gywy|Y#n!v$GdFRIm8|7Os5D`P zoQ1`5hGMbt*6@KIiBAlo9F2Fof-i!!bnT-`=?507KYMMxQ17c zZGSfYw!yC`U^`g6bG{>)NWTl>@=u;~FPt%@F}XtD8B6Y-v$aOy%ubSV%w0c|*$;Ou zM78-V13RLXS#A#kkTIM4EoM#$;+&aB;Ysw4KlBr4Tm?DLx01wGg6jt||HxE%zdZ1z zyk3^AMaWtaOES)-RdhcMka|m2>y6`hZsqR25fTLi21J}DjOd^SoPi78oEmjRJE5kd zOZ|6%^7azM;{AHm4>F>NobEPs=M#g2h78ZG+)lzS$z(!kyj@atv}JIpLF4h)4FbD< zk+@{U_xTOhLXlVQ)iCC$pKtO($%nfvf)DeO58pyC$#4!XH{sa&~fO24jd*DD-n%DY$+bxsY9Fd(b-%_)YpHlDw+oI4njcGL+eisxn z^E&~jV5sR7Ekhf*bJbeP@7f8%Q}el7bH3W9Wk-H2xr@CVm@=H|Y~F_Mb^D!q3-3%` zU;%E`&%}0`n-{{LDdmL|0IGs<0SZFQ1&dHzsVeUwQxHkF{PZGz9Oy75BC6X6&HM*mDc8Xg~_wF4mt1gF7dnGLE^f1XS?c^#nU@a_gq$nl9$ph>+A(d!z zHYWR06>Qv`?GrW77FN%T3hAq$nre3%Z^;Y#`m!{<5h1yZYw;1AfATexdMh4JvXH)N zw-8?uOlanml8H9oawR0eI4V)8*3-%P$sGZK83hawN$7-q=iL}kTzC2Ll z0@mPyh!LO_eOmtQ73q~Pt#x4FDUejY%2W@`E#?U(Wb^6F;vh4684^Ww>mA>$+ut;T z^9tvQ4#H4EUqP%8*bQspphOw{xd45U$WmxTzi|!IWY^iT@3#bJ(NUD0L^sY=mPi~J zo>gA6d-`X*tSeoQ;U38~%lqoE5^bGdeKy#yqWLNMnr%b~ridGuRwp9%J#l0*L_Vk! z151^4yG15|!2DM(+a0$~t$a;^5yfo_m4*!di1xz8uPnb#ph$M6Ir{6nmxbiPE>T{F z{rQ0Lnsa(yH6{b)d~E_7*5Cw%G-Tcb3eneT-tGRii%@VCWr@G^Zti z>r%t_!ob#UYc&Ky_0gvnB{g>8*JWRbWJ^Wj@e%BkxtB-e;aceY^l z2HrVUi@DkcJ=rw-QQVf?OMpSdvBl6&T^fzf?|issQA#I@Pa;Zo7kgxh z!cbVNsCi50NXe59vh)&`7M00RR}>nmC!AnEqI1Z0Lkdz=Fju1Vbjxf0ncfOhw4BwPx9=L zmwD70M9(kA$W2cY@INMlF;*_WQmt>aAHgDHfapg3o^-u$D!cEK_1=`VsD)TDWpN5+ zG3E98GouQ%P=F>S+WH0kP7eym8N$MY+t#2@&=k3Oaac}l2l@Cw_A)E&+lFtQ6*Wv( z9eF<1U!5#@=T*?UHht|Ep&1<0eSGcPY(Sc&!FP4vj6_f2xLgbMio>3gF!O#7YWqIH zB9j^yOE0{qz_shTChSn);ul=j%NCFl4^Lq6HC~slIW!GuCj4$`Jp%ruGjhETrbUkkfPzi$P~+MC zQjRzxy}SzGQpaD>{aM!cUS-MV!b7cGPIiYxgXq6LCBXcVk3de&>688M*2e)`2H;H_ zUaOdopGVb&p-sx)W13=oregxPm)L#@LTkV`cggz>J?rWBaO5`8&S$6i=5s1;q7>~l z{EL~Cj*lw>GdC5cL_-WDl@+Ij9H)0+?e;k0Av-q zDTf>O*mIGf*K|s`ad4<<&+e^n?Xk-PH8m;1>mNBRg5!ikh?nS>{r&LtZu?8VLXqm+ zk_k5(x2|eAdgLK|H?^J zM=vkn)zLQgM53im$)8_$G)4NoIbO&MKk;|{+C4=fv;BADVBe3~*Q}^shOW<=g=uYG zPr?OsQfTE;eEGthyNUnT{wV|eltE+dn|&jGpJ3jPhnkSIt2go!u$WPWn#D^D(UJ<) z4$lyW0`g(@$ot#Wad0dUc?4!VT&?pAr33lm$%}jr22j@yW(0gb9@iz`dRg5Y?{w$b zXqU;HqE^h)=p$42lrVkt)VHjw1*a(!ThC%c2;8m#skc1ueZgGDKWB5u$4xOdAtdHb zg1={YGda6Uz6~QY+U}U_XYEu8w*(M0(Yz z!^A^ozcr%T7Sap#WOi#s$rsgh- zhCo+B!Lt;A>z3)EQ}X>+M7lX53~DSpBWLoCdT5*~HMlOk9w*9XYzgU3$GQh!dxXVu zt4x>25jdHzDz;&b+UA+dR|GN^%on<=!=907D${4OFffF6jTZIkUIeCQpgRzOn39cP z7Mgh@k;Vwwq(yd~tz?Dyxugwr-q?u75*A7JX+_PC9xE8=_pQrj$zH#-FCCMX2Y$p_ zIE>u=5Yf>mu{v2XO{oDL z(c06I-=2bZx@uPbm|~Ra#8s^7tXLD=JWvSX6KU<8h_jYXx%vHH_bGWlqS~uAg>|*U z9w8bAqQXqeoi^Q*Ub4aHn#LWcbPuZ55B$0qKY26mA!e@2PLbg$8BbbRE@p%%JHyW7 z4waGpKwnBVP$Q_UCB(19e`REs9D1VAV4Gp4yY|IuqW@et0%LRl?&pM_Iuk)G?|DBA zQvP>N-v~pVBaW6Wq2$a4d>-o)3 zl1!c-G6=IQJNlt7*&Q$K`Dux#x@*S=zlKSmZvzVEaht5HlyIAt7{aav`}_>s8%Wxt zhxI1ey|U2C!GB<}Z>!9K!tz@UiecM97Y(D`_UvP3XvO;Q9*{qOq1kn2G#vILml;v! z0MF0jPDuUD{1%`Jz*qTI$ddxie?HAyk}H$?m5!jT=$l&W%e{fG*;Z0r7!(<|j;We( zGJmy`s=4onq&UeJ<`#aeGp>*y5hAZTQq8I{ zxbV5@$7{0;gI~&K-z_#IRb(D6bDi(^e{juVTH zu1d%-WpbzwN^3tAQ;Nh6M4W;yrZY$fMu~h;EQW79E+9j(cGxZ38qUe7aEv4?8<5ht z=1#e^pS#c`$>*(CiEFOKxh<@sOxjU*(FCnC>9<$0sNmm-n7+I?;~>!$lRrRF%IN|(buN8iRnlC~?HB?pCWP1?NI9bhcj+AJ4o8Pv&RegRb z@DCaTLgAEa|M9~~X#UF+T^+n)FWq^aq7gga# zs9!of{m$KlMd2Y5#C07&TS;;JjHTzDx=LsE%OgHMUc&#nIKjW(Ae$uo5TM&I-3Aq# zB{NgF0Yo}Bun74!Hnfj%BPr`^n8U8)M;*1lREShw0SBiSR<83*Jw{NpuCcvI0K$t; z*kxD=&119*6jPQhllp9mc} z#jm1#)LP^jJF4`ghZSOuuxDgXAJ0XNO*_>Z+!9VH^XS02F3J=cApOt-NyF$b86*A6 zK0PxEVOrl@|3##vg;{t&TBX=>fhMqD>g3&_N z9Ue~XZOEt#!7YTzevV`UZpJ^mFMqKiTFEl#D1)VyhTm$srGMn6@1A2}!HFsWhE%6$ zcwN;-t$em9CA1!1o?N8*Wp16HHX{f9`R#iJMwv~^K;+L-e#S^?T7OuOr>>*Ral>-k z#D4BB^#fLtNr{%vo30_X%E-yZdPmBSo;7{m#eEk4o8AiGCvnaBV(Wk<)AaQ~piyA> zz%}HlxnE6YgA_sNduQJ9OVdA+jxo7 z@(>_m3i?_D={BZow#w`EzFUk3&6ucyD#Mt1hmNMOmuLi8tq|`=Nnc}n%1K0U^wS6= z_X6lIamxt4Y|qXRk|F#7J=QJ&8zzb{BbHee1?Zxf1A^}vMb&vlcT+%jZy1=pMI4ss+!$VZN)^Zw4a4PERniP-$$Y+QB}tFNMg zb1wR_w6SriAt@)u2keh``ecxH4cP?*QLXQ)gyOLo?T@fV6vGvcidKE}XnC&GHfq5} zz2WGRJ`j%J3=ba(nHaq$7vp2twhc9R4}@VQ^Isgo%=4K1#)hv_F|MFF|9r7g58f@) z_e?o=3UIAMK|~%IpbRq#nllw^vrWQ>!T=$%PaZLx?{9qW<4PhWN;HK2et4}T*MZ!t zk7>}ufADqTkFL+V2P;7fs#&O0}srx?T)A&N*5^j6p`J8yx;6%r(lH8D7 zEF#>7@k4?2?FLHZJ<3ZnIYh7JDWF2vt6Gq19A$m(D*)ZM9I*0oKVpRfN*VfwoX`}@ znlQnuo3^$(v4N{+B^$21u~E;i+-(M$J@qP9?G2v}5S=`Epd9C7F@4oXQDFi7P>nLr zwUqWNg&lw3^he$|!`Qh{lYyfyYmp3DOQXVSkW=5oE_sL?XoFFl_DNTAyBhqK+t|YE zx(Csfwt8Z3aB}5F-dB*#E!8&2aZZm#e$8{qT z;JnKA{&~KADM(%7cp@#TMYUUy+J^(0cU2`0yQ%x)E5HF5RYh#u8pYxrY`KD)zTk-a+4v7jZNDDKYWVZ3+ zzL9K!$fQX9tAG|AC#gEgEhkpStL*E}p00OEw%{T#@ryD8+q$6SkBQMb-4oJNzCf?qH#{vvMI?;bFk&7Hb962DXaSY;!F9!MtEi)f zux*^Y?UI;$Bs$XAG5b1F0*g8y(ya6GL6f(KJltic+N|LhXB_(s6cklsDcj39pN=a& z%x>gzPdd^&f7ypTj~yuz+bNzkpqC03N|uxvX*dZ`BI)Q!IHtIPPsoxqbjb&EjQD_C zrz)=(vm&50H3X3sEhnuZk}H^IK{&C4XY+@QYCEp@I}?m|mU%hdhsIp+9YkOZnj9sG z)P4&m$x1!lyp;An;*+CVOm%ArOwV_D!Xc2zYap@6%{930@5vPX1SR1JEf!K9436yZHM^ z6unc^q>dFn#f706;+KFxd1|efm5Z>eWNiAgH~V3_#oifhJtp#EK=kqBU4a{y7$z;2 z)SYoh32zsVcT+p?K(y&Sq{$`b#eky3fXOF~y2ALM^cu@*)6iK^F+&46)(4{FVXXT0 zciW<7$#ji#bJ_VRO|BhH6*$@RPQLNlAQg+RM@+uhhg|2x9pV-S1;a&=>7Xmvr%db* zCbH2uO`Qj5uO=c(MhO$Dl;LMCa@av>-mjxA&tHXibR^qYT;EczfZbCWbUa5kWzZz) zOiH6>(5pCi@*oVsKnx(l3m@9987<4|BXX$AoX5CKk>wk3gnjl!S2DH)BOpzV>W=r@D<3xpE!jOI450` zcS)pce0*J=RWwX&Q6G(b*f`Es-vlsI90x7EeR=T#+2-}n#IwUBYkSR|x=tSaJ4+ zhdl@iV8TCk8x|2Wh?bNEcggl7{dShy9LQgWn%35jT)o-9?DIGqh&S{DU4c-bZdR_@ zSI#M9ER5|7MD+pX4t2(SOGrb>>d%5JGq)wLzC737&Gbt;P5nuJZZbbry!UW8#!^PO z4WwjXYQaBth|gGQ8d(mZE#9xMg>XwvmCg?@Y?nPx(93&kzY87`q|+35`18AWb>5tX z8cGuu3(?t<%DRYOt<&|EW{hNAls|&2vwb`?H9IDERGWdXc)YHa=3(lfb@l-^zM|44 zppF|z+8`y(cOtg~;r%L|oau~=s(?oH^cmPsBHsH#%~P<*zUKhVl6api?eWN|k@gry zNr|x=B4?ilHI$?xt2>QeZ;)d{DWIIiuh8kL+UO13$-2q|? zr&JeyT+A83tvg_qX!}9rF406_NSNUW6jt&f6tm_onard}xzY9B=OkI@CwBNH6CeEz z+5~Voe2_zz{w2=A=FIh~yMY4gci5|O_5~NemD8CyRhL=ht;VNd9bEw79|pzb`PLvK z2GUJU8GZy)#t4vM{SJ6@D8v&204-Y+RTWnSxCH;;LZMsi{Tpu!;C^)goBF+N_9M#n z$BX{}tu^@(-3AgzfI)?B_6ES-|AU|d0qK7)|KG&{X8EJ#Smv3J!_rIuVSKJ_w&zBx z;;M%Wxk1LK$^n54BB`u3{x_7l%_oImyv9Xz=;k%oX;yKjd8%8fdfaoN?2d)H1#Q=< z@-5JwSpwKy5ZwH4pmU;IQF%veTJ-wt=O&7WetNNmB0ES5C=BI{eUi~H{-u@kuV36g z&Ujen#KafLT`ZEN-!J+9{+_%Xq{sI+79A*e03rJkZK`olA0|}vOr{Wb!cj!nWqHSg zi^u|y^dl({76~vRA+$9h;Nz%VsSEAgB)Oalm=<aII^dtjt@w+7_Z{ZG zBGA+;LuIKv1pk&ha^Z)|1OVP05@7bjT;zYnVD;?RP~`Id_)CZeTIstg%a9C=-21Hv z)E@-AuE+bE*Gs!tZ1*m}zvlY(_ ze9`Wp_K~|hSahhiLva9$4do{QhV9EgrPjfLxed|z3~vM*u_`uzGc%8W8+r|F6C%GHb|~!Px8!Lx7nVigu8|m9 zgUYwgNC@~Mlg|zy&->5z0K^j@XAMzBE+76FEOb1fCJ6uBaFh%SyrdY#5x%o@{xdFl zvO||ducUtcPEuE|-#o4)$U|om!>J)nm8+rH`JWAxV3enGU+1B6ZWh5r@i!i)J+mtV z%<0)V!Kl+;&kJR*f7&{J9Ow=2*r?G8j8)!{ouDfSU{XsPU&;DvWy)v-R zt<0YJ=uZ~vvlzvQIod*ciH=w8#laliKWQ4zHzowOkkDC8tAclL@prA?To#*q4LK=t z(X0-K@`Jy3YvXCv!2I~S+lgJY)86Oghus?$lH3MUjs5LszRSZy1in*&zh%AGTTpyEYc;59VHsC&}BR zI?ZZBz5>no2^B*_*tvu3-ZhlgheZo#5=p8zr`&%Fwg18Ke&iV zofGG^sA(+HFn&n0wAi=e(cjL}*G4&Tfw8N6>u&?>gg_sBhC{qx{OM(Zb5WOC(=wuZYUq6> z0gvl)zDxJk3okZI-)$H#%BeSazYo1U3yX3hA`VM}JdE8q^(c;N{^ zSsbyjLLj5o`8Ovo(FH;&FIJVhkgxh&n68PsA>JzhYC<8@60c7~Ev1z#`FAZyE^}7h zx3QfY%g6}m>l?`lH(|wOnNRmmiCE3Ko`77V5U#DYrNj3Vi>(>f1oWL}`mn7Yt1i{G z1wq2#VA@{PpdPUg=%fZf5DQq$%x6CGO66RO@ulv)Vxn5)zyT|(*Vu0zlzlB`pJ?nP z+Whg~A&K~iMIwRPt~|7G);+8tg{1rtAlm3m6W?&CTRUcS=`|y2;qAE?W=0A^?W`YC7}ru$~_zvPEnVU|uXByFNrg^pcG^sZQo?e9X*I@$4yn zmFrcyp7Gzuj{8xC%s|uPoCsoxPW0)k4AM{h(CmWY;vE^D;;Of+C~KeIxRY^G!Y7h> zM45aPe^$L-;dUqloBYln=wB|2B!_p;M5xC`N;^}Fy@s|M^hJSIt`V38DBegGqC;0E ztsm@Nh!GOexx1zLKk#P~+>}aoP268}A2u2LJA8dBSn+Ztl zsNM^9>heUC3$JY(6o|0s`37;v zNIyo=CoCd^bhZfMSD4B26CsvC4T_JU#3 zAV3lbc}pOvlYH}>g?pJ$WoEwSOv2_o5FMhNO=* zf1vs&Mb(2QSIPGm8B%O)mGaVV-Ag11IsgdUnU;pG73?^LIKZ41aR zA4KmOl0v%+Iak4(Nm*0O03fa^CH?x|2AS%g?|RNsdGo~><0rW)ms?R+#sNN zoZ}NUT{6>t=w7m zq6ML^0V_6$7n)kkhWdvL@=_I(G)7_Kv!&BG4Dx8X;9kmA;?eIqMNshOEYB-x z|4!<=(b0D2{j*!=E}J^rdjNVB3hVG{43%pz*XGD9vvX*6E(j5k*O6Lg(P?g&qt)}P)Giol?!2#+Jw(M+j-lY0^TE~`-oNydjnu8#} zR&f*e&`HeP&)AHy=*-w+Oga!y%CJ=%kWsWZTPk_(^p%ybS>Fnz;Lq&$>tyxIB_{ff4U+ajkyn4@d(Cg z5<4->4oCWuY`Z+?(xeXG>M-?$gP&Wnb%%SheXI=0N;99+pkY4w z2I%CE762Xrh~L0%u*t@knLtva4$wQN)M&`O8cKq5VlOYnA$*^^S1_1$(>k*b_ppJIG!Slc7TM*2a;*lEdcWfFXv^egO* zTUy+f6`RPF50y1ZrONWIq=zd0f$Ua#s zF4y>_8#L&nPv$dGgu|}f{%Ty(Y1eio~F&Qok9jGjYKRDCM1#*Igk%x;-ecZ@`Zw>}vL{SY=xUjDir4p0VC)V7O zHw)>Q8PLl7%>-46n##Mb%&!$s-5=qa58GD{H;hQylG_GGZ*MGUZivqxA1M|8j;mP= zlN-BOKmYVL6@V!O#83M|CRT_|xw&(K@fPk$dty;a5TYTH=uDnv#m?1bOTb79?&b6* zRjDJH8j?5NBiz8Lbj~2XfUO_fy>Lc^OGQ&SGDq104$OLSak6|3=0$Mtw*-W+%Wr0X z>%d%AJdZj7^sE;dxUl>c@%5y5qU%tG6Q%39->d9G8|KmL_;&~64Kz2yUAxr}ge!j& z1t@@d35_h!<-R0%9nbqo1Oyg(M83Lu9#&SmS+*`gXahL6``Ds|4wG|PSYD~fK*PR_ z7sPon6i&xGQ#Fd};Zh=D;0#HoV!AIO7Pom-B#f7Ac#)3^&n=eFH6G6GK1j?$Yt{Q9 z*fm=8?vH?hQ>8Kx^Ke}Aj{}*p*pUqB^?Q5?L?nXf2%s-n4bUNL8l?rc%LUbf*s$MG z6#oP;{_M{jH|bG2i2u&2L>f*$yGT!fQ$2FO`6?~3fz6l?!vYOqsga5rYCz;sbL=6Q z578vyjbI~08}>K0#t{r>!_^}U^^R`cM0sBVF)*SSmjjqc;y{1qw(us|lf=_=Ru+J> zN2D8r1u%)(?#9*3l{=kg60vb7R`I?~g;eLLK75~kLbvrwx}@(_?dqASfs{Vkv`cFshZ zZh43rNB|n2&HDAi-RkvKf`gIwur*(W^&wIXKnX~LnAH5)E5bhau(g?(%LDvx7gEQc zH0L~r2y7+Z9wzdy}pKS-i{XFbdv$1p{!O z7{&Yh_N@uQ!+O#U=RCml#X{*L!T>Z@Wzk$s%;t$K4HkEzOsv5%U;P%J4Dv7I-wO)W z67lWs+3tP@v$O9)sd#gMQDi)%#|*iu*H#I%*K`asK<{&mK+U}}o1}Dp?!fTlsdgeX zUqHee=LV7sI++YXpk;k3QTl)+9-u?=qLO*$7VhJ(cJiUuhz67h+US4}iAUIgBd}xi zgqxGFC&wz!vO8X+oGC}p`Lyufr}uL?4mv!S_WhFeL_up)V~1*>X{A-cJHN%g*zdh0 zsEWe+Nf4j6i9x9=S>deRhF4*vvR=N~!+Oc4Yu^t;7{cR&_Edgx{G9e7V%-Ta&Btd) z*XVN)bSznF2>W$Z^Wyb2Xl?Xt550D#sMA`20eaUYfH3vEH#?B5(V#jCx|Nj>9V!P? zQtuP>)|D{i=2fSln7z%)MV&m)w^KhA4E)^Vi;Q0g4ZzP{7fW-4^bC{Yy3Rafe}kLN zJsO0#;5Fb#Zcv>*R^*w~iq1vlkfuIw)n7N;AppZ&kjd_fwh6KBewcW#y?)%fD`1!l z|AqC|W4%BKf8e+k?9#SHO_Eb*h_;a6?zw{P4A0$ahzv;~YS*F*7O&R;u5%;#p-8;xAm>!|%kb4`cCUx_co|oP2C%<+6h+UxYn(&erF*@@z4&6M&sx7<~iKw*uS9Bd7^~ z_Y<-*1@Zw9ghU=$2POu0EN$<4I*=xw*&`2c4)H|kj#eG*x)lstqawO9sbZMYM~;5{ z*dxcvWpAnYQ0?lTnDQGP4y!4~R-H|Ur!&KL$pAMd9{|v+;Z$QUiS|G-VMyaiHd>2e z5OTJfe^BBNXLdIozUrin6V%Bza!rI{-Xj9al{Atkp{;e{?Xi@J6sh)#!ngOaQf|v{ zXnAZWwf?RxDr8Iop%$I$^Lh0Z1qP?_0$S|kL~$S{3^Cw|`z2Op|X;t5X_K#0=c6@*PJ93eDBF$vW;aBC;7*v_w)>nuaOOrPUPE(ATp@U7GboqAS5{H36 z6LTk<-AOZDCgU2righYtn$8rrSAm_^4gnn`fI(3kza1{WSLp9 z1qzP`WypLphkii!cCpgDfI)$% z<&_lCL@Wt7&-UBQnzhb4|G+tC|HN8?u=jqRz4!C^yx;FvbK$xIx24LN}A;}J;!;02)_N6IH^i}jX;1)l5cUc8;Ot-wqNvD;_1oK$je zMJNA;?$2dr2c$kA*uBG1a8R6v#*dD34{(}%K`5zGWS4drvEmip&G>>GDQlSYK? zwjoly|Ez@iegWmvMe3z6T8g`uX#g3-6+}%ZrX39>N~%-!f(oN6X3pCHUFH+Vk1ht^ zS#!C?e$NV}icKXVrSxrmbDBNV!{C+01q@IynzNf@h9@PjpCmsLbQ>40cHi|5O;F#YG~Sl|M_Ti{(_}$!@)?ffKA8kB z+xx;<|0uXG?#@%$CST`V)zQi+VIFPKe?B^r@h{*z!3}!uWwbmRIl^J|K_MS&$X|Zd z`3)rQtD|k+dscQYRnvbcQZN*ch)2gcuk2L)C`q=PN6wWqy^D43J}@-}`=pRq#5~k< zJkh!KGTnk)m0iuSld$^c`VAQqFEe@^OU_YQtC_Pv25&A52@F8I8_7gw*LxJprK%;; z*gT8}ArQ|hEYc1EIOpFUT8v8rB7$@C9%fzEZiCa^;sADI>p>CCmLdIJQhkG)#gU@Q z6S%R+H}~S?YGOIgdI5SeqzWUITrGO=x%TG#u)*~CN@_020#!4C6RvQvA zp{u-N&>jjHNok>>FF80m?(Q zei9^SQMHaQ*Vw|evkW$~udrx8H}%7vc&d5onjxkRrHVs-A7<4Y!4TJ0L!2K}QFlZp z%AV8Qjus#}n`(MfkUP3bV*Kn;Ehmd+_l~`W;_tr|@yOq!E689E#<&0=6zlO2&(*5g zZ|~jJ9mv$N`FKI;7ttm<7Y&gLOsk~>@A@vg?a0MX;Bp=orx!+7Zy~@55=8jH{Jwd# zg))n~fj!W=26H3~q~IKSeQ3C?i-Ih@-M_QXA}ISO6y5CF{=j?j+Go=vqnWDQ%rk70 z3D*sZS!yH)A@baR5hc@kI*=; zCT_di3dLqLv!Cbzk0EspSkY>doo<%3NZX1P_{qt~vGKVaMa2~S`}gRP>Yx39EA`Gu zNns`nTp zo#R^9m4F|_OR)y*BjKs8&j)U_TI5(@rm7)F$kvM(N`Y#Jt9)Ew(DU>>l^JHIYZsuh z{8>Zj=ukX12c!wNsaNkQnaE?9o5A`qqw&GM+`4J>LS*0QW(T`L{eo|XFDy6Y_{YuE zY*m_siTd{kd8vm2uvfib2GX#(N_1RKRKI*J7d;y2WjXVn70qQsJ_;x`L`XPI(4;x2 z-tqh;$c?V`XP$@o;%3CDWxYWn@|ifbVD7!&`WF zPzxxLkq(gevMw2jCFV~#&6K?_n535Xm1=gE7X3~GPg}u0$2Pq?=@$c_PuGs~wIkL~ z4IT0KA9gu}3#5zNEGO+J2G!~AnUzMPQ}mW`#nIG{i=xRzg)1*$t*%VC1|DV3dj4s( zDH_laYd};*3kg%8a9JCjUJn{z4Hxk?FeTokkGMAHi?Tl1?U!MSY56`R-rGwFqV zfs{OA@V!1>_MQqXQ!vr7{e}hzzC#2XtXmIY(S1n65v`;PJLS6%6Pv;8;a(z@*FlCms)78dyV&(vTs*OvC`MQq%ct%+t7kyuHKHP6 zO=;L%1y|g4$fVp(2WML-if+IcVNZh+HBq8c!)Dr)s~7C>A%tVrt^=uE7*zGPE%&u?Njg_sEI>q^vZ(R8S^OpGUF7qN z#n?Cb-0O#)gbze@e8=26ul80jELy%QbDM9FTOj*u>Zv^dt~7L^X{QFEtO>Hdqs+yf z<;VNQcc>&*)0wye_H8IQsouhJjH$e&_qO&}NM7@E^S@@Rqjxy7Ix&64IDwf634PItOX`Uz9 z9I;tVfrsL5d~(+`MR~>G;`0{YQQUL^)|l5+^Xp3>B{d?^Ecsw(dK>Lg8k~k8xF7cy zoRf=%-L9D)4t1I3P_9a_##?k<$AO5MHA&d$;pPzR#awO@XX*AAMkr_Y(+sX|YnD@eRlLfEdHdySRN>l(mas%nZVP1g5?f3ksM&voj_-Gm2 zcJY>66U@5^T@gvTt%Xi<_w_Qxlle^%pl0`xr*sc&G(K4aY_#HRSNl*@98bdsRJcFN zrXA}tP^r%H?7eHq>_qF#g1tt>EMe$OUJ3wogVa z42OVTG!uv=p8_K$MI`;|7uis#r-u0RV-@~Ue!?ZI-l##i?tXQI^Ey&J?*kpjMV7bR zBKZdbLHby=$Zr}LUta9`I(Vv1=`E8uN3?~lkLSjBr9b_ioyLo&3c7w}Yvs;cFR;nT zFQT?c$ljp7MSx|LGkpd^tS;nAXDoClTMZ~^#ieK{Wh!!ta^O(6IDAn?R<-tXaHmb) zy|ab*or1m1yyWNM;Dzh{z(?G2G}N>}=Shv7%ct`bj1x^!E4UpvZ!5dYkU5%25Tw4emj3N?%if%);1|x}|g$#J+Em3u)V*cB@ zzK?DJ`HST>(d;x`^fS-ElV9srX?5aAQyr7Os^mJZoW0KoB?47c!IC6og2|wN%+v;~ z?g%Kz(3jS=;~T|iI?nGAS_bB`Ee^J;GLiWahX^v?Jg|{pO zk^;|bPx?7^k~!_B+3Rl|8J# zbITO`PEA14r@Qdqp;m=l-luvT;J{J;hD^4PRbSb0xcD>N2UqDimy-i-r(rx` zFDiDXEGXf5al-NO4-;(k?|(~MzAS9+Tj%4|04Q#NKVUAC{{6O-}B%1K@p68t^tpXRNr7Wwbm2jbWG_wGg} z*m*UIi<+Kyp+jsE9=GGlqSBkfz7Dta?IlLNu{4z{6*J8;p$ZoJFJ19*0C-$gzv4Bp z_egNs?xeUJ2dcSI1ZjU%0$%$-)aEgQU>IsD>Y0>zM%k27+sl|E0mKi_dX@X+zIGeM zhBdEPf83`QuOWV)!U{?hR93l|Tf_nn(#yyArGc-Toa}k&MeaL?v}^|}pY`Y*|Ff|r zkZbAF@q#@50>q_5awEi7?=uFW=w$Z>i=ZsgtxCz>q8{`*vh?j)%>4LB&@9ic0#0i> z-dCzwyF2Am@~2Dil}h{<6YStY5rFutCr&h^$&vn?9Rl3MFw!%mFB;5xT>Rvq`CZ{B znT|gpJ;SYJ;Uz~*Eq%y+@LKsBt6?F9s>Yn1DoR1#fAO%UL-sPGaWbYrp^LxAcFs1vVNa?h_$3JX3i zr-Wsg+{~D~h>ltF*0mDWJIyYafwjz1umwqpvY)TeVL-Z`MRsMt*cd_yk(&MI`2hX%NwOs=C z)n~k(nA_sU)~ypsTBz3UtC46z8c#z5LU_jh@k@CKRgw58Uok$_+vI4J6Zf(3^Tbb? z2~0&W=#UCuMT(;zF&(ot=nbu#b1;5HP<5`yn^_EX8=NodSXD=mKV}i++nnoi#8^wy z&HeVWKjw4GKvF)pfNe>PQ7)A(Cj?n9ufPaJs3h-q2TMc6~@a z!9N~xD696VAGRT+zm`|jp({DpT|f9(XY-Hy#wJVB@`{=EUV{g;l3uk3+TIhk=0n_T z8uYWj07-^42yIZp`Z}>ULQu#+J+L;LJQ?D-Qv@Zd9Yv?MX3rI^Q0b;ife>XPXJCjh z73T} zs`PWs7~j>5clx*k$4UaKbvQ3rbw$3QyG{}!q{1mUBKzY|uOa$tU|9eM#q=Bx2MD&L#19oGEScVvKMH0&@>dRTZT+`aNJib+8oh7S z7OK39IH+=)t-#oWtkl!_rVxT{9R_k)cH|OSjvG37MJ;*8MGJQ@jUePF6o4^C!(5{( zLCyKTLbn~PbM17JEA_0`PM?+1!|A2eN1?29A(-y3Ny$n*Gc&LNLV>5lS*1!mC{EHP zv^3!fM&qTcK&-0GklT&w+}n%q6s}uB+m&!x9lJ;CGgSP_kX1zG%k-}KJJvlm0fUJD za%|9s-x8L*jnr^cK_naGksiu23+syc8)pqH`GPd76A@LI@Fp1%vNhQ@q`39p)>lX+ zHl@{BX|ifQHX_+F`7D=ycdh~X^e#M6*r+Iwz2-lX%RTG@#6|mA=NxI#9Gl_~b-ves zXt+w>zudZy5j~PEnUi05)5;x`#d`dtW{S1(>9l&UJ9LQf#&y@I^5=^i-%>{4yDV`q zub*(0`45Y`R-zfln_@i<&%un{2&9@}AxH}qruQjFXSfpFugNK#hqdXxhU+W00%aj* zX?03(-)>>AMyW(!WvQ1zyPC8;zu4-uQ%wapB*sw_QIrYSi1Xo^7S860HTL|GZ-Gw6 zu<*?7ir8%uqiLYFombj|cBEgpbl-cP;cWq_q_Z|zL>$-DQ>5I0~K*R2ihjH_FeB-iNf#Ae|!5%5EVV2JO5Ad?w)RNoT1qLe=2}AJ%4=t zmw(8J5l%qd2l*df{Zotl|Nr!V@i7G=cBa*isJBLCHQ7dL?|(6XyE39IpmItjpdkDh zb2nB%?w*0cJ9ZrFppIBqbn+UP(hsYjygUP*SJp`GSDNiL&T%HU{V=^;dI%}j@f%)gP;JnauUq=A)- z{FlIBPSN1W*VeL>ZMu3Mo%6aEgrF{m84D^Kz-bL*uZh$Nav(kx>>&ScjCuRA5C*FR zYfk7dw1!uqnSv(-7R3t(?#@2(U;c@*j( za+Ux4LfHKFV&g54m~(=Esbe9mKX%UuHR{PYZ6^KZN!1$MuP|U>S$m4jjSb}kzJj01 z_h}j!n01k;MQTx~@bYrE1+YoR-K#aVJ%ZO;{4;A0U&Zx@z+eti?>L%4Ky7GwodH+5 zV|xDUn_UVMGVYrl0)oi-ZPO+&TIRP(H88H`w_^*zh??J?EP;F}&=#)=hRuIohM*%< a20W*z+~*gQLDn4%=Hl$;^l1073;zY0PX*Wj -- GitLab