
正文
开涛spring3(2.2) - IoC 容器基本原理及其helloword
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
2.2.1 IoC容器的概念
IoC容器就是具有依赖注入功能的容器,IoC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。应用程序无需直接在代码中new相关的对象,应用程序由IoC容器进行组装。在Spring中 BeanFactory 是IoC容器的实际代表者。
Spring IoC容器如何知道哪些是它管理的对象呢?这就需要配置文件,Spring IoC容器通过读取配置文件中的配置元数据,通过元数据对应用中的各个对象进行实例化及装配。一般使用基于xml配置文件进行配置元数据,而且 Spring与配置文件完全解耦 的,可以使用其他任何可能的方式进行配置元数据,比如注解 、基于java文件的、基于属性文件的配置都可以。
那 Spring IoC容器管理的对象叫什么 呢?
2.2.2 Bean的概念
由IoC容器管理的那些组成你应用程序的对象我们就叫它Bean, Bean就是由Spring 容器 初 始化、装配及管理的对象,除此之外,bean就与应用程序中的其他对象没有什么区别了。那IoC怎样确定如何实例化Bean、管理Bean之间的依赖关系 以及管理Bean呢?这就需要配置元数据,在Spring中由BeanDefinition代表,后边会详细介绍,配置元数据指定如何实例化Bean、如 何组装Bean等。概念知道的差不多了,让我们来做个简单的例子。
2.2.3 Hello World
1.包准备
aaarticlea/png;base64,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" alt="" />
2.实现类
package lqy.springh;
public class HelloApi {
public void sayHello() {
System.out.println("Hello World!");
}
}
3.beans配置
<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- id 表示你这个组件的名字,class表示组件类 -->
<bean id="hello" class="lqy.springh.HelloApi"></bean>
</beans>
4.测试
package lqy.springh; import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; /**
* Hello world!
*
*/
public class App
{
public static void main( String[] args )
{ //1、读取配置文件实例化一个IoC容器
ApplicationContext context = new ClassPathXmlApplicationContext("helloworld.xml");
//2、从容器中获取Bean,注意此处完全“面向接口编程,而不是面向实现”
HelloApi helloApi = context.getBean("hello", HelloApi.class);
//3、执行业务逻辑
helloApi.sayHello(); }
}
5运行结果:
aaarticlea/png;base64,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" alt="" />
6.项目框架
aaarticlea/png;base64,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" alt="" />
自此一个完整的Spring Hello World已完成,是不是很简单,让我们深入理解下容器和Bean吧。
2.2.4 详解IoC容器
在Spring Ioc容器的代表就是 org.springframework.beans包中的BeanFactory接口 ,BeanFactory接口提供了IoC容 器最基本功能;而org.springframework.context包下的 ApplicationContext 接口扩展了 BeanFactory,还提供了与Spring AOP集成、国际化处理、事件传播及提供不同层次的context实现 (如针对web应用的 WebApplicationContext )。简单说, BeanFactory提供了IoC容器最基本功能,而 ApplicationContext 则增加了更多支持企业级功能支持。ApplicationContext完全继承BeanFactory,因而BeanFactory所具有的语义也适用 于ApplicationContext。
容器实现一览:
• XmlBeanFactory : BeanFactory实现,提供基本的IoC容器功能,可以从classpath或文件系统等获取资源;
(1) File file = new File("fileSystemConfig.xml");
Resource resource = new FileSystemResource(file);
BeanFactory beanFactory = new XmlBeanFactory(resource);
(2)
Resource resource = new ClassPathResource("classpath.xml");
BeanFactory beanFactory = new XmlBeanFactory(resource);
• ClassPathXmlApplicationContext : ApplicationContext实现,从classpath获取配置文件;
BeanFactory beanFactory = new ClassPathXmlApplicationContext("classpath.xml");
• FileSystemXmlApplicationContext : ApplicationContext实现,从文件系统获取配置文件。
BeanFactory beanFactory = new FileSystemXmlApplicationContext("fileSystemConfig.xml");
具体代码请参考cn.javass.spring.chapter2.InstantiatingContainerTest.java。
ApplicationContext接口获取Bean方法简介:
• Object getBean(String name) 根据名称返回一个Bean,客户端需要自己进行类型转换;
• T getBean(String name, Class<T> requiredType) 根据名称和指定的类型返回一个Bean,客户端无需自己进行类型转换,如果类型转换失败,容器抛出异常;
• T getBean(Class<T> requiredType) 根据指定的类型返回一个Bean,客户端无需自己进行类型转换,如果没有或有多于一个Bean存在容器将抛出异常;
• Map<String, T> getBeansOfType(Class<T> type) 根据指定的类型返回一个键值为名字和值为Bean对象的 Map,如果没有Bean对象存在则返回空的Map。
让我们来看下IoC容器到底是如何工作。在此我们以xml配置方式来分析一下:
一、准备配置文件 :就像前边Hello World配置文件一样,在配置文件中声明Bean定义也就是为Bean配置元数据。
二、由 IoC 容器进行解析元数据: IoC容器的Bean Reader读取并解析配置文件,根据定义生成 BeanDefinition 配置元数据对象,IoC容器根据BeanDefinition进行实例化、配置及组装Bean。
三、实例化 IoC 容器: 由客户端实例化容器,获取需要的Bean。
整个过程是不是很简单,执行过程如图2-5,其实IoC容器很容易使用,主要是如何进行Bean定义。下一章我们详细介绍定义Bean。
aaarticlea/png;base64,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CxVFsdlsL7zwAgCgpKQEnj5gwAB4Tb19T704lO7oAADC4XBNTU1+fn5WVtawYcP2799vtVpVVZ0/fz48YO3atXCj0fuqqqrfNxwO6/fduXPnvn37kslkTk7O3/72NwDAqVOnIpFIXV3dP/7xj2g0mkwmde8NoQgJCelm07VF0a5de8LhcFa6MegAACAASURBVFVV1YwZM0aOHHklI3tisRiEh8Vi2bt37wsvvEBRlMfj6dOnz7p1686ePXvo0KHBgwcLggAAqK2traqq4nn+nXfeEUUxKysrLS2NpmlZlhcvXmy1WpcsWRKNRmtra1NdGVDvguiBstLSUo7j4HZmZiaO49OmTevfvz+GYQUFBR988MHu3btdLteYMWO2bdsWDoebui9JkkuWLDEajWvWrIEoqquri8fj//rXv4qLiwEAlZWV586dAwAsWLAAABCPx4cMGdIAlihAh4SEdLPpmgfooKZMmTJ69GjYfaIoSlO1qamp0VMMwuFwZmZm7969YdM8aNAgUB/XWrly5ZkzZyDYSktLAQALFy4MBoO1tbUvv/wybNO7d++ukw8G/c6ePbtz584zZ86sW7du3LhxBw4cGDp06K5du44fP/71119/99134XAYelo4jk+cOLFLly6TJ08+cODA559/furUqUQiAX0j6EU1dd9evXolEonUIOSnn346YsSIXbt27d+/f/r06YqiBAKB//znP9ANGjJkCAxdgnoa6e7RjS2EIiQkJF3XHEXQHZk3b57JZNLb3EuosrJS3x49enSHDh2GDh0qCELHjh1Pnjx5+PDh/fv3v/feex6PRz+stLR00KBB33//vd/vHzly5MGDBw8dOjRgwIC8vLwNGzZQFFVVVQUvG4lE4vF4RkbGp59+mkgk/v73v4fD4UQiEYvFdAAUFBSsW7cOADB06FAAwJ49e1iW3bp1azgcfuONN4LB4CXuu3///v79+2dnZ69evdrtdpeWlrIs63Q6u3XrBk959dVX4caCBQvC4XAsFnvjjTd0+sK/DwrQISEh3Wy6tigKBIoBAOXl5VOnTgUAwCDVxb01uqDDkUgkysrKQqHQv/71r6FDhx46dMhqtcJGfNeuXQCArKysAQMGAADC4fDBgwfHjBkzcOBAAIDL5VqwYEFdXV0sFnvuuefAhf1AOmw+++yzrKwsAAA8BkrnAc/zAACTyTRr1qxkMun3+0F9nttLL70Ej2nqvvF4/MUXX9QTEPSbjhw5EvpJ8N14PP7ZZ5/Bd1977TUYOUwmkzdJaA4KoQgJCUnXNfeKqqurp0+fDlJyxlJTmS9WWVkZ3Ni/fz/P84MGDYrH43V1dbDJnjVr1qFDh2DuAGzB161bl0wm586dW1FRsWfPnjVr1uzcuZMgiFdeecXhcCxduhT22cASAFBTU/P666/DbZjnFolEYrGYKIrwmIKCgh07drz22ms7duxYsmTJvHnzysvL9+/fv3PnztWrV+s1bPS+Tqfz+eefx3F89uzZEELQ0Xn11Vcpitq0aZMex5s7dy6sw+DBg3UKIhQhISHdnPppUDTmvRFJUKejCIDzKIpG4+vXrwf1mW+wFSZJcvDgwUePHoWNtd6tojfEsGk2Go3hcHjw4MFw/z//+c9oNPrxxx9v27YtGo0mEgk9O7y2tnbu3LnV1dXvv/9+PB5funQpvE5tbS30Y2KxmB71kiTp/fffh3eBIbhEIhGPx0+dOgUZk0gk0tPTV6xYEYlE4OkQUf369YM537A+jd43mUwmEolkMjl48GA9bT0SibzxxhsAgPXr12MYpmlaRUUFdLYSicSoUaNAiqd4aU7fSEIoQkJC0vXToGj8+6OgVxSPRwEAiQSoiySqq0MzZ86eMGHCwoULV6xYMX78eHjpUCgky3Lr1q1FUYxGozCcFQ6H4RBUPboFe2X0ATp9+vQBANTU1PTu3ZtlWQBAPB7XW/CZM2cqivL5558DAGbPnq17YP/85z9BPTxg+eqrr/p8Pvjuc889p/f9vPvuu/D6oVCotrY2GAx27dq1R48eJ0+ejMfj33777fjx43ft2gXx2dR99QeEjpcOS5gmB88tKChwOp2g3k3s0qULxKSegH6TCKEICQlJ108coIPLAiWToDYULSkpW7Zs+ccff/zxxx+vWrVq6dKlsLXVu0+CwSD0luA0B7BFhi6R7iG9/vrr8Pg+ffq8//77MPuuY8eOY8eOlWUZAFBSUjJz5swBAwasXbu2srIyGo1OnTp1//79Bw8ePHXqVP/+/QOBALwCx3GTJk3SRyNVV1dnZGQ888wzr7766vPPP//000/rqX1ZWVnLli0jCCIcDi9fvnzz5s0HDx4MBAKffvrp8OHDT58+3dR9Dxw4cObMmQMHDvTs2TORSMDQHwBg0KBBkMdLliwZO3bshg0bKioqjhw5Mn36dDh0F9Tnl8PEimvzWbcsIRQhISHp+mlQNGHi6NS+IgBAIg5qayOgPuIEW2R9ZE+Dsa6pL+GRMN0gHo9//vnnMMMN9vPDq0Wj0SNHjlRXV9fV1fl8vnPnzp04cQIyxufzLVu2DF6nsrIyPT1dn+PHZDJB2um5DNAvgQwIhULxeNzn8x05cgQAAANoDMPgOK6zIRQKwXyHpu6r+zcbN27UT0l90lAoVF5eDk8JhUKLFi2C0T+I5FgsdiVJhjeGEIqQkJB0/TQoen/Cuw1QBPuK9KUZdI8nkUhUV1en/vCvnwr2gh4jPdsNBtDgIB4o+NbFo2Wj0ag+LEk/vaKiosGVdbfD6/WCxjIFYNcRREI8Hoe3hvVPJpOXvi9UXV2d3++HddCn+UlNq9Prr1MwdedNIoQiJCQkXT8ximKxung8GYsl9LQFAACc4abBDSorK+vq6vS4HBQ8TPcMUpPQAABlZWWwZdc0DQBQWloKJz6AuEpt3FNPhy6XnkGnZ+hBwQyISCSSemIgEEi9L5SeUBCNRi99XygYjayrq4NvxeNxeAXoisGZ8eBhqQSqq6tD44qQkJBuNv3EAbpoNAIASCYBSALYkusNMQAgEonA9ldHDuQELGEgDqSM8YStdigUSh33qkMlVTCPQJ9rB14t9Swo+FZxcXFNTQ0cBgRSKKLDJtXFicfjcDiU7m+lUqfBfeFG6rTfUHDmoQb1T3XIYrEY/CNcYtDVDSaEIqSfVomUEum600/mFSWSkWQyDtMWAAAgCRosnAqbZugJxeNxvSHWg2n62g2JRKLBag6pV4BIgJTSPQx4VoMZdPTt1EFFPzxhIgFzr0EKhCB1QD08UvPLUz22pu6rh/V0JqU+aSQS0SsAnwJWIJV8yWQSeUUAAJCAf7RkyiC1JNDdbVTebOWF02E1uuRMLKVEQLru9DPNQdeooNeiN+hwJ6QCbPfh1+/i2Jcu+FaDLhY99qV/e+EEB/Ca8KYwTJdMJlN9Fz13IPVqoVAIHqP3V8ViMdi7AxPQAQC1tbWpsUTdG4MoSn06vT6N+nY3la4ARdC5joNk4vw2spvU6mMI8D+2sUXPYhcZ0vWl5kFRg2VV4XDRWCx29OhRAEAikaiqqrryWUHhIgsAgOrqaj3AFQqF9EGmqZE6nVssy8LpvWGcUJ+Zu7a2VkdLg/w3nWeNOi4wL66mpga+q99UT3mIRqOpft5NkrTdlC6Hovqv5fm+x3olk8huRtO/F/F4NBarg2trJhIxhKIbRc3mFZWUlDRosgEAw4cP11+Gw+Hq6urLJpXpieDQzxg7dmx6enooFNq/f7/JZFIUhSCI5cuX6ysJVVdXnz17FgCQmZmZl5cHT8/NzZ09ezbMhQP18NAdF5jFACFXWVkJEQK9t/Ly8ng8Xltbm7o6EUihY21tbYOeJ93Ju8kdI9RXhHQVqv8F94MnlEjEUtyjBhxCAbrrTs2Goqqqqm3btu3bt69z584mk2nbtm0ZGRlvvPHG2bNnV61aNXr06CupfeqApOrqalVV58yZAzMLzp07ZzKZ4NSokyZN8vv90MWJxWKbN28eN26cx+PZu3cvx3E4jm/ZsmXx4sUsy2ZkZMyZMwcAwHHc2rVr582bl52dffLkyWXLlmVlZelQuXhtIT3QV1NTU11dDTuT9GSE1ERBffDQTdIn1JQug6JoNBqLwQzLeCKRiEYjMDITj8fj8Sgqb74yGo9HU9ygyxrS9aXmQZHe7/Ldd99t3rw5HA5LkmS1WocPHy6K4jfffDNq1KjFixeHw+FLrD4OUpYAhy///e9/wz1paWnr1q0jSRIAEI1G9dW+dUeEpukDBw6cOnUKviQIAs4dDnMcYMBQluVHHnkEXtzn8/Xr1+/LL78EKZ1JdXV1dXV1+rMUFxdfXNtoNApz0GG+BkhJyrjJdVmvqEFHNCpv5rKhXQGTkK4vNZtXBAAoLy9/++23E4mE3sED16bjeX7evHmp8wBdWvF4PBQKnT59evHixYFAYMqUKbm5uSRJHjhwoKioiOf5tLQ0AM67+LFYrKioaNasWQcOHHC73dBrOXv27JdffplIJOAkC6B+4b777rsPvqyrq1u4cOGLL74I6pMA9cnrIGZSXZzUyFvqzHLxeFx/nEsj9mbQZVEUSyQj4Uh1NBYCIJYEdfFEJJ4Ix+LhWLwWlTdZGQ7VVtaEKsKRatgwJZJ1jdEI6fpVs6GosrJy9erVu3fv3rBhA4Zh33777cmTJ1966aUtW7asWbNm48aN+iCkSwSy9C6ZcDj82WefZWdnr1u37quvvgIAEASRn58PD3vllVf0ybm3b9++fPlyAABN05mZmV988cWpU6eysrLgyrDz5s0Lh8MwpdvhcDzxxBOhUAhG9oYPHz5q1Cj41r59+xYtWjR16lQ4r3ZdXd2kSZMWLFjw5ptvbtmyJRKJbNu2bcCAAadPn54+ffpvfvMbiqJgTXRK1dbWxlHawiXEsLjZkncu88S5zBM5uWeyc07D7azsU8huPjuTmXW6sCiX5ciaUAXsEIKZCwhFN4qaDUW1tbWZmZkAgIkTJ+pzwc2cORMAgOO4vobeZTtUKioq9KXnamtrYV8RACArKwvDMABAVVXVsGHDzj9VIqHnQWzevJmmaY/HM3DgQHi76urqY8eOwXeTyWRRUZHBYJg3b97kyZM7d+48aNAg6FfxPD9lyhQ4IPeBBx4QRdFiscAZxDMyMuAM4gCAe+65x263V1VVzZ8/f8WKFTC/Tu/cQl7RZVDUu0+nfk9369z18U5dHhvwbM+0vp07dHqkR6/2yG5O69W7a89eXW7771+C8w1TrC4aSgnfIV3fqv9h8cOKPvVNZCKRrAMgFovX9B/QPX3bWprFZA33BnCczFa8DtXnZAWMl+yChC9bvnD0mLchigBIhEJhAEAyAVJTcC9WVVUVnFoURr1MJhNBEEOHDqVpmiAImJ8GG26IFn3CHj3FTm/Nw+EwrPzy5cvz8/MLCgqMRmNeXl5eXh4AIBKJvPbaa3qmAEEQhw4d2r59+7Fjx7755pvBgwdPnz796NGjhw4d2rRp0/z589PT0wEAgUAAw7DWrVsDABKJhM/ne/nll9PS0qqqqj755JMXX3xx9erVH3/88cKFCzMzMyHJtm7dOmfOnHbt2sFa/fnPf4YbH3300eLFi8GFgbsGaeI3oS6DomcG9vh23UoPZZFVQpTdJG2hGKy4VBBltyjjqLzJSrfXJ+QXZP3lrjti8dracFUsHk5JlkMougGUiEYjej98IpGA7Xs0GonGanWvaNOWryGKJNXmpnJUn1NSbTRn4SW7pBArVi4ZO24kANFwOKTPtlAbunzPvMPhKCwsHD58+Ny5c/Pz88+cOfPuu+8ePXp0y5Yty5cvN5lMAIDKyspEIqGvSgd7lRKJBGzK9RneAAAej2f48OEnT54EAITDYbfbvWPHDgzDJEnq27cvAKC8vDyZTOr+VmVl5ZAhQzAMy8rKysjIAAAMGTJk27ZtoJ52DoejU6dOevb29u3bDQaDx+P55JNPpk2bFk9ZLUmW5aFDh8qybDKZ4L0AAG3btoV1/vTTT1esWAHqJ49InQnpZtZlUNS56yPp278OlvC+IMUJDlbAaBZjBYwXnbxkR+XNVYpOr5+TZNrwCwMAEQCi0DeqqCxpBEU3dWLq9asEAIkG86qFQqH61JVYEoSffqbHmbMHVS9psZ3jRLOHydP8Ll6y0JxFkB0wQDd9xqRIXXUkUqt/K2JREIk0SaN4PA778/v167d7924AQE1NTWVlZf/+/fXhOPBI3fVp27atvvICSJlACL6E4S+o3NzcQ4cOZWVlOZ1O6AzpQTM93Ld8+fL333+/Xbt20Nlas2bN4sWL4XYgEICznWZmZkKcwFNWrFjRo0eP4uLi7Ozsxx57DC5/d/LkSUEQFi1aNG3atEQicfDgwd69ewMAqqurH374YXjBjz76CKZj6M8OUnq5blpdBkXPv9Rz5561vGR3k/ke2qj6cFnDOdHKS3ZewlB5c5Wi0+U2+QOSjqJYvBYmLzTiEiURja5Hnf9JAWdCS5mf5jyKorHqDp0e2bDxS150FpdxnGim+ULF62B4IyfaRMXJcPaPl80f9e5b4UgVvFpdXay6OnTpL4NOvrfeeuvvf/97eno6bLXHjh2rH6BXpra2NpFInD59unv37nBP6pyhkFXhcHjLli3Dhg1buXIlACAWi5EkieM49G9GjBihx/oyMjIOHDgAk9neeecdSZJWrVrlcDjmzZu3bNkymqbhZX0+35IlS+65556vvvpq+vTpY8eO7dGjR3Z2tl7te+65Jy0tDY5/KigouPfeeydPnrx48eK77rqrqKiIIIg2bdocOnQoHA6PGDFi4sSJFEXBOtTU1CCXCFwWRT16P7pxy0pZc8qanZcwUcFkzRko8cA9qLzJSpwTnBVVvl/cYgAgEqmrBiBaG65qOJr1wrmCkK4rJQA471vE61cxSCQSACRqw1VJEI0nQoP/8dL2netI2qL6CEm1cZJJUm00VySpLkF2EKR52fKFs+dMabBeUTx2Ka8IAFBWVvbdd9/BcNmqVauee+65p59+ukePHgMHDnzttdeGDBmycuVKvXMFHqZpWiQS0R0mmF+ndwLBgyG3Dhw4sGzZslWrVu3evfvYsWNDhw6FOAEpjlEoFLr99tvXrVunV2nLli1PPfXUwoULYaI2vL4+lTjEZ0lJSW1tbTQaDQaDcBaGqqoqiEM9eHjxNAoXO0D6pEQ3rS6DoqefbZ++fbXmd/mLCVHBSKbARWTTXBHDG5HdfGa2O/NJ2ga9oiSoAyBaXlEMGkzwg1B03QqG1FIXD1UUZebMmXPnzl6+4uPPVy3/cMr4u+/9/eb0/6hekqCKZM3OSSZBtjK8UfURrICRtHXDxjXde3SYPmPyypUrvvpq9dSp07du3Q6SoLKyuqn7wq4afc1TuLPBHD/6wB19LE7qrHQ+nw+khO9isZj+rp6CkXqWvgeuddRgvb4Gy0lA8sHlwKG7BuuQOrkDPBeuvwcu7PvRB73CR9CnJK+qqopGoyg0B3UZFA18sdOmrSsproDmC3nZrPodgmLhZbOoWpHddKbYS8ok1csYbjGE68rCkQoAovW92SlCKLpuFQ6HAEjAbAXYPmqaNmzYsF/8wvDQXx8YPWbk4iVzps14H7PnllcqDG8VZCsrGmEyt+J1e2ijrHpy809/tvLfixbPnTBh/D/+Mfjuu+8dMmRoJHwVMSjY8aNPk6N3/OhLRcTjcYgEHQywtjoAUtP/YKQRzuEbCoX0q+lIa7B6nr6/oqJCT2xrMKccSOGWz+dLJVPqLfQRsuAiT0iPSV68LNPNqcugKK1fu+271qg+JyuYKLZQ0jBBsbCikZfNyG46kzCaxQSJMNxiAKC23jG6aK45hKKGuo4GXf0QoIvFYvDnfCgU8njcL7zwXMdOT36z9kuKdqpeBifMLG9nBQvDG0XFzkuYpLpc7sKSMklSSBeOHTt+KC2t1+uvv47jRDyeBBetV3TBXVOiWA2mKoAU0ce3wiqlzoetA0A/JTXmlnoXHR7JZFL3mbxev35K6lQOqcsmgZTE69S1zHUHDuIkdYm8UCgEr6n7PfDdmpoauKHPgKdf+Saf/udy44r6ddy+ex0r2gTFyUpWRjRJXhsjGjnZnGIWZDeHYSxvF2W34RZDIllbP7So5TevP5/C4To4eqZ+erEYAAk4OcV5S8aT5wWSyWQCJBMg3vItnowlQaLQWPDaG397qsMTX3y5UtFEXiI5yYmThZJGCAru8hhVH+uhbV+vXdX2r63HjB11LutsXSwKf5PE4slEErSw5z3/ASQTcOJ5qDg0ABJ6JvolIIr0U+lyKOrbefvu9azoFBQnK9oY0SR57U2gCONkrLnbSmTX1BpFEVJDJRLwp3EC5nTA/A59UHAqvJMgkQSx66KMxsO1kVACRAuNBS+98nyHTu0/X72cERzBMsHhLhAUd1Wtf+UX/+7U9fF//HOQi7AFir1JkIAcqotF4wnoJ7eIZ6kvE/AzSHHfoecaiyciNaGKZDIej0f1jwoB6ZoKoQjZlRtC0WVUXX1+vGQoVA1AIlRbCUAUgEi9RS8cEQzbxOh1UdbFQ3C7LlYbTdQWFOW+PXLII0/c98265b5i+utvlz/w0J1vvPkC5iioCZclQQSelQDxaLwuGq9L4VDzP0t9mfrtTdR/NDH4u6EmVAE/o6qqmsrKahRtvtZCKEJ25YZQdEXas2fX31598bnnB3Ts1K53WpfOXR9P69s5rW/ntD5d0/p0TevTPa1P97Q+PdL69Ojdt3vvvl1bvnXp/lSf/t179O7UrWeHfgN69urTpWuP9k8/27Nrz8f/eNet//O/hnsf+F2HLg8+PbDbcy+l9Uzr2Ltv5959u/bp37P/M2kDnu339DN9+/Tr1bN3txb2vOc/hbQ+PdL6dK//dLqm9enapeuTzz3/9KzZ03QXNh4DdREUi76GQihCduWGUHR5JZPxTz7598uvPP/N2i/27k8/debg3v2bd+7esHP3hp27N+7cvXHnrs07d23euSt9567NO3ZvvC5s/6Ht+w9t35S+9vvN/9l7YOvufVu27li///DWzdvWnMjYvmXHV9+sX3bg6Kb0Hf/56puPj5zYuX33+q071m/e+u2m9O82pa/fvHXD5q0btmxb3+wP0sB2XmA/fEZbtn67aPHsxx7/a11d+HzuQxKh6NoKoQjZlRtC0WUUjUZqQhVLli6YMfND1cvwosvtMeFEEc1iKWajWRvNOmjWQXE2isNavjGCvdCcIaruqlqfh7G4KZMWoEnWrPjxIusJii8qq+Y4GSM5o+xzkayZFR2c5GRFJys6OdEtqZQvKJSUqy3teS/4XDgLzVngB1RWoeTknbr7njsBSJxPq0uCOPqyX0shFCG7ckMouqwSAMQWL5n34ZTxmo8laSvD2apCqqg4fzAZ101QnNeFOdx5NRGfqLoKTKdE1VVczlOchRbMit/pLcZ5xeL0ZDk92bRgFDWb7HNRvIkRMF52cZKTERwkixG0xU2Zmv1BLjDVLip2UcEuNLuoOD2U5VzWsbvu/iMAsfNrgUfR4IRrK4QiZFduCEWXViKeiAAQnTtv2rtjhvkCrKJ5PLSRoAoY3gynq0gxK8ObacFMC8aWX2pBwk3nsZLVW+xmJSvJFQqqnZMtbjqXEY28YhE1TA24ZJ+DEU0etkBQ7bxi4xWboDhF1QVNUJwt4VlSS0YoYoSClBLOI2OWFHdO3qkHH7q3LhqC44SqqyIJNFHctRRCEbIrN4SiSysBVzpesnTupMmjBQkXJBcrYKJi5yULL5t5yZJiGC/Bv6r5ei7NnNKgNWgw1hC70FpCnX8oednIy4UppbH+Y7Jn5x6//4G/JEEU1C/9l0RdRddSCEXIrtwQii4tHUXzL0QRdh5F5yet+AFIjTXi15Upxsuh6IcvDye3sOdVjPUQ0g2hqNmEUITsyg2h6NJKQdEH7wkScRGK6n9311vzN8c/pV3JV6jZK3kJFKV6RVh27rH72/wpCerOT52BUHSNhVCE7MoNoeiySiRBdMnSBReiyJ7iFd2QKLryr1CzV/UCq8eP8YJfCee9olQUwYUnmvvLdUMLoQjZlRtC0eWVTMaXLF0w6YNxgkgKEs7y9gtRZL6xUHT+i3Fhb9AlrNkr3ABFDSb81bvx7Nm5x+tRFEMo+hmEUITsyg2h6PJKJpNLliy6CEVYozRq9rb4/8whrDG7xFeo2et8IYouSCT5gUO86LwQRXARh+b+bt3QQihCduWGUHR51aNovCDSgkTc+CiS7D/Y5ZnU7HW+oP68hF1kdoSiZtENg6JGf51doj5NHZ964pU8zo8+/kfcq9kNoshTjyK0QkQjSkERmYIiyw2LIkgjvbxeUWS5gEYIRT+7rjMUUbyJ5Iyi5vCXUqLmoAWz5HVSvMnDmPwljMOdR/NW1e9RfAQrOmSvW/I6acHsYYtkn0v2uUjOyEpWxY/zsoOXHZxkF1WXk8hnBExQcJK1ShrucOcJitPpyVV8BCtZSc7opgsE1c7JGCuZ1YDL6szgFauHzecVKyfZBcUpaXhJJWfHc2Wfy8MWiZpD1BwkZwyWU7LPYcPPCSqmBV20YJQ0XNIIUXXBeqp+D04WCqqd5q2S18mIFka0EEyhGnC7yDzZ52pu9jREES+6eNF9SysDANEkiMJ/0UQjPPqZVopLXTRa327G1TCTACRAfPHSBRMnj+MlgpdxRsDgaNCmW/MbwK6jn1NNWepngXGSPSvveOs2f0qAuiSIxZOxJAAJhKJrqesMRZBAJGckmEKKN3nYIl8xbcdzSdYcLOOKy0WrI0fSCMVHuikzzdsYAZO8Tn8p5aYL3HSBr4SEGNACZKH5NCc5JY2geZsWoEsqZDteQNDm0kqZoI2QE8dP7zqbsz9QRuNUPiNaeMVaWsXKPkdJJcNKJkHFfMX0yNH/cFNFMEAhKOfvxYgWyet0EFkEk+8rITjZQnIFss+Bk8YX/9bvyImdNG/jZZfVkeMrpqfMGD17/gQ3VeQt9vhLKVowC6pd8jp5xdbc/58NDBMkXEeRDpvGWn59yv2fSYnE+TQnUL9sXbMoCRIJEF28dMHEye/xEsHLLkbABPUSQ2qa/TO9ya0JVw+h6GfXdYYiijfhVL6g2gNltKDa9x/ZmFNw7EzmvuBA1wAAIABJREFU/v2HN+/at37vwc04aezY9eHR44bmFJw8mbHv2KmdGdn7svIPLVj6wb+Xz8CpfJq3UpzFjue279x25twJGzZ/uX7T6q49H582a/yW7Ws3pq/p1uuJnXvXrVi14OPlsydPG9Wz7+MUb9KChLfY4yJzcCrX6cmm+CI3nSuoGCNgG9PX9B3QkRGw3MLjNREfyRm1IBEoo1nJKqiY5LW76TxBxYLlpJvO27l3w133/e7g0W3VYb+g4ARtDpSyEyaP+Ne7b1CcxcMWkZwRp/I9bJEacFO8qbn/URsYJspuTsANv2gpKNIdoPMLo1648+cXQtH1ZghFLUXXGYpowcyIFkG1w7DboeNbCNooafgbbw48m33wifYPOIlCLUArPrLAlJFXdEr1e3jFRnLG9ye/9f7kt2jBLGm4v4QpLuef7PhARtYhl6dIUPD+z3Y9cGSbqBKs6OjQ5a8exqT6PSRrnjRl5PgPhomag2AKtSABH99XQih+JyuZGNHkcOexouPP9/zPvz+d5S9hsvOPeos9Tk8uwRT6Symz/bS/1FNSyVidGd5inJMtb7/zxuv/eN7qyHFTpj/f85sNm7/EycKFS6fMWTBR9Xvg31DyOuEDtryIByZIOMu7GqCoiQDdz4GiaDQaj8ehS9SMBNKFUHS9GUJRS9F1hiKCKVT8uKg5HEROSSWn+HFRdUka3u+ZTlu2f927XweCNvOyy+UpKqmQ7Xi+pOGsZBU1x4cz3pk8fSQrWd1UEcVZWNH2yBN3/+e7FfsObTl4dFuPtCfXrv88fce3O/as/8u9v92++9vT5/adOLN7xKjXZ8x9z1vscdMFWpCg+CI3nQdr4itxe9gCb5CSNGLGnHFOIp/iLJKGyz4XJ2O79n/XoWubwyc284o1u+BgdUQmmDwPW3DvA783WjNLKqRzOUdat70jEi81WjMmTxs1buJbTiIfBvc8bFGgjHaReVqQaO5/1AaG8aKL4ZwNUNTYQss/E4ouhlCqe/TzC6HoejOEopai6wxF3mKPoNpZycqIFlowf/H14j5Pd5g+e+xjT947acrI39x+y8Kl07r2fDyn4ISkecqrVZI1k5xRUO1zF01YsPQDb7FH9rpVv8dNFQ1566U5Cz44cWbv8dN7vt/y1amzBxZ9NOP46T1HT+46enJHRtaBnXvXvf/B21NmjsJcmTCn4NDxTZ98NmPa7FHjP/jnzHmjBzzfceHSKcNHvj515piFS6dMmDzivja3j5s0dMKHw2fNHzd30YSPPp1qw8+Jmo1XrIrfMXPemLEThtvxAtVP7TmwqUuPxxQfKWn4hMkjln8+n2TNTk/uN+uXfbdxBcWbMFem05Pb3P+oDQzjRRcn4OfTFpLxS6Yt/Kx9RVDJZBI6ST/zfX+oAELRdWYIRS1F1xmKoD+EU/mwhz9955pnX+hOcZY+T3fYuXfd0wO7EbT5/gf/WFGjncs5ygh2ScO1IMGIlg9nvDNp6ggXmUdxFpgyx8sO2evRArSTKCypkExY1l33/e7Aka0mLLOiRiFoo9l2zsOYxrz/psl2hhEtih8XVIxg8im+iBaMoobNXTSe5q2qn5K9bg9jysw9/PDjd9nd2RRvoniT5HUyoqm8hmdEEydbCi3H2j7y+8eebJ2RdZjmbWMnDJ8weeTED9+ZPX/CC6/07tz94QVLPpw66923Rr4ya/44q/NcsJxR/Hhz/6M2MEyU3bJK/b/bWkEUxWJ1TXxxfj6vKBaLpSYsxONx5BUhu2JDKGopus5Q5GGLfCWk7HM5iBySM57O3NO+c9v9hzf/7fX+B4+md+/dTlDwP939a0awm7AsTnK6PAXeYg8jWqbNHj19zhhOxoJlHMmal3w8fc3aT9Zt/GLVVx+tWfvp198u37VvY+u2f1y5esm2Xd99sWbphs1fbNr61Rdrlo6d+M+ly6bxik3yOkXNRvFFrGQWNZugWoeOeMHlKSirUiz2TEFxfrFm6RPtW/OKTQ24tSBhd2f7SgiSKxRUjBFNC5ZOeP3N/t16PUFxNsVHPvtCT0HBPYyFlx3TZ4+dPX8CxVkUP15SyZGckREt/lLK7s5u7n/UBoZJCqH52N/89v/BAF00Gmnii/MzoaiqqqqioqKmpgbSKDWPrlmEUHS9GUJRS9F1hiJesTGixU0XeIs9sEvm6YFdvt+yeuKH/8rMPdy15+NOovCOP9/mL+EmTH7n5UH9p88e++GMdz6c8c4bQ56ZNns0xZtY0QZHFAmKU9KIHXvWs6KDEewHjmx7c9grio90EoWShs+a9z5c6lHyOrUgAdMW3HQer1h5xaoFcVHDFn40KTv/qOIjPYyJk+xD335l+MhBDiKnvEaUfS6cymcluEiXkVesz7/S9WzO3o5dH+Yk1zfrPvvPdysoDhMUvKRCGDth2JQZoynOwoiW1MyFZkxb4BVrg5eCiomaQ1Y9kkL+5a47IIqSyTi4ZIAu1WW5WHBRMgBAOBwGAMTjl1qbLBaLVVdXEwSRn59fU1MTjcLZ+xNLly4VBCGRSFRUVMCLJJPJnTt3bt68+cSJE+np6V988UW/fv3MZrN+qZqaGjgIKZFI1NbWXvpf4KqEUHS9GUJRS9F1hiKKNyl+nBbMrGTlFdux09ufaN962Ii/FVnOfPf9yp59ntIC9JMd2xqt56bPfn/KjPd8xbSoOTxs0ZmsvblFR4srWAghOMTV5sob8Fz3YSMGjZv49vzFU6fMGPvh9DHTZ4+fv3jyQ4/+ee/BjQRtxKl8N10geZ2i5iCYfMXvpAWj05PNSqYzWbsHD3kOJ42BUtbDmP7wp1v/P3vnHSZFlTX8XtFVd9c1JyQjoqKiiKisggqIAQEVlYzknIaBISdJAqKACIrkJDPDBGAIk2PH6lA556qO0z2RiczU98dlelHB8H64wu6c5zz1dFffrtBddX91zj3n3EPHvqmo0YrsZzx4XqiU4xWIFqx6EBs1boCoOY8m7Hjh5ScVL7V1xzoXUkDzLlknYLxw8fKZ8xdN0QOUqHmi+VIoVSjp8J91i14rFBmG0djYGI0saGhoqKmpqaioqKiosFqtjY2NNTU1v8WOubxNjx49WJaVJGnPnj0FBQXDhg1LSkrKzs5evXo1aFBZWWkYxpQpU8rLyw3D+PLLLy9cuGAYRklJSXV1dSAQOHr0aHRrgILXSppRdKNpM4quF7nBUCRqHlCPQPGhshdJTN3T9fkOGzYv0fykN0j37NX11de7tXv0fl+ImzpzzKJlsxjBySsuUMUAmBoEYxNVRPOTrOhiRc+rr3f7cvua1LSjaecTElMOZuWdPHRsV3zSnvseupUVXRTniFSIepAQVDcjOljJrvoRUXPhTCGvOHzFxCuvdS20npd17Mvtq194+fHiUhEhC1Q/BhJUGdEWLKEPH99+6txBQYVOnz/03AuPcRKy+atVhdbzSScPnT53/FjCd1NmjJg8ffi+Q9uyC5KTT+8fMqzf0lUzgTX2Z92i1xZF0fGbxsbGCxcuFBcXjxkz5vnnn4/WRzCa+PELcvHiRWBFAa5omga+tW3bNmAPGYbBsmxNzSWf4ZYtW8C3Vq5caRjG3r17YRiWZTkpKWnp0qWNjY1lZWX19fW/kYW/UZpRdKNpM4quF7nBUKQHCVCJR9JhUfMcT/qud59u+eY0jLKwossX4kgW6tylFUpa136+ZNK0EQhRJKhuWrB7Q6QWwBnRwUluxYuDeO5wmdKmw71TZoyKWzJjTuykxcvnTJ/96by4KUtWzGr36L287PGFGDeWSwt2grWwEqT4YE52yF6P4oMJtpCTHRu3LBszfgjJ2rv16LRxyzIXklderbrQHEmHgyWsB8/hZEeR/XSolCG5opNnD3Tr0dkb5LLzT6Wdjz+bkZh08lB2fuqnEz6cNG1Yatrh1DMHE1P3fLt345mMY7zi+hOrLVxzqyj6wcWLF6urqymKeueddwzDqK6uBmj5LQK2Ew6HDcNITU1NT0+Pj4/fsWPHuXPnkpOTd+7c2bNnz5qamrq6utra2oULF7rdbpvNtnjxYsMwEATRdb2qqmr16tUWiyV6MMY1TYltRtGNps0oul7kBkORoLoVHypqHpQqZETHuazjr7zWNT5pz5Hju776+rOduzcfPLqzTYd7OQmePW9i3JIZkoZGKkRR86h+zOZKZyVI9REgFQmjLHqAeezJRxJTDvAyQjAQI3g0P00wDk5yP9z6H2UXNMiTowVwED4uqG7Z66F4CyvZOdnhwbMp3sIIzqef6zBhyidvDfgXL3sYwclKULhc8OB5ZVUKJzso3lJWJSFknuqHT5498OQzbb1BLhgRXUiBN8jitN0XYmbMGTN/0RRBgRnRIajuUCkXLhdAZu6fdYteQxRdUex2+7PPPvsTS6iiouIXLsWSkpKGhoaUlJRXXnnFZrMZhhGJRLZt22YYxuDBgzmOs9lsl0dyb926FTBm3bp1gF6nT582DOODDz6oqakB/ItEIr+6398lzSi60bQZRdeL3GAoogU7qGcK2JB65uCL/3rSbD8vaShOW/UAQ7LQQ63u8AbZ+Yumz5gzFsYLWQlyoTlOJPurHaswukjx4pzkZgQnxTki5WrX5x/9fv/WrLyTGTmpBZbz8Un7rFBWZm5y6/Z3WaEMMH7DiA7Fh3KykxasoubiZAfBFql+uKxKipTLX2xdbbrZNGHKJ6qP4GWPB89jJUhQ3RhdpAVQf5jEmULVj6BU3tnMo89068hJiKCgvIxofpqTYFnH5i+aErNgIiM4QXAgBGe5sVxecf13jBVdet/QcHnFUgiC+vXrB17X1taCQZ1fkOhQk2EYffv2Bd/y+/0JCQksyw4bNqy2thZEckedgStXrkxOTo6Pj582bRrYwooVKy5cuDBnzpzLt/zLsRK/V5pRdKNpM4quF7nBUMQrLjCer/oxxYceTdgJRmhCJYITzlW8pOan73vodoyyzYmdtGxVjOYn9SABotFi4saTnBXExZVWqiRrRwhL1+cfTUw5ICiopBE07/aFOE6CCcbW7tF7BQWmOIc/THOyE5wdzhTqQQwEZwdLKLv7/NKVs194+cmtO9Y80609oJGoeZoK1hUyok3UXKLmQqn8YAl1PGlXrzeeF1UcxM7RvAsUbF28fOaMOWNKKhScMUNwVk1DoKRScngy/8TK3NcWRQ1N0tgkTqfz5ZdfvnDhQhRO4XD48qGjn0swGDQMo7KycsiQIYZh1NfXf/fdd8eOHaupqenXrx8YkTKaxpxqa2vXrFkDyLRu3ToQJrdly5Zt27adPn26rKws2vJXKfi7pBlFN5o2o+h6kRsMRaLmEVQ3SHTlZOfp80eeeq51Zt6JjJykvKLT6dknTqTub9/pvuJScfrsT2MWTOQkN8lZecWl+NARnw5AqUKStQMTipPceoDq0fOJmXPHzZ0/aV7clPmLpsUtmTFp2rD5i6a06XinqCK84sIZM6+4CNbiK6ZIzizpbk528AqEUnmz5o0a+MHrDne2rGOpZw52f6nzQ61vHzVuYEZuIqiuLeluxQdjdIGvmPDg2ek5x59+rh1O271BmpPcwIqSdWx27KcLl06nBbuoeSQdxugi8JoR/7Su6hqi6OLFi3V1dZePx1y8eNFut/fu3dswjIaGBhCWnZeXByIRflUGDRpUVVXlcDgEQUhLS6Moqn///oWFhS6XKy4uDmy/pqbm66+/rqiocDgcEyZM2LRpE03TKIr27Nkzup0o+a6hYdSMohtNm1F0vcgNhiKMLgDlrgXVqfqRpFN7nuvRzhvCecUFE/mi5gmVcvc9fAvBWrZsX9Hx8ftmxoxeumpm3NIpM+aOeqj17b36dAWx3SBgmpOdvfs+u+/QNlZ0yTpGC3ZGdKh+zOHJ7PTkfZzsFFTn+CkfJKbuZkQbgFColCE58+zY0W/0f27N5/NAVJ7iQ1U/4kSyt36z8pXXu5huNj3c5rYhw/p8tiHGjWWHShmCLSLYojMZR57r0QFnzMDBiJAFtGAvLuOnzxn+4dC+qh9R/QjFW2jBCmoFSfp/Q9jCFcXj8QA/G+AQkNjY2AULFgAwAMPl8jIKAGaRSOTjjz82DGPXrl2VlZW1tbU0TU+bNq2qqgpEihuGUVVVNXr06Ndffz02NhaCoJEjR4L1y5YtGzRoUG5uLtjvLxth/zdpRtGNps0oul7kBkORqLm0AMpKduD1+uHEzknTP7JAZ0oqBVFzMaINpfKHDOvjDeEwkfvDiZ3zF0+KXTRxwtSPVq2L+XzL4oSU77UAfvLsoW07P9u+a82xxF0Tp338/YEvElP3fP3t2m/3btx3eMueg5t/OLFz5Nh39x3ecuDoV7Pmjdr01WLVj/jD5L7DWz4Z+eaCJRPPZh4FI0C8AtGCFZRUAL47CM7IzEuYOmtonjmFEW2sZCfYIlayKz44IeW7T0a+CarS+cOk4oMp3oIzhTNjRr7+5rMW6AwnO7whHMTpge/+WbfoH42iY8eOde3ataSkxGgaBwL5PU899VRhYWEUEhUVFSBJFvApEAgYhvHss8/OmzcPwzDQZsSIEYmJiZs3b9Z13TAM4IurqKgIhUKgwRtvvFFdXU3TdHx8vGEYffv2LSoqih4JiFy4VtKMohtNm1F0vcgNhiLQQVO8JRChRM3lxrIZ0ab4YIItAkUQvCG8yH46XM5JupuV7DCRrwcJEALgDZGKD/WHaVHzIGQBShWCQSA9SGgB3IXmcLITowtwplDS3b5ighasKJVPsEXRqDngoCu9IPrDJCj/I3s9oKPhZAcnO0TNpfoRPYhBcEa4nNODmOpHwJGImisjN97hSQ+VMpzsoAUrLVhZye4N4XnmlOyCE2VVEiPaANhowRrd8p+ifzSKIAjKysoC8GhsbARMMgzjxIkTUQ41NDT8JM4bGElz586ladowjISEhNjYWJIka2pqNE0bPHiw2Wz+ecrq4MGDIQgqLCyMph/16NFj3759II782hasa0bRjabNKLpe5AZDEagCxyuQ4oN5BcLogqp6HfTpwGsnqE5fMUFyZlqwKj7YGyKBNwxnzKCeN0IWADLpQYKTnYoPJVgLyCdV/Rgj2vxhEozueEM4YIMWQIGZAjKKcKbQiWSCygsUbxFUpxZAgYVEcmaMLsDogkCE4mSHzXUOUI1giwB+/GESnALFW3gFAscMDt4bwhEyDzgegXeO5Mx/1i36R6MoKuXl5YA3NTU10Ro8YHgp2gY43+rq6srLy6OgSklJASSLAqaxsZEkSbApkLgKtpyRkeFwOEA8NwhS+OPq1DWj6EbTZhRdL3KDoUgLoLRgBbARNRdC5omaC6MLgPGBkHkUb5F0N84UKj5Y8cGyF7G7MyjeJumwpMP+MA1Gd0BQOCM6GNFB8TZQZRUm8gXV6Q3hFG9xY9l6EONkR7TunKi5FB8MHG56EAuVMrRgJTkzI9pAIEO0jR7EUCpf9SOy1wPag/I/IPTOg+eImktQnbLXA1qC3WF0gaA6Q6WMr5jA6AJgY/1Zt+h/AEWXh65FJxkCHrlofTkAHlATIRpcEIlEAFeAAQS+WFlZGW1w+QxGYFNgrAgswRrg6wPyq4Uefrs0o+hG02YUXS9yg6GIVyCcKQxEKIItCpUyqh8BoQTA3wUoBcb/VT+CUvmC6kbIgpJKqaJGQ6lCD57HyU6QmQTsJDA3OQgloHgbwFhxGQscboxo8xUTjGgLRChg7mgBVPZ6CLYIowsItghEFgArBzjWgCFFsEVaANWDGCiHqgcxLYCSnDkQoXgF0gIozhTiTKEWQHkFCkSoSAUfRRdALDDv/qxb9D9jFUUNGlVVjaaKPlH5eVWekpISwJuo2QS+UltbC95GHX11dXWgrk9FRUUUcpfvsb6+HrDwcvPr/1+aUXSjaTOKrhe5wVAE3FmqHwHGCohTAL44YGpQvIXkzKAnBaNHJGcGJhSY3wHgAawHTjPFB5OcGWyWlewImaf4YEAOmMj1h0mSM6NUPphKHMS2aQEUMA+MIfEKJOlu1Y8oPhgcoTeE40whSuWDPYIiqmB3AGAAUaCcHWAYQuYRbJELzQqW0FFz6s+6Rf9jVlFdXR3wy9XV1dXV1VVUVIBk1Wiz2tpaELkQDAajM0EYhhEOh8GLn7CkoqICWEs/mTAChOSB/VZVVQFoXdukIqMZRTeeNqPoepEbDEWc7AB9PSc7WMku6e5gCQ16bU52gFEZLYACwwKgAgz5AIcYiJPmFQj08sDdB0aDACEE1ekPkxCcIeluLYDCRC7olMFH0UEpRrQRbFHUgQZMqJ+8BvEUYF84U0hyZm8IB4wBzcBmeQUCG9QCaLicQ8g8PYiByLroNv/z+kejCHjeQHlTgKKfJPdUVVVdHll3OVR8Pt/lLQFj6urqGhoaoq42wBiwl+rqauCaA/iJzkzh9XrBi+a8ov9hbUbR9SI3GIqa9T+j1zbF1WjiTRQVYHDoJ+ED0YoJhmFEQ7HBmmhL4MoDVbrByihgALpAGTrwOgq8y6PGjcs8gcXFxVEyXRNpRtGNps0oul6kGUXNegW9ViiKTtnw7w8us12MKw3VgJAEwzBqamrA69raWhC2cPlID8AMAFV9fT1FUUYT6sBHfr//8q2ZzeaqqipwPLW1tefOnYvusbkc6v+wNqPoepH/ehRd8f7/Bf3TD/i60GtoFdXU1JSVlSUnJ585c2bjxo3nzp3buXPnggULPvvss0OHDiUlJSUnJy9dujQtLc1oMp569eqVmZm5c+fOtWvXpqenL1q06OTJk4mJiVOnTj1x4gRoBqgDSHbx4sVx48YdOXLEaAqNAwZQ1E1XUVHx/PPP8zxfXV1dUVHhdDpjY2MNw7hw4QKoU3etbqdmFN1o2oyi60WaUdTcNVxBrxWKKisrozyIRCJ79uyxWq1r1qyJtgMhCWvWrMnMzIyuHDhwYCAQsFgsn332WWNjI5j7rqysbNOmTcZlYXLAmgHeNqvVumPHDrC+rKxs//79RhPYwKfLli2rr68fM2YMgiBRFF1zaUbRjabNKLpepBlFzV3DFfTahi2ACtzz588fM2bM1q1bx40bN2/ePBRFo1XjvvrqKwzDQHxBSUlJTEyMLMsYhqEoumbNGqvVCkEQhmFffPFFJBIBXwkGg6dOnTp58uS+ffvOnDmTn59/+PDhHTt2TJ8+/fz587t37z5+/Hh0cKhPnz7FxcUNDQ2ffPIJiqLHjx+PiYlhWfb777+PTqN3TaQZRTeaNqPoepFmFDV3DVfQa4siAI8xY8bMnj3b4/Fs3Lhx/fr1RtNITyQSmTVrlsPhAI137NgRHx9/6NChnJycY8eO9e/f/8SJE2fOnMnNzd2wYcPw4cOjGwRiNptVVQUM27Zt28GDB40fJxgFAoGePXsmJSVFIpGFCxcahmGz2dasWfOTeuHXRJpRdKNpM4quF/kfQJFq+63a3DU06bVCUTS+oLa29v3331+wYIFhGCtWrFi/fr3X63333XcTExNPnDgxf/58p9NpXBbFIAhCY2OjIAg7d+40DIMgCNAgmlrU2NhYXV0NYhN27NgBnHXvv/++KIo/Kbk9b968RYsWeTyevXv3gjXZ2dlr164Fr69hzILRjKIbT5tRdL3Ib0DR8b2chIgqxkluVoJ+hiLo0p933aKo2Sr6/Xp1FBGySj3c8h7DqDOM+l9EUYNhXPK/AeOjW7du69atMwxjyJAhQ4cOrampGThwIGhdXFxsNEW+Xbx4sbq6es2aNTAMEwTBMAxFUUePHl20aNHlWzOasFRfXz927FjDMMrLy8F0RNHI7/LycqfT6ff7ly9fjiAIx3FgJYIgmzZtunjxImgQHVL6/5dLKFqz7Mco8lzlUgQ/r+s33D7/U1em62f627/1G3fhuMo/0oyiP01+FUU9roQi+08vAtlzSa/6B18TvdqV+gv6/38b/OrG/7jz/Q/8PldWQXX/5C2Y1k+UUc1LP/jQXYZRV1dfVV9f29Bg1NVdbGwwLmkjyBm6CBRcRdXVtYZhdOnytGEY9fUNgUAoNnZBY6Px3nuD6usbDMO4ePHfd3lFxYXGRmPz5i0JCSfOnDmXmnrq3Ln077/fu3jxUsMwSkvLo9uMfuv06TN79+7fvn3Hvn0H6uou7bSqqgZsraHB2Lx5S3p65uHDRzlOwHHy4MHDS5YsoygGwwgcJysrqxobjd+lAHbgYOrqLkKQywDZTvVVjUbdoqXzp84YGyqROQmmeejq16FLUGBWdLmQPFnH/MUsRheJmoeVIFCkA2cK/GGCEa2UUOgrxhnRerX/F5RVlL2IpMNgMntasIMM62tyaclet+qHXWimHkRVPwzB6YrPo/g8V2vPiFZRc1K82RvCSK4IvJa9bl5xqH5Y1FwUbykuYyXdTbAWirdRvA0cPEYXBSO8oMB6gMJpqy/EUJwDnBRIEndjWaofbtqFi+IttGBXfChKmnnZg5AFkg4zokNQ3Yxo84ZwlMrXg9hPj1C1Xf1km1H058hvQ5GIiSrGSTArQbIX+SmKLnEI+Y+g6Br0s9dUrzcUXZvzujKKNFTRCIpxPvzIXYZRYxj1htFkEDU26SVpaFKjtrbeMIy6uovvvvveqVNp8fGJWVk5M2bMqqu7+PHHQxsbjfLyypqaOlXVq6tr6+ouAjgtWLDwzJlzCQknjh07npSU8u23u1esWAXMIa/XbzTRC0DOMIwPPhjy9tvvRndfVVUDUATKBm3cuFkU5fr6BgASm82xdet2gJMoun6XgP1WV9deuFBdUXHh1ltv13WfYRh1F6sbjbpVa5ZMnjZGVHFe9rCiS9Lhqz300LxL0nA9wFCcE6MsxaUiLdglHZa9Hoq3KD4PQuaKmjNSyVicp0Kl9NX+Yoq3gRlPwNQn5dWqE8n2FVPX6vp0oZmBCKkHUZTKQ8hcLYD4w4Qby7pae3+YQKk8xeeheHNZlUhyRbLXjVJ5FG9mJZvig91YtqA63Vi2pMPDkGV2AAAgAElEQVSRCjFYwjo8mYoXL6lQLI50modg3Owv5iFPnuIlOckNE/llVRInOzjZzsl2bwjD6Pym8QJI8eLeIKt48VCJIOmwqHko3gbKOTbNP/ljDv3IJ9+MoutCrjmKrvYA+McZ7386iq4r/WNRFCwWFI1s1+HB6prSmtrKmpqq+vr6y22aJvk3igzDKC0trampGTRokGEY1dXVVVVVq1atqq6ufvvtt6NfAPPaRWXp0qXR142NjW63G4R0AwGeOlATqKamJjc3d+DAgWCG1oqKip+kzdbX1y9dutTj8UQddzabbeXKldFm/7eKqPX19SBntri4+Kabbpo9e7ZhNNQ31DQYtes+Xzlt5jiCgSQNpXnoF1BEslAgLAAgebACjLIgZIHqxzx4Tk2DjxFttGDxhjBBhVQ/7MayfgFFgupW/RgwMrQAjtFFMJF/ra4rUXOBSlf+MBmIUJLuvrzw1c8VzHoManS5sWxQL98bwgUVUAECc1FqAZTibS40JxBh7O4Mb5C2u7JkHSsuFRnBzYoeXkYCYUHx4pzsxJlCVrLrQVTSXQBswO7hFRfFOfQA48EKcNqK0UWM6GiaWxmTvR6cKWxG0fUvfxCK/qDl9al/3PledygiaYfuY1q1ubfRqL7YUB01jBovSZN3zqgDahgNpaVgmtSGXr16xcf/kJ2dfepU6owZMwyjYdCgQY2NF6uqqgyjYfjw4Rcv1hmGUVtb3dDQsGzZEhRFCwryMAxjWfrQoUPr1q2pqKgoKQnX1dU1Qa7BMIwNG9atWLECvJ45c3rfvn2//XYnBEHV1RcqKyvB+o0bN7jd7qoqUOWhAYKgVatWXL6dJqfib10ahlFTA0aYGqxW6/PPP9eqVauSknCjUV978cLqtUvnzJtCcS49QKGkWVCvODG8i1dcgoJSnJNkIVHFAmEuXCYB55Kkwx48hxasouaSdBcr2Wyus+Fy7hf+MlqwawFc8aGsBLmx3JqGwFX2+39RMFMXI9oQMg8U+QWF5K/WHqMLIhU8mJSLEW3l1TKYQozizVoAAeWJLdAZ2esRVLevmLK7M6rqfTQPaX6SZO19+veYPvtTPcDIOkHzLl72EKyF5Ky+YgKl8kiuiJPtqh9GyDy7+7zixQUFljTc5sxWvHhZlXIu67geJHDGLKjujNz4YAndjKLrX64tippo9Mctr0/9A8/3+kKRrOKal7773tsMowYMF9XVVwWD/stsoIbLIrnrq6rLDaO+rq7GMOr79etTW3fBMBoqKkvWr19bVV2ek5O1IC5m584dC+JiNmxYZxj1uq6eOp184kTCwkWxp0+fzMg8m5WVkZQc/803Xy+Ii0lJSZo2fVJZWUlt3YULFyr2H/j+88/X+/xqJFJcUwuoUx8KBebGzFy5crmmS2CN16utWbsSht2GUV9bW11VXQ7D7t3f76ytrS6viFRXX2horG065t+6vHChIvo6FAq0bffIvHlzp06bCAC8ZPn8mPnTWBHWAxSMF/6CVeQv5jHKVtsQQUkr5MkRVQQhikTNo/oxf5iWdLfigyE4A4z6KD74F/4vkrMyogPMy6X40CL7maZwiWugoNo9mAZMD2LAM/YLUzsSbJHDk+4N4WCiSwjO0IOYoDol3YWQuaB4cSBCoVQ+wVokHQ6WsAhZIChwRbVX0tBzmQkPt/5ndv4pinN6g6wbzQdTMHtDuKg5AxGS4s2Kz/Pdvs9HjRuw9+DWL7ev/mTEgBdefhIhiiBPzuNPP3zg6LZ1m+LWbYp7/OkHswtONB3Yb/ZyN6PoPy5/AIr+UP3TqfNzCP3h53sdoShSqqC49bHHW5eW+wyjptGoBaF0DY21P9YaoIZRFwhqNbWVoNlPlhcbai5UlVZUljRtpMYw6mvrKsHrygulpWWh2roLhlFXeaHUMOqqaypKSoNgTXHYf/nWGhprqmsqDKOuvCISbV9WHgbbLK8INxp1kZIAaF9bd0GUmMuPpOmYf+sSfKusPFxdU+4PaG3aPuwPaI+0eoATqUajbuGSmLmxU2neLesYTltVP3a1f0pUEYyyQZ682oYIIzh3fb9p5+6NI8YMXL1+nqC6P9sQC8EZJZWC4oMp3sKItqv9X4zokL0ILdjBbJCBCNO1e7sVa+b8n55mrqCi5rK7z58+fygxdXdK2r7MvAQXmvWTMMvLNRChSioFLYBSvAWjC77du2FmzMgFSybGxH2aXZBYXMYuWDIR1M4PlXILl00dPX7QyrVzp84cOWXGiPGTP45bMu2dgb1nz5uwZMWciVOHr9+0dO78Ce990KvLsy29IdwCpTGiNVhCxSd/O2vemECY8wbpNRsWTZw6vKRC4WXPA4/cqvhQXnGdz45v/9g9l8371Yyi61euOYr+UL0+UfRfeL5XQ9GkKcNHjfnggYfueP/Dt4aNGPzewDf7v/XakI8GfThk4I91ANCBg/qPGv3x8BEfvf3OG/3feuO9gW/2f+uNYcM/ePudvq+8+sJHHw+eOGn0m/1ff+vt1wcNfufjTwYNGvzO2++88e6AN98b+OaIkR+PHvPJ+x8M+HDIgE/Hjnj/g3feHfDm+x+88+nYEW/27/1Gn1fHTxjZ+7Wew0d82Kv3yxMmjhrz6fAXX3p21Oihgwa/9c67/YYN/+DDIQM/+PDdt9/p27ffqx8OGQi2/+GQAUM+GvTewDc//uT9QYPfGjjo7YGD+jcd829dvjfwrfc/eGfY8CEjRg55d8Cbj3Vuy7D4ylVLFi2dX9dQtXBJTGzcDIq7FCB3FevExSsuinPUXAzBeCErugYM7t39pc77D29PTNn33d4vWrW7s32n+xqNErs7A6OL/GFa1K76yMIITtVHiCoiKDBOW1nR1aPnE1NnDb+G1wMjOlLSDrRs+/e2j951Pjte1H7p4uRkp82V7vBkHk3Y2fbRu8ZPGWJzpTOiLTMvfmbMiN59n7nv4RaRCr6iRskuSH7xlcfPZR13Itm+EHPq7FE9QEka6sGKSBYSFEzWCYpzRsrlJ55puXTVdDA1DK9AnOw4l3V8duynNA8hhGX+oulxS2ZQnAMlzW073oOSZlFFTp073O3Fjt4Q+eNfvhlF16PcaCi63mj0X3q+V0PRq72fW7l6vtmatXf/joQTB9POJsYnHkhMOvQLeuDQrtNnEtLOJianHk1OPXoqLf54wv6Uk8dOpcXHJx74IX5f6qkfzp5POnj424QTBw8c2nU+IyXtbOK+A9+cPpOQcOLg/oM7T6XFHz66Oz7xQMrJY8cT9iecOHgi+fDpMwnHju89l56cmHQoPvHA8YT9J5IPp5w8lnDiYHLq0ZOnjx9P2H88YX/qqR/iEw+cPpOQlHIkMenQD/H7TiQfBkdy4NCuxKRDKSeP/eop/FzBuSelHAFnZ7Fl4yRE0XCrtg/pfnnxstiFS+awIiyqiKgiJGe9GopY0YVRFlnHdny7oW3He0jWDkY+KM6RcvrQ/Q/fRnEOb5CmBTvAzNVQxElukrULCizrGCe5OcmtByhOcl/DSwLYW491ebDLs630IAGCzq/W2O7OaDRKlqycYbrZ9NWOVVoAh4l82euRvR4Pnr1565K+bz/vRDJZyf7l1ytbtb+DlaBAhEk5feiRtv+cFzdJUGCbM7vsgvfj4QNiFkyhedeObzemZ5+QvYgby5a9nmAJDcEZKWkH+r390tKVc+fFTenT/+WFS2eJKibrWOcuLefOnxC7cPKkacN6/Kszzph5xdWMoutcfgVFb/R75cDhb9957w1TC5Ophcl0s+nm202mmy/TW0yXPmphanGr6aa/mkwtTH/926U1/7jrLzff9u8G10RvutX0179f2vtNt5puu8Nkutl0y98urfnLX0033frvT2/5m6nFbSbTzZeWQH96Cj/Wv/z10nn97c7f0L6F6ebbTLfc/qOzvvXvv/ukwK90822XtvmXW0ymFqab/vrvA7j1HybTzf8+8b80fXTX/X/595pbLp01WPPPe690arf8+L+7ynn97U7TrHljAhGGER16kCBYCy3YFS/estWdRZZMXkQECRVljBNgQULB22YVJHzlZ4tj5s9asGjOtJnjaN4djPBuNL8pqPoKKMJpa0mF4kLyVq2N7fTEQyRrD0Z4lDRLGo7T9uGjB5EsxEkwwdgkDedlj+ojAHVI1u4N0hTnAPRSfYSkoYoXd7izFS9O85DqIwQFBo8UoubhZCfgQSDCoFSh7EVYCSI5q6+YUnwoJzsRskBQ3YLqdiLZqh9jRAcnO8GjJyM6WAkCV0LLtn/v2r2dHiRYCaJ4G8FaZC9CclZ/mAa4AoHU3hB5JuNY20fvGvD+q6ofU/0YzpiBNSNqzmAJ/Vq/rqLmUnwwTOTrQcIfpl1ozkuvdFm5Zp7qI3bu3tj9pSc4CUYIa8yCKc906xi3ZAbIawyW0AiZB2bO/PLrlRu3LPNgRYqXHDdpaNySmbv3fVVkS+/T/6WNW1ZYoYy8otPLV88VVDdM5Es6TPEWMAUzmDCTYIuaUXT9yK+gqM+br+787svOT7ZNOx8v64QeJBjR4Q+Tqh/RAihId2UEp6DAgoKyokf1UZwE+0KcrBMgOsjmzOZlRNLwa6GoqHlIzspKEEhkA5e+oLplLwKe3BUfGv1IUN20YAd3ix4keMXlDZHgpgKjuz9XXnFRvA088YH7kFdcWgC/WnuCseG0nWQhxUvyMhIIC7JOIITl954a+K28QZaXEUFBA2GBk2BRRUjWzisucMwgRArsV/Yiig9lRIevmKIFO86YwVCBoLq1AK4HCdDLgMxB1Y+BnwX8VtFHV052Xu28lq6aOW32CAjOIjkr+OlYCWJF149RhHKCR5A9vOQWZM+PVEL+reDt/8JSQj2ovdPj7RcsmjM7ZjLBQLKOKV4cZ644vO/iFRf4i8Nl0sy5n5pamEaMGchJbpqHWNEjafi2b9ZjlM1fzPMyEp+0b+fuzU44f/NXKxYunQ55cmC8UA9QHqzAheR9sXWlrGObvly+YfOSYISXNHTvwa0HjnwtKLDDkynp8Or188yOs94Q+c3u9bGLJnrwPIcns6JGg4l8D57nxnLXfD4/bumUw8d3BCIMCCUAtwBIGgW8kb1I6w7/7Nq9HbgeZC8SqRBRqnDN5/MXr5i+al0MJztLKiVWgkTNM2z0O7fdYVq7cQErQbRg14MEJztZyc5KNoq37NqzXtRcKJUfiDAQnIUz5vc+6JWYsk9UERgv7PDY/c927ySqWLhMRQjrmg2LTS1M6zctFlXEheYES2hBdap+zOHOlnVMVDFJw30hfujIga+89hxG2SQNP33u+JPPtE46eUAPULNixmoBvKrexysuhyedYIv0IFZcxjJicwTddSS/gqLX+vQ8kXLk7/9s4UYLVR8lqG6ELHAimSAwhpMdBFtE8xC4IAjGIaoIxTkQosiN5iteXNYxhCgKhDlGcF4TZSUIZ8yi5glEGNAvA2yAAdvoAyDJWaPEwhmz4kNBfy1qHuDjBqz6uXpDJCAWIzrAcyJ4eLxae1FFvEFaVBGMsmCUhZc9so7JOvZ7zwujLKzokjQUvNADFMHYSNYu6xh44CUYG81DnORmRRdOWwnGBvosmockDWUEp7+YlTSU5KwEa9ECOM6Ywc8CvCjgZ6EFO1gDHnijo9w/1937Nw/+6HUPnucP05zsBHoFFIkuQXbxklOQXT/Wy8nk+l9ZSoiic7Njpr/Y87lZcydpfobiHJzkZkTH1VAk6TDF23whRtLQnr2eNrUwdenabu/B7d4gSzAOnHYoXurg0V2v9e1xy+2mdRuXduvR+bW+L4Bm23du0ANM7MKpD7f+Z+8+3Ud++n7bjvfdfocp7Xx87z7d/3KLadGyGSRrtzkz+7714l33tfh+/5f93n7puRcefajV37s+3yEQ5hQvLqrItm/WPtDydkGBIU9Omw53P/lM67Yd73nznZcVL15cKrKiKxjhVR9BMDZe9nR47P5nu3dkRZeoIqqPSEje+6/ez+z4dkOB5cyQof07dn7gWMJ34EJt2eaOm28zZeYmM4KT5qFghOdkp6A6ecUBE7my1wNylVQ/5vBkzpk/1uZKp3nIG6T79O8xadowUcWmzhzNSYiskyhpW7py7up18ynOofhQkrPCRP6y1bP2H96+58BX33y3adOXq+IWz27Z5q6NW1bs+v6LzV+tOnDkm/7vvrJkxZzV6+Y/06396HHvp545KOlwIMKImodgLbwCUbylGUXXj/wKirp2eyLl1A8tW99zJj2B4pwYXVRerYIMA052ABNb85Oan5Q0nJNg1UeofkzSUNBN60GClz2M6LhWwc2yF+FkJyM6cMbswfNYCdICOCc7wcM+SMi43G4AEAImBS3YQWEVkJd+RUXIAtCbAwsDbOcnAyc/ae8P0/5i1olkl1fpOGN2o/mXhpd/59npQULx4rRglzRU9iKM4JR1TFBghztb0lBWdAHqSBoKegGwxGkrWI/TVoyygNIpig8FBw9O//LzFTUP+GVkL/ILI8/LVs/q904PXzEVLGFhIl/1Y7ziEhT4MhQhogJzIiTIEC/bBcVxSWVIkKHLOmhX09v/haXHjVh8QbV1uweHjhgcKpEZwYkQRf4wfVWrSPPgjJmT3IIC5xWdHjC499/vNJlamAZ92HfbN+tLK73BiIRRdjda1Kb9A63b3X8+K9mFFOz6/ouOnR/q3KUVI7h9Ie65Fx57oOXfE1MOUJzz2z1bKM7Jip7OXVqNnzzUX8xm56emZ58wtTDNiR3vCzHeIL1957q/3GI6fuJ7QMquz3f4YutKmzNT0tAz6cdNLUzZ+angkYiXPWb7eUGBJQ2lOAcvezp2fqBbj07A2rO7srp0bbPpy+XAN6j5yZ69nu70xEOc5JY0tH2n+x5q9XectipeHFy0guoWVKeoOWnB6g3hjGjTAqjZcVbxoVoAD0QYzU/OiR3/1oB/5RSc5CQ4r+jM4A/fQnC75mdYEcYoWyDMOZFsSYdRqjAQYeyuLFknRBXPzD3Z4+Vn0rNOCgrGCO75i6b9kLinur7YG2TBWFogzJVd0JqKKjkxugj0YM0oun7kV1D07sB+h47ubtfxoczc1Ei5ipAFrASRnFn2ehjRBtILRBXBaStO2wUFxhkzQubJXiRYQpOcFaXyRc2D0QWsBLGS/f97eclzLWoePUiAzhS47KLmCzCGgNeblSCCtYDrzx+mw+UCWHnJ3XQlFVQ3MInAAxSvuIAZcTVV/Zioga3Zw+WCoDpZCfKG8N97drIXASVMeAUSVDfFW3jFpQeJcJmEkuZAmAuEOVZ0geBg8AKjLGDkgOah0koVoAu4QUAZGGAyYnQRWBO1GgXVDayiX9CNXy75ZORbIE8QIQsiFSLJWUUVuQKKFAcvWwXF1qSX08glyNClNf8LS9klqZTul1/r0/Otd1/jJATEEfxCiivwGNM8hNNWTnKjpHnX91+0bn8PGEGcPG0MjNk4EaNYz6Od28TGzSBZpx5geBkZO/FjUwtT0slDvhD3xNNt+r3dM7cwDWQp8TISLlNatbt78fLZoooUl4oJyXtNLUzJpw5CnhxOcp9JP37bP0y7920pr9IPHPna1MK0am1suExiBGfK6UOmFqbR494Pl0l6gGJFVyDMgThAXvaIKtLu0Xu7Pt9B85OM4Px2z+bb7zBl5ibjtFVQYJK179y98ebbTF9sXSlpaKcnHmrf6T5QTY6T3Izg5BUXI9pYycbJDkF1YnSBHsRQqlAPEsArvmDx1OdeeBTy5BSXipqfpnlX/ImDTzzVfuOWlaKKs6KH4hwX6ryc7FT9mBbAWdGl+ekz6Ymdu7ROPnmMZNwEA/EyWlVXPGDwG7NixofLFBg3a37aCmUAFoJOA5RHUnxwM4quH/kVFPV+4+Vdu796uNXdhdbzeoCRvQioJuIPk4LqZESbqLkkDeVlj6Th/mK2pFICKdlaABU1FyPagiW0FkAF1XlNFAy6ohRIG3QRrAWMCYHhkGhUT9RxJ6huQBSHJ9OD5/mKqdyiVNWPAVb9XEOlnBvLlXQYIQvs7gxAPmB1XVFFzYWQeRRvKb0gFtpOwUQuLVgZ0fZ7z0vxweD3BJmArGTXAihGF8B4YXGpaHNmEoxN8eIge58RnMAlqPlJX4hhBCeMF8o6RjA2mys9VMoBFAHkMKIDjBsDSwgo+H2AHXlF/fLrlcNGvwNcndF8eM1Ptmx1Z5ElnRcRQfaIipsT7YLi4GWzoFgExfJjGjVx6H9HZZfm4wrMOV27PfHp+KEke8kxhVKFV0MRyVlDpRzJ2jU/SXGOcJnkwYoEBZ05d/zd999qamH64qu1up+XVKpV2wfiFs/mJETz02Z7xup1cbfcbjqTnoBRtldf7/bcC4/xMqL6KA9WVHbBi1G2Vu3unj1vAsU5WdF18swR4CsTFFhQYGD6rFob60bzMcrSvtN902ePBm60+KQ9phamhOS9eoDKykvxF7MU5wAoAjZ6mw53d+naRtYxGC+MXTj5wUf+BuOFwBVPcQ7w9RWfxTCCs3X7u+6+/2YnnAu89LKOgTKvrGRjJXsgQpGcmZMdVfU+F5qjB4khw/p1f6lzMMIHwhxGWZxwPivCokLu2b+jT/+X23S4b9CHfafNGnPk+C5wv7OiixHck6aN6PtWTxi3KDpDsR7VRyOEVQ+w3iC3ftPS+x66ve9bL8cunJpy+hCoCQS6jkCE8YdpmMi9UkBdM4r+HPkVFHV/8ZnjiQc6dGqZnX8Kxs2g/wK536LmYiU7xVvAeAkvIw53tgU6U1LJs5INJnJAwRJGtOJMAShi+P+tDjBoAYILwIi6P0yTnBWji3jFpfqxqP8NPP6DkQ83ljtn/thps0dYoHMTpn6UeuZgdPzjJ5qWfnToqLfT0o+u37xw0vRPgDsLeAWvog7VD2sBBKPzw+WsP0xoAQQUJvm9yohWRrSCrwsqJGrOfYe3DPrwDYpzfjz83VVrF1CcU9JwVvTIOiHrhKThvIwwgjsjJ2X46EGpaUfjlkybM3+s6seAJUcLdpKzAuqAkCeYyAd2LcDS1U/KuWpdzOCPXmclyBsiAfXdWK7qI36KIskmKLZLKFKLmmh0madOcVxmMP23qwzBmG3TlvVPdX0sZv40WSeBe4ribVdDEQRngYt21boYzU9ykhun7Zqf5iTk8y9WmG4y9X7jRU4kPKj9kTb3z1sw3RvkGMFTUqFn5KSaWpgSkg/4i4Unnm77+FNtKmuCBAP5QjxOOySNuO+hvy1fPY/inKqPSjsfb2physxNLS6VcwvTMnJS/vo308KlM2nehRCW2IVTO3Z+KOX0EYJxjBr7wdCR79G8C6NspZV6MCLCuJkR3IKCiirGCO4Ojz349HMdwMDw/EXTbvqrKSMnxRfiIE9edEezYsZTnHPQh31b3GrauGUFiAYUVUxQYEl384qDEW0EW0SwRbRg9eB5J88e+mj4m7v2fP56v+4ffNxv8vThi5fPXLB4+orP5o+dMKxDp5b933111/db+vR/6V+9n83MTQYg3LB5ydvv9er0RMtxk4bOmDNuxuwJN91iQknb8tWx3Xo8PmnayBlzxr73/httOtzb4bEH12yIc7iz/cWs4sVRqhA8bl6lcnkziv4c+RUU9Xr9pWPx+1q1vS8r76S/mMcZsxbAQbSCHsRUP0KwRSCJwWzP+HrX+ieeeQgmckoqeReaKXvdstcNysX/YhT/z9VxtfD/V9946qsdK3DGLKhOUfMoPvjgse29+jydU5iCkHmKD5V0Ny3YacEaNcaBW+/Nd1/s/nKnrPykR9r9Y9nqWVcbIzmTcaxNxztPnTs8evygVu3vAFF5JGe9SnsIVPLf+OXCdp3+KagQxZsFFeJk+2/IXfjRkpMdggrJXo8eRDG6QPXDtGCdu+DTex/8a0W195G2dw0e0ocVPZzk5iSYFV0kC+kBiuKcFOfIzE19uPU/Tp87PmzUgFbt7sToIkGBZS/CSW5asHuDNCM6BAWG4KyMnKTsgmRQikbWMeCyu6Ju/Wb1xyP6gwA88Kd7QyTNQy1b/bPIks6LcJNV9AtjRdGBov8d9aCEs+NjbeMWzxs3cbjqoynOKSjwVQr/QLziCkQYTnYygnPZqjnnsxIZwclJMCfBvIxqfqZ9pwcf79IuGFZQwvHk0x3mxk5lRZjiXDjt2PTlqkcfb5lXdFYPsN16PN7rje5WKLvsgg8lbYKCKV6qbcf7Z8+bKOsESlrPZyX97Z+mA0e+kTTcF+KOxu82tTDNnjcB+PoSUw7MiZ04fvLQ5avn7T24nZcRWSeCEdEKZRGMw1/Mg2qtrOghWejxp1p369EZPAxt3LLC1ML05fY1+eaz4TIFISypaUdvvs105Ph3nATvPbj95ttMr/froQcY1UfhtF0PULwCgQi6Y4nfQHAGLVgXr5h+4Og28Fj5/EuPJqR8HyoRUNKs+UkXUqB4qW49Hk86eVjz05KGI0RRpFzGaeuZ9OMwXpiVl/LSK09TnBOj7Klpx15+tSsnwfPipixcOlPWCYQoOnnmyEuvdCFZOyM49SBBsnYQ1A4eVVnpivdpM4r+HPkVFL362os/JOxv2fqenILToooB35eku/Ug5sFzvCHcg+fQPCQoMM27WNHV8fF7eMWBkLmy103xZkl3cbKdlWyS7gJP/f4wIekugi3EmQI9iMFEfmWND2fMKFXIKy7Fh+pBguItjOgABd452cGINpCOIKhQVn6CHkRxplAPopzsCERIlMp/8ZVOKWn7RM1JcmbwzCV73bwCyV6PFsDB9C2Hj+/Yc3ALJzsnTf8EPOZfUVkJmjD1I9mLmB1n5y+eRAt2b4gEdfu9IdLmSgeEA5cyKD9MckVJp75/pN3t/jDhDxMYnc9KNkGFGNEKLm7F59GDKM4U0IIFhL+7sVx/mFT9GMmZ3VhuIEKJmkfUQCKhjREdnOwAA13LP5tNC/Yt21btObiFYGyKD5U0lDT++xsAACAASURBVGAtiheHiXxJQ33FFMU5xk76QNLQfHPa+k2LrVBGqEQSFJhgHMBxCopFMoJz8vSRFOdwo4Vm+3l/MS/rGK+4tABO8TZasAdLWEF1e/A8xYdu/HLJh0P7giElENcLrKWHW/09KzdZ9eK+IC3KqNOdV17pIyiHKGM/VvS/XhWNoBjI62dQ3MKLsC/AkrRryfK4WXOmr1i9ZP7C2U5PkeIlL6vedIVeT/URjOAkWWjlmvm93njeCecLCiooKLBXOj3RcvHyOcWlCsFAD7X6Z9ySmRR3aazoo2HvfPBxf5p3KV6yR88ur7z2HCfBNO8ChrLqo1q3v2fB4ukgKPz4ib2332E6m5HocOf6QlzSyUOmFqbFy2fzMiKqWOcurb7fv5VgHIAZTjgfZGV4gyzNuwQFZQS3pOGiijnh/E5PtHz6uQ68jHiDLCO423S4t/tLT6g+imQhXka++npt1+cfBfY6zbsmTRtx+x2m4aMHIYQlVCKxokv2IhRvOZqwY9ee9W4sO1TKRAsLiZrr5V6PH4n/OljCcrIT5GBQnKNnr6d/SNwNguvAMA+IggMVKN4a8C8wxnYidX+Pnk+AqPTpc0bSgp3ibblFqV2ebdUUngM1LX+58kIziv4c+a0oyi1ME1WsKVYN4mQHr0Dhci63KHn56rkz5ow5n5UkaeiDrW5TfDCYFEvUXGC2K4TMA29lr0cLoB48Rw9isteDUoXlVXq++Swve8qrdBAkFp0BTPYioubiZAfYF8WbYSIHmPYgaIJgi1jJjtEF3V/ueOrcQcUHgzAKirfQgpXiLVoARalCkFq0a8/njOiIT96dfHo/wN4Vdef3G/xhGmfM3x/4wu7OCJcLOGPWgwRKFbIS1GiUAHdztPQkJzswuiAzL6H9Y3cVWE9idAHIuALZ4CRnrmnw5VtSfcWEB8/RAiiIm1D9GCBNcRmvBwkQtgcCMUDEuT9M5xalfrYh1u7OQMiCg8e2M6IjUiF68DxwB0JwVm1j0IXmwET+rj2fgxGdb3avd8K5koarPgoU2AdOFZp3UZzTF+KmzhxNslDMgsmLls06cOQbTnKDsA7Vj2F0kcOTKWqeYAkLwhauiKJHO983ftKHE6d8MnX6qKXL506ZNmZe7IyZsyb9VGdP+JGCNf9Fy2nTx8+JmTxt+vj5cTPiFs75cus6f0CWFaZVm4dFmVuzbtWn44f7QxInwTht9Ybwq/V6JGsXVSwQFiZMGfbiv54aMWbwhs3Lkk4eSk07+sLLTw4Y/DpO22ne5QtxD7f+Z/tODwA32qYvV7Z79P6qupDiJc+kJ7Tv9EDbjvftObANpLXhtP3L7WvuuPumnr26kiwk68SyVTGmFqbJ00f6i3lfiAOOtdnzJjCCm5eRp55tb2pheqTtXfc//LcOjz344CP/mDJjFICi4iUxyqb6KHAh7Tmw7Y67b7rvodt/SNwDImbTs5Nbt7/no2HvpJw+sn3nhpdeeTq3MI1kIZKFLtQGi2zpk6eP7P7SE91femLGnLFZeSkpaQc+Gt531bo5YEwUdAWsZIfgDNnrea5Hu9Qz+1U/QgtWTnbIXg/BWl5/s9upc4fBYyJwF8NEPggTZSWoV5+uig8tr1ZPnz/Ss3eXUCmzcu3smTEjtQAq6e6ElO+6PNtS9SNXsUqbUXQdya8X/jkWvy+KItAlgZH5fYe3DBnWZ+mq6bzsgfFCToIDYeHJZ1rHLpzcuv1dnbu0TEjeC0K8YhdOnr9oyuv9um/dsabQetYJ5w4Y3HvB4qn/6v1MyukjCGGZOHXo1Jkj45ZMe+HlxydO+xj08qByFwgZFzUXwRba3effHthz+eq5IK50XtykeXGTZs79tFW7O+OT9sQn7Zm/aMqc2PGxCycvWTFr9rxxM+aMwRlzSaVE8TaHJ/NCnbfAehqM4V8NRWbHWX+YBlOeAIaVV6sIWQCSRj14HvD4Lf9s9ujxg1569QkQ9pqYsu/Rxx+sqgvgtHXkp4NmxYx9852Xp84c6S9mYbxw9rxxs2LGDhnaPyMnKVjCDh319ryFE2bHfjp5xlCcMc+YO2rl2rnzF0+aHfvpjLmjlq6aeST+G4Qs8BVTvmIKxCBAcFakQgRphuAAQOUVlCoMlXJW5/lIhQgm7gyVCCC4jmBsoAYMydolDZV17Lu9X5jt53HaqvlJGC9cvnru1Jkjd3y3DmTgi5oHeOEo3oZShVdD0aKl0+ctmHjHnX+ZPXf85i2frVi5cPmKuDVrV6xctaRJF61ctWjl6rhLCt5eWv/fs1y2fOGq1Ys/W7N8+Yq42XOmdX/haZJC5sbMmDh5XKNRH7tg7qy5U4JhBSEsoopoAfQXej2StVOc44fE3aqPyDenffX1Z7PnjZsw5RMwKOILMQhRRPPQk8+0nj579LqNiyZOHfrtns0IUeRC8mgeSkzZl1t46vAPO89nJQYjvKxjeoA6l5lwLOG7rLwUhCiyu7JOnT2amLIvIXkv5MmxOTPTzv+QW3gqPmlPvjktEOY+/OTNzV+t+CFx9+LlM2fFjP1s/YLuL3UGSTyanwT5A5KGQp6c+KQ9xxK+O37i++RTB91ovqxjkCdH9RFLV86OXTh5974tCFEEAsRVHwHKESleHCGKvtv7RcyCiQsWT125dq6ouUoviA5POiPa/GESBOIGIlRxGduh89279qzPKUzKyk/MLjiRdGqP1Xn+iWdafrdvE7hnOdkJIolAOFJ6TkKXZ1ulpB3ILkhe/tnsrt3bQXDGmAkDR40bkGdOyS1K/mLb0hd6PurwpDej6PqXX0HRv3q9cCx+3yNt7s0rOiOqGIgCIDlz/wE9ElN3Y3QBSuVX1wclDSUYB0JYHml79w+JeyuqA+MmDX3plWdYEV66MmbfoR2M4Nl78OvOXVqHSuQZc8bNipkg6+THwwcsXDpT0vBZMWNHjR3My57M3OROTz5wWd/nYCW7oDplr4eVbAiZ90y3jktWzCUY6Iutny1ePkfSCLsr9+nnOqamHcNphxMuEBRMVHFZJwUFC5VIBGvRAijBWgIRCmfM/jAJE/mqH/mxwR5duipqNA+eR/G24jIepC+QnFXxoWBCM18xhZAFAz/snWc+edEIz543rnef7hhlzzefe6Tt3YXWdF+Iv/v+W/UA6wvxj7S9mxXhU2ePjxr7ob9YOJF66ETqQYyydHuxo6TDxWX84hXTAxEGIQsAesG0ymB2ANmLEKzFg+dxspNXIFA5xoXm+IqJYAkLE7kkZ3Vj2aFSjhFtig+lBSvF2yIVIvBL4LSVER2yjtGCneIc/jCt+clR4wYGIzwt2FHSXFalgCndDh7bPnzMu6vXzwOhDcAEDJawV0ORrKFeP3Pb30w1deGGxqqLDdXGpXmJ6pu0zjDqDKOmSeuuWJP7v2BZf7HKMOrr6i/AiLN9h1YeGHriyU7hkuL6hpr5cTGLl8XyEk6ykOLFm2o2Xskq4qyllSrwB+gBipc9CFEUKhEYwXmh1o/TVoQo8hezGGVp0+HumAUTQyUCxTloHqo3IiCbJ1QiWKEMUC7I4kiPZkDzskdQYFC8QPHivhCj+ggYLwTx5QhRBMKsYxZMXL1uvuYnCcaGEEUgmTo17fCCxVNDJYIbzfdgBaAkhOLFGcFZXCqCw9P8JCu6Kqq9bjQf5GjLOhYqEWzOTJA5C4DkDdKs6AKIAgltku4Gnu1AhOIViGCLtACKM4UImdfvne4Hj22FiVxRcwUilOz12N0Zgz96/eCx7cBTQvE28BwGjKQi+5l1m+KiNY0gOEvS3QeOfpWSto8WrKxkR6n8g8e2gh01o+g6l/8jiorsp8dP+WDtxlizI42XPR6sQFSxYER68ukOGAnRHHw2PblN+wdEhXzhpacnTxszb8H0xctips8aj+B2USFpDt7+zaY3+vWMWzKT5l1zYsdPmzWKFV2VNb6Oj98nah5asPOKC4Q1AxqJmpNXXF26tp8+a3xFVeiNfj2/3rkZI6HiEq33Gy+mnTuRevr4wiVzYuZPi1s8e+mK2JlzJk6ePoqVIDeWpQVQVrKhVL7qh2EilxGtPw8cAJcmKBqk+FCYyOdkZ7CERalCb4gsr1atzvMg9qxNxzsRssDhyaR5iBE8is6cSDnSqu19/pDEiVhphX/fwZ1TZ4x9+tlOMGYrtGTe9+A/hnwyACUckkZIGvpyrycHftj74LHtqh9Lz0n48uuVs2M/jYkbv2DJ5Dnzx8bEjf9u3yZgFQEY04JFC6C0YBFUp+qHWcmu+DwkZ/aHCYq3kFwRxVv0IEqwRSiVD7yXshcRVCfwH1K8TdRcJGedPONjRnRU1Cgwke/BcypqtNXr540c+96xxF3gMRM8dYJf/sooktw06wyEBNNNpibM1DdN29Pw45mK6i6D0O+YB+gGWtZfrG5oqDeMelWV77n3n4sXL5wxY1p1bVWjUb/piw0TJo9WvaysEzQPgdIkV+z1cMYs65jFke4vZkFdA05yU5yD4hw2Z2ZljQ8YGbKOte14z/xFU2C8EFgq2fmpso55sIJQiQD6/UCYo3mootrLyx5QgAPEZ4P00iLbOVnHRBUBWT56gPKFGIc7+/GnHvnwkzddSJ6oIr4QQ3EOuytr6syRFOdwwrmiioTLJBeSB6gmqgjNQ+CQJA39f+x9d5gUVdY+G77fF3bX3f1291tdc8CAICJKDoZd3TUHUDGCYkByEJAsgyCCCIggIJLDAEqQzMDEns5dXV3V3ZVz5+nJoadT/f44M0U7zgAzSxicep/3qae7purWvVU19+1z77nnyAGPHc0LltDg502yNm0hNjQBlhMRjDUQoSJlnJcxyUHc6jwBA+kO7JQSwqpiktV5QglhkXKq2HqYk+3BqBdeZk62SwHsdOE+LdyXFvsO0tRyMuKhjf6I10MbYf2c6HfaXTmgdgRrjJRTGFEAk826FLVztHGADtbBiH7n5OlvvfDSo7u/3+AP05jXfEvnv3GiR/az4aj0l6t/L/moPv3v27hlDclggkyEo4ogExu3rB0w+H6X2zZ56uj3x7wRrZAmT3t3yRdzMG+xxXHqxtv+4PIWwgpN0e9kRCsMHHOyjZUcjzzW9613XkFxa98BPb5c/bkgE5xI3HbHdTuyNzE8zvAeyUd5SCdBOxneEykTecXJyTbRj0gBJzg+hEq9Z/Fwg2hvELcNJw1gviB4HuopgOWuvOLs0v1ajChyU8VlVRLqNpZW+Hfu3nz7XTdgHruHdDw35In1335JsfgNN/+f5GPCUcnltg19+akbbr567YYvQlGGV5wjRw299qbffjD+VRhYg2VAMLkKn5WQGyZ4Wckm+BxSwImTBf4ITgtmjMiXAk5/BA+UuG3oiVCpN1JOgi84r9jBqY+VbG6qiJVsctAF7o7f/7Ahv3g/wRoxosAXxqfPfu+dD4YczdlRWSc73fkkZwmVUvDfHoySBGtuSYpE2UMx6G9++2vIKqSqqbq6GlVVk2cQTybjyVSsgfC1Yf/PZ6uqaiqVqKmpUdWUJElXX/1/3bt3D4eDsXhdWk18nDVnxMhXw1HJS9v8YRKeY/NuC0GcERCIF4W6izyU2RcicMIYKeM8lBnzFkNUrTXrP+v0q04vv/ZEsIRGsAJWdEYrBC9tqahRjNYTkKBP8rtp3uGlLaAHog/3h0kEKwhEKBAzsLqsyGmQHIqzs6Jz49aVf/jzr6698apHH+97V7freva+/ZkXHt73wxatJnLAA7GsEKxAUDBfiFCCXk5CEawAPihBr8VxqjYeKjId9YdJiFMFp0BMLJfH4CZNgoIJPhTBT1fUCqVVLKyl89AG1JMXKac8tMFNFQVKPJxs94VxgjW6qSI56IJh6nAZDZOaUgCDOF6MaLe7TjcsMBJstGALlBC0YONkO8xPc7KdYI2QqchDG3Qpav9oo9sCyZkc2ClWsvkjbtGHr/p60VdrPxMU95/++t+hKI97bTt2f/Pam0NszoKFi+fc3f1mkkFZEZuXNd2OFj7yaP89+zZjHuv0WeMmTHmHl/Hxk996692h/jBZViXd1PmP/ogXumbNbYGT7bRg9jLF3XveNn3WOBQ3j3z/lQcf6QOL4B7oe/eBQ9n+MMOJHppHMY+V5lGSQWne6aENUsCJEflyEPXQRbxilwJOgi1uSYoo3lpSwYLkRMoZD22EhdmwKh788a6/5apnhjzoj3gtjlOz5k1CMMPu77b0eOAOxGU8evK7u7reHC4VKNb1f3/7rYd0FBqPu9wWBDN8NGviuEkjnXhh9vfr5CC+Z/83PfvcJvhQD22UgzgEOYaLKiG3y1uIEUUQQlgKOJWQC9ZpgVOimyq0oScY0eKP4Ah+ihEtOFlQUkGRnBEEiWCLMSKflayiH4FFS6+NeNzpPh0pJ23oiTETXwGHRjnosiAnYdoJJw2+sAfWvZ/FKpIUL0Vjv//Df9XWVYAUpVKp5l4czUj6+YPnxV//+tevvPKaqqppNVWfqJ384YQPp4/nRA9OmEsrxbNYRazkcGC5gg+FCALgQoIRRXbX6bJqARxWjbZjpwq+P5m3d9d3a/cd2lQVU2D8Vg7iCJ4HDpD+iJeTEYiQC+WQnAWCKIK3C4LnIXhetJKDOFhgW/jCHghUunXXqhO5e3Z9t/ZE7p6SClYKYB7aGK3ktIx8HtooBbBACQHlBKMkqILgQ53u/PIaEfUUcDIC75LddZrirThpgAOCURJCfWvJMgjW6PLmk5wpXEaGSgmSM4H80ILFQxsgeDZ4NrGSDScLcbIQpItgjR7aECmn4K+84iA5EyyVDUa9MBAKdxt+hMExjeuHdClq12ijM7fgQ2DK0U0ViT7cjuZBoI4nn31o6ozR27PXvfTqkyXlohIkbc78foO633bnNV3vvfmbTSskv3f0+OF9BnQb8c6Lzw75x93dbyJZx9PPP/TskEeceOHm7atu6vzHzTtWNsalN0OmLCmA0oIZ9eT17t/lhZf+6QtRdrSg36DuL7365PjJI2+45U+vDX/uxOl9EBsb/IJo3snLLvB3iJSTbqpQ9CNyEM10s/4pweSHAORuqhjiMshBHP7lIMxobtH+v/zt/918+//+4/FerOjyhagvvlzwhz//x+mCH1jR9bcbfv/3f/adv3DaX6/97WfL5n5/cOtzQx89mbt/xDsv5hX9IPndzwx5cO23n32+cs4Xq+bBYCB4sYNHEEYUUbw1GCWVkBvyN2NEPsWbBJ/DH8FBThjRwit2kjPKQZQRLV7GwCt2XrHDZzABYVEXyRm9jEEJud4bM1QKON1UIdhYsOiYV+yMaPeFPTAKDwN0MAjZkhR5CHsoLHX6RaeGQapEQlXVRCKlplW1I/2jxuPJRCKlqmoymS4pKf3FL35VWxtLp9O1sbr6RO2ixQumzZjoclsCEYZkbbzSkjO3FTRDC4PNSg43VQw/R7RQFzB2inoKIFCb1ZkDP4yA8Pj8ES8sXg6VUjDhB8vp4H2GoWZORtxUMcxHRsoZmAeFlc5KyA3RuEW/C0a6QGlYyQHO0xANCwarg1ESopyAYoEZrRn0kDAC/mu06CcwsK+E3DB0xsl2f8Qt+BAvU0ywRpgShsiW/ojbyxTDCB5OFvKKA0TIF8ZJzgRdgcubj5OFot8JaWSDUa8W4gRWgJCcSfQ7PbSB4s0kZ2q8/7oUtWucQ4oe6NP9+wM7rrnuj6fyD3ppG8lZIDsyGCsNFBBYeglDwwieB1HfIUAcdGdF5sNOdz4oGYREowUbrzhhQV9jCQgjIE1iGWTQwogWLb4cwZoRPM+CnLQgJ23oqZZCIWgnnjebjz4A3YEWwgAWQsFAYrOE2RcIS4p6Ckz24+B9R3IWWOwNxhYsUYLO4gLVv7Vsvv5Lls8a9sbjMEQJ3oywmInhMEGkO/2iUypdf8boSWewYyAeT6bTqqqq6bRaX5+oq6uPx5PpdDqtqik1/nHWnLET3uNEDydhNO84ixS15Mn582VLknC5qEtRe8E5pOjRfz24aevX19/0l9MFP/jDNKRaIFgjOFg3UHbxsouXcV52SQGU4k2w1FQJYXIQFXwIr9gJ1sjJNtjDKw5aMLOSDUKpwolnqDgzmHGVxh/+vGIX/U5esVO8mWCLIelI4wH/5tbx46ufYWboNi1QNyO2WJoUQAWfQ/Q7RT/CiFYvY6AFixx0we9f+P0I63lBrlq6butb0Sq22N6FS6YNGfYPGCaF3x+QSFSXIkAymc78HI8nYU/rpch2ubVBlyJditoFzp3F9ev1y2/p/LeTuftDUQ4ibCohjOLNZ9iQdAehOLvgQ2jRSPEmVjZzso2RTBRvokUjr9gFv41X7IxkIjkjwRVRvIkRrdqJZ/ijxDkZV+FNFG/yMgZaNLKSlZXNtGCmRSMn28SAneJNlFDcdMubGs+1nt+2RcJgiGY0aP9XzV9XKBZ8DkooJthiSiiG2rKSlZMhHKQNCmQbo5GCFdUyz7/+5taz+YsuXDLt6RcGw/gkJMIgOQsjIAyHCSLZVIrUjqVDTZBOq6kMUW69FOlslVScnboUXak4hxT16nvvzt0bb7zlrydO7yNZB4TXhMTAZyg6WdHJii5WdHKynZNtQFaCKLxgtdjhK8WbwIGNk2284tBOPMMWf0OBh1tDaVAgI1o42Sb4HC2/mg54sc532wKbiJAWlrul60IoWIItpngT1BD89+BF1xQICjxLPqQ21d923tsWuezLuY8/0x+C+Lm8heBfx4rODCmKNXo2q6r6Ux3qQG4LmUirKV2KLih1KeooOPe6ooOHd//xz/9ttOawogt8+d1U0Y9yHEgoJBTnJBT8KWGyUXN+A0c4WrBoCfdEv1PwIZyMaCee4Y+yFWRmUgB5s2l7tJhAmTt/TCSzbue1bSFpgsYmXfY5sz+wjUGS4DPbmN9Pm0VjWs5A0Zb6QxPOf9sCV67Jeur5QbD2FpyscNIg+nCGQwXJ24wUNUXqx1Q7yFaXIl2KdLQN585XtG3nN7/9/a+N1pxwKQ/+VGyLbgsoydpgmTekvob8j/AV1k9oa+XAx6GVbgtWirdSnJ3mHVqB2uWaI9pI13lvkWan8WGKKHOWqGHIrvnrIpAdXPK7OQnNrHCm8GRaWs27D5xpwvnXv6Vb0QJbcFuY98nEYW88Dv7l0HY3VSz53RlSVNu4grWJGmUudG2y+vXnw3Q6CWy6X5ciXYp0tAnntorWbVjZtfttny6dvXPPNxu3Ld+6a9Wu79Zs373qDLO/3p799fbsdduz123btW7Xnk279mzatvOb7bs27P5uS/bezdt3bdi5e+PO3RvhTzt3b9yR/e32XRu2Z6+HsxpL+Hp79tfbd6/OYMZVdn+5ffeq7dnrtu38BgqHMoHbd21okdnrW7FtWoEG7vpu7c69X2vcsWfNjj1rduxe23DiT7ht5zfZezfv/m7Ljuxvt+38Biq5bde6nXvWNZy7Z01mgc1edHv219uz17ey/utawxauu3v1q8OffH/sMDDaYGUJLdgEBWM4pyC5O/2yiRRlqlGmFGUGBPpZMa3G000jHsH+1kpRR2PrpUI2ny91KbqSce51RTuyv3351Wcf6Nvlgb5d7u/buc/Au/o/2KX3gNvPsH+X3v279O7ftXf/br37de838L4+/e+9v3fXXn3v6T+oZ98BPXr2urtX33t69+vep/+9vft1f6BPt1597+nT/97+g3r27t+18fRGDrgzg7f/mHf2HdhQiMZefe95oE+3zD1N2b9bK7ZNK9A8+wy8q8/Au/oMuLvhxJ/wgT7d+vS/t0//e6Fu/Qf17Dfwvvv7dOndv0uv/nc80PfOXv3v6DPg7n6D7+4z4O7eA+5suG6TrXZXW8GujWed37aFBg54qNvk6SO19O0QsZ+T0FZKUaZt9DPcptPJH+9pg1XU0dgmKTrPrS5FVzLO7UG3aevXnOhhBJTmnbC2rmW3BRcrYq2h6+zOAs1N4Lf2EljjKee5bU19Glrdqpq4Mjw1zmfbel4INw0tODrkzQPziGCsLUhRS9BGrtQOstUH6C4Cree9bVvhuhS1C5xDinr367H/h12s4CZZB807YWkqrGE+Q9ZGsjaSdbSeNpKztI5tvFCHqc8FIqzVD0ZJCL4HK6u8tKU5KdJxBroUXWnUpai94NwDdAcP7/7s8/mzP540Y8740RNemzTt7dETXpk0bcQZTn1n0tR3Jk19b9LU9xo/nzenvd06trb8jlafC8SZ88Zs3bUqVErBKiiCbUggq0vR2aFL0ZVGXYraC85tFW3a+vXtd93w0qtPjhr7xrjJb46fMnz0hFfGTHz1DCe8OWbCm2MmjBgzYcSYCW+Omfh6K7Zt43mW3wZe1Pq0YXuZOPDhe95+fwj4LECIfk5G5IBHl6KzQ5eiK426FLUXnEOKHnyk36Gje2++7ZojJ/Z4KGtJBUvxVsH34xU/mWtfGhYDnee2bWxN+Zkrls6HF7c+rd1eNk6fPerNkc8ieB4sKuJkhOKtNO/Qpejs0KXoSqMuRe0F55Ci7vfdtX3Xhj/86b9sznyadwajpNOdD2mEmg2H+pPFQOdk8+taWmarCrc2rs75d9fZXLj6tL7+l4Or1n7yyptPuKliCMAMY3S87NKl6OzQpehKoy5F7QXnXuK6a8+ma2/4k9l+muadsMTEH3H/6HFmBP5p4emexbOzDeEUL2r5F7U+reUlqH/znLtgwr+e7gdZBhjR7mVMFG/VB+jOCV2KrjTqUtRecG5n7o1b1tx069U5eQcExd2YL+DHWRHbLkXW1vf7F7X8NuhQa+vTWl4eKVq5JuuZIQ9CfiaIzM0rzhacuXWcgS5FVxp1KWovaHVCcVZy0IKFEa2wuohgjSRrkwMeVnR5aQstWFjJ6qGLfGGM5Iz+CO7y5lG8iRbMkXLSghyD9N6cbCM5IyfbIuUMgudBujZYR8krTi2TWGaINka0gxN5oMQNaVjlICoFnAh+yhfGCLYY8rQyokUO8Sfq/AAAIABJREFUorRghvCjchB3uvNDpdTpwn0Fxh9YyXEidw/JWVrqgjkZ2X94MycjRebDkI4IYh1B/BtWchCsGdKOEaxZCWGcbIfEPw4sR/A5IJed4HMwooXkjOEyAsLCBkrcXsYAGS5owczJNn8Eh7x2gRI37IRAseEyguSMBFtcVs0i+KkC4w9uqvjwiR2QBBMiD0kBDOSB4q1wf3bvWy8H8fzig1ZnDgTpCZQQsDQ1Wsk5sFzR70I9BXIQd3kLWckRKqWMtmMwCQQZmiF5qOBDQ6WUA8ttKXWeLkVnhy5FVxp1KWovaKMUyUEXJAAWfIigYGZ7TlmVQvOOBYsnexkDPFSKN5Gc0RfGglEPxZuc7tOlVYwvjDndp+2uk5Fy0kMb7K7TchBXQm5QIKYxZb02NJSRkcHBiPbNO5Z//8M3rGQNRj0YkQ+ZTLdlr8SI/FCpF/JnE2yxA8sh2GJasJCcqaSCpQVb1x7X39+389GcXZ1+3Wn+osktSdHiZTP+duNvtmV/9a+n+91yx58woihQQkDSP+ipaxMBG3pK8KFVMcXpzldCmIcuUkKulWvmWZBj1fWSA8vhFTvqyS2v4RxYjgPLYSWr1Xm8sk4AlSLYYjjFH8GlgFPwORD8lBxElZCLYIsJttjLGOQgakNPTPjwzb/87f/JQbxrj+ufHfoQRhRBMmmz40SghIAK04Jt665Vnf6j0+YdK4cM+8dtd/3FTRWX14gInge5JyA1p4c2hkop+GpBTsJOSD4NWaUp3uqPeD200enOL63idSlqG3QputKoS1F7QRulyIGdKqmgRb/T7sqpjYcYAZEDxOcr5t18+/9ysh3MJimAin5nuIxE8NOCDxH9TjnosjpPsJKtul7GiAJ/xK2lPbYgJyEpjj/i5WRECmCQjVj74Q92yZsjn969by1OFlqdJyLlVEkFffjEtutv+e2h41txstDLFLOSzRfGpQAqBVAvUywFUAd2KlRKLP9q7htvP0Xx5n893efrDYtaejVLKtiBD99jQU7uO7Tp4cd6+iNe1FMAfoOlVTxOGkjOwsmIy1sI+b89tEHwIQuXfHjdzb+Rgy6SM+FkoRLCSqtYuysnGPWWVrFy0OXAThGsUfAhtGCBv7qpomLrYRB1Tra7qSKKN/OKQw66vEwxxZtFvzPPsK9rj+ulADbr47GjJ7zGyYjRdgz1FJRW8XbX6XAZjZMGnDT4wp5H/nm/lzF9d/DbvoO6ULwVLBvI9AxGIcGavYxpykfvKCE3wZpLKlhQepw0ON352lPwR7xKyG115uhS1DboUnSlUZei9oI2SlG4jARBIjkTJ6ETpry9dPnHoSjzx//7ZWWdSHIWJYTxitOGnnRTxSRnYkQ7rzgo3uqPuEW/C/XkSQHMgeXKQZwR7W6quKSCdVPFXsYk+l1uqhh+72sp5sBm4hWnP+KVAmhJBYuThW6qWPQ7Kd7ae8Dtew9sEP3OsmrBF8Y9tBHBT4t+V6DE43TnQo645V/NdbpzpQA64t1ny2v4ll7NH45tmzx9pC/s2bpr1YncPRhRFK3kvIzJF/ZArRjRXlEroZ4CGD/0R7yCDzlycuefr/mVHMQZ0crJiD/iFnwoxZtFv8vlzcdJQ1k1x4h2wYeQnIWT7Tb0FCfbk2qUEa0m+/HSKjZcRhOs0U0Vy0GXP+LlFYfJfnzzjpV5hgO0YJvy0Tsw1AY6zYj2smoBckeRnOXAkS0rVs/HScOyL+cabcc4GYE/BUoIgjVTvJXkLJFyRg7iI0cNPXh063tjXj6as8tDGwnWHEuFMKKIFmyBEsLuOo3gecEoKQUwXYraBl2KrjTqUtRe0EYp8jLFctBlsBwaO+m1KdPfKzQe4WVcUNw9e9+eX3xw4WcfLV0x202a/BEvL7sY0b7g02lTZ74nKJjddZpgrN8d/HbK9Pe+/HqB4ENt6Cleca5a+4nddXry9JHHTmUrIbeWO5VtzCwHkyVbd61atfYTRkD8EW+4lJ27YMKc+RN7D7jz+4ObXd5CL20hOYugYJyMMAJiQ08JPqQu6behJxH8tOh3Hjm53R9xN3W7yOC+Q5sqaiVORvKLD+KkQQpgMKLlpoqDUVIbQvTQxgkfjvhq3UIQpx271/YbfLfLY1BCbgQrmDj1rTET3vTQRjua5wt7du1dPydr/JYdX0HKH6szJ2vR1BWr51scp9xUMSehbqoYJ4z+iDdSxuGkAXUXBaOkoGB5hgNuqvhE7p5glLS7TrOSg+QsFuRkaRXPSg4beqqkghV86L5Dm0jOEi6ji8yHecVJsGZORuQg7qaKecUZreQQPM/sOOHAcleuyXJTxb6wZ+O25c+/9MiOPWtQTwG0y+UtlIM4WEse2qhLUdugS9GVRl2K2gvaKEUHj24e9sY/v1g1B/XkeShztEKgeSfFIb/7Y6fPV8x7692h19541fjJb8kBz47da0ePf8Nsz/l06cynn3+IYKxZi6aOn/yWHc174aVHP/tipgPLfW3EUy+//q+PF06aOW9M1x7Xg4MAiBAky6F4K04aEDyv811Xz1sw2U2aSNbWq99dTryw2HL8d3/sdOjYzj37vp01b/z7Y16dPO3d2R9PmL/wwynT33N58x3YKcGH+CNumNmC0bCWXk2CNQs+lOKtLm9hTdyPkwbR7yqt4gnWHC6jPbSRk5E133w6atwr/oh3wEPd3njruWAJfSxnz3/+phMnoXLA8z9XdZIDnq07V992519Z0XksZ887o14WFOyj2WOOnMgWFKzvwK6s6Pzh6I4Pxr2OE8asRVPHTRoxedq7Yya8OXr8G+MmjdiweTnF2eWAh+Lsbqq4LhlE8LzyGtGB5YJ94/IWuqliOYgLPhQjisCCZCWH4ENBfjgZITmLNrAJFtLMeWO8jIlgzaLfhZMGirdmf79u6CuPrtu4hJORSDlDchawkAQfqktR26BL0ZVGXYraC9ooRU8+13/y9Lc42R4ppwjGygiIoLjdpOWa66/iZbykXFz8+ZzOd/2Nk7A33nphzIQRH80e997o166+7ndGa86+H7bt3PONEze8+fbz4ya/6Qt73vngxRlzRws+lJOR62+5CuYtNDWCrtZDG13ewnvuu3nk+8NEn2fk+8PWbljmcBXKAaLvwHu+P7gV85p4GfeFKEFxo+5igrEzAsKI1nAZYXedVEIuXrHjZAHFm5SQq6V+AVz4GNEOrnf+iNfpzodVNTAiFygh7ux2TXmN6KGNhaZDX3+zxEvbtu1ae899twZLWF7Gx0wYISju7w9uvfHWP7Oia/+h7ff3uet0wQ+S34sTZl7G+w++d/Hnc0or5XzDEbP9dCjKMQIqBwjR5ykpF0WfBwJ4uzxGX4jgFSeC54EYiH4XLdgqaiXYOrBcTkaCUZLirW6qGDzlQqWUEnKD5ASjJCPaYcxNDuLD33lOCblhZZjLWxguoxnRvnHb8uHvPJf16RRasMHxUgBjJYcuRW2DLkVXGnUpai84pxT12bl789+u/9+8oiO8jNM8eG1ZONleYDywYPHkN95+ymg7RnF20YfLAeL2Lte6PEbR54mUCf9zVafSSvmOu6/bf2i7EiSduCFSJtC8E/OaJk19b/Hnc0a8M2TqjFG84pw+e9Q7H7wI80a33PEnmA7JnCsCQWIE5J77bp4zf7KguO/qdgMUi3lNvfrdffTk3u3Z66bNHDNmwoipM0Z/+NEH02aOmfjhSDdVxCt2JeQCh3JOtslB1E0VttQv+CNuG3oKvOZKq3gPbZSDOMzne2ijP+IlWPN1N/+Ok5GGqX4J5STsxOl911x/FcUhHsp6+Pju10c8vz173Q23/IkVXYyAvvn2kNu7XPvSq0/ihJni7As+nda95y19B3Y1Wk8wAjJq7GtTZ4waP/mt8ZPfmjT1nbETh2/btcYfJgUF89IWD22MlDNgFPrCHl5xOt354PjOK05QHVZyBEoIC3IyVEoxop3kLJpZCW5yFG8tth79fOUc2O9lTHIQn5M1/rkXH96+ezUt2MprRIq3YkQRROAmOUvzUiTaz0iRWn0eSSI6HHQputKoS1F7wbmkaGCfnbu2Xnvd/+UXnBAkN8ujvISygt1DFvmCWLSctjtPLv1ixriJb2zetiIcZa6+9n+CEUry4bkFBx585D5Rwf7+WK8p097lJZQTnW7C6CFNzzz/0NIv5igBz/hJI+Z/MsVgOjp73viPZo1G8ULZ7779rqs9pIkVEIZ30Jyd4R2c6ITTWQF58JH7Ro97nROdd3S5ZuyEN8NRhqAt/QZ2/f7AJiXgERWMoC2+oFdUMFZAaM7e2leTE5unlzIoARfJGGnOfFfXv369fiHNmQNh75p1i1kB2fP9hmuu+01phWCynug74G5BdoVK6N9c1Ynm7KKCIa783IIDvfreOW3GKBj9c7rzh77y6AP9bldCbpw0RMqZc62iPe/6y3ZOtvOKA8jJDXfgoznvl1axnGw32Y/OXzRx1sejDZZDHtrQUnuXLPtoyEsPs4KV4S2igjC8hRWsrABShDcvRekMdlToUnSlUZei9oJzSdGAfhlS5NWkSPI5WcEqyA5/COdEG4rnugmDEsDvvuf6nNzvac4+Zdq7y1bMK6+SVq/99Nf/2emNEc9u3vblg4/cJ/nwf/yz99vvDj10dMczzz/0+vBnKNb23gfDXh/+TCBMuglj1+43yH43aI8mQgzv8FJmzGPofOdfP5o1ui4e2rR15e//9xc/HNlud+Zefe3/LFsxD8ULBdnFCoioYBRr4yU0EPa29tVsqWsuKaNycneHo0Qw4nns8Qf6Drhj5pxREya/sf7bJaUVwvcHNt33wG0G09F9Bzff0eWag4e3fbHy41tv/8v3Bzbt+X5D9t71FdXy0i/mzJo7hhGtk6aN4GS7lyl+ZsigQtPBmrhSYDxwof61mogQI1phXfAbbz9lsh+leHOolLAgx82OYyUVdLiMbLUU8Y7mpSj9E3ZI6FJ0pVGXovaCVllFZ6SIE20esggn8hnB7AtiviDGS3aaM6/9ZvHUj96dOWf0tp2rfEG3y13AS8jO3Wsef6rf68Ofqq5TQiWkwXR47ITXd2Sv/mbj0nlZExBX7kezRs2cMzqvcP+W7SuHvvyPHdmrOdHBiQ5eQgTZyUsIzVndhMGJ5WUtnDz87Wdd7gKKtaxeu/Cxx3t/9fUn733w0uZtK0jG7Au6RQUVFdRLGVnBrgTw1r6aLXXNnGgrrWBEBbE7T/KSfeacUS+/+ujabxbxEoLi+V+uzpo4ZcSR4zt8Qffc+eNnzP7A7jw1e97Y7/ZvQPH8yVPfHjHyuUkfvhUtZ63OEzPnffDu6KFzssZakONxNYQRBb5wq+vZEn+qQwRr9DLFm3csJzmTHHSVVNBy0CUFUMGHtMUqOh8p6sDQpehKoy5F7QXnI0Vbrr3uz/mFxzIH6GQ/qgRcos9BssVuopBkjJxoE2SHqKA0Zy0yHgqEvaxg91LGcJSyOk76Qx7cW+TE8gjahLhyRQWV/ZgSwHkJERUU8xT6gm44XgngmKeQ5qw0Z2V4GwgSJzpozkrQJhTPD0cpJYALsrOkjLEhObi3yIGexr1FJWUMLyEUaxFkJ8PbeAkhGXNrX82WumbJ57Q7T3opQ2WNIMgOhreQjNHlzhMVVAngJWVMtJzNK9zvC7plP0axFi9lJBkzw9sqayTcW1RRLYoKSrGW6nqZYI284iA5kxRA3VSRlylWQtiF+tfKTN7BSjZasIBVBAtsGdHqporg0hAso01S1ILbgi5FuhRdedSlqL3gnFLUu1kp4iW76HOIPgcv22Q/Ggi7JZ8L7BKSMXspYyDsra5T3ISB4W2yH7MhOdV1CghGIOwlaFMwQngpI8Pb4ACaswbCXl/QHSoh/SEPJzoY3qapkSA7RQWFbaSUNtuO+0MeFM8vreC0jt4f8mCeQsxTyAp2XkKUAE6xlta+mi11zTbkRHkVxwpWmjO7icJgxEMyxmg5TdAm2Y+BxEo+lxLAoVFllTy0gmTMKJ5PsRaCNrGCHcFPc7JdCqA4WVhewxOsEZKyX6h/LUa0shkzRpmaRLBGcGQX/U5fGCc5kxLC2jRXpHvQtQhdiq406lLUXnA+UrTp2uv+nF94RJDcrICAFBF0Mc2baN5Ec2ZWsPISwvA2gjbxElJawUk+V5HxEO4tEmQnyZgp1uIPeWDQjBXsJGOurlPMtuO+oJuXEF5CghHC7jwl+VwMb7M6TlKsRfZjYNzQnBWkRZCdguykWAvD28qrBLPtOCc64DAwmOCvYEKBKPIS0tpXs6WuWZAdsh+FcUhWsMJOkjEKslPyuVjBLvuxSCkNNpzsx9yEweUuUAK4mzBIPpc/5BEVlBXsoVKCEa1y0EXxZghXEYx6Rb/zQv1rQcgltnGkTvAhgg/RPgSjXog8RHImjCigePO/J0W6+1xT6FJ0pVGXovaCNkqR7EeBMA4GPm/+EGFDckQFZXhbMEKwgh2G6WQ/FiohWcHO8DaKtcBom6igvIRIPhf4O7CCXfK5ZD8m+zHJ55J8Ll5CQLpg3ogTHfBVVFBOdLgJQ0kZI/sxu/MUFAuzRKESkpcQD1ks+zFObHVyBO1aTegPeUzWY7i3CK4iyM5ghHC5CzjR4cTyGN7mD3lc7gL44CGLeQkhaFM4SvlDHsnnQly5UCXBhzrd+bBUNlxGQzQHgjVfqOQOWgBZLR8r7Kd4K+yEqAoQBF0KYC21d8mymUNe+js8MnigrGBnBYThUEHydvrFeUpRhxMqXYquNOpS1F7Q5gE6hKBNXsrIS6gv6BUknGYRirUpAQ9BmxjeIflcgTBpdZwMldBeyoh5DILs5CVU9mMudxEnOkrKODdh4ESnIDsJ2kJzVl/QSzJmirVRrIXhHQxvY3gHK9h5CeUlhBUQmrOKCkZzVoZ3cKJDVDAvZQyESSiZ5qwe0iT5XKyAELTJF/QyvKMxl9L5kmuBrICESmhwzKM5Oyc6cW9xOMqQjLWkjOFEJ8VaKNZWWsF5SBPUmRXsJAP2ooPhbb6gl+bsJGuT/G7Rh3soMy+7OAnFCaPkd7e2nudJmndQnB0o+d2chHooc0k5TzBWX4igOHtL7V2ybPaQlx4Fl3pRwRjewQoIy6MZUhQ7qxSlGtmxoEvRlUZditoLziFFDz7Uf+OmdTfc+FeDMYekHQzn9AcpkrHyEtpAEeNFjBfxRmINO9vDVsQ4qXVsbE5reDHrc7HZUqO+WJH18itP8iJGUDaWRxU/4SEsgRATLVNQl6XTLzqpajyZitXV1bTw4uhSpEvRFUFditoLziFF/fr3GjS476//o9ONN13db0CP++6/4/Y7r73n3lu6db+5W/ebu3W/pVv3W7p1v61b99u63XN7t+63Ne5pL+za/bZWsVvreNHrc7HZUtOuufYPv/qPTk898/eH/96334Aeffp179WnW7fut91623WP/H3Ab3/3n7V1lWc1iRKN7FhqpEvRlUZditoLziFFNE0eOXpw3/49WQvmrF236qvVyz79bO5Xaz5bvvKT5SsXLV+xePmKxctXLFm+YsnyFUuXr1iyfMXi5SsXtR9+sXJxq9jYotbwYtbnYrOlRm34dvXBH/aczj2aX3Ai59ThgsKTGG47mXMovyDHbCkqNhaAzCQSierq2p+8NboU6VJ0pVCXovaCc0iRqqqqmorHY6qaqItVqWpcVWNptU5VY6oay1jkCD0O9EHx9sO0mmgV1dbxotfnYrOlppWVR+CJp9V4XawKdtbHa1Q1Xl1TpqqJioqy2tpaVVWTySb/oJnvgC5FuhS1c+pS1F5wDimqrKxWVbWmpk5V1VgMnKYSiWRtMx1Nw3NKtbI3v7hMq6lWUW0LL2J9LjbP3rRkMq6qqUSiXlVTNTVV0NhUul5VU+l0Ep53PJ6srY1lvDJNfo7oUqRLUXumLkXtBeeyitJqrC6pptVEIlVdXd3YPSWSyXgyGU8mk8lkOplQzzCZbtzfHrbJRCqZSKbPn8nWMXmx63Ox2VLTEolUTU0daEwqpaqNP0fS6WQyFYvFahOJ+ng83twbo9mLMV2KdClq99SlqL3g3FJUXRVT02ptbQy6pHj8x/1L+46D+dPanZ2tP+Hi1udi8yx/SyUbPiTiDa9BOq02Gj0NQ7LpdDqRSKV/dB90KdKl6AqiLkXtBeeQomRCVdNqXe2Z+C6VlZXpdDrVADWV/AlT7YjJVrKZ5pydF7k+F5sttSudOqNGyUSDGiWTaVVN1dXVNG5VVVXTTf8/Uxlq1FHnihbMbpQinOYdvOI8a8fX/nml1LNNTZPNrGz+iRS58oqO3HjLNboUXTKcj9uCDh2tQuaEU4dCSlUTabX+4/mzxk94n2ZdNOuUFA8rIILsEmSnIDsE2SEodkGxC4pVUOwNe9oNISQHaCctWFjJKvgccghhJauHLiI5oxxElRBGCxYIESIqCMTBkv0oL9m9lIFiTb4gdtkbcl5seApmQTE3PI6GJ+L0BUiD8cSNN12tqvGy8oiqptI/+c2l48JClyIdOi4UUolkXSJZm7VgzrTpExQfywluXsQlxUMxDggjQrEmijVRnLGB8LVh/2XfWlB3kS9E8LLLQxuVECYHUYzIx8hcRjKJAbscRDnZRnImWrCIfpc/4mV4G5wryI5A2BsIu3kJ8VKGdtCW89tyBoorpDgDxRkaH4eFYm0EZT90ZM+dd90Mg8zgpNPC5KiOCwNdinTouFBoGJycPeej90e9TTM4zboIChEktyC5BQlvtI2cGb/N4aurfWxd0QrJS9to3hkuZXnFiREFvGIvq2blICoFnBRvxogCWrAFSghedtnRPCXgkXwumrN7KSPN2SWfS5BdBG1qB205v21T89QpyC5BwqNl0qncQ7fedl0iWauqqVQq0SGt/EsKXYp06LhgqK+vq6mtyFowd8zY9yWZjZb6eYEgKAQG62gWoTl7I600Z6U5O80i7Yc4YSFZhOKcOGEmWVswSspBlw096cBOsZLNH3GLfhct2DgJlQMeX4gSZbcou3kRo1nES1ohTJTs8172hpwXzzyFJs/CyfL4seMHrr/h6sb1lKlkMh6Px879BuhoK3Qp0qHjwiK1atXK559/du26r3Zlb9uVvXX7jm93ZW/etXvjrt0bd+3esGv3hl27v2nkhvbEjeu//erI8f0HD+/evH3N5u2rN25duW3XmpN5ew8e3bpp+4ovv17w9YbFW3Z8tT173fbsdduz1+/M/mbbjrW7dm848MOO/Qe378z+Zseu9d/t23K5G9LG5jcwe/PmLetWffVFz/vvidVXl5aFVTXRaBjpuFjQpUiHjguMAwcOPPHEvx577B99+vQaOKjvgIG9BwzsPWDgAwMGPjBgUM8fEXa2Gz7x9GN333PHg4/0e+LpR7r1uHXgQ/c988Lfb7vzr/f3uePq6//7v37X6S/X/FeXe258oG+XfoPuffDvvR7958ABAx94oNc9ffr26D/g/r797uvd594+fXtc9oa0ib019riv6/MvPD1x0tjMEFb19XWX+836OUOXIh06LhhKS8vhQ3V1taqq9fX1P4nKEW9cdKWFzmo/TKTVRLgkkEzXp9V4XbwirdZSHPLqm09fe+NVy1Z+HK0QEKxo+MihPR64Y878KYEwX14RaoxoVR9P1Fzu+re6vRmL5JoGT4nHY2AJpdV4TW1FB1yZcImhS5EOHRcesVhcVdVYDMJVaBEamyy6ygwa2x62qZSaTKupmrrqeLLOH5JeePGJq6+7asVXCwXFTfMOL21jRZfo8+YVHRk/+Z3b7rjui+WfebwuKKGqqqG/hsmVy92W82pvC08vpaqpeDwGga8qKqOqmognatOq7kF3EaFLkQ4dlxKpH3eFmaGEL902kUjAWplUKqGqajIZr6urU1W1PhFPq6ooC6+9Mex3f/jvlV8txb02f5jWElyxoosVXYyAMoKL4fFRH7zzl7/86eOPP66pqYrFwIxQq6oqLn2L2rRtRItLhn5qLem4WNClSIeOS4wmInQ5kUgkYCxRVdWqqip/IPT4E0/ddMvNS5ctYXmqLl7BiR6Xx9ScFKEMj5eWhQmCGDFixI033rh48eJIJFJT01I2xXaJcwTxaiJFl/95/YyhS5EOHR0R1dXVyWRS+yrL8pw5czp1+uXv//C/99zbvW//Pg89Mmj8pFGc6JH8BCdhnIRm5qpnBIQRXCPeer1///73339/3759O3Xq9Pvf/37v3r2JxJVjPZxXJMl29NPhZwxdinTo6HCIxWKaYIAdU1dXV1hYaLbYTp3OO5V7+kTO8aXLFv/jn4MRl1Hye1nRyUqOH1F0siLW6RedcnNzjUbjoUOHjh8/np+fHwqFriQpOi/oUnQpoEuRDh0XEKkW2L6gqUVVVRXMEgFq6+qra+pSajqtJvIKcx7+Rz+CcXASliFFWiBRByu6/t9//jIzHE5VVVWjj8YVh+bmkHRcQuhSpEPHBcSVIUWAiooKSMULn0tLS9OqmkynIDfIqbzj9/a800vb5YCHEe2M+KP43Jxs5yT01//RKZlM1tbWVlRUaMVeOWrUrAtJ+31eP2/oUqRDxwWE5mqV6ah9lg6uJem6uEynk9rnZDJeX18H1autq2+cxU/8cOS7Rx7rqwRJl8cAUsSIDZkUONnGyTZOQjv9olM8HtOKgpyKl6tRbWKzjvW6IF0G6FKkQ8cFROonK1faoxSpZzLEp6qqKkCZqqur06paG6uLJxNpNXE854c+A+4hWYdmFTGi5adSBIWUlUXhA6SzunJ4lt8NuhRdUuhSpEPHhUUqY3uFIZlSG8foErkFJ3v3686K2kSRrWneP9H5i192Ajc8bVDunHl94ID6+nq1ccoqc7KqVairq4Or19fXJ5NJqAOUCdvq6mqtPrDcGGa2tKkysOGSyXhtbTU8slAoBM2BGqqqCmOYcLqqqpWVlaqqlpSUwFcYmayqqoJqaAOVpaWlUE5EIv+QAAAgAElEQVQsFmsyYlleXp5ZJTXj7mmO9doHSFWqVTgej0N94EKaL34ikWjWWySVasi0lE6ntRa1T+hSpEOHjgZcAimqq6uDg0GBoBNvA7xeL3xIJBIul0vbn0qlysrK1Ay9qaioKC4uFkWxqqpKk4HM64IkgMZk/qm2thYKicfj4GeoiYfBYNDUSHPcgHbBJdLptNPphP1lZWUejwcKhLppqgDlx2KxkpISKLyurg7uTJMVWslkMhqNwudMIW9yZDKZTCQSdXV1mbW6ImbvdCnSoUNHAy6BFMExtbW16XQaftFrffr5Ix6Pv/LKK2qjWdCzZ8+cnBzoyqFfjkQicKRmcnXu3BkqqXlq1NTUgC7Omzfvyy+/PHbs2ODBg1Op1Jdffrlo0aL8/Pznn38een+oZzweBw2IxWIrVqw4ffo0XBE842tra+vr6+vq6tLpNNQhKytr37599fX1drt99uzZcFFNTubPn//qq69+//33hw8ffuKJJ4YNGxaLxaDAdDoNVa2vrweBjMVicGOhZGhCPB7XjDDQP00FG55mo6WoqmoqlQJDrd1ClyIdOnQ04GJLUX19PXTrixYtevjhhydNmtTmqvbo0UNt7JTfeOMNMAIyx+homp4zZ05ubu7+/fv379+/adOmI0eO7Nu378iRI+PGjXvvvfc0q2LZsmUIgpSWlr766qv19fVTpkyhKCqVSn344YdqhphpGhaLxb766iur1QrKkUwmNROkvr5+48aN33333dq1a8ePH79ixYqTJ09++eWXQ4cO/e677w4dOrR27dra2lo4ftasWVDnyZMnV1RUWCwWhmEwDNu6deumTZtgbM1oNM6aNevTTz89ePDgkiVLdu7cWV9fD4rYEKupvj4cDjc8vmQSHkdmEA1Nxtp5TnRdinTo0NGAiy1FcNhnn33Gsqzf7x8wYMD8+fPbUM9UKvXMM8/AZ5ZlBw0aZLVa6+vrwWiAznrUqFE4jquq+tprrxUUFKiqmp+f/8UXX6iqmp2drVU4kUjMnTt369at0Wj04YcfVlV14cKFa9euRRDk6aefVlUVhtSqq6tffvnlQ4cO7du379ChQ8OGDVu9evXBgwcPHTq0atWqJ554QjtSVVW4J0uXLvX5fMlk0ufz5eTkqKpaW1urRbiorKwcMWIEy7Jms/mtt96KxWLfffedqqolJSWTJk0ymUza/ezVq9e8efPg6+LFi3v27Jl5HzTJ0ZqvjTSC2aeqajwe1+rWbqFLkQ4dOhpwsaUoc86/pqZmypQpR44c0casWoXnnntO616ffvppo9HY0ISMaEaqqo4bN27v3r3l5eVPP/10RUWF2+0eNGjQxo0btXrW1tbu3buXYZjy8vKNGzeOHTu2uLh42bJl+/fvz8nJyWzOE088UV9fDy1dunSp0+mMx+PpdNpsNn/55ZdwZF1dXSwW2717d21t7csvv5xKpZLJZEFBwZQpU5YtWxYMBrWxPlVVp0yZAhWYNm2aqqrr1q2D/UOHDk2n0+l0GnwoBg8evGDBAq0anTt3RlEURgU1ww5uLNQhlUplThQ1uSHtFroU6dChowEXW4q04SP4Od82k0hVVY/Hs3DhQnAriMfjQ4YMOXDgAPS/mtNBZWXlrl27GIZJJBLDhg3LysrKzs6uqalxOBxvvvlmOp2uq6sDFzsEQXw+X0lJyZgxYyZOnIjjOIIgw4YNM5lMAwcOBI+DeDz+4osvahWYOXOmwWAAJbBarQsWLNBsEVVVc3Nze/XqVVlZCZM3Vqt13rx55eXlffv21Yb7otFoVlZWIpGoqKjIysqKRqMoiuI4Ho/HR44cqWlMMpkcPHjwkiVLwuFwLBbLycnp2rUrTdPw16ysrE8++aRnz55g/+3fv//tt9+eMmXKU089papqMBh89913P/300wULFjz66KPvv/9+2+72pYEuRTp06GjApXFbUFUVRdERI0bccsstW7dubUM9d+7c+cEHH8BcjizL06ZNA8NC6+gzJ43WrFmze/duVVVdLteuXbtAMzSvM82h/Isvvhg/fryqqlVVVcuWLdOmZLRBv+eff14redGiRR6PB9puMBg++eQT2B+Pxzds2OB0Ordt23bw4MGTJ09u3rx59erVo0eP3rNnz86dO//1r39VVVXBRV955ZUffvjhxIkTL7/8Mty39evXf/PNN6dOnVIbLadUKjVgwICBAwfOmjXr2WefvfXWWzdu3Kiqam1t7YsvvlhTU1NfXz937txnn322pqbm+eefB7e9hx9+uLCwMJFIfP7556NGjQJ/ii5durThVl8y6FKkQ4eOBlxsKdKkAly/xo8ff9NNN2l/jcfjmm0BMqA5PTdxwgaz5rPPPtu4ceOWLVuKioo+/fRT8JrTNCYWi5WXl8+ePXvt2rVq40KfnJycwYMHb9y4MT8/H/QgGAyqqrp27doVK1ZoTQiFQq+99trq1attNpvWqGeeecZoNPI8T5LkpEmTtmzZwrKsx+PZtm0bOCBAbeHgV1999d1334UCt2/fPm/ePJ/Pp/545dDUqVOhwmPHjoUTJ02a9Oijj6o/Hmbs06fPokWLYOfWrVvvvPPOw4cP19TU3HnnnQsXLszKypo9e/bq1athnFMQhMWLF/ft2xdqPmPGjGXLlqmqWllZeeutt6qqCnbkuV6EywBdinTo0NGAS7OuSPMqrqys7N+/v9q4AHPp0qXgDAY+aZp/mlY4uEqrqgq9vMPhmDJlyuuvvw4z9tOnT4fJlfr6+traWq/Xu379+u3bt7/22ms7d+48ceLE3r17X3zxxenTp3/22WcTJkyIRqOxWMzj8YwZM2bEiBG7d+8eOXIky7JDhgwBf4TOnTu/9NJLHMelUqnMBaS1tbWLFy82GAyZjYXagrAtWLDA7XY/++yzMA45adIkFEUPHDigeWbDHXjxxRcNBsPcuXOfeuqpvXv3qqq6cuXKIUOGaFM+cNG///3vc+bMURv1qUePHoMHD1ZVVbNyYC2RqqoffvgheI0PGDAAx/FkMjl//vysrCzw/bvlllsyH0R7c6jTpUiHDh0NuATO3NrnVCpFUdT48ePBUEgmk7FYrEuXLsuXL9eO0VaAZp61b98+s9kMpR08ePDgwYPwp5deegksDwDLsrFYLBAIwIwU2GHr1q2zWq2ZllM0GmUYZtmyZXV1dZ9++mk6nR4+fDg06oUXXgC5goNra2urq6theG3JkiUYhqmNfmuaxqiqWlhYWFZWlkgkZs6cCSeCJ96MGTPgKwjq/fff/9FHH7ndblVVH3rooWQymU6n33777fHjx1MUpc14lZWV9erV65NPPoGviqLcdttt4O/wz3/+ExZXgTSqqtq5c2dVVcPh8GOPPXbo0CFVVb/66quFCxfCbezWrVt5ebk27tfe3Bl0KdKhQ0cDLo0zd5cuXYYPH56VlbV+/XroGaGQZDJ58uTJXr16wcGa63M8HtfKD4fDGzZsgM9er3f48OFqo0uez+d79tlnaZrWFgCpqnr69On58+fD6clkcuLEiVarFf4UjUahtkVFRe+88w5BEDBiNmjQIBRF3W533759MyufOa41d+5czd9abYzLAAuG4DBwpqitrd22bRvMVFEU9fzzz1dVVWmrfwCVlZUwCwUjhOl0+qmnnjp27BjUOTc397777hs6dOjixYs/+OCDRx999PPPP1dVtb6+niCIu++++6abburVqxcMTj7yyCMvvfTS6tWrBw0aBIN+Q4cOBUfzbdu23XPPPRRFlZWVwRJa7Za2k/E6XYp06NDRgEswQAemA1gDgUAgnU7HYjGwlmDYKhwOh8NhrbMGHYJiKyoqaJqGPUajccuWLWrj7BGYVtnZ2WAxqI1mkM1mGzVqVHZ29rFjx3bs2DFq1CgMw8rLyzMD+Rw/fvzAgQOqqm7atCkWi73++utQwscffwyFxGIxbZYLavLZZ58ZDIbMdULaJFAymdy0aVPnzp337du3efPmb7/9Vrs5eXl5Xbt2hVHEiooKLUTek08+uXnzZjCM4MjXX3/dbrdnNkQbnFQUJTPST2FhoZoRo6isrKympga8zDMX3qqN4YW0S2QOe579kV0a6FKkQ4eOBlxsKYLuEiRH81CAHhO612Qy2ST2GpSsjZLBEJwWcSfTZa6+vr5JSFCYeYKDS0tLoYOura3NLBO66WAwmJnZFgDGlhZMoby8HEYRVVVVFCWzeuBVASVoRg9IDkALMxGPx+vq6sBu03zzQE3hLE1CksmkFtdHG6/LXDCkBSKC6TSIpdTkhmuRhJrsTyaT9fX17Wq6SJciHTp0NOCSWUVNBoi0oGqwajWdTkPnrmmDNsmUTqe18AdwFkT/zPxpH41Gm8Qb1YrNDAwai8Uyh/I01NTUNBubAIrK7MGb7eIzg73W19drvn+pVEr7rKGqqgrqoK3zraioyLTAtLM0Xw8I5KOlgc8sLZ1OR6NRCKxXX1+v6Raor2bAgZtDIpHQpUiHDh3tEZDCNZlOpNV4bsHx3v26s6KLFZ3N6FBbpUgTCYgerZ2odbVVVVWZhWhWQjwez7QetI4VunLwwdPsJOipQVG0jA8wnaNmuJzBhTR7KNMgq6urg7MqKioyg4qqakOfrqWogLPA6MmseZM5mExRhCM1Uw/Mr0ylrK6uhuO1ZmpaolldcF3tvmkjhE3upyZymmNeZiVbyi5x6aFLkQ4dZ8Flz+12SZlMJ9JqIqnG0most+Bo7/5dm5pEsvknUhQHx2MoITM/7M+U55fptR3ZG1cGdCnSoePsuOx936Xjj6So8LAuRc3xXFLUmJJdR6ugS5EOHToakEyn0moqma5Pq/HcgqO9+3drcaLo3wv8cyWjOfnR8W9DlyIdOnQ0oNFtIZFWEz+eK7rAMeh06GgCXYp06NDRgAYpSqlpNZVbcLJ3vx7NeNDJ5gZKjg4nRZmDb2l9LO5CQpciHTp0NCBDitTc/Bxdipoi3QJ1/NvQpUiHDh0NSKbUdFqTotO9+/VkBXdTf25dinQpugjQpUiHjrMj1WG2bZMiCK8Ja1NgzUp7aMtFuT+6Dl086FKkowMBliiqqlpbW619hs60hQ5Ic97tCNuGrrUulkykknkFp+7t2UUJUiRra8GJzvHLX3VS1UQiUa+qiXQ6qaqJZDKeSte3g7ZcjG2GIKnNiFBjFr6aDI92HecLXYp0dCikYvXVqprQGKuvTqvxzD0/YbzDMJFW1bpYPK2qaTV18PD3Tz37DwQripRxrGRrVor++zedSqKBRLJWVePlFZFUOna5m3Bx708L6pKqra3VUr7GYrWqmkqlErFYM1GFdLQEXYp0dBykSMq9YuXS+Vmz58z9aOq0iR/NmPLx/FmfLs6aO29Gc5zewThj+owPZ8z66JNF8z9eMHv42698unSOl7YIPrQ5HbKxkuPxJwd/vmzhvI8/+nzZwqwFs2bOmjJj5uTL3YqLe4syOFPjkiWLlyxZrKqpyspysIfaSbjrKwi6FOnoOEjNmTtt4OD7X39zyMTJ74+f+O6kKaOmTB09avTwseNHtsy3OgxHzpg9ZfrMSROnjH5/9PDJ00bZnLmlVbzLm9/M+lbJxkqO3Xu/nT5j7PC3ho4d/9aH0z6YNOW9cRPeHjfh7cvdkIt7lxo47t2x494dO+79sePef+/9t/569Z/qYlWgQ/F4TIs7ruM8oUuRjo6DxKw5k8dPHElQ9vJKnyC5Wd6l+EmSdoiypzm6OxopzukmrS6PyUNZCcZKcqZg1ONlDI1+CpoIweyRo7RCwD0mf5AiKBvuMYVLuEiUJ2n7ZW/IRaGCnaHsbnxJCFEmUJflV7/uFE/UghRBqoh2kpLuSoEuRTo6DhKz506aMu1dQcIF2eXCiz2kSfETrIAwnJPhHc1seQfD2zrM1kGyNl+I8IUI0e8Kl5FO92kl7PSyhS1JESvYMU9haYUg+VyYx8CJDoq1EbSpHbTlIm0tjGBmeEvDHs7JcE6GQ2vqSjr9ohPMJ9XU1Gihuy/3C38lQZciHR0HiVlzJo6b+AbDOwTZGYxQ4SgVCJMMbxMVTFTQ5raoqCAdZot6aKM/4uZku9lxlJFMgt/iiyC0aGBlIysbG9XojBT5Qx7cW+CljJLPKSqo5HMStClaTreDtlycrc8m+myizyH6HI07MVF2o5gJpCitxqurq3V7qA3QpUhHx0Fi3vwPJ099R/LhnOgQFdRLGQnaJPmcrGBnBSsr2H9C6xXI1tdftMAHRrTSgoWT7bxi90VQ3me1oofD5XhLVpGbKAyVeHnJTjJGgi72h3DcW8Dwlst9By4ORQsrmhqptdHOCog/SHf6ZSdVjSdTMVVNpdPp2tpYSvflbg10KdLRcZCY8/H0MRPe4mWc5h2MaOcVJyNq3avWyWYMQP1oT3ugtdl6in5XqJRyeQuVkJtgrJyE4oSRl12MaA+UELRgY0Q7wRqd7txQKeGhDaxk5RU7ThZEyklaMMshhBEtOFlA8eaSCpaTEZP9aKDEI/qdjGhlRCvJmRzYKdHv9DLFSsjtZUy0YBN8qD/i9dBGirdKAYxgzYIPJVizFMBc3sKyasHLmDgZ4WSEYM2MaJcC2OW+exfq/mc+AgcrOhnB1elXnRLpurSaSKspLXiSjvOHLkU6Og5SjVLkpnkHIyC84miUIutPepkrSYrcVDErOSjOLvndgoJJfrfk9woKJgc8RtuxYJREPQWBEk+0krGhJ/0RN6/YRT/i8ubxit1N54sBO++zykGUlWwkZ/GFPVIAw0kDJyO0YAuUEP6INxglORmheKvgQzkZkQKY052PkwZWctQlgxhR5I94Sc4i+FBasPGKk+KtXsbkoY2BEkL0u0jOQguX/e5dDIIUoZ1+1SmRrtGlqM3QpUhHx8HPVooY0U5yFjng4SSU5h0ka+MkzE2aUHdReY0YLqMFH2qwHJECmN2VIwVQTrYpIRfBFlO8ieCKBL+N5A1KyKWEMFqweRmTP+KtrJOLrUfB0EE9BbzidHkL4UJuqtgX9vCKkxHtFG9lJQfJWUjO4o94HViu6HcJPpQR7SUVLBhPrOSgBVu7vJ+6FLUX6FKko+PgZytFgg/FiCJBwQQFozg7L7skv1cOEHLAg3oKrM6cyjpZ9Lt4xUmwRi9T7GUMUBTBFnOKRQ4hGJlLC2ZWsoXLaJKzOLBcX9hTWsXLQZwWbP6Il+KtYAz5wh7UU0ByFjmIB6Ok4ENx0uALe1zeQjmIw1AhwZpFvwv1FHAyQnIWKYCFSilecV7uu6dLUfuFLkU6Og5+tlIkBTCMKKJ5ByehHsrMSagTN9C888s1Cz9ZPL2yTvbQRoPlSDBKVtQKXqaYVxwUb5aDKE4W0IJZCblIzsjJNpc3n+Ktot917FT2jLmjKd7qwHLlIB4qpeyu03IQd7rzQVQI1gx0YLkUb1VC7nAZXWD8obxGRPA8krOYHSfGTX5TG7LjZIQR7Zf77ulS1H6hS5GOjoOfrRTB3Iw/TDrxQiXoLa+WGQFVgiSCFTz86AMP/qMHWE6gJSRnkgKomyqqrBMo3uSmCkU/Ivgcoh+prJNJzqKE3G6qeMKHI3r1v0MblKMFW2kVD1/BPGIlR6CEGPbG4ydy9zjd+RRvrYopw954/GTeXlZy7D+8uWuP62F0bsOWZZt3rNSlSMdZoEuRjo6Dn60UeRkTxVsDEWr5qiyXxyAoGCdhHsrqCxG79q5/7Il+FTWKhzJTvJVXnHIQX7U2a803C4NRrxLCPHQReDF46CKMKKIFG8lZwmV0nuHAVX/qxIh2jCgS/a5wGV1oOqSE3BRvxUmDFMAY0e6lLWs3LO03qFuwhBZ9uBMvHPBg9z37vuUkdPf3G/5/e+ce3cR1JnDv7h/b3dOz227b3e5mISl5NCEvCKY8bEJLGh6JYSkkPEITbzBhg0N4OUAMCSUJTVjAZBsSwMRmg8uzsRNY4gQcYxzbsjTSSCPNjOb9HmkkSzKGtEnPaTZh/7iNsSVbEkSsZen7ne8PeTRzNb7yuT9/d765M6bw5mAXx0mulWtKV64phQk6IAmgIiB/yFkVoRyFEbA77x1Z+eLKio3LN2x6ZuGSkrXrl23cXL68fPGa58o2/2rV6oqllVvKn133xIhRf1f009F2/MNAFyVqGMqKMM+Zh/6t6HhDdWPT0TPnTrQ7PvjN3pdPfVj3Sef/fNxaX3dsz6T7R7c7PuAVJydjwQjDyZiguK0Iv7piKSNgnOTSAlTJ3Kmi6tEC1ImGmvunjWVFpx6kN2xasbx8sWISWdmloKKsAFQE5A85qyKUrOx8fcvff+8vRdVjWH5BIcZNuH3OvAdIxk5zWCDMK4aPoNpCUeGtA68+Vb6AkzE14GFEm6S7ghGa4tq0IHHz7d8XNRzdIdQ7C8dKDjXgpbiOm279Lpqp0y2SEe3bqypXrXty67aK8lWPL3685MFZE710e9HUe46c2P/x+ffe3P/aveNGdTrPnj1Xv3T5oxs3l2drl4KKsgJQEZA/5KyKvP5PjBA1s6ToTPO7nOQSFPfLr268bfQN8xfO3L7rxfWV5Rs2PbN2/bL5C6eLquf0R0cJuvWzP1lGiNItL684zDApG7iku2685TvoplRUF8eIdkl3m2E60iMGuvyjfvw9SXcTdKugukIxzo6fsSK8DTvDy3in8ywv41aEf+yJ2eGYyAiYl263IrykEbLuXV2xdN/bOwTFnZVdCirKCkBFQP6Qsyr6/IsQJ2OG5ac5u6x7z56rv+PukfMXzmzr/MjPOw2Ldfva5i2YseCxh/28w0u3awGKEe1usiXczaO1GLQg4WNafzjibzgZU0zCirLodiVU74B5mvxC5z/e8NdoLQbdIgNdfsUkmloaKNZx8Q/Boqljnnt+hYtoDYR5QSFiF/VQVFJNWjVpL22L9mhvVe9gRWdWdimoKCsAFQH5Q86qiBHtPqYNVXIHu7iSuVPrTx4KRaXSskfsrmZJ882Z98DsX0wTVa8V4VWT7L6kybrXL3QiFTGivesCF4zQd40dIWo4xXXIhgflRrzipLiO2CU5FOP+eeTfGiEK3dOKFvhZ9vRiXvawIn7jzd8nqI7db7yy98DON/f/5+43XimceMe27ZW733jl1R2bj71bs7pi2aEjb2Zll4KKsgJQEZA/5KyKFJOIXZL1IK0YvpK5U09+8NtQVBIUwopIYwpve3Txw4t+Ocfn71QMStZJ1aRZ0akYPl5xokJwRrSrAS/N27793YL3Tv/3vprt1Qd3VB/cUVu3u+ZQVW3d7j37t9Ud2/NP//ottKSCFWUproOVHEtK57qIVtz7yU23/CDao3nIdpKxawG/GeLuHXcLQXUYFhvt0VSTZgQXI2BZ2aWgoqwAVATkDzmrInRFx0u3V9fusiI8ydgufWZ5aVu7/ewDMyaNvuem+Qtn0Rzm83eqJu0h21WTtCK8GvD6hU7dIlFt20fNx1FWRPM2SXczop3mbTRvQ2v26Bb54sur0OoJfqFT1PCubmnDpmeeXvn4iYaDr7z2vKAQnOTeX1PV3Hpqz77t8xbMaGk7/f7pw/UnDx0+Xr3s6cWK4cvKLgUVZQWgIiB/yFkVBSMMWm1B0ghJI9AadNu2V/585uQjJ972kB2/e++dwol3TH2gsOad39iwJkkjaM5uWH7F8KEVyrs/VepP1d5930i0LEL0ohTu5o0Qha4MsZLDCFGYpynczQe6/KjETlDcK9c8+dKvN65at6yp5WS0RxdV39jxP/7tseodu7eWr/r3g3Vv3veT25taTr5/+sitd9zQ4TiblV0KKsoKQEVA/pCzKuJkTNTwSI9Isu2xi+rO17dMmnLXG3tfY0U8ckETVR8vE4pBvbbzhRE/+ofbRt8w6rYfTJpy19HfVaMVVBnRzsv42g1LFz0+69LnBs3bUNE2WpkbvVBMAq3CIBseQXVFL0qs5GAEl6j6pj9UbEUkmnNi7vOzZk9VDPrkB0c3bVnDCPgjix6iWEw1/SVzp3ESVNABgwIqAvKHHFDRwCHpLlbq3Ffz6urnnqjcUr7zv1648ZbvHKvfX127+9CRvfve3rX3wM4DB1+ft2BG8U/H2rCmbdsrW9pOh2OyoBCCQgTCLCvi9/3kVpvzQx/TKhu4bnllA+cVh6S7tCCBghFtkR5eUDGab//8iyDJtodjcnPrqYfmTF24pGR9ZTkjuGbNvp+XPScaDj7/wrOi6p2/cKYNa4pd1KdNnwDXioAkgIqA/CFnVUTQLUYIPW3IIWrOVtv7xT+7k+I6OMklaT5ZJ9GFnOdfeLa07BHFoDjJjdZLlTSfYlCsiDecqpvx8GSatwkqhsQjak5OtvOKQzZwTrZrQcLrPy/pLt3yBiO0m2x+cvm8b327YEnp3OP1tYJCRC6ohsXOLJkiab7Wjsa165erJn3/tHGf/ymKuVt+8ej0yAV5GHVp2gEqygygIiB/yFkVBboo5A814OEVx/GGfXeO+RfFJDjJxYrOYBdnhphAmN2wacWqdU8GwmzkgqwFKPQWKzovfKpPmz7+ncN7tKAPtSMbuKBiSGyygTOiLRRjBBXjZLugYsEITdAtqypKm1oacO95WfdykkvWvT5/x88eLFQM3+mPjj61YlE4Jk6bPl7WvaGocM99P1JNchh1adoBKsoMoCIgf8hZFakBj9d/npPtZpiMXhSaP3l3yrS7RM0Zjom8jBuWnxEwP+94asWidRueEhS3A/+45/cGWpfh0meBl3793NZtFYxo14I+xXRLukvUnJLuUky3GvCoAY9s4GhFBrQ6g6g5uy5wBN1Cc3ZJI0TVE7uoagEqFBVmzS5WDF9z6/vLyxerJrmkdI5qkoLinrfgQXTD7JD3VaYDVJQZQEVA/pCzKgp3s4KKyQYuqBgj2o437Bs3cVRt3a79NTt3vr6lunbXgYNVJxpqlpTO2bqtAtXOMQJmWH4zxJw9V/8fzzwmaYRukZLuFlRMUDFRcyqmG6VZsogm5ZQAAAWQSURBVIFrQYKT7RTXplteI+STdJcZJrUgoQUo1STRc5Jw73mSsS365cM0Z7dhZ2jOLihuSSO2vLz27rE3TSgazYj2YdSlaQeoKDOAioD8IWdVJGpOlMdwst0vdHioc7V1u6yo3whRguIWFDcnuSSNqDv6VlNLgxlifv9Hy+5qMkNMKCq8c3gPydgYAQt0+XvbkQ1cMd2K6RY1J684BBVDTup9FxVKBCMMI2BmiPHzjsgFORBmDx/fJ2lEtEdBwpN1Lys611c+3dJ2KtDlH/KOug4BKsoMoCIgf8hZFXGy3Qj5zDAZ6eEV0y0buJtsNkJ/Xl0bPZjVirIE3Yq2sJIj0OVnJQdBt8YuyZLutqIsI9qRZlCgaToUnGy3ov5QjGGlTr/QIRu4YroDXRTFdXAy1v2pgp6nJ+lukm0PxTjFJEi2vftTBa0SZEVZVG4+5B11HQJUlBlARUD+kLMqMkI+tJ6pbnlRtZsV9csGLmo4uvsV3ceqmES4m0fP2TNClBb0CaqLlRxoIR8t6ENFCnIfDymmGxV29zpJt7xmmGSlTtnAzTAd6PKjR7i6vM09f9DQo83RkkJa0Odj2qwoi57lqgV9Q95R1yFARZkBVATkDzmromQD5dVFtrWf/QEqygygIiB/ABWBiq5DD4OKMgGoCMgf8lBFENc7QEWZAVQE5A+gIoiMB6goM4CKgPwBVASR8QAVZQZQEZA/gIogMh6goswAKgLyhzxUUeJvlzyyrf3sD1BRZgAVAfnDl1te2rRy9TLVYEXVJ2k+1SQljYiv8tK9su6VdVLWya9fD9u42gq3bGt/GAQp65Sk0gV/VfDFV38EFV0zoCIgf/jyV1s3jxj5w0mTC4unTJgwcUzxlPGTi8ZBQKQbxWMnF4/tv3H85KLxRcUTCv6i4PLlL7/66n+H+o98uAIqAgAAAIYYUBEAAAAwxICKAAAAgCEGVAQAAAAMMaAiAAAAYIgBFQEAAABDDKgIAAAAGGJARQAAAMAQAyoCAAAAhpgBVFSQBv//J5qTJOnJxA6HrwAAgFxlYBWlOAbGwWsiHcf39m3fTu5VUdwWAACA3CCFigYc8q5sbCzrO4aWNab6tP77Jz9IqCpMd9ckCFWFBYVVwtUfmOqUrqHRdPwBKgIAIA9JraIk/7A3lvXRg1BVmNIWjWVpCqWxLGG07/dhQ0cm3JYokgG3xPX8gN8FAABADpBMRXHj3WDbe0ktmnRV1FiWNO1AzVxJsfrs2lhWUFglfJ2+FFY1XjFHkqMuJyZhg51mgoqSpEp9k8De9gZLbtK0C0gIAIDcY1AVxU0KpTFoppEvpKuiFBkWGuJ73+/bKnrrymkI/VV0Zcd+Zxv3eclOs/9v2f/Afgbt94NQVVYlXP4G024wOwcAQA6TumwhcTpo4KEwRSbTu08amcflFJdl4lXR3zcJOUu/rCiNd9JXUcKOvRtSeTm5WgrSY9DWAQAAhhUpJugGex1/jFBVGD9PltI4jWXJbdSn5TglZVhFCdpIV0WJvundMngTA1okiVogHwIAIOdJdl9R3x8HfOvPDFBjkB5pVzFc7j8VNkxVlDKVidvhaqUFAAAwTEn3vqJB/zdPL7cZkMGvCDVWJYqtz+CeZEIt+yfo0plwu1ppAQAADGvSnaAbcIf4ablU9K/HTnJxKa4u4etpur61Cf2LDPrK4epVFF9iUFiQpoquumzh8uCTbAUDXaLra6nBvAUAADDc+SZlC4k3oaaYqIs7IKnE4u+Gjc9aBmnn2lQUd0mqapCsaMBaim9SzN2XQTr5yuvELQAAALnBN56gGwqu5hrTNbafsRUaEki094CJDqgIAID8YVguh5p5FTWWDXgr0vUg/aworsOz6isAAADIIMNyRLseKuozyF9HDwEAAACJ/B9yPJ6Gqo+i2wAAAABJRU5ErkJggg==" alt="" />
2.2.5 小结
除了测试程序的代码外,也就是程序入口,所有代码都没有出现Spring任何组件,而且所有我们写的代码没有实现框架拥有的接口,因而能非常容易的替换掉Spring,是不是非入侵。
客户端代码完全面向接口编程,无需知道实现类,可以通过修改配置文件来更换接口实现,客户端代码不需要任何修改。是不是低耦合。
如果在开发初期没有真正的实现,我们可以模拟一个实现来测试,不耦合代码,是不是很方便测试。
Bean之间几乎没有依赖关系,是不是很容易重用。





