From 8eb9a82de9c929bc6ab258b1cf8b530151b2f3ed Mon Sep 17 00:00:00 2001 From: Polarix <326684221@qq.com> Date: Fri, 18 Sep 2020 23:40:56 +0800 Subject: [PATCH] 2020-09-18: MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修正文档格式错误和部分错别字。 增加移植说明文档。 --- Documents/01-快速开始SimpleGUI.md | 211 +++++++++--------- Documents/02-移植演示程序.md | 167 ++++++++++++++ ...1-搭建基于Codeblocks的wxWidgets开发环境.md | 2 +- Documents/images/A1/07.png | Bin 18406 -> 22343 bytes Documents/images/A1/08.png | Bin 18003 -> 23834 bytes 5 files changed, 273 insertions(+), 107 deletions(-) create mode 100644 Documents/02-移植演示程序.md diff --git a/Documents/01-快速开始SimpleGUI.md b/Documents/01-快速开始SimpleGUI.md index ae9f63f..7c5124e 100644 --- a/Documents/01-快速开始SimpleGUI.md +++ b/Documents/01-快速开始SimpleGUI.md @@ -1,14 +1,14 @@ -# 快速开始SimpleGUI ---- +# 快速开始SimpleGUI +--- ## 1. 了解SimpleGUI -#### 1.1. SimpleGUI概述 -  SimpleGUI是一个针对于单色显示屏设计和开发的GUI接口,提供了基本的点、线、矩形、圆等基本图形的绘制功能、文字和位图的绘制以及列表、滚动条、进度条等常用组件的绘制与控制功能。 -  SimpleGUI的出发点,是在一个单色显示器上,以尽可能少的消耗、尽可能多且直观的表达需要的内容,为此,SimpleGUI抛弃了诸如图层、遮罩、阴影、非等宽字体等高级的、复杂的操作,力求以简单快捷、易于操作的方式,使开发者尽快实现自己需要的功能需求。 同时在满足基本绘图需求的前提下,SimpleGUI还提供了一套被称为HMI的交互引擎,用于统合用户交互、数据处理和屏幕内容绘制与更新,提供了一种简明、易组织、易拓展、低消耗的交互系统。 - -#### 1.2. 获取SimpleGUI -  SimpleGUI目前托管在码云(Gitee)开源平台上,您可以通过Git工具,从码云上将SimpleGUI的全部代码和资料同步到本地,如果您不想使用Git工具,也可以在[SimpleGUI工程页面](https://gitee.com/Polarix/simplegui)中点击“克隆/下载”按钮,在弹出的窗口中点击“下载ZIP”按钮下载整个工程的压缩包文件。 +#### 1.1. SimpleGUI概述 +  SimpleGUI是一个针对于单色显示屏设计和开发的GUI接口,提供了基本的点、线、矩形、圆等基本图形的绘制功能、文字和位图的绘制以及列表、滚动条、进度条等常用组件的绘制与控制功能。 +  SimpleGUI的出发点,是在一个单色显示器上,以尽可能少的消耗、尽可能多且直观的表达需要的内容,为此,SimpleGUI抛弃了诸如图层、遮罩、阴影、非等宽字体等高级的、复杂的操作,力求以简单快捷、易于操作的方式,使开发者尽快实现自己需要的功能需求。 同时在满足基本绘图需求的前提下,SimpleGUI还提供了一套被称为HMI的交互引擎,用于统合用户交互、数据处理和屏幕内容绘制与更新,提供了一种简明、易组织、易拓展、低消耗的交互系统。 + +#### 1.2. 获取SimpleGUI +  SimpleGUI目前托管在码云(Gitee)开源平台上,您可以通过Git工具,从码云上将SimpleGUI的全部代码和资料同步到本地,如果您不想使用Git工具,也可以在[SimpleGUI工程页面](https://gitee.com/Polarix/simplegui)中点击“克隆/下载”按钮,在弹出的窗口中点击“下载ZIP”按钮下载整个工程的压缩包文件。   同步或下载解压SimpleGUI后,就可以使用SimpleGUI的Virtual SDK了,SimpleGUI的主目录结构和说明如下: - + |目录名|功能| |:- |:- | |DemoProc|SimpGUI的演示代码| @@ -17,127 +17,126 @@ |GUI|SimpleGUI的代码实现部分| |HMI|SimpleGUI的HMI模型实现部分| |VirtualSDK|Virtual SDK的工程及源码| - -## 2. 编译和使用VirtualSDK -#### 2.1. 什么是VirtualSDK + +## 2. 编译和使用VirtualSDK +#### 2.1. 什么是VirtualSDK   VirtualSDK是SimpleGUI的一个重要组成部分,用于在使用SimpleGUI开发时,脱离硬件平台进行图形界面开发的辅助工具。配合SimpleGUI的低耦合性接移植口定义,使用VirtualSDK开发的用户界面处理源码,几乎额可以无缝的移植到预期的硬件平台上。 -  在初次接触SimpleGUI时,您可能尚未选定或准备好相应的硬件平台。鉴于这种情况,您可以从VirtualSDK开始,初步了解SimpleGUI的显示效果以及代码架构。 - -#### 2.2. 编译VirtualSDK工程 -  SimpleGUI的VirtualSDK工程,基于wxWidgets开发,使用CodeBlocks组织,所以在开始使用SimpleGUI的VirtualSDK前,您需要准备一下基于Codeblocks的wxWidgets开发环境。构建的方法请参照附加文档“[A1-搭建基于Codeblocks的wxWidgets开发环境](https://gitee.com/Polarix/simplegui/blob/Develope/Documents/A1-%E6%90%AD%E5%BB%BA%E5%9F%BA%E4%BA%8ECodeblocks%E7%9A%84wxWidgets%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83.md)”。 +  在初次接触SimpleGUI时,您可能尚未选定或准备好相应的硬件平台。鉴于这种情况,您可以从VirtualSDK开始,初步了解SimpleGUI的显示效果以及代码架构。 + +#### 2.2. 编译VirtualSDK工程 +  SimpleGUI的VirtualSDK工程,基于wxWidgets开发,使用CodeBlocks组织,所以在开始使用SimpleGUI的VirtualSDK前,您需要准备一下基于Codeblocks的wxWidgets开发环境。构建的方法请参照附加文档“[A1-搭建基于Codeblocks的wxWidgets开发环境](https://gitee.com/Polarix/simplegui/blob/Develope/Documents/A1-%E6%90%AD%E5%BB%BA%E5%9F%BA%E4%BA%8ECodeblocks%E7%9A%84wxWidgets%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83.md)”。   进入VirtualSDK\Project\CodeBlocks目录,此目录中为SimpleGUI的VirtualSDK的工程文件,使用Code::Blocks打开,VirtualSDK_wx30.cbp对应使用wxWidgets的3.0.x版本库,VirtualSDK_wx31.cbp对应使用3.1.x版本库,请根据之前配置的wxWidgets版本选用。如果用户下载的是nosetup(绿色版)的Code::Blocks,需要手动建立关联才能直接用双击的方式打开cbp文件,否则,用户只能先打开Code::Blocks,然后从Code::Blocks中执行打开操作以打开工程文件。   点击工具栏上的编译按钮或按快捷键Ctrl+F9,开始编译模拟环境演示工程。 ->

- +>

  编译完成,显示无错误和警告,现在点击工具栏上的运行按钮或按快捷键Ctrl+F10就可以看到模拟环境的运行效果了。 ->

- -#### 3.3. 模拟不同型号和外观的屏幕效果 -  默认情况下,VirtualSDK中虚拟显示屏幕的配色方案为黄底黑字的LCD点阵显示屏,为最大程度上模拟真实情况下的视觉效果,方便创建和调试GUI元素,VirtualSDK的LCD面板可以通过修改配置定义修改颜色和尺寸。 +>

+ +#### 3.3. 模拟不同型号和外观的屏幕效果 +  默认情况下,VirtualSDK中虚拟显示屏幕的配色方案为黄底黑字的LCD点阵显示屏,为最大程度上模拟真实情况下的视觉效果,方便创建和调试GUI元素,VirtualSDK的LCD面板可以通过修改配置定义修改颜色和尺寸。   打开VirtualSDK工程,进入VirtualSDK\Common\src文件夹(对应工程路径/SimpleGUI/Headers/VirtualSDK/Common/src),打开Common.cpp文件,找到以下代码: -```c++ - void SetLCDPanelParameter(PixelPanelParameter* pstParameter) - { - if(NULL != pstParameter) - { - // Appearance - pstParameter->HorizontalPixelNumber = PARAM_DEFAULT_PIXEL_NUM_H; - pstParameter->VerticalPixelNumber = PARAM_DEFAULT_PIXEL_NUM_V; - pstParameter->PixelUnitWidth = PARAM_DEFAULT_PIXEL_WIDTH; - pstParameter->PixelUnitHeight = PARAM_DEFAULT_PIXEL_WIDTH; - pstParameter->EnableGrid = PARAM_DEFAULT_GRID_ENABLE; - pstParameter->BorderWidth = PARAM_DEFAULT_PANEL_BORDER_WIDTH; - // ScreenColor - pstParameter->PanelColor = LCD_COLOR_OBJ_BKG; - pstParameter->PixelColor = LCD_COLOR_OBJ_PIX; - pstParameter->GridColor = LCD_COLOR_OBJ_GRID; - } - } -``` +```c++ + void SetLCDPanelParameter(PixelPanelParameter* pstParameter) + { + if(NULL != pstParameter) + { + // Appearance + pstParameter->HorizontalPixelNumber = PARAM_DEFAULT_PIXEL_NUM_H; + pstParameter->VerticalPixelNumber = PARAM_DEFAULT_PIXEL_NUM_V; + pstParameter->PixelUnitWidth = PARAM_DEFAULT_PIXEL_WIDTH; + pstParameter->PixelUnitHeight = PARAM_DEFAULT_PIXEL_WIDTH; + pstParameter->EnableGrid = PARAM_DEFAULT_GRID_ENABLE; + pstParameter->BorderWidth = PARAM_DEFAULT_PANEL_BORDER_WIDTH; + // ScreenColor + pstParameter->PanelColor = LCD_COLOR_OBJ_BKG; + pstParameter->PixelColor = LCD_COLOR_OBJ_PIX; + pstParameter->GridColor = LCD_COLOR_OBJ_GRID; + } + } +```   这里是设定的VirtualSDK的模拟LCD面板的相关参数,定义如下: - -|成员/变量名|功能| -|:- |:- | + +|成员/变量名|功能| +|:- |:- | |pstParameter->HorizontalPixelNumber|横向像素点数量| |pstParameter->VerticalPixelNumbe|纵向像素点数量| |pstParameter->PixelUnitWidth|屏幕像素单元宽度| |pstParameter->PixelUnitHeight|屏幕像素单元高度| |pstParameter->EnableGrid|是否启用像素网格| -|pstParameter->BorderWidth|边缘宽度| +|pstParameter->BorderWidth|边缘宽度| |pstParameter->PanelColor|逻辑有效像素点颜色(前景颜色)| |pstParameter->PixelColor|逻辑无效像素点颜色(背景颜色)| |pstParameter->GridColor|网格颜色| - -  VirtualSDK默认状态下模拟的是黄底黑字的LCD显示屏,不显示像素网格。如果要模拟其他屏幕的小时效果,可以使用一张要模拟屏幕的照片,使用取色工具获取屏幕背景、像素以及边框颜色的RGB值,比如淘宝上的照片,就可以直接使用。 + +  VirtualSDK默认状态下模拟的是黄底黑字的LCD显示屏,不显示像素网格。如果要模拟其他屏幕的显示效果,可以使用一张要模拟屏幕的照片,使用取色工具获取屏幕背景、像素以及边框颜色的RGB值,比如淘宝上的照片,就可以直接使用。 >

- -  然后将颜色的RGBA值分别更新入三个宏定义中,颜色使用32位无符号整数表示,从高至低四字节的意义分别为A、B、G、R。例如上图中屏幕背景色、像素色和网格色分别设定为0xFF342628、0xFFF9EA22和0xFF2A2835,通常情况下,网格颜色与背景色相同,或与背景色相近。 -```c++ - pstParameter->PanelColor = 0xFFF9EA22; - pstParameter->PixelColor = 0xFF342628; - pstParameter->GridColor = 0xFF2A2835; -``` +  然后将颜色的RGBA值分别更新入三个宏定义中,颜色使用32位无符号整数表示,从高至低四字节的意义分别为A、B、G、R。例如上图中屏幕背景色、像素色和网格色分别设定为0xFF342628、0xFFF9EA22和0xFF2A2835,通常情况下,网格颜色与背景色相同,或与背景色相近。 +```c++ + pstParameter->PanelColor = 0xFFF9EA22; + pstParameter->PixelColor = 0xFF342628; + pstParameter->GridColor = 0xFF2A2835; +```   重新编译后,即可看到效果,此时已经模拟为黑底蓝字的OLED显示屏。 >

- +   此外,还可以修改模拟的屏幕尺寸,例如我们想要模拟19264的屏幕,分别修改HorizontalPixelNumber和VerticalPixelNumbe的值为192和64。 -```c++ - pstParameter->HorizontalPixelNumber = 192; - pstParameter->VerticalPixelNumber = 64; -``` -  然后修改演示程序代码DemoProc/src/DemoProc.c文件中InitializeHMIEngineObj函数中对屏幕设备尺寸的设定,如果这里的尺寸不跟随模拟LCD的尺寸变化而修改,运行时的显示区域将可能不正确,显示效果出现异常。 -```c++ - /* Initialize display size. */ - g_stDeviceInterface.stSize.iWidth = 192; - g_stDeviceInterface.stSize.iHeight = 64; -``` +```c++ + pstParameter->HorizontalPixelNumber = 192; + pstParameter->VerticalPixelNumber = 64; +``` +  然后修改演示程序代码DemoProc/src/DemoProc.c文件中InitializeHMIEngineObj函数中对屏幕设备尺寸的设定,如果这里的尺寸不跟随模拟LCD的尺寸变化而修改,运行时的显示区域将可能不正确,显示效果出现异常。 +```c++ + /* Initialize display size. */ + g_stDeviceInterface.stSize.iWidth = 192; + g_stDeviceInterface.stSize.iHeight = 64; +```   然后重新编译工程并运行。 >

- -  如果想要使能像素网格,可以将: -```c++ - pstParameter->EnableGrid = PARAM_DEFAULT_GRID_DISABLE; -``` -  修改为: -```c++ - pstParameter->EnableGrid = PARAM_DEFAULT_GRID_ENABLE; -``` -  同时修改屏幕像素尺寸为4或4以上 -```c++ - pstParameter->PixelUnitWidth = 4; - pstParameter->PixelUnitHeight = 4; -``` + +  如果想要使能像素网格,可以将: +```c++ + pstParameter->EnableGrid = PARAM_DEFAULT_GRID_DISABLE; +``` +  修改为: +```c++ + pstParameter->EnableGrid = PARAM_DEFAULT_GRID_ENABLE; +``` +  同时修改屏幕像素尺寸为4或4以上 +```c++ + pstParameter->PixelUnitWidth = 4; + pstParameter->PixelUnitHeight = 4; +```   重新编译后,效果如下: ->

+>

+ >- 需要注意的是,由于网格线显示时占用1像素,为了避免画面显示失调,SimpleGUI的Virtual SDK仅在LCD像素点尺寸(也就是宏定义PARAM_DEFAULT_PIXEL_SIZE)的值大于4时,网格设定才会有效,在像素点尺寸小于4时,网格线将被强制关闭。 - -  像素单元的长宽可以分别指定,如果想要模拟的屏幕像素单元并非正方形,那么可以按照近似的比例设置像素单元的尺寸,以对外观进行最大程度上的模拟,例如常见的诺基亚5110的屏幕。 ->

- + +  像素单元的长宽可以分别指定,如果想要模拟的屏幕像素单元并非正方形,那么可以按照近似的比例设置像素单元的尺寸,以对外观进行最大程度上的模拟,例如常见的诺基亚5110的屏幕。 +>

+   根据上述讲解,采集图片中屏幕和像素的颜色,更新Common.c中的颜色参数设定,这里不准备启用网格,所以网格色不做修改。 -```c++ - pstParameter->PanelColor = 0xFFEED197; - pstParameter->PixelColor = 0xFF283847; -``` -  将像素尺寸修改为4×3。 -```c++ - pstParameter->PixelUnitWidth = 3; - pstParameter->PixelUnitHeight = 4; -``` -  关闭网格显示。 -```c++ - pstParameter->EnableGrid = PARAM_DEFAULT_GRID_DISABLE; -``` -  重新编译后,效果如下: ->

- -  至此,您已经可以通过VirtualSDK,模拟SimpleGUI在您预期的设备上的显示效果,此外您还可以通过键盘,和Demo程序进行交互,查看更多组件的显示和动作效果。 - -### 3. 联系开发者 -  首先,感谢您对SimpleGUI的赏识与支持。 +```c++ + pstParameter->PanelColor = 0xFFEED197; + pstParameter->PixelColor = 0xFF283847; +``` +  将像素尺寸修改为4×3。 +```c++ + pstParameter->PixelUnitWidth = 3; + pstParameter->PixelUnitHeight = 4; +``` +  关闭网格显示。 +```c++ + pstParameter->EnableGrid = PARAM_DEFAULT_GRID_DISABLE; +``` +  重新编译后,效果如下: +>

+ +  至此,您已经可以通过VirtualSDK,模拟SimpleGUI在您预期的设备上的显示效果,此外您还可以通过键盘,和Demo程序进行交互,查看更多组件的显示和动作效果。 + +### 3. 联系开发者 +  首先,感谢您对SimpleGUI的赏识与支持。   虽然最早仅仅作为一套GUI接口库使用,但我最终希望SimpleGUI能够为您提供一套完整的单色屏GUI及交互设计解决方案,如果您有新的需求、提议亦或想法,欢迎在以下地址留言,或加入[QQ交流群799501887](https://jq.qq.com/?_wv=1027&k=5ahGPvK)留言交流。 >SimpleGUI@开源中国:https://www.oschina.net/p/simplegui >SimpleGUI@码云:https://gitee.com/Polarix/simplegui - -  本人并不是全职的开源开发者,依然有工作及家庭的琐碎事务要处理,所以对于大家的需求和疑问反馈的可能并不及时,多有怠慢,敬请谅解。 + +  本人并不是全职的开源开发者,依然有工作及家庭的琐碎事务要处理,所以对于大家的需求和疑问反馈的可能并不及时,多有怠慢,敬请谅解。   最后,再次感谢您的支持。 diff --git a/Documents/02-移植演示程序.md b/Documents/02-移植演示程序.md new file mode 100644 index 0000000..1d87247 --- /dev/null +++ b/Documents/02-移植演示程序.md @@ -0,0 +1,167 @@ +#移植演示程序 +--- +## 1. **准备工作** +#### 1.1. 环境准备 +  在确定了要使用的硬件平台的情况下,可以直接移植SimpleGUI的演示程序到目标平台上。在本文档中将以STM32F1芯片平台为例,讲解如何快速简要的将Simple GUI的Demo程序移植到预期的目标平台上。 +  由于演示程序需要操作交互,在VirtualSDK中可以直接响应键盘操作,但是大家使用的开发板各有差异,有没有按键、有几个按键都是未知数,所以最终Demo程序设计使用串口模拟按键交互动作。至于屏幕硬件则是选用了目前网上保有量较多,而且也容易购买和获取开发资料的12864 OLED显示屏,主控制器为SSD1306,近期又出现了新的SSD1385主控,软件上是与SSD1306兼容的,可直接替换。 + +#### 1.2. 准备工程模板 +  在移植和使用Demo程序之前,请先依照个人习惯,创建一个空白的STM32F103工程。工程中请不要包含诸如串口重定向等的代码实现,以避免不必要的编译错误。 +  由于演示工程中包含GB2312的字库,所以编译后体积较大,所以请大家在移植时,最好使用STM32F103VE/ZE芯片,以确保Flash资源的充足。当然,这并不是硬性需求,仅仅是出于快速上手的考虑,如果您确实需要在少资源的芯片中运行,后续将有介绍如何使Demo运行于诸如STM32F103C8这样的资源相对较少的芯片,毕竟SimpleGUI本身对系统资源的消耗并不高。 + +#### 1.3. 移植Demo程序。 + +  首先,确认硬件连接,演示工程使用SPI接口与OLED显示屏进行通讯,接口定义如下: +``` + OLED_SCLK--------PB13 + OLED_MOSI--------PB15 + OLED_CS----------PB12 + OLED_DC----------PB11 + OLED_RST---------PB10 +``` +  如果需要修改引脚定义,请进入SSD1306_SPI.c文件中进行修改,引脚定义的映射位于文件头部。为方便随意更改GPIO,驱动程序使用软件SPI编写。 +  接下来将SimpleGUI根目录下的GUI、HMI、DemoProc和Transplant文件夹下的STM32F1文件夹复制到准备好的空白工程中,然后打开工程。 + +>![01-准备工程文件](https://images.gitee.com/uploads/images/2019/0605/225932_b7cbc466_769424.png "01-准备工程文件.png") + +  接下来,将工程中的main函数删除,因为Demo程序中已经写好了main函数。 +  然后将GUI目录、HMI目录、DemoProc目录和STM32F1目录下src文件夹中所有的c文件添加到工程。 + +>![02-添加文件到工程](https://images.gitee.com/uploads/images/2019/0605/230006_7301f48b_769424.png "02-添加文件到工程.png") + +  至此,所有文件添加完成,上图中的User组中的内容就是STM32F1文件夹中的文件。 +  然后将GUI目录、HMI目录、DemoProc目录和STM32F1目录下inc文件夹添加到工程的包含路径(Include path)中。 + +>![03-添加包含路径](https://images.gitee.com/uploads/images/2019/0605/230028_179a33b0_769424.png "03-添加包含路径.png") + +  接下来打开GUI\\inc目录下的SGUI_Config.h文件,大致内容如下: + +```c++ +//=======================================================================// +//= Used for SimpleGUI virtual SDK. =// +//=======================================================================// +#define _SIMPLE_GUI_ENCODE_TEXT_ +#ifdef _SIMPLE_GUI_ENCODE_TEXT_ + #define _SIMPLE_GUI_ENCODE_TEXT_SRC_ ("UTF-8") + #define _SIMPLE_GUI_ENCODE_TEXT_DEST_ ("GB2312") +#endif // _SIMPLE_GUI_ENCODE_TEXT_ +#define _SIMPLE_GUI_IN_VIRTUAL_SDK_ + +//=======================================================================// +//= Used for SimpleGUI interface. =// +//=======================================================================// +#define _SIMPLE_GUI_ENABLE_DYNAMIC_MEMORY_ +#define _SIMPLE_GUI_ENABLE_BASIC_FONT_ + +//=======================================================================// +//= Used for SimpleGUI demo process. =// +//=======================================================================// +#define _SIMPLE_GUI_NON_ASCII_ +``` +  此文件中定义了SimpleGUI中用于全局配置的宏定义,默认状态下是为了在VirtualSDK环境下运行而配置的,所以直接编译会产生一些错误。为了适配STM32F1平台,我们对文件项目做如下修改: + + - 将宏\_SIMPLE\_GUI\_ENCODE\_TEXT\_的定义注释掉。 + - 将宏\_SIMPLE\_GUI\_IN\_VIRTUAL\_SDK\_的定义注释掉。 + - 将宏\_SIMPLE\_GUI\_ENABLE\_DYNAMIC\_MEMORY\_的定义注释掉。 + +  此修改完成如下图: +>![04-编辑Config文件](https://images.gitee.com/uploads/images/2019/0605/230044_80806f21_769424.png "04-编辑Config文件.png") + +  然后保存、重新编译工程。 + +>![05-编译](https://images.gitee.com/uploads/images/2019/0605/230107_a423aca4_769424.png "05-编译.png") + +  由于包含有12像素和16像素的中文字库,所以编译的程序比较大,这也就是为什么选用STM32F103VE/ZE这样的大容量芯片运行Demo的原因了。接下来将程序下载到芯片,下载完成后,OLED显示屏上就可以看到显示内容了。 + +>![06-演示程序运行](https://images.gitee.com/uploads/images/2019/0605/230139_ee01cc19_769424.png "06-运行.png") + +#### 2.4. Demo程序的交互。 + +  为了确保所有尝试使用和学习SimpleGUI的朋友都能以最快速,最便捷的方式体验和使用SimpleGUI,Demo程序使用串口来模拟键盘进行Demo程序的交互,以此来避免在使用不同开发板或最小系统时,因为硬件原因导致交互实现起来困难的尴尬。 +  完成前文描述的移植操作并成功烧录到芯片中运行,在确保芯片的串口正确连接到电脑后,就可以尝试与SimpleGUI的Demo程序进行交互了。在此之前,请准保好一个您习惯使用的串口调试软件,但此软件需要支持发送十六进制数据。 +  基于前文的操作,确保芯片硬件系统处于上电运行状态,显示屏上滚动显示关于SimpleGUI的简介内容。此时使用串口发送十六进制数据0x0020模拟空格按键操作,此时何以看到,SimpleGUI的Demo程序已经显示列表画面了。 + +>![07-列表画面](https://images.gitee.com/uploads/images/2019/0605/230152_82b96512_769424.png "07-列表画面.png") + +  其他的案件动作,请参考演示工程中的DemoActions.h文件,文件中对一些常用的按键功能进行了定义,这些定义是与在VirtualSDK环境中运行时一致的,只不过是用串口来代替键盘输入而已,每次发送两个字节。 + +```c++ +#define KEY_VALUE_NONE (0x0000) +#define KEY_VALUE_TAB (0x0009) +#define KEY_VALUE_ENTER (0x000D) +#define KEY_VALUE_ESC (0x001B) +#define KEY_VALUE_SPACE (0x0020) +#define KEY_VALUE_LEFT (0x013A) +#define KEY_VALUE_UP (0x013B) +#define KEY_VALUE_RIGHT (0x013C) +#define KEY_VALUE_DOWN (0x013D) +#define KEY_VALUE_F1 (0x0154) +#define KEY_VALUE_F2 (0x0155) +#define KEY_VALUE_F3 (0x0156) +#define KEY_VALUE_F4 (0x0157) +#define KEY_VALUE_F5 (0x0158) +#define KEY_VALUE_F6 (0x0159) +#define KEY_VALUE_F7 (0x015A) +#define KEY_VALUE_F8 (0x015B) +#define KEY_VALUE_F9 (0x015C) +#define KEY_VALUE_F10 (0x015D) +#define KEY_VALUE_F11 (0x015E) +#define KEY_VALUE_F12 (0x015F) +#define KEY_VALUE_ENTER_PAD (0x0172) +// User option flag value define +#define KEY_OPTION_CTRL (0x1000) +#define KEY_OPTION_ALT (0x2000) +#define KEY_OPTION_SHIFT (0x4000) + +#define KEY_CODE_VALUE(CODE) (CODE & 0x0FFF) +#define KEY_CODE_OPT(CODE) (CODE & 0xF000) +``` + +  需要注意的是,由于SimpleGUI的列表每一个项目都可以带有自己的参数,且类别可以不同,所以操作时需要配合Alt、Ctrl、Shift这样的功能键,每一次按键操作的两字节(16位)数据中,低13位代表按键码,高3位代表功能键码,例如针对列表中带有小数时,Demo程序可以通过Shift+左右箭头移动小数点,例如向左移动小数点,需要模拟Shift+左箭头动作,则发送KEY_VALUE_LEFT|KEY_OPTION_SHIFT(0x4000|0x013A)即0x413A即可。 +  同理,如果想发送Alt+Shift+回车,则发送KEY_OPTION_ALT|KEY_OPTION_SHIFT|KEY_VALUE_ENTER(0x2000|0x4000|0x000D)即0x600D即可。 + +#### 2.5在资源较少的芯片上运行。 +  SimpleGUI的Demo程序对资源的消耗主要体现在中文字库对片内Flash的消耗上,如果您手上暂时没有类似STM32F103ZE/VE这样的大容量芯片,可以考虑精简掉一部分字库,以实现在容量较小的芯片上运行。 +  打开之前操作过的SGUI\_Config.h文件,将宏定义\_SIMPLE\_GUI\_NON\_ASCII\_的定义注释掉,就可以时中文字库的代码定义失能,此时再次编译整个工程,可以发现,资源消耗明显减少。 + +>![08-精简编译](https://images.gitee.com/uploads/images/2019/0605/230212_403c143d_769424.png "08-精简编译.png") + +  当然,精简掉中文字库,也就不可能再显示中文文字了,所以编译时Demo程序绘制用另外一个资源文件,运行时界面上也只显示英语。 + +>![09-精简编译的运行效果](https://images.gitee.com/uploads/images/2019/0605/230225_5f7263b0_769424.png "09-精简代码.png") + +  以下是相同的代码在STM32F103C8T6上的运行效果。 + +>![10-相同的代码在C8T6上运行](https://images.gitee.com/uploads/images/2019/0605/230244_a3bd94d4_769424.png "10-精简代码在C8T6上运行.png") + +  为了兼容在VirtualSDK中运行、片上全字库运行和片上精简字库运行等多种情况,Demo程序中使用了DemoResource_UTF8.h、DemoResource_GB2312.h和DemoResource_ASCII.h三个文件作为显示用的资源文件,Demo程序中显示的文字均为同名不同内容的宏定义,在不同环境下根据不同的宏开关、引用不同的文件来实现切换不同显示内容的效果。 +  为了避免不同情况下的乱码,在VirtualSDK中运行时,使用的资源文件是DemoResource_UTF8.h,运行时通过iconv转换库将字符串转换为GB2312编码再进行解码和显示。 而由于在芯片上运行全字库时,由于没有足够的资源保存转码库的资源,所以使用DemoResource_GB2312.h文件,此文件本身就以GB2312形式保存,无需转码。而使用精简字库时,由于只有ASCII文字,所以使用DemoResource_ASCII.h文件,使界面显示英语,不使用中文字库。 + +<返回到[目录](#0)/[标题](#2)> + +

3. 从“Hello world”开始

+ +#### 3.1准备驱动程序 +  由于SimpleGUI本身不提供屏幕设备的驱动程序,而是借助既有的硬件设备接口组织基础的绘制操作,所以在使用SimpleGUI之前,需要开发者自行准备好屏幕设备的驱动函数。至少准备好“初始化”、“读像素”和“写像素”两个函数,函数的原型需要严格按照以下形式声明和定义。 +``` +void OLED_Initialize(void); +void OLED_SetPixel(int iPosX, int iPosY, int iColor); +int OLED_GetPixel(int iPosX, int iPosY); +``` +   + +<返回到[目录](#0)/[标题](#3)> + +

4. HMI交互模型

+ +<返回到[目录](#0)/[标题](#4)> + +

5. 联系开发者

+ +  首先,感谢您对SimpleGUI的赏识与支持。 +  虽然最早仅仅作为一套GUI接口库使用,但我最终希望SimpleGUI能够为您提供一套完整的单色屏GUI及交互设计解决方案,如果您有新的需求、提议亦或想法,欢迎在以下地址留言,或加入[QQ交流群799501887](https://jq.qq.com/?_wv=1027&k=5ahGPvK)留言交流。 +>SimpleGUI@开源中国:https://www.oschina.net/p/simplegui +>SimpleGUI@码云:https://gitee.com/Polarix/simplegui + +  本人并不是全职的开源开发者,依然有工作及家庭的琐碎事务要处理,所以对于大家的需求和疑问反馈的可能并不及时,多有怠慢,敬请谅解。 +  最后,再次感谢您的支持。 diff --git a/Documents/A1-搭建基于Codeblocks的wxWidgets开发环境.md b/Documents/A1-搭建基于Codeblocks的wxWidgets开发环境.md index 11c7b64..52440f4 100644 --- a/Documents/A1-搭建基于Codeblocks的wxWidgets开发环境.md +++ b/Documents/A1-搭建基于Codeblocks的wxWidgets开发环境.md @@ -53,7 +53,7 @@ │ ├─ [DIR](子文件夹) │ └─ *.h(头文件) └─ lib - └─ gcc_x64_dll(如果使用64位编译器,此文件夹名应为gcc_x64_dll) + └─ gcc_dll(这个文件夹的名字依据个人使用习惯可能有所不同,通常为gcc_dll或gcc_x64_dll) ├─ mswu ├─ mswud └─ *.a(库文件) diff --git a/Documents/images/A1/07.png b/Documents/images/A1/07.png index cb2b1bd42ba8357dcaedbb242ba9985692514a71..12da2d82654b111900caccceb2f439869a62a36a 100644 GIT binary patch literal 22343 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 literal 18406 zcmaI8by!qyyEZ&DiVPtk9U@(VfDGLY;?OCrbPSz}v~-ss2uPPS3?dB@Bi#){ch|T0 zJ$vtWzx&zm_Xo_e)*Nfy_qx}8)p?%RguPLf!+lKt7z6_0D#%N}1%XiEAP|ZdHY#w& z5%z})_&{-aD<=sm8>HL>4$!S6R3t#4%4nP$6Aa+^k)yn>3kU>mfA~Y`cKBfq0?BzR zNK0sV812sC_-L$s+rK5YU(V|eg=xoHYrJZmF&jSs}}th#jyP;qrX0xB=0u1 zsFlz`@*_^?qMs4g5ZB@>XKNO7B)|EoufFJOUu`+? zC#|={+&MLMVPeS2=c|>WWvR)4-o58IZ+u2$Bczy=O4#Gz3-2I)kcju$7fQjm0*@V9 zPRBzDo)3y%+d{FLg*^ZE^~OePMO_R*&JGpSudfl&E|_@FQsR#fyO~r4?P6SSI>J_% zuyCmldYPC+NrFD2sfxHR{`zR@)?ZX!H}7v;+B>HpLxlMRpRHE)#}-IkeaOpaG5aHv zsGz5${pa_|HVIEx?^nmA)wg5yi>wINo|-Cbulip*pap{m1RcdiW7FgYv(FWWJePvT zlUvzw9<`i|D>dQm@h3jp`0BKWFq2ylOL}khT-t6o>?uJKPX%g&r zhfFjPk>uRS1Ul1dQ9;JL#L|y}?1w|I9ET5|cAvH)#Qv#qJKHowfQ2 z??acf-X@!g9Q;C~@j3X&9J)Or(0Vz*J0uLPv!WoQQdCq_#sz_BMF~9TTsT3X0Ja=7 z5a=KP3D}k}Ed=bfHmW=Gx2bbrbgqQW8D zY^Sto8Jf7Mf;2Y+fsmTT+U25-ivfkNLuFs~YAh=;LVA>pl(C{-Nu z5qRxepn$T|EeA6imIPYE6!CIc$vYXK(dE@hTCUjBkjERJS8GnkJH3_XFUQmEqLhx7 zd>yDEt&YES^V5cPpTY$<(t8J{T{o`(MDSP*CcMlaQ1LKZEmr6Qflf++#Z|lS63Ez; z*uX?EGj1lK6Uv3Om)qJy`Zt=nqf-B_Xs^cn*vXEQGRjeU1p>*3^NM)%;r{*=7Z(S- z&2+tlc8BI+zjlQ83Hn$j+dpGQeY~5y*_q2#Aid*uDlYmzc+nq{5-g3B3WHMoaQ`VJLJ`ip zTO9PMd9|jPY_;?BG*j^DMuGv|jL=t{t+V#>=1KK8IqP77Mp>-wl4{JK4&HJvKvvF< zhJh=a9hf2IJDCGJa5B?^w2)NazH4OA)te`kn|wba;P1+=kMb&fyz)#-2kdBykni~O zv$MG!#IMVst&jrg{7MER0cSK&Hq-6xzCUS$1QBQRfn+QL%*>P?!f=a=km;~R zw`=DBW=k_&=y(Qw^NQUkdCA8ZX(U&FTk;6XsN)r5a-bsevaDJ*t2{ZpUZ21ncc}nJ z$#lKPE~!IRHzaLqO|n>fLV&6Y>|X!m06W@s*yb&ljKq7K)!QWWIG;ISLz12OKE56d zN*zx9jF2$61-CQ|9slStX?IrX?KJTuTd-A$)t-&ZG0Eqnj;ErJ3oPLC@P>q#$h>eS z%hks8V0gHRJk`bpW*gK?es-Hy6h~j>^ieC6ZbfFq(mU!biE;Y|@ol^0R!}dhZj|&s zN-9J$tJZ>cIDQ2>_097*UF%|{xqz=DYszBA*1AAX(igOw9)GPR-SIZW_=D zWo;~Pd&10JTw!x)3RliVjz{ULkdYgZ9LNQ{}h6V<<*1)X}`S|(&ZvU?i zi?%6P!G6AZDgl(;t(?l!nGo=0WO6da6=Aa65tfe%5_#7hMJ0`8&JDP??+3$Y@|3q-soW-?Sc34WK(w99G9h1tFFUqPduwlr5lhgltAs-Hm|VGNz(#@< zfPCe@J4#v!7;lTCK0R>EsNdKfuKt>BrVKxw}v!Mp;T>*~3K@nUQ z$x>tS(SNrjAh+Me`LvNjF5S6{jnnYGg_{Sq;08^3Bl|s)?ZfbSOqxmD$GG4^Dk`dP zWsl@E4G_suHtOya5IxHhE^L|T{BRNHq^Km;;vASodbw;uIJ>{E#|t`mnpf)+bb@nw zQ|eR8t*Pf%zt>W`(YWPoh zje2bmd+&8bxGP!b1h$GUi%Qm$+hT_%yvg>)GB5u%s5M87zct>|@jJ$R_yh8X<<#$=H^FT zn_K&C7xc=L@t~lji{T2f2vHVL>N=3A>eM@$a6kJw6384{^qwdlrbH8KRXulvo;ReF zB$h#)Mp{SG-&J}h=bj8T@Mmh5GWpXxZXwsTO3GhXTO1bIgoEQ=S4>5Mu$f-lblW2) zy=y5j&fhmTa2srDjo66@%`9qU7tOQx_i^3X%w(T8v`4fFj4k}UOVv0%Bh^fuN9mM` z7H1&CgqYt4Zu%hate*$otS-NC!{2T6mxyb@xLS01=4*BunY8B~iYx}jEM;tdTUf<( z;n%nH=T0?XEvt@P=b?ZMM8bXazF8x0h$d(nK4aBU#d;UI88U=?=(mTzTRFZi@!f42 zVH5P(I#CO=J(w37M~p9Q8lg>PI-dB-4M{8)N*3_KqHW3p_aC;=ua{c1I@Coe(dTwU zB@S;-ReOjCsSEMh-REKQsxykl9g;FDgKDNVbClcJjij~+5sWSSPP@hhi8Dq}551cg zvSpT5bm~>VO*ZKxIaemp&Qs{OgT-cJqNe9OLZR4n@$GB5-K+W(Sqn!uvTVL_?M>eL zr7nXahKXW{4qmuKQ;CZS9!0~OPv#cMsYc~)t`5Hmp*A$&Lf5*lnyd84Sj?q1zaD1J zTfOn&TUQMn<>qTUf4*9ZQ)d!qQL~biwzgLH%Ju%!w)IL09rdNXfq@PE4xEoo@)nC= zcRUH>Wv1s*6A9zuzPF!QwS9uJTeK~D%ma-z?#EaVjHe!xz3+!oMf&TLfnmKPWlixkGAOj2d!i&?dB*N z`w#YPVg)D()rcXP-@L1?hm3o#1Fx9b4eAd*by6JHZC$iD3@A@sznIERJ2m9v6A^B3 z9A~#Fb*)b8w0C_K9z-6I36+smjsJ|7ZR52yWE?c4eHO;z6YP{p=`2TPntDMFPMk8xKMM2))&-5)Z|I@a4yCeHghlMx&8JTEN zVb2*2PNO$M?;{)!=dEA}3+o>$<=u9e<;%C1YTE|k}=J5D?s~R`?P;T0^z5V z;xnFkupSkugiajDT_il`k=Pp@y9bpx1t z?{IOc*!hM?xLD+>qemoO&HrIeH4xmn&E<8s?(6J$_OpV2m3p-=t`vdcr0pqa41kv`xI3S_h@3AMKz-+_Lk+fz~VVVmj z%69Sx1fnv_r|2++`Pr_ht_IJ1OrYF2B&Yhc_5#Jxk!HRwUwG0d3@-hTaRyr-(tsj&NuzU8 zcD$CewxhBe-kwt3R-a2Ro34qm)9ZmbF8{(S6IYIXAKv95+jHKZrHvmxZVq89bXw-_ zzrtWuRD3>IMP1Vy|K{=iSYW>rs!IM7^IAA$+A}#XV*;5CpV9GG|IsZfP-jwfGnpxH zZUVTxc9kYB#l5G^<@tGD+F^QO1}Zza80pQf1iZ>`37{q7i}ZqjB>uL^mR1}Ogo;%! zSic!)z`)^j_Dh#m@T*495NQfth3XaE}Bgo{MX67v3A!wf`j^&)+mc*ye3&_x;Bc@Sc)bPx~{u1w)&fF zKi*VIU{3W=n|9ja+Oesq6_yKIqD+;RgiL+bdUo1u*Eamu`Lfmd`FcH+{ST zb)rS8E8OK7_92+t_wz+x|Eb1=6xW_QsZ~u_^jXJ#GP=WO^z?6soZAG3;b8IU_eB-n zJknldl(@OHMyRC=u6ZFKF*K0(b}rfDJgnw zaf2SwL%hI2a7Dg2?JK@3DgB#V&Z(90#1w&Mt?OGt|DZ7b=L*gJjetXAA0g5qzrGY> z@w8}5Dx%ko6Ul0;N)hEIUH4OHX;wGo+x3L<1&0!+v2e24>NjX)WJwPr1Pt_6zo-zO zai_=BT8;M~CwWr)%5{0TM4N@@OFgBkonn|biRnNg(PLhJqu@B&X=wL5SEQpveW+l8 z>rpLlo8{++hXgYC+R$^DQcLrR00x9+Cx&S5MPY+~1#6m99t3)s-}rTm5K+KzNhe#{ zDt_LuXB+87E|TsK7k$2-DEL)gxNuf~YpqgC_DYyKSTKY98si@@!imf$*`0|B!hPP&2^sK!tdsOh#X9u|BP$BBt!=z;56O3_~( z5g}=;io3?_A8Y8PdX@ z*6){XY@;VHU1*Hx_n}+sjW4#)ZQbOE4g0hWS~}R5Y8M6{4OZc6;zndFmKYwsbIIJn z;9E@+7^KQ&+$7PYsS7V7>_zBB;b~-^saPUGQ{(yoz_xO zQ>iM`%DSh*cXUkd$(xh0pQG+hHG9kD+z8-xHIzo)OS3G@yo!ZtYimCgjC~)`ur6k> z$fRy;>}P82uFrPI#>Vmsl{&(@5(1Q+PLK!yc%ue_?I?#$doV6n>y5LfW@4dLT}B2a zRI)bQHyS%KGV%mM%X!(x(D6!!XCy#5wnnbTPfqUT2+;^Svow}8Z^7fb_@Gq$7Uu9VdCf$&_GcO>_MJ@FGQzF(aY1Jw(*}T!RZ1H{CV>{7JWoe z=XbmYFT}>_&b}<#D&#-;p8SA=HXjeV%y;`9^)eazU9NfWw@i#y2f8Rr@mNI0;!n}e z>x7I-hX5dLn&Qw*rI}o_4SzZTTQ4$(R)7JDpJ74E(IFdB@YPFEI>dXgp?j1!&4x!l z|6PQgM6gK;L);6=fJ`))M4hyt)ADD-ihgnOFcDbwmb}}ZUo%ym8tR#+cyjDoC>T47 z9KESzkZ|c~NZI2nq7`9;v3%R+nJs#}ppYq+8GgL$(RF31)?Qqf;Pvj(q1;uFAYr8Z* zAp=-k|Bg@s|Ld6r<+&!sg8`DNy-D4Uc^&m5%9o81Or6;&4n z3zC>_%{|Wv)1``e2r5!<>k)^0=Cex) z(wG`ASV=pQB021UyLY#WMbw&tSF;x1)o?ie4}H|Qx!nf?{rZYmdvZP;H#=w0R3?41 z{MTRkg{vp*UdkGamO9$ydZu;QM5M76#gho=+uWYb&dsM>oNS6`()^Z=5RDEUQPj}l z&Xd3L8C6+sP<|wzwr%npJRPwdA!6Ejv;1BlG3Jjb?P)~zJe*N5Ok2G9eC%4(K43Vy zM^8jp`E78>?;1o_L+7c3%-#5H-}na#i`r-L#*?$tWsLlLob0o6oaGTbn95DUV36*o&K!_DYuipk7B%tOcnVpsv--JTVzvb?ocUno!blHvc_PT33_Ymk-o62msn3 z+s@`H=d5GyKxJnJ&3r1I>$T-pr=sb?AT%za*jzhI`(z?{O_uFOvFi^lp|pD! zWReNv8vPp%KZ1Ucc3GHSHB(YWB{Hq0yXCNpBJ2KULj^;Akml|n1c$46SVM9ia4072 z!KvZtBdS6w23#tgRr7w=yMb7EeoHvU+^#RY!96qfO?C&1ZGo7$DXxZ))mcjDw+)F2MXn)nsw#hFg0N_c&bqwz=x4~i_L1B*xIw+UbrLhReI~p{F z%XBK2t;DWVjh=}IrwTaC4+ty>oA=-gi6G6hT>@>qhEJB=z6phbeT)5{#Q)r!A+eFl zN?{@$vNkfH*eYJA5_g}8hWn)bN4?6cm#l63v(dTE)VYw-cQJCG&9=3ULr-;ZQ_6FRn{S^dq!v%l?_I`|<4!MK)hD>>4Q-Z|FJ7A0jXsHg zl{Zi5;FH60nsnDpRtuE(YF}+L+{bHB`qMo2%eCfSS-@so?vL^uM67ieJeTLv^$Pqf z)T>=@bFY&O&eqqP@_qKj*tgU1_~sgz@ZY5{#1yU%q`SA{3S>C%`rT>4^3F$PO={yt7F%@biZ1-h(RP?uB2I_%Kt^CLygu(Tr!60ueNYUWXw7;!v`&+K4=^8 zQ-H)_;^6?=8H-&)+JAgnaDH<{%0WQXrP`u}g&Ip)=DWHVu}yxa=Y8Hxole<7E>$gi zBKW1H=1dC!84OzV1U|TYjk2uk~l#@KGsW@>Z9J@W2jH)0FuA zI_1K5(Oe$0``TsT3=<5_V45QW-n+Ic{51UR%}@=G+iw_vC8SVo_8sL z8HHwrng)v+o{xSTZrtuvvY}R=a3*7cnF$|S)n1dGiN0zQwg%;20}HIZQ!oD)%?nlR zQR33_J%dIEwzY(Rp8oA!2}56ZG|j!Vpxe%52#w#xq*-+5J)gp1gXq>qqPbForkP)i z!q^F)_u$C4DUFp*04U77@qv2Sxkc!$taK>!a(ClwqjM@5^V@SCyfliyFk`sB>x5@bTwigWy%pZV@3HTXfpC19YK zCpl=Qc|4FCWSPDS#_cbWa}jA6XjnxWt7F+g2LK_7{zaVCo5Y^go1kQ0Uj$=({(2RR zf%w)6fQm@C=kdCs`<$y3Fm4XA63m~;kn`i_UFd_g|0pT>5(!pHVt+||QZYG^RS8i2 zv>5-!wE_NUdV9bm?u#}m&sdI3#52a!wP%a~FzJQ<5A^x}i!}Z}0LcG5ee(02r@iNJ z!iXFIrI$Ha=-1PKpRxaLUESH5ef#!%dZ>T5j&s$_cKlZ?j$!>!usoeh>0h4p(V5z+ zpQb*(a&iDz`15F-%?QH(ap4tCO7?{d0#T6kAx zx!#DvIls_+_aSWM!W}(^RT}H$OLNubUH<9NcLz5RsQx)5TL7bfVD3rxtyQ-n_}Z*Y zKYgYO{4xSLG_aIMnf1+3n|SKk)hLIa5~>zd=HvS_L5K8+N0l>6wR2$W)Wmhq-%3sF zdFxNo+^VS*XK|w#@`L#G%Xx&W%|)H_(El_X^1iJ6^#iaphn@aQJA3rO3lt$wLg zczL2B*jqA>DC$wEq4-UloXqK50OJtu#NPi*H2=NFjYD|MR{Ub~BRgNu4UK$hZK4vI z46oi1`?ksmy;_@6cMS~IGjHZ}#=$(a|KqTx)WCjhi~nWIcb_6_sQYGMl=n$l|CT~{ zKmFV6@896Lxv~j6iB08-s`I*Ie@)!&LO7qm)1thTIBC6G)^dh^CibR&!bQ3FsfpsQ z^F=^^r?H;>N!Dk`YJjaJnwB0WSr_R*r0nx;|KMJX`Ss)_Vf8QX1{o+vOxo7WAIyj8 z*?aoFKRZw&Vob6p+hD`jFR~;|hHhAL8G1&PE8A=R_9tL*vocI-v@lQ~p>~Q1O|CPs zQjZ;*w!A#*=r4}`ia!;hX<~E(z(N9-8(1=Q^ElM=g|&%A67m4i@78H2FtWd{`4&iE z#VAF6JRZa~i71LurldKcc^T0n->a(rCJZ~^Q^n{V1=Tp6OiS3shMg-89603ZH9`^>8_ zDXlde&0mRmo1%BTF(mNfglV=y+&U;&p)pFOnu*mJ?8!OAk(hrcrQQSbk&!fI~;TBHC1oQmNFtQ&C;R z!5r6~=(!R7l*{oT^)!h&{e`5oTTHIibcZyRf^ZAW_ZWhf8iov*rysf@?w2}`3tZc( zt-2u(xP);ueH&wNN-}0CSWCp{6f|NM&&}IML9Vi8z28_A+O^nsfsis- zFFEZ`4&gK+FgVYH8tNB~0E;+aV7;&5=o!=>H1%AK;+>1JV#|*_CA5`e&8UiTE>|V6 z=?Aje)d&YhFR#tzp&jR#Ndp0$eEcp5Z7~7Wu#FGj5k@;T_)~@Y&^E!)61CrRAq};LDb~nSs>Pk9e!*{a)Iz~f--O*CjxuaCj zSgTRMC66w6WYX*zH#-aP^~XblRcy4TDdw;KHL>*|Mi+$E+G~WYDh_(rkbwUFW?qC? z^^An+_Ov}J8D~LRSy_Gk4e`M=AfBTRcRUNt}ID~ zP&fb9;Eld{v^;9Ga$5Jg2NzUDiJ-HoDP}>OBHdYM>af+}f>iSEhPt+R+nx zzg@;*O=9BzZmEvzYMHdvqxVJf%~_(m%5xBH1OXL()rweYRWP8DyYVWv*p+IXWJ>qD zer~LJTOX3;bvkA&_WJhCb%eDjNL&lRZq1kPS*f4j30T^Gw5Zv!Bkf$k^taG`0p+|d zv534mGUT-y)Hp@~Rgoi5oOT_&+Y>+_Y&r;SnYt%w8X*Wo2Snd%m5Ig7H!Va*%V8%?nWM_*^JxXWni6#0@D40jH$_J-FED}zuY!nuwhQj zWhe#m>Z4LXtq1R|venJKiSTdO2BeO@n?M%GzeG8Q3F@)@ZzSWtBJIIO`Cp^f+uWIk z^IJgLauO8PG{~370Gy7w$!evCd~dmuz4Znxq};K*M>?IH^5Vak#d=T2@I*-%n9ryScG7(ivRSw3;jH zN)$^4(7flZ!VjCW2Ful+SO6n%zQatoswv3$VeDTO2DoGvg6sG<`Jav2$`vdlU}0cy znk&V-vL*}RNsX&SZ{xZ$U+E5PA+?m>_1CT2w2~p?sPFGy-(iU%{)|2T%v(C|C z>nwP^u-L}dgbj7ktFXF*RRkv?@pY^SByV~B#Xc@NW2Sb#Yut4I|z(P%g?z|ft zfV-b|u5@i3wJfbx6rKQA>*?E+98KZvYI1-A?jHQy^W)zUT!X28nm=sg0x8K0_cXrz zt5i@DD4aq8-4e7jj2LN$D8L)4>MN=~oRxz))19mA#u8=3rVlfj=3D%a!Z!AvIki8< z5Swqj^Um6B5^KzC=T^w}22#1k00$j&oE)?O9i!ZKAol{)t&Kp54pu)AV7G-RNXH)1 zNtZ~7xye~rSlGf2VAB%r9q>D!cGO2-8a|8|FL>{NWXXRF5;u^>!rsL*KHVJhSw9=d zXWf}=ekW^WG+*yD!FiMU0Tm=p3;CtePvIRgQCDMEc(Gi3D&Tv4D3-cz)IRqZgsck% zJ3_fjVO19k%=dWZ)g=?t=i6E!5U|}Px8X+nKPai-j3z6 z(i<=NHSWzNbQqBuUu?v2IaQqawCQ9`8Hzegdg06{tZ>(#Djo83g12>>d%K$yei&cF zk#yP_7c!w`^fz(A6%->I3SM-l8ZKS_-Gi+BXF3;9nh9c95!$7uv+&s(-m?d4x~nPzu!xT06N+czyQUhu^41wJ@mIs z5Rkkva6m)#?7s=p{wp;vYgkVM*aa~8s~*n~$%QYWjRGc5l>}*^^k>0AEZ?-b$LaKe znZbntup^%6ZE!bjzDjDZFTrB-<*Jk~; z0o1wL^Vky5FF^B^U*<93Q;7o)Xc!H)YfJ3kFZcPbpuwctyiuDq(BSivipui#;U}S-Hv=DLW<!{) z?GyKxfc0p>i*J+0G#Zv0-1@Ek_m;4zYfAQKwIE%}c9#mfNxn%nVh7d6x>~)fXT{QYYvP2;J} zZ4dNK(`%NyLUqv1U*$-V^dArS9!vqqE%j^1cO&`f`6<*P{r*?u`u?+y3+F|Eeb?+x zLF+Df=D;5R(%k)eklQu#U3IxWh{M#EBn&{^>dDJ0Ccp-$|wTyVJPcXp^>rslrSjX8X!zfZWBU9U({n zUm&plVuy0|JO>SOUeMj@-TUHr8V{G(HGBIX@mMe%qj_BHLuHMl?z)fBLS6p2UcQ5g z^hx9t>6o52Axlpm+!Auu%E99#FWD$f@Yp6F z3{x`kdoR3K^6TywMg)_^pxh2ZKx^UsrXSY5-UwsR74rl2@P_Y)Uqt9120iKDDc`Rs zWmWWMDG`EbCv1SD5HWK;ELrcYQK!kQ8|4HPV_#On1snAI2-T{iC!HtwMQOY(wB6b4 zM{dFTq+2nI5+*-LB~1>{uQ&iNP0iB)Gg;DW%~g^B+v*6h;q%e{eezYgcwZpg@Tn)0 z>FlSHpLP5pSA=IGt(CfJ&cw0BwIu}ovW%r1IQ7OK?;-%HP(kRM?ADkMKe((LedA4? zYskrCWCPLG%6h#yEQe(INcvS#GnqBo?Mg`*c3fjxIGS#)$JHav%%>e|Lr?R@1XN=z zfD+y-uDNTP{%TRi$kBjWhGXsuImSp~srK8usjSf}^8@kmln|pOc4GT+un}gr4Y75& zPi(;5$N#DO4+J_{8kd(%p-?d8Yi^$lM`&23kLIGB`x7{I3^`2K2ha{!kSC7uE42TSTRPv} zT;}Jn8#X44sFsKM-bPc4K%7^5p36n0H2$5Ol!wWC1E7^OzZ@3e!wjRq^a9vGQo_^r z5g9`j3fBEjn$s@#7=hCBjvitFbYG~qfZe>fP3YplxM@0pemmeCsReq7c`S7}7{~#8 zG|HQg!aXtoIdGYg%K+apJzdqO9&`w2DD&bUEOlK8{C~VSKO}|F3j;x?KfDdf#>vSE zyy&=$bnpR)c}Xm66*r#Op(WWgcBZ&j1gQ*0utfk&r?f(+Jq{gyw}Gi*5pa;6DImHG zBxd3yo-$4(rZN`Tw7?VzPFSQW`WvalyG9-W$;h;#;)kTLJ^~`)2nX>5`eyy+oYdgP z<}Ll^21V(hYvb;PO^lhu{o`lf{50?86^PVoXTactRF%3-=S8HI`>#fi#g7WGi{4$V zm~}__o*?9+g^#e?89u(s+gAxK!Pk$89|OKVZx~8dkNxHp3whP?Jjq!!AAO+$ssG?| zzw<+Mw65Est?W7Nx&Dp&Rl@@8(q0$98%FyGLZHY)Gi5_$B1q;O+i?proWt)7u{O9M zlM0egB_zZk{~*mkNWaoLYTf>Y8^KQO7auZz*7#o6Y+d+t5Fi3zRYlWG*y_W_AbB}@ zdSn8=ennVaLln-Hp#yKc)DFppMpJ<8uT$FoT~D|9i6PPJ9X0=}qM3p6!`l08vB+nF zM}r(k83!|c&CNJv*N0{iA8W*Sk zaneQ-dP&Zd>kw!9-`cJ1r~C6S51F|5{*cWX37y6T4NQn#jjJ(b`P>Z-`MHSg?bhr~AWiG4IN?mB1;!dMt+tx~!)>j>#A+);9LPJAA)#U6 zU>@1f;|S5+X$+N2PlzCtDG(XJi60Uv7(m&9@_`Y@-*?Nn>?XP3j+`@;OuG6j^yzVT z850^=WecSw$+ACqquJVEb z80C0kQM5L@i=)@S^-8UnItpvd&WqZak4KWwYQqQIkqzz!Cx@vcsK>Gtyr z?vLiZ@j{=)#=CUh?l&KwL0yhk!_5Ai3+y;Jl*0|adbV$nYU1!(W$zIb^Sz+`P!^&h zz4F6h4F2Z2R6R=aiPIC{0gu7*xAu|rZX=x7%LdsrD=(P{&0pk5ojJoVcdH;w&jyQp zSrHip&m^=@SroF;8>LEy69T?BQ1f5)DF6CHO0Pv9jkYEh> z^*2=w5&t6&!2~oktC)rrVM#hytMtf`$ah;T^k09MkjkeW_rQ4KS9p&*lTom~_u<7A zc5^q8GjXPjNQBN23O&*Vw6;=N7^|MY+onuaIqd&zGRbtf{A))r9=4GQY5wdeV+zER zzub$I+Hn;=+eFm`3PJ8`SoR=ZaG7kT;z@5_$jQl7Y^(tuh3n5Q3rlB5JNHc9=bLjA zruyjDH`zEnfTfkJdvOk193mO?P70-;a^!y(trMha;?mrf&~g&7m0sCj;r&MgP-(|X zm+B-AIhRb{l^eLsCs~~ljq`OL-l?i4c$jOur*#EQCM-g*yd&d1`o@PJLZ%Z>V11_* zsTnb;EN^$bcvb>na1pbGqCsDxHJ!2oY;%sg2Zyz_P{Ezy@A?}c-bZt*tw{|inhNvt zyAnWLef|9^EP`@CJOp0w-C130YNLhSY`qf@fg?ybcwA*DV;;H#RbD)wB=wt6#@7$^ zf{~zGHKboqkoZQ3`6tRWl2M^=oQm?JBR_fk#5v0yD3h&0yVbRYd2AIHq@|_#9mQv* zG#)Jm;&B?(4{Pv9+M*5z{gAU7s{xcfb8;}G{>>$u$D$WKK89f}4c}bW=FZrcw8!7M zCfZ*I;@Nsnz}oyqbLQ{s?(cDy#*(kJLT{4EfL|gp_m|KI(`7 ze{mIm+o8Zf&5ITA%6z`d{tu-%Py{vhXIQ>1U>Xnml3dizI0F{Dq{b9}D1QI5BPm!R zzhx90Z>z6sq(|_+swAiAifmhnHSOkDAz^uF9-564SJzakU|0K&Z48LrH*@52(Xh<-|4#(R`9}p$7Xbix=WEvRqwJDv zMbw;@!W`O(x+;|+qU99bKU7~?NqFqmtT7wtH)gE|KmmV%N7e(>r{TXYu9BjnlDzz( z*&TI%S#ieug=l0nIjD}Jf}}jwqrighG5|SS)uJ%CK#*bGOGl_UqbO+f+js%-R+C{| z*#i`y3{;j{ZNUK+mjzeSl0C;`q0;!oB=o(4dii=o3CY*WLmgiQI&<|D5MS8V;vP`_ z)sos@Z-Isjy;xQ+?-F#NA(4QpN&_ehp^AzXv&s5zs$fI)g*7!rR+0!dvMicR!K1$Q zYndywexXk`W5Ghe-Dlmk8OqXx9MORtF*NCJWdGp z#2JrH_I;FJE};^$(9^?V_lzk$5$F)9-um>o-#GC-u;wr+SdXcv1)s!a;v+%XD%q&y z1a)z(lRVLKWmP^i$~7u%4xL;QoXDalD%j%&f~tJXOPUc=kHDZ91)$KvJkAAg%_Q47 z?0tB{vz_)B^)xpoo=xIXP|}Sw~R77rFo0h#;YA zXlUrzcA66#&#*{XVq$qJ`z` zH2PnPO#ov`_C%l{f$Zci7&%-AUXi^28k2ppnYCE3Kxe01|}z0vEws>2@?MT)b51;pjh*s8&o-H(^^-GsLS^%#25|m zM7ze99q@R%i@tW~=`MImtITp(;Pr2p>-rTGP%07-i2~?$IlB&*|69fR3V`|Cl;zMd zdPDHcc;PSI=yf_OaUMjt$IT_stcdvi+vC2)H-Jw#nsEQALClAth>Zt|i3K3NU)m!G z1kadPe)FuA7voto3w0oFj=`%HMKWHWIt}7pUAvEY@U_btdd<-bWgHM~JixPw{|~$Q zU^B-;-Mt|PdxPz1aePZJ`wAG~@#7440bt*JMh0Ab!u`nDZ%k9da=f;g@#fW@4*|hZ zcf|7G_~iS=;zw>je~xO0p(BWX=nPWffO=j5*)l%@B@_Eq5BhMe^M{MzAcrDjq6x9* zRZ{<9E?fc==U>*?nk-~v!^nV*=X|wU@RSNat2}?+*c?OA*~R65w~%Sp)))FXtnB`p zcB?T;AaP4TmQvbW^-k_RdoCrI?8+^u+HmgU@FzZtD$1+JvhO7;*87}_BzmF8NViXD zAoFZM8k~dH%qzB)4fmZoTmQ<~f26jyO$3U;1+0e9)rua*lxuFKt|?;NfgZ2}2sKE9 z_LX5U^gs)AEKm<2J!ExsY>b$cG#zv8*GIJW5IljzXZ_l}AJ355_Ng}a>yoejFCHl0 z&tda#-aoWGtst<~ANan+RZ0;r7=XM3B+pCN{^<%6DX$jY0BYiEY68E*2xE^Zusj!_ zlYazkROd3p(!$;D0w5Ovf#SvzDM;kGK1^>vgu4?6sBmq1`(Xe6ZXW>MlB52y7%bYC z6G(h)^nWh+=Vt)|%nzIX&+h`z?g_9fKO!>$^wbY%Au$MC+0Niu4N?U@fL|kUN(S1U zT-H;q(g*{d4UW(|kkD#rz<}a|=|O5htE(n@$?$+^{`Y<=hV4K+(FbKifO#gMf&B-- z{dg_F&hId9t4J2YWrqfO%T~;p23%`Ci{y4%mWKAy3c2k(T=LHsK7vnyt}Lnl=6h~g zA-1~Q)@>wEpf@S~biu|nS~dhg>16lZm4P2Ucq2jgeZiQi0az6AtcU(rj5CT(ps90* zH~uQiYOg68z(&MrrmKFnx@o=hKQ)KeF>03sN@SLEG5?mFpLn@a^)8HzMw=8AOJw!E zD4-tYe_%598kaz!?%gNdFVv0LahqPY)$sAbZMt9kLHaG==T9vzNm1wx%SlS>yCu5Bbc006R(>Xuk$ z-@>r3iKE9{AU~cvIv0|-wszn4wmuvtS!gFHsXyP>0RW(#*tcelyiSh3aoyI1h0U$)NnKmJ?>l$h)mOa^ zldHEb+#MPQ(O4WFSZbSPHR`F8l182|vt0OI1mKX5_lMuWU4M)np=u69oLTLC?J z^o?U2*GYAm?EKoA68-ZpXYN}wb5iTgsm}}i?vf4gdhaP+zBz-3+k>8_@v(0C>Py2LJ$& zEXFzj003`fuY)P}ih~Cao^i$*qOfPro{=L*>PF$Mx852tV#L{JpKa>uo1+)~_i?(s zcjMwGnpJ7!*KhvbCDu#-w&K~h3a?){&5{#T+pzFFa>7_uvJR;^^-{x}>(TR=$#S({ z|ID+`TC&k~J(0q**z?$H^0elt7QK)x+WR$b&r63cxkPP+nEK-I@40P}y_(Q|x;=aJ z7AmIEWjWapUL-VwtC;;=5*!7rsgz$P~Tg<*i=&4sjtT)a<0{~rQS^q!AV1Lb-fB-=N0000wv1(~P zGzNhfP$1BWfHS9oD|~G@Tj1q{x3R{3P+8w)67c4f(>=X=AW&rt%fS;y;63w8O$%=j zi0#|)&k4>O+94p2b-C8Vd#0~!)~4KE{AH23NNZXAfvRan&&GZZPL0ckD#)Mo4ea_I zTjmTaj?gRkxWafPWy)%t&np)1j^gW(D*pU);AHLBbs1w=D%K0#%n{#%GM9wBu}zTC zlZyH~w7f*Gp&*deuT_exNS^K!TV~;Cmg*l*O@DteOX~5-qtg?g9dx$9>hb_@wNh=T% z?VBa(0NEUjCJ=%G{8NdtZDl%@q~&JS=jR}HbOIIY6mSBVGmtr)c(9;2U)SS${0=1e zuJw2UK<|Z4iXXpTi8})<0tghMDOhpx_z%Gk|E@vFQ@e~LY=PSL(alQ^&z$17-lg3( zQ0lhG`Eg-vtj6T=B|Sv8@q|esEOR}+Amf^gTf)E!+wm>MM@L441P}+6B=Nj}l zqaFH9ip~2eoapVaTT_MjP7!&j=+z#^hOoGnmfX7j;|IUnh&aL?2&l9y@LF!)RMj^y ziT)Fc6RUKM4;PV(>%2W>lk(B<{Ob6GxU5_8$xy5}pqB+E*Ubhm=q}udvh)!}H_jo=`rKU^>dUBcLn)<~ zUX(C6MVjgKD>mvg3b#8nDcUvZk<+TH9KPx%TYO?L8;^Kvb@5gPJtJd)&^}Wlg}Ow_ z)%iIh8<$bwQi+B-@C$77|1<77Szf3tigpb)&>)57b`CK9sS@wi38y%X28!MCN3QJH z_)W!-xQSvK?WUSTQNpB83sOoF`DiP)+Z53vHtPUvCT#NtrCDvlb&&S>$I-(y=Inwk z??ca*qR2&lNTGi1So^xM#|l5;rkIl2KLdZ=$Wzf6@KP9?Bko;6L&V8(tV{`ZTZXq!T zfe;GWS<_?7$fkCGHc$&{~&6W}u!1oAx(RRvh>fR5%3k zr^e>p@HqUga(jQ*S8+itzYBBP3%oPUp%b%?JH7s9S_?k5^~-(yj1-H6*y^h~Umoxa z9Cvp{yeKq3@hyG;{Mssp5a09dL_=I@SBVN-U@lM%_jnr~Kk8uhMN+X8J0(lT4%nph zM0@DGh+pZuX63VO%9%CZQ~!p&F3~L28O)Mt6e=qnQu+*gmB3rC%I`vy5ON^EY?tQ< zGhh!@YK4Ll;+7$$ay=dvCh(Wic~jwE3Cd2q(6fF)$4_zv#i!!?*IRJ-Ma%75^Ut+~ zI8w-Pa$vzfn=1rI?ez$*{`NTexGAVe=6@U;{%!C`<@oS$VT&~UpB)u?iwXaK1)S$T z&W!F;7zZ054%ngB#?jqPCo3*3rEA+kPw<)ht^Rtl4?JasX3B_sNyB7tDdS zUvkXt@*&pFKfbBa%4?p|$ngehGUeyz(4#hTjZ~$MGcm_rNIn&`wY1OM^vfhE%LVTW((?0a-g<7t{Td z&NcsmB)R^ZyGPnRhepYEMSim*AY8OA{|-23v?abr+A_c$@#<`}rs@|} zj9!zil<4j*Sjmk0wG@|PhnDDkjxs-kdxC2wcvtz~&IwC0cEO^z=Vltc7H|o7;QOXw zgqsY&FwYw)e;$9w3NiEl(5Afb*RR#&$UWgZ4x9%lrX!t8Wc}`~nnu?qkY$-*DEJ*V zGvPaUN#|$J70ILoA4DYSLs34X|A5R5jjEL?K{_d~Uh!Iln$@m(Z5{l_7WfUFvDHrm zh`x!Wn`jxSxBwSU1@o!(w5paXu&W>a2>#%{CY{@?v)$z|Ewf~j&BeWkjH6i)dGz?# zdJF|+{nAd)K&$KG{-#8fHfjv)LL&KTi|L^!e--h}DC$xmQ@x3Vl>CQ(^_=1_ADpz@HuwJ2SHJO7Jb!e0i5%6c6qk;a*S<~ zpQ-uwNJOB$W*PtZvjD@SDY%z*Uq|Dq!_A-#qpV!TT$je$lCpg6>QP zenqvXB;|U7+B%RtU$8w*O|uy--=@^CMq7CTS^iK~Me3b94L4}eVMiV9(&;jq;3iEn zK&iYtCFYS-JC0VY4?I85cj6J9*lkP4*>?7(DfWK4tg0I`Jd8@6P@Lb~F&X08zf{(= z@}M7<#$RVEWiujNyYtFJwDbr)J6^5D){M}82xVa!WjlwB?pxyuOkKT$e}JCphihSX zhot95$G(@4!M$K!Y~yZA&!3>+VbT+XB#ZRJ;EfMF!G1=oe&HET+qhd5KSjQB;3v_f^@{)%+ zu%~MdLtY`n@(41y5&;L){IzJg!{{b@4m~Hxz9Z9@R;=Q(`>81hNs0c@L^hQ%x+dM; z-Qa)3%56+hM?+C9hpNp1ns8QNDIXHmX--GF`Wec?B%g6061n~}7q?E+_W#7fq86=3 zi(Q`@Jg1xYNvzhkPYvd*LA}+T{-9@5Ye=7(%B5`R<^FG|Kg`B!yW3f^Qaatca@Qv2 z2c53>5Sk<=h{4``P^J~Th8tNljEURs%H|JSI@(~HkWIqgumzV-*vNuoTJU07EUNwE zXV_4c?jQPX;(5_!Y!fm!ydhdnWyl59DoMJtd_VJt!T>MfI<#d$zwHF!*P1pepy}{_ zz|>y%C+NxLpzJ1v&YYYFf?U*z;Y$f4K;DFc?&Y9m+De|5u@n8wID>Ny^xaw{6swD0 zG^Tq=T~TZn_3)?zcJ5le!VBdsEZSpcuehlL`)g}qqKdw$Cq75O?r9Q&j|}E<><9^i z5k!{ixRggr1OLpj&ZZKl?7Ue^l5Gcz#jb1Ntr00n_y*Nq_{)>R;jWb0(-8?3Kj+?; zy_?ANV|P-X#`JH6-e!!~Q7r33(Pi(5{}o7<*Aw|xvtacaORdQ+CbEqkMC=!)JK$&d zA=~d@?RzV!q#!cvCN7kiNL?eXryJWk0E@K}u2S<@427+JX^Ia#}BKw8U1j>vfP3 zc1vma$T%%%$~mFa$JQ1081ptmU)*V2Ox#lVmsm#nujLXoB&OKC@m5v7?N8KQS9Wq> z6Zp|LuOC86iZ|F%fqHB1B`UhESjkO1Hd-)Bsu(tLC*8_v<$|IVy2o^;+`Lzk?%Iz2Ud$7uvtwhHcBxb!lczO7W$uClkS3zm$5VayT z@LqMs3b&#!%*rHRAthnUOKNw!kis86tD;-EezCV#UC~DI^&A#q+M+(11@*l&!|e|=`?s>;%8?ok3LSB=D&nLH}Ph3T8W*y}Q^`7&lZ7nnJ zQAjOv@Dt`1%VpVxLhNnK_5TKQ)}Pz}e&8#9#(K#$LF&!2*be>~h`pYMO#lB8~c z_^Mb#az4~PgundVL_=tik9LzGcC4K4d}E)G59V3-4!B!dSJm~IM)we&nnHBf4|^!e z6uW+hhp$Q~&cB7WZQIR$*w+6njq@#T#pICUdEWfOqf-!|uUqLaLxJQccn~aG@@7$3 z^oDb3(_4AzE2qQmS4&;hHeZ7^d9cE0UdeT*MtRLepZpmAC&#UQp(v3~hsn@jRiNvDt_k z_5G!5!%U#o@f;nLP4J!rv9-&?cHSm{lwZXI6$8Jv#JmMF4YwGc*h~*PbbQ%a5Pr6_ z5J5>wak7Cu>93z`D)mntdeV57%q2t@kc#MQv|U%uJGs(dC0t41z|T;N#;I-l2?~u% zt@|@SScaKK3t8DQvd*g!u{inqWMMe7oO-wef-+!t4)##nyc zkl!mtj=S6GU>_gS3n1CIz7A)Z1R!lv#lEh`83xi}%&t-u0g0(CyJj)IIodZNI>5aP zyv6#TK#TL)pZQVT_v|{im@MPieHC>C-2zzhga^|N|4E}GmIkN-Gh_N@DfAy(7X1~& zW?a4B1zQf#9g8i`TJTT257Y}+*R7^D9Re%bN7+_3MCMDSSF)W8di7f#946Y{#D5)4 zS^v#8>a`Wrb1S+bG8494zKPTUi_Dn}FQy=Ds3L2QJlQ9}q7};(IEh|;uJkTo3x4|6uGwRQ0~ZPPI`9pO{1^qbFyv3 zLE~$u=G38nTiwnq6-u)Y5q){;8=2S{Mb7+$)ZZVWreg5mazv;BLb63xT5^4F5tc*F zVHA8mA1a?=conVj?5RakvfikwaH9^F65hO+qgTvXNkTE%qig!oFgx&EKRu~VvZII6 zYoAiMd`k6+T>B)EO}V|-pYQ)lZ&XA*2B3F}@qq1tWw7((`5-7ZR^7mW89Cgr9?2^4 zgr0x!lNk+6-oZ?yZO2r#HnTXsh?CG(q61m0Nd1^{FE)q4wee1XwAc#71-^w%k6WM5 zd+2V4|C_o20^!BhpOi*@p;jnIU3!=OV76s{+jdv+%QJq&Y(j-HH6&o&R`NMak!&-x zV_eF)IG8iMSb4iowf;!|@SBNhJ^i=VUXb#4IdeWdz5b9@&XZjnqEj4bZg$BWMq1u8 zb68(^vLR_VLiMXvkE5oaUm*FNoP4Wk5R-TKT(fsEW?qA_ZL4X`F1^Z8Y*XWbx7V=P z&`4W;$G%edL_<;7 zA7YIvqOKBLqhK-p?5KMaO*?;bSwZH=Gbpr?d#=unsMZLav1hJMf2JzSYKbT=_rZ9T zMB~YPzt7D1-uj8NN@ISdQ(zob#OuJQPSsr>P7*i@3##}lJ}=dMDQ5NVQf6K0BeoW< zjx4B#?LyA6nSXP{9yFVyzR6NQShqrf0o#)+T z2(<8iAjT116GvS@b}BFwrI+pfKDZ#-5~=m{mYd6qxAQ&y#SXDV0Z2Z%yE<>-qIa!^ zqPbaTP+L=>_6iH={rmI8m4lyljF4a2FLk4rEbG_&`>*PWSeKqs|Eti>kmF_X z7-TI~--q$}qAc=6xBLLj;&pEx2S>d4_Pa1KhWSA5!$sh?q@b={@CSvW#Sl#ZPe z*i8;v68jz(HvLMt~@I5nFoF4ATp8DSvRfnwmT@ zHEB1=BNw>#m^&Y}ZxcvA%@ zp9>E>XXLtnr!kN!B`N&n#FEQn%)C3F`S1|=AXdkMCrXPJayDs$*`hX;?pqMmcz7dG z9c6xW!QwqSGSdOlp52pAqwoX_NAx(kSL<%G{zBl^-*^8uAF3uOaDId*q1}Mmg}|U((6?p6k*uWE+SDsY!$)0^r{o|HEm<$3?7xPytOn7 ztPQ4|;$bR1H5%qF{5MYV<{uC3pnliiDqMh=3~a&A4;Sy7yT=C%hWjtsTxbn(y`_8+!*pSMSaHS0I z>APqd5X^X)R@6iOy6X3GfNJ)c+!5D(ZjW!BV|U`bBkdcinyE#`TnQl75`?L3OFrHg z-?$X*8|gvgdBN^}o!2rt2&3+>%BLq99_%zbNHP07aNj|8DXH&^eWu=ayHulsC`DXh z2^ODe5($>DDj6Kgs*?(sLS-o05sw7qB&9~Z)K7+F851=e;OrRe8~GM8`6e+oF^GBz zJXd$Mr|KKZTUczY@8-%kkDk=Kc8npME+3kOX{ezA3x8|#w+-60+G#76#kG*CDH*MT zwE^{_GBM?mCZEXewKbVy-`s8xKG*D7^)}u5VY{PzVr?8b7q@#@{wyW&Pyw|-=53K# z;R6y|NEcYrxf+hM&wD23b|fej#g^9cS2#}4&8k;NLxLnaR+^Xk@`ueBs#f0{Jn995 zSefjlQ}e>AxlZ4s76xs)!-a6%FLP8aXE1YcdHggnCE(`mU}y=>7?;;IB4z@X=}Gc(|j3V}^zr@RX5^V`$5itls6DH1NA#OJZW zv~C?ZCu=>nWy`*8_3MWHLJT4w8zZ*IFLAxc?-@GTLie-7JBvl_KfG@Q0cc^!$hUDX zrTdWC9C{^+b)4F3?qfnLA#T0nT&X2TMMao<>0d{QftB#SOi5eIKNS{GF6IhZ^z%Ah zlMk(xo8%H-mx)K;knD?)DI2TBK)3#zz*91&imG#;k}dz@Fj@v(0AIy71Vofp z^HKrf2QRz+gfV1Bd#cTHxD{jH&Nj@&3P3Yy?nCp%L~(SVJCKdHT0RE$&CEYI5(FCf z^xuUe%h(C8pjprDBeb2Q8_V&Df_}!y0}TL(k`^f^HG)*(x^?1%v>v;)9nY~{x%l3fuN?zx78IiFPU#Qce5O*1-u}`ni9Z zZ)3hoBR}q&qCUEWtsS8Z%J}ysyh68k-8N88UolK)dChx0X~RPlp^DSP>Zcd`GUVW( zkbv8sGY{JsA;IE?;`g$c`cy_N2O7AhAg}$XouW$D$TmSwPe1%{)-yPi9Ceiw;(8$; zsav`@d<@FdORyl&U%5wrtfJUJhP=pE>?_xmwhl#O<;tz{-yHgoh>wvN57%r?M!bjMiTxt+8jhT?a0@UY z5P~h-9nFMRy$%Y7+kE8RW4k@&?=&J@Yt})ak=U~0nmC|i739RyP{D)E!{RluQ+tW0 zmTzvsof|2pnQFKxK7ZN+mC4|Ix5l8RKPf4z1$V}=P=2_h;7D(G6@5+7)j0oGmQ8>C z9c5TMs&Ls@(DQ#`=C0DAmDSKc3J|kj^QZKvVdsiRmkllQ`wU9OCJu*>g~YpPRDk%` zG`8mQ*8>h877In7UBzz*EBeft&~JrrNCk?-q_t!Z%g{eNy&9W4G=x}r@UFf8mqXg> zpszozR~a%PpI=FCM4oLKbaFE(^YI3Vv?rH&6gvl*V=Xmz{_Wxw4#J7LC z`!Cwdw{XrszIaK8dHiQ0M)kVWBu#MDtII+l%NZ#x`C-A)*enT$^{Bo+0YL-Luj_nh`8Ej9C!HM$K37Jn%{?7hv5Qp?{pH=oVGTILr;f z63tobc%YkEml9W+Gh=msl70djZ5^yLP%Bp4gn*nVYi<^##6Yjw8x@rGyzjBTK+R)e zcgmyOt*c2rME^h#Pr0ayQDv!f&xQORr%Z6%A6wL%+A;X7e&f^{JKz4!`)BHMELHQU ziyUUN?3@89@l~Ti!R6HGZhj)?!0=k^-rVbE!f2h=mtOTr%l5VueLs7G2SEAYBf)1- zX>$YM7AODlwzbpnk9y&AB>*$IsOo6#`x!@Oa|UM%u+Lf^4zGUm(S$LnO_5W}?9v09 zw|p`Ck#6?fUfqxkTXQyReM0SD76RhmSEl<8kTvU1B=atERF^OzrIJ2v#c}84YY1PG zo9)>(8r>D92GR-AIxd&iou9`2(XUvxY-C>&_k(q=4AnkTR{d&!kH2qA+k^b^j`htq zBP#s;eqEvKXl^rkB78Wz1S`oJ9KE|9^P^psn36!P;w}S66S|MC8L0Xv+wN+dwD;65 zD}p12_FV6d2F9&kPVNkO+3ZFcr}vx$orgTrHV>UKmK}(Xvltes79}|=QqfYy72|SO zs>fm@c+`LM5Ep~X7lK>j^lNnbLjqGRw6<$>dNKmc-q3=-;oX(4Fe{O<^|&@==vR9{ z4i2Pt1zIUPOg5aYm5Qs=S|1;^N*uC+4~k~U4)205pz)$+j|Qz^GA#++jS>bq@p1w! zp8hNKa#kL)cJ)Lo^HWL17E|%(sth|CzcGsjL=kw2dfj2f3cn!{zE~}ZvGh1p>yR4m z@fc4vb8oByhjy!KoZX4>Bi>r$R&3*2-&nTh>udqUm*7B^tqKLLp7$TgMs3}b0z(*! z+TLA0kE6ZQ0@C4rd@SuM2etVFTXXe@sIYh8vbj5ODf7Cn1vll1g?^2r6JKAvL8A^R zoS=~HH?0w2gEF^8y1Top?kL{ybk)=@@R@l*O0MBw_Ziz@e|B%N*Fa$6UX8us!sM`| zh;TtT@~%qy(Cn})S^D$%@950z~+s0?*<%sViHi^$-5n^X9>mG~5 zO`9dMPK)-E8l^OTCnd38|I++l@{uisjRSTq#=a!GvDzN1`?~diCKRU`%L{uO)gww9 zB^BwPKNfGNdM2K?Y+uStHTaDcpG;EVlyXY{UVL&f$jM1z?)G%i%91KlY}tbE%ZTT= zTvh@jlE=AW@qHRx!VByHgPF;7#i<|0b#VG+vno46WeaRXRP?~Fnr*v(2>_(mXEc%0 zmfj!Ktz-kB+8=%DKR6>qsLG3|(J%TrIZGT?PD@S1z0RxKkZ;BJjw>0^2^p3pRmuQS<`#FW(|6~HJ9R= z^+i+LO8EB-FZrPLIq$8menIjqyJSBh>)pCq@P1>@Umn-=sya++aEObP{E%%q^3~CA z%hrU)e1PlXuB~Q?e|Yw{!Pm@;`pM#*n`4S-!yU{b51Zv>C0B4ey3ME(o?IshLEAKw z!M`&`+w1jemnxLj)D|9@&R;Gz9JF76{5*W=tQug@yofnl6L^5!ganlBF*iu=vonRB z820u+5~!2Nv!J^&@~kKz9gQ*N3M0}W)humfIC2d4SUU_>Tol}pkR)pI76TR@%I6(j z#LVV+R&Z`Zyr1_D!yh_QlRtgr$~SI1HbG_Z5oHyfNC4y3^{WlAi#hSAIQQq2S6o$ zb#(AGyessbk=YL)#kt)3WysGio^#nkj=H2TWv@%54l|5LeiVz#+BX~bC@-uVq$gcy z#xl0yKC5})dcVOh>i-Vd7p+}C;lo^Ltt7oz{$40!rh|jl*9gS8@@3VcljPc7Kx4`R z%lYt8NNSB@=&omRx0j@*#b+;jivL=Sl=TA8sKw6iH~S=T-{C-3vV zq-!PpSM2Fez6`ILsP^rhTN$#V((Ca~{RxJRg(g-FpH*JrJ$w7uf#7yMR`c1&BmaAK z_4P|C>Ct7W8EXB;#ik2?rrWTy$;l$Jp0OX5!7Po@UwhJ19o;M15KTVMPA`t!xjv&d zYdwntUV~@BPDw`fHi<9>28NXTEGf^N4y#n;IvG{PQb;~FP9zc~3`#~5Mgym|tje4M zwwsz5IOXn4Y?oYR3xqa#bP6mq5rc`_Hls~d7gMNP<13ssmz}H&Q_F@`3FGcrRR6HW z^1=mzBEi8N>Lgoj*V~rjRKLA7A<(x)fKk&3j%y;#LBr*HWR>vDUWsbd+IHpbhHb#30d+EG*~#MLopcE#c3YV|6zJoHb{gUjWuv*pwn zqmxlZU4m!w=(=PRB0DE2Z_zW#7+!tnjP`ke}BultkGMn8d~e5KP9?3uG+l3 zb?0EAv@z@GU=go8$1c4yv3O*4!c=467>}SY`K&X-4VLwtaM$TA!-WP&;=^*M{>;uW zR$hSC=lzG(DGS;f)R4V3N4-2+Bb2&L&-3I?Ki{xWvxDT-& zh170e*T^#%XL1x)dy@QVxqW<#6-l-9z{eNw6;oB}ekfD^hEO{6WN+Aa26yTkGq$z0 zd96<>4Vx)VrMgVC#a{?knEmo`^~JG~&X^4TxQrbv-N~G)I&a8_x7~`VW}mt_Iwo25 ziD+lWd28AQDu4p_U)o()d}P(pHv9aVirM_9Q%!w=zUgJq8rM;&;l*u0 zGw|P=Pd*k#9N)WndCC5%E4OUn49UvwXISKOkzAT&+0PvD(VypsJhax0gW#+=rR+Pc zU0a<+P%e@jIt6;1gc>36SvOK0En~S!a=+P`VnaE!Hpi{{*IV)Gn<=3n@whWO?^w^3 z!eS>CBd>Y+PHrFce)@t)-xjz&2@WdE_b_O^1}zDp@WZBq%K`^nL3gLln}>$w@fLa3 zSx2TnU*lczFLGlZTX1&1jVcmYgeV0#N2a4KdvO_Xb~mN`j``^(CXgKv98MOUn0l#C zM>1#_jeed=T}_?hDr;|8D)W5;C_pHUe^e^aU7>#rNFY$`Kl0N`s{6d3Fdrz}_ZTDF zO%2857C&YJ6|rWvMS#KkN+{RJ;Gf)}?8DcYZI-TyYT=wk`PqvVC()2jZ*yjpIe10# z7?US!19TBeM4lbRrKXu;7BU*!=1CFz8=zS#l7RlQ>oKSB9*C7962lAP-ujv2>+Aoz z&WJCVMYx99HFuw*p8&3dj$NNW63?P)IL;lD1Mh{j&5d9QKqq#{ytj#XOCwi6-@{dj zm7cn29vcHR4k;aK4LII4Os1nBE{dFF5C@h{bZIhI`{wZtvaen+5AD#@`J!|^SEr!v zsg5j1X#(I*PX!VPL$OkQ+k0TtOIo#NsCi7;gw+cQAcDd$EJ-S5xW+pdFuWvggDnh~}L`lIe}u;4UA{VnWoz+}bwv^|)dvU(sbjdBKoqR5H8 ze8(E!-T4xJbEn{)``3{rD+`0ZH-)qCY`sBGL;kR!my5#~TiH_3mczXKSh z-lg6@wo&<(TsHU)Zn>yt`ltSi?1G~HyEJTQX+ud@w^pUNcyeP9ny<}~8-D<9P3dw= zK4*P%1@NyuS+r*%EDWt=!96gx5%>evNsZudWr$e&ryH4EvIC3C(g6=kKUyR^74$MNt{_P8H;~i;M6ykbr6oZL^9Zkyq*7c zoueU1VXP!+B%UbfKGtnEA>;U32W2&rxi-}O>I&XUr%!P%=wquJTjgOU_0q+fn4ovi zBf<9XGk~1#KPYpf?}j9PO&^uNu<~?4egSJV>P`67L^F3AUX^cn;`YF@z}S<-hQ0{o z!rzMT*`Wc$#p2Ni-6M7y*0j;K3Kt5yrn8U5y-_?ea&$k;_}Fo}K_ge^uBVu8kCL!$ zfsWbG*-yoS<0AGuK|We#-1!{ug-ZQnK5UWf7SB51EQ7I@y^6NDB$Hk1@7QEWP51U{)PKnQwk8s93`5^&wE{RpyiFfw(NBBTrZy>YZz zH?*a?h{YiizEe%rqohuJMa7{`H2fALX^S+0b?4A@8&Yv#SaOHh>Q=Vk^?GMe`!AL2KmK|#8uyW{QQN3H zr98zfO9fsi-4U`HUl%dApH#O~{5{~Fly$tdXvNS_R#~qAAmOxPjMG}rW_LY}OXp2s z+UM7VqD^2XQ$LUuKOMwW+!|s1`6)JL6jPbJsgEmxP4Z^T_#tUGlRnvT2fLNGzYHct z5qs07e%R0n>)!cO>$#jae03v?C*~)4U7PC+o@F7mUk(BcjTKFKm1@ZlhLJn%m8GIu{;x}??q2NY0<7iYxMS~sp+S~Hvl1X0#6f-7Td8aJ0Dm&#MGpv5C99UaZ(3?!V0d8p$G7A1#M2RtUNP*C9Ij{ZE7| zzFa?pI^2~3h3vCnG)uy@8N>~B?g8h5{7G@aH?7OZr_Q#SLu$14IW`5E*(3tz ztGR(TBLtwQ0ZZCAkcL1;PJmp(fyThs|7Oq8HctQ;xgkZj0N$yY_p2|)MXyCd`p3s> zUH+^J2n@rAYP=t=HK4OcHnRRz#_(Po)}w9t)wiseasqVz(Jjo|)FPW)o#V4CIdrUE zS3*SCF%06EPqEy?>?&gNq*Et^Wb6YZo4r)!u0sp@vDtUTtuC#14npKKQ`TMMRK1|G z_6?$38ot^Si40XQ$wjy0_gPu`ZCZd#YsOOd?Jha3bsNt`bu*g_k%y1eNn9s=bY#KY)zM*(J00E4hUw=BKaqn2b_#yz+UVmLzx)0GY~Na&>C(5tg}$cBmw6 zOXf>_=E=#)ESMiZ9ucSarVu>Zjv+z&O@CBuH&x)7`NqXP({17Kc4_H;htn!T*Esrh zccY~Xtw>D}tQ3&lJF+)OK8wqUGvb|{;u)pRoM{raR|2YSY7GTw%q z_>CHN$(;^~Cu5n>guw}gBR7jsm#k}y6r^cAoZO-gpnxBA8`W|f`4NA!7?EHbXPUa4B>u` z0#^RHu7tW}=)@&bdV`?JSSZWp%g4}woxYAXMmf#q*^QvW%S+K-d+lAj>uIOK+iuQ( zyubS)B-E1j`tq8RCD~pi=2FFO@S%9fn~ggqw^fho|NJeb-^qz48z}$ChLW|aysfV@ zEYG-4Siic1A8KF&-TnI%fXB%OJcCs%1!^iZ@AoxIyKh(M zoBjEmnXo}<-XtXHbNiLOE{&XXi)-A$;f_-CL?;@^&|$F9wkq6_rzLP01v8%Qi9%qO zpH4SzF4!ygH^1%+I`}zXI@`C}>wlt+zN2^EwPBCC!dU9mdU(c~dO)J(8Eh}&Z9S(b zi;d)<+DB$9y+o!lhtxeiD++Md2gkrZcKsI(=P5R=JUNSNP>w?wS-v^vs@ zG<5+w)2V7!e3f;3n+M`mbc&6J_vN6`>hB730!N$~>|beTKp_ zjI4O^6OkJw=f~Bq6qjC{OM_vi_ud-QI8X(atL=&27vQZEU3efHvfFyJ|hrWOhprvHWz$?rEB}-$J4v zyS1+x-fILy_DsrsJ>?&(gPlD)x{(PM%nx6oQF{VqS-gI0r!jK{)2=uD-mdYdYE;7N z<_iSkWzaTqWgIdqe`lCdm?!<-O$-%$oBtSp8~i(+yxJ3XS>!T|uUTX?uzeoIc4qnZ zT8cr}YnZ*`zsR}~?NnG#k;7-Bq=Sv*hh_B)x&tyRaWdP=W6s1tm$gyZo$w+VdwlR{ z78eyuP4Q4_7q@FF{k2zU{GrF0aR2y>efFcY)fa zMYg_RP&%&a`ic9bJ!(VZ%i6NmU3?u5E%nw(lQ(304`m%WdkcT}QF0mV`g|Ns5LamV zlnnFuQ=?l_;Q~cs@EXZJo%Ls%4kZ%;7G^D?F-!a^VlxRv4LZ&Tc%$LA?RT%zn70dr zB(0R^t3AG*wJ}KZL;Pjo*QTP5wiy#^7?xEch>J;IBKrAHJms?=R##P$W|GQCaD$xL zfy}S*G)hfyxVdC32>Xjt+rz5*E+~2*)1=!a4IJ8EU#aLiBq}?)JFK$njDFs>sQi|m z>1QV^*57skGXI1liY9Y{c%TRo-2z2q2@uoF7A%Up_(p<&I6gKs|z{#;zdnNnt&cSeLQ_XVMfl1OPo`Wx31 zCOj}hsj(CAtHld^uQBE}H*;D^UcwL6Xa$$LY^XrhRI!JOsi)^03d}c(B}mtjH*0^K z*VhQoVmYk+%RaFmFuzV0^mzy9 zi@*nV$r-`cT+KT_R_6A?zZh%On(8G7eKg2S4qv}(pSU9o6m*3RFA84}+}g@)5}{sV z>qt}>RSkBbKSqs~dTnKvMUdP(G~QX8$>3%>?rHUW9(n|21Veu*3#&$&m_7R$kpCIh zGnK0-c`X3W5{8t46H3zF(XOYrZf}{qm||Gs&~Nav>9dWs?lk)VU!1xGEj8QbHx2ch za0H~h{t|9X^qx-^bZWSaarys(v@1L&?aVR%3u)J1v}7&)>ojFd>=UicbfbUaY_uW> z1mN+?+V7Z0>U8-)16SoIieYns?5;MjnS5TaUU*DN$|!)G9BsJ1i`|9Q|12zJ4&reW zd$Y)oZ~C-6UD8FWc-_8RUzhjT_D;zY-&W5hV+j+t5sRd<1>PO*2nbqZrNC_426nY% zUvXtQ2H!L;RJn#(^iOJ*O@ZpC!4O}H1DvHMC;ll{YtU{UQ7-u|pEV^AUp01?cdu=` z`Sp4UCZZp^v1*p(l4^NOePY&6j07t;=<%`m-IS;#Z`S=d+bk!Crx!K^XQ;1nTlQOJ z)V;A-83gt)=Dz8!_jkQD%4+i$j7rg^C9Jc|(dPsnvYO)p!BSOUAlYjtJauO%sd~&` zVN9g5xFl1N2=Jhj8`4$BJZNtlRWASAuJGuch@hPUl(A!D^}0r1R^Otvv?PKzy+0|E zaEZ>uZcoAHoKNBxlegd@J=521of(~R`dHDF<_m4j392bJx zk?!s{FV=;PK{bK|UyXlw_1FO-mqAe@H$}vlt;|{``4oA2JEj|$l{%%9oMg2Bv|YQF zo$mAmVrEK>!t_bg_EHAb`_x=^t^2|z1?0aUo{?S}Ltw;Tv8`m7q^wn`dN1q8j;@oy z?cU~tny=N^)BTFj+1@dW6<@y2tB1>9*MhDoOnE52ouj7XlY+G@+g7DAYIyB7GZcVA zFJI+FIKiJ&pd8!roUPTEV(-2)wczm+M)f#bE5n0{zi{|F~}f& z9b#sP2FCQnVlx*l_pt(B9MYh?D@X5<4FhO7to7`zJSlE*h#L$ViN{uEhL0zGa?4B# zYm3Hxkhmai{RdIzA-)~@{refBeueFhMi9qSS>j?_o4>z-1W z+(+gBde{3u^Jn998rAH-@_c+L00zMM0IYZ%A6(l@8ZOlH=&N?>e+GCX3#5O&V>jMh z^Wc+*hped(`C_ky&lX63R_k9UG>Z$sw_?w+vZmy?j{f;m;m-&vDztBpPBGj5KarFM zN04+CzrL*#IM~d0X5#-&R{jgV0L6Fa7gSF{fK-}69Q^tpqs_l4KY+;MI40VF7Fz!~ zrokl+m)DPz4+a6w48>;2eEJ0dF>v?AzrO$LBvL*2+%W+t6}Ox-)OvQr*wBvA1@N18 zT&dUxX6-JWlLggFr04siWxI*{asKmQEx>%Uoo8wX(5A=T{EKpI#Zb5Ys3#KnRwQV) zpu29zG$e2>9I+d|sfeH`;#a(m7(pX!p`3S_|A*EE0a)4g+(DVS@U%&|HE`?W(R>Mr zl9B}K6rrabXJsqX6U^@+EIE2r?Z#vfrPz2c5PHxE-B5+^I2gHROt!}H9A7Bm{{>=bvy8t?6tBV58oeQ znXNtG_lSVtX+EssHu1VP-^(HE8X!SAQe(JD1q>@=lAM`3^J2B?TlK24?)w4dW?tuX z_z=w>wZ>NVBu;yl8yqf<_Nqb)g&20KVRt5N&o=M>t=)R~veYTBpNzX$FenUdu8SMM zY`i&gqg(YpPJUj>iGD2p)m$>MhC@QRLP}bi%O^5265B>;Ji3+81KQj2pZ3Gf`R(7) z$u~}E3umWA+uCGypYzpxER>n@XDzFv$UHsvSSDG753U0B96kJARvkhr!nsoQk(Qdi zj>_>Y1^xAewAjA9)HiLJ$(Zwf^&-s#@poia$;tiF>qPiPm*(6$x5J65lQ=bvvkPX$ zFKGk>!n%K}q#wTC9AMMzQbbW+m64P$wTYG^KAr5Yqvq=myjz`jsM8>KhwL%&#r&pE zD`t7^{1`8238Z7=VIstR1Zo}l$T;}5&>CCP;4Q=^7?qNBG-(-rF#RK#c7PBMSw6FW z=OrNr|GKX^o2)fOLTM-3-TDkrU((%GU!z;USXZ{KD2Oz~4m3Zj9$-0K6*>6<#_+6iGeo_1cdAXUZ;IA4; zQ#W}WIkR;z`^~-{D5@X9s+0bT@og6A?DI@HS5(#L<~_Y(uCo|0Vrtx+90;)7J3xAW z6QljI`j(=IkXzU<{_d!Ux~!wKfK?*;h4ngZ(6VtpL};#wHUnW_@nMW1X>pUM#K~@? z1kXjWUl>io^#)g4D7-=|wJL+guL^x?x9vdnbcYA zY4@-uD6jVr47qPkdJs=lCZ!>4pAH0^UX5vm^=DxX_DvD)bk0%LY%HzM$;t;!IDmhG z7Nihs;+C9o3;_l4} zJIQX?9qo)2hYaG&Ss)I)zkX62A2!CcS+645-R&*=OGdmn^Ycfk6i-$`KhF|nqIege zY*Z<7$x4(C!LM-L*?Q+iCP=~b0`DqkaPap(s=~gUx<=__?0hEc>j!;iKww7Fj>SW$iGWr6>29IQ`t_qAI_TT)f~yi6-pq`f-*tf!R;)!KPmFX2a- z{sxZs*sPu9xQPE(D8}eNQOxYqe}iJ&{u9L%d-R&NZ3j!*Bi{4KIj;H9{XNNnS$j#| zO(%a&L}VZ$#Q!q*Hy|bfQ5HU-c1(Q@KD7HWK2T{8Z4P^Dm3Q>nebpJlk0_z>hQmVF ztWA|A^J@4L1G&u@#G!%tenCUtl_@OzzUV$lH~d|tE57oE;sfRkoKOrtB|&FB(m4z8 z){ZuR9hNQrR+6Y^y^^bgd1lRMa|CfvrEExOKz(BPI6bvTCi8uR0rh5D_Sy%9i_3ai zmbE@zPQVh!y8rWVSd3b%~fEpLI~W&~|Fm=E@ldXRdkRyOl&BDu zOl9rJ60*kFNtiL&jwNJlg|Q~mPEulQSq|A|ktJd5*~*$_Cc8oyYsr%Ry&s)Ay}xsQ zzxVzBeV@PPGtWHt+|ToT@B98<_jP?Qxw`Z~KX=PL=5m6)q`gz*hF&Qzi&u!APPt~C zIm4N7R=b4buA`U{!oUQ|13?S^;uX^%glp<+=sJSW&NYwe__{|#TI7F(9;3y4*i~g_ zVVD}nO-?7;tvhgG8`iY{9iV9Drl{%s{(LgsZUI>ucvaL&J9SS3;#~4+0cxqL!N)6A zx3_0BMqOT>iZ?yw-(NCP_Pl)Bptkl&J{o6!PM)I|!dR$D>Z&EvfN#LV-piqT;yY$+ zE!9vhPgpn=ws2H5Ep@5WKbr_Etgj$ArH#cUJ?>4}y!wGT#x>F3Y@vLq!la-`E@5(V zH*g!+3$hFn5b33CJdWQ>3UzVYIhEHDKAG~q+$TYP)4+J*4W2-c$oca2>)bouE2Q@F z+lM_{udb8|oWGqo@N{Wp0N6IPk5YE%lLzlFP=LCs10~+ix}5oVQmF3IVcAm;xQr;7 z#AHHfU_4Awr}o0F>Z(+Ft64$r)xq2QixO{yko{p6uLVt78kd2Q zM21XWP5D>X&};WJ#6 z0bZf}bBtY7zS8_y%FzV)S{tI~3kz;7)J11t1rr!EF1czP?x9#s@$3lL%v$J{Ky=Q~ zJJDjJdlGTx`Cla(WZyT+RlFD1#%wzp2Y?oj{f?3IrqP*VZ^y4{uk%FDz@5~)JOFmk zT)2w*W{1(eDKXW3nEPThMT_ zbcyKl>i=3=53DT2GMXt$ZN_?%2WMRD`>O8snx|P}c~L`gtux_T-OhKy);_LSs(7O; zY8?iB7Ks<6^hB>JtaDf_!LUjRed&+xoI8Z?@?P$>xib*UHM!AYUeS`YxSKpiZt1Ne zEsP`lc`c3!t;r6hFZwQ8UhL;J-sL%16Bh{BeeWX@9&Tj5jBp*JIaz{U|#u{3$ML6*x75$CSg8BWImX42I81u;9Avn2aS)cdu z>sw@Z#kC6a>xLr*Dqu8pT7nETY(beO|F`Y^&iQSxX0LmzJvvNVia3zbnqT5Q3s;oy zcjYYFN|&q^8ctLw0Vye;7Ouwb>Lde~W;0>QQ}a5%=-Zue^t!=}$5=~jc>|qh+{>5P z)IZ5B3uSD2;Ioga2Co`!a9r8ftMR-t4ig9=2hVDAhe8fGN$AR(^^2-g;h*)N$$VVR z@gpynRJ_~>@cWizx@lT9{})L=aQOm3b!PLuLv;7)z)2li#d0v;eI;30u5Z02J#VQQCnDix(x-sTyayz>tXVpBnY4pPO;_vu_^@W@ zU-_DH?-8D;zhrW)pWi_bXJjE|GN@{%FX-+oGh5bmgj%EUeIUc6l6hLP0&yQsO>pO% zJ+;VRO_5rXiB3j)+*CKv`u6-bCkzWw2{4)huVTVG)0qlT!3Su3SP;%_c*kZhRynIL za2u=u`Dd-~R@P23Te&7l9f!dRssPg4PX$P?Cnf0`9F|!DczGIkt2MIo^I<6MPpa0o zLh9`WY4*_^em^jLM5Ewn0wYvD^&hO0QrZxmjA3HSU>6>S;RPgo7f{g?@1TSC2{NJs z*ABsy*O@E?sH$mz4oOP}Z~&_GRIysn06G7P@Bxe)%N#U79s1XhWDfA;|!~pm&iOkDmeb4OHO}73Kmdt}K3L@A(sYS>P;7T8G5&GDnWGBRzS}$(Z_3Z;H_pvH+wIk)O*nZXmFbTI z;2P!Q$8z|4+M(@4&)s}aV#-wt5GU5_=gV>hxx7xcKMHWKA$;w%scQvFH=GiMq`sLARO`an=0MLdkYIa4E?-`R37V`Xwuva&e-0uPw%!Kv3f1eX^JAH^wFE`Db(uXP;MO>*#_9f%57T+zIH z_iod>0w*7zuF~zW&W>E$`X=Iv-D_2Bl~W(%crWv42Ea zsj=Lo9#MjWkX1RTwP4@~AhzHsAhQ9r%$N6K)*-FTMhFwltk5;qL^vO)m%cU-Bft}y z)XJ)C0P_vZ%AyzCM~ECuc^Vq>;P^Y*|3Mo9K4(dj03^We>+LpoMs)e3pbN8~KKxTC8p+CrDzQKC!8np(|n!`6<-BPih?UmT?WhzjoNDF)xZ z1pKE@p!h8&%J_n=dUO-0#q*O*$w+!!lu5s*fqDtW{5wqmw085Zj@(C$6(U!{>HfA3 zpT1;Jl!D?mL?`dQ|FMnF5q}u`T6umirY(n0#K0aRVo7$4Xh{;;<&Fy+3Ny?(sHuDg z_hV!oV*zr5BhPd(Y(yb?>~Wl#DbE)80!GzH_L zrdFW1RHTvqeEuYkSOHEuYT0*SH#{&2^i}Giu(6lhVGTL-$L0Zks68%1bKEe4vp=?8 zpnVW<{QYfh1$uUWMPMNEFMU=|fs+Xeykr+i1p9-g{~P;DQl|g3pY)Hs8)uegL6&6NPKcJsWJ|)<`Mo} z4sIvbe_AvTT5f=#tupl=A{=^I%BuW1{41dBbDtA_)V?GX(e9W0u+C2)t-f`SroRV> zTh9xLrAyNF>;v@9Zy2v~W(k+`^Xw!$0h{ino<=B!4Nil3+uW3WnjxY`?wCho8IPIjw=3vKi6d~8r=kicqg=^;S=+;FAn#MxB0$A;Ek({?livkoH%|$i`N~sx9o|g zridB;Dn=2ouD;$={*7^kHIME$q%j#*ixw!hPJnZxZN)J@tcu;RHme!S_6dhile zTUh3R;d7h8=ZYKgJIQ<<=ovk7!)zs7%X~*y_g1-u{|%fCxC|x*tziW(U8G(JCF>YC zAcyulYAx13uYH@w8~=%OAzWg1$1W8?$rEqq^O~CV-X!a1Q{=udO>AW+3+JtnFKa1e z!?wUwDIw@yFO|#lAzNX7LG+y!yQt8y(re zkh=>-Ej>BZZe4JuPb9!7ep;wfU1u{U&hm1yg=k@bvVh_t*J9|t2*H&h<4*KK!stXD zo&=AM@M6$Kf9R}kUr(<w*oUHcU5CNKXZqR|)LHCB%$*)juX4Ay_7Yv`qho%7 za&!@(1%oLo?8W5XuuH1KCYDgkMkrMNjKcHaR7r)uht&m*kaI&4g{{N#qUL zb4RC}#knl<)O|$5v|kfWI8!jM&n0jtkqw_|#yBPj)nd6GU>3`A89Bp1^FdS);S7!- z4ZU5npaZm9rYmNoePWJUFWEG)lebZJKE9Xql;R_9mS5yVdJN~ILQ0T^`Lvyl?N^d^ zXKwrQz%G_&>M@us9$(sOO~tB~d;intEGZsB_Xjiu1n{Cy0z{G~0y~V*f%WBu#%m}W z4Yg10+p|8#m|x+^KkstJ9u5UfCUMa3^M{+h%p@j9Vu+i6YmWRtpQx>Ex*82*n$x;O zc40#1Dw@;d7I}mJm zMK^+O7aJe{SS7(6ha1|}$qf0LPUtzH2#mIR+Iq1kBGvDep@MDu(GMm8@kdi2>(FA`Q?0g799!iiBBtr#_%cIJEG^HHZmE&tfpVMn`E}CN65_T z4igdu$*lTQmb%HNIP|(-Orn_JI=X_0wC2Qi*k6}h#yd;ja>3rnUdnjd;tm>sb@JTg zoYYz5B8?Ukb&?uvEf6vT39O~isg#?QAq#218Vo+%eoT~S<_pdE(Qx;bld>Yr1CA^1JsSPEFAhTo&8W-XO zZY@7`*0}_lE!a6o-hiO*l@y>vaw%g1)zmA%Z7OIe^ZO64X#Ts*#js61I>_%`m>A@P zIlm2-^NLZ5QsZ_6)+K~R9LkIyTuvAi2gT5s__@j`+sa}8W9s~) zhFhpd`!m_But}KlBNrBW-ocNvw0AWaBaS$wdd~pWo$ir2kTfN2!H1)JV+lnzu_5(6 z&@W;9p}&F(7;w(ymdP2w5A%c*H@9%Hvy<>ivW-;$CO@o2VUde19cN25Ns{Vo|TSbUkvuxEg!W7j^He zYsGcA9)j&|THQ6X1?rwJX-zLZLZ)vF%+;{ir+r zvW^`lBdDmNA)cks3|K)EXtM1EJIU)auXi%4-;@*&IVr*rWj}rS@`k+}S3@?IfIHk7 z+A9C-gw+H~_P)2)ZF@+xDw*T9*@o@C^|y%2mR_70ipAfupDlmm?dGMp0@VOuE&F-e zy|qW0CYRGvfcc$-l<$Pa(&t`Vcl81MS={1v_lsht`>;gVSReJ(aJA3y?Ad zlha425--NmJ1$fg`)MML?K+MvH|RO=0n1Diqx4T7=iD)(KbO`Q??FUf2IDXNbc3gG z)r-d0NuyHJ=C(l9_}wxN`j^kxXSxM)A$CFuMyY|{t<$V5{&b^7Q-O_~4Q`pHX+=HD z{Jv1`d+EX}Fc6_jNrd;7{>>9}QO=&swSe6OUj-e#OlbE^cPB8Es1jSUkPKU1Y_Ng@ z96v@h2Bm@uW(Lp@{FrjJ5Po>R2Qr-i#}6%PvREG~@RnuC4+wI(fZZ8T=-}A9kAG8% X!DzdWs%n=6^o15uUoHE*Rq%fSR|}=n literal 18003 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 A&;S4c