[portletswap-commits] JBoss PortletSwap SVN: r247 - in contrib/wikiPortlet/trunk: wiki-common and 23 other directories.
portletswap-commits at lists.jboss.org
portletswap-commits at lists.jboss.org
Tue Mar 3 13:53:00 EST 2009
Author: piergiorgiolucidi
Date: 2009-03-03 13:53:00 -0500 (Tue, 03 Mar 2009)
New Revision: 247
Added:
contrib/wikiPortlet/trunk/wiki-common/
contrib/wikiPortlet/trunk/wiki-common/.classpath
contrib/wikiPortlet/trunk/wiki-common/.project
contrib/wikiPortlet/trunk/wiki-common/.settings/
contrib/wikiPortlet/trunk/wiki-common/.settings/org.eclipse.jdt.core.prefs
contrib/wikiPortlet/trunk/wiki-common/.settings/org.maven.ide.eclipse.prefs
contrib/wikiPortlet/trunk/wiki-common/maven.xml
contrib/wikiPortlet/trunk/wiki-common/pom.xml
contrib/wikiPortlet/trunk/wiki-common/project.properties
contrib/wikiPortlet/trunk/wiki-common/project.xml
contrib/wikiPortlet/trunk/wiki-common/src/
contrib/wikiPortlet/trunk/wiki-common/src/etc/
contrib/wikiPortlet/trunk/wiki-common/src/etc/CountryCodes.txt
contrib/wikiPortlet/trunk/wiki-common/src/etc/CountryCodes.xml
contrib/wikiPortlet/trunk/wiki-common/src/etc/GenXML.java
contrib/wikiPortlet/trunk/wiki-common/src/etc/JBossWiki.properties
contrib/wikiPortlet/trunk/wiki-common/src/etc/WikiInsidePlugins.xml
contrib/wikiPortlet/trunk/wiki-common/src/etc/WikiTypes.xml
contrib/wikiPortlet/trunk/wiki-common/src/etc/countryCodes.dtd
contrib/wikiPortlet/trunk/wiki-common/src/etc/images/
contrib/wikiPortlet/trunk/wiki-common/src/etc/images/ATOMButton.gif
contrib/wikiPortlet/trunk/wiki-common/src/etc/images/AtomButton.ai
contrib/wikiPortlet/trunk/wiki-common/src/etc/images/JBossWikiLogoMedium.png
contrib/wikiPortlet/trunk/wiki-common/src/etc/images/RDFButton.ai
contrib/wikiPortlet/trunk/wiki-common/src/etc/images/RDFButton.gif
contrib/wikiPortlet/trunk/wiki-common/src/etc/images/RSSButton.gif
contrib/wikiPortlet/trunk/wiki-common/src/etc/images/RSSButton.png
contrib/wikiPortlet/trunk/wiki-common/src/etc/images/attachButton.png
contrib/wikiPortlet/trunk/wiki-common/src/etc/images/editButton.png
contrib/wikiPortlet/trunk/wiki-common/src/etc/images/historyButton.png
contrib/wikiPortlet/trunk/wiki-common/src/etc/images/main.gif
contrib/wikiPortlet/trunk/wiki-common/src/etc/images/out.png
contrib/wikiPortlet/trunk/wiki-common/src/etc/images/permaLinkButton.png
contrib/wikiPortlet/trunk/wiki-common/src/etc/images/recentChanges.gif
contrib/wikiPortlet/trunk/wiki-common/src/etc/images/wikiStyle.css
contrib/wikiPortlet/trunk/wiki-common/src/etc/org/
contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/
contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/
contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/fileaccess/
contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/fileaccess/mime.types
contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties
contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties.sample
contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/wikiPlugins.properties
contrib/wikiPortlet/trunk/wiki-common/src/etc/wikiTypes.dtd
contrib/wikiPortlet/trunk/wiki-common/src/java/
contrib/wikiPortlet/trunk/wiki-common/src/java/bmsi/
contrib/wikiPortlet/trunk/wiki-common/src/java/bmsi/util/
contrib/wikiPortlet/trunk/wiki-common/src/java/bmsi/util/Diff.java
contrib/wikiPortlet/trunk/wiki-common/src/java/bmsi/util/DiffPrint.java
contrib/wikiPortlet/trunk/wiki-common/src/java/com/
contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/
contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/
contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/
contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/CounterPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/CurrentTimePlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/ImagePlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/InsertPage.java
contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/RecentChangesPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/ReferringPagesPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/UndefinedPagesPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/UnusedPagesPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/
contrib/wikiPortlet/trunk/wiki-common/src/java/org/apache/
contrib/wikiPortlet/trunk/wiki-common/src/java/org/apache/commons/
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/AdminSimpleCredentials.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/AttachmentDataSource.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/Credentials.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/FileAttachmentDataSource.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/FileDSCommons.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/FileMediaDataSource.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/FileWikiPageDictionary.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/InsidePluginExcecutor.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/JBossPortalCredentials.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/LanguageDataSource.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/Media.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/MediaDataSource.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/MediaInternalization.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/My.uml2
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/PluginDescriptor.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/RenamePageWatcher.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/SimpleCredentials.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiAttachment.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiCommon.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiContext.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiEngine.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiInsidePlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiPage.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiPageDictionary.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiProperties.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiSearch.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiSession.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiType.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiTypeLoader.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/DataSourceException.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/DataSourceExistsException.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/EditSessionExpired.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/EditingNotAllowedException.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageAlreadyExistsException.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageDoesntExistException.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageNotEditedException.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageNotExist.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageRenamingException.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/SaveException.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/WikiException.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/WikiManagementNotFoundException.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/WikiSaveException.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/EMailNotifier.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/NotificationMsg.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/WikiServiceLocal.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/WikiServiceManagement.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/WikiServiceMenagement.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/WikiServiceRemote.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/ATOMPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/ATOMWikiType.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AddTranslatorPartsPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AdminConsolePlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AdminRenamingPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AttachementInfoPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AttachmentListPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/DefaultWikiType.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/DiffPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/DifferenceEngine.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/DirectReferenceWikiType.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/FindResultPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/FriendlyLinkPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/GetRefsFromPagePlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/HTMLTranslatorNoPlugins.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/HTMLTranslatorParts.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/IndexInsidePlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/InsertPageInsidePlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/LinkPagePlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/OtherLangsPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RDFPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RSSPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RSSWikiType.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/ReTranslateUids.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RecentlyChangedPagesPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RefsManipulatingInsidePlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/SendNotificationPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/SubpagesListPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/TextAreaChange.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/TomekInsidePlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/TrailPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/TranslateUids.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/UpdateRefs.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/WatchListPlugin.java
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/WikiContext.txt
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/WikiSyntax.txt
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/WikiTranslator.txt
contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/taglib/
contrib/wikiPortlet/trunk/wiki-common/src/web/
contrib/wikiPortlet/trunk/wiki-common/src/web/WEB-INF/
Log:
- Portal 2.7.x support: wiki-common
Added: contrib/wikiPortlet/trunk/wiki-common/.classpath
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/.classpath (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/.classpath 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src/etc"/>
+ <classpathentry kind="src" path="src/java"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
+ <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+ <classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
+</classpath>
Added: contrib/wikiPortlet/trunk/wiki-common/.project
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/.project (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/.project 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>wiki-common</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.maven.ide.eclipse.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.maven.ide.eclipse.maven2Nature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
Added: contrib/wikiPortlet/trunk/wiki-common/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/.settings/org.eclipse.jdt.core.prefs (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/.settings/org.eclipse.jdt.core.prefs 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,5 @@
+#Fri Jan 23 19:29:49 CET 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.compliance=1.5
+org.eclipse.jdt.core.compiler.source=1.5
Added: contrib/wikiPortlet/trunk/wiki-common/.settings/org.maven.ide.eclipse.prefs
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/.settings/org.maven.ide.eclipse.prefs (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/.settings/org.maven.ide.eclipse.prefs 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,8 @@
+#Fri Jan 23 19:29:49 CET 2009
+activeProfiles=
+eclipse.preferences.version=1
+fullBuildGoals=process-test-resources
+includeModules=false
+resolveWorkspaceProjects=true
+resourceFilterGoals=process-resources resources\:testResources
+version=1
Added: contrib/wikiPortlet/trunk/wiki-common/maven.xml
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/maven.xml (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/maven.xml 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,40 @@
+<!--
+ JBoss, the OpenSource J2EE webOS
+ Distributable under LGPL license.
+ See terms of license at gnu.org.
+ -->
+<project xmlns:j="jelly:core" xmlns:ant="jelly:ant" xmlns:u="jelly:util" >
+ <goal name="build">
+
+ <attainGoal name="jar" />
+
+ <!-- copy jar to repo -->
+ <ant:copy tofile="${maven.repo.local}/wiki-common/jars/wiki-common.jar" overwrite="true">
+ <ant:fileset dir="target">
+ <ant:filename name="wiki-common-1.0.jar" />
+ </ant:fileset>
+ </ant:copy>
+
+ </goal>
+
+ <goal name="deploy">
+ <!-- copy informa libraries -->
+ <!--<ant:copy todir="${local.deploy.dir}/wiki.ear/" flatten="true">
+ <ant:fileset dir="lib">
+ <ant:filename name="*.jar" />
+ </ant:fileset>
+ </ant:copy>-->
+
+ <!--<ant:copy tofile="${local.deploy.dir}/${wiki.ear.name}/wiki-common.jar" flatten="true">
+ <ant:fileset dir="target">
+ <ant:filename name="wiki-common-1.0.jar" />
+ </ant:fileset>
+ </ant:copy>-->
+ </goal>
+
+ <goal name="all">
+ <attainGoal name="build" />
+ <attainGoal name="deploy" />
+ </goal>
+
+</project>
Added: contrib/wikiPortlet/trunk/wiki-common/pom.xml
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/pom.xml (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/pom.xml 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,173 @@
+<!--
+ JBoss, the OpenSource J2EE webOS Distributable under LGPL license. See
+ terms of license at gnu.org.
+ Maven manual install: portal-core-lib.jar
+ portal-portlet-lib javax-servlet.jar javax-servlet-jsp.jar
+ activation.jar jboss-ejb3x.jar jboss-ejb3.jar portal-identity-lib.jar
+ jboss-portlet-api-lib.jar
+
+ author: Piergiorgio Lucidi
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>jboss</groupId>
+ <artifactId>wiki</artifactId>
+ <version>1.0</version>
+ </parent>
+ <artifactId>wiki-common</artifactId>
+ <name>JBoss Wiki Common</name>
+ <version>1.0</version>
+ <packaging>jar</packaging>
+ <developers>
+ <developer>
+ <name>Tomasz Szymanski</name>
+ <url>http://mamut.net.pl</url>
+ <roles>
+ <role>Retired Project Lead</role>
+ </roles>
+ </developer>
+ <developer>
+ <name>Piergiorgio Lucidi</name>
+ <email>p.lucidi at sourcesense.com</email>
+ <url>http://www.open4dev.com/</url>
+ <organization>Sourcesense</organization>
+ <organizationUrl>http://www.sourcesense.com/</organizationUrl>
+ </developer>
+ </developers>
+ <build>
+ <sourceDirectory>src</sourceDirectory>
+ <resources>
+ <resource>
+ <directory>../src/application</directory>
+ <includes>
+ <include>**/*.txt</include>
+ <include>**/*.xml</include>
+ </includes>
+ <targetPath>../../../target/</targetPath>
+ </resource>
+ <resource>
+ <directory>src/etc/images</directory>
+ <includes>
+ <include>**/*.ai</include>
+ <include>**/*.gif</include>
+ <include>**/*.png</include>
+ <include>**/*.css</include>
+ </includes>
+ <targetPath>/images/</targetPath>
+ </resource>
+ <resource>
+ <directory>src/etc/</directory>
+ <includes>
+ <include>**/*.properties</include>
+ <include>**/*.xml</include>
+ <include>**/*.types</include>
+ <include>**/*.dtd</include>
+ </includes>
+ <targetPath>/</targetPath>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.5</source>
+ <target>1.5</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jar-plugin</artifactId>
+ <version>2.2</version>
+ <configuration>
+ <finalName>wiki-common</finalName>
+ <outputDirectory>../target/lib</outputDirectory>
+ <archive>
+ <manifest>
+ <addClasspath>true</addClasspath>
+ <addExtensions>true</addExtensions>
+ </manifest>
+ <manifestEntries>
+ <mode>development</mode>
+ <url>${pom.url}</url>
+ </manifestEntries>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>1.6</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>jdom</groupId>
+ <artifactId>jdom</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-ejb3x</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-ejb3</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-portlet-api-lib</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>portal-identity-lib</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jbossall-client</artifactId>
+ <version>3.2.3</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>portal-portlet-lib</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.openejb</groupId>
+ <artifactId>javaee-api</artifactId>
+ <version>5.0-1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>javax.portlet</groupId>
+ <artifactId>portlet-api</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>portal-common-lib</artifactId>
+ <version>1.0</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+</project>
Added: contrib/wikiPortlet/trunk/wiki-common/project.properties
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/project.properties (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/project.properties 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,7 @@
+maven.repo.remote=http://repository.atlassian.com,http://www.ibiblio.org/maven,http://dist.codehaus.org/
+maven.junit.fork=yes
+maven.war.src=${basedir}/src/web
+
+maven.jar.override=on
+
+maven.jar.shotoku-base=${ext.root.dir}/shotoku/shotoku-base/target/shotoku-base.jar
Added: contrib/wikiPortlet/trunk/wiki-common/project.xml
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/project.xml (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/project.xml 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,169 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!--
+ JBoss, the OpenSource J2EE webOS
+ Distributable under LGPL license.
+ See terms of license at gnu.org.
+ -->
+<project>
+ <pomVersion>3</pomVersion>
+ <extend>../common.xml</extend>
+ <id>wiki-common</id>
+ <name>Wiki common</name>
+
+ <currentVersion>1.0</currentVersion>
+ <build>
+ <!-- <unitTestSourceDirectory>./src/test/java</unitTestSourceDirectory>
+ <unitTest>
+ <includes>
+ <include>**/*Test.java</include>
+ <include>**/Test*.java</include>
+ </includes>
+ </unitTest>-->
+ <sourceDirectory>src/java</sourceDirectory>
+ <resources>
+ <resource>
+ <directory>src/etc/</directory>
+ <include>**/*.properties</include>
+ </resource>
+ <resource>
+ <directory>src/etc/</directory>
+ <include>**/*.xml</include>
+ </resource>
+ <resource>
+ <directory>src/etc/</directory>
+ <include>**/*.types</include>
+ </resource>
+ </resources>
+ </build>
+ <organization>
+ <name>Tomasz Szymanski</name>
+ <url>http://mamut.net.pl</url>
+ </organization>
+
+ <dependencies>
+
+ <dependency>
+ <groupId>aslibs</groupId>
+ <artifactId>javax.servlet</artifactId>
+ <version>1.0</version>
+ <jar>javax.servlet.jar</jar>
+ </dependency>
+
+ <dependency>
+ <groupId>aslibs</groupId>
+ <artifactId>javax.servlet.jsp</artifactId>
+ <version>1.0</version>
+ <jar>javax.servlet.jsp.jar</jar>
+ </dependency>
+
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <properties>
+ <war.bundle>true</war.bundle>
+ </properties>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>activation</artifactId>
+ <version>1.0</version>
+ <jar>activation.jar</jar>
+ </dependency>
+
+ <dependency>
+ <groupId>commons-fileupload</groupId>
+ <artifactId>commons-fileupload.jar</artifactId>
+ <version>1.0</version>
+ <jar>commons-fileupload-1.0.jar</jar>
+ </dependency>
+
+ <dependency>
+ <groupId>dom4j</groupId>
+ <artifactId>dom4j</artifactId>
+ <version>1.6</version>
+ </dependency>
+
+ <dependency>
+ <groupId>jdom</groupId>
+ <artifactId>jdom</artifactId>
+ <version>1.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-ejb3x</artifactId>
+ <version>1.0</version>
+ <jar>jboss-ejb3x.jar</jar>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-ejb3</artifactId>
+ <version>1.0</version>
+ <jar>jboss-ejb3.jar</jar>
+ </dependency>
+
+ <dependency>
+ <id>portlet-api</id>
+ <version>1.0</version>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-jmx</artifactId>
+ <version>1.0</version>
+ <jar>jboss-jmx.jar</jar>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-common</artifactId>
+ <version>1.0</version>
+ <jar>jboss-common.jar</jar>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>portal-common-lib</artifactId>
+ <version>1.0</version>
+ <jar>portal-common-lib.jar</jar>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>portal-core-lib</artifactId>
+ <version>1.0</version>
+ <jar>portal-core-lib.jar</jar>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>portal-portlet-lib</artifactId>
+ <version>1.0</version>
+ <jar>portal-portlet-lib.jar</jar>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jboss-portlet-api-lib</artifactId>
+ <version>1.0</version>
+ <jar>jboss-portlet-api-lib.jar</jar>
+ </dependency>
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>portal-identity-lib</artifactId>
+ <version>1.0</version>
+ <jar>portal-identity-lib.jar</jar>
+ </dependency>
+
+
+ <dependency>
+ <groupId>jboss</groupId>
+ <artifactId>jbossall-client</artifactId>
+ <version>3.2.3</version>
+ </dependency>
+ </dependencies>
+</project>
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/CountryCodes.txt
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/etc/CountryCodes.txt (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/etc/CountryCodes.txt 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,240 @@
+AFGHANISTAN AF AFG 004
+ALBANIA AL ALB 008
+ALGERIA DZ DZA 012
+AMERICAN SAMOA AS ASM 016
+ANDORRA AD AND 020
+ANGOLA AO AGO 024
+ANGUILLA AI AIA 660
+ANTARCTICA AQ ATA 010
+ANTIGUA AND BARBUDA AG ATG 028
+ARGENTINA AR ARG 032
+ARMENIA AM ARM 051
+ARUBA AW ABW 533
+AUSTRALIA AU AUS 036
+AUSTRIA AT AUT 040
+AZERBAIJAN AZ AZE 031
+BAHAMAS BS BHS 044
+BAHRAIN BH BHR 048
+BANGLADESH BD BGD 050
+BARBADOS BB BRB 052
+BELARUS BY BLR 112
+BELGIUM BE BEL 056
+BELIZE BZ BLZ 084
+BENIN BJ BEN 204
+BERMUDA BM BMU 060
+BHUTAN BT BTN 064
+BOLIVIA BO BOL 068
+BOSNIA AND HERZEGOWINA BA BIH 070
+BOTSWANA BW BWA 072
+BOUVET ISLAND BV BVT 074
+BRAZIL BR BRA 076
+BRITISH INDIAN OCEAN TERRITORY IO IOT 086
+BRUNEI DARUSSALAM BN BRN 096
+BULGARIA BG BGR 100
+BURKINA FASO BF BFA 854
+BURUNDI BI BDI 108
+CAMBODIA KH KHM 116
+CAMEROON CM CMR 120
+CANADA CA CAN 124
+CAPE VERDE CV CPV 132
+CAYMAN ISLANDS KY CYM 136
+CENTRAL AFRICAN REPUBLIC CF CAF 140
+CHAD TD TCD 148
+CHILE CL CHL 152
+CHINA CN CHN 156
+CHRISTMAS ISLAND CX CXR 162
+COCOS (KEELING) ISLANDS CC CCK 166
+COLOMBIA CO COL 170
+COMOROS KM COM 174
+CONGO, Democratic Republic of (was Zaire) CD COD 180
+CONGO, People's Republic of CG COG 178
+COOK ISLANDS CK COK 184
+COSTA RICA CR CRI 188
+COTE D'IVOIRE CI CIV 384
+CROATIA (local name: Hrvatska) HR HRV 191
+CUBA CU CUB 192
+CYPRUS CY CYP 196
+CZECH REPUBLIC CZ CZE 203
+DENMARK DK DNK 208
+DJIBOUTI DJ DJI 262
+DOMINICA DM DMA 212
+DOMINICAN REPUBLIC DO DOM 214
+EAST TIMOR TL TLS 626
+ECUADOR EC ECU 218
+EGYPT EG EGY 818
+EL SALVADOR SV SLV 222
+EQUATORIAL GUINEA GQ GNQ 226
+ERITREA ER ERI 232
+ESTONIA EE EST 233
+ETHIOPIA ET ETH 231
+FALKLAND ISLANDS (MALVINAS) FK FLK 238
+FAROE ISLANDS FO FRO 234
+FIJI FJ FJI 242
+FINLAND FI FIN 246
+FRANCE FR FRA 250
+FRANCE, METROPOLITAN FX FXX 249
+FRENCH GUIANA GF GUF 254
+FRENCH POLYNESIA PF PYF 258
+FRENCH SOUTHERN TERRITORIES TF ATF 260
+GABON GA GAB 266
+GAMBIA GM GMB 270
+GEORGIA GE GEO 268
+GERMANY DE DEU 276
+GHANA GH GHA 288
+GIBRALTAR GI GIB 292
+GREECE GR GRC 300
+GREENLAND GL GRL 304
+GRENADA GD GRD 308
+GUADELOUPE GP GLP 312
+GUAM GU GUM 316
+GUATEMALA GT GTM 320
+GUINEA GN GIN 324
+GUINEA-BISSAU GW GNB 624
+GUYANA GY GUY 328
+HAITI HT HTI 332
+HEARD AND MC DONALD ISLANDS HM HMD 334
+HONDURAS HN HND 340
+HONG KONG HK HKG 344
+HUNGARY HU HUN 348
+ICELAND IS ISL 352
+INDIA IN IND 356
+INDONESIA ID IDN 360
+IRAN (ISLAMIC REPUBLIC OF) IR IRN 364
+IRAQ IQ IRQ 368
+IRELAND IE IRL 372
+ISRAEL IL ISR 376
+ITALY IT ITA 380
+JAMAICA JM JAM 388
+JAPAN JP JPN 392
+JORDAN JO JOR 400
+KAZAKHSTAN KZ KAZ 398
+KENYA KE KEN 404
+KIRIBATI KI KIR 296
+KOREA, DEMOCRATIC PEOPLE'S REPUBLIC OF KP PRK 408
+KOREA, REPUBLIC OF KR KOR 410
+KUWAIT KW KWT 414
+KYRGYZSTAN KG KGZ 417
+LAO PEOPLE'S DEMOCRATIC REPUBLIC LA LAO 418
+LATVIA LV LVA 428
+LEBANON LB LBN 422
+LESOTHO LS LSO 426
+LIBERIA LR LBR 430
+LIBYAN ARAB JAMAHIRIYA LY LBY 434
+LIECHTENSTEIN LI LIE 438
+LITHUANIA LT LTU 440
+LUXEMBOURG LU LUX 442
+MACAU MO MAC 446
+MACEDONIA, THE FORMER YUGOSLAV REPUBLIC OF MK MKD 807
+MADAGASCAR MG MDG 450
+MALAWI MW MWI 454
+MALAYSIA MY MYS 458
+MALDIVES MV MDV 462
+MALI ML MLI 466
+MALTA MT MLT 470
+MARSHALL ISLANDS MH MHL 584
+MARTINIQUE MQ MTQ 474
+MAURITANIA MR MRT 478
+MAURITIUS MU MUS 480
+MAYOTTE YT MYT 175
+MEXICO MX MEX 484
+MICRONESIA, FEDERATED STATES OF FM FSM 583
+MOLDOVA, REPUBLIC OF MD MDA 498
+MONACO MC MCO 492
+MONGOLIA MN MNG 496
+MONTSERRAT MS MSR 500
+MOROCCO MA MAR 504
+MOZAMBIQUE MZ MOZ 508
+MYANMAR MM MMR 104
+NAMIBIA NA NAM 516
+NAURU NR NRU 520
+NEPAL NP NPL 524
+NETHERLANDS NL NLD 528
+NETHERLANDS ANTILLES AN ANT 530
+NEW CALEDONIA NC NCL 540
+NEW ZEALAND NZ NZL 554
+NICARAGUA NI NIC 558
+NIGER NE NER 562
+NIGERIA NG NGA 566
+NIUE NU NIU 570
+NORFOLK ISLAND NF NFK 574
+NORTHERN MARIANA ISLANDS MP MNP 580
+NORWAY NO NOR 578
+OMAN OM OMN 512
+PAKISTAN PK PAK 586
+PALAU PW PLW 585
+PALESTINIAN TERRITORY, Occupied PS PSE 275
+PANAMA PA PAN 591
+PAPUA NEW GUINEA PG PNG 598
+PARAGUAY PY PRY 600
+PERU PE PER 604
+PHILIPPINES PH PHL 608
+PITCAIRN PN PCN 612
+POLAND PL POL 616
+PORTUGAL PT PRT 620
+PUERTO RICO PR PRI 630
+QATAR QA QAT 634
+REUNION RE REU 638
+ROMANIA RO ROU 642
+RUSSIAN FEDERATION RU RUS 643
+RWANDA RW RWA 646
+SAINT KITTS AND NEVIS KN KNA 659
+SAINT LUCIA LC LCA 662
+SAINT VINCENT AND THE GRENADINES VC VCT 670
+SAMOA WS WSM 882
+SAN MARINO SM SMR 674
+SAO TOME AND PRINCIPE ST STP 678
+SAUDI ARABIA SA SAU 682
+SENEGAL SN SEN 686
+SEYCHELLES SC SYC 690
+SIERRA LEONE SL SLE 694
+SINGAPORE SG SGP 702
+SLOVAKIA (Slovak Republic) SK SVK 703
+SLOVENIA SI SVN 705
+SOLOMON ISLANDS SB SLB 090
+SOMALIA SO SOM 706
+SOUTH AFRICA ZA ZAF 710
+SOUTH GEORGIA AND THE SOUTH SANDWICH ISLANDS GS SGS 239
+SPAIN ES ESP 724
+SRI LANKA LK LKA 144
+ST. HELENA SH SHN 654
+ST. PIERRE AND MIQUELON PM SPM 666
+SUDAN SD SDN 736
+SURINAME SR SUR 740
+SVALBARD AND JAN MAYEN ISLANDS SJ SJM 744
+SWAZILAND SZ SWZ 748
+SWEDEN SE SWE 752
+SWITZERLAND CH CHE 756
+SYRIAN ARAB REPUBLIC SY SYR 760
+TAIWAN TW TWN 158
+TAJIKISTAN TJ TJK 762
+TANZANIA, UNITED REPUBLIC OF TZ TZA 834
+THAILAND TH THA 764
+TOGO TG TGO 768
+TOKELAU TK TKL 772
+TONGA TO TON 776
+TRINIDAD AND TOBAGO TT TTO 780
+TUNISIA TN TUN 788
+TURKEY TR TUR 792
+TURKMENISTAN TM TKM 795
+TURKS AND CAICOS ISLANDS TC TCA 796
+TUVALU TV TUV 798
+UGANDA UG UGA 800
+UKRAINE UA UKR 804
+UNITED ARAB EMIRATES AE ARE 784
+UNITED KINGDOM GB GBR 826
+UNITED STATES US USA 840
+UNITED STATES MINOR OUTLYING ISLANDS UM UMI 581
+URUGUAY UY URY 858
+UZBEKISTAN UZ UZB 860
+VANUATU VU VUT 548
+VATICAN CITY STATE (HOLY SEE) VA VAT 336
+VENEZUELA VE VEN 862
+VIET NAM VN VNM 704
+VIRGIN ISLANDS (BRITISH) VG VGB 092
+VIRGIN ISLANDS (U.S.) VI VIR 850
+WALLIS AND FUTUNA ISLANDS WF WLF 876
+WESTERN SAHARA EH ESH 732
+YEMEN YE YEM 887
+YUGOSLAVIA YU YUG 891
+ZAMBIA ZM ZMB 894
+ZIMBABWE ZW ZWE 716
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/CountryCodes.xml
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/etc/CountryCodes.xml (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/etc/CountryCodes.xml 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,548 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<countries>
+ <country>
+ <description>Afar</description>
+ <twoLetterCode>AA</twoLetterCode>
+ </country>
+ <country>
+ <description>Abkhazian</description>
+ <twoLetterCode>AB</twoLetterCode>
+ </country>
+ <country>
+ <description>Afrikaans</description>
+ <twoLetterCode>AF</twoLetterCode>
+ </country>
+ <country>
+ <description>Amharic</description>
+ <twoLetterCode>AM</twoLetterCode>
+ </country>
+ <country>
+ <description>Arabic</description>
+ <twoLetterCode>AR</twoLetterCode>
+ </country>
+ <country>
+ <description>Assamese</description>
+ <twoLetterCode>AS</twoLetterCode>
+ </country>
+ <country>
+ <description>Aymara</description>
+ <twoLetterCode>AY</twoLetterCode>
+ </country>
+ <country>
+ <description>Azerbaijani</description>
+ <twoLetterCode>AZ</twoLetterCode>
+ </country>
+ <country>
+ <description>Bashkir</description>
+ <twoLetterCode>BA</twoLetterCode>
+ </country>
+ <country>
+ <description>Byelorussian</description>
+ <twoLetterCode>BE</twoLetterCode>
+ </country>
+ <country>
+ <description>Bulgarian</description>
+ <twoLetterCode>BG</twoLetterCode>
+ </country>
+ <country>
+ <description>Bihari</description>
+ <twoLetterCode>BH</twoLetterCode>
+ </country>
+ <country>
+ <description>Bislama</description>
+ <twoLetterCode>BI</twoLetterCode>
+ </country>
+ <country>
+ <description>Bengali/Bangla</description>
+ <twoLetterCode>BN</twoLetterCode>
+ </country>
+ <country>
+ <description>Tibetan</description>
+ <twoLetterCode>BO</twoLetterCode>
+ </country>
+ <country>
+ <description>Breton</description>
+ <twoLetterCode>BR</twoLetterCode>
+ </country>
+ <country>
+ <description>Catalan</description>
+ <twoLetterCode>CA</twoLetterCode>
+ </country>
+ <country>
+ <description>Corsican</description>
+ <twoLetterCode>CO</twoLetterCode>
+ </country>
+ <country>
+ <description>Czech</description>
+ <twoLetterCode>CS</twoLetterCode>
+ </country>
+ <country>
+ <description>Welsh</description>
+ <twoLetterCode>CY</twoLetterCode>
+ </country>
+ <country>
+ <description>Danish</description>
+ <twoLetterCode>DA</twoLetterCode>
+ </country>
+ <country>
+ <description>German</description>
+ <twoLetterCode>DE</twoLetterCode>
+ </country>
+ <country>
+ <description>Bhutani</description>
+ <twoLetterCode>DZ</twoLetterCode>
+ </country>
+ <country>
+ <description>Greek</description>
+ <twoLetterCode>EL</twoLetterCode>
+ </country>
+ <country>
+ <description>English/American</description>
+ <twoLetterCode>EN</twoLetterCode>
+ </country>
+ <country>
+ <description>Esperanto</description>
+ <twoLetterCode>EO</twoLetterCode>
+ </country>
+ <country>
+ <description>Spanish</description>
+ <twoLetterCode>ES</twoLetterCode>
+ </country>
+ <country>
+ <description>Estonian</description>
+ <twoLetterCode>ET</twoLetterCode>
+ </country>
+ <country>
+ <description>Basque</description>
+ <twoLetterCode>EU</twoLetterCode>
+ </country>
+ <country>
+ <description>Persian</description>
+ <twoLetterCode>FA</twoLetterCode>
+ </country>
+ <country>
+ <description>Finnish</description>
+ <twoLetterCode>FI</twoLetterCode>
+ </country>
+ <country>
+ <description>Fiji</description>
+ <twoLetterCode>FJ</twoLetterCode>
+ </country>
+ <country>
+ <description>Faeroese</description>
+ <twoLetterCode>FO</twoLetterCode>
+ </country>
+ <country>
+ <description>French</description>
+ <twoLetterCode>FR</twoLetterCode>
+ </country>
+ <country>
+ <description>Frisian</description>
+ <twoLetterCode>FY</twoLetterCode>
+ </country>
+ <country>
+ <description>Irish</description>
+ <twoLetterCode>GA</twoLetterCode>
+ </country>
+ <country>
+ <description>Gaelic/Scots Gaelic</description>
+ <twoLetterCode>GD</twoLetterCode>
+ </country>
+ <country>
+ <description>Galician</description>
+ <twoLetterCode>GL</twoLetterCode>
+ </country>
+ <country>
+ <description>Guarani</description>
+ <twoLetterCode>GN</twoLetterCode>
+ </country>
+ <country>
+ <description>Gujarati</description>
+ <twoLetterCode>GU</twoLetterCode>
+ </country>
+ <country>
+ <description>Hausa</description>
+ <twoLetterCode>HA</twoLetterCode>
+ </country>
+ <country>
+ <description>Hindi</description>
+ <twoLetterCode>HI</twoLetterCode>
+ </country>
+ <country>
+ <description>Croatian</description>
+ <twoLetterCode>HR</twoLetterCode>
+ </country>
+ <country>
+ <description>Hungarian</description>
+ <twoLetterCode>HU</twoLetterCode>
+ </country>
+ <country>
+ <description>Armenian</description>
+ <twoLetterCode>HY</twoLetterCode>
+ </country>
+ <country>
+ <description>Interlingua</description>
+ <twoLetterCode>IA</twoLetterCode>
+ </country>
+ <country>
+ <description>Interlingue</description>
+ <twoLetterCode>IE</twoLetterCode>
+ </country>
+ <country>
+ <description>Inupiak</description>
+ <twoLetterCode>IK</twoLetterCode>
+ </country>
+ <country>
+ <description>Indonesian</description>
+ <twoLetterCode>IN</twoLetterCode>
+ </country>
+ <country>
+ <description>Icelandic</description>
+ <twoLetterCode>IS</twoLetterCode>
+ </country>
+ <country>
+ <description>Italian</description>
+ <twoLetterCode>IT</twoLetterCode>
+ </country>
+ <country>
+ <description>Hebrew</description>
+ <twoLetterCode>IW</twoLetterCode>
+ </country>
+ <country>
+ <description>Japanese</description>
+ <twoLetterCode>JA</twoLetterCode>
+ </country>
+ <country>
+ <description>Yiddish</description>
+ <twoLetterCode>JI</twoLetterCode>
+ </country>
+ <country>
+ <description>Javanese</description>
+ <twoLetterCode>JW</twoLetterCode>
+ </country>
+ <country>
+ <description>Georgian</description>
+ <twoLetterCode>KA</twoLetterCode>
+ </country>
+ <country>
+ <description>Kazakh</description>
+ <twoLetterCode>KK</twoLetterCode>
+ </country>
+ <country>
+ <description>Greenlandic</description>
+ <twoLetterCode>KL</twoLetterCode>
+ </country>
+ <country>
+ <description>Cambodian</description>
+ <twoLetterCode>KM</twoLetterCode>
+ </country>
+ <country>
+ <description>Kannada</description>
+ <twoLetterCode>KN</twoLetterCode>
+ </country>
+ <country>
+ <description>Korean</description>
+ <twoLetterCode>KO</twoLetterCode>
+ </country>
+ <country>
+ <description>Kashmiri</description>
+ <twoLetterCode>KS</twoLetterCode>
+ </country>
+ <country>
+ <description>Kurdish</description>
+ <twoLetterCode>KU</twoLetterCode>
+ </country>
+ <country>
+ <description>Kirghiz</description>
+ <twoLetterCode>KY</twoLetterCode>
+ </country>
+ <country>
+ <description>Latin</description>
+ <twoLetterCode>LA</twoLetterCode>
+ </country>
+ <country>
+ <description>Lingala</description>
+ <twoLetterCode>LN</twoLetterCode>
+ </country>
+ <country>
+ <description>Laothian</description>
+ <twoLetterCode>LO</twoLetterCode>
+ </country>
+ <country>
+ <description>Lithuanian</description>
+ <twoLetterCode>LT</twoLetterCode>
+ </country>
+ <country>
+ <description>Latvian/Lettish</description>
+ <twoLetterCode>LV</twoLetterCode>
+ </country>
+ <country>
+ <description>Malagasy</description>
+ <twoLetterCode>MG</twoLetterCode>
+ </country>
+ <country>
+ <description>Maori</description>
+ <twoLetterCode>MI</twoLetterCode>
+ </country>
+ <country>
+ <description>Macedonian</description>
+ <twoLetterCode>MK</twoLetterCode>
+ </country>
+ <country>
+ <description>Malayalam</description>
+ <twoLetterCode>ML</twoLetterCode>
+ </country>
+ <country>
+ <description>Mongolian</description>
+ <twoLetterCode>MN</twoLetterCode>
+ </country>
+ <country>
+ <description>Moldavian</description>
+ <twoLetterCode>MO</twoLetterCode>
+ </country>
+ <country>
+ <description>Marathi</description>
+ <twoLetterCode>MR</twoLetterCode>
+ </country>
+ <country>
+ <description>Malay</description>
+ <twoLetterCode>MS</twoLetterCode>
+ </country>
+ <country>
+ <description>Maltese</description>
+ <twoLetterCode>MT</twoLetterCode>
+ </country>
+ <country>
+ <description>Burmese</description>
+ <twoLetterCode>MY</twoLetterCode>
+ </country>
+ <country>
+ <description>Nauru</description>
+ <twoLetterCode>NA</twoLetterCode>
+ </country>
+ <country>
+ <description>Nepali</description>
+ <twoLetterCode>NE</twoLetterCode>
+ </country>
+ <country>
+ <description>Dutch</description>
+ <twoLetterCode>NL</twoLetterCode>
+ </country>
+ <country>
+ <description>Norwegian</description>
+ <twoLetterCode>NO</twoLetterCode>
+ </country>
+ <country>
+ <description>Occitan</description>
+ <twoLetterCode>OC</twoLetterCode>
+ </country>
+ <country>
+ <description>Oromo/Afan</description>
+ <twoLetterCode>OM</twoLetterCode>
+ </country>
+ <country>
+ <description>Oriya</description>
+ <twoLetterCode>OR</twoLetterCode>
+ </country>
+ <country>
+ <description>Punjabi</description>
+ <twoLetterCode>PA</twoLetterCode>
+ </country>
+ <country>
+ <description>Polish</description>
+ <twoLetterCode>PL</twoLetterCode>
+ </country>
+ <country>
+ <description>Pashto/Pushto</description>
+ <twoLetterCode>PS</twoLetterCode>
+ </country>
+ <country>
+ <description>Portuguese</description>
+ <twoLetterCode>PT</twoLetterCode>
+ </country>
+ <country>
+ <description>Quechua</description>
+ <twoLetterCode>QU</twoLetterCode>
+ </country>
+ <country>
+ <description>Rhaeto-Romance</description>
+ <twoLetterCode>RM</twoLetterCode>
+ </country>
+ <country>
+ <description>Kirundi</description>
+ <twoLetterCode>RN</twoLetterCode>
+ </country>
+ <country>
+ <description>Romanian</description>
+ <twoLetterCode>RO</twoLetterCode>
+ </country>
+ <country>
+ <description>Russian</description>
+ <twoLetterCode>RU</twoLetterCode>
+ </country>
+ <country>
+ <description>Kinyarwanda</description>
+ <twoLetterCode>RW</twoLetterCode>
+ </country>
+ <country>
+ <description>Sanskrit</description>
+ <twoLetterCode>SA</twoLetterCode>
+ </country>
+ <country>
+ <description>Sindhi</description>
+ <twoLetterCode>SD</twoLetterCode>
+ </country>
+ <country>
+ <description>Sangro</description>
+ <twoLetterCode>SG</twoLetterCode>
+ </country>
+ <country>
+ <description>Serbo-Croatian</description>
+ <twoLetterCode>SH</twoLetterCode>
+ </country>
+ <country>
+ <description>Singhalese</description>
+ <twoLetterCode>SI</twoLetterCode>
+ </country>
+ <country>
+ <description>Slovak</description>
+ <twoLetterCode>SK</twoLetterCode>
+ </country>
+ <country>
+ <description>Slovenian</description>
+ <twoLetterCode>SL</twoLetterCode>
+ </country>
+ <country>
+ <description>Samoan</description>
+ <twoLetterCode>SM</twoLetterCode>
+ </country>
+ <country>
+ <description>Shona</description>
+ <twoLetterCode>SN</twoLetterCode>
+ </country>
+ <country>
+ <description>Somali</description>
+ <twoLetterCode>SO</twoLetterCode>
+ </country>
+ <country>
+ <description>Albanian</description>
+ <twoLetterCode>SQ</twoLetterCode>
+ </country>
+ <country>
+ <description>Serbian</description>
+ <twoLetterCode>SR</twoLetterCode>
+ </country>
+ <country>
+ <description>Siswati</description>
+ <twoLetterCode>SS</twoLetterCode>
+ </country>
+ <country>
+ <description>Sesotho</description>
+ <twoLetterCode>ST</twoLetterCode>
+ </country>
+ <country>
+ <description>Sudanese</description>
+ <twoLetterCode>SU</twoLetterCode>
+ </country>
+ <country>
+ <description>Swedish</description>
+ <twoLetterCode>SV</twoLetterCode>
+ </country>
+ <country>
+ <description>Swahili</description>
+ <twoLetterCode>SW</twoLetterCode>
+ </country>
+ <country>
+ <description>Tamil</description>
+ <twoLetterCode>TA</twoLetterCode>
+ </country>
+ <country>
+ <description>Tegulu</description>
+ <twoLetterCode>TE</twoLetterCode>
+ </country>
+ <country>
+ <description>Tajik</description>
+ <twoLetterCode>TG</twoLetterCode>
+ </country>
+ <country>
+ <description>Thai</description>
+ <twoLetterCode>TH</twoLetterCode>
+ </country>
+ <country>
+ <description>Tigrinya</description>
+ <twoLetterCode>TI</twoLetterCode>
+ </country>
+ <country>
+ <description>Turkmen</description>
+ <twoLetterCode>TK</twoLetterCode>
+ </country>
+ <country>
+ <description>Tagalog</description>
+ <twoLetterCode>TL</twoLetterCode>
+ </country>
+ <country>
+ <description>Setswana</description>
+ <twoLetterCode>TN</twoLetterCode>
+ </country>
+ <country>
+ <description>Tonga</description>
+ <twoLetterCode>TO</twoLetterCode>
+ </country>
+ <country>
+ <description>Turkish</description>
+ <twoLetterCode>TR</twoLetterCode>
+ </country>
+ <country>
+ <description>Tsonga</description>
+ <twoLetterCode>TS</twoLetterCode>
+ </country>
+ <country>
+ <description>Tatar</description>
+ <twoLetterCode>TT</twoLetterCode>
+ </country>
+ <country>
+ <description>Twi</description>
+ <twoLetterCode>TW</twoLetterCode>
+ </country>
+ <country>
+ <description>Ukrainian</description>
+ <twoLetterCode>UK</twoLetterCode>
+ </country>
+ <country>
+ <description>Urdu</description>
+ <twoLetterCode>UR</twoLetterCode>
+ </country>
+ <country>
+ <description>Uzbek</description>
+ <twoLetterCode>UZ</twoLetterCode>
+ </country>
+ <country>
+ <description>Vietnamese</description>
+ <twoLetterCode>VI</twoLetterCode>
+ </country>
+ <country>
+ <description>Volapuk</description>
+ <twoLetterCode>VO</twoLetterCode>
+ </country>
+ <country>
+ <description>Wolof</description>
+ <twoLetterCode>WO</twoLetterCode>
+ </country>
+ <country>
+ <description>Xhosa</description>
+ <twoLetterCode>XH</twoLetterCode>
+ </country>
+ <country>
+ <description>Yoruba</description>
+ <twoLetterCode>YO</twoLetterCode>
+ </country>
+ <country>
+ <description>Chinese</description>
+ <twoLetterCode>ZH</twoLetterCode>
+ </country>
+ <country>
+ <description>Zulu</description>
+ <twoLetterCode>ZU</twoLetterCode>
+ </country>
+</countries>
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/GenXML.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/etc/GenXML.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/etc/GenXML.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,65 @@
+import java.io.*;
+
+public class GenXML {
+ public static void main(String[] args) {
+ try {
+ FileInputStream is = new FileInputStream(new File(
+ "languageCode.txt"));
+
+ PrintWriter pw = new PrintWriter(new File("CountryCodes.xml"));
+
+ pw.println("<countries>");
+
+ String line = new String();
+
+ int chr;
+
+ while ((chr = is.read()) != -1) {
+
+ if ((char) chr == '\n') {
+ line = line.trim();
+
+ if (line.length() > 0) {
+ String desc = "";
+
+ String twoLetterCode = "";
+
+ if (line.matches("\\w\\w\\s\\\"[-\\w\\s]+\\\"")) {
+ twoLetterCode = line.substring(0, 2);
+ desc = line.substring(line.indexOf('"') + 1, line
+ .lastIndexOf('"'));
+ } else if (line
+ .matches("\\w\\w\\s\\\"[-\\w\\s]+\\\"\\s\\\"[-\\w\\s]+\\\"")) {
+ twoLetterCode = line.substring(0, 2);
+ int i = line.indexOf('"');
+ int j = line.indexOf('"', i + 1);
+ int k = line.indexOf('"', j + 1);
+ int l = line.indexOf('"', k + 1);
+ desc = line.substring(i + 1, j) + "/"
+ + line.substring(k + 1, l);
+ } else {
+ System.err.println("DUPA " + line);
+ // return;
+ }
+
+ pw.println("\t<country>\n\t\t<description>" + desc
+ + "</description>\n\t\t<twoLetterCode>"
+ + twoLetterCode.trim() + "</twoLetterCode>\n"
+ + "\t</country>");
+
+ line = "";
+ }
+ } else
+ line += (char) chr;
+ }
+
+ pw.println("</countries>");
+
+ is.close();
+
+ pw.close();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+}
\ No newline at end of file
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/JBossWiki.properties
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/etc/JBossWiki.properties (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/etc/JBossWiki.properties 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,24 @@
+#JBoss Wiki properties file
+#
+#(C) 2005 by JBoss Labs Team
+
+#sessionIdExpireTime (in minutes) - time after edit session expires
+sessionIdExpireTime=120
+
+#defaultPage - name of the default page
+defaultPage=Main
+
+#credentialsClass - class to use for portlet credentials
+credentialsClass=org.jboss.wiki.JBossPortalCredentials
+
+#mediaDataSourceClass class to use for mediaDataSource
+mediaDataSourceClass=org.jboss.wiki.FileMediaDataSource
+
+#attachmentDataSourceClass class to use for AttachmentDataSource
+attachmentDataSourceClass=org.jboss.wiki.FileAttachmentDataSource
+
+#wikiPageDictionaryClass class to use for WikiPageDictionary
+wikiPageDictionaryClass=org.jboss.wiki.FileWikiPageDictionary
+
+#defaultLanguageCode - country letter of the default code language
+defaultLanguageCode=EN
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/WikiInsidePlugins.xml
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/etc/WikiInsidePlugins.xml (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/etc/WikiInsidePlugins.xml 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
+<properties>
+<comment>Here are defined inside plugins</comment>
+<entry key="tomek">org.jboss.wiki.plugins.TomekInsidePlugin</entry>
+<entry key="InsertPage">org.jboss.wiki.plugins.InsertPageInsidePlugin</entry>
+<entry key="IndexPlugin">org.jboss.wiki.plugins.IndexInsidePlugin</entry>
+<entry key="CurrentTimePlugin">com.ecyrd.jspwiki.plugin.CurrentTimePlugin</entry>
+<entry key="Counter">com.ecyrd.jspwiki.plugin.CounterPlugin</entry>
+<entry key="Image">com.ecyrd.jspwiki.plugin.ImagePlugin</entry>
+</properties>
\ No newline at end of file
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/WikiTypes.xml
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/etc/WikiTypes.xml (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/etc/WikiTypes.xml 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ JBoss, the OpenSource J2EE webOS
+ Distributable under LGPL license.
+ See terms of license at gnu.org.
+ -->
+<wikiTypes>
+ <wikiType>
+ <name>html</name>
+ <class>org.jboss.wiki.plugins.DefaultWikiType</class>
+ <plugin>
+ <name>trail</name>
+ <class>org.jboss.wiki.plugins.TrailPlugin</class>
+ </plugin>
+ <plugin>
+ <name>watchList</name>
+ <class>org.jboss.wiki.plugins.WatchListPlugin</class>
+ </plugin>
+ <plugin>
+ <name>subPagesList</name>
+ <class>org.jboss.wiki.plugins.SubpagesListPlugin</class>
+ </plugin>
+ <plugin>
+ <name>langLinks</name>
+ <class>org.jboss.wiki.plugins.OtherLangsPlugin</class>
+ </plugin>
+ <plugin>
+ <name>adminConsole</name>
+ <class>org.jboss.wiki.plugins.AdminConsolePlugin</class>
+ </plugin>
+ <plugin>
+ <name>attachmentList</name>
+ <class>org.jboss.wiki.plugins.AttachmentListPlugin</class>
+ </plugin>
+ <plugin>
+ <name>wikiToHtmlTranslator</name>
+ <class>org.jboss.wiki.plugins.HTMLTranslatorParts</class>
+ </plugin>
+ <plugin>
+ <name>wikiToHtmlTranslatorNoPlugins</name>
+ <class>org.jboss.wiki.plugins.HTMLTranslatorNoPlugins</class>
+ </plugin>
+ <plugin>
+ <name>friendlyLinks</name>
+ <class>org.jboss.wiki.plugins.FriendlyLinkPlugin</class>
+ </plugin>
+ </wikiType>
+ <wikiType>
+ <name>diff</name>
+ <class>org.jboss.wiki.plugins.DefaultWikiType</class>
+ <plugin>
+ <name>Diff</name>
+ <class>org.jboss.wiki.plugins.DiffPlugin</class>
+ </plugin>
+ </wikiType>
+ <wikiType>
+ <name>find</name>
+ <class>org.jboss.wiki.plugins.DefaultWikiType</class>
+ <plugin>
+ <name>findResult</name>
+ <class>org.jboss.wiki.plugins.FindResultPlugin</class>
+ </plugin>
+ <plugin>
+ <name>trail</name>
+ <class>org.jboss.wiki.plugins.TrailPlugin</class>
+ </plugin>
+ <plugin>
+ <name>wikiToHtmlTranslator</name>
+ <class>org.jboss.wiki.plugins.HTMLTranslatorParts</class>
+ </plugin>
+ </wikiType>
+ <wikiType>
+ <name>rss</name>
+ <class>org.jboss.wiki.plugins.RSSWikiType</class>
+ <plugin>
+ <name>RSSPlugin</name>
+ <class>org.jboss.wiki.plugins.RSSPlugin</class>
+ </plugin>
+ </wikiType>
+ <wikiType>
+ <name>rdf</name>
+ <class>org.jboss.wiki.plugins.RSSWikiType</class>
+ <plugin>
+ <name>RSSPlugin</name>
+ <class>org.jboss.wiki.plugins.RDFPlugin</class>
+ </plugin>
+ </wikiType>
+ <wikiType>
+ <name>atom</name>
+ <class>org.jboss.wiki.plugins.ATOMWikiType</class>
+ <plugin>
+ <name>ATOMPlugin</name>
+ <class>org.jboss.wiki.plugins.ATOMPlugin</class>
+ </plugin>
+ </wikiType>
+ <wikiType>
+ <name>fileInfo</name>
+ <class>org.jboss.wiki.plugins.DefaultWikiType</class>
+ <plugin>
+ <name>AttachementInfoPlugin</name>
+ <class>org.jboss.wiki.plugins.AttachementInfoPlugin</class>
+ </plugin>
+ </wikiType>
+ <wikiType>
+ <name>refs</name>
+ <class>org.jboss.wiki.plugins.DirectReferenceWikiType</class>
+ <plugin>
+ <name>getRefsForPage</name>
+ <class>org.jboss.wiki.plugins.GetRefsFromPagePlugin</class>
+ </plugin>
+ </wikiType>
+ <wikiType>
+ <name>recentChanges</name>
+ <class>org.jboss.wiki.plugins.DefaultWikiType</class>
+ <plugin>
+ <name>recentChanges</name>
+ <class>org.jboss.wiki.plugins.RecentlyChangedPagesPlugin</class>
+ </plugin>
+ <plugin>
+ <name>HTMLTranslatorParts</name>
+ <class>org.jboss.wiki.plugins.HTMLTranslatorParts</class>
+ </plugin>
+ </wikiType>
+ <wikiType>
+ <name>edit</name>
+ <class>org.jboss.wiki.plugins.DefaultWikiType</class>
+ <plugin>
+ <name>textAreaChange</name>
+ <class>org.jboss.wiki.plugins.TextAreaChange</class>
+ </plugin>
+ <plugin>
+ <name>translateUids</name>
+ <class>org.jboss.wiki.plugins.TranslateUids</class>
+ </plugin>
+ </wikiType>
+ <wikiType>
+ <name>postedit</name>
+ <class>org.jboss.wiki.plugins.DirectReferenceWikiType</class>
+ <plugin>
+ <name>reTranslateUids</name>
+ <class>org.jboss.wiki.plugins.ReTranslateUids</class>
+ </plugin>
+ <plugin>
+ <name>updateRefs</name>
+ <class>org.jboss.wiki.plugins.UpdateRefs</class>
+ </plugin>
+ <plugin>
+ <name>sendNotifications</name>
+ <class>org.jboss.wiki.plugins.SendNotificationPlugin</class>
+ </plugin>
+ </wikiType>
+ <wikiType>
+ <name>admin</name>
+ <class>org.jboss.wiki.plugins.DirectReferenceWikiType</class>
+ <plugin>
+ <name>adminRenamePlugin</name>
+ <class>org.jboss.wiki.plugins.AdminRenamingPlugin</class>
+ </plugin>
+ </wikiType>
+ <wikiType>
+ <name>htmlClear</name>
+ <class>org.jboss.wiki.plugins.DefaultWikiType</class>
+ <plugin>
+ <name>addTranslatorPart</name>
+ <class>org.jboss.wiki.plugins.AddTranslatorPartsPlugin</class>
+ </plugin>
+ <plugin>
+ <name>wikiToHtmlTranslator</name>
+ <class>org.jboss.wiki.plugins.HTMLTranslatorParts</class>
+ </plugin>
+ <plugin>
+ <name>friendlyLinks</name>
+ <class>org.jboss.wiki.plugins.FriendlyLinkPlugin</class>
+ </plugin>
+ </wikiType>
+ <wikiType>
+ <name>null</name>
+ <class>org.jboss.wiki.plugins.DefaultWikiType</class>
+ </wikiType>
+ <wikiType>
+ <name>linkPage</name>
+ <class>org.jboss.wiki.plugins.DirectReferenceWikiType</class>
+ <plugin>
+ <name>linkPagePlugin</name>
+ <class>org.jboss.wiki.plugins.LinkPagePlugin</class>
+ </plugin>
+ <plugin>
+ <name>wikiToHtmlTranslator</name>
+ <class>org.jboss.wiki.plugins.HTMLTranslatorParts</class>
+ </plugin>
+ </wikiType>
+</wikiTypes>
\ No newline at end of file
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/countryCodes.dtd
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/etc/countryCodes.dtd (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/etc/countryCodes.dtd 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,4 @@
+<!ELEMENT countries (country*)>
+<!ELEMENT country (description,twoLetterCode)>
+<!ELEMENT description (#PCDATA)>
+<!ELEMENT twoLetterCode (#PCDATA)>
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/ATOMButton.gif
===================================================================
(Binary files differ)
Property changes on: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/ATOMButton.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/AtomButton.ai
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/etc/images/AtomButton.ai (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/etc/images/AtomButton.ai 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,3726 @@
+%PDF-1.4
+%âãÏÓ
+1 0 obj<</Pages 2 0 R/Type/Catalog/Metadata 133 0 R>>
+endobj
+2 0 obj<</Count 1/Kids[6 0 R]/Type/Pages>>
+endobj
+3 0 obj<</ModDate(D:20050926114813-05'00')/CreationDate(D:20050926114543-05'00')/Creator(Illustrator)/Producer(Adobe PDF library 6.66)>>
+endobj
+5 0 obj null
+endobj
+6 0 obj<</Contents 121 0 R/Type/Page/Parent 2 0 R/Thumb 132 0 R/MediaBox[0.0 0.0 743.0 109.0]/BleedBox[0.0 0.0 743.0 109.0]/TrimBox[0.0 0.0 743.0 109.0]/ArtBox[353.83105 46.10059 392.42383 65.98242]/Resources<</Font<</C2_0 115 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 114 0 R>>/Properties<</MC0<</Color[20224.0 32768.0 32768.0]/Title(Layer 1)/Visible true/Preview true/Editable true/Printed true/Dimmed true>>>>>>/PieceInfo<</Illustrator 7 0 R>>/LastModified(D:20050926114813-05'00')>>
+endobj
+7 0 obj<</LastModified(D:20050926114813-05'00')/Private 8 0 R>>
+endobj
+8 0 obj<</CreatorVersion 11/ContainerVersion 9/RoundtripVersion 11/AIMetaData 72 0 R/AIPrivateData1 73 0 R/AIPrivateData2 75 0 R/AIPrivateData3 77 0 R/AIPrivateData4 79 0 R/AIPrivateData5 81 0 R/AIPrivateData6 83 0 R/AIPrivateData7 85 0 R/AIPrivateData8 87 0 R/AIPrivateData9 89 0 R/AIPrivateData10 91 0 R/AIPrivateData11 93 0 R/NumBlock 21/AIPrivateData12 95 0 R/AIPrivateData13 97 0 R/AIPrivateData14 99 0 R/AIPrivateData15 101 0 R/AIPrivateData16 103 0 R/AIPrivateData17 105 0 R/AIPrivateData18 107 0 R/AIPrivateData19 109 0 R/AIPrivateData20 111 0 R/AIPrivateData21 113 0 R>>
+endobj
+71 0 obj null
+endobj
+72 0 obj<</Length 1226>>stream
+%!PS-Adobe-3.0
+%%Creator: Adobe Illustrator(R) 11.0
+%%AI8_CreatorVersion: 11.0.0
+%%For: (Nobody) (Nobody)
+%%Title: (AtomButton.ai)
+%%CreationDate: 9/26/05 11:48 AM
+%%BoundingBox: 353 46 393 66
+%%HiResBoundingBox: 353.8311 46.1006 392.4238 65.9824
+%%DocumentProcessColors: Cyan Magenta Yellow Black
+%AI5_FileFormat 7.0
+%AI3_ColorUsage: Color
+%AI7_ImageSettings: 0
+%%CMYKProcessColor: 0 0 0 1 (Global Black)
+%%+ 0.46 0 0 0 (Global Blue)
+%%+ 0.8 0 1 0 (Global Green)
+%%+ 0.33 0 0.73 0 (Global Lime)
+%%+ 0.3255 0.4431 0.5373 0.1961 (Global Malt)
+%%+ 1 0.5 0 0 (Global Night)
+%%+ 0 0.5 1 0 (Global Orange)
+%%+ 0.43 0.28 0 0 (Global Periwinkle)
+%%+ 0 0.25 0 0 (Global Pink)
+%%+ 0.5 0.9 0 0 (Global Plum)
+%%+ 0 1 1 0 (Global Red)
+%%+ 0 0 1 0 (Global Yellow)
+%%+ 1 1 1 1 ([Registration])
+%AI3_TemplateBox: 371.5 54.5 371.5 54.5
+%AI3_TileBox: -12.8799 -239.8799 755.8799 348.8799
+%AI3_DocumentPreview: None
+%AI5_ArtSize: 743 109
+%AI5_RulerUnits: 6
+%AI9_ColorModel: 2
+%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
+%AI5_TargetResolution: 800
+%AI5_NumLayers: 1
+%AI9_OpenToView: 288 134 4 1012 683 26 0 0 6 42 0 0 1 1 1 0 1
+%AI5_OpenViewLayers: 7
+%%PageOrigin:0 0
+%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9
+%AI9_Flatten: 0
+%%EndComments
+
+endstream
+endobj
+73 0 obj<</Length 18621>>stream
+%%BoundingBox: 353 46 393 66
+%%HiResBoundingBox: 353.8311 46.1006 392.4238 65.9824
+%AI7_Thumbnail: 128 68 8
+%%BeginData: 18474 Hex Bytes
+%0000330000660000990000CC0033000033330033660033990033CC0033FF
+%0066000066330066660066990066CC0066FF009900009933009966009999
+%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
+%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
+%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
+%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
+%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
+%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
+%6666006666336666666666996666CC6666FF669900669933669966669999
+%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
+%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
+%9933009933339933669933999933CC9933FF996600996633996666996699
+%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
+%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
+%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
+%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
+%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
+%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
+%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
+%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
+%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
+%000011111111220000002200000022222222440000004400000044444444
+%550000005500000055555555770000007700000077777777880000008800
+%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
+%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
+%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
+%524C45C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC19898C1989F98C1989F98C1989F98C1989F98C198
+%9F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98
+%C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C198
+%9F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98
+%C1989F98C1989F98C1989F98C1989F98C1989FC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E989F98
+%9F989F989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989FC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19E989F98C1989F98C1989F98C1989F98C198
+%9F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98
+%C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C198
+%9F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98
+%C1989F98C1989F98C1989F98C1989F98C1989F98C1C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC19898
+%9F989F989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989F989FC19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC19898C1989F98C1989F98C1989F98C198
+%9F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98
+%C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C198
+%9F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98
+%C1989F98C1989F98C1989F98C1989F98C1989F98C1989FC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9E989F989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989F989F989FC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19E989F98C1989F98C1989F98C198
+%9F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98
+%C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C198
+%9F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98
+%C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989F989F989F989FC19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC19898C1989F98C1989F98C198
+%9F98C1989F98C1989F98C1989E98C1989E98C1989F98C1989F98C1989F98
+%C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C198
+%9F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98
+%C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989FC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19FC198C19FC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19E989F989F989F989F989F989F989F989F989F989F989FA8FFCA
+%CFA8FFCACFA8C2989F989F989F989F989F989F989F989E98C2A09F989F98
+%9F989F989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989F989F989F989F989F989F989F989F989F989F989F989F989F98
+%9F989F989F989F989F989F989FC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC1A6FD09FFC9C198C19EC198C19EC198C19EC198C19FCFFFCF9EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19E989F98C1989F98C1989F98C1989F98
+%C1989F98C198CFFD0AFF989E98C1989F98C1989F98C1989FA0FFFFFFA7C1
+%989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F
+%98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1
+%989F98C1989F98C1989F98C1989F98C1C19EC198C19EC198C19EC198C19E
+%C198C19EC198C8FD0BFFC898C198C19EC198C19EC198C9CFFD04FFCF98C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198989F989F989F989F989F989F989F98
+%9F989F989EA0FFFFFFA8FFFFFFA8FFFFFFA79E989F989F989F989F98C2FD
+%04FFA8FFA79E989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989FC19EC198C19EC198
+%C19EC198C19EC198C19EC19EFD0DFF9FC198C19EC198C19EC1A0FD06FFCF
+%98C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C1
+%9EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC1
+%98C19EC198C19EC198C19EC198C19EC19898C1989F98C1989F98C1989F98
+%C1989F98C198C2FD06FFCFFD06FFC8989F98C1989F98C098C2FD06FFA79E
+%98C0989F98C1989F98C1989E98C0989E98C0989E98C1989F98C1989F98C1
+%989E98C0989E98C1989E98C0989E98C0989F98C1989E98C0989E98C0989F
+%98C1989F98C1989F98C1989F98C1989FC198C19EC198C19EC198C19EC198
+%C19EC198C1C9FD05FFCFC9FD06FFA7C19EC198C19EC19FC1C8FD06FFCF9F
+%C19FC19EC198C19EC198C19FC8A6CFC9CFC9C9A0C198C19EC198C19EC198
+%C19FC29FC29FC198C19EC8A6CFC9CFA0C198C198C19EC2A6CFC9CFA0C198
+%C198C19EC198C19EC198C19EC198C19E989F989F989F989F989F989F989F
+%989F989E98FFFFFFA8FFFFCF98CFFFFFA8FFFFFF989E989F989F98FFAFFF
+%FFFFA8FFFFFFA8FFFFFFA79F989F989F989FA0FFFFFFAFFFFFFFAFFFCAC9
+%989E989F989F989EA7FFFFFFAFFFA89E9FCFFFFFAFFFFFFFA8C8989E98C9
+%FFFFAFFFFFFFA8C8989E989F989F989F989F989F989F989FC198C19EC198
+%C19EC198C19EC198C19EC198C8FD06FFC9C1C9FD06FFC898C198C19EC1CF
+%FD0CFFCF9EC198C198C2CFFD0DFF9FC098C19EC198CFFD05FFCF9FFD0AFF
+%C89FFD0AFFC998C19EC198C19EC198C19EC198C19E989F98C1989F98C198
+%9F98C1989F98C1989EA7FD06FFC298C8FD06FFA7C1989F98C198FD0DFFA7
+%C1989F98C1FD10FF9F9E98C1989FA7FD05FFCAFD09FFCFFFCACFFD0BFF9F
+%98C1989F98C1989F98C1989F98C1C19EC198C19EC198C19EC198C19EC198
+%C19FFD07FF9FC198FD07FF9FC19EC198C1FD0DFFCF98C198C1CAFD11FF9F
+%C198C19ECFFD1EFFC8C098C19EC198C19EC198C19EC198989F989F989F98
+%9F989F989F989F989F98C8FFFFA8FFFFFFA79E989EA6FFFFFFA8FFFFC898
+%9F989E98CFCAFFA8FFFFFFA8FFCFCFA8FFA79E989EA6FFA8FFFFFFA8FFA7
+%C8A0CFFFFFA8FFFFFFAFC9989E989FA7FFA8FFFFFFA8FFFFFFA8FFFFFFA8
+%FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFAFC9989E989F989F989F989F989F98
+%9FC19EC198C19EC198C19EC198C19EC198C1C9FD06FFC998C198C8FD06FF
+%CAC19EC198C19FC1A0FD06FFCF9EC19FC198C19FFD07FFC9C198C19EC9FD
+%07FFC198C19ECFFD07FFC99FC1C8FD08FFCF9FC1A0FD07FFCAC198C19EC1
+%98C19EC198C19EC19898C1989F98C1989F98C1989F98C1989E9FFD07FF98
+%9E989898CFFD06FF9FC0989F98C198C8FD06FFA79E98C1989F98C8FD06FF
+%A8C1989F98C198CFFD06FFA09E98C1A7FD06FFCF989E98C0A7FD07FF9F9E
+%98C0A0FD06FFCF989E98C1989F98C1989F98C1989FC198C19EC198C19EC1
+%98C19EC198C198C9FD07FFC9A0C9C8C9CAFD06FFC998C19EC198C1A0FD06
+%FFCF9EC198C19EC0A7FD06FFC998C19EC198C1C9FD06FFC998C198CFFD06
+%FFA0C09EC198C9FD06FFA7C19EC198C8FD06FFCAC19EC198C19EC198C19E
+%C198C19E989F989F989F989F989F989F989F989FA7FFA8FFFFFFA8FD07FF
+%A8FFFFFFA8FFA89F989F989F98C8FFFFA8FFFFFFA79F989F989F98C9AFFF
+%FFFFA8FFA098989F989F98C9FFFFA8FFFFFFA79E989EA7FFFFFFA8FFFFC8
+%989F989EA0FFFFFFA8FFFFC9989F989E9FFFFFFFA8FFFFCF989F989F989F
+%989F989F989F989FC198C19EC198C19EC198C19EC198C19FFD15FF9FC19E
+%C198C1A0FD06FFCF9EC198C19EC1C9FD06FFC898C19EC198C1C8FD06FFCF
+%9EC198CFFD06FFA0C19EC198C9FD06FFC9C19EC198C8FD06FFCAC19EC198
+%C19EC198C19EC198C19E989F98C1989F98C1989F98C1989F98C9FD15FFC9
+%98C1989F98C8FD06FFA7C1989F98C198C9FD06FFA69E98C1989F98C9FD06
+%FFA7C1989FA7FD06FFC898C1989EA0FD06FFC998C1989E9FFD06FFCF98C1
+%989F98C1989F98C1989F98C1C19EC198C19EC198C19EC198C19EC1CAFD15
+%FFCFC198C19EC0A0FD06FFCF98C19EC198C1C9FD06FFCF98C198C19EC1A7
+%FD06FFC998C19ECFFD06FFA0C098C198C9FD06FFC9C198C198C8FD06FFCA
+%C198C19EC198C19EC198C19EC198989F989F989F989F989F989F989E9FFF
+%A8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FF9F9E989F98C8AFFF
+%FFFFA8FFA79E989E989F98C2FFFFA8FFFFFFA8C1989E989E9FFFA9FFFFFF
+%A8FF9F9E989FA7FFA8FFFFFFAFC8989F989EA6FFA8FFFFFFAFC9989E989E
+%9FFFA8FFFFFFAFCF989E989F989F989F989F989F989FC19EC198C19EC198
+%C19EC198C198C9FD17FFC998C19EC1A0FD07FF9FC19FC198C19FFD07FFCF
+%C298C19FCFFD06FFCFC198C19ECFFD06FFA0C198C198C9FD06FFC9C198C1
+%98C8FD06FFCAC198C19EC198C19EC198C19EC19898C1989F98C1989F98C1
+%989F98C1CAFD06FFCF9FC19FC19FC19FC19FFD07FFCA9F98C198C1FD07FF
+%CFA7FFA69E98C0A0FD05FFCFFFFFCAA7FD08FFC8989F98C1A7FD06FFC898
+%9F98C0A6FD06FFC9989F98C09FFD06FFCF989E98C1989F98C1989F98C198
+%9FC198C19EC198C19EC198C19EC09FFD07FFA6C098C098C198C098C0C9FD
+%07FFA0C098C19FFD0AFFC998C198C1C9FD10FFCF98C19EC198CFFD06FFA0
+%C19EC198C9FD06FFA7C19EC198C8FD06FFCAC19EC198C19EC198C19EC198
+%C19E989F989F989F989F989F989F98C9AFFFFFFFA8FFFFC2989F989F989F
+%989F98C8FFFFA8FFFFFFAFC9989E989EA7FFA8FFFFFFA8FFFFFFA79F989F
+%98C1A7FFA9FFFFFFA8FFFFFFA8FD04FFCF989E989F989EA7FFFFFFA8FFFF
+%C8989F989EA0FFFFFFA8FFFFC9989F989E9FFFFFFFA8FFFFCF989F989F98
+%9F989F989F989F989FC198C19EC198C19EC198C19EC1FD08FF9FC19EC198
+%C19EC198C19FFD08FFC198C198C2FD0AFF9EC198C198C1C9FD0CFFCE9FC1
+%9EC19EC198CFFD06FFA0C19EC198C9FD06FFC9C19EC198C8FD06FFCAC19E
+%C198C19EC198C19EC198C19E989F98C1989F98C1989F98C09FCFA8CFCACF
+%A8FFA79E98C1989F98C1989F98C1A7CFA8CFCACFA8FF9F9E98C198C1A7FD
+%07FFA7C1989F98C1989E9FC9CAFD05FFCAFFA7C198C1989F98C1989FA7CF
+%CACFA8CFCAC298C1989EA0FFCACFA8CFCAC998C1989E9FCFCACFA8CFCAC9
+%98C1989F98C1989F98C1989F98C1C19EC198C19EC198C19EC198C19EC198
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C198
+%C19FC8A0C8A0C89FC198C19EC198C19EC198C19FC8A0C8A0C19EC198C198
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198989F989F989F989F
+%989F989F989F989E989F989E989F989F989F989F989F989F989F989E989F
+%989E989F989F989F989E989E9898989E989F989F989F989F989E989E9898
+%989E989E989F989F989F989F989F989E989F989E989F989F989F989E989F
+%989E989F989F989F989E989F989E989F989F989F989F989F989F989F989F
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198
+%C19EC198C19EC19898C1989F98C1989F98C1989F98C1989F98C1989F98C1
+%989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F
+%98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1
+%989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F
+%98C1989F98C1989F98C1989F98C1989FC198C19EC198C19EC198C19EC198
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19E989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989FC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198
+%C19EC198C19EC198C19E989F98C1989F98C1989F98C1989F98C1989F98C1
+%989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F
+%98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1
+%989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F
+%98C1989F98C1989F98C1989F98C1989F98C1C19EC198C19EC198C19EC198
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989FC19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198
+%C19EC198C19EC198C19EC19898C1989F98C1989F98C1989F98C1989F98C1
+%989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F
+%98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1
+%989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F
+%98C1989F98C1989F98C1989F98C1989F98C1989FC198C19EC198C19EC198
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989FC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198
+%C19EC198C19EC198C19EC198C19E989F98C1989F98C1989F98C1989F98C1
+%989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F
+%98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1
+%989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F
+%98C1989F98C1989F98C1989F98C1989F98C1989F98C1C19EC198C19EC198
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989FC19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198
+%C19EC198C19EC198C19EC198C19EC19898C1989F98C1989F98C1989F98C1
+%989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F
+%98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1
+%989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F98C1989F
+%98C1989F98C1989F98C1989F98C1989F98C1989F98C1989FC198C19EC198
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198
+%C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19E
+%C198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198C19EC198
+%C19E989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F989F989F989F989F989F989F989F989F989F989F
+%989F989F989F989F989F
+%%EndData
+
+endstream
+endobj
+74 0 obj 15541
+endobj
+75 0 obj<</Length 74 0 R/Filter[/FlateDecode]>>stream
+HWënܺ~½ú#@ÂKÔ
2Ô-Çmb±}4(ô»"]8Oß!)iµ¹¨Þ¥8ß3ßPܹ½»à¥ztã¹Îi'Å ºK×̺Wu=öC§§^¾{åb¼ñ
+.6ÕÀ
+ÃS oE=X´A
q]&¥gë8n:Ñ
|í°3ó[ÙU_ªöc-O>Èù
+· ]è@ãsm=6³)>[ü,g
+ËyCV^~x'iàî^ÙjÞËæX-#ë>|`0lXÇEA`Ôgf`MN+ùåÒ½V´¼âÝpW}E1ìÅvöÝXËî¡4C=[²½U¥¬/]²Øµ0[ö=}ZÀ½èr&Sõ8^gÞ¤º7âYêÎÁv£lïÕ&>©ïú&nȨK,'C×'Ó2¶ØúÓÖÚvvAÆo¡nºêPµSHÑöuW§ÞËìZs{ùçìtdkû)oËT5:¥½>d -´WV·ÎÆèÓ¨ÙÃÚµtã:ñYº0ÄËJv ét~{@éNU]Ý8Ht=Tu)ÑÍsÐÃb!,DoH쪪½¯åW$Nk/óÝì\KIk*W¦r1¬ûÊbª¦Z0qï e±ÊbÕ
+«¬²¡:Zèx:h\°¥8dJPJ´|£~]wÑËæzëZè(:ãF´åc
+YêL£·íÔñ¹ÓÆ+e#ºÈÆ°,·iÕPÊ=â9ºékÑ?9ËÔÞfMÕ'Ðüý,[ÔßO;?àæoÕ{ ®ªVêq#úÝXë `~ZýÓ({½ÉR}iüº«EcÀ®j'j0X¬öÐUûcJ-oÐýpz²Ã©:ê÷G±ÛbðlÓWæH[BHH6æËRlÎÖ§y:ÍÛɲú\i,I[rþ~í;a+2NYâ6OÆölx¢¬°*5ALO}ö(z¹h
+*ð8ès
+ܳÝ4ò \Çæ×½ãâ8Bâ_§(b2YÃí`",4Ú7 ·
+ø×@áíÝsó¨ê-²ßg;l*·Ú[¨~Ë8×GÇ\{áò
+£þ-åÞ=£þi;Îu\\ü¦qpä&íJÿZ7/zð[0=äîðÖû¦à÷Ç÷Ð`\½ëoÏýÄOýÌÏý"ð~a,$AdA¡â4ôà Ã(daò0 Ó0ó°¼;häGAFQ÷ìGIFYGófQæ³
,bų¥,c9+b/Æ1iìÇaÅ,cîÄI:P9å>xÈ#ÎxÌ9OxÊ3ó"ñ&~$a%,$IdI©â¤4õÓ
+Ó(eir'MÒ4ÍÒ<-2/ÃÉhægAfQƲ8ãY¥YåY{9ÎINs?ò0rÇ9Ï<ͳ<ÏÂ+pA>!XÏóà~îø¤Ö=HÇ<Ø¥ÇAâò2¹cL@(öAx%8#ássÄ)HqõzFB(O r$$~Â$p)!°m:5Rê;Ô§Ö}±M:X/6äd¤FIø$ñ$lHá$óoNB&ÁxVüb|Ì<ÕLµf¶¬
Éù?äLR+Î4ÈÎ$?b-Ü;|&P GLBg1¡Oäéi :SH
+Yjy:3Õruf«å+0Ö15¤]hk;Sw&¯¥ïDàÂ@*ÍaèvhYÇn°H at RíScMè¦à©®oªMít½RSØg~äPrߧ>V{´ 9ÄÒSF#|`äÙ/»É$
+?A¼CÝØ7M¦¤T*1(%cØ]Ï¥/^ºm
6̼ýüW«þzêr+`º¦¤ÊRFÄùâdGhNÑx^¦µÈA+k4µB{÷htÙ <ãX
º ½3 at 5ô#Ä
+59èÊ ´ }S¡ùñm!êßéÈ"ÎT²H{©bj©!.¸éÂ"=²H´c©c®L½H!SähD¦
+àÍ
+»PªøتxÚúy«yæNÌð²<}ýüu<1
yÅ~wd¹OÖa`<uØwæ1myTûaíǵÀ¦ôï¶Ðoí -mT;°¦Q§æéf¥Új5ôh«Vô*E¹í½ê¬×мI±¡
Ohb?7²
+}ͪ
+t¼RnÁðîî,pÞ^E[:Û´
+ÏR=TSÓºªu]·k[Wõ¥\àbqUãªÊM·µ¦æÚCÅg@''j^W½®;*Oué}ñÿÏQÏÑÛ£cø¦ðNÃ)´~ÜKt×
+&8ÂìÐ WzÔG¢÷V
+*ëQhÆ]AVÎZ`ÎÀ<V såK´õ
+ì;Âs[<¿Á>46¤°±èúvظE¡
ÄôHdG}dÿlÙ/GãD÷qNEÈtçT¤L9bÁ~´GyFæàßtBOx£Ä·û>ÒOço²aÎàóqðÃQ=Hä¿,qòþ~?áªò·h
zîQÕ3¾Å¯Uq5=t(ῼ5|ï¡SõžÃ(«¯¸!ýjú\êÈ\7¿¹½Æ{+eÏq¯uôaþE}:¾>ýüùñéåùõKøÀ>ÿñò>úáðÝ?_¿>þ÷ë÷Tÿ«õûBÿHé #DzÓ&6Ç&>x (½9Ú&M¸Ml_k
+
+VÑÜD·~C ç :ÆMèMLhNÄç(æÿûÁ¼Ïez?÷ý-]kpÙj¶[Ë-eÇNR±ôÞq&6Þ.®l;v]áÄnвÿÃÔ` 04fÁl°}±ÂHצêàtÊÃäyËÀ¤÷f¿.ôþÂì×
Þ_ýºÐûSêÁÁºÅ9Wø8 'Õã ª³÷KþoÊ.Ðd/ü Í®09Cý!eñéÕåès1T1AÑTNÙZ&{9gæí¦Ë¦3ÏH SÊTf'Úe?<éir§cö¨:JødBìWgM¾Õf÷ºd|ì1¹ÙìhEöµö6YÜ>TJ]Ã5A×Ý£¿tùMtç.Ý°ò\ÐùË'ãäÞ|ðSkÑÌ$8ièeejvò`8·N]¹RÛª½ü-1=®®÷öGH3¦;ªo»éó¯ç¿ÿx~üö%¿Å:Ù¼ÝÊ +Y?}ä¬'m`§çm ®g®cW³2$³ô%à×Ø#8@ØcØ8 ØIÇöge~¬Ì-E¶,Ù¥â
+½ÅKL5üßFñ-Ä#±ï3læ6i+{¯b£4±ûÁ/¯ÎÛ´ºKa5þ=Ivï Íy FÿÂ_æs[]ò`$]?ã¯ñxðJ\ø
+¦Fû£?fý<È®/gËw²làò}"Ê9§ÛÞÅí· á·
+?uÃ-"û÷çç§Ç/~>¿>ChͱâÄAÔ¬mÈÂ5ãÛ1cüAí¶N¡uµcØú´eóÐÆDp´GvCÕcQ[Ú^lMFm4»Gm9jÛñçÀqA7²}\lìI¶(´u*Á²·
nK[ײ]]%Uª®L[ÚÓµéÞóqÈ"åD¶Ék[egÚ¤
mgÖz³èË*KÖÚ±ÖU&rãTæ¬W!F_ WÃ1sX%kÑæ#sCEB²R ïâchz!ðÐ0gæ¢M¥ß§ö-Ü®ÈMWÏn¡·¥ÎhùvúFùvË9Ojû5Ú9©]}VÃQíÍaíü¿eÒÇYO~Ø׳K¿®èÝbÀz¯0ø{tµ\Åq
!p0_2ø²Æ"
+ΡǪò(Üßqø=ß5n"<ÄðPN,+Ôá-Ý`[QØRÉEØS=[ìÝ ¹PÈJìH+h^.´Y¤Ï éTHkôÊY wH¼EFE*Ó£BÒiEÅ*gQC3M(ìw(´Ð+îP|&0h¦P~ÈRÏ#zgAfôÒÑ[z¬C¯ R+ZÏ¡-ZÑ %5ZS¡E{´ªÄqjEë:´°E7tµFw+tyn8è~X¨ÁôA#D2@,D#@#D´@L3D5A\#¨5 at mT'
+ !#Û5RR|Ð cÔì±g3ìq2j¸LK,2Á,EAjU]öé¨dÈ rè<*Ýk½#§¼|½½~¾?ËPÐ37z1W1äæGKìè ×#s· ¥¾/Ü~Щï²à;_abÕç½ µ3£6§Òîhuj¦ÔÞcoNí3ÒI£é²½>Ûë´ª×jú®çVî9sGúV÷-Ïø9²Á2fa±h±0;ùÔE;+S+³ÊÓÊñ^æÌÜ2Ì®
¬
bcÄÉèg>Cm¾Å1ÜhmfÖG3ëÆhf^ÄþÉW¬#CÐ1¶cÁFâÍÛÈhTÑõH¼- `V®ÌË#ÛÅ`-sörbêè?t`öì$ã¹
+m0·ùºDÿ;3gMtÈÞ+ßÌiöÙ ÛòÏã»:ÎÀ2ÓäIÈ°Â4Ë8,1Dª¦bi2ÙX¦#æ#Ç2 ËÄ$eNIge5-˼L³ÌLÉ¥<7Ëä,³3MÏ2?ËM34OÑ0G)÷Zê2»+MÓ4OËD-35MÕ2WWÊ£5
+×2^óåNH=`síu®xªu¨ómê²£¢Û,ÕeGE·YªËn³TÝf©.;*ºÍRmU¬u¨tªsTߤßfÒæí¨¾Ãtª>µH</DY95ÏÍÏ'ªp®
+Î+å§I9NYläâò
+Åâ'Ná
+Á¿Ý~¿¡71½»×7ìv'r«Ü-·ãþÄA8tÊð>|*Ø¿H<à!ºxèÌ ñÇtJáüÆp|Û¿wżboF]#Óþ¶ð=¬Âmº++^¾+ÊðÀ:ï |«ÖÑùõéøúôóçǧç×/áûüÇËkúèÃw¿>¾¼þçÏ¿¿§üËû$áÈycfÍDºÇ1³f"ÝãY3îq̬H÷8fÖL¤{3k&Ò
+ÚnB2àÞÕ}#,8Þ/èµêûÝk¡ý§ozó: i ñ:ÌÏMAåmwvës)í=×ÿ1_%;rÜHôâê"À¾4Èd24r5|aN>º!ÐôAÖæïçE¹3³¶Øõ.)Åâñ}ôj1rÐð²]´S'aPìüDü'ò
+ÊiA==´UCî
+8É8Ê«jiµ ¯¬Af¤fAn$çAv5H¯ùõ
+24 Ert IÏT5[°gÔ`SC Uzu YºA»-è·Gíkб-[гM{Ðu
+ÚnAß=ÊXçðº¿;ð¼ß×âoQÇ=
@8
`ÔµÜÃ\h°XÐx¸ðÊÓ¢{X
+E2i²(©ò¬ÒÕ¢ª{ø
+I36s:É«!}-*»ÑðWÚh¡Zé¡5A<[wã!ªâj!²N¯~áÚï¥`3©1+eÁ7
õÜX£GqMÎ;Õþ5êò.Éù;±fár~ë $â&ÐÝ_9R,®
+¸aÂòQb6çâo=¡Ä>éï4üÝ&{}&>¥Ò=RéO©ôDÏħTz¢gâS*=Ñ3ñIù%!CÅ<Öø´Å¨^+|#"ÈiÑÕzÔiÑÕzÔiÑÕzÔiÑÕzÔiÑÕºî´ÚÊð5¥¿êS®û£k@óÿ¨¯ ÙÅ´WÐ]Á¬h7r©+ØyÑø¯ì
+¶Ò%D|«jK0NkÜmø¼bûhç_xÖß ;®
+¸µ&$SÁÿ+©ÜHig³ûã£troû¼7}ÖkÈò öæþê{Esu½¢¹¿:Ã^ÑÜ_a¯hW¸jÇå(Á÷Åkã¦NÿOråe7¥ü¢.úbñG)ö>|º6¬þçv
+Ѿ³G
yçÂæòSÖ#ù<G£Â<µ2"Ä9#òù<G£d°Ù¸T9ÁaD6? £QaåU®F̧9Yê>T¿ÛOÝûëoß?¿~}{ÿÔo_¾¾~¹üôñíýÏÿ|þvùçÛëÏ´ø&²úÿ+qAKI¢eÍ
J;dN¡¾¹Â¥ÆcsJçZGµÊ=<|(úPöY\J?h
+[$4 ·Ihin ýÉÄ)±S]ìF^%>±rs)Âø
+o3Ø\%õå>*zÂ&6ݽ,#¼ã¾{Ûø'Ús at k÷¼{M«¡Ù¿3§ÃcÞ?Õä9Ê>ASÉ ©JÏdÐT¥Û2¨D/·IY¹¨R
+¾îäGÿNÂV¡°"á+æ-þ2Sf¾fãóóÎVØÏ2%b/B)ùwÙijáPf:þ&¿aq-·^¸9Ç ÝH1é@8CͬÛwYnkXrŬIÞ³f¦es¬.¶ShåýÈuc¥u{Ò(÷ «ó;È Ô"ÑÎ5¤ÃàR-äÄAX<D¦Ü´GC].ÜB£ÔÊKu *HJBK9äR.@-ßÉk¹ñ\îÚÅ[®å~;¹Y]dóò^ŧ!bAjE¸KÃô²-ÞXØZ%ÇÛã
+v${»ÌD(y§VÄÓú¸ãZD¶ÁíãÎyïa÷¹è3Näpr¦{ýþh»ôû¦Ûovº=èíµtSÒ5½ßcÉr¿tDa"Æ»NCÔó±$5TU¨¬6VW¬°XeÃ+G ö(`±(a.èÞt{
+gOèh<ön>´hýÐö¡åíc,F;4Ö¼=Àc"²gLm]Èã&DÎp¶®íÊÖkÛ®nc¶+Ü®q»Êí:ÇRôKMpèE·<
+&¥sÚz§5nuäT¡úâ 8ø3¦Öõs»¦T9GØ\gü¦<Z ãBïõ¡2#ªÛòçqt¦¼©²Ãì´ Ê*s<¬°Giã.*Èf«;fAC]Æ7êFÌVt4³Ô-}¨~·º÷×ß¾~ýúöþ#<¨ß¾|}ýrùéã··oæ¿ß¾¾¿¾}ÿÖxVÌøûBùÖ¡îéÖªR«n<ѵB;t× =*|±Ä&Ê1aÜojð~¸Ä
+,$Ç2,LÁwXhSÖj<Vï°ÝlK¾{l³ÅvklÛcûÇ`qÇ¢eîpT
+¬ÂÑ8ÂGs.,t³næk|ñ2³ÁtÈ«!ÃÎ-òäc±*ôb!=Û3öuJ"!ÏÑ¢´3΢ŹÑ-Ç4~ÆN°U5Ô O`æ«
+Aà.¥Ã(ð@ÒºK¹Iç;@ ë°+©°¢++°Â+Í°b
×a
+vRaG%vV`9öªBè°ÿ&«çsâǹIBp£VehyÃ-3vLì@Å^¢ÄLN&Ç e8*÷ó<Ç´L'N1ãnc¦=nZ³SCh£æ5qÔÄRO
+L5pÕÀVro`y|áä&"{ñ]ÛÀ}
+ÒA´+Â_ËäYF> !Ø9#&XÀÉ#+FìL+¤À|½Ï
+/Ô4Ãæä0D ¡Ô?ÿ·{p
+ú:ã6Û@bXî=|X<J>väÏ,BþJªÜ»E
+ÿ¸{+HÞò»`@GÙÐKÐúÁ
+;/élÀáÊ«JÕh
Vuªg1Ñ6h.æw`¯+]£
+ZäÐY4¢A8øUìéLcÌ.vñù¶Öø¹ÐBëÔr[hã`7D»îÜñGn(¡#psÄb¢`ax5#êj(#pRÔ Hvùq@¤òÖÈ"ô9 £nÇeL¯:¢á#ÊLl4²ÞDÃ|<x¤{
%Õ'Ð%Ðn°Pÿ¨¨ðK¼¹lù?&,ÔkÃ2¤úºÚ¶\øh*À(#Òebl&k3<fnqbð¢ÏÒé°×·Cbwgiy¦gêç¡åY¥¡EZ )ü¡gÌ8Ä_ êxÁ,7=¸û{D+¼ûLò%E>L6Eâºxðâºúeè©è§²êv¨ÌXCµõ4+¡$¦[nu{Öf0
ïfØW~ѤfçMjvѤfçMjö
ÎÄв×Ñ+ÁÛؼÇwMÕ(6F°uñPÐBz\ºFA4
ì9¡_R´(D%jÀüo
èÜÕaÛMa$1lÂV lÊ_Sú²×¼þÇ~µì¶dÑ/¸ÿ d#ÔEÙðdÝÈl²0H0L´Hgþî=·X$mYRZ
+¤ÒT"÷¼Rï¢T»´s¹oÙܵºÔ³"(¤~¥ÝJkU
+hK ô²QA-
+¨
:P
j¡äâ¾'0½Ã+0»
+l-;hä õ´ÐR(ª$FS¨rRü4PqU/qº6ÐÀºDáAlChL`²rYÙ\ÂwÑç<ÐßÈlÌÖ~«âÆlì&ð1òí_ôðøηíßø»*¤7þÆ-oßjËJU,OpjiËÊVðcë?jë«éÇBØ6æ_óY\raù»ômQlëÂ/Nôþ!âøtÇõV¦kþã£ßòßµ==4_ÂãpØ}þñ´{Ù~êvÿür}Ú|øz8<}ßï6ÏéoêG:zÃmÚ?¨d1'M`®ÇmæѼµµÙ°ÝPöu}-gi:³íÌÆ3YO2b©ügr ɦJ5ªÉ`EÙÔ&Cª¤®¤¾gÊÞ¤î$þ¤¥¥.¥>Õ£+}lV¿RÇRÏ×RßçjÑ!Ľؿà`êaâb9LL¼LÜý`ibjjkblTäQs(l. Hp»E;¼zõ
+Ò{R̵0A§í)ÀKXb
Ò¥¬9¶0È&É6IhrhvIÚE4Êi)Ô¸©
Q¤ÖIZ6±#nøMûØÔõ5*rªKðEBPÈ`F¨hhWH}æê8öG0Ä9ôSäâwß)~§øâwß)~§øâwß)þ{)n7íúFf£°o¶ÞWÿÍ_ýEǾjÿæ?ø;¿9ÎkÛ/áq8ì>ÿxÚ½ì?õ@»~9L>m>|=¾ïwçthcëtô¨\ΦÝÉ¥oY@
+Q«_Ñ©*5I½Ñ¨×
+õZêTgiÊÂD]UiÒ¤IT FYTTT AhÈêã³òÄ$:
+N©)Ì4IbT^ .*,%D
%6À$Uf¡¸¼Øà2åB;\l?i'`
+:øÈU]ePmu}(1¯ej<±ZÑ$CDCdCC¤CÄCä£L)Gs$ÑQ5BODQ,¥àÃÂ`9<ýB¬Àd¯wÃ$ãÔóxÉ5¼Èc(x<ePF×ð,óL·yËC/ÃB
+Uy-üîõÝkÅ@
+D
+9ÅÜaMV£MI';15Úe§ÕV»ìµ¯Ú-åz».¸¡ln¸«{ªåÒ»E5XöÜ÷[nê¸t¤â¢àj»ÍÝvn¶S«mj³ü@ÌÊí´Pú-Ï|¡ß'©!¨_Ô¥ÁõÕ´`¥×§]'Õþ¨TûEÛC¨»ÕyÐ%^᤼27ì¥')õÒ´RÕIZ·R\4Zä¡+y
+ÌUìUÖÃdÅfÅhÅj+Ø®X®nãëí ÕbàG,|ØÁ=zH#peñå®ÇÁGޢѳ6RspÁñ¥^LÉÏXñåNL³Ê#`muùJ}ÍpdJ½zW
+1ºuw[WTîw[Î Ïâ"±¾v¶\]{Éùµ×J8j(á#oD6öîØ÷@ÿ1ç éá1ã4ú_Ô½÷j/@óôê@}â)>ªP¾
+T'L¯ð,0U§@äÒôV
+ÄoðyT
+Ò WaömÁ9GÙ¤%(Þé¢s¸+êÒ»ºçÉ{¾sØÌ~Kà³^²ø\(=AdJL~ÅeÆ5zTD PãS_RÓ° F 7Æ^@ÉÊÛÐ_Ðâ{, Ϊ¶§®¤ÁûJòVÀ
+ðÙßô²GêÜj¬jzèIÒèhx@útøêñ¼XeM?²âö¬¼-EÍ^ñf*ér@ðkÊ"òRàð<¶3íÈÒóÄ´mC<@w°ä_.x°iF¶Ç®åñ«ùV|ÛÇÒó|ÚÆÔ#ÏkÏÛò×ÃÂCB2cÐàÁWxÔ¯Åóð[<µ'%ÏÇã<ßöºÂöØPM°m-ö)"÷$=Ix®GkÜ*D5h$ICk»"V@¸De¡zä¦IIR@$(d~zÄF#N
PS Èp|1£ZÝ#Ó·:áÿ¯>álc߸ÐòDJI5ìMRR«QR«¨%µ®·ó\j/\ÏÅÖlyd/¬E!F¬õµ®
+~ë+çs_¸ç6¡_.ù¿]±º3òô2>SÛÓCó%<ÝçO»ýá§h÷Ï/éЧͯÃÓ÷ýnómªtì ÛoÚ6ͽk#sä8,Ð;qþ| _ÇçXÀa'®P@³êG!î)f ®3D±Á¶pÃÍI³Òïþød»8Ñ-×?mÿF·_>j~ç§SÄ-ÏY\MÉ
:q«E¾.-Vñ ñÂXÅ{ç;¶4±Æ óÍòïU=-c]]íÔ²_áï6íþ»çÑÿ-çÒý±ã*ÆYÀ.àð+EiF¹@µ@\ Vèÿ±_m;rÜFôúúâFóN>Îôì>cè%#ÉQUAFà¿Ï©â¥Ù${v¥gOAÚ)N_ÅS§N)ÆeÆÏÆÈi5øXW56}kí5Æèªê#ÇÉ`o×ζÎnµMügôylíqíLô6amMu¦f:cÁ8=ÚÊ\g~`!çÝù¥ç©¥ºÑe:PÃÉäÉáÞز-Ópj)3Ëpd¹;°LçóJWÃ
+ÔÊuP»ávi!Çy'(]<ÔxØFGÂMüD¸1
+qtÖsGbé@vÚµ· ÿm»
+í$ûA5ä̳¼ -ÓIÎsufþ,w©ùY»L' á!åzr4cX±éçøìé6çÙ¢*]ïÜmÅ®Å.ÅB1OåÙ\1[Ì$ÓÅT±ý#1M<§îe¼k³[±ØµØ¥X(æÉ&þãÙb¦.¦íí¦Èþ«hW·b[²k±}Øg4ÐXâÙb¦.¦Éb¢ø_ !¿iPÎEä÷ÉéLÿ|¯üÎôÏ÷ÊéLÿ|¯üHÿ°
+¹%ý!XyhVõÆ
[ç-ªnbiØ2æ¢ÙàqoÓ4z 3Ôç¨jØêâQ-EÃÌ¿òoÒì÷]ïvÖàGotØ4Õ[Ï.¨ßÅð¾L|룸s)(æ8¶f·þ-£åßþõñëû?a |ûî¦Ë§Ê<`[p$æÂbÖ±Õ,ZKÕ§WV¤GmqäG/ìþ
+°Ì#
+E(@_(Êó"
+(V¢5(^
"
+_Ø
+Ê°
+ bäÔ²b. ʱ
+ ¢"îÔ´¢. *ðq nyÜÚ®ÜÂ<w*Ã=zÐÊæÆ-åÂÃqÐÜ Àü3ý9ýÂÜí¢5S±`Ú]K9&Ä·pìÖ©ÆUÛìwÁv~å·ÿiÐWñô?@üïøy`~ØOA
üøßÏ?}ùøùëÇÏ¿üðC
íúéÇ_éùéíׯï¿|è/_Þ¿_ÿö^¾ÎB,«S²ú{øb$¢ü#iWo~g÷Ïøúo,þoÖó_æ¿ÿ¼Îÿäõ7¯©§4O}âµfñÕq1¾.Þ]ÜoÿÌýëò+¿ù¯Ü5Tî ?èeþÎñ×ú@ô0æ~u_üP²c\¤¦È8FOÚrx2Ä[mXPÃ~ÐeMºJÔª³´5RÍr7ºÖV×$_mÈ®ó"ú&ùoqk Ç®Á9zõÚÎÖC@èYÒÕÌÖ.Á#ø-F¦ôu˪¼¥kPü}zlÙMòßá%\êÊ2éu¼¶ø¢º'·8»âôcïÉþ»ÇR®I±ÂGmïû!ßÚÞ±ÑÈ9'ĨUïKÒ¬Ëk«sÞÉ·µt6ìC
+¦×ðùa
+jÑÌù|á«
+1ÖÃðÓ[¸wåp§dJY5e7*Í®|ûòR
+gX tW´Qh«Ô%§¶²§¸×òHo¤¨ý}ïkٻĽs~¢îs~
+¢öPjqïx<$%²{°VÊFN³rËÜ
+±ÊÒã
Ô¥*ÜýÔ`7jGæÀø¨3.¦¡¶ývÔÓf-m>à±)x%
+ÓÍí¹lû9Îñô±ª¾Nº¶SXÃr-öÆ\Ä£¤¾Íf<Ú`öùµ¥ð|;çg`³±UdK?-=õçr8¸æPç^%ØçÖ¥"µ!=U[/a·Ûº³õ6}c8IK4÷È(VKh¸#_E.Tj:¯QwAõ¯ðLç£tBÏÒÞ!è;-UJBP
+'Ìk\R¾"úê¢.4=UK%9J²Ñ»öå5O°OlçI[ô÷Þ#í|ÒRÊShRCj³y\ÈþVÞTs
-<¯åÄz[|üçtÐÃÒå°WÈu?;äkËåW'¨Ö,_cõ*è@W
þì|pHÚ½tûmóÑäìGYå$AYÉ;ö+
6)UÁSStvMß°¡OÔóc~Fz)
+Y5¡\©â'vüöpº$5Û9îµ ¶óíÉ{ó{*«ªlòRSYmå
+«Ûâ5ÕeÃ&$×èãHó-ÞÅktÞ&ß
QAÈYÕFª)×ÖÒF¾¥hÙEì]\rIeÐ×xä+~¾Ü`¦ÇÄ[d¼ÅEïúû=ÍBÖQg5I°/¶´9*<6@¢©ç!-h¼;
+Þýªj¡ºã.bm:æYÞ«=á2 ÎIai&®lm¥m'}GòxPbMvE&lâ-!)Á>Km21èHV-µÀmÁÝP ÷U¦(¥#E=¥öPæÄY(ôP}zý¢IRHk´]Ì
SµzØ7Rç5'
+ÛÃ7eëä¬2*æ$<2(d#q\me( i#6Ä
+Ê×QA·ß꾨ʱ֢JìÇ¥¬×c zíÍÁ×ê¯l°MÀ$Õ<$ztDùÈL¢ðyÉ<_©TTY¨`M]CÁÖÌmJ^*©tÕÁ5 ¼`Ca·Dtó;Yê¦7êAoÔUo| ªJ&ªCIµõ6*I®pɵ¾PùB(/ñ¾Pû:ê8k)¿qÉZ´¯Ù¤ Èç±3ñ´©4fæi¾'¨ÂÓ쫨É7©weÅÅkY>¥[ÛоQMeþÅíÊms]cÂK;gcõ\ï¬
+hÔauTr
+E6:"ÙÔ^´[%2·¼Ó"f{Ïh©fõ£+%n$õn=©ª>ZzSP±&M°ÏI©&¦§Jóýñ*Iv\aWÉ RdMë¿Ëý·
+ȤI½M¿"Û±9 8ã¶yÜF§£'CXqêñKJÙ1Ðq³£bGécÜD:eä×;FT¤U&j uT~eHÅ£bpH´¥Óa(¸TZ*. >@g@éàÖãCKs
+vAÄw*àrx^Ëw1ù(2å~3ÜEîwT
+T°§ðÌüúÿòúÁ=j«Næ¾6Í!¾KX¥òÞD2c¢Jý>c"åq¬]°Mrì÷,|IgâýÌ8lðð¹iïq¯]ÏQv@~¨É¿ØüMäû®k=Ã°c}-²mm-)|ÿÇ>0¯Ú
+y&ìÈÔÛ(i(²·X
+²;Í7ÞÛê¨\Ì^VG¥?÷qØ8\¥(=2ÿ¶23ú×¹*Ìù¶jæ:2ëÊcNK®ÔëLI+ÀmÃíqX¨
+åMw%üß$¾Äß²X|`åèV¨®Õ,~ø½ÁwÍ¡D3mÔ&+/óé«Èà½Q=|æ)gÿ_jÝ
þ²ôöKZýjEz#Ãæÿ!Å
+endstream
+endobj
+76 0 obj 17873
+endobj
+77 0 obj<</Length 76 0 R/Filter[/FlateDecode]>>stream
+HW9²%¹
+<îPÜ
+n A»Ý9<ÑÎÄ;n¯¸/ïkÝý_$HæÇû,Ù'ø7_ÿø翽{M¶,6ÇÉ>Þ¼ÑàwXÜã2þ÷®¯eO·Ù<ÛÇñËÑ`y
+QuÈüx~£ÇѲå7þâcÞðùG>~þ6·>Åæü¨ìíë£Å:½´8U×Sp"Åñ .g&]Û\±DѼ@Àñ84¼ÑÂ~|Gç@ï°î@áÅf¢(?XR½Î%KóÚô
+(rDT±^Ëo¶WÜÔì©»¥ ùdG
+©¹3å7#«>á I¶Þkìûû?U]ËÏ¿KãRÒ"pcÎÎJ]ÅóxÿÙk®Dbóû'ú×;x"ØôÚøGûøØÂuAÖê¹µÅë¶4ß´3Lq³ÝCÐQ¶*eÔ³©çb~1ÖÓ= a·3¢Cåùg§Eoeîò{` aÊå4¯#}YÃlkuyýÙ&ø çd(pzö»GFÔÓSJn¾îgw.~ýú)%-¬,º.úüDT˹ò¿!öÀ?Är¯®ÍÏd#·@¨Ð7[K
+Öv»k³m©PH(¼ÌH%]ù;¨·+ÔÕ=y¸!UtHzî5½×ýÿ蹨çk`àK$N)ÞÌ|ÔH²ï
+OB£±·¥ø K['l1rµµßQ(ùäÇz¹Ùð`
Jë.¨×J%7OBrϪ§½R·jþ³Wã%¹T?ÊÉî¤nÊu`î9_ÆL·9¬P=kµ¥ZlD¨Ó7è#YéÊ{©%¬C
+öÉ Ö¬1üE8\ëk¯Á³F:Þkýè
ú¥÷ÔÖs·¾¼ôîÚÛ_Ú!SÄ'-
+\k²á2gé{
+ÙèRd¼Üwmp-N}¦à»ã{`?ßÚ¼³ÄÎ$;Ó|g£ÁX;£ ÿ([«Ôa.´ÖWÁÍ@:S,%Êx³õÃòZùÅ(°QéA,)½ÁyíhWÁSø\¶¶UÄFáÞRjT·ÙõÒR*^ÖÁÖHÉx£wM° £Ê1£¡ÓdX"«Fvev[Ê`fjïúhòÀ¨Æ¦7f1W&s<x~öÞâY=þÌF6:?¬)CÝøÛ(þî¡`üÙìýXD~d¢¼
+u[ùbÌ ìÃs4±ÌÎ$ä'à_nFuCñ@ùrËÝÝÛKL¹v¶Åt|=×]l_7¿ÿh>åÏ_ú³«ýg¢öÚùL¯ÐùA´<.*B?ð¬k9THfY¢ö-Ìa¾S¸>Â~϶ÑÁ§³ÈN'ÜÈGhT·¥:仡ï;ªip+g ÛC*·oïõb+9q-'Rßå9W«?
+ f3bÐprÏĨ s©äç¾¢O6£ô# Чó
+ØAw=XøÊÕ¡Tº<TMfmkU^I¦%NZÂýY}cÃ̵ãèYêâqbÿûÞ9é>^6wwÇ·8wur8×È}arb-<ás°ÊÁ;7|Ë$Eìe %H®)¥Õ?ÕW68Èbãýq²=^®2ZʱhíøµÈ>½$À÷B»ãQ°×²¾5ýA'yØ×ft/j <îPc9x ?ËáÆ?I¸>kÃÜ
+1ØÇ
+ÒÒ1/ýäåòèï ¯¬H )sÀRlxðwj¨ EÔ@¶ïQm³iHÊ ¹Ù§Æô&U=bRoCÃ14ÂrØc}ºs»zs7õæõVÕP3v=ê)I
+Ínÿ-ý¶fom¤¡°v4É r¿ÖH'àK¯tÒÒ§o)¿ÔÅQ9GHÀwhv
+R¿¥wNУTÔ©'±x+ÊDùìa£>VÞ,·Goõ'¤ÿ«À¬rPvÚSÁzÙ¡5d2ÎÊÿ-vyP|úâÓl
+?¬qEîçPnkÄAvîiy¢åËïðà){J¶Å_VX/ÓÖZ0"hØ®p0uÌö×éù5+ Åä=Å^OUµÞñØ0k+®è¶YÜÉÊ8»þ±.çî.8És«úÛ%Éìq´Zë/VÃ0F7¢R=[ßß#è¦)~릵ãö¼u-½(µ9y2¦N>¢vàFÑf*J?¶JȽ>+ôjÛ«ñV±EH©)
.¤tÍáú
º
ÁÆ%Ëo¨¤¤¶äÆÇMd18û¬¿¥tKü^·â¯Äß6°3Tý½ ÎIp&åz+6W·x>¥B PnÀÕq[þ/åÕ$Y¯'Hþ°îm ÷½lÌíÛ$"«ÆÆzª¤zú¸\Nê%uWHÁÝ+'¼E
ø=HQceïOíaw˹̲;ìƦ'áZ>¶Ôȶ¬~9e8=à]£§N¢[ð(pcª<~üUýx¹Ý¦L$«Ttc¯aÉÂ^¹ÓRë~O6~#ù8®J-ϱoáLÞÈðRcåße"~w¾5dl»{Pa®¹±;3dÅpìÌÕi#£s¸¥»Mõz_åCÝ·ÚÀÜÒÛº³½b,}Jä.,5PÀÞ˪O0Ò?DRZëFÖ¥9¥}tUdF¨Ê*øNê³/B!rP¡éN£ó"ð"õ&Iõ_¤~¢nxìC#êKhqÕ!ìÚBí=6¿=®ÇB<õXH»Ì²æÙË Xô]«ÓºÛÞü©´e饩>¹æ"øi²«à²þ4±ôÚò§àoü|Þ¬_mALyêS)R½¶ß"Ä"è²Aº8¦frîRfVZ*ViyÆT©*+®¶(°(¹!I4a`ABxdMÇóÕÙaJT©zÖNÕ£5UÕ£5U>Yk:H^F{©T|[¹µ¥huzÂ0jÝ$úøÛ1j1|ùiU"ô·vOÜç¨ÞK&-z´ÛúÄ £Ã¹¢wuÙ)÷r²/ÒÙ§¥ûcm©¼»Sta¤`Ä*ýcÚ[HL¤×t~ÒvnE,b÷Ëç${Êî±^8×Pòµû¯]`E·,
+mXêSÅtjqWæúu¹VÌyÜyK}qW½1ïªw»Bì9Õ®áäOÉÛâ¿r®¥äùÜjc¯cÊEÊÍBû£Bº]Ê- 9ôsë¯%(K`÷^Ù~Ú~©Øtm9.%©rN=©0;ðìUú8Á
+cN«r ¡;iHÈÚ'/L¿[¬ãgÌÔ
+ç¯îd¯:ÝÀúÏ
+3ñV
+>õ»ÿµå?£±ñ^³zÒ<Ó
+,ã« Àë¦xïÓàk¨2ss8Ig¸å¶¤Ôñש¿Vgb]ÒhBáÒËü¾·c{omøû9?×)ª'¶gk[ýsòä°ÆTnyH"æDúöÃôU@D®úòù@S½ç3$V
+Ñ;¡i7ñKÁ<Ú!ßÄýµ·"Ç F¥
+aH»¶ºG£êK$~NC¶xÊÖaõ
+Y`öú
+æÅWïÅq$?'ï?°!Á|ðúfLh$¯j¯ÒßÆ
+IwÍg%cÓz+©¬ÄsÓ9`ÐWpt$~ßä9.½Ó^I¥]Ûqð¥?è{ã{õiT6ê;uXz±ôsfÏÌF¨È\ ¥/Ñ:¦Ë}Ô B²?¦ ¯:iQOÄzU¬ªµª÷¦/£eGïO÷íX7) &P-b®%ï>³ÐNTª3¸6°¿ÆOªÖXä
+,µä¦æ¨8«´65IQ8.º¥PÆø|S°ÆðêRíSx¾våó ù"T¨<ßí¶ì_3¯6 ©ðµNSB*üô¶Cu®r
+Û¯!©h4U<ýpßEöE¤ ,<æíZ¾´|zã\îÉZuãY£ºqlz?K+ÀòLÌZJ¢äÃdY&±Lsd«©æEÄü lHoÙW[Ø6´ðkõ)IX¹ã'me§`Û>(vì¬å UR dB²ª±LåFÊÅ«L(º,ä,"o ½á¤¶¨Û¼zðOêFÑs7æ5~Pcê+$ÓõúzÁÚuõ÷øÜøIE¿ô
+ȯ<¾À7G`V¦è¿QcêqSmxêETÕFË>àÌO .@ý{hÇ6 O×+GºrŨý2ÛG.xv2Fm§:4÷ÑÉéGÒ|î£å@³KHê½u$ÎdÕ_F
+Âç3ÓâPÜS^ií¦½ä¡>Ô
+¬ò9_ADýÞïø°ø¹a,aSµîóKZ ;d̼Öx¾å¡ð¾5õ)õñ 1¯ÂDcöÿæýÓúr5Ï}$:ª¾Z99t!¦/,ØÛð©Ýê1=>
+Hïmòµº+ø,>-~¯wɵùâ©%ç¥ ¦h`[×zAû6}«¯åÿ(¯Ir\y<AÂåú¯kè}µiÄæöm&õ¡Q<ÌË+\"¤Ñ8ÎvÂ1«OU¨®`«ÈAÈ14ùÙgñe%z¥ú7IÑÓµÛ"JqCòì®ÝáZûëÎûjn³kÔ&»gBÅ;®ÏÕo´:F1ÔàÇîÛU"Ø'õöãðÓ¥sHäÿkv¥{õ5ë~N=OΣæ[$«9XwJ Ã2v|ðO·S¨É£!ëìÃ[T§»&ÆÇ_ØÖ»\ÕQÊsJOn_ªX¨}çrEô:òû47Züyúã:c'qáÞÔcE
+üÎüÓ§á|×!i3©ð¤KŦᶠñÌ!·ÆµpÔg©@QG=¿Uyàîmz5jÕU·8®;×ä§ÉÑÎÖ;9)+´$C)lÇø½Må¼ë°=õÌã,vO%î´_Ò>J9Glp)e.ã¼úÕm"È..Gü
+ ¾Ü
Qæ_.waû}"sOâ»LnÙÖÕ`<ÇÁì]ÌnôÞ')©#i ëh5bLDo7ä¨
Ø')©jëÕMû´P£äÝ´IM,<5¿ìkPNI¨[ÑRãÒ®¥FÅ/½\ûÔ/÷®
+Æú$#W¯';Wj.ýÀ·5c¤vyó.¬Ø|4~'ÄfÒ ¯e2.캯A5º2MçFåîS¢Ø$FQlF[vèû
úAË)<shïÜ¢¹ç]4S}aÈîð¥lÚBÅc,el«åþJ®.0á2ÎnÖ©ñR1ÂÆu7j\Þ¡[ cîÂÀpùM¼²æ½r§wß*·Å
+ðuÜ¡ãðã"~øGÀæ8f]÷g«Ïv Ó±ÿðÝ D$¶¾k(Ï=Ì~{¡ÖÝê+-9±|Õwª7µ_¿¬¨¼ZXEî(¼û ¯è;F¨²;ÞÇbvëÕg¿p±5èÓIW{j¨÷rñÛ³©!$y|]¿ÑZ¡t?zøùFÇ,k]úiöö]ÇfÄß'59©òÂq
+bXWê϶꼢ï|»,*FÐÔÞPiÎ=6°TËRnçGp0®X¬¦v%FÖ¨_Q8¼^-|87õÕ³xáUÓÀ<·k¡U(o9Oè¶0ey_ðnÉ{æåüûiÒÁbC¡owÈy}g±5_pvW ÃWSÜÂüo?"Fû\dcAD(e¦Òi ¶ ÞÎnÏ
+lwªq$-YA×å<#é6l9áÞPáêÛCļm_ÂÔÁ¡<Z%_¿-88M%º¢,çì¹Óu[nòPnµ½¾"x"U*êJËI`ÏáÜ5*jaËãkµAÑ;JL
QÕ ©Ë Á`Áo \¹]1Î+ÈÓƲàâ Ç©ÃÑ]OZ¼ïbEyÕ«ý$²lbúvÔ_À²]`g
+ê}[Ç£ÖU/Xýrôî¹}¹öîÖÛVÿCñ@þS|Ô@ÂÜ
'ÿ6Ú Ù%åDKWÀ¬ädÛJ˶¥³ÿz¤É^!º77G¾ó)¾È%³.Û'·ÏÖW¸aäÙݨÓ>úf¨ëôm)K¹ïÝ`5LXoå4¡1&/ÊL«×*ÿ.ê0¤®ÿhØ'¸V8CÊ=C×Èk½ÕîWüÚ+"å2"«´¾d5y+n73^Bw=¨·Zlu¯ïøIjB¿_`6ªjèZs±×*¬(ÍÅ©.Cþï.ê(^O½lj ¨4Õi*´ëøö¹e d¨6fþ·xeÇ7-ø¢Êôø
+¦$aÜaö¥æ ÍQ6SY5¿
+MåÛëW}Þ·{ÙNÎÉgw¶úöZía9(Ó3³ÿ<ÓPÕð¼Vã
+gÆob}l±_Ûùæ6öçá^Â!;eb2Oÿ
+?n9_ÁuþºbIòQ£ùçW>ªÏJ1ùê^{òq/ùðXÒZ=;ÞÇÅõCGXêá®i5¬õPzÆVpc4µFLÛÙ¿*¶h"¨1 <Ô§ ØÏ7Eîíg9tÔ²¬(ÓìÖö$.Ô[| ¹¼m¼p%Yèhµß*L-Jß^OTG_ëØà1øä`ÇåÈöE¹¢ÇgÝäHh¢Ð\¢w½KHÖs-I_ÑKÃð_¢]gG5õjµÙðNâÀ¯å¾]%áñ/7þCô&I~nyY½!'î§_¯4çnæJsÅ~sF 4»¿Ý*;ÆfÌbDnh
+ð¦8:ú
+h8öü¤ä:líxuý,íÎÐ@¾éÀsíäÑD8¦PCsË£±gD`¥/Ïy@(JXøp ï¿ÂÅ/òh=w#Ü[Ñ¡n=OǺdÐ&¸çßû^5
+íÃ2î¨ÛÂ
giXr.¦kÍÙPpsA.ÖV^AÃ9®_·Ðg_â7¡MjÝ¢cf{âݧÙMÄݽq
+ålnftÊû\«â¡mycÙîòôõ¼b,eÙ5ÎâxàzÔÝzrçZã?ú<Åd·@»òѧ¯wÇÒ[®.B)þÇF6H6ÙµÑÆ2oÛ[¨mªy&êbêNCy5·-ͬB£b&o°[ë¬ß{ÓøýFÕhîRIè«Fk@âÅdqv]kÇ:ÏØ{s¸Õà ?MúHx8«áTÚ{ñc+çÏx
+òÛÎIéë±4¡;äÓìçÓ<¿V¡ÓsJß=/S{ºzI³yÙã-ÅE ;/u3dxr~9«<5'hNàz£fE7]YÃL §¡ò®=5kFy»·FE߬ô6I2sÐfÅÙ<½x4ÌçvaVÌ@@;·ÇÄc§á½D/#dFð ZÖaFÜ·¦$¥Á3îsß{ÁÎ8Ëù¼çrw!á~WRTçlM{ºK7üÇPfòçTv4ü0ºéèjÅ©MôÚ¥7¬ØÌDø±5ºÇMþéÓ£ÿî¬MÐ=²oe¨¹Ek+ÉàÕx´Á;ÇLb,
¤íZ+«MR
+ÅêbÙ
+1ÄnÍî¾e¥Ú0mÝ%sR¬ëg)ÔE걶³tY~sÎ%¼.óBt
\ʪACwer5å¢(æ*´X!gò¹OE:ñªÐý%}2J<RÐQºN˹Sj
+ B*bjA®´,-]¹sdN{í [ Ã~Y¬ yMÖØb®fî0O-cÇ÷qkkv{^i
+d/Ô²sëÀk¹Íùi®ÏcÿäúiΣr¹²GÃgÇVΧAÍßVù¶ef~~fÚ4óVsq§ÁºèñêdCr*´!¹sªdQIw
+dZþR< me
+å>l>¤f§p}ðSZM.û4»pvr{²]K®¦õ6¤à tÖL¦ìE¼+õ]ÔVhoòÉÇÒ°¶ù$ö¤xÑEا¦[pDûg-9Y"Và¦Oßà_Ù>ÿb{ý7üõþíÅv[f»ç¾¤ÿ^ÿ!Ï9p±ÍuìÝbëYô?j>Ì ¬Bq¯Á½TñûúÖ%x!@·k at s'#Fz¿kÔÚðB5Õ³NxdÝëU%+²R²{Vb]8K<þâ2ã®ÇU,MuBxĺ{É55|Ù5Ð]KnXbÊ\LÜd¤¤Úv¥r`5UѤ ¢1S;À$®ÁÞ"®Ãp¸ï×
+Kë)ßÇ`çÝjPüÎùN¯¥-Yîë=wÆ[Ê:Å¡#ZéKCðÛZ;â
+qÝ/§vPt}1fXõÂsZa·´h¡IÐ7¥®
+V]ðÌ&X¦ÕÙµ
+§ù/
O_¬Å£òW
ÿ+×ý±
+ä~}=À$ÂdjÜüÿ7ÁzÃL¨¼|8ÅÎ »¸ÏÛë
°Ü´ ¢íWÿ4Úfã/Ý
+ëµ0YÝY×-ýÇfh«/Þ
+,´¸ÞÁ¦ü¾·,×ý0A]¼ä»UúPíú}ÝÏ_]§È2@£È~8:å¹² ³vvI[],{äY-²J`ZHT¢ö¬£=ÝñÜæX80ïéYGcÈÆèûBVÆÑmg]±l=±2X÷Fß²8¤!dqhG,âWî<J*íÙÌÍ°Ì`òùPO)B^6Ùî}'¨A¤È.fE;Q"Yj¡+Â"ÒEkï´
kî¯ð¥B½9OjÖä/UvøQhÁ]¢Eñ¼nó t}J&=;ÄkÒAão'C΢î(åçMd°þNéØ"4µ¿ÉýùîÔÆÑF4¡ÂÜ&ThóHl3Ç¢ñ
+-ØQ{&òoÚG=ræX4^¡©ý=}'
+¢1nÍ+³/0Tä!vgð& .¹ó²¦Ùßx³ÝäL²
+ÆÜa}©BTtÆ^½zn¶õwø7ãU®EïìtövÁxGÇÁcØ/iüuðÁ× +¼Zö³ñÄTǪÈHîâ=ZP»Û"Ð&ñæ
+Ny·É Þ²îõØ"2ÄÖÙñsß|öåg¿yñ÷Ï/ßÿoüñÍÇ÷õü»7ÿz÷¾Q~»}þòÛßm¯~üøîÃO_|6¹ZhNFÁÛÚYVJißþ?ÿâÏßþ´ýýûö=Ó_ÿµÖGEÑxgò×Îìíûÿ¦[Ðp lÀW5·+5W¼é¯ð׫º(¤Ô¿â¨4Þ¨¼Qy¨¿{ÿæÓíëw?Ô@
+ç
+(Ì9'Lþ½$ß¼Î~<¹Qêõ º©ze±?d±þs
+
+ÍEKÅóÈd\o¨ZXtVµ°çfãßé3fÊ>åÍ[Ô¹Ë|5
+X°ÐÏ iºe%/ë0ZV°Ùl¸D¿G>ÓÈ
ýF*dg*n|U1A7¹ú
+ZòÉè]Gãëe'à9Ø#²«²@³Ð,lDHÅZÃ.<[ "cý1þ&|+ê:ns .±×©Ç\,R©´=L ´À¡]à àaql:´î±$×J㻼õC¦¡éÏpkã `xiÈKá*QÐàãÈ>ì]·×¾¤;®É(
õðoÐQv
+TNxZ¨är´ ¡=»2ú+ÕQ'V·S¦2FijaPõ©>!$íÉW)ü\hzJX}4UXÂ&aÅ´(úâälQÐèÃkt7Q[$ó¡_[§Ä«c
+²ßtÄ/;ºsX~»*³.pFÌÞÀ UYÚkJÈÿÑ^.;ÝD~¼Ã Á¤åk¹ÌZ5Á$B¨Õ 4ô $B¼=kU½}öé£óÛÿö¥>×eÕ>4¾]óç·kýáÅåñÝf<tAÎ{[Tf<Uh«Þ·XÝEÚÖºkWûÕñ´ý±±¶¥>h}<íKµÂÌò|@l\!u?¥Íßw±ãOÍßwÙïT0ú¼ä(WK¢HüÄT,|÷º×ío¬c·ø96ûÌ̵ê_ßN;¶ßS×ÚuóÏM]ûÝöºqBZ«Oc÷Üi¯ýÜÜ
+Ôsú?ÞpÅÇúUfö;)þK!Tß*D|t/Fl,Þ¹^kkµãfkVmTÚuÌ[OÛR)ÛúÓ*K+übðÚßèH;«Ûÿ.éÖk=*²ºÀ0i~¸R@£=Ö5±S©ãÒìçâ×ZÖîoÆÞ#ç,!D
+×h9çÖÍ|dï!rMjççÚ4Ðú C¢§¾éÁ𤦳h¬qzH¤£îøÄΪÕ_)|÷àüÖ'Áoí°ì:1Û«ì,6ë¢ßeÊþ"l];8}F°:ú4UȵF @)ë=©+ðdøÓ¦»r®Ã»IÅ¿¾íaa6ñS ;$ë[?Y(©%ø(Ôù;Pº÷VôkqñMÖ3ßÀe)Y×|®%}Ã'¥ô\wáCïî»Ò'2UøaÎþ&LÞ{}NPÛÚtGm/iN\ôÏKu¦æ^¹é[/üp}!×zqE½%Íö.ÒË`(<±wÃ<ÚÎøfõÎuÆ2óçp»ÇB·\¤¶Ü Í×rS×'bo¬ÎCþh¹ôË/~ö«ßÔ¿|ùéß¿ÿáo¿ÿäã_ûÝß>ÅÌ/?ÿêýw?¾ÿþ_¬?h[Ðà§@eØæ¡Ù"ÿhå:?¬d?¾þ
+¿ÂÇä¿íñÛÇþßØü× {ÛÓ
+àyÈ»cÂñ©Ûٷɽôô;« úèÁÁE/ÿÿwøët9l)'¶ÊQ¦úÊD+·Ë»,×ÂiªÍ%÷iä"£µb&ûðú0Îo x¾ièØ|¬vÂæväVxLfeÔ`ÌF S^.WÂÿfa[·&ßy. at NÆNl³õÅZMÛ)¹È:ÍüõkµZø@Z' \)ÃoØF×SÃ#ÉÝl¶Îiyµòk|pÙ¹çÀ'±ýÜãfª(²"kÙ¤©vPèãM®Ëë°Oë¼ÕÌ7@Õ«ë3 dÌ^¶°N£ð1%ôÚ}+²1õ@ä>ÜX¼¡`]çî¬ïªaNFV6×ûQâ[þÀ79dra¿»ÇÍ3ºùKÃf©ÔâÎ:¤x3ÇüÏuÄ ÊR7{¢Ô3):Mdù«a¯\éGwcJ¹Oóp[pÏEiVuÞÚV¯:ùAê¼) Á÷ú?KEÞ#³Fβ§XEä×7Ë`Ô4ÂðöÒ²S:ZÄ6
+ìqð( Jdy¾§h{dݵTUõÔ;Ág;@¤ã®¤G Cúè§yP#Õôͪ£G
+)*ïOkÕó?lP£è]s-úº=S4ê%RÁâ <Ñ !R´æ×@FbÅ´á
+&Â"þTÕëTa at z/ÃöBvAi¾ÛzB95HɺuJØoA2aÃ
ö É!¤ÞdÎ÷ìÔ<%/">HYjÞsLN½cì%Ù³ñ½m|«O>PDusÐkj¢©öÞodyä i·
+XÚàÊSFxPÊa|±¤%FÜG'Ï»¼Ñ @³¶HÌk\JÆYuõ?xCuÍN׸DöÆØtÖïܦy2jmíò&Éx × ÁË¥ýªÁz/gcxchsË:_èÅÔPz²½Ù.X×Û®k<YCPz.¢NÙD¹çñ D¤è¢^[Ùsð)<\cä´Y¼ôu!ª3ùcd.sÓ¶¼LÜШ¾@²VìT,{
+$oÐöLÍO\U46B0ø£;Lµ
I¹Êp§L at E§¦J V×0øX³æIvYì,|*ÕØ®ÊFÒW3w[Ël
+C`ãíÆG½|æöÀê TCH9YT^,=!3QÁÇiÙ@¤y@ztMÝÐJ
++b¾ÖЫÅÁr½½ÂA%£(#3áý³]jÔ" Ij¾;ÎÓ4
+Äù4&Z¸ðY^l= ¥ÎH+&¬$KFTø#¨ÊôK$y1²kN:гUÆsõb Å)Ò¹QI¯o¦«ã5f6gk<ªì:( bÀs²FK%úaRAÇ|fTwa8±Ä¸ÊÄå&ÌcJm3Òu¤Ï¶^ëêB\µY'9$ÍÃ9·º
+5Hdoo6s¤!°Ç©i×7§¨céµ:õ$·TqÅÒ|Ý,SµDßuê%ÌݤLAÀV3»JÏÝã¯æiÏÆ@ÛI
+&©Ñ>:ó<{R"iSVwÔÙÅ 4çn ªVÝc£D*y^ß ®äR¯1º õRûÜÌÅAwj&Éí¨@Lõ¢·ÄÙª¼@RÉi2Í3ihwÓDw[HÌYìFL;OM$d¹ðI6RÿtkQû£Ð;qTU ÌGFs6¼k!¥@ö±5!Hå¦ëj\O[K`¾OY*ñÊá5$¹È«öä¡f1GU<ĵ·=Y28â(óÂD¬Bh¡â
+&®á/ d>zu-ÖÖ>é8K&L
+mÝñ!?Õ¾â+´&!bHË^0JL%C§!Øú!ÔúÐy-hÑÌ¥ìG
+ÕgØj $0Ô\¤ÔY(%êÆ
+¸çûµ>¶-ÁkPc<j¥_CE{1è
+
+TóÐX(XEáËÑÿi}¨ù?1µa5HÌÖª¡´DÑ(,»É;D]FVfzEu¡ RQfed¼ãcàü@XåVªî`ê,E ÑÙ!E2)³÷wÛ¡>ý#0У¸j¯.½2Q&$Æï;
«i¢(ÁèDF@êLùÃ@hÔ?Ü×900õdpÚ ,`Q¼y
+cX@,&)Ör]<m¶Gr,´bÔl?ÁôïI;
+ß pL??2
+aáÉÂï
°h £Ë:£°hQX|ôÂ
+F,2¨G°$ØY
+´¯©¹],1FCVÙôÓÒ7Q7X>zêh¦±I%U÷UjÀMv\(dì~wÇ¢ý½_X(¢*ÕøB.»Øè¿Jza1¶&$æÉyiÑÂBç5§"§(Í>fé¥[`,´ªÀ2 ±ØE±3[
+(
+gG`Ä>ÁðSKÛ=\(é9ð'8
+h*¡<R
+
+ú¥bºf¢åßoô{,ÃÏÅâ¬Ä"°XÌãÎèÃõÁÌ`ë±oÊt)jphTu$"íi¦Q±¥S Ê<=ï¯þu©ÅÅʶöCY²7ä!ªBfôêÆ&$(¢B ~Á
+Ô!0£ÄâØiç³NPc"±½&ä(kR8x²ãÄ#.plÁ£¥]390àü`J
+,
+Ph`h¹Æ
ÎpZP ;5!ºÓÓYÙÊ´hÐuÇPÙ!]LàhØu´Ö+/'ó4LïIEÛß½
+@WóZ=rûÚÙ@?uBL´ÆÍêÓG+ѦEFcî©P=ÿé¸7;j=rBhþÌ3ܾî~O;.arØÁ3LdCéC?zþÝ8õ«¥}Ô9sóy·ç¯ß!¿óY¬a¼ÎÐkõNÆÙjI.:3õWXÞIø
+ ¤;1^wzYÏ/$ÿûPÓ¸ÒµÁ~>:"É
+4Ä¥
+ìH0bvÄøQªøSB y;í3¹Ü¡r*áIp÷Áù¢Ñ.)QlãQ
+^Ò"t±ÌuNíÅìÈô¥ÜÁ/èèdpÈ
+>@·ÆÄXü}×.µsh£ÝµÑzï)½i¹æà<À¢áÞðmÐQ¥Dí8E·KW<üôKtLi×_ ¾è`tcrT]:î.Ínn]+:Ð:]U¬²ÃÀ4ºÓ¢÷vläfÃ_lµ°§ãpÒ´©!Áh§ÈÅ5ã# ÒÐ5#Ùß¹á¢Q@Aßê@wGÅm±aâ[%©:$
+øˤvW#'£}¾Ð£å±:ËE8Ï5_xû~òÔ7´/RÈHÎg¤j?õÝjÅl½öP1lUCcT'Î!ç03#ZüÔWÌOÌ&Þ·{®öõÕì
+b6»ÃpÜÎImh:e«ÄÃ\ª^Óeö(NìÏó,¢c|ø`¥ô*ÉhsI;ùدnGË¥WµÕ iELÌ5^Ë9&MeÒÃ߸~è@t£Èû§2µÎÜPµìæe·rϯuû±Ð®!aL§³Ë÷ÙöB)¶KN½ÂÇXÌ®«5y¦¾ÂKT°FÏuêƵȦ½ï´ÑB'vÐí;C)ǹX¼KÖ¯¡tSÐTß;±îTCæ¬9ýÃãfçBûMo\_0CT2X*`S¿.SŬ½K
B*¥6¤S
+ÆËä2üFO
±²p<üÊ/o)
+W«cVs9Ö8R5LÙÎÁ½ ÚÄßïI~º¥°3Ë6ìÉÜç}^áö¡zøh3Ê
+`ï©Ôãe ý£<×ÊZÀö!·tÎ3,Ðm~hìK|LÓøÙÛ8Ó'ãO.BQ8z÷°h|RѨX¡ç@#ØBº4`ê3Àé÷ÈuÄ0)·ÕÇòÚH¨3eº8ÁÔ×p+ êÅfû:n6>¦>tIB¯äsÑñ÷ÔË$²m=|tßú[j"«q6ÏâÃHç>òÐAãÓ¬Õ©7¬/:V'ëèpü'é\:Ò¨ùø+¿V,É',ÿx·Tb-;ÀEÉAPWéT|·Û;ÈvÂAè] ijÄÙÊÅìd*iÍkÚ[$Ø÷}^£ù02ÐâWÕXÍ2R§Ô'M¬Àð =¡ñn-ªÝ»ÀÈÎI;9ätoäèCm:÷ÿ
+endstream
+endobj
+78 0 obj 26048
+endobj
+79 0 obj<</Length 78 0 R/Filter[/FlateDecode]>>stream
+HdW=²#1Î;Áw'_Ú%Q?¤âM÷mðª6tÏ¿
+â§Ï]W â<âø&ªfrÍÛNühµ1ÆÓycI*À1®6T³¿Rú¦¢,,
+ïl
+ü_ÅJùÏyÉêW¡ß\Ôa(¡ëe6}@è
+ï¡Ì1ÅÙçÐBe#0
«å)ÓË:EÄUQÕ
+N:(§LÛÜD1³Ì'Q2e
lá-Lbè¡èYâY0-³³ÓMbB [Ð0"3ëÊóê¥zËØ
«údu£"ÌÕ!+B´ýi¬k¼)6³|faXÔv?¤S,»PXÃttGo(µAZØ í*Øwo[¹Åbt¨ÓWb B¹z$ÇÈ~³oFw1_ËJɧlBĹ2ÊÆ]9u¢,ÿZ[ëËOrkø!cP2 Ç
Ù°Ö
¼+O3ÿ'ûQÒl5I=¾[Ë©ÉðØûæTë3«Krz÷¬®jõÎle§kx©#ÐYaz!
+E*,Ï;Ûzáb¥î¯¯¼>iMaÈ )#
ßDcÈ7°t)£DV±ÊZ¸S«!+FÁ:)1âmkF Úºyî¦yr[±g笫×ü®Ù¬í~6E 5aï]¸çrI»*çÄÇñSìÍö6Óîgd#èãÇ@ØZJiMI&AÔmèÁìÉGÉ(5Î.
bÙY}ÐQ+ @:ÈÊ$7Ìwpz%å
+Í(BÝ-£Ä%عøyô¹rakÎ,%1OÈè
+:ÂÒ~RºÙT9v£À¿Q
d|¢®×*0Q
+4¶êmÝ»õt¤)ØÝI]T4h*íw
s Z
«¸}@O6ûMþù+ú7hÜ1;Ç|$õ2c÷ZBÆÛHÜPñÊ)Wy÷#g®l¶qÐwm×XU·rn&îeCNΰes?`ãòi »3Ê\
x^(³IØXÍ >Àv#Á-Ç©¬
+Ë]HI¥FF7dßö£ò&eÙÃmÊÆ%¡ÞÆ.pÈÒ¸A÷ÔuhùbéÑ£ý·6¯ý¶¤ýÀnpÑZ][Ñé³fAÏ\ùÿõd¹ÍNFom=CµëYs÷ ß2y+_
RB[æ
+ßår÷Û»4å2Ym¹±|KÜFYÄÀúÖnà´}LAÇêôôáRZõlüOì½mctx9vö}òþ"[mZXaàÀ^ËLvïIÀmÁa´·µã¶4ìzm¥ÔÒOèê×OèÎô@dè=xÈØä¹jö àÝ=/U¥_¨t¶áæÚ¶þ»;¿R8°Mr}Ó®®GÞÑvC
+L;3ØG^¹8æ:G¢ÿ
+Ýh~:zeìU]Ùåé+a¾¾< ãÁ[Ï¢N¯(âVÑ>\òÇF%õ´ú¦¼ñNhÛÜç}Ö×Ûç)õ°Â=uýtfì
+<8:>ãs´v7u®fá°gqgÚ¿â/iÕc½¦ª/÷?ÇäéuÄ
+|ë%ÈÙaF%¡Wu»PÕz®ã̳±
+oǨ4á7r¦Â¿ãæ6oàHBªöÛé6s6ÃúþÛkÜF×>·Vvt*Í©¯íTÑ:Î4ÖT
+¶ä¸eP9¨¢$îq6ÌÿBWYzÞ/(g/}îWÎOàHâ|0îcmñÒ$Ã
+1
ë#ù't>@Ï*ëâÙìèýÝÏÎèßã¾´H[¼²´[d<¢&mÍD}ͺSUlIÇRÓð¥óºGÿu9¡aï&ϼ«·b@¯³²mJfÇÿ@ÕÒÃx^ˤ<ù0kg³s!£l;+ÐqóÈ«ª I²¢*Ni6JÀÏFPTãÝÔùÊ\¤@ätø~|"GqHçèZ§Óx5qj°Åÿ@ ÅXÚIà3ªTîmÛUÝÙXÕYn,R"î=gÒÐT7b¤8WKyöB³þÌßd£Zéïä¶ÙÎìÿ«'ælð_áÿñ²Érc×aðV¼ýRÒ²{ýO>R*+ç¥ï()·K@n&=RI"7Oð{;ÓAÝãÃf1`F}[ðÏs×óçïôøû×qöX¹GìÕ«k®Óm®»¨$¸ÞáÎÂõs[>t©åMò¸â¯7´hãÊ=±e,°6¹A¯y¶ h+5éo"ù0Ua½!
+ÑLãB@÷²=¡îM?#
+³x+!gàX
+~Üð-RSÖ<Ðؼ¿7I%-Þ«5í£ÆîͼpÅ=CF\uYÙmâÐéS8%ª£:ã´°¾
+4Y£ò&Áµ}BÓÚ ò/G÷+Þ +*7c±$
+xp$]ÚIj
+Lë]Ö`±5ÀA¦1YóÖ×ÛÈõ¡³72ÃhtüCìp±ïà&EÅ~@Ãà©û~÷6Ö OÙ/Ýò-ÏéðbmÌ(¢oÑߣLóéE¯7µ=Oç#xÍjÀ3o7µ]=Û~U$¦±#ux'¾ìFk£cí¥Oñ
+
½äÍbïËÇoàþpõ;ÞlÔr<Y»ßÕæ>
+xÞrzzù:àZð]R¤?qÐW{g8ÊKo?»LmuªböæFîq˼ojò¾Ö{RêÓ=4YèÂ¥£Ë8H¡yD¿µìº©Åi8¯.ß³û5Õ@Ì^L7ÿ¦¿»;û
+BýµYjÚmª%¡nEaJ¹ío½ôòf:'Sʧr¶R?/yC÷ï°©í*¦Þ«¤?[÷$wp®ZÞüÀõ^ã~&¾¤R$L/U~©9§¯=<Mþ^Çj´^º°0+ð´×_×|Ãû.R¨Vt|
+Áø³Âû^øjfcéææ¾5¼WDç 0í=é"o¼R$]w °ÐÛ{èÎß>m±iã·ØѾ¿®yÃ÷MvÔ¤bBôbë'?©K£÷nôµ¢BXÑ.Ã7£(_û,})N">ø4+;|èFøÔu§³Òíû¸æ
+ß7±2¼§ÝíÉd-\
õ£_xé4,
+W=%Èõ\n*
+Oef#5é[6ߪõõPÚ
Î}¥ W-¸×ó7pßd at YrX/÷âT¢
+û¸²ÒÝBF7åqSw`¦@£-àlF#Üì³Ó|ôfv7÷óÄ1\·o×ý¸ä
+ÝÿÍy:ªW2[ûÏm
+¯Úô+úWöÍÞªùs'1 aÿªQâÒ`[äú8÷L.ü P£kÓÉ åH5ëõ×oæòYNFrª7V½\nYÅÓëØ{"qí¿Uÿ#ÂQÄGÓq??ÏCsjï7,ôÜÁwúyïpsýwfþ»$ÔóÌÏôýïc¯Ä(iÈ{xo¹é¥t$.Ájz-KVÉOgi¢K×MØà°LzLüÉÑ×R|¸Î¨mÍlÖtÊ%IÚ):*µ^D¼nA£n¿©õNÒ¾2GªÖ¨
{od¢éäÖs3LJIÜXÁòdy©^)5çÿcDnH$$ÒbôÉuE`uÌXÛ ^wò¬/ÑÂ9bn%ºvÖ¿®nó«µ"ÆezÛtzgS7~ÿf±t¢À9®Öuß%G&hɹhô¸<bKÓïX^źâäð§jzjÍvâÉ[+nôCq©Åº®4_C;Öás§_ª9ß<H\jOk-ÔÁo³²ÆX2z³
alØ´=Øaì[çÄIûEzñ [?ñ>ä¿\Ý(<ÖB#ÅxM1Ê¥×ÆÚr®ª°Óò/ToPÇ(h|¹
A\ú«±.¥lèØc]¬s: a°;Yo_1úÎ"ìƲ×H\ßÖ-2
+:AP?·è)FxÕW¸t¯)aÒí"ظ[rÕu®UÏnèS8ø´#¼h·M0KU¥DdÕ&=~=º»ÑÇ3,A¢]×ÆÅÄm§Ú6a´#û__P\©EѪ¤u3l%ùG¾Vè2ÓgU6IuåÆÈNpôY4°Ëû&ØÉÏD ¡#=,º.eNøt³° .>2Ì=ù ³ÂýÑNþí±$8ày-êD
+ WªÝ ×d±ÔôzPõ¦7Ïé!ÑÍnÁ6ÃD-âK0´-¹*ºÏÇfª#TïÖ|æQ½Ã®3ä»÷Y"%VP+TWúôk¿Ç8ö¶Ü¾éÍ9ÖVsaMR6};µâkëáfè{fKÎ"J%HeÙ¿yÖKÕ+·C06LwWü½òD¸ÆëAÕá5Lû=¾ôÎ>}×{ÈØôó iѪ¯-Êhò^¡Áss
+54ôz ÐkLô[Þ
+¬_á Jß²ímÍsåÃnk%|EÓ¢Eëd#½=&ìBv°£_çnd-ªlþ\òPòow<¿\³kqñ&â<¦Ø©¬+ì¼dÝÖA°5zw£0Úël9&b¸ØàXå£bS·SëÊó89õi|ê
ÊïÇÝ×âÙÚQȺÕ)Îì6(äÜMq¡òp7vHëÎq7Û*!Ì+¨Lîy¤DcÍîÊÚ³7ÉnßÅdLþ2Wt9¾<ù·W½Ø/ªüÎ÷G*غÓÂïi¡uºn,3_b¹uÝsw5åýVòÚ,ÛÆôI^ÄUEµËýKÉTõ¡ÔIØ']}y&<þÁoÁ9V\½ëô'9öÚ8{9ÑAÚS
+~ßU\sÛø¯(c¬îÉN($ÿ8m®R7½½ü
+±éÅ/øø
+wÑ«U'FÆøàéFoé®wGhFbïý55E¤~}sQ8éª=®5«ª®þä3ÄïwÍQP1
+ðæÁo2T²ÐëMqöÊìãïTåWRB½¬ÏvÃW|?e£Øa£5§8Ìt+Ý£_Aº(fÅöÝTîá_ÉA-Èü÷dÝH&®rtp¥>¿÷Xa(OåãÎöä3§Kî¤öøÏ´mIÔ³¥lç>ðFº^Âáah8AHìÞ!¢{^ýØè&ÓDgÍÿÚ]ÏÕ6ÏTZ3â/ÁO)LGf¿d}Õ½û¶
ÏɥǶhú,,ÈÄs$EIÑ-Ñ%±]éD¡È`Áå»×±7Ñ)]ÁéйØLÛöÕÏÞks3;û`¹øZàyIåÄt]¤%½SÛ:L¨Ì|,oåÉM=^fu¦[.ÜÈ4O1=Ó®®Ûjý®eØ05#×m=P
+Ä@WÆÞr at oùïH²ºº_»ÕSÌKËò¸RoHY¤Á.h
+³é=ÉÑ´Tâ>/Wô7°è¤ø£
+{ÖéñCN.hìø¶¨y5L|õ¸¶<Æ8ì}ÉÏuP³ÒþéZïaYÁÎ{ïú-Þ»ëeõ|(·¤Å9(O^Z|t9<ë´eoÿ8Úbf)DY³R
îé-r¬±vó³gL`9A%ÉïxÅ/©aeaÇì1Cßw=ÍÝú5¾ÚÖÁ¥Ôb}Õ§ó%EÓ.`TdÆù7ZfFàA
+PªÞN·ªøU]Qs®\æ
+Âêì-ÖRÌq³¬ô+oC{!î%ìÑÁWe1Ce¼î`la»çrÛVNOT¢2µ1ê×sí*Ýs¾nmÖU`®}DgÏ®ÿÙ§l
+-i^MÕ6 !ÊÆ>®ì²çâß%²ë^\æÜlKIÿY7¤¢VEñ&È»ª>@?"B.R
Äk>ÝSµî²ÐÔTÔ·£wègH©nsꯨ¼"øýsòX^éN,ÇU® º¶W¼7ÂIªµÙ2ùc9ã(gÅÖß/ã×Ùd<ü¡¡£9§RÒ"C ¤«t"ÃJÖBÒ43(ÚNR¦#¦;Lf&Ób¡FDÙvuyQT!ýMEÒ|â¤ìÓÃØ¿¡Zn4i;âÈùà ØסäJ?²£ßv8FX|(p,ûs(;Ä Eî s¹UÎqígÛy|ï£Dx¯:rSNþþgL"qô £+¾vcÕ¸ÎÐSôüÆ5<¦ß{8#î²Rï='óθÞݯazd'?á¢ÂFuǾørnßQÎó\êÎÖéܱü@;_ZÒãrÅ_õ@wMÛkª¬{÷0ô 3¿}A
+MiF&BeÀråØîv9ÞbmRz@ê{[ØÓ¡´ÓWQ¬ RÃZP¡Óí4¥|
+¨1¨¶Â¥=KÉ2,ÒÞªyNºæü:ÒKxÕ¦ÉÇmX]iQõÙ¿BâÀEͳq}íû
KÓ3Ëðä/ã4Ø/¯FhÊ*QTCDnUÝN7ñZx
+¸ìvE
+ìÍ~ûI7
ÏØ(\Ûx0¾ð·rÈ1¸J[øê<¬ê@8¢V
+ó$À«f^uWÌðJé×Ru¿û~ñR
W´âå¥È{yEúDDjÿ
+¢j`>ÉûCÍé°ÎÀèÐaÇô*óg=s&Ü××¾_ÀD+lEJª5Ó¢§FLJåUMzaÑ::¡½@öøcdêb]¨-\øëÎàTpUµ¤<b¨Çé¿EXi|RM³ÈÕ ÅR¦éN©Ä5ËÍ
+)òDèv;¤8Eùæ<u>`Ú
+¬¯-V> ±S_VV6ø-
++Wí$^
+S#B^LÄ°ûUÙÖ`%osúÞðÔÔËçLÕSq"¬Rwö¦Ù
+ËEEâ«5v`tÑ÷U¥EÄAÂihIÓÝ×J:¹c&R§dwì_ü^ÅÒ½â¶ÖÃÉÄoµÁ«áø"8&5=¨F:]$³SL÷^èYâwÓ/R}¨êh*&êRäÖ.)^
+%Ô©%»¹·]V,½{ÊÜê-ÕÉV£ Â,Å
+«óv¢O³jè³XM.K¡£úàβ/+<ó´z54¶]c-ërG>ÙbÓrA@Ð ÕæôbÛÂúÞõWËHÚ'¡Þ¸¨ü
éîäº?j¥Ò¶ìe<Ã΢ËËyXKP¯Á'©"á
AqåcÖÀñ/-Ä´¦ÕiCË µ¨Ô-ÌïÐRäµîйI [::¢Î+äiIqVõ,4mówË/T¥»KVÂÑI*Q©»yξ}Q©Ù4iÐ5³2YêÛ¤ÔT T
+©ÞÞ-l.muwḫH+Å
+4ñ
+·¥1PÊöp at 5m'£
+>7cÂÚÚ[ñè°Í¶LcLÚÛ Tÿnû°Þ~ÁRñjLVÍ,Y[«®¢fË6¤Ë*O.Éî4ä4¼½ôËjºËN8n%ãlÕV¸Õ\ÇiÄÂU{Eµ*oéwáUÑ`{µ3κéºïTëB7T!)æ*b½ÄIï¹Ý9d¡¼ß¿FÎÈìEiD&Yá!ÕdC<Ç«ª0UDênI.°4®¸½ù¼³¸¨ ¶,¦\ÏAtÍ#VãjgøUÚÅÏTUÿ
+×Ö®iiPÝèX¨`ûËߨ
+äNO¼Í>Trsûa
Qüõµá(N^ $dÒ
+,¹÷V½_r×k¨ªÜÃéï±RL:H½wü"¥ÂÓ=RIÖsú}HÕl2Ì ! +Êw¢e~ãô¬£²ßͺV**ÊòQÉRSj-ôüN¯<ºH¹åäW>¤x^yS4 E®tsâÚsF¨#ÀµºÆB¢åv:Ô×_ b)?g²Xùà(ºÒï£}JJæ#±Öí F0+*UÕÔ£ØZr;&cUÖpóßmØmTýD>V`MCAµÓ*UÖÀoC]eyÇ º[¨¨Ï Ú¾¨|:[)ä)ývâ£ì[6ª¯-¿P]ÿØ@H=¬ÈCûTS¬Ä2rGè_½µ¯r!-;!ÚQkÈrÑü"+Ï9rº;Ê
y9Eø+Äj$ÇjÂ6H7Õ#ÿäÜÎT¸Y5ä+O®pûÙ¯°î¨éIÇÒmDÞøûÝðkè}r~QFÒUÎ5|h0£J'Á}SïQ¸$á
uJ|é'Òe:þ«Õ
+K
+fWÑYO*w"q9Îfâ§ê¯Þz<ÐZ¬©O_ú#Ñ»bñ@16nç|¾0Oøÿ;ø6u˪?ø³ë¬h½î·Ï"¥m½û)áËr¬vI.w¥¹X¨m~V+©>ÔS»¾-AÖLViὡ±õ¦$i V¯-o¿Ï
+u8zìb¦È5¿
+Oxüjk+#X=Ï@Î!¡1ÉýÏu¹dI#1ð*yyüÖy^ö¾Ï?8©PÆ*+T¢DÝøDä;TOC·
+Û48ÈÉÚz
+ÃPõõÁd^r¹Ò«àºÜH «äo/t
+U 6½è»}:SLBÍú sEèt£=º£y×ì' rÍl¸'b!ËC¨ÂÇEO(r´ðg
B]òàü"WEòs{JòÑ(À+ºÀ9¸r=L-ÉEi¬¹àzÒûÏt1Sàûþü61ª[(ï0+gQï<ÌÌhHU»4Jü{q|rÄ9ÂSï{ºNÊ» j2OxC@ÆÕÄ 3ü,ßÑ$ïpæ|Ö(}x¶Èð}L¶Éx)kÊj«ÚKÑèÃ-jªæê%é4 Ib°©qr<°vwuÿ!ðÖ2¹È+jÏÉÌäÖÛð¼¤W§"§@¯ÎÔà'tê þß]xÐ5¨òoYò$·\ôx«1ÌÜm È1MóLð¬QcÈY-ÐæÓð~É9KÂÐ0o²åµ(>Âeù,¼ \tYc
+èæÈnX{-è|ªß^èdængu¨3zöp+ÒgÙÂÃÔ£¤ø
+P°wÈ)P⮿#×|ãÏkÒpEòãî.8ÚÔ"ðÀZª´:*mjQÂÝávîX×ÇÍ-2ÖÌìWvÞT¾rÈcù;v¿à¦BõÔ+Æv&É¡ym¹1Ïh©*Ô®4÷¬¡ NÊ+òÉcyæ%»w®2³ÈIû æ!KiÀÿONN'ÜJÂüXÇ[Èñ\ùýå//t:ä$A3`æÍè(ÒÎU0SôúAggrßó.¡+$Ì
+#HûænÙSM5"ËPôX²~(4GÝʪ&·×ú,Éáé ë¿CcË^ão©ÈÐ"å4µl·ÙÈÛQuº4TÖz5t0 at p¦ÌZ?ßßÿâVº5&Ìmäæ¦`ü=³é@C«û®7?[<»äªºIgÂ\nƶUIPàÛ.Àmålp©]héBds<è³&Ç\%AUë =묩EÍjp£Übs<2¶&=Kà/«ÐçUø)Ç¡øû|#x¡#jôô¬[å2*uȳ¬Ï/¹éÚ2aqËÕÂh|oèdFýü¢Mî$þ83è£)¦;1Q £Ö8åFW51k ÏýÔtVkëc-xãdµúÕóò."-c´]z×8û9Ͳ²º£L§:EUäÏ·¿FТYõß3LIY§i÷ sÖQ4ÌÕÐØ¥©3,¹ÍV~ yêÞ_
R¡Ù\$VÒ9a+yßÀº)pýµª=%?ǹ½nSHU(
+cð:1¸
ÉZF/[Dp¾ ObÒ±ÒÕøõù/j3©9m×)ÐK,æºÔ¹Õl5)a+ã¬ýú©-
ImWib;ØÊFVµ2
+c¶L
õ÷¦ý¤dÕYõ/ DÙ!tó3ÏiôSÓ¶iõü¦
+:a$åd[ñ[ÿNr´ÛÛT¤¹Çÿ|ÿ¢æ-GÞ÷áÖ¢
+Úï\Ϊ±®i¡ÅÒ]/R.©|5¨->Rþ(à6(»¸©)ÕÖZÆö¨¡2¢r£rÄ>@çO´R·zjK²?ØtÄ5ä^)ÅO%6÷4þ|üZÎÂ#ò1\õ`V½¦yqqCñ¨WrÎX÷h,KW'ÁëÉè{½&rÙøýîH9
+§¦»¤êùs$
+ßF£EÅOëb
+äcâ åø¥u£9á¤:¬}±fFöüðKåýÚ
púEr
+;ØìEMHÍ%âîÏ¥Á¥U£MÑGü¯
+ÿýe§*þ-^GtwãϺֽÆ3îñy@QÑÂ*ª.eß±URü¬qÇn± ~ìΥ˹¥Æï´Ï»÷¨%Dø³Ñ]Ïwwþ%óÛÂf&åòð4Ϩ}XO_ÎnK!
+ öùòöT>sLs1QTä«àß·'ÛYb>jÊFÚNï¤÷ª WtÓf¹PÕ]Mz/*1¾jÉóÛT9ìÌïµ;Q°îÍñøyÚKBÖ³ßÝ/dqö%Az¡U&NZ4Ö gÌ6GzW.Ùm^¸µmêÌ4KÑÂ[¼x
kÒ¿M£ÛocßÛñÝ-Éó{M\7]¸~àÞ;¨ÛBÂ^ZÙì×Üi%2Ýy`¼¹rÌ÷÷ÁkS¸×íaɵ!6ÍøT¢#à>x<K}6^oCU»ö§_¥@ø$\¾
+/Mâ@ÃøtùöGçà`³;OEÍó¥9|7Iia¤5;Û6_h[Àç&º$$®ÝM¼tGÕ$G?ЯVyáÛÕ¼GÜ߯kó^$%úÚCpOªg{^l\Y
+wÒ
+ºË¿Q6®r_UÒ<ÈaÚ«ËÕp UwàÞ[¾UºËçêÈut஦@Ï9¦æÒªäP«u¡i9?ÚªÓ=T©®>T¸¶$Ö¬iÕy¤ç¥rbZj©<ÛåÁÉR2rñóMé
¶-ñME;wQ%'ÅKwÒÉCµú¥ëWÏæS°+4v
+×XòhÆ}üFY.µtóÄ §æ¾´Ý.µ]J¾1ü<tï-ÐÅ:Ï 8®FvIÛ±©ÈE·ñ9¸;uß9¿Íd"=»×TªNÒaö£2µâiF'ä²ï7ÛêÙ`ZS{szñmYD«¼¾_òò$Ö%"ýå«
+ש¬P/Ñ¿PqÐpàU¿0 £H%éªs²¶°áÖÎî¹EÌqamÔvE:ý760Ç<Bb)½À7=×UÂäÜ÷lµ"ȼR½øùTísÝêµ
²éÔ~²Iù`ô`;.ÄÀöQlqyZ件Qý½ªú
+¶
)lTÀtec5µÛ6Ó[Ay²}G Fw¤¼a¡¯yÐcgu·Õwy_n°ö¢ç^Z¬! ±zÚvÅV¶sSG¤{«+GÓi]îß`#êæÈã²æú½¬2ï©©®5'/!ª8²¹k.Æÿ¨Ôv-,6Í3JÌ\«®;ê¤Ý*ÎÖ1é=·lÓApmärÀJ¬2"lZ3ó\SGqßÓÃââ± Å [¿ë¸¶EëÝêwPgä.À>
+®Y&¥(Y&()]ñLZ~Æ;í©£g§ïÉû¸Ì-þ'2Y"ü¥¬¿ô#z'Aáöø®ÿõ±$5)𿼢ʵØd¦_lÞÞH #ó}ÀhãÓ}¡ðQys13ôØU$l?{-.Î>YúM¸0î¹®3Àù¦M&
êòF²Øn&ÁÀ¦ºö0jjÙ #FÜA:Ô~²Q,ZªØísY1vÍ÷ξOù /§¸ú0³²:xzÕè.jÔòàRÅWÙJtªR¬,ä]9«Î|òÕãªÕ¡»Ø$¦ì]¿±&í*BCóO'ñ§
+S-5Îkã
+¦FºAAθD§%¹¸
+¹ìtîÈÆFîÈÈ© b%/Jº¼à³ÜpÊ_rLÂCÉ¿«ÅrPÒ`·mQ
Ã>(]ËöÒ£_¥¤$õg¬¯¡û9¥È#¢ÇµI$Ò -§YnHkp
+$îÿªJJM»Ï«'ƳP¹+oF9nØ£
ýø¤Þ½¥4ÄXLRaËdÖxý:ì#Ç
£Î8!QÆ»oÒÈÚ°LÂ|S®(U¿ó^¶Ö·(5ĹlJúmé V©{ÖÖª.2©?ñè|8ȽIC¢(SÛe¥âë&õzCÅEødI=.OãÕMĶ\a~ôh\´YnreØ:òâ?{(¤AcS?{Q=*$Ê ¹ÇàtLQùü]IcÕfú;¾«»Õî"ÙÇo1ð$_©æ©ó!NYËd; sJ=Ô¥í]%§-^¤"¢Ð]Ýöë´L!²ãmúÀd·«½×Iæ4)2ÎÛÛ´v÷esŸñçYÛB¢HDv_G}'ßδNaú(&"mkoL%²ËeÅSÃS7·ÎÝñáI2
+t0y¤±èßÏa;T<m¥Ã>(EòÈá#Çeqº¸ús'&õ@Òh|Ñ
+9E{G&ÍQ²nï]Ks¥S|-çmü¬ÃEÑò³d0¢oF@4-¤wýúfFRÂ9¿É³&íô0rJc±ðmÍe!ÅúuÖ#iÅËm/ÙAtÓiÚ$fÞ§M©¶&Í%z
ÍxP±kpTÆgVafs©krì6Z$ÁsL±¦Ýpf³ûÜu'8àå'þਨұÙ-BkøE»
&Ùe}õÓ"¶(1âJ©*{=´ÃH.}pHÚÅæy©zÍ$
Uî §OæßYðb©xiÊ·jUÔ,ÿè±Ç"GK}
Ábtëòº£KfñͲ7¾wèRç+ÏËx=Kx\î¨áþSìAÄ}¿¦DR~ÜKz¨KÙv½÷ði9ßa¬ð"{ï°rÈ9Q4ÇRV á,MÅúóï÷gF®1?'NËÏWh99Ä¥Yúù
+eÐvÚNàeGØ-@99±ëûKà¨d¼øÄZWÞIòÝ¢åeCä´9ÈbÅ6Ñ^þ¼Ó´ïü´ÔZ鼯5æ«ÿs^æØÜ@½Ê@ûbËÈÉGçWüH Ylod5Q¬ÈÈå^£5e#`N
+>¤ÛªÝËSÁV7ËnO=)fn at bºû
ýSHÆqØ¢eH~Ôö åÓ IjëHB/L°¥xoxa ,Y£ÝHÇ¢0(1Ñ«i
+8¿Éܬ>F ªõe6y@BjS,5(:uW×ÔcTàT=Û@=ûZëÔµî5PÇY »VhÕ¡T]Sª¡S7D(´)#!P:h ì×Oé{m`%Tà6?NýäÝÆ(^Lú×~±j´]c°FU´^i
ÔéC>¾<Isïìæ7mm!T×¢ÓµB[H)u«×ÅpðViü×ÈhØ¥®újXÝ
+ºÔs3wgKêwH|
+ZJø^UÒòsá=v0¼AFâ¦5JyZ¶fòãý)í¦m®üzâ!øÅh0w û6P¹6_{ ÓÕ"Çn<Ù¶73J¬9 û8<×ÿÂÀ¶=uyJM
+¸Uµ*"l;ô¿tD¬¾D#
+YÕùb®ê¨:î¶Ú÷ß̽ǻçT
+zÖNÖÀ~ìàh?¢ª+Ú @õØ
+)úCtÁ;gaôjb§8õã´û"Xf¼§aLõ¹¦t«{Y¥ß|lº½NZÙ82F_^c!|)èÈ®p61ú]%Gµwn¼"pDF½fóVù
+<õÎP×HÔkÕa¼HÑ0Àt@±NXJÔ¡^ÑKQ!0÷ñ')«Ô³qú6¾´iË}0UýOòcöû¸AƺêTÃÊþtnÙH7½Å!sVùo¼fTtél2±+â/cÚ°4ZÍ©Ô0=ò05ÍjïHr \)
aTtÃ%`iÖ«%À5º´
a<kAæT\ü#rý)F"ÕºË3Réx¿Ps§éËcÓÜh9ú]¢×÷Ë(L'ø c
+}@Z2ÍU7
+ú-Jÿ;,·\|§ITóßÇ£NäÔ6!OUMã×pß9-·ÂµuÏTÆ[ÇøÊËÒ;
+`TðLa6þEè°íÏSXD,´¯ßÕM×!æfÈázá;¶z\X·Ô
+.VIê-á:çö¤ã5ârX@`G¤¢½½Ø9îé1 õÜ¢,·ê
+¢;ì¾®³É<è{
+É0Uí¸Æ{$Dh×ò _;ïi¨è Ͳ½½>×ÕoBÊ
+b°ý@Äãûeù-7·r¡Ë{Éj1gy{_mþºãKWwµGyÂô@UTwnTwdñÍjèc÷ÏʺÔT:)¬±ÑrqGI lÖã@Ø#Ð>÷ÁV_3¶¹58Ï´/¶µØ¬jQ#ÑÞq°Ýµ[Fý-èÑ2*{KPú
+ L;däXÀ¢o÷.1²3qMØrÀ ûÃÌvµî
+à¨t°e"mCkáie ö>±ÿjµàº´=#Érh h=øä½×]ÝNt÷ÿSò¥}ãv¡iTÀQ'üñGÈ¢Åk¶®$c£çvÞ ÜÛBàÓºØ2 ÜzD´2 ªèÚ\xË6D[ï98|ͣȢGÑëR#B¡[K³¼kµôu°¶Íý
+ ÔVÕnlb]õX^nÍ´|×ú´Å¨¸ÖÃßj½Üg¢Íä¡ÈTÀ²êGdHP*}ZC!xvyìßÓ
+ùdàÂa.JH° ²á¦øÐ$tÅu5g ]äõ§2»Ñ¥¹
+îZVÏc§¶asÉ$
+#óup
+¸{XjvØß5MâZ/l[T håP-ítP"øêÒYÞ,ãq}É_(Á:pöäöE'Lµ<È
+Ïò££wà«|Å¿¡ô
+ÑmPÎ
ÀtÁÒèµ'chÌý÷/Uu®&÷uÖØ%BN':TdZö¨U®e}zÚK-éð/hB)õüÒAã8+wl´cUwwÃâ©A/Ó¬¤O&»>rçÒï¸äH¤ôλÀZK at u¼ZBÝùh'¬n&Ю«i8çfdìÏò=ªk5¨ùQu«ÎmÜ·öTÝÎbGZUÑ3dÂuµî`»¾EÏgð|OlÊ`,Ts+æéþBwyõØö7ÑnTTyLÇwõé¨
+d&¨ìà5¯ò§ÌwûQrý=\ßï}ä½P,ºÒ²cÔUâO¾Ör|²kÿó?®ËIz[ ÂW¼ì-W·ù\ÿå°ÙcM&¬ª\ T]G\&'âD§_нîèõ$ÑòÛ¹-rIpc l-÷~
+RêëMD'y[ÂV<R-è±Æȯí#¤û|aݶ%üµTíjÍÄ}'ÌTwki/£×KÃ/å")ê*p¥þ`=Â×/Ü>XëØ;ÌÀ^·ÿ;p+"LKaìÂm³*ôiq\R ð.s´g}ñ®Á±§F[Àp8[á½paôr>Ö Ò ¸ú¸a
\ê½~»
+ðàí )pÇ ¿Õnquw1DµÅI£¦EbVvXª7ÞHçúûÄf\KNI6ඵ*ôÔö« ÖOtTJо{aÝe¯£Q×¹í®n?¢©6[͵0Þ%
+¾+Ëñ¤Huñgyáî%¶`;ñÝÀX{yks>ôc4Æ\øι7S_fÐK}츫ÊmãÛjPJhUiLîånp~Dôï¨F~>Z¡),ÊRmFPµàIú¿
+f¦£bðI+á²à¥;åÔà 6^B3oM¾
+J6' ï<'ßç«àÏúà]'~÷ÈwÚøIÐi£Zk»íj
+]gȼÀu¾hãjQõ~Ufw³CÊjh½ÞÔ¡'Q¦¹ºÉõĪUs )xì*¨óÕ¾¿%PÆW}4§«º@ä</Çaÿ²ÿç=î9Ç
+5(núéWd;9Ùo*p,ÿD1&W;/9õ©Ïã,Á.¡ºÙîò§æüìhÐ$ÆGo$í²R?ò7è[Ø z_Tp`qÀ¸"Õö4få½¼?¢^ï©
+è) =éÔÌ °m%½¶)2mí!ïêØù®N}ªczÒpOÝ*Cí:ROû1¸*X¥%Fè3åê ~áü©ª3ýù´0B§<ÙQQå»éÔÙÎ~ÌÿÅ«3ÌäYòýü_XpJÕ£´f,iéÚwF!sÓnHËG³¨vIzågT#º@ädñh´w[Á:Õé)Ù-i7å¢TǨӾì¯C»wuÊHG=-5o Ô<Ýý¸aÊ1iä#AHY6ÁàäWm¦'¶t«Ö¬3(ww¯OgJXÃ"zQÞ¦²¼Lg/¬ÒôÕïêV¦ççÿ=:X©££/ýÈ{Rp'{©2)¹ Ä=ùDNj)Ú(ÞÐ#!5WÿTµN%{Ðd4é%iáÏÿÄ!rgF&çàeçIN?´l©óó
+ªîÜÛÏa0tK8ZìÐWº]Z06Ch28Ñ
+¶Ã§27ÓJÖ
+ü±Te-%së.o!òó·Zézp{bÚ&Ízª°ãà.zt¢hÁ:)T¨¯ñuIx¶5®x3ÕZ4y.9t®ÆkÚ$ÆÙãÀVÐlxH$CË8ÕUEñ÷4Ênñ1lgn¨i+üæÍWjç%|JxiNÿ\C¦÷bbr;ÏpÛZóòÁÑâîP3¦lyÝ<bÍOËÓÞ«X¨Òñ0?dÍ?¥"ÚPRY±ç¦ÆÁ¸ªÞ}[Í>Ž»s
+¨Ð¡âEO} Úñ5$ÇhbÅÍsKfÔãø<´Nv½ÚÞ:WoL_¥Èyyæß",ÛÐ\wj[0 at gü!G[ÎòÖ
+
¬¥YIP-Xɹ
p÷gsÿø¸ý(høFÐJbÞ÷
+°¬ztw(A»ÿxu:;ßÓK,óò>â+ñ
+r!t³à×)o*üÝPPo
+Âd7±´b+Lfè'ï >Âð[£oG·Û·2ÔeC;kXA¥ãjpäAÅöÿÞ@/µÛ LÔß÷{ÁB,Ó¶]Äþà²ÌÓ å<¿-}Â)\"ìÌ`ɹkÝîâåÿÅësÛFfk²@Æi£èIÒ%æn¹ µ&/I°QðÚ%lìk´x4EàÈvîç8Óa ß×|ÁíÔ[Ó
;|à±AÕïd¶|á
+Æe=uF©qUüÜ
+ê"{¨Í¬Ë®¼CýStç¢e.1&@MQÓNY+hr³-¼Ý8ðùË´âÃ6 ~ï ×&i2õª3¯;¾°qfqû¬p?.20%Lz =0fÏvÎø'|õë³m1TP]÷n4þ9ÐXnÕKï-h²<FÑWw5%ØT÷õÓ{þlj±!Ëmã` h*_S'ìSص!¿è=©!rù}É22'ìȲQ<àÔêé]Mûo\¨ÀêxΤýÚϳqk²7¿[
+ånëbã,'l
+!lLUEí³4CǾ@¯X©ÌMã(Oà *hüL¢Øa¡ÏöÆò^l`*Ïnù×_Ðp¬ím³upqhtBRÇ`JoÌbÇL/z²
ÒNCå»[ T óÆIF`'i¶i·Æó>"_ȸeÌæ¦Âa¦lͧÈÅ$ãÆÉ
8%òä¦ìòÜBÈ,¬^ýuË4jZ v»8T"T»f×^ø 3¶²ºPÔÄWBèQò#[ð)L½·þæ£Û%ÜWáf°Z
+|ÐÃÅ _¶=Óáл1Ô@üë2ÇbèUúÜ{NÑvõêþîà#He>y)¥$@8Øô½ÍfDÕZÞ3©LpϪZ¯µ~±±û Áü)lòÈ.R©ýbcY¿g6."+#Òû_Øhfb<t#Yv²h:ÐäULÃbx;дñz·jTmÀÑÛm¶¨xè¿ç<nçÜdÚkPLbÐC:=y»dy,ÕêÙ2Cµéz¹TGï«óaÙm_tjÙù9>ÒT"3¾ùA'E$.¤Áý0OEòaèS9Û¾Ö
' C(nñì¨Öz4ïyjGxkhS«®g_ü¾ÊÐOK°`ÌWbgL®ÄM¤è]÷Deh_#LÓçͲû9ø0ªGý÷9¿ðÑÀ>Ò4ð©Ó0Íuñ 7
+èOä÷ªpð!¥¨õ¶[tC×2>ñL o8øHºÏ çöV
½LÙ¶ç¨Í±O©j"NÛåS1m
Ý¿£ÑÖxÑVáë×1¿àÁ$gèÏQÕÑÖÿ7ÖRZ©µê,©KÙµÆ.ÿÿ;]JØrä0}l£ïG`¤ÛglrºÏhÈi_H£ pDs-
ùìèJÅשC£ÁºMv¯®¿NùïN%¢ f#kWÚf6¡{ЩD(ØÁAÇú¡°vèsÊùÿ ÓÈú²F¾èô©
+©=ªS
pÙF'ºSrб$
+#¹ÑÆq³ÕnõðWJÈ»_pÒ×9¿ðÉDräÁ<L{ZÚ£ßïÙR`Ôu÷Áwú=÷Ò+Uß Ågô~ý2¤©k½*íàÔ?¨½rNÙSL+6
uÆ)ì9Öÿ°,îyÇÎpÏ¡ï:}½ÚÕïs~W1sö(áÃZ/dÙ'é|eµÊoÜ*X5~Hîq©ðeÐî2
+Ã~Bg×Ê2aPÝTò+çßû¬øF'òy"{
ÎúÛÿòBÞçÖÎËî
+gQé=ÜôÁå_¨ñD[t¿ü
+5I\~6-âÖ'æùäö^8~
+³Dã¶0ÇE'H¾Ç½¤pè«Í"¸7Y´Æ¬Î:]g¬ÕzTëºø;SdnÂ$QðzØÑé;ùÚ5²CUtüÚ"»ÃXêh¬53ͤ8^#ÇçuYZ±àíê95Ûc§O
+¤·ªi\"¼6µ\#è&,\{®j¡ÃDÚVa(ªÑÜÊÕmB)êáLíªÚ*ÓíÊà^À~ÑAË1MÉqr9|Þ{FGÒwxX
+y)0jl!êÆR2JaÓeV$E´´Þ3
+pÃÖëÃÈdª"È$£Q0E¸I² isÅ2"©*h$Ü[ÞM ge´Jn»Å\µòåÃ+A;+ÌMóò!×\¦³s#²JBy#´l6Ò±-ý·J4C.L$oX¿è ШK òçöÒ<l+Î_:Ê¡N¦è°ÀJ-F×+:\¢ÃéÐQeÍÖ,2&LîÄR %1¬r[î9?rh3Sî3ô±îáC° $s'þOÓÞVÝR¾wÎÚ×èlqå8²Üߣfày¹ôHÃy¸¦iÂÖ,lfmír[uH¦Ã0F8rǼ°ýâB¢MV±D·B: é]¢¶TJp±2Ó¸;¨3î2²òÀ¦<ÞµThcE¯´´Mã!£©Õlê áÝ©qÀÛ¬Ixê1
+
+èBÎCIé9ÏKɦúEIÓqqíFh½zuñÒ@®
+%t[vOêiSY3oºk²1Üq²ÍN@;æ^±ý¾é.-
¤7®_|pdinL'pë'_/qÈCFÊ&£¦i9ï#6ÑÅ`Ïyk9øBõkõ±*-åÜ{ºåS+
+7wÇ#>i2åR¦g*TOý0¤¨¢×0g=Ï*^ùjM¡òC#´¥LO7¶_ÚÅÍbÜúY «¹{[ÁgÛÉoX¿¸è¦Ñï3%íréhuVM·ãã5
+Íj¶|-_Ûa e´GCÛÕºcÔ*n\¾ÀÄr?ÄFªÃPËôëYÓ:´-åELÇ;±4ÍBÔ£g©ðÓürÙèLY§ü¨Æ
+5^¯Ñ>§>{µ@.ä1wÒ:~f÷F`ß°~±Ñ2ø×Öñq%Ôf6ÄØaÃ+ëµÒ¸t(ÏZ©d¹Ù4B¼ÃÂ*ÜÌÖacHUah.pR)aÉÅÚÐUÞ
+UÍö_:¬ä¬íÙÎ!6
m2ºLþᶵ¨RP$î¡Ö©DvhÙd82Xv#¿`\c^2öfI8Ç#DeÜ'wè«ÊºT¤I½¦"ÐFÊnéÈÖÔ/2J·Lm3
Në8úO
+¬MMï¢9\ÜÊû(JSqÄy¦µúSGÍü)Ü
+ÑÓÉnkSöiUäÙ½ÚãüÎZQ¬<Í[ÑéXìU¯V}F¯»4þuÈ,mô°1Ôªl±¥;è:
+ôÅæSËQMz)S»kTº.òê7¨.<íi·L"#$+®~.ðÓ#;·²,!@h*Ãi((u g+9c»Û-ö2U8åæj%ÚEÒ´<?\÷/ä²î¶e¦ä¡}
LB¬ø"<¡µ»ÅGVã¿A°¯qKʯÁP¯ºô
+óaDòSmQju÷ÐÜËsÓjÅØ®]ö8?
OzîÝp«¶_¨ìàü"Nøn*~'%\Iïª2=´Ý"#ËÁWò c
+þH8#ÆÖCI,¯ã[±îj÷,@Ç
+tU÷bÜ4h9
ÊP_",$Õ¯
t§%1á¼øn²Bþ̾¬YwX:êÕi'Ö.#UiÒ)ÒØÚàl$ßv;S×Û¿3
+;ÆÍe<r¾aý¢QN
+e¼è¨Õµön´²ÃU!Pn,*Õêö>¨*Òô=W½è°ÓEIïÒ16Iw>tx6¡#ªÔÊ^gäe« ßLnW]
+®Êý
ÉÂAؤàø=©çlð3M¦áëþêzâwxòÓ¢@ÈV}WÎñCU(5Z÷ü×<\%OO0ILûºS¤Ý§äu6o²ñIï9ôr\õVé³*°áx,KR¬'HÖT;éöæ«Rò
ê¿çPöÉEïÔW-<"+äHä0rÆ-U<Ý:ùYýh;/ÙËÖu?Áçã^.þcû_Xâá5}±w)®íÇï@Ü"_'òñÛ
+þ×ÿr°!ÿ¢'MFT«²!ÀÄåbõ¯Q^¤2ôL4q~.îl1u\½gÐû'FÖ4-êä
+õ\aÐo at RΧD¹<K(ç!ªv]OTüVºê Y4ÚCm@ÔêBËJ(Ì©Ø>¨ú
+09Y
0ÐÆJw'´}Üó.á
+ ¯ógI/Oõ¸éñ@-eBÌ8(Gá·qÎvÄCp8eÆëKìkWßÜÛ ddØɧºÁÚ?h=}*jÇ)1ëlÔ«8NIPÆãËí`à¡pL%ÈPOºÍF~ 'ê{G
+òXô¾NPíR<0Pþ´÷ C[Bf+È-
+y{TƦÍLîµ®aïòl=Apu[üÔÉ@=.µß·vôâv£DféNüöa
Ê@TÄëk
+R\P ªg7
+zf¢ÐIìXâîNgÓëV5´Ãt=C¦Aйñ7bÚ âêÒK¼EÓ,çj+£·AôWx@Cê]᫸UäSÃPl(ô=Î:¼YæVnFA%2ûfI7þ'ý¢£äXú
+#TjÂI\Ö{ù²«ròÍíø wÓ ê
+ عHÛ*<òî)Û`Bã !,üÁ³^Cjbà'zIÅsñh ÜÍò ¶¡:/Sîþm^V³ö5Â÷Óë1~ édÛNeaɱ빻0²5W³ç«<ëdå:·ÒFÝVF»ÈªÕè[OI&*®ð×j
+W©R$ÔÇ_ã¼ÚKÅJ,
+¹HÚSÔN¡Ð7°nÙ©n±ómrâPý.ÓHé<OVuËrp<ôM%$Õt2Ë,´¡6Ç÷J\RtkL_vÛùsÀ×(/¤ë 0:lXm9&)c]
+EM¬/ó&måB߶Vsfì
+ÓBÑ4Å®@10RWN]o¬¨ÁÑ;¤û ¹H£ å4íDÞª÷V^N/xÚ.ÇN¶ÁÊèÚíuU!Rÿý:GÐvZ©!È´ª}óÄNïF"wÇq¤É®j»Û¼e6óJ Ê®áå:ÒQ\Xó±&ÁoPÐL¤8p7k×jÚLì³XþuãQó¡ï¡õ¸LɲÁeSo6ì1$RãªAäªþþ
YæïleK-\%f.»'ec¶r´cëM¤§
+8#µ ½³Ñ$W(¨~Óó@ß3]
+p$ÔZgd:1õ«.Ñú?yVPG)»nRe¿|Õªì#¹£LKçVF,x4;ÝáTyÙó¯U¾=QæÙùDùÈO´üº<þÿ©·ÿt"+ÙaÑ tUHï%?Yì
+êº#/DÈÙ»¯äæ50ozÖOzZ@Óÿ´]Ã{»â_³¼ * §x8L$®«¯/!p<y±©
óÂZ °O_BÉÿ§µlAéÝÉÞ~á]¥Cm§«$u¶îÔ<S]µ")ùÑø¸¸VãBPYtÅdu:ÅtùÒX|
+óÂ$rHRÁõ`ϤxþÙmðS¦À¨-ìÓcõ*>¼Ú'< ÂÀ
+ Dc°ëvbzôz0MÓUW§>ªJ,SΪÈÖQ(nÙúÀ{«¿'yÀôIY À¿-pR½¾uô{ÜZÔ
+¬Øõ[å3g{ïañ×0¯
+±·1HSßɧ£Ä`òzl÷y1è!¡Dõps\1Í+[òSõÄu>Q¨L¹Cû¿
+endstream
+endobj
+80 0 obj 25608
+endobj
+81 0 obj<</Length 80 0 R/Filter[/FlateDecode]>>stream
+Hd±$7D¿àþ¡3UA$HÚç®}kɸsëêûõ¨nõj $¤ß>×¾ö½¦]½ßÍû¸æ½ýðÈß3çõ¿ýû÷q¼Z·7Vúm3úÕïξZµ¸þÃÚvÛú^×ì^«MÞÌ=®~»}ÝÑÛ¹ÆóøeýÍ·:çÿúþ¶åójwߣóýï6]d ýô¸lÜ>ܯ_¼
+ýz.Îh¦£Æeûn¶Y×î1÷åãÞó9Óûb}'=Ü}:~Ö;ɳ2yk-ä}+Û.\üfkÅ1³J¾XïäÏZóI>âÑOLÒÏÍïnk\ßRùHÆQú1ÖáGè@UkSR"ïD`V& pNs2â´-:Õ<UM Xî« hwÀ¬kQÆØz\
+µý Àö[ ì<Tr§â~ox¤·6D/©| ¼A`À5à×DÀF"Ðï0Ã&
?t;¼Z`zt±b6Aà
+\`¾_´¶É¹Ý³o¶FdÄhÙÎ~ X½%*4 X[=2ÒÖ®7~Q`èRöFÔ~ç?]ñ%|f8i@5Ý9h»ÐgÇÙíWÒâL:vã§U%°¨£:lN±¾F?ÐCx®ÒÌV]ÁwçA`,XF¢«¹È§ËÚyà÷´þÒ3y¿ç 0D&ªÞ7øËmª
+\Cp-uÀ O!ÐÁƽûÀ<-YïF(èP³QûMæë>Æ
+¥Ô K
+ZV-³ºZ ×2®Þ¤ºýÈd>¦ªÀGäSCÍ·æÂG*ù÷©¢;³Où·T¦§ÊæÈÏVço!`Þ=MÛ
À°éålBt*°*,ÚRèq
PÈuB¼°CPþ¨§= âx<ØÅÔ(©,
+£6ÊdÈ #ÙºÞ5!èFTÌì]I4pÍËjOlæf.?$U0rr¼
+ÇlÞý©ä*s|ÝA¨£LSþ{&2ÇØØ7ÏdÌR90!C½ÙVýT)¨,è½è²RZ"EF¶cÝP4ì«
+ÄN¯ñ*ËÿÙìWªÒÆ~^~jÍ bR×'D$ÉÚQÕ]ÀÂ\Û린^µ ¿«Ùr3MmR«OzÔáHÕw¼x¶d©Þ¦"ËÊNÒFº¯-ð(
5iÀjú}¿F,Ò¨à)ýÜ>ä>wSP,ËúéiêT`2ïô\ÒS¢CNÛÊÄRËl^£*ØzgÝ~|-H#±n:9cHÍßø´µË}ñ÷5ÙÙ>]2Ûf#äR=Ë,2ã¿CôÎûÓ@,55]ERÀߣüOj
+^)0içªËUnG~
+FGéñ¹Ô"
+ó8ÖpTP&Uva6.,é²rQEz¶#çéª+3.iåÝP9ù¶i`ºXÿ¦pkDgøнøk}å%·95ÿY·[úU£/Q¯ç¶ó_+Û3ÇëÕdnÊ&µ ò9>ucùZçWùßPûV
+ºië«SO½XSÚÄ|éG×!<éxüòP²yEx^þ(ñ+KCïj+9Aµ×?"x3Sn@¤ñI¸ôVwÃ÷K®¯² ·>§iá6k·`ryÉÁEçl}}}FÉå÷¶É ¶Øº%&èã{W¨£hE¨§L6|Ì¥r^¯$>?éòä¼<'ëºKͧå(/Ó"Û'â¦K®M±üÐ$òìèöñiÚé"¡Á¬<ËA¦ç¯©Þü£ïBÑQÜ$þLÜ¢Z¦óNJ.ó7;Pj¤2×^¡J_ è@ j,M©¿?fÈɶä2s¸õþM1µÑe¿ó~¢äåOT!b{Çlâtý]ûOªy:ép·ºê¶øR¥ya¨¤±¢ÄGs¹w®¤³däadÇa14úFNÿÔ¶³0tñÑÕ,ã$nzß}!ÅvJƬ¬³3d3#äß
qZÈ$¹ZA'ÊEK½L³*½5r¯Ýe.O]a;öZ¥×¼L*ÝÃdõeE¥ÊêÎ Hó«þ|ÕýQ8K×ý´K8c¤»j»6»æéð%
+S¢EªÊxãOBUSÅkô4öñFÞZ8,fJ%Î_ÄIv$ï2Á´ïq^Ã7ÝjÐlR¦øì²G¯%·èV´Í2vê
+8xR¯ßç
+V&
+ÅÎk±4ªa;`¹ÌÉñ'»î¬¸Ëè#§¹]9Wó`Ì}×SCºãó
+æ&]ç§ë9JP}?6S}/V)éì"2¥«Q¶³HdC_¸Z/@ÎÌÔ!@U±nÈfÿsy_Ü©Ðo(âj!{sÂå#uqôêï<ÿìÑ£_eºÑßw³ÀäîéËhÑQÕB(¹þPbr}þtÜqZ«æf¦QÜl1B7T¯ë8·÷r"¿=ð|Gi³gjy]ÃÿÛåàò¯ñ+±±íÔ¢ö,ïY¨Guåøñ<RdBC-À.z奻u²sh£zÌ
Ø*Ô®Õâ^ÖÛ¶éó<=̦
+mj`)ùÈ@må³Ò°BÎøZaZܬÓPûµ÷$\º"ïRZê`øë´5âø}¸äTÏÍÀÆnVÙOBÞÊÚ¾,×õÀá,
ÜßÔ;;xç9-¤ðsaòÊ' ?5«&ÁCJìõpåHúIÞ?is»®),+#eGÁi"IrÒS¾~÷jRØ)
+~Vì@mtågϯV:+Ó=ÛÖ÷
+~é+DóéZ¬bÆ!#sÔòõ`>QVçîÓìù¡ö(ufU¹°.jêøÐEtÞsæÑlaUGSå³:9ÓEÉýÁ?ÿ¾9U\ ³ÜkaìácEM©èCñàP²&異~^©ÿùñ'nG0[ÿú}òÏ%w?õNÈ«Pïp¯Ñ×ÃݱsÀßÿ»í¢%k;ÈÚkáx|`³×êC©jÍiE{YÜí&Mn
+~¶;Ò.üWíâüûµ(°´Õ.2 nECªÙ¹ý§§kIbÙÓóm0.©Hm´ò¤Dèê®c
+}âEÑR6<
+
+óÂQÃ
+Pgâj\CÅU&¸§gj:á!ÄÔ>UÎ{âUï±qÐh¤è\eÊ82
+5¨$Xw
þcºSr;ö5n%"¼!í= i¡JFÚ ¢ÿôx"j[]EX«(Ä
+sd£ñä¸P{àÇB®ûë_ã0®ÊóN6xôeto¤SªwÁ&õ`[[ÎËͨx2+*L¸Ê Ñ.TÊ<vGç:`y¥öºé¢T¤Bj[
+ügE¾Ûræä7!ÖshØ`L¢ã5,
+ªÿß}kmGÆëªp8ÆnGïIfZ¶ÑÓ×üu¯ôlÔÈá¡á!Û£^qLJD at 1<\ò2p-(ºIð2°¶Íª(8ù©LG|RëNw1Êã*9ðµ¯d¤ò{04To?ZA
¯ïë-ófv¤¾Ã*1ø¼µß¡Kº&o©»N:»ÎîÔà*;ãù4Ú;ÈBÕʵ²m%¸6Û(PCt4öNêÁ¿îÅSóæ£Êf!ô[À;ôRfjôH?³G´8Ï;2X«ê=§Êö .è
+~çèÛºëzjwv¾LXOÙa¥âÚw2µXùûÌç ]
+nu4Öì'ß¡±¯Þ1$àúþ&%³TÂõWè©ä·ØA^o¢ñ'±Òce¬DÉ'ê1sPX
+)EË»!èì
+ì®õvÛb(ìoTi9FÉô^á}ù)iÌk^=Ì,È\Rrÿ#àtÙyØxRÚvý©bÑ
`4gô¸6ü¡ë¶³*½3à¤Ø£ÒÊâú-Ny2wXã³òDø
+nO])Ź¥2Hq9*(|K}íÉI¢³d°Õ;æÛS}Ã3ô5½ïá%èצTÉÖø«zRXÄõôøýmL@ß½j3§WSêæ$¥n¸];¢ÆèNÄ+ªdp=áõ]BâÜ××P6ñÃ33ã~Ãt¢º¦ðiúRD³ÒÕúÍGMw7ÞÑwÝü
+ÙÅâ*rÖ3nawxÚå·]YÜ_
+icObuÉ´Z»îã¿)Ù
+ÐrFðq[`Ýý௤
7 à³62Ä?ròfJɪí÷ÎæjÌ»vò ã ç
+êC×ïzµ7ä#¨cBR#Íà¦D´j©Ô hêÅhÆ}>sÏ¢ÓaDEò¶Ðä½í¿l£#
+c´O at j%IÌUú<³Í*|W;ï¯Z-°6Ê1UCBQ S@ë CöÖÛäÁ_ñÝÉñ~/l/³!P·Y9YÇ,²l.zHE¶ûí.Bùikä9$)ú¥ CC0Ímn
+2b|½¨)Tæt"d¬OÉ v²¤H±û.2¨\tÕFsé¶ùåñ2F:Å6²Ó¥«]ãf×
+²8
+üù¾%oG^2ÆIñ(åèL0D-F~Þ
+bÄçmeùÍÙ¸_¡g
+TpÔ ¸e&LF½Q6æZÖ§\¡`÷¬«
rNkLÀ
+É*z®cY¤+pS3µ¡ÜIïÀ8R)øO!xÅÏȽHÆ#3¤¹rØ*î%
+'8ÉÒV!@OrEòaõRNxå¬þÔLö¨Ä{r&
+kÆ
+ÎÔðÑ7aúcóºÑ\×oÂ
+Mºæð±
+;éÈ/s¿c~Þ>þäöå}öÑO~þËúçÏÞý¯~øá¿¿÷øßüåÛ÷1ó³ÛÇõ·o?ùÈ?þ$3FèC[ÄIÿpÔÇtûòßþ
+ÿÉÝÚíóÛÿn_kþËßê')¶é"~>øq*iâ÷½þÿ:fxówÿ÷FÀ4q3·NÍý¨ç..·Ñ® ?A<Íú07s_ªtL§ÔJÝ>Mhèo³5äüÊ]ÅN³8ò½6ä$q¸!źÛBÁ/d§dÿÓ©øPUá<=®R@£ O$
+Þ®'3r2*2Ñô¼H×Ý¿*gÓptõS2msuÃk&( ǵey¹kZuBY¨¦&ÛÁÈÐ+Öíà5Ø;
+m¦è^¨="1uBîXHÀBQì5yZ?pÜÆ\´,ÐsÜK¼=ÒÜhhèK51Þ ·×\Ȳ ÍM|û{ÏettâF¹Q29¾-l$®ÂY0À^"2{7g
+kÞõض¸îõÜärÞDÝÐ
+"ãY1;ê¯!9Q'âßð¶B®{!ÆsgtL¶¬'CŸò©hWCÐ÷¦q£ðÕ7M´BEW.
+á´ÚÖ÷'*½ÁÄêÔxß{®Ü®RE÷êGf²e±ß7B`YÏ°\d9_;5 H2¡9¶ÀïÜ"ïÁ¼ºiP
+Ããî»®s Å`i¬°sXXá.$«v̨ާ<àvëÑþ
+ªäÕûK:ÅrÄ_åǨ¦(¥(×"Í1ÎH<¥{BºDryÐCöØPùrMõÓq7ÏHäOÍ¢à¯éÊð^tÕ°¾p¼EÆ1F±yè]s
§xÖ{÷:g¤~íYÚ@àe1Äjìn·WÿO\@ßtAâÖ¬{_z¡ÅL¦±§7Tû$Ã"C13GÒ:@Y;oñ ±´ ñq·|öÀm½-Uç-ãð(¤,B¥F<ä$B3ç>Ö
+ã )áXS¤¢;OHRoAj|ª\³¢j4¾úâíÅV¶¥xÔT`˱«kõ`²£ïbêýsu~6ûÙn7<U ¿#kgG]Ií(®þ¬¬< ì;,Ü7zñkøBÔ²ðçÚæ
+¹#¯;#BKÃص@ãÛ«¹Ê£Â~GdZË`E¾ÃZ
+Üsôýt÷æÉ´;iªMû6ã*ßùÑÛìÔb"§ »sQ%M Nê¥'èüL}©ÝL¬Ülð©Ç6°n!ïÓºOG£,¹GÏgHTPZüitYàDËÁÕêëÞUA¿ DaÉbÜ}Ò¶öÌ¡î8µxÀÜx·1Nr§*£)
+ÿcµ°1¨(IèÝAS\}ð ã@`KÃ}66MICòôäàL#oíO¸üi°Î
+
+w¬k¸¨u>Ô.gàeo
+A|
+í°ºËåÛK=¾ûèÇeOÑåûÓ1#eÝÀÝ©
ßb$áOe «ï¶±H
+,®wÄãiÕvÿñxz©¬ßÿï*G$Ç/Ø?<ÂïC®SÝ6+9ű§ß¿î S=R
+~G'é`JÃyÞYª&k+¾ß÷¾Xu=ÍÔë kKÓ
+w·Vv÷E âÔöùw·E¿
Eß¾TA2¨)éFY·á+ã¬^àá]ÉÛSئ,¾b¥dt }rfy¢7ûÄaÀ×<à4
w A:"Òu¦
ïV&ÉÉ=¼)hl|LæúitöKìq<V_¨G°G{ÑEßÖB¼O
+älí<ú-ÜçWd ò½ÛQpMAûµ¡ºÐ©^Z;dlÕîÌ'cêѦ@ð
ò
ªæþ_±TuâörB×'ñ¾n¬´@®]ǽ(ÞXi9PW
+}óqãå¿5Æ.P×úi¨Xëù±grßVÅTBAà^k°
³á/3{4¢>JÄ\V½¨8skî7¤Ë¯l¯Å¢ëQ
?øÝÄ]zË·XbYøm¥å¶ÊsGu¯áHq£Ë·Bà²Åèõ«sùYVÚnß«¯Ñö£Bsug7ªµW_T{säÝ@Øìv¸®µ;ÄÀP×ó<7¯^yìvjTã
+©úû/ðÇ:E¡"ÁºÌç|u¥y£%¬S{²¯×=ÆArXWÛ7.¼3ÆdÆ"RÁ«,¤ Þf>ÇLy?çU«ãÃà¼AèÅmËÊmϡШÛ:S²Ìazw[|$¶HY¼æÆk.Ä÷6nÕÆÕ4(dü|O¨ýy0gáw¸sö</Â"sþ
+B¬¦·i°5ï~'æÞÇ_s:¡Gæt÷a6ÃÝ¥ckm7ãw[æþðd°·u$u¢Ìz³£HtnZϸ³5zE»û=oæù¤ ©ãºÂ¥Ï>/åfüöV_sWÂ6Ý(6qÐ^ïR·
+g©»Æê+TPü:òK¶
9pF·ôæ|Ãy¤±-|¾qðÛ¦ìêRá5]õh¥ÙöUEc
+[U÷~àDµöx}®«_¾Ný è]¬"0%SºeÔ÷Ö\2úò7*ø<ØÁQü¸a:8à¿?EU etð齶ª,Úe×ghóeô;´è×Äp½õA1{úøÁ7éé
+OK«ÔÌ®v¯¯PÂMµa²æ®¤´±ÿvvpeO¦Jòj³.»"ê
n¶0G(sÜìjoHÖuf
+
³?¶®`VÌ¥AØɲØP2´*
UÍY./¼hMÚ&±©'ê$1®Èe«<B^
+}Ý"[|,«Ì>Ï·GwH˳@U'+]50®µñ˼U"|ug&ñÄeÛ ±ü¨<çÄ®&°¬4< s*bÁêÂH#&íij5÷EEeUéVA2ü$ó4W[Ö\¡Úث٦0»o/ýô
+cÀùr/DØu
~nËmË´d.±Z2á6:°J
+,Nã'ÐråzUú¤\ /k¦4)P¸+m.'h
+
+þò#3Y5óu
+éäýÅï ³_MOn*ÊÑ
+R|ñâ´4cC<ܪ{ÒxÌ¡¯ÂåxøHå$|ÓX¬ÌÑë) ýD.'Å{:Sïq¯¶ðÂâÌö´&¶ PÞ¼[½TRðÜ ¡sä\)M¬\Jk
+äC9
+gÃ.Å$³Lú©¸ª5³NÛD¬bD 3-spe0Í;1_©¹JÈ0HSàR5'cjÒÜàS÷¥8Îxa#?BÇÂ.HÑøa6ÝàºXùÑD:®!»$bµ?t«T>¸"ð31×ÃÉáa«'>öLn´²h8Å&ù@_H
+x¬hº·¸+¨ÔðAU"ÏÂÉÞW¡®Ç4µ°]5Eac¬TÆÉ·õRr[_Vy
NGË{iF¿P!ß.úaõÞiØ [T%©â«#Ö{å
+E¤®®îE
+Ã)+ lj*¸ùA¯
+8V9ç¾î,â9\I÷Se´ ¤«H^dYP>ÛG|¥IÖ?¶ØÇ)Ö
+DxrÃfÊ9˨PQ¯ä,¶ÖEÐ÷Ó?#
c«¥Mm]1R| bÿz{ÔÕZ âè2¸/yï§Ï Gpµ«iÇívX¢(¨nP¹B'Ø%ÖÝNTIPîÂÌÌE½êTª¯O(ëÌ (r'kNÛÒ1mÒ»ueIþÍ&3°ËÍ£°úñí'ÓâéI}©¤ëÿI/I"
+?ß¡6H°åýÂ,/0
°B£±
\#ã,ÞïDdÖ_ÝýnÁfz*ª222âÄ9ZêLÏ=ÏÀΤaÔk5ÚÍo7if/zÔ`H6
+BS4*{hÙ¢A½áoÉÖå
¯«däm½¾ôö@ó;-ÉÓ-
+»»µÿPÎ3S:ðÜÛ¾?¤¾´î*í¶
+ý2í·üPÔi¼x{Mfßîg¸ëÛ
+¨Þý° ÙÎLûäõÄÛÏ®
+:¯z.>E¶
+ \ °÷`91í×o¯i®}ªÇëRoËTÍ&?Ì¿ÚöÙë¿×0ÂÒߢÕq~{°µy¼
¹mï;³í³×Gÿ
s³SaCñnk¸^âS[:ÐñÜß!ùîµtüí°^DW½#90}Ïlëäõ
¯×dººêno%ÃPR<µÕ# §¾^5i$íÆp¤-Àµmb>³×¾~¶ÑÕBo1bÛÛ6|?dÛg¯'þ^Ã5ª^Á_¶WضÙûC_½í̶Ï^Oüñ¸ ©ºñ÷
+µB/Ñb2
+m<<rV ¤é-Jk¸¬`Ò{ª
+! Èü*bAײÜÖnq 4ÇØ¿*ÍC#O.M-6Àb»v&S=À-0µüÍ-Nç)J¾E
Cdb
+/ÍoOoQ>£Ó4º¢át!ÄGkí¤u`FPV
$¦¡´èWa&ë£GÀa~rïóð°r¡`ÚhÝ_PÕÎÄëæPâ£J"@Ï\&îJ; ÖT)R?ݼ+z©NYø¬Æ%±
+'ÊÇÛt_)ÍÜáðæµ£$Ò}i0+@㣱â¾2ÓBt2}«"QS4=Ũe¹¨-gU ~÷4³
+=8Îî
+{@~yXWW
+Í%1PP=¨©yGèæÁ´¼Þ¨#PO5¡ÊCD
+þìZ± øo:R1vTéP&ÉQ>(µ8+·wÁÊÕ(Lcu¢B3·!ch :¡ÈõÏfKlPÆF'-G8-±Ê+¡(
+«Êõh
+¢(7ï*F /8ÏÓSð«ï6íïf
+Slñ¾!©»6óGýB¤þí®J[>ò¸NÓ>q¹:º1·îL®^-?aò¸úwS¹~ÄüÊw.FDùÈæDC²»g|Ä¢WQ eBà
V]²ZË°)È*:^æVçEa>MP´©© îi«ÆÒ=Eâð0Ëçê¡í¯çêB¹Ç{ÐAäýÁ¹Üò8ªØÁTÚ ôÞüÁúå.pîÔ¥ésü¸µ,HV¥ÕY$-KE|Gßq6ªÝí3H¯vOØêwwÍ·?å¾EÏ[×÷QG9²^Åd]ÁßÆÀ1 ¢u\øô¹ Ãà glv2.«ÕOïúR¦D!L°]ÜTHÖ漩ßgÙe##Üå?\I¶[»C§!¨ ªvö÷o:>öoeÅ×VAÀÚÕF±^·! õbïs-sÆÚt~å²Æ¦Ù5q¢N8ûsµÊۥ̢5©ÆÙWSé°ÏiÇ¿Eî°¿ÒåµMYÿ=ih/çøCCÁÌù&ÌÇÉ9Q)ìÈ/öæ¹Ñ)ÑZ"Ââ%x¹¡Ú0ÿ^<^¼Å·æÀ6ªê²®á¡¹ëû:ì}6
+¹m³>º[Xr¸bÊPÝÙ»áL²7ÝT?îÅ Ëøª+bkèSd¯`.1Èu>F¶®õñxÐÕv+Þp
OûHÛÍ´Ô/
+áÖi¤4§OþàA·
+ ¨oó®¼×:k°x±½ÝbµÁ§¢!ߣÿµæÈô7ëTØÛoëHf"æg ¯yëÜÝéªh0±ä!Z6w×Fö#!1bûfÄðíÉ0jùÒ^iÂÒ_ðÍ
S¢|Ì_¼÷ðÉ
+þ²¤Q$³0Bô±¿^KWfpïG»iáÚMv§S'þ/¯õ bxµ;ûëhÄQÏdKVÖ*ÑõÛ¦ùøFÆå;®Å3T&îã1{o²Jw·ª5ãnPnÍ-àRÊúTÐÐó&5võeDéyTI\c$þ>RØV:ÓûòûÂMÊß693¹Yd±g«É-×
+=ÀNÙX¨DR+ +8]cÿÌÅêî:wV:nnò6M(
+ ú(ò¯Xg]ÕCªk9ªJÍ?¢sýtªNÐöú
+S¶ÛÝüu< R½)cÝ1èãjµØH@é±ôÖUTm1ÓÊqû(R¶»c&{;嵩̱ÉHV:¸¡X»K{±mYíTêàºÕzD6³H3ZÝ;Z³O&QyÉäþ¥¿Úf¨eQÆÊÌVÕA[¦ÇA!dqÙ-ªPBDËèçÝØÁ]ɳøQ<e¨É×Jy~c_QRiüM¶ò)Fõ?õ-DI½RAÚ«Ç\`<4Ù¡@!1þxÍØ3½Õ¡eßÍì¤sùf´5nãð:-_Å´o·éxLÁ@ÅJie[×M:#Ï`oX[FÃî½ã>ÍS%ÿûî±²u¨îTð}:G±ôÓ8*ÀÓ7=n÷ݶºªxß]3x¦iZÆx{ÆÈ}~Z¦|EåÛràÛ+]alÇO«öy:¥i'õiAöoà
+7ý¸Ið!½zzñÓ Ôc}úÃDÎÛÐ]þÛüfSÒ§9²iÞhü[ÇOg´º/¸ýÑc<mA4EÒ7GÐí1rÍõh~;â{:}"9"+@ib²ÔÒëCôF,·FyøäÐÜòaûI-ÃÈ©÷ÇÖ'üòv 7ñ8.½ÍM$HcºªÞ =ÒÜ">¥3LâܺìûÖw-×g7G£nç×Ýètþ+FËC+wàïÇÀB! Ud±zï9U®æW©¡¾5ò4×wºÏ¼É³ù³«¾UF5y¶mU øYëcB2Pªj73¦Àe×0áa+Ó¢`¿DXÍS5-51jØ·§íUÚÆ1g+Ïf<H#L(ÏGL²Ó.yiuø]o3nRU ToÓ-äáöiRÉn¾RïenDt.-ZþØXmúÇõ`ª1Qî¦×q «3òH'ÛÙáÕKsÝwpäµIVc'bÜn¾Ã)aîgwÓ?òW
+¬Û¦íBo¬vÞ|ÃuøÝ~êk;Sëfy%$!yþTonMûwq#åùS[ôU>ýVfÛKÿ©,(J£¯OexiÇWaÝÖó·®å(Çâ[Pqç?å4ûT³)O|åsßô©-Ïð±;e¼gSeC½z.Kó[x¬Xjøæå«°®âZ¯O/ç
+Ê®¿it ;X 4j&à9M\Åùmßt;³æý¤[
íÐÜDÒòc &;Õl}hqÂ?WExfÚ0tÿ8:o"¦KÕ÷`vª÷ºb²Ìâ¡]ì¼@]Y-]ïrÌ h´<h§à~Ê[ТX¦:ÓÍàdröö5&Q2,1Ú¸²¼ézB|ÖÂ
i^7¸òfSb¦Y2÷wê&ÙG<
+
+xà´D¨F¿sÕÏ«¶9G
+9õsVæ7gA2ÈhßC©B£»8FÆ6'Õ JôÁæô³¯ðbbªÓ»¯Åìiù«à+oôø>º·äQnrûD¤+¿Ù½æóñÅ×·íîª#N nßa1)rUÀTfãTO¾äÖ"K²x²¢w7dãGVþ=ÏØjÆ£pw
ÛlS@Û®É#PÒÑÛ²}]qçs'ØÁOdBy¤$Bªv9Kÿà¾tTÍ/W,55
ÂVè´ÓxFÙVìé/\Í×
+¬&@Ak¤¢ïÏÿ±=r¢qU8ôtÍuÙľ¡
+U¹³ôZ±c¿å æØïôö7¾ØÃþ»zWàB~¶&weæ@¶ÿO%XwX]ïÉ£ú¥eI`~7ô!RK¾eÌPyð<¯?G$_ù^oXê\ãö]n?g«¦°´8[3ôÎ!Àg<ݸ<{¤"\å±qËð
+W.çüܨ´l&¸'°åun./çîK.ÓĪ7}W i@Ýd±W>ÏUªïçGv÷*vexÄ;TH'vÕýà
êåÉ>Ö)þ
+µøq¬Î+ÿG{ÕôZvÔÀ_0ÿán`×învðhAQJA³ÿª²û¾oÈEÑãÛ_ví2øwu
+Âβ¸Û4/|E¼^÷
¬ïJß®×A ú
+ýõ¼n>û CC-(Ò<ûÑ´jvEýt"oa½½,Ä«Îû@ôº>Êüø<æUI,Z%æ¹]4mÄ°Ü6)â
®.F<y0<Æ´óé
+±øü\ð2F5VðNTÜ;ÁÆj>E!è,êO®ü'd»ùPY/ÑD
+D$Ä/`l׶¾@ÜîÃ=[;
,çÌgh
+ÑmH¤ÅN¿rÛÈDhº°×ês×O«ù¼äãÙßÁ^¬è,o<wZº+h-Q« k'"±LoÀ1ÐÉ&æ¶FESn%ÂKü[îBRiJà¥ù§&
+ÐbP£
R§Íúæé1ÚsV"z¿R¥ÿxÎ(·¢ß E&+Þ;A½<§ß\9zîlBHñv»©°¾Ê¤~äy4|®¸ÒW¡?§
+êºHóÝBÆl!v-ïüw¤?æ<dhH9\E¥À
+×ì0³{`ÀÙëÔPű&Mq¢¹FÅTQj0~¨D ¦·Aà§YýbàR£ä`eS5Æ»FÅ«Z^m+Khj¦´J¦fMÞ¼;éd¤èoÁvcúBeB
+ró§&+1侺eaÂØ};]éFî¢äy7êMBÂ%oR{J¨_Ì)ô¼è.«¿óÙýìõ}øú7úî»÷ß~ðï¿ÿË_?å§ÿîûo¿ûûû¼Ùÿx Ü%¥Á ÂS ö
¿ÇÿéIÿ}ñ/}þÿüÿ|´Ç¯_þ!=¾ýßòÏÓôk¦·).-6~Âtlü ~ß²~ÁÿPéñÍÿýî?ïxPü5üRoß ¼ð
+áß8#ÕGÀø~ µäs߶u6جï¹pÍ;f2ytÙ
+ç·E{]庰íuãZG!ä3Å9Öáw³co·eG¬Ó û}^Ûð÷
M{Ñ{®u£×µÃ6bo»ýhô#ÉvÝÛB«á·tÙòe»Ö¡%mÛuGÅà óúíT¯·p(Ó{ÿ¹§ø~ÇýÞzí»ßk±®¶åq1±Ém¸£ôÜ1n''¶O>öÎÛ+&.Ì.,lwÚ,öçÙøĺ¶SùùÃÿþ'Wòð!±ÅsÀ7þÔI¦úå´qøÓÑFQß.#<ûIó ¯¯;`é
+ê»vìñ¶#´uÇ Ët°_Òa7v:úõ-Ù+×¾ý ¾Ûì^W×e+õs7êïó´XãÚN· þ~G9¨ß>Juõ°E¹í,Âõ|Ç{[GwÉIOØ~DË>.Üi³.ÌêAýMÍzPz}DóñÉuù5§,?óó5oêÿ÷²Ïé4¡9ã¼Ù«·hKÙàG¥÷QÙ¸m)ÖÅÞX·¸ê%
6óóï¯låi±ï=ímÞqG¾öX·[7#w®½(¥4a$¹L²n¶¹opÏæqkÓÖÍ£vÞ{Þ¢øjo?Ö½5Ôå
+#K¼n4?ϦZ}¨QxíÓIï>ëÛ7?¨^Âà7í¢C
+:mÚt¸m)ÖÅÞ6ìÈWZØÚaëAü´t8·ô'åJ¬;ÁJñærP8Çëñæíï<ÞÒ.ÛéÇ
+B~Ôû}^øaç½±eá¼cgÚÙBI|F¿Øê¯L½ éAÜí;÷Iï>ìEiä,ô+f3AÓÍ!6°T
+MwyÉÃVqÎÅt¥ 0{^"¨1;]
v·2)^&1Sµ
¹«1c²ü÷ËÒÜq{ﯼô×ëeC7«:£VLï¼e6L"ÄT/Üê6$êºlÝÛ
+<³(ÚÖYÞ/¬y¯®jRÁ§PÏuè&ªâ ÿgÁ·Â;h+1èõÞ#C³©ZÊ8&²Oî½ÒV+öûca<£4áÄõyÇ5²!¯Y@ ©é»µ©9vhâ÷Âù/Qd:²²¥Áß·°]ë%>Ooó$}ZABlæ1Bë.q7'±h0û[X»xÿ¶áï
+Áge⹩I^ÇkéAªÉ\¹)À-
+®«* ¦Y æ¨W ÆBÌ
+bKÞ%þ×u[(ËuF=^üòC;Ãðì`êêÁWR zë£õ%I!¾¨¤Ã/ åZ'HÑ
+36w¢®$ÿaøÌÇÏÜmsbtÚTh(ûPr£pÚì$U ^B<ö¥ö«Î3±Lìʧù:ÙÊR*Ъh0FkdElË3ê¢Åº3òß%_Ø(óå8£Cß(§X£æ¬h¬ú\ÂNÔd
¦\+r¯2BbEÂ1òp®gýuºà£Èa©íócxIÎVZ¹¼3øßÏêzæ®J~v³ìç=jÖÀÎS^íÈå6lÞC¯À%úÆNìª'tMêõ
+wé3ÉN_] ¦îã5cådÁU®ügªPz=W Å»#>É4F¦Kܳ±`Úææ'XÈBu*ÅkR+
+û°e&µ2kì¨é3Û¢Nµ C:˶6)kÓr¢ÀJI©i¬?!ÿ6rì}è
s:Ñ)¦\Æ&Ñ4Z+"Y1^#)m ìáÝé:9gÓëÉ`J@
+nÂqÓÇaùcº;Gº!Kû»»QÙñ5ÊØdP³uKWAç(µá$¤O\²>Á%yKþx>%£%¯Ú$-ü&ËË(âSO]<vTSõàáÔ¸js6¨ãs?:Hs
+51@?G OãÉ.¨º·Yˤ¶¢#Ø0:}üÛ$ïÞÄ@y¼¸Ñµ3&êlk\ÿçæ
+.Úö/´½éøж}CÛõ
¶¯~GnÜÅHr §êâ]R½0÷hnAw<ûòoatf#uÏ\öBW/^ìu8÷ì7Â@Y{¾íÓ¿µöp #>ºs½æj|{q´ç³îð¢Åïoi'V{ËwcÇtîáÊ£ßy<2ªêç®k]¸äk]^²Ì"®X¥'Îg¿q³xGÍíwXµë®òÒÂdܹÑV¼÷·F¯øí^ûõ~Ö·zÛS`¹ã÷p¨¸#!íPÃ&ÈC%SÇf÷[üå7SDäÊí}ݸ沿ôÅøXǼ^%ÌL¥)×{Dú³X»|¢ÈO6v;Ñ|ØÏo{Ö7LîÁÆÉ5h/¦¤`íÃîöz±±ku"ÍÞaèÎðt±lï7^L^ÁÚ>?|gU=qyæúÉæ'3Þ{³1uOü>x<û=ê5¡WLG:ñ»Õ«z(£¯Îãð (z¯¡÷ÜÊ?ø/úáÕu'ç`a¼
+ÝJÐÙÃÌè (òÉ4^#GW
+Ϻ4ë3dþ¡ùϽµgZ9ÛÐcô>üúz!«HHÔ¥a©Iwgñ¨fɵ¡3à¸æê=
+n¼ÍÆ[
ÄbÙ_¼Ïu¬+¯ac»¢dUþ¾;2ùÙ3º+Òü3TOOf7³µtehÙþà±;Äs mÎߧÑ'd´¢b:L1, ÿ§ö9ód¬Ñ;®±ÃxöbIGkÉ1[ÂaÙ)n«I»,6q<7cÂHr
+º1ôaUP°ç£CÊsÓXbÅHÞóñ§d¾+ÎÂÛÍbÓ8ìÁ±Ü`cΦ©¹MzÐò©bùÅfr£QþÔZ¤£z õÓ¥Á
+nKÑ'K°ÅXKQ¬ â1
8 }zÞÒWØÝY XЪ-ÁFöÍ6+ÍMouá
¸%&UqÛ,¨õ>ΧiÁ/cuAx·²ó¤K&ëd.¼/ê6Ç¿õQa·p¢nSFäÞÇÓsɾ/Ö°r¾P9obF¼{äáçê«Ly×DÆÒØãaÝN 0îê](3³FC.qß;Ë]ÏÊåÞÆÌÑh<Ö¦ÔTãíÚuÃ1ÑìÜ´6¨KÆðqEq5RP§00·ªJS´VS½Ð{PÏLyf?
+îA
+çfëBzee´Y_§1`@àuñêWxo^«ø´ÝJªO_ù¾
+~S¾«'8Ö 2ÈXIJO[³î/rÅÿ{URNxD¦·,<æ{öJÕP£U¡xOâì¬kUÀÀ½5ìǹeEÍV\ôFr¥_#ª&âOmM at O¿jÂ߯Z@ä)<ØÂ3ÚUeº2!×¼|WéætSb«©ºÕåYôBóA¾yOÓp$Ó>j@tN¥Øª%ë²y:±ÖBÆõ:õ<s'1¬´Â+Úóf¤Ç+ÔÅbþMqÔ¬Ù]]¡wNÄð$ÉM ^J<q¾ÉÑ"³S6tá&[k tÈѳD`±µþ9$."G%7
+ÏòBÐ:öT5Y¡ ¨õ¬Ù,¹¸Á^]ÌnP-eZ ,>@õ¢N#٪Ƭ»5ZÔ FîIHTº|E[
+éþðÏÿ£À(h[ ÔÁåÄ{®X!½³!Óú05Îå}@©Ôe98º_´wQ=3æ,'×´\KGw~¤åR^7oKxlX$U_Õæ À´møÇê¾ÆFô_®'½%Á_òò1½_ÀB"4BÜ»MQä^XÄÑ6þKè@éå*UÚ±ÙÐ;fÙuk` ¤|ceBðí˯±ä±Ùõ
+Ì<«ª
+¸¬-mº{.u/,6ÜD7AÞ£:¾ÞÀö
+¿ËH`½?Iß©â{Ã*ÂðȦTìî¦G°©knÿ:$UV®¸8
Pk²ìßYYXFP©úÖäPeºu{ÍZ´_B5 #¡/WÒãúsùP»I]p·T6ìEF<{
+RÞ«Ì)/w,;n nÅKàÿ;u¬s+vêõEö=K#9ØÓMU
+.ç~=$ícOóF4
+>í»Ak4£õ35pC¯bOÕM§°G,z#óa0ÓkØ#ë%Þã(Óî6¬ö)Ó¬|J"VK«y©wbò³âwfK®²²å`eKßëRßÚ$N>Pc5|R j\Ípº£Ó0×iFïÊ×]rñý¶ç#ûÙ\ô#¦Ö'&FG?ö¿j|ûY;qk²oUÀ
+9#¡ Ä=Ï`¶ÎõNì´Îçz3ÈÒ»K~HT¿ËÛ87#×{Ëh²ZÒ2åmpÁøßÎì¤ôL}d¤u<οCeÇ ¤"ÑÁ%#çÓG/ºæðÆtw®êñ.3Ê2[9¥©öåt¥Èqj2F`½ó£±®Ãòp[Ãò
+×Á²Û+s®êfu2òh39å7\m=Cq$DA)0µ£xy]NC8v¼ãÖÍáÖÜ7n4÷ÁÉ;ÁTõдÓÊúRì"´dà!ÒwÍR«Å
+âÉÆ
+×c
ÍhQôçoh$²zHªx¶äL¤MhOh(×r¹d²¾Àtèê(§Hk*L÷ÏÇF§Ð£Ôt¾L¬ÑP»¼#ö
+td$ëYöСòêÕïd
+\~ô%^(#¼¹VgâFË vd ³ôlè{Ñô4½F9êæ¼f#³èdÿ-JoÏÕ!Àíï¾#°óvzâzãO*
A hÐ:§
+kh½Ær¿É(HãèÓò¦p;²èàd÷Õø!|Ô°=kØZg2.>Ípü
+µO¥DgÎñÛ¼¯
+é÷[©¯è8¡3½4n0!º;C§¥dµÖÐ6:îÿå¼CrcJ{ná¨ãl¡uÄÃÂE=G2M{öb5Zºðäb
+tl9¸Ç\¨àid~f;@ÕHgÜë±pÞa,Ba¶¾};ý¡;¯kH¦Æô*î¶Rå4i *oPþ¤ Uß m[.ó&3¬ÖQJh7Bæv=hç£MAö¨®Ì¾Ìù¬µCË:bv£0@>WîUÁ§ rF¼o[E¦R]¡ïÓX«D,+×sõÑ×
+XWZgÅéÆ@ uôÉ~MOÜÊ·
+YÔbKd³¶´üÎxßÉ-$®ný>3 Jì%ËëÁá[[ϳ¾¢ì|ݼ"_~=¡}u±ÎyíÜ:·BáÌ]âLd^Yùí~ýf
+²%M®z%pég/54yö¦~uÁPGþ®i{Îj«`3CvI|%zUWqIþyâñ½Ô¸^'ù© ¦øÌ\í¥ÒìgªDêÜÒÉ:ãÙ=z
uµ|þΩE*µ¡¤Ô¼ÑºYiµ£èá&Å
å\%8¤~±GþHÊSZ{È;?Ë9|®Ë1%+pak¶Ï,æ}_çÒÔ¾&ÁÞ£Ü9üpëÙDß©úúr%T®æ~O*§áªÎ¡héoª%WA¼OJdj8#¿À«³I
+w׺×åun¼*GGA³ØKëÅwµN=ߨĨt=ª¡`»5L~=Lîb¶÷e+±¾L®fV&ñù0ÊhQ!bWLÞõÆÑ+ßylgD ö¥ÆD9É#7N×ãõÊT
H¶b-´{ÚÎZÞ^(Öí¢TeÓmÞ zùiÚÿ ¯öK8£<sT½Ðô×ðÉa'÷ëP#ßÀ³%JÙ³N!sì~ûz$ÉÜ"nÞrí{¸îu¹Uz!!öÈ ¬ÙãºêQ[Ã\OÆ)ÖÝTî
+JïGO³Õ¥o
+â]õrËÞsÎ~>¯8IÂZ"°²´èyGÏFð¬ã<±UÙ¤Øï¹ÌÝ2¯Èܵjù Ñ¿æÌTÓ+a2C\µ.ièÇ÷!?ÇEPkAt«uÜ
+endstream
+endobj
+82 0 obj 22787
+endobj
+83 0 obj<</Length 82 0 R/Filter[/FlateDecode]>>stream
+HW»®d¹
+üÿÃI6D¢¤xÒ¸þÿÔUE¾Ý½¯13w¨«#UÅ×c´±¯l1®Ù×½Ú¤½Ýóúñþkcõ«Ïy,îéÛ.ot-`Û£÷9ê|øêkæ9¯ìãø&a~aË¿¹
+ËaÉeK·ë¿X8nè´f#¯1Íë$_ׯÜÓÛÖg£¸F<v³à»/×ñXrk¶¹#soÚ¹§×)'ön~ÁÎWïØÚæ$ì!¤~Ô'{F>×hïÞöW½ßf.®Å<c=V:'x2®_w`ùQ°or
+©:°ÄS<]4Zzø¦ÄGGæK)ú¡îÀkaGkA°¬#¼3B at Aïv37úÖZshû'sÿØ_0¶²¢V7ÂÞçf9*©oi¦ðþQîNùãu{Æcñuòº?ÎÜ'étíÝÄW2
+²äcs#-0- o%@Åf?
+Ç¥Haõs¶9ôÒ{áPÉÈlöBëL?Ìx¶O
ÈZ(Âð Ùü¦ÐÚ,éâQãD-?EEêúÐZaAEÈvâu!p6ÀE¢r!ãªa½ðg.E¦Äw1´\nê¯âú³l>´G¬Ê;S[¹¥Ô:²x&¦q'¥@N]8Ä·:Ä5(óÐeÇ%Z§C#تÔÜ8oïw ¶Q4¯±ã¦±S·FÐÄIÂ
+¯i']??d¯èô@ýá7O]кÖð)\jÀ}O.ÊTûPxããBÑñ©KR;|$Ã\Kø ueèV¬`yý%xòìm éâÀC¢zA§:
+§z¦yØú|ÏoOíE8Ó>cæS?à»ü
+ü`¹x^_Åt¥Éß1k·êF*øÝ,]oc'P5ogD~¸÷Êï'â7ª|Ç~«¬É5<5¼J,d¨ @jà&ѪÇcz
+jÔ'
9do¾ö~Ü?@
+m)s2橧ÎöاÜR&¨V
+$ÓI$Nýc³[ñ$O$__»&&f¦5õæÄ
+íÍ$âo¡cW6tvÚäBÉoVpX¼'P8²Í[¢ Ó;b& º[c)¬U$ðÝv¿µov°F`.ÒE Üߢý²Â[ôiãÆùÒÑÈßñJõOø>yÍã#×(=Àowز:ÀÒzíOøå[tv¥¤#SðG4QVñouæMYÔR'£\oì} µÞú`xl^á·êIlãW.¸'i`9É?ÁÇ
+?
+cùlCMoÛÏ5¤Gè&.¥C{Üõë¶ñn¸¦£4Ãbýt÷VxS!§Î®Sì:mÖ1wè®ëhP¯>ë,¦SØa{iÕ8=@ßì÷Q2è½êì8¶÷ûP
+×8!øY¸.ª
+¸³~³øPÜõÉïOw½øn2!ÿÑ
+F9ÍÈ$Ø|ú]Pn ù/7é"X^Áy´
v/¤
+¸U10« ³@k# IÇW?çXbÈn2h3qÒ¢¡Ã Ûnc;ëO=¿*2PfC¯ñUip1%[«i l©06±ó8S°P°¼öD<Â\aQÒ(wUv!d
+\-ôdN¢JÁѵyÅõ¿
+à®î®ÇÞµBZÛvªù±Aèÿ6ýG:4ÓÁ5æÈ"¾CvÞý`!¼økµ$9`<
+ësÌ~eü©Ù;=jKJ\"j1)ÚL¹×-
+Öo«®ýBç!E_â¾~S=æcI
+çøWØÀg4K¥Ï-@Óomw
+ÕV,qÈâ¶d´¥ò¹ÛͤѺ{¦#æzGmPÔ1%t¬ÉÖZϽl=gz¼Wäî=³PÏFø
+ÞÂ>;
+NÙ7;zfÌ&±Ld±
ìÔò ;üH/;>$µ>¸WFÿu·¥m¤Ù.£
+¯ ?äøÀ/ËZ?AX,þ|e}zÍæ(wq¤*æzF±Ãµ7ÍQ`ÊÜL%%SÒç3þ´ñÃø»ß
+M*iø+Ìa¨Ù+»=³Êò»$:§"Dß÷+PÓÞÒ1¥¸V5"U$3ø)úxzôÍR!Özd·*Qî'§®Íà;kÝQòÁ´gÁ#6µYùp,tü¾öfßô>3§~ÖÉ.Ô¤8îÜVê*ÐFZªñ÷Û+®ÿÜ0Dv¿¦æ«]Ö©Î';üDòP<åuEßéçoZ¿Éà\ÄØåP(2¬±£ÇKÌMi³üd¯Ñª[û=ÙPE>îµíJdGüË¿8ç
+÷ amgÎ>*[JÏm÷´ÖØkUSOª³&+§Ä6V¿i1¯¾áÖAÐDHʤÛeÆ»²gF*ÅqLÓ¤8Lûx¬çݧÜÏô¹Ü4¶fâDÓu=Õnæ©Wkí·<þÞ
+÷¬xQÊ´D4¹ÎÛ+À
+Hfa¨I'.ÞWuåÖ"éf¾SR¦èk»ËpõQòh`ôÄQ¯}?qZd32¡Òâ¤x¬±L¹²ïÈ_{²¹þå{dkÜ8Z®öðÁ9ÐbÞÃ$®âï¼GÍP'¼Ô Wñ1å#i~µ,Ì?1Í)iHg½yoÙÙG>8ñ¥eì;@T,Ñ¡l+Ù(¬-Sëº\®ÔØ^£ÚÙâ
+Ê?ëé+Æÿ&@ø¹òaÐÐÐJX[c°"úé-MjÉ×¥ó÷z@p¤Õô9üµRÈ
+~IäHB©®öFm,½DesØÅ#²û¦©ÑÝt,kí}´ä¶4¨íBh*ÚMÅ^ËØÜèåÂK©æA'ó&5`T7zó<Ø!tbb¹.Õ;sú'ºßóèQO1HTZùÃÂQ¸H17">Hâjsn íÅr|yÄi²p>#ø6¬}
ø«ø0PIyÆí~¦ÉlßT&{H,TÖ7yK@ðòÌêcÞK7Èÿøź·üмâ4âÛ¬ñq¥-$×N¹{èëPÐ{+Wå²øó{DnþþÅ]¾ÿÃVÐs2És
û3ßåö1d9*õÆ0ÙWäÔ¥uÛé3Éòpæ~Á`.;zø¼Q>¶X¢ôØüOT¯3 ôxÃ`ÚB2"\YeÒ4À&ÂÀï7â8óeÉ°tìÏÖl-i¿8¼Iußb¨Ñi[è± 1Á`¨Â1ì©kK
+Ï~óÞJH£<ø.C£Aé
+Àz-þßø~{v¶n8Í9ÏPDPÅUuMq.µj°6IR˦\¦¿¦GJW¾¹[7#8G£~Cu¡&
+ÕÎÎâȬ²^±t kWøÙ3©ê7çf¼#S#U2e%
+ðK SXzÀ%ïY
+§<æa÷
+ÊåG§âËío§ÿ{euOi»Ìpßê[7ËYÝ}ѳÏÄÜ&Ðú²¸{Tz=Ê%*ë¾f
+ÆoUs±yJàå¨0H|"µ¾¬ÁçFNÐÕÙ
+µ.gãèæØ¡ÝzвãQJ%õAÍz;#«màéxa3]¯Ç¹y.¾FÍÈSÄ^륲³ºÂ>Ú°)õÖéjÄÓ¼x´nn{Eà½Ëþ(>Nê{¨1h¡ÁQéN-5°Ø¾
'*‡#&
pµßa"6DL§âЮè8-õ¥§½êì6H(yhoÛÝVj,w¶
+Xí¨c]axj@Á0áE39¼®¨VõO'?BB"
+¤®Ðní)þ]IÄÕ'ýÙõÂ`IçL<zóÌîû®G?=çé
½ÿ¾ôÙÄWôûÎ@kî0¥ ísY¸B{«|Úk
+=oü>O+ÔîÃiÚiOį@¿q:ÀpJlH×Þå¾A¤ZÁ8'SÕ¢¤þÍ*÷qOë¥÷å^aNýxå¯#ñþxá9
:Éìûy¿ÀßmË2Âèy¡vâв\d>Èéoc,ü%²øWâ)m~ÚÓᯣÆɽºË'(Pð2>Ý
+«Ør°EaHé¼GÕÓ>7ûH$ %?góFÖ?"Äì÷
æ¾¼×ÉiÞ;Òí×eö¸PN½|½ÒÕ5<.÷L=íJàÝ!¬yÁe¤ç¥CP±UÿOykGÖÛ@øUÚ÷%V:©ewìX©ß_ä]ZûæÌs
+@¡]öÊã±-¹ÃùÕÈ ØÑÆB¡fêßF^
׺¯hæoG,Zàï¢ÚºÚ¸oæ´¼×´ÈcØÁ^¹[¡1Ê
+¸·{CªÆ!vîT@S÷Â5
+Â?ù3ßþö÷·ÿëJ õøèÞÅ=æÉ#²îÚªiÚmò¶ó+Qe¿×0$F¿[lz^ièÉW³ ÕÜÒîúlÌbn*#å'ßLc_&¤*×Giתtqé»Zm[¿½ÿ<ùð0GµmxÀÄ'ûįm at Y¢¡Qó|HÓÜ·~¦ßóv½-Ó6Y¿ é2ëRUÅÂ-ÂÖÔ¢zrò;î($®½þé÷°Ä¼YëL÷'ákÓþ2vd6)ôåËâ¹6-Z1P5uñÚ§#
+ùãB¡âÃÌí`ʹ9£=¾ðj½í{Ww¦+ P
+òØ@¯½ÑBÓöà¦ÜE,Ò3pþ¼1Å?êmôÁü½lfp÷ó<¾FðCh¯a²ÎÏÅfIÔê[òSòÓÃZE7)¤>NSj%ú×áuÛ¾¼¿ößS#I`d<¶¶|4] äpE»?DW^èùí»ÌtÔ<ìÔõ¿©Òëc§_[¾R!£µoèb CÑë
l]Ð>Îá,k}lèhéVáÚòÁ5ðª"w!=åÕõëK"¿ó&¨êî0µ®b©ôîñzTõ°µ' [l&(éùÉÿ¼¾¢)AYR˳0oú^¨7Ðl¢®I
+y<µúØí"4 ²60¤FpÚéJª¾é.WäsBe(ýFÕáxÛ|Þ<ºWç·~Iv˯î%sèÔývÌò{:8êçîØ¥,Ø´dBtþVáæøÁ32JeµðB?åvôb%Éf£Qå}S{·UÁtÎúûݽ©ò[¿é«Á%D%]®¾¿ÚB¶Tp#&ViõAé?ÔòYëZѬåhXúÅQ:´ÝÇÿ -çqp@é³rÚ/n<^#%tS´&¨lkËOU-Q¢Õéß-Ómåb_Ündûç_æªä۩ìíêl¡6N
Ìây2;³6Ã¥ZÞ=8µ9+O©º^¤õËÒðX`Í×$|ÒBXQaEÛô
+U)ww$kÁÛ6ewÒÇÙ`¹þÀ`ɾîN&Å6¯xqTN?ÿÿÉÎØâÎ*ùâ[/§AcùTvV¥vÅ+NCg²bìI;[¶`b;HÇÔ¶ .
+½]°êTÃaëK=ç
U{Æ*¶Tâð2¸¢kÇ´vyÿ[ºãíX
+Pàæ@Y+pl¢ºNôç²øSjZ¹ø¥T³F40"ÏhTò'[þMU8¯ÕÔ
X«5oâ¤
+6,B.Ã'~(Ϥ~âÖ¢áºëly¬ÊQ|ÂÀ`U½JwÕ-ywöê/[©[·Æ61à,ÍFòý¬ àÔVÚ©ð¦lÆÎÝÏê¸#"¶®
+ºëq8aDY¶y
+¬8PDÔºm¢
+qÆ`Ôá*C¨ÆÅÈ<bÐ_c¹j lIÚM)#½m$Ýý¹õXº²í<5£4>¶=c»²´flÓÚðXUMëü±¨9õ9öe³è'±
+?ä¾®²ßb
+9ËË(9¡nÜnÕILãN·L*0T|mök"§îÀþÖËÁlݤۧYj¾<R²ÑL¥<ìi23VfÖ ²)¥JòhðüÌ4û[V^£ +msô5<yZGÁïÁÙn)(lPÜ:ZøAÿLû¼ÃXcèJRÖ
÷%dÄf¤g¤OH&TÐk=z¤d°ÓíH¡
+Ô¿JI·"ÏY©ÄrH=##ܨÿoæ·.|ºãüEÈLó_s
Ðõ$¦U6uòØj¤!Ád¸5»Â6)/¯:nµä
+¥7XLY9¤$*D½võu
+@Åãý¯«TÞS;TúUª
+
+Æk0¸¤aY7ÕàÈêݬø>6SZju ·+¢:ðÙZ¾¤®#Ûscã"ÍbÆuð=²×$5)z`4
(8ÔXÑôödm\s§ñ¡FmÏ$©ÛÖo¦§K_C´K¶ïìÊö§ðL¦ñliGVGmT¹/ìXKH|ëÍ[cÍ 96cñÒ9Zá#a¢Wí>>V Û4T!hÏdævôÑó¿qýê)>mÎ0EJÁDtböãQ&^åh:ÈãÌ4fÿc¼\+Çu ºÞÀÿgÜÓ;¢Ö𢦵þ> î-¿nlâJ2êµìd»`?ãî«yÂ^+sIØ]GvúÛ¬±
+¡¹ea(Vm´Ìµóen<2·PªÒíÐ!»ôõ²_1.Ã_£.8«9MoÉsüD?¡åzÝ]à5·FÉ,&ï>ÚU½ÉØÅgDRi_m.#ú°±Íl×(WÒk$Ïe;¬Ü§=õ*|9îÏoóNmJ½èâ©bä½ÈA.ºC:Õ»HWjëw"
+íݳw·+2³ßáÒÁdà?@Ò'NèÔr,½¼&U!ùÚ×Ã~~âä.óT4ÊÈØ©ÛikÉƬ²
+#ÞJyBBî(Htó*5¨ÿ
+ãƹÊaíCóN(ùTy~3Á
+uÙ×ãýɸ$PùhÕSóËz#VÍCïfßþÕ0Ø.«ÎN8Î1+Í°áÉ»ªµ&Øñ<cÁt9Q}ÔoÇú.§"ªêÃh§ÝFL<×EóK¾SGmùºÍ.ÓS_Ì<Ë%9Òqu%7£È©,§Y9IîÍQ'½ûÓÇ ¼ù+ò÷Ö*
¤l?ý}2V\±ÀT_Tòoi©W#XKîRG»ùPªôE×ñÂÑäYó$,ÖôÛÓ[Zá_ÑEnI&(/é¼{ÿO2¯j`5üDF%Ñ69´éc(wÉö®ñÖK
+½P²Ì´ä.:{\@ÇhhêªAhÍëS ;Ñ¡b9K½Äxu^±C
+¶+Kì.+I*Hû9fö ÕÒõ|*Ò&6&f;x<¾âVºâ5ZÔjÙùGZ/SIPwÇgÐV-»Ow$·jò÷µl»x½á¬
+þê3
+ƵþóãíÞ_Ï_¤Æ°6¡áB¨8RÕ/î?Ämó°¹sÝ®é¢ì!Ì°ª-çy¼6LÙµS6²Æ´ä)¦ªçL[Å
+ÏÁKbnÕÁ3b
+ëõì)îl+ÒyÈ´vBU/^¿òÇ3ä/rÁób
+vÊ÷!âgÝÇW¶ö!Q´<#jB¶uó»ñ%Å~Þ{pDsþ}¡f?D ¥}
+ßC°<mgZý<åÙÔ p
^`8à½OcÈ°ÐØ\OÞkzª´"öDÌj»i¬hHq
+)Ó©*®ÆSÐùF¨´ Å´sSÖk(ÍQâÍåoæñØííhß5\Ì&¦,J¯~£é³DÖl(
+ÍCðrÊÒfµûôG¡ÛIû«(2ç&è®9ñº
+8TuhxDi!$"HPÊÆÚihés_+WNòÚD2û;ÛO§Âã±4åä#¬º²[tR$'f|å]VÅó¼Ætí=!Cc×Yf ?Ö½}~%¶57lM"w_ÙèÊÚ,~\²°o¹ÿ7wÆvUãN,'
+%ö¶Ò
+6Ý\º&¡»¶
+6ï°êÛO×ãüBÿÆ4F{X6üº0E¿9uQW±»±Ìô§¢©'Gø4ÃBà[çÍäµéÕ¦«Í >=硦?,K hpç«KóOK²f4òÄeòEÆ@[oQá;BÿÅ ?P qÆåíI¦´YaííÎU1¥"ÎdÜÕe,a3Ý´!'PéÓÒ4S·nªUÔmØBÑÌnÒK1öÕ)Pƶ¥¢º2ª¾ì³pÂq«L4<)¹º$hʵr åN,!sMGÚTÒzãZÿßè;KÁ{B¿6ÃïÜÝ=H U8¿Ì']VmÙÃÔeþMÙQýÔ§3íh·Á R²Û}*GÞ®
+C·xïþøóHßbzÉ¿R¶Ì('9µMÒîíËxÀ´HåTò$¼(ìJnôÍâUÀÒ@ñùålÀB%<O¸áv¯.³®ûHãoÂ.Ãשÿv§SIÖ5Ú¢yg¬üêÕàYѶ¸?á#m5¤#¨<¼ÜpËÉß=MÄ£ÐsÙ©k¶½Ü]tû繿!ûS3{¦wÞNXp3&Û¢yQ,ÉX§«ÄÕ²òi$`T¦yZnx¯¬. »CFoAvAÕwÏÊÊÀ[£}ROL`JEn½è&î¾%¾³©ÎF+¹®¡æÌHØôlB_ɨKÎ; ëîLtI1»kÉýXR~ó`vF,Sä%ûcz0ÂôÉO C°ÑGæýÔ¤RGÇ£ÑÜÂÃ,ºLRY3?-6Õ¨×3I1ÍôQ,ÐÄÈ'dÃ25ä{ÝP]«ÔÓƳâ#i²
+ù¶rªOíC¥ùA<³ß2Hj²Üæ_WM§Î^vo©ûüR;]R¡´, nyõ°5»ZO,PÝV³¿74îç¶Bëär½¹â´Kï2\#*Ïmí/sÞ%bË¿a1[é5ïVõNqï2ÓÛM`.¿Å°,öÜ|¼;ý^aÓ;g¹Û×w¯3·ìP?ïÛD½ÃÞ½ÎÒ¸Åæx®Çï?cE¾sÐÚ³³´ïÅ3¿ý?³Ø¤ÀZ7ÒeÐItØGæRÓ½±ñ£¯FèÇÙD Ç¥Õã±
+VZþ5äG*¾é/ǾR
+ì×sWRÙ»<·+5f{ í+ À§NQ¾òïÑîª1Bä]¢bEß]åtâÚU¹tJʸMÊM=vz©©Î×ǨÙl»
?:µ6z²ÁÌÛ1>ÿú?Ú{Í¡ÔÆñ¯º9@èñ\òçþ¡¼Jì¸uà þú
+N
+<Y+åeèµåD×<]a¥
+²BÊæóôÓ
+Hu2äÄë¤LSBX6ç~Zx1:Ì?]ìlêN65æÕV¦iMJ)cÒe=Ëü-«´WÍmݶÖiÛÕÎc]5wëN¶â{W²¹×ÎD¶q|ÑuÍ5 ß:Pü´5v>Ù¾ÆTpöÒ\f
+Ip õ¤]îдÍ!ùÓ¥eC¡;u²ºSȪoð^wÁýÜdæ{Usýx¼ÅæÕRúîÄV½WMl5['íÌvÕÄV
l¤ÄBc×N¶rö^[?ëòyf6&8[ÃêlU¦T6æ;[·3x;[ÑÝât¶ÒG Ô^éÜËwO¿lêA, ºj_dC!W:~òpb«Fb«?&%¶êY8k6[gSÓNlͼ;lM=$v¡ÄaÁ¥ý:z=»ß-/±ú3Ã¦Ú G¦@6IzD[ú\BÃNç1¤lGàXv·v?n MÆ
+5_Êúi!
+0Ý
+µ±bó(Z¥ËN@<öôx8WãipKeÖsë"0Ñ|;³ñ]ÆþzÞa·æj¢H¨g¶Ad©[ôµÙÖæE¶FϹ1Mí²ªÕüßÅO÷£ÂÑ0ÌBDð-Üøn ®&Þ¼EÛÜ֮˦Ô4ÇpÐcêм¤ÚO8)ã_ý¡tñrÕ£0W!d;&s¤%½¶ÀvÞ|øí@ÌÎOW^r_N±¿[~$ö¨ÆAõ,ÝÛh d$ÕeÚvæ½ûÜ{Ct'ÇA}¸úfG=ï3¸Ï5Ï4z<l-<N ÷7<ùmÜSÉû¨
]Pê0Ä5ùñÔ£[`Ñ¢5÷ËÆTÇ:ÑÖnÇ·ãÙ*ôú7 ]õJ¦}|îøû÷æ&à·ÿò|ö´FÚ+é-W¥æyÄCÏ}ÄávÛÒüàÓãÒ_Õ
+_îÞáï¸÷æÚz÷g~ÏüvÓñéMÖÁ0×ÿðñò\9éhÜõö§ßþÝXF¯úlÓÀ²ÙxÌkAäq!/ðpϸÀµ
+-|Å5w}ÕûxÖüT½½âyõpî·´<wú3<SbBEÉpa» `]¶ùyJ÷ùß%^ð§`ÎÂx¡k]¼Èy¼jåÞ7<1zÜ:Õí¬ë) ÔÿVÓÞâçÕ´·Xì²î$Çónìëø2bÔ G¯Ö¬³÷¾±a+õ%÷H?¶ëK3ÂÂvÏ«>.í4vyBÉÖ?ïúìÝ`®Ä^/yTLë®
+xlÐ×®r\V½È`_'OÑ_5]s¶ß´§êµm4]O´©Ìqï]·ý<¾¾D/ïîg4,×êQÁߺRõ
+sì¿fé¹y»Ëi m&[u[;ºÒǪ̱s½LZg½q¼ý½êñ[^C>$sNG1¯qÚñë?¤ Aà/ÄâÚV²Ukà®&ÛT(Qí:êˤagFèáñ 4õº ®"x×OR5ým¦½ÐY¸«ÌYï_ßj,Jjß-}TÁVù¼/S"ýVÀôÙ¬2"eA1Z.LâZÒLî^ÄÓ^6«H`EÁnQÙºlè2÷Á'C\Pø«-_h«
+òÄ8¶C«|jtÆ=öÙ-GwÜUêÇ&±5¯X~pÞ^p@è¼Õ:åª-ÐZSÁ
+5jôuHßI}kC°ñ|êñw[Ñ;&A]ù6°´z(hEÐ^0üeTC«§R:¢Ca³à³
+¥uú5ñøÛwï!g~d2ìxpþ^.(£+ckKÔLâùrtâÕ<½ôÃ)YPêPâ
+TR0
+8dý ± Oæ6x$Æò$xXèS@óW|vKGbÍ)HèQ
+^Î+d|¬Äûè
+8϶åÄkVë-6Ó&þP
+T"¬¹×)5"$KIX6äè.z\·|Ö²\Vpo(»tG´Wx«º%¿#ÑjÐ۳ɸÞÌ7EÂÇ]¡¹èu{c »íR
+Sg^OÉÀ¨¡ø'] «xý@ÊÓºØ
.D¸IJ5éúWíµY!6
+QßÑ#E÷$EKIöYÕÄLzCÞB¿yÑ]&Þ>I["('Lhn3ET,j}ÝlÒ3×ÅHF&KD|rÕs¸Åí1ÇíÿW9v,9<Aß¡ÌGàN[®ÜéÙmËþ l$2U_]([À¯K P¾ÚsRã×zÜÜÛ ÜH ÷^j;YÑxÔ)5'Î
+AÿS×á¹Ié)¤J¬ÄùÚ(lòH<.øK2
)È1=§Jë-sëPL|J°!ż9¦¾ÜéìÜ{KÖ dÏíh³;©oûëeÞgmJ¼oN¥zÊ{r!¥z
+bönàe¡`9c°ßÿ|F3 â7.4yÄwÎà¹)pÊÍ`rt7ëå5qJm½crëw±zÒS5ù ùü¥'¬'¨LU6ÅÜN22§ªmM/=¿YJÇ4<íÎDé~±i[¢ê/"*ÌYOxUTµì°GUJB
+9}},êÁçwDÏnó¤Ù²Í\Èo at C¤y=×â%
Üpô¬^>ÓíSJáý¢,î«?æ|Ãàªþ<ðåMj?_[ÊV¯Ó-I^¯âb5êvt×1kõ=éurñB "ü:¯
Ä
+R^çŶgw¾ñä×%ÍBrNGï¦NqY³ª>(o}ï£Ü£@2
+/úE$ëêvtWRüÔ¾H黲ñÝ£ß/'×ÔÆÚfãÕ9¨í^Odñ{sX_ÜXü/íçϹbúÖINºht9íÜÎDèÓw£>Píª¶}ÝÎ!×éØ'oôdæ²}ÇþÊ»8Ø"ØSðùgãß½áç¸XLÌm~E¿=ìþR1^Wö9ÓE&oÓc¿²¨o*^ÄOÞwU×L|&üæç`è-äo£U¹xôsW|cÞâ¸Þ1x±G2÷ÍÕ¯(ëÇIDM£L¹Ã0
+E}SCAÁ-îF8%
+§vâS_Æ
+¸xùsV1³T(½ps9¶ìà<ܽÅ÷UzbÓÃ-iQ-£[åÌÜÏé2-½dîz\Ø·¾t/f`Ö)f
|£¦Ja<]SàÈÁ\dÝR¥7ªuË[Ú~k+n_ì-o¬Î¹¬6Sx.k+çÜÇÁeX
èiéÁy>¹{ï«í©õÀ^Ĭ0ØvW
+JçÝk6§%¨$ÞL8H·cE BaU}ôPî·7ÝÔÿýq]A1xÖ ÔTUi d%¬¹!7v§\d³8iÈYsPüÒ¨o¦"ê2ºÅãúܯ?^Ûi #ùu¢Mµ2«]Ld[gîQç`+ÿª©,:JÛj[P1QËr;'a×^Áíúä±ôûÂÇ<©¡0õ®]kºhýM=
+]¬Û¬«pàØSóç+³S0°OâXÃÞn/nãb\Å ÉÉÏ&dÕ¸¤!ëÒ»YÚÆá«ç,Gs^nN+
ý8þÎ
+k·2:¶C@$éV@L}II,°êF¢!ôìñå¯ÂYùfë3KÙ-µToo¹ÿáâyüëßÿþõB{2q³"*ø»±mOõT;EUL'Æ h®ïEøiÇ.Õ Êª¬E/¦ÒßÒn-eÍóÕ¤íãW׿E9Òâqñ&pÍÈÝ·9iÇ´ö.2¶E6ßëµé¶õÙOE]&Úsê¨]Û4W³~Û5?ÑÂL´Õ4(v v¾±UÊ+áùR O*¤%¯¸¨ï/m!cðÕÑ©[èé
ì¦aªê-:f?¾éÛ(T¾¯ÕVÈ/ïYdÖJ¬âÙWY_+!kùÈÔ×"bܹl9«Ü2¼Ë+¢$ESôë©ölýI3ÏÏÙ ÜÇ¡«tÌ;ýj[[ß}hF^Üú ݲsËTe¼ÛÉRÙw]ß9â&¶ð®Û&¹1:~A3Jëj^
+îºk9ìBáðe5»vÓoóÂi[-AôPÒÙîÅõ÷ƶaê{eÐW³¡v{óZh4<\éÉ%å-£¼ý¥i1[ê,뽧ÅÑ CÑyz:Ä3S¹ºÙ´À£b:#ßáÛw¹±ðä¾sgße"Sùd<,ºwË¡±Pä¤g¿ywóóÕ9I[·ÁàY¹
+¹:IH»Nö®©kg¥mµsOñÉçÜîeÿ¤7ãð.ãã»êïð±3Ú1n~~þ2ÚíVÛW
ÛÝ%v¾ôÄ/»T§}®ÿw'
+¾ú»±T/ö=ëÔ VW
[Ñéà¥ÇeJJ ç~±MW¹z²®m$®rÍæ0Þ üÏ6«¼È4èOmHz+9dôÓ^¦öËËÜTv»±ÇÓàfaÞæEYت¾°}dÎ9f¢H¼WË9·QÙjÆÝSÍiÈF?CõÕã/Óð¦ûz©Ó»dDTǪ¸}VM](aï^²â4Î׺D¶³.á¶õÐ\3'¯;ÞûnQ¼Ë_z¦Ù6¤$ÈõܱþÛ[ÒØõ˳û§ªç5ÏÎ&÷2Ïa^\®?;Ñn¶âÛ§Ñx·ó®ë:q.6<«ìfüä^ôi¾KNOc͸uÅÂ8pâÍ¥mÞM¶¢VÄ^yl+j¥ÌD-~S"».äJDó":.áÉ®êgÈàäû$9º.ÝPrz
Û§[oZ
+tí0Ô~¢ÍØ>úR_§¡TrnÍ< À+`i=æÒ2c·GÒoåêÌ\Ô®ÂdçñPÊ0F!´p5&óeaÃW^¤ùú6V¦/î?
+Çrj¶rçx^¯AÚ%Ðr:¤@|.¬¡¿7ã^% ̱|6 Å'Î0¬/¥Éf g5¼ ã9VsËwqXuõåà-Oø
+b)þö1ù3
+Ðý¿GT(Ró¬pñÝ 'àê3jKlM<[¸JgØZ?<æKÓÒ*¶ôùdµ¥ô#¤´Ø/j
+hô$M%¢®FXï?$1ñër¹Ü*XW8H0©V8+êÒ8Ï7"ßæAô.H-f íàÜi~k?KªÂMrÇ4yì+]ÄÔzàñ&±¥>xR EµZ(F^=gzpMÒquÐfÖYò·n±èyá{3l3Æ°f^`zvĶ[(`¨B
+¯p8ûTÀæÈF¯H£n¬kÅ8{-$ÙM{¼@˲|&æèSpÏmH÷«*îò§¸OFµd£Qeu¬\>è;
¸'X¬¸7l~¥/Á½+î æwàý
+¦¤Ñ&¯£ãé˼ƽì¼KíO+ÚI{.¯U! QâS Ìoê2<·9]ËÇËc·pò8Å ì:~²¨E%²¨Xí^õÊVß:jÍtð£ÜÜT~zf§àëõï×&E"òæÇ
+M®3Ik]7ÂyRùÜC¿NWÄ@x
+*daµÄ±*âz¬eY
+SD4Õd;SkÒ%Þî1õ¦°ººn- êV.ÔGA鿧ÍvúF£ù`ô(ôOÃ|¬ÝÄGè{:Ix!«6Y&§Át~EÃÊÂ{Xo_Üíí§²Ú±¶ªo*E]Ñë}RNïÑÈkõKinwþ¢=uFÛ:ÿ&ãèÈãS¿Xå9fWq¸àæ¡gf¡Pvéx8%ºMÊ9àTózpVc¤³ÿ9¸%óÊ4á¼û
R
+5ýî÷éc=Å£mßQ5j=ûð!öåjĶÊM¬("ç]Be.Ò¿K÷â.zÆë
q²¹¥æB=hØÅ'[µÂe|\yè£ã3E÷ÐòE{¬gÐÙOèP^.È5
+¢äÊ%Êâ°¯e-l/c9&°Ût áxç#U7Ãß[¯ö\
+9BN¹S
+§ d3¬îO$6¹HæF|'9&;e±¬ÁmÛÊ ÃgÊóÌ^lÇ
+Ò¹_ó_a*/öóݵïvÑZÛ7ëf©«bîj¶4rqg:Qs>+n½,ü¸ìð¥_Úlò9.z¥ºás
s)äZqb>&ÌJI¾è%òp`Í'×¹ÏR¥ì££p]£¥s8ôÁþkäØj}Qô¬LÔÇi¹-W¿aºØÊñQÝt1
+°ó8úºErËaÎv^®ýXÂzóY¯~iñ±vÚtµD Z2jm7YµÄoæ76Pæ»Ï\Ý9ý®*Ü÷0þz:¼¶±¢Q §¬Ø¥¿ñ#©¸ø*ñrÝEpê¥YáqVÆÖ)±þ!7eT© ´Ú:ßr²&£\±"I5µoVJn¿ÆµÞIw4³ÒuiñåÉÞzéG80P¸|Ò#³G}©!¹X="è¤*'ÓH£¤IÌ}·lÆ
+§½Ã§£·Åkmfc&²ç>1ñeÌ_Ìyç[xLõa¦!Ïz"ï4)M[ÕÜìE´ -Ì÷S·Û/9z2ØL§`[ö>
+"ÍíÄÚ2qOÄÛçá¶6¡©Q;üL&%ö< Òjî°'aF¼a¸ó2\QbÙDièhyØ´»¥[ѦMJqÙ=ÞÍúxgÝÆ®ìYúrÅ~Wæ»èþϲÂõYI0:%íg/mzRWý
+çeE´`Äs/Ë¥&(\êcÀË.
ÌȼûF>}Pè!Ƚ®FçiÎ Òéz=*ec¼¯É5Õ¡$βZ¦ ÐA²D9:[ñÇ£éùH«QLg4[äá/9PöZÄÕ¿9FLEÁMaª<ï¬jtwe]bbú¯SIöL)Aó¯¯X¤®zÊz#¹EvÙJÕ{hYͶ·¾)É^£D!ò¨ÿþØOÇY½±vÿ°½Ùyl?N
+ügìß¿¡èÍj¬HdÝ ÛÉ}=^;À,îÇǾ;÷<ri5Í?ìÐ×ÜW%ÿu¢¹C|súxD*8Õu.?÷N.{»Ör0åòÊd(Ó_ÍGíCÀP»¹säh dûì 0ð9YcßÊ=ÁOäô s(%ÑziT;n"ºÖLmZJÖ_a²Ýq8
+]¾vª(^1ù¶5éµüÎü_Ù}? ?wÇzÄÌw
+FW\פKc"£8"UV|RøqÒ_@«°æÓ*&à×Ê|I©á/øTÓOðõ®GÀWÞ`[úe¥kyÔy¡ç(?JLO u¨/)Öùiè&{|b
+×3©jU ߦ
+ÃN;ø)Q³õzª|oçü@ª[ýÆ3qVvëéC 6L!O$+gÎ'Ëd¡ÜÃ'ÄcÑû©²vÈÈmã4ÁDÎNÀI,ZòûÉ·[>ÂBo
(É¥û[ÅïÄÜ¥,ÓEa
+þÕpâBe¦cO¯^ÛÏ3XKF]5ݽ4ÎÌÇì :`w
+HÆvêek©þ?,Ý95^eg"TD8'Y=û5ÚµÆ>¥F<.Ææøßg¡* SqDE1¯Ù%%¼íGõâ÷wä ×æä 4¢®£Ô0
+´PBíÒNEâ¼°ÆÙÛåiÑí>Ë7¢UÞﮣèØËZ9TÓòw{=Ö¦ûÖëÃfß×îûHÐw7ö2Ä
+MèZëQø»«X«ÃÏÚ£<Fy©h)cX;zD£?N>qk¿/ôÊó¥Ðjnõ}gïNOÚŢӻ͢9Z×ýñýÓ÷ÌÇwç£îèã½p}¬=|ú¶öñf;2j\~ßkÁ°öÐÛÎö9³üônû^ÛƵGßE}ìqwÜóá>º'{GÜ]kþÈ
þççíõȺ~eÄMà_q¥x®õX»ýß÷=ív<Ë#søwßMíÀó¾VJc¥R/
+m%*m)§fL*ÍG¤ ²ëÎLg)Àâ6¬µÑ&ÉVRqìpoƲ,¿`·ús±¦yÜ>#tÃEõÝßÍxǪ[9P~:ê·Ì¥¬À2 øÕÉQµxÌÀϵ-DJ0º¯$üÚ\øi2Áw·e¿ºð<ÛË°I7~f:LøÀ¯
+1Û_Ç5Ï(%Ñál¦Cxöå½Ñ[ó Ìß%A¼@ñíÜ
n±¡Ð)>½p¬I:O
+¤$âªú.iä¨ÿDh®s
+þV+¸G±âèX¸ªWlKæSR*ÖÆêê^yÍy ®ï´4êFÒSK
+ÙxÍ%b;²O)Ylß·Ö`¡ºj[É*oÔk_ɬpå½:4`ï9.k°4v$À½r{,%˳°ÒwaÒ.÷ONüIT3êä3+D°§å¢5åKì¸àu<Åø^ëm¼§h·Ë51Q¤{ôrë>1Õ'
+ÌÂEcIéVÌcÐ×(;7¼ñ>òvÞe
+ZõçCßpªÌ&NÉ8Ú]0kÝ>Oos¤;(aþÜ¢ä!¢6@©´ø;0LV9®¡9Iy Ôsædú
+µPJ28ù¢À$Qzº÷_ýùt뢨å
+R,åËÏÕÞµK¬
iî£]¡ðXa³Õæ°õ]zF4>1÷:·b°®ä>íýr¢Î±Z|:øMîbµ¨Ð`+§{ßæT¬ õxÒï«>En@¯iÂÛ®µûìôè4ÿ|çÞ QvÍ*ñ.Æ¡ël¾Ö®}ÓMiæ¦pàgòõGè_Y_·Ï¸ËìWPÖÆ õ:yù>/ØnóSoó»/~Ø;
Pö&vxdòq]$í±æÏb¤bn¬ù?OÍ£ï÷Ü9Ô®»ïÈí§ã=tÝÈÁ~k»vï¨ãkÛ§û¾þ1ëßWÍg>=&JÖn"}°¶ås¢«?0,L3
+õ¿¾'!ûø+FLÞS»s at IØÍnBâ\í|/^ù#|ÝÙp
ÅîwßuóÛ¹ºrÀU}aã'òqùãiÎÓßÀseæ˸GlùØRðÜ9öå£N|
+ÏÞ§ûþ`
+endstream
+endobj
+84 0 obj 22494
+endobj
+85 0 obj<</Length 84 0 R/Filter[/FlateDecode]>>stream
+HWÛÇ
+üýy1`?h at 6ûúh/ü`ã¼Ö"ÃÅØM È1ò÷©"»ç\r
+O_HV±È~¸ûä½[[¶ÝzmÛCØD¶¼bÓ÷4z§lnûeãÝ~â¾7+yKeÖÊöL[ÛtzÕؤf[ªûÉnK7l³´§Ú2em4Y©yS#Ä]Òóö>Åêun{~¶ÈèaÒ}¦[½¹î9ÕÎÃE{]˪!ØZÅæii¯©ò¦i¸ ÿe<é±6æSÞ{ÊÉMHîÄ9léÚ2i©v¸*Yi«¢õHs¶DI>Rab}/qÖ
+ÚJMeåÕzkÜL¦ïCyiþ&䣶éØ{Y]u§ÚÒÚ[s.îKëcÙ0#
+sRx¯¨pÐ.=²×þéHþ±Q'
VüDh5(²{
+ys£Åa`HdN/ÃÉSD~$o
+Y¢M$2Zkë§HrÏÝ\ǪØVvËÚ/ANÕàSBü4k«¨³e4i`Ù5K½$ºg&¾Ó'2((£FZj~ÎÄAÐaù¨íóûoÖ1ª£dþ+ÉÜÇ"4plè«8l*À¸R®[æ©â¦FÔC¨²l`ìF²ð3}â9©rii¥mp^GñÐR8öì&¼
+|ÁrÆoæ xܪHÛ)/´õ:t#õ;í¹D
+U¸®ô*¹ß&Æo
+Ø}(
+©À±ï#Ï
Y¢Â@ÉPÊ<±7að¼Äv^@]- *J,áh7ñ¼P'À¡|9©Ë@Ó'Ó°¹&ºó@ô:ÿOÿ§°¡Äù#
+Ù=YµcT..OSë[
NJAbõD6Ll*è®þm
+ë|#!ó´¡íÖÀv¤þvñ>ÕJ
+¥ÙJt`¤¿FÖ¸Àù+8äÊ dರÔj6õúÓ¢Iòüç57ÀùÚÌÓÂBuN.ýZÑÎ&
íÜÓÈtÞBè±ôÄT IÎbf¹ó»@ó>0²6bnÕYÕ?-[_(fÎÙRhD #ϵ#÷!w5©#íý«#eÔ(È:ʲ**&6[(ÜæþJ ($]7ê}>LÖ
+Ø%ö7v]vøÌIJ1iôÒ¬:VèûÄ£¢ë¹¹\r`yÖ(°F¼õq%åçjË©ÅYä\þkîSø®ÖPÒ$n>M8ß
+{oWXÎ7aë¦
M_8©Ç2A¥òw4Î'kâ9lÜÏøR*ÆÄÌãI½Â,D£üc<bíAÌ/O¹ ±öI_岺zéÖ¸îcjòîÆ:bhk@}æ1VdN¼p95ï± &bF¨|ø¡®á8ß
+á`aaNgÓ%Ùt8ïøH4¼/y^ÎfbP¢¢¼3³2×|¿/ñ'ë
óÃÇlçèbü¦ ßÏ!¡wÂã
+O3q4;.{Y
+Å3t¾©0Á!ÏȬfÂU¡A8[U)ÙOÊÓ[)¤3øÌ ÅDÐ++ø<«ðÓ%̼×åÜ!zÈpÌ*ôÇ |G<Æ®êD,âÓ5àOPøù84 %R).Ú¸Ü,;©FñØ
+aÀ;®¡8ôøo§³EÄÌâ.h«1ªË5XóF
è7.À=¢â¼3Áò¾
+·Ûd0ÎBÂ y,
+ò)I,W^ämhÐéYÃ÷16¯¥´+®êí@Ê}RóÙcL,©ØÛ8«ò
+§jûÕñ²yH¨Ü× û"B>ÔN!ôsæ4ìkgA¨ ÊÆ8AûWN/EèøÀÅöDɤ¡SÁ©\Ñân°:,-ÚLN±úYO,ô_ïgÁ±ù
+°
+/(9&B
+SêV>öè<|»Z"4OÓÇ9éwǯùØ(*i\ÎýüÈÔ1ë°¥¼öfs
ÂÓí:ú¨Ug^WZû|ô¤õª§Ç.³à{gÏr[ë4j64à¹5[ç²qñ¬ª<mDÿ¸\e©¬I¢¬ã9k¯:n$ `1Å*×ðÙ$w'[[;]f:åäÆuÚNï®ÿnCÚgü=-$ðìjrNÓD4r2®MØYÏcëÄùi·.¿! Û§m¯¿õ¯/ï>ùüwöæË·_÷ñã»/ü.ü~óÕß_¾þðþåãû_½
+óï~|ÿrþÃÝWÿà/=~ùâÃÏÿüë:çÓo^^¾{~÷êñÙlãïë_î~Æ/Høúßøø=þó7~ÙòöíÏí-×þé6íÿ¶^1ç°JNæKsÁ¦|<pËvÚþâ^ýñîTÖ9¶ëææCÚ¨nSLCaËxîÐfiÔhX ¬%æ®Ûw=Üýà?pÿºmÓ hIÃÏsqÎ=
ú³2Ãù Msèÿ±¶ ÝÑB0.ïøîµ>féöi.Íbµ4]ðäMwïgà¨aàòÕe
+íËÖU¡aÆsÌöEÌ4Â0z£¿Üh]»F3ôhà-ysqÙà;í¦'×®N^®åjæÊr
+=zºÑo±æFd¯®A>§k3ë~j×4uÓd¾HîÇê<
+¾hB:¦cíß×þïªÙñü&O°ïð¿ %üÙ¶ÉÂ4±B(ÚOíB¢·§º«Ú³4Zi¦ÖîíöfôaT`³F0&8KÛ£bûÚîÿb%¬ÍàÎü¬ÑgÛßsµ¥^Gä4O÷±"'4.pÄf"sgÅ¡ð©9¦VF0
+ÆÚ|E7Rã``ÎhgÔWÞ
+2ßñÏ$=÷úÁøïÅ ØE¸©j;Îεxc«´ñQԷ⣶·J! ² Vï0´¢ªÅ¤Õ/Ïe)¸g-[k;ø'053V¢mó²f/jE6»Óê¦ ]äo;ñ)
+/_3«ùô$`wÚÙe»lÓZ;&I¿L·î§¼R{lû«
+ÀZö<sÿø/Wüv÷#tz5.v>jÞcQ4§óZISÆ8Ë%®.øÚ(éE8M/£õ£Þúd
+X{h×á
+×@_çó«pá`[ì(¹î>e\Û×)*- L:«÷¤`±z/%dÅK8©=lMíÊÛ
+õTP×o~ÚJóØ5ÓeÎ^Ökhÿsûið` ºÂ6/íg»£Þq¹¥C½xÉâ)Ëkë9Z;WÑ·¬ @1-6^
+þðÐÞ¸|ÄeÃODÜhÅ'ÁG®µÐzh¸æ©ªð`SHúÉ/A{ÏYî#nC½HRðþ" ³E2ÖBUûÍùàÊ"ËS_|Èió£¡c"AÍHx¬²PÓ /ûä¹.!
+Øi²*w»ï&¿Á«~£txó3m¦$OËÁ¡ÆLñÛÎBëLï:@Ó wBTGwKC}HçHY¿Ò|`à;U-쳪¾æÍRÔ©pÉ{~ç¹Ýl
+&C/`«]w¸E/Eæ7% jOk¸)°ëöV²°¶!É·ïÁ¦²ÒaÕÄûZ¾\ùb4tç¢Óa,Õd×Ö][ï·lÕµjþb
+Ó¤»à¥½ xL<®Fh©x
+ .#ó¬ZÛ/Ê_,
+
ÿé_Ó)@Ò9¡)n>¤Ñ1dÍs!@XÇ®µs×4Zr¦ë^q;fúsQÝ©ÑÒ
+þì«çç¯?|ûÍ£ÚçoÊãü{÷ãâ§<ê£ÄÏ»ã_ã
+`ÿ\+ÙQZ7ÐÖn7À.-r\P [²ÐBÓv'(Ó÷!§ü®xháaW«?ñÛ{áÞËd£2\x+èè\c`
+6Ãz®Ýa|peÚNFÕºÅÍpó
+£íõqÖ¸»åÄ
+}ö¦1˯6ÕëË-§Í½àã£GÛ:h)<TbÍÅc?`TÚKÒ´6§ÅZUKQ µÜxøYtÓèD*º+ö^ããî|îv£>÷°ßJK19w£bAY¸P
+´ëäÝy¡r©nônhjsík,ÂSGkÉjmy üLsG¬®K®÷¦ùµM>¨Ï)ÙêÍdÔþÃzµíØuÁ/8/lʺt¯<Ù A KEÖØf"
+cEù{ª»«÷9öx¢(¦¼NïµúR]å`^°/kÂJ½
+x;½{Á³¥FÁµk©·uÄݱë£úyvÄ.1MÙO°[³¶&ÿ_@%*f¼ìaÖ±ª dϱw,pìîC¦Æ(²PÏ¡´;ÖèwåÁÃúùãbðY"Ô6y«cÇPfGÀG7V÷¸¸ÉÓ
+b:ßD
+Yü!
+ûÁ»îñüë.® /9{~ç74¥È1¢èUsóJ
+ü³B @ÔÐÒØw\îÅ4YÄ|ôçÊЯÞúC¨bÕÐß·TJâ!Z¸JòhlÙ)oóÞ©£¶¢X;ðli|¶íóXq¶ûG¡6<µI~l»Ø4°ø2E"Ï!ñ;/Q
+{×
+Ö«ÎÈÁgìdôù©A©{gð@9OQ%8ÀáÁæ`æ
+E`Qg¼A- ~U
gªr´pßLïZÒKå-!ÚqçÞÜ«T¸
+m+^MYfûbAØK at 9Èx¸¹kÁÉ¡Û¼ÙÚ`
+)^;LÔmvë](s
+Ãæ2GÝݹ8Þ2@R
+ ûç/ë4,xWI0ø¶eå¤Tbs×àÓ_äíþ6°¾½ù
+xÃßò;È R.#ß3öÂã"<ã«$(°M{QIx(á)*ig
_°¤ÏU·UäZM=¶8[bþ×ÞAêâ³¹ºd1ÓbÛPªYFÀÿ±@¾V(ä. À-ÀjX]/Á
+º1_¶ïH¥Ï¡Ø0Qùàþ5'1S
+cJvCW-T#µ2.á6Ö_âs(ÖOôR Ë#@©ìoE 'Q¾Z'gÍnÙYIN2ÂÌ¡þój<Ø¢þô¹XúíÕ>½xyz÷7ü©ðÆSñÞýråÿùp5¿?üæÕÖ¿¿ûðúþóÿõ÷ïï|ýñÇOw_À/ÞÞݽ¿ýøáÔ_"ä+üûîç«Ïø§êåÇþ?üÐÏ'9ýéô÷Ó;ûýÕ¹!f72âI'èõ(ê¹öúâ÷Oaǯïx©?_Å¥êé?îeÐøÅ@ÏTÐÆYË`¨¼°8ÆÕ±âm+H'8¢à×Æ1¸ÕqÛÜ<ÛÏ£UͨU&?åâÒNWߢ0|Î&þ¤ñ¬Ä@øÉ©Ñíë@Z´¸czMXc )ͦMÆÝßf²>¨
!}QØ-ÇçÃ1ÕqÅÜ`ĵû$<D ÿ²D9ëjXÐöûÙÛ^
+IfUBÊñZHé ¼O¯d'h;82Áá9Ô16ÏöU *¨3
+^ÌÂÌ縫òìì»'ØÝv 9RJÅ28ÄàQÜÐx¾Coþ³¹kuqx
+Ö`Z»
+Ïîpü¶
+
+W?ÖÉLÒ©<QN tLÞm°n@Çÿ¯vôÊz¶ìÁuù$ê]Ï_ºÍ2\fÿI@Ç;îÖ¡(>tìdÏ
+,¢Ñû4
+1£~: LÔ_a
+,ÏÑqñþÏH3ËVv-ØÆÜHPÌ;£³VÞCòk7KwÝLË0)RÛý¾·Bý´PÌ×/бo;(Éѳ$¡Kì 1»W½v(¼ÀG¿9vRÒTà#Àüa3:a°º`ël Ë2ÀÆCª©väç=׸g! §3qs(dK3
ä¬i¢ò±ß^Úýý\X&ÿÑëø÷#:,
+°7;²pÎÛ+³ÏL»p
+9:sçTÏá|Ï"Ù¢/Ïߦ;Bµ£
+BöÒLûæ×ãpc8ö¯ÖòË%spqYtwÚ9\_ÑZ(ÆÚÊs߮ӨΰÙ駻³;poi*gwOÅÍi
+AÀ³çÃvwöÀµ"ò0ÐÖ5ô«l¢õ¬É4áT´sÚ¤¾Z.¥N½÷ÁÇ÷è çìNÊ°ùWi5¢¨z©kT"\¼ª;7åçٵ˥Ü1½iÎϯ«Ög.ç
+çßÅ%¾7ç=dmh?gõJ v×ê)¥¿ãEc¤§Õ0ëõ£Îɳm5_±ÀܱnõÖOÃóZsÏ»*Ë¿¡Ï`ð1Ì®Ê< ëÏ$§PSÔÛx¼Q¸?rYË«
+È\ò"*ï7
+`×/VR.M
µdóÛýÚîÐu_f´ÞàÜ
+Cí¼ \¬ypøùöã¤O6åqÍÉò>,CzYU8oþ/gKÖÊ×·î=¡+5L>h¬K÷mÂÛªèÞvõàÚ&>g·îíÖI¨æ>^
<YÉΧ=ÉeÜ64ÈPÜÙRÕôß^ðÃeêÇx¶8P0ÌÆe¢}M0/À£0ü`¢èxûu&K_»±¯~Ña«¿3(ë^tصlb¸§Ã~:×
Ãä
¶äÓ
+æÝÎiØ&Xè1IÊ:îeÚu
+x¶{úÿÚl\Ð>
+[¾¡Ô;gÙÒ0Ä*¬KÇ7Va^vØÙ [Tþ.ëC§L.£SRÚVçJ $ÀÕ#é
ì*µStIçÚQ½¯ç $SQ½S°xyvqó:i&Ð.wê±´º¿Ç«Ñ+Ù1h ®ýèûmÞ£í1y+S+åL®c¦õl=ðv¤J2x'üG+íèZ³)_ã qèvxØëSMrwr7÷|¶"~(?ZïýÎãÍ^Ù|ç
mhòò-M åX
+áØÌôP«¸ÙmNAÇý6ê,ÖÑ>qpÃ
+²¨ñNm]Þ,¾Î5ö³©K.¾¼àí
Ø1$ÌÁâYF}2aâeIøÉryaXírÞÉqräsЧÈ5p³0èÅ;dÚ>²Û®E+Ü5SÅsEm}ü}9èSS¨è£µÖyRv¥:(X³}5UAk÷ó²bu9-¢Voò42|tc´ú]r8~˯ýhB ¿LâC éN6Ϩî¦Õk6DÇÒ$êEêÊ7Áu`õ/+
µN¶Å,½A
+
³=ÛîïF_G¸µ*¬ßW5«ã?0²Çý09>¦Qëà.´$.Hµ:+`jëHÇd µÝïS²ÕñªÑpmc¼TaïIoɤ¢âvyáZc{Õu^ØÅàj°Öw.붴
+°®Iyçí¥]^8ÙÆÀÓñÝfðÏ7ÌwÀäUý`o<kYºNãI«·/®Kv³új'9ñØ´d7»a`LLõ0[+¬ÉKÆo~ß-¾?³]SFÛøÍ'%ÍbÂ{è:öÂàlCÇ=:z\K`Òm'%G¤$AØCyÚ&6Ç÷Ò1ÆòØ/Ëd®¯£ÏÁV«ÀÎh=ÃàÏo¸K!òÏ
+¬ÌþOÔP põ0»Ã¹NÚãFJàÞK`ò>ï#{aW±pMÒ«§³®
+nõðì¬J¢8ÃBò+ÁÚ:Id¶!P61'86)ðÁ@pV±Ð8Â÷§ÊäYÉmçúùIx¬(¨`=9TÏ'
+ð1°wák¸ÊÌ@ËhúsÂù>! I4»Äh®IT¯`2eqzcfj/OQSsöC®r£êc{ô$d÷ÕöLÈÒ$j&¨í·n-î¦Ü¢ÔT¾þ÷àm@éhMrpOùúêv
+üf÷¡äÎ}¡ç*øyá¾^`1*Ö-x*Ù=w¹oàW»Ò&X~ÉÐ$_ðèò:æg{
+%-pºlFôõçÑ|5úÅy6âÍÛëç
×U§;¸ý!Á^H$ýjdoò¬£Uyþôà5h¹ãWù
+'A¨èÉ¿=ùÇç/g}*æe¿ýz½ö>ïd¾³Ú|
+Þ¢YlÇ0@Ì/Ê3á_<Û¦ Îññåhm÷ûowÉuÙe&g}þÆ('<á®Pï0ïê}hQn<¿v[ë«jÑxoí&{xÎ%L5B`íF2(æÅqv8E~éY~a4ù©J:ðR=_:æÏ>2Gxµ©ãÎ !¸{B§¿ýû/}ÝîJi{¬>à·ÍÌ5xãêÛ\Jb¤ä·
+'èe.æ°MÚõ\ydý
+¡£~?m~Úòs³¢g?dµ¬°ÖÿÈ-áa±7òB$èõbm°ælû
+
+ðJª n×ÀÕo¤k»Äú¸úóæO¡½DÏäN+oc¹À-°aÞ ý>""oËÍ ÀÞÜàóâ
+ºDJÌÒå7è555àåëJiQs¥ZZ\®ÿÅܬ î:GÊ
+H´Ü(+ؼÙá%ÚÍÐn¬bÆÐÆê¬å)ÎȶhEÓsפYÀm7US®$-tóÈ»Òg0Å54^y2ÙÅÙó4,N«^+vÞ#Tveòíä ª1²8bë[{ÍKÞ)H
RSëí¬sÏ¡ÇBÓ#Ó¯´Æ³ªö20ªªv M×@oQ5îæ·E^ã/<Ø"¢®ØÑ(˱%&-½O»MÆÁK×®jüê8»ý0μѶHô£x¥Eð4ÖúÞ<Zv¹F^£ä£\ßÏY($µ,Ey,{eP]î¥Qx_%º§§è,9ãÁ¼°ZìåFð*¢ñ¤Ö¶®è,¹Àá©^2s ës\ö"ÁfR¡ê¸ZßFR\fbÑ«A»hßµík
+ôÒÛý¾ØÓÔê×ÙýØgîvõ5@,^2- :°¿ÈÓ°kzq»¡ÎvØÃÊø£D"ä·0XÅPÐ;5kÅH5
+ýÀøüÿ²]%Yvä8ì*u®GjÖº·yÿó4(´_/ìR!q
+½ê«
kÅyp3üÜMõCØ+Ä6ñ(vcjf¬Ûº2»×Gä}óÕ|ô5ïxZ?®M°ÆQc]«è)
+Ô÷X[ÓÞ²kölbdsª_ïvqkí4
+/µaªøÌÂYY$ÀpLLHutú,x%Éâ´£¸"¡§PÜ}«½ÏX¼Ø¼:Ó[º3t~mk³lòYHÁ5}~§É| ÐlýÚ°øèT<Ïò#/@½{!iÝR3&8±cy¯R¥½%Y~õú!ü²53pdÁ`ô³~¶/ª[C·n
+öRÇb Òöαáaläh'=k><-+b7Âèù+±é<t®ÕË_QäǬ¼
rOìêbV¿?`Z~ˤpV8rèº
+/Ç®pÛÛyâ]`§kÆ{Õ0CM඲ðn¼g"õy5^¿¾E¼Æå¿æ¹Ý|ÿu¡
+A»
+ γÀ¶ úEFî|8iñl+ÎP .Sc}pßó,I½ -ÐkG½ºAHæ¾ô\~¬½øf Nr^üçÜú¬éê
+ {Ü«k9«*¬5*µíË·_D°ÎmT\-ï(ÉÑÙ¶/Õ`¥Uwȸ^"íÁÝá^ò9ðÃ5á䥼oÈÇR{%Ýu-÷¹ëç¾D½Oüëã@à¿Ú¯~{¿6ÌAۤݶÖë"+f^<)µ¥m4wçóÃÊ
+Ð5ËËr´Ãµ¼Í2(áy}lÇEYÅ5ÿj
+ÐAòõ
+Î^Ü2¿fi ©½v\QCGi׸+[Vð£/rÚäãäSÏ·ä#pKqÃW&àÍà¾ìz.Ü·BÖͯÜäê9Ȫ\=]Sñ«8Þ×ÁX"ðËþòL)O±R¶aÙ/Ò 1g1l1½xµÝÈ3HÄ-öDéÁIúݱ·Æ¯ß«;¿Ë³ív¦ë
+`ßÌ
+s'Ø#]`×è»4>¶k÷amE~g÷ºÁÒ}TÿCÍNîÀR³D(oHÃu¸+®Uܳ¶Å®ÌàÁ4A°ãÿª¹M)$¯
+²,Û\ÛiSØáO'èkÉÉíqWxZÙ0Äûhº/¶BHÛvC\·
+°w9g¡d»DéQT0BT&\¿ûS?pKÊéw/Ú¨ÐKí·Ä̽§n¥]U$Òecn}åp}¢3(ÂÏ9²l
++ô1©@ µzB¬>gÛ¿ewx+·Pݵ¦(½0¬îú¥ª}W×ö©!óH`tH
++ÍÜz*ã''>GÓ@B#í'¶3T-bÎRû2£)ÛåòºÖ÷±|°PÅݦ>z¥ÿktÙþ%¡FßhkR
+Ñ¿ÕÌasý|SÖJÂîÙÑë¾}jz¯poÿ:üºY.Àfw]
+o4åõ#¹¢øy1k |>=ÁcRÛßùýYÒ=öâÙo1=
+®¡ñÀ¯/Á°Òµ'
uÔmdÒ}á%Ëò(>¿÷³ÆQèÜö£pô½<'aýa#ûL at Mº¼®A`n
+E
+æO4itªÚcWV_û?àÕc°yÖ¬«Zgt>Ä'ñ¶{¾ïÍÛLxƺB|]æªËÀµ÷ße_"8éugÒ»õ
+ºÂÙðsòhë©Û%nFôG³ÛOøMU
Á §ë¤ûª¬òÙ<; `çKбEÂÕ.z²ÂMÛz#Ú3þÁ /?Ó`<io_cûåµ|¶É<ÒàYô§&¼}ÔÚñ¶°&
+^ìÆÔeHoTC!ìsû·÷4ö«§Dl§k³³O§*Á§ÁF
+ÀÙ»ØÕ#¦©1~gx%èE©,h×3ßÁ~4ï`$ÛÄÑxpúeÛûÈþ"Ø<@9±Þgè,Ñ{§ÙdÇ¡jò OÑ$CËUKgÝdÏ ^<wq$~ÿ#lod¾v)xôÙ}èý+¡%ǽúúáÅíº0¨ð^C7c´³»ÐØÕFï>Å'ÇýhÊ·h=4ZÞì/LW<FW¹
5»K+{ ·À¥+E¬}æmÕÜ{MX¥Yöªíª¹YÚ¹ü}´á\ae«3ú¥c;ÍöK÷õû.²z-¿ÔMxëmSÃq.aýxM2Uû
+Ⱥ@}öfºØIy¹eC´ùZºx4ÿ`ªäRúüaFfDp¸¾ÍïæØzp7AÍ
+=Àé¡«þðtÛ¥¤ Ð_½ØGRéç°dú1GÏ¿T¾¤PÀ3ïE~ÖÙ+×1ÄZx´HëãÔµÔó¥±ÇswçOýÀývçùªP:1BÑõ1¬sãèÖ:V¿¶6ßp½Ï*ÙäÜøJÿ©âM$apê§f)ij·~,ñ»DéuÉ"UûÚ A2´}mØq-O#¹í%ÚYºÙÄOª
+säß0
+A½qBíG;·¯
+x-Û»3Ø©öÃó%hÎó;Îu*E§¤tpâè4Û¹º`Ä19mËáE¾5}ßF[ {£ÝÇLuú
+`qw¡D«±ØCÎâð-¶,5ÕK°×XØs[BêÞëðjæjEBAФÛn
+×ã\]Ló}?´ÇüÆ
ZÕm{oÕ«Ýòj¢'©åê¹ZÇç[ëKh)*Õ§ zúfiÇOÃéûM¼÷ï#'»/½ìGÀ*ãÆ£T3!Á½ZérPT}®9¼á?]o5!Oõ¨Ñ¹óT@/=õz¼ÕÕW
+0Y©`«âlG`lGs)?
+þ¨JÛT%X/x4b¥ÛT¢o2*pµ-«Ü"lF®rÅfÛ^~ÐÒÔæÎQýðLN¤+l
+ì7Ú®É\k¨î×w·¢1A´Âz´ÀÑLÝ¿ÁÈί(ý¬.Íã'µ+vÞ¼ã2Þjiܲie(Åཾ£ÿH,
¹ý)ó$þ=?˵
öüOç¯+}ð-ü|V®~ËìÍéú-OÏÓeÊYû}Óéç®
+íð¦"6S·>9³p
+¯K&aDa#T>WúiÊ
+ç:D8J§0åÄÛØÛ3#5£9Î÷¼EÉÖÙ%ÛÑCgµOѨÆâ>jz pöØayfÝÁH¨ ¹=ÆÃU k67ßÓ>$k2o+ì=ÛASC:åö'ÂÙ'xIwX(©èÝÿÇ(å÷K*ùãàwv×|´Ò-a\^uN 5);¹<Úc®Äû
+°cÀlò®÷;KÝk$Ü«4³VäòH0mhñRpã$¿´½þ´*
+å»BÐIvEëoÌ+é )ú±ºö1jð¸!}JNÑoÖ;K3SMáßð >çN¹¶jH±¼Ãõ
+¥
+ߨm48xWýøüêoçvNÿêïxèãYZ® qí
+>.VCRîE7Áèùìße¹
É8øA®ë¨ Æ÷óòû×>ÀT¨JÚ|Àp{}½¤7zÒhÞÝ¿»2¸ÿ0,lè@ûN9]á«32É_áXÍg*âÆÆ«=ÅÂqvMÐhÒðgwß²¸sQÏ3¥-bµ2Ê°a}nàçÖêóÖÅßâ¨~ÿÓ¯ <{äzÏhzUKÀGÃÓÔï{I¼ü|UÕV{¨@ìÚ÷}c±À'eÐKzØ+plrñK·}ÍXíBâF3ÛÕ§ôb´+ÃËÚê±Qv at P·É2WL`¥¸2Ð[ùj[yÛ¡
+
+í3ô°#2)Ú«fÎrx-´Ðë¶x²Y³JÀ)rZÙ*ÞjPBü¼
ú*³÷úL"ØE³èÑbðö²Dûx% ~zÜWU,p%MR½¼"úvèÚW»ÿÓòϽ®¼åy¥Ó£[ì5ì*ïn²±Ïìè¾²7
+¤ÿ÷ÌüÝÑø°1IÄuµ§Åël>oKvL½ñõl¿lðmq]ØBФ{ÐI8G;Ô<KjMFã|
4¹8_JÂ\iPá¶\vdî¨Zý×¹C-V>¹ñ:ÜÛP
+Ü#Î"bï¡ÿÓËR9o"ok´F ´±åg©ú=¤]?ß$ÓýyÔùÍkÛÐWµØ2 on<¿f1Ý[,çÄQ Në0Û'À¢mvxXTÀö¨ÇÁNQÎêJ$m(Ó û§õdYOvó¹f
+{G˽Âv6GcòCxn«WÖVÚ½å+VfàbQÜØmÞ@¿4¸È
+.³¿~AÇXºÁ Éøm&¸ÂÄøkôú¹åÚ¸ZæµèYï
+JSÅA£]D¿³ÛÆw¼zß:u«ã-¨ ì£Ö<GY-(Æs´Ø´üV4×=Gªçñü¹ÞnÝ
+%¿p=@GKûÔ"muÞa涱ub¸bäRwøkIèøôà
Xr;¯¸`p¼éÄì=2®^ð grÝ1¢ëÕºû ßH®[Ôç|õuÝ2tNm¹âO°±cC'A,zÊËZáÙòLOÛÖ{è0¼7-§ÉOÁV=M*j÷ú ·¡ï Iiö.ënòwsp©-ÁOæÍÛ¤®ÅÏZUÓ`ï£UJ%ÏâOàÚø´³,5Ý:gËæüCs(
+íaËâVGßwià§SZß|úÉÇÎ0ÇËÀÕJª·J°Z²ÎFL>&ÎÃZÚÅOû:a¿O3&fE'Ñù^ýî©G<g|ëkÈztÍûE=éYÙ@9
+¾ ÜuÂϺ¨ãÜA
+3ÐýÞÙ̧G3Ão¯Êe¨ÂBÇîãà#Oq9ã¸-®÷ÌÜ¿þåJîuÿÙÉc-Å2OöA<.}H%²êrÀÍØvÖóèRµñÿòä»Sòè @þ;úÐ]e6À]øgÃJ:<à¼\å¶ÁØlïÒÝæïW
+ëb¿»Î*«%¾àjZß×a²<æö êMÂ(ÿçÇï:¿uééUG³é"¿©bóÞazãÛò÷+v_;ÅJiüÖ®t N¦«+«©áêºêÞ.À¾wS³=A0C¦qry8'ÖðW55m
+¢¹ê³gciÜvíïì1ÍÕѵD¶ôÛ×¢¨-×\,×öß8Õ
+yZ#¯*Ð
+Ôκ?6Ëàä¤C×&èëGÕëIЫÅg´²wf°óÉ{~ëªwv#ù<ZÅbuvVf³à®oPy¯Tæ=GxHÆfÙ\,UÁ®EÙe[ÍÀþÛ«Ìs(X/"lÅÊGÔ'3ºH¢Éoµ®lq;0VÇZת¡íÖÁZTþ¿hàÈv,p!¯jaGÌíÐP[ÎHÀ7\æÀ»Öjð¢|\Ð
:98ÆîÔkB=ÃUª
+°\Õêß¿-]oFEJn>kólÝóòÀÖæ¹nê(4RÉqvÎßTÌÀåÊÕ'lôº©· %
+p5"ê]ªj0g´a.lGi¹lYèKîÖù±J]£Zf±ÉÉÖx¼
+A$·~O]ÂIË@$eå92èR¸e»;oà¬p²ÆTÿf°¬á
+0fÖº`}6õzZ¯ ûÜzÒÑ%>Ý1bßÁÍÊêòõ%ÆMbPÜýftÊ»58&Ú&ÐÉn}pT±æ̯½K@.bOFuÐûïØý¾{ØáÜÁ³'8
+Î+Ø?åÆXoæ°[½WÉlO_½ø\E2F3x%w´]&ÏN[[ÙZ'xâѱ«Ö¿knÑÔÝoЮß2ò
+û?ÙÕQ®ɺÛÞÿ<5ÁЩº!ÂðøÙ>ìy$»ÏþJßá¡p>¥fnàúkÂ3/Âó^ÖbÆjp½ÚF\ ®S²?ÿMEäÞù|Ê Ëb^llTVë,_9Ö=8Ü°mVuu))6'PqD
+CiÛÇïÁ]ø^
}ÅÏy*òì -fõ &ØóU_ ÊrM¢µým¯ÆV(á{A{1´
¬êñN
+endstream
+endobj
+86 0 obj 22173
+endobj
+87 0 obj<</Length 86 0 R/Filter[/FlateDecode]>>stream
+H¤W;d¹
+<Aß¡/
+_ÒnuÙ!oîï
+ |µ1!£,>ä×?xyù¶ý-lò²½ý;A}ñ¦U ®9h¯A&øúþù*xÚrPóï÷W
p]IWĸÀEF
+E
+ëÆz÷ Ó8l68´5ùëë®]X{W>Bþ}ûÌk|ÿ3bDy^{ð9¿ëImmÔêóò×ö̽|øë5Eµ@eµSã°XÁ÷]k³ÜÊHw1pÛQé
+°^$Kòqß_ÃÎÛóÒN,P;Ù1Å]ætó2rÀB¶W0PqØw@(OÐFÑæ8:ÖºÚÂÚ÷´{¡²ûùcÁß$´±pR§,¢msD(nfm+É®Ît·4:£Ó%Xjì~Ðl4óû9Ý+Ûý=³tm§Ë÷òOM,rÛ$â~!øF«/c¬ÎcMs¨£½]º¿Å}_fG#æÆcÚôÀÀT3ó6Cgö¾WdìñÓ»õÒ\P ¸+ at u`ASÚf¿«Ðýܵ?7é<¯ï?&-BW´üÌÒ63Ü»W#ÌlHѨES1¡ÀlîÒÜ+ré
+ÅM(Öî{^[ ëF5Ï!
+"öøW®ô[
+ê]qTÜg0q{[yòpJ£Ò%ëÑày)OR|G&¾©È{.½>¥ä¤
+»Y÷ëXèkp#©ºÇ«4
+³4O1Ø2{¸«Á V1ùnnl§JYøzlf6Ûé¹Ó}ˤ3{£ÛLµ¸
+-ì ;£ò¸ÌHx@GÉ_|/w®[¸o}ùAÑ7¹ÚË5O#æ~Ú
+h9BÐî)Îìq»-ÍWÆÓËÜkCâQãh:ÝzDio>µ×®µeY³J{¢*¨1}t×Ç
+ßÜ7ÝÉÚÝrÈë`ÌÖ#Véèo
+¸Éô°
+âórÞù¾9¬Õ7/º
DwyÌÄJ¹¯uwÝ£ü¼;p\oÍù(ýBsØp]fk³U=ôÁ
¯{»O)/lMF3,]®3JsvÝï@9¶ª2ø®î3-ûÄÍÓËÃÏgKñÍ3
+ïFysWLòÕB+o/¨D¹KÅÚÃd´rü×£[AK#¼ù,[ä`¢ gv'y^mÁÙ?~2^Ï+èïd¼bÊKAµø>£ä>LeÃ!fÑ+.gV
+vøÉ ´xXAñ
+ÎåtbÌ°
c-Cb³Ýß»Þr9ûý³W.Bë]ºZªBÁ¿¾þ^Äuß=I郎Áhwpf§Âu;±ê»²îwâ
¨n
+R3üÌ×;g[
+ÞÏ+÷ÏP!jþYæº23-+ÆvÌÎ:bØBç¼3êqYiiMWOtõ(÷4jÖâ}Y®0ï³Íªfç¾6ëÔw)FÅÔp2õK,sé¸vB6߸j}´£
+·ãxãi°êD"ìùãVmµZ'k{»GóÇ!®2Ç#¢£ö+3*.Óo
+Q>e~`^§õJðù ÅÃ>÷ xÎßѽêzÕ:2 \m^ÒÀ-:&V¬¶tà1ýaÓkÇhDø:W.âöiâ0'Y+Y_½6Ì@âÍ
+°UÞ[ï,8³÷Òim at Uð}ÌkS+Í,.\Vêí9'ÖûP`S3¶ß¬7¡í´Z àsYRÎ<@61:í 0Cd}³A®mÈÃZ\.¾ª}L¼ï®¼nj¿ûÂ
+ÛlÈ>Û?èÐ6KPÛ5SãÎ(4A(;õ©cÀÄC0×J:áEïY)ڣȰFm¹hªLßÌ«\-Fl_
+.ùMx»h¸µØ¾VÙÊÞ`«jåÓ'aÀ²1áí ÉçO¦àõ2AäÚy\´Ó»£¤¶½påé
+{K[»óìÞÚúm¹¢j^èhä!Ff
+{`Ø#xöl°l@unW6×ÙÜ®ÞÞ0˸
+`¿·^P6ÜÞj÷µCíË6z{×Ï<çé{ªrï}4UkÙG
+£ßCßA/ÃrÁ`]u:Ñø1θEÚJàéÞm:"Õ몮ajÃB¼&¼ÖT^ZÓ½üw¤½5àù%j
+±-xì-¢éMàeí$ÏůþúÂ@§Kø,ºT¿sèwØÍÃi»äÑÃúç衶Kÿ{koà×Ïy½ôßÿý·ròIC?MÊó·ß7ÇÌ4rÂFh©®¹óe
+nõ(ë(aÝûÿKƾËÕ }zã7aècÔpxÞ·åYà$Xj:]|°oMð(C=عýú1ÕcÇPa-*5À××8A`³-p»ÀøÏtÛ´43w]r¶3fúÇþofõúÅ·ÌJ-LbQ
+ã9¶»ËYÀuÕ}óKQåÖþ*µ
+JºÞnÅrÿM¸P
+Úç´Ê&Î
+Ф·JÓÕÖY~ß.¦ °Õ²¤
+0"nþ¼d5Þn*¹=!°UK«í °äeÃÎÇ$³{Àd#É+ÍFÜ6:à
+êÓÄSíļ.üg×}
+Ðêb[2ïkrh+®8÷Ïå×ïÌy?ËïØÙ¯Ey±>y¶ÁvJØ-³Ä(@ôû}PhlåÕõ~¨'4·Àxö-°ªV\\RªS«eqÄtkìa]
+jªÕ.§¹ÝOqî¸ØIÌ+Ïõ
+*hÐߡ𨿺µ3Ú¤½d½©Éû,¦(xl×ÿw.ä ÍÏT²ývãc!ijäõ(^<ýP:|±ËljAâL5´;øÛøt686«ë¥Ü©ø³£{¿~NMíC)¸kéÁCâ©ù<íLÕÑÍn)qâtV>DçÔfèóc_7g}#¿ÿ÷çFʬszn}°n{uÿõc\}ö4âw£s¡xxßéZJ/Ið±
+T|#xã~K7ïá3íc´Õ^»±ØÖjÜ#ÀÚ%þÐK`IÕ³SC1@õÆ·
+öLltã¤
+°ö¦IaAâú¶æ|¦kSo¸ªÎO§ÍÙ¸¤W¬Åõ
+[îW\zÔ³¹,ɨ\ý1T¾Ðé<Û¶2 at 56A8S lÞ
+kcòÿ£Nýßp1Üo=â?¹©7'h³¨§k½ÿ·+ÛàANþ£ÈJ¬n÷ïõªÜéU_ªfÒSAOÉÊÐ@÷ÿc\ J
på u«R§¦¯çäüãÝzËR§{4u´¥]9=äºlÃv¬MmênîvµÕÕo)¬ªO^0£@×®»^æmYÉÂõ>_ª¶
Ч¼(³|ß!-
|=¹'>¿nµÀ3ý>Øîi#¹«»ú]q#àí-ô³CESh¼WÖ`ûíÉ*Û¹gê+ÔO²Ôuÿå½ÚVí:àèöAÄKÏ-y<$(Ä8(`.Î1(ÆêKÍ:gï}ô¤#,³{õôtWUóß*ÅÛÒ;YéÂA¼õ|ðà,+¦po¤9óO
+f|xqºÙTgá$Nõ5Y&wM[F¬"ÂXZqÛéRÃ
+ªj;8ôýã ìÙ
z¢á}ï~ì%~d!³u«DjpHÕ5Êc
+YG;oM̱ÂäíÎÒ[ç`[´k{.M8Σª¬}
+ÚqÖèàÌ´©÷ÏIûÃ×XBYnÓ)÷UâñÏÓz¾Ó
+æÂVª;ßå2ÜÆ:ÄÈ«¿¸äpÀ5ûÎ:À«½n
+ `ø¢Ql!8ÔKß?/ÿ5kágSL~åx
+ =® ÎEgu}!<zÐN²Ì@Ð÷-ÛS8¸Ì=¯ËήÎDÕØOöÔ"]Û<
+A¡eº{\{é>èO»=ÂÛu'%á
q+r²û
+0
ll§«{¾ó8«3óhÖ³½{7Aý,òävÿ]äʳ¾ýÈZíÚK[l
+oerÈ©êü 5èÐ
++¨nß+J\Â?võD¦ê'ºkÂÝ
+¬¤Â¨¾®
+H|ßDÁÁV%¥÷±130x?ãRþùïúÖÞ.
+"´n.ÈήºË5Ä¢1Òzjjû÷Ý[ï}
+ÞOlg Ìq$ûÀ·Â×(<
+ÝUöU°
ѾòNaܼë÷Óªû[¢â0
+a(Ø]°¯] `w;ÛöY'XêìÙ¿ð
Õë{C¸qåÕKºîA˦!y7¨N¡ÀÙÒÚ|`mÃÆyº·]f©IÞjù¾k©I¹c1aæãNôÕ]¼¡
+ÄUD:Øp𤧸ô³ðP»îlÒ6LJEé¥9äêz6òCx÷èûGëôøÉéå_øÛWOÿ0øýíg>ýçß¾úøñí[½ýñýí=øñ÷··¯nÞ¾9õ'Òé)þ¼üùÑ'üNùì¿¿àÄ_þèçþtúû?ÒéýîѯäznRçko`¶1a¾¾¸ªùC|'Äðqk¹ýùJÍ:%µbÿKÿÃ\þßoØA4 ø«:»ljá0¤õ¤`ÓG]fSnEfDB¶ æ³ÊñóªMß>´`lÅÁmîp¯2ã,:?@3àW/ OÿÕß<ýðñwï_|ÿÓí«¿~è1$n¡ÍûÓ7ùøáýí§ÇÏ=}ýúÓÍw?}|¥G~
¿ÅËçìq·âÅ4}X8¬ÜìØâå²jºawJìð;,Sâìq<ò»ùÞå¿m^ØlAÏòÿµØDØ!"zè±å¹éP¯Hص×ÀÔST¡Â
+ÅåÆÁó=Î6T`fÔû |Ñwïi²ûÔ÷óÝ1=ñF¾ö9Ø2»:¯Ó«ãZ½
+«gSç#Îäá@ãFs°mÏnÿÿ¨¬O°°PÈm]®ò`¶½]غË0+îÎ)qßËú_Mgc+ at Q9YÝ¡¶~X¼tkØ k¯5ÞmUÓp¨×fbG1¶Ðoa;4ö$å
+vR©®;Öb Gß
\ßöÔT.y?jåõçczTHG
'ÒDïùûà6-c!dë`Vúïu¤Ä
+j¶[··:=Õ'ÅHjiQ QÁÜù¶Â0ð¤+øÒÍÍ«¢ëߧp¥Õ,ÀüZ.´hÖæ}ka
m[0¿Vu
+p¿¾\{-çf
+}°Ó3¸ye«#0¸1+U[îovt}`ÿ,¤X&ßÏÇÉ1[j½èÜZÄÜãlM3;Ùf<´ÒS<~l¸
+sZZ(m~2Uf0ÔëG¶¸XÉTNötµÞ_ô-
+½s@' ?õö_Ö«oEïã>Á¾Ãw°¡$óG3i¯lÚ¤ ¥³vS·x®CÈÛ÷H:oì«`võÓh4ÒÑѬCº&¸Np7n7vgÚG¯=m9l¯
+vµÿÖ«©=á¾36NX¤GúÖxoµã »ÊâÞã×íé ·yy2¿^~ÁxÍC¼²ñç×ËäíÚöì`ópNeAh£Ú,ÏBB*ÜÇdñt)¶2ÛI¯Nsf«Ò¾Õ¶û8¨(U²
K#NDÛ³8uжh¼º© ïZ³Â8`Ô¶ÁZ
+ÓRÇ.|Ý¡VÝÉ óz©§2Úð4´cÒLApSÞ|ì0îü¹FyÔc}Qâ\Ök*A³mY\¬¬ë{?oD0N²)Ô¼×Öáí"(§÷Êèá~TÇEêù^³^xÑëòúð&/Ä.©§
+Lñ(
+RwªçQ®ITZöGðmã×±M°n×¥xű¢
+j8P¬¿¸LÛ
n.AÛ^ÞY8Wâ^üëv?Û ~
+íÆìÓ Á3ù+¬`JD#F^a(R²F
+ÞÄBVëv3«¡ÔþQ]§ÃÜÍ#v_#kDgû"±|s
+¹
+æÐòØŦÂÎï[(ت¹±T
+ÚÅ:»ÜÃE8nÇJ~[^P»¤Xêe9oû7K³¨Í6.ä/#`Å^SD×½vD¢C
+l¹å!%=
+JÜA¯5ÞÄåe2®Zã¬Yr>âûÖf0ÈÊmWyÙì½ÂÑzUb±E("Ù>;¶;SñÒb¥4¸Ïæ+ê ^çÞ-TÕ0 ÏxCEÝoµd+OkÁ-j/àm]Å×FUàf¨[$0]×eQÎJ
+PS[èÙJKì(W"ÇôQj¼%¾§\kÉZõb>
+éV´¤Z½ò¶¥
55£b
+ñ;O`JvßFJ®*MB%áLô<¿7ꧮ \¬<«\7(N7KÎàÌ2»XA°Ë¢m£òk/a¨ <6ÊI¾Hfõ¼pìPÁû¨LA
+*á9æ zbN¢[ñòé@v¦¦p
+G°IZmq3Ü¡ÔïïnÚÞðz#'£}ò^Oæ
+M,÷ OÅpp]L SV´¡ß×iPÏļêî´&QÜ\¢`Û{TâUW£Pesôî¬Ú
B¡v´=U[ࢷéuZá*·*1æ¦q{
+õlÕ£ßf?däÂ5QÀ¼ÖólöN°ÔÊ£µx&qîs+Ѷ»ÉëjGf¿ m/)jR&X
ÑÖ·òmR.A=V×ti,¸V=È
+ä:Q*ÙÖ1zÞ¡hmYæ¨âÝϪ¹º¦Ò`äPÇ^A®òXn
+>*Æ`q<FDÀ²KάVr
û_'=ßí˳ç/ÿþ£ß>zñÇõõ^¿|ÿÝÿþý·W>¼yÿàË7ß¼}øüìóWïÞ¼¾¬çwåò?_~÷þK½ÿ÷åøãOøå?¾¿Èå/ü³\^í§.¨&fAd3DZéÈ@>aü7}zöïÑ_ï""Ëñå¿ævZGùÔ®!rÞ%ªµÚÔ2/@éul}ÓrPd:¡ C75q§BP|O3Sß@cëp`\å£ã÷
+³2
+ǶAô
+ß`ak¡eUNGõjE
+r6ýW©ÑÐwrTÙìÙE 5ÈA£äZVMÛ_/0BØ]Ûj¤¡bf¹Fw²ÔsyÁî%
+Ôîí{9нÙÞ{éਾÆqàí´mºt1m줶7¹E´©\¾´åHÎÅã䥱Í^ÀãöçÂ>;i»bU2\«²½]nGiîìDÀ
CÍÃ*é4û
+67§±6HXÖQð1
+#°ÿzÞ?¿>§ô1Ísÿâ'|1ÏK=øìû<ùdÔö}2õÓßôÿ¥/MyËÏC©ö¡O|ªê?ÕúC×àe>|Åyú³ùpA¨ì2ugiJéj;öлö^ààÐ{_Ì\3B.Áqÿ=¹O%ÏIFê÷v¯['md|ï¤_tþAý_2ññùª¤}ÈßS*¢ú!Àbýõð´OcñoòfNHÙß¿ÏöϯÏ'~6ÃGã¼zìÙ¯®}¶÷{>Ã#d|Äèò9Ï@ôAëÉ^ñíõ¡ðßAóI?ãë3êöN»Ë«Xú^`¶)í:µßÚ%õÄU»±@§Ý´Ïå|>¨R
+~&K`Ñ
+°±>uå ·pÔsho7¤2i?° Ps-ãÆÄc»</¾]cæJã0/î6õ¾!È¿Ä|G±ø£a]L[w`ÛXöѧѬó´
äpÓ÷{=ÁA]ÊTg4×t.
+öXüv¥R¤àÆÃ:L'pë¹s<÷`µ\µÙ!¦íúèÄ bÙ<6[¢z®Ê<µ"ndLo].Ю]ßÊñ:¨Gtaì,øOE\7SÇù·ç:Öb
+})`üýG±@Q¬>#Ä¡ëg^`üÞJ^@Ì°ÊZú¶°ð?7ÍÿAl¹]Um<¬ýÁcZ8ÉÞðN
+,sÅ<rfôðv4[x-Ǧ¬NÙa¸ÿp&É $Ø-÷oǦÀ´Þ M2àÜÊÒ±zåYGÍ8x,N5&1ÀÐ ¥xû©üÖäµ´RÌ'À»¬dñ#~Û0
+ʶIðyÄ@³äò±Ù@Á´®ù§£©ZÓ}@Icú{:5$½ù¿ÝÄåúR¦@X]Ý~ÚÒNOûdQ"9¸g«IKfãéÜ rTu$áôC"EÕ Üg#¬µ4OÅä£$\8|«-éÌÁ[á9$§Å÷2
+¸|ìðAí>!}ãº(Í]`ïÖè¿-0¼&øde¶´Wl¤ÿ+Óåñ)g8 g;°¥
+pÞc¹ÿWd1pÝipF\®Úc¤)T4rðàÄäfº¬N>US¬qs¹Tò®ðåRÆ
+m//uïÌQÓ§¹|Ä*Û
ªDäLKh>ü»Ö;od
+¿±²ÈÑÂÁ¹¦¾t(mýpcvôûmÀ»õµ±Z~Öà.£\`ÊØF9Ú2E}U§?,°ßæ²È 7bPk|TBãÖVr<sk:Ø>§7ôzfí]vºh#ÄMpÿ @!g.÷U>ÛÍi:ÕÛÖ
+8\
+lÆüÃ×.òÄÛCÍ:ÖmºgãpฯÝÃFØ(fiDL`ãt5^6ÈUÌ¢cV0sûì.¥ç n½AõÈlÞGé7ËJ!¶ûÈq$
+öY¸÷«LpϽÒQÎ.³ CUѧ÷«X*äiþy¥¡q°&_#Êxå¸ÀÑ
+ZºOr°)³}èV[^Á¯ÛÒQøÀáXetíÜ60ú»££¢:Aë4W®ÚV?èW at 0iú¶ØÌd÷§!x¹"Iv8Î0kéÛÞb@½ÆCÏèþ¢j9³¥Ì²+ÏÒR<\·½"Ad=#f4Ýæöìs4¸vª<ø8gjÂwor¥µ<ǻ̰-É{e6ZÇ4Ì~Ñïÿ¥nÁ½r«·ÜAEV«Ä{v0ã_¿HRIé 6Ûyò©sNýK¥§xÉʨºH
+:}£ãJ18û`©jGÌ¿jKïÀÀë`?CÒ[ÆN9:<jÓ¤<áp¹ªWJuZÚKWy"¨ÒgÒAâ[t³©~Du{xíên=myèk1É«Kf\=RÅq`KXhasBë¹ÿ[oÁÚâ·bKP¡X/5cåÌT8g,Â\yÌƽfE oõÿ 7µ/µºíÚÒ|X8x¶Æ` 2KÕNæ ÆV½Êo¦µüêªÉ±ôÆa'¨;Ô2Ùòl¯sÁd`6,sÿP"åWAFí§Ï%ô¾ÚÆúS¨°$Ñ©%ؾ%À5J0:;÷píE+Éìrl6;¾k,V|£ pPÔ"úUYe+
+Cðd98Nã)@/ºÃ-Ý·yV¨´åª¡-«ykJ6¥ ÕÙðP
+¤¬idµý û½):ÕîR
+\9Þ
+<jäÕñ¾x½-z {´®k~½?jE
ã#
+Dúûà0æÐe¶ÎÄ.|¨ò¬ÎÀ¥ÀÕú×ýá²Z««V®`²[z´è
+ ¶z ´èvÃvÄIÊÂMSO
ªsãÌÊÊgnt2¹[(a.0³£ò.kc|ì¯Zý¨ô4ghKU¢Pzúþq?½8=¼ÀSçj.°º@³j+_5S|ò®D&sõÿÎ\e+SNõWÕ&2 at i¿o
+~_
+àÜÃ9Àl7Õ¥mÒÓÚ7Õ¥½}:;µ0×!È0ÏB>¬¯£,ݽ2°7ÉãTXÀR1+£&ÊvÇG}ñçÑCd¾{°
+·ÒDc?ñ7JødKLÅÞK@?w¬&ªòíWtö&6S ºB»óùF`I²ØÖTµ
+neã
+ìbw$ðÞp6mf YÁf»C.ª´YR¢ã³V½Ng1!ÏÕ]®÷S¡
+ ©°µ
+ÿÜîiÊ*¿ïÑS#téz{¾#4ØÒ°jS¿)E¼@öÐ
+,ûë=¸HëÙTÙã«,«dK¦Æª4ºhã]4¨spJD¾*!
+°/aÆ1±$Vþa¡Í9®¾
±<Z"Ôѽ
+pB®3
+La@¯Äj¯ù`f
+ ²H wק}¨àåúQº3Æ'Àþ£0ШM KåÒþï_ÿûúÏ×ýþå×ï?þûõ÷}ç`ïÿqt³_ at M%3þ%X/Üå4{ÓÁ~z
+¤Óð|û#¯}uv͹ó
"h_"Tn±\@¦eiC³¶Ts¸OýV<@¿[¯;¹¥zøõùLõò°±\WB þ¹Íº{t?ئÎn2t¶<µ JMºçBêa?¿ù`¸´e ×Öµ:È@ÎÛvî¾däps ,9¡ÐQÅÝq-W Ag*+¸@IhÈS¼LvBÊNÂ=;.¶Çì|i4ä¡ÀI%àÇÄæiI&¡êì:LÝo§Ü!óZIPÑÛZÅÂ=®u5´-J¹<¹§i÷j
+øù<CU-cåwhõJà6S㵡6 Ä!§ô ÓËîý+ÓXþø´À¹®0©´ðbVâ÷<ï(L%J=qA§)µ°J·ñ¹cà{LÁ§OI{ÌI0à½ïñ4{¯³kèlÚ9fëãdÇpsû*@Rp7}Ü]yIýÄ _æKéý&4ÐI¿íªK&2W úØ{"||UÊ©õ
+³Ä£³GYÂ# µ¥ºtc[Ùê¦ÞU
+sh
+½¬ÏrXn°òíî!ÀqJÙb<ÝC
+¢säû.jóKÁc=9{õàx%}ª2ävpèu¿HÀjûU¬ÕmàA.ù¦$ST`¡îÊíµþ¾
+À«Á«Ð\T°±òÒ®_°øæèPx.-ðö:ºÌw/O¦ÛÓmrG½O+;(V
§X¯·o÷eXþ~·«Ê\'
+$ò6`ó2ÔkPX»·6Í1u. ÏrÔBMNI¿Q5ppÅ!GB¥>òMïhÐF%æfIÌ«ÅÁüíê®7*ÀA¾v!ÁÇé:
+µk
+¼Nx_nÒ'\|ùÞ
+0¤}.JÃÈËwü
+Ò\<»7ÁE¡[Äãê¨üÈÕð
Ó/éO}8¢UíØQ\&õV. .ê§æä1Àâ^*x·iXï°Ãæ´;s·øóè¯E9rÂxÙñí/¢Ü²69Ò&¸öVóHxà·Á'~e«x1Øh æ+eë²Ã
+à×ùôÔ3¿
+{-H*pV£
+Ï
+NÜIÙ¶0ý>ÄûìbK´8B
:Óo±kpXsªfn¾§v¹àRÁ`¾ä
Döávàýç¿fC`_Ý5u«(
+¸Ñu"Tþ¥ºà}ítìW at pËàto,íÕ
+AíL[[Sýgî®aÛAóèÜòÊ7¢}êhWt¥Ó%%©V$øü¤WSÜ;]7i¾ÙnÄ×ìÁ
+}ÖÈLfÅ\Â=ÃHÜ!b@`/ê¨v0êÉùèE& øæ`qÝÅi;ô¼×8zÖKÄ
+Ì5óRMÜvþ¾î}ß&O]ÚÏzCWíõ(ȱs|öUw¶MÀ9I'n;SëÔ%úùòèü9SpÂöó¦v¦à
52AY[p.â5yÑgÄdÉzÔ7#YEÌç>NÉQ$5·ë?ÛmWðr&0mÔz_ÒµìDÿí÷°±Oã¡÷=`D¥l^Ô¶ðÝ×pSpmmÅ#Âþµ«ôZyó}°G©T
+~Eþ>>[e?« ?¶ëIöú1hh
+ü.ùA-Fcy6)ÿêìVWúhåz$¬? 5z4Å£³ëv_Vz ÎÙvËÑ»_¿`}öqw16°³:73]÷Þ»ïÜwC¾¥¯23e,
+8';Að<Çà½þ¢à¬
+°UÏdÓkÐÛÕC×ÇIzè#CÙïpviÞó©¡çFeXÉß#°õ¦ AÚ@«qÑè´È óT_l¥+?@ö±¯n³
+Xc2XüTp=Ð-Lì`UAn;ÀÿLliòÿúó¯¿ýøïþüû¿ÿü÷§ýæ?$Ãß&æÊÍ5YáÿF`MiÏÑøNïã$0èaD
+ÒéìhïG?é{øÛ
¾¯J)M9ü5ÆÃ˧µdÀå¾nð¹
+Ü2_ÕÏ;=;¡)»-Rò|ö2)oh%ç¼Ý/¨`[Ee»w÷G©É
+K4TõÊì/"+Ëñ°^¼ýLCQ¹kª@zR
+ñ¦ÄÇ$Á TÝ58ßí<¨Jp6·'¡"_ÀòAÀ¬7j²fϾÀk]á2\kÑ' Æ2Óä¦ÃgÆÓÝ ×9
+ô®«Jp¬¤&åVç§À£NÀWÌYº^u ÀUKÙQà²]»Ò`°Àu;Ì>cæ·or¸yø¥],_¶ÿ,±:ô±øø¤pÀquµ£{nÙÐ}hn-a(æà\áPxíGs+99¬ò<´°Y.Ew±ÙðRtÌÀöî0^¹NfÜZTbÿaÏA¸z+ÃE
+pÆØÏ¥ðî«@u¸GPêúP `°66¶Ó¥2 éjѯ0¡ù¢
+8~@¸nÑz¯@c4ôÊø<ñ¡»ô}À5ôAÿ¹r>ß
+äZ
+]uõ½dÀè¶?îÊó[°Rìg3¥¬ïP;µåÞòh
+¿IÐgÝVÇãÓÏ!'h¨HëùOHOÍ&Æà
+2®iE·
+àq9ñYÏScí| ëç}´º¸;RÙ+Îèc
+,~ W³èu ZZ¡K÷mÓIcXéwjO £ó
+¸uõÏO>À5®£ý%¡9Á)óþßÜ%&·ÓÔ¼Së·$êÁ}Á¼Ák-Ü] ÄnWà°£»¯ÀR»ðÞ@°Ã)pÀQ£ä,
+ܺ!E¾X;z\©·d×
gÂw<Wx*ÙÝ)ÙõºÇfQÄVÝ.WØ4ÄÉu××ÁtMÁå±X`³B£±èíª#iöuÓ*ñ÷çzh\#¬À1a+K4K/üZIaËqÖÎuÙôY7Ä*ÓìAÀ_®>äà=§Ö®Ëëa/+ÓÀ'¶öRqbí¡Åq=ö[+{qvØÏÜÆÆÌI-ðÜw^ÿÙS_ÙÑ+#ê/-n¶ÖA#rõo*<¦¢ë¦ï3+A`Û-¯Úp
++£ ÎL¥ßc,®kÚmÔÒÛv`£Ñ_òíNL]Ëk¼#5Ìj
+ú{éÀ%·¸4·A²|w®LF*Xõ
+ÖQæ`DЩó FÊx@íÞïÐPE+!ÂÕ¿;è8ð×ö¥^Cd-ï'nÇÓÊh*¿>ßóÙþJ0áj_þOn÷ñ
+`W*
+âX¬Û«Ý¨vdÆoøªÕ }ÚÖÈ>ä8ªÊÀ®Þøû ÕÇ®OÿêüÖÂ÷E
+GätÞîO`©ú*ÐD²^¯s·û,
+
+&à¥æ%[»Èɧ
+endstream
+endobj
+88 0 obj 21707
+endobj
+89 0 obj<</Length 88 0 R/Filter[/FlateDecode]>>stream
+HtAf»
WP{¨aÞ W6l{
+Q2o)¨Ùp¸¯;]O%~}òÅÃûs\Ïçqmû|þ}ïãÏ:úp×ùùí#°aÅ$6e`=~^WË>gØæVß|O&
ñÑ̵óYÛhàìl<r^Lö
+o<ð}¦k÷ gOAuÕ;--hæNûáVx˵\ܽ
+Þ1¡Þ[Íñ
+_ò{=brÏg,-즻[qÙá¼°ZÈsp³u|»
+ Ìç3-¯+<8tÀ#w=â¹ÔÏ£ÖPHÆÜåèZWj{ß©óXp¿Öúc²úP¼WÀym®kÌ_ÖÍWqêòØl«~O9
Ϥý7¯Ø}|M®·0R¹ÙJ"ÛbÉË:6xÀ{6¼½rÙÂ]y°_Â3îûyñ§XãÚÏd¾áÆuçSÐÉÂHí[ÙO§ßâN(+ýðáNù¹>Ò*à|j¼9±n×`@£÷A¥½Â÷RÔu×VÂy/c²×âý-DúJ¯«[º:×ÏΤ^þöÙ×7y~`nITv@ðN)¨V#«wª"JöÜswßUæØ÷§û빨aêÂÑú~=¶¬ñ¢õLÉ{Ii»å
+
+ÏIèËp rv¤SðH¢ì8p¶
±°#¡Î^¹®×À<å-DÆuríðIxfÕªt
+@Ñ+ÌÀ)(ÈP&(ò&;TÁ«Û
+ZÔxF3¯§Øϼ
+èâ
bÝ*àõeÀåR¹
ÛlãQïYºÁØìâ{iveÚè';l£RKÇ(çÄ)6õ(!¢D§´'+¼b£h%Û)«1¤àF}1¿W_
½2Ö«uwáeI¼>ØTÛJ=¶
+è>mUw
Ù»©¨a4°|Fû˵»ú}Àÿå+Þõ}ÞìâRþæRç<¤à×J¼J(#xÍ×À\{}2±ÖhÅ&ôL³×ÑKA¼Fõ3v¯µyÀù¾Hâï¿g:lF#ä©D?;:LT#X¼sò·w
8!ßø~¢I3ÊÀ3çªèÔ#_
+½×áßÀÕBÆj·æPé¨8
+ÛF³b|
uîcÕx*£}ÐÔ]´»Y=^_0©ï9æç"ÈU¾h£í~UO«jܶj|Æ®7åðR$$½?ßU%ç3kä1(ée'º5[©·m6¦·Ô¦èßqz-4:½Uj]£ -ÊÅU!µëtïÉ?§¾ïèW
*ǵµx´ð¸Áj¼209O´Á
+lÍèåRÇáZ0<Ù>¿áïqÞ1¤VÝBF¤G¿0!¥·°UODäíH
iRoÌЫàF:0Öxo®Åî
YÎ17÷¾8ßò®Ûg[å nÅö
+ g9§¯7ï$Tô÷
+ðzN_\À·!å6gþbhõ!¾9í%´zgÆTï8³fH¼içál8»s@É¿{JJ8$;f@Þ&l¦çõ¹ô8z_A;0Ðûã6Nï?fï#i»sÔZÈçÈR½à9ùÜSI·=õù>xöaqì´:ËQ²X
+ïëþGxµäØë°dµ¿²=ÎR2lÔþ§)WUî¹ýH_[
TÆH°ÓÂÃT綺ÿ ÙZâ{{b0ÎUØ,
+gûÞF°¶z+(ÚENÛå¢álj)ÀÒ§®êFëZýtÚÊX.3áI nÉÃEÝï;qYØ|)nUwY'0Ü
+ at 9IPÉÃ;oë`°¦ÏaØ)}¬Ã&ùðñ¯Oxxçl÷ÓïøÅjbÈÒÈ{ÿ?Yoú͸($5Úa^0go:5Sð`ßMP?GBOקÂÌ8) MÖA÷ð0§
+
+6;lÂ.0Da/Wàð¤8L'°jBí:$¾:@½èYîUh:
+ÓÙçzÂeüõýv3`î®|Õ¤¿JKKçìÛT?iÀeûÐù¤Ð<ì®P¬ÁîIOþ,÷OÆàx6Öäy´<æèÑF½1\Öì{1|ÆðA £41VõT_ܺF¶¬þTôw
+\IV
+®uä°ºÄürM¼ä [dMÚlp~]Y8*ä>sÖr
+ý¨¬#·²ñÕIÃ2h¡FöÈ
+ñ°âi`c=Ó´o_7ÔsEÚné~T6º¤9¬Còä0¿Wìê`áÐØñU4
+°ïr 9§nÂèÍ®³áù>ä]Oq~É]ýo=ÁZØòæ´ëh£ÀzÐCì%i:XièfGáfi:¸æR
¦úÔçàYG'+v&N
+*Õ[é
+jG«tF.çÒЫäÖ¡8<¹ÍÒ¬á }ÁónX¸÷Fÿ'"û,Ç?
ûU6_Lù§à¸aßÝDW!å8¹ØÀÏ]á9+]=¡áU?í@°¹#·gY%Õ!
+H;ìmJPé`
+÷l²ØkNqMÀ=[ÝT[:(ùx¸ëÙZ¸A,`þN¬~
+°¸e
+MsÐjl[LTbÖkblíè¡|:£l:MûZCT'¥èö¢³¤rc R¢öC`]Cu½í
+p¸
+ÌVÿ+ÀðçèýÞ
+¨MËßBÞôëYNal
+ÌU0sbØûH§×÷ ÙfSe¢
+·ÖGm|îè^GöÅ_àkPöaðÌgçÑõ U¥¥4¿£á=Ê<ùòz:[GªW8+Vwð[?ß»wÁt×14±>ÁϱéûJK_ǵél{(j?Ñ'¶sò>¡½Ü̯°Ö2³QÏ-]´Êªßz5S
+PÖNx<Yuj%é&¶ìfza´ÌK·¾=5¦ GõÍ¢ô¸T½Y¿^Vµ×F±ò6HÄl¢EÆV¤¾QÊî`XJV¦ÀáËk:Ìuìµê¬æ `ÊoCª_¤èkébò·~¶Îà©h_£ØjÚ7×åp1&
+Q_mR
+ÀsÔÁh´OM×lV--þ\½(aØîz²[ÿJâÓNYn`Nð}í µ56åTî\Ä8QÀ ÚC5¶ÒxË÷5uöX×ôla05zYÉмU½élBcÆtp°Ðv¿mt8V[~:|ç'Úì:×ýå¿õr#;Nvuðl=}Tè5uîÝñ$
+u¸÷Òr%ªh"â`¼Ã¸úÿè®zßsvw)"-Û²]ï¤_ MðÊÜ?¤Dyf÷Íb:ÿúÙú HsçnDGí²9ÂûÆ|r;ìÃNJ¶Í ÎWëjä ;x§§}òt=§öë¾{'æ?uåÄ.þ)¸äÚ=÷Ã4LÌ6KlRâh´þ®y½t\[1/<+Öøz=>ÙzÕ^ñEÈßy>o0$ãÅØß<á»w"/ݤÍ|/ིh&·L?]Äu¡»£¡{LNzÙ^ = ¨à¸WGÀÒ«¨Æ¾Uηäº×ö9=©çâlNñ¦fP;¸6ó÷7Ç"w
+±¶©ÆöTídF%)HPTâÓ ¥HMñB°[Üa¦~ÃKn¹QÀÇS,~ùê|ºz¯3~·\è;À@ÓD XDÚ©
+Xnsf«Uþ²û-GCë½Ü¢:ó)o#^«S±,ÍK¯6öOx5Óó¾ô¯NhøU·íÑ {U;ÞâöZxúû½I§xL͸Føe¿tWæ0gÑú§ÐÜÛgËaº^ÉiæÕ¨³»Dý\5^gçréô%FãÉkßbHBÐMËDïZ[BcÇ|Ná¼QyËêcj:òo¾K5EÞ¿ô°ìHº«×QÛÂÚs*ÝjwEwTø.õy7]êÌU èþÙ«ç\ÄBoÄà®ö_) ZÑm§´²Um¹W¯é¶ò5{÷2k\:Õ«s49Ë-)0©½e[UWÝ\ÓÒ©ØO£¸±ç´ôÒ¼«>ÅøÔÞ¿ë áHF3[óQàùn2V=Ùÿ)t½V£DJ
+¾è®Ñ
5qU¨«ü2@¸89³ã4k¹VØ8Lô)pOxzð?AfѵéÌæ¥_mál¸ÖÔµÚ÷Xé!!újý!·FÖ Åð`½OX#[òúÖsåPj0ý*À¸C"<bS«-ή³·§.øµ
+.Uû?ûøoÄk«=Cü,X¾Éñsít0²æ(áWÃ|J²sndú/ÈaÍ\¥ç¡ä¡&Î
+·Ô¶ë÷óÞ¥±
8²¸ÕqéÞZÁ-£Bw| ÕûëD;rc÷ZOëi.åv)Ô:0ªíHÐ;?¿¸á.éíêìxÒÓN.äËeÑuS³Ç¸R>Tp
+@²Xò3£§"8Oi¾ËÌô$ó=`{ my/ß ñß+@ÏżõóÎöYÌç»A[o}{7([x¦PxEôt¦þhéj¸
·üóEÍpW¯r5D[½ÕÏÄ6ä¦WÓ%JC$x×QÃFïû4tW¯öì(ïG;7¢Þü^yk\(Q at xõjOÛaúpb55 !¥ô{{]$8ÖJªÇL z^¬~Ïú}àÝ¥uÃØxË-V6KV±; аGGϺù(j²Eä²ßã÷`(¤onÊók]-¡é]ÇS |ÝO
+ó¸W~þd*ä6ïP
+Ì &2ßµR6õv`¥F³NÍà¶t¨Çµ¼Jß\}Fg¯vò5ßÇÌPòcÄ.#
%o×>¸J8HúÜ£ÍÏõ»Þ^ÄÅ¡>BwMW«°9¯(rç!
R©L:ÛVÛC¼µõ{4¢ãUGo×F<»>URÚJ ´3µ{C[¼ï·®M}·½
+°\`ÛÓb¼£ª«.à5³ÕÙJ5öÎX¦µ2ª²NÄöø4µ{/u¬î¶ôîXLûül¶J«
+ié}ìZÙÚÅxcMËnýý¶>õÍì¼½DÅøö°f¥_îy¯©LpOÞûf
+lO¯Wìú bÖ{#o÷Qª¢ ÃØß
|úå£jVÚ=}0oÀ'@wûé±Ð=hø.pÅ
+ªM»w-m¼ªt`egJý^ÝJjqôìä5½z¾XÎfe$XÂ5©rg{Qïì:xö´ j\[íÌDê¾ÓEGcÚ/f"GbÑIÇ#/oÓ§`îÃa¢xfà¼{w%/κ³÷ê(ºøÜ«ëoÅ7Øì
+ÐBù³1çYRèZ¦1@¬h*Ç>Ñ`²^ÇÍN À¸×ÐX~Z>w]@®u¶À3uZA
+'ÀËÆ¥·Ìª0Úñö¿¤ûúý)èëTÄëVµåìµ ´lU%;Ïúj<»Óñ{
+°8µÍ
+ÆI!ON¥Tµ
éâN§©²âíqïãß·ºTÄ£
+HWsÀ)QJßñ/âÔ´&½ýØ,¸ém é[ft²M
+p]¢@òw[
+pÂ{CâåÌtljô»+ýO~5¬þS
+÷&W\©¬Î©SO¢ûPYÈ|åÙÓY ®¥)ÒpÛ
+sľ%P-#p7ÀXå{^Òb¿U¯<j1ÊÙÇãTËd|1 öøfn7ix§ïãö%®²z#X§
¦iÒüÜ Íµ|5ÞÉ_¼QïÇ×:Y9ÄcæÊìéÃprôYålú¾÷÷-=uM°¶Æ
+r3ºÞ{Üb
+Û´yïj.¹tYÔ`8TÎ Î0@S hÐ¥L«
+=cò,îtKà4_µÏº%(îÔK¨^X{ö9ÛK$¥Vû!º ¯'mJÆ£aA!e¤´jà=¯%xM³Þ}ÍzlDcpõÓQ]¯P©9¶¶¬$·XÍr'k`;®]»Ôçd §@Ê`ÐQ,:XÛßÙÄr¥&¸¨+6²Gøvxèl
+ÏRÈkèßµ8úÍAy) ÝÅÐ_m°--PÒß9ؤ¾¥
+2Ïï1XÜ5m6ê¢
1Ð,KhÍÚÊ%î{Áµ®ô½ëªpèiªdº¯°(EÜ
QÕ2û"hßÂUÙ
[Oóð,,bɳ{ݤ¢Èpq^
+°kca£õtSãÙ[IÈõXOlúu®.<ÑpoÕÝï/°}Ä?<ôãOð^óåÂÆáð¡ÏÚ)ÇÜ×#'¤¸_(þEµ^ æ¶9îM6Á~2/Q1£=dk¡׺àÚ©
PË8Ï£Ñ!w¹Ò¸FeóhiÇN+Byt·Ã;Åį6©³ëðV¡ÀÒ©®"püè®tíì|<
+ÐWëcÄmL-¿¬Yàzâ/]mÞ
+4²x# ëðÒ¬¿<rYm)¿îüH_fòQ×äu
+©¹¼·Øfî0ùû~àãíûß$ÉßfÑ4O±½^¾úÔQ o1ð
+³Ö,ií2p9
+!105{?·/'z·füEº]FNtÙ¨¹Ï_wìͽjçY9Æ3]Ô"ÈùÔƸõÛyÁý;Ùlñ8(áO½öª=³Ö¨Æ³¶,7¸3i.Û¨oÁ
+ÐnµÝ£kôKÿ¤Q×ÃpHZÐ×pÕ
+Öÿ$|ð_Â&Í߬®÷EôyÚFp¶ ñØ0GAë
f
Õ}Åí`®aY
Äax_À
r±éh
+¿o %9À¿ ÊUtß`Jc
+Ñ?Vf(À¥|Sïì¤ÐÝn¸ÎêÆBAÅïàÀÚ©;Ó<ÐL;Á|
+GÂ
r+ÐALuÎ\+³ïÿ@f#<ð?/ª vcù¬ÜÁ6Ö}ÓpVÔLô)çýã8Am`¬ýßÌapÈýÌ÷å Ψ×yT¿`ÐÜÆqXÛ nZÏÕA:Ùº¢Ñ¬óbÅ:o°°âýÖoZÅ\Ó¶
Ü~ÞÉ8.G{Ê÷Ö^Îi o2)@Îÿ
+}zJªØJê«UdEù1ÕÈq¦·û$WpÒ:Ï.ëtE
+ëzOØGùH¯ í§VÜî»v}uiÀ:è«ä0
+ËÄMbAÕï/<®)¼ëÑFý®+AèbÜÂ]êÉmV÷J³Õ¤Ô²ÇW,ú/Vú÷ç8%+zí}]gau
+,ÀVѹ9ÑëèsDn
+íãm}oµ]Î
^/þ$dqåcWÆ5}ùõ²qA¹ökËVñ¨e®Â¦ûÓ²×\ÀôÑßÀuÞík±¼½ê
+®ÜJÑkÊ^qÖˬÉÁ±Pb9ÖÎÍèó=4ÉN¸uÙ|Áö¡¾
+±à0c³EU®Õ-i-»ÕÅ^Þa}Ê+PÝæYÈ
+f¼èg1¤L,Çõ{ßU§5e¥Ñk³¨!s\Zöo۵ׯaU(ûUåïÉÙªîiÐæ2îEJÞ?=QpÅÚ
sqЦ2u¢ivX[ÕÉàFI4×O=éô$iöñ§>êÌÁ¶2;åc6j»ðµÃÅàílj½þo»}¨a:£h©k»Ðö.ªaÔU^&ÈÖú½Ö=çÿq[
+ g ²ý÷.xÓ*XMk®úÜ?£?Èôø#ˤ¯ÍRùø'öäÌY¥»UUG2õÀt#©^¬^nMú¼´ZhîÐOj¤QeÓT¯õò®C²åZ¾JÜîbo¡ÖÚ2|ÎZ+]xS!'ì\ÀÀ¦Öjê%3`7Øþ#Yqø]Bÿ¶+À<Wñì(óì
+aèàÜ£¸òªn
+Чb.ÝSÐθ°¸ÉºÚä
+:É9ä|ï¢7&üd
ÕÒ¾8<S>7Æ
+EâøNgþòª¹I¡¾ü4z`~mQ'ÎØ#êJ?CQò
+¯yú?ÛÇëOÄ
+p¤ç©²<#¢±À6öoÆ\
+Õʲ×ÓC×yª|é\ÑJÏ/±ØäJÀÝöø¬ÕD§« ¡ª0¢Óû;ÄÆeÿÐÓü´)?~Xhï#ãhYÌ-_ÛÎYõq
+ikµËüª¼æbËmìROÊU¦RhËxIjÝD"¾b®É=bXQ9ûaÅWlã
+
+|]'vA<÷#o« ÅX¶'× êuoà{¨àkmÞöp^ö¸.-¬;LÅEowz°x
+ëÊDÇ4Ý`íÎ.wXlX'w¶ðüvÏ7
+@l°À°³J56ÃJ¢hy'8Ù4CchÇC§f3-ѪºÿqØ4O÷´$°ZÇ"þ5
+êq¶¥©í@¤÷ àf* ~¥3)©0gÅÿÊx#ì
+þÿ·"cÒ#8d%aÈiô¨µdúÌUhTj"P<B³þN_",:rÚá³8.,Ðíö5zs`kXc¾ Ôaé²ÑK#¬
+pBÌìw Ò>ÆÝlìÝ`ì´¯ý2èµ.p´ç'õ¸[
+,ÞåÉ`
+¸³Ìø±¤Ô
+%Ý~Ú·ñím%'K¨ }úzÂË;
+E®¸Ï_¶ýOqè סÂî:·èÜ_aNsNØY?ê\Áݦ«;=hm;¾u¤Ae²FáôߥÐÔù%îé.CÃÎQ÷0KöÒ-Ç·e\´³ÜkþZ½·6Fc#WÍg«üñ½ªg߬%ëVêÇÉÞ Ôßw>s´-Ëã79»!Éokq¹ÝGðmϨ/( F®^wSZåÃz§¼½)=A=ø*ÁK\ô$dáGÆ5Þ¾
+_k9ÚÛ÷9#ѵ޺£q%)¢k?þ àäÊ'bðÌê®ØΦÑß½ÈØ\¿^ðòÎ
+=ÄvëðÉC ÷~
+°ÛÑ!OñH9Q.JîulÍâ´£ýª;ö¶aMZ¾±0ÓetÉÓ>ãTÛCÏg~¿àå{_¢Áû!¼fi?q´-ZbÅ
+èÚûæö2Æ6CMzÈIZ ¬>Ìú¾¥lªvç&ø§O¦E«9c
+öª
+wÆ°?0ÄÈäv¾(ê«SÚ
+ëºmñ<-T¦Q)Ù¨Vbs±ÑÖ¹GÌY&*§L=Tê¶?ÂdpÚ¤sØíÈõyæº?¶7¯U¬,eªÎóúǸm©§ïrÒ«ÝdûU2
+ìj¼Î
+Sqê4"4ø¸ÍWYÒ1ÎÖÕYzÌ
{WC¸´t@Ý
+¶øUîn±9ùm_¹dCAÿ%¼ZëÈaØ | ¥õá:GñrÊ÷ßHzIÚÙ¸l¸[-Q
+fFÂqòÊn'@´çû{Ç©õmÿM6¦®U)UZ= °Ve½'Nî«ç«-
+PÚj4·á¢ìd¹ª
+ÆC°ÔÐ&¼Bܨy¯:ù}·
+øÁ¬ï¾~
+
+×r+ßgÄ÷[ûúøæ¯\¸ðf$u)¤~
+- #ñüoAÂ@ÄZß
Å´$8'9g ýëC©·iÕ\@ò}ïoww[õ^ܦÙgSjÝÙaÛ'eÀí]7Á^Ò|Ëèê¼q8lnvÖB1qØTwúǧk¬ô%,AÚ52zÕ0Ik{w.ÐÝáÙ¢Yï¢rH;c¬tÖ×ýíUÒoQdÞµîÁÕQÚSßëK-}<ïZÇ¢ÉÜ ÏY>yfÏg¾ç¡oEÿÛUl/v¯²xJ|°U
+õ~Ñhñ:wýZt¸ÂpËä.÷$
+ÿØØ (°;V0äi%õÐÅ¿R#Z9ïåÄ)eve¦ðæRLå$»c/IéÂ
+ßuÇC']{îÚ×^~èú»@4x
+ݶ¬$UßJ_å¼ÿç^î¹ZV¦jú
+ü",ÕÙà±Ìz
+4'(.û»Z¤® bg±K§ om¤ã|V¼"
+þö.Üþ",=³Õ 3qq}ÒF\6:jvá²&bÁöV:Ï®QÞbCNQ6gÍ÷Ó}a[£ÐMz´ì©XÁü1EÁ£YL°·Ê«än6ªÃ
ø¸Ã;cاK÷ôRh>1ëswçü¸0éuPñU¸D²2ÆoÅX;©¼FÓ
+pÓ-2ðÙ"] "ÎI
+%ÌÑÚtCJÕyæW³Æwh¢Ù$ªOw¹«µ²5W«òº Ð=¯»h´tïû+Ùä1¾oSAL!
+/Â>ß_ÇKo-P¢ª9§ÖÆs{¡£.²Nâ¦C¡¬ã7s]y˺pw4Þ'/°JÆàýRN¨MË 0Rw`$'¦J=mèmâ°÷i²;ÝLpKÍ
+xxHÀY¹À1}(d¼BðÁ#üôâ¼oJöùøôÞ7_ä-Á`[\=´X&o[éì0¢kKDÎ#ÏƳfRòæøg÷&¹¶ÓSç]ôÖÍ«¼IÏ÷sÒÒ:ødÇ@/½T¶,^XA63k
+r°,öZí³`'³Ã
+×Â^GƤ¡©²×
+:óýø¼ü,ƸøRól Óõtar¸ôX1³ðÙ®¯G«9¸&ÒdzX
+Ų¦3ûÛ½Ë\àráÛ
+ÇÀzª]û\]M¶X5w0úæ¥r²Í¦¦ðpAî @N
+0ÖñE,QÅÞVy?lm¼î lEeI>[u%¸òb±ï`-gh[YÜa0Ù8F÷®Ç¾õqb#ª²2f|_SÄ£Nw?1Û4æO²Ù,ä½s¨3ƽÕðyEïþ0p[^
p |¿6ÅI|ÏSKÝ2ãØVµ©5ïÍâÇ<àÚO"W.
+Í"2©aÞ«éè¬JýDõ¶øþ:Êkp
+ðå×»ua±Ë:0Ù
+zÇbPõºö´çwc;úY%òüÐö×7¼Ùi?Îçèl2ý'¢ÙÄK+øä%À4Å`GNMàYõ%¦îx`{×ëË
+L±f¡dtQ¨VZY×!)ø
+<ÛÐâÜ. еîEp÷EÐÚbÝÃ.®kùÈ<f-dÍ !ÀÀÌ1,óÝ%Ò|=oÒáà ¶)èWóëodO¸ó8سpK¶µæ,0X´ÇjK¼ÊA§/$Uó|%ÁK@®Ò
+`d|Íu·jè=o<ÒÁÛº/UÚá4õa.]´U¨vU ²U §<,9h'§½ôFÛ´¦gÈ?a³qKÑ3Sd;,*
ÄBEJ²ßáN¥Ìu^iÞPOqkº¦âì"NuÃ×o°;OaöòÔZ
+w(@Ü9¢2>ª%Ò4}¨Á±âú½ÍÀý4]7÷öñD¸SD9<åϱ÷ùí=§¯ÞÄÂÿl~@^õEÞÅ:3ëÕ]XÉ·0Ü©wuþÞ6>0½ëôåû/þîݶGÔOÿÛðéó»qkðøÕ7¿ûíóçoøé¿ÿüÓ÷?þøåç
+nò~Á¬·%VQjZhÅÖØòÛÍlè ¥ QÒ$Ûi
+2^Ý%÷Ú¶êu$±A鵬q §!¿=& º²äwùScl½Ý:Æí³e gÞ3·ÎR7Oó8xrÖÂ9SÝDµÑb~É2wª"öýAK,Ä
+ÍÅ]¸È7°@cÄb@´òþ¶n»³¦
+¸&P-lõÅÈId]á>´N ܦR2KÀµéDtð!z ½è´H'@Üv%üÌÛ`]ïà:êÍ ¶m%9ÈY4¯::Æ(ö)[è!ÚöÁçt"ÖÙUP°ÊóeÕiÕgÕ|~ÒÀ.Ùߪßç´ Ð´U°7
ÔæÌÊÏ8a[fcd'âʦZR½P at QÊTªÔº9ßi¥IÛ++ÞÍ^WjqÅóqPÎʹªÁ£VÈ]_¶·vlkÅ_5͵Sס;Ér=Ýó«Õ[µMRÛ8/PÕs?Æé4
+ñ[y7
æ
+a{RærÆ¢3âLÀ)íÃZ¼´_ü
+íõëÀÆêbø)£åWÌc5ñ1REFPg±È¶©^íáwÿoâ[
'O¶|lWæpbK°6öiw¯á½ÌN¹ûH'ouzM¸À"gå\¡º`QEyÆ
+endstream
+endobj
+90 0 obj 8862
+endobj
+91 0 obj<</Length 90 0 R/Filter[/FlateDecode]>>stream
+H|WArm;
+[Aï!è[66`3Í:zýOäsßKþ$¨|0`âcÉÈÒÏÿü×}ÈËùGÀý¥_À̤¶¬ÅçäÁBÆ-d{÷kqÎkµ³ªmá¬:0[ÓÙ\÷{~nMꮸSht÷p.ÁöÚ{iì³ôWÓe·.}N8;|mX6
+³7âÜg©à¬
+
+HË%0 ;"386oûîaz×-kS¯`Ìâ{[ÞoP+öjÛΣ¶Õça2~á¦îcܾq0A~o®«à9ü>w¨9úñð_aÕ[/mc¿%«
+kF
+kÈg%VÃ.KC×^
+òÓ-eAxǸz±r\3ª¿4ûwCå¯óþNUÅ
+{¨+ÃhpMÑ*.°¡ªçìg Sq¬
+×`raµr²ÍÈç`¹·ì²kU %èè]¡Dj&Áik]1º
)%³a5[#Þê5ÐË*
+HW*eNÐH¹!ÈÒ@+êNe at cöz+5íЮ
+TwäW§è^ÀìÉ~
+p\E,Èk|ý§Þ¤Ýa«)ï×|jÁIíÝ÷xM$*·ï1dâgTy³Æ´«7r0%£wåQ¡Þ¦9¨¨g»Qü'ë2©ÑG[LȸBJJæ£Hëo³ò¾UW9¦,ÝÅ,¤ø(§Mè©GQ÷_,ã
+&Ùª`66¾¿Ø04ÒJ
+HbÎ쮫°r!óÂ}SÚè
+#´÷¸÷KÑHUØB]%Eó±µß ¨pò¨lò^O¯á~Ê/@<m}ü6<9²cFÈ ^ÿÜË]ä¶åØ
+þ]\¨¡weÏN©1t-¤ÅhÑ
+$ζ;VÑW»wÖ-f2ý2â
+w3Í\ÊÜÙ×ýúP^¥]àXCmÒP;e¨ehõNÅékàl¼9(¥4ÀFÐ\
+hÀ&·KkÎ
å% æÂärY} ]ámÌå=97LëIÁ×V»V¶1pÖ´4/ à[ïÒðØÈWXLÎ$F´×«Ï»=ßOÙpÖØ
+rd´Öà§b¡×5Ö!x"ºkEÛ;À¶ê
+<
·hY|D¯ëÀ´áÑXÃ!0w
+!.
+à°`=ð× ìM-E¦ì¶`6F#C@ó
·Á¨#
+Â8 Üå&ÌFîtLj®MóôÔdÕt¦1nYºjR
Ù,
+¸n&£êz$A¨àuÈz^ãûÜ vÃY*üé
+Îz°hñù@dÖr=á(õoÀ¶8]ääÀRÏ5/µåÙÚÐD v¬ìÏï*2¦Ý¸úUiôp+Ë
+Âhç®hPg©ãrB:@|:ÞRð²ÙK^çIuzpùÜƬq¶Þ2)¢¨ÔÞ6Ʀ<ª3BL©Pà^ÔkSBª)¨Ë@(ä?Ke w-½ ¡òû"qM5ÙNäÄÆÕZAåø^ë+Lÿ@ åaYHÓ©TÍùÚe tèjTlBh`õQèÍ©Þw}tIÁËPßƳPV]e°L¾¡b$ºå(ÖqèA½x.ºþr{Ô63K-ÏJnie7¿»Ò¡ó-íqNÞBp/LawÌ<.Ç\ÓYÏ÷»ûí.*0Я]¯Ù³Á¬ñhd{
+4³÷«¬¢''ªçþ¢wÒ´
+GÓÖ3@øT¢
¸°ñ¥Ö\áþg«-Ør3Ì}Cm(t¢ÜjÓÁCÕP)(*Ñå.ª¹+:Ì`ÿÏwcYã°ôêÓO»(»Ü´çíåýÝEÓ.¾>C%£*óëvÖl¤s#
+P¶|L·fât½à7%
9{jôqǦK»D°[®ÿû{u¸ÇídP8üÛ¸µ?IíðH;Í+"(H`¦[M"-îÝ©Å[£à À>iÖ~¢Õ4ü_ýîç°ç¿¹vîÖîýªKpªK¾ë×¾>ö¿¹óØÀÆmé^HÇx<óÄæ¼
ØW?~.Â̸'&A¡övï'a|#ÌūبÍ5;Púg]Ç|àdàÛaæ+SŲ́®§¾Æàé>_?ÖåZÙܹß[cX´)«#xá@æn²¶
²åp[öª
+Ì4[=Ô, at s?;ðép¦Ìcè'ÌsMtÃP\õäi<®ch[ÍÕ?
+ôÔÈ/â |pO6U*ÕLÞÒÆâYó!_¯ësc\y5*
+pXéUf|ôÜt1gECÄãçÞ|ì%ùÚtâ{X óËݽ?Þìk«:h©i¤ÍG'k}ÆZÌÙâëàîê.üªæ©ñðLÿ_Ml²
+@nH^lÃÁ
+ø¬©À [ê
+¢àbi®¼¾$§êfà6 tàÚ"sý<
+o<5ÉÝLA÷÷í\Ùj¡D_
+u«7ÖÄ*PÚK¹'p¯P*B¿s}ü2{ü{Ò·lç[^ñmf<[UÄ{Ëpe>@ä(
+çî+÷?[UèÚϺ¡3ã¡~¬Õ¸Ñ¨nôPiZ9]râÈh¬)Ò{å£=à95'>õL9ÚÛ2ºW2¢cWhþ/7éé %=ÐjÀ·à3¸vón0[2ÎÚ¿dêdÊ!:Øÿõz;u¢0âøi[StY°ôq«°Ö4H§®ÞëJæCÒJ¿v²ÀÚ^Ö<Qw§l&/²ÖÓôâ,Y6aG
+#®Ýà\obR9³À¦²bÚæÞ4 S
+Xi/ ·Þ)·ªÀåÚ
+:Ô6Ã5{dÊ"sÕÒC4¥CxNËÝÈFà*¿R¤l7qÐ1õͶíOÜûQèÜéÎfIXGª~ú?baÿv?¦x{G.ìGྥעéÁãàX·yäØfiC}õüÑPî|æ5Çeã¨ê^ó
+&Ko_¸gx?ÿæveððçwtwÝtgÅEи1gehÛÌ@7éÝËÉ88j8ß[½âhg\;¨ÆéðÚÆ;u±,øÚ¸ç`* Z}!6Üíò;ª¤½»×ü ZWJì
ã®;ªtU/ýÿUÁÛ»gúª¬0|¬êàmÚèÍ`ãp±Î¹dàíÂøÖÖ·ñTð#ÿócÜ߬%s$¯;@Ywûbt'°#èæÊ©ÞluÄtÙñç¿íþ_àl
-
+Iê13
+óÞÔ`D9¹vºUãÊ)©
+ Xzmå'é»êUªâ' ôÕbÓ:µ9_ðá«Ñ1³~UV¸t3ò]§Z»ÖeÏ(Cj¹ó ê
+
+Òuºq{\êÕ
´¤ó£j²G²Ðúçn,ÔÓ/SÙU z9·
a]öR:úù¥¬Ý ̾ÃA0XX³ïWø}½ÁТ¬Ë³9¤£@îÿÅÎJAg:4,²DßéuñJiámâª>3ìäME5T6ìèÙS-K:7Èßgo¤-æ@yä¹ß/|t4ì?ï뵡S¸h!¼\"eZWËÃc´^ì$¼ÑYú¾FÒseñkT$Üâhdnéj_´¿¶tñ»ò½«5&G¯ÌN¯ótUcPJn°H>zU¯>Ù2æÊòús
+w¤k?,]ÑK%9^YSzñÈ;êÅ
^EU¾kåf£oM³W.+Fþbygg0,vG:ºútóa«@¦ô¦@á½P/hBG&yª±«Ì/»ÊXÛ «£ ¼uc¿òQ¯p#¹hf
+ÅAjËwýlÿÈ,÷ÍMRʧÅI=éýÈ$qYyÎÈÓ{
Þ ïbj)þ°ºÉ
+úCÓÕÌù³Ã¥tOQÅbnW`|YGEvG¥6ùÅÝæä¢ç[90lLÿôY]°YT3S%0ªÕÅ-êzÓ¾«o¼¯¬X4# È¿Ë
+òÿïR¥õ\ÓÚ»ËN-~êë̹9C£0²{/ªËBv¤Óë=}%FvF}£&A+
Ñ#êNÇ]%;rÑ°<ýÂñ$4Ç1Jà
+×fP&è5©1õÛÞQoÿcïÿµ|úpüet÷[ð,¿"!0OÔb ï®YòDäþà X>Á÷$Yþbïz®¾qâ«ñ÷sBå6{åÇÞ¯{\]^³ËûÓ|ñcïp,ä÷½ý§Mäwê¯ÍðÇÞ§½¿}@4Ë¿v{_QýR<Ïóï9GÏõâÛO2oáÕß1¡ÇIþý a âu|Å+qí£÷jÕÁÉ$8UÉ/ÊxpfT¬Ã·ÊbR|Îñ_<ìgé`©Á®rJ²ÙM(Ðzz5!eÀU*© "o µsIØ8¥
+ðO«ýTS¯S6³âEÛ5YÆC|ÁÑ<&!» I½¬HÒVù
+~
+·Ê!Æä>¶¦8$ÞE6Ç_îé<Fw.
+ñ§o Vg?q(NXDò¡ÖÖB[æTa°RàÏð´÷y70½úÀ4åHHzÍHº`L@ç&&ÝÄ´þMÞML»é`71½þÝĤ&& V¿
+¿®.zâ£yLBT6êm`ê´q_#ND<ÃÊe,÷÷2ÿû6&@BZÞÀAwÐûï$ó) 5èÖÝëèeWßoÃÇ^x«ú/DµûNS,NhÖ¦ob:]oýý?¬ô²ÆéÿÓw¬¹Ãò)>ÛñÀs>À8ÀçºÜ>½ìOuì$±Õ-|(ø5Ü*ûØ:CÀ!aðÖwdcpüåî?`:QÄïx¸Â½ROÏð´÷yïpüýâPyÝ_óÅí:ãóQvo7q3cZ&%`ÀÖ'Iü1Ëxé<B¤ðÆMfÉP$Úò 9Ò®0P®!ªCç("Yjø_Úm7Û-åþiäü7$(õÿË*ú9eèf:M±Ñ!K\¼©A)þÑ·@¾Ù¸ÍS÷|ØÒNýzñIFq¶Éþöl±Ãê£r
+D¯IXW¹cwõ"ý/ªÏ¥øã¿2Y.Öp ØX
+uRÍndõ<`«-0Ø,®RIa|K¨KÂÆùÃ0(Uwö;(¦±áéÂð:ÆIç
xq
æcM½íøÓÜêOÚ^ù+¨{Hå4ÃêóiÓ1¦8Ûà Ò]¥õÔÖï0h5a×\;DÔqÔÆÚÉ*Neü
+É ÚÄ:Ælú÷3Z
+«NJu²4%(9¡Í\^Cª_"EÆ&Do"SB©<¦ãmè·|õÞêÝNð½]_¶.Ø2
+¶Ê |ê:»I*¢3ü@zN5øµÎãlf£dÌ) VáfÀ
+ gß4ÖH%Ðì¾
+¹Ó0q3¦ØÖ)oè×ëáÈlÜÃ0àoÒÂP¾ÙÂѳ
+ûÁv
´S¿Þf|Q´¦7íÙbÕG?å(^3ITåÝÕÇÁàeõ süW&ËÅÚÎ/K®Á®rJ²Ù,ÜaÞìÀ ³¸4ã[Bíd6ÎA©¼«ã±M,H¿×Á6ÎH°3+4èk*nÆ
+l÷
+6ns(²I9ûf§":éßÛX
+LhªÔn=x¬4äÉL¸ÕëÏè<gy1fùµ»N3÷)Üo÷]¸¸·¤ñ3È4Äß3ÂX }ë©û;ÉÖ¡/ÁöÔÑîÑýnc©L£ÕOG<îµµâL ½æNb+Ëã1;Ë¡æMY2á{ÍÁÓöa4
+hcþ _HÌÒJî(
+fw=%}g»±wVxd×dïêdy´³aõý÷U£×_çøöþ*&ô«à
+<eØ#.éèÛú^VJÖát§ÉáÙÞ·ÙâØÔbvZ4-4¨#X8f]©¨#Oظq ìõ^²±sÅø¯³1dÔ·
+endstream
+endobj
+92 0 obj 3587
+endobj
+93 0 obj<</Length 92 0 R/Filter[/FlateDecode]>>stream
+Hì]sÚ8Aþ';in§AØ0i>fi;ïYFØ2V+K~e)þúµ
+!HÆ<@Zç!ñI'M¾/éù¸oÅ&FÓäÏÆ^ãìæÿ.?_I6>¤¿éüÙhµbbÚ8E\¤xý#HD³§OÇÒ(öyGï7ù³FóÐöõ<ÎÿÖì+Eæé;{÷BÆ}EªÌÓL
+¢N_iSt\SE´TQLÕÌÃò¨Ûæùñ"iá
+ר ]ãÔ0k´ÂìXÍÅiKOdpNà *¨.8´qvº"$@bf§ôâTP®ò½,Â8¦^êaÕçåT`¬½)Xþg1'ã6ð,µùÁB¯}¿¹2S¾nwÙTö¦RÑ[Tv/]n´wÇ$§º§¨ß)Ò*uB§ðÎn!I(K±|xê*»d§yUµ«´ç®vÉõø¨µ.?ÝÞeú3|/$÷ñ¨Ù)4Ï3Q:õÁÁ{*¤@ÒôëßgáµaóÔ!ÁY.x*Mh ¿'s$ͲìÄè!Üõéú¡¬´+çY ßËJ
+Yîs'
ÑÐÀoþìòTCöaâ}Â`g`ýdÑ!¸
+? YéÚaï\Ä1èeD¹6HjóA¶}«°ùL=5cPôQAºÇ©e
+Q~ÃÉü¶¬Ãª>KßíýqMÕWÁtÉÉwêé4ÂOÈ&`Ü¿Dë¶]$eMóÖªoiÐè4ÇßFùGÜ1ÿ²òÙ7"&Inªxùo
+rõGÆÒ(öy ÅøhHïÉ>á ¶ä½¬Èu$*<Ä-!sýY[+ê#ª«CO;ÃCêË"^ÅÒ3¡ô2WNú¬Î¿?K`;u;0R$w4W5×CâËûÛ6|ù¡®ÎAuªsPóDÐ9×>à~HÂ"½ÎAuªsê+xNÞ·íî8°0{ÁÑGûÌÕ~Ï|BúÛïZHô/åÚ!eÓ4Rí3,zëäCýO·ãøòþ¶$ìlÆ5U_Ó ¸¢&ß©§Ò?}h ˺¨b&`ëliÐè4ÇßFù\ÿ²rçòŨáTxU&"XD4ÊE^êQÑHÞ©¯¾¹ÛZ«®rÅ@Ê" ½Pôÿ&²ÕZ1£ßJFSë¯.
X@KXþß8ägRðh 1uÚ-çUÇÇLªÞ#Ü»`B8åLPRZ1Æ£f§É=ÏDÃcôTHdXkvh|iV:T×FoÌI龪g%ÚQ4ÑD6ð{2GÒ,+É.ILÂMÏOZ!$W³&üW$Xk~çb·G § ¿,Ar «o´ëÔp°L=$âAÍ°}ÁçÕ60ÑuZ=wFíuÅ6K¢öÂ/Ã0Bóq YÂm&&Àiã`¢ Ý?vÏ£ÛN³ç2eR¾5VîP3XνX3¢LÚJüXåÑ>C
¢ãbÈ*¢åV£Þ_í`à!Ðÿt;ÖD3ÇQ,fÕîkª¾¦Ü+ròzz ðÓrÉ"ØzÃÍ!
+½æøÛè"ÿsoª`êÙóöQÃSràîâÒ5Dp4=#ÁÁðK\zëeÙô8h^¾K=nOÃ×~ñÅûExbÿã
+3ºÌë¡S>sß3_
+Ùúvþ¥\!¤lÞÄÞ7û§¥G3|{¦ÎLufú
+)P$õüJ²¤NM¸RÓ;,¿(4!¡©CSêÐTFQ¦:4Õ¡©MOM]0uhBFÄ$ #bÀM/ß{Òï6&åêQ
+Ø>-üÇH8d
+>
+<x.¢8míé#Ùç$ Ù÷×AP¨q·´ÌõgcIQ/?´ÁuÆ}-·UÓ³w¶æ$ýìò,Òg{ .%TWç'¹DÒ°%#lZD¶ñS ÈjèmÎñqÂ÷£×XüJÆÄczþ±õöXâìÕ!ç2eÂ4t»ä¥miL-S\Ó¢s¬÷K·idLÑ¥§½B*½´õî;øòþQiù{Nª!ÐÏlêT|óÊ}¢Ðùû1K¸x&½¬}}SjXÌíï[8ÖÛ$ä'!öYÈJ/пiûÆÆq.íIºîplØÙàd at u|ºQñèØ#°]GÒS¶dgyÚçRä8
+ªßlèõ® ¥ØáKñv_ñÜåù©b&Wø^kSÏp¢jõ4
£jU;¬ð·lìk¤6_¢Ëza&å¡fþÅRÐ\
+QÔ½ëÈÜWQvíXÔF±LÊYÕ-¼²Ù¤8¢è@ciGû< !cª»¼ôÎ*FxÔûÚ3}CXé9Î^ôÄH8dzÛgA`${ï }MÓaD5ËXïïuï $1êH/³}Ø|a&Ô~v,§~V¶0ézç.ÃEqÐCh´ëUf2°Ê°H?`aÙ¬2,Ò÷]eTM«XcÞýã
×ê7JýÇ~Õô¦
+DÁ¿Â¥R/ õ@=¤
+ý¸U½àÌ®»»Náß×k'`CãÓ ÅÌì{ófÆQ2êçÔ´úÝ¢ý¼ýKÿ£Z¿E¢IÄ¥YÀü §K¸ÒÌ·,ú¬©;Ûr÷Ol©Éj@¤ê%3|ªùï$º£(
+¼+.ÔeJ2Ùܤ]tëN6
+Ë\Ö"¢ÉH5ÏcP*oºÈÍU¢}Þe+ý "¥¯YzhÛÕY¼9
¾3Sx"0> 043ÉQä 'nÏ»{=ônÿ
+É{J?c1I· Jÿ<Ùàm3U¨M>øÈos¿§è¼Ã QÜH 7«áTK#ÇÿrÇäX!¹ôA6àh ¨ø¶"j´aÊÝÄÊKeI`5;
+N.`aTá±:KºÇ"rÔÕÙA/³Q1×Ì**ãÕ®e
+¼ÿa-ª¼® ;"s¼uY @ûHù äÒ.4fÅÛPJÁ4þD}æO8Ý-Q\kÿÄ"ïÃa(&£Â£¹Q/»N½vÒswÒà}Ïë0¹¨&¯½ôì½4ìâXzÂ(ø#µè©Ð Õ}Q_ÓÔd¥¾WÌU¢}ÞývÂÆñb!dÝö¶§#ÕF
+
ǨJDÅ\3«¨E¡¾l-S8àm$ñk®×mÈûuËyBD*g÷'±Y1ÇQqáúoïbG]Cè½Á¸]um»}[ÅþG6¤ð¯PðßÁ-s¹X¤pHÜãX{@1úù]©`+:ÌËåú«ÜÊÔò÷íD%2HMTZæT`ðW
+endstream
+endobj
+94 0 obj 21448
+endobj
+95 0 obj<</Length 94 0 R/Filter[/FlateDecode]>>stream
+HlWëG|}ó)Føcz¦/3Ê/³2ÉJP¯7Á^còöT_æìÙ5,;µßöôtWW×<9ýêêóÓgÿ}ûæîÝ«Û§ß}øðþõËn|?øõ·ß>¿úų?Pûö·w¯¾zñûß½~óáö½CâÈ·_¾»ûËû×w^ßýðôi¿¹ýáõÝ宾üWÅ}õóÛïÞ\}öìýw/oü÷ÇÛ'Wíô¾þéê#þúóU;xÚ!d¿&þS9ý?¦Sÿ¾þÿóGüã~:ñéO§¿ý½^y ¿^=µ9èë4»
+þ5çémÀrµØáyÌ1Né1yjb}08jC´ÖàÓu
¥%Ãa>lÙòoû<L#¬c"Öéø¶Sç·m^Ø̼&·YMÒøR±>ò0n8, m3ÿ@gÉ ªLt¨téPnzº©dY¦+óÜ,µCH at -²ê8võ
+Ц®<,¡O}sõ}SëUEÒ]@ÜNäßøÝ9°=íXsx ¬e£2øvUÃ&ga<fË"ní|poX?ÉůÏVÍåÁyÔBÇ£²8j0â¿"¶C=q|»³5ö
Í(ÁN}U6zϨ]DÅmº9PÜó°ÍÊÒªl;éÊ«
+âÝ$qGV«AãÀpõýûÊ}}ôºxdu®o¶j»®å
+¨$hÄsuÐS.4Wªí
+¼T½© N%âÒY0Ñû,AEº÷$Ò>¯^-Æòp_àÃPõ̲&ôpá¤_ì+º v-o§Ör±vR+{q¨ÉÿiOÒ/?^Ñé
ÚXq¨¹G#y`tI6ÍÕ1®±ÞELôNG&S ÊÀX'uQhjÑ
+Cùéаò¨P¯È
+;FÆ3#ÍG¯ÛJV+M»Yì©£
0"Aj. ÷ÄöË=VÎ.ö~jÏä0¡NÇâå ÍPõ
+Þìu¥4~ýÐT?\rÜc³ÍXBy C>ìc½õ¯5Þ®:¨³hNò>hl6èÚ«È5¡1<Ë9ôÌË&Ä0Ùé£Ô(Ùå½M
CÝ6¹4í=Ö¤¬¸é?Khú))U»Þ맥Ä$÷s0×
6il^ PY2ÕTP:¶aàÕ{*¶yé[(ÎMJ)'@Kï´&F{6Ò?c`÷²øBBÁë^âðMö½rУ0ý¿Àú£oý-6ÖH°aOéá·RvÿõÊowÍ ó½Q>° Ìò¸³Q«jßó0(tÓÈ
+9VÖÇ9`ì<%ÙOÝÁò ¾þr:ü«+V%úDuâ¿B0sçcNϧ·1;v Ç4?{6Âz:t$|pZiï±ëzatɳÞݸD.GUY%éÁꤢÏ]¯ ;¢#`è]×i«Pëg½hÑf
+~£nT ÊÌQBÃ54+ßÐÐ.Kl±*qý8·¡ÝhRëå6&wíÿ/1÷0ÌQÄçôô¨|Ng±§oûÈ
+XÏuùáOL5zÓtÁLb´4|À7B¯µ9ùÏ3ì+("#§Ëî%ضå5E¶ñË;`#\µ»4A÷)@óIÎâfp7Ûí#×õ¬Óî3%hÔçÒtÖ¤,`¦³ö¿õÃFn
+D/@gé,{GóÑqGÑ0Ø[kÁj8Ùľ9%fÆ{§±kvØÿTØÒ£îV.
+2öÚÌ*ö¹¨Ø½$& ùÃa_lÎP~/}×·Æ*°^vº"çÅÎ[ÁǺgoÜÁ¶´g-÷R}Á/&W½xÖuýeèÖ¨ç@x·nqxhÁµíÌ{x
+÷m.2\"å/pLئË2
+Å_
+[¶oCÃÈ
+"Àú¾ÆsfPz»´ nQ4lÍÂrG 8ÀÃ.)ð³Â/³¸ôn±§bqÑÕY<Æ%
+U
+`Q]i$;½/bÔå[+tk
+åÊ`±â@)Üúrò¿>4Î=°"þË«>5ZýÊ.÷sÂn#ôYe>}Îu'6VD ¶¤·ñáËÔTfAÍÉ):\*ñrG/@Ð Ñã¡(¡@{=KßÒdøÌBÏ{Vôá]d~y+ï?¼QGC}Æê}¾K«Ü @²pÓö\
+Ô<¦Ñb«hq;ßbbÞU1gÙã5)cQ"ìô¤ûe3oI
<Á$=eº}×FU4cOøòPCÇz
.^ú©péÑeHë1V
+q*oà«/
qJ}!+Þÿï}pÀ𶵲9¾O§ú
+AÐûÉ ÇÁæÀ:¹4S4
+Ø)%e±ö(X¿É¶c7¯AFxë]`ø('åQTÂÍÝeC¹
+°
+¡¸Vbþ2ǨÒlÎÓÔèë(W;u)Î)
+ÙØb'
+ïrCé «ôº"TqA.'½4zn¢ÝÚäSTþciß:éÌI¶·L|)ô<Ý)@½r7g¹4*®ËuÃAVRuÛr[`a¬çä¾t;üÌØ,iÐ]´õMB§¸¸SÛ
+ð%æa&cÌc:û&!Äi®Ï^ê×R´òÛHès)Ïd³×:î}÷ÓÛOoúÇÿöÛï?üúñû¯ÿþ×?ûïû_úû_ñÇwà?ƽSÐÈ~vtöS?@ÃPÉhþ¨R{+V ³#¿ «s8?R at nNãE²b¦åR[c=ÀÉÙÚé^ Ü5ÚüL±´]îv:¦õ®ÂZ)
+ètÆS./³¬ncBÒ&æ¹Í#ØnV/`ö:U¢ÙlGw~©|6çûp7j±£¯¶Úb3¥ÿpJä7³Á(ès`
+âÝé§Ï¼¢wV Mj>*GÁJ·[dð㺠»½|]iìõ.øõbgYeZ7!8îº`Ö´mYÈΰe6ü@/[&oá¥to3§ÜZHá§Ê!Åg?Õù EíOyéß}sÔCi=í|æbYïæÄ$&
+.µ ¡ç¯
+"½¹4 jzÌz!Én¸Uìµôw}ÁEb>¯@ÐÙ#!¥8wÔU òlÎ'¼ýHâMý!ÎTìî³bzÁ_æé£7¡®êÌÃçT}»jXõÁUö OB¶Õ¡ÎD1Vs0ð&ñ$íYv'sulÐÁµbÏ[NçªÌµXuaï*©ûáÜvá4¦aªë
Ñ
+\ÿ"ñª]ölÿܶìhI+ÎQT,p`âçí5¯ÈÅtþT²ëÛÝ×·4õúzß¾æ½øUwúã{;]z³ÐÞ`Oý
+h¢E´,Çbb C-ÕtÞtX-´°Ï=¾øQqPxÉ~Vd1î÷¡¬Ûy~7Ý\êvÇìmkÅâC#I-¼
+ÓY.>®ÒÉÁúÝÆa
+°c¢YvøÃv\Qþ\
+ö0>¢'Ïk-gðã*ºÞ¿ÊMb'F%®V°i/ ½ÿat°ÅúÁ?zícYqc>ÜôÁ@ÅÖÎ5p Ù·IåíàpÆ&2«Å8qÞkª Ð*x¸I§¥^C¤£uDØâ\²mÊ2F®Ó7½îØ}Ü8*©¿9Érö%ÅH?µM¡JWѦÑ-,×Hæ[¸Ü[Ë¡È]
+Á7#è?ÌÔeÐ%eäûÈÉ1èØ]0¥£[ÃúôµÄv{úN²jìÎQî}&R¡NÊ8ì]¯kËèû¶½×Z
+9³yvggÎ
+åWÖØÂEyOZ¼__ÍwÏ)Þâ¢Aÿv,}_])s÷7ǯj÷JI :p$¥øtn&à¹/#Z¼µ¯AË ó¸ý"D*çF§W5Þï|ÁæýoOôLMë
+(üln
+ïcÚÛÁ¬G"å¿@¾$
+¸Î²OÕ~
+<½t*¢óðÌjqòp°©Õ $üÕ$²
+gP¼ê[ÁëHÍïDbÝ/ºò~]XÝjÏËw±÷À$k~ßØͨ¤ýÃïu!2f¡ÐÉIXU5 dI:¤~ õJÓex);U^L=Þ)[P¡("#
²Hva´é
úb±@YðÁtHY^Ùì+:ù-x¬¨3Àyu!vzÎy7DJ.ä1âñÚ0iûFuU¯ÍÛ¢nÐaf#c¡ÊFI×ÎúÁBnQèÔ""¨;wwëÓ½dܵO{>ç¬+0Ħ:sÌj³iÒìÆPú×Úq+«<¤ôü#NV4Ï%Þõ«Ù#h.å¸à!ù
+JõÝYÊò {L
+*~Ç7èØg¾jãDÁÈg§R×æÒÏ°0ýÚúQ\§ÖÉ&,y¤t¡t_pÔ ogÁ#jÛ¶ºN+¢¢T2õ%¦¾ÀÄk0älmô!¤:ymx)q=Û¡SÙfXÝ»û°8*s!ám*ÊÏPÙ³5!úKY0¥u¹i2Å_Ï\¢ø¨fg2ûÕ²÷¬1YHÏc©©-ØêY>ªµiP5>Ϩ_5Ø4)@xI_p°K,¦¦È¡
+¢ºÑäõQÚ*GÝU
+4
`i¦÷
+(jhÑ¢àóSH7´
ày
+ßÝRq÷)b0©yÝ4EþL0ú/~Òé+Ýå4ÁkÃyíNw
+`N78s6§!
+I
+}¬ØݳPKlä¼V{æ]çÅy¤ç}T¥ONó£I§Àí
+&e48ÿÕçØb>CóݵÏé¾®ÍÒ<ïÆ)ÔðÕáøR>}hfÊçuy´n9F<Àòz»¿d^i~Z<Pý*Qèsx÷
ÍÂEÅ:|kèrÈZ¦wò(6=UGf¶ª°±iù5Xµ7a`½y¿Z7 i·ËØm¯Í5'jÓWw^w
+Û¾(5¦a¼NQ²ìiýjOËxVá1ÑØÍDÒÞÁ^u*-4+lqQcWr4³ÒSóÃë¥.÷93
+aS©JrÉîD»F
+ö\BÊ({
Ó)B ³è,/w¯µQ|BѸÍ42xëÅ>oø¤)t¡_pW§ÁÎE4×¢j²èxÌU]ÞÜa9:Ò>3ÒRuþàddúÕ ²»æK *ÍÐr#b[Ë[*×tñßS
+;CU5Î
+l.AÓ
+÷iPP$?FiaÌ÷I5 Ò]ÆÜ Vøw«%ÇàÝ¡Ö¦!R¢>ë2|û
+ÌÆím¾½?¥2_ÍxÕ
h=&EÁ¼©sýß%
+ªE2+Á®ÀE·q;rÇõ
+K5ßò#à
+«åðò*fë¸-÷jOÕ²f^Ø=tÀNÞg]ÔkáÒbz^Vòa÷s|Lû ÕEKäÙ%qV¨8ÝGÒp°7kEmÅ,ÐU[¶GËoAú¶£g
g#Ý` ;©u;Í#qw¥í1v®AËØAÛòºßYùû¼,ÉØ7X³EPrµÎPgÓX<Ð:ñ{Ëv>£QIWg0k¾(³_ßÐA®¨ utúúÙCÑ 7Ö÷³ß«òî2zi7&c¸¤QÃYÌHaõ,,Z z¬,fúuå:+õT·²Ò@§o98
+ºYuîÛbj+L+ ûF ¥D?D|]À¬ÆpOo·UZ
+Ò©ÛAj5K1ZX{%qßÕ`âs¯Uî&-TZ\QçB3ÏÒʳ¡W¤øÖ5°¬
+Nâ ¸Yä³¾¢»h»Z8(bÚ·
+ÜJÍ
++©ÆÐàÏíEW×{Û ·¨¾ÔEµü_hBØAi©J·Ô¬W8:ÜT%dZñ}.FUý*þû3¾°ßªWëbFsðré6Ø+«r¨%í-¶¸%¾º57³¯F{3b}W
+¨ìP¥X¹½8Ò´TåÕÖ¢áÔ@9Z^ûÐ×$aæÈW6ºïng>ttP5ß³
+%£,¢ZÏnHäÁ%çP» 1(ni«:æXÃ&VÚkEÀ×´R§4
+PFgOË¥nõc¦Åcî2
+5^oyýÜ6T%®àÈ\ÂNH)AÊ6RÛf̽«ª.. üÔt
+&®]q¸Þã,÷:¼cñt¡Ê
+ÆÝÝæm?¬Z4¤B
+º|£@¦Ë-º «9RxHßs`òÀON6&
+l°áh^±j
+vL"ÀTR1g[4ðO`Bj4Û²jtxiu;¡w
+¢(}yà,·bØ1öB ù¨,\òc
)v_)رãòn
+¨²ç_¥¯Sc·ãRØ»v!eØÖLÁ¿í;S«ÛSpôW¾àÔÍSÖ+)#$`sÈ>Ç)B=:÷65°Èº2(IÐá -1.5¸ÚÍÔöP
+Æ@ÈOmÙlu]ï
+Â4iC2]k
+°@Ð)¡X=
+x
~D=§WÕÖë$!g©C@²©ªg¡¹j2½ÜfÑlîg/ðÈàyæîcÀ´GÊÐ2QÑæ
#-ãß´híuÀ®AñÞÑY+]ØËõA4ǽ·Ê¢±§7ñ±M·6KøDÿ3; 5å ¸CEtaϸN^ê[y·k¦¨=KmÏâî¦÷ VM7ÒG´ÁO
+ýÓîéNëÇvv&éqÑðÔ`^:·c²¾?\'ªþo
eØàçë×ð ¹HÅÛ
+<Ê3Úq6^ëGÀÍÌñ
+¤ù
+°ò¼Z1n¼õ<F[îi%øûÙ²;W0¯ðåÙ/£~Áuì·Êo7P5ùü¹ì¸~[böv¢óþ~Räê÷®5Z{avÞ àçë<ßhÞ`m>ÚWÿ,TǾx´jÂ÷ÝÀ,8q¬ñûÇþ²æ yç[xåjàç}3o 4`¸àí ÚusÞ³¾·_?_ϳ¸k{g}ÏEÆ
£y$
:ÝbMÍjàç#Ûû¢æ°¨XyãA¶;À`Fm®Ì?£
+ýÁg«Aãd¶ÇãäÒ´7,íµ~;kO~,<êǤ%O梷ú\8ñ]Ó9XcUç,bC¬²âZÈÖ&xXyÄã$ÞxԹļ¸¤Ó·2ÛÉH6ÊöC¿UK+×sú½6®,V\Åõ">Gë÷u´k5{ÕÙkâÚãؼ
+×ûY¼æ( HìeWæG_ïgWrm®Ä~0Z¡<A;ë JHGÔÐ{ÇÇ0ÖÅëýøÌàâcw0>5µ!KðÿÕ4JeÞ[`Y5÷_;}o ¶¸OÐ2øùv6Ks-Ð;ø~Ùkhï'/0/{¯ËQMÏþ+d×t¹D´ÐnëpHc¹¿Üöä¿/hÆ=^|o!}ÌþSêúøS?@Y4eRÇöÁꦲ"C_ú;N¦¥>Îf-}"ÐÌ>À\§USé¢ ÝÛÙXYFÔÙµo(ùµþá»Lr+Ûq ºïám ¢z=õ.Ô¤PÓäî+È ®çü#Ç2¯2¬(ýôÆ*î_:3Õ9AUÔlÐj*¸òô¿í3ÿãk
·ø<A³;GBÉÔ^@foÛ_y.TÀ<xzh_.¦ÚG¿?n,*,gT(*6ã02¶éëV\ÂÚ,oöìp´º0ã
+No
÷¡LÌ ¿c®ÂµÌ 8K&,-¦æ
+Tºï3âÛþ±/Ã}ö
µ\
+XÕ|ܸÑìK?!ÌX}vð¯kqC©Mh©»à`nÅ%Lè¨e¼Áí °Ö¶U
Â5ÐëþØZôÔƵvÁÆÞß¡5OPÙà¢ýþËqÊV_Q̺*ÈJÂV
Ì¿Kñ¸õ22qF|95{Z XÙòw+-Çè0dÅÀ×ij»£4sÏÀ9L=nb;b;ÕSæÆ
+ÓnóÚæ{~`¶µR,
+¨ºQì¨:íu3¿U;gð²oPf·UQ*æÔfÀ¦iµïÙÒ´ê
+p¦Ðg7®
+é8ó°kÑ0À¾¶j}9n¥é[ Û,`ÖqG²)C\3îZ;4qa
+ZÞ¡5{îªÓýÜu?á¦KÎ
+¥ø¸üÿ¯kx£È¹ ?ßmmmægÿíSsRY¸Öô¾6Á²üñ¥!rÚRO4W.65iù tÝö>?¡I at Y6øÏ5Cú\öë7· Cj·
+?gÈ5°n3$Ô±}\üuÌ»>Xòbþqí6Úî0åQ}Èß`
+¤Íµ>¿$¤dÅÓ{ÐõJåIoU|ø´õä|RéjRÚ%ù)ï¯iÝ7É|T-ë
+Åv½ÞÕ/XöéeÇf0nئL?>áçFQ%d¥\ľscú'c'Õ{£±ZúßË°ièí©NéÖ&¾!c;Ë;êPWÛS1ÜkÍÚ³Jè%0ÀèülEtmõfÒFí^²ÎM×
+þ'þÔõc7_x¯#hËÑO Fd¦]h.E¸Ô'i÷â
+D]sÙzG£§@c1ðbó zC¶{xÏaRÂ
+k°c6ó
+ã`Si
½]6¸8àØ2Ù!n(÷è;Xÿõ¯µ¶i8«^¨á£wØ9ÖAûìéø±Äƽð
+#]þ eN
!pka°ipï®)¥
½àÐUÈÒÿ}÷
+Â-
+fWá
«æ ¬¤P8«¡
¡YSQ4á9·xzà ½êFÞ×Îüç#¨WÐù1ë?%^ÿ=hî:÷¡-}î¥\ðùäõª|Ï0gRÝØÝ71¢ÏQÑÔ
+ÈÅ2Î¥WItçÂ
+öÀ!@;_WÅ#ÃDþ³:O Í0éë+G0}]°$W«çbÑÍ+-x
+b [©3{ÚôÂË$·²[ ¢+x{ÐJ`ßxT»ð'¶§ÔîÌä~
+ËÇ|yÙdAso@÷µl~;7
nã|»wên`IÍ.¿/iîçâ9Øõ^m§ç÷ÕÉEkx.º?ýÎZÄýZ þda6òy®n@ÑïþRQÝP¬;ÆEÉU×N·Bç6Ôн!æpªWPqv¼dnªûþµG¶¹wSÜî¬gM©z¿Ü+²tÛ²uZ¤ÛgéWkúãØyGp*³Íëú ÉR+;á¬ËÃ8ËÜù+Û¬XhÂeÙmïo¾c>z¨ço¨WÆZmPÇ×&>ü¶>%
+-Îǵr'|Ctß'¤hÐÈîù
+ÂX7¤çÔBý$àèC\j9=`ÜYµ*§Í¨ $SusrÈdÝìKE¦tdõÞké'6¾K«eKë®Yο?câ4X¸®eØê =-¿PÆ`X£p at jéã~MNÛ
+f-m)Û97
+ kQ®£Kn }ÂTD§N¤=Ä{Ò©
+ùj&÷_ûÜOÁñåÈ1â"ÃU¹`A¯NÏÕiF>kÑÚ5@«¡8¨f×ËÙkñ¾¡ô$1~@Ë`_7k
K·$îö¾B£¯æb@WµMZ|aáÏ>3]º`Y[HW*Ù+ø
+˪5[{èu5?^7Ö#,Gи\Ô9äbh×WÞî àJ÷%ÏÀµ+þyà½ÂÁ:Ý~J
+
+èHmwà1µËºnkxáX«½Î5ÖÂó÷îÌ
+NÈ[spºêºµ1';LùÂÕ[%¡i[;)¾!
¸!YÏG\UªìÓê·|,J/'uMäA×)¦²ÎÓ%âj½ÀÈÚjdØá¤ð
+ì pSnðrm
!Q?ovõÚNªa4jHw!`Ì4®úu Á2¸%eáC²«{epTé¯ÿ½ÐíW¢ù®â\ÿÂ`oK"ÀOwì/õª=@4
Z#Muhñâ
+µµ¥¿R¸×BsÐÏC/+Qjß©¯Ø°zBmÏÏâ=SÏ>þSx¶ï °û&Ô gñ½r´¾\ë°Û¢Â«
£$²4ü0¹&]TÇ/©ÇÚÛ½=[ Í÷2¼ï
+oÜÚ/ Y#·5:Ö³i±=
+y·ÏkÎ ]Dz]ËpÔ#Þ.¨ðè¡»Ds¢î÷¼¯Ù¦S½î ¦tƯ%»sGuÞʯuÓ;8¶%R¨¯ ã?¶_Á»¥HÈïµXMÔÉDd6éF¨Ö¹ñ£VWø\vmVé0éaÍô°EÇí2«üJ4w9cjd\ÍÏ×Ù=4ß]Êë76[ª¹{½à£ùBHüéõ6+tËme Ej,Úu
+Ã8vO6Ü:÷$3HÁ!ßN15ÞcǸºü
+Æ¥±¢¸ó=¸-¹ÞKQÏm(T
$ð¶7àçÎpÈM
Wµ»W}TóBßnÌP(×õëuãý¶1ÌÃ0ê¶ÞÍ5õé¢DR:JÕ½ã#Àï×yÇÆRýz¬«bïÝ:¨×(ðÖà÷¼âöº¢Á?%Ccnúâ²VµÎÖö(2ñZO"¨¼àG§>¯
+`=âpOÜH¯nn|¾g~z'ê<úîyäñh}B|
+Ô³¤"Ф:±dÅOÁµ´ ¦Q.ù7ÃÖ
''_ìÅ-ÒZ\óÊSkAÊdm×meH
+`k©BùjÚjÕá¢u$È`
#¦ê ¬ã#¥]kqy"Ñd¼ýH@AÄDÚÊkñ|pcØD²%|j
+K=ÅÆ8VÖuFÚ*ÏïáøGå0(î9¬¹
+L4mÀ»wñ%Q:Ý¿øQEu%KLºÕ
+RëÇÁ$ÍÁ±¢Þ> Zç궵׻ºnK)PwpüZ1ßø¿Ñn¿¸Âo¯çi=¶çÉCóÿ`]ÍO?2Ü°(øÃ"(±zѹßð8़Þ:
+B¼ãÉÄÔS2iqÙ¦"ø¯:p¦n:Ñ6gGÑd]ExÇÊ|}½
+èÑÀ¶íÀs¯0µÁSºÝ¤lí_#·p=
+!.\Q/¸Åø·µºQb·íà±÷µ
+Òªò¨øeßàeYD'{ÅãÅÅbçþ%A©ÛJ¢øöjà¿ÌÏ({!Ëå¶8¶+X)PóÍn¹=FS¸j_ÿoðȺ.üââgFuÁ/JQª¸@¿BÇQN4p õs_G,)Eäv²5,Ò2¡·ºðï
+Éê`ËsêÍäu` ófúy?oΫÝ/&uÔ¯«KWÚþõãÿîõ±Jÿ¸Û¿ñ.}Ä«v}m%
+÷CãE ú[.¯ÈÆ|;8õMÆj,×Ìi¬äÝ㥱Îòæ;CÃáÛÁÚqð·íOPdÒ÷=¾9:8iNà$$L}~ÝEY±¾îg4Ð)Шµ±Ö+óæPdB
+RÛ¬Þ9ÊR/½¦×÷V`þº ,ÚnR^wÙ"Öº©¢Wþ£Ò^úº:å»ïëÏäh
+°õwãwUd)ïw¬
+vl>:¿±~¬¶«ÕöK+äûÃÁol1¡þnêqP#
+·DéF½AU
+uà;Tüì¹:ÃoÕqn`à¿ta°ä1[,¹? i¸¦=ßÃ
+ Ë_²y´î¯×k
+û28ñKÁ\¥
+Å·H20X,qÀãKÞHB
¾ÃFE0å ±òÓàÎÜ
+ÒÝ*`9%L¿Æs0?^PBú¶ï!k»VfDÚÐÓå®·SZÄ]VkÕÊ
+}%§*صäÛÔd\Êà½{V½± #(úÚ¿·±
+x,dðç=Vãêpt£íñ-åó{;ûDÅ´èYHl¯üÆÂù·þÈ_§ÀÒiDìçµM[@Þ]] %¥ØÂ|eÛú/d5$¶BEþ²
+Ôªe
+ÓN³hS¯á+.++^Y-Sµö\ªsbæ¯jK^f
+6ºc%U[Peõ8°¬t~TY_ïâÛ»ð®[úù6Gââ½B´×Ç+â©nÇïv°GVg!\ë×5Ü|#0¿lOÐÒGX(ÒµÚδr:rî÷º7ÜW@ói` £l»`Ñ9Å`Ñó£ÜÁ÷açºÁ8l Á¸å`u
ÌU¦ÀÙöÜÇâPTP¥>éè Ì
+¡
·oòþ¯ hÓAP-y´ÛMÀ-Éή5
+¸F÷oÝaðm
+º+Õh³úÚ¬^§þó
+úK«Ã£Þ
ǵÿi_ÄELW¸g/ÎS"\,G
+Ó Q87°jà·ß¶ØGfÄÞ¶bJ.f»¶Ç¼¾ß4
+³¿Bäa|¥Á±v_-NÕLj¥¡yußw2sê³£»Ä£ïP4ÆS²÷_Ç7DÛײáÜêiàZ뽬n¦ZåÙÝÑXv´SFǹÌ@ôÄíääpÃ<a%¯;Ì2zÀ$ÂVWf«Íôñ¼ämW}¼#RA`-òµ<np)tk]UAñQ¯ æs³]ï-A
+FeÀË¡ ¹Ôgéüb¸´év×`.-¾àÌÉmÀuI·þ£k{-®lNÂZô
+WF]O³`àÕ±5ØéÁ°y\·(h[%Ø`Z°²êànGYß,¼Eo?µ¨p¯9CÞy¸ññN¸è>ëõqù6åèÃÏŨºTcô2ÍòÔÕ¥0ePMT»süÓÙeUn«ìøþÞéA×Ç©kUIϧ,Ç«
+íÑyØ)¥
+J»òÌ" (uèãSlKk&m
+ËÔóI¶²`ªf]E6Ú¹òÍñjÌ@D¦J»[@&ÙÃö£
+!ᆱ)6ûÌÊh#Y²FX[¤ÍYìüû.sí
kW\î Ðjí¤l«ô
+jli®U«ð¤n Õ¸6
+×rx½!n ¾à
+b¤Ø¹&:;ólJÄ<C`æLeÌÑÉ1¡Mtj f!ì!Se<®¬pÜn¯^v)V`=tJ;ûþÄsæý_pKàÁ´¬à>o%k°¦\«f
+ ø´.xn_X8½ÐdzâÚRM*J¬ê0x1?â,<ÁP_Ä "^Ü@í\kð$B£D´cLÖ=/ب5
+«B©px0,zaª
+«X]P(Ø.(Õk³o¡«©KFH^äXe7RS_^Ý¢ÒgCibM÷Cßôd¬@}òóg
+6êò·¹Ò¥eøe^zaz¼pä5XüQe]ÊF<£{Ñö² ¶Õ {J}§ØÛÅZÉîE¨k*®?zðùñ
+endstream
+endobj
+96 0 obj 18897
+endobj
+97 0 obj<</Length 96 0 R/Filter[/FlateDecode]>>stream
+H|W±®d+üû¯´-CÜÒ&Ý`ã^²ÿO·màîyɹu9Æ»ªøûçß"½=ó úè¹ågOE¿?`i½=,æ°/úè¾VRkësjæ`§ÎÖ&üxG
+¯¥¥ÈiÇ×¼~þúñ¼D4¯Ú¥æ©Ï¸Ì£©E,+qÂæ\d8<zµ5Öf*#ÀÞÄÁ
+ëâ(âñr[³(;xîÇ×r^×çmFv×Ì,uë^rÒißX©Ei'¨ß£¼s
+,)NÝë]Çã[>
+ÓvÀÁ~ßêT[yÜÁuÝá w)«2îÖf¶ÐZdºUV¥ç{=¹}Þ+Ôj3,O&Þ÷®¹äê:s
+¤Ò¸àâ§Ív O¸û®6ºi%Éåö-©²JWöøZþfLº;»ÕCÑ\Ë¢[®³
+´8ÿúÏê<n±¾² Ö¦Ùe°Xµú Ø×ßÀ©¥ïÅíàÆs¬
+
+ª1âZ§%Wн¾hÉe~©øZÜlñµSE¬ÄÕ¡©ñyŤôrJµLðí£7é¶ÝhÎ6·R!EºÙ?
çøoøO ¢JùàgÊ·Í*ÔGwpúË f²È
+=Xë-sN³_P7}Z.cÒ¯U-Ä«:y] ceèby °×öQ,Ðf÷à?@äÙn
+L#µÑ
+ðýók¿FÝàT¨×G
+ô!9©ä
+ói^×Vÿú¹ô}¬þuk|o¦_>·NÕèr*¥ù sª=|ϹÚ{×Ý|ÉL¥ÜÈ÷Â',Å|};ètöþ¹Ã¹¤z¢âàM¢Þx/@ÎFgèØÆ`ÃçcmèÇHð
+üuÀù^ÙÎÌ>Ç0õa;A<!>ÁR3øÃ?WV-×fRh õáàü&2Øk'l`!ÅL/÷Óεþ¤Rp>ó,á|Vu³P.M;©.ü]ÿ±Ë~wI¿î½o¨·z=´Ú,5QWÐ[ÿ½rfýýÐòxuÑÔZÌ{éˬòòªxÑ9+4rZ¡¸cuëáU)úFùKmôÛMN£¹Ìãw÷(eôxCÕÞ!rM§pÂÅh(YæÈ9qf¾Êy¨Ö¡±4³{+Ü}m÷¬x¥|¼5(µæÄ'«ÛW5¿YM]´`¤,acÈw%Üp1óiJ¿ÍÕÅ}Ó;Û®·¾pê2@È:{uA¼
+BUò6"©>¨yäÛ@úè¼o³yÁ{,ÚP¯ &6¹
+×0(«
+k{=ÍÊ×¢3?ÃÐç
ÚA_ïþ;^G~Ç3èYK-T»ß
x-ÕKf¹ûX¹7¬o7㬦mÀ6Ë7%î¼kZßyìfQÙº¶â
$Vñ×»ï[ÌÆk´Ù¬|czد{¶^É|ÕM88üÆ«$ç:pI°Q¥Ú$ÜÜ6k9ì àP<cÆÈΡÚ
+Ôæ¡åȲԾPêÌ)´aªÈ˼¢âÍiÊYÚzó%ZCcíÊñЦ*Ù{lU°: f³Ô>¨ßÅ-Ë;%sÊ%óõs§h^{'co0LyÃ8àF|è`5çzKËÁW!OJ¼²ÅqÊçʹµ
+ûß>.ÒãýñîÒÎ%12Ô¾Cî1,nc#MÑó¥OöúøCJ7(:Èq{è>ª´ZxÖyí
+©eðÕA(û¾§\@£Ýõ¦8(Ò£úg¯Â
+Û4¡÷Qü~~÷ûq±íK°ÀN$ì¡ú}×°ÄÀn¤i%7[}ÊÌÀ ÿ>ë|5Â.8JÍ ÍMúäû5¹zt¬ù-{jwÅjec\ H==È_Q×É\Ie¨¶pýøÂâBöícoc<7¸Ïîj³5|q¦LÖÊ4yø
+ê·Ðn.º¿78ðÒÜz¦ÑxX´z ÈS,Ú©Êøë!sk¨FLV8? ÚX%ñ\<kfÖ@êH¾ø)3A ࢵOÑ\³np¸Ø²æJkÏÌ{Ê<*µðR¶ß1z *2/WáU¬N¿T÷5î#\wñ?~ÿF³¤7wö-?ÇBfg=qño¦2yÁÆ÷dÅ·$Ù&RRÏá¿¿ÑR¦ÿ]èûTòUí¶j¼j5fPÏÎÎÄ,/@}~Àó©pvÖ±® w°«8åú~ÊÀ
+äp/É\©J~4vDAÝ%%ÕïJ¼S7àÊ~Q©1xvæU`ÍÖ¾ªB®=jå?ÀÓoºæ÷Çn0dÉ\>ß'@ø±å
+´yÉ0÷Ç0gGÊq|þ|*÷ëÓKÅa°iÚæSM\´Åïغ@]Û©ÕF÷ÍÒ
+Ë°¦¼³6à'û¨ÎB#`â Mð±"<)£\àgÞ³yGªÑTêöù>´¢\||]̽æâ2ßA¸ý%fv^+Qä$©ëÚdx=êÒº
+ J¤N´Á
+LiDTòxÑÿ&±ß³|¹Ý ,`Üì*MÙ㶥ÚXâlYæ
ÔÈrX8;ãN-èªw#
+p´ß8Wݬ¡UOòOô/»J¡ÂGqÐô²´±ñ57©ïòaµTéK³Æ`ÌiÝU¥³`né³V
+ØX?¼êGSv
Õzð ;g*ïzÇIË[,ɬò0öiÍÒ?ê/©Y*ùcuÛeñ{+g»ðçeÍy$¦Óàkf&²© -cV½Ý@
+4íSÂO¿èïK°{&âýÕ'¹uÏÚÿÌfW$
+?þk©h2*Ð
+fjhÅO!è`¦çÔ{Á*I"Àÿ-@÷| ®Èõ¶.Ó_ЦëP|Á
+àr¥ó÷àÅ6 üièÂÒf_¿Á`3ñ|×årÖk6ûÀþªÕ:jBîV¿AÕAÛeSU¸IÄYÿ$»ûÇo}A,¬sqµ°KUw }a¢`Íù¯-ßvXoUßÙ~}·.Kdc¾@±r^t9lEÂ>Æ5§¨ã1lN%R=§µU
ÍZ¥DÔf;
+àlÃîû'ÕÃêp¼ìú±]ð¿(Õra`¬£!=ó
+ÖLâ}5n~¦1Ç8±6¯h1ooCq0å<> ô æ÷"séq¶ÄYnH6
+ðç^Épeî0LuEÐÒ¾+^) ,Âïk.±¹Úö~Ôy÷Òæwâ
+8Ôߪe§NÏ;®ýt7<à¼ZýL©ßÕÚÕ0ýo0B?}´lý㶥X(¦,¬ü
+@ð×/:f°ÛúÐ ÙD¥¯R÷
+Z«óÚÂj²70©+ɧ
+²ê¨£ÜÓmtþ|ÐöÊ9Et[/]vZfùÔ ²»øÙVHKÝÆéà¯_XäµÍñÍ+o)<pÁ59%ßÿ/ªõL¸êõ^Jo¹ôÏþ¬L=ϽoÔzd,ÎÖjv¬Ìí¦øëÇ6ÑýtFÑEádÒ¿tfgÝgªfoÆ
+¤LÅÎ
+öyÖ=U8HØZ
+F§t@ÇÖwh
+Ò
+Ã^à§Ø¡ZÎ}_Ìÿÿ`PÊ*OQ4%6Ó:â*=¥+9R"àfv:OE½Ð¶@vÙBÌ=(d´{ãY´e¥ÕöR
BXcVÇõʳs<Ð\#{ÑW²¬3\fôX¥Î,¤RÄ^ÓúâDÀEYHm*FîX«#5m¶¯'ÌÈXc´pZy)ç`;$aQ;¿YH"`¨ÄçrkÛà®\ÞHàÖvq«RæbúϺ*
+·RÆ)+ÇÙ%°$gkT'¾¿°²ïÏ9ÞG¦¹lVtZDð÷ ¿¿©e}~8
+ÞÊ K@Û¾ÚËÇ
+[ÙÉBÐ
+oÝ:b¤Ñý¥ªMÛÚL%4ÙáÌø
+zÔ
+ý[`>"¤dÆ,ª¥pR$,]bö©¦q½06.MÖ=»#7síмb!HÜ
+ÊEÌ£,_¸`gGãQ¶>±¼=îÿð6'£R/KùpØÛ§^>ÜO+ýtò~9Fsç$Â\]ÆXSêg¼/"'3¡Èa¾=¯
.r|2¨tPê¼ÏìyÔÄjT<OHâ:Jf¬ú¨¹v?"νÖç?#Ö×ux_7Wã(éû? çåLÜÏ×åòø®ïü¬>
+þojhÂîÑ;
+«ä!ÐÍáñØ\'ã:[H+ ˶ÔGHxßBVð«ÜÀNyÜ£E!dn}*ìVYíUjót2BÕðZ§¶i¼uX]úÒÙDüVÏúû-/XÅ&éaäÍ
Ë
+T} Þð aý"êÈüÎáüùëÞû[oª-ÜPS
+aÚþöTm´fÏèó)h=õh϶6D5Ü<KâUAèÝ2¾êªß}byËßwߪ
+îÏ&yjD>GüRbë«s¤|BµeqÞJÏ\ïH¨½àV)´:ÿop+¿ï=G ¶¤2¬]vìIgÓ*.T)ði@M³Æ
+¸ÙÙÆδ» K»®äòÇ m^¡E¯ÃèÀ/»
+zöï¯ÙèvÉáxÀXð1øRÖ*pX¥
+ÁÍ z^Føócÿ þÁÜ[f9ÌzBõ/ãØbF Aça*¯¼v½ôw
+r¡ô©° é9K@_lMð¦Vr¿ë=SX
+5´ÄE(5¦*
£ú½L¾`Z j÷6ø¶ïE-ã
+Û"ÏBz°½w
[b¦4eÁ%yIÝNÛokÚÔm½õû$}L¿p6¥eV¼´y:@h-}Êt=-
+¡t¯}Gj¸Q5ÔÔlèɶ¥¢`·ÌA¢À%åh~ÈE½¢4Ó5¿Ô¾`ô¨¶]ªÁܳBÕ°
+rE Úº¡6æ¹" j¥é-V«[|0â
+Ió¨ZÔ¾ÈLfÑYõÐ*¤7\Õ\?O¯h¢¡È'ØK[RÜJ·ÅR7[Ï°ðoÔª[ÀY¤[ltÎ%¹Uu)¨¢u£=,HKÅìà:ÐNÓpù5©©]íê'ÌeÝâ>Å¿@;m
÷%ô}\
+ÙÆbP%`쳯D´«øA¨Çà5Ýh±0¬[Ï e}óóhVо>nD·RÓ¤å?Ú½A+ôf«Uâè¬Z»N²Å?>0 D"DHÓÏðùor]éÐ¥~'ù
+=vmÈÑÞK¹-@$~»x
+ÙºÀ«U¨<z^C&9µ³²ÄÁS´ñPUf×Ú!P ^z´e5L°DÍæÌrç<ùQ¤aY:Ç
+såñtllóղ̲ÏD3àLR¼áÊÕ²³µ"ÇZ)ṳ́Þ7F¬·×w8bLu¦s&QºP¡TWs´isy¹aÉ"pÐaªe§ÃaIÂpÄ/¯
+ ÙÊù¡{øVÜQoÛ
+×
+]4¼lY6Ð@TXjLéÅ·:H£«FËç¸åêloØZ+ÿa»¼Bã|:ø6íÌ4Kè÷Û-`ü$.f¡0ûzÓªçç?^±$ß;Û
+cOB6x]Æ"ï ó¦Î=V4²ó{Únut@Þ7½Zes*ZQJ¾ ¹ÆØÆtà\sä*;ßX`bÁ§:È»vz`èé"#A=@Z
+Øâër ~
+ß0Nét¦®ÝUç=¾!î|k«û:½îx¬2¾Æi"d¨AcÍRdHÙîXNÛUZtà'ØCHËA-e:|Ú±æÁïÓ 9µtÁ<w¶òÀ,»'Ieµ34gûçò\'}.¶P
+¾_ZFKÂÚ´úú¼Ä×T8#ç<`-m®ïÃÌCpúBÑe¤¨¸ù¡9DSâØH9ɶ0@ÉdÜÑ]·µýâä«ÌEmJ]~éL
+×
+wë<w.vÀ½Y«²Ûv/æ¶sßlacgk^xy5×ÑÜ0åñ¡»l1Ù"×
å ªHt8¯I-mñ
+7Á¸7Ù6¯:TL4ÕE°
+,(äÈ_êÕ0Q
+fÛ$À^û¸ HÎ8
+oèlÈKxÒñ¶(¸%_ /%gàqIÕÛ^Ü
+~·
omݾ®3x?ÑÙnè¼nxD0GË×vwf¸»Ýù¦w{=EgϳٮÒȬK\]½asÄÅ»y
+Zj¢±Ww6NäW#[}ÖíkZ¶ ðÍA«Ã<fºå»)ck ¢k=×ê@r¥uu0Hy¿Uj
Rã0ÙÈ¡5z,q%b0A];KxýÃd£¦&à´sm(¬I;e¡±Öôt²ÎRª¦½5ZÄKÐËÃWc)ºfzrÖY¿G«½á¤âïK í2M¯$0¦a0Ö¢0Ţʤ×õy¯U-yL
+-fÝD\¢*5Tù/ÝDOrµn1Tï¶1ë Ï_`$Éôè´õ4Ò}
+Ï9Öv>¥êüz8ÈE«7rsPcìgv74ûàJúƸ%{z5n¯
+¯\^}ÑÃÖã¼`Fy®3ظ«öá{¨yæ'!^çº;.u{BçÀCêÊeì¾Z
ÿúÍöòûmïߢµÅh9§ðιó®O[;CÏ V×çÒpz»ÜÌ6*ìëã¾òy²k)WÙ
+=#Å-&[é¦æ¬©í¹ñ(e¤Ã¶ë¼²Ê¿ôf-«Ôv²]Ôój:¼]ÿ-=:üz"ò,´vy¯Ùf¿uá3¬o!zUnýQ}§¨§WÈ_{Ð;)#äÁ\åOp/U|IØÅöý
+=ðR
+&ÖytÂ
¨[¢¶ò`cÞÛ%Ú}wÙIõo®9ìÁ*Ør¿§gø}LÄ8ØczƧ>ÞrZ¶þ&m¢åDwA@Ǽv]Àzîµq iò<pÛæÛ7^û(}oï÷úv¯Ùõ³öµï¤s¿wlyð¸Âί㺻óÇÚðñ'^¾Óþã/=ß.Þ^·{ F á
+^y¸£s Óëû{=.¬îÄGÊmÛÃë¶Ôû¼ûÑkþQ í ×¥NYpâÃAÀ#΢S¸Æ?[á?l>¼nø8ÁvPñoj½ß©]°äÈ-µ4Ûöá`¤(»áÑÐ ©«¡m¯xNJý:w®p
+úi¹1¨3¨ëÂödÃm»á:Öþ©Ï×ÓïÑRÿj£þ~9Xí÷üØë±rLßûax½ì÷_E!"öÂ(L¬'×i$%ÙÄ¥PPDÃa)¢¦þýõÿ}å_ÿúJR<ùÄpBÚA?Ãü/A=ýG¿Ú³\ª¤óÿ~S®mÍ
L¶=P¶Ò0ÓlµGÚà¬úr1)U£MÔ2ù>qoeÙæl°fyAªÞÑg]·'À×öÂ+úª¨¤[Âζ½Á6 ;(ÄÒ9ÌA
+ÆíjÂïH4Þ°W$äÇ `d¸T¿öÖ>»Á4RÀ!ù Q¨ë¦¥&ëDªÉoSõ0,G;|`Ì}r[dO¶Oå¶"½ÂSk+ªiÉ9Ü6}¶Sé ±@"Ö!ñÊ8¶¬i1örS8ÐÆ=5*£òÍSãYý¹É©z-¾æ<`cW d*;²i,³N{X@©põ·Î±ÒÖòeÃÃK'QÛRCNºz2®ù7j¬Y'MyVH}W½Tä )á]³;
+ f[föf$£xAFÓQæÉä0¡8öc%ÅaËÐÐfUùjt}¬' ¶ y,ÿ-µáÏ[Ü=JÜ¢H£UV¸|[øææ¶#~ÁIT>YTR/ñ±,íO¡®C*?Ê'@¶[Zã.,\¹ÉJÈÙ¡~@_eB8ÈC'L`èØîr²$o(VÙ%RPü&vÛk8³{¬ÇHáÀ£* °WÎrüJK*Séÿ¥ï¶½pPËôÖÐ1æeüIã¤Úg!îyÁ°§ýùx@Ƥ|¾MQ
+[a¢ËIju_B©í&Fh¤%L~mè
+1g÷ºàJ=Eº¨A6±
+Øe5¸T°k*µíoMt;ÍQ[©øÒhQÈ)¶ÆZöm] *lNÏ$KÉq+dHapì©8F/ØdýütmfïÕaJR»%68râõ^2§Ôaùãh§i
¸ðqÝ8Z$õ~í4Å{Àñ PL-b+ݽhãF«ê·ª"ßðóõ¶?Àקî@Y¹
LLÚyùPÜÐiP§å·_ÌàÄÚbfÏ×°@òUñɲ*êÓ²R|<opd²[F&-ÑìqZ>p0R
+µ@9h¸æ:p+c^¶X
+[¡qÛUsÙÖæW@óX¶[À,iÍ(GQOv
ú»z üÏs
+¯õ¸íZæ¥[|éÂä+ªÎ;¯"è±
+2+»ÂÅqÀjÉAkp1ta_ÒvFYÖ¦j¶GÖ2s¸[rÈÌ7¥MÄÃÜ=
+ÔòÏmgÕÈÝÚ@hT»[ÎéÊTÆ£¶Í Kv@¬D½h
+΢
+]v`TÛP<*qZ¸"û!c
+ê*ðîürPdÛªÄ}Rêû8-ÛÖËþî»Eþʺ¥z±xÊ:a5¥}2SÜlx¢îS
+ã\I)cwtSîµ¼ n0ÒSâ"3jºXÛ§*åEBóÖ§
+l^}×ÇpFutú÷×}ÚjÅE]¶MÃ4N!
+)KPg¾·ÂeäÔ¿B·. ÌT¡4ç#¢N:W»ìè}±ôAL-ûms«ñ{\ÀD{Ý«
+dHÑòì.Xvreä¡g×1{¤L+k*Nxå] »ìþÏw׶ã°CGðJ5óÏáC"A
+×îÖ¥t8
+Ô-¤2¥pKdæÃ`ºËWR©`/Cnð0Ù§¨âlÑt߸ù¡c2ı:ðçH¼6ßà¤G¾À%ºïz½{Âñ\h·É¾`ý 'èWüþzs{°ÄÙxëzŵ¸GÂKÍÀ¹êئBðóõÂm_f«Î
+f¡uoÛ¥ï
+,Q©t[»«¢u7asr±ÚÙ²jd+ø^Ü$p¨G´¥àè ÷N±/(ðê´û'Ø%¾à\ é°w?u`iVåúù£
+_Xð+Íöwhôès[o×xtWW
+d-s^¶Î¾W°/ó
+
++ÿºæºÊµ<Ý°[ægìÉ¢:õâ×&áç-£È¡ú*¼º¸Vt at TÞuuh1n}¬ ÷]ÉF^q¯
+Jäd`Lß`\áªïY8ZçÛж¤
+Ë*ÈHIáLÖбèHPÖxµ¬&»hµÔ:ë
+ÒçÕ<{õ1ANÒz`d®ªA ì
+V±ëYÓX-]ï*î1^¶`Lý-¨»Ç箨ûÍk6¿¬î¸¦K·xÀ
+VuB7(uÍ¿Ò(ãIÁ Æ_º]ûóÂØQGû
+0×¹6¬6k,e¹A .2²QAö»zÍatM
+YÒÓ¬ë#l*OÐsa0ßë2=9r¬}'1xQ°¶ÉÎFÍÁ1 Ö?Ï(MûØdäz»%X{·ª>ÁÆöÆ·_«
+HÑÇ"Iº=ÌîC¥ JgZJ·*NXôkó`ovP8°iµü¶_c5ô&©6QÛhS}jâÁÂí4eºRvA[DîëèûOØygÁ`à Úê1õCÔÙ¹Ú¶ÊdgbÓ¢lÎÐÀÕÒ*ú`¼»ì[{>ÛÕSàpZäÈ`o¥ HÍ¢pÃÇ°¡ÛÐ?£.*á'¤Û(
+²àçéä`ºB66ÍT®ìªL]ñ×ÜfýpdÂøUÌdʨ"V§·h,þ ⿽
+ է¶hü<moÜðlÄL¿ìFÜ
+dÅ
··àa
+Áÿîjåï¯. ³)¦O0Ì9c
+ËùyT?ÀÔwÏÈõeÀXíH&´sx$=XÃKRq2fb¡Ó;)hÎýÉ><¯
+µËäÿWÊO]êd/ñò¦©
+ù)LmÈmYÔRö
+.F®¶Îú°á4¥Ø³àXXÕã
+@_ʼëÇXÒ]Øòbì»7"^[kR»`'õ±@c¡U°7¦@ÔM4º)ܹúýk¬>Ø¡îëlwæ~Wãù
+C÷K½F*· àz4ñ¶yþ¤Hjf]X|æð§(<¬u¿c ã~Jr ©1 +ã!D6ûÜ%ñ<¢B
+0¯Ò)ÄúDZ ,2ê±ì&$ <q´³Àýy×.Im4#+!³Wyâ²%xm#w<c ×{e8±6(`î5Âa^:`ØQ¶Ù»uàI}tI)ª¸¼^Ts$¢KI
+ÆÞAÁ¸l!ÝG
+À-S65&5TNpÒªs¥VÌË`r¡øÜËÁÙÄÁ@ÅodͶE{í²
YY¬5ßç)Õ°kH`s<p²ÇÞÅo§Æ j»ÀÎýÖEG)°°ÄªI7AdKl'ó?Ã.e5BÌ%=¦i¼ÊÈó]ÏhÈuõovÕÀ*òÛÆNò¾¹OÁÔnU®¦
Î0óp[÷Õ2;Ð÷¿ksÑífùr@]xÁ|NvEðþøçñÇ_<ÑIY~u+<ç±Åð)^6#=(áÈÝõ~R̳çÇA}øáe v²¥Üçx껦g¡q Pû.Dö]o/é`-/Kú_]om?,@´Cr#¯?Þ¯³MSe«ñéó±gFGÆ^íæ_×@4î8áK>ÇÈ>Z@,hÉÀ¿76ÑJ`jXZÓæcîvÅëWîÊ#sÃÓ©jJÉD`¡9.zKêù²Å:Aå#©¼(PØ&ÚlÓ)ÐLïþÎaã
+"@Ü
R
+o÷b7ø¶&§³ÜðýáEiÄÇâôG
+¤ï`Ñ¿EHö)ù :ÊIAMcÞ¿þso¸]x̯Ýçãqã/üÇÀÞ3ö«
+^CJ¼5«Ê~ó{®
+4ç¨ö^B¨ZRÙf½u4´]ß¹kØÌ=þm,aFÞö%°¾_``a]£Ú
+©kôÉDÔ\S+×äp£Z¦>S:óH>ñ
&bAÃÿÅvám1ÒÌ×@cxOOèG4±+á¹E§XÞÍÀWß½òh]¾´¾ÐÊ ×gkvYç@³Uh¼*¬)Ô§²gü(îr Ø|L¡eÞ¢=yÎö%l
Zòå'·U(a9¨G
+endstream
+endobj
+98 0 obj 18153
+endobj
+99 0 obj<</Length 98 0 R/Filter[/FlateDecode]>>stream
+HWIn,;<AÝÁèæaí×ïÞþõ|ûHqÈòë^(EÉ`ÿ)õ«¶Z>þÓGWµÞà¸BKÀóPà÷ëÃ5kìÎVø{yæöñùÿ80aË{Ưí@¢íp0ó²MWªs<À:ê¼ÁvÐ2]AéÄD¶½ÌåµâWb°¤A½joé8³vï°zq3äf{p
õlSïãaûäk+æ/±]°{îOpÏõÑ£³Õ/ç,¶«zFæLia*Û/Ó¬Ù 1§aéQæÕJj_Ë/àÒgµ´3 rc+ê¨OrkÊ¢78®ÖR|9ïXF«Ì±W¨£í)k7ÂήNÙT"ðóõ«öp¿&pOõy·7[IäÞfa $J£x¦|#Ô®JÚ¾n¿@rhÇL0c*E=Aè[Õ[ÞþR9«ô¾sÅ£Lÿ%Ûû>ÊFÁê
ïã9LúG
ë`®F®Tà·»ÛtµñaË|~»tSX6ÝêVâ ]½ò<8¿-Á¶%Ý1Ô¾_æ÷2 ?¸©Û{Î*R¢rR_Äí _O7
+¬ÁJZ8aAð<Æùp¯AuÊ.6½ALíd;_
+÷ããóþùÝ÷û]ØêÊ5û0LëVÈeñy^s¶¸ÁܹıÁ¡.ß
+o a¶`Mþjk"0Þá8cõWë#Zå-Í$5è½)°ÎlÃa¥QãÏæ2i®w®ñØ¢¥
+®Ém EnÁKcïlûä£Ü`pö¸¨ú®ûÜ1úÇ=¹7új¸!Ú}¯Ñ;jEÔÙYâü"èÆêÝÅO;msR
+y:Ó[ãþ-û~5´§]Ì*)¿8ËÖ35;ï5uõLqwõSd"övRÝC'¶`V²%ÿ
+l£ÖÀÆðb¨b¯Ùì©.&<ö¶k0_Ûùòäæ
+ò
+ê0yæ¨×µ9¾¥Á0ì^>°Ûg4 ?9ÝëûåáÓP5¸õÏ#5¶/f@~1¿Ýãd¸ª<¸õ%6`
+gÜPy¬Ð¼Û'de»Á²Eú<ªd *îÍP³ß_zJVU@û,S¦üX½%ö÷éB³)_¢tN¯{>ígZ±L8Ù¬zZàçÃÁÑ
¿(·¢e:ìסnÖÌÏÏB¨A%IúÐB³@Ô&mÌs½-ÀÚB=rUà³%jðlT[¢f¥Î1Â$ɾäý7{µ4dµEí´Hg"~ÉÒp/P£?¶°²Ñ xïu¡×¹ÁoÚ:bß;r aAÖ==ÆÝw9,ÎÁháéfDuûÅMÉ4 ÄRCß×&ñùò¶oÎJ8k¯~ê$J_{Ò¦¯ïÍ´¶{Wèø"r
+8ßèö&±E[ÉA^¼äWähýdŹqï»"±·Wõuµ32M´íÊÁ×Ë[ÔÔMkrÙÈ%Ækúnáv7Lq at .FzFvP{¡×- ÁCé'Dßèöà©7ý÷h-{r©£4Ægc/oYýÐÎ×NK*Ð^¸¡SëW.Ï0kK®,éÐV:}6ãïUa%þí=òøDÕ§ÅvÛÌ ü÷e¨Ø~sKûDûÐbgKlWeØ©"§®¬U´Ð y«Uu3ÌäiôÇήÁc¶50ÞïiJ0B·ÆNÅSÁN¸-,
+W´¤Ä[T1ÃÞë°_³x®Kï
+
+®ÇÔ4l®À"ýÇF« znÆLØ`ÉíI^ÈôX~-\MO®°`@î¯Ñéft/¦Z+k'bi2¿x+ÓîȤÛÒ5BX´XYÊjj
+ÈGøIeöWܸTITþ¾¶d¥:y}ÊA
åêú$n1æso9Ëʧ7§5Ù(9v¶A¹ÝQ$?_Þ½jäàÇõsÑÊVªjDz4ôÓóàMsÁÖ+þfëüZPoÊH5<T´2¾´NWâÄØ
+ÈêJæºâJ«UT£Ç¨T
++¢Î³/N
+V¦^¤Ä@=C" Õè¯@ó7ÙEÓ+ð¸8û%ÉúdyËêÙ³PÑH2õز$-ÆBÿlѸ¢r±5f«{)@îÆ`'÷o÷=ªåÄJjÔ`!¬´4O¨))A6õàmøýò (µÅ£Uô*©t}Ç"µ}a
+äè"«çÅV)ï£,cÒÊlGÔDÈ0(]6x§¶es¼Ûa!ä©ô/ðhÔaä{æ¢ÙÁHa©qä;קÅF`
TtËã@àUÒQ¯·ýãn,Ã6åß>o¦l[]ÒÊzåGp üÖö-[KÇÍÈXJN8ØÁ óT¾>ìp_¥p`ªkPàÐ~
+Dv5!Ò)FÐOàE{µDÍNmûTàilûõò1-CöB0¢ó²IJø×kñ>rúYzì¾¾_JMþ¨Ã
+jXÁÆî!%~uÄWðÇýÆÁq³æàèzÛÁ1QöH
+whϹö²Bb¶+ǶYgÄxÆõë¨ú'ün¨@+Jª^ïÖÃ[,ú}(¬sÏå,ghÜ;M"¡çß;ÀLAGB"Zëé$kº§%¸LF =õg?
+õ°Ü,4¾Ø¥öÌ)²¥µ~ ;#éÚ±W
+ù>{¬ù=¯Ä~ßé)®iÏ2fY;µGqr'>ÊYPßéÌBxí!çt¸3»BÖcwX á^ai¬v¬c®°áÌûôbîr{§Û~EÛS¿ÅÃ1¼¸´sRbíèÚ¿öâèÜÛõânÙy¤ûÅûÔ~sò¶sI:aW
+ªü¦¹ßIÎÁþSKégkí!N¨²êv`¶õWg}0kkOXÏ)ìSo
0""ÁTRíë×Æ(xfÃ
+S¨O[dV¯qø[ zµ½!Ç"¸jê`Ný±ÓkEâ»íÔCS{§x¡>¥¢0O@<%Ì×BrWéæÌAvWÀÂÈ
+E02OlQÞ9h1ñäÕÁ<pÂx¾ h©+,ªkerÐl¼JÉö%çyÅzÞê¯çv9@!Å~¤ n( ¨ñÃvÃù±Ri÷»¢EÑvuÃ[vP ÝÇÅi¼ØÁ3ÖÛ»4Áô8þ졸#¼_·íàï×mm¹HhÄTú-ZvèìjICç¨Vy©~9(!õ]£°Ò%½<keUýûuJ+
+«9b
ouÀ±úî6Õµ_!Ôv6HÀX¥äH½iå°CEÁ%búýÀÓút±Û9`KÅ÷x90þÁsqõ¶P~±@"6X(%ÚÖ
+U&¤s÷²Z¹O©¥E`±â=H; JA½rèSLÝEðþý±ÁMXÇæír
+Gä®0çÚÝÍ®ÿBÑÁ÷ëö»ÑÛrÈOaGÐR;¹ÃfµéLR³¨¦S Àcho³-4DM9a-ÞúèÏ{ò×}DüÈvoê>îáÞý9ȲZùë#éçõy8½¾ÕAm=^oQÆù=-x¼ÒmCö&KÔèƽVºêßÑËr´<xÀii(ñ¼FIV[t(8{©ÀåY kC£å`cNe6Öѫ䮾SV8Z at dCIÚ®C¢Yr¨3ù9|ÝåÐèl¬Ø{ºL`¼ÜÄ(¸"°tÎ?BuðyÝxN;ÉÀqCÜU-:2s@#I~2üV³
+±5Ü¢À8ÝÐõ.bâÌûæ¦ëÝX<X NSï×-µ'ÌQ sH kä¹ö¶Té#L%ÖoL[¹,{Ê:v"hÇ,0fpJÁ©J`}3d¤- d,§Ôìi©Jq
+,ÔÃþZrøÎs³°ãºÐxN$ﲡ5
so;±ÀÜB@LTvð£j¨ºõ¶@bÔ벶§ÄfCshÚ¼Ç0Òmm¢LrÃ9¶
+°Õd³6(<{Ó'N@
lÐÄ
.¾K´ _´^N
_ÕÐUeyn¥Îô~ÝsJÛAÓw
+Ev
+
+&º1CÁ³
+%°ûØ IV¶Û
+¿Ä[cªÀyE[¢!!M¹r
+OX%Mú¾_ßÚþØÄ/Þ1åÛ¯ÓÙ6N¼3ÇV05Íèz¶uI¹cò4çtýÜ3ÛTÝ+Å^ÀPÉè_çVµ·c§ÜÁ¶!讶ëØj÷ñÝZæ½Îeï×?íO£µç¨®¿wÜÎûu\æþwݦSD$ÍnÂÈ×]ëfhXÄXÓ׫ñÖêv`~1àºÒpSZx( W`aÉ<¦VÌvÎÍn¯om¿
ק>êÚ|ÜÓ6Kã¢Ñ«´¼ekÜØéë¾Ùi{^âXn²U"¡Ï%ðt`7å£ÅÛkÃÜÏâpÐÅ)¯óS8aè:Ü+>ÉyÅ®×÷YvØÞÞÁª%;9àö8.¦Câ&0G2ÛrÞÖU¸v·G1z«s¬zöx.,ûB`Gëk¶îöåá@ñ
+çú¿íz±
3g´xº?¾Ø~Ûii9céj¥\¶$á¼Ä¨½>òÜíƲÚåu,;&]´Câ]ÓØD`°¾¶Hè
+*°Ì{(LS\äK
PûVèïñ´ÝÓ^MK§ê%ôGÿÞÁnS
+ö<)²ÒüQuO?@âôOÁ9]YT!f[Z,Û
++®ï4$2Ó=.
+Eó§]uö1ÆÜøü9}×= e*K¯¨á!§eãܯh¶7LÐËÁÆîcÛëZ¬¦F[*1Tïäâ<®ÙYê|Æ(¦F±óÇah¶ZÒeõ@É Çìá[y¹æ±
+ Ì9DNÒ=åå`cèAzØqð£ÞG8XXxå^Û^ Öú`øÎn\¬üí·ð@FRºÖ¢æ8×À¯µj6ø¹$þº½æNÿÏx\ÉãPÔôA('pXǶÖå¶r@Þ÷# ¤ªw÷ @|ÃÃè¥8Ku`õ«VóZkN(¡9ÒÞÑà!z¯½çökUs !©;µÇa-E
vÔrðÝTÖPBéǦk¨,¬jJÛº¬áÕb\òjÙS¢´J,ó^y=µiÈ?Gþ÷õ±5½B®úûV©:[¶#vgùtkOb;ÂÊ@Ý7óLôõ5ÃAÔRe²Ã§ñ¹åþùº]P/C¦¦Z/ì£%Rë\-Isù×+
+ͲC©Ë}yìlñ"OH3F F=ßVlw£ ìa.Ènv0Øba
+ÓsàOίF\®ïÁ'`¶ÿsá¤xGpØ-?áZOÕù-G$kïñ ËÁú¬ÂºÛ¹ö®«Tèd8µ²ºLæÓ6LÖ¹HòïѺÒcÙÁ ö7X©È
+¹ï¹÷ô99¥ëxÃgºì¶npT~6ºHìDWë)¨¤P»Ä?íh=¿,Ý{.P̲Æ0&N#éÞÚþ!äÉác&|{kû÷5Goæ~nðòþüÓ8ç`n]¡L:µ¼ p(MmuºùeuVöáOèƪ)ªcTó¸qmJÊ©½ë¨¸yÑiSßÀ¥¤TË^ñ>ÌÁfu3«cP%ðuyØFÕ¥²,ª"_zùq³Di\r$©°
¸,f&ó1ÃûÐÕVe¾À{§@{ÓO¿êx¿×ì ýôÞj[å©h;_Jö¶v.%7}
+@ì`ÆË:kƯ(àdáK(ÿ>¿2'hL+ê ñ®F¯6ÊXks,¦Àk"Mmsnã×p2¨>Ú~ôzEðëëÄøì*oðpUºF0FJ÷½ó:Úã!BnÃ>@¤qíñ x¤ Y`¯ð
+¬XsåÐeç<mÑ9;_bÁ}qLóÜ5ΦEõøÛ«+½ó1 Ô²4:àjçm¥~ÙÆô°89´£ÐZ»¶3ß.»ÙÙ¹×í"ð¶ËÕy³ 7Ç^æÞ&µh©<û(W%_"¼UãÀE`¦ºL¹Ñªeà%UIkmX
Á<8{°ÐËñ.g`JìTùé³ìv¸£ò'E¨HÇ
ØAv&Uè;Û)/Uf©ð-@§ÉeÍ+ÿqÂ)ÃÆ}òú ÷zjXò°êÀðNo z<¾#H\+dÛEûf¿wA×}Éç2\æþw´PyÄ+,ó*ðýuÛîJè%~GàvÀ^[z´#»p×û,×Ïì(±ÔDºkõ§7ìcê|´5¸Çw°à}2îþ/è&«æ¨}î7°ÔÒ÷Qø^¡N
+}e2»½¥æfEk¿Ó¾ f<ËGcþìOç9gõg'ìb±ÖZ=Ó6î%§zö1Ü&¼}·?ûó+m°LÚëUà8hê A-´ç¸a¬¡Ò5Ç:ov¬nÏæ²=¼\"öÏh¿¥Ts úà8LUÇG(wp?³µá~ܬ>¡í;þ¶ôkxî¯ìÛº_;sÕAû¶ßxU({Gà.ÜÃuáçQÇ+<ü¾ÓáW¯¦#ò6ÜÍLñxÅ0î2v[]ÀûjÄÁïNn9%Þ@,õÑUèI¼gY~ÏýõH»}»ÞÁG¸Þì·ÛÖ'þ¾[ër÷â>÷ãÅØ3
+|ÝØ==ù¾ÇëÞ3ãÈ0s°ëÑ,¥ý¼¯ô|'þ®]_"®v=vejckP?þ|ݸõñ´µÁe£Ð
¥6ì³vë0#ñë7ìBUåãbò'ùóU7X¤êó×*¼¥1ý"ÏV@ϯ+ãÕRhçCæAtO*àï
+¨7Vê¡Øê
j¢#&θUÃ%¯R¡øJ56©bHD#G¼g[©FØ?p ?®´Ì¯ÐY`Fzµ±Ô4`+A.ËòÂ#Æ,1Åýû<UüÂ
+ýjÙ¨U~-¸p,ݸ¶
+ë+ læT=¼¶Sð°dÌï²ýGp¬):ë¶Å/ÿß6ñýÔâ,,jÈ:Érù2£ú¢Úì·uá¦ÌÛÜó(´PàBv%É) BaY¡
äDØBlÄFkjùÑòÃÞwRbdgÎ?~&¶¹RbHeôË
+-l=ýc¸¢Â V;Ò«FnSî3¬
+Èúæ4¨
+
+Rä!¢´WÚ¯!j0²J2(;ÃÑUÚýR+]^¾8Á1ðö±æÊq¿¢añ{G»lO(ü (ÝTçÄK&àjwwÔRv±¾ÅѺZÿ¹VH©¤'D¢æÕ:pÛ{AÃ}L¦µ¼A&NÃþ
+¬ÆÀê|y0´É\ï1O¬-(\/oðδÔé÷Û+²4¯[ÑÔÚ àµÎܶ!´þðº :óÛöô°àûñ ¸:°°*ûÿÖÊÍW¼ªdz©ÿïRöpý}Ôïgk0Ä|C¸*hQoi&Øn[·WDõnT¶ÃÚí¬´N®ñÝ\ïDNe¡xåNt5Ii¨¿¾N[@G-ý#ÆÉaîÉKR¯ùÑih÷ÖF-íîôn.ü8¯1¬ÍlVh£5',©sÖ¢uµüãLOð-mñ¾dÄ6uã3k£æáÑB·Ã'{_¿>4PK|w²»ÂH¨@Upî²àóJ
+Ã5Æ 0ÅfogP$ߡ׾ÅAç¥õÔ*¿¹ú"PO¯ÿ½lÂõª5PWX«qÈzaª,a¸4ö)e¾ÅÊ~ªßÄô!ýU¢»a·Êx¸W¿;,¨Ê½gmùüÿ:àþóûk+¬q~ÿÐAMàûqÈ^ô.Ç%ð×µ§¶
++ëçµS¢å§½èUîɧÎÎÚJ;Ãá±ÖzfM¦Ç²üäñ:¸Í½¬!Aù˦·¯ ï¡7ÙÜÑ¡t
+xa:Ël=dBCÀ8NÀØß½_ÕA*é/æÀóë+¤ª·ª tãúÓéá:²·¡·Ám°(MI¢8½!ÏÆÚÞÖ"§º
+BºHÚ"ûFêjuTQ
j fêµ.«ÚW<o ýùÍÄÖFÈõC<@×O>¡³êa«±=@FjßÞì5B(|¹×"©Eêaæ
ºWĽ¾²<0h¥3Õ×ÖM=AåhÙ¥µÒáÃÞ!wÙêXXy%dDÐÑÎÐGC(¹T5ÂÁ}NA)I+±AN¼¿¾ÀP»ö=&Ñ|ÝFhû_(R|¬58#½=X¦X(/e³/»óK£3hé>¥ßx±¦¾ßçáÎì)@ªd0õV®8W*y§X«SV¸>>_Õͽæ*úõ¥ô~£%_æèêÑÆ
+<GÅGø;A¥
ºÐ«ø|ÊïpÀåܯ§B}Êí:¬V¬*ú¹ës3Ú½À?XßFí
+íüvWní¾lguÕaÀãJ¡>ÖR£Î>7K°ÛL|l%)òØLñW Ö¬Gt
½gº.1¾aË×{ELmÅÛR0ÈÜxCLFéN×Q9ûæÎ[!®óë©2
|ávU;MkÀØZ[Q«¨áfý¹¼:£m;Õ3áó6µ¾ÚPç,ÙÕ¹bmIúZ«;Õiò6²SÏY#tÇÝ,)GʼßàX»áºYy«#Ì-ô®±«þ83GíTÚ/0Lì zÕï§äùXiÈSÄoW¼@5j̧¾âaB.WwçÜW/¨ý5hÑÚFí3â½q}?gÐÞפ¤²p6)ÁVâ®-¡<Åt»)½*Ø/pª¢OzyÀÒ¹|9×ÎT]Kk`ªÝ ·z±§jNèè~2=7àÈqÞ!jõ D
+¹%b×Kxq(àå¶U@¾AÊCa±oà«,ÿwZEÓE5
+æÈi85è¢%ê=nRãÁXêQMCaÁÃý>Ö1oUIt@À¹
+8líTÐ~ÃÙÆñáXÌÕ¼
+DCFd¯PõÑ:âf¶;«§Tz@´CQÖV³ù3bw#G2à!W«ñ ¯ÄdEâ´iï#°dNÚÙâgd¹;½E Pªq{í
+C½YÃÓåLC<p¯à¡$ã;4bÏ<
E\¨õZè
+[Üçbh¸ïkõ÷UQ°õñyúíêîy
vp{¸$~VËÁûUÑÊL#~UóYd
+6Ha
+K!Î'ñr=q£0$¯1B+#3ë/V¶Ð «§¹-OÑ)ïÍX,´0«¯Ï³µÀ¥ðO¡/óÛOµY¢ù¨OJþnâ*Rgø<3¸®o×k
+ÂTïOØÐ.f÷ ¼<ß³ì÷¥Ð`¸Hå:
+ #DhæVEHËDúõöJñéjEmôz¯¤w¸Tâé¥AËY¼%QÞxüDF
ejÁ/¼ÿ ñªkò&É|ïï\xñU*.È_
+·ªccèägÛÜ,G¢~Pó×-P¼[Z!p@ñÔ-ä¿ÛëÀ#P»xDÑö EevÿÀ¸Ö¸³t,¢¡"#j±¢7¨Þ
+ê¹±ÀIÊàüù²ªÉu
¡ËX·Ùí°è®jÝQdkÐî ÀH;@¹¬©ØQ.¨Jd66)LRMöÎt¥0Ƕì¹KDÊêrY3Ôi¡»gu¡zp¥¢?Â~Ýìöà8]¸;®7ÀðÓËL8¸«×¹ÎYÐmý
+ÎÀÔÜæ+Ò53/êu at 6ðéZ]ûðs}ÐyÏÕåra7Ì5ôIÔû ÎÀß0¸+wö£C>cWæ(üx9uækù÷JfÀTéXkØe ÃÐÃ
+X±íÂzö_#¦C¢s¥g¹þØ×9uõr¾°Xëå_ç÷®Òkº¯ñà1óÜ(¸á½N¾no£>O8ì*×c¢IÇlÐÒ9ð¹f¦Å.vß²`.B÷Z;+¹\íã-Y¸Ýc3˧cSIDqx×è°*÷
+Ø¢ÝÛÛÒiÝÂ× [}w!Ê-mo'£dîbXñS¤~2Êý
+öû2è+Í6t¶îɽ·nmв±ÎôwÐgãUñ3r«¶hÒðµZóÔuÃA%f@
ÅÍr[î¼ÕU
+ ÑÕóïgâ&Ï]=|®sâýþåOÿüËw?ÿò·>~ùáÿý×Ï¿½þèßâ¯?ÿ¿æ|+j2CT"NýÓþ!E§U^
+M4êVüse=YZÑò_SÓÅ)ÙØջΣ½itÅXçÕ*1É5¤¡yãÁB®Çv&ÌIg¾8RØJÓ°Nn#Ítîr'D(Ôlµè2 À`m}Ü'+5mÐÀ#»ûá¹:C±ÖâÚw
+lÀ{2l£I
+N×&";»¶59b¨6ãÌOªe?öÎT3k¹Sì¬OSH³l}K»!ÓÐâ·6xM¹(¼ÒLàé©d¬¬Ó}
bª
+cXÁ5/7Í]BK`Ý¡4¤bâ³)ý
äÿïjÉ®íVSɲ@j§{Ûç?Wü$ùØ/=¯×a#>ÅÇ øçP|?×°FB_îJïI2pòÄ»îaÍ°,¦
+x3÷4 *äk l}ô1½åBc Eé$MPxÅ|
+ÞYCè
+¢RÞû&À>¦þ
+9¡QË`ÛSÿtÞKÑغÖ
+bFȦ<v%Ó@ßÏeûM?G#ßÈbXùmÐûSÓ0»¦÷EmÏí9VFöͯÒJFÿëk÷&_ô0ÌÎ^Èõ¦òdâÌ$k
+ö±I¹½
+&Ë%È<äPôh9lÑõò¡Õg.º
+ÇS®¹þ#´qØü+ÀaiQ¼úé
+Eó¦ãt(áûc¼oK£°%.@a *@|vLô
¢hï]ÂÀ!`Ôuf]Ö©°\Á
Gå9ÈUê´;3«ämÞ×|f48ª}¤÷;åÑzâ·ÄØ¡§ÅrÁC×û
+#Ñ@;p.VWzK® äSùJP#^¼6áQ¿.Åòíhqnà®Õ+
+|R,ÖAÉë PF˪çÍÎDºøÁß_ßÿóàüËO¬ÿUtÏQÎ:y?5ÀeðcÌ~3´h'Gÿ
+7
+Í<«ª
+©Þ AgkZV[psârÊ¥Ðî/xFñ·t©ïàævÊ5àh³øçÍÙXM¡(§æßÖsý»Rí$S©ë¤¡-!@ÑHýÿýjø:×Pâà¤þ¼?æ`E¥Ñú{ÔPÇR,þu)øó|¸Z¬ëì;x;C#à ^N¡nMÛQyKw]k²üß@&Þ$ÑCoKÒ;å-x1àcØØÏgdÀÐátN ì
+»oq£)ÜÏ@ñâÈNM&x¥>ϱO.ÆÔt·ï.¡¡¸°ø?Ø%®Ø
+å`?¶ð¨ãÎn$>"q±
+ÉEÔ.ÃññßÁü±ox}¸?Á
àí|WgQÃû/¨¶r>A$m>måÞX'®G(Ý®Êðç"À.±ácê
+¡ÒCá ºdy¡ý5°Ûyªú-
+>,Ñ2âÈ=¢@u-#»ú$zÒç~QÐsH³I
+²\áqy§4uoLXíÏò[V®ü^ÁÿiIf()hd2ѽYö04õt>ÒÀÀQ
+`S¼2Þçb4åb§´(ì q°t!âEs'Hϳ+?¤µÿã»Z3ÍmØUr)QÔsשuß!çH~ÛE»Ü ÍO/
+N¬vÀ+»íý>B¼ <[#xzá»i»B
+°wY
+hÄ%JñÎwP ?ÿõßC:}ûKl`1úp×KKÚÒâã©Ñ¯=´%NµWðA¹àvÐ%Õ-Q·3T3¹<ä,[9вçcRpyù0 îfeí2xÊ=ç¡6Ív¶^o¦TÆåLØîÜÀéën®)A© .
+hõm`x¡Ì»ïìïõY£ÆÏÑ3Æ¡cºþ"î8ÉnçÜ_r±CXçcà8 ¸â5p^ãåÙÎæ%ÙÛ¶`s~,¯
+½Sbø (lÒcY §FËÙH½8ëçF¸CdÛ8ÿú% ©nìh|Ϋ£é,@ìÃMÀò*gìkÄTj,|¿·F0×Ül#ͬ>¦wçFP¬a¡Ò5üÿÛ3²©@cÍLRU<·Z\3i -~·!Ó-`V§Xeæ.-:ÔU>fqÑÊ}±[¦¬
+ºZ(¶ifJ+ã)1s
-¯ª4*ÞÁ=â4aétö§Ä*ý
+ð-öàå<ï@ÓÙØmDvÜøG&@W×w*δÖÙð9 È «ú¹
+Ä]Á·lÙYÇAíxµ"îØîO`Óp,ÌêpÑÚ\p¢ýUPnZ@ÚÉî}¤sÐà@[½µ»ÊÿÊþÔ·²O?Aõ-Q;!¨9âL0 µAÃÇLxÌ=³lÕ
¡xÕY{ÕT,%³§[²û)Q6KøÇn é. ÂnÄ&A^y7!á}+Àéb¿
+Õô¾/ónÇY#°8vcƸfW{
+pI9÷¾?.dø£5Å*õ[AªºxþÖíÀܾ
+¯è.Wزt¹%Þ"³¡oÆçàsZúÏIëbsôgÒ~Ú·LìÔbóJ°Ï¢1ï¡rÚS»Ì%p
e Fü
+pÚcÊ'sdö°Ã
+ļOP
+3»±×S¾µ[nÄ´M¼YEl4÷×Dh4»ëå÷ä`OU+`beIÚxÌ.-ÎÞÚ¬:Ùc³
+.e¾Ïfý¼,«ûùëHhJäÄ}¶,À-Gà¢8ñzZÆèA4κB8o¤aôãÔvÀ] S{
8îöóÁ$Mù·Sp»ßàâĽtúïÞò·¸¿½
úóØ¡êôéh JôÌr]/¦aïÄÂQ-\UQJ£zȾîÁÄÁgl]cµXQC h(·+xÞÞzyS륽wNH¯ùVêfè¥ÔGÞCâz#¨(7\
+U¼Ñ8×Iäe%7^ñdåcûcé¡uÊ;W
+°I¨
+Â)¥çJwoo0´¤ÂFâ3ú×°Ííqû4_ùò£}ΤO"åË` î$¢_`ÕüGS-
+ÙédC>¾glÄb
+ÓGà Ð3eùP5ÐÔ}x#3ÁÆ\õ'!nè3«6wYë|ïV¹®ù9½ìÔu}Î`ð±kì
ÖuZ2ÊàÒ4@> ·MýCï}fìJH7Ù,ÌV'ïGÜ]¥Gý!¥¢Cµ=:oÐ4RòJ×;kÌ-nPñØ#±ÖU"\ª&m'YhÍcäÑAæTy]ùdt;ÏtØÑFzS.±Ç8ÄÒP¡mJWa:ÿØIR4çÖ5¡5W® ÞÙ 5mUÎr-Iµj jB.ð°tçj2Z;ÞKÞKLxjßwÆy:ÔÒNoO¶&KB9¼Nó¾(§wåcÂ¥°5Wÿ
+¹ò-¨uiÚÎ
+#äA#¨ù°¦ Bõ2|¾w}b³ÿç+^ô&i²ºq'| ìøá+°`pÖÖÞ]\Wtè¾
+$eú¨#Ïu
+$rù²Áè/g«<ÐýóöÃ/Â`2¥¡F
£ÀòN
+ÆÙ'ïåÍppvW¹Ô)ó
+¡²Ó»ÛÀá˦5¨î¦4ÁG¯ºÁ;7ì¾+ZµvX$ZÍtö|xF§zøL£[k;+dOÇòÿövj:R¯ÊÌ
+º½G¬DîÝTõ]>!´õ¤q¥wò
+SW^ýp`Y»ºÁ!!ywÿÍc)üÄZbSÇ
+¹_ý਱ogºÿþÅ{ÓäòæH5 at 9àkàÔu}Ð
+¡¼,ÎX13yL9S¨?g2=ÙÉ g\
>z{B^µk>î¢óÈÈ¥-\*ïÞLÒC]y
+Ó©ÝeèsõE
+endstream
+endobj
+100 0 obj 23395
+endobj
+101 0 obj<</Length 100 0 R/Filter[/FlateDecode]>>stream
+HÌÝ\GÇ`ßáÜ ÙNú£ººÄ
J´(pPdÖ`ðìZµ"¿=ÿúèszvÆ\À
+JÖÚýUêê®êêª^ÃÕO¾ýy-®\K^Z*aM1öÅaNcNmÀлÁ@M&¨±j§µÆºkWÕ.kn¦ÛJãÉDÌ\'Á)¬këùÖļÜvqhSn7îvÁÈû>ÂÚ¸&ã
+-a±ëºÃjû
+©¨IÖVrL0¸qY®Ïe;QÀb¤D$g
+?`£=ÒÄ ¸E/*vJ½ÌTÔ6[
+=-î/÷±¹*y#Íl©¡Úm@/³çgqتE¢W DFí:nFµ rovÝ:`h;ìTÃXÇ.[t³ºúõ)Cäh|õdý¤Ïȧf%Ïí²&Ba=~Jpý_ Æ:íþpâiÛ:£& \[r
+4ob3ÛÉÀD&)[Ö{RäV
ê°^vÀÚzL@@®]úPÎZMË÷1fÎ+<tøkìQx)Ñ9ë#¥ÃPÖRðDq{(ð¢·ÞVÓHú<»0¹§§å ýÃqã±s+)ÂrÔÛ*EÏ%M9agÍÀÀ
+»rLLV6'§º\ÜƼG4Y)Pûã.e8yZÖ¶ªéZPÌíÅâ8v×.î
+`²="c¾N[×nQ`ÚÚEÕ®ì^P%^.úüÍIÐ<%ÔrböMó4´0Å![%Ôì¡{Ó-ZuÛe;^mÿ
+j,͵kÇØÐÌ/½\ÄÐPV,në¸ P>» AhC»nÛhªÁÂ<#¦vÍ͵)_/ÇÍî'¦<LÙ~ü4ëÀKÞ®J'T§:¹FZ¾ÁÒþ¢/èJ½}ºÜ¸ç>L(Óh¶rp"À§Î
+³xCywµ÷Í´Õ$1ai/P*äÅ}ÌQw7xfiyÜú t;Dì˼ÁÜËy+"@oìqäR;JêrÑ9xC£LRç·§ME3TÖoÖhý6`òà
+gµ6VÞâM}Åh¨PZÅÆ<È÷IÚ¯&|åS©bìÅÜ×ÚÙpËÌnųÕ0»cyl²Ø×*bÏòͯÕî¾Õî¾ãÉÄ~4ÓbtÇO÷úê; à{V@´Ä _â%(%[
+ÖÃ¥±üÐÚeö7æB÷¨-!êÇX¤";ôDÈUu>c`v¹ ãlÑ
+ Yõg¾Æ3«Èðöc}fvcÕV''O4P05n$ë n
+Â".F
âv@sþll&
+@CÝ'èeÕ" GÑƤÙFL9ëhdÙiH´Ò£g
+×éúÔo¤Å°Íz¿BÃ\v(l¸JaLjQyéƯ¦Ï{ùz¡kÝâõ4^"XÌ
¥:p¦»ÄD5ºH2F>~JexLÓ¥|CRØô±W$YÌ
+ãAÔÀe¡à@311Òd:PEµu_]P
Ø;ͨ
+Ø* ÒlÉ@$0yýkõ«Â`v÷KÅ*íÜÐP3·ÎÈ¢ã,Öqj].ÌÅÈ ÷j³ Èu.ËAr5bÎÆ$%®f°;ñt*
+bé½èÛY<ËêÒðWM~uÇ3Xм>ÙÈJU|Kbåõ]ùû>mµ¢CnÁaÔR¯ßÖ Ñ»tSNÔzA¢¹j.h=ÄÚ(F_
.f15;ßuÓø_°¬
+¬ú*Îß±G_
+VYø$¸h!ÉÄ>}¾õ à<Øe{¨ DÍ:£ª÷~¹
+
b¿FhY_pÊÐtR¦x7Ïi(Tè ß®ó¹îV¾)ËÚ¨ôªÒÀRf³µÃÚ¨9ðäûwÞ*É+2Sm«'RCË<ë2Lë<@=È$(è#ûÎÚvPhô}Aw£ti5+$4r±éc* iÐÔ¦Äk°Løæ®3e:ÐåäGÝzÆ(èKp'2Ö©ÔD!l«AÆ-6<ùSî6`ÑÆvD[gG×4`>ójCtïÙ,(¬)tL¶I ÇäìÛmÒ+?ü
+mÂÿ{ÚÎ(W¼äÌß^ÿ~ÝéM|<
+¿«·Jb¿Ì¢ØGãõí3 îóx9]ûuÇÎwÏÙññÚv|{IûuǯavÇH½pGÔÇKôݯÛâp*yM;;gÜâp¹Å±°Ñ~űkægúúñJïBúí¥æÞïò ¶EáõR±¯ûþðx¹jì·Y;Q2nÈõxr;B½½D³ý¶·ùnôùñj7Z~{Nâ×¼]'qüúÝ÷ÿþé¿ÿñÏo_ÿøöÛÿÿóû_~é_¿à¿þÄ?>[?eTêU
Fm©ÙLÁa`ó×ãçjL^ô&xW
+ÂØüf³_Çé5?ÏbÍAª2A:£î¾º¤òeÊê£PÄÌ5
+¦ I'ÛTãÌIÖ+p×'¡ºÍ/(~Üb(EÉ É,×aí©dÙ§"w׶í!q=-ý¸pæÒ®F
+7òÊ-(uëÇ1ÌbËV³ÓÇFók9^¸À
¾Ñѱ6S9-RÏ)5WfCøï4:R೦ÛiüZAhÄÚŨ°Ý°±B!Åií²
eÓ;õ#²ÕÚ4º-=9S#a$â±Á
+Ic%÷Ù
+WY [$óKÁHDW,d!¼)ê±T(!], ÝÆÀ
+iËð±¡J¡ôÂãSËÌÑ\ E:Âå´Èø¡:yñ{oQ,Ê¡"ñÃ@.ÀÖeôIRÆéGgY'ãäia$®p¹¯X³|hâJ¡@iÌÄIÛÛ¡DøäUö4Ü.@à·t]ÁE«UIsÆO¡Ä¡kh
+¯ñÃùAQ³0ó+Uæ
=2ízõ 'Àhb¶
+(5[:B¶Tr4:(×ê×
1l½LîUt²bJ§¡®f®ÍEoÆY¬]ãÔ*)cÑ3~¬e\NFd¨¼0ÒÕ Ó©tý
+Ju.Å!trt²ãå¨åô£²B=J¦w鯨Å]yÎÔKí;èÔ×᧠ڤ٩L
+Æp°ÒÝvqýߦsHD{H3ß/Ä^t¿]e7.ºIîZ¾U§¹Â@NÆDzקÙb®LQ?c¡ P<$,Kd¢vP¤grÞl¤BUÕ¹4Æ£
éë0×1¹:ÎEDø´½§aI¨}i3ÙÊ#Ly"aÖ$ùÆÀÛÆY;ÖQþ¦»\w+¹(ü~þi&\fß/Aü0@AAADFEÃñEGѼ=«jUínÏ9QbÇ©³OõúÊJ¿a¡8e 3D·ØücjÝ¡@
+¹W¶Üõ$í5&ät<äÅT¹;´Ëðã¤í!¦GL¶ÃhÇL¼
¨.Ü9ÄLãI,morKv7ÎíZ÷bMÖKßQ8]á³É_ݦ%Tjaq>È5Z
+k{ÐÃà&q·Y
J6¢¡paT>®Ùz 7.Z*¾ÈÖ®¤Ü$úû«}áeôDc6º?
+GéóïðëÕåãÓ7onîïÞ<~ܾ)l¯¾º{Ú^\~ÃööþöáþÃÝ»íÇÿ¾y¸Þnïß]¿Ü~S¿Áþ½ú~éÙø7OO×wß|xzswýûÇoß|¼~<ÛÛÕß.>ßßÿþîÝ·oÿuÿÞþÿw×ÿ¹¹3Ë?>^_ßmï¯_^í?W?]|À¾ÁÿùEûûê#þçOøã0ý´íÏÛ?þ¶wò½¿^ZÐd at Y1¥uÅcÕKL±fR'Xêd °ªyEg-ñШ£tmÒÂ!^¡¹õdÆÔ{;`®¶lÀFYë©OºläIõ
+ÜÛ©NÔSËÔOªSN
+N0§^n¤0VÙÁ¢Ô9Rî'´âð`4´Ä¶ÖTûë>7
+à$ìfT,
+Ô,1tª{£i¤ûá»YÖ#X0ÞYÖ£d1\ARYôÚÎ"¯ ³Å¼Ãwãþ
+¸¸ÅVF½BªþºGcùô$
ãÙ°äu8©=»ÑëæôlËXwc÷Ë^7+ÕÊCÈcømËôka¬p²EÄVÊ~¶øm1Ð×â7Ð-1¸âY@¥fg%Ƴùµ¼bóÅWþ°´g,$¿mÚ#¬pÇqÈB8²×ALî,¬»=wqÝf{ÝCÑLîU£e<ÔÁj<Áoiäƶ;8éFi¼âF%ÿÁ
+{æÒXïº"ÜZËÆÌ3R¯Ä¼& R#裩$+¶Õa×ÄjØRbñ)ëYòtí#6ë¢
+½b
+ëî"ë¸6hÜòß0¢b=
+ÌcñpÎÖúlI$®z0º<´XÓ'gѧ-fó
+@±í5Í2y9rYÛ¢ mN¾ÇE}-¬¥ôlÂ
+ /ËK 3
#´&µëB%ª"V¹qì$§í=²'å(|ÓP[ø³]_¤¾PE Ö5ÐÓï)м§(
^>Wæú]Cä÷"´ÒF|38^£Æ:iiIyÀ¿¡ÊSü~º®îrΧ¡ÄJl±§Õ[¥ë^ÖßQë°XPö#ûV²Æ¹ZóÖÆÜíºB¢P°MË®lè<Ù®0êÖ¢x<¦°Ô:ÊZhÙ£b!Ø*dg3`¥c@¤×íN) Nº9Ñ,-¬ÝÎëȼ꽥XÙþ·Ú-ÈÐXü$ê"VÐdRB,㱶ÿeéB±b²C`JÔÇDeæ iÔõG&KÓ¥Sê$¨ëUBã¬üê¢ï§ÁÊà.I^ßx¢³vsd=´³uº×èV ñ*±4£z¼!C4cL;µåèðí$רàGÇ´*sÑNÅWÚYµMqrBöÐ4xØã´j}ê³Tܬø-.v9ÀÃdÉPóÔPkfó¶d[âÂ"xÏÍ¾Ê -pCe! ¤à/ÉT;ÕC·={+lotÕYÆ×VÜXî«Å/ÍjåxP?é[ ´qtsÛ»PGc<»B(éòæh6f-:¸isØA:@`§
+Y3E'-û'
+!RàÓªNe4¥æ(a(",:mÄôF¥Óª5´è2-;Ϧï%dÇMRÉ=¶ÆþT
+ûÔ¶ O³MA$'cÐE°õ8~¾üö: ÉÕH:ʸ·XÏHÁ8M¯±(ôß*JïÖ9Ïd(v
+¡Ú*ØÖvÎhC0´¥¸P×·
£%ûÕ¦f±ÊÚÇmx©1)*ùv+ÑÙµb45
+¡e¦£MùéN!
+Õ°oøshÑ£iÇD½T Ík< ¬643Ý»¦ïhtz>
+¢GÒ²Íý(urk«7Ü¿ÚT¢¶. kÉÜz7AIæëg¯ÔiN2ïÝPMùUËl¡øè_"ûQZÙÓºoZYvµ9$ëUë#yL±}GõmápLô² ësÔç@3¡3ÁêÑÙ¥£õ!C !§
+¢h*üÛ÷¹G«¾
+e¶[eV°/g
Æ&ÛãRÂ`k2(ï¾²o
+ÉÑ ØÊìfFqfCfäâÿ÷ó
üõªpTJ8ÔAêÖ&ÎÌä^ÁY5ç ȹºb²ÛÍ3G:èÙ;Çæl UT#j}vgSc,Ã×Î"CÎd*ÚßUºT¨½Ôf²æd×=c1¤Í×±TI9äeá1ÌØÛc ©¦÷´EøßMpo\(
+_èzb¼4Ê¿R/uÚ{yËTÐ J
¼¶BªD%
+õÂÃO
+sL)åKuvº¶êF]BhÊÏt
ÝEµ±)¥ìjÍ´JÄf¦_Õqá.r.¶À¨PÙ{YWà?/6ÅÏ(Ó
+;£wtqVÏêèÍ¥ô_âv=u4§¹ð
+¢neÐ
÷ìlHLly¦Y
+fÕJ× OiÓrGcJ*6d´äKqNçU.ÑãÐJ¿Pä#
+?ùþüäÓW*±(%þ"
+ºCÝ*Òü+îDJ°ÒjR×ê½&ÂU
%Ô
+KåÇZ¢~s0ý×èûÝ|à¢36$ét{Æ^ÞÙå
+©¢Ù¤íÂb&·rdÌÂ=-!Öçòez4þ쪵³LÇÍ¢®ãCejxM©fº±´-zÄ¥kÙ'ÕÁA}¸
+<·G]55üô{çr2½:·;ÎÔãã[âlá0ªrÚÜÒÅL¸[·ïkºRÖ¡Y¬BmËÖÚ1²V¸¹o:ä,¯»¶è×n©A
h9È'HTú*´vp¸
õ®Ý'¯EEñcx¹ÝbíL]°±§¿51JõV9Ðp3¤Ã)[Áaq÷íd1#¥Â7
+ê(¯qìÂ*7=nc)[ÐêèØ·úçF£Ga
+Ï$ÛB°ûzQB§ô¸}à¶J_h¥Ðb_tÄjÀº §FÈ,&s
Æ·Z~t×lYO¤ÿÝf<ä[Bvò\¿í)ñçêÄç=ÝÀp¾
y"Ý©p4ªh.ìÖëÂÁ2Èõ)|l?5Lw§a´ªj±vã^¼Z£Ï-óXêÌçî|Âa®6+¢,JáÚ³÷#ìâ\+R#ÿãsKpçèÌ;ÔÔà¨VÕÁ4H;×ÚÚúd¸Mò¶¥¢x|³pv¤ë5\ÞéV,$<ßJ[£ëª{5ª¢èçæ=n¯¹9HCƶռclõãRiÁCêð£¡8)G°Cá¸ï¶YÎÛfÞÑ×6¹n¸SÐÊ·ÅËqª-~W'kl»Î¹i{××0;üjsĬ'¸-d^ðߧxYP'¸"ëjt¦¿¨Ý;×Hgy×Sc3èAñ»Nó½nù<,£WdBqVJëxÜ|;±ÌÔ¸©
+®ØTI¦°=j0¬;`b7ïYó}£°0°"@ öék}ÜJ
+yËìé(üW+Ùnf±HAsÇ| NÀ¬$|ß".úNû.6VÛýèg÷Äo!ecImÓ³ÂEpSÔUæ
ä^Iµk]k ®WH5
+á¾¹]6;øùjÕ²»Hà¶ê+ñ¨_¸%È\e½ *[g!}ldÏÏ~8ûäû'_\ß|õúåÍë«Ë×N¿CèÑOOÝ\¿¾üñôèÙO/Þ]|ùæâòÕw/n~úú«Ç§OmÉuÉß>¼»à¢Ïñs°òÉÚ#Û¿LxO2ÈÖÏf
%>ùÂÍ<TÓ@Ç4CmÃ
+éZãáÞ#bJf+aöU",Ü6ä@^pq&uGcvSpÊ»Gãè#6äÓbD3H#©ß4 ×±îúT9oÖ
+]7PÍ'¡¼ê½µÃcæ¹çÍÍq,ö ¢
+FnFÓDoCü²¡ÇC»ÞÅ<ÎKiµ"\FÒA@à¿]¡ÖÜòçLCÐ-°Sñ^©¨
+ꥦ¾Ô¯©È×È
+ØÂ;/õ0ʳïÐkJ»²0«háÑ
+¼yEgÚ²PT}ukü®¤"Oàe}nàÙlJQGm ¶ö;øcZ5Ô¤ê·\Ö½&%àûÝç®"x!çbøóxãJqf0ºàù
ç$ÜJ®à±V
+a¿ ¤KG+°^ÝZÓÓ:¡×NmÜ»¼w=ðþæ`FüÞUrYA ;&&½>ðÚ<áã1½"e^W2ùA}ICO
+FuݼÂÜ``:¨Cø~<%¦
+^åû¬>ö¸ÎE"XòèGL!ÓÈRá)'XoM) 0+èàUW at xÝÇN·)Ýõà/²ËÔ黨
+s½£/ÉjOl"É·Ùq×£
+Dzh#©|ü'´q.ñ!ÃØRY[ö$ÁöÀaôê¿ð¿"äuÓô~là~àÌ@B½+XÄíܸ¤±¢b|î6s=â#{Uñç1úHkðy[Âwæ³øÏ"ÍëÅKÃ
+¾²
+ám9¢À QïBqÀ6~ÌAø`=iFF¿9ò×"<Þ$®õïí)S·ö«|»Ihÿý8p at va»:Ö?*çêO¿¼4±UøËðh{.»dÑC.}695d-²nh³Éø®â6©¿î=òÚ{½ß[é"uR3q¬%fWÓpsÓÆ@«ñÏ`çQ,Äm¡4³Âì²Ä9¹_£¸.Âa[i#v}|77õVÅ_½BG¿ù(îtTM\Z-á¾³X'@²o=§ÅX¦poV´Ù\ÅÂx¶íécu)±©»ö°VpÁà
z¹tÙÜ
¯¢U
+,Xð»À¼`ã&FÓÛyp}ÛL@`äÇ/Ø]W
+²Ä·f9Éá°õW_ú::¬e
§ÔnÙGÆÌÖCs¶Sä&YG*B©lNÓÏ®±ÔÅ:ÖÐzåÂi8þ©èìoX{i[`ÚelQQâ`m±³Ã;ÁíÔb2YàÍ~dSÆþþÃúºVX*º~Ò
+ØRá·Ö±ªÿ±9%,K«[ÀPSâj;ÙêÍ(õ¨4ô.¥Ô¬w¡Ï¿ü^Ëygö°MÁ°¯°_ða=þö³mE
+ÝÑÔ¦JÂ4,ñ/{ÈÚCú{H,è!»}çôVXO_äÂõKÌ
+_a5bPTâß»&,À³çÇ[~Ü÷v|,W#
+·Ñ±zm}=fºQ/È»ÏM¿e{g+é¥ ½ùm6ðÀB»àb{°(lgw7Á}\×uF(áQUÉsQûqsË7Itgsë¼ÞÿÙÄÁK8qôä?îx¨bÀËѧAÁQ^tçÆØ5é2ó+á)u"Ê[¶·¥ûªnÁÞÝÄ}Ü-§Bf¾ª¬¾\¬Tücâc³~ÜÃ[ßÓJnx½â«0Öññz´Âj¥që¿ãã$EÏäJtë@Ahþòµ²ª1EÃ
îû츸6Âó1T[xö,É-ÀoQç >ayÔåúÐÈ6xç8Êlmªam
+òqó¦(0üÌI¹:
+ÈìºmïòØΪeÈþxÿléÇ×Hb)§ÚúC÷rúT2jzUöpuLØ¿jÛñYg½|ÁÌÐH¸
+G4é HöÒ[O(ð:vyð¼¬Äs>x\+À7Z;Áñð½+áå ñlì U
+ ì|Ô®ÿc>E¡¯ìó@ÝöRÍ++¼íXA?µ ³<p7
+0½?aQaj®«¬#$±¨~¹>¦ñ¦ðtåÒC=zL³ÉGÁLîþ
+è34pag¯~ѹÃYjßIW÷`ù¯¨ ÞµoÕ±ä^U
+ at 7µûÙ±Vô Í4u
+tM´ ?þçY
+IÌ»Ýâ7JZÕ\.
+«l;)öÁshZ ëja¦¢©ÜÀÆÀøc·¹kØë£Lw#D«¤ep6sCHyùTphê ÷G¥{×¥FÇþ&Ñ6Î:[p(J[«Óàñ²à7D
+ÿKÅ4ööXb²}Pqp^Z«I)¸UEøf at qP%?¯ü'$)N÷ñ¿ïÒ}-Ã+]ê=k-n+ÀQO#¿x&Á*&xÊÿ¨®v\»n ¶ì!KÐÿS»uàÕH¤õúC9ºNĦuu¤Ñ?Ûä4kpð¦jõIÈBÛ¢!¸qlXøÀN&G4pÉ]ö»vò[wö{; +Á¸XØĨÑôΣv!È ãËÉÞÙCó£ç%ròóMÙ°£Å¿ÑÝÄëia³9]LUr¶äȳ2Ü´¦^%Í/àgX;ª²+¤
+¼£¸5qðù632Ðä<hâV{bÖõ1p m
+]mü÷ ×£bÅ¥]#¯üãýCbÿèò®ïëÓ
+¥è{ÖcîúÇ.Õ¿7ÕcÏ>ôÈøè}¬g´\ßþ¾Xñb(àÙ
+U/Óq":qÜß*ÐDt|A`ü5Á ûêg\[4û|6:°;gõýKÑÐV8Ï{¶0°#
+W])b]t=z#nಢ
+°¶2çqh
+Ê°öØe¸_ÕUÊÖΩnúv«à~ìþFbDóQ$X¸ìZ¡°99Ê䥱Øýþff!räì~Æt$Û¯r·{°ºïßkþeòiæãcàzqÔtÈÃõz.ÞâÜgNÎÉò¿¼m8ëÚ6"üæ
+ Ñ
+ \Õ¾òC1îÆÁ~9´5ì¬
+¤V«Ïõt)Êv0²ýXÇ[`$¹ÀÑ*_ð§#+Î3µºTùÆ~8#AÏ/¯
/÷Î(Äȸ^){AÒ^©3ÛÜsf
cü~ymÛuþ¶
öÉg?ëÚNu%xÓ4Þ»ú5üÆ
+bíT-¶#Ö®4È6²Çè1>>k´( í9µ2¹à| YH´WBÌgïÇÍÙâk«C@åJ÷] áy='xÁ*!¶rnuøì=D®(QßkæÚJòxâGÙxPç|óë³X8Õ¾ÃàkÂ#{-°¯ûÞ0^Yðç
+Åwuh®F xØoâV
+f"hÌeÕ»"dáÖ<«¨×´Î¸W8#$àÚ¶¾§2,àÂìºmL¼æÑøzèÞºÐS»À®Å/x<Y»^`¨ÛØnl¿_² Ù÷ÌÁ¤¯>3àv×µáA³7íºÖNì7ÐÚÿ»±mqrmq_ɵMà|73ÝÙÎnlq7mv
] ¶¼khNp3@µ¦\§x×¾äã8ÜCSm/ëÞ¥þ¿öRs[y lJËLJXüLØÇ$÷¶.A÷;ÁõAèù{³Ù53ÁÓi"ýô!Ö¦µÃ!³m{÷Â&¹á½|ÈGªð"Á
+?&N¿Ip¸ÍcµïYeÂMY7pÅx£d ZÂ
ɨwWOz·>Ü3/@òÎ
+ÜÕ
+)PC×úÎj÷îÎ@ÃÙ]·M!SQ¹]BÒÇÎ
+úàÌ£öÇWa»¼À×ZÏJðæ#Ò&¯*&-5dºEÐ,Ñ|;ªk8=ñ#ðÇÚÃOq^Lþ;ð=>QÓ à(0òÊ/Ü#]èÓ4
+ÓÌ÷ûûøs2^!ñmüJZ (É?ïz2×à{Íÿ6OÞC3ʲí¡
+Ù=+â|û*0öε#¿
+¿Ù å-Ú¿þé"8àwWn¥ÀZßâ]Ù©
+~*Ø`$̺çQ±AqÍS
âïõÛ¼¿K÷eWW )È£9®+Ìyñt¥tUHÂsçð?ô±ê²ßÏûMª ,,K`}*ÂpÆÎp¯Áÿw~2µ~]ú7U²á'#Àx@DcøÓZÛñ{ÙÓ>ìc0@ÃYüÒhÐAÒñåëZ<é
Ê}KÃÔà©é¥==Ý`ÝÍ(üI^~yí1ï7H,È,ã·
+¾l×ÂÇZHÑüó ®P½/úgHa QÇýÏéB6¶oîÛ[¸ËAo%½dMW>÷¤µ÷2x«Åv/à8õú`Ó aÅîÕçùi7N+¶ »>4õËk}Þõl
+²ôY;9%NFïË+¢¬àÔÒì
+uîKì,ÿfýÙ´tAYÜD¦÷ÃW°¿Ñ~ Ä+óN㦼jèúhYºÃà*;»Çó#.CGKxËáÌï]°ÄRE¨í@L/p*
+Kpi»è)sª¥MöJ[åZµ?*YHjæê zØL[íc¶§$ÑU\¬þÞfÿÍY<cGb6ìÔúIRØ®îgx´ LkøæL*g𸷲êhJTø¢d;` °%pVW9ÔË·h÷rµ{v~
+vôçëë#
+ÜòiáÁ©TÐ0<{¥#ðmçSEíCÔö÷Í(t?t0ËÎ'ãtç×®]ãr?3JÂj,&F¾tÊ.ÝOº-wѦYï³2 Úüzn§PWÃXÉÉÃ8´Áßg[+
+ ¸*³
+øå`ÕÅÉZèâ/
+ö]Ûï·þì
¶L°á»ó8þ"hóò1lÞóÄÞÿ¸:`®/^0¦W{+1:Ñ®+ãGáhÔårnc7=CÆïÃÑÜêml¤É°ûbÃax6©fb2_Kðm±Lë±ÙýÖ±ûÞê׶ßw7ÅeÁÒYSJ`¤îÌ]·µ[gG-ØjùsBßo
+¬X3qxn#Â#s°PðÕN^ʪpròªS¼V¬âS¾´ÀOÓ$.è6Ùtk{E ϳ¸ Õ`pQ\ðï?Â"ÂØéÛÐFxà?ÌÑ=Y}Túüøï¥ÅDrjsÕ´Ì<9Â7ü佧àî®Ü·*^½Tf¼³½Ê7V»åõü| ²¥
+¢?¶×^lÏäê÷Yµ«Tã4|c?¿û»
+¹éµÆcvO¸ä)
+ãfº`W@ÆÞó@òò¬%ûŬx
?ÞÉn<R#°!EðX|ËgM at HÓ®/À6¸[îv+¤Ö/ç8a¨k¥·r 0øf¤§7¶
+D#ùpû¾NßÎöeºÀÞb¾LCp>+pM}2ÑL ÜG¿w?j6iÑ`áBÃQüEXå
+{²¥(9â¿è¬Qhñ_víùñg/<kCí7é¥tvZÙÀè£ïUMBÎòß:Û5`ãð£ºÅûEát!Q
+¥Ë©¼ OÝß<Ò0a´´ó¬Sá@Å,ëÚ|ÁWÚqQ8fµò¨Å!AÇE.¸ÀVÎ*þBý¢øD×·{ÿ"leÎBK¹}4e0.ü8z]¨ü÷bùÜÅçæ|ÂîÊB ¨¿(ìÏ©]ÑkýEÇvp{B)À?ÿæÙ5ªS;«n¥~ñ쥹[Y´ûNï
+ÐB¥ëÞþ3üýñÿ¹Y'h%ëìc,×ßØÚáI%N. stR1Äû]9¸»Z$ÚoidbÊ÷Ü!BdF«å¬£³·×TRºè>X±îóãûì8{»ûÒd¶ÓyÁ6¦Ûe
¢úUÂÃõc/iж&¢ÛÔãÍNb*fê¥Àvttr¸5ÑØ1óк¯ò
+uµr¹Þ5ª.ÀéÈ@÷è±ÞÞ0b
+´y× ¯Fb3z#^l"\jé9Bl´æKAÓ"ƾ<{ã®aT!bݧsëLÝøE{(æìÓþö
+{YE+rÀ=ÈH¥OÚ»Zùýp»ÄÆê,Ü9àÃaÐj¾Î#z*7ÀÑHÉ!85YðØpãvѸ]ØçÁ¡ÄìGÑ;6¿ÊËÞÅìW÷E1Ô×z¸OÍnºµwËØÈßd<`
+2cÚlÌ÷¹Hì¨ Úy⯡¸Vm°Pyç¼P~àÛöÚ
+
+«¾xU C3TÙÉç{SÅ6ß®¬Ü&b·
+ݺæKÀ$ÁòV¨6E°]=0¢7õæ³rØ»cóì8ö@«è»
+æ¬×VM9|ÛsuWRó®²oõJÂæ¶Üâv¨[§f}½M
:î
+ï ³ÊpR2¶tx©ÚHK{G G
+w¤ûfxøÀ÷M±à
+Õ ó÷µ&ré ½l¶9YôK½:2}làä
¾ k3@ÅD½DsÒ½¾Å°ÅÌ bª.ó
¯Åpñcx«äôðùÚÃgnàBæaÂ3-î AÄÒ]Áqßîê767¨ÝMÉD7%|+ö4#©¢¸
+
+pæ§]Gv¦ÁÌ;ÇíÒ]ý&â,gï0`0Îâ¸b]èê7Þ¡î8×ôÞÒ$Ü·ií Ô㺻9EfýáÛfo]; Yù¼è%Ö§m&Ïì%|ò
¹Æe¢³+¬Ø<»Ü÷!R¨&º¦Ä$q¦y,!Pi¨¨
+Ip¦¬¤Nñ»á¾Fp9Ô³£Pi UûÚGö$Ü«pØ|_qÐÜtðL¼ÄnþæsA&ûô]
+7a6hyÎ:Ø;iW´`ó82,ú`¤?he'Ìd³s¿v=ÔªÈô»uD¦Å9fZ¸/~ß8;ÊCs»uÈíA¨Uöö.hcÆÐÙYÉÀD±´Ákuë²-J+4ø+_"]¹A2æ¾(]qã:Ì9o!G×¢4míª}3x[Xµ½kÖÏmî|×eQÒM6P1°fi¢göÁóÑHNf¾=ÁÜIx4¼iS/fJþC'>6½íîÉë<¯»Ö®y/4{+Y¤4ÆÔB¥z7Wo
ò&í§UmÌ¿sgI_/%ÇÄ·ÓïL£6Ú»!±àµ:`×¾ãyÏh
+T"OÄLë§X» yD°B²
ÕÊfÙäíÞÒWÓ½ì»QkVuË
Àm¨¢µe¡ý®K®ÚìºB#I$gU¨ôûÐuÍÆL»W_tþ¼îbÿûZ·Îh!Û¡M×
Íé<k¿Oìxl1ÚÖXÝ·PL6k:µ² Âm!b²ðÐËeÔJ·ó7<SÁ¥ éè;"&ÏÁUãÎîòl>ÇtuL\bÌ'®·ÏiðhC%×ôò.ÁéÒ\1_X:Í+ðÕP±ÞüàÎsô[¼ÌØÙ¾,hñ´ñr1®0]nªÈ'
+¿{ߪD^ãØNÖV1Å>-xÝPëm])n±*IΩªqÜÅÖ³+Àÿ<¤ºÎêÎnßØñBT*óm»ETØÖÂoÓj]z41ÿÇÍ2
`Ëñ æ~°-ÄpòhÇ}!æGA!=µ¶DD·.Zwt+Óm¾7e8IqaÅZw]æoòpoÎüRb´Kcq1&_jN±]¾Âð.M^ªß¶÷>ÂbÞ½Ê˯:è©°ìfÀ"±0
~õp)ÛikÝy¼X4I«ÑEñ kÌIa|B¿\ìQù8^z-تå
+Ï!pYËZ°Á¶p)ç3ÃBZ ¹Ä~@MFPþÇÁ6ú°ûöÏÙ«Tä.ͤûPàs]Þ¹¨©Ó3msÄ%u/¶@Z
+Û«'
+¼f_{é!%§'À9®3øÜqí¿V>ïÞ´K
+A.*½\¶¸QáKòéoãìåÙog_ýúüÅýëÛëÛ?ï®îOß:ùìôüÍÃýíÝï§ó7ï®>Þ¼üps÷öÇ«wß¿zvúÚüðK~züxÃEßáï,ÐiÆùùNï%dSYJ£þàÌf±ÉÒ¥5Ìdw¤'Ïì :ÞIæà¿ ÆkbÜS
+]¨Æ9Þí²N^=p¡ ÄÏZC·ÑÚ
+
+ýÁØ
+=À<@Åi«¼Á²9°#¹$ùøè*ѤSs
+&×}Qà¾Â&MZExÒ,FÙ½PDëZË@hÄÒîràÐà8¬9XF6¸£»¾Àp»1xd½O¸ë_¹
+\½i-¨0 7f[1z½)Ð{V`«r-_£
+3°¡+/
+<X¬YìkØôó÷¶å
+ÒaXô0M?ÃvÓYëÐï/ÌAɲRmO/ËÔ}ÿ¡*Á{¸¹<¼M±Xd æQ.Â1µkK±á4¬¸Ë½P^]%:a¡*®ÞÃxf¹pÐÑw9ÎIеja1³MUp"bÂP×á¸êödÑ,vÕu8.ðf!nò^o.7
+SZ0^Å/dÃÚH:¯ù&9+ÊfW¡³*J̯åI·á][+Áìm³½L°ÃëbYBhpîa%èÂr¯ònçÂ
!.®m£Ð
¥`¨VéÇÂ%@îe>`[6ÌÝ Ù°Ñ_bT9+ÃÜrUÅ
+pWÙ0è£IÀÜ ¢í¼CÑÇ×ÒJY>c$ÚFÜÜb ×zy?06 CõjYkÐÔ@>CèhZè½ÁÖ×üuokÅãQB#É¡®ðTÒp`»¶ðI°=éLes©©)¼¾a«·ÀÇæK¸BWµ6Ú
ë¤[iªï/&cl¦ámOo˵p§ØdLéè"l÷l¢NÇÚ½åÏhRàØrt¨$m½vJMÓ¨\gF:õªµ9
+Pú17À
+égFËÿ>¦Øáãå{w¸òZ_0.éâßû¹îþ´ÇÂR´»g
+_Rjî;+zݽ¦ûê"{úÀs .ûB¾`ëÿÐØ2ýÂlEm¢e+ÚÚm¯áJ`Â~½>¾n-´}µczî-õo@ª}¹\:$ãON[°mJB×ßî=¹×^qïá³f{=8½áýtüõƼ¥îô!/Ù¬$fÑùÖ»ÅeºJjnLn_ü'¼¡ìS*5}Û¤,WQ,6ÒÔY
+VOÞ!«~9çt¦ÊâQ
+dBاwÿ%p~çp5d~õª¨!ÂlÀ;CÈnd¯¥Å]:@¥h ÙT&
+!¦^ÇQ¹È)mL.,NBÿz|»Wd?zÅwìçù;ýÄk÷ ?
+N+£ñx¸á%ü^+ÂÕÐdu×ZÍäìÉüêÿíaõ¼õx£õ·J"Î7¸%vëÿ_o®]ÑJ7âÄÜÞFÿYÓÄÄP¿ÆUó}¸u»âÔYy¬²9°ps+áxÖÈèvNã
+c@Ķ
ó2
++áÙýv f¡öJâau¯x£0Tòp
=sÉ$¶h»Ys_S.¦h¡`µ}tÝRó´¥qÙ0ÆVµ=ÞÔMèS}@ìki8æQû¨õÐÜ¡ÿWM<×é³¢P%½UUF 3oo±ø@ô³¿
+endstream
+endobj
+102 0 obj 23623
+endobj
+103 0 obj<</Length 102 0 R/Filter[/FlateDecode]>>stream
+Hd1nf9Oà;øû R¢DÅN7^`b&óo,>»4º?è×£DªX|t¯ýéºçslÝÏsϳö=×£jûóû#ð~¶×Úõì«+×ÚãkåZ}ÎúBõ_ðëxÛx ×ê]·vµ-F(~, =óJG`Ï8WïGÅ=×ês§2¬±Î}á8
+¯3`ÝNl£7<Â~Îj+Ï#óF ½
ÝÆεã±ÅÏc¦KC7~?ð~ñ͵îÏÞfüÔ©ï'òæ~5löG77Ôe¬G9Íp\±I8Ö\µÂÓ$pk7?vfe6 Ê!ÃGêWF{n èÏRp?î¸à2`Çr'7Ð{-2¹Á>¥!6~6È4gÍv|IW̲PßXêYøþøóc|G×ò9>ÿâ÷Ì]
¹ñÿÏ¿
+·QxÚ]}ÔQGÅ»_Xu%8ë=©7=·5Æc«®13ÇÿuÒÅ*h62hº¢Þì"lË
+ÎçB»ú±Ä±Æ|±(G«¢øÆm.#yí
+äº2·¥ï
+ÙhÏ®û^¸´%
+[ª,ïêM«{
@øyªTB³Ù¸$µ
+{*³°Þ`@Å¿ºùO[Ô¶xÊö
+5(à ðÂÆYr-G«ÜðÕ¥!мß
+óöѽ&ÜnO;Ó]üÃgJ®
/Ú/c{ÎU»Be÷ÖZÛçBÚNŲzãµí
Uq¸ö¬µ¸©8æ\ësßÚöà/¬õ¡+ìXÖU@óZ*
+³ÊûW=YDßLÕË}Q(2ΡK5®å02õÅÊìg:gÕÐmW0®¡SswàXâ*õþÀFLîF-ÿ)¾ôíáü8¨æPTùs(C(õ}wY3Ï7£oë°Z \fª²v;(ÀîñË&Îdç#´[¹FyGV¾ÁUìÕ²RF!\)áA·"»P壱q²ò´¡O×òÁcWÑ*¬³!àì#«~éßtóµ
¥0zRîÃV±Ð°ôÔ³iÀ)§*!Z·jÈK
+W¦%ûâlWn|û+f?]w%|¯nabêé4Îzicíym¾\ëÑn\(ázßÑlO¸|B¨¬¡5£CgÍR}m´÷´¥X`oqi¸¯ÌbàH]m:«0=O×Qµ)Lk÷@ÚĹ59FÒË6ÌÛqotæZÛ`§ýÀÀNÐòÉ'¤ÙK\8_]×iw1Ýf(ÈÐòaóÓ^õ>íÆL[ÿ맴íhCû `3_À*³>vB(yRÝö
+_p®ÅàxÀ¥Êå¡.ãõ}¨*Ü,¿?ºm%Þ½A§
+ÑÜ:
+R÷jÛr`÷ÒÀÞÓ ÔÐhs2G!¦¾ø}jUÒ#¹`Y¬~<./Ð*¤³¿¼6×ÊPãZAq«aª6911áç½>&ݱÁý²yõ÷£3u^oùu±øZ
+·ë¯²úâÐèóðÅq`À«Àï8
+`@«rNx¶ñ
+l-vÿS®^-õ±ð o]í*â??Æç¨.(ãó/î(³2«úïÄþæUº?ä×oºÍ=Þ£&¬ ýëëãÿð¬@ýmPpÕ+ÍOBOÉËÉë´YÊTW².í® (àòoþ3 F²ÜvËÔ <ztAÀY»a=·Bͼ8ìR&«¤^3[_ÁEÃ!"0nÖkØp¿U%)ºù)¿?wXÙÌâÆŤiª]å½ÙQ½
+ÕVÆ&+ñG
+¾¶T)ª1¹dy
+M¹¯qT
+;z°%MÉFýxüá°ïÐÞíÕ^Ðåoa2H
Íð<?¿¾5§mì ²¦ZÛ?åB¾µ
+ãòm¼àÄÑ¿þ)ÿ3Nî¸TÜ)Ï澧!ÖÎqºÜw vÔ¨}ñÃô¼¥à3,Dÿì=ËÅ´g³¥·mÉ[ü¾*8xÖÿiÂÊ-0Ýc^íjè·ø
+ºÆªyúÔßJÁ-Àôs{+9ÌBKðêh÷\ô¥÷ !ÍÏy¹£¾¶H$Ï
+ñ»"Ñ;²1þVVmz¡?²ê¬HàUiaǵóìsU
+Çj`oPU
+
+³×Æsû'ØNF\íü6¸t*²By]¤EEl°g[E!Ù+E &¥Zs6Sz½ÅìUPæ9B|Òüõ¦KZùqÅ,VTâé Llieï|Åï¾å$1óútÓüí6ÊvÏóá{í¿¼Ùê0þE
+Í'QÛ|ïopµbQ£
lc©¯×ï}ìÏóõïO¤´FÉWpVë¦/ù|¢Kp¾ïÔaûh=^fK- çFЫìà3Úu;bå×kvµv©YZ
+
+b&§Üópî[;O×·ö¬ÚÖ©{Ýéä :tå×ã@d/Â%!¨;GSï[éÚ=1fCK/àt¼¶
+'êóxiCpæ&ê½3ê÷!p¸\7H8¥0¨QkÍwîÝíy P0[çjÐ6Í}tY<t¥¥wjb+mõ墪3¡
+ q«h5cW2R
+ós>$fÏÔêÉyªP¸
+]e¿ÚÕWÆ68ÐâôþÚiz!æÖúÖçVgµvO§î¦ÕeÚïê¢6f}ÌÔ±PËäyå?Ô»
+Qvy©k¥1Orc$~r{vX
\»z2³åHLg~Ïõ
ª~dØM
+&cÞW¢9Ò'ÅÙz°æPÿiíZáO¸iË0tiz)álu+Wèb¬RZ.)í9 V' #ë
+hÌY°¯R£òÜÕÉÈ×zHÉú©,tûSHϱ·AÑïi³À]
+ËWµRÊæ>ïÅ©¥]ÇËã|¸¥Kñ!öéø²kRúëÚ¸¨àpXÝA®m£ÍÐü<ú@3j]KÁ`ë÷û½!o¥6¨)Æö0>¸rÙX l¨µæàþû_í«ý5Ù¿ý«}ýç(´nêÿ
+>n°ÆuQ#ÝøA¥æÊbd;ÔEuÜkéÈ|KsR×51_ïñÎhâf9a;
+ÔVæ¹Ü@6:a>zîª#´E dU]¢r-O¶ß}W"[(Ãå±ÛÝ#xkÚ ¥õ![§7y÷3g18ÇýüLÀýϯêºt±ø*}tU»Êî»Úõ¼«Ú£60*ÀtúGêlÀï´¸¤Ieàß«xtæ*pV-¢cZ6Ù FæIÐÊ rÃÎã¡¿µsè=¨oÕ8(%h責à¤AM¸8{à(b-¦Ø-ÐcF<³n
+<Í?ZÛ%}íuÀ³ÿ±Á·ÌZ§!
M»PQ+¯%}1´ï.«Ø·òp>5àÀo_ߦzÇÈAIg
+zùÌ,tàzÊ[¡pù ÒUØ¥Ãúg~µ6ç·¼x$^À§èLÐÒòÿÑZÕp&/Ss$¡=üVHmÕS!ZËNfoåÀn¸é,Íÿòbg¸(³¼z"À¥Êv H çj©ÓhĶ1ݾµÖÒ¸bíÖñj'âÑd·ó¶ÝÉtcè[ÛÎ Øv÷Qß2ØxÒû@Wx¢L,u¬¦ßcò¬:VJ(WR**FGKaͤw¹^ëÞȤûr³·£Ù¯Ô¾ðø1-=³é¯#h²õb²¤¶§´R!'"íkÈç¦lîJ?öÄDí¼Û^:ýyJ ËàeXhÞW;îiìëü>/ÍàÊ÷©*j>J§¬q9©QàÏÕ`=±u®ã£nhÚ¬ÑúØhÂQN
+ïG'(i¥$ËÞo.¤
+ÐÒIý1måYdñV+;:r]{{»LÕ ç&ÂÔ2
Ç`ËJ7J÷£iqZ¯oÏÒu®¦¢§ö(áú%a#KZï©p¢Ñ\àí§zòD«ÃÈÿèðkuÁs&×èCðùQÿ,j0\î|ü
+ ø²¿
wÑú¦Ä_vì1¸Â(~ÅvhWkã({ÁOúsF''©ÄBæåf;»ø\ÁîW¹§÷9u\<¤'øz`
+NÑâYÌúÙÎÖ¹bð
+v Ê£jW'Õ·³ÔlÜÖz"ºx
¼u°å+5ÞvZ¥³kÕ9uÕC°ïwT\ ª;Õfõà`ê¥c À£f#f¶«ÔB
+°kVàUàd lP»¶ \b«Ãû$ìèjÙwåtYf-ÀÆyìðÈBî!\Ä°Glá)MDÏc¬tvO½;ò
+KT¨ËT^.¥'x¡G;ú0E/:Ad@â`[ìåe(# µIa ôB,A³¡w«¦w
+\ý(úy]
+©ÞK£x¤i
+jÏk¡Ùr9Cpµ1³v½æ×Ê¥xÌLLáعAÏò
+qfÐmLjÞá%á|/ËÜL! &Í£¯¬¶þΡM,Á2kV³ðk®-ufs´KG{z\:«¯£qÉh
mü9×neÍm ßÞ³¼Áã¯)Jø %7SçfuòK[i\êª ÕLÃyæ¶xø袩Ð4#¨¥
+xçàG¶¥emg
+Û;8"rW= £ºÈÏÝ@°G!w)yVaZÍOô47¢}\)"4±2[#PÒ2ù»,%¥ªÕhDPÞ¼[Ïç:îÔf;
+E¿Á9BFh-3EûkàAhå$qS4S»pÙ½¬Á%¯¯ê~¯¾Ne@ª³&(Ö¤èZçl·ZûÈ9lX2cÇìõ!
+¬¸àsö*ûIoZ*7V¢Éd)y
+Ð`³r]ã`^ ëaþ$Øõ¬3åìÓ2O
+pOpá«Gö-÷s1êwà(³xì±_P\i)Jo+Eó®ÔÝû<6nZkªÖýU×Åvdkë*úè É}EP©j
+>Ó*»ç]µSÓè® ®ÁzmY;µÒ:r×Òì±Ö%©Ü³6Î@ñ¼n¯ËiÝGðéÚù2]'׶Zæ
+0XZsòûU.û·#ÃÁ1rèí }!ôhÛvüð1 Çæ£ÐgÔV6*¥ Æ3"ó/
+زpÈo¹A9àªÊØ6µ=Ày×X0ø,gèÛV(®Ø
+Ò×ënãÓéÚÁA·Ú(=O·EÌ\!6F°ïë\[=²¯ÉmKºï;èmÿØaÑB!fõ¢ 0»ÿùï@ÑXáæĵ#Ð=Ã= ÂY¼íq»o+F³N£kõPº¸¢ÔÅ°|â|fv[üîòYµó8øÜw¸
+ ÿ¬¬ãM!³
+âDEbÙEà·OuWõ§+HQ;g¾îê_¡È;I·â4'¬unûÖ¥ÙpJ «näáî
+yÑP\{fÿãøPwmÒ:xÈ5üCv\wF÷äF®0!®«îZ;V$\¨%>¿(èÖýæ20B¶Ñâïq_,êuj¥©ª~\WwÇ'â¯Âu±m³¸ÚZÁÝG2|G(ì±ApXìknÆKGᯮåoÚ'-wÊ}Æ4«e¿/z1C %øúkÉ .åÞR·è4üèC?´ÛhèwîböF
+TàÏáÑĦ?ì"ìus¨£Ýѹo¹(ÒÒ§|¼¦é%<ľÅ{êÅí@3æKïÂÒt;ÅxhiL®ø3mra¬Â,»©±ººk_0H Ü@=lB/¾¥EßRÿamöjÏ¿*Ç"î ¦};¦×ÂkeÁÁJø×¹×é]³ £wS¾öEñ l·4«ö
ãn-¬ÓâÕÐåBÝ^7-
+H&+ÇÀ:Ñ4ÅÛ| Þ5¬±8ê
82Öº».¹övDäZ×ÖJó\A
+±ÖרÃâ{¨JKEº/½ccßñyVèðþå*Ä(
.öIù
+áãueÖEîèyOTU¨è¤nùlÓʸé'`¸h#*¬y'VEÈíöÅGë;RÒÞCN\}²Ç|mé2ÍÜÅVs«Ï#Ù˽ÏÆ<Iåè?Ø¡ÊPc¶AÄëdBÀªè
+²MFì:w t×ê^ _£/[µÕß·&þDBt¦ZK_v¶Ýl9Ö:{RÄ®z4CûͨQt%-ÃÙ$[½jÑp¿ø1ÿû̬ ÐÁmOáG-IQoÀvx~ëd4QÍ[
¶GP¯ÌC¨ÄúòOË|EÆô¢akßí¹iG¨¤xì }áÕ@ñø¦3@$Ç»um{NÄtW6I·pgóÌ6¶E qm):ÂÉ(ã3¨^¶Tï!Bzötk4=È]ÖØËh\ÈS0«)î½.{Þ¤{Njaå¸ÒúßjRÎÛ!ÓñðwóÅÓñx88EPÃOáÒÆÖZfÚ"-±Ý
+¿ÝÛQKDååÄïʹtó¡é#4ݤ¡°núsôÙÈÚ_&¸ÐÇIp£M$3iw6Ix7ÁÜla!^nº¯-
A
+ÿRú¾V¦Îñï'rOo[_VFxÿMIptัH¦ÄüÊ
+ç
+|û&ÑxS"Fá]±gW ãGC´
+,Ѭ"àAáÈÅ¥í¸N;÷á¥ËÍPÍãýÚ7ú
+ò9AlJ
(ß32a8¯
+\ßð8Ú¿4y÷T -4ëóO'Ü{¿EhÁÕ9;=<ÏÓ,.#Dì{Óä³iY±L>´r³;b%¹Ù'rIZKH[,EÞÊeë°ûÄCöÇ/yý=.Þ³ÍÅ:Ál)VÔõú¸DøÙMs¨0~¸ÜP~®®ï:.ÚÜ÷µuÁÇ `RyØ3((Ó-C箺BÈvFÊ+AÊ
+SÂjIk ËI*=¬w"
wi¥~]Òj¸·´>`:K¦=aÖ|Õ ´}fçï/p0aÄu_MéI÷´â>3ŵôϵ?çËÊrÆÊY¸bÑOôÐe
+ÐÚ |&´©êSI_p3Â5bbÄàsó+dIÃ?©Ã3:9ëÈYì&fÚ2^ßuiÖ;OÔ¢|,Ú÷2½U°¡¯]N7a<2Üuñm3±MsÚíH½ñ¾fÍc¤8ÏkñÈVNI;QîÙ¯Û±²ìzMMÜGbÔSs]¸2\4c×Z<I=2êåq ÷ÕäõGê-yt0ɸ¸ñÉßÉlBÈØ (!µCìæü*IFÝ'ØIëIF at 9gôs¢Â &\u¡Í£eáq´:¤æÞDñ»ÖÖ¸^Ù¦³¨Ì`¶aÄÝݺMîP}àÙÚEëÂEGpVà1b ÏE|Ù»ÄV!®¢KǶkáµhrr6£ßÒÚ±Â!§
+{ºb:I
mâHÌéä|¾Xæ|(|ïXoÚ Kdíºè|SÑ,sÈmt«æÙ`£
XD|¶Ê¹6X®@Çÿî 'SLó¨µu×Ü+-yÔ;á(áÿ¼!6¹-ªnk)¦¾VF®æÕwi5²k;GËÞ[}
+hÓ0Å9u«ööP!öEÝ¡PO/M3ÀŲ§Do6À³EXhʼ£
+UK3V?Qñ¾A)ya¥Lnܸazü±yñ:á˵"u9JKÔßñÃ_yZL8þäÃ`ä¢J~xu°B´âÊøC²¶{H4F('â
+6ÃXà·?5á,çêú³ª2##¹vr85ô®©êijMÚáeì!l&Ön,¬¥×àtǨھ[ ,¹(¿
©¢Wþ¾QCcØH½)ë·²¿Û5Î|Ní@W¸wëöní5l
Î
0Ô
+Fcó@Xkøf"¡h°»³ x}Ìz6<¸¶Æ\
+¼ja[?S/ÚGé=à<°ñD4,¥ÅZ/ô¦:×Ôz¾×À>Eݯ°8aJîF7;}Àmn8² a¦ã÷Ûàh
µi±)U6ëlª×À9¿Zk5áîni²pqT¾*ͬlX§a'ìsk×#Î{x}ÜËwkÑSC½=ìýÚsKG=0yÖ¹S¡z,9ëÝÚpí¡¸±7 at U
+^ºF%`å 9e
+S¸é¹&j®jZì,Z®ÌÐç6PzÃl¤r~¦,¼lÂðÜ´2ÇåK4]ö1ÈUt«±Á<©h#O¶×̦á-aÅ´í|ÒÎañ¦ÉÚM2m¯Áƨv áÛzSa%ºp{b
+&¢ºôÖ(û®Í`
+׬¦â8E©¹r¹U!&?ó¦Êð@Ìqh·5Ë<=ZÁ¾ ô¹ä
+ÓH%Ñ$L
+cª¦
+1#$ߨùaÆú
+®Üɪï×ÐD%º_óv=sèûÖãÙýZô·ÚZhx©gßÈX]_Û°SûFA
+iÑÉ`ã²>fSh©Ê³lþnpÙî0¹:âÅåèÍ´"{¿ií±6î×ÜÍfF.zßµNmð1ÔøZÌ//6£ØøZJêFËÞ°ÁØy¨Æ+òoZl«Äþ
+G[
+³r4Äg1!¨óóÌ1Ó>U¿¸¼vðßsôùÕL>pÙn«
Ò¬õ"wÞJº:<A
+«â
+Ø,{_*ë|®Æ#XèãÇ52|Å4ÓfÎ,Á\¥këÈYêo^dVn£/ÝvL8ªAA|Jp¸C[c½t[À8]öâ6ÞþZå92y®¹ãû.k=þ-`¼á8÷r·¶¢ÓK4i¢í£©é ,õj+ [S ±õ¾kïm
`ãQ
+Æ@¥*#÷>pzjc^-r4¯RöLhokEÖBy1vEeñç
+7u5pÉ
eJ¹
+zB
+&רWmà
+x=ÃÚÁ4DîÜíêæGHñÅÔÌÓ5mB©çÅ¡cÉÇWu¶V9kí½i²»ö"Çnj»ù%«õOÖ=68w
+ØâpHÁ÷kaÙ+Ïw6[áêfõ¶fùÂ$@WrlÀ®b°ÎzÃþ WkÑ4¨ÖYefô*ErÏèXФ
+±ÊÄ"}ë1 7Yȱ=ÌÖ8ä½MÅý×ýZÔ%JpIÎ
+OÀܵ7.ë8CÖ)-ë\½]ÖµDë˹*k¬§ò®ú9LrJ=Ë6yÕ!µfaKÉ)DÎòÍÚèDOs&ã-~ߪ?!z¿`vaм
+Èá¡sSÕú
=Ü;Æô:ÀÊÙgÌb±ný¬QµÁäl`ºÎÜ
+)í;xÕ D¹A²NÂÔ+7:~ÃL|ñ¶ß[
+ã*íP;ääÓÁÝZ;îâ%¶#éI`~¹Q¢«z«`r÷¶%éy÷PjpÖS9yO´v¤¿2&6ÊÌ÷±,-'ËèI
+÷;xÕk®ýjMDI
1ñBJ=TÞ°fÍ:5@{µö¥»lV×ME`¸ðwk!mê^ZQjT:È
+¬ÓtÝLæ57ÒWýÿ
+]rhãjRXÓÊ
+_Ñ15Âüí¬úVJYK+sÓ!Ʀ¦<vLwh¾dn
+}v¤i3xäxæ×Xê.ÁçÐuØfnÙÌ.(NXõ4P¿pi(ÔçóüíÜ5J«l}y¼ÔÛ¦³´OCÁù>
+¯ßÞQoøYóYÆ
+ª¡Åd
¥Þs
+ö²Âzëy<)o¨¡Eg 84
+v«>mÞTo#J)gò³hgò;ÈhÂê&p¹þÇ0§LòýVÜ'=
+S¶ta¿Üä¿Í+Àêªm]±n92°L`ÏÂ,ç^
+Áêéõ~l¼-çÖßC+àdê4õ*§ÅÔÒM2+èÏ¿?ÞÖÕ÷
+Ã5ƸçÎAnæ¯'C
Qö,©Û<1(¦Âª0¬[©á5¼þ¢+;idäv
+£>wi¢÷(£É¬ÉãõZg¼oçÞ_Åî7g V?À9ö·UŲäÛiCþ²¶²Sú¾æÎA.
+ìÃtÖ´ËKþ S+ààÉÀKc¨Iwà³Zµr°xô,À»öuf°3X\Ö/4ncéW|ÑÍbÑ'ÓE
+c£Î
+°Íf,À î7©ÇnѾ1|Nmí4&ÆAyÀ¾¿EèMz`ïAÜ
+à²4ðµé£ü
+A¶(Á^#ÂZ;µñ
+0ç#Vki`°5¢¾_*0+0÷ų¦I`ݳu
+íÝ>O~#í*åì-°®.Óu|õ½=ýëéOÿüîûOÿöñíóÇß~ýùÓÿÿè%øko¿ûÇçOý÷ó7?üðýÛÛùûoöØoÿȿ⿧òF^xRÅ?0*ÿQU«¢¸C°ñ/k¥÷jí
+"ÊKT
+ØÙp9ÙÍô0;äJbÌåÛ#]eëØB^6Ë®ÄP
+Ìc9ªXÃ: 6k°Ú®ù¥½/Ù
,ÜÙ&ß~Á]ÖDxú½spç½:%¸Wh\¨/tCRxä`¿t=q¬uØB
+vPtçoU^¡÷x3xÅ <á´n÷Z£èÑù³è÷ìªß"ô$ÍmÕ¸yLVål5ÄhËDCÛÍà¿ïwÃ&8S::¼÷¡¦ÙØv¿sÐjËÛnÁ}Í^RÆWé5HiÄDÕ+: Ò
ó¸3ýcVû=×I¹å<~L
+ÇVWJ¿ü1±¹õ ÞwÁ³»2úÙA5'Àys
+X]Íi`S#wÿ}ªß²²GªDôÖÜj£ÓF°¸<rçÖÅÔR øÔø\×ÍQ^¤*"è´V»ú): Û]l
+ÅþñÔ/hÜæ`¸}¸7ëc>A5P,qwR×ÜXt=!FüCø*6êw¶Ê
+yÙý
+mPxÛÓÚ¬ªîü¸ücÖ2'¦â'ÅGßÀ¹²¡þ'¿W}nÕ)¢
+Jÿ~/³0Èb¯òsçÐ÷ôq=Ep@~¿?¾åÈ£6Å6
+ìDg°nç¾Í§ÓxÄÛñgx$l¡)õ½ßGÞw*|¸åçÛ%HTNz¶èQÝ\Í7se?«ÐT
+¤ó?·ûãÞ§Îô.ãwÎèò8U3ÍZèE°äÑL¹k5îä¿© ú|S[Hùg±ü· =nc\¯rÐÍ
+oà6µ{'±
+¯WÏ·!¦å{BLå$\ÏO*·öð=ø³ÖÀ´Y{Ñp©\X>EûèÔ!åæ§ÊºùÎÖ¾j#ýØ>´Þ¶×å¥Ïô¾uï|¦ÃJá±%
+º² Ó[ÏiÙFOÙÒéº"(ÎHðE<h)=Ã.ë½6è ÜxìzXú×¹ÙNå¥èZ{³~Å*EÉØ3x
+XNÙüT9-&¬ýõjÙë8_À¸T`Aó~ØÈB¢6A$°D^ -Û-É (úûTOWÍ=dâ
r¾==ÓÕUËÝV.x»§%ÀlâP
+ºâºÁsâ ¦u¢ìä
+Á#ÀRüZlñÖýûXͤoÇÐbyÈViïGPÆKCuEõIV²"ù°FÜ=Ëc>
+rwÂ&Ìs¥®Ý KkÞ1k=Z*õ
+9èj¤ðS©¨^« úL\(¿+M·9I¯ö-ñ(ÖDs
+ XFP¹èÄ×T½"ÐOÏ
+ÎUÖÔR?WLJbÃÞC
+eÍ:(¥heåH´¬ëÍÅOOÞ>qwÿêöæþöãë»/§¯]>C;ç|zzþúþîöÃϧË/_ÜÜ|zÿÝÇûk}zú
+ßàÏE8áe´,âÐÈãôë
ßÚ?¸dö{^»¸8ª7+Aù>guÜ>0=¢®ýüH-¢-¹aÔt{å®cãªýËg(Â/QB¦3æÁ´íÌ ÓÕ}:,AShn¤L0Ä3
+p¢Û¨¤Uga¤MÁMxÚ*¸à®ïS÷Ãté{&¹1kãoõ »1P=Äg¥tÛV±F¶4y¶ûÈv¦È¥¡=ìâÚÀ(úC
+±#?UÄcpö4
+$E;\¬&+§
+&c¾X>%JÒç£ÑZ÷k4ÇYOwúø§¸>Ⱦï$:%Æ©yôÅþ,U`>&pF5»Ján` ÕÀéC`¾Uum`®1Í´¹³£&æÙ
>HYÉzù-³Nb³ö E³ØåßJÑümu_
+.^öjËéFj)µ³k4×RjÏéú»X[`Zëå~flÙ)J-;;G@;ï»yÌàgT¸²ù(6n2j¾nwÞtê :éÐã|¬!Ê$cðP] ÄÈßÊÞg§ð-áÊ'Ö¶¬Øα¦2?3¶ÍÆ"5só>xiæ[ýçÀMçWw¶NÚ[íµzlÝ
×æ¥u¼=g
+DÓ
+óÚ£çp¨WxÒ¤¹gCn¬ Ü@§ÉUú¾/D^m?h)¨Æ¢¬ðàR±üÊÐëÐ4a:A;J¦á\ä&ê(વ[a÷ {RlrrÍFÃïZhÂÊveÎÛkº{ÌõO[M 8_GÈuW0 ÏÔ"xô¬Ø^µõ¦VC0m%UPÙÛðeeÚÉr¹·#aÑ=,W±Od
+Íõ8x6Ú¶â\ç8µì¤²Ü(è({âPë`_M-¶ÀÎegp.õ
+`IAç
+¡l0cae4MÂïÌÆ@£i©¦#«]âªi·QȸßÁUAuSõ06§
+"
+ÅØj\ëL,/æpò&+SMìû\ay
+ÆÃ*ðýmÏsC±l(ͽé\ôûÁÉ`=äÐi>fî{¾JÝæ:È`²ÿ¤Y)&Ü3³@
+Ú±-iìZkóa-]ÁyD+î^ bÎâú·¾{EPÔÔà"¯Gi±¸7°FîÀÖ¢Ú
+³\©KÞ¶.lò¶×
+(ÿÆJc&ª¯¹Ù ªéa,è¬!i1oc9rm
+Zuk3ç<)«bûîKkYXÝ?¿d
+Á¤À¸%\ÅdtÅoíç!l)ä Zc;zƺ÷(
+±#øF7pLªñ,^)AÔ±eÇ69°c]íiW
+ùÙ¬Gפ#äëÏ:F"X²o(û©!ããU?]<yûüÅÝý«ÛûۮᄒtùØ^ÂÓÓó×÷w·~>]¾|ùâææÓûï>Þ_[ìÓÓWü. üÓOÿA~åXÍVªOÛ{²~#.¼òáÖU?æéôE3Çì±ÃåoÔ~Në¹3±6ú&\DZzë8ÛÃÙÚÁ1ÅY¡ûo Ú/<HÅ?¼gôl=ñC¨tN%MHYmt8DWVç8{Vk¦(þQ¿þ˹|qxýËõïï^þöîÃÿ¼¾ÿåo¯ò÷?ùþËïïü/\3nxýyóÅîüôæÇvº|zzóüßÿ[ë¿â¯¿|Â_áôõ÷Ãb%ôÉÛg¶ê¿TW»%;ûý)¿±ãI'Þª'¾é~ÿ¸{²SÂÆpò&ñý_°`FÈ`Å0èy°£WõÜh;¿ã4^Ç»!N?lY~ÄÐƨF§/A¬ú&fÚtëXqÍ é¬Å÷¼ß>ÃEËU6´`¸8sE7\4 [³pº£Ö3
+^.!1Wº(=ÀUV|ìr£ÁKgÛÙñ±1ÌíC^O|*$
`ÅØø5ãp]4)Z0´"Éq!y¹Q-ÃO£À%A¾²¡iÿÆil{kÖÛHbÖ<Ã÷q͵¸vë`nðM$\'\tªÒãwfà¨wòuÊÁX*Þ%{AÃôÑÊrEÎß
+«Å'[×U«PUa9ì
+7þu®8Ý«ª`®]
+µà²`uñ-x¶^£\¦«;å:2b~ÅÛ²*7c ÞscÁbLNõoQ0g}dÕ¢?î
+2ü"]_aV¢ðÁ}â4èrhÑ{1ø>ðºoní9ô;fõR?f^\¯ÚQÓEïN«Um»,ÓЧçþ ÎíãWn8E/3AÈtQµ,¬#O¶;ùÜ0¼`ðyN½Q½ø³Óà)¾QÔéDsÏuP#?¸ÏU»ì2Ö¯T/Ü´Z
+ß}þÅé£Y
+ûUû(ÀÑ[d®7¨ð
+iÝ·|Ú¹¨v×ÑXá»×:çÞh+txï+°}]cÊ
+/&»eM04-MñðÝJ ¼¹x;V¿pÝpeÉ.0
+ü u«RoTØuývzCó:ÃW;ì4XO"joÛïÇS9d_7P®OJãÓÑã·nÊY÷ð>³]p8¯^Cqþ»VRÑ?ÿè ÂóÃúuYD¿T]òìûÖ÷ÄVöVdïónc§ZxpI¢yW{æ¿QÍd.>o>k)1¬|VÄ
+PÞ^.#èb/çWl2¾Q ÄÔzÇD<]ëaØùA0ÀÙJ£Î8Ù©8(í8]M£=bAG¹àÇzϵ=Q T fþh¥Öùº¾O÷NKÜàëùy]Ã
+aëqѵ,_öyÃ}±ÎØï6©¢Pu
+0>#ª*.Iè×érAͤǼÑ?¯Rªtrg,µ¨gRÐòÔçVÇF|κD(`oe¿H>ݳAÕYÆ3hTSRëG
+*ç¬Â¤
+£Q#ij¡¦®ÏÔa ËÂÀçر2E
+¬. "»@£VyÆ]±.¬E.¨Ò(õ1ËÍ:%¤=AVGݯhès²l¡ÿZ4&Ð
tJÔIóudQ}Nd!ç£æ :÷K|ëa×*jª 3t+l:í}ª«(F ©bé=º`FÿUWbÐË2ÌJnv=*,*ô"ó%=,*ñà+ÏNå
+]{êNpÙ.<ÀÏuÚõAºQL}°¬|$´Õ _¯(°¦¦$%é¼`ÝéwkÕØI¯ D2wähÅéP¢þ gh1¥ôl W Ç
ÊeÆÝb²ÎÊ7íÕ³úxW÷ÑÒ*0RuSBù ÀÛLQ\{ÒGÜcÉÐ4ù×ûPÇý¥òY´ú ¦OÁ<ù{««0´OhÇ3ÚMÉû~JQʶõ?ÕÕÆÂNëצÎLêÜÿO°7ìe1!&ãÔÎ,·¡¼îßÏ©uÀiT»×Z»D¶
+ÄT ä?Éê:-véæ]mV·íé_[ìiXúêgÝëN.â5¨h
+SdfV¥½,.À±XÞá`bÎç
+JxòvOÐRkäñ§xU¤XùõXÿXfVÎçïi0£.Ô߯ìµåàNR/lWJ¾R÷]«BǸß.^Ù
ãüSÔRü6f w-efýéÍà
Ê®áFYiú3¾FM&OeûÆƦ@ózöl,i¸3®LÛ!p ÓjO=E ?÷-xþS]9Ã~½¨îpøQÍðLÐ ÿ÷å¼eAÀ
AEKk¼Ü8}d/´ï(¤ÕtÄé-¥Oج¢¹|©KPfh\õZû3
+§LÞîBò)Þ½º:$BÕ/·yÏçR®/´YnG¢E³XóuÈ×(|Ý
]÷¥´P¾ýuzh
+ò¡ÿpe½Js¯rúë]ògßfyõ¼ì²;=FqIp1°Á
+0¾1¾pó2©sÔ©XÿÒ,eÄenIÆè&
+o8kG=zqNz|$èA»!¼Yê"
+ežղä4Õ0kTÄ~ª=mÁî«(ËTÙ
+C;ÊË}iE²6ÉÝl}7!éYKÞ~NÈÈúiw
+
#ÃÑ6ë¦sé*ìðÀè³Z`½àà¬5ö?^Lw/ÞÏvD¯õØ°ü6eѸ¶út%ü?ÎÏæÌ~9ÑîYñ àÊéÛ¶+KÆCo KÍà
+\C ç̲+-P+véq:0¹Ó´}ª,RY¶ÍÈÌí>xÛÑFë@ì}cú&Æe$X¡Ä4X BËnËÊ5®®³ÙZÝ>
+`¨w ¤Ùý¸9,ìFy'®DïT{J,kav$Í`¸ª]0Ï$w´½2ö3¦ý/À
+endstream
+endobj
+104 0 obj 22436
+endobj
+105 0 obj<</Length 104 0 R/Filter[/FlateDecode]>>stream
+HlW;9<ÁÞ¡5§ ¾´åµÆPÄzruþM _mH^wâH<FÌ_ÿù׿ÿùË}ùcó+æä'"ü«Àa. Êã,òõ½oë£L^ö]~TË
+s³ÁXlí׾µzb×L}{<!«oï/¨
+Îàyõ8ÀþàÞ·|ÖÓt¹
?¡±¡å[
+tM|ýº·-\óÀZÎý+4)÷èYá\ »Ê^sßö¢?(Rg±X<yû¼
+_÷
oKÞæñL;¤°«Þà¸/´/È°<ì×4¡Â³?/ôØ `
í~>KÇ,Gù2¢¡Z&à¢Þ:~ÈÞÄ«o³Kߦ¥Ü \ÝâX(ú <Böõ÷ÅǪG¾93·1VÞ9¡fê-y T¢²UÏí*ýÀÅ#TGôûÆXÇ<ðAç@Gôí Òî2Op
u@!ü?ÚÄ|$¨ßØå#Û#ÖÇd·£pMíz°Hë\Ç+W(hÅl>Ê5Õë
>( U4¨|Ç5¢>¸¦]Þ·w{ÖíÁÚ±R¹aÄÑÎm=¶6¸àzwÒ}áBýËîMPUº¼Ä³£Áaö2a1íT´:à¯ì°tÙ|PÒöywXû<ø4¯Îð3;¿,Ì°¯u./îzáP¿ tÐ8¹ð
+16¿.côB¨ótöÚ]"` æÓÀº6ÇÇo~ÜveTc¦ÕBµ0'æ'
+fÖ´¨¼çOIìe¥vñãE,kpb÷Ç(î°
Ôq=¦£´&
+/lù#R.lÊ\ñ¨
LgJ þ#p »up jÔ·X*°,AddÏñ; üøÍÕ·ÍöÐÕ5¸-È®AE¸1æ_à§×@fÛ¥
+ämCÞ[D¶åHZ9ÌŨg"óÕógõ¤!Wáé*¡=`Ó:=&}TðLeJu
+¦kpBµ80|ësä(¯¾NÖ?$eXacÙk÷XËdµh®B³ßqoѼ)tðCë8_µ¤{û{c^M
{'RtkÉÙQÜVp©fÓDRÖn\`/pÉúà,E? %{h¦× Tt)\ñ¢ç×ÜÛn¾ünaÑ¥5P£ülÎòH:8
á2sO×õ¥«xfRdtŬÂ@Ú|'kRߥ(ñÐ{8¬
+úX?|Ö4:tlçÙ+B©oÞ±åwªªÍï¿%aÈkÃaTÛÿìÁS¶Î_µ'tø¨VDÕ9[Ëc¦ÑëÔpyÉcSnßÛ-¦]Û÷½?}¿;¬ÖAij \ÕÜ"Ýz+UÂü´yE!í.ììþ QNé1· #Ì-Ër¾ò@}Yj3¡äõ"A4ʦµÄÛ@cWj$®soyÀ£åyhaLõW iÕcJuPúQ¯A`jtnÛòA¹Ê¹í£n#ù¥¯ÔÒúu/¯¯ìQ;(yÿ_âñíS.¯åLF ÿó`°özøÄîe{ó,%Ó¹×kFÀçM ®ØË|$¼jʽêú,2iÛµocÁmª²ÕZø»Ï¯Z)VSÑÁÏ+íQ2¤¯8¤bÔ2ìf÷
+Bê
juD°ýIiw°Åª3ò.ìín¨¼±Æt6Ôí£okÛe®d8<® ¹k!"®éÛ-2¨PÏ[x«|®-¼Ë=Ôü¯ýÔKæ§@ãS ¨lswÈêGá;±Z"æa{÷(ì/mF²$Í·cNEçæ¨o˸T¹Ûå´ÙÍÅ5æV±Ý÷mÍkuê§ñl<¿þèÝÛõÏ;4=¡ù¯Øy¨Jl0y£@«v¸W¯øãÀäßnÓjp^°g. at Bßq
¹<ÝÏA7]³£mØqÅw-àvïjÇØVkÌ$á
+Flâd#<ç v¥ _Çlî
+b\ç[h
(³s{ðù ×Üß.wïþw²r-Ûä¹ÇæÏ£8{Ìá=¾M÷£íÌWÛ]GýùódCDºº«o L
+Ê{M6±4â»´[c4 )" êÔ8àpPg"/üÝ
Î=ü@ bã.á
+DúXÄÃ4çΦ Æv89@&fí÷M¦½ GkÓØY#*)5käÛþ
+̪+ÝT¾b²ç¥Ng¾ÈÓo
+×6£x¥8/ip,W¶2}gåýª&ª¿ÅÞ*Ó^Ñæá;{'¯0Y
È¿
+Ê«4NësÇp®jISfÏ 8À<µÆ
+3¯[P-ý-³/@¦Ä®ÕâÊqµÑ»Üyï Êf
+oaåßfYvµÀ /«L·a¢t¯±`ª ÒªÃ&yjÂBeÚ
+òݽTöÝò^9
+Úx* ´²ã2á¯,ø0ËÚJ#ìrÓV¦`çý-È0I_«ª÷5útpv êÕ6wÆÈ4L®Áeyy³ê´YÅÙ£¯wH¤,¦¼vÏîà¦}ä9qì¬eÄ^!ÕVINÒÙ´ÊÔâ\bEÍÕý;êÎB1h&·¹rR¥ûEm¢¬óÒ(Ø\nd¹M
+P(W;SöeÜvyË},8÷¡¨X©71Edó\"¦)Û¤m¶²Í ©j`ÈT1k`Ú1AUM#70tø3©ë
+¹]¤Â.Í>ÌSÄfJ³Úf$3P¿Lªe
+,(ãYøÐ3
Úá1ÝkRQñ¬xu}dl0Í+V6ÎäÕcÇeKFïÀZ+~ÚÒâeinE!à/[ÈN1PïÆlQÚ{57¿\sN"iüéð9
+ÛzÉÏöºçÍÒÂ4}ã»ñ=TÄT$*ÆDmݱ^,Yx/Ä3Í¢èíIä{70å¾ÂsÌôÏÿo¿ºøÝÕñáêîöâþñð+@éðùëÛÃW¯)w7ïî>ܾ=¼ÿñâÝåáæîíåËÃgØõk|áÿ_à/.ïo¿úðp}u{ù»ûoßÝ_<^ÞïöÏÃ7=ûØþÇïoß~ûxóýݵÿýÛË®nyñÇ«~üxñøò,^áëÍdzøñ¾ìßOøí|þ¥Ãô7[yó?¾Ä/ÿôñÀ?þö÷tx+V¾9Ì54tÈoÀXkòÎØQT|H¹5ÖÜAÙìLÑvúùºA¸jfÛ:C7¢jgñy5
+:ê3¨ëD®F¢}æ>U¨gv-Φ¸éZa´Ð÷Æë¹WVøN½ÐmB=ÝéJYa÷_g^·¬¥àÐÓ0ØB ·ÓûR6 ³½Í,¤åÍ;
?£l»
+¸½oeÊ5~04¶©s at DVØö<¸_}öRýÍo4ß-~Z#+qriBinì'ýeà(A2:ñt+Ö`e£b(¾´4I7&ïô,3Ç_sÑÑh!mçÖ$¤Ä»^ÅfóÝB_5l§Ö]NOQßùîb2]ìCÉùZ>f[®»Oy,°L[±V;gWq@HO#¶ÁÈ@²ÎÔÊòR<b&ÂȽp8X)¦³£C=7(P¿\NxÝðçäðlÌ]X
+ISÉ㶽}úY
+¨;dÿ*$,ë8_)ÑÓÌ>%S¨/ÅÀIÙÈ5²ËÂ&E{\Ùswõ§W¼PL÷6ÔÑØ:
ïÄ®PÉa±bÜ=ÃCzúN<ºø¿Õ¯oÞÝ_¾{]½¿y¢" 4+OBá1~àeãH´»ò?|Ù7ÞÉAêZ1Ý`O@Ö¼z馱³åÙPÙj[R öf¹]½¹xqRNä Kj§È/Ñæ7èÞò±×É×Ðo¡¿ýó®Ý:»î¶%ë'¿#UÍ®ÈÚ«îÚ0öÏï1jQ«î+e>9úçy@>/ÂÀZr~¶uN¥,þXÀyÌ8¬s'WñøéØ^½
¢%ôÂlAO`"tÎýÙ8#
+y<6d=§v `ï}åÜ!¡J«´ ¹¸¢k³»óç[Øö6=5fuËDxq<µºjç§liã#«Ãî[ñ@\
+Sé qÝ
+²*Ãï éÁ)3ÀµÃݳ^¹_<nµt¶ Õö:èNÒ°ÝWh
ɳ®Ú Ï
´&i¤Já
+O8:£¸^nXVM^åرн£W©U²·Ê
Ë[êv-²ëSX*×A at +2#¯%E¶Æ.Zcæ0'^?LOÁeö¬©YsFqªì¬Ö"í©ò$0brú\5ªì³øÓÊdï`ËZ®è@ëç0]ÄZ³ä8bÀÔm'u' Ó¯dý-àäd
+jV-ö6¿AÛ½½¯ì
+àm9"7ùDgO`ïPÄlcµBöjP5Iraì9®EdiWò¿ù®v»#øüMHaÍûaGndL
+aC
+
+^£³-Y4iwÛ
+VÞ1V«OÃ&Áv·YÓ+®c~öyÕ
+¦A7BmÊùxÞ^3Àãºh.»c_7éJiÜNFçCÝîE&Z^Oo¸@æ]æÞ.¯
+4~.pm#UÏ/»
+è;c-ß?ýðÏ/¿ÿò뿾ûé§_^þóúß¾ülG¿ú3þ
+ÿ>°r£ÄrNPÈ«Ð\ÉLð6xm
+(Ø-+=Eó8kÖ+ÑÃ~µ5RÝõ² ÷¦cå!0Õo`4t\]¢ÑdTp¨ ÏÙï5£õÐñHôSmßÅ/Zdi¨â"ç¤
+ºóÞFߦÏÏsï¨Ý*>yÂïûH<uBN8G¿|<ÒTên_éA-Â\/³·(BØÂ:£2+:ãcö´QÛ¥èl¤Teß"8kØ=k-µí9H%嬹)UôWÏý;¿ÿmlnEæ)Võ+>oxÔï/§@BÖ3ZPH>mÓ²
+
+»Ý!åûlfÈNsk¾ÅZïó7ðÂ/U¶_lPW;A£ÇêÍã£#¾mÚ¤Ò&jK=+Ma[¡ ý¨açla[;FÃvºévá[9Ö©2~n+Ñ´Ù}ú?|sÚêpkÞÐ ®ÉJvøR~Mà..¤tÞ«vÍU2Üåt®hæëù°Ì٨òªNð"¾$,}j_$ÐV.ÑR akØIÀ϶[C¬óå³â¶µÕ3ÎÃÏ:½ôvëlVge "Í%Jùàës®A}ä³\¹#×I1}ËÄQ¦E¯KÝNUNÞÁÌJ¿g÷¶;\¡feÓµ!øª£eÞÙ Û9Oíí^Ðõnβ±ë91ÆÇ¢òQQt5náÇ+\É|ÚB½»DN L-9R;Äù¾"õS+M x|Å^É5N9
±§ÆI¯5Ï =´Ác#µ»îÙÕ°ó¢ÀQ;A_¿êìPÜ|û
+I>'4x£ZkÑÙÝFåYI7íJ£Ee
+mF¬VÙþÓå DΣÇãòßH
+]=z^N¨øó»V\ÌbÀÑu?GçËìcFMgå×Ý°L)ê¢ Ç3ÒÒåúÑié
+¬Ç[ÛhÒ§¬#Þ5&.®o'÷åñ@#¿ç ¼ÊåÊüÂm°÷îCXç\Ý5ÌJqÁR±.?j`µkvF9÷Íe7»Ýo3n}áX¦WäF`àõýv®5®ïEÙ-ge ö~k3),ùPÅo˧â¾PL$@HgÅ©úZ
+ça¤«]fˤû¦ð¢hJÚµÏ[Æ|{lå¨Oèµ3:jÚx@J'ÀØ$-
+ at 6äõ1L·qðÓ0Á0!b¶8û&(ù5jìa}ÁR᤹Jاzs-È:ºå+ÔðKÉþy[¦¦³mGnA¢ZñªOi¯YÏ
+>Z³ç¦£fwr¶m©'ØÆð*LX$iÁZ¬ès0À8Í,'èû£),º#ÊN¬ñ²hFËîEÓ.»8MfÛ³{~ËåñÓK8sÒÒj3n£6
+Ø4½`NíYI3Ú jyt6R¸î©ðàÜÝáÂÕÖ~?(¯Wýª£]ÕWÿè,èà×åv%êUó"`|Û·áåÁh vÞëê
+`Nã÷ë6Íoàl¨zÏC2õí"
+ßxúeåp·úøá!¬d
+Û¼M÷·0Á¹Û¾ÑÉ×aôÆZ?é x¸v
+v'r`ôÀ¡k ¨¤Z;õCg7+nnM]ð55½Qó_©è½mQ
+ô
+´{ÕÙxîø/ÝÕ²bÛmD¿ ÿp&$`G¥Ò3A¸6dâ;
+¦!`âNÀØü}VUÒÞ§»3pû²¤£GÕz$EÙK±jLòNçê¸ã!c.6ÔiFûn,¦:PÒ"¨3tÒÍS]
+±Ù
¯îQJ½>¸@#¯ydì{Ù7àÊ!/¡4Ø7=ìe%`k>EãS˼§$¥_kÐäqæ¶F¹Év;ñ±#LÈ%ÁÎ
+èÍè¬=
»ýlgÜ>|*ïÀ¯¡¤Æ§Áíª¡Üo¥Ü5¯N²5)ðÄì_ ó}td1é#1)G4¾§ÛÙH?á{<×0¾íRgÀ8zã\
+bw-ÐÂýØ53wøïãvÍ2Ñá\!Ùج0w`
`ï|¼G;ßêbj¸ðຼÀ$˯²·z at 5µ½IÄ\ò§¤ßû¼|¥§ÕÞ=Ýëç/JÓtyx
+6<Òæ+~¡Ü:e
+JUÉ%Mðt')X²ÄFô{{þù¶sü'¸²7+½{×Ïß%I!î@é¾ßÕÌì,»,
+3Ò*ùtnØn©ô¢5fnsê{H6D
+¬H`y7¸qßµx.Ày4=^¿O×kà
+E¨q¹
+
+^ÝV{zlYÜÏàS¼~VÙÝ ¯D¬ÁÎÞÝ2¾ÝÅï°Ö£=6!ØÉäÁnõrùdDzuÜͲP?*¢Ò¿Ú ñþ¾WÀc´iç¸îK»U8²7æBKI\aª´a½..
+×zùÖz6;¿EaËvÆ@@eoª^ë8üÅ-¸ÒÜN5ÇííÒ5n?Çñûâå;¾~xAPFlI¯Ë·sö`ËûsÎÊ×»/ÿñù?îÀaÅT¤L²&ÌàÑ5#<¡aà] kº¢^"Ý(É8æàN ©° Þp{:¼lÙè²µàÅBexÈq³?bÎÍë»ÃôÒH*¹MÃ.9G7XUe4.
+}X2Àþ
áðÞµDZ[áßÎÅvYwï§K¸
+òÝ^¹¶]kæ¤`
+˾Ì$ÂôìÚÚ}ëÊĪgÌ
+:¾pxØxÌF=zËMØ@ß3#JÍSO9Áqö¸õlÂ,Øæ1
+J
#wmPîvn] håÁQ SY_¤Å³íÑ ³ÎÙ«
;2oà>ÂA
+n1Á¿¯ÌGIëSüîégñê), ÐL«Iç P½8|x|y;k¶½´îXAçѤ² |r?Z_ßyØú+c\ÝÂææûù
+'ü<ßE¨ÚÅËü¢^²oe[¹4Ë@ÐdbÚ^`kWfïGS1PN\ú.Þº\u¨ºr×x³úÁË`6(Ö<»©ë
+lÒ9ÇÀÉeû&
+þY]inCðqkþÐ
+g4`PæÉZ²Êm ÏÎÆe´è±5f¸ê$}õ9ê±QvSNÔ¤~svÙçLr?5s_èöJÚUëiU~3ý^$<Úéÿãoâ5¬5ÁÚo0gÛ·ì ®ÓsîÛÇ®%ÖÒuøÈæÎÚÎõë®7IÖð0xÎDr±úôBòÎÂ
+xZp:XµG9%l4ÑÖX5!mhÎ^´²ØKÛ)#ª Kxó¼òýá室YáWis×Ù
+ÌlÛHiÅvFp¢³úàEaÈæÐÇåT>¼\J*U;úlÓ)wá)k{³t¬w~pº=´Ó&ú6o\kæݦê>Ü
+?'?½¬ëÙþN¬æ®)>p}+!&§ËÎêq³Fá{=;Õ÷þ;Ð=ÔG×0üòjTÁ¾Ú ¡b>öxxÂÖ>öQòéµ×u¹î5Õum¨EP\îKwûkpÏ5&=$`Ä6Ḑb®
+ hc>]dq?¸ÇÅOÍ8"DâJóÝGyK8Êîf_£:0¾Ç½rÄ[ª©/Nö¨z$YðYJFse{ð¡]·ó<½4Á¶¸0¯
+äæîßÒãU{8 ³ñÇIôµKïq7a¢)ׯ] N[ÒìÑéKx¡å¾G*¿4?}8RäLÁnãÔp A#1´%êmÝÝѵÿd°½®ôø¨qJb3¬)Ô×6óÛV4-d¿®K
[¨í0NºH£q'
+ÍÏ%Êz¼mè^úðÕ¾òcCZ'9Ù¹|?(_lSä~gZ$£r
©ò¤JÌ.bÔÌi<9ÑJßNõ÷Þò-ö`³øF±¶ßÈ']õjQ$Ó÷ 4¦+q&jL?ݳ%I@Ñ;LOÃ7
+>-l|KÑâ[òdH¾¬¿0$`ÞÇfø»|ùåüZÿz%ZÅ):"í «äÆÞd ^çNåP-µBô,Ø&í²@hФñE°N#»¶ý«0³F»ÌHØÚðHϧm4òèwå>9»NU@¯¤#j|
+[QùSA¨q2<Á«AéBê§%Tá±bX5*âD·<G1t²Ezmû;¥P-ɪÎ`Hz¤ªêÎ1ÃÒz8ÊiÙõ!x¡IqJ.á$¸Ö]ÂÝê|ZU©KÁ¤¥qAõH'ôȯûÀÀÙj$6ÏÞDNpÚ]àAÝsäKá¸j»ÉÝw£+V.!á*C)#8,?ïËg}¦bl#ÁÝ×;Xïå T¨-¿Ö¯gbùBÓªçûNíú®),Oo ¬w1áLÎöÊ©ÔîIq$i?·"4ðn÷E\¯Ëã÷·ÜíµU9¶þ&zÉìó[˺ÉïiíÌéÂRõ²ÌdzÌW>½®oÙ`Kïn¾ ÈêHîÀ¸|S&f}wiKÉ5(û½)u»r£MdUZ
+áÈ/²-£N¯Ø¼(±n^»T9´ÉiFÐ 4`uÃË\[¢8kIºZ46nìÆÏ/¾(+ØîHÔBèzJ
&¹±ÏÂþÓäÓ]þLí¯9¶v¢sß
+® Rx0ÙÖAÛx øþú¼4æ¯=s~ü°oÜl\$
+ÙѹMOÜ˲٩+.Mé+ºÚ`ÔÉݸTắôIaÃò
+iÉ&-¦OÅêH-³æORf?âbÚòI¿ì¯¿ûò{,ê&¢Ðø¡ïíÙáqì*%âKõ"|&Û3(
ÎLµ²ªu+ÍÿÐÔ{AðçáJLù°úÈeëî¬Á¹³wu¿$ï&lä×çwØtï;ûá(þügòÁDm#20ä hÒWÄQ >Þç·i& ^îyqHHJ $ìÊY£Ä!úÓ½ÑI
+fÀ.j9µØ;ðG§#>m%êj`ôs]1ƹn× áË1¹ôƪöU¸FÝdD¢ßËÌ~ì'þóú¸¶!ôO¨ôj\NpösÏ£.åáhff8.é¤%A]üÈöÂw $ZY.q_B%)á¢mU¾ú5$(»ájAWG+üAyÄÑYDÑ8
Íy¤KÂÓêóR'´ÔDBQÙÒe4qA«&ÀAP§öp²ÅÜNFP§ñI3%@½Zî¢>Ý×LârÇA@'õ¶¾»@*Qô3ÁÚy
ÏÖvá¶ÜçNt½áÛ[w{×=â UëyHH{ÉòóRËå(Æ-4¼ùÛ½Öè-ÓÆج³æMÁðÕ'xßW}07ßQ#ñBA>¹çª'
+ºÅöVP2³ªec®ÌH4z:Á<6ù¶Þ«ÎU?*øáâ÷÷qÿç»Üóìm |+*&C
+QÀÿLîcô|ZiI=XÒð¹PE§âtÏ
+º<4¾XØôñ`ç
+D¤z2h Ókù|YI£¯/½´SPÉfÏcþ]¾ßâllH_vû!¾
×át&KmЫèx*©-Ni\к8%Nå1ÞÎÖø«>ãçØl×ç¡2ó£´ÐÅÄFÈltîåM00u;+åº;·@{¥Ê
+G"[@®k§ä}ó9«FFȱ§>;Ây!å+zAø6ÇMÊeÜ2vöíýHË¢ñC9øÐÓôIÌÓÕs÷'ë®iôþÁ%/º(A/)A2
+S
+ybÝI~¨ònÞòãìB4{2±L`ÆÒ714±3_2¾O´K½Af
3ÿ¢4ld ÍÚzñ2Aï-÷s ßÊg§eO£à36uæ&\1¦\z¯({²ssÈ2o2ÈȬe¼ÛqMóU® ÛUôÙÄ è`U{~2;Ü8/-ÚMÌ
+C¶y.STP+¨ÔÎè["Kï >óÄ^¹>KLªÄG¬à,EÌÝ´u$ñiö@û.KNÎObq"°¬*U0ΧcÍõ¬ßÆPcø"pé´ÎÙZÏ {·×¶v¾_mnØ·nA9´tx?ÖM¹JêÀ+¹ç-qBø[í+äSôÿ×JÌ¥Ùöón)rÝÄJ~x{¸ö
+íæÖcÁl9 ²zMùhüÍ Ôúù9ÄûükÚλ@gçLLö{mfhcg5FB[jýsà±îóËG[°ÇÐ3Mܾá71`ô}¶Aöó$ævK4ÄFGl
¿!6ºönT4b®ýÙãÀ9^;iì#%@[e3ÃÎô±Aô+Ó³4EI!îU{îê#
+OI!13%¦Ôòßk.áqtU ûú±Ç±r7nõ0tÓAnJ,uL?XºLÃy%àúzÚkW"ÙÞ©l
+µCVO^&¶;nwÊ1KnSÃá
+®¿x°¦óÈÄ2Wj«fj.ä
+GȺR èiûæ³)2ÅÕò$ØÜdwòúþH\nÇÆNs§_â{-:62âA¶VÇÌÎ&^~[&øâvÖß2ëË<&½ÀþuǾÐr$6˳*1
+'ojÃÔBµ|¤YK¬þ
+¦úÎÀUÏ5´àÛHô3&Ìð
+Q_e·M.©¬ÉD&º Ï=F"âMØã´ÔlhÏÃåJ¹ËYÄÌ1
+P]|m
[¨-Ûò*øã¿î!AðcÓ¸ý><
*ãÁåtÌÕÆm%c±î/s,&²
+àÉèá>1PhÍ_÷P¯ðOüÛûûÇ¿ÿ
ÿÑW»r®pÂßO"6hF
+T¢å>s£®âV)²,1²®æ8_÷,
+é|ÒjÖi.æ*Âû1Ä.ÕóCp|·/tW°e<ßh1#ÌO&)a¥utw¤) ÝMíYÃÓZ¹c#
êa½%à4Yp?âAæÝg*:0<9V:°v¦óBÑ X¤^Km½Ð*Õõ0¤r¢êùÿ°+ZO¢ÏÊ=èÍôIÈjãÏ
+RÜwÖÎoTÉø¼L?=údÂ,hê[iBPg°Ü½ýΫCÐ ¾íèWýùÄYßåçÜ%@APw®/°tj|+ÑÍ:ê/§0çµÔãU
+OW{ZzXÇý¿:4F¶)¾ø·ùE%±õ$ú´Lè¹YÄÊè1tí£²À+2Xä25lÓçö
^;Q
+&¢U}öõÍhùSå<k±Tja§&Þz*LïQ^Í
+6
+íÝÎíºÜBØ;²ô(ûhTùGNÖ,ðÙ-ºÕéß'¡³¶$4Í3ahöfz
+ú
+{F2¡»uæjgp<Ñãpøg0(ù`Óó¤Ô·ØÚÚA|zÁbYW_²(}Þ=Á¼6´¯Íb+7`°iûà Ù¸½¶ÜÌÙØ8¥FÂ
+ÿõ ÍgM6I÷O<[`ß¾ÖÕªV7³B°3Xе`Ý«i뺨1K
+Á<ìÂ2v_aoãb Ô£@9ÛlÚØLe£Îë®Õ¶¤p¹âîÁÒ(L5[JÐGÜÏ-A^õ^ò}ãã
+'×:½ôH O
c×s áØ?P;KàKô¢!½ê¦¾««ðS˸èq9¶¤©^ÜtøEp{.1ò²
´ÁMÚéZgò0u&À¦?8.Áîî+Ö^ãÔÎm)õuËV¶Èbü(3X¥Î f÷1ÉG `E»l ±{=¦#c½ß)BbÎWg§BRZPÇzåá+¹{¢¥2ä$hNn¯Y¦®5¢mÚd>Öì7bñÀ-R??èqÉS¹Èú~ù yýHd¥YÃoík~øA©ó~Ã?O
8«Æ]04E3Èih§µ~Ý%] aNí'XsvRAËõmÕÍR5h³ÐÙ|j\pµÅ¾[ÔûÌwC8Ý
ÇÃVOèi`õ§=è³%<Ùó9ÃUá~â©ÌÖCâ5¼a,~ôº=·Ó^CǦϯ»¡¯'
+c¢J(eï¿NÎöy÷Z´v®¹×ËkY6Äkê.áLèfÍZ}J,Ê-Ä<sw¬1&¥\~Ûed°
+q'ONi%òé4;8y²Í¹0|%0Â?So $zgçÜJ0Úü0M.9d2¡g?þ!¨#VBöyåh1+FìÖuñ½ÙGR¢¹T_Áel!à»
Mȳ¸¿TKM¤èÆEJ}à/&Ò80Ê,¨,MÁöÀ³ûa%¶¾xD¡ÁøÊlü½9ìõ»¨çx Ú=Ö úÊþu®%;¨öV©
+Õ
+á×ùÈ= c=,è(ÛìYy£X´Å²ÿX³\'z)')Ô
+
+V«I1ÖÒa3$[éOëZÝ ¬ÀåüCúh»Â
+m¤Àç3êrWãÉÄ¢;#Î<Ëú%C:û[!®»Ãa!~Ïλhå»JJH§Ìç=§%ä²fáZæì³.N÷WmîĨL¸ýþS¢.=er'.1áËüôé#<+Þ0?±$ï/_°î mäzû±Îɧ§^á XW&äãìIw®¨ôãÒ:îu¤àö`ìAííé¸ôÆ,PM5Ô cÊd°:3ä´«ò
âÖçû$z+lV§= ôod©ôuĪÅKÛH-
+9î«/><Í÷#$.hú&h@{?OW_ùÿ§×AÊ5Í2«[&?~;Áuu=G_%'zÙзvÉlþ¹^ZâQ
+
!Ñ&T®(b¹»ìÆ6×_|Ào(ÐC±.º0Naá;sl÷¢ 0÷ÊL
ËØbM©DÊæl1B%ÖuåÉgâ3tåÓ
+º-Û2ØI²%{5gƵø.æV0E8gf=¿t@åøâãJþm0{Çï@£Yªp¬®¾âÍÆ=¸fC£¯)!A¬ÿòÎoª¬§CMÐç@âÜÐ@Ü1¼¯¡a<(Égøßz^/~¶'Z¢vk×:¹à¥ãÅxÜíÝïM!²àó®I¡±,zÌý¾B»RU½:ÑEÛ*=ÅSÑãå0w:ämЯ¶ª]÷YJþRÕÖ5HhEë|¤f+Q{]é g~]âÁE½3ö§ÞÏÚ¬TõÒK1À"çÖÞÁ¡XEó³Åø!ºÎÐݺ{"®Iãæ;`á·2õxØ:*»¦6æS¢h:´½± 6H¡`=XFî¿í5b×)®t0Tíév°¾^õ-a)Ñ]õ2
+À`&öHØÀGÖë\ÖZu¸tuÊ?9°{}ê!~æèGÁ4ÁoKcã£K¸Îz¤¶h#clýæçÔFVy£:÷|(j¹Ì~
+®kfcÃv/|7ÆÆHdÖñÌ6©ÆÀúWÑ;ßéùmºzçE!ò{RQk/_|»C]ðøÛoûûÛ¿Ç¿þÀdÿ}ÔU# Çdÿ¨éÌE¯¶Ã¢ÛQÕN`!f×ëmHÍñ4woEGMQr¦QÚYÔܶѷ².RÑoÄBCÀò³ûw2*¥ì9tLÈM°Ê1°$Á~ic¹Ø@Ð1ÕÏ }á²ñ9ÉP©NäïñÛÚáÚ\¦nºV ó¹N¸Pâ5¡»æJF²Nr=]ÁÖs.Æ©Ýþáâ
+¨oÕaÓB»d®%¥¨ÜÃ1Û KÌ=I:¬ò£©Ïþµ£øö¥ágdÙ'Ö
+*~\ä-{éÎY`¯NÞÒzJ|ýÙkd/¢¼Þn\ÙEø>Æ"C´±Ïá4þÃyÚ$m2¦²ùůÿ<dí¨Ä½¦|Ä¿K¶rÙøÜÑqü1æÁ!ÜR)¤M5)î ãÛ
+uÆô5ð>kãï
+ÆxvB co´®4Pp'ûs#[˸¼ôÉlmLc»¨?éÜÐoÜ÷DM4±»k1£ûÑ
+`Ù1Lz $Â(6'×£ªcCmCgÎ
é]?0ò>ôi"Ò¾ïqD}>áÓègYÙë!Ïã±ï&8XÛÌ÷»zVAêÞ²Sz``·?MrjÈ:dÞæÊÃ#×:\dD36aºûy;Ak±¸*#I@¿ñ«¶*³IÍÿ9LÌ3ÛF
+é<hÅ
¾Ü®í¸eÃO Ç
+ÃèÛ$*'îÞùnÍú%DëùÒ BuzHæ,«¿½l¢×Zhj£±sôðz=äÙßÊ4Ëûç£yEÍ1³YÖ!j0êÐ2v©µ^åöwù#üË@qrøýù2ù
ªoL$õrÑB^1#øU%0§÷ìfB´¬=j_uòd óN`Ó79c´÷ÜÍ\81ý}#4½\°é
+G3
+ä
+Ð1&Jþ̱ªB¸àéà £÷bã°¤2dBuìP ±cÙÍ<<»¿0l¤ZF¨B¨O
+Ó©/ë@£
+ÑI4ñX3jï·>
øSN=&±½Òȳq1/5¶·²
+F IJÄP.d¿a?ÿëEÇ©<â§QCúÁHNât@²ZàÆ*¿óÕõh9¦¬kì.С/¸qBÅl¾¹Y;+gm¬içBÃ;ëÏ@@z¯eÌ9w,wYFUIª½P°Â8°2~VûºÔ¶ÓHA ^¼«³¾8új#>9v÷¸ÊÀû{5`õ#2^i¤3jÜô·
ãÜm·8ã¯J[V¾4ßON
+ñãNØÕx±j´é4GÓ]}Ò`@Û\àOÂQ$
+Æl%X»@ãòQ¥3_Óp¸D¨õ¸ÒØD+ÄzÙÉ÷&?{á6¥Õ%ßãÐîÕ#P|±1%Û¾î»Â¨MV©ÍJcw$£ºÒf¹rHÚÇ{½Åp FðÂìüÕ×>!ÔÔ^rÇ
·º6$p$uÓîÇá
+nÚ{ç)l×J{w_§F¤Ç+mNÅÔb&:ÚÛ1å¶Kú¹×Jõ:
+rÌÝ¥ÈòtÞÀ¢MKë±Þñ&.Ma±r¼Àà{
+mÞ³f9A½EÊ4¹û[ë%*Ãæ¬ýór¬ãàÂ0l£ÈA»\Êúó¹ý¹.·+A¶~÷0
+lÿ¬!ö̯EÂãÀL¼Mîhwf¾ë8ôâ¯EH*zI5>ý³
+¿õ~<d%³õv6É i¿ÐNÃJ6ñ>%a3û0ôn¼þÚá©%`-È.~ãØ)o1ÂÎó<ë8_å!ÏÐÚXð
Ì~ÍF.;r¢6A/eoK¨æ X<Ë.MýWcÃ\¡üYWë²4!BçµvÅóBÔMÁ²iwÝó×Ë^»À0ÔCÅ&ÌþÉÙªtï\RÅ×pâôy[MÂ4»²c
+Îúb¤Ä0ïxW¿X.È#ü:æçëR@Üñ8ëÙæ#ÿ`
+endstream
+endobj
+106 0 obj 23210
+endobj
+107 0 obj<</Length 106 0 R/Filter[/FlateDecode]>>stream
+HtWÛn]Ç
+ýýÃ~ `·õÉð2·}°ÜR¸M#¨¢0YqÔF¡Èü÷]3äì=ûcغEÃádäC*W_½û_ßã«.Ï/oÿ
ß~Ó>~ýòñéO·×O·÷Wß
+Ë×ßÜ?-Ï^~Ca¹~¸ûøðéþýòËOWo»÷7ÏßAëøÂÿ·¿Å·®Kÿ¼zzºy¼ÿöÓÓÏ·÷7yx|óññêóÍ㤿Þl¿ûóýû7ï~xøÙ?_Þ|¸½wäÙ?n?üô´¼yºz|~øzûëÅ'üø_öï¼CôOo?Cð7üòß
_]þ¾üû?ayßþò»¹p8¢¼Îz`
+u¹k0CÌÊ5Tr\^ιTjp:&gmµß^ïmS¶¿3ʱkk±ólOÚ'gü~}ñ#®NÛÅczîþF:¤LÛíTj<¹Æªá YO»Ê9;F 7b9¹Äª<ü86±äzìǦýãù´|ö" ²Qjy¾|ýæéñöþÃòìòòåõõ§»ï®îj´¼ü§ÿî"´.ÅB\~m§=ÔÄsüïö°àóÒ<_¥P¡Ñew^÷KP8ÒxiouÝÀÇDwg5Ñ!h){Ø
+lÞNºÛ½&«§1¸¾¸üaËÁgßßß_Ýݼ_><^½¿½)Pxî
+äùgß/?\Pó¡n_ÝS?bZ.ï.~@ê^^^||Þþ±1Ó§NCx@ühÏ÷¡þ«w¨q|?[¨w]ÐoX§~¦\[Ôª´ 1 °ÂëÍDdé¼Æ&MJyêiKZ
+
+Ä$öDØLP1AyàvÕV õb( ¡¬&à*®,Y£aQ
+9¨Ì°YÐjì
+v9cu0IaµO&²±!ví\û㬫
b,¨¥ùf¡Æâ%{dïbÌ¢9:H*NN%Ò¥´XFÆÈ0!RÕ@¡¢ªj10JMD.ÈÑ`JDÖlÅ0#Ã(¸G dr2Ôd>#ÁH²)du¤8´ÝLd<µi+þÎó
+éXûëäa$$¿ì¥L&RR'¡älÑ4²a þ¢$:ÍÇaÙ[¹zëåÊêr¦LÖ\MçU9ä]»*ÉÀ,¯ðº¼UR½¥tÇ´ºH5íÄAIÉ-ôTÙLDÉ
<ô(
+Ô*=
+dAE'5Ä`ò]ݶf m)Ï&r 6AÊ«vµ±+6n³Å`BZÝDϯÍÄín7»4yQÏzÁÉ8sçs$ãvG,4*T)Õ,îs,².'{#Ô$ó5PƯpÍÕuCì´d]
+Vý=
+ôÁ¨äÖÒÑ#£ÙÍD-E´aWF0k-ÃÊ«¼s"öÆÝ«ÄÅc`õ¼2çö¥!Èa[¿ÚÓÍ<ÖPëÞ¶òpÒSr¡ýM>{$¸ï0|·®m¥7iÃlíÍczæuÆ£×ãFÑkàü}V
+`^ðÄd±¡ö(s62 ¸á¨6
+\ã#m%©LY±ICîÁ"ïª1Úã£ëI¢ÉDÂML d
+OZ¿&BMÃ.î)H½H_J´P4i9i«ñ6Îþ`¿±[#Ê~ZF<| R·H´Ù§Á¡q«r©aÎKâîÅÀÞF¶¿W®èf²â0Sggmì¼5i\¥kãÉ@öè¢!Ò
þÙ,´¤ ÀPZ÷z'\ÁÔ+ PãP» $¬Ò·FmD[êP%ÍJH´ÑR´°£C/|AmSj õ¤è6&è}¦ R«vÚê5¾ÓÄd0B²]×x}büÑ®2úZAøý¡
+$¬;al1ôYÍÖ¦AëÖöàl&G!àqåqþî*I²åWéüÖöÒ·pwïþ['ª×»nУ
+Iøç"ªÝ¨Õ¦µyÎ#`yÚÍÖÕ¦Ëòº³«°E®å÷rfÓü:¸å·ÊsûÉ|åü®ÎzQÞ½ÐÎåwç¾öØnÜÈ_+ÄÃñÏîs#O¯çÜHÑTÊvê'¦ØhzÚªtVs@«
â¹yK}oó<rØßÙFvØBJqq³î-»A½ü´ë3@È-æþÚ|U~Ý©´8]
+>pÑàM¥ÍÐO4âµ³
+S ÏÊÇ
+YV 6îÁØÕ±+: /ð`¯Ý`
+²p
+÷º£ÌÒîåý"¯5e¤i¾ÆÈK3j_=ç²ys9Cô({
ªF.³=Ùu~)5¸Lm!S}Døµ9§7«=8&ÁíÍà ìÖT
+ßTwÄ;±5Í¥±`«ñ· #rÛò
+Fj¶Ç¶Ð1áÆSÂrü´»å&½7× §8
£
+ݹʥXPºøáÎa+y°[Ñ©±
+sÙ@ÓØ=äÖeÏd÷ïÆ¢7ÇdÏy(YÜ;±GÔG§#
+c
+(¯¶F`F¿ÏÁTÔÆi,ÃùL A}
+¦?EäÍ96ôÃÈãÌi9´R{ò×U>u]¢ìÏñøTÞÂQy½Ô©¼
+9¯m!@u#CO\ kº&ç ©Nï
+º¤¹Í1^#øéEÙ¬åÕ\MB$æ2ý¤âóÉÙz,gÞÕF¦HÞ
UJ"¨ÆgÙÛ´îÖMyæê,f&ä¸[98ȵ*º ÇvïG%ÇÝù`èÂ'7«_Ú>cwð*ã, ¹y"ê>ËáªÊL!CR5@Åf¼WdH¶ì¦yRê0K"Äl"EácXC1¸|VÉ¢{zsÌèt¼j0`rþö*ä¨RR¬ÖA|±eðY*©/Ýi¥cCuÖnHþÝæ%\nF8
+[9=@*áZe+R=Ú4òð6h£©±º:Þ!-ÕyqÖHò©fñG_Ã
+{JÅé5ÄçH*'`kÞ°µ4=?>¨ª Y~ôÅêM?Ý8¨¹Êfp´Üݱ40ãÀµüó³BL/+·mÐ`¾Q!v\R.
+;x¾=ì¦Æ)L³%ÿ}²¬ô¨òÓrsüt+»T%û§¤;DÍí5´PTôó³Âã¶ñªï§ëê{1èJr¦i©Ñxyo7 Ѧ;Óð ¤^Î4Êqû§ SDY^ÙVF5"økyqHdÔèY"ìG ʶ¼ü6¨$o1w¢Q½ªÍ±â(ÚWpºîwK5D®wó_e%a(ç|£)izdX[{ªIÁ&,þÔ
+¥Fc|ßuE¨ûXosøYj²TÁ{8äÏì¥Á8y=&rÔtx*+ÂÆHÖ|¡,"
ÑYlAÀXÆX4"£³DdEͱ;-ÀÃÇr-}nè) >ºk5FÙ¯íGéÙ`ï¶Ö4D ûtUBó
+Þ
Ub!26ú¬ðÕz®"û8XXP3É°:¯RBì#Xæ&E,?hÙÙ9âæl0Ò´°Ý½Ê8Kü$:¸ðg
¡9ÃØ[0òàØàðoÜB8Ϧl
+JccÎøÏm¼¸ô\PDOÍlVõ÷Ùé¸Ò¯UÜ%âÚµ|5åè2ô*Â9ì´¥IóÈ´#D¯þãb©Ø5¯³='èϹQÈEE¥ZVæÃø(ä¬_«ãúô³ÿ³]m;vÜFðôó@ÊEæ½ÉäIÀ1@±]a½²¡¿OõÃs ¤æl±lVW¡O.¾=ÄrQ[rg%Ù5åÑBó¯ÛÌövÇÅ$0GhUQ/ø:*QòBíÖuký[«âºÌ
ÖÑ·¢U¢{-ŦÊ)Ö%E a
+Ï= <ö*pgOÐ"A,èåZ"P½8r¬²6yñÄI»&ç
UÂ
áP%;~*3ïÜÔ
+¡UkP×
+£s¶¬CÞåXb©W#tÒ`¨*v8¨2´`ösðõ8-¼Ù²<øÂ*b ÂIÝ nV¸Ï4¥U6U}Að¥
+¿Ëh)<ÝȽW<º(5,àaæ !÷^x~*luÀIfõBóFÙe¡{ÚÞkll£n7¼]=^Äå
+ñf[X5ØÇyO¢°\\uE*ípq]t- Óv<*4S¥Ù)MCeQË%ÕÖÇëÂò¨q»UÞ±ïýÖþÐ÷#¤, ;¼ÁÁc¾mÊä~´d¿HÒlB{MÒ©3AË ÞµÄ cs î#g;Ѻ7Ë8ÖHI\HÁtY°°P,lªºC'[°mlðöMLB2Ø
+4|³kˤÀìç
fwaÇ*AÜɯ5
Ôa<x§½HpwׯÅ<!b2>5
k(«,iµ'Ï|¼Bàà¹x³ò)&¾ð]Â
+f](9¶ÍÕ
+6¤Y¥ÈO©2¯
+VHÁ ¦Â¤"AøU×vèîáÌhhjP°
+C¢<ôBnZ°ìS\t~ÒX¹¡UºôBÒ`rJg/.A±ïwá¾jÌIìGÉк¹ó*ѾкP[¨"Ù×óQ^Õ± Ë»Ü37M´ûLà"M0ah1¬FAyâ0ͱ
+±oA¥Õ¢g(iÖ£E"(-nkÅÄýòjk~¨®(xb§2ÖkÈméË\(¡tï©h¹´ò±ù8ÁØ»·ê>!Ai+O¡`ÁDJ:vkÖÇlV,¢öe7 ¬¯ëð"ãöµ
ñ¬"»@w4ù5Â4Ñ1¢h;{=_pªÉ%(|Ûï}Ue²6¤PzÉs;PÏëÞiáÍ\û))ic1v¥/ØÙ§
+ýÂ<Ì
Öé~ñ³.ýHrÆÑú5ÑtM!êb¡ZlH¡MZÏ+jSNØ&)Óît/ã4®ëX:ÐK
+騩tø ¬P=7J¬¢%تò'(ÍgLÛ_.Ct=§6Ç``¶ÕfÓñP-ÊõÌλmÅB£h¶&1òØnq¬¥kµ°ÏÉJ-:c§Ô|Óf Ç%ÅdÚ
!²C\
@ÁI°±ÒwÁQêTXÀ~¦-DF8DsO
¬Uâð!æÍuU,+4õb¡-:33y-Þ(-V²¢ñ&DÎÅi$Ϊ5"bûbÇò©kvÂ0£¾Ì
QûÜ·ëx¨×2ÓL..i''AÈÑô â
v³"Ì+®jX°²%ÙmD²ëøåàSÛ;ì©kªÓ8ÚE·ÇÍü9`Unfå·Tµ¥ÌeZò,C' boöu¦d¸nöLäV
+±-9 EYdjÓªífkßV4µp¤;Û½ÈhûæC2Q'&ZqxX»@Ö+!üRPÁ´ÂÐDa!ÁMnBÖífk
·ZlòãCS/j;>ªä!;òÌÐó£¼æ
UøÛªJt7²úK\Sðë%·X|¡ïÓ´èùhÒÞPòµWÒ¬oÎåyé¿þ;þúêÕãÓ×ß?}|¸÷øeû½´øWßÜ?mÏ_}Ãöþáòéáóýí§Þ}ºÛ.î^l¿ÅWÀü~ûü%ßÆïÞ==Ý=ÞûùéÇ÷w~xüþÓã»/wË÷c{þb{ûg¿bìÿéþÃ÷_.ÿyøÑþÿÇ»ÿ~¼·Èóï.wO?Ü}þéų°½Â·¿<û_aûâä×Û/øÏ_ðÿ!ôËV¶¿nÿüWØ>ð÷{òÁT'$η3ÀsW%mû
+Ý&
+",Êú1½nö½J-Q5~àÁ 1h·-Aá7ýñ\È Í¢}I5,okà¶-~Ý0]e ¶1*
+-1]!{.(Ì^!ÙÜÿEA²¤_0Z`¹ÆáfCzɽªûÑ]<ÚeÙpï§w
+C"©ÏËÚ÷?þÔÍy#å LsèÓ$`ã¸ÇSîg
+¨*|&x0¡uÉJ0BÂ0 åì¸'
+é·3häñö«4¨©,3â®hKkÄ
edÍ
+GHB"aE
+BÑ
+
+"P²t£QD,Tj\niÇ¢TÐQiJ
+7T,5sßK$$ÏBiòk®%/ïÞûîwϽß9ç;È@hMP %°p'0#æ6`E0¿0qXq>KÂÃx¤$@B3ÉDØ»ðS̵<,I fÁÔ¶&C5ìqPf
+ëMk2ÈJPa,.lÅÔÄK¢`
+psüTÚ®Ô¨!jVýDPÃbL|ø|v4'ËãrøÃÿ±ª"x¬Áq!ý 0qÀb°²XwŬ¹l¡«½âe@(DÄ &qlqªØ°½PaIVû ìJU,G-ïK·ÁVNhLlØ®\y*ÜåVÇdb¹°@u¤Ðiã¼I¤)Яa1!`
+6à%Hâq¥° O¿0ÄÍâ
+úýüÿ&;syÛÏ/°²ÞÊút`
+ü
+
+`_¡1
+jS&2Áæ)kÁ|åa-Usêê,V¶á÷JR·°Áë) ËÐî`¨(}o2 t6ùs£ikeéÄó0Q>·÷@`°¬CE9~JÀZí&È
+íò1{,Bhú%¹±Ý9Òsä(fr¬çJÅ"pïò²¢deP]ròXf¤ãÜ¡.3¾ ´´ ÁmíC©øí.:~$=pÃÜCëJýåhA T,R
+òíæD"Ì~Î+ÜÏ[«ªÂcø¬Ü}a9ÅZ°
+#€
+¯à ¦9êTÕE³3 Øbu$¿õì½¼ì@»pɬÀ´p
+a*°Ó|ýTÉ6Ùlä·Ö¾7EMíþ4ôè»xùÂoÂ91³SF´
+àâåëáh¾
+Ñ·Á³#å/ih-ÿ(º·3v´©! )IL#}uÑ |ü}\ð2qÂ* ñ@îþ84èXÚÚYh~ -Ó¿Ú-þPÉñ¢=¿[iIe8¿Jþhâ]¼A©¨lÚQx¦î|Ù®âK3vöõw'º3
+
+.¢¨¶µù|q¯©¢O
+éÁaÞd_¢´uTOJGÁÐVaî®ÛMeû¶)bÈZGÏõ±`Õ±u÷÷eïÍ=ïß^ô=l©Øí© êÓvÜÌÙ<CÃ4®þ~L"«@cä\éý4ÐuU¸¬`|/#/+Þ{¡Ëö hñÛütD$}ÕQ³ß[_~Ü16÷pajðÌD(Ë5Â2òZûÆE"ÑpwS![þZVûì)>!̤¨ÏËÂÍÚr**[ò9°>>¾V*9B³J+OäDSg¥ç±+m:Î,úãõ$uµ
+Àè/?ù°þ{/3¶í9^w¹©Vèªê¨#u5íb×ÐÄø»îË¿ÊG ÓèSw3&_ßøÅ]flgò±úæÖ¦ÓÑÕªÖw·M{j
+À'õª½/ÕF¥7ûÇÅX7íEu![{ß½ <àÊHfÖ8¤CØý|þ>5D{®äLÅòM)õ]Ãb(7:OíDÄWÀ¨;ý#£ýíÇü+-«ÔL7:àk=çX[ß(|-gì>÷»´>`F_?Î2Ç>µþáÐää@»ÐaÖ*äqIÀA#"ô
ÓÞºûoÅ=¾ï!é5ªýXÒ>ô´
+ùS±hóþÆàxoïøJ×Yªû,ÖZ¯«T±[Â761Øq/àÿ|?%zÔZÀÎ9ûÊS`óðýJtÝÅúFk¿ÁZMÙÆö´w¦cpB|cME3÷ÚQ)hb¸÷Æ 1wh9ÍÏÇ Ê4 )£gE4©4lý"x¡L\¶
Ù=Ñß^Ëöµ!ZöáùÚ¼PÌ%·¥`M¼n/FC}kG
+NFl[xG bÙ.Ò¤cÎ+oezÑpW]
+pü²öþ Ñ´öéÅÝK
aV,h#]ÎfJl£×ëéõ¡[dÒnÛAÊZöÐr£ÏZòaíAÚqRK4Ò¯!?¤z^tàïK"MÙeïÃ
+ò$O+Mµ9Éû~Rarø7Ø¡'o
C.fÅ-i{1&%í¿w!çGCFî5XñF^Ü(þ¬å¿'ûqùOi³rÒbܤ¥"!¾ªó
+ÄðáûÕ ÓüXp¥÷£,èÔWùWùçèþ÷VɦiA\PÌ9ûæLiZFèAr©L'M17Ä8¢æËÄ)2ײ[j]÷»in5%E÷}Y_ÀFoé÷¼÷û~?ïó|U´Ô_ëJoæEÊ0yWåeC¯°¨HVé<y@Τì5¶uKo?½9Ug
+lc+WuÜ}G÷Ĥ«R¥¬²ÊÌö£gX\BÆoÿéó ú2R-:uûÙ(<fC¢<Çæ¶2ùz\@n©Jõ÷¼Wù«pÆë©W+÷
+&¥%!Û§áKËÏI q9¬¹Óþº±h®)YÑsZGýÕËêmL¾Nóyçu©"b=R ¬²fØxjFb¨3ԻݦäÓi1¾ÃX=)
+xöÉõRrÁר¯>¬ê çßP`§Bö@-ÓÍT?y'pØ#2Ó2ºGPò¨Dw(m@|çd¯ ²ÆVu_4ßLvÁ<2Z9=øì®Ü¡`Va
+hDÃP2k¤ôìx?ÏÜy5+ÚÞ~E²Q³Æ״ɳ
+IÀTsöN
Ê;À"ð&ë<
+¡ÈEòâµG¤#ù¹)AÔÞñ?ÖDkdH\NÓGVZÜ~èû«9í,Õ[H{ßG4Â?Î '_×îPØûó¨Á W5³)å>
+48&¸MëP2þxy(¸ÀXõQë£Ñò6ñè
ØÜG
©Ú
+Ù¿ÏGRó³ã¯ªht¯ñXº>X-ë@®Êkâijæ6w¨Ø[~Ç3·[íkï)ÌYLO
+4
iÁG. §«»Ïn¶TÆé§ÿªµÌ×Æh¸8}yÊwkZP)Ìx§8å³aèyIXqî;ߤ¢Ç¹êéÕ(²zn¯Ó¹tÖXqí}rÅÕÎÕzÕÄ*zRtpZn6É©½Ì5QYFQ5'ÞùÝ`&Xï/ÐÌÃm@õR.Àk¸¸£åD
Ìñ)ÙÔ»t'G×äçÍe1ò35ñ¡6ËK3w°ðWu0Ëô¶úĸCEåRÒR]°)Ê9OÊ ßr=¬³ÅŬ¾Áö§©}0¤¢V
ðGt¹`a
+,uÆçO<T<Nïã(eÒåÎ¥V!Ié÷µóÓ·J{³CO7õÏoÈ_]8]Õçjü¬æÚZlK³M¨gª2³x¡
¢È¾G<"R)q7¦Æ)ΦÃZà(õ6ÙJg¥]vJ¹¼sÙÄUrTÝ©»§PáC¡Äø!µ7
+LHm¬ÕçÄ>¬a«Úû+DÑNY%fP¢¼t&MWrS¿ÆCßû2¢ÂOZ9yø) ¡+$ÜÙÁÎ&Gó~ë
ø>âù qNÛ5@µv(ñÛ`9ê«HÅ^ºðûå[ñiÙ%ÕmC6dZ+d"ÞOõæzÊw5Â
+¥:Ìèû¢Zÿ;yÅÜñ¼þå£-µëg»ï±Wçë8qK|ÖÚÞIJR,îYì¾Ç^![*Å
+f ¡å£äó`ÓF=§áúWò½Ï±¬3ü4âîÔÖùrmáܲ$÷ÆTqJ1éê@émÍüu[оp` M4?MCoW5²ºL[K½¥ÑnÿRq\Íj>(W²kÈWjÅn>ê\øææ[ ^¬IÇ¢ÿ¡É¿qÏû?Çì(K¸l¤á:æK©<2 oþ}
+-ØÚf#®¥×ö/ò÷ÙóeÂÕéî*Z¨ó÷ÐÂ;I¯ìãí«7×FZËR¬¾iáKzònruÿâLÌ[k¯Î¹ãéÁÀ%Þ8²¸±/ªIE\Öxgmaüu[}*
+Âì1Ì!ogàb`ãòd¿a"áÀøÚìñXþf&<~Á
+moÞ°q±;ÿø#îþ ~¸i |¿À×~â'¸÷%pûSÀXNP,Bªv°ÇG`®èíBð·náÃp:b°ÈÀpjµ¥üüu¨p#8n\½£®ÀÀ;pS¸;Ü÷
+
+eÄæ¦cs8Úi06·0ks3´ 4B#Ðh¤<R¾
ÂeÄÆ(efö_â«<¦ª+ßÿftiN¾ibë4íõ{ι÷tèø¬ZÜ©DA ¯
+ĵ¸[wNÕLŪbm;©ÕC4˸ťÚ::&D¹óåÞ·µoþHßûÎù}ç÷ç ö"°f9\Itj4À2ÝA6%F:1m;+³u>¹ÚÑMqVºm`¤ðÈ6ÒÒ-Óa
+làE!1MEXXSá(²¦n8&'îPFÄ^¢3Gxk::³¥eùnÜ©ÆÄ!q\ af:eL
+mÚTº`R3
+/`3" Ò/b1[Ö¡ªMd/ÈgªÒJd¶ 4EºAJ1$Ø8Sä$³ØhaGD
+0È3räBÐ b/ø%§ TcÅ(ÕÂêð
+[è[GÈgà»Ág[äEÁÝErtb»Åh4¨x]CN.àMAMqýÄ"¢
ÕçEÆXPý6²høcQ,§)´¤G
+Ú#zòÈ3QBmªHÞ©y4 q¾Æi<$ÉCæ-Ï}ÈÕ
++ö³V <,äéÄÀkÀ >H¼Ã»ºV-¯»õ.AÞ
+ÔÆÞåýªJNL0ÔK)8)z§äçç
+Êrò
+óKÊý.
+¿¶¡pl¸ó
+Û¦nñKëUþ^°p|B q|¾PpÂX°?X
+
+dÀ¶W½Í ðpÍjò« âd>DÅ oÇ`°çWlÈï>#BåoæçÊòÀþüÑäú¼S4<§¼¬°R<rôO¬B0æíPY±\
+?YóBó'ð+P]^U?!L$æïÓè0ÿKåV~B$ED¼goêCbÃÕÑoýa
%S¼wúïác÷à ¢üDïK0¿ °Äÿ/éÓàõHá@¼9æWVÆ·¤Oú1»ù¢DÈO'ÂK¿çÓKáÿá$¥8!=ùçÿϹàç?ñ˸Ïx2^Às½ãEà/Åè1(NÄв)v|1½"cÅY,.DæÚþ8&.ÄÛÖ8{ÓÚì¸ZVݪ¼øI³WÄß f¿"uÎô×5ígq FMÍÇÚ¯yÌ®FÈ#
+GjÚo_x4àWOe}|Á
+õ0»¡?mðZ.t ÓuO¿^L+ÝÃ65¾£ÄÉû;\÷LuxmLU¨n,hüdy)ÿè?®{v^x-½fþ"r÷l äÚ³®{aQx-gõÊѸÍ{¦*¹üÈ}÷ÛUáµ²ÆM¹üot÷_öåõC¤<òãv÷ûOGzKCö5q᧢ Sþr`WHÉË.¹ÝʼiûNî_^D!×7¨,å6ïRµ0òÃ7Up©W/·{~¢IÛÛéÞÚ¥â3ëhGWk^zÑG<ù|ä5?Ø,wܮåBÕtÃu[ŽÃ÷!ÿ|âìîBñ=}Ð+8öÀíj)æâ+/Wñ¢cߪ9íºî:.oºîº·>âSBÃ}|ÀÓ¢]ßm»}vÆqw>æE>õ ?®«_N×<®úÔÛàlù
+÷·û¯ZM{çà}·û¨ð.¥ªÔ]æÄBNûâ{Øvq××
+à~³1IsÒuo4¥Â2¶ Ø])epQhóN}÷\ïçrC?îø½ï·x©WÛvÙÂø1N(òçxµ6|çM·ë ¯é¾³7Ôe*ÄèEKs î[.Å
+¾jïh»nÛ4EºrëªTø1~_ù
+ó!ãçMOÔB~%3ß}¨D¬¥ïåÕÙ}÷Ä®ÔGd,+/å³;2o*wZVTB>óó#ûPwŨ«5ßÅTÕå¶Ý¶ìò×wùWBÖú÷§á«1UâvwÜjøzÿërÞ°gK¶ñf,"öç¢7$µ`ÃÑ3-;/>àÞnò/Ð÷ºbK½ÿÒ^5/~^U8ÿ@þw3Т¾½çÞ{î]ÅÄi¤RZjPFóE2±I!NAÔT]n*E°+W7êhuSD
ª]XKâs>îû&¿4Óü¹÷ÜsÏÇsûîëçÇ/þáÑËå³}mÙñÇýí¸}cìøÒûÛ±³5v|ã¿û7}ÃH÷þϸúë{ûÛqgìøò>¯qÿßü?ÞËløÜûÕÞe¿ÝçoÿTGô~ºÿX¬¿öæþ6ü{Û×ó¯î%Ã|þúÊ'¼r¿~çî£ß¿ÿ¯/Uuâ»;o?zÃ;·¾¹úÎö?µáîÎËÁIl½ö§÷Ç;;/?{à=OoûÍw²áη;°çóÔÖù·DàÞ?óg÷nÀçøÖ+¿øýßÚ{ÒÝ¿¿që'_;ñ?6àsìÒͯþèõíÛ;;¿³ÏÎÎíí½ú/<ìwìüµ/lÝ×ÎÈêÿ×gíÔÚÚ/9²¾¹~píÔÉáÇÚ¡£|
+ØÓëW6Ï^ðþ>qèòæÓ/¬_¾>}MO|èâÅsÓcöé#W_zéútlýÊçÞ_>¿øïüíÓcO'Où÷áÖ_Þ´EaX8²qeý3çÎÙ>·qéÒÆ
öÀG/|þìåͱúIuàÔ£ÃDS"~¼/ÇÏâËSMÏ=¦3 at O>øßÅ}|Æ7*|}ïo¯âOü@m)͸N-&#Çé¼¢y¦VYÐ4·&Áx¦²`q.5µÉLEÀ0ƯOûþL}nÔòdGÕØÄhl3ÌuãÜ/`©Ñ
+¶õdpÑ< ¹R¯vXàX¤z»±)®
+Ëa}µ§ÆNvTMy\!Ì5tõ¶ÎÜj÷µ½±Ä 9W\Æ
+)FyNÌìÀ@äbp,ø@zQÒÜ¢¸"k´cá/zî8¬GÖì²G¶µêbçn©i74mfN¯<·¯iä¹<¬&ø%`Enq(#7ç}}®HÀ,ÑHÑbût|³µ
+Û|-
+R0yD+ÜÒïµÎ¾6ç¦ Ì1:{í¢âb¼@ÅïR}-ÂÅÞ½ò,Kuä
+BgT
Ö¼
+eé~ª8£ÁÅ
+
+µíÄÚ
+¸°ÄÒ¼
+8--zô5Û¯ò
¹{O¶Á?-gó·°p²¹¶xʼüß«.&¾U,%Ù¨¬,D#ϨøÃîAhÙÓ7&v@Ôàé#ÃAÎFèOÎÃTmé°FZÖ*#U¢eGaÒ°Í5æ*l0Â*×æÅ>Æ8ØG3[!6hèÅ@l ]yz¯ÕlªÅÀ²Ï@\ÛCP-ÌÒG¾ÐcÞød¾Có¬n -$ãЧ8ÊYÒµqÅlP]FÂÂçaÈA©ã+°¬V§
Ë'¥Ô¢4Õªô`]1ä
©¦)/%ß»µÚpÑ2WIjk¸I©äzTÀd"UÄ\.n XÒtVm¾HTݪSKUq
xí^p¶¥±6Õ& KFrïeÕY!ºÌõ2,ÕC_T{Õ%öÀ ÀH~[jÍAâ²ô§©T©NÑË!zXR( ²ÊYaT?b((i
+×Rm´EÅT¤ ýÂb
+
´¿E¶Øø£Þôâ
+ªÆ
ÍKPà!>Ò*
+c[3e£ äºÔ4{³l(³]~)È&5³<¬l¥H
+2¢âÉn¢1F|îØQÅ
+TS v
>HODëZÌ%'=!'ÞȬé:MI&û¨¯ö ¨®3~þé4iK«qL%u©¢Ø*Ü»÷±»h¬ºÙ
+¢hÔjÇø¬J_( ¢à(>·ßyÜ»wId©øOÃÞ{Ï=çw¿ó=`Ru1i £qLæØ· ¢q΢aÇÚ¤»:Bí*ñL!-Ö*,CÄôWª Ö¶ªCö1Ü;Ðæ&!À
+f8&JÆ[
+ZóÔà¸ô±Ø ýéx!$eN¡D¸×¢PÁÚO&ÁhAU¨n at EBßpH
+4ãµm9ì¤àµ2Õ+ *"æ@|)SãLQÕ¡@r)VÉ
0)3^ » §a
+@b=ë[(EÊÝ๫H²éo¡¾0¦]ÈDV¢?ÜgÉþ¥å
+%P3G*6In|Àz;ç+bIO{Ë>ÓÐlȲÈö$NO÷sà1áûFµ
+ô `\ "쪪ùaÖRl=iÏ dfW
+0°úN¬¯RÜs
+µ4Ý+¯®¤ºÜu¦&mÉDè?¶)㨠H-åØYb*¦*¿` ýGý·g4ÝÀ·Dxo"Å
+
KBfÀò,,L,8÷ÌyÓ
+¼:WEH°ÈÊPà/ kÂWJ½
ÀëÌ>xf³bPh¶3,m3-ÓaËÆSÚg]ÐØLçû´Ììd~¼ö*Vл-Ýbsf§åÂr]ÀÈÐÈvê3³3è«Ál. 493ÉiJQ¢³ÓínØ*øy]\rÍê_M³Tz
+BU!ëëâ>ò}R,¶Óɯ2gf¦ëƤ9¦Û©qø÷ÃÓÒíÁÊÙæ`á´gÃ|wñª a6Õ˸ÓLÐAAãtq©]Y_Òôר9¥ÇfsÚuô>q¿Bÿã¯äׯ£Gï×
+ßûÎUå 4htÔGÁ Þëï×C{_LJÒ. ²9ÆÀeá©S
+°ÍÌúÀÃÏ$ùjø-gÎË2hæ"ò¾È@(¥²ùyÓþÒþ6ÚDµ}õZ¸²0V3³dǶ%%Õ.«ùà×6¬/å1pÕ¤}d
+LÄèQÖ¾»n}sG°åýát¥=<êÏc-'åA¬q¡ØÇÆLOø{Ý£íX±
¢ÃÁ(dÎ"Ä{·²8®¢'2KNMÞÕÄ0ÚO-¦kbsçÛ´ò-Ã5 CA+\ý8×À° æ,]dE(¿ö)©[cek'-Ù´&~{âÄúx
+±ðÍz'ÆBãoY
+ÂFí¼GóýÔDfÈûÏ- at 1ùïÝ®®±é[÷ÎGa©Óú×UïpÀuÉMªÕRðONâ7×=¸[»±òlóWû±Z³CþUw¸tmÉ=IÝuæx\¿¼F@î!$¼çËõôþC¬ñç
+´
+w|ºàÐݧêÏUdª[
+?Ì·¢äImaFÒ0ü¶Gcö[#Üﲬò9üÉ|2ã8ØêºÿïªÍuÏéòÖMyfü"bc£ä^e²ÑÛçW7ù_CùFȾ¿
+Ämàöµ½ù48oºAÊPAü 8]:ÄbçTÞ®ìL¡KêÝÜæ Ä.:û$uªV;¯lô©[E·§Õ=y{g¢jp3Xoüöígõߧ£q»[=0ÊB½àæåÕHpµýXô¾lµ`ë}u½{\füøÌäZ¹ýÉØ%ínv[¥`ï×Ï/)oo ÒëçBÊ'¢ÌÃTókcT'Æ,>OyZ·ûòSQ(pròsBðÑ
µVHC®oh¾ì©UWý2ðçÌQhV
+SÉåÚlòaú$|I:ðÀõÒѸÂ÷ÑnëßÆi]>zþÒ9¹ù_lz9ëQõ'hÖºx4ó$uᶽ Z°ºòàÑÚ«m`Rm¨>º) eB¯y` Ôm5u·v
+ãqK˵ÝÉ(
úü\O5ïyÑT1ÚLO}æSËý»V5{AÑ°!¡Â+äþô-ÆðÏ¿;°Ît¤Ý+H]¡Û%O{H2q]íùï¦"TÖqu´ ܧ±ï¾ÙvcëTTÞâ¤Þ&÷kKj%ì®ÿç®+^1\íÊÖ¥ñp¡X[m{°Ï¼gM7(Fûá,íqÂ×ßîÊþ£y®©¿UQ
+.yßóq½vúÞaÌ9·æ÷MÇ5°¶ PÍ´êN¢÷e£i¥gÔÆzï:çç×mßñô ¹g^á<Ï[.ýáñ}Þ7ýÌh92Oï6rùuï;~fÜ;ôàÅy¨+ ãx~}]ão~5þP8RëµãWä}稯Z<ykùEïéÄ£bv$BQ.w,5;ûgw1iËÕ']ø/¯UÓZg
ýùï&¢NæÌ÷ØUb¬Fm~Ðh¼ö6&ñæ6¶7êFþ¡ºè²¢àBJ¥ÐTèBÁ
(E¥H>3gæ½m´¸ðMîMî¹gÎyÎ×sf÷öåïÁ?<`D;¿ßúüC÷³ñP\½pó·³{çö÷ÛW.}¼và¾6ðýèÒµþØÙÝÓÄ_?ßøúÓwÏ÷^ÞÓÙîÛ|yåúíííåùîÖ¿ÞÙ¹»»{wçÏ_®öÎégÿá|}<ùúæ[õ9wîü[ï]øâ«ß^»zù«ï
+ú½>+Éjany£óÊÊRwLüøÊòúúòêÉ1ñüêæR¯_µ÷g
+X¡etI¬´Å'Ö¨èK:dMc
+éRfÆ·Æz¸¼¡K[ádÌÑ1>ou
RW
+LÀ£ÙBo0³è
u=àD;ZÀ"n9
+^_!åÞ BV%´,V%ïýX8jÀ¸ÚÌøÑÀ ¬ó1¨A
Z
+TqÉ";18 ÖæBWoK\&M#*
+r4ëz©ÂªfË´â®
+!y:Põf<ZôªelÓ¥ÊÖåÜqAÊ
+B¨K
+ ?¥TC½ 8eldâ«,Ã×>çó¦¥=/¹=ÁG6¥£Ü¥=Õ´1÷G¤Ð×iKÃ*_TE¥fª
º2Ä aéâ_S&.l=£ ©mÎ
+Ö¶tr¬£·#ûÕ¤Ò%Vjn"Líy4f6X60
+Ú¡&Èd4ú'õmZø²&gLHÎ¥jæh%
+endstream
+endobj
+108 0 obj 20846
+endobj
+109 0 obj<</Length 108 0 R/Filter[/FlateDecode]>>stream
+HÔTiPWî?SY¨±ÆÊ6QÓÆQÑѦ»o/·ÁQ at PQ\EA_ðÈêãZ¨Q© (%j3âHJqÔBE1ncª%MR&Ñ!VBsïíæ5ÛUùGñÞ½ß=÷»ç|gTE1ø±:5A
+Dz¤ØÀ
+@`C0T]%°"ȪLL%I@¢¦kJïcAGH! $(ÆÖ}M4ÜIGÚ*D@$ IT-PQEâ¨*Ú(U×0·YD at U$²tD]ÕU4ºU7$G`ÁGd8l ¨
+²[²(Wìû¢!heðÐÐØ[HP
+E!AUÃr@BÀ?V¢ HTdÔV74A©³HTI×(¨:ÜP*ü`"=À଱e+3½¢&ÕD±®3KYlTÉc
+¨Hµ<0ª7Hð0Á7óAþ©-äc
+Ûf½
¸¤1ZES°eª*4ZED]d÷ACXqW´pę́e˱T¢7sVTV
+²+r-(( VÕîvì1(U¥0ø É,ZC,iDØ
+ê[© "ú¥ÅFA:AØk:V*$ÙrAiAn$ty+Ë-½eÕ¬h@ýë´: íD]»BÐ5Mc
+"ɬDxK¤å-BÉév`B at h«ö}ðF¥~ù¼´mUÁ4¾Øv+Û ·
·dÙJ(!ª
+1Tl
+Î:ßÚRtuA%RÒ»õb"¨9ª!hPÕóHÉ@$°ØDå°Bf
+9hvHÁd;
+CîÀ :Q¡Ã1
+
+÷eèeCAÖIÛC¨'UF@£*VVJ at xrȳ¿ðô
+iGèu([ÊnCZT><-
+È'¤?59d7Ø7vD©ÀHüNpûÜÁ¼"©z at BÔ¯¹ýç©Ì0ðÙ'4üE?øï~?ò¥'cxªoÌó$OqܯúFs(l¨ùM¿ýdýã07)Fñúæ·ýà¡Ió2SÇù÷º 3`cóôÀ¾)&åXnø÷ÃÐ`Ç)?ı8bPSòWÆÿÉá
!:øô@§íhcxY È èí'u S#ßg;QèÆ9.q¾NJ\R´:Úy4,:&~j#ý¬SæÅtsPd.Ï$òÊÉ>·Ä½ø¼ó,4iöî
S»2(,,,Ù+2!}Cù(ûu/sÜóâzbæO
+³È¢M%±½(¸Ølá|ÕÕa<Ùçȸ
à`pbÿ][zS×]>¤òä»vÌåPBæhå©óAÀøäk?¤º27ç®inm»ÕÚzóÂßr²%@àO`'£cç!åÈÞ¬^ÜbÂÚK÷:Þn¹~µ¡b©+hÐìdüü#ÈÛÞ¼YV[ÍÛ¼oËÂ>ÜÙwã«OwÖ7Õ%Pñ_dE@ÊEøâHüt)®©)ßÇêó4qéÛ*½lÏó`²ËMK ¦ '~y¾<;W&÷A±ôhãÖi\°·t)ó%p[K)ȧÈi
nX "Äs7×^Ù!¼¬~eñòTZü#qbzÉúŬ§,Á(d,Ù}¬zå©{ïZ@³Hí
+QsQkvnO§§!ÞÕ@¡±Uº(=Ò°«g([N5n%+ 4s2µá@
+UF]\¾ä`ì$kʤT:¶!ª;EÞÑæÆelûÆFc/z}ÝñÑ$øòÚí/ÃïÐi³XKÔ7Z5ÎÉWs½õººùðþ×V.hô½MGËgs\FmS-(bÁ6>Vn¬r2¥âÃß5¿Ju[¤±¾ºjÏ6 ¯¼ñ³ñÜ_/¶¤EzhôFð«Ï-qGá
oLó³í7Ó·»ñâ«*êþ±
¾¿ù+Ǫ.ßëx¯>°È¥[¯¾VwzWjCüá6Ó4l©|½îòõÏÍæ2ö=Q6
+R]záv{Û¯M³ã4¸m$/±gMteSC©íÆ̪Â|ôï;_wv~q $èÜû§7Mï¾ÖþÕÖNÓ¼w¼8/ß;_ìz¸øíIdË®~gú?°àÌg·Î¯¬,ojyïØîÀ¢íµÕ}Y󵣬j8Ïñvùå&×ßyØz|Ï®mØĽöáæ·-ZiJ/XµùJûÝ39l¿¢ùG'Å7ÿ$:FÖ|iv¾
+iά¬ÜÄjýþþÛeSH.òkμÓr»Óì8K"«[æ£+« \zË4?ÝÆÍ,{ce(yçâתc`a,¯y룶éÝS"åDG7
+óþ 7Àk?7ÍZªjVÐé⮽|r9Y$VÔAÅ7·¿[Ã+ëÜ·Ý)Ì»Ç×Äs¿GòÜöñÙu´#'¼vxoYd6ÞgV>©/Y@Æ}îa
+³ãZÓì©öÙL1׶tù{ÿ÷Υ󹩬áÝ
+ÿéIa6í½ýÓÅøâëHk.¹J¸ß<´,ûc+ÕÈ}w{St}Z7Ùeùæ¾UPEïøÖ^2[Üø?mÛlEÏí5þG}ÕÆHyUáùcÚT7Ú,¾@Ò/÷ûÜ
ÒÝE |¬A²»[Ø»t ÛÖJ
+hµýѤjý@Ħâ£iÒ
+´kB-¶¶&Ò6U0AcAZô¹÷ÜwvfY¯ÄÄ»Ì0sæÞsóç{ß^ <ì]LÓ&oÙÿþ¹]ükßäbþ?½¸«´í@ø·)U-ôÛ_CFuüåÇIûO?°½ôýPG¿Mí2-»àâÌÛO}qAö
+Ìúçá¾ |¶y[îK§ÚÆ_
+UFÝøûÁ<ºýËß})$óÌI²ýí¹¯oûÊ~«¥¢yòí\üçôñ7_ÿó;§ê9zëµ~ÿÌ7Û²7=÷s¬)¯þìê¯åñg)ôüãøo9~ïén:¼£îº´t׫ïUíøà=í¥º±dç/ÊÇÝ{wiÈX¶ûbp|sïCsº
+skcñýÇN¸þä±ÝóÕûï^Õ4¼äö±g½óî©÷?8sæÌÙëO8òÂmëçk5Ùk¶>ñó_ÿîûÄñ"ÆÁ_;úî©|÷È};·´¼ÆÜÎ
+Í[îIc`à¾ÞóËç_øÍÓ;·ÞÕzþåç-«7ô÷l¹äõÿÑØÑØxko×r¥ÜÐØÑ޷ƦVÝÛ¢òÆJw?óñÚÔ_ÓÓYééë-÷dÓ`âÙÔæ¾¾uÙĦVÍÝtï½Y[yãÚ³Éøq:^ø·/M¼9k_ÜOÂæ÷Wh+<ÌéÙX^µ®»kyöº
+zzW1·önî§G
+£`¹öÞ$Êò°P¹äF%*gÒñ`¹PÈÁ9
+Ð
+Ìeq3{ãh3{Í!PJªd´ZxB«¹5´ôXæc¸<÷Òë0WêÂ\HðiY\¯sjÓz[i#
+°SaÔ¹0:
+æ¡Q ÍÈvHLda«´aií¢ñÞ×Ào"¶-<9
+ÉHiÖ;ï¥ÐÊÍI26,&¾´ö`!ÜêV¦
+FliÅz
>=!û,#\
+7H
+F{AÄfØYï
+»r½b¦ÑNPwàhâɺÔCÀ² 3jF¦c"Q±@+òe}L¯ïeá$\ÕK
+õ'Î&>¸Ä16å¦eÑ6HóÅViy¡yM@£$E°Za¶$i#9§Ì¯S\8ÔPØWHD
¦`ÑK6\4BWiÁ)1éãV¶jd-<CQÒLÅRÕ[t8ãë¤e=è Ó3È\ÅÌÖ:@yã\HPƤCÆê´?gTÇÕ\EÆW®$í`6©d }kmË(УáÍq.+¢àB¡
+W5
+¸¤õáÖ¡-ñ§Ì
´ &
c8!-Rq
+ï\rÀ5ÔµÈêÑ¢Z³a®QÔN!,Ùæ´OG2Àx¢Ð¹tÝ
+F®.J(î³5,å;BF3:&Á
+¦@ÒÍiV)ýS*`^Ä{ÈLýât
+FÇÐ&èãgfRwÁuR
¶Çµ,ÌehÁ0ò`äYm+æÂòÕÓºy0ÇÞH'¯\:îÞZM3}õf¶äâµ¢Ö¢¬´Ù°þÎæU
+,=04¯iàÙÄ%½½åõÝ]ÙêþrWOwo%³7gS Z
qç¥S
ï&d8B*}È+R ³æÕ
+STʱàÇ^ì²pÕRE¤ÊO at M¸7¯o¸lZû=:¿¯²¨»³¯¿'ǧºa±L]Ô]^×V®ô÷Üáf7µÞ\|g_ÿzúið¬«oUwGx.;*ëº;·ò¬zÅåHNVuÃSëeçõô®-,Û?·Mx56µê¹=뺧_»W÷ô.*o¬t÷ÃMÆmø´¼
+©Ñ¸$RÉá1sTì½ZÂSå~¤ôîj¢TøcOc3§\)Oˤ¶¡½õªÒÿá¸òCëá#ëàO\®Q¼Ä
WÑùÔ¥9Ľ4ØÇM¸åWÔb¿Ñ¿hW¼T;®ø6fÖÌcôõ¥Ò)Õ¯öv7Âä+ê¿Fþ¯¿ñÚRIÜ:©0ª%§"S×\[oÿpp0)öËdl\°r~c1ãÊôÃ
+£ ï
+õ®û(¸ÏGáÓ+&'ë¬Ëmúø±ë©fL(³ÆzcÃn
+ØÚ/Uæ$뤥"Ϊy»°³=@3®ÎÃãK£å-ñc××l+̳ÁÃÕ!⪪÷ß·{ÎuS-;±4ÎEðÓ¿ðøC{Sð56q/{tÇ3K%9¯åAü3J£L$~ùc»¹£°·.46fÎêòî§ì)ÆÏmoZLll4L»ÌÞö'¶·L®ù/ïÕceu
ÏS_úÜ÷óÒKÚäï¾_ZC50XÁ^Pcg(å"÷ÁA¬ZÊHnR'Rj ÖhØr± 4ZPQ#¡^
+¿ÝòbWÇ»}Õ§/_|g1
ïÁ%K_8³}ÈzjµËûÐmCÉÎ
+O¦¯ß¼é×Ã8ûÎÕjµ¾4^Æv®]õI);ç¼ú9,ôêÀ
Eí|£W?ÿ»füáç?µf
+ËîD
+7«ºoÙ²'G^hZÞÂ3éL
+Ðø®í@Ë-+gÁi»/àÕ<÷пZ0ý'6Ñزí,-_Y©Ü»~íD7¾ú§iôkÜòeco\!ÁÚ÷7=6ã\_Êô¿^"üw\¹mÏÉþý¾]ñkVµ°àÜ=¬¡vtcdöW¿4ÌÞU:Þ}|×,®Ùÿî³dýÜÛYpþᤠöÞxýZYV³ÿv¥V>ßRäp÷Ѹ£Ò¼åÐþ.ÅÂ÷J
+Àë7˾çr]CíèFí¹Ö}`ûÆÝ^<óÚ\
×r{h}å\³[S¼ôö\:û/øïÄ3ͯÏBwO¨Ü2±9÷Ü!7h¸òæB½uµÁµ7Fý´tïXöÄÒÙ7g7½ÝÓ âÌv ¾uÛ¨vaÿºÕ;7J{wçÓ³siW¦î<ß(~z窵»OÕz=_úìRo¤û͵£Ë¸µëX¯ÅK§>»X»Ñsbۥʿ½á×=g÷vÞVWPiZyèÆ6>=ݯ-¿£Òø\wð¡à±W:{+¨T~´þйÉÏ¥÷>=cHåúgä}O®}þÉÞ
+÷ÝÖç{ä¢mãëÿ¢ç?}Þsáøá]O·ý°¿ïñ¹ý©÷8òÉùË×úûüê
vþaÑÔ¾ö7ÚÑ:«ãÑgvì;pðÐáòyûÈ'»Oräï;7.Ú¯ù}L0«}î¼üttÌ_°xÃóÏu=Ò>ièù¼ÿgÐرÿ÷¯ÿ^\¦µâµ¯ZCóÍ
+°ò^5¼ÿk[yYûeupÛý÷Ï«âE®áZùõñxãéöê¿CVPÅB"k4iö=?/|%<pê¤3&Mx|ë´ö ³ædéïã¯Û/g
+/óàe¼Lûà¶v{uÌXQmôîÓ}n¾õj¾»
+þðºÕ~ ê·ÛÈÄôw"ü
»¤
VïVRW½·\N[^ðÞ¼y
+ø©eDPÆ@-%IªBÂõs`]
Ë)Éúìw'HÿþµQ¼Ñ·>øB@̸BY>ØWI^ ®`,À@4ËØ" z
+:L©¾³=Ö¾ÆG6
vd²#4k°À5©`TâBØ Èè
+©U`µÙ0X64BÏ
+´öÇ6$[¬¤dÃ45Ñø:@ÖÓ.X¶ Ô
wÑöV[ac©6´¸ô
2J%i˩cxUuT)m
+/
+ÅU¬\rú>zTf!I{j,÷1
¦¶®°M¨}Aye¡)å¼ heÎQå9G#18·>÷ ¡X`'\0¹ Æs-ùÀbT®/@&°ú®3<lp;¤ì²äzô%Ì X8MÝm8vÚfÐ{Ik.¥ò~TB²0,çRÕСâBà´@ÐË 1ÌQ%Iâ½¾¡ñÔ
ÐäÌ¢%Ï,ÎKSÖ AÁh
+JQ¦
+ +É
+Õ Ù»()(¢e
+)
+ eGÈcösØÛKâ!ê¡×!*Ò 2Ö oPsBo³éÀ@e5v.Ê*pîD=ÐCýª½h¨ÖKZH$
+PÒÂ)
+Â Áí%÷°¤A«¼ø5÷y
çAêAå1[À,rèF°½T(ø
`gÄ$g5hèø4ñR«P6·
+ãDÒ`ãgjÙ4a:xØ%9&kO±.&½¥ö訨ê&F
+PLtpe0Åg©naÛÔ[ààÂÔÇÜÛ täz¬8Byì"c.=m9eûêMY×;j#ÕHvÛy}Ú1q éORúúFÏè!wmó±
+Á=§l!Ów<6SÝôUV
+AÐfR2Ô÷Ú¢²aF¶{¬î54¢y¢y¹w÷\ÜZ¨Ü6p³M¤m?û¦ÄlÆpq9S³ñ7f91Ìé2HSµ`Ùô̦ç]äªS¤¸>ز
+H\íS3§`1T%_4/Ó
+ÔSÇn[Â6¾<ÇÅ$7ÈjàTádèngèr'ºHàI´ËI¡ËH/ÂÉ
+<<¥>fHíAÌÍÔ«å²´b >Ý¿yH´uv?âVn
+Éi¢ëê7+÷9X«ñ2%\/¿P)´I±0ÔAr!Àº|w1J,«T!vÊUâSkâ1槢º}E[å]¶P©L¬sSÇBÌñ¶þàouUßÏ¥ø¥¦
+¬ÖÄ,ÉRBî!¨ÉÄî\§x$Ç£òúâµ¼¡L,xTê©Û'ź c
+Ïjj9)LjkBÄÝHÇ'¨\OF¾hú¡Ä8RÁ©ÔÓO%3w«.åBÊO[ïn«Ló0]0å)ÖZ X^15Ù³ âéùL\´®l^nô¦yY,ÈPÙÐæ/[QQ8U/«Òo(jüî ¸ØFß35kßqwÓw¤n3 NbAyǤU,XÃÀFq°#fè
+ëâï#ZÑy4£U¼/ÈÍÐè§
+[¤=~f·ÅÛUkñÚ¬} SPOSµç.eø
+ælÃþ~à³Íf98oa/Ç{9[f¾¬ë«·W¥¼×=ËhÅg a±ÂTÙ ±Ö½Î´ üAK
+&ªP±½Þ
+Ã {ÐÊéYÖêüä
+9¢ >Ôpá6rÂíøz(ÜLC4
+(5ÕáÍBÒ¾r÷
+`÷««à
+ÊK°s ^5Õ{
+Ê
+n94ìü,0âê©qØo¬[êÚ^:à«6èü¬Â×")f`¨Uͽ]?K5qKN,® G°Ùþb%8Â0\^¯²Â\4,(×' bbÌ¥øçfY{Ù3[47³¨¥P%Bøº@'â@a®®Á#§µ{X¬µt{TõûC8R+ax$Ö:º10A¦À}ªOÒáÄȳRþþf DQªÍ¬Ùî±!*{ý\ÇÀÌØ÷Wêw§ÑP¢XÚÀMY§9>LkßÎ[¶q¦ØEð "·Í/7Cµf·M£ÇÅËæNÐ÷Ǫ?źr ~j:iKä±QÀ®®o\4R t³î'.s/|®B®ám§-Ó;Á#:þ-$òoOgxõ5~PØå$6Åô2>G~ÕH{í
+¿ß×É.vK1cåÀ¹éJËàE5§6ÍéÁ0Æä)ÁX ÕmEJɾä©ÌÆ`[º_ñºHã"¶LdóK>>¨=^Ze
Í)ªêæËïs,Dây+S<o)ÒÏZ,ó#KñÕ(ñåÈRÆlë+ħ2ã0ÎçØ"2´f ù!hàô=^[øÜbX¦@>G7¤¨8åõpykøUÎ
¤ù*5xá8T«×ìOý
+^Ác§Õ0h°É®eçT]£ºdÓÔ¤ªprqC
+Y9KïpnëZyx°öQ|áê2\£l at 0^/ £ÚÌÉ¥WeÒ
+ÕÓº)eÃ|.T" ¤¨ÈgWÏHXnGbNC ¹^Rä¥ÚNB6qàÞ<"Ä×<Ë4"9ÀèF¦·±ÌáÍz6'æÆ$MÁZkèX,¶OèÍ×
+Áìβ¥èné8úÙR_Ó,ÎVÔ X`¼Y;UØ|çäXÀ¾´È
+
+¦T×)N,ö2ÃÙË»õ¥Øv¡,px·0ÍÍÆ4i¾ (±øeýøcÐ̸.±½Å
+¿08Þ~ñÖ%ç¤KªbVþÝ[<MƶÒãøª¥4'ÒÖIyÙβÖæ{If',èGÊq¼GÎ8z¾¡wù=~è³ù¯¯?|¸½÷Ý/Þ¾ywûíûû~¾ýéöþôüº|ñååÕß_ü¹ÿõÇw?þðéîßïßú߸ýéÍ;|ñý·÷oß¿}óú§Û/_¤Ë7ø÷ê׿à¿ï^
+VKS:À, äd p.ÒÂhè2cCyÕ±#¸rOü
+ju²uL=U]/UC6@ÅNSbti3sR² %ØÏ
+¼.MXdµS}ÔGQX#ÇÓ¹çR°ª³$k½ØîvºF!Æe±]
ÀÈPùìåæøØúR«Ö."^æǹ <ûuÒcráe r}6¡ê;Æâmd@úu5ñcUóàöºÊqg1J«K¯p²¶ü ?*=Û ÎáαX ÈåH\ý
+r0ôÞ0<Û^`Ó¿¢8>9 ±åÀx--4Eçt¡Ýë°ðìEÁB;Rßy³s£Aí!¶ßp`@n§Ú®cHK_Õàú |YÖlúý½Õé>qöæI©9VVX'" \qôú|UuX¼©nH:Ù@=ë&Wï^+þ¶¼©Ù¢%ùPºìó"¤¹¾~mwQ¸<YØkõDÓwúÖªÄ#©qÔO¬n¤¢Z\0dCM^ºV³)Å0]@Z8m÷²²`ÎØ¢&B¾ùL
+»`CT+`»µÛª3Æf©y7±KÎcMWPÅï'çhÒEzÕn°É£W1ݬ `YÎú]¶)ìQúäÚaa§Îã$JD-X,]Zx÷ÄGpø`i#Ìõ£g+-Jк/¸êJìIØòb¾~¦Ù=j×ÍTͽ¦e6Ê,¨[8ZàQËßþßÃ;A+LMË^~çeEí´¬ ÇÑëº/ÞºÄ[ÐÁÂ- ÄnäªÀ h8Çüò²Y±¬ðÌ;ôÆë'«²Jp!o èJä®@tÀ·7"#ëÜÛ}[h¦«Ï©S?_TG*6Þroõ>R¼º.
+O§ÖE®¬
+Ä>ë9¬÷{økqûcG©îѤ¼`ñ¬l\ßÂ7,Ö¸TY/ÕêàµÀQ<Se_ÚÝùDÙµyd"{`zÝYÖ=#Õç"(«Ã`yh(i¦áWWµð=ç$úþEÿF{Ûô
+×]!Fð=ÉÐF
+9"ó[ßÜ¡'÷£=^3zd$Ú)(8F9ëaUNÅ(£dAVÚhSõß6Å£Scçt©x%yêDÖÛ8è®øCÒ6ì¶+vÃÿP¨ó\&ñ90··rôÎÜ*Û£CÈ]á¤Û²"ØÀöDYö)+©ÄQ/
+éfü&\¡Cð¸µkôÞçºgx\¯^GõXY-ªá[-2¹qjWV.e_¯C1§RÓúÔcû(Úõ©^ªü¿.C:ûð*j}P\ù<íÑ3'YxvîjWþäË
+«,X-"'k¦Ã<Ôªp?¶3Ìj-£Ej
+Rk¥«Øc¾iuF)Ýj+Vp-þ°g(Uúgûû'¨GOÎTkÐÉí@Ö×@Mî/ïFöS£÷«ke$Êî9:q?(eØ)¸º5ôIà׾߯j1¬ª¦Hëj[¶"Ã&*Uͤ
+p»)E\GRÁ¢1_rô¢n<`ËTíaUÐ(m at AàX¼¬69bÙ[ÏggÖ
+ã+ËÀÅCàÜëÁ+uècY¸N¡Å-÷'!ìíÊðÀ4ÓrRË9ÑûzÁÚ»·¿ÊùDÖ ÊA-Ï
+V
!Ä)[,¥é¬Þ²Â|z<+gÙN3\Ý;õ<0WÎm6ÊàÜU!Á.6
Cg®§ðÐH§B*«¦®'uóÆÓÂÛB<»¯{yT×bä c/ÚzMÅ~UTÊÌ»màÃ}q3ÇMj%>5G<izÒéác;ÉÞ/N
+UJ\§BFp-Qq#¡õ¤Ï0¢qǶ3{¦làã½Áå Íãâ0's2ùÆKÉ
+ðDïþª^ÜFÏST±ê9NY£¡cÛ¥ÒfV1ÁÏÚ?evE©¸B9m
+Ǿ~À°×#p#;)¹"R¼¡éãW'@¬pút¬
+8{Ñ
+µÑYqp¼¥ÁbsÂT¹],ÖPMÍæ ½%Àç$æi
+¨½ôayO²KÝûLGM,´DaÙPÏsd^#8>[@+dÃ
+e mÍnHh!óåOVµËJ°Þ`r¹!£MºF_5Ý µâ§\µ'|7°LÊ÷>ûé¯ÿüëÛ_nýòÇï?ÿùÏËXúá+üøüoü3ZÜÎÓZµTXG¹p¿Wø(t YÇÝ}3gÍ¡#×ÈàU±¡ÆÙPcñi?vÐ=¶EÖäny$mÁïEqY`»+ÛØsO£ÅöÐè+-Á¢Ñ,$ø<\9Z§-¥Þ±H$ ñk©ãñçu¶À¼iËRk;î³leéb×Êê;]}~vÀWK®uDëCÂmKM-[¬û½CfF/Ü:ÑCæ!Æ<ÚFYàE"&÷ ÊEÐ~Þ»Åb
+ÌÛ3IUA©ª9%aÂ}cÓ\ý$î2ÌüÃ92²7ydn]\Â$¥¿Øë( ²7¶¢ú´À&jdKí
+Ý
+EèE005.9@¸ívh"wIC=oH¬ÎÇÓam;sZ"öðÚµW¸IúÉÀ±°æ¬Aë_ö«m©$~þ¡^6vTÕÕ×ñ{×;3
+mnE«
ùú=YÕ- !Û;1aP]3³N<)©óÎÆS$|!9ÈÁëDÓaªyß_ÀXyDÐÆÆ-Nb;pF³Ld:'rhÒÇ-ÐY9Ñ`æÚ^VVÒ2Ô2JS°¸SìGÄJNÆELö)\1±×¤izL:$GúÕViå2ß2TíHI E®I´¾T/QidP[WÈñê¤ Îý!uL.qFDïÚ
+ÔôT,ãBêÞfe`Ô(HÕ>fFÄ9¹õ²Í
+5À©(ªïbP2FÄ xüÌ7"×c*ºQÿü!áW§"I2×ÛXJAW£Ø5!üb<ÈF.³@b1j¼>ÓL»zFl»Q4z Úbv#¤µèaR`ÎÈD±ÔCV¨Þâ1w/LlKLvwÁÙáÈ\òªÛ[º
¾S¨¢è0SùBÂ7¡î3ÍcÓ(î12ͬÿ7Huñ!]nëQÄñ §$
+Lîuæ/<ÄDÜ«1oò`®ÒyFͤ(»Å}ÏƵ3 IÜ+wEþE`ºÕyK¼ûÌÊ
+kc¥Y;hË#Q;é+ï3ZÄÍÓTZÓÐÉ8d½æEÊ·Z(¿Ô}x=â
+MÐjѧ$¿)õ*CwZÐr?aRºPʺ
!ºÄAïøF´¼q&0ý
Hq²%
+úÈ[PâB0]Ft,°J;ÌÞãÄÉ"±Ð÷2UÕPê+©®çÆTÕÅäú>²lmXö8
+¥×ôZ
¾ÇV*?¯O¤®?äH
#%Àdr??tªÓAxåf
+ägÔ+½@GÔ¾ne,õBY_ÈHYÉcSçH2ÖÖÑ?GO<tU¬´p$´ëY|hôBÚÂêË)Á-ëK¨IM¡ÆD®NyYn½ÐgAU!#}D !Â9é#Ê\F,ÀÖ8ñ
+¹"RGk+âòLË`(ê°"ëɨ(3WѲ0r«ãP ãz0q$
+D1@=4f½ÃBTz+ÍiO2!Õfõ¾6¬B¶hDöBjpcFbµ
Õq(
+Î
+<Ýa©ÙÌô' 3r\`ã0£¹â§8!¶ýó
+«ý
+&ýÑO+d72ÓæÖîKÌËelV7ýD0²³jXÉ` àÅ`&ã /?cì;"嶮
hGÔ:P§$3þÉRUÎ-oî\Ê!%G¸qÐaÉD;"ÖÇ¢yïÖb±(ajÿ
+ØÌgI>,-ß `¬îq¿J'SÂzpß8%'¨
+ÓÄ1÷t]ºSuÈrÕ&i
+góQlhÃñm^}öìÎæ£ØÏ®·zýhÀã¸ÆË^ñ:>Ê/>¼Ê«ku6i˪ؼÁ¯=¶^Ô×Kø¨
++Ë+:»4á×¾ý×ê*êIùåosàsÒTM«Îº¶¹Þ`3µ¼çùbZwÕ¾ ]ÁÛWÆíï|.¾hø#ÿéáz©¿íæmrqDXºÚ|»[¾_ñzçñW¿Ö®ZE}Sü"3¾Q¤äãñÕ²ÏvQ7ßÈå¬øb
+¯=rwï}þ°)aÛ*ã°±cõº®óbªìXù±âxßØâmÍ/[¡Ipdh(¾µ1ÄRkÄß7«´½ïü6®.pIX3EÖ9©ò}ºW~ÖLKW¡¢mB«ñ8«ÌÀä³î®*æ£ñOuó©æ/P;uSïªñKX7>+ofUágµ:¡4Q¢è«ÿ¥®G½½êü_þ?>bèøåõ¯k5Åèù)¯;Æ'9SOFj|T|Àï5Cr~HþÁ¦¨×ÛÞ¦ñ¡S¬ÏË
+ñ¦@eY+Y £»l×Ø-ùaÓ¦³.¶nzÏËÉòzÔ[þ»:nÝZ²,¾áSÓªtÊáæeÎ5õåÕQ£©¥cH?Q|+Çú$o»
+¾6õtQv¸±¼ñ7
{í6Éö
+[£DÛ$Q®ö¥d=}Ôúc)f°æ)ÒXí¼Ïnúx:ýÂP
+'¼józþ¡iovÙÁµ~F=Ë'WÀµä4á;Kǯʮú,pzk;¿Ó1ÞÞKÕø´È1}ÓÜÿxÒñðÊè?ê»ÁzqsØÌÊC786HÛáÊisSþêã&¶Mþ{T\¶E1ß4uOË\,4~j>É+Xø<t
+7¤ÃVçN@ªÅ <õ3ºÐ
+§½ÙrÚ§µÅ
+üz¾iðÝ£PàÙ`^ÝC·ÝÇÀÒäA òÍò øݵ½»õ¥
+ýÐ2ÆpÚ:þDÍÀ7dûÂ
+ÉZä`rÀ/cFKþ;¿rHk½ó5²â\aø°ÐÙç çäÞãüböp »ÒµµþK{p¨»Ä5+ÈøöþMä¤ÍÖYQ.¨¡nJO\éóqiøõܵØAÅæ(zøM|
+î¿(ÜlFøŧvWÕ»oíÃ÷\ë_M/Èþv; épnô&ÍâF!ñlL35äÙîØÌ«É7áYÓ'!
+ñíßû¼©KP(¹áªÆ!pïÈIB¢X@qá
+t꯸s(vSsÚ
+÷4ß9
?xÿîKÄéZJÆÛPqoïÅOJd±H#F¤7ÐHëzEO}÷åð±}_Þ±ïX°2¨«µß³oÁ2*@RÓ%FåHFyyÎ4²$26mW´Ë$£ÄBiÆJ¤cG!×çHæGó,ØÈö÷zÆÞ@¯
lý={Ä9Õꪺ-j0ÞJãU¡¶8q[§¶SïE
+÷àçâî.À¡«/.·7C£Æ·Û@ª%µ"BJU)®CHµ«Ó7ÈÖ%v𼹫rìö5½QÑêÂÔßs×
)+¥ÖÅh¯0W§³ÞÅ8ÂÔ·Y
ËkEvXqñã,订P?öjùeßy'ÅÜÛ*ËnSF5MbÛ²éDµÒ?f§ÏÞA¨¥ý
+¡êQDTM#Zk¨vê¡}¹ÚÐíh¿4´wÔ&¨ÛKkÚ[e¨qÔ&54ÃXÑþQJ³Û×ôþZ0ÄX:$®Ùa
?]3Î$.¼;dY#xÂÕYñ_Þ²Ít$$ÒØ
+
ÎÌqé
µL×Íê:ª²Ò1â!ósÙ²~IîS_JôïúÐܽRÞ½éìIXîKÄÀjs¾ÀnØù_
+endstream
+endobj
+110 0 obj 12076
+endobj
+111 0 obj<</Length 110 0 R/Filter[/FlateDecode]>>stream
+HìW{OÛJß/Àwíê^tØq^´»+
+VÒË¥êVhbO)ïxþØϾgÆÇqB04mQKRû¼æ¼æüëI"Ðo[õ>F< ýòjk{(±w
rÆJ©;È¿ú:¥þÓp½RÇÔkìù|DÐ'Á;È^ÞÎéu%
+CNñ,òÞSÉ©¾O=IyŽBõS.ÄãÂ'>0µnÕ3´Ó[²4Ëð(æ,$$q¬vÃp|¦P¹¢QëVÑ^#íz½^c!ïzè :ç8ôÑû¯âϨ+¢7J±ó=ÎÁGj¯Ë.n×DÈõ1pèM<¦0_$\Q1?ðÄÖwѺhKµ_ÖÙU³dÕlHnmÐhkºÁËïððH7¨Þ¡,äõb å.|8Ñk´
¶sÛYÒàÿÉÁ5 Ï|ÿApðúñ¥Êï¡áû·¢þEÕMÐBõãP¢íµÍgÄ]«ÖÙ54aogu>Ûv«Élî6UN[NGå·«_ÚÀc"k)íg gQÅtö;ôøÑúó!2§Rsççîpy÷C)øYë~C?³3ÉÞP*6¨jI¬ÅÌT¬D~BåaTËÇ«Y-ör«~ð_â%ÊÍк[õ·!¿ ³¡¬ÀÒ8pßêÙÍïçצ4ÑGÁõs×mhgÙ4<eYz*¨ï%Êê0îJT*0+aRË`Í°ÿN¾}ì
AR¾}¥ñ'õ¥Þ>^æÛ×3Ø0R³rlË¢fÞnGα X¹
+ýZ`Ïá÷ÿç|ê=ø\Õ
+Z°ó%-èü¨h?<Lnogè¿Ê4ë`<&\ÙËÊÇp}Ä÷ï'X¢àÀÑzOauÚÄ}IÛÊMÂ+¡F=Ʊ\j-7ñ®à© °¢¿2¡_sJmÖéÔ,Ëjfó/ÇØ\T¼ß`[léImõíê) ØKígùþÖæ½Àa<æbºT°7YYrµzäJMK8/³ñÖiʯÉÑ¥+©çjù8h;L¦}Q¢©ÍÑÐå4CôùÞê99N .±$û$dHÕju[%¾T8õ3ÅØÃ=Ìʶ¬Ï%Â#%G4ëDã²µó5ÖÎWZdÌ`*_¬"~ø)zá[¡Y.õB+tºæÜ
+^Gþ½#ߪ92Zë8wýÆóÐú_í¦Ú¢ÏC?¡ò_£øU>¬ïðAôã_¼§qÀdÆøÜçá<
ïo?«vÖOÛê×jÈ»é»XkwÛ
+r¶6èIél()_ó©8Z_s(9ßç¡Pyãk7ºDTݬìk¢Úóù =nÆ\L /ç ìMV¢^A¹æåK£éb ç
±ò¿ê;å×äèÒqìzn¨Ma2íó#ºr!Yp¤Ï§²:Í®±+¸Ä\î@ÔL»fuN?O=:
+C)çÆfàì!ö$¹ÄrðHÉÍ:¡az]³Jç{öoAAÆxòbñÃ÷Ùªuúæô#PqÂä§xé4b9xêU>óNííìÍ.Ó5~ÛÙïFÈ3¿ìï^þú¸XQZryÊCW4
+/SrÀr¡ªp´îH[VÛÀ᪨x?©Z\Ä[KT×+IJýçJR ÚØc
+pQôRSI¸DÏLÑV"m'Uî'°=?÷;³ù0Æo2£÷²N¦rB§æ4G¤Îi*bï
+M9ĹKݹÙ7pϳj»Ù¡þ·;{ÈQ_
+UgÜÿʽUºµfCý¨SlÝq}<páoB
+¬5ú±wÓ6d²]«í|NW³¹7ÁÅ&¯é¤¸4 ó.L#u_Åi^oûVz'~CÙ-0÷ÂF¦Ó,ÔÀL¯·UÍ-%!ÊÇh¶µ6ʹêçµê¹ÔütÆ Ì}5×]ÌõßQßÇ34¼Ý£^̵÷IL`üqAoUÊ×Z(§VÌ|êMÊå@UÙªk¬2}Jn ãðø{s±UFÎI³ë¸ÖJAnW£Ù}EÁØö
+`gA-ýûX°ñ EEa¥ÚÇ âFj»¨ _ÒÐF&j7õ¶½F5ßq`QIÛ*5´R*¨TÎ"Ia7BÿÀJEt¡aD
iÇ{ô¨R{ÉH%5#Z@èí7ÀºP0µ@- ´áäó ÃwÍc
+Í%^wKçdx\R(¢t²ó¤$ËGq7WÃÒ»¤Q ÕðøZR]½¹Æß²^ÊsØÍyvË
+s,v-µMG訤¶çiÉB°n/ßEÍÊ9_BÛéÖiî±c6ÙØ:Û5ô2ã GðuÐç©u+û,ò@Ð1
+`µ*´¹#LêaÆvVrȽ[ùØVÊΦ#ο©éGDïCjÑt¼ãÿç¾JÛ¸è/Øÿ*WRrCq$SGü:h++ɨĩÊn¹ÀÄ
+
+Ó>ÕáÛl^ÁÀlC«DHÌDúm<dJ cøÃ
+
óÐD0g&¡
+Æ_Q(ÛQÞ9d[
+ß½íUE]LøwvîâÇoÂr˼ÿ;UðZ°Í¥gÊÜõâþÅ: fÔÿ¿h1ONìܺÊ.?vºøþ`à
+h÷ÀÒ´-Jtö»N2û£ýÁѾçm{U7££ÁèxïhË¥¾×IÝÒ:YyÇ£#oÛXeÎ×iÍ
Ùð,ÌgEa7ì&vOØjuÏh"BÒoØ^þ/·Û¬Ä¼¸/&¡Bürf2:
+&ÔV6¤'Ì·Df+º0çЯtpxf»6
+s-1 ýîνm5¦ì|=³û,
+È)öÌNzÃ-£WußEÐÅ°ßc
+Û>r×ëĸ¸×WGì|\ØÚÎIüßöma+EqCÈ'¯.{E×ëÄ`L¬ºÂô;ÅÆ×DZ
ce ó¸3N ¬ ¼{ä:¼äÖPußQi¢°ç$ãÙ¥hØ\¯óbBëî¾eùJ®³ ¨Y5fK¡àÿÂîºÉoz/ȯF£é+}oçåÓV{ÞR© #`³ÞÂ|ºèôZs9/(#=¿Î=ñÃV¤Q×ÁjIÌZø¬/Î^Û#¨ûÿ¿Äß%.kÓÝw~äú«^ÜØ>Y¥¶5Úíο
yÙÌ4=¾ð<t~B ªH¢KÌ^42épM±ÁTMÔ [ò`Ð9e<§´·Fû£üc¬äÛqyHe[Y'r©HÆ·;Ï1Ú{SèÞÆNdÁNìƯV®ýnæZbÈ«ÿ×Ñ
+þ»ðò]ò0»rE,C®óâQ}\ òià³È*ÞbFuåO!Öwi²Iù³_ 1,tyôRG7Bõh{¬bØOk8 at 1sÌ0÷ë©.@Àåxjõ·èBj£Ä]öôÀ>£JFà9,!j2{ôv³¼/9MMÞ¯¶%]5aéÑÞ/¦XAæ zÍ!GÞXýý<ËT }ÎI0U¶ùväõWUdίMN!p{±¹±ÁÐùë¨5¾Rïö Pñ¥ð1³jÕñwWʱ@¨³"²øùó·ÖÄ3|A§6¹·ÓÒÓàeå÷&öO·W(2ÐLbÿN¡@¢øFO0¶~¼f&GË6¿ir:UãlóÈ.Nx^Û±ÜgQ@ k¶T¸Ë⣸} Ó#=\JèÒ<Æ6o©Ñäöì
+Ìê¡ËU+;XЯ°¼Í'½h+9Ó¬ÓÊïJTQt
}g¨/â¾^Fª¸ß8}(TÐÊçÒ¬zx\â<Ãk[i&ð¼7'n³fy1özÚ Z4L;|çJIÑ^ê__RÕ~:=Éè}êßû'Yeuð,«ÃÔêi!<ªè¨EnAUÂȨOºô4ìg8èNq»Í¿ÃTOO5Ûs¾Ónÿv
+²ê´UÓÖwg19ò`ÿÎN<pbÒªcU©ÄºP\M§@KJj)e!X@ÒArÚ¿êÒ¬XÓr:$p¶³óõ Y|³!NH
ø
+¤TüÝBw5¼
+»±vųÚ^6«Ýyf¤ðÃÃÃ=oÔmà««B¿¦Ø¬\\À·Â÷JΤPÆÎJùäñÁ¨¾P êD»×Â<åóæ.LÆÎ#Cô®
+ø6"¬F£ÃÍLÏ5P6¦k]®Qu`Äýáv¸z-hEã9à¹Ú]§@È ê
+8N0®ÛSûS
+oVQ×!nVÑb0©¢Ø`¡H>¬9½ï!VwZ,¹0y5è/´´h#do,#M
+¤ÁÞ¨p@rroWǶÖÿ#ælm&hA««n
+¨Íc'¦Ô?\(_K_6¿ ѾÏÛcÌO_½ç.k 32X÷ÄZdgQB-³³Z1é9®o!RhÚ.2|ËPßÒQû° '
q§Cµ>S=MÌÁÕÍz¥¦åÙXä¦Ø¹uZì,bNMeµE6¡cX'F= ¢]á9nn˾M¼+ÜRª®ÛÔbA+(bЧ»`÷ý`+ÒQhÃ:69;<ö pñ>TîbÃn|¡!xÞà`¯7ØMC8<nãtà5Â
+rÕ*º#ÖÖ
+FB¥=M5¶H}G%TL~×UåìP
+ûYaU©X}T8°M"¶º"zU³ÊÜækÈïîï6¡ÐIq)N(^ð92v:=ÊÙ5`fñþ¥`§ÐöÐ)¼FÀÍ%¸¨{¤ù Ⱦ!(=¢®¢Î®;F\ ¼%"ÊÝJlg&½Ô·óçcQ</B|¡2-éÙäkì¸Z1Lsl.ñ#i_3³9\0OC^ÊÊSt=ÝÜæ1McÅ·éD|%íäÝç+Ê«RßwO'àê Bìsj?¤V·vXO¼-Fy)½à¬½ÄL`«½±#M·Kç᧧Sõ_ÒËsKUe ÀOàCP"bBDÅY·Ù1ÀuÖ>OÆ,8ι&PU|¨®Ö*ùgRê
+ÌÛÆi|M7õÓÝòA[|{Y|Pþ°=z|Ý#wº%m/ã¤ýLåöÒúêÏïÌî|ûá}¶~gyÐèæy1¥å¶0ÖÍÇõòÍøÒÕDü{ødÞ£S=ÖLï7êDød±£zðæ%¾ºYiàA¿ñ7Ê
ýn?YÏ.f`Tä»óæß9¥3ûvòH¢Yu¹¥ÇàÀºbooxY~ióolÁ²ñW£¡¶ü÷ì+öö]r*§Ñf©ü½¶ó§vwÎaïNÕÌ8©þ·y´ýM:-?M¤ÖêgRSÿ/©|6ü4ÝMæño²ùdzs÷íQ
+ÖÙælÜXÎþùYYÕ¿9û«®à¾!.NÛñn´Ü|0E.ûÝÝ
+ÉN
+XÒ£Ãh¼
[^ÎÖ÷5ßÀ¹ü½^;ä¼]×Îìe °ØÝÙON[pI`FÊH}è÷R`qÛ©ÛãEfÒÈ÷OÔÕ®¥³ÙpïÎÔ·" ÂcKÊpËÂäs9W0:yLýqâTi5è46B;íßXVÞϹ¡prpf¤>=C¨ÆØb%HWENLFýÑ!¶DzÜ^{àÅdºvª;éÝøK>Û$[:ßdÙfjVMúããiW,ÝÏnä¼ÙÛ~E/P%4§á
+.crNtvp8YÖ9Ö/Ù÷èØ
+7éE<ÕxÒÝöPIÈÖE¨©¢DZ,Lqv$u!$µÏ:ÒQØ\DâUbá
+®·svÒ¤&ª2þZ¤ÈJ2wSP¾½ôj#õF]\5ÄDÆl¿ä©ñ
3Ø©=aÚÛ̹-û¤$ÅäÔê÷¬¢Z|ß}ª¦gÀéà,ê2ADeæBÔKöÚ¯!4X ¬%#èPêúÔ]°é1Qy0]¨nú <èµ>´Øem0Az±J§¡×æÛª==(BbQ¤ÕÚèOP@ùÆâíÊ¥n-Ü*lÛbe=(ÊÍ'¼!ÔámV0:±âí)ÉHmýªrÇ:ÇjM=î:¶Ñ3´ìphPr®j at jøÔï¢ÇìcU»RiUhìµð>®xë}èÏ 'ì
+JÑÕ:þý-}huYÄ©p~ûßXÙzHqFPÂvþ>ÛHlS/êAA#ÅaäJ6]#½XQ.Â& ÕVkH1h»r}¾zXî[IAk_£¦Í¸OEC¨cö,éCI3èdI>m*|Ip
sQ¡¤YM0êy
+¡Tûm{OP¢&¬ßP¶·æ@ÝÇÚI¢B
+êB-üQBZpIKC¨ J®iú}va´Éúм§ÎÜ.´6 b7(¨Ë#¶Øãs)#hm8Za}¨`=Õ¾ÆÓ°LàßÆZÏø2#hmI(7þ4´5Aϱ6©±Ë:ÐJÓ
+óæf¾¡#¹AÁ÷>J:5»¸¿|4%kþsÚ
+²4@Õá!RkW»ÚIzú»¥¥T²ê{Ù.$ïê ägi*ìh×
^NWzI4ÛC©Pü#¹lÕpn3²1ªTg¬wD³ùUéKÓXøÅØ9&Õéd~'
J}>h`(a¢Òfíæd©ÉV¤}ÌUbùlÎ*ë[çѾ ÁÃ@ r4ÔðèÊÃÅvRݾ*M¼N*Ôväkǽ>ê² Mª1t6Òd3i`r5mÒ2e åÝ4!ö¤×hn°¾u±ºXÉ1¶VÛìäۣ Ú{Ö³°¾¼Ý/_wçWißÕ½v÷«tpl\¦¡nÆF-,nq8}ëY«È)ÒL_:GûÇ*k1ÈÔ¬LNsÒ³¤ø HVNU|b©l©ÚªÒ!$Ñ-8_Ì}s'0y¸^ç`̸enKÎ28ì8ú¿_÷sn(Àø ½k D®¸|®;̶3óì§Årz~oÁ
+àåN·´ % Slf0ëÓfO.Ò6»+QýáUqf7SM«?·K¡ º]m3£ZBà`WÏ@cÖ7Pz¸éqafºÌevÎtQM@ÄWã,;ö$94Ä]¨mÑù&k_U½¯þͲýH¯-ëéæQS½y>x#Ðú?![¸?Ïb±pSßgz+]òK,@óøèsð3=Oä!K/°Éqî[ÆÇ0Ñ!þ|Gùzܦéý±# kÄ9âåÚ4¶Ãà
»»Ö-ç¾BnÒn|.+êlี8AûÍÉïNFelCôN§$~ïÎ!dl[½»¹GXÕ«[OϽ{çðv÷½s&èR-ö{(·ÅsGXíÂl1½9gÜûëUº¶Å $¬& ì@H¤eQ)Ô+ZVßÿÎ$!d!Ì~½·é³ý³ è\wHØ1é׸A0ÚÀ¿d~âÜ»®!9½z_ïDpWÂ//aÄÂñ!
+ÌaǾÃÅ£y+ýè2
+Üq®âêQ0}ÖPGµ÷@cn×¹:3ÕrÈ^}\§þû×
ÿöC{ EÂóxå·P~
+¤äõ#tTANsawü,;Ã~.ÃSZsóÜ Nvà¾Üín&+ùÈËUwLÇÆý
+>úv](ý*ͦZÕ®rp²Aoþ 2ÊÈ# U.í¤ÀÇce7C¥ùÏGÛ±Â4À6±
+¤KxAÜ@àzŤ1Ûý¬FSç¢r¨ úÇhÑj¤=¯X»<:ó¡'Au©ÐÓÔúà¬(æ0-?k_÷oøü]MÓ7ƳL9À§Ã²ÈéKO#eVWëlÇ>«PP.¶c1¿7ãÓÉÀÌ,rPSidib %()Äg¦D1zR6´Ù§×÷hIIwZRA¨?ñЩ`á:&8%·)ÀéÛ:íHÀ£½uzµ¸àÈYâ¤Ç°->-b+ôNÍ(2áÊLRÚB1fO¶¸[ìfha6b
+ïÊ×Z||rMÍq,¼7®_%v«¤_è8tÛ×µ÷tsM1¢,oª¥l3ðqx{ÞàçìTruR7¾«õSõ`v
¥ÅV**Ü1gÉ&¤òDÞ2lB¶³N^fm[kQvóÂ2»þüp.eA¾õv.8Ëú¹4:_æ.itPkÁË÷qÛeC*¢ '/3[Gи¡E÷ð·Ð46§[I1ØfâZpßJ¨ÈX¾LT³µÈ ùB¸/mpBØD!É© ¾b/c_² áikÞ·¦rr¹^m¥u¨°FL¿I at p«}jFÊ$v9t¬Åv¬ÌxÓ±dùþ®íIÇ©GÃËñÂ-ÃL¥Ñ)©Ø׺_¹:ñ°) Òó®qL NÿÜ>9ñÊ1%Ê!©ãÕFÔ'©Ö<¢:\º[*Å=N}û#¬a3wA¶Ý¸{Z¿òBõé
+ø±xoÓ1o ÅçÝÛÞÕ`õMÌ:Ü
+ëÅwÎîc
+ÊG1w¶
+3ø`f¡DËô×r2oIfµèÄ8ç)à ´½é#.¶ªÈ8´e~±[>ü
+¾¡¾8õ)å~ã59jÓÎÛå»Yº¾´Pb«N_[xº)åÐ!EήùeÔ@zq«í:C`ÖJ<F¤¹àåa.I&vÌi§äè
+½@÷1ø
m»þö¦m OWÙ
+!\ý¨£ê£7üëEÜCxÔK§7ÍR´W¹ø¼P_5b->vï`MÕ¨5¸Jú
ó³Í5~,n[ÌYê¾Çc:fáed§î c"NÌ5·T"b(Sh;OFDÄ[k<¦¹²íÆÝÓËåvC¾_ñsv*¹2X°QC·z·y!oÃ|e½q^gÀÅ~.ÃXù× #Õc0Î[+1a/´å±äo[ÀQü´[&Ü6åIAèzA)`7®î{þÝ-#ô¼kx /`yRðìXc²µ4+jU»f-ö]y´Í̪ÍmÙËÍéÒ~¥Tª½§kQ7ÕR¶ø0Lÿ² äV:9L-£µej
+áêk ïß{OïþÝ$Î LÔUE6ç8òyÑ:Y¾¿k+m*vþ1SIÌE°î÷Êrþ¤>¨û
+aû?wf JTئ7;&Ú^ÌEÔFPÆ#
+Tp²NERwá¤/ËòÔ71 °åÉ{ÑYd"[NÁwõ¶i®OkG²vÃ,˪¾>Á#eÊ |S_ï²]ïç²Ú¦Ë2Åèá,eï\[dÙ0ý¡·²<Ù§Õ.£#Ðt%j1.C³QýJZE(tc|7£=Öýwé©î2h[æoà Z8þFʹ®}WãÆ®îdË/¦*TdtDâs\\W?ê§oÞ jN×+øü¿;¨ÍAuðØî2ÚÓcËâͼÈúg;^¨>½ñÞ Z§#cÞXP-Nªl©éiYGÖRÎW¢uLÔÃâj1îÄâ®yr#ÌÔb;ÅlGiÛèÄÞÖD¸ÕEÊ$^|ðG˱Åæäå[2}Á®yÜiWãFú1ó¸'¤×¤Û;Ý^N&ÛgìÝ*=rÀ>¹l¡ê&+½Õõ´ú¿
+^|Ax4Àü»öüRnÕ¹åý+Rì¥Þi®HÓÑ÷>
+Lá-ËÄ&tXÎtTì=ÐÑû>ÌïhnúêÀïjtL\ño}}ÏöZ~ôVé&ûÚÛ{-)WËT }-Ä º"CÐ1?gêýÓô:¿|b+â¿RüEð«²_?ëb\a_ì2Mÿ`ý9>ú±_^ú¹ìaª'¾+åjãö;9|yõÎͽ¥cÄ«÷0S Wߥü¤µ¤üt/ôL1ð/Ôò3¿ÿkO "
Öä/ÁwìÍ,þv¬ÅÿU¯½¶2íÖ"
+þ3쯤?ÛmÅ·¯
+»Ägå®ò¯®ì¹º4òäße:W#[¤|£Ë¶ôøwó
+1J=¦nี;6Üêû]«¬6j$!®<þ<Kî2ôlIâ¯>NOI¯Ë
cr)p%1ÿ³^[i3Qô ò IðÚ
+höì½6Lð¼=VðO~©/·jC>Æ©}÷3ÅöÐôc«*þ£¨úä³÷/7|1VY~ÖñbJvõߤ:9~¶QÔðõQµ?æí©{KÞ_WÚÞ¸ëüµë ÀªÞÏÎ7f¹½êd½¿¶Í_E+»p©\d¶Ñ ô;Ã4á¤$1cïo}^>SÑg9©ôYF-°8ôU§â
+cÊ52
+5V×ð)-XàêÛC²ÀíÙ
+ê!±y$¹ua2V*6¯¶Áºi}ÈKM/ßî¡ÍÏõ±1P.<˹6O
+£.¨Ùþ_Dx« Ágì¥zô Nò;Uó;ÌíF*vÄô³¡Î¾#kñ²J$µÕ£íÌSe$õTfÄRZ3 at U«udc^ÂN5"æ.gK?è@GWYûeAhS¢#ìÔ*IK÷û±ó·|¥ßö§#%S鿪GÎA-±ÿ¨ Ù÷ÞFÁ:Ýr(^wiÇDnD?Wg{ì-oq
Ùcð ÝæÅóµ%7b!±¾.§z6°Ñ³JÈ˱D]&;Û®K!µíºÄm×%ÿá\Ò8IM¨Mª»iý²R`×t n¥'·¢P±õ» nwïBGãÅàCó¤ä:JAäIS S°L*Î$s¸ü2þÄß=ChýKÎDÚH£Î±ÑÒ)6²î$ :ÝÍíÚØÕ·J1nÒÍÏìfluQ,ÇõUâ¯R2³Û+5c¥q¹ÆzIi;ý\ÂVÏñ§Çl½ýÐÓÑðT"P½Ê´·x|H½9ÇÖä ¶W³A=CÔLT¿Ö±æÉêè¦Âß>dê4ö{º|ö+q}Z+ÕÉY}®Æ¢6¡~>;½PFò@Óao/Síü´ü»ûNx®sz]+A\µ³þ²Æ=Æ»|O¹¤îÏ'/]\p.un\n«Ö¾LCÿÕPÆç ?èпqf±V5×®;D}'Ù
+åÉGÎPï/@J L O`ÇÇñ³BJ Ý1¾úð´Ç=_{2!Í£ F«åC{TM
ÐüKª~.UL§¨ZÌ¿Ì
+U-w$
ªÏnôÏáÙÞÝ©$ª
>cóHâ]CtAÍ«0VXt;YKOI*⥦o÷6$A\R
+®êãv[:´¼°z1ú!£¶0³óæYn¯:YüÔµ÷¨á\1-rõEöê)6wX_\æc,(ç»<¼-ù>E|ZUØî{D?«_êÓ°-°+Ù[ÇØî¶cÜáÆF¯°¦Ô!Óô"/º¶ßxÚ<H1³&pP¡sËÖÓcÁ
+&ÂçÛY^æv¹ÇVñ¹Å
+ô¿
+endstream
+endobj
+112 0 obj 18788
+endobj
+113 0 obj<</Length 112 0 R/Filter[/FlateDecode]>>stream
+H¬Wy_²\ý|pÁÔÌ-
+1µÂ5-[´4_}Êýþï½@x/\Ëø==?fÎ9sÆ-M/+K±V[óéwÆæJ2{-6/»$ðgh^.2D®)±
î(ÊÅÞ*ÏK4|õG),eÞVJæÂU
+4jÜÛ hãõ»÷¦|ñÒ³*s|úbv¿~\Ø_¢pÿÏÛÜW½ iý1V"L~È-ÙÂtïáçlq¡¸Ê[b_ú?>¯sù¥¢µËhZ»)|G/14êðèL¾®Â-3-¬ö³ÌÛZqãákT« ¹ñó²5·|)Á¶áGÅý£©áÄ
Éñj³Ï!x®2ìl =½Øâ
nûö°üZ-sW£ù44¦Þp£»°¯¢Q¢êã&¾UÏhà!×XAsßD£û»6ø¡×W9Xá=#~þw5zÐ1tod\ÄÈ ÃD\î©j3¾[¹=x(&9·ÐúçZ¥T3z
+XþÆ~c7;ê&³ÂÆ{?DPöÊP/ódUÍ
+6h:¤d×»¦;d,ÎÊ®¢A
¢9 T.È{°:ÇNYËAc¿Xר5âÑZí#¢Ö2Ô1½êµ$ů塻ÄÄ~-ã÷ËÃÖ2È'Tâµ<X¡Ö²á±A RjR´-9γ¤ÂgZËC÷-rô÷Ñð=¾±v°:ÓZPQ´ã¶8u-جn
+î}°Ï±_×ص»ñ©%áZÉ=m÷ËxÓ"®¤*à¢Å+¶ýóbàmn¬¾®Ï¾÷{çÞû¯kâ½_½H
+ýÅhþfüÉ}³¡&Û(M@]ÐînØ>mo20ÐÀ Áõ
+Øï8ûÌsÐ(j¢÷ÿIÿ:+%Vìõ
Òô²²kµU1®xg»ÀGeäLàA-J[ËHå¥gU&PÐ]h(EOÅé±hQìÍÝZ')Ú^½]º¥ÈñÅg¬N-Ç 009nh²ýÂЦÙÇT|#ãüØáìTrmDĬR$j±×ýÛÚ
+u_$WX¿¸ÂÕ´äbóóüWßÎÚðqíbß#UWHlàã!¯§sBkþ5Þ
+ï°I¥>EÃV¾^¬+@©^_YÝå×Í ¡¡c.A©´UãÌ~Ó&¯f£i¾.kâÂñ\ÿS¨=H5uWhî{¥½GÑè7(gyý^#£¼GÑëí[$Lð&x/Ã|Ù]~±ÆÃÔâ.DÉ"ÎH¾LÑàÍe(¢ìº {/6½çî'nA-ï« @ò1Y¯°WÍätfXu7%a±êؼ'ídWò6t$ª¦*Þ´ýQÏW¹4©¦¢·Õñ%ø3è.ÿÅ×ëÛOÑ~1Jjìо-á#ôPɱ¹ìWt°¦ôÏ*¹8¥è?$zñÓ3®$lz\yÑn;bô0õñôýôÆ$é¥î=ì8éîIÞ'¾k÷;}uÆ®aJ÷]¼¶ï%`¼j2ø
+]O®,ê£@?ú(÷Ì¿ùh" h¥hcÅê½ëLYÀýü^¶®sÿmz0vGbá/<ÿÛº-ÄæÜBëk]Rͨٷký+6Îe²ÓѤ0_Ùƽ"´¶î.îvODø:Àס]Â,µW(ÚTõöCøÌëelr}rzk+ƨäÏCpáÓ§o±³ZMîéxz_DÄÉ
èprýësYÊ~̹`|¹ÇI&ìÆ«{âÁ ÀøïA z¦K¦ök¡àýr`
+;β$ý%&8á(«N&«ÅÅVÚÁ©~¹oÕC}òo¦mÁ½¾
+)z-&
+§s]éù¨Ï,¨jàXZ~âÞl~ÀKË}¦ñ<ÆJ1ú@wx¤¨N£+îú9ø"qcuþ@tÇ:¥9ÞÎI!Sðî¾}JiRNöj¿Ôv3[µClR<Ù¦Çì¹júQ<^¸ÅùmÙÌï(¶úËôêµìÙXFl{TãI¶½îzØ*l{P®Þ
+ÄÔQôÏÜùS»ôLÚ`ÚÄ¡û6Fʶ~½ÙÛÓå>vªÍønåö`öÁñÅÁ§ivBeûÄí¿BuÖ¨Õ¡!f£sX{Ëh¢u«m^M¡A§6DsgÝã]yqûÇñÒ®ã-æ¼Ôq¬lS¨:xcø¾L=çîKÚ{ÉP$îK
+\|dþ×öâ3)íÌg㮥9Ð'ÿZ¤dÍ88ê1ì-B(wûåL2'L¥æa
+dûÑÔ+Éå
+# X¯ÕÏXßͱ¼J&=Æåsèrë[¿+¦ij26%>!©þò)íú²KHWRz]Í>ÊVKýgaªêDYH9ßÊbá=oµÓ+Õ90wË ÞÜ=«ÖÖÉؼ>»á¥gU&O^SUÅç³Eÿ¤·r}r_®9Ø¿,zѹWûy¡ilÁF¹ÿiº²/uñÍnâ
nûöÏÝøéÅ4ú㬥9º,HûËM|«³SÐ'rºä
+~qs¢êh(ÌÂÄy4Eg@¸I=1À¨ë~C"ÑÖe\=º°àEû!ª"Q Ñ}ðkÞ}äz{3~¯
ËhZ9ýÞ5tDXÑx at C`Ó¦¯jÜÕ-:æñó<Æ
+ü2z¥ùõ*]K\Ù¢O0Ç0LjQAQ(è¶e|ÿ[
+äO¾Ó}è]kOkݾõ¥b
¥í½D5V3j¸Ô
+î&<¦Æ¿ÃãtY ,m{×ó4BúnTÙv·×n¬S)ÌF)aÉôå(þc!þèËÃïrÆâv[ÍFLÅäÕéßi³+o²ñv
+}ƲýÆ/wìµß,ÓVOUF"×é'jtü7uµe襹ĹH£y
+4ºYé]̤«¸ý¾_XZ' õ"0fB%¥yúæH£QP-Åt©ív?b(qWg#«|×ÌOÓýC"Òxfz´ôkƲ,â.>ÃeÑ&ËȨxûCÉ2 °8^ÇæT)æ°*XY~<Y
+¤üåÑRe°/n÷¢«,YgC8§Èòn >Éò8pËÙõå¨å{$eÊ}ùFËeÙ0cIßeMskc¿dùmees÷"¶$e
+Õ¯úBTeåªP}Ê´ä>1K."&É:%½¬e§a0SHq&ªë©h¢ûÙy,îWó
+r!¿kjÇKwÏ2
+¼^M
+ýËÞÜáµ
+àRáóWqÖ3ðwY¯¬?
+øoááD¬ssp-va÷0Ö;áa0×
+×½ðàÆM>ðì±æL¾å9ÍìÈRÀ=[îK3Ðp1 Ü'WNöP AfÖcÚo·¬°Øs<p¿9åô¹X#>Ðw¸³ DuL^¥L¨¤4o1u.ÁgÚâØ]_s?8I+&ÚÕIða5f0§¦rò.9~º?ݬn8»Vze4K¤(ÆïV'{×Z±Y{vÇê³jdªI&긽]õÜþNÒK»o¯¦5Ú£ªLªö5Uíõxñ}#P{®Ö
+ä)æ
+¦R&b¸M{5ñ]÷Á¿Þèöt¡ÇÎ÷ØðÜ}ð©ÊèSä:ýD?óúË Xå,ãÌs\@ÄÆ0^Ö=L#.ú<¿!LSDT<Ë>âÖûxÚ®bî¢Z `ë£ ãf߯ ß})üîKñ·/ùî~Á]é`ß/>|Èüô{úmÅx&)Ùb±NûÁ&2Kyp}ûb9a¥#O$·R¢Í°ú
+sC2ëRÊC)FOÝ0ÐR/GWKWC¡úuQ_²¬\ê¡ï}a>ëüGx,aM1¤WAeð±õt ¨Ð÷>kü±d9tã?ëº:oeQõL¸ø²(Û}vk
Ãm*ÆúS1~:~ë«B1«¼ÊL©½Ü(M÷ êËTʧ:Ùmºíz%SÆ$¤Ó©©¥&ìP9{~k3;r,)Âé?è>ÌÅé_GD2fvú1a"!qÉJ&a~¼/&?§]^áÙÎYÚõ'L7CÑåÙ;%Ì#¯8§{]lßZ¯¤º!ntÛ
¥wÊ.`8:~Yy¤Cºp÷QýÏ»XÇ°Î÷
+ÈÁ;§Ð~f²ÐBð´ó».<Ý8pW;Bêvj¥ÉeB
yc~vC»Ø¡"Ê øóÅY¡eé>øDYuÑmJ)¡Ýd(+¿x{°¶µ>Ä3ñØþÓqlSFl§²fY{¹X6âGÅ[õÿ}që%øL[»Ó)Dj£ÉbHA¥¤µ|$$- FKêd!
+f§6Qnv¼£ÖäêÔ¶RAÈ;fÑä}×ýb;béd¯«±
+JÃuH / RãP¸îÅØA½ÈêÇcòõþñ³*÷lõÉØÉ:nÉ"·±
×dø¢Ô¾o Ým?
+¡ßx¬
+àEHÚM¶¸®j÷׫¡xâNñ©æÂÁN¿l+
+I÷áG·Zhü?ëÕ¹¬À@EÀ¨F,@ì½&V¢±Ô÷¿±Ä÷Ë?EÜsvwvfV¿#aá§M÷å»ÿ¨lØoK~¤
+¶8w:60÷ÿÌïèú~qo-°ÞÄ£ÿwa¿í÷/DØ,«¯ë¼HÖ0vïcß-1Ìû¼dëD h7~Ã6·jV
Î[:³ûWúÒøß$8r?É ¯=E?oQfK÷ÉÉ×Ñöß"ÞÊOâ2$Ão½ÀعÛ!¦Û
ÇÊX\,©Bo!^+4ðôjÿb6ûp>"°¥é{¾ýõVëÏ|Ûòèw9i9÷¯® »¶úÛÑn0¸õkI=G)
+oÆ;Ì»¹½7¹ñpâØ1Zr_&Zý3ì\¯¢Izfì8ÊFÞ PÒ¸/B%ÌV÷õ ~ÇÂIB\ëͲç½K[Ï¥í{½Øsê =BÄh:̱ú)<Ý Ø`ÆC÷;izKø÷E¥èÍû{N¶4ØXÂ-© ·îHYÔ[Ðùìsm»Ëêì?nûÂ^sòý7k÷Ø^»~6>«²ÆýØyC
+×w_¶Þí÷dkº»¹MN&ݶ3Ù:õ×ÎsÜ;o¶·°½~uó¼ã3"Xî9ØHòÙUªÅľúñ_Ê«7ºÅ_JRynbÌ [ËOHa¨uÐøÒ¡cÖÅ+_Xýü8O^¸ÙðûåqñxCÝÃ8í[+Ícô4¯Íf·EäöÈq8>ûTW àдdeÎøwq
+DÕá
+¦Ä¡æBàO¢BÍ g>Å t
+ùÇÝ/2¤Í$1¹ì¿ënÔ·ÂNåÌGu¨{zÃI|0p8Jg\ù¢Z «v7ÆÉq4/¶p× pîpE=5±ÁÕ<ÕÕ¦
°Ú@§³Éb$ÿi¯UäElom¦)t¾GTXcÖTjR3¾R°ÒÍf±ýÌÑ%7½itZÆ#ô¸ÙÆýÛp&Y¯Uîyc àÚ
+/¹»NÎmÂ[»õAÚ¼ïó|%6ó¶Øª·µúRYdðÒ¦økĽla;QÚóxq×´àvyg9ÈǵÉ3èÊ8,_?ĸ`Û`7ËäSºVe£ N;¦
ÐãÍÐ!2-9ZÒ¹Öü¢+H~ìË 4IÆÒ]pÊùÞðÐIUð$¢
.èçg\£4ãB>ýÚ¶·¡ñPî%%üã»û6lx¹Ï_ºÁÜrJL|QìnWÑÿ³¿ ½»6¦û÷\SÔEOkÈ.«Ë(5i·?>³Á7*¿sAX¼@B>?ÒÍä!'õC^aôgä)ÛgôR
+M o¾ÜªC#r¾/
+ùFTÜU¡È!/g¡Æ÷'IYd½P%àYDð:»zm¥#HJ«ô|èÏÚnhu9]mr[PæR¼U¶Róx Å(a¼P_ WE½_PÛ%°tGWjå8¯wZIÌJéùÎëjè(zÍ-ÐBOª¤NWÿ$5·=ú×(§
+|{\GM5rÁT&îLÄ´"}ò"ÜYLí&¶?Ûo<k7@ÈRTï|Eø&[#{£§æ3öuAòJ¿1BÙtItdE!ÙZ£îáMߧùÈ;AO2±YÄ_ɶ0Úd|liBO¸åñCu"l¯;ùì²^g7³¢ûÛcS#ÃkLtÄòQ]U·"úBÁFl&îkN¹EîSyWÄÃ{á½f²YªC}Ùº+dh©Q<Æ96'=ÿ¤ü|6ÛÜÒ÷IÀ)EÌ®3é/ZYÑNVnW×Nï>m/"¼RIÎA¸R!¨·s¿½Ï:4h;×r ·Ô^r;xéÓ¡¹D¡øðôøå.ð´%¹ò*þÉ&Bác±B:ÙçñJÝ{ò·Üþ
+`²¿,X
+y®1t_Ö~ª³âÙm>ÆwmFᯮ¹ÊÀè¤1tȸ¼²è&6v¢ÏÅ"÷¹E>á
+}²åÝã>:åƱ ÔçPí\ýE¡æZÿPbèU2
+î¥
+ë^á>Ùè¸ÓâýrP}¢OèªË¸!h¯0t+>ùäRqÐh'Øõh80ç%
òZÙN?ÔÞøàEXôWX£lÆìSͶa7__#Üse6JEpo×¼àäHWgÿX¯ÎõT±(ú>
+*Ð`/T»bƽyÿÙ4£É;óÇ/áÀÙu½ö2Òz at aö¸}
Ì{0ÆN-©¾ @ü)Ñkî®Ù ô(¦Ji-pà¶x£*Ì´TðLÂÛÓ+¼"5ÄfbnÁù%#U¸mØ&)ò]æUmr÷µ×1Tä2tód¨r&ûw»ñìVa¶R+WËH)}·ý[+3?rÊFF÷4%:bÂr@È«pøpÖrÓÕôжå§Ç×"çÅ¢Òè2p/ª§
+òuÁóK½Ö°àâ¤.df<ÝÙß±|WbaVîæ{âp?]CWÚ^/@%ÂY¶HÚë:±²wÛ0 ýó¥Z®¿I1c$²õá"¥pÛM®n>C=ÑW<.Ûhà
»Æ~°Ö3{,ÎÀÜÙPf =5c|Yð(¶ßkp§÷£+sî?¤¸4¥îµl2±Ç
+ù¾à¢®Ê¯Û¸²£ÞdÍõ
+ÀnTuS828¯iÖìS]äûZ;Ú¯¨.±Åò±=Ê ,'¾F¬Sü
+àä<±WEOѹ¼Ùí·ZØ!*§óÒ|úóÙ&A´<+À¼ô$OÉÃq(wÆMÕ«Ö}RzÐ=rÝéB¦bH-oZ#vÞ.VÆe¦t´¢´îÌ~
+GTÿö:[áv·ÝMmÜ®Â<â[;¸F3MårmLû¹-ñ¢
+Y².Qõ¢ÑuH;Üót´b[rÞ¨A^Ø39G²ÈøÐ4X|yïöHÁ®ù5§¿ÆæYÃP<É´«@ãü£´(Pø«àíÁèd{ßZ
+;C¦@ï/*Ì*Zè«wÛ NÏ,8mK£¾Ì©pJHÃO7âìÛÍéÉÚðli¸½j\J£ÁWm·2øC*ØfØiþN« yÃãáT-OÎ{7µl ÕFì(³àǪ!{R4¢ÆÅ"Ged8àp%ÿJVd
}øûgýó}Tßy#ì'/Ð4x¼©påqÂÊ¥Õ)ä7þ8ÐË¿zI¤é¡^ó!
+DèB)´ÑòswÈÞ¬ØEi*§\*ÐM>Ýüì<+é*aåÙHÙêÂüç+úhÛ`êxª¹ÓEëËÁ|~½8æ
j£úå¹
+¥À$H½ÒBô,OQÆßHÃc »âµ
+½íâZb ËyF¸¼_V:"룵kôÒ/sèÝÞ+zÜhæ½ðQ
+%
íTóúÅ JéÓïïö#ÆL¸¶±à
5}`A_¶·°1ÙìF±m×ÅÉKÜ{gÏ#2XÇÍ
+>ËÇRâovèü]¤Ê'±ÚXTuÿY¤Ý[qÆìUÿ4Rk ×ÝÁ¾+a×ì@¸ÓEÕ°±|æÚêFÐcÿ
+ÖÇö5W9)ÚY,ãxÓÄ`kÙ½_Oc+¾'ï#Ûæý;tÉW=A{IPQ5VXBôzÔ½äRG0÷v+
+ÿHºUÅmׯo¾ÌE\7
+¡èç9]Tfà{±à±ù˱ÃOßZ¥ó(O
+\o|¾ÜKLÍð`h9£8ÊÛ¢"
+zª9¢er;}!Ð24n
+÷ȯ(mK7·Â&³ïØJ1ÛI¿ÍUiD³¯fÅc»Ig+º9
fh¾ÝÆ&èwY\ù"äÝÍðfe¡%Úúò];æÖ)Iß^ºw©{pIÐêKÀ0Ú6ËúÍ%Xë¹dÁÆB5¢üÔ)R*ÄåO ÁêÒÚÓQÍ«¢ÂgEOYmÀúXv³ò®¾øI?ï8_%8Ð0ß3Fk;z
+ó¸©ô9Õ{Ø«?wêu"ß2õk¿§ÿ³¯Po×δ§×ÇT^«Ù¤ùÈW¨KRVÿÉÛßá
+ó°Oà:Z<
«fËd¹GpE
+ö¬>\;þp´þÞûÆ¥1ØéøÐqEÊ|)ݵæ)åÛlÓÛ¥ß9EÃ5ÿÙ}}ôéÕ¹:À!@" $@lL9 xÿí0ø~aï½|
+#WÛö¹{~ay÷
hÎÇfÊ.
+¹³}okT«-YYÆpÃë/gOØçÍùç8ÊUººvùäÁ'Ã9®×6oX|P>]k(PKx¶®äÓ-ôµ÷dÖ¤ cæ'¶tWÃõµ
+u{]µ-SPmfPì캡¬cc5²^ª>«_e=ßáæ}nNlðò´LuyÍÇp`²àö·8\«[bú<JñílZA©>¦ãAÐ
+Áɤ¯¼M2þ8u'©ù`ËRãsÄøÅ@,Jh^èWÂEø4÷)«ÀúEFFÖ¶+þiI3¥FZB3É,w=ÆÌýÂù[îï
¯È¡L&ýÃAìõÿd0ª£ m¡O(aúFy®M§ñT.ex¶T7©êâÉ£âàü_áÖÞhÂL.xËÿF¯*:¢Ð)Ù°"êûðx(Ìôúq[¾mÕpsν"ôAUúMN/ùyïÉ};æÙh³È¼ò&ñïX)W 4õêå×È0äÝ%íyüeJO/ÌtéjÐ*ëD
+,Õæd¯åR^h7¡ùóÏ´§ªKeÇê]0ï,®¾_a«RÊ p¬ük´Q¿±-]ãüÈU÷ÚÞýO¾Â,1vå,1vûjDóít**MòÅ(µ±ÃìÐQFÃxâÅÔýË-7ÔÔ1½ù*M%«z¦U;44QI] ³n©åtÎO6ýRHa<3C]:ù6³7âWÈÒ³¤Ey«ës8f¸ûÍe-¬Íîçz½ ·*×ÂÁ Êñ^>ñM¸7ä'$ÏÈ6î¿S¼*Wú'aóÏ~ðÎ>;1Óº5äPrPWAs©Ø9Ýú¤((qBºXqõþ>éÄ
+¸å;Ôá/ìø;74J-ïôRÝWf ÖíEÃ
+j=*Ç2Ë(qr¯/Á\¹Nn9vf9A=ñtSj[PØÊÑ"
+¡¼fg[Wã÷xêEµ\$̨ðêÚÅ
+j0ç¶,=öÀ,·°ö¢³
+V]8mäßJ¿ï¶_W£76Î3ëRK>M®7Îѹ§)~Ì`>ù qxyê"3®>¥BRâèá
+@ûÚôä|ædì"wVaé6
+¥À&ÐrodC*K+dÿÿ§øæÛÊ÷8úõ¤TéÏèük¬Ë+rAwÁwb,ú[|)ÖðIntó%y¼=±´6>-¸®hÖÊáTêD BÔÜ¡à`ú<47¿B¬3
+´ðR´Î«¿ÞÚ¥ùrd}ÊJÿ¾È2vÇ£p~þ`à@ÒRP
ü)nl¬`]3ÀAèKܲ_jeQ£ÆßO?¹I $E)Ak =IηÖd2:`U£TçE¿éÍNufáj»¢@Ï˽(äc$ tìßÂÒMqêÐSü𠬾)ä6íô³Áüå=ü»>ÄÔðý~}Ò@9®È©
+Íx3[ÐëÇùä¼y¦Ð0c×Ýdké¢ÆÈ{qÿ=¿d}wn)û®j(ÏÃ?°ï¦ýó\¥¥
hÛ'fJñp5ðÒáT¹JåãÆ6üL×Ȩ[þæf
+,ßM¹½
+èOû úýìúp2DÁ°GÐ¥úy´XôÛÒB·ni¯l¦9¡ÔY}\ôùÔ:=÷\p_p4¤à,hýrò¡>Jêtç+;ûÊ2´6»(Öð |¢A7BÑq/(Ó}
+Í¿Zsï]2Ét:
+OÜ/Ëbº®lµIhu{²¨Ò£·$ôɸ~FÞcE8OAàR,~)ÅþDxÂAvÊÿ"ÃAð¼?zCè°öËB²)yx9vA_'ì7K&1)1ZÜÐ)}º <:¯üèöíéj0:Ä#ɳB%]«v:A7udËüíüÕ
+ê §_ueʱøÑ)ðjõâ$ñFK9`*MÞuQ,Ù¼Á1Ëû×Ìëïd£}¼<îãîý<ráz/¯°>[bÄ3Öæî]þu½ÍPi=ৼ;ÝkisZáGÇϬqp|·^äwPÍðàÓA³lTµån÷f R¿ÜaàG28÷x'FåÈöñ]%N¨W÷
Óà_Ó@24¡êÞGW®$öS´G2þ
+(©¥ÉB}Èr4Yì^ îA
aOý½õnR
+µà,ÎæßÇy¶;v»+
+!oE6ûæ;6à×<´ôO£òÖ«s;Yf_AîáMlØ
+b§-6k¢"bAEÖ:¿Îµ=-oòã|k}\0{vyζxnÈ
+oFæ@þ}Fz×½#Fá7×1`íÊ÷ü1îòk§TQ}zÍréí¶að~¥p Ò<i]b6bØ)ßú¸u Z¡.e/|»ºGóV§³â¬.Æ#J,YÊÄ$a¤D£ Ù?çYjÆ0_ã4U*Û¶4X{h¨8¶õ6ùfqÏc¼
+ëýñ*
+ñEÁ3ö>F Ûåô%wÏé,lþH³ôä¿-æ ÿ&é:ÌUhÎ<*ØþwNÆJéÇÙ¿,%Ö5'T¿ãÙ¾??Ç[íSÑÔ@V)
+oö3B²I£ðhÐYó`f°mTîórp¢¸°PT0áw¹7#o_¢×°$. ǺiM*¾ÊôhW|ÅSÐÇ
+]T4, LÆK«¯¸X¼fKÙ*i¹¹mÊ
+sªì¶B-øÞí¥xkÞ»¬dö½LÞÚ5þâÙ'}6·7bꣾ;I!"hB¼
+¼1ò\#Ó0Rò£pBÃ`¢ëæ
ªV|ßfroíE6 ÇrÑΪQkêenãÏ@ïrP«ý
ôiDÇAËqó¥í¿Ù¢ÙÓ-æoÔ¹ÇJ X
º\é]µïoY*55Ù×iÀ¶ ;Sµâk¶wT0'¤Pàä
+D®iAú#θ¤vWX+¬Òò
®{B Â]ܶ©Ô®Þ&#§gÔ@ï;}?HbeN)ÙäÞüs\{$´y5þÛO×ÞZH³|Å 6¶À'þYóÙ¾ÓÝx3Ùu!`ë$J?@Ǻ8@
+Rw)¶æ
++ÅäìOά3¶[ýFô¾ØR°mæY«¨ú#xWh±¦ß}î,¹ïº}gþU+$^õ2¤(Ozs!æØCà!ÅÁ(cT"Â*¢ßDÃ×Ö9%uö.'BLNrË2êþ&:Ùó¦©.¥K÷$!¸ê\ªeAyÉ|ÌåÏú0^³WÖKOLü¡É4õ'Þu¶ú©u2
+sÿ'ò³Õd²¿_YÒI×ý?gÁÒ¾?ÿÉý³=¾Z¥_4k¥Ãv}ÔËØÁáP¯ik)Ø!YæȽw=×s¾½ë«¶µ4;¬íÿz÷+z©¸¯Bt.YqMåm`«>Áî}ùÒq=§Si±¯l_KnÞì°ldåËÉ-xV(ðòt?$~ð¥í·órÁÿ#HqÉFo5¦µK´\Pc5N@O¦ã0FTdÚoñ¸Ò_\ë¼°ÿQÓßC)g9¿E¦E;ø9$³éeIwͳî+o¬LÍßÂÙ×bYÊz»+~VóÈ¥£w×È¢/MiÞôgÜK&ëóUOà¿Ùíþ}`ué¿Kªt¼=0zG+SNå6~ú|Õ]Þ$|&7$L.Ïç0öÜ03F ÷X
+¶§¶Õ :تÁ] Úè®´ôq¦/eÜü'ÕÐÉìp¯Îù*õ[¨
C.%x,EÕ£DTÝ[qmeªJ@µ09É·¸ZeyKGôê*?`Ýv/eÑýTq15!>ìd`ö§1<W'2K[¬+¯£$B·¨Ùµ`ë×&!Ár3QQ+Í<pûÈð¯ÀãuÆYYà[¢»ÇóBÎìeRwbrºYz>:°
N¢´)®¾ñEÕ
+y7>UTJ 8û<RØQdB7{¾áÒ×yp>Ië(C˵q¢Vë3ù²sC/Òá?ªÊÅRÎáõηaò½sÒ_aÌFmkë«÷äYA@Ô"¨Jb¸C%Ó@¸Û
äMóø¾ÿ\ÔÏ¿9tÃ7¬Më·!c¿ýïLúé76Qpì'ßÓâãS!ÞɸÇ.ûù»)3[ø.ÞùÊ/.í½.>;ö§ÈX
+ù[2³«Ô´&~V_p×kú/^éw%ÎlÛIrCkÒVMÝCê¬xÞ±ô@ïX*¡¿ùÝÍ
+5²{9t¼ùûBMÔÚ
+
h]3»Ø ÕrD6bòÊÿh¯ÎõTµ-úy4XQKX
+[TbÃÞàûß¹&·fï³ï9òE¬9f£fàÓoÌS5<©%*føÁhu^*#½Úà¥IXêN0UÉ z\C¯Á%¨ÉÕÁÎNZ
+Öîp{¦cÞ!Îî ÚbyótóS@?~eÐuÆtîD9LøÎ&(½µH<±ú/þ¤ÑA ÀO>4!¨R;Gxvç¥Ô¥R3&ºîNÓ7Mâ6Ý׸þÃYÂý+;Ûdç27çº0çAFË{OäùÍ\ Á+¯FzQ}Ìù;rzIØùë×%!9w*@
+vhÚÐâHùuØ#VàBÕf
+få?bz¾XoRþíYëñó.½È¤éiõ°URFh«EiäL/ê-mã@óØÅ öRäE9ºÇpËk0å¨ÇÞº÷£8¥.º±<°ÂKö4´J)øMYB'«r#~&öPhQ;xöС+V"ìû˶é·:yIŽ©k²çg¤Eã«÷¾µ=RZÑg$¯EÛY×9>5mì´Oõawu&Ònç4ÄIäØ^W¸]׬oMeY£ûz&¹ûÃ9lÜ!}LMnaTcÎÉ%"«%Z=Àd±61")·¤3øp´Û°¸Z©+,ù®&ªê»HÈ[Zª!ll;ùu#»Oäk4ëÃÃk«-â£D+:ÈÃW2BU¢³À͸ÔïÑ°jµõEs¡«XaÍ$¯ìÆ!/g±Ö01ç8«¸Oº¢ûèLUw!Ë;9!O·ÔÞR 0<Îcd 8%ê¡1ìýfãm(K±ê
+ùëhrî&aàc1æ]æë¦<&¨¦ðAÔo×gòñʼڼþêÅw´Èi4!}À &fQµ°+
+»¡8'¸#oçÐà¶÷HÅê5î_ì5ÁÞ,aÄ»xoËa.^^Ã~ÊaÉ駸ìEaº¢~&yõÆýÖ¥üy£tÉmD°§Qå=}"òuïùSOm¶T:ûÐÓ'ùúþÐ×Oi)¡H¿ñtjn<ý5ûB ô]1äo#ëÈ9rVã~aÒY¯è÷G?°|°öø
+"ô¡5kón¦¦!ʵ¬%I92/¹æì½ïÁaó&ytPeØðK§g|&Ùõ-ÓhÂrWÌ{ÆÆ·s?ÚÍîD"?FR³ñm};®Ñõ°[½ªkH½Ò=HÐ(ѨÿaP ý?Cz"ÒÊãDËBTyÉ°ÉsúÒf¯Js®@^úÝ=ðÚÅËôf
+zeXt;7|ûàÐ}¼å})¾}ÙóÝÃ>wÁû«ÑÈÂC&ýgß] ÀÌ9¨Æ®~ãôþ9èVXÛwvuSû¡ø¾åEì6ÓñàMX ¦]¢þ ¨Úà B%ØíTÖ|
+Ñ×¼ÅÒTþux·¼îB
+æ$É7 :zhôÇ6ïå{ +*^1Çé!AýP¿Ê6÷?öþ
+¤¿G{¿§=¬þß×>n¸jÈ16
+yùe
+òÐ^'ÂíJw6w2}éó{
+}ù©Ï¹g³Ï¨kô\ëZÙ¯zØî½ìâÑóDÞzwQÙ|[ï3ûÙ|©ìÈø1æ¿X(7%¬ï³¨¦ÿGQõm)ík#ÿ͵æ´6¼õ2aþíøa`kNøR´Åî^«v];ûç
ì_£½nØ¥]¹Pºa½Û°êö§vÚÑ8>Þ¹GOº¹ôâÚýùZ¤_4¬éèà;¹çë)0Zi
w3jq!^Îúô1ÎKͯHFö ûµF×)hKÊÔK+DO@%î×ø¿3¿Í¶\côé¬'Nuâ·û"b°#z_ lÜÊÎo,KC)2£Ð^©ÙÎÁëmØójbÞåzc¹ EûvRØ*½áOCî`G`¯à)i<¶{Ú
+Ç
+&=ø4s2ínè/¶åtÏùúØ 5s.Öä÷{1°ÏWCóÍMa³qäˬ
+.=qPI$a{x
+bOÑOKD ÂVp=Û> 7W¬Qûw`õfDXã¤På£BØôvd×^3_G7´0ÿÒèõJOÀñm$2Îø/yC¾Ñ úùZÉûò²TjÆ.r júÈU(+k#ðª
+r&òrlÐÁÇ.
+¹øÖîÿvËù³fC56õupdçÆ%ðÕ6ßÛÈË%ÓX*ømÐ+RäIvåÞÞâeáÔaÊ9.ÏØ9£®
Üûîí=2ÕnNl¢ÑU¯Íæº8<¤±}þ2ïF..{Ü÷J®^;YfÀ¨°OþϱÖQXj¨.ð
+¯9ûî*;½5ºá«³Ä ÓFm0.þÖ²¢dÑmà
ÆR³ÀÃY ßöþ¿wªü¶·*m²õÃÑ
+(úó<DË>p (ñí +iëºj!
+®¾ÇIñE}"Måx:Dÿ ú¸ÆÒ(h(`àJO«®aôízúÞ¨Ú+ãשßõ÷ýÒ/`X`ÿ
+ãðXC<
x+è·tÓ蹺µþÃÀuÛv|Ý70®áÁªîmHS.ê:*ö·
+endstream
+endobj
+114 0 obj<</Type/ExtGState/SA true/OP false/op false/OPM 1/ca 1.0/CA 1.0/BM/Normal/SMask/None/AIS false>>
+endobj
+115 0 obj<</Type/Font/Encoding/Identity-H/BaseFont/RTRJGD+Arial-Black/Subtype/Type0/DescendantFonts 116 0 R/ToUnicode 127 0 R>>
+endobj
+116 0 obj[117 0 R]
+endobj
+117 0 obj<</W[36[778]80[1000]82[667]87[444]]/Type/Font/BaseFont/RTRJGD+Arial-Black/Subtype/CIDFontType2/CIDSystemInfo 118 0 R/FontDescriptor 119 0 R/DW 1000>>
+endobj
+118 0 obj<</Ordering(Identity)/Registry(Adobe)/Supplement 0>>
+endobj
+119 0 obj<</Type/FontDescriptor/FontFile2 123 0 R/FontBBox[-194 -218 1006 913]/FontName/RTRJGD+Arial-Black/Flags 4/StemV 200/CapHeight 716/XHeight 519/Ascent 913/Descent -218/ItalicAngle 0>>
+endobj
+120 0 obj 227
+endobj
+121 0 obj<</Length 120 0 R/Filter/FlateDecode>>stream
+HKj1O ;èñèayl(]dºiVõ¾Óôf,B{újZÈP:ùG²¿ºçÏvûp{7 0ÇæWÚ5¤£K.}Jâ@øÐÝ?¾A(71&²ã"UÓÉVXÎd¡d²Èþü;ç}þe
+V:ç}X78,øIlý¯â>n+t<2Ö»Zãzñë}¤ë×N^¿Átk¡Ö¬&Ár*>h"¾Oï)t[?`Wa·÷c0
+endstream
+endobj
+122 0 obj 6789
+endobj
+123 0 obj<</Length 122 0 R/Filter/FlateDecode/Length1 14036>>stream
+HÜWyxSUÿÝ÷²5eIÚmøG+ÕdHè°(L &]
+ÊVQ
+Ê 8«£úÊZ`*«l ~"|ÂWKæ¼´,Sþ{ÏrϹ÷óË}y`
+$öO\¼kþ/«ý1{Ö?©À¿³x
+ÉÀj3y8(Îy!V§ëÅI¨OqØ]
+
.¡
+¡¡Ù!{(¸g
+§jnÕr¢éUÆK
f×Ë`qpbðù`Z0ýÂ
+Ã^õ^¥ÄTµ:L Çt¨¿Ý©G·ëð
+æâg,ÇeÌë(ÃÛø
+e¼ºþ?Òtz\c±l;ÄVDø«p$³J¶Ø
+vÝãvaí.;uìÐ>=]jµmÖO''µ-fá©-â5mc44nÔ°A´>J§Õ¨U<Ǥx»«<Ak5ÍfwjDN|Xø$Ã-³Y4v¬ezÄ«ù#rGäuò
+c$WBPRXTa@®ÇÚ _Ì÷ Ôyiåà¾9<>ARQp¥3Fpø(§ÃáóP/fW½zRGÙ]óÍ&)Fd´J½iFïoM|À?FÅ@`¾ äzÐj{·ÛO8D
+HÁ
½è(ñi©)á3Eï)×,ôÊût
+²e¯=(S>¹0¶2ïã&|ÑïÍï^À.Ùr9Ã]Ê){î*2,*ÅâÉtÃùî;Øe÷&z3MáÊ×i<
+)µFAÞA<AÂ`HS3ä® ¼?f7#¯ìû^:É
+ÛGüáúÃoD£I2ÜÌ:E§'p3à x+B¥¹¢`å}ûüí"¯Ðî2ä\äëFéAàìêi2ݵbvBa+Z9e¾Y²Y D
+u¹M'Ìçe,v3¨Ì´É9*ȨK=ÂÍ2@Ë*lÈ%A*ä
+ËrM[`K³R=<²¥²ÖÒd¨l)µÔ¹{DZeò/¯¤K®û664uøºI¬éÿ0íR¬ÝÅ8wãL¼Ìéôcï.5³ßÚ "%URÛ]¦înÁ`¤[@.ß±ï á®ðÁÂï*ùEÞvfcÙhVáW¯üÕ¦Æ]ªJù]fjzÐóFKÿ±6ÙÒ³´ì+=ËÒ
+cÃôóô*´Ú(=½ñD©£´ÚÙuîÌ(Í«âx^Ei¶u5ÄuRé1¦Òh9>.ÕyüB
+Ç1½J5gKù*ã)yÚ4L£ámQþÿ°_õ±m]Uü¼÷üÄIã$N¤]ûÒ4)ÅMÜÄkRS³ô3Mí¶~mÌ×~±_êÄ®4]?¥M7Ôi6-ccT¨£¶uÚZÄVXE5!¦N!&b0?VÍçwm§Hhþ@øé¼û»÷{>~÷Ü÷/+ÅuÞ ÏWë
+VºýÞ`ÐíBW +Tú½
+¿gÜÚêß{i¼µç¥À¸3p©mîlj°7Hx9d˼ÌDzmòbéyq¶ùô·ýðCë
ëݲW.Ïü>±÷áÿÏûð½2pä+/¹çu8^ùëKU.³-vtX±]ÕR<§£H¶V¯Q;¬N(wÖ7UtÕt¾R/-:XÿÊ=M¯7ý¥IijnÒd7xuÊï½ñ{§0ð@WW sµÒï÷à¯mYUCõ]¯½ÆÍ÷jÜ;77.´¨U2á>iÏæÓ#ûz¿ütúìÅllÞÏöÜòt?Y¿Úüà±»ò&{;cFæWrowݧÚÆ2¿¥ìÅï2Ì®¿1ÚW©C¹SYQ"»'gÅDIë}®]çzüëñNy(Þ©®© QYu'4¨ôfÄfq³äªñµãk"íŬ[ê:u ûýìofàéIÆîßÚú@Zvþ]Zy~âÓÙË_}V²=~øÐÑÇÆ%®WÌüQÙõäm«ßÉ
+ÕWiñÄÅ5)W¸¥R
+Ön×ÅÊ+r%ÕPqy]T.Ã7èÙédíí^¯ßDj kÊ_ᯨôSÀ¾Æ
+Ã쬲5.lcß·\îï½2W{Ë}ó|bý±cÖÙxöçÙñu5ë³hØôÌÒ´ä
+àC(×MxíÐ;¦a®ùôû.^£öÅÙ5²«Jí±ë`}^UôVæ}Qálº¨T~Ó6ä³BÎÀÀ2k¬}Ð~Âö;àìmøåD¹×bÀ8¿tQZ¸õú[QNÓ:O£¬EéCù¢ß ÖíA;Pö¡Ä-¿^ëû3×m~Q£P²^ \3i;_BDÿÏa¿0¶ÇìGàIÄ'P¨{Z±nûdËZ33Ø*dÇ¢qÙ?s[/úßkkåвås"ÔqñGPç1ùÌÌS?üì#<k]röc>>lW`±q*È_Ú¬Gξ
ýEÞ$!Ê9Å/lßNò1æÄ$ñ*JvVl7ËèMrDñqK6w¢¬Æ:8gû)Ó¼>Cb? Ðþ)¶ÝÛ×sc£å,TQMÐnícß»ÐÆ6ë9ðØ& ÕúðÉúi at qÛ~O ë)ÚQû,®&âÅò{¨Gü0Êêî¡Ís
üàØ´Ë5ô×IÜvPLÊ5ðï´FêËh«}¹Qæ!v 9"ê¸ÖÓùµ2kI¨þP棬@Y)ö('Çs"êöà}ÄäÎ׫ØFD¿et¨V©^¨ØWÜM-ÅL5Íu
5ÑÕ ,Àø¾)¤k÷¬¼WñÀâCwý®Cÿ¡k¦¥@þzüÿ×'½ø>ÿ;í°?d°:±Ö¾f-Áï(íOæû/CqþÝà×qõ+0®lA¶B)|$°
+U`;%§ñV*KP,íXF|X`ñ[ØÐ^±tJ`âç¶cÄdQ0ÎRéeÆVÄNém<þ6c;¿Ë¸ñc´!
+H%<CQe£ìXòu-¨sY`+Ô*ï
+lÃñiíðcCà"h·¼-p1¬±*X>¶®Øý%«.
XÉiËo9ÊÕ¾J(/·±rqvJy|ã9C{qâJ÷#]¬sq5Û9Á¸Ç¿Ë¸×ÜÎe7ßÁ:ï0^Àø×±þ·0þpÇ\kgÌök«ãsüµÞM}½[z×|~ý:=ª§õÝZDÒ!5H¥ôh,niêÆÄP"=ÔÔµT2
+¥õÄÚæ÷·µàmy«º:WYÛPS¡¥F´¦ôPü9U7ÔN
"Ú`(µCMôÿs£1=SCcêv
+
+Eu#¥0"}H
+k©tÛánDô0éìB]
wlÖ¢ÃñP*o·E5©ÙYC}ZÊ í¾å<ÜÂÃÿ ¬n-Fª6%Ôµ±ÐPTËïÿ`$ 8¢í0&0B)Ìm4¶CÁ{
+"ÊIååÊë(çÊó°t¢¤Qv£
¨¬K«T£¥$áJÒá¨
+[±Õ°Ýsä)óIYË~|±EÒP¡
+üxµA@Ë¡GWctql¶
+îiØjØp4¦&éP6ßÃÎz]ýDPo³Ûc èÿD1â
+ó!&kcØnçQ½¦9.#W
y¸2û0̱¨CÖrö
+Ì£
+kðÂùø² ëÃÜOÝ&Þò½R½iííµú8B#g;FâÃ(h·ÌÒþß`úÖX¶2J u%¾Ç`)÷¢^Wlæ3dZÞ$¢K0+ëÝˤxFgF¶à}ÏÉï>×±¯Q¶Åþ=ÈW?[ÐÄXÁ»Aûk´!Î{0ÏY¹1øü4¡Ï¨Æ»Å¹¥7ÕHÎÉÁ<'OófÖÏ*çbaÁ»9C¼÷1ÖWź±üÞëâÌ&Å^iW9QÅGe)þa±ïúMQ̧QkDg¿¦wMè&Øé;7nîQZ0UjÜ¢F³¢ckÚafºuV5'øéb>ã¢þ5®A±&g?Ì«GO]äIs&úù¤ÆÅhU]pyè¬?̽Â5¸²âÝí+¢wPã@hü kfUöxv5±7&÷ÏÐ,¾"ì9Ê£æúÙçtâ¸ïf}$ðNçvD0mZÈÅc>Aâ¢2Tf0,²×yÇâ¬äscV⯼ñÙ_xQì»2ȱPU³h>mâù(¹W¨ÛÜ-0vcvaáÃ|*
+3˪R8ãª:ϯ«ZåýßÅÌ\qéüÀÜqÝ<éiñIæß~æé-<ÓÓEÙÍëͨÉngUfz0[I>cù,r¾iý(ÏÔ?h¯Òè&®+ü%ÈVl,yíÙ
+
@Úb7¶±ClbY£h$n©åR!@iÒítOÓ6E¤Mìtß÷öt_ÓÓýtÿÑ?é}wÞhÆ!Ë9HçFoÞÜ÷îöÝïÉ5DõLH¤M2¾;¶´g8Æçl¼cë2ØDGÕ¤W|Wñ,'"®b\§c\G)º§»4GHãöq¦ä\Mj³_ü*N¬¶Y#ûd8Ùëì"¤î§Î°då¸ï¡Qà;èºÇ룫ÈÐ;¨l§ï«x´µ¸¥sÊX ãB¥q³VL¿f¤çíL}~Ì
ÈV´Gøé!/9ZB73«í.æDK=l5k8)1Óu}kÑJ¨(*vH®&*|B¢éH©kæ.ã=Ju§2;ËUY¹¿¬ZÓZìZ®\/.; @FGs×#22i©y
Zتù21¹2+*W¶×£Àd1ÆÍÑ{ÊÞ kUÄB,ÃÉ®Lñ2ìÙ¤d*Ï'æ!iÂYë
+<ËÓ
ÝIeivÖ·vï¾¼§ÄîÆY¿Wú<}8þû9Nj¡¤=S§¹i®Ä<{\è+ÙcîËÝs5ýo¬[(.g¯`Û+#gq/Ñy4ÉÐtÉuÙ1³ÜS1È¢üei6ã
+NÝh¹Ñ8ÙÕsGßÒgÖ¤&yÀü~ié«£é-±²ÎÊ:¶"+óuâíÖörå
+ó»þüiÅæ¨ûXÿsßuè"ÖE~ý®¡ÿkèâjì¦ë:ú.§hF¾ºh¬ëé¶ÅÒ¸CÚXn-¤Ï3ϹÚõaÉ·'d'7qêìÉqMÚzA]Õz¶ºl¿v'6
øºfLòIöo\fi¯û=/-ÛÅÕ2)2¯Æä>¥-Þéã
+ñY,!uÝl§!;vE,Ò[òlQÛ`XÆ{53w|+¯Ù¬¥äuqîhV7òÓ&KüV<Øù^96Ø+åJ'¼<ó+ó0Ysu±ÉÒcCN¾ÊÊ*¾ÒÞ4OsÐ$oùSô©±bÒ£üV\¢.ÆK'!]ús>Zò #Äṟ2ÏùV1l强ÒØ?ç³ÜR×É\Õ¸÷
+ÊÊ3Ç®ÿ4#6ŹͬHeE³"ÆzC%^`1¤<»XyXiLú ɦåIÖéÝ91δe²Í&é«_¼øSÃsëßUÊDç½éÇ
ý¶ìð+'=Æ9¿Î÷~Çw»ÓÝí¾Ã}]7Î[AÔÊ¥´ìb6!X°þe4eÌ»¸ô;ßW?ϯÅBÿÈ_ÜXj,5«á¥ÈÔÁkP,A#ü ÍhA+hC;: R>,ŵ¸×ãÜH³:è
+)ûn¦(¬¦ÚõÓuÔE×SGÝ@½tnÁ¸
+/Åfl!·ÒYív:í SÚË[½:òNêþâ×WÓÉù
+«gòê Åh¼ñ:Æë1
¦ñÁ17á(á8îÇ <x§pgðfÅ[ðÞªTám8·+.¼ï»7Þ÷â}x?>âCxÆ£ø>á1|çQÄ<OàxObsx
+§ñe>Ïãø"¾/ã+ø*¾¯ãø&¾
oã;ø.¾ø>~âGø1~âgø9~_âWø5~§ñeÓïð{üðóOø3þ¿âoø;þêþâû_¥ZY¬xðY×x¾ÓIvºzÆÆÝÛóY½FвƨժÇñ¸ó&ô|ÖÈg´lRÏnéè8h?hóÖ\ Å\L_Ô«N¥zU&0çÁööhjKéMA=5ªJé-ûÓàþôT¶õÞF1ãÙöD²ÑßHú§J"Ù¢5C³½³
Ùâì3³TMÑÆfîk=·íK&9Krä$É ã$GIfHLL&L«ÍDÔG^õ|1¢^ ñGFÔÓÓõIaNyÇFõÉÃ{ëÕHÎî©WÏ<1³B}rj
zrУlR6©3$GH
+S
i×ô`½:EräbôéhÕh¬^!ì®W÷Dw7¨$w+±ZõnÈ0]vl9ìò7¯÷û_âoXç÷õ{#þNõ¿kµ«ü+oö×-¿Éw㲺ëoð]{]]h©¯C¶µ×6·´ÖúMµ
+Kk}×Ô{½µuÞ«®öV/öx]îE^(U^OÙìÛçò÷¹{Ðãê©voñ¨¾MյѣbGí]«ºÑÝ¿µ¸D¡ß¾Åµán
+ÎÅH¸»XÓ;½ (Ñh±êØþ¢ûØ\ý4l»k8:§´Ç3Aú}
+R9¿CCáöâÁî¾h1Ó>T¼UÜnB>_æ£<>PØ<q{Ø;Ö4sÿ:H-c>i¶fÅæbl4'\¨&ÆïÜú
+endstream
+endobj
+126 0 obj 248
+endobj
+127 0 obj<</Length 126 0 R/Filter/FlateDecode>>stream
+H\ËjÃ0E÷úY& Ù¸ÍÆCÀ>¨Û¥±+¨%!Ëÿ}õ)t@Ã̹\Úõ×Þè
+endstream
+endobj
+128 0 obj[/Indexed/DeviceRGB 255 130 0 R]
+endobj
+129 0 obj 428
+endobj
+130 0 obj<</Length 129 0 R/Filter[/ASCII85Decode/FlateDecode]>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
+b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
+E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
+6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
+VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
+PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
+endstream
+endobj
+131 0 obj 51
+endobj
+132 0 obj<</Length 131 0 R/Filter[/ASCII85Decode/FlateDecode]/Width 92/Height 13/BitsPerComponent 8/ColorSpace 128 0 R>>stream
+8;Xp,I2%W.E9Ahb/uFW]GOGSB?UPj>C$G%_0Xq-KJ,oX(DX:I~>
+endstream
+endobj
+133 0 obj<</Length 11916/Type/Metadata/Subtype/XML>>stream
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
+<?adobe-xap-filters esc="CRLF"?>
+<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+<rdf:Description rdf:about='uuid:541388e6-2ead-11da-a959-00145104264a' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='Adobe PDF library 6.66'></rdf:Description>
+<rdf:Description rdf:about='uuid:541388e6-2ead-11da-a959-00145104264a' xmlns:xap='http://ns.adobe.com/xap/1.0/'
+ xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/' xap:CreateDate='2005-09-26T11:45:43-05:00' xap:ModifyDate='2005-09-26T11:48:13-05:00' xap:CreatorTool='Illustrator' xap:MetadataDate='2005-09-26T11:48:13-05:00'><xap:Thumbnails><rdf:Alt><rdf:li rdf:parseType='Resource'><xapGImg:format>JPEG</xapGImg:format><xapGImg:width>256</xapGImg:width><xapGImg:height>132</xapGImg:height><xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAhAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW!
5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8AO88ve7dirsVdirsVdirs
VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
sVdirsVdirsVT3y95O1XXoJZ7R4o4oWCFpiy1YitF4q/QUrmx0XZmTUAmNADv/sLh6rXQwkCV2e5
Nv8AlVPmH/lotP8Ag5f+qeZv+h7P3w+Z/U4v8s4u6X2frQ+o/ltr1jYz3kkttJHboZHSNpC3FdzQ
FFGw98qz9h5scDMmJA7r/U2Yu1cU5CIEt/d+timaZ2TsVdirsVTF/L2rx6W2qTQGGzBUK8nwlixo
OKncj36ZlHR5Rj8QiotA1WMz4Abkl2Yre7FXYq7FXYq7!
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXt/lDSv0Z5ftLdhSVl9
Wbx5yfER9HTPQOzNP4WCMevM/F4/XZvEyk9OSc5nuI0
6JIjI45I4Ksp6EHYjBIAiikGjbwXW9NfTdWurFq/uJCqE906ofpUg55zqsBxZJQ7i9pp8viQEu8I
LMduVbS3NzdQ26niZpFjDHoCxAr+OTxw4pCPeWM5cMSe569oHkHRdK4yyL9dvBv60oHFT/kJuB9N
TnbaPsfDh3Prl3n9AeW1PaWTLsPTHyU/zK/5RaX/AIyxf8SyPbv+Ln3hl2V/fD3F5BnEPUuxV2Ku
xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kpx5Q0r9J+YLS2ZeUKt6s47cI/iI
Pz6fTmd2bp/Gzxj05n3Bxddm8PET1e4Z6C8ckeq+YVsvMel6YSAt4H9X2J2i+9gRmu1Gt8PUY8f8
67/R9rmYdLx4pz/m/gp5mxcN5p+a2lcLu11RB8My+hMf8pN1P0rX7s5P2h09TjkHXY/j8cnoexs1
xMO7dgWc47pnPlLyF9fs7DWvr3p1k9T6v6XL+6lIpz5jrw8M6Hs7sfxIRy8Vb3Vdx9/k6fW9pcEp
Y+HpzvvHuen51zziV+ZdD/TelPYev9X5Mrepx5/ZNelV/XmHr9J+Yx8F8P2uTpNR4M+Krec+ZvIH
6D0s331/6xR1T0/S4fa715t+rOX1/Y/5fHx8XFv3V+l32k7S8afDw18f2MRzSO0ZF5f8i6zrKCcA
Wtmd1nlr8X+oo3b57D3zaaLsnLnF/THvP6HA1PaOPFtzl3Bltt+U+kqv+k3txK228YSMV77MJM3W
P2dxj6pSPuofrdZLtqfSI/HydcflPpDL/o17cRtQ7yBJBXtsojxn7O4j9MpD30f1LHtrJ1iPx82K
eYPIetaPG1xRbqzXdpoq1UeLodx8xUZptZ2RlwDi+qPeP0h2em!
7Rx5TX0y82N5qnPT7yl5W/xDPc
RfWvqvoKrcvT9SvI0/mSmbHs7s/8zIji4a8r/SHC1us8AA1dsm/5VF/2tv8Ap3/6+5t/9Df+2f7H
/jzr/wCW/wCh9v7Egi8iapca5daZaOJIbRgst66lEFVDdAW336DNZHsjJLNLHHcR5y5BzT2jCOMT
lzl0ZXb/AJT6QqUuby4kk/mj4Rj7mWT9ebmHs7iA9UpH3UP1utl2zkvaI/HyQWsflTwheTSbppHX
dbefjVtugkXiK/7HKNT7PUCcUr8j+v8AY24O2bNTHxH6mJaL5W1fV717WCIxmFuNzJJVVjNaUb32
6ZpdLoMuaZjEcud9HZ6jWY8UeInny82c2v5T6Uqf6VezyyeMQSMe+zCTOhx+zuMD1SkT5UP1unn2
1O/TEff+pB6t+VIWJpNKu2d13WC4pVtugkXiK/Nco1Ps9QvFK/I/r/Y24e2d6mPiP1PP54ZYJnhm
QxyxsVkRhQhgaEHOalExJB2Id5GQIsclmRS7FXYq7FXYq7FXYq9K/KnSuFrdao4+KY+hCf8AJXdz
9LU+7Or9ntPUZZD12H6Xn+2c1yEB03Z9nSOkeMec9WkuPNlzcQtT6pIsUDDsYTSo/wBnU5wfamoM
9TKQ/hND4ftet0GARwAH+L9P7Hr2mX0d/p1tex/ZuI1kp4FhuPoO2dvp8wyY4zH8QeWzYzCZiehS
/wA4aV+k/L13bqvKZF9WAd+cfxAD5io+nMXtPT+LglHqNx8G/Q5vDyg9OTxDPP3sHp/kfzXoFroN
hptxdcL3k6el6ch+KSZio5BSu/Id867srtHBDDDHKXr32o9SfJ53tDRZZZZTA9PvHcznOhdMhdT1
Sx0y1N3fS+jbqQpfizbtsNlDHKc+ohijxTNBtxYZZJcMRZYN5682+X9U0FrWxuvWnM!
qNw9ORdhWu
7Koznu1+0cGbDwwlZsdD+p3HZ2iy48vFIUK7wkPkHy1HrOqNLcrysbQ
B5V7Ox+wny2JP9ua7sfQj
PkuX0R5+fcHN7S1ZxQofVJ7AqqqhVACgUAGwAGdwBTypKT6/5t0bQyqXjs87jksEQDPx8TUqAPmc
wNZ2li0+0ufcObl6bRZM28eXeWtA83aNrhZLR2SdBya3lAV+NachQsCPkcdH2li1G0efcea6nRZM
O8uXeE6IBBBFQeozPcR5B+YHluLSNTWe1XhZXlWRB0Rx9tR7bgjOI7Z0IwZLj9EvsPUPU9mao5YV
L6opp+Uv+92of8Yk/wCJHMv2c+ufucftr6Y+96XnWPPIPUNS0vSbc3F5KltEzbsRuzEdgoJY7ZRm
z48MeKZEQ3YsU8pqIstaVrWl6tC02n3Czoho9AVZT7qwDCvyx0+qx5hcDa5tPPEamKRuXtKDvb3S
9KtpLq6eO1hZuUj0oWc7dFFWYgfPKMuXHhiZSIiP0/pLbjxzyHhjuVmk67pOrRu+n3KziM0cAMrC
vSqsFbf5YNPq8WYXA3TLNp54jUxSPzIaHlP5pWEcGuRXMYp9biBk93Q8a/8AA0zje38IjmEh/EHp
ex8hljIP8JYbmids7FXYq7FXYq7FW0RndUQcnYgKo6knYDCBZpSae86HpqaZpFrYr/uiMByO7ndz
9LE56NpMHhYow7h9vV4rUZfEyGXeUcenh75kNLDX/KzQHdna5vCzEliXi3J/555oj7P4D/FP5j9T
th2xlHSP2/rZJoukQaRp8dhbySSQxlihlKlhyPIiqhdqnNrpdNHBAQiSQO91+oznLPiIF+SOzIaX
h/m7Sv0Z5gu7ZRSIt6sPhwk+ID6Omefdo6fwc8o9OY9xex0WbxMQPVB6N/x2LH/mIi/4mMo0397H
+sPvbc/93L3F75npDxLFvzK/5RaX/jLF/wASzT9u/wCLn3h2XZX98PcXkGcQ9S9Y/K63SPy7!
JKB8
c1w5Y+yhVAzs/Z+AGAnvk8z2xInLXcGYZvHVPDPNd1Jc+ZNSkckkXDxrX+WM8F/Bc887QyGeeZP8
4/Zs9lo4COGIHd97vKdxLb+ZdNeM0ZriOM0/lkYIw+5sezpmOogR/OA+ey62IlhkD3H7HueehvGs
P/NGFH8uJIR8UVwhU/MMp/Xmj9oIg4Ae6Q/S7XsiVZq7wkn5S/73ah/xiT/iRzX+zn1z9zmdtfTH
3vS86x555V+alzI+vQQEn04bdSq9uTs3I/TQZx3tBMnMB0EXpex4AYie8r/yoZhrd2lfhNsSR2qJ
Ep+vD7On99If0f0hHbI/dj+t+gvUs7B5t5l+bNxKdQsbev7pIWkC9uTNQn7lzkvaKZ8SMelX9v7H
oexYjgketoH8sJHXzKVViFeCQOOxoQRmP2CSNR/mlv7XA8H4vW87V5d5t+bf+9Wm/wCpL+tc5T2j
+qHuL0HYv0y+DAM5t3bsVdirsVdirsVZL+XulfX/ADJC7CsNmPrD/Ndk/wCGIObXsbT+JqB3R3/V
9rr+083BhI6y2ex53TyjsVdirsVdirAPzW0rnbWmqIvxREwTH/Jb4k+41+/Oa9otPcY5B02P6Hd9
jZqJgeu7AdHIGr2JPQXERP8AwYzm9N/eR/rD73d5/wC7l7i99z0l4ljP5iwSy+Vbj01L8HjdgNyF
Dbn6M1PbcCdMa6EOx7LkBmF+byD0JvR9b029GvH1KHjyNdq9K7HOI4TV1s9TxC66vTPyp1CN9Mur
An97BL6oHikgA2+TL+OdX7O5gccodQb+bz3bOIiYl0IZznROmeQefvL15Y61c3oiZrG7cyrMoqod
92VvA8q/POH7Y0U8eUzr0SN373quzdVGeMRv1R2d5B8v3t9rVtemJlsrRxK0xBClk3VVPc8qY9j6
OeTNGde!
iJu17S1MYYzG/VLZ6/ncPKsF/NbUETTbWwB/ezS+qw/yIwRv82b8M532izAY4w6k38nc9&
#xA;jYiZmXQCku/KX/e7UP8AjEn/ABI5i+zn1z9zkdtfTH3vS86x555L+aH/ACkw/wCYeP8AW2cV2/8A
4x/mh6fsj+5+JV/yo/47t1/zCt/ycTLfZ7++l/V/SGHbP90P636C9TzsHm3l35sf8dmz/wCYb/jd
s5D2i/vo/wBX9Jej7G/uz7/0IT8sv+UnX/jBJ/DKOwv8YHuLb2t/c/EPXM7Z5d5t+bf+9Wm/6kv6
1zlPaP6oe4vQdi/TL4MAzm3duxV2KuxV2KuxV6v+WGk/VdEe+cUlvnqp/wCK46qv48jnZdgafgxG
Z5zP2D8F5rtfNxZOHpH72Y5vXUvJfzN1H6z5h+rKQUs41Tb+d/jb9YGcV29m48/D/NFfpen7JxcO
K/5xYjmldomPl3UBp+uWV4TRIpV9Q/5DfC//AApOZOizeFmjPuP2dWjVYuPHKPeHu+ejPFoHXdMX
U9IurFus8ZCE9nG6H6GAzH1mDxcUod4+3o3afL4eQS7nhAMkE4NOMkTdD2ZTnnW8T5h7TYj3veNH
1W21XTob23YFJVHJQalXp8SH3Bz0bS6iObGJx6/ini8+E45mJ6I3L2lif5mw+p5YZ6V9KeN/vqn/
ABtml7ejenvukP1Oz7JlWb3gvMtC1q70bUo7623ZPhkjPR0P2lPzzk9JqpYMgnH+16LUYI5YGJez
aF5j0vWrYS2co9QCstuxAkT5r4e/TO70mux543E793UPJ6jSzxGpD49EzzLcZ2KpZrvmPS9FtzLe
Sj1CKxW6kGR/9VfD36ZiavXY8Ebkd+7qXJ0+lnlNRHx6PGdd1q71nUpL652Z/hjjHREH2VHyzhNX
qpZ8hnL+x6zT4I4oCIZd+Uv+92of8Yk/4kc3Xs59c/c6vtr6Y+96XnWPPPJfzQ/5SYf8w8f62ziu
3/8AGP8AND0/Z!
H9z8Sr/AJUf8d26/wCYVv8Ak4mW+z399L+r+kMO2f7of1v0F6nnYPNvLvzY/wCO
zZ/8w3/G7ZyHtF/fR/q/pL0fY392ff8AoQn5Zf8AKTr/AMYJP4ZR2F/jA9xbe1v7n4h65nbPLvNv
zb/3q03/AFJf1rnKe0f1Q9xeg7F+mXwYBnNu7dirsVdirsVdiqOh17XIYlih1G6jiQcUjSaRVAHY
AGgzIjq80RQnID3lplpsZNmMb9wX/wCJPMP/AFdLv/kfL/zVkvz2f+fP/TFH5XF/Mj8ggZppp5Wl
mkaWVzV5HJZifEk7nMeUjI2TZboxAFDYLMil2KpgPMfmEAAapdgDoPXl/wCasyvzuf8Anz/0xaPy
uL+bH5Bv/EnmH/q6Xf8AyPl/5qx/PZ/58/8ATFfyuL+ZH5BL5JJJJGkkYvI5LO7GpJO5JJ6k5jEk
mzzbwABQRNhqupae5eyuZLdm+16bEA/MdDluHUZMZuEjH3NeTDCf1AFOP+Vheb/+W/8A5Iwf80Zn
fyzqv5/2R/U4v8mYP5v2n9aXX/mLXNQjMV5fSyxMatEWoh3B3UUBoRtmLm1ubIKlIkN+PS44G4xA
KXZit66KWWKRZInaORd1dSVI+RGGMiDY5oIBFFOrbzx5rt14x6jIw2H7wJKdveRWOZ+PtXUx5TPx
3+9xJdn4Jc4/o+51z53813C8ZNRkUAEfuwkR3941U45O1dTLnM/Db7lh2fgjyiPv+9JZZZZZGkld
pJG3Z2JYn5k5gSkSbPNywABQW4Eq9pqF/ZszWdzLbM4o5hdoyQPHiRlmPNPH9JMfcaYTxRn9QB96
K/xJ5h/6ul3/AMj5f+asu/PZ/wCfP/TFr/K4v5kfkEHdXl3dy+rdTyXEtOPqSsztQdqsScoyZZTN
yJJ8922EIxFRAAbtL69s5DJaXElvI!
w4s8TshIrWhKkbbYceWcDcSYnyNLPHGYqQB96L/AMSeYf8A
q6Xf/I+X/mrLvz2f+f
P/AExavyuL+ZH5BCXd9fXjh7u4luXUcVaV2cgdaAsTlOTLOZuRMj5m2yGO
MNogD3NWt3d2kvq2s0lvLQj1ImKNQ9RVSDgx5JQNxJB8kzhGQqQsIz/EnmH/AKul3/yPl/5qy/8A
PZ/58/8ATFq/K4v5kfkELd6hqF6VN5cy3JSoQzO0lK9aciaZVkzTyfXIy95tshijD6QB7lDKmbsV
dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
dirsVdirsVdirsVdirsVdir/AP/Z</xapGImg:image></rdf:li></rdf:Alt></xap:Thumbnails></rdf:Description>
+<rdf:Description rdf:about='uuid:541388e6-2ead-11da-a959-00145104264a' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:265243c6-0c04-11da-8062-00145104264a'/>
+<rdf:Description rdf:about='uuid:541388e6-2ead-11da-a959-00145104264a' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/vnd.adobe.illustrator'/>
+</rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end='w'?>
+endstream
+endobj
+xref
+0 134
+0000000004 65535 f
+0000000016 00000 n
+0000000077 00000 n
+0000000127 00000 n
+0000000009 00001 f
+0000000271 00000 n
+0000000291 00000 n
+0000000784 00000 n
+0000000855 00000 n
+0000000010 00001 f
+0000000011 00001 f
+0000000012 00001 f
+0000000013 00001 f
+0000000014 00001 f
+0000000015 00001 f
+0000000016 00001 f
+0000000017 00001 f
+0000000018 00001 f
+0000000019 00001 f
+0000000020 00001 f
+0000000021 00001 f
+0000000022 00001 f
+0000000023 00001 f
+0000000024 00001 f
+0000000025 00001 f
+0000000026 00001 f
+0000000027 00001 f
+0000000028 00001 f
+0000000029 00001 f
+0000000030 00001 f
+0000000031 00001 f
+0000000032 00001 f
+0000000033 00001 f
+0000000034 00001 f
+0000000035 00001 f
+0000000036 00001 f
+0000000037 00001 f
+0000000038 00001 f
+0000000039 00001 f
+0000000040 00001 f
+0000000041 00001 f
+0000000042 00001 f
+0000000043 00001 f
+0000000044 00001 f
+0000000045 00001 f
+0000000046 00001 f
+0000000047 00001 f
+0000000048 00001 f
+0000000049 00001 f
+0000000050 00001 f
+0000000051 00001 f
+0000000052 00001 f
+0000000053 00001 f
+0000000054 00001 f
+0000000055 00001 f
+0000000056 00001 f
+0000000057 00001 f
+0000000058 00001 f
+0000000059 00001 f
+0000000060 00001 f
+0000000061 00001 f
+0000000062 00001 f
+0000000063 00001 f
+0000000064 00001 f
+0000000065 00001 f
+0000000066 00001 f
+0000000067 00001 f
+0000000068 00001 f
+0000000069 00001 f
+0000000070 00001 f
+0000000124 00001 f
+0000001442 00000 n
+0000001463 00000 n
+0000002739 00000 n
+0000021411 00000 n
+0000021433 00000 n
+0000037047 00000 n
+0000037069 00000 n
+0000055015 00000 n
+0000055037 00000 n
+0000081158 00000 n
+0000081180 00000 n
+0000106861 00000 n
+0000106883 00000 n
+0000129743 00000 n
+0000129765 00000 n
+0000152332 00000 n
+0000152354 00000 n
+0000174600 00000 n
+0000174622 00000 n
+0000196402 00000 n
+0000196423 00000 n
+0000205358 00000 n
+0000205379 00000 n
+0000209039 00000 n
+0000209061 00000 n
+0000230582 00000 n
+0000230604 00000 n
+0000249574 00000 n
+0000249596 00000 n
+0000267822 00000 n
+0000267845 00000 n
+0000291315 00000 n
+0000291338 00000 n
+0000315036 00000 n
+0000315059 00000 n
+0000337570 00000 n
+0000337593 00000 n
+0000360878 00000 n
+0000360901 00000 n
+0000381822 00000 n
+0000381845 00000 n
+0000393996 00000 n
+0000394019 00000 n
+0000412882 00000 n
+0000412995 00000 n
+0000413130 00000 n
+0000413156 00000 n
+0000413322 00000 n
+0000413391 00000 n
+0000413589 00000 n
+0000413610 00000 n
+0000413910 00000 n
+0000413932 00000 n
+0000000125 00001 f
+0000000000 00001 f
+0000420808 00000 n
+0000420829 00000 n
+0000421150 00000 n
+0000421199 00000 n
+0000421220 00000 n
+0000421737 00000 n
+0000421757 00000 n
+0000421954 00000 n
+trailer
+<</Size 134/Root 1 0 R/Info 3 0 R/ID[<fa4466e42eac11daa95900145104264a><541342a82ead11daa95900145104264a>]>>
+startxref
+433948
+%%EOF
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/JBossWikiLogoMedium.png
===================================================================
(Binary files differ)
Property changes on: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/JBossWikiLogoMedium.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/RDFButton.ai
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/etc/images/RDFButton.ai (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/etc/images/RDFButton.ai 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,3653 @@
+%PDF-1.4
+%âãÏÓ
+1 0 obj<</Pages 2 0 R/Type/Catalog/Metadata 133 0 R>>
+endobj
+2 0 obj<</Count 1/Kids[6 0 R]/Type/Pages>>
+endobj
+3 0 obj<</ModDate(D:20050926114752-05'00')/CreationDate(D:20050813091429-05'00')/Creator(Illustrator)/Producer(Adobe PDF library 6.66)>>
+endobj
+5 0 obj null
+endobj
+6 0 obj<</Contents 121 0 R/Type/Page/Parent 2 0 R/Thumb 132 0 R/MediaBox[0.0 0.0 743.0 109.0]/BleedBox[0.0 0.0 743.0 109.0]/TrimBox[0.0 0.0 743.0 109.0]/ArtBox[353.65771 46.10059 385.75 65.98242]/Resources<</Font<</C2_0 115 0 R>>/ProcSet[/PDF/Text]/ExtGState<</GS0 114 0 R>>/Properties<</MC0<</Color[20224.0 32768.0 32768.0]/Title(Layer 1)/Visible true/Preview true/Editable true/Printed true/Dimmed true>>>>>>/PieceInfo<</Illustrator 7 0 R>>/LastModified(D:20050926114751-05'00')>>
+endobj
+7 0 obj<</LastModified(D:20050926114751-05'00')/Private 8 0 R>>
+endobj
+8 0 obj<</CreatorVersion 11/ContainerVersion 9/RoundtripVersion 11/AIMetaData 72 0 R/AIPrivateData1 73 0 R/AIPrivateData2 75 0 R/AIPrivateData3 77 0 R/AIPrivateData4 79 0 R/AIPrivateData5 81 0 R/AIPrivateData6 83 0 R/AIPrivateData7 85 0 R/AIPrivateData8 87 0 R/AIPrivateData9 89 0 R/AIPrivateData10 91 0 R/AIPrivateData11 93 0 R/NumBlock 21/AIPrivateData12 95 0 R/AIPrivateData13 97 0 R/AIPrivateData14 99 0 R/AIPrivateData15 101 0 R/AIPrivateData16 103 0 R/AIPrivateData17 105 0 R/AIPrivateData18 107 0 R/AIPrivateData19 109 0 R/AIPrivateData20 111 0 R/AIPrivateData21 113 0 R>>
+endobj
+71 0 obj null
+endobj
+72 0 obj<</Length 1223>>stream
+%!PS-Adobe-3.0
+%%Creator: Adobe Illustrator(R) 11.0
+%%AI8_CreatorVersion: 11.0.0
+%%For: (Nobody) (Nobody)
+%%Title: (RDFButton.ai)
+%%CreationDate: 9/26/05 11:47 AM
+%%BoundingBox: 353 46 386 66
+%%HiResBoundingBox: 353.6577 46.1006 385.75 65.9824
+%%DocumentProcessColors: Cyan Magenta Yellow Black
+%AI5_FileFormat 7.0
+%AI3_ColorUsage: Color
+%AI7_ImageSettings: 0
+%%CMYKProcessColor: 0 0 0 1 (Global Black)
+%%+ 0.46 0 0 0 (Global Blue)
+%%+ 0.8 0 1 0 (Global Green)
+%%+ 0.33 0 0.73 0 (Global Lime)
+%%+ 0.3255 0.4431 0.5373 0.1961 (Global Malt)
+%%+ 1 0.5 0 0 (Global Night)
+%%+ 0 0.5 1 0 (Global Orange)
+%%+ 0.43 0.28 0 0 (Global Periwinkle)
+%%+ 0 0.25 0 0 (Global Pink)
+%%+ 0.5 0.9 0 0 (Global Plum)
+%%+ 0 1 1 0 (Global Red)
+%%+ 0 0 1 0 (Global Yellow)
+%%+ 1 1 1 1 ([Registration])
+%AI3_TemplateBox: 371.5 54.5 371.5 54.5
+%AI3_TileBox: -12.8799 -239.8799 755.8799 348.8799
+%AI3_DocumentPreview: None
+%AI5_ArtSize: 743 109
+%AI5_RulerUnits: 6
+%AI9_ColorModel: 2
+%AI5_ArtFlags: 0 0 0 1 0 0 1 0 0
+%AI5_TargetResolution: 800
+%AI5_NumLayers: 1
+%AI9_OpenToView: 288 134 4 1012 683 26 0 0 6 42 0 0 1 1 1 0 1
+%AI5_OpenViewLayers: 7
+%%PageOrigin:0 0
+%AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9
+%AI9_Flatten: 0
+%%EndComments
+
+endstream
+endobj
+73 0 obj<</Length 13105>>stream
+%%BoundingBox: 353 46 386 66
+%%HiResBoundingBox: 353.6577 46.1006 385.75 65.9824
+%AI7_Thumbnail: 128 80 8
+%%BeginData: 12960 Hex Bytes
+%0000330000660000990000CC0033000033330033660033990033CC0033FF
+%0066000066330066660066990066CC0066FF009900009933009966009999
+%0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66
+%00FF9900FFCC3300003300333300663300993300CC3300FF333300333333
+%3333663333993333CC3333FF3366003366333366663366993366CC3366FF
+%3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99
+%33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033
+%6600666600996600CC6600FF6633006633336633666633996633CC6633FF
+%6666006666336666666666996666CC6666FF669900669933669966669999
+%6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33
+%66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF
+%9933009933339933669933999933CC9933FF996600996633996666996699
+%9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33
+%99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF
+%CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399
+%CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933
+%CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF
+%CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC
+%FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699
+%FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33
+%FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100
+%000011111111220000002200000022222222440000004400000044444444
+%550000005500000055555555770000007700000077777777880000008800
+%000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB
+%DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF
+%00FF0000FFFFFF0000FF00FFFFFF00FFFFFF
+%524C45BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC9399FD81939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%9399939993999399939993999399939993999399FD81939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%FD8193999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%93999399939993999399FD8193BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC9399FD819399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%FD81939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BCFD81939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%9399939993999399939993999399939993999399FD8193BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%FD8193999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%93999399939993999399FD81939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BCFD179392939393929393
+%939293939392FD139392939393929393939293939392FD17939293939392
+%939393929393939293939392FD1593999399939993999399939993999399
+%939993939AC9A1C3A0C3A1C3A0C3A1C3A0C3A1C3A0C3A1C29ABC93939399
+%93999399939993BCA1C3A0C3A1C3A0C3A1C3A0C3A1C3A0C39ABC93999393
+%9399939993999399939993C3A1C3A1C3A0C3A1C3A0C3A1C3A0C3A1C3A0C3
+%A1C3A0C99A9393999399939993999399939993999399FD1493CAFD14FFA8
+%CAA09392FD079399FD13FFA7C3FD0C93A8FD16FFCAFD1293BC939993BC93
+%9993BC939993BC939993BC9393A7FD17FFCABC939993BC939993C2FD16FF
+%9A93939993BC939993BC93CAFD16FFC99393BC939993BC939993BC939993
+%BC9399FD1493CAFD18FFCA9AFD069399FD17FFA0FD0993A8FD16FFCAFD12
+%9399939993999399939993999399939993999399C9FD19FFCA9993999399
+%93BCFD18FFA09393999399939393CAFD16FFA19393999399939993999399
+%939993999399FD1493CAFFFFA8FFFFFFA8FD0BFFA8FFFFFFA8FFFFFF9AFD
+%059399FFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF9AFD
+%0793A7FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFC9FD129399
+%93BC939993BC939993BC939993BC939993BBC9FD09FFA1C3A1C3A0C9CAFD
+%0AFFCA939993BC93C2FD1AFF939393BC939993CFFD16FFCABB939993BC93
+%9993BC939993BC939993BCFD1493CAFD08FFA7938C93939392939AFD09FF
+%A899FD04939AFD09FFA1C3A0C3A1CAFFFFCFFD08FFC3FD0693A7FD08FFCF
+%A0C3A0C3A0C3A0C3A0C3A0C3A1A0FD129399939993999399939993999399
+%939993999393A7FD08FFCA9393939993999393C3FD09FF9399939993C2FD
+%09FFBC8CFD0493BCCAFD09FFCA999399939993CAFD08FFA1FD0E93999399
+%9399939993999399939993999399FD1493CAAFFFFFFFA8FFFFFFA7FD0793
+%68C3FFFFA8FFFFFFA8FFCA99FD049399FFFFFFA8FFFFFFA8FF9AFD05938C
+%99A8FFA8FFFFFFA8FFFFFF99FD0593A7FFA8FFFFFFA8FFFFCAFD2093BC93
+%9993BC939993BC939993BC939993BC9393A7FD08FFCF939993BC93999393
+%A1FD09FF93BC939993C2FD09FFC293BC939993BC93C2FD09FFC3939993BC
+%93CAFD08FFA7BB939993BC939993BC939993BC939993BC939993BC939993
+%BC939993BC9399FD1493CAFD08FFA7FD0893FD09FFA7FD059399FD09FF9A
+%FD0893CFFD08FFA1FD0593A8FD08FFCAFD20939993999399939993999399
+%9399939993999399C9FD08FFCA939A939993C2A0FD0AFFC39399939993BC
+%FD09FFC29399939993999393C9FD08FFCA9399939393CAFD08FFC999939A
+%9399939A939993BC9399939993999399939993999399939993999399FD14
+%93CAFFFFA8FFFFFFA8FFCFFFA8FFCAFFAFFFFFFFA8FFFFFFA8FFFFFFFD06
+%9399FFA8FFFFFFA8FFFFFF9AFD079392C3FFFFA8FFFFFFA8FFA8FD0593A7
+%FFFFFFA8FFFFFFA8FFCAFFA8FFCAFFA8FFCAFFAFC9FD14939993BC939993
+%BC939993BC939993BC939993BBC9FD19FF9A93939993BC93C2FD09FFC393
+%9993BC93999393A1FD09FF93BB939993CFFD14FFC99393BC939993BC9399
+%93BC939993BC939993BCFD1493CAFD18FF9AFD07939AFD09FF9AFD079392
+%C3FD08FFCF99FD0493A7FD14FFCAFD149399939993999399939993999399
+%939993999393A7FD16FFCF9A9393999399939993C2FD09FFC29399939993
+%999393A0FD09FF9993939993CAFD14FFA193939993999399939993999399
+%939993999399FD1493CAAFFFFFFFA8FFFFFFA8FFFFFFA8FFFFFFA8FFFFFF
+%A19AFD0A9399FFFFFFA8FFFFFFA8FF9AFD0893A1FD04FFA8FFFFFFA89AFD
+%0493A7FFA8FFFFFFA8FFFFFFAFFFFFFFAFFFFFFFAFFFFFC9FD1493BC9399
+%93BC939993BC939993BC939993BC9393A7FD14FFCA9A9393BC939993BC93
+%9993C2FD09FFC293BC939993BC9393A1FD09FF939393BC93CAFD0CFFCFFF
+%FFFFCFFFFFFFA1BB939993BC939993BC939993BC939993BC9399FD1493CA
+%FD08FFA79993A1CAFD09FFA1FD099399FD09FF9AFD0893C3FD08FFA899FD
+%0493A8FD08FFCA93999399939993999399FD169399939993999399939993
+%999399939993999399C9FD08FFCA939393C2FD0AFFA09393999399939993
+%BCFD09FFC29399939993999399CAFD08FFCA9399939393CAFD08FFC99393
+%9993939399939393999399939993999399939993999399939993999399FD
+%1493CAFFFFA8FFFFFFA8FFA7FD0493C9FD04FFA8FFFFFFAFFF99FD079399
+%FFA8FFFFFFA8FFFFFF9AFD0893FFFFFFA8FFFFFFA8FFA1FD0593A7FFFFFF
+%A8FFFFFFAFCAFD20939993BC939993BC939993BC939993BC939993BBC9FD
+%08FFCA93BC939393FD0AFFCF93BC939993BC93C2FD09FFC3939993BC9393
+%93CAFD09FFC293BC939993CFFD08FFC99393BC939993BC939993BC939993
+%BC939993BC939993BC939993BC939993BCFD1493CAFD08FFA8FD0593A0FD
+%0AFFA0FD06939AFD09FF99939393929393C3FD0AFFFD0693A7FD08FFCAFD
+%209399939993999399939993999399939993999393A7FD08FFCA93939399
+%939ACAFD09FFCA999399939993C2FD09FFCAA0C3A1C3A1FD0BFFA1939399
+%939993CAFD08FFA799939993999399939993999399939993999399939993
+%999399939993999399FD1493CAAFFFFFFFA8FFFFFFA7FD0693A0FD04FFA8
+%FFFFFFA8FF9AFD059399FFFFFFA8FFFFFFA8FD07FFAFFFFFFFA8FFFFFFA8
+%FFCA99FD0693A7FFA8FFFFFFA8FFFFCAFD2093BC939993BC939993BC9399
+%93BC939993BC9393A7FD08FFCF939993BC939393FD0BFF93BB939993C2FD
+%19FFC293BC939993BC93CAFD08FFA7BB939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC9399FD1493CAFD08FFA7FD07939AFD0A
+%FFC39293939399FD18FFC3FD0893A8FD08FFCAFD20939993999399939993
+%9993999399939993999399C9FD08FFCA9399939993999393A8FD09FFCF9A
+%939993BCFD17FFC3939993999399939393CAFD08FFC99393999399939993
+%9993999399939993999399939993999399939993999399FD1493CAFFFFA8
+%FFFFFFA8FFA7FD08939AAFFFFFFFA8FFFFFFA8FFA093939399FFA8FFFFFF
+%A8FFFFFFA8FFFFFFA8FFFFFFAFFFFFFFA89AFD0A93A7FFFFFFA8FFFFFFAF
+%CAFD20939993BC939993BC939993BC939993BC939993BBCAFD08FFCF93BC
+%939993BC939993CAFD0AFF99BB93C2FD12FFCACA9ABC939993BC939993BC
+%939993FD09FFCA9393BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BCFD1493C2A1C3A0C3A0C3A0C39AFD0A93C3A0C3A0C3A0
+%C3A0C3A19A939393C3A0C3A0C3A0C3A0C3A0C3A0C3A0C3A09A9399FD0E93
+%9AC3A0C3A0C3A0C3A0C2FD20939993999399939993999399939993999399
+%9399FD0B9399939993999399FD0D93999399FD1393999399939993999399
+%93999399FD0B939993999399939993999399939993999399939993999399
+%9399939993999399FD8193BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC9399FD8193999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%93999399939993999399939993999399939993999399939993999399FD81
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BCFD819399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399FD8193BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC9399FD81
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%9399939993999399FD81939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BCFD8193999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%93999399939993999399939993999399939993999399939993999399FD81
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC9399FD819399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399939993999399939993999399
+%939993999399939993999399939993999399FD81939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BC9399
+%93BC939993BC939993BC939993BC939993BC939993BC939993BC939993BC
+%939993BC939993BC939993BC939993BC939993BC939993BC939993BCFDFC
+%93FD0593A1C9A1C3A1C9A1C3A1C9A1C3A1C9A1C3A1C9A1C3A1C9A1C3A1C9
+%A1C3A1C9A1C3A1C9A1C3A1C9A1C3A1C9A1C3A1C9A1C3A1C9A1C3A1C9A1C3
+%A1C9A1C3A1C9A1C3A1C9A1C3A1C9A1C3A1C9A1C3A1C9A1C3A1C9A1C3A1C9
+%A1C3A1C9A1C3A1C9A1C3A1C9A1C3A1C9A1C3A1C9A1C3A1C9A1C3A1C9A1C3
+%A1C9A1C3A1C9A1C3A1C9A1C3
+%%EndData
+
+endstream
+endobj
+74 0 obj 15544
+endobj
+75 0 obj<</Length 74 0 R/Filter[/FlateDecode]>>stream
+HWënܺ~½ú#@ÂKDÊ(
+èã6±
+_NÅ^Ñk!¸Ñ%óôVÔïRoÃo(î«¿\ßÅ¥zgtã¹Î«Wi'Å ºs×̺u=öC§§^ß¼q1Þx
+«¬²¡:Zèx:h\°¥ØïeJPJ´|£~]wÑËæzëZè :ÃF´åC
+YêL£·íÔá¹ÓÆ+e#ºOÈÆ°,·iÕPÊGç誯Eÿä,Sx5U;Aó÷³lQ3þ8íü¿UW>JpUµRÑïÆZ?Ì
+¬m!±ë4ßá70±3
+a[Úv´Æv/º±©Å8@Â9ÿ íØ9w¹9)lïzx_tk©¼Ý)}
+:w·«ÛÇÉMä#Z«Ðfß
+
+ooUoý>Ùy`S¹
Ô^C]ô[ƹ<8æÎP½íÔx¸hóÚ^¯õk¥k¯Z<¹I7öOîR5Ü~O
+â Ò ò ½$¤¡a²QIYóvaù,`!cîÙ,f KYÆrVpcN8å>xÈç<â1OxÊ3ó"ò"F~F,âQÅND©ów5¦±q³ÇQÇIÆYÇEâ%8! Mü$HÂ%<8I4É<)R/Å)Iiê§A¦,åiÆN¤i¥yZd^3ÑÌÏ,ÌXƳ(³$K³,˳"÷ræ~äaÎrGy'ygy
Wà8-|C°çÁýÜ#ñ=Hz {°K/I<ËË<pæ1¡Ø àbG:ÇcØ$N1Ds¬×ó4BA|#!ôN $&Û&ØI¡#¡X)¥¾C}è`ÝWÛ¤õrPa#A1I>I6Ij$$$O´8ðN2ÿùFè$d<gÅ/&É'ɬ8ÀS-É$±Ãõð9ýO$9Ô3
+²ÉO¤XKì>¨£?&¡³Ð'rÎô´)
+$Î,µ<j¹:³ÕòëÊÒ.´µÄ©;×Òw"ðDa æ0t;´¬c7X$ ©ö©±&tSpfªëjbS;]¯Ô'ò¹ÏüJîûÔ'Àj4ØS@"Ê)£!PÁFÈéÿ²_~-ÜXÿ÷;øe yi¤ªR©ÂBɲB`wY2yféÞÐ,t`2òí÷èêu¹m÷øq}aÚã*Ë¥{ïùÝ#çuhZ\´²FS+´÷FÀ3 #¤°B2£w&¨f~ðP®¬X B[ ¹94ߢmù]Î,Òå
+JéÈ"U,RÍ"5Ä"=²HO,RÁ"X¤çeêX¦¾i)dÍÈÀd¨CCÆP0ÕÃíá¥õ¹hQ
5Aþ4:Á'ÖGÚGÞGâGæVµe;Ö¿g.H®;gmHÒb¦\ÊLS a&¥Å¥ÈNq&Ö
*!Å[×¼í5mù¶;ðVUÚ¦içÝcµs¾a)3sÖnª@s|qà/¯O3/Zx±°\XÐò¢aÙ°pÏË2càßù·&ÆðÌ1X¡WiVÙ
úPçÈVÅÓ6Ì[Í3wadÆåéæ¯ã)ÌsXð,Óx Ë}Ê°cæá¬ã®¸+iË£:ë0®C
+QÌ0njÜT¹«ó¶Ò©ÖTÐÜz¨Tðèì¤rÍÛª·uGå©-}(þÿ98ºp{ÔqcÁÞix
Ö{îò`!,xaÀ
+(peD}$zÏ@8²@¨4°¥
+QDÖôÀú,fE
+D*¨lD¡%׬µÀ5x¬@çÊhkì;Âs[<¿Á>46¤°±èz
+;lÜ"ÐHBbF$H²£>±¶ìq¢û8§*dºsªR¦^Ë©`¿BÚ³<£fso¡¼QâÛÃMéç·o²`Áàóy
+ãY=Hä¿.qöþþ¸àª
+·h
FïQÍ3¿%¬Uq5¯=
+(á\¾¼5~ïaPíÅq|Ó,¯¹!ÿjþ\êÈ\w¿¹½Æ{]º+uÏq¯uôaýY}:½<þôåóãóÓË×ø}úíù%ôÃá»<?>~þëðñ¿}Oí°Úx°(ô8Bô¡7±lbslâòí⸠·íËç øÇ.ä&MjP:µ1oBobÙDwJ$>Gq0ÿßæ}.ÓûÁ¼ïoéZËVÓ°Å<²µôl)vdð+±ivѳMØ*v
»AË.þS_ý#fÂ,Ð ³ÁbF8ô
#n LÕÉ)7;èTÉ5óIï/Ì~]èý
Ù¯½¿0ûu¡÷¦Ö#uGç
+öðqNjÄATE4ïýßR\ )^0ûA[\av®øC*â%òk(1R¨s
+©\µÌör-&3Íc±®Îd<0L©xPYèPühö¤Sq¦ÙÎÅ£êr*á ±_Í5ûV[Üë±xØìcOÙÍG+¯EP²·Ùâ±Rêê® ºî¶ã¥ Ë·lbx;èÒ
+;!ß
+zûòÙ8û¢Wü·hfÈ2²1?;{G4&X§¡^imÕÞEþXæWÄ0û#¤óͷߺéóϧ?úüØòëó¶:v+>V²~ÆÄÙ@ÚÈÚ@ÛÀÛHÜÀ\Ç®Æ3$³ô%à7
+Gk9ZÛño#á6ndû¸ØØbQhëT¢?¨eïݶe_»¶ZÇ\©¶2}-ZOק{ÏÇ!TÙ'¯glMFZ·]ZïÍ/k,YoÇz#Ö0*Ó/°jb^Å9x|^1ÇÊa91Xs¶ù+K%¾ÇBsðи2m.ý>µoávCnºâ|v½-ÝtF+§´ó4*§´[Îi|RÛ?¨ÑÎIíê³j¯koÏù[&}õ};ë¹ôÞc ;vo0è5¾ÂàÑÕÒ!p0_2ø²Æ"
+ÎaĪò$Çï8üÅï·bÆÃLx¨'êðÀn°(liÄÖäQX©Ã-ön\(deDv¤´z¤Ë!mé3H£F:Ò:"½rÆ#á·(Ó¨BeFTH±xTÌ¡r54ËB(èÂN(ðBíQtâ[4A3h4
+C0ZÀxÐ;GiE/-è½5¡Çô åÑz-hÑ-©Ñ
+-:¢U%SëÐÂÝlÐÕÝÐå#º]âdäÑý*°P4fdXF0'è1ÕqÍ Öµ
+P
+IÚS¢S¦É"G¢Ê¡ó¤ô õAðAòQôAöAøQúAü,@EÀÈTÜèÕ^År==β#¢:v\OÂ
+Þ&ú¾pûAç.¼7êï|ÅÕ+ö&ÔÎÚ.j»£Õ©R{g½9µwÎÈ'®Ëöúl¯Ó^k%º[ydæÌZ=´<ãçÄp,Ë ZFÅ¢9fÆÀDìFæÓì¬`NyfU ã½Y+sË0»n´)'c`
5|c¸µYr&Yͬ9yxû§P 6Vl²NAÇ <²æÌ0dÞfF£J¾hdDâEl³Ò3/Ol£y´LÎ5ÙË
ªÿTLÒi:²Lçx&6´ÑÜ:æë1ùß9kC^9úfNsÈNÜVx°ÜÕiÖ)ç OBuæaXÇai$R3ë\̱ÎÆ:1y<ÖYG$$ñ¬s²NÊ4+iYçeufJî\ô,¹Y'gyzÖùY'h¡eÆ9J¥×réÔ]yæyZ'j©yªÖ¹ê©Ö<\ëx-;!÷-µ×¥â¹Ö±Î·YªËn³TÝf©.;*ºÍR]vTt¥ºì¨è6KµuT©Ö±Ò¹ÎIaaY·;_ úÓ©AúÒ#=ñ¼]å´<Ï4<_¨Á¹ª8oX.:'yâ8±EgËW?v?Ëpªïùí.ðû½éÙí_±{íØÉ:r÷ÜNcúWqPâ0¨ðÁGúð©~`ÿ ñâa0Ä3(
?ðÓAòmKùÞ·ò£ÃuLÛâô°·é¡®xùV¬(ãë²ú®ZGÖÕ§ÓËãO_>?>?½|اß_òG?¾ûåóóË¿ÿó{*ï°Ì|°Hw8f¶L¤{3[&Ò=-éÇÌtcfËDºÇ1³e"m¡¡ í$î]Ý7âóýî¹X¿ ¾OнÚ_pùö W êoüëasP}â§Ýö\J;gO>¼8éÈñ?æ«dG~AüC]ØFL&1@®¯#ÌÉA at 7>ÈÃüý¼2wfÖ»Ð%e±X\"ÞBÃ?Ð0»i§>O ØøøOåüâ{@ Ôà@TQ2ZPGÝT J± ñ Ózzh«Üp79pWÕÒjA^=XÌHÍÜHÎìj^òëA
+dh@äè@©k¶`Ï
+¨À¦@«ôê@³t[v[ÐoÚW cZ¶ gö ë´Ý¾{±O1àu~wày¾¯ Äߢ{A0p
+Á¨!-j¹¹Pa±¡ñpá5§E=÷°
+dÒd!QRå!Y5¤«EU÷ð)
+f mç uWCúZTv/£à¯´ÑB#´ÒC3kx¶(ïGAT
+ÄÕBd4_%ýµßKÁj©1+eÁ7
õÜX£GqMÎ;Õþ5êò.Éù;±fár~ë $â&ÐÝ_9R,®
+¸aÂòQb6çâo=¡Ä>éï4üÝ&{}&>¥Ò=RéO©ôDÏħTz¢gâS*=Ñ3ñ)óKBy<ñiQ½Êð
+-EþÓ¢=«õ¨Ó¢=«õ¨Ó¢=«õ¨Ó¢=«õ¨Ó¢=«uÝi'µákJÕ§\÷G×,Z5æÿQ_A³ÿh¯ »1YÑnäÊ®`çEã¿ôl¥KøV9?Õ<aÖ¸ÛðyÅöÐο(ñ¬¿
++6w"?]pkÿLH¦ÿWR¹ÒÎg÷ÇGéäÞöyozÝ+Èò öæþê{Esu½¢¹¿:Ã^ÑÜ_a¯hW¸jÇå(Á÷Å+ã¦NÿO²Ì|Po0Kù%»¨Å,ãaéçkÃê?ynWØÙåaH9èpT'óüSøÁ\~ÊaD1çhTG[+#rùAó0"Ïs4Jæ KFèù
+ó(%GXdåjÄ|A¥néCõ»ýÔ½¿þöýóë×·÷áAýöåëûðèËOßÞÿüÏço¾½þLÿa"{©_qù¿´t(êPÖ\Ø¡´Cvàôê+\j<V9×y¨t®uT;¡ÜCÁsÉ¢e¯Å¥ô¹øCùàMÀm!´bÜ["4·EhÐÜ¡=Ð ±EBpFV!éÐ/¹ø-.(;ÕÅÎiÄàUâK!W9'"¬È.ìX: @Î ð6M HÀ%QR_nਨ· üihHÙÙ+¸É2âÈ;î»·¢=´vÏ»×´º:¸ý+88s:<æýSM£á34Aé ôLMEPº-JIôrÛZÌÊERðµp'g8ú_p¶"
_1oñó0¿çïp¶Â~^¨){ìLÉ¿ËNS 2Óñ7ùÅk¾õ½ÌÁ8adìFHÂjfݾËr[óÀ+fLò¶¤53-cÍp±B+ïG®£à(Ûf@¹YßA<¡4´t® j!'Ââ!25ä¦
ðô8
+êbpáå V^ªUARJÊ!Bp±j¹üNn]Éçr×.Þr-÷ÛÉͪBÏË/zyJ©qâ*ÎD°Xê¦mñÆÂÖ*Ñ<Þo°#ÙcØ¥¡äZO'BêãkÙV·;ç½Ýç¢Ï8CÀ1Èîõû£íNÒïn¼ÙièöP ·×ÒMEJwÖô~D-$ËÍø¥"t:Sì:iQÏÇRTÔPU¡²ÚX]±Âb/+. @íQ,ÀbQÂþ\нéöÎÐÑxì' Ü|hÿÐú¡íCËÛÇXvh¬y{Ç(EdÏÚºÇMál]Û׶]ÝÆ$mW¸]ãvÛu+¥è6àÐ5nyLJ+ç´õNk>Ý2êÈ©8Ãlhê?h
+Ú£ÂKLP`¢jLÁývø¡?XáK, ÀBr,Hcaüp
6eÍ©Æcõ»°ØÁ¶è»Ç6[l·Æ¶=¶ïpÇap,Êe°ÌªÁU8ºGXà(óÂpîREÝá¬ùÚ_¼Ìlc0òjÈ°s<ùX¬
+½XHOææä Âö}]&çhÑÈ
+ÚgÆÆNÑâÜèã_³l3ÄÉjP'0E óU<rN: ÕdH ¦ÑT ÄS8ÓùþÎ-
ª¡ç½ãîèQ÷8ßå
+Aà.¥Ã(ð@ÒºK¹Iç;@ ë°+©°¢++°Â+ÕXq×a
+vRaG%vV`9öªL Ðaÿ®çsâǹIBp£VehyÃ-3vLì@Å^¢ÄLN&Ç iU÷ó<Ç´L'N1ãnc¦=nZ³SCh£æ5qÔÄRO
+L5pÕÀVro`y|áä&"{ñ]ÛÀ}
+ÿÂ~úFòSùÕa2[¼¸6güÊúâOçö×7½þ ì6nßØoç~mù\Ææ2{A;ú^ï8ùi0uq.màà&·ú@F«éÑ=6ê_ïïÿýözùÁHmñï'q¯ï©¢Xé+.%áSè¢]6üÊäX&Ï2ò-ÁÎy40ÁÂN¡X1Bdg¤Ð\!æë}Vx¡¦ÖÔ0' EMÌM ùóp;°× ®à0n¹
+$å>Ø#ÐÁÅ# äc÷8HþÌ"ä¯;pw¢ áW`oÉ[~ÌhóHß µ¬°ó.ÁÖ
+^ù¬Êj´BuYÏb¢´2h.æw`¯*U£
+ZäPZkF´ ?âužÎ4ÆìÒh×?_ik-´N-·
9~ vC´áÎoyyÄàô#þcà»Ã«QGT#|D¢VE²cÈ"·fP#²
+ËPÖ'Ð%Ð&°ÕäÀGkT øF.c3Yyà1sÏ}N½¸»³4<K˳4=Ë0To=Í,Ï*
+-¢Ð2Mág=cÆ!^L´LüUÇf¹éÀܯÜ#bXÁàxÜkÉlùd´lÄuñ<áÅu1õËÐSÑOe=ÕíP±þjëiV0CIL·>Ýê ö¬Í"a¾«±¯ü1£IÍÎ3Ôì1£IÍÎ3Ôì11Åв×Ñ+ÁÛؼÇwMU(6F°uñPÐBz\ºBA4
ì9¡_R´(D%jÀüo
èܳöÂHbØ&Ø¿¦ô5d¯!yÅÜE1v
ÌUüýjÙmÉ¢_pÿAÉF¨,³á3ȺÙda`hÎüÿÜ{n±HÚ²¤´ H-¥©2Eïyå¾es×êRÏ¢úv+Um*T¢- *"(BÒC@ÈFµ( ê0@Z¨A
+_o@øÀô¯Àìf*ÏL²0BÑ QÊ©DlAÌ^¹v)¿]á¥òÕHBå$ÄARD=MÔ@ºÄÁA4˹DÆ"WBó"4°I´ì h&ÔÓBK}¢¨Th Lm ÊTzHñÓ@ÅT½HÄUêFØ@[è
±
+¡1ÉÊees ßaFcó@#³1[ø³±ÀoÆÈ·ÑÃã;߶ãïªÞø¶¼y~ª-+U±<Á©er¦-+[ÁKKþ¨¯¦a[ÚOv~%ÎgqÉ
åïÒ·E±¿8ÑûKpãÓ×[®ù~Ë×öôÐ| Ãa÷ùÇÓîeø©ÚýóËa:ôióáëáðô}¿Û<§C¼©éèQþ
+·iwü þÅ4¹··FóÖjÖfÃvCÙoÖõi¶¥é̶3Ïd=É|¥jòÉ&*ÕTª&#e3R;©"xºú){ºø:zºúT®4"ô±YüJK=K\K}K«E÷bÿ©yä0q2ñ2q3ö3¥©©±
+RG-ΡX°¹þ!m$Âíjtí0òê Ö7HïI1×Â"¶§
+
+2¥Í9tDGDIzxÖ=E±\æ(òô±Q¼ÞajSÏã%cÖ`ð"¡dàñAu]óÌ3M<Ü2ä-½kd2-hâùå6
+3JÕi-3O;2#
\õ|O¼)Tæµð»×v¯DâÇOCâFÑ!cH¹" Qp DNÒrCbÈ ù E*,@Ó¯`ô
+]ü|;Y;WJ9á(2BFQ-'©3v.£Ï2ÆzeÇÒ®.·ák#øº´0evY³
+%üúüJ¶ä¼JD]>ØØäo¯uiðÛÚ»òÍYÏǹ6ÛÂU?j9Y+ù:.\´öªá̱ÁGùüN#Ey5´þßëqÙ ËA¿²øWNè¯xz}ÚZ-º>mÃ]¶ÖÒI×jgÎ~Oº^=U<ñ@¦©³¹»Îí5ä\smrZ4YB4%!8ìÄÔhV[í²×¾n¶vj·ëíºàF²¹á®:î©Kï]Ô\`Ùsßo¹©ãÒ«í6wÛ¹ÙNvj´©Íò1+kp^´ÓBé·<óuü
~X¤ ~QÖWÓ^^vTû£Rím¡îrTçA,z
NðÊL4vÜ°J¤ÔKoÐJU'iÝJqÑ<j®ä,x¦áAxd;pÃãy¶Kó§Þ1óaàÉî'
+s&2J¦SÑybÙÎwÿ}Ç|lZ2kf°c:¦÷À4é´MáaX£pOHÂÍs§ú=eÕW®O!G&ñ×Çû®`³E'EäD£Âc50W±W1X£«`·b¸b¹bº-W¬·'TQ±ða/öè!\ÂÅ#º
+C
+zF3ÌÚHÍÁ_jÆz1%3>cÅ;1ÍV,*}´Ôå+õ5G
+ÀE*õê^5<ÄèÖYÞm]Q¹7Þqn}:7<ÄúÚÙrµví%ç×^g(ᨡ¼ÙP`Øk¸`ß-þǤs ÄÓè/@~Q÷Þ«½
+À°ÀTF
+ä]vR©(ôôå`mG#0Ä»<plÜÍÃÖlè
+Ȫ©ÞßO/Ò,åÆM:³È¸qÙ5 Èñ,ªµnH7)Ýôe£°#াKÐt/
ø-UBnÞM¿`õÅ.©Î~E^JqÉ,ݦYÎÅnÓ,çbI·i³ÑmålgôÏ¥>Ó
ªwÂÕtÂDþq+üI'\
Ù·çeO x§Î9⮨KKî&ê'ï úÎa33ø-ÏRxAb:Êâs¡ô)1ù5×èQ]JP&@O}IMÃ&Üc
+ñ
+Û[`C-6qÀ¶µØ§Üô$ádº9®Ap«Õ$¢9T&i¬EìZáJAê$%IHH¢Aøéw8BM ÃñÅjuLßêÿ¿f|ú³}ãBË)%Õ°7II
+®FI¢ÔºÞ<Ìs©½p=[³åiµ¾°N
±Ö׺6ø¯LÏ}ázÛB~¹äÿbtÅê"Ì|ÊÓËøLmOÍð8v<í^öz Ý?¿¦C6¾Oß÷»Ís:´©>Ò±|n¿iwØ\6÷B>¬Ìkâü±X@ïÄùó~cOYD¸B}ͪ
Pº§¸ÎtYÄoØÂ
+{4')ÎRHS¼OøãíâD·X^ÿ´ýÝ~ù¨ùN·<gq5%gêÄùº´XÅÄcUïïØÒtÆÎ7˼Wõ´uuy¶SË~eÿ½~Ú´ÿùïGwþ·K'ö_Ä«gf»[À¯PL ¥åÕqZ¡sdP.<f©ÄÕÿc¿Úvä¸èô?ôÄæ|éÙ}ÇÐKF (£(«ÀSÅK³IöìJÏ´CN_U§NbülVxUcÓ·Ù^c®ª>²<
+T®Ú
+·K9dkxÌDLQL]LjL6¡Ñp?nÀ)!3"6×Ô6îÞnôa6(µk]rÎå!=cX<3þô÷Uö3ݳ«ìü5 ÉoS©3ÅÞ´w'whsC};ÕT5+r°RSFsÂÆÌ°íp´ñ§c1KLgT1`1[41Ý%BõÜØc:']vímÂÛÀnC; äþaP
+9ó,
+ÈÁµæ9ª¶úxTBÑð%ó¯ü4û}gÄ»5øÑöMõÖ³êwcñã"¼/Ó _æz/î\'9£í¤ÙíËhù·}üúþO(ß¾ûéò°ÄSe0ÁHÉÔ\XÌ:°E«`©úÀòôÊÔ#Õ)×H½V°û ±@8q
+˼`@s
+À¼ @u
+D&¸å=pk»róÜ©÷$êA+···ÇBs'
+ué²HOçü§ñ¨¼Çѹâ÷d_Dø³¯¯
+¦ß¥rX»¡ÿXµ"~Ð{Iªþ%Ó»b_Ìâa ÄðýÆ7xñ¼0®Ë5~ñ¢Öh¼^¥5èÙfü[ôKÂ%õÆnÆb¬á¦(·pïÊáNɲjÊnT]ùöå=¤
+X%Z
+奫z_W){À» T~ AÆ8k±xÄê
+¼öPjñìx<$%²g°VFL³rËÜ
+±ÊÒã
Ô¥*ÜýÔà4jGfÇø¨3.¦¡¶ývÔÓa->à±)x%
+ÓÍm^¶=sü'}E¬ª¯î m ÆÖ°\Ë=q
+Ït>JA©Ö,-è¾CÑRÅ $àî¨dD(ÜB*ò'öaÞ#àòq¡.®ÂE°¦§jTR1°£ ½¯Ã°¼çIãöIóí<i cÞó¾Ò{¤¯@ZJy
+
+¢#°kú}¼ ó3ÒKQȺì àJÜ8°à·ÉéÔçxÖÆÙRÎs´Oü]¤ÕßSYUeó·Êj+oX8難(6q -}k¤4ßâ]¼F'AámZ»0*èy"«ÚèS5¥ñÑZÒhíe)Z^¢LöÁ.n¹¤2èÌkL#I¿_n0Ócâ-2Þâ"Ïwýýæu"ê¨& vàÅ6G
gÁ4õ<!¤wäu]BÙïWqϾ4 ÎjIÐEèV¥ÏÑVª4&*Ïô%5%4B8͹iÏö÷ÄÓÓ¨ÆÐ!¿8¤¤LI´MDì "ê@Î@6adâh_ú äèXëøøpGiI¨!ªmðîWÅUCUÔEwäkêͳ½W{Âe@ÂÒL\ÙÚJÛNúäñ Ä
+ìMØÄ[BSKm21èHV-µÀmÁÝP ÷U¦(¥#E=¥öPæÄY(ôP×ZõúE¥þ%Öh»§jô±¥Î{N¶ÇÚ£ÓbYT1'áA!°ÔVR bÃAÀ)g¬/Ík-PEÕº
+²ë.T#ªÔ@TÉZT%1÷²XòuTÐmà÷DÝUÙ×ZTió¸ÔõztT¯½£ÙùZý¶¸¤:@H¯ÜÉ$5"g°V*U*Øf×PX
+kæ6$/TºêàMÌ^0ð¡ñ°;D"KºÃù,uÓõ 7êª7¾@PU%Õ¡¤Úz$yOHW¸´´¾P
8P_â}¡0^ë0ªã¬¥üFÆi&k)ÒN¼g2¶¢5§M¥13Oó=AæµÚÖ&õ®¬¸x/˧t0sëÚ7ª©Ì¿¸]Y°mî°kôRxiç,rL£ë
+ª#Ö³qö9)ÕøôTi¾âw{®æìD«ÿ3^%Éë0ì*9A*¬iýïòw¹ÿ¶ÔÀ0©·éWd;6zaÄ©Ç/)eÇ@ÇÍ¥qé_ïQV¨ÖQù!cÁ!Ñr~2N¡à2Ri©¸ú
+bVÈCxÉ*-öû`DZvÀ6Éi°ß³ðE$=÷3ã°Á;bÂ禽Ç%¾v=cDÙ!\b
+¯u@ë¬ÿ"JËnKl×lWÆ#>i]¥´N;ªnúQ³è9þÅdWúc}Ø-Z¯,pÜx4Èî4ßxo«£re0{YþÜo|Äaãtr¢ôÈügD(ÚÊÌè[\çª0{äÛªëȬ+9-¹~P¯3%
+{´ÇEb
+¢*pj;6Ýð/øËbñ]CP¢X¡ºV³0ú à÷¶26?Þ!4KzδQ¬¼Ì§¯"{öFõðW¤Yüe¨u"8øËÒÛ
+\,iIôc¨éERCþ'
+³Ã×ó
+®zØý'ÞLYzH½Uæp
Ì¡´G¹E
+»Cá3éÊK!¾>zC¨KÄè{©f,b¯¶@ðÀ"Ä÷±#²/wìþ¢ 5÷¦Rg²¶^ÁDeæð}z='·`¿¤AÖ®¶eqìgÝØô±²îôøuï?
+endstream
+endobj
+76 0 obj 17873
+endobj
+77 0 obj<</Length 76 0 R/Filter[/FlateDecode]>>stream
+HW9²%¹
+<îPÜ
+n A»Ý9<ÑÎÄ;n¯¸/ïkÝý_$Hú,Ù'ø7_ÿø翽{M¶,6ÇÉ>Þ¼ÑàwXÜã2þ÷®¯eO·Ù<ÛÇñËÑ`y
+QuÈüx~£ÇѲå7þâcÞðùG>~þüê֧ؽ}}´X§§êúOq
+N¤8>Áå̤ë`K²²1(×87ZØoïèèùa ÝÂ/!ÍD=+P~°¤zKæµé16Pä¨b½ßl¯¸©ÙSwK/@òÉ
+Ï×À.ÁH0R¼ø¨dßö¶O±e[
+Ö3]P¯ JnäUO{¥nÕüg¯þ -<Æ3Jr©~-ÜIÝëÁÜs¾nsY) zÖj KµØP§oÐG²"Ò÷RKXZíA."@#/Ycøp¸Ö×^gu¼×úÑ?ôKï©çn}yéݵ·¿´?B¦O Z$¸ÖdÃ6dÎÓ÷
+öeM/@Ó®4¹3éA´g¯àgL81@%¨|A7÷¼Z=²lYø^½Çx[§ße@Ö@ID»d°A8*²£µH
+SUPÓÉbXò0Ì|2©ÜÎiZyOÍ@ùëx"Ö|é
+Öñoì53ÜÉg*Q=Q¦w´zÖs*co`
·T®/
+¹SÏJMüo²Ð¥È&x¹
+.ïÚàZúLÁwÇ÷À~¾´xgIv¦ùÎF±vF;@þQ¶V©Ã\$h¯ t¦XJñ0gë!åµòQ`£Ò.XRzòÚÑ®§ñ¹mm«7$ý¥Ô©n³;k¥=¥T¼¬#¬!ñFï,`38F5b(GCÿ8¦É°DVìÊì¶&ÁÌÔÞõ1ÑåQ9Mo.#"Íc®"Mæxðüì ¼+/ijzült~XS*»Ý_wñ·QüÝC=Áø ²Øú3?±ýÈDZyRë6ë¶:òÅ=<Ùç
+
k}zI4ï
v)Ç£`¯e}kúNò°¯Íè^Ô@ yÜ¡Ærð~Ã+p}Ö¹&c°9ªÄn¤¥c^ú;ÈËåÑßA^YARæ&¥ØñáïÔPA¨lߣÚ'gÓAs³Né!+"MªzÄ"¤Þch4
å°Çût ævõænêÍ/ꪡfì0{ÔS4Ýþ[úmÍÞ0ÚHC3`íhAAä~NZÁ^餥)OßR~©£r.ïÐì
+:HìKÿ©ÂY(ì(Ü$P%Ðìü4Û~sîg×8w6:øjgµ_7ú+ðf;òß$'UåãÓåÉ/hh0ÝT;²
+5ªÅÓIíäð¥Ï>ßx`oÉ&HÄT
+\UU_ÈÛè+_¬vðÞAGÝqé8hpSXZù¥Y&Û°
ñ&et|}ñ¬e¦À殾 ĺDâ°è
+º´±xCQÔudÀ¨b(SD|Ãå¶,Íé7>C
vÏêZ<ã®Ds4K8¼Î××
+ÝÓlÒ¤~3Jï G©¨S1-ZO<cñV;>ò ØÃF}¬ ½YnÞê;NHÿWYå <í
+´§õ²=3Ck8Éd-ÿ[ìò ùô)6ŧÙ~XãÜ1.Ï¡Ü0Ö<$ìÜÓò$/EË# ßáÁSöl ¾>°^
+¦µ`D.Ñ°!\á8`êí¯ÒòkV,AÉ{½ªj½ã±aÖ0W]Ñm%=²¹
+qvüc]ÎÝ]p*çVõ·KÙãþiµÖ_a*nD¥z¶¾¿GÐM9SüÖMkÇíyëZzQ(jsòdL*|D1ìÀ¢Í*U~l{%}&VèÕ¶WãbRS
+]HéÃõ?u;
+KßPII'mÉÈcpöY
+)Kéø½2nÅ^'!¾m"1`g¨8û{àLÊõV"m®nñ|J
.A Ü«ã¶Lÿ¥¼Z$KqàUòiÁÖ½ô¾mq¹}»ÄAdÕØXOT/@Ëé%uWHÁÝ+'¼E
ø=HQceïOíaw˹̲;ìƦ'áZ>¶Ôȶ¬~9e8=à]£§N¢[ð(pcª<~üUýx¹Ý¦L$«Ttc¯aÉÂ^¹ÓRë~O6~#ù8®J-ϱoáLÞÈðRcåße"~w¾5dl»{Pa®¹±;3dÅpìÌÕi#£s¸¥»Mõz_åCÝ·ÚÀÜÒÛº³½b,}Jä.,5PÀÞ˪O0Ò?DRZëFÖ¥9¥}tUdF¨Ê*øNê³/B!rP¡éN£ó"ð"õ&Iõ_¤~¢nxìC#êKhqÕ!ìÚBí=6¿=®ÇB<õXH»Ì²æÙË Xô]«ÓºÛÞü©´e饩>¹æ"øi²«à²þ4±ôÚò§àoü|Þ¬_mALyêS)R½¶ß"Ä"è²Aº8¦frîRfVZ*ViyÆT©*+®¶(°(¹!I4a`ABxdMÇóÕÙaJT©zÖNÕ£5UÕ£5U>Yk:H^F{©T|[¹µ¥huzÂ0jÝ$úøÛ1j1|ùiU"ô·vOÜç¨ÞK&-z´ÛúÄ £Ã¹¢wuÙ)÷r²/ÒÙ§¥ûcm©¼»Sta¤`Ä*ýcÚ[HL¤×t~ÒvnE,b÷Ëç${Êî±^8×Pòµû¯]`E·,
+mXêSÅtjqWæúu¹VÌyÜyK}qW½1ïªw»Bì9Õ®áäOÉÛâ¿r®¥äùÜjc¯cÊEÊÍBû£Bº]Ê- 9ôsë¯%(K`÷^Ù~Ú~©Øtm9.%©rN=©0;ðìUú8Á
+cN«r ¡;iHÈÚ'/L¿[¬ãgÌÔ
+ç¯îd¯:ÝÀúÏ
+3ñV
+>õ»ÿµå?£±ñ^³zÒ<Ó
+,ã« Àë¦xïÓàk¨2ss8Ig¸å¶¤Ôñש¿Vgb]ÒhBáÒËü¾·c{omøû9?×)ª'¶gk[ýsòä°ÆTnyH"æDúöÃôU@D®úòù@S½ç3$V
+Ñ;¡i7ñKÁ<Ú!ßÄýµ·"Ç F¥
+aH»¶ºG£êK$~NC¶xÊÖaõ
+Y`öú
+æÅWïÅq$?'ï?°!Á|ðúfLh$¯j¯ÒßÆ
+IwÍg%cÓz+©¬ÄsÓ9`ÐWpt$~ßä9.½Ó^I¥]Ûqð¥?è{ã{õiT6ê;uXz±ôsfÏÌF¨È\ ¥/Ñ:¦Ë}Ô B²?¦ ¯:iQOÄzU¬ªµª÷¦/£eGïO÷íX7) &P-b®%ï>³ÐNTª3¸6°¿ÆOªÖXä
+,µä¦æ¨8«´65IQ8.º¥PÆø|S°ÆðêRíSx¾våó ù"T¨<ßí¶ì_3¯6 ©ðµNSB*üô¶Cu®r
+Û¯!©h4U<ýpßEöE¤ ,<æíZ¾´|zã\îÉZuãY£ºqlz?K+ÀòLÌZJ¢äÃdY&±Lsd«©æEÄü lHoÙW[Ø6´ðkõ)IX¹ã'me§`Û>(vì¬å UR dB²ª±LåFÊÅ«L(º,ä,"o ½á¤¶¨Û¼zðOêFÑs7æ5~Pcê+$ÓõúzÁÚuõ÷øÜøIE¿ô
+ȯ<¾À7G`V¦è¿QcêqSmxêETÕFË>àÌO .@ý{hÇ6 O×+GºrŨý2ÛG.xv2Fm§:4÷ÑÉéGÒ|î£å@³KHê½u$ÎdÕ_F
+Âç3ÓâPÜS^ií¦½ä¡>Ô
+¬ò9_ADýÞïø°ø¹a,aSµîóKZ ;d̼Öx¾å¡ð¾5õ)õñ 1¯ÂDcöÿæýÓúr5Ï}$:ª¾Z99t!¦/,ØÛð©Ýê1=>
+Hïmòµº+ø,>-~¯wɵùâ©%ç¥ ¦h`[×zAû6}«¯å©pþ£¼Zr$ÉqåUò ë¿®m ÷Ô¦Û·\ÔbDað0/[¬p4FãvÂ1«OU¨®`«ÈAÈ14ùÙgñe%z¥ú7IÑÓµÛ"JqCòì®ÝáZûëÎûjn³kÔ&»gBÅ;®ÏÕo´:F1ÔàÇîÛU"Ø'õöãðÓ¥sHäÿkv¥{õ5ë~N=OΣæ[$«9XwJ Ã2v|ðO·S¨É£!ëìÃ[T§»&ÆÇ_ØÖ»\ÕQÊsJOn_ªX¨}çrEô:òû47Züyúã:c'qáÞÔcE
+üÎüÓ§á|×!i3©ð¤KŦᶠñÌ!·ÆµpÔg©@QG=¿Uyàîmz5jÕU·8®;×ä§ÉÑÎÖ;9)+´$C)lÇø½Må¼ë°=õÌã,vO%î´_Ò>J9Glp)e.ã¼úÕm"È..Gü
+ ¾Ü
Qæ_.waû}"sOâ»LnÙÖÕ`<ÇÁì]ÌnôÞ')©#i ëh5bLDo7ä¨
Ø')©jëÕMû´P£äÝ´IM,<5¿ìkPNI¨[ÑRãÒ®¥FÅ/½\ûÔ/÷®
+Æú$#W¯';Wj.ýÀ·5c¤vyó.¬Ø|4~'ÄfÒ ¯e2.캯A5º2MçFåîS¢Ø$FQlF[vèû
úAË)<shïÜ¢¹ç]4S}aÈîð¥lÚBÅc,el«åþJ®.0á2ÎnÖ©ñR1ÂÆu7j\Þ¡[ cîÂÀpùM¼²æ½r§wß*·Å
+ðuÜ¡ãðã"~øGÀæ8f]÷g«Ïv Ó±ÿðÝ D$¶¾k(Ï=Ì~{¡ÖÝê+-9±|Õwª7µ_¿¬¨¼ZXEî(¼û ¯è;F¨²;ÞÇbvëÕg¿p±5èÓIW{j¨÷rñÛ³©!$y|]¿ÑZ¡t?zøùFÇ,k]úiöö]ÇfÄß'59©òÂq
+bXWê϶꼢ï|»,*FÐÔÞPiÎ=6°TËRnçGp0®X¬¦v%FÖ¨_Q8¼^-|87õÕ³xáUÓÀ<·k¡U(o9Oè¶0ey_ðnÉ{æåüûiÒÁbC¡owÈy}g±5_pvW ÃWSÜÂüo?"Fû\dcAD(e¦Òi ¶ ÞÎnÏ
+lwªq$-YA×å<#é6l9áÞPáêÛCļm_ÂÔÁ¡<Z%_¿-88M%º¢,çì¹Óu[nòPnµ½¾"x"U*êJËI`ÏáÜ5*jaËãkµAÑ;JL
QÕ ©Ë Á`Áo \¹]1Î+ÈÓƲàâ Ç©ÃÑ]OZ¼ïbEyÕ«ý$²lbúvÔ_À²]`g
+ê}[Ç£ÖU/Xýrôî¹}¹öîÖÛVÿCñ@þS|Ô@ÂÜ
'ÿ6Ú Ù%åDKWÀ¬ädÛJ˶¥³ÿz¤É^!º77G¾ó)¾È%³.Û'·ÏÖW¸aäÙݨÓ>úf¨ëôm)K¹ïÝ`5LXoå4¡1&/ÊL«×*ÿ.ê0¤®ÿhØ'¸V8CÊ=C×Èk½ÕîWüÚ+"å2"«´¾d5y+n73^Bw=¨·Zlu¯ïøIjB¿_`6ªjèZs±×*¬(ÍÅ©.Cþï.ê(^O½lj ¨4Õi*´ëøö¹e d¨6fþ·xeÇ7-ø¢Êôø
+¦$aÜaö¥æ ÍQ6SY5¿
+MåÛëW}Þ·{ÙNÎÉgw¶úöZía9(Ó3³ÿ<ÓPÕð¼Vã
+gÆob}l±_Ûùæ6öçá^Â!;eb2Oÿ
+?n9_ÁuþºbIòQ£ùçW>ªÏJ1ùê^{òq/ùðXÒZ=;ÞÇÅõCGXêá®i5¬õPzÆVpc4µFLÛÙ¿*¶h"¨1 <Ô§ ØÏ7Eîíg9tÔ²¬(ÓìÖö$.Ô[| ¹¼m¼p%Yèhµß*L-Jß^OTG_ëØà1øä`ÇåÈöE¹¢ÇgÝäHh¢Ð\¢w½KHÖs-I_ÑKÃð_¢]gG5õjµÙðNâÀ¯å¾]%áñ/7þCô&I~nyY½!'î§_¯4çnæJsÅ~sF 4»¿Ý*;ÆfÌbDnh
+ð¦8:ú
+h8öü¤ä:líxuý,íÎÐ@¾éÀsíäÑD8¦PCsË£±gD`¥/Ïy@(JXøp ï¿ÂÅ/òh=w#Ü[Ñ¡n=OǺdÐ&¸çßû^5
+FhÓ§Z7
èÙx÷ivq÷å@oB9ò>ƪxhÛeÞX6 »<}=ïKYöas¢8ø^%u·Ü¹Öø>O1YÅ-Ðn£|´¥çéëݱôk£PJ ÿ±
+Íevm´q
ÌæöjjÞd«ººÓP^ÍmK3«Ðè¥IÁìÖ:ë÷Þ4¾C¿Qc5§»gúªÑP¢8¥cqYÜ]×àqÎ3öÞîfõ0ÈO>Îj8ö^üáØÊùsæ
+3à¹]3Ðàí1ñXâix/ÑË<¨u÷)Ii°¡â;åÜ÷^Gcpó
+?§æ1ü9e&?n:ºZqj½vé
++v'3~l®ãqÓ£zëôè¿;«#B´G¦l£¢Á[Ù*d® EÅÚJ2x5mðÎ1K!)b»ÖåjS¢£ÂA±zb¶B±[ F³»oYé6L[wÉëúY&ufe£¡z¬-Ç,]ß\¢s ¯Ë¼Ðß]!×¥²jPæÐÝE\M¹(¹
+-Eâ|®ÀSÎE¼*tÉdR$ϧt®Ó2fîÚeè!X(¡X*\PY
+ôcPüÉ»ÉÿæÈ=2OJ®µÙ}à÷KZE+-'KfKWîÜSã^»èÈ°_+h^S§5¶§«;äSËØqGç}ÜáÚÝWZY䵤¬Åܺ0çZns~ëóØ?¹~
ó¨\®ìÑðÙ±óiÄgP3à·Ug¾m§6ͼÕ\Gçi°.z¼:Ù
+mHnåä\§*YTÒ¹Ìð·9®÷
+OL][x?ÁyHÞH S;¡ð2b;Ø6],+Gæ¿hB[Àd(W=Ó!p+
+äon×è-( (f~2¡Û
+To.i:éaXC¹[ ©Ùé\_üGË>Í.\
â^å`¦ìF@Ä+Gi½
+)8u'){ï
+g}õÚ|2á±4¬m>=)^Etö©éVÑþdKcÕ"¸éÓ7øW¶Ï¿Ø^ÿ
+ýf{ñ¥ÁÙáîá¹oé¿×ÿ%fÈs\ìCs{e·Øz}ÁZ¤3È«'F\Äkp/fü¾¾uI%^ÐíÐÜÉQ¥Þïµ6¼CMõAÄà¬Ó$^
+A¶G
+täÛäÇ%F&2SA 7$©©¶]©XMÕ@4©%d¨cÌÔ0 ¥k°·ë0îûuÃàÒúbÊ·çq ØÀùF·¿s¾ÓkiKûzÏñÄ ²NqèVúÒüŶÖxfCãc÷Ë©&Ý@_¦£V½ðVXä--AhÒôM©kU<³ ¦iuv-@ºÛ£¤¤µP÷Éõo+Z;ÊwcÞfùcñߪý
¶mê¾ò©ÂiþKáÓkñ¨üUáÿÊu¬&¹ßfße00Z 7ÿÿM°^Ã0*ï
+¯ýl<1Õ±*2»xÔI|ySåm27 ¬{=Â#¶±uöGüçå7}ùÙo^üÁýóË÷ßÿåÛ|óñ}=ÿîÍ¿Þ½oßn¿üöÃÇwÛ«?¾ûðæÓMg®QFðöâvRÚ·?âÏÿøóæ·?mÿǾ}Ïô×µÇQgQ4ÞY¢üµó{û¾ç¿é4\ðÕbÍçíçJÍïDúëüõª.
+)õ¯8*7*oTÞ'êßïÞ¿ùôfûúÝ5PÃy
+sÎÉ/!ɷ麟Dnz=(¢à¡nª^Ù@kì'YG¬ÿ\FCsGGÑRñ<2&תU-ìy«æxàwú_àY²Oyóuî2_
+À¯7
+Å_UÀeá_ÐM®¾|2z×Ñ8Åz`Ù xölëª,Ь!4Rb±Ö°ÏÈX¿ ßz Ä\Kì5C*à1gã¡`*m
Sí"ðDh xxgí {ì µÒø®e¯A`ý)Ahú3ÜÚ8äÞDòÒa¸J4ø8²{×íµ/ék2Ja=üt~5{2-yv³ªéô¶!ë¢È|iHàU-igªä°§Ú°±&«¶agm3gÁæ\ESi´Ò³¢'Óí>±´e9¹©F¡x§ú©hssÚb¡zÉÕkS&*¹\#mBhÏ®þJ5CâÕí©QÚ¦ZT}ªO C{DòU
+?!Váe°IàB1-
+¡¾8¹![4úðÝMcÔÉ|hã×Ö)ñêÀÐQ÷ýèý1deDF¢ã]4ôñ?òVâu.ÎÒØ
+P¢0ѦG¥ß³UIJïxõþÄ{^<2MÅÁkGcÛÐgMxªaåY}¿wÎ;T¦É*À[}AÂ*ôUnßv̧ wKÕ`r³¦õyãµ,m\VU tµ'zSÍþé6ø#£/
ÝphzÇ«÷'Þ³²©ØÏv[hâ§Ü¦ì7ñæËîßãî¡Ê¬³7pBUörGþörÙ¹ì&¢ðäÎ &-_ËefÐʨ&BN ¡!âíY«ªìí³OGßþ·/õ¹.«âÛ5~»Ö^<Q®ßmÆCäðiA`á¼·EeÆãY
Öºê}Õ]¤m»vµ_OÛÚïk[êÖÇÓ¾T+Ì,ÿøÉÇà ÄÆR÷SÚÜú};þÔÜú}÷ýNI£ÏK®©rµô(ÄOLÅÂw¯{Ý8ðÆÚ9vc³ÏÌ\«þåøí´cû=u]7ÿÜÔµßm¯û'¤µú4vÏöÚÏÍÝ@=7 ÿ#é
+W|¬_ef¿â¿BõÍ BÄ7H·ðbÄÆÀâáe©¸v)¸V;>Éè`f¹¶`ÕF¥]Ǽõ´-²¿8"±´Â/æ
+Y½ðÂwîÁo}üÖË®ó³½Ê¾Èb³.ºø]¦ì/ÂÖµØg«£HS
ÌQkd ¹ÞÚÙ¸I?]iº+ç:¼TiøëÛfs?¹C²¾õ
RZBH¿õ {ïi
I¿ßd=óñ
+\uíÁçjPÒç9|RJÏu>9ôî¾+}"S
æìoÂä½GÙçµMAwTÙöæÄõGßHð<¹Tgjè;¾õbÉ×p
+Òìq-7u} öÁê<äK¿üâg¿úMý˾ùýû~øöûO>þõ·ßýíSÌüòñó¯Þ÷ãûïñÅúã¶M
+$P-hý!Ò±ñV®óÃJöãëÿØð+üùwLþûÑ¿}üéÏéñÍý°7±=
+Æl2åår%üo¶ukòçädìÄÆ0[¿X¬Õ´¬ÓÌ(Q¿V«å¤uòÂuÑ2üF½`t
+9%1<¼ÑHÉfëW+o±ÆÁ{|ÛÏ=n¦"+²aAj>îؤẼû´Î[Í|T½º>BÉìeë4
+SB¯Ý·"ûSDîÃM È¥¹Áz ÖuîΪùn¨Zæddes½?%¾õéìxóC&ö»{Ü<£¿4lJ-î¬C7sÌ?ð\GjØ¡Ü(µx³'JÝ9R©ÓD¿öÊ~t7ö ;ñ4·E ÷\fUçmõªß¤Î,p/ ÿ³Tä=2kaä,{õPD®q}Ó!¹FM#Üo/-Û1¥£ElÙÀ¢Dç!x¶@ÖmPKÅ
+²(å@k~d$VLÞ
+¨|1õ`¨ÆKZbÄ}ôpò¼Ë
+H
+b¼\Ú?ñ¡¬÷r6ù7(x6·¬ó
^L=
+µ9k®Ôh×ÅΧRí
+¨l$-ñp5s·õ±Ìƨ09Þn|ÔÉg>l¬Bõ7Ää
IåÅÒ2¼(yÌ
+DÚ¤H×Ô
+p±@k¹: mHÒgÙc£Ä@Ecß°"æk
+½ªXÌ ,×kÙ;(T222Þ?Ûuð¨F-ò× ¤æ»á<MÓ AOc¢ÅåÅÖRê´bÂzH²dD
ÿ1ªL¿ÔH#+¸æ¤=[e<W/RÌ"û8õôúfº:^cfs6¸Æ£Ê®¢ <)k´T¢o&tÌgFuK«L\nÂ<¦Ô6#=XGúlëÅ(¹®.ÔAÉUucAÒ1s«Ò0QCÔAHööf`3Gj{Êv}3qÊ9^«óXÏHrKçY,(Í×Í2UKô]§¾PÂÜMÁl5S °+¡ôÜ=þj6ñlìA ÔH ¹Ø0aí£1ϳ(%6iuG
+QJHsîê9©jÕ=6JH¤çõ
+êJ.õ£ûP/µÏÉ\tw©FiÜJÄT/zËIÌÊ$ì&Ó<v7Mñw·õÄÅnÄ´ãðÔtABd#õO·E°ï9ú½óGUÂ|d$1gÃ+±R
+d[BTnZ¹®Æõ´µ¶áû¥Â!ȯ^C(@,¼jOjãxÔYå0áÙÊC\{ÛÑ%##2Ï!AÄ**©`Òéþ Aæ£W×bhmí¸d¤ÐÖòYí)¾Bi""´ì£ÄT2tÂhÂH×Í\Ê~0(ǹøøfÇa¿÷[ÍÓRî0A»èÈ·A·KqdØ?>EoGEf"Ð2¤¹X3!(ë IM£° (X}@CMÈEJ
R¢nÜ{N±_ë#Àa°`Û¼56AÀÁ¡Vú8Td±Þa5æø«
+l5ÓoC;¢~°0§tV¥â X;º8¡Ä¨Â Ø)Êd7DÍH
+"ªÇñá,®
+AëAM Ȳ{ |ÐÙ\àK0 ÐeDaeF©WT
+*eVPHÆ;>Îox
+ÊöÅk°ä áåÀPdvÃP)ÝQ:(3¾ÅÇÝ¢C°ÁûHôXÄÌ=¬¬ sKµÈB1ò¯Ã:vÖKÐ"K¹5dÿê
+å BAEnx 0tÈbRa-×EÀÓfKy$÷ÀB+&À@Íö\AøαðJ`qØaÄ¢Ä⻦ê'¼` J!±¹n)±Äx UaïIW§6B®
Ä>ã"qf"»f#Ðų]ã,É0ÍÖ¾@tD4q:>ÕcÍ3058¨í,»H¨qDçB $¶16¿ ¢ÿªé
Ä6öÃDX`° »sG2.âdN¨9KGYÀXì9 Ê¡G¶lpW¿XÉ
+Çôó#£N,üNXÖ 2º¬3z
+¸ÆB«
+(3
+xäJOSú!ý§ãâmðX®+^ÁwÞÆ)ÏH$¾ú×Åñ"Â_$$Db², ±´H8$H,¶9 èV¾±e´ ËÀ@(le2èD@¥;Gѹç@m5@à*>¦
+PìcãB¡ýMv ¶ÛÊ@®û]ҿػgÙÈÀ=±[Ò¤°H3J,maöy>ë5&ÑkBrÁ°&
w);N<âBÇ<ZêÐÈ0³Î¦Á¨ÔÀ=ð©ëÒÒ°XIÈwBñ]ÑÌÚ#ÖÉ¥´ñ§b4ÅK(7`¾PL~N·à:³¸c¤
+`ÄU4cHðÆîb°u&Égj²kkÀ§"}j.âHö
&ûkÓ¹KWÔ/Ñ¥+Ôú©Öå@û
+Õó?{³£Ö#'ÄæÏ<ÃíëÞáù$¸ãÒ¦ù!<ÃD6>ô£ç_ÑS¿Z:ÑG37wy{.ðñúò;ÅÆë½VïdÔê¢3S
%èäß
+0$ë³EÑ|yÂÉ=D@ËÿxSª7§fô²g¾Wôô§e3ñ¡ÎÃ%± ¦¥bK9ne7Ê>Nb²y)Mê³ ^P¯æS[åò"¡©N)rKðñ c$cļ
+¦Ü¥*
+ úí¢¼}õRÏSßÀ¾a#fG¥?õ)Ú·Ó>SËÊÈ!§w/JíÕÊ6<úEiÙP à%m!B{ÀlQYç¤yÐîPÌL_Êü.N6láÙàtkLÅߧqMáRûð16ÚíQ«÷ÒkÎ,Né
+ßUJHÔSt»tÅÓÉOè±DÇvýêF7&wIÕ¥éîÒÑìæÖµâ¡ÓUÅ:)Ë9LÓ¨+é9-zÏaÇFn6üÅV{:'Mjv\ìa9XS9> í¹
+y»çjñh__Í®
+VÉÈ\ãµÌð³a¢ØT&=üëtÉHç91¼ê(SëÌ]
+;³lÃì`Á}Þçn:¨'6£ÜØ
+gó,.84pî#4>ÍZzÃú¢cu0¹>ÇÁ¥#í¿rùq¡ñ{)aÅ|ÂBùñyK%Ö²ÜÊQPLuNÅ÷q»]±`'ÞPð¦F¡\È^A¦bÖ¼¦½E}ßç5#-~UÕì #uJ}2ÑÄ
+
+endstream
+endobj
+78 0 obj 26048
+endobj
+79 0 obj<</Length 78 0 R/Filter[/FlateDecode]>>stream
+HdW=²#1Î;Áw'_Ú%Q?¤âM÷mðª6tÏ¿
+·¦msZ}ýp[½bõE»¢tlëW÷§ý²6YM®·=75¼"ðl½z©À9GCØÔ¢ÝƺFïK{±¶WÄÕFÉèm®q?U˸Ìó+±wÍ«z]\¯L#
+s^Íb ¡t»7@ÆI¯¯¼>)ÈÞ·|ÌÂR×¼ù¨³öM¤îï
+¤uñ1ëÔiä®|LÚÊ
+yÕ´ïaiSyµdôexï¸Ê,@º¡$àSghS¿
+iÅfds¼ÔÌjí
+ùmÖ76ÅO»®@Äy!E1ñ[[;LTÍä·øÑjc§ òÆ:Tc\m¨f¥ôMEYXÞÙø¿òóþÕ¯B¿¹¨ÂPB×ËlúÐ7ÞC/c(³Ï¡
ÊF`
+WËS¦u«"£:«tSgxApøn¥¤F$zίÙðnÓc¶;>dq n:ªµØUeõû)Ò"Q=B2èëeo5è¥ {µWm½
+ÙÂ[Ä.
+ÐCѳij`Zfg§Ä@¶ aDfÖçÕKô±WõÉêFE«CV
+hûÓX×xSmfùÌ°¨í~H=3§Y$6w¡°éèÞPj[´°%8Û5T°ïÞ¶:rÅèP§¯Ä>A
2sõH#ý.3g+Þïb$%¿OÙ-se»rêDYþµ¶$ÖäÖð!BÆ d@³`yWfþOö£¤ Ùj<8z|·Sá±ÿ÷Í ¨Ö=fVäô<%1î!Y]ÕêÙÊN×ðRG ?;&²ÂôBTXw¶õÂÅ
+¿%!Æ+n`éRF¬bµp§VCV u$#RbÄÛÖ6@µuóÜ
Móä¶0)cÏ6ÏYW¯ù]³Y3ÛýljÂÞ»pÏåvUÎã§Ø#[ím ¦ÝÏ(ÈFÑÇ-°µÒL¨ÛÐÙQj]04=Ų?²ú £VtI6n"+îàôJʬÊrÄRkÅ×\í,k
HcsZ9mIãNª\Þbì
+OÐ+½·Uúñ
+ª!ÐI|ÌxOhmÕÛ( ºwë7èHS-±=»º¨8hÐTÚï
+ç@0´
+WqûmöüóWôoиcwùHêeÆîµ·=¸¡âS®òîGÎ*
+]Ùl#â,8!¡ïÚ®±ªnåÜZMÜËZ?`Ëæ~ÀÆ;äÓvg¹
+ñ2½Pf°±A}ÿíF[SY»03JnȾíGåMʲÛ9JB½]à¥qî©ëÐòÅÒ3¢Gû58ol^[û7lIûÝࢵZ»¶¢Óg͹ò+þê1Ér,;2ÞÚzZ-k׳æîA¾eó0V¾@¥·Ì=¾Ëåï·?wiÊe²Úrcù¸²õ:¬ÝÀiúÕé!èÃ¥´(ëÙøØ{%ÚÆèðr&ììûäýE¶Ú6´±ÂÀ½"&##ìÞÛÃhokÇ9miÙ#ôÛJ©¥ÐÕ¯Ð=éÉ:4Ð{ñ±ÉsÕìÀº
+{^ª<K¿Péþl1ÂÍ/µ[mýww~¥p.aä2ú¦]](<½3£ív>g°¼rqÍtDÿºÑü&tôÊØ«º()³ËÓWÂ|}x@Ç·95E^QÄ9(¬¢}¸9å53JêiõMyãж¹Ïû¬¯·Ï1Sêa){ê$úéÌØxpt|Ççhín4ê\ÍÂaÏâδÅÿ^ÒªÇ6{MU_(ï?ÈÓëøÖK1³Ã*JB¯ê0v¡ªõ\Çgc*ß!Q3iÂoäL
ÇÍmÞÀTí9·
+Òm2çlõý¶Ö¸®[+}4o7ìèT.S_Û©¢u<i¬©*lÉqË rPEIÜã6lÿ
®²ô¼_QÎ^ûÜ-¯ÀÄù`ÜÇÚâ¥I<b
+×G$òO
+çÏ-Þéñ÷¯ãì±rØ#%%ªW×\§Û\wQIp½Ã5ëç¶}è*S9ËäqÅ_ohÑÆ-{bËX`'lr
+^ólÐVjÒßDòaª0,Â&{C
+]$«F¤z§Êu7äá^%õ¤§U~ÁËÕóFãêýí¢Æ
îe{BÝ1~F$fñWBÎ>À±
+Z¤¦y ±yoJZ¼WkÚ+GÝyá{¸ê!³²ÛÄ;¡Ó7§pJ6UGuÆi[a}h²Få
+M+kû¦)´Aå'_îW¼AWTnÆbIðàIº4´Ô&Ö»¬%ÀbkLc²æ¯·ëC#fodÑèøÙ-ábß#ÀMüÁS÷ý<îm¬A²_þºå[ÓáÅÚQDߢ¿7GæÓ7^
+oj{
+ÎGðÕgÞnj»z¶%ü"«HLcGêðN| ÙÖFÇÚKâ9
+{É:[Å4ß;ÞÀý#àê-#v¼Ù8©å x ³>v¿«Í,|
+hÀê;`!W(\s¦õf±Æ?®Tl!¸ÞÿKÞ }bSl¹QB©ºE;ÝGS²£iã¬ð&½/åôôòu$À?´à»¤Hâ ¯öÎp1?ÞvÚëTÅìÍÜã7xßÕä}÷¤Ô§+{h²Ð
KGqB7ò~kÙuSÓ.p^#]¾g÷kªZ½nþMwwöÎ~¬RçÎý³
+ÚÝü>îxÃöMFÑÞC¶º-*©¦ÛµöìvÉQ×?!8úk³Ô´Û(TK,BÝÂ"rÛß*{éå .Ít&N ¦Oål¥~^òîßaS3ÛUL½WI3¶îIî*à\µ¼/ø9ë½ÆýL:}I¥H^ª4ýRsN_z.x")ý'¼Õh¼>uaaVài¯¿®ù÷]¤Qèøñg÷½ðÕÌÆÒÍ'Í%|kx¯ÎAa
+Ú{ÒEß,8y¥Hºî@a¡·÷:п|ÚbÓÆ
o1±£}]óïì¨IÅèÅÖO~R/FïÝèkE
4.±¢]oFQ8¿öY:7ûRD}0ñiVv8øÐ2?ñ©5Z=ëN1f¥
+Ú÷q;obe<yO=»ÛÉZ¸ëG¿ðÒiX3¯zJë¹4ÜTZËÌ.GjÒ·l"¾Uëë¡ µûJA®Zp¯ç%oà¾É²ä8[±^:îÅ©Döqe¥º
nÊã4§îÀLF[À/5ØF6¸Ùg=§ùèÍìnîçc¸n!Þ®ûqɺÿót;T¯d¶ö==Ú^µé1Vô¯ì½UóçNb*ÃþT£Ä¥=Á¶È;ôqî\ø?@¡FצA[ËjÖë¯+ÞÌå?³äTo¬z%¹Ý²§×±ÿ.öDâÚ«þ7G£¦+â~~>=æÔÞoXé¹ïôóßáæúïþÌüwI¨çéûßÇ^QÒöðÞ.rÓKé"H\ÕôZ2¬ÎÒD7®°Áaô ù£¯ÿ%¥øqQÛÙ¬éK<´St6Tj½xÝFÝ~Së¤#|7eTQ÷ÞÈDÓÉçf0*¹±åÉ*ò S½RkÎÿÇÜHH$¥ÅèëÀ걶A¼îäY_.:¢
sÄÜKtí¬'~-\ÝæWkEË.ô¶éôÎ*<¦nüþ3Ìbé8Es\ë¾K$LÐsÑéqyĦ߱¼.uÅÉ!áOÕô4ÔíÄ-·(VÜèâ2S
+u1\i¾,vÃç(N¿Ts:¿y¸ÔÖ"[¨%ßfe9±dôfÃØ°!i{°1ÃØ·ÎöôâA¶~8ã}È?¸ºQy¬
FñbK¯µå\'Ta§'å_2¨Þ Q.Ðør5¸ôW-c]JÙÐ9°!ǺXçt/Â`w²Þ¾bôEØe¯(¹:¿[dt& ~nÑSðª¯pé_S¤ÛE°/q·ä&7ªë,\«ÝЧpðiG'xÑn`ª>J,)Ȫ M.{üz0u#v£gXD;»®ÛNµmÂhGö¿¿ ¸R ¢!T/H+ëfØJò|Ðe1<¦Ïªl&ê6Ë!8àè3-.³h`÷M°
+@9BGzXt]Êðéfa\|0d{òAg
û3£üÛcIp6ÁóZÔ@¯T»A¯1Éb[©éõ êMoÓC2£ÝmZ:Å`0<iZrU6uÍTG¨ÞùÍ£z+]gÈ
+vï³DJ¬ 8W,¨(®ôé×1pìm¹})'Òs¬æ¤lúvjÅ)ÖÖÃÍÐ÷Ì2=6E1Kʲ~ó¬«?Vn`l(ï®ø{åp-תÃk"÷{|!è}ú®÷±é%çA Ó¢U_[Ñä½Cçæ
+tÝXf¾Ärë,º!çî,k66Ë3û)äµY¶é,½'«
+jû©>êC¨°Oºúò&Lx8ýß
+s¬'¸z×éO4s&ìµqör¢´§ü¾«¸æ¶p_QÆ&XÝPIþqÚ\;¤nz=4zù=bÓ_ðñî¢W«N*ñÁÓÞÒ]%"îÐÄÞû7j,k&I;üúæ¢pÒU9z\;'kVUÿ\ýÉgßî9¢ b0áÍßd¨d¡×â+*íYÇß#¨Ê¯0)¥27zY+ì¯ø~Ê"G±.1Ã9FkNqéVºG
+¾,tQÌí;»©Ü)ZÿZùï=ɺL\?*<äèà8K}~ï±ÂPÊÇíÉgNÜIíñiÛ¨gKÙ6Ï}àt½ÃÃ>Ñpؽ+BD÷¼ú±ÑM¦-Îÿµ»>3«m©,´fÄ_R*Í~Éú4«{÷m%KmÑôYXçH>¢[ ¢Kb»Ò#B1À#'Êw¯'co¢S$ºÓ¡ s±¶ì«½×æfvöÁrñµÀóÊéºHKz§¶u.Q
+ùYÞÊ5z¼ÌêL¶\¸i>b{¦]3];¶Õú+5]Ë°ajF®Ûz
+zþMã3{8#î²Ö{næ¼>Ó¯a=rpQa£ºc/ßÁ|Çw´û<ú¤³u¹wl?0îE£Ì¼ÜùW=0âYÓñ:ë>3Í°ÂÌ÷f_RSFP°=êÊ
+×1
/üìr.Ò¾7u=RÔÐêð²Ep¼z¥AáåXwyåì¯rnxÝÁ¨äP÷½ï/åYxe+>¼y^>>UgBÙ°¤UÒú[Gu/°É!Àõda<²8,`kj¬¿N»²´++׶ó£FÑjR
+¢j`>àý¡ætØÑDg`tè²
czù³ß¹Cnäõgß/`¢E¶3NÕiÑS+'¥òU/faÑ::¥½@¶öøãdêb]¨-\øë©¿Á©áªjHyÄPÓ3?°2ø6¤f/ë78@¥é5NiÄ5ËEÍÅ@y"tg\R¢üFs:0[m
+6Ä@uÆè9AFTS%~$¤K ÜBÚEÃyµí6t»^V Xm
õ·
+¬¯#V> ±S?¬¬lðÛ,V®ÚÈ$^
+Ó B>i÷» º²#Á2[=æôwÃ/R¡Ï981ªLÍH°?¦³7ÍÖX.*Ò<XíuÓ¢ø¾¯*mê NKÃLæ
+wßhåælHRÝm²CT~ó{k:H÷ÛÞNî$~ë^ÀÁÔ,ö ZåvÌ2OUBî½<ѳÄ÷¦_¤æR1õ5TLÔ¥*¬È/¬È.)Þ¿5J¨S+vs%;ïxX±ôé(s«·T'GQl
+³7¬fWÚf5Ðg±
+.[¡£úàβVxæiõ:i6q\c£êrG½Ùb°\ôh/v¬,¬¿»~áU0
+º£WV&Q}Z
+Òªaêí3Òá2öt®Gqi¥Tf"^áð¶õ3&
+T½Õª¼¥ß
W^F=>¬ÁpÖCô|Cqn
+ÝR
«LMÎ'}â¸+rÈB-yß;~ÙÒ/É>,²ÂKjÈxWªjiÂT©»%¹lÀÒ¸oVàöFXäóÎZâ¢8² r+è+Vëjgù]ÚÅÏÔUÿ
+×Ö®ikPÝX¨`ûËߨ
+äNx!9>Ôêpûa
Qü
+ú³á(N^ $dÒ
+Ræ¨û(>.ÿ½¤ò`Ыn0Ä[q*
+%Rýùó`(ÊÑ Nïv¼åyçHýúÍäÔqÒfå ;
+«¨½KQ~Xqïíþd|ÉÝ쩪r§¾ÇJ1é$õÞñTIO÷,´¾Hu$YÏUê÷CªWaIÙY¾
+>¤,óg]§gýÖµsPQQ¶_%,
+U¡ÖBOÈïäøÊ£y[^I~×Kç7ESRäJç0)®=wiºb¼èÝý°6-·Ó°PÌ þlø*'ù3ÅÊAÑ~ÏZã·¤d>ki/Ùj4 AI°ò JWMEÅѺÛ90¨ªÿ=F5o4¡P´Ó{É
+ªSv{PUM ü¶4ÙuÖYWs »
úÌ`Oç(¥<¥ßN|ý¨FõgË/TD×%vÐ%RHV䥿ýVÓ¬Ä2rGè_½uîö@ÚvB´£÷å¦ùEV^k:e¸;Ú)órÉð×4õL=ÔmnêWþɹ©ð°j É!v\9)áλ_aÛÓQÓ¥Û½ñó½á×Ð'ûäü²
+K
+¢ç«è¬'Ç;¼\NEw3ùS÷Wf>0F®i/ýÓ?±| 7Æ} Þ/,Åþ¿ò¾Mݲêâ~íú+[o¤ûmås
LéK[~Êaø²Ü
+àÅMy³¨ÃÜLÑâk÷9»ëçÀ©¢w\g$äZµ$p1ÀÕ¶ÏC®¢þ|¥ÆÇ$Èr
ʨiÇxÂǯ¶9ÕçÈ9$&¹øërÉGbàUòóøÿ¬ó(½ì}pR¡UV¨D2ºpD¾#Aõ4tÑ°}H¬×0Y_Læ%+í ¹
+n¡Ëd
+ôêL
+~B§âÿÝ
]*ñ%Or;ȵI·ÃÈÝóØ9ÏÏ¥1vÕm>
+éÓ¹$
+39ù&[^bè#\ÏÂÊE5¦nìµ×Χúà
NfîvV:©g·"}½h(<ÜzI=J·¦x«9jf\n̤M×rr P ÂfM[iùh´@*lv»BVÏiÉZ5¶JÅ6h:é×
+zᨼ"<g^r¸{÷ç*3´b²üÿäätÂ$ÌÅy¼
ÏßQþBðB§CND9fÞ"=è\3E¯tv&÷=ﺱBÂÜ9´i>è8EØT£)²E_P%ëàBãyÔ¬jr{Ϻ>ù;4¶ìuÑ9îHùm)RNSËvl¹EP§KCeWCgʬõóýý/n¥»QcÂѶI^anêÖÁß3¹4´ºïJpó³À³K®ªtF(Ìå¶il[î8¸MéÜVÎÚ
.H6Ç>krÌU´ÈYµÐC¸ÎZÔ©·A9Ê-6Ç#ckÒ³ô þ²
+}ÎP
r°É7:¢©FOÏ
+è±U.£R\9Ëú\ù®)·\-üÆ÷fNfÔOñÈ/Ú´àNè3>¢aº:jSntU³
+]º:áÛhå§>émÁðU(%ÍEb%¶÷
+uH[vnßÆÄÍÓN!ÃyhÇxx°Õ©=Y;:4©ÄDóÜæ>§Ú4uÇ·>ZOèAsÆÂ觯é-OJbÚú@QÅqiQ8¶k¦¼R3jôAêµ´öJ~xÁªDðÉ
+ôë+g]é\Asz
+\þíÜ ýÎå¡;àÚZ,Ýõ"åÊWCÚâ#(å?n¸+ÈRmel*#*7*GÌát~ðD+u«§¶äù'ûMG\CîRüTbsAãÏÇ¿ å,L9"ï³ÀUfÕk7ºq%
+þ}{²%棦La¤íôÎAzo©p¥HÇ0miUÝÕ¤·ø R)Cé V<¿MÃÎlñ^ËY¹å
+ÚyÆls¤wåÝæ
[«Ù¦ÎL³ô-¼¥ÉW¸&ýÛ4ºýF1ö½ßÝ2y8¿×ÄuÓÅë-$ì¥Í~íÑáÀQ"ÓmfXÙAAÁ+Ç|¼6
{Ø\ÒÉéaÓìO%:1îWÁ³ÔgÃàõ6TPµû`ÿpzñU
+oHÂå« xùÒ$4OoOqt.
+îvÌ=#tõÈò¥âA[5WüF]μQ2â!5:'vìMáíÊ»lï-
ý¬ºmI>|0°WÅîìò"Uäç·Ñ"mÖç
+uÖVÞ¦p'
+ðrÐ{C-wÝnÍ6ñŵþù¦ô×2ÝK+ÊØÑóÒíZåä',AwõÏVn*\>6g÷ðJÅùp¶R.3þO$7ý.F¼ Ëó
~éÞ[JðJTºé¾wü4$`4XZ{Õ¿Öêóû
+êXüÁÊQT"qéê4x@KÐÝñ"?âîkP4¡:¸«Ó ¹üeiè*÷U%ͦ½º\
+°YÕzî½
à[¥»|Ψ\Gîj
+ôc
+a`.JµZóó :ÝsIêêC
kKbÍVGz>Y*'¦¥Ê³],E #?ß^hûPÑßT´sUrRl¸t'<T{©_ºpõl>k±òHc×pU)f\ÙÇoåR+A7Ozj¾éKÛíR+Ñ¥äÃÏC÷Þ]Y¬sIñ
+¦å0µ7§ßE´ÊËá»è0ñ¥)/_Ab]"Ò_¾
+ at CêOÀwIÿàkvKG«¿ÊÉ¿Q¨ì$+Ûâ¬d£qO_`¼ÔÓÞ{Æ*ßôWiZXgrPva7:mÁ.ì;Þùý}ØÚZï5Õ*³LP¤[O)åçæ¤@ïnAÚGåϲ¾½ØnYàðÅ6D"Éã[W
+Ïqo¶ÝÞvúþô>P(Òoÿ'»ìÇ z`øìuDZÇü¢Ý=ÿæË(JmuMRÀcUV¦e-#È]¸4ÁmªÔãì7ÇL£äñAí¹/¥eF'£x&+tèvÆ©&P®òrÚl¥÷*Ý}E}¥~_nº.³F¡f>è.¬3EÚ¤^w"QűÛ
ÿëj+O×í£[|\sÙèE7i.´ÒdcÊ=>#K¿Ú^«d¿Eu1Ph'V-Ø%mësÌmNµUÛe£-ñ¿öÜ"£¥_=Y¥r:h5ó{U¨P¸EÊ1SÏõf{¥Ñï5
+õZ·ö«´ðR6mUdWiíuÏíê½íkdªÌæùôf{E8ËXÛmóÛn7ä
+AÚpÊz õÒý@Ñ
+Ç ^Eðp90T®:'kÛ
+né|à[Ä6Ñ6AmW¤Óc##qÌ#d!&2Ñ|ÓsmP%LÎ}ÏV+ÂlÉK Õ{OÕ8ÇÙ^[(Ní'F¶ãBlŧE¾ËaËÕß«ª`»x(ûÝi!SõÕoæj L"»bnªüÄÖ~â&>µÂg¸-4ïÀ=·®Fb¨FÛ¨»Ö#FhÇÜ
+è6¢nü0.k®ß{À*#ñúáZsò¢#[»æbüJi×Â"`Ó<£Ä|ȵ꺣NÚRá<`ØsÈ6G
++mr;¥µ^hz[nêÕ.sïH
+Ó|¡è\%\lSÒØeZ~°em½¬àaR%iÒϤågì¸Ó:zvú¼ïËÜâß:ày"£h%Â_ÊúK?¢w®9hïú_?K2PÿËk)ª\MfúÅæíÀ02ß|6®1Ý'
+73C]EÂö³1Ùââì¥ßãë:ÌoÚdR¨.oÄ }Èèflúà¨kÏ ³¡¦q
+8bĤCMà'Å¢¥½ÙØ>c×,xOÉèléû:ør«Ó1+;¡§Wî¢Æ@-)U|-¡A§*È:ÀBÞ³êÌ7 OP=®ZºÝHbÊÞ¥høkÒ®ò 44ÿt
+©3^ÊÔÿá1£å¿Yè"§UθÈR¶*#lá¯>a n°f$?U-ýÏ^tÆ¢ê b¨ ¢5õÑ3]zîOkÚ»6ãÀ
+¢nK#Õøû7ËóÈ#uF1I;<Vô(»rWM
+D/jUâè¯>Á'*i¹(¨ÃÇñGOeBÁá34l2RÅçLø0ð0áeÕÈòÔ6bÉe-I-²Gt¶²lýQ at SE®5OMÓs2}Õ"1Øקü¼ô]?;Kjñ}
>:
+Óë×1mNó 1£ìÚêKaÇö³i¡ìZðL]ø¬é뺫§"á§|>2 4Oº¶:K2ÇõL¿UX¸Ä·B÷ä
^ò|Bß=Ö-ÝmAà§`
+gø7þµ¿ÙèT¸È8zá,ï×ôbñãúÂìÿ>éOëNQVÀ®L5]̱ha2T+-×(û"AN[ø}Õ±vm£ÑÆ>®LÄh¤áð''{¥è[bFëBbçfDLd
+ÌÇ×uUÛ}BªútóHPFÖbídúÒCóJ¢ì^üuØ%¥2(ÕJ)I
fÄ
+ÄQ)RÅC)º»7b\(JcWVZ»c´è¸¡Íd}u?¶p¡)DÝrLi~éi`"öHÕïÆDd*ãS®9J¢µ'-F|mKwùë´L¹¹Ù"&h½é>fh=¨ÉüÆ´²¢0ÕRã¼6®`Z`¤$äûAtJPk¡Ëî@ç®alltàÜ
+"VÂùB ¤Ë>Ë §üE)Ç$<ü»Z)%
+vÛõXø8ìÒÕh¹l/=úeQJJR¶ÈúðºcPQ<":p\DA"
+Ú°xZå´Ñ@ÂÀPàþ¯ª¤Ô´kið¼zb<k õ;¸òfã¦íx0ZØHêÝëQJSAÅÉ$åv±LfÍׯÃ>r\8ê¥h¼ñv(¬
+ëÁ$Ì7¥IéRõë9ïek-y"Y3(I˦¤ß`ºghê(úîÉÜ4$2µ]¶P*¾nR¯7$YLYoHƤÑãò4^ÝDüaËà×IÆEåV)§Q#/þ³B4Ö9õ³Õ£B¢{NÇ4E°ÏßÔú8ÖQm¦ß±#軺[í.}üOòj>z8âµH¶9×ñ¡ÔÃ@}PÚÞõPrjÑâEHÊ)"
+ÝÕ=`¿NûÀ"Ø:ЦLv»zÐ{=dN3"sè¼½Mkw_ö1Wµ-$ÊDd÷uÔwòíLë&©b"Ò¶öÆT"»\V<05<ÕxsëáÜD £@Gþý¶CÅÓfPú8ìR$>r\§«?gxbàQ$ÈS´wdÒ%ëöÞµ4W:EÈ7ÙrÞvÉÏ:\-Ï0Kö#ÚùfDÓB:p)Ù¯hf$%ó<kÒN#§4/ÐvÙ\&R¬_g}0V¼°ÜöD7¦Í@bá=xÚêakÒ\Q¢WØìu»GeÜxf`6ºæ Çn£
I<ÇkÚ
+g6»Ï]w3Q! ^~Â1Ìé*Ý"±_´P¸`]Ö×Q1-"lÒ#®ªB±×Ø3@;X9äÒ¤]lª×ÚLRXåpúdþ/¦|[©6XEÍòî{,2q´ÔW,F·.ÿ§;ºdß,{ã;x.u¾ò¼çùѳÇåî?Åté1@Ù÷kJ$åGÁ½¤º´a×{#ØñÆ
+/²ø+Es¬(eÎÒT¬ß8ÿ~häósâä±ù|
C\¥¯PÖ
+m§í^ÆqÝÒ ´S»¾¿þJÆO¬uõà$ßý)Z^6DN,VaíåÁ+1MûùÎOKUþÉûZ³hn¹:kÿç¼Ì±#¹ z9öÅ;-.ϯø@³ØÞÈj¢X¨)S´ptTð!ÝVí^¶ºYv{êIa0sÓÍÐÜ/ììB2ÓÄ-Cò£¶HpÀ(çÄ
+ºé$B¡M Òy@µ´ücPd¿ÆðxLßkûÀ+ üÀ·ùqê?$÷è6FñbÒG8¼öU£íz5ª¢õJ+¤N×äRôñåIË|g7¿ik¡¸^núØBJ©\½.·J㧼ÆDFÃ.uÕ' T»è¼ÀêVÔm¥ ¸k=[R¿Câk@ØÔRÂÇðª/ï±áýÈ27%¨QÊÛÔÔ°5ïÈïO!l7-hså×;Á/Fk
¹KLØG´ÊµÙüÚ;Ö¸¬9vãɶ½QbÍíØÇá¹þ@
+¬TaÛ¡ÿ¥#b½ð
$Ø»ÊDoõÅEph
8¢# ÂFàUðȪÎWs-PGÕTüp·DÔ¾×øþdî58ÞÀ8§jгv"´öcGûU]ÑN
+cªÏÌ5ݤ[ÝËz,ýæcsÿôÔíuÔ
+ÌæÄA0úªðáKAGÆp
c°Ñï*¡<ª½sãÅ#2ê5¤´ÊWà᤬wÚè¼F¢þX«ãE¾9¦ÚtuÂRB õ^"ܸç?IY¥5Óÿ@°ñ¥M#xX`<
+(³rôhÌã5£Â¤KgÑØ\¡0ÃÔ¥Ñjv0L¥é·©inT{GáJ)£¢+.cH³¶t0\M,®É
+HÇø
;M_Û>äF[ÌéÔï=Ô¼¾_Fa: ÀO³lèúÐi®ºQÐoQúßa¹åâ;M¢ÿ>&u ¿ ¶ yªjJ¿ÞûÎi¹e®ã|¦ 2Þ:ÆG¼T¦XÞè3úH$Û8ìÂÿéÅÊdÃ`R;ºGAO>#;®2£gBÈÊÍ1â6£Mä´¶¶Ì¶I`üѶo9RªÁ(£z
+~á/sd±C©Ë¡»Öݪgúâ^[·LIÚÉL3´u´vâÃ5±+Im§ÙF:-àB»W9
+(tDòo« %EÑäèøðE55T:a° ñ¢Ì±éw\Z]ßóÓ7à>ùÚk9x°VX
+½Ø2Xå]«¥¯c8µmîW
+Á³Ëc7üxËÆȧ¶
+#ÜÓ,½AbD¸íÕ·P{Ó &XÞqzà;tlªKaÛRøÌ sQB
+4Å&¡+^¬«9Kè"¯Ç<Ù.Ív0Ör¸cë
+pó[;¦[ÛÅÔè«ÿñi&ê,ÍÄqf3~Pì*pó@?µëACèúÄÏ5z1ò¾HÅ5m«Ñ
+é}¢ö4 >«æWI|{7MH}èÖçUóÛ¤.¾¥
+4
+ÏØÖqvv,N{*ó°Ú[]zñ]ur)L-ü0!±¸ácqе9ÿ>Ì!Ž¡ô@·v¦µ0ú@²ö&VF at bw¨.@Ñ6×±ó9ÖÐ
+ؾì Ê3ÉÉëA
+3ãH&h¨¯SÀÝ[ÀR³;ÄÖø®i28øÀ×zxy`Û¢A+ji¤éÄ´04TÌÂôd¯«ÐTìKþB >г'·/:aªåAÖlx§í¸_µìà+ü
+¥¸9g^
+جGÆâ3 at j£C>{DObì¯r`À£p e¨àîR¼d
+ÁÜsÀ"`Þ·KkA°&4LGä"Òj+/Rμµ³
+Îa[¾JjCcog#¶¤påÚík9ÃØâN)»Bé¾È´«hKP[ç
+µ7#«-ÅûkªÖ2°Ã`FJ¿Àª;tÿzYÝ 5ufëå)ÈÊ£½îÀL¯ípæðñÔ7¶
Ô£×B
+G±7´[L-GSnªt.¦F·¨=ilCcî¿|©ªs5¹¯kµÆ.ju:±Ô¡"Ó²g@r-ëÓÓ^jIA:H©çvÇY¹ód;¤«º»O%zf%}4Ùõ ;~Ç%G"=Ä wÞÖòXªãtÔêÎG;au3v]MÃ97#+0dïQu\«Aͪcl]ufhã¾Ý°§êv;Òª!¬«uÜõ-z>ç{jdSSd¡[q0O×ôº£DȫǾ°o½v£¢Êc:¾¬øHGU 30AeG¨y?e¾Ûëïáú~\ì#ï
jdÑ;¤®²\ðµ6ã]ûê\9ô¶¯2xØ[®n!ó¹:ÿË/`³Ç
+cnU1 _ÐHãJw£=ëw
+Î=5ÚÃÙ
+ï
£ó±Nm$ÀÕÇÍ£(ôÌ4àRïõCØ=
+Üë>({ºÎ]hwuûMµÙj¶ä¨
ñ.àT|l¨ðÕXY'Eª<Ëw/ù³Û±ïàÆÚ;Ì[ó¡£Y4æÂwÎe¸ú2^êKdgÄ]UnßVRD«Jcr/_p«ó#¢G80ôóÑ
+MaQj38¬OÒÿ¥
+UûäkP²9ñ¼HxçÙ<ù>_
÷xÖï:éð»GîpT¼ÓÆONÕ\ÛmWkè:#@æ-
+$ÛÉÉÌ~SéCdAü'1¹ÚyÉ©O¤H}&gévñxÕmÌv·<5çgG&1>êx#iúÄ°l¼AßÂNÐû¢²cÆ©¶§1+ïåýÁõzOU at O©éI§fným+±°èµE°LikxW§ÄÎwuêSÓ³À|êVÙjÔzÚÁUÁ*-1B)ÇèTÇõçOu TéÏÏ :åÉ*ßu@°L§Îv>ðdþç(^a&Ïò§ìçÿÂSª¥5cIK¯Ð¾3
+®pCZn¬<ÍDµËHÒû,·<s Ñ"'D£¸ÛúÖ©N'LÉnI»)¥:æDöMd ؽ«SîD:êi©yóì
+S.I´ ¿ Bʲ ß ¿j3=±¥[µfA¹ó¸Ó~}Ú<SÄÑò6å`:{a¦¯~W·2=?ÿïÑÁ*¨HxÉèÏ @ÞÓ;ÙKIÉ¥L` îÉ'r2|PKÑFñÞ ©¡Ì¸²<ø§ªu*Ù&s I/Iþ';³4º09/8Orø¡eKGhPp§äÞ~~p3!¤[À9äÀÔbß¾ÊÐíÒJ±BóÁV°V<u¹V²nॲ,k)[wyÿüÕJ×ÛÓ6iÖS
ÇlÝçtÑ£µDSdÖI¡B=Dä|¯K³qÅ©Ö¢É[pÉ¡tÍØ4ÞXÓö$1öÄÌ?
+d$þX?ðJjÉ 5
+*§P#*¶ÿ÷z©Ýa¢þü¾ß²`!ô¶í"öeæ
+ª~'ð´Í$øà·8ÐP0.3èa¬3Jý«ºàçnPÙCplf5\våê¢k=-s1qjpÊZA+°ømáèÆÏ_v¤~°IXô{½6I©WÙØ|Ýñ
3Ûg
ûIt)aÊÔèy1{¶sþÌÄ?á«Ç\m¡êºw iôÏÆr«^ÊxoAå1¾º«)Á®¤º¯ØóðgS
+Qü\nASù:a®ù½DïqH
+óÈïK~á48aGVôâ§VOïjÜãBVÇs&]èï`äðdÐ~\½ùÝR(w[g9a3Pacª*j¥8özÅJe^pl×DyUAãgݤÀ}¦°¯0÷`S©xvË¿îø³`5llÓC£:î
+Lôê¯[¾ QÓÍh´ËÜÅ¡¡:èxÜ5»ö±Ð
¢&>è¸BgÙçHaêý»¥ð7Ý.á¾
+7]Ô(u<2'5û_êF*¢Ð¹ìcc:f˲¥îZ{
+ÁãvÕÕ1Ï×5_ð´ µu¨x®ä´WuþÏr 1§y,¼Ý²BQõ
!C
²0wóî,HÊêdud7O'¥H¹æС(½GÂJûÃd'U5ì[Ê?ðß"vª7Òací͹?×
+ÈÝîÔm²{uíøuÊtbd(5Y{¸:èÔÎ0´ ÝN%BÁî:Ö
½´C?SÎÿFnÔw5òE§OUHí1T"ü(Ë6:ñЪ%ÄàTð¸ÉE¶4ÆÐt«ß¸jUbDÞÝø˾Îù
OÎ #à dÚÓÒý~ÏΣ®û¸§¾{Ôï¹X©ú-þ<£÷Ûì÷!M5\ëUi§Vü±<D´èsÊbZ©´)¬3NaȱþßUd tÏ;v{}×éSìÕ®xók¼³GÉ®Ôz!Ë®<Iä+«U~ãVÁªñC¢pKu/k¼vQö:»P êþ¤_9ÿÞ4`Å7Z<ÏÙ+tÖßþò>·F¬päð\ÖXpW82ôLïá¦.ÿòD'JÜ¢ãüäo¨Iâò³i!·V<1Ï'·÷ðÂñS%·
9.b8A¢\ô=fè%
û@_mÁm5$¼É¢5fufÐé:SdÖ£Z×Åß¹Z$s& ×ÃNßÉ×®ª¢ã×ùÜ$ÆRGci&Åñ9>¯ËÂ$ÐoWßÈ©Ù;}RH$½EPMãᵩåA7aáÚsU&úÔ¶
+CQæVF´P¬n«ð¨
+.³"Ù,¢¥õi¨¶^F&SA&)
+ÀMMH+IU@#áÞònú
+ FÚ¬6¡¬¡]øæ¡Â+ãn
+9wÀ!$9låzDÈÀZ Ù਩¹£þë%dÎbF*ÓÒÃh@rnºHÄHÏy^J6Õ/J3¬l4Bë=ÔkËf
+ßl5Ü*1¤-ezº¡°]øÚÐ.nãÎxÔÏJXÍÅØÛ
+æ8ÛN|ÃúÅE4
<¦|)iKG¨³jº¯q
+Cs2L K.Ö®òn¨j~È°ÿÒa5$gålÏv±)lÑeò´E"qµN%²CË&ùàÁÒ´ËÑ´ø³äó±7KÂ)8Î!*ã&<¹{D_UÖ¥"Mê5E6RvKG¶^ ~Qºeªh)tZßÀÑxå'±O2¢íHVv¦ò
mÃaàòX+ù®J±á²ì>(èÚ}v«=×½4]´ õZGY'{N;æµìBiOxK½Ûí*ÆÂæ¼ËzT[Çf=)W¿«ò²X\4f_ÑI8æxó/Æöu'ê,_Ø7´_¤ZiÌì˱)Ó¼¤àCm`mjzÕp
+´ÿ°0}ë\R¾|xmzÕu ÏP#²l²ØT«»æ^»V+Æví²Çù(|Ò3Ìtì[½°ýâDe'äqÂGtSñ38)áJzoUéᤥìY¾SðGÂ1¶JbyßZ
+tW»g:f¨T° «¨ºã¦ AË)Tþúa¹`À$©~-¤38e( äÅw
+ôgöeU̺ËÄÒ)P/¨Nó<±vy©JNÆÖö
+ërl,ãEGw»l¤®úrcQ©®V°÷yDU¦ï¹êE
.Jz±¡Lºó¡Ã³ P¥¦Tö:#/ÛXýÖ`r»ìÒÐZ?´7êÂOÑÎj¥l×
+õÙC%Ó0¶ÿs]îÈÑãH¾ÂöºcoÄÚ¿91÷w7¿,°-K"Õ-²YùX»cqñJ{!&ÌñG<ä3°%®|Ãú:6X5pHáêïdõaÑõ½3nË&bþñ28Ï%kÚäè =k>§¡ìbb+Å-§F[õÌÔu2>¬u¨áTgæþ~î©»GlÜeÀamtNUüÔJvúÔ°*û9|rÉON8ûÚ$þwl6g\(ÓVvõñlÌW*aêÎ2þÑrR±ÅÕÅÑ}û:N ²Nã9"eGö|¢÷2ipUî/L WÄïALm<gi2õ_ôW׿ÃB¶Bì»ZpªBAd¬ùкç¿àá,yxú¹HbÚ×"õè>%¬³|eOâxÏ¡ãªç°J}T
+ÇcYb=A²Þ "ÜIç°7_eÔ/Tÿ=°L.z§Þ¸hiäY!G 3n©âéÖÉÌê@ÛyÌ^¶®û >÷rñÛOü¯é½Kqm?~'âù:ßTð?¼þÏ
+ñø/0=i2¢Z%i&.÷«òB ¡g¢ó#ta
+Fxr>%Êåɸ\B!8¡Pµëzʤ,ä/°ÒÍ TÍ¢Ñ6j«B¤V_ZVDaNÅöA%ÔØ{%QK¿çyÁ@·¸+0Ǽ£¾·õªMµä=zVmþ̵D#²F¥ZÈ`Ly:T:¢ßÒÉ!z[¬Úº8LYÄÏ¢Iþ¾`4N~ÎÔÇRÝê]Ç.m[;6þ{Xá{ñà@ν8¸H
+)¸æJôúìÜÔëGît¢«¦týG½UíæÃÂèY¶ÖU!ª q¹JÜDbÈ¡eØ%scá·Fƹ8Ü
+8$Ä4Z F-
+¿s>´ë vÃÁ(»4^_Bp¬`_Ó¼úæÞ!#ÃN^8Õ%ÖþA{ìéSQó8¦HY¯d£\½xÀqJ2_l
+øhâò§½O
+Ü2¨¤\An¨"%þ5ÏTôJ§vlb7è98¶äFQá-õþÅ=4ÞðµXww¡äùOD®"mv
+
+æõm£AGíÒ©$xÎþÁ¹
+{gü_`ë «Ûâ§Nêq©ýî(¸µ£ÿë·%
+0Kwª¬à°+T¢"^_ã¼Pâ¤P=»QÐ3
NbÇw@ðt8[^°ª¡n4 èì2
+οÓW¯¸^úäÝ,"f9èÄÈPó\½%¢¿RÄRï2_MIJ b«@Ô¤ïq^ Ôá]È2·r3
+* ©Ü7Kºñ?é%ÇòÔW ¡RNâ²&ÜËý\onǹë!TW
+ÕyQ² t÷oKô²\´¬.¨¸^\ôM'Ûv*K¦]ÏÝ
Pd¼=_åY'˨(×¹®4:Äè.°2Úe at VF@ØzJ"0Qq½0¿VS ¸J ¡>þçÕ^2,VbPÈ(8D¢Ð&¢¶Ü¬t²\
¾UtÈNuuÿlêw¾ÌDJçy²Â¬\£ä¡?$h*$©¦\f!
+µ9¶¸<P"à¢[c²ø²Û̾Fy! ]ÑaÃjË1Ië"P(jb}7!l+ú¶µ3c
+Þ!µØOxÈ
@M ü+§i'òV͸·òrzÁÓt9nu´
+VFÏÐn¬{¬
+ú×ì/ÈÐ9¶ÓÔJ
+ù@¦ÅPE°Pì'vz7¹ä<Î#ULv5 at TÛÝæÝ,³WJPv
+/×âÂ5¦|24fÒ$ÅÓ¼Y»VÓ¦db¿ÕÄò¯§lå0}ÇeJ
+.ûsz³a7!W
+"Wõ×ð/Ì2×Ì`+[já*1sÙ%<)³ [o"e@<;¥ô¦6²Uü¹
+7Q$,רpR2gvÆuSm"&£X6æ|¶+ýä~hb}ÿßZ¢%ÑûNiÊô.ê·^4ÖTñµ·T[¥µ2øßsL×¥£&)FgDÐe½5QÙhWÏ~rG+,Ù</TÃÿ=2ÒMÆÈv#-ÈÀ:`¯1×ðÞ ´¨d]xiM3/oD§ØY×ÈÔBÑpk«G¿v?·NÙF¶Ä
¼ÒÅp
¯ë=µÓ.äaòFxmÝhÀ©Mè&¹BA¥ðnúèj#¡nÔ²8#Ó©W\\uÖÿɳ8rLÉÜt*ûä«Ve¯É@X`Z:Çø´2bÁ£Üé§ZðüÀÌË"ôí2ÏÎ'ÚÈOD~¢åÖýãñÿOÕÔ¸ý§YÉN «Bz/ùÉúdøÕüTùZÄ×õß7¡!9ßS¼fÏeîiM¨wtWÖ@·Ç¸»¼Ù-zææLLt{v2òWÓ÷sO%ȶé;C!!®7 j¬UPÿD`pÔy!BÎÞ}%7¯¹|Ó´~ÒÓj¦ø§èNÜÛGøå
+H§ì.Hööï*j;]%!¨Sä°u§æêªHÉÆÇĵ²È¢+&«Ó)¦ËÆ*àkÄ$að`@J,®{^$ÅóGÌn¢4Fm¡`g«WñáÕ>áV
+endstream
+endobj
+80 0 obj 25607
+endobj
+81 0 obj<</Length 80 0 R/Filter[/FlateDecode]>>stream
+Hd±$7D¿àþ¡3UA$HÚç®}kɸsëêûõ¨nõj $ä\ûÚ÷võ~7ïã÷öÃ#Ï×ÿþõïßÇ=NðjÝÞXé·ÍèW¾;ûjµÖâúkÛunë{]?x°{6y3÷¸úí6öevGoçwÌãõ;6ßêÿëûÛÏ«Ý}Îö¿ÛXvýôÓã²qûp¿~ñ*ôë¹,8£í»Ùf]»ÇÜ{ÏçNïõ(ör÷é<ú=Zï$?ÎÊäµx÷a®l»pñu®ÇÌ*ùvb½?kÍ'ùsD?1I??4¿»q}Kå#ýGéÇXüYA U!`®MI¼YÀ9ÍÉÓ¶0èTóT5`¹¯ Ýq|³6®Ecëqm$uEK|:@ôûì1èÝ.«Ìwô)´Öö
+<ÚJDbm£!f;û`õ¨ÌµÁÚêQnµv½! ô#@²7¢ö;àüéê/©| à3[ÀIª!èÎù @Û
>;În¿gÒ¡ °?*=\ØDm]Ðasíð5ú¹håÂctf¶ê
+¾;cÁ2]Í
@D>õX.
+0~ìÝ
+(xLNq´ÖÎS415ÎÁ+çñZ1@Êzgg¦8@ó_$¨MnVвjÕÕ¹qõF ÕíG&ô1U>"º¤l¾5>RùÈ¿OÝ}Ê¿¥4=Uþ4G~¶:ëô.ì ÀhâØ.æEL/Gü@`û¢ÓTUaÑBcô,ÌB®â
òG=íÇã À.¦>
+w&¥ãqç\þC g« mÒuÎ8#Õ>KÍYkÙüI~©¨ú
+K~/ (ã`«1·FÌõ-¿3¯¾?rX{dÌæZïs@fWþËdÀ´õ^«1Y¾Áø)ήdÚ¨É5nIeÎ'ø? ¬Ïï4¥^gÖKuÙHÿTclÈ5´ñT&CNÉ>Ôô® A7¢r`f0ìJb¤+h^V{b37séHü!a¨k$æm8~`óîO%WÑcàëÎBÕ¼`òß39öÄƾy&cú Ì êͶê JAeAïEÿÒ)2²£ì¢a_ýl vzTYþÏfÇ°T¼R6öôrðóPClº>!"IÖªîFæÚ^7
ôªMø]ÍÃé¼ljÛZ}âxÔ£Gª¾æų%[Lõ6YVv6Ò}mAÌG)̬I3.øSÓïû5`ÞDu
+¨µ¸þÁr³
+ËK¾.:×``»ìëë3¢L.¿·M±ÅÖ-1¡Dßû¼Bä@+ÒD=½`ØTü´á³he.%óz%ñùLÇ'çå8Y×]jî<-8@ÉÈ|Á¦Ù>7]rElå&gGoµHÓ>4hL
+®dåÑ\2½<M½ôäõxâö$ñgâ
Ô2wRr7¸ÙR#e¹ö
+PúE/
+Û;fG¤ëìïÚ|TÌÓI'k½ÕU·
@Äò(
+ÌûC%%>ÌÅx¼ÓÐp%%##; 9Ð7rú§¶5¤®fA`'ÑtÓûìq(¶S2fe!$ø.ÓB&ÉÕ
+:Q.ZXêeUéU¬{í.sÉ|êúÛ±×*½æeRùè&«/,r°(UVwE_õç«îÂáXºî§]Â#ÝUÛͤ°9Ø5O×,8Ogáö~ja\M40P_ä!ã%-£mê®6¬eËk!5RT:>=>ÕèGÁÈ:XßH@ù=]G5ðcÑ:#ò¶t#EÔÔ' #]Vtd¨t]Ò©Úß+õ󥻨¡'Z].~T&©n¦EöÑ_*s¸<NO#Á ËQõ(TUÆr¤¨*^£§f°Ç0rðÖJÄa1S,qþ
+ä N²#y ¦}ó¾éVf2
jóÙe^KnÑhþÿdìÔp<ñ¤^¿ÏØWzHjÞn
+
*¸\¹4Óï`^*NmXdÌÖ,Äl¡y ÍçqÕfp+&;I=6§^Iù$4Í£¦µXÊGù@3>ëäñýGxÃs~bFo½ù¦Ú×8á`¹iGG!¿ÃôîWÛu-
+4òï\¦âøJ}û5&B
+b#x¹%Zò¤`UaB Àó½`Øvg.âvW+ñæ¬iÚJ'¿ [wâæ&Ò9)
+
+x ¦Q¯á´Õý8ÀH²î°}1ÍÌÝföWøoZÂ'*
+ÖcÊþ}ÛDÁYnDÞr<Áw°²5{[Fí¡ÂÖCú ³²F:Má6«Rö%*¸CO´L~KQ^K ²F(àI5ûëÚb;-Å^Ê1ø"L
+ú>9©¹½=.åF©ýQýåA@uøÞa:A êÅØM
+\"&'%sAñöv;tGQI¸õ+ð|R½s©¤|QUx±ªv¨§Gb@eáWþ
#:gÇW3)¸XU22ìÚ`X\aé|¸K£ª¶»É²ëΩÁ»þ1r;Ù5s¥8ÆlÙw=U1¤;>ß`nÒ5qXyJ°£ÕÇñc3Õ÷bÒÑÎ."£Qºe;D6Ôú
»©õäÌLdPëiö80÷Å=
+ý"®²7'!\>RG¯þÎóÏ=úU¦«ý}7Lî¾U-+è¥!&×çOǧµjnfÅÍ#ä`qCUñºs{¿) W!òÛ3
+¿ÛN-ZyhÏò
ºxTWÏÈ#E&4Ôì¹ð§W^ºëQ'»8w6ªÇ\BízPmñ!îe½=a>¯ÈÓ Ñ!ÀlªÐ¦ÔX>+=k!䯵¦eÈÍ
+¡8
+µ_{OÂ¥+ò.¥¥¿N[#ß{HNõÜùièfý$ä¬íËrYOLÎRÈ=ñM½¹³wÓB
+?&Ï¡|ðS³jÒ<¤Ä^W¤äýã6±ëú²2Rvè)$'=åë7x? &u!ÀßE@Õâèïqä¬ü@ô ~65ØG¦ÙÆï¼bÚ¸ÔàgÅÔVIW~ö,ùj¥°2Ýã¸}i}ßé¾B4®Å*f292G-_ÿæeuî>Íj¯RgV뢦]Dwè=g¾ÍVõ®9É{:U>¡ã¸3iøXÌÐüãøï{ÁSÅ:˽Æn>VÔ>%kò^*ÚáçJIù_àyÒèv#¹õ¯ß'ÿ¼ÑQ"p÷Sï¼
+õ. ÷}=Ü;8üý¿Ûþ!Ê¡èP²¶¸¬½çÈ6ë¹Yp>ªÖöùX´Å-ÑnÒäPý¾&ÓjèïÀxNçýpéêñ?QFòt-¥jt]sQá£<úé×ý9ÄWaLH)ÏÜñÕ;
+w®-'tÝÚ7T¥c!æüeóÍJoaQù«I×ïõ§~ ]×àg»#íÂeÑþ(ο_{@[í²H(²èV4¤ÛOyqº(V=ÝA0ßãÔI+OJ®®á:¶ ä±÷;LGÊ)j³#)¨U=
+¦Ð'^ô-eóÐ;Ω[%
+êéɸGt_X
ÔØô`{n ú|E£ôJ9²gÙ¼ÓK-åGÍ AëÈ)J»£!Ðü=v
«£ÇQäéÍûsUá§0_)5¬
+×BÔ6Ø¡ úÿÝ·Ö&qd<H¸ª
+cìvôd¦e=}Í_÷JÏFÁ:Þ±=êǤDÃÃ%/×¢/+h;Ьºù8ÿÊtÄ'µît y£<^ ¯YûÊAöG*¿óHCõù£Tøú¾Þr0ofHê;<¨ÒsÏ[ûºä¡kòºë䩸ëìN
+®²3O£½ã,T\«!ÛVk³5DGc?á¤üë^<5/h>ªlB¿¼C/e¦vIô3{Dó¼#µªÞsqªÙiráÞàw¾[¹> §0ygçËõV*Þ¡}'cX¿Ï|Ò¥àV@cÍ~òêûêC®ïoR2K%\¥J>päõ&+=VÖÈJ|¢¾èx3Ç
+îîsÞ¥ãSC·" f×ÔÊ`vS¾¾Ê*83B
+WYª77b«\n½Yù2+å¾³ó÷÷öCѽû¶wß÷yæ7
+X
+¦/E4;!Xß|Ôqq·qÃ!Àé}ÙÍß]Üq(®"g=ãév(¡ýW~ÛEÅý0´ZTÏPNÍÅ-Ô¦»FòÈaؽ¹Ô6ö$VLË¡µëÎ0þmÐ<o"Wò³KwÞxæItOi4`ÇÀZÕ+¾¯×Ô|ßߣ
+Ñ~ïl®Æ¼k':9z
+NéN:lFzÏs%1ô¸1¢õDöKºâ<mÅC¿b½úvßa_vFô>Ô¯çC¬´êø³A?N]úÞÝQ7ÿÁØí¸Î¸ÿ)þ9±ípIaþÁ6^ UåËx9ÓN°ãðv¢wYËd`©¸zDË)
+±Kät©2DL
+¿öa)Wsi>1u:°'0U§ø«M
+)¨53Ù >tý®'QKpC>²:&$5ÒL
+¨0¤9ÓìØæ¦ #ÆiÈ×BeN'B6¹ÀêÙù`ç!K»ï"ÊEWmä0n_/c¤Sl!{9]¹Ú5nv- à)óÁàF¢¬À_ï[òvä%cRÎCÔbäçèà
+°¶øùŨ^cxí® F|ÞVß»ñz¦@'@
+ò[fâÁdÔec®e()(xÊÅÈ
+vÏʱZXø±)§á´¶È¬ð¬¢©çª8fE1A±÷0U0SÊô)µRÿ´ÀWÜèøÜd,92C+} â^¢p,
+hBô$W$Qß)¥á'XÞÉêOÍ´©ÈhêH¼'§i"xâQ&Øä*e^UOÝ;8oÙôf ×nÚq5,§²ï§xÈÊÅçÉd[ãqGö!n5ÁΨª¦²x¹è!i7Ì°0WzWfún¯C1ÓbFMë5½-÷ö%CbHHu-"bÑ ßÒîTøÛ·k{Pj×)W§÷ÿeƳ7ÿké@®XwB7þâ/KïaHÞT}ZQâ$.°«£DÊ0ݸwÞ°f¬@éL
+mx¦¯86¯ÍuMñ&¬iÙ¤k
+úÄÓ¬s3÷¥ÚAÇÔéqyJ¤qÐíÓæÈ9þ6[CίÜU|è4c(ßkCÞIgRL ˱¹ )ü²HvAö?ZUÎÓÙãê 4ðDÒØàmèzR1#'£)MÏtíÙý«bx6g at W?%ÙÆ0W7ìÐY±fr\[»æ eP'ô
Z at aj²½bÑQ½£ÐÖh^é é
Ú£(S'äî¸
,ÅX§øÇmÌEË2=ǽDéÀÐ#ͱTã
+Êp{À
|(ûÚÑ´É·¿÷\FG')n
!ãÛÂFòHé*ì%"³xsPÞ
+r/î#ùÓgôe,Ë
+zXª-3̵AFÔ×´íæÊwDowßç\r3ã®AéÞ·@VÔ 2ã±£þu"þ
+o»(äºb<wöyÙaAÇÈdËz24X+v54
+_íqÓD+T¤xåÒN«m=y¢ÒÀH¬N÷½çêÀí*U¤x¯~d&[ÆYð}#&ÕúLËÀEóµSp$:#iüÎ-òÌ«&`ÕÐ9È@0î¾ë:PfÁ
+;q8
áB²jÇèÝyÊCn·í ð¡J^½¿¤S,GüU~Ê`Rr-ÒãÄSº'¤û@(Ç=8Ä`Ý*/×T?=wóDþÔ,
+Þùî©ïeHW}
+¹ë <*ìwD¦µVä;¬¥à(É}8GßOyoL»¦ZÙ4°o3>É ò½ÍN-&r º;U"Ðêt .PzÎOÀ$ÑÚ-XÁÄʽÉÉvxѹaëF¢øøÎ`1ûtÄ8ʨxô|D¥õÀÿÁh@5 N´ü¡X¾îáXõôJ,FÉÝ'mkÏêSÌ×y3á$qªò1Â
+Ü)¨ZØñ-FþTö°ún@QÍÞ÷à¸òWÖy¦êUw@ A,ôâ.bCbÜ9$úO( g¦²(*@Ïpf£»mÂykUÚ¼°çm¾\vÂ#JO¶äjN»"«:1òÁ Ò±ó5ÓÀòà:p@<VmñÁð¯Ç©Êú½iûø®r$IrøýCÉ#¬ñ>ä1Õm³Skqúýëî
+¦Zoð;:9HSÎûðÎR5Yët\ñüÖ¼õŪìi¦^]à\n¸»
°B´Ë¸/§¶Ïg¸k½-Úø,t,úð¥
+AMI7ʺ
+ßd\9gõïJÞÚÀ6eñ+%£Kè3Ëk½áÜ'¾æ§)¼
+Ò¬4-|xÏ°2IN>ìáMAcãcð0×O³ ³·ÔÜXbà9´úB==Ú.ú¶6â|j gkçÐoá>¿"ìÝ¢+h
+ܯMÌÕ
6LõÒÚI$c[¨tÏd>«P6Zh
//ÔT5÷ÿդʬ·º^<÷uc¥rí:îEñÆJ˺jèÿ+ÿ1vºÖOsDÅZÏßÈÍ8û¶Ê(¦
+÷Z-
+Ù£õä¸Pò\$Þdä²ê°DÅ¡[s¸¨ 8¼!]~e{-]*üyÄï$îÒ[¾ÅËêXÄoË,-·U;¬{
+G}\¾(F¯^ËϲÒvû^}¶´
+«[<˸Q½ú¢Ú#ïÄFdß°ÃuÝ!ºHä¹yÝðÊc·Ss oHÕßÿ<Ö)â] Öe>çä¬+¥Ì-aºÜ½x½î1úÚæ¼qám1&3
+^e!ñõÆ\0ó9fÊcüyp<¯Z®ç
+B/nË\Vnë\|Î
FÝÖµdóÔ»Û²$`¼à#é´EÊâ57^s!¾·q«6®¦A!ãç{BíÏ)87¼Ãm[Ü´çyóo¸b0½¼M³y÷;1÷>þ:Ó õ0X<2§»;°ní¶Ì,£\k»¿Û2÷'#¼#©3eÖ%D¢stÓz¾À¨Ñ+ÚÝïy3·È'I×.Å|öy)7ãG$Ü°·úÊ»ú¶éF±ÎôzºàD¹ðfãD¼PÄøi,%-9Wl[*/´(ÆÏC®®5&hq¯ÆW
+mdìXo$êñhÊ0÷bΩÊ!òY§~þ# Þå1;Ѩ¡÷bk)ÕDÆ
+¼Ã[&ý·§²þ4vî5È6Üøþi¥;q×7·(ýª>
+?Ë"z°O¡ì2-CÙáyé
+ncyÆ¥¹î)DÔåa¹§DR+¶FÓúÈu,S8KÝÕ0V_¡â×_²-Ì3º¥7gàÎ#máËðß6
doT
+¯9|èªGû,Ͷ¯*@µ´ªf
ö0xélتº÷kÍ'ú«µÇÓÜØìs]åøòuêAèb1,Ò-£¾×°æÑ¿QÁçÁâÇ
+ÓÁüMì|ü):¨êÉ,C OÿëµUeÑ.³¸>Cë/£ß¡E¼&ëmÜÓǾ4LOpgcD·\þ0ÇS2x ªÖ² !Ø$#ñ
+Ã]¡êÔÖP¼ÉÄäÓÎ@b¨òLÜËdkY@¨9±($Ôæ§a.ß@!ßB¶$¬åñˤ¶UoAÔ¶Ð^U½ÏBã²é
+àÉøabO¡Û[!æðÿ27hâb>Õº8¡]ÑáÓt¢E9Øý@yobevZaÞCixZZ¥fvµ{%|
¨ä¦hª
+
+0w% ¤ý'´³Ë,`x2UWuÙQ/t³
9Bã>doT{Cª°®3S(Ýø±u³b.UÔÂ^H
+Ä¡U)¬2hÎryáEkÒ6M=Q'±tE6([}äòRè³èÙªà`Yeôi|¾=ºCZ¶,¬=$8¤
+á÷$§¹Êܲæ
+ÕÀ^Í6
Ù}{é§ 2NX¸%:±Ö-dIiºAX0ÈE,aËìðBë»I f¢Ý¸#õªq7Hs秡nLêΪ'Û¡+Ü®V®¾£(kîs
À
&VI³jÁpápÃäY ¸+MOâb%õª|ÜuÃé¿ó¾?¯Ú¥+ÁEѶ©.¨ÚÁfÐbá*X%ë¿zSÒËÆ?icrQEnB'u®RÑDa¼HHO;¤s»J]¤gƶü Ýì¡</Ýo#Ù7¥Ô¦ìõTÔgïê D+ÄU0ã
+#¯àJib
¼àRZ°RFh¹_ÂXm¢¢aSÅ¥IfÆhÙ&ÀÕÀ2aê¡ß²ä,N¿:ñ×x<O ?^
+N1
+ï6WÉ
+í¢RÖ2rã¶-¯ní|ÄÛùó©ðxèJû²>|¾¦Ï$¿ùÐmj ÊT8Îp)&]dÒOÅUuÚ&bÝX#"
+ª9±£Tþãº/ÅtÆ̨ù:v@Ƴéè×ÕÀÊÌ Òp
+Ù%«¨ü¡[¥òÁi¼N.[]\°8ñ±dr£ÅEÃ,6Éú2 at jÀcEÔ½Ä]A¥ªyöLö¼
+u<¦©
íª)
+c¥2N¾[H\ØBpü²Ê+tZ8Z®ÜK3¢øu
+ù^pÑ«÷N«ÀNØ¢úl-Iw\ͱެ(Wp("ÕtuuOì(RNYI`PsTÁÍ"|mÀ°ªÈ9Ç@ðu× `ï@ÌùàJb¸*£!å\EòR$ËòÁØ>â+UL²þ±ýÃf<N±n Â6SÖdÌá\Fíz$g±e°.¾þ)[-mjÓ ì²D|àµËü×Û£®ÖGÁ}É{?}N8«]M;Îl·ÃEAubhÍj<Á.±îv¢Jrçff.êU§Tx}BYgN@;YsÚi®Ü+óLðo¦x4 ±5\nþ3
Õlï<OOêK%]ëÿI/I"
+?ß¡6H°åýÂ,/0
°B£±
\#ã,ÞïDdÖ_ÝýnÁfz*ª222âÄÑRgzîyvf$
+£^¬Ñn~»I3#|Ñ£C²ÐKwq|
bD³©éJ6m1ªÏp
+5«Ó²*Ô|äí¥µGQfKZë%Em: ÈßçÜîrD#=¯DÓSµG¾LÔp>iÙyúÎûÊ¥4[ö»Hï¶l¢wUDûaÖhÖyÙ¶8íWJeqt¾ó¥iRÂI³í¦@ #%ïâG(|íVn(OüÉÇòÖÇ\Q^lyÝR\`-³§áÂ6 UCaº&ľVÝ´&
´6VkÛ~½~åkNõÝ\+%Ít¡¤ I¸HdÃHKγ×þÙÂÁD±Áú_ãÊÂbHÐ*±ímZâçärG|!Ø1qÉé6ÆNí¸ÐfêP
¿
+ ½q¢R-c
+QÄOôMdì³0ÓÖz»¯TvFG4q`-Y'«X,ójw;ÊÄQyT$
+ YPÙCË
+êÍÜ÷|;L¶æ,/|]%#Ïlûèõ¥·
+þ²½:Ķ
+ÈÞ"øêmg¶}özâïÇMÕ¿à¶-¥\
+]g¶ð
+%}£¡°Q*`Ù@°Ù¶æøm½ø{¥L (L}zþ·
+ÔÞß"Õ¡çÙöÙë¿×·$êç¿mÅåP!*îKË>w=ñµïí²óù·_÷övõK¬¼´T¢M+ÌÙà¨f«ñ[t{½=ضcgç×=µîó×ÇB´V«7kr:»|ªÍûÂØßô=V
+('g¨¡T¶Yë.I®Ý¾`¶~®âDUbk]3¢6@Ò5¦¶+
+ÈTÃΤÌghÉuÏ|SémâcJTù^Ï)ûý°Lsê#.ÑÉOr#ÜVbEÏä5Ia.Ö«¢!3Únä«7ÉÁ$Û®Íæ¨D
+ÑD ®VÒpª"r¸r߯qb»3ÍGÆF7_¡t{u*|zKöê¡2Þ|YD³P ç'ÅþvÜCÖnñÐ÷YAØ
+ÎZy¬o:41¦¬}£D}&Eû-
+UQ|i|xz³DôÙ¦Ð
+g¸ ¹p$>R\k'3ú²*$1
+¥ D¿
+3Y=nÓð{?ÝÓ@ëþªv&^7Uzæò0ypWR<ܱ>¤ZHúéæ]ÑKuÈ"¤Àg5(Ýh8ÁP>Þ¦û¢L±hæ7¯Ý8$îKY÷í9¢Ù¼@è£X©¢¡è,F-ÈEm9«JÈð»§Á¨mèÁqvWØòËúºØgÈÖSêèJuqìÃ}MÚ3©@²`pkѼ÷rÙ, z·ô\ÎUh.²ìAMÍ;B7¦åõF
+zª U"jðÇd§ÐýÀlÕií"±[` Jj4IðA©ÅY¹½P®Faz«¥¸
+CKÐa
DD®Gx6[b2>4:i9ÂiiU^ EXx§PXU®G°a£+V
+ á.´ã~^¦qã
/¼¦¥Z5SE¹axW1Â`Q|ÁyÎ_}·i7S`÷ÅIݵ?êçú#õowUÚòÇuöÈÕѹugrõhù ÇÕ¿Êõ#æW¾sy4ú#ÊG6· BpÜ=Cà#½já,/´êÕZMAVÑñ2?°:/
+ói¢MMuÏL[5î)Yl=W¿m§|=WÚÌ=Þ`"ïÌåÇQÅF Ò¡÷æÆÔ',×4p+p§.Mûà·ÀeD²*È¢´$iY*(â;ú³QínAzµ{ÂV¼»8H$h¾uü)÷-zÞº¾:ÚÈõ*&ë
+þ6¨IãÀç ÏM^p
+éÈL¨{k!3Ö¦ó«,56Í®Cu±جUÞ.ÕdI5æȾz4L}N;þ
+,ÒtuøíF,¯mÊúØìIC{9ÇbêD\fÎÏ0ilÝd>NÎJaG~±7Ï&LÖ/ÁË
+ÕÔù÷âñâ-¶à¸0¶QUuÍ\ß`Ôaï³ùlÈýhðÑÝ2ÀûÀûTêÎÞ
+gÕ¼é¦züq/N0XÆT][F"{xsÉèD®ó1²uÇ®¶[ñ+|ÚGÚn¦¥~ïä9¹,:¯úéÙ1ì5!aw4i9Ã~Ç°0uT8·N#¤9}òº% h
+ùý¯5G\¤D¦¿Y§À ÂîØ~[G24?}Í[çîNWE!%Ѳ¹C¸6ê´D´ !ëØ7#ßhOQcÌ?ö"H¾øo.Zðåcn]üÒDà½Onð$"
±¢ýõZ\ºJä4{?ÚM×n²;òÈ<ñyõä¬GèLëÝÙ_G#z&[\²:´V®ß6ÌÇ72.ßq-¤2qÙ[|Uº»U¨wBütknRÖ 7©±«G|(h$JÏ£Jâ#ñ÷1¶ÒÞ߶lRþ´É àÌÍ"=[M¾h¹VèvÊÆB%ZùYÁéûg.¦|Pw×¹³Òq+p#°iBip
+àÀÚ]ÚmËj§bPl×Ð#r´EéÔêÞ1Ð}2ªÈK&÷/ý=Ô¦4C=(2Vf¶ªÚ2í8¦$ËnQ
B$ZF?ïÆîJÀâ)CMÖ¼VÊóûZp8Jão²?H¡4ú«ü¬Wl!Jê
+Ò^=æº
+ñÇkÆ9è]|¨-{ønf_$Ë7£Õ¬q×iÑü*Ƥ}»MôÄc<èd
+*öPBL+ÛʸnêÐy{ÃÚ2v'è½÷i,ùßwïð]Cu§ïÓ9m¤ ÆQ¾éq»ï¶ÐUÅûîñxÀÓ4MÓ2ÆÛ3FîóÓ2åÓ,*ßß^é
+c;~Z%D\´ÏÓ)M;q¬O£²Ûo¸éÇMWéÕÓ#4äé nëÓ&úsÞö6èòßîà7>ÍÑMûøôFãß:~:£}Ð}ÁíãiÚ¤)¾9nÌh®GóÛßÓéÉiíXÙJ3¥^ߢ7b¹m5jÌÃG$æ«@ÜOj@N¸?¶>áOD·¹Çqémn@ A8ÐUõNÈèæñ)açÖeß·¾ká¼Æ$°8»<u;¿îF§ó88\1ZÞZ¹«
+I¨"Õ{Ï©r
4¿J
+õig Ù¼¦¸SÔ}æ5Lõ̵\õ2ªÉ³m«âL ÄÏâ\RU»1.» [û½ø»ä$Â
+hú¨i©Qþ
8m¯Ò¶49[y6CàéDaBy~8bvÉ£¤H«Ãïzqª¥zn!·OJöpóz/{t#¢siÑòÇæÄj3з<^¸¬Sr7½ÎK0\G:Ùί^ë¾#¯M²;ãvóN {tß8»þ¿òl`Ý6}hzcµóæ®ÃïöS_Û1²X7Ë+! Éó§º|skÚ¿)ÏÚ¢¯ò駴2Û^úOeAQ}}*ÛÄK;¾
+붿u-oE9æß;×ü)g ÉØܧMyâ»|,û®¤Lmy¯uÜ)ã½8*êÕsYJWÜÂcÅRÃ0/_
uçÔz}b|©`<6²µ¢¹iIómÌnæ¦$ý(AÙðvä.%±Æô-æt»Î¼r´lÓ¢aaó
Júj+¨KìqUÒÜqzt91!¦èëW!ç:íG&Ìý¢KõvÍٻ߲ë./+D6Ñ|ßYÙ¥¬>ÉvߢÂvWoð¶ÖT¯´Qsõ~CSûê\¢®<']w,òË>I¡}·¯(Rå=ZQ]79"Bã¢]ñð
+4oõj½USw¹Þx5×CÛÑgß3.{ÛT¹÷.y¶ èòÞ5â-Á´#º
+d
+¢9ÂßñÑ>ü"ßÏ`ÐYDX©úËwúâ<CÁ,FuOWe04Ê
+l[E¡Î¥cÜËÉuÉ5Õ>÷á7mPvýM£KØ9Ä¥QÃ4qÈùkâ*®Ìoû¦ÛÉ}0Ïì?h$Ýb0(læÞ$À$6Kèô4Ù©fëC[8ø¹*Â3Ó¡ûÇÔé |0]ª¾³S½×eíbçêÈjéR|cL@£åÉD;÷SÞÅ2uÐéþh^'[°O´¯1ádÑÆåMÐâ³.LèðºÁ7ª3͹¿«Tß0É>âQPÀ§%@ý$4ú«~^µÍÁè\<¨¢.¢´´ÄäA$»!Ç÷;K|
+6vL%;¸·'*bBKÀ¶«wBý¶R}Ú¢ÔÚt@ªÖXÙù§`²ÔÑöd 3(úêX$¹ù9æð
+
+¤ÅCð帻ñ¬ Ï8°ºÐ¬ÄðôïyÆV3>
»+ÜdÛ¢rØvMÞíë;;ÁÎèx"ójÌ#%áRý£´Ë\ú÷¥£j~¹bᬩ)¶D§PÄ3Êî´bOÉäj¼V`5
+:X#µ|þUìý«ºÀ¡§k®;¼È&öÕümð¨Êõ¤×»ü-O0Ç~§·¿ñÅößÕ»wà2ð³5¹+3²mý*ÁºÃêzOÆ Ô/-Kò
+¢7Ç·¿ì*Ûå«+PvÅÝ yá+âõº/duxWhüv½JÐUè¬çuóÙ!jAæئU³+ê§yëíu`!^uÞ¢×õQæÇç1¯JbÑ*1Ïí¢i#%ä¶I/tuY42äÉá1¦O P¥XPÅç·ÌäiÄ0ª±w¢âØ 6Vó)¢¨q|@gQÂpå?!ÛÍïÊz&9f×ó/#ÊtÙ½)É®¦3ØróÊÒ
+IOXÞ)£Û.Æ*Á¿æ¡êQÕÜÉ#DÄi&JcÄÀu¦òYZâúG¦°ÌE«u~
+Ö}r²º^j!¤.-àv%'yg!
+(Z¬»Ùkh$"!V¼xc»¶õàv¨èÙÚ)d9gf<CSnC"-NtúÛØF B¨Ô
½VÏ´»þ|ZÍç%4ÏÞüööbEgyã¹ÓÒ]AkZ]< ez«ôN60·5*êZp+Y¬^âßr':JS2
+ôU&õ$Ï£ásÅF¼
+Eü9TP×D@ïB4f!°3hùxçXT¼#}ø1ç!ûèDCÊá**M¯¬%b5Vjêä62æ44\![çs¬qs7ËEßà.X»,¸à®pî WòA:4×1·å5]°)CÁ9e,²Ô#Þek¸ÖdÝζäX§*5i;íÈ5*¦Rø4©ðC
+$J0½
+Z
+B¡°/ü=þOüHúïéóøçß`üç£=~õøòéñµì_üN¤_ûÔ0½=Lql±ñ¦cã]ôkýõþ¢HoþïwÿyÇâ¯áºx3øá
WýÆ©>Æ÷K¨%û¶³Áf}Ï
kÞ1cÉ£ËV8Ǽõ,Úë*×
m¯×:
+!)Æȱ¿k{[¼-û;bî
+¿¥Ë/Ûµ-iÛ®;*×oß |]¼
CÞÛüüÏ=Å÷;î÷Ökßý^uõ°-;lõELn[Ä¥çqó8aì8±u|ò±w^Ø^1±tavaaû¼Óf±÷8ÏÆ'Öõ°²üÌÏ×þGð?¹l-Æ#¾ñ§4HÒ0Ô/§Ã0úvÑ|áÙO}}ÝK'l¨øü{Pß]´co·¡å¨;NX6¤ó%ü»é°Ó¡Ô· Ü8¨oÉ^Ѽ^ôíõÝf÷ºº.[9¨ã¼yP§uÀ×vºõ÷;ÊAýöQ:X¬«-Êlg9®ç;vÜÛ:b¼KNzÂö#ZöqqàNuaVêojÖÒë#O®Ë¯9eù¯9|Sÿ¿}N§ ÍçÍ^½ý@[Ê?*m¼ÈäÄmK±.öƺÅuàT/)l-lí°G|çxe+Oë}ïioó^;òµ·ÄºuØr¼¹síE)
h¥ #Éõdu³Í}{6[{¶l½tD ¼°óÖØkõðÅW{û±è¡.oYâu£aøy6ÔêcDÂkNz÷ \ß¾ùA¥ðz¿ijÐÁhЮ ÃmK±.ö´aG¾ÔÂÖ[ä§ ÃÜt¸m5 ?)WbÝ V7Â9Þ\7oçñvÙN?Vâô£FØïóÂ;ï½(ç3`<ÓÎJâ3úÅVeêIBälß ¼Oz÷ d/BH#g¡_13d ÖlÞ1´i¼ jhºËK¶sp.¦+ÙóAÙéJ(´¼Iñ2ª-Ì]±å¿7èXæÛëÄx|奿\/J¼YÕµbb|ç-³a!¦záVw´!Q×eëÞnàÉèEѶÖÈò~aÍëh|u¥Pk
+Þ<
z®C0QEý?s¾ÞA[Á,A¯÷QMÕ
+TÆ1½x|rï¶Z±Ü㥠'®Ï£<& ¬
+yÍIMßMͱD¿Î"Óõ-
+þ>¼
íZß(ñyzÇ$é{Ð
+d3ZwI»y<ÕDÙßÂÜÅû·
+
+͸PuT½·¬º£,
©KÍA®ÍøÈÎ#P/NU«ÑçÍÐiú¿0ulÅqÂíøîµé`í-KAMÇWJÁ¥ ·'Äwð Å<мÊ{:û©òdó "~Mæ"';¹W¼ÌpÚìÈ
¹úâÒn%¶9|lÅÓŪÚJ¾{só e#4*© A©VÆã57
+25¢êÞÒ]ù7ô«è|yèG3=¡õ }]ÀÎÓ6¢«$Ø¢"íEÙÙ:éuîJQËM¢¨f|ã¤FÏOñ=\T>+ÏM]Hò:^KwRMàÊÈM¦løÄV
+ô¸ ÷Ï@{Ç6±h[ñ+Ø3Ø°[VµYtGÓ üèü²ÿ|i²Í{KU!ZK÷¤^\ÀôäÜçì@ò±¸®&è*¦¨ fð
+ÎúîBºÏÄÔ·h=
+
+À©ÜesE¿¼K°Ý6´R¼RÉ'b <%Êê©lbti[N¯^` ±!`©J¶6/¼{"àº`ÏPp]U1Í1G½1bÕ@è0z{óÀKöw0m«\6PcC
0ütr4qi§jË2@Ç·ã½
48û~PÃå 2 Ìá½@°ÙkCXò. ð¿®»Øb at YÞ¨3rìñàÚgST^¸xÔ[¯/H
+ñE%~
+ÈשÌVPVE1Z#+ò`XQ-Öaÿ.ùÂFÏ,ÇúF<Å5·`EcÕçv¢|
+ÌBKÍë,7Ç=BNI CQQ4\@!îÑj´ðÎãDã/zú.Ä]mÒñ=ÄSÙ°i*SÒ¾³,h VoaÁzuNg»Ã&ÙÍë'²cÀ¦r÷ðΩ}S]
+bëðGPuþ.e¹ÄL»@¹P{ðów+D÷µù²½çè´ÀRJ at 8äfJº¬&sùÓØ¿Ñø¯k½Ö>cQúL´^Ó/WVBÚ¶îcwMLÞcs#YÊ#)i¸KyHvúê5u¯Ù(+'Þ¨rä78S
Ò»h챸)ØÅñI¦12]ân[Ô67W<ÁBªÓXT)^XQØõ,3©ÅYc¯@MGäÙuªJÔY¶µIYVJJMcý ùÿ´ãdïC(¸HÔN1å269¦ÑZÉêñIieÿïN×É9^OSjPpû>ËwÓÝ9Ò
+YÚ¯ÜÝʯQÆ&2ÛXº
+:·@©
+'!}âõ .(É[òÇóÁ,-yÕ&há÷8È0Y^ö @±zìZ(äà±û¤ª×o
+ ÆU³AóøÑAÓT¨ú¤<}L6tAýÓ½ÍZ&µÁÑ<Ðéàß6 x÷&Ê#äÅE椨Á0Q·`Ë\ãú?78egÍ&p¸º¾z/?Ϫ¥QÖ¶ð±2.¥ÈpÑ]X«[E`«W|Kó:J¤¡éÐÊå`ðsL©âÉ?!¿aä9Ïóp1½éκr{ª2»O{ÓÜqæ¾ÔíæA1äcú1¹ºJH£yfeR,öCì
+bká~@ÎVªÑ°±H[vp^Õ£,^EDÅ,ôíßQ*Èp§ýåô¤{î¯Åi}Ìø¶ÚëNG8¼{®v_7s¹æ¾@¹ês$UßsÅïGUQsðÜwW=æ\^~
+ïnruö4J¹ù1¶IÎ%d¢\ëÒYwÎÍÙã´8ë¢ãyÍE^gÌó~½ÃßkÏ;JÄܳ3§?±rܦ÷³¯ö+¦-Ö·ìqcéµç[ÜaÏܬÌóáF?|9w±p,åûÎÖã~ãáÆ'ÿþ¸äk°eT5CÔXÛ /ڿƶãºÚ¦í5wÑv}CÛõ
¶ãÎMÛù
+mÛ7´íßÐv~CÛõ
¶7Ú¶/´µkÝCÛþ
+m×7´]ßж}¡m}¥ß¦íüBÛrQ9hûJçÛºäá¡íüB[»p£ü
+mçÚ^ipѶ¡íMǶíÚ®/´½xõ;r;à.F9Uwïê
ÙȸGsºãÙ£s0é¬{沺zñb¯Ã¹g¿ÊÚómþµñÑë5WãÛ£=u-î|K;±Ú[¾;¤sÏPýÎãQTU?w]ërÄ%_ërÄôeqÅ*=q>ûkÅ;úkn¿ãĪµXw&ãζ⽾=0zÅoÇôÚ¯÷³î¼
+<ÐÛîË¿CÅ ùk6iìè@j¼(ù
+<v4»ßâ/¿""WölïëÆ5ý¥/ÆÇ:fàõ*df*Mq¼Þ#ÒýÀÚÍäuDn}²±ÛæÄ~~»Ø³¾ar6ÞL®D{1%kvo´×5Xû¬iöCw§e{¿ñbò
+ÖöùÉä;«êË3×O6?1ñÞù¬{â÷ÄôÁãÙïQ¯½b:Òß^ÍÐC}uAÑ{ÝÕ¼ç^<TþÁÑ÷¯®û;9ãmèV²~ÌFfFAO¦ñ9ºRx¶4ÔU¤Y!óýÈî%¨=ÓÊÙ£÷ùã×?ÔYEB¢.
+KMº;·@5K®
+Ç5WïQp«äåh6Þ*$[¨Ìþràmä|®Ã@`]x
+Û%«ò÷ÕØq´ÉÏÑ]aæ¡zz
+4»¥+CË6ôÝ!˼
+Vp[>Y-ÆZbM`)ÄéÓkô¾ÂîÌ¡ÀVm >4²h>,°Yinz«P,ÜøôH4Ä-1©Û¦`Ae¬÷It>MÃ~«BÀ»g4$]2Y'sæ}P· 8þå¨
+»
uC$BÈÜ4"Gxð>Kö}±fEóÊyó3âÝ#?wP_eÊ»&2^Ævëv
q¿PïB5ürû6ÜpXîzV.ô6fæÔ\Fã±6UÜ ¦o×<H¬9f禵A=X2Ë(«:
P¹õTUz µ2è
ÞzfÊ3ûipÒP87[Ò++£Íú:çL¬W¿ÂkD|óZÅç
À¨üìVT}ÒøÚÈ÷Uðò]=iÅù´AFÄJRzÚu+þOÜ«ºt
+Ä#2½eá1ÇܳW"`¨
+Å{w`g]{¨îa?Î(+Rl¶â 7+]ü9T
0ÙjkzRüUþxÕ"OáÁAÔ®*Ó¥ø ¹æ<ä»J7§[MÕ.Ï¢òÍ{#öQZ¤{t²ø,$ÀVu(YÍÓµ2®×áä¨ç;a¥^yÔ73¬ =ö\¡.óo£fMÔÈVàìê
+½ãtH$'InJxðRâkôMZ°¡³0ñÜZ¡CÖl%¥ä¨õïÈ!q9*¹QTx2Ö±§ªÉ
+M@gÍfÌÅ
+öêbv`h)»DÐ5dñd
+4 bÿt7=:¨`}H]ótû×!©²rÅÀ)ZeÿÖÌÊÂ2²BLÕ·&*Ó¨ÃØknÕ¢ýª©üLd}¹×ËçøTÚM
+Dì3X,¸¥²a/2âÙSò^]d5ÿ¥¼Ü±ì¸º/ÿOìÔ±ÎQ¬Ø©×o\Ùoô,äHbO?6 T¨mcWVp9÷ë!iïKLÔ|7¢ÁÐXÙá<êþj,¢¬gù¿ë$h¨E×3g:A1Gs4ÚìFoÊNÏ»·yäZN§×y"
+²Ný1\CøeÎ
+½ ò¬£×þrÚw¬Ö*ÑMú®
U°e¡½rèw_áY¶ãx¥þ±\.l/rýFijBöq$&Ù_)½»ÇùT7dýÁÔ@õ
sj 0ðißUZó¤1½À¬©£z{ªnªD<
=bÑ¿^Ã.Y/ñGv·aµOÆdåS±Z*XÍK½¿3[ru-£,Ó\ú^úÖf$qòhtdzÔ˨áJPãjÓ=¹N3zW¾îï°=8ÙïÈæ¢É0µ>01:jý±ÿUãÛÏÚ[}«Â
+J©ÅËër±ã·n÷´æ¾qó¤¹NÞ ¦ª¤VÖÿb¡%¾kZ-nO4vQ»oÕ·òÞÙÌU7àLñ®vö¾òÎè9DÔ_B'Í-
+;PùlÆ5,(Ôt4rË?f¢ÌgØr£ñ~¾s$àKÕßJÚ0ø?Iq\tRýÄ2p Ödy&_ÕÏ[ÔNë<¢u! ĽN¦à
+`Ón|ÚÝ+î:jvE<?À®i_ì]^:ÆÁùøAS%|4A"ü2Ûüql
+³õmíÛéÝyM\cD25¦Wt·Üª$,§IëüQyò'ü-8hÛr7aµÎRB»2´ëA;ÿm
+´Gudöe.ÈgMZÖ;´]òñ¸r¯
+f<3ºä}ÛZ,â0ê
+}ÆZ%baXy¸û¬Þ¸nÀºÒ:#,N7î£Oök
+xRÔà.T¾péã
+ÈWÿ"²j+Bå!Àh3JB0¡Fµc
+-²JiÓ>¸%½Ö:êwÒrV±j°UÒDsyàûÄ¿
|qf2\1¬æªÌ£z¶å¿¨Jxüy³E=³^ËÒuÃ]ô|¿l¥©oÝ/b}fóV~4ÆÕmðw7Lï8þ°Ö) ÜKmG»ßåEmlþu2WÈ¢["µ¥åpÆûNn!quë÷Ub/ \^ÏßÜzõeçëæùòë ì«óuΣhçÔ¹
+gdîgÒ óÊÊo÷ûë7k½,itÕ+K?{©¡É³7õ«:âôwMÛsV£\*°Kâ+Ñ«ºKòÏçï¥Æõ:ÉO}\ä
+%¥æõÖÍJ¬E7¸,.,ç*Á!õ=¢ðGRÒÚCÞ©ü©XÎás])Y![»´}f1ïûú;¦Ö0ð4 öÄðÆUänÌ©ä«Tü\Ï&ZüNÕ×O+¡r5Gô{R9ýWÍpEKS-¼
+âÍ|R"SÃù^Mj¸¼Ö½.¯s«¸àU©Ä<28
+Å^Z/¾«uêéüF%F¥ëQ
+Ûõ¬aòëar³½/\õer5³2ÏÉTF
+»bò®7î^pøÎc;#J¸´/5&j¤ÈI¸qº¯Wæ (D²k¡ÝÓvÖòöB±¾l§¥*SnóNÐÌOÓþOxµ_Âå £úë
¦?¼Oæ;y´¸_ù](QÊu
+yc÷;Ø×´ IÆàYtóÞ<$ClØÃu¯ËÒ ±GN`ÍlÔUÚæz2N±î¦ºtoPz?zŨ.}+hïz¬[ö£pöKôyÅIÖrh¥%LDÏk<z6gEç¨Ì&Å~·Èeîñ|E^ä®UÃÌOþ¥0gæ ^áìâªuáälMC?¾ù9,Z¢[ã¸×³þòwsÐöïì¥0éþ ãD~-ì-²«,:*ó&DÓ±*D;äÏU] )×S£ºõGòñQ³/ûh3ë`¿*^7Ýú°?Wêp§r\¡8L]d@`ð4/=äJMÿ
+0
+endstream
+endobj
+82 0 obj 22786
+endobj
+83 0 obj<</Length 82 0 R/Filter[/FlateDecode]>>stream
+HW»®d¹
+üÿÃI6D¢¤xÒ¸þÿÔUE¾Ý½¯13w¨«#UÅ×ØWÎG¶WÏÇìkÈ^mÒÞîyýøÇ?ÿŵ±úÕçÃ<÷ôm·GDºÌ°íÑûõI>|õÅ5óWöñ|0¿°åßÜå°ä²¥Ûõ_¬
+7tZ³×ÈÇæu¯ëWnÁémë³ÑG\#»YðÝëx¬M¹µVÛܹ7íÜÓëË{7D¿`gÏ«wlíFsOöml¹¥µÈçíÝûÓþª÷ÛÌŵXg¬ÇjCç¶d2®_w`ùQ°or
+©:°ÄS<]4Zzø¦ÄGGæK)ú¡îÀkaGkA°¬#¼3B at Aïv37úÖZshû'sÿØ_0¶²¢V7ÂÞçf9*©oi¦ðþQîNùãu{Æcñuòº?ÎÜ'étíÝÄW2
+²äcs#-0- o%@Åf?
+Ç¥Haõs¶9ôÒ{áPÉÈlöBëL?Ìx¶O
ÈZ(Âð Ùü¦ÐÚ,éâQãD-?EEêúÐZaAEÈvâu!p6ÀE¢r!ãªa½ðg.E¦Äw1´\nê¯âú³l>´G¬Ê;S[¹¥Ô:²x&¦q'¥@N]8Ä·:Ä5(óÐeÇ%Z§C#تÔÜ8oïw ¶Q4¯±ã¦±S·FÐÄIÂ
+¯i']??d¯èô@ýá7O]кÖð)\jÀ}O.ÊTûPxããBÑñ©KR;|$Ã\Kø ueèV¬`yý%xòìm éâÀC¢zA§:
+§z¦yØú|ÏoOíE8Ó>cæS?à»ü
+ü`¹x^_Åt¥Éß1k·êF*øÝ,]oc'P5ogD~¸÷Êï'â7ª|Ç~«¬É5<5¼J,d¨ @jà&ѪÇcz
+jÔ'
9do¾ö~Ü?@
+m)s2橧ÎöاÜR&¨V
+$ÓI$Nýc³[ñ$O$__»&&f¦5õæÄ
+íÍ$âo¡cW6tvÚäBÉoVpX¼'P8²Í[¢ Ó;b& º[c)¬U$ðÝv¿µov°F`.ÒE Üߢý²Â[ôiãÆùÒÑÈßñJõOø>yÍã#×(=Àowز:ÀÒzíOøå[tv¥¤#SðG4QVñouæMYÔR'£\oì} µÞú`xl^á·êIlãW.¸'i`9É?ÁÇ
+?
+cùlCMoÛÏ5¤Gè&.¥C{Üõë¶ñn¸¦£4Ãbýt÷VxS!§Î®Sì:mÖ1wè®ëhP¯>ë,¦SØa{iÕ8=@ßì÷Q2è½êì8¶÷ûP
+×8!øY¸.ª
+¸³~³øPÜõÉïOw½øn2!ÿÑ
+F9ÍÈ$Ø|ú]Pn ù/7é"X^Áy´
v/¤
+¸U10« ³@k# IÇW?çXbÈn2h3qÒ¢¡Ã Ûnc;ëO=¿*2PfC¯ñUip1%[«i l©06±ó8S°P°¼öD<Â\aQÒ(wUv!d
+Z=¯§Z+#
+³ÑQ¥#H¤QïÓj÷±¯K
·ÇM}-Ä
+Mãè²ÄzðíJñ¶©`MNz,"§öy"í¶'¦0-*±ïcZÆRa^ÖLWO±B'&W¼cK6|&¤*X$,ÔÞYÝm\f(-zGáÄu\ÆÖoMZb
+Ý(ľ_Û4!±@U¢ù3è׸ZèÉ<D*£kóë;~À]'Ý]½k
>µ¶íTócÑÿ-lúth¦kÌ
+E|8í*¼ûÁBxñ×jIrÀ(yÖç ýÊøS³wzÔ¸DÔbR´r¯[¬ßV]û!
.2ÏC¾Ä}ý¦zM;)ÆÎ)ð¯*°Ïh,K[%§ßÚîª=¬XâÅmÉhK/3äs·I£u÷LGÌõ6Ú ¨cJèXµ{=ÙzÎ0ôZy¯ÈÝ{f¡ðàc"Î)ç!)\SºUßés>ÂWUÔ/·j-{Å[ßa__±Ð>×=¯îB©ÔÖ¸Å@Õ¸¯×#ÖWV=ªSLÙÍðc̲~Í\üÜ~ã.{<¤D&;ÄìÁ·.õ
+(Ub¼
}Zw:&²ovô>ÍMb%È(cÙ©!åA:vø73+1^v|4Hj}p¯þë*nKÛ>I³]F8^A~Èñ9_µ~"±Yü5.øÊúôÍQîâHU0Ìõb+ko(£"7À¹<JJ¦¤Ïgüÿh)âñ+w¿TÒðWÃP²Wv{fåwI,uOE¾ïW ¦½1.ÿ¤ bJqjDªHfðSôñõè¥Bõ&þÈoU¢Ü1ON]Áw.Öº/>=¢")åiÏGlj;²4òáXèø}í;3̾é?|fNüþ¬\¨9IqܹÔU ´Tãï·W\ÿ¹aì~M'Ì'V»¬S1O6vøä¡xÊë¾ÓÏß´~5Á¹±Ë¡PdXcGÒfùÉ^+¢U·ö{²¡|ÜkÚÈø)0qÎîA#ÂÚ:?Ï(}U¶Ûîi±3'-Öª§UgMVNm¬~Ób^|Ã5 I7·Ëw;dÏTã¦IqöñXÏ»N¹és¹ilÍĦëzªÝÌS¯ÖÛoyü½-îYñ¢ihr·Wÿ&ÌZÃPN\¼¯êÊE"Ó< Í|§20¥LÑ×
+FÒüjY"bS8>ÒÎ.{óÞ²³(|0pâKËØw©X¢CÙV,²QX[¦Ö#u¹\©±½F%µ³Å~ÖÓWÿMðsåà ¡!¡°(&·Æ`EôÓ[Ô)®Kç9ïõ áH1ªésøk¥ü;ÈR!]íÚXzÊæ°Gd÷M?S£»éX
+ñWña 4óÛýL7Ù¾)(©LöX¨¬o:óàåÕǼnÿñuoù¡yÅi>Ä·YããJ[H¯(s÷Ðס ÷V(®Êe1ñç%>>÷Üüý»|ÿ çdç
+ ög¾Ëí;bÈrTêa²¯È©K9ë¶1Rg<åáÌý&Á\vôðy=¢31|l±E'è±ù¨^g@éñÁ´
dD¸²Ê¤%iLßoÄq&æË=3aéØ#-1ØZÒ$~qxê¾ÅP£Ó)¶ÐcAcÁP
9bØS×$ýæ½2Fyð]FÒõZü¿ñ3ýöìl=Ý*q9r¡$= «ê:â]jÕ`m¤M¹.MM®00}s·oFp(<$GýêBM
+h C¦Ìßv^DI 3yʪÅ5Y5e½b=é A×®ð³gRÕoÎÍx#G¦F«d<Ë0K
+ºû¢g[¹M õe=p÷¨ô+{KTÖ}Í
+¿#]àðt ZY¹.±<YüIÈÊ(¦IµG©{è´ä² {5
[e'ú.µ¸7)£àY)7tg ÈìjÜh/ w×zÒDJqß:<
+°½<tBè_á¶1M (Dáߪæbó>À0ÊQaøDj}YÏ> «³HtDð#2A)ÕPK
[Û¼f÷¡ýÿSrly&»´Ò?Ââ9pAØ3#§«>õ»K9[K]+bÑ·Ì
+T±¨1)-¨Ö.§ÔãÑÚªÄü̦ôguk·KÄ
+l-Ví.-íã¬0§^îçSmM³,ÅÍCh=Jï¯|Ùp#ôgÀ<q\Jït@P^Ý\r¦ôÕ.qSÕë*0msIIàVµ¿l
+9
+á<k¿ÃDlNÅ¡]Ñ=pZê
+-K[O{ÕÙm$PòÐ><Þ¶»ÔXîl°ÚQǺÂðÔaÂ4grx]7PêN$9~2D"H]¡ÝÚSü=»«=O<Zû³ë1ÁÏxô$çÝ÷]~zÎÓ+
+7zÿ}鳯è÷ÖÜaJÚç²1q
÷Vù´×zÞø7}þV¨Ý-Ò´Ó_5~ÿâ$ÿtáØþ®½Ë}Hµ[q2N¦ªEIýUîãþÖKï˽ÂúñÊ_GâýñÃs
+uÙ÷/ò~¿ÛeÑóBíÄ¡e¹È|ÓßÆXøKdñ¯(ÅSÚü´§Ã_G{uOP àe|º..V±å`ÂÒyª/§}nöHJ~"Îæ¬DÙïÍ}y¯Ó¼w¤Û¯/Ë>íq¡zùz¥«kx\îzÚÀ»CXó?"ÊHÏK b«¶ÿS^æÚõ6~
vâÃ}NjÙ;Vêç÷W
+¯u_ÑÌß8X&´ÀßEµuµqßÌiy¯i-Æ°?½>s·Bcpo÷
+T5Bì6Ý© ¦î
k4òg¾ýíïoÿþ×7<êñѽ{ÌGdݵUÓ´ Ûä?lçW¢Ê~¯aH0~·Øô¼ÒЯf/9A«¹¥ÜõÙÅÜTF,ËO¾(ǾL,IU®(6Ò®Uéâ(ÓwµÚ¶0{)7þyòá7ajÛñOZ÷_Û²DC¢æù8¦¹oýL¿çíz[&¦m²~ÓeÖ¥ª+[©E/4ôääwÜQH\9zýÓïay³Öî3+NÂצýeìÈlR4éËÅsmZ&µb jêâ´O+G&òÇ
?C5Ä%,ÛÁ2ssF1"z| áÕzÛ÷®îþ<MW :
+
¦íÁM¹X¤gàüycÔÛèù{ÙÌ"áî,æy|à5Ð^Ãd
+̨շä§ä§µ8nRH }¦ÔJô¯=Ãë¶)}yí¿/¦FZÀÈxlmùhº@Èáv~¯>¼ÐóÛ+wé<©y2Ù©þêS¥×ÇN¿¶|'¥<BFkßÐÅ@¢×-Ùº¡}ÃYÖúØÐÑÒ
+¬ÂµåkàUDîBzÊ«ë[WD~çM*Q7ÔÝ%`Zk]ÅRéÝãõ¨ëakO@¶ÙLPÒóÿy9}ES²¤.ga0Þô)½P=o +ÙD]
+W+KJº\}µ
$l©à$>GL¬ÒêÒ&¨å³Öµ¢ÿX)ËÑ°ô13¢th»ÿZ<ÎãàÒ),få´_Üy¼FJé¦hMPÙÖ2-ªZ¢D ªÓ¿[[¦ÛÊÅ&7¿¸ÝÈöÏ7/¾ÌUÉ·SÝUcÙÚÕ!ØBm.
+Åódvfm!8Kµ¼{pjsVSu½Hë¥á±Á*¯Iø¤
°¢Â¶/éªR
+ШäO¶ýª<p^«+©±VkÞÅI/
+Ûh¾þE©d+
+Ù³¡´ØV¹=vÏQcMYXßÜÎ*äjQή Ú]ençiõz"¹×Ã&fN}^ÏçÐx*ã.mX&\-%$OýPIýÄEÃuÖÙòX£ø8'ÁªzîªZòîìÕ_¶"S·"n7m$cÀYäûYAÀ©¬´-SáMÙ»ÕqFDZ?l]u9×ãp²lóXq ¨uÛD-Ð]p]AÚ@~3ñ¾!Iª®Ä#2_»&La2QÉZ"à¬ÀVÓI0ÇÚÚLK*³<ÙfëJ 0,W*²JîÝ0ª¾(,^xÓU¨ü¼&çnýÎ¥Rl0³Tic«H"+Ã;|«(Êtj³HqÏ1å]u³Ó92à|í/Ìn«{;õ÷Í·Ùt¬þ¶/-yÖGQu¶½³ 1Lk³É
+T`¨øÚì×DNÜý3:Ù»I·O³Ô}y¤d£JyØÓdf¬Ì¬AeS&K2ä)Ðàùiö5·¬¼,GAWÚçèk*xò´ß³ÝR&QØ ¸u´ðþ5ö+#y)>±ÆФ¬=ï5KÈÍHÏHM¨ ÖzôHÉ`§Û)B¨nE³*Såz.GF¸Qÿ/ß Ío](ùtÇù;*æ¿85ç
+¡ëIL#«
+l0êä±ÕHC[É<pkv
mR_4+^uÜjÉ6J1n:°²sHIT8{íêê
+ëà{d¯ IjRôÀþh
+Qp¨±¢éíÉÚ¸æNãC
+^0Ù5°,-øÖ-·ÆAÿslÆâ¥s´ÂGÃ6E¯Ú}|¬@·i¨CÐÉÌíè£'çãúÕS|Ú4+a%6éÄìÇ1¢(L¼ÊÑtÇ5hÌ4Ôÿc¼\#Éq z¹ÀÿgÝÛZˬÎÐVÛ:ÿ<ÀÈ,u·V$ÇZæÙ.ÈæÏØÐ}`U#§=!¯¹¤Ø]GöõIcLsËÂP6Ú8hk9æÜxDnÑ©I¯£ÙëÔI_ûã2ü5ò_MizI÷kýà>BËõºº@knYLÞ}´Ê*j±ÏÒ¾Ú¼`êÃÆ6]£8^Iÿ<<í°rþõÔ«Úà»?¿Í;µ)ô¢·v§f7ô"i¹è
+UèT¯"=©Þ@È´wÏÞÝ´ÊÌþ«&ÿ>qL'cé齩2I×¾:ûùu'wIħrÀ¤QVDÆMݼ%³J6x£QJbrEA g©)@ýW7Î{øTi=ïOgéï1,S|xu÷¼èOvD%ÊG«_V°jÖª|ûö¯ÁvIuVTÂQöYiO^UÝ4Á&禷Ã%ÑG}
+ú$&E¬¸b©º¨Äß&ÒR¯B°¾KíæC©ÂkH=ÇGgÍ#°@`ZÓ_Omi
Z|YF¹(%YCy ç]û²|¤yU1«¡'2íSmiB>òìaïo=°ÐÐjeÒ¤%WÑÙ£Ô¤ú<êD3 at SuT
+Bsà4ǧþæÑ¡b)Kb¼º¯Ø¡A[C
+ÃErZ*Hû9&ö1ÕÒµ?õ&.ÖÌv6ðؾâU.%tÅk8¡Õ²7Óµ^$¦ ï<Î <ZöîHn)Õäçµl»x½¡¬
+þê3ƳúóãíÝ_Ï_Æ°.¡á¢QáRÔ/®?Ämó0©s½ªé¢ì!Ì°ª-çÙ^
+LÑ´S4²Æ´ä!WMe϶°²å,Ë4í©C,¼i[¦:´£ª6©úÉ}Òg÷tjµüVE,ÎyÂë:4½L=^o ß·uõ/Þ^ÕÔ»IÄ®»
+#õ¦e¿_Ò%Zöfùêã)ÏW·òqT±:pî@ÅþíúW¬Ã@V{cÓô#B¦ÖòF|2Ò2
+ß«
+þKÝ^追¨#`²«[0*ÚE;~Þwhl,×Çåôº§,?è&Oé·©GèÊ}pøC®8í0;N3¢î¼ÁðlxK°ÙĹv(ê%ñ¼$(¡V<#ÀÛ2EÀ'5Uèa½íâÍ&±"È@kÇTuðú½Ë§ÉòÀs°;åÛpð¬úøÊÖ=JgDÉ®nþ6¾d£ØÏû\45ì×Újv')Ýxm¤³kêkwúºÃ4üÁrâ´Ýiõ³Ë£©Aà2½ÀpÀ{>Ç`¡°!¹¼ÖùT)EäÕnÓXÑâ`LW¦Ê¸» ?Ó iô.ÄMY¯¦L4GËOæñ¸í͵ï
+.³)Ò«¿hú,5[JCó ¼\¥²´Cå>}À©ÁvêýUÊÌy }WË8®®:4<Òi!$"PÆÚihés_4V¤µ±dî!vv¼Bã±´Î#¤º¢[ä)-&OMøJ»Çyé½÷ ]gRíü±68ìHöùÛÖÜ°5dÞ}e£+køñ ÊÂr2~¼ÅþßÔ×U;YT°(ÊÛR¹½ØðÕ®Mc#¶q²äJVÛ$þ<iQËÇW-KØ%Íî*üpÓì]Ár5Øtqè¶îÚøÒäføO (Ê
¥ÐØbL4°Ü6ïre5m|]èÔoG6üÀ
+ߺPü/ÞýI«8²èGhÌqXÞ^(ÚÖ+¬ã¡£½]¹Ê¦ðÄ(»º%l¦6ä*}ZfêVMµÚÍA[(Ø
+Pz)ƾ2Êض4PWFÕ|N(n¥'
5WÑCWR8´\EÃdªé´6¥´N\ëâã}GÃÒ`ðЯÅð{Gî®Ô 8¿L'=VeÙCÔeþh´
+1£ü©Oýf½£ÝLIÊVì¼½'ÈDÝâµûãO¾Û©%Jp¥l/NR*7¤Ý4æÓÒj-¦D'¦4¤Ea?ÈPíFß,,
+_É,ºÇ 5ÜîÕsVë>ÁÄåhÇÅIrQeè:åà_.âä%¤h]£-3oãìµ_=\cc1 1Ú÷'t¤¢bRë*-7årò³§PZây¼`ËÐËÝnRrÿü3ö7d6âåÅiFÂÓ ÉªsÆd[0O¥6%Ö)Å2qu¨|ڪĴ1OË-ï5Ðt·ÉèF½¡ê»geiàÈÑM>©&&B0¥"µ^tÆ¡£»¯d/Ãdª³ÃÀJ*Ç¡ktNSflz¶F_ɨK=v@×]XÓ%dÆìb "¬%ïcIúÍ]Úm±L)è_éÁÓ'?ÁFöSª;:â&Ñ%ÚÊùûi!°©FµÆIÀilF¤`&B.à8&vhSCº×ÕµJ=(<K>& P½5önµ4þ»ïVa:á´UúkY\Mbvç)Ç"ã,ÒÔâûe¿KÅÐ-¦
+%å1Ô¦2+ÐÈÝ[smª@×W£¦Åæ!}§*9Q
+J?#gv./Ýào"Þ¥_%j~=¸ô%@»²VÒx¼øz-2×ÀÎMÅ D'<ìZY:pi5ËW«3£â7[©íLgêòûlÞê²Ø¬2ÑɺZ~Öé8`¢H²o+¦úÄéÝP`ti~§!ÙoL5YlsÏ/
+WE§Îvo¡ûü²w>«¤BiY*AÜ?ÿrÝÃl6VÖìÝz`ª¶ýÜи;Û
+e.Ï¥{óWè]:Ëhp¨ìÛº_úæ%lË¿a6:·Âk"8ÎVÕNqí2ÓeÛM`.Ù,¶o>ÎNfØtÛ/÷¾}}÷ò¹eúùÞ&êvöò¥ñ&³5̱¯Ïϳ'ÆOcï´vÙÌÖâ\ìùí{:úÌlkÝHA'QaM=®G`}5L?Î%¹<]¨Û*X)ùW»TüÒ3ܾB
+ì×¾ËFªì]׳½öàD')ßù÷¿ôîª1Bä]Mž{Ç;µ+7séT{*ãJ6undêäKMu¾n#gw²ëúèäÚèÉ^kB2on|þï{ühçC¥Vî_y1rÐc_ò}ÿìþÿ)¯r$;vx¹C@Á
+ i÷ÛÐ!äêüØHTu¤±^L$ÏËÖ}¿Rʯ-rÅÛï¿G<$duëútÁC¬ò2ôÚr¢k®°ÒY!eóyúé¤:râuRE&éN!,HsZx1:Ì?]ìlêN65æÕV¦iMJ)cÒe=Ëü-«´WÍmݶÖiÛÕÎc]5wëN¶â{W²¹×ÎD¶q|ÑuÍ5 ß:Pü²5v>Ù¾ÆTpöÒ\f
+Ip õ¤]îдÍ!ùÓ¥eC¡;u²ºSȪoð^wÁýÜdæ{Usýx¼ÅæÕRúîÄV½WMl5['íÌvÕÄV
l¤ÄBc×N¶rö^[?ëòyf6&8[ÃêlU¦T6æ;[·3x;[ÑÝât¶ÒG Ô^éÜË'wO¿lêA, ºj_dC!W:~òpb«Fb«?&%¶êY8k6[gSÓNlͼ;lM=$v¡ÄaÁ¥ý:z=»ß-/±ú3Ã¦Ú G¦@6IzD[ú\BÃNç1¤lGàXv·v?n MÆ
+5_Êúi!
+0Ý
+µ±bó(Z¥ËN@<öôx8WãipKeÖsë"0Ñ|;³ñ]ÆþzÞa·æj¢H¨g¶Ad©[ôµÙÖæE¶FϹ1Mí²ªÕüßÅO÷£ÂÑ0ÌBDð-Üøn ®&Þ¼EÛÜ֮˦Ô4ÇpÐcêм¤ÚO8)ã_ý¡tñrÕ£0W!d;&s¤%½¶ÀvÞ|øí@ÌÎOW^r_N±¿[~$ö¨ÆAõ,ÝÛh d$ÕeÚvæ½ûÜ{Ct'ÇA}¸úfG=ï3¸Ï5Ï4z<l-<N ÷7<ùmÜSÉû¨
]Pê0Ä5ùñÔ£[`¿èKQÆÂûÉeFcªchMk·ãÛñlzý®z%CGS̾>wüûŽ¹ ømë¿<=í£våJúcËÆU©yñÐsq¸Ýv¤4?øô¸ô«
+¾îy_×4vkóa;Âê×Õ6ÜÔ|ìdÍv|XõUöÊ]gÝ4®Ëÿbp ßlwù½xè#vËüï¥EîsÂJ:JqÏó6¡óõYF¹¿'UúÝ;| x¬CLç´ÔY¬è©½ï¸ç!&c¤7o_Rí,ú\éªzíñ¾áËÝ;ü}÷Þ\ûC³sAïþß3¿Ýt¼fzu0Ìõ?|¼|+WN:wd½ýÄé·7Ñ«¤>Û4°lv%3âZ¹g\È<Ü3.pmC_qÍ]ßaõ>Þ¦5?Ufoï ¸Ac^A=ûímÏþA)1¡¢dD¸É°]°.Ûü<%Çûüï_ü)³0^èZ/%r/BZ¹÷
+Of·Nu;ëzJõ¿Õ´·øy5í-»¬;Éç±ã¼û:¾uBãÑ«µ#ëì½ïÃFlØJ} â½"ÒíúÒ°°ÝóªK;]P2â¥uÅÏ»>{7X
+±×DÓºk´Åµ«U/òØÇçÉS´Ã×eM×
íÂ7í)a£zmM×GÅmêsÜ{×m?¯/ÑKå{¥ûM˵zT°å·®TýKªmcV}Ïö&@Ñß{þIºý¼?£Õy?æ:DÈhõEj»¨}·]-¿_´R%²Xrµ[ç5éHøþý½käìö:Üéõ:Õ÷GâÚˮӣ¿Vr¬ÀѱÕùþN°åÎ$Þ wËm7ñ¶һðáIÉÌLIBó5:øþý5ûìѳ[¢WfÛØ7RÀ¬§ÐgþPñêËÏ'v7.ïüå]^¹óÀݹª>J±q|õûWcÍÖ\~L¤ót15N¾|?Å
+ȶA@âP(³q¨a4-DÛdæB/&¦Í}ͤC¶k¯øE¦¹¦~ùYÿüç%K®mÆà¢.¨C<üòNüòfi|.W¶Ë1*£aR.kNÛJzúç/#9½Ìü´R«sêᣬrÿ=<}¸mÞÓæ½ÑÃsKç9s¹YÛ¥ûHÎúaçotÎÇÖ¿ðWm1ÓÄ÷/¯2l5Ã÷¸O?Lù{©Kl¹jíÄxÖõÛr½±¬CåØRux[?Í9vM_³ôÈ\ļÝå4FPÀ6º- ]écUæع^&³Þ8Þþ^õø-¯É!Å
+9'£×8íøuR ðÌbñVm+Ùª5pWÀm*ϨvõeR°3#ôðøz]MI
+W¼ë
'©þ5Ó^è¬JÜUæ¬÷ËƯo5¿M¥µï>ª`«ü@^Â)~+`úlV² -&qi&w/âi/U$°¢`·(Ìl]6tHÈûà!G.(BüÕǯI´UùCb[ΡÎU>5:Hãûì£;nÂÄ*õcAØÁW,I¿L¸o/H8 t^jrÕh©ÈàµúÖ:¤ï
̤¾µ!Øx>õø»è È®üXZ=K´"h¯ËVþ1ªÎ¡ÕÓA)Ñ¡0ÏÙ?ðÙÒ:
+ýøüí»÷3¿
+BL2v¼L8ÿ/ѱµ%j&ñ|9:ñjH^úá
,¨
+õ¨q
+E
+0ô_Ã`=K±¢ÀÁãêT8PÙBÄ_xoªE)AÀàBß
+ªËQ¥¾¡9ÿï¢òE3¥YE?HlABã¹
+^
+zB§óÄ
+kà
+Ê$¨Z**>æ< OjH"b+8IhÕ¦\O*¸×D6P:û¢B
´¥j}bÄ**»Ëj ²ÐÚä,U9ÜfXÂcTåºC¹Å¾Ú"_ÒÁCXE,Ûsê«ù)
+
a.ñhö
+ïO²qU·äw$Z-z[r6×ù¦HøX"£+4½no,a×±]Jaê,Ð+ ò)5ó¤t¯H at yÚR»pÁ
72âS©&]ÿê±½6#+Ħ!ê{3z¤èþ AÑF=$dV5!ñÞ·ÐïB^t·OÒÊIÛLEQ#Ëa_7[¤ôÌu1!É\õîC1a{äqíÿe¼Ê±cÉqà úeÎ8zwÚråN÷Èn[æüóO`#©ú겤D ØhÔ¤¯öÔøµ7÷6(7Ƚ
ÚNV4õB@ͳBÐÿÔõFxnRz$©+q¾6!
+Û¡<ç"þLa
+rLÏ©çzËÜ:lH1o©/wD`:;7âÞu
+g±aÅ3xn
+r3¤ÅÍzyM@[o%åÜú]d¬ôTM~B>é ëI"*SÕM1·# Ţ̩jAÓKbÏo
Ò1
+O»3Qº_lÚ¢¨úbsÖ^U$U-;eìQBNf_zðùѳÛ<i¶l3²æÐÐi^ϵ8GG!7ý«Ï´dûRx¿(ûê9ßß0¸ª?|yÚÏײ$çkåßtK׫¸Xº]çuÌZ}Ozk\< ¿Îk!q×y±íÙo<ùuI³ÓÑ»©S\Ed&ãÁ¬j«Ê[ßû(÷(
+¤ä)Y
0æç,NÚaD#ò
GÖ\¿4ꩺnñ¸>÷ë×vèHd>chSÌjÙÖ{Ô9XÅJàÿêG*e¥Ò¶çbLÔ²ÜÎIØu Wp»>y,ý¾ð1OjèL½kWë.Z#c¿aSdBë6ë*8öÔ<ÇùÊì$ìgÆ8Ö°7ÃÛ۸קFqBrrç³$Y5.iȺônc¶qøê9ËÑÓJaÿ$¿³çÂÚí áGºU$SßFRR##,¥ºh={|ù«pV¾ÙúÇÌRvK-ÕÛ[nâ¸xÿú÷㿽PÇ^ LÜlE
+~ænlÛe=ÕN`æqëûFeþÆcÚ
+c
+Do¬fòåJxþÈ
+iÉ+.êûK[È|u4äCêzz!ûiªú¡gÙoúö
+ïë@µòË»A
µR+xöUÖ×JÈZ>2õµ·b.[Î*·L&ïò(IÑ}ëz*=[ÒÌós6h+÷qè*sçÃçN¿ÚÖÖw÷ß~B÷ìÜå2UÙÆï¶f²Tö]×wθ-%¼ë¶äIcn_ÐÒº»îZ¡ {"P8|YÍã®Ýô[àü¥Å¢pÚVËa=Ât¶{±`ý½±mú^!ôÕl(!ÝÞ¼Ú%
+Wz2AIyÂ(oiZÌ:ËúaïiqtÂÆèP´E1àÌT®®`6-ð(ÎÈwøö]n,<¹¡ïÜEäCÅwÈT>îærh,9éÁoÞÝü|uNÒÖ-a0xV®E®NÒ®½kgêÚYi`-çÜS|ò9·»FÙá?©ãÍ8¼Ëøx'á®ú;|ìv?§vû¢Õöe!åvw/=ñËß.!ÕiëÁÿÝI¯þn,Õ}Ï:5Õ"äUáÁVt:xiæqR¹_lÓU®¬k«\³97?á³Í*/2
+úSÞ
+EÙ0í´©¡ýòò"7 Ånìåñ4¸¡Yã ·yC¶ªo`¬A ³fÙ§(ïÕærÎmb¶Z¤q÷T³E²ÑÅP}õøË4<¡)Á¾^êôî #Õ±ª.GUdJdØÇ»¬8óµ.â¬K¸m=tÅÌÉæë÷¾[Ô¯$ÇòivF
+) r=w¬ÿ¶Á4výrÆìþ©êyͳ³É}ÌsAWëOÇÎdg´¥m§øö©g4Þ-ä¼ëºN
+Ï*»?¹ý_ïÄSÀb3nE]±0Î xsi[¦wÓ¡¨±eÛZi#óQßÈ®¹Ñ¼¤Kx²«ú289Ã>c®K7^!åö©ÃÖV];̵(C3¶OF£¾Ô×i(Õ[3gð
+XZ¹¢´ÌãÇíѧô[¹:3W"µ«ðÙy<2¢Q-\É|YXäði¾¾a¦£M£içK û±ÜùF"×kv t¥ Ç')% _ k¨âï͸W ³g,
+hfñ3ëDi²èYMoÂxAfUÄáÜòã]F]}9x˾XÊÄ¿}LþLtÿoÅ¡Ôü +\|w ¸:&äÀÚÒ' [Ï.¦Ò¶àùÒt4¥-}¾Yíe)}äÈ")-ö"@(wð=Éîp±=%ISI ¨«ÑãÖûIL<ƺe.÷¥Ê%ÖAªÎº4Îó¡â·y½Rhe;xÄ#wßZãϪpÜ1MÞ%»ÀJÇ"1µx¼I,f©ÔEBQgdkÏGt\´Yuüí¦[,:c^¸!ÁÞÛq"¬^
±í
+*¡ã+Nfâç>°9² Ñ+ÒèàëÆZñg&Nä^IvÃ'ïв,9úÜsÒ}ëª{ü)îb-åÆhTY+úNáÂ
+&_éKpï;¨ùx
+÷¸Ü~Kîîµ"¼±ÊVb¼ÀZçÿ/wä8$^
G¨ÿǦK²±Ü=ÿâ!«§ÉÅ¥%Usº«
+@"ÚRkib÷!u÷Bñ3á̺
+óÐÄÁ½/æâ{Âïû$@2ê(løÇD¯Á©_aª
+G2nÉ-_
+YX-q¬J£xkÙ@K½*½Í¸ß¬²À¥+pwâíÏå¯Ú³A<S5|95c*9pÖ/³>dzI+
+ήǣwhº¼Vi¶r6Ø9AJ¨wbu)ÅL¿Çѵ`ÙÒU¦iåÑ<ë(¶Ï³ÙvÆtdÔ¤Ëó{Åu×bõÆïKe+÷låÃ/Ö#bæâM5ÙÆÔt7Ã${L½)¬®®gKºõÂcPúïi³¾
Qäh>Ø=
+ýÓðk7ñßúÎa^fȪMÉi0_Ñ°²ðàVåÛw{û©ì¤v¬êJQW´EäzdAT£¥à{4òZýRÛ¿hOÑö¦Î¿É8:ò8ÂÔ/¤¤GyNÙU.¸¹pèY(]:NnrN'8Õ¼ Õéì¿Cnɼ2ÍB8ï>g¡
TCM¿û}úXOñ¨DÛwc
+ZÏ>|}¹±rS%+J£È9&gPôïÒ`Á=%¡¸ñzaln©¹PvñÉVðf×AzäèøLÑ=´|Ñë$4Aö:T%K#re
+@¬ª6}Aï«LyÞ×Ô9íP ³Äj¸ÏÉ$P/OÑ¢zÆ1ä¾Åj)µ[ÏI«/Í&sЮ»°Íb-¸_dªaF\Bì¬[Àoa})LÿwìàaP8×éDc7ºu8gÂ3µMÁ^1yS¹l;mIÏ|ªrTé¸à¤±!¢µrÑ,ûrÁxÜúÌÉÍÞ·]gsû/bLqØTº?øP¾j¶ÝæmÞOþU´XºÚÏ߯ø0? µÓzÜGEÔÌ©ÝÖt8bXÔH¡ð«*f8`93íÉ[dGÜÈ\|ØÎt$¡ÜîgѼU"ÊîðR9ï¬vIBÖi¡¹w#2ý¹âSù*'"æDT¥äwÃ
(¹rI¢²
¥¡¸
+Û\¶Ù2=cÙ©B¢SîTÃ)ÙÌ«ûM.¹ßIÉNY,kpǶ²$ÈÃðò<³¢ÛñôGnÅ×üWJçý|Fwí»]ô¦VãöÍߺYjãjÀ»-@kÜÇNÔܤÏ[ï ?.;|éW¤6¤|cN¦^©nø\á\
+¹V&3R /z<XsâÉuî³T)»äè(\åhé}°ÿy¦¶F_=+S%õqZnËÕoØ.¶rüÆAT7]L¬ç<¾nÂr³k?Ö°Þ|Ö«_Z¼b¬6Ýg-Ö¡L§Z«FÛMÖa-ñ¹%ä_Áùî3WwNÿ¢«
+÷=ÿ¤¯m¬¨ FeÆ)+fÅ véoüÄÆH*.>J¼bwzi¡a8Fqgõb
+A¬ÈMÙ'Uj¦6¤¥Î·,ÇÉ(c¬HRMmÄÛo
qwÒͬt]Z|Ey²¤·^ú.ôÈìQßEjH.V:©ÊÉ4Ò(isß-qÃébïðéè-dñÃZÙ,ç¹OL|óW$sÞùÀV"SA}X«¤iÈó
È;MJÓV57{mBcËóýÔíöK6Ó)ؽOâHs;±¶Ìá`ÜñöGäy¸Mhjç?I=¨ô ¦;ìIoî<¡Wã$X6Q:ÚE6ínGéV´¢écRçBvw³>ÞYw±+ûbV¾\±ßy¦æ.ºÿ3¥¬ðb}FVNeûåcÔUd¿Á9aY'-ñÜËri
+×Fúð²£ËB!s2ï¾Ozr匿ÑysB
tº^JÙïkdrkMu(Á ³¬)t,cÎV|Äñhz>ÒjÓÍVkyøKT¤½±!a5âoSQpS*Ï;«Ý]Y× þëT=S
+gÐ|¢á«âëÖä &©«²ÞHn]¶RõZV³í-¥oJ²×(Q<ê¿?öÓqVo¬Ý?lovÛ".¥íeD""âj¯wë=
ò¨â¿A¦*Gȸ·zý¦up+¥ãë@b *èS$ð°ûk»\ÿy _á@ú@÷[ÝúvÆÐpqlûóÈrçÅ'ÔIÉ:¨U9éì ËOIuñS:à2é;% û¸ÓëOÙTÐxtüt©¡wu Þ^WØðrMu,°dÐU×ÙgУ>&ß7m|{#ÍøçÞêõ+UG\<çÐÔD®s|íÛÇ_?r¡ÎZçuÂÎj×û£¤«üÞÎ
+´÷cLô cÌÙf¹fë#QR÷Vß¹±öyÈÝÂhZ¹¸=Ú?ÎE5C%(¨tº]þ±Ó+§íje¿Û>&¹º&wÓ¼s;f$ÇDäÎOñÀÜn¢*Ò¼Ü[}%¸'Uü9Wů§Ik¯è?Q#%ºõ*óó³·x¶&¿çÙ {ë7cÆoèzf³+Ù@wÂvrA×N0ûñ±ïNà=\BMó;ô5÷UÉèGîÐ#ß\§>
+NuݤËƽ¤ËÞ®5§L¹¼2bÊÇô×AóQ{ââ%0Ô.cî9Z Yà>;È|NÖØ·rÏG0ä9}£DÂJI4¦cÕ®5SõWlwNC/à*gL¾mMzg-¿3?àWvßgÂÏÝç±1ó]kÑ×5éÒȨ!&HÕ~ôÀÐ*¬ù´¤ ¸Äµ2%_Rjø>Õô|½ëð£7Ø~Yc©aÅZu^è9ÊÓhêKõ'D~ÚG%ºIÇاâõLªZUç·)Ýd¼k}¯uJ)ÍCºJÛHά
+ TÕB*'¶
¹¦'«Ýg¿Í¹hr¨¬É1"ª iÔ¨¨òç%'ø@ã=£Scó¤ö}·qêÚ}ürÉPk¸
hjì¨íoÊéUcf n¾8Ö(KgÈ~/t }ó^å-úD6§
+0©¿pi%õ÷mËúw] UÚ¥ñÝT)×JXÒ |C[I¥J[Ê©Jó""iìº3ÓY
+0¤¸
+kmtA§¦I²T;Ü1¦,Ë/ØþC¬iÞ%÷ ÏÝpG}÷Æ7G3Þ±ªæVNÆúíBs)+ð L~ura-3ðsmáî+ ¿6×$~LðÝmÙƯ.<ÏvDzlÃä>ðkÃgÌ6Â×q
+à3JgIt8é=áCäfyAoôÖÅ<ó7ÃC `P 0/P|;w¡[l(tÊ O/kb¥NäSi&¸ª¾KZ"9ªÅ?QëÀ¶d{
+<¬¶d÷µxÙËh¨1µHxì¡·½±H$g8`ï»?gõy®!Ò¯p|5uÁn-à¹ð2C¡åÐÁã`Y¥z:²åK¸+Úñ8>%±/Æ=Àovͽ*ù`ªF)·À¶X6ºTÚNÁÁÉd2§ VÄÇÄÔNX² W4¼TG£¾PÇ1Ô±4mµU#7?¾Ë:$Ö4Ê
+îQìà§8º ®êÛù£µ±ººW^sÞû¨/Ȥë»dºôÔÄk½mà5ìjµ_'0áM
+Ø{ãË, ð¥@¯åKåòì
+ìi¹hMù {#.xe]¢'O1¾×zEï)Úír
+FLé½ÜºOLbDõ³pQãXRºóô5ÊÎ
+/æ@¼¼wV}ÅùáÐwg+*³I§Sr¢6C#Äæ!c"ÌZ·ÏÓÛéÎ!
+g?·èçyH¨
+Ðe*-~³ïUkhNR(õ9þB-N¾(0IîýWþݺ(j9(Àæ`:ÝsT$ Kùòs5ÁwíR$+DaûhD(|$VØlµ9l}
O̽¤Î¬+¹O{¿¨s¬>£A»Xk-ê4ØÊéÞ·9kB=ôûªOäkð6 ¥kí>;=:å?ßy¢7H]³J¼qè:¯µkßtS¹)ø|FýúWÖÀ×íæ3îÃ2ûÕµñH½N^¾Ï¶Ûü¦æÛüîK¥vÀN!½ |\I{¬ù³X#©kþäÏEó(ã{Æ=wµëî;r;Âéx]w"r°ßÚ®Ý;êæxÇÚöé¾ï
LÀú7¥ÂFófÒµ¦H¬mA¹ÃèêÏ ÃACý/ÅïIÈ>þ÷ãîPv³8W;ß×bþ_wEA6\gac±ûÝ÷_Ýüve®®pU_ظá|Gþxdóô7ð\YÆ¢ù2î[>¶|%w}ù¨_ó÷íó¯
+endstream
+endobj
+84 0 obj 22495
+endobj
+85 0 obj<</Length 84 0 R/Filter[/FlateDecode]>>stream
+HWÛÇ
+üýy1`?h at 6ûúh/ü`ã¼Ö"ÃÅØM È1ò÷©"»ç\r
+O_HV±È~£eïVÇm·^Ûöp÷ÉØD¶¼bÓ÷4z§lnûeãÝ~â¾7+yKeÖÊöL[ÛtzÕؤf[ªûÉnK7l³´§Ú2em4Y©yS#Ä]Òóö>Åêun{~¶ÈèaÒ}¦[½¹î9ÕÎÃE{]˪!ØZÅæii¯©ò¦i¸ ÿe<é±6æSÞ{ÊÉMHîÄ9léÚ2i©v¸*Yi«¢õHs¶DI>Rab}/qÖ
+ÚJMeåÕzkÜL¦ïCyiþ&䣶éØ{Y]u§ÚÒÚ[s.îKëcÙ0#
+sRx¯¨pÐ.=²×þéHþ±Q'
VüDh5(²{
+ys£Åa`HdN/ÃÉSD~$o
+Y¢M$2Zkë§HrÏÝ\ǪØVvËÚ/ANÕàSBü4k«¨³e4i`Ù5K½$ºg&¾Ó'2((£FZj~ÎÄAÐaù¨íóûoÖ1ª£dþ+ÉÜÇ"4plè«8l*À¸R®[æ©â¦FÔC¨²l`ìF²ð3}â9©rii¥mp^GñÐR8öì&¼
+|ÁrÆoæ xܪHÛ)/´õ:t#õ;í¹D
+U¸®ô*¹ß&Æo
+Ø}(
+©À±ï#Ï
Y¢Â@ÉPÊ<±7að¼Äv^@]- *J,áh7ñ¼P'À¡|9©Ë@Ó'Ó°¹&ºó@ô:ÿOÿ§°¡Äù#
+Ù=YµcT..OSë[
NJAbõD6Ll*è®þm
+ë|#!ó´¡íÖÀv¤þvñ>ÕJ
+¥ÙJt`¤¿FÖ¸Àù+8äÊ dರÔj6õúÓ¢Iòüç57ÀùÚÌÓÂBuN.ýZÑÎ&
íÜÓÈtÞBè±ôÄT IÎbf¹ó»@ó>0²6bnÕYÕ?-[_(fÎÙRhD #ϵ#÷!w5©#íý«#eÔ(È:ʲ**&6[(ÜæþJ ($]7ê}>LÖ
+Ø%ö7v]vøÌIJ1iôÒ¬:VèûÄ£¢ë¹¹\r`yÖ(°F¼õq%åçjË©ÅYä\þkîSø®ÖPÒ$n>M8ß
+{oWXÎ7aë¦
M_8©Ç2A¥òw4Î'kâ9lÜÏøR*ÆÄÌãI½Â,D£üc<bíAÌ/O¹ ±öI_岺zéÖ¸îcjòîÆ:bhk@}æ1VdN¼p95ï± &bF¨|ø¡®á8ß
+á`aaNgÓ%Ùt8ïøH4¼/y^ÎfbP¢¢¼3³2×|¿/ñ'ë
óÃÇlçèbü¦ ßÏ!¡wÂã
+O3q4;.{Y
+Å3t¾©0Á!ÏȬfÂU¡A8[U)ÙOÊÓ[)¤3øÌ ÅDÐ++ø<«ðÓ%̼×åÜ!zÈpÌ*ôÇ |G<Æ®êD,âÓ5àOPøù84 %R).Ú¸Ü,;©FñØ
+aÀ;®¡8ôøo§³EÄÌâ.h«1ªË5XóF
è7.À=¢â¼3Áò¾
+·Ûd0ÎBÂ y,
+ò)I,W^ämhÐéYÃ÷16¯¥´+®êí@Ê}RóÙcL,©ØÛ8«ò
+§jûÕñ²yH¨Ü× û"B>ÔN!ôsæ4ìkgA¨ ÊÆ8AûWN/EèøÀÅöDɤ¡SÁ©\Ñân°:,-ÚLN±úYO,ô_ïgÁ±ù
+°
+/(9&B
+SêV>öè<|»Z"4OÓÇ9éwǯùØ(*i\ÎýüÈÔ1ë°¥¼öfs
ÂÓí:ú¨Ug^WZû|ô¤õª§Ç.³à{gÏr[ë4j64à¹5[ç²qñ¬ª<mDÿ¸\e©¬I¢¬ã9k¯:n$ `1Å*×ðÙ$w'[[;]f:åäÆuÚNï®ÿnCÚgü=-$ðìjrNÓD4r2®MØYÏcëÄùi·.¿! Û§m¯¿õ¯/ï>ùüwöæË·_÷ñã»/ü.ü~óÕß_¾þðþåãû_½
+óï~|ÿrþÃÝWÿà/=~ùâÃÏÿüë:çÓo^^¾{~÷êñÙlãïë_î~Æ/Høúßøø=þó7~ÙòöíÏí-×þé6íÿ¶^1ç°JNæKsÁ¦|<pËvÚþâ^ýñîTÖ9¶ëææCÚ¨nSLCaËxîÐfiÔhX ¬%æ®Ûw=Üýà?pÿºmÓ hIÃÏsqÎ=
ú³2Ãù Msèÿ±¶ ÝÑB0.ïøîµ>féöi.Íbµ4]ðäMwïgà¨aàòÕe
+íËÖU¡aÆsÌöEÌ4Â0z£¿Üh]»F3ôhà-ysqÙà;í¦'×®N^®åjæÊr
+=zºÑo±æFd¯®A>§k3ë~j×4uÓd¾HîÇê<
+¾hB:¦cíß×þïªÙñü&O°ïð¿ %üÙ¶ÉÂ4±B(ÚOíB¢·§º«Ú³4Zi¦ÖîíöfôaT`³F0&8KÛ£bûÚîÿb%¬ÍàÎü¬ÑgÛßsµ¥^Gä4O÷±"'4.pÄf"sgÅ¡ð©9¦VF0
+ÆÚ|E7Rã``ÎhgÔWÞ
+2ßñÏ$=÷úÁøïÅ ØE¸©j;Îεxc«´ñQԷ⣶·J! ² Vï0´¢ªÅ¤Õ/Ïe)¸g-[k;ø'053V¢mó²f/jE6»Óê¦ ]äo;ñ)
+/_3«ùô$`wÚÙe»lÓZ;&I¿L·î§¼R{lû«
+ÀZö<sÿø/Wüv÷#tz5.v>jÞcQ4§óZISÆ8Ë%®.øÚ(éE8M/£õ£Þúd
+X{h×á
+×@_çó«pá`[ì(¹î>e\Û×)*- L:«÷¤`±z/%dÅK8©=lMíÊÛ
+õTP×o~ÚJóØ5ÓeÎ^Ökhÿsûið` ºÂ6/íg»£Þq¹¥C½xÉâ)Ëkë9Z;WÑ·¬ @1-6^
+þðÐÞ¸|ÄeÃODÜhÅ'ÁG®µÐzh¸æ©ªð`SHúÉ/A{ÏYî#nC½HRðþ" ³E2ÖBUûÍùàÊ"ËS_|Èió£¡c"AÍHx¬²PÓ /ûä¹.!
+Øi²*w»ï&¿Á«~£txó3m¦$OËÁ¡ÆLñÛÎBëLï:@Ó wBTGwKC}HçHY¿Ò|`à;U-쳪¾æÍRÔ©pÉ{~ç¹Ýl
+&C/`«]w¸E/Eæ7% jOk¸)°ëöV²°¶!É·ïÁ¦²ÒaÕÄûZ¾\ùb4tç¢Óa,Õd×Ö][ï·lÕµjþb
+Ó¤»à¥½ xL<®Fh©x
+ .#ó¬ZÛ/Ê_,
+
ÿé_Ó)@Ò9¡)n>¤Ñ1dÍs!@XÇ®µs×4Zr¦ë^q;fúsQÝ©ÑÒ
+þì«çç¯?|ûÍ£ÚçoÊãü{÷ãâ§<ê£ÄÏ»ã_ã
+`ÿ\+ÙQZ7ÐÖn7À.-r\P [²ÐBÓv'(Ó÷!§ü®xháaW«?ñÛ{áÞËd£2\x+èè\c`
+6Ãz®Ýa|peÚNFÕºÅÍpó
+£íõqÖ¸»åÄ
+}ö¦1˯6ÕëË-§Í½àã£GÛ:h)<TbÍÅc?`TÚKÒ´6§ÅZUKQ µÜxøYtÓèD*º+ö^ããî|îv£>÷°ßJK19w£bAY¸P
+´ëäÝy¡r©nônhjsík,ÂSGkÉjmy üLsG¬®K®÷¦ùµM>¨Ï)ÙêÍdÔþÃzµíØuÁ/8/lʺt¯<Ù A KEÖØf"
+cEù{ª»«÷9öx¢(¦¼NïµúR]å`^°/kÂJ½
+x;½{Á³¥FÁµk©·uÄݱë£úyvÄ.1MÙO°[³¶&ÿ_@%*f¼ìaÖ±ª dϱw,pìîC¦Æ(²PÏ¡´;ÖèwåÁÃúùãbðY"Ô6y«cÇPfGÀG7V÷¸¸ÉÓ
+b:ßD
+Yü!
+ûÁ»îñüë.® /9{~ç74¥È1¢èUsóJ
+ü³B @ÔÐÒØw\îÅ4YÄ|ôçÊЯÞúC¨bÕÐß·TJâ!Z¸JòhlÙ)oóÞ©£¶¢X;ðli|¶íóXq¶ûG¡6<µI~l»Ø4°ø2E"Ï!ñ;/Q
+{×
+Ö«ÎÈÁgìdôù©A©{gð@9OQ%8ÀáÁæ`æ
+E`Qg¼A- ~U
gªr´pßLïZÒKå-!ÚqçÞÜ«T¸
+m+^MYfûbAØK at 9Èx¸¹kÁÉ¡Û¼ÙÚ`
+)^;LÔmvë](s
+Ãæ2GÝݹ8Þ2@R
+ ûç/ë4,xWI0ø¶eå¤Tbs×àÓ_äíþ6°¾½ù
+xÃßò;È R.#ß3öÂã"<ã«$(°M{QIx(á)*ig
_°¤ÏU·UäZM=¶8[bþ×ÞAêâ³¹ºd1ÓbÛPªYFÀÿ±@¾V(ä. À-ÀjX]/Á
+º1_¶ïH¥Ï¡Ø0Qùàþ5'1S
+cJvCW-T#µ2.á6Ö_âs(ÖOôR Ë#@©ìoE 'Q¾Z'gÍnÙYIN2ÂÌ¡þój<Ø¢þô¹XúíÕ>½xyz÷7ü©ðÆSñÞýråÿùp5¿?üæÕÖ¿¿ûðúþóÿõ÷ïï|ýñÇOw_À/ÞÞݽ¿ýøáÔ_"ä+üûîç«Ïø§êåÇþ?üÐÏ'9ýéô÷Ó;ûýÕ¹!f72âI'èõ(ê¹öúâ÷Oaǯïx©?_Å¥êé?îeÐøÅ@ÏTÐÆYË`¨¼°8ÆÕ±âm+H'8¢à×Æ1¸ÕqÛÜ<ÛÏ£UͨU&?åâÒNWߢ0|Î&þ¤ñ¬Ä@øÉ©Ñíë@Z´¸czMXc )ͦMÆÝßf²>¨
!}QØ-ÇçÃ1ÕqÅÜ`ĵû$<D ÿ²D9ëjXÐöûÙÛ^
+IfUBÊñZHé ¼Oo6¶¨ÞBcóloYtxÙÐÉ
+^ÌÂÌ縫òìì»'ØÝu 9RIÅ~28´àQÜÏx¾CoÔý£¹kuqv
+Ö`R»
+Ïîpü
+
+S?ÖÉLÒ¨<QN tLÞm°n at Gsû?«½ºÜ {pb>z×Òmá2ûH:~ÜÒ]Ã:Å'
+,bÑÅ
ï¤0§có>°@;/Àú¼v«Én=õV{.añßÆ×¥í¾¾<ØÑ ]w©031=A Ó±8
+8e¦#6XõÛe¢füBËT`wÖkÐFÒ8ð4¨\¶²KÁF0æFdÞµêðR_»ñè\ºëfÂ\
IhÚî÷½Ê§
b¾~}[ L¤ÚAI% ¡Xb
+hÙ½êµ<9à:úñbô`2
+X4°>s90èsbÚ¹Uo@ÆZR÷ ¯h7+YùòÁÒsc4ÕÆ<Äd²AÝÜyý
+Ú¥~!´T8 öäþ,¯ÙUº±;3@Úë é©3¡aãI%Y<wåBÁYT>ïG~WLÆ£Ê*G0c@»]'Iª½GÍbOµ/íh¶§Û¨Wýû¨ÚÇÐÙ^7k8ÿ..éôm¼9ï!kCûÁ8«ïìTµ»fPO)ý/#=vY¯uNm;¨ùͼæu«·~§Ô+`txÞUYþ
+
+xav
+PæyHX&9
J¤ÞÀãÂýËZ^Û"¹¶ýÊx!|05º@X¿v.Ä:ºì<»-wZÔüãË6]
+tkggÕ|C-ðøZÚ¶nïÔfè~¾ÉÛÀô1h#¥Õn·Tª/n3QnuÂ`k&ÐÇßÙ_ªbV2PÕùøa÷¹ìÒuªÕ»fÒj¿§pxdtþqËU¦Ý3]ØpÕUÁ¤Ó8NLµÒÖ×ô}U\!sfV½@&w¹ÃØ|SeÖÏF`.y
÷NXõKËAS]-Ùüq¿;dµg÷)8WÃ;oK~¾ý:Yo*
+HPÜÙRÕó?^ððÂejÇx¶8O0ÌÆ%¢uM0{/À£0ü"¢çx÷u&I_»±ï~Ña«5g0Ö½è°9iÙÅ
+_tÚýyÙagkQhø»¬ÿó:erʶ:Uª¡
+cN jeÒÃæ,z,rSuxVÈH# v¸CÜg4Þ¹Ïiw£Ñ]³(ühKéÚ8¨ç¥¨NCÕnOØF ö±9¥ªg¿kR/Éb_úöA°ò*Ïò¦VöЯ) 2yvÂ>[<&q¿SâÁ¦>oIüh©ãQ5¾ïÝ,¬Ë¨weX%§Â©N«6¬? $S[MDà5°¯Ì
+÷ {Í è8âÞF
Ê:Ú&În´AîÞyk;¥Ñ×¹Æ~3
bÉÚP¾ÅvQ<£½ð
+äIs$yÀÉâ¹c£UbÝ´ºsÉäXD½HZù¸Ì¡þðU¥°Ö©Ó¶EÐï¡7
+iâ
ÞݾÌO³½ÚîïFß'6¸µ*¬ßG7ã?0²Çí09>£Q»à.´d-È´+`
+ëHÇd
ÝïS²ÓñJÑpmc
+¹`oɤâÎvyáÚc{Ñu^ØEàjPÖ.붴
+°®Iyçí¥]^8ÖÆÀÓñÝfðÏÕ6ÌwÀ$Uí`o<kYºNãI«·/®Kn³Új'5ñØ´ä6¸a^LLõ0[+¬IKÆ;¿ïrßÙ®)£müáÀf1à=tkáSp¶¡ÃãƾÕhø
+®æc÷Ârs8W£ÃÉzÜH©sÜ{ LÖçcär/ì*.H£µQzõtÖàÙ#Û#eÉsÅi=m'!Á)_Ø}¿Á·¸Bì(øä¬ÏØFYq
+OP«»`
~Ám
+ûûmòÇõjt/·\Ýc;î0ø²} fQÈ6wpØð],È_ññú:&d`eà²ÓP[SÓp-·:~ZL9ëXkGØЬÇÉÓ¤;ÃfòÀø|Ëæû g É[1Üð§Ðÿ^åX²í6l;ðDQCÜ?ìØpÜ¡÷oPt«gguPºÅ ãSS}%X['Ì6jíÃ>2FãÇ&E¡Î*G÷þt@:+¹íÜ=? ¬'è9êàÙßô¾xòèáwð#hÃ@i:;û¦{üôàqíe¹Æ(à:e²àpdò¤¯±¯k½º6z«2°7ÁYFýÓÛ2:©<Ý·ê=`/-ÇU¹M#ȶpí±6Ò
+£R÷ÞbiäÞt¼Z<à¡èA_Çåĸ¬;é¡åê/xeMPbC>ö.|íWhMßàrN8Ò§14f-Ó5êõ
+5® ó®ÆåºóY ·µN±zH°÷Öb²÷çlQÂò' ÖndbÎ9gSáåFô§/Õó¥cnñì3cr{'X:îL«±7¡rúÛ¿ÿÒÙg"Ùí®ÔµÇê~kÙÌ\Ç)`1- 9P}É$H
+
+£ÅNÐM9A³Ìû
+á̬d¿8ëU0Å`XõÁ§ Èóû<Ý«le¥»Vgú
+Ò¿j!âr?:È>óüàóRkö[é>Â-¡à:ê÷óѦØ'x-?2©Èq68ðCV«¸
+i½ðÜ&K#/Dù^/Ökζß
+Îçô~+ë[mÜÊÚ¹óJbÉöp7c^¿ÎN¨¯[c6}_Ç3ÛDUëô¾]
+FxßfÀ¤¼È
+LYýæAº¶Kì«?oþÚëHôLî±/ñ¶1ÜæÝ Ú/ðá#"ò¶\ìÍ]>/з^QËè×îWw9UÀ$¿ÔJ} ³·õTjFv#Ø«ÄrÉØ:CÊ#@f êH ô:Æc n6¶¯¢³[^R]þ|ÂS×Ú00°Ò¨¬ÛUcU0e)×þ<±Z
+°8;¦[+Kê¯¼ß K¤Ä,]~^SP Q¾®Æ5Wªµ¨ÅåñOÐQÌÍளx¤ |K®ê»_Ó
+;õÁñÄòýå z,_£7RþEpÀ½ÎÿãÎÚüÓê}q <ûÇþªo³öcí`¬ì\ÄÙ4J÷×ÚbÂ3í¬¶N÷9;ïÝQës]eóON1çìÕ
+ôÖéUãn~[ä%0þâÁC-"*é°Qb2ñÐÒÑû´Û$`¼tíªÆ¯®³Û/ ãÌ=`D?WZOcïÍ£µikä
0J^é9Êõý
BRËÂ1PDz'ÁYÕå^u÷U¢{zγ¹8Ì«Øzk©Å>Ynd¯"OjmëÞÈ®
+á%³I1²>Ç5i/h&(Ê k µùm$Åe&±$¸öYÛ¾PÕ,Y°×n³zi<øô|oDD^ðÌ æï?)Jâ½)³ÖAbR<Íyl®aÐmÄ£X/!³ÛKÂD-L4@£ë®OÞbwËÌöE/Ùµ6îõw(ãì´t ÈJ
a¦ß¿¦û´Ym+Ú+ë=°é*Íz¿Öºú¸éä¸ (Ýu=XE.*ÆÀ).ÉtÆi¦dPþ ¢ÖµJ
+ÉbW.¬Ì`o9)ÄìLh}=õn ¶oµ2
+»6h ·êlwñ7L©?J$B~U½S³FY$YÓÐÏ$~òþ/ÛUeGîRèz¤f{÷?O"ÀHûõÂ^ õXÉî8Ê)
+x·ËÄ[kO¤Älx|©
+SÅdÎÊ"+`bBò¬£Óg1Ä+I§Å =åâî[í}ÆâÅæÕÐÞjÕ¡ôk[mdÏB
+®éó;MæKfë×ÅG§ÚàyÁ|êÝû`Ië1ÁË{*í-Éò«×á¯#[¤'õ+°}QåÜR¼u0£bzJ°×Üú]½qÂî8;5ÝËÁ$ÝÙüªº¸Ï
+ ³`°ÿ;¾Iheø±Òz¦7zË^õSñkSYèK¦ÀÃ_ývúÈ6,(¢O}úëTÅ[ÂTIÁ* ó°(ã÷8-k°÷:Kà¶w-c#'D;é¹\ôäiY«¸F¿È_åL?ä {t^þò ?ÖdÅlä,{dW̳úýÓò[$
³ÒÀC× !XßÑ8,©6CDæ 4³Îõ_B¯\îG/8·ó÷ZÇ"·8uÚD^ó±6ë
~ÈÊÆtæZ
+|±`z9>wÃ6PXPþüQdú;t/UÖi|Á!JuÂÖJyª«ÿò×PÖW¥iÝ©
+= çK^
+÷ª`ZÀmeáÙx+Ï&Aëój½~}v«/~Ís»ùþëBîïãÅ«÷0¾Ô-ú>õ´EÝ+··C0WqñHÏw¹Ûw¥*ö´1+½íV_µ&-ãµ¥Çî<ʵkÏ*Ò`
+>»ÿêZîs×Ï}{ªnüëÛ@`¾Ú¯v{?6AÛäܶÖk"ûe^¼(
¥môvçë½Ê
+Ð5ÊËr´Ãºu¼Ír¨àymlGEYÅÿj
+tÆÂ~?_³ÞÕsIÇ]Ã&8"3Á»Þe¢&èvæÌ"ªÅN
+¸Ô|Ê6Nv)¨×}L0Ãm¡^z×S Ǧ<³83ÔܯÃþ¶MÜm¦çÏ«cb«=õغ_ÛûÕÛØhäþTUT¡÷ÝCkâ"À{¼©ÁÏ"£}Ðs#`=éô5Ç]
+Z-êç¿®æ¿2w;¹Ò Ö¾´·ÎÔjCNÌÅÖº©ãª)k"ØC]ø(UãZ6JÍóå °]m$NIi<GÔaó謥oQñÄîêN«FDöéì0Õ̸=NLqûÇ4ÇÙ~ØÉ=Ô-K¶'À³ë]cðdCqë4ñÜ)öß
ñ½%¼<Zí¾ï Ö'ùĵNÜþX*nh$nL£àìeÀ-økvèÚkÇ5dq»y±ò´Aéó
+²nf|åÚ UÏAR=4 êéêd_µñV´Â_¶tg
+±xAL´}Ë{¼
+æNíû YMZµödò;z7mÙH:¾ªËêlçm ð ±µ~/
Üóuí;ÆùVã>É.ow}3.X I=kLHÔcq6äÜ-áý=§,Ç6×æÅvºvøÉúZ2rûdÜV.L$ñà>îÀ¤Ç6A'¥ÝÐÖì]ÇGãYÙ.MzU¡'``¢ ×ï!áþßÜR2CòâÝ.*äÃÒeû--sï©[iWÕtÙ[d_9\èL0Ås¢¬
+ØOy
7ýòúÉ\Qü¼µÎ>à1©íoÇüþ,é{ñì·×Ðx`×àØOiÚÂ:j62é>KKðeyßûÙ@ã(CtnûQ8ú^É°þ°@EýL& &
+Ý^× °7
¢ó'´J:Uí±+«¯ýðê1Ø<kÖU3:ÅFbxÛ=ß÷fÅm¦¼ÅÎ
+c]!>Ë.LsÕeàÚ{ï²/Âôº3éÝz
+C(%ña`±&ùrÁÀ Zq©Éa´6Êú)ºÞoåÅ·ØÄ)9×>]álø9Ey´õTÎí7#ú£ÏÙí'ü¦ªBJ`PÓuÒ}UIVùlALP°ó%èX"ájÂC=ÄDYaÁ¦m½íÿÖ`iJ°K´·¯±ýòZ>ÛÏdiÄ ð¬úSÃGÞ>jíx[X
?/vcê2H¤·Mª¡öÁ¹ýÛ{ûÕÓ
+"(¶ÿØYÇ'Sõý'ÁD
+¥+El}æmÕÜ{MP¥YöÐªíª¸YÚ¹üt}´á\Ae«3Úð¥a;ÍöËöõû.®z-¿MxëmSÃq.QýxM2UûȺ@|öfºØIu¹åB´øZ¸x,ÿ`ªdRúü!FbDp¸¾ÍïæØzP71Í
+=¾é!«þðtÛR¥ À_½ØGhRÉçpdú1iGÏ¿T¾$P at 3ïE~jÖÙ+×1üÂZx¤HëãÔµÔó¥±ÇswçOýÀýèvçùªP21BÑõ¬sãèÖ:V¿¶6ßp½Ï*ÙäÜøJéõSÅHÂàÔO=ÌR<go7ýXâvÊ-ê5D«öµAz,ThûÚ°'âZ>sÛK%´³u³/T
+z¹
+.)[UÆG©fB{%µå ¨ú\sxÃ~ºÞjB>êQ£sç.©^4{Êõx««¯
+J°^ðh6Å8J·5©Dßd6Tàj[V/¸EØ\å5Ͷ¼ü< ¥§Íúay6HWØZ¢¸¦Itî«ÅKÉ¥Ô*Q!EÊâÙBß9µ¥ïp Ì;.}yÛ×È·3'8Îóq(ÏtÀÛ.}n·q:·ÝÁ³Ï"d>A(ñ©áì_xÅ!D at viA 2LikÖQalãºqJó »ØÜ<9þS9H×Ρl8!ÕôºwçnF!Â#ÇBú=c/Su¸MÄ à79§¹¾wÍ(tÞ÷=xZD|Ò=âsvWAÈmN~¬K~¥7O^AIß°ò
+&ìH?âlO÷¹hi²,¬%nMsÁ-ðò+ÖøÎóc<{K7[;ߺÍ*Aà¶Nå
+óàYÐôV&@%Xß
+ü^öõnp_ï2¹"ü®á¤Ñ½¨$æ*Áô»$/¤¢2¹b!Øo´+.]1¸ÖPݯï
+Á{!|GÿX
+sû#<Ræ!Hü{~kíù
+Î_1Wúá[øù¬\ý/ÙÓõ[-¦Ë³öû¦;ÒÏ]
+OÊ ô° WàØäãnû
+0±Ú
Ä-f¶«O%èÅhW1'µÕc£ì 6o5!e®(7+ÁJ!pe =·óÕ¶ò¶[;CÚgèaG.!dRZµWÍåð<[,i¡×38lñd³fSå´²U¼Õ øyA=õUfïõD°fÑ£ÅàíeöñJ at 9üô¸¯ªXàJ¤6zyEôí&Ñ?µ;®vÿ§å1{]yËóJ§G'·ØkØUÞÝdcÙÑ}e9o:öqÉÈÜ
'aå\?-Kõ¸gdwN
+Ü#Î"bï¡ÿÓËR9o"ok´F ´±åg©ú=¤]?ß$ÓýyÔùÍkÛÐWµØ2 on<¿f1Ý[,çÄQ Në0Û'À¢mvxXTÀö¨ÇÁNQÎêJ$m(Ó û§õdYOvó¹f
+{G˽Âv6GcòCxn«WÖVÚ½å+VfàbQÜØmÞ@¿4¸È
+.³¿~AÇXºÁ Éøm&¸ÂÄøkô÷ÞRkÿ½eÞõ^ 4µQ4ºE´;m|§{¡µø©S·ÞIðý}Ôç(©!ÓtßϦóçHõ<?×Ú[ ¤nHàhÇÏsQÃ`Î;Ì\v¡µÎ
+Gb£IDò^á.à# ÍÞ
qÝLþî
+.³%ØâɼysyÒдøY«j¬½q´J¨dYü rñ\v¥¦[gòlÙ¼hÀ_º@Ël9bê¢Ý³W
+·*O§¼³ÏÝz&ÕÊ0Ô1JÚ\C{BuºýѲ+çæS×¢¶`±@:Ä-Cçð>C
+ïä»és
ÎÈú½újNe[³1æÐ]B×Ô»:ÒzTѤ´½mܨO"¸¿:ªÊÜ_[ÂdYÝ
+òQÔ¥)µ}ÊÂ5åxbuþsËñ.mM4ß-zóYJ¯2¢ã®ké,ëê£3ÒìHRxâÓe1@í9¾}·']ðñ_S¶³ðc(§>õbÒ2ûÏs¥\ÊQ®ÁÛж,nuô}ÞjÙy:¥íͧÿlìo¼\¤z««%;áltÁãécâ<l¥]ü$鱯öû4cb&QtÒïuÙàzDÈsȧ¹¶¬GÓ¼_ÔÍ
+¾ ÜmÂϺ¨ãÜA
+3ÐýÞÙ̧q·½*
+{>QEåã
+4¸Þ2sÿú{T+©×íg'u¥[È<Ùñ¶°õ¡ÈªkÆ7c×YÏ£KÅÆüËoìNÉ£'(ùïhC7%º
+'éðñ
+pÛ4b³U>KwC¿_á56_h=Ü~l>8«¬Fø«iyC^Éò»ª7 î¿Ë\üÖ§Wͽ¦kün¦ö½ráo;Ê߯Ø4~i÷)¥ñS»Ò:®®¤¦v«bjª{¹
+ ¥
+
(ãÅ£&©ï]è°Ñ]£ê¥í<@wn±¡
+&Ä÷÷¤ÛòûmµÌi7ö*ý²òª+ÃÁÞ¦}ßI×ô·§3_
+.ÐV¥(·Ói
+Óp×J]DUê`ªGÜ *n¤å]Ôj2D)<Ï«Õ¯Ý×;l»¼·ýX0ðÇÑëÆö³¼ý½c
+FófïGGOÛÌê®&À¶~ÞÅN µÃ·ê|£°¡-Wppi×Ïhð
&§µ86ÁÎÞx<ëÙh ˨
u\ÁÇI®IÐwª×9 WÏheïÌ`ç÷üÖïÐëFòy¬êì¬ÌfÁ[ß ²^©Ì{~ðͲ©
+¸X«]*«Ë·%ù·WgP°\DØ}¨Ofu3Dßj]Ùâw2`n¬µ®EC«µ¨02ü?ÐÀíX
+àCVÕ»¡¡
+ùÛÁÑì`DWµú÷oÃQGåÚ<[÷¼4°µùG®2
+Éró73P¹rõ[½nj-(\zªÌÙ¤lË
+~¦¡ tê£U_ U¬9ï«AïÆ[ØåßQ]¿ôö{v¿Oæv8sðì FCsÄ
+£ÆO¹-Ö9ìF/àU2ÛÓA/þf
+'lU^]J
+¡â ÔáÀ´þzEtsA¹KnÏò7|Æ(£ÇY¡~yßÙÚ*#E²li< RB6D¯¯w=¼î=tà$$Ên}¼Gg,.¨¨úÝþßX$&þµO2ï}ûC¿ÎÕ³Ñ
~ñV®³;ÀVon.àh^ú
ò\}@â32/bç&08Bc©n:
+endstream
+endobj
+86 0 obj 22172
+endobj
+87 0 obj<</Length 86 0 R/Filter[/FlateDecode]>>stream
+H¤W1²d)<Aßá_`+@ì?f]`íX¯ïï®2yÕÓmlÄådñ©T¢»nY_¦Ó^cõþõ/Ým¾L+ÐÌ××÷û\^ðÓ¿Þ/·ØØWfS\2
`[p¸!îxm7lçK9Øè;Áñ±àÚ£ÀµÜobºÖîÞÍ×ØzVGæ-DØ¥RsιyÝÊÝnï.»Fæûaú['òÐñðØXï^Té
+:æ©qX:6.ÉwÍrErÒZÃ!æJWõS\¯ûþQ9ì¼Ýª±®ÁÄ`
+ýDðf8Ú/£-׶:ÀÞ£½ÝXËßâ¾/³£ÈsãÏÖ[mz``ͪõ%[¡3{_Ì+2öøæÇ>¹4hîà¡_bASÚV¿û¹~>y6__LZÒ$®h )ø XÖ3Ü«M¦6hÔ"tÁ¥P`6÷7iî¹1w°]Êó{bß ö¾Zâù'`[bÅìQº]¿0_fXNÈõmÄo
â&Öî{Þ¹@×"Ï!¿¨³ fót¿ÎFé:àÅÒLÄao»S /ΡO¤`Ldc-S4|n´0)feÝ
+8G]XvôY߯ÑÈæ·7°6Z ¬fNðë7øÑÛ3ÉÀ2z;áÙ)G5!Ø¥Þ39ºäÕ Ø×Âí#4õTݸbÔ§<%Ýd·Ú,Ì°:Á*ð&ÍÈjûcÞ: É
+ÀmôÛdß
+a5ò-³;ðиbÕj]ïæíqqýT)2¾n[àìtzîòdO²tfo½±ÍÆ(nF
+F¬Ò¿mÖà&ÓÃ<ä!ï¼É!ákc.¬m]PZ׳5èÌÁmØ0ÇÆÍ0Åf¤%ÔÞ0czø¼7`½oIõͦ]ó£±Ò®$G¡×ºÖÌ;Äæ(?ïשYùy¸¢Í½³
+ªf«z<é_÷v#4S^ØêfX³±\g0æìºß?3ArlUeð5\Ý!fZ*1ö!·/ÏÂKÈX
fdz¬ßú|AqHhåíÅ`p@ké±tp4*Ç?&Ý
+ZNÁofü,²äÌî£2ÏÂk°-8ûçÂOÆëyr=ÒóWQ»b9jP-½Ï(»%Ùp0²èW³@F«ä'ÀÐA>¢ ?®½FIï(5
·»òÁ»ÒÊ,Ø®2/¨eäEÏ1JË7j6ºÞ°~PÌÀ¨)iÊö"èTÇ<mÖeµÖ>zNpï´YýF½i¢sàÊ÷©G¸kº7½'Öx´ÀO¡Åmò/Ù ß«$ÇÒ¢höd%Eõka#o/xnµ§²Z~÷¼)g ncÂEï+DÂZk5qòrwÃZ»7±C¨&ð,"ÏOOýÌù¸ËèhºpàÙ«QW¿Fu}<ÜPÜi M/²ÐfÙû³UG
+ÎÝ01Õ
+xcBb³Íï}Ür¹¬ûý³WLrEVk&A¿üZÄu=ÉgR.`t;(³SàÃM¬ºFVÖýÎR<C²²Ð
+-WÖ©ñ½©
+ñI𢠧c5vZÄã8Òá¨Î»²Ö®M4 NE;oè×'d_½
+Üf>gñ¾~»CO<§o£a'C}\±WÔpy+£´®v<?LúÀÚÖH_çJË%JÖ ]kµõŵa
+Gíôg%¨íZ©qgÉÀ
+Ô ÏzmÔ±_b!F
+ë%
+ð¢ó¬ídX£¶\4U&ÁoÖU#¶/Fü&¼]4ÜÚ ì_«låFç°Uµòé0`ÕðÈöäó'HÏðZÀ rí¼A®ÚéÜQRÚG^¸òô
+ª%z
+¢£Q Ö`G)ç 8¶0ÆÔï×}®_:Ûi fbl9íÞÌV{H >ʯ¤Yk?bÊÚ
+
+`R¿·^P6ÜÖj÷±CìË4z{Ï<çé{rï}4UkÙG
+ k
î´}3éOÍ>O¾wì°C<å¬å©7ú~§a õ6CnÒÚ÷
£ßCA/ÎÂrÁà\
@#¿Å·ÈZßÚ
+xÔ&ço¿ oxiä|,\sçÃ
+ÏçÚ7³ÝUHY꯽ny^·@íJ»:Á§IçÌñíÖf/0ê×ÊG}lÅ5:¯QM³1^÷ÿL³¯Ñ ÔÊH¶§`"¢*Q¦ûU~ZäxØg]ð[ êo½'*4S;ÙB.s1㺰XwñN¡ðú96$ÔvGG÷Þ).^ã
+
+rÌã{"m1¥µÃ³Þð)|Z²÷gXVÕÓ`s&ã\`9¥Ê ° ýÓcAX#DhZ3,ÔøÔéÚJ7~lgc,)gg}&öºyâØøƨ7ã,*¿såDlp7+c`¡ÁòéeÞû¢»Éw)QG¾g\#Ù#¢VÏÄÔlx¼ê§gAVXÄÓû½tzvýCåØxkÄr»ö¹O7ëlÅ£^?QôX\ÎÎþÏè ò¦×³¯VhÚoaPð¬Yt`0Ô¸ùäiqÂÊâ©Qj3J#_)rO¶
+ÜRÕÙU}«Q¢ÊkVÀËÔ=¬çðÜnê¬7¸Õ#«£uïþ3¶.ë.7'ÔQ¨ß¡RM´RÁázßgj`©érñÁ¾5
+?Àj¢õ`çöëÇTcBe¨Ô
+0.g!
+4#öÍ/EUFbú«Ô6(é»»ý7áB%xhÓ*8+@"vÞ"(MW[Köcù}»ö%À>TË.4Àd¸øóÑx»qhäN0ôÀVå,¶'À5;ÈîýE ¯´qÛdèwf
+µÔÿ¿}ÿ?÷EvÍÉïhýÞïÖad¶*ÏÝý9»ÞÈV¡ÁðQì>ÇQ· SmGv~ÉBKÿøyu¿K_3uJ,rYÏc´:µç½V»IåzW§àoØÝX2§úÅÎ CøÌ@©ÁAò0çâw<E(¨O#NµPóºð!^÷5@«mUʼ¯QRÊ¡¸bâÜ?_¿3sæý,¿ãf¿n]æÅúäÙ×)a·4Σ
+Ìx_fSGI¬²©÷õ?ñµLa[Ë TϦ¸4Pñ-àû-ݼW,Ì´!ÒVK:
+xíÆbÛiÕ.í>XKúÿ¯Þø´AnÜ´O6ÓÚ4 ,(CÜ^³Ö¯pmj
+·ÃÔbsqâåô±9wôm£¸J°cÉýJKzW% õ«ß
+JM¥´7O[-ôsÅ[qúï+9À¶ÉÀeÓ÷¶Óôåúf²;´¹hjô
^[tëÜ£Ó¸ÐaZê©·ÈuõQë|±Üqtai²£²ïÀð.gu«Ì¬LkQÑb+ÐöÒ&ÏHå8°ï¨\¤öÀ¼p¦7¤Ë6¨³mó%FAUm¾c=»0 at OÔ1¼ïÝ=¢Äï,d¡nHí©ºÅQùr`Ý0õ|º¥HjÂ=í¥ÈwdÊ,
uR
+HéòwÅ
+±:àìêLATýdO-ÒµMÉÀáaQ xÑL5cðl\ ·HK*Ò&«iÚ0ÝR,eê®ZX³=U Z¹Dn=OOxºÛóÏ02Ø2òUe\HõÏ5¼rnÀ°,>D¦iyéôQ¸i£kÀÞ+@û©Ïy4é,A«/6NÇÆçeÄé»!(ì^¨9¼gE§ï2SÍW;^xÎÉ
+ÈMÀ+Âæ)ÅbÛÓÐc¦ø^×Hü^Î|DHÖ©9ádI×nÝÖäò n9>Y-õ´pm
+^\¾otã«á_A׳ð"Ö$+õá×Ñatß½ç,l¦â\¬XaéÞæ
+ÓyØãÚK·AÚmyÞ;) _?Æa.PÊÉn7
+Ñ(xù\\´¨~oXãä,CN
+TïàAî\@t÷\Qâ¤äþ±«'r0U?Ðõ\bî¦ÀP`
FõmXî3{1ÓGáÜF¤?óôkLôÓT|@fv@ªD² üù§5ª,«uxJ/RY&#ÈÔU@âû&
+¶*ñ(½Áûò÷Ì¿$|cÔ·övçå<h
+¶/BUª(Bëæì쪻\3@ìã(÷§¦¶ß]¹õ÷ñÞç °g
zWq¸úSs¢pß©ÔäcÉ´í7³Ò9ìjn°$¬7ÜéÇFÙàýÄvÆÀG²|+|£Ð]eïQ[í»!ïÆÍ»~?º¿%ª(sÙvÝûÒvq·³muµ¨Îþçý_X
+±.±7WQ½tpù ë´¼ÑawêÄz -=¬mØ8O÷£ó"5ÉÛP-[w-3)w&¼\P¼Â¶º÷ÀC_â,*¿Öà
Gc¥pxc¬²-E5m¹pöÁFmZ½sÎ3x}¤v?2SÃfU.eG^»}¸HÔñðÔ
+¾8è´ëÆ&mÃ$TÞWC®.g#?VwWß_Ó§§}äo_=ûÃüá÷·oøô~ûêãÇ·n|þöÇ÷·÷à'ßßÞ¾ºyûæÔ^¥Ó3üyùóÕ'üNùì¿¿àÄ_þèçþtúû?Òéýîê×ErµC3©ï5»70Ù/ßF¯ï£jýÐß ñ¼cÜZn¾R¡Y§¤¦@ì©ãªÓ¿õ;°ð
+{UçvM+°lú¨ËÁlºm ÈHÈÖSÁ»qV91~ÞãSµ)ßÛl¸o0x ÍîUfEçhöûâôé¿úág>þîýëïº}õáÓo
+[¼\VE7ìNiB^ÐqeJ=®Ç`P³R~7ߺü÷³Í³£{A-3èü¿`mövH
Þzd,eyn:Ô+vå50õU¨0Bq¹q'e°|³
+Õ!õ~_ôÝ{ì>uý|wLO¼/}¶Ì®ÎÇkÆôêøVÏÀè^}á!çØ¥W9Äɹlù¹ÂêÙÔù¥3yøϸÑlÛ·ÿTÖ¬§ÁCXX(Jä6.Wy0»Þ.lÝewç¸ïÈeýϯ¦Ê3DZ ¨¬^ÃP[>,ÞHº3lÐlµ×ï6Áªi8Ôk3±¡[è·°wò;©Tk1ÀÅ,ÐÀ£ïB®Íï
+øÉAR
+À|KéÞæUÑåïÃS¸Òj`~JZ4ks̾µ0ÂÂŶ-É_K«:
¸ßC_®=Öó?3
¾Léܼ²Õܪ-÷7;º¾N0ÿAR¬EïÇÉ1[ê½èÜZÄÜãlM3;Ùf<´ÒS<~l¸
+sZZ(í~2Uf0ÔêG¶¶XÉTNöt±Þ_ô-
+½s@' ?õÖsä!u;¹Gn÷_Ö«oÅÏã>Á¾Ãï&`CIæf4Ó^Ù´--- IJ ÆIS·x®CÈÛ÷H:oìæ*
Ýc}F::»3í£×¶G6×I»Úëå@jO¸ï ©â¾5Þ[í8È®²¸÷¸åu{:èmÞÍÁ¯_0^³á¯l<àùçõ2y»¶=;Ø<SYä¨6˳ÐÊ÷1Y<]Ê¢ÌvÒ«àY§"ãr@ڷðØÒvU£S£J¶pidRÀ©Rh{¶
+Ix{Lô'û³ê´uf:Ǥ-Ú1mGè {²8¯o°¶öÀ/ÁR^í± ¶ñqÀ¿JÐÐèйÆèâ5pä`óE!>v:ÕÂlAµNu0ÇJÐÅõöLòá:é>±hî*@Ѥ×:Oãù+[¢ îsØÂÿ¶»×ÎܱÆD9¤·+ð}iËÏaqªðºrOµ°êb´ûÈÀmÊB¼¢05×>ÆÕÍÓíâ%ûúî)ÓG}>yþ#±>z«'3»èF´2x¹OÅsZ9ËlCAä.*ýå
+® u§zåJ¢Ò²O<?øìh«g¸Îíluë$¸fÌ(Å+EUPÃbU¤üÅeúôÜ.ts Úðzðι÷à_w°ûÙNðhÐl7fÉ_aSb 1ò
+«@i¬5BX;&Ã ó¸FùZWð&²Z·Y
+¥ö4ìcr_4Ø
+|¬qíÄò%Î5ä*CËc
+;¿o¡Lb«¶zæÆ
+R5P hOê82î^pIâ4º-/(iømyAíb]ü]¨/å8¾íGÞ,Í¢6Û¸¿\U{M]÷Ú5°åô((Ar½ÖTxɸj³fÉùï[Á +·]\^mæe³÷ZJDëUÅ¡dûìØìLÆKÒà>s¯¨'x{·8RyTÃ$<ã
+IXRtk¾µÖ¬X>®1#@´¨½·u\oUa¡nÀ\v]:Ê¢ ,§ ¶Ð)²=ØQ."ÇôQj¼%¾§\kÉZõb>
+éV´¤Z½ò¶¥
55£b
+ñ;O`JvßFJ®*MB%áLô<¿7ꧮ \¬<«\§%Kgpf]¬
ØeѶQùµ0Tå¿Ö¤_Â$³z^¸¿ÈaV¨à}T¦ pÊsP=±
+<WóPª»ÓvD
+psmïQ®F¡ÊæèÜYµ
Bíh{ª¶*ÁEoÓë´Â%·*1æ¦q{
+õlÕ£ßf?däÂ5QÀ¼ÖólöN°ÔÊ£µx&qîs+Ѷ»ÉëjGf?£m/)jR&X
ÑÖOåÛ¥$\z¬&®ti,¸V=È
+Añ=Í@N}Ãq
+ß#
+Î¥ÙÒ Î`j*¿zÇUtiUë©è"uÁëú2d ò'M0|ç¦
1Ö«54ÎÊ
+\ÅG@W!é@{fR/mgquÉj¾~àe§êåâ¤Ùþ Â+lõÎùå÷Ú®FÊëä`eq at y¦«w
+¤ãàÝÃâ<k[æä4lú ®R£¡ïä8¨²Ù³#3@kF=ȵ¬¶¿.0BØ]Ûj¤¡bf¹Fw²ÐsyÁî%
+Ôîí{9нÙÞ{éਾÆqàí´mºt1m줶7¹E´©\¾´åHÎÅã䥱Í^Làqûsa´]±*C®UÙÞ.·£4wv"àÂNÇ¡æÏat}¨ö¨´¬cöë1å̯Öé;ùØvÛ
+&µd<GÀ=µÏEÆpÀÑøhxmÿ§»JnEÉqX?àÃ÷óÒÇF'ÿ¡DÊïíºU^dK3ù,MÀx"NO\`Þáh¨üRÕXm9öÀ¼M0âP
+¸RÂ~ù
+ÌFåô¼58|$Þl£'@ïè´·07ú8gÌ3î"É¥-¬ÄôlÙ TÙâv,´mì8$ÔI0å½)WÛùãkÂ
+T'à0Ï ~«d¸Êø5Pè|üuU¯B±0Ñz#9»°R(ýÓáÇÓö¯XV7µÁÜt°Ø©ã¿dLë:À¤N.¾84¹^0º_¶k¾zx0ß«¬-Tbûæ,»klËÝË] [
+zeÿ"´ýä¬ÿÝ0ûø÷¯×èýóësJÓü1÷/x²Éó|°ÔÏ>¸ïÉOFý`ß'S?9ýMÿ_JñÒ·ü<ê©iú÷Ôʧª~(ðS?týé^váÃW|x§_y8Ê.Swö©®Öìk½kßáŽ÷ÅÌ5#ä÷ïÑñ¤HQòìÀ`Äi¤~o÷ºu¢ÑFæÉ'ñ>IúEçÔÿ%Aù¡zHÚü=¥ò)ªü!ÖYÿ°
+_ññ4ô3¾>£nï´+ÉIp°°,¸¥ïÅ fÒ®Sû½ÀY©]RO\µ;pÚ- at kñ\Îç*pµ6yßÎ`ÇhßÀ%MÂ)8¬x.CÙàg²-pºÉÌ£aø«÷\`5ûkw'°?ÇvÜNTðtMs
+e«Ül
+.¨=ÐA&9C%Sr'@UËÁ>@=bõþ¿O¼7PC¹âÓIr
+°Ñ°{èÃQW>!
+yG=övCº(öCè
+U9×2nLÌ8F¸ËóâÛ5f^ 4^
+Ð
6½«VäbÛÓu^yUàµçÒ§áÅ"m,3Ô*¸j
+vqPOà¨tÊÏ¿"ø88JÓ¡çØÁ9Òí"¸Jÿó²³ñ
+ħøßwpºÔÿlït©NuXXïÞMñFïßF6Mß6ât°»##XêxöÔ
+PÆG0ÏH5üÒfÞÞY¡Ën{;8N ¥ò±KÀ oæ[óPÒá÷Ò(/Éöü±'ÞËäZÙàê4|
+fäÔë
+¿íô
+Æ>ìL;Þ§ÞíèÛ=þïÎù¿¥¨¦¼ÆK]Ðíu±ð
+ãä |yïK78I=bÈJ¿ÃëÝÉÙ²\-Á=fÖÐâ ÆïÐTÅê12@º^pæfÉß1àäÄ|
+ï¤À8WÌ#g¶Y@oG³
×rl`ÊêÔ¦ûgAÝrÿvl
+Lé
+Ò$(Î,«WuÔ<ÇâTÃh
+ø=¤µþ>é$¶Àc2s« `ï×ÚA<
+LKá:
+ª5ÝÔ4¦¿§SCò(ØÿÛM\®/e
+ÕÕí§-àôÄ°O%Ò{&¹´d6ÞÈ
+*@UGN?$RÄYÀ}F9ÂZKóTL¾Øá9JÂ
ÓêÉ·ÚҩΩ!¸nCrZ|/³x6.K
+_N)õÉ`Ü
+nqðç1Ú¹
+k
+(9 6v°óBöði¯0Ôsv]ï®.v¬2Ja@¡=Û($#ëøÙ®jõ¸-Á)²Vg©5òêx_<Þ
È=Ê=Z×5F
+ËL¿Þµ¢ÂñL"}ÃýpÇsè²V[gbK>@TyVgàRCàêKýÖëþpYÕU+W0Ù-=Zô[½Zt;a;bÈ$å
+N¿/ÍQ!Æ pQ1hÉûÐhg2
+,I`)ÅQLe»ã£¾øóèÉ!2ß=
+X]+
+ôÕ|
+¬E[i¢±x@%ü²¥¦boÈ% IËÅ;VUùvÌ+:{)]¡ÝKNùÀ|#°$YlkªZÖ\wúPÉ¿ Ûw¼]Åê<]à\[9ÿæ)
+ªsé[í§*oÜ/
+}¯
+9PG;Ì/hp7¢z@¿þvV¼Iêqü×fÔ&bÑ®9+
+ÎxÛ¸>
+N$ÎnÈ y]D9Zò¹
+A5
+GHÖ^3@[Ýäk-é2JºûKØCA(@÷¡M²îï/¡(·ùÑÉe¹J6¸TÁ½¿oñsèzk¹úx!ØeCE¥7ÜXüPs[cоuQ¥XäÔ©¼*@åÐ*ìù5´¶`§Àñð*A¬öf¦
+ÚºTþ íÿóëß_ÿúºßÿøãû¯?¿þ÷eßùØæû?_ÇìàPSÉÿ¬îòF½i`?½Òiø
+\ $4ä)ÞA&;!e'áÛcv¾4òÐD`ŤHðcbó´$ÀPuv&î·ÓîÎy$(ÀÏèmÏKbáL×:Ú¥\ÜÓ´{OµÖDü|¡ª1ÄÎr;´z%p©ÊñÚPKâSúée÷~Ki,|GÚ à\WTZx1+ñ{w¦Å¥8Ì ÓZX¥Ûxܱp=¦àÓ§$½æ$Bð^Ö÷x½×Ù5t6í³õñ@²c¸¹} DÎM©¸ÄÅ>¤þ
+ç&õØZ.NÞ×ûý9M ÷¥£ÐÊbÅ3ø
+p¨¹DçÈ÷]Ô.çÇzr4öêÀñJúTe:=HíàÐ#ê~!Õ4ö«&Y«ÛÀ\4óM-I¦¨ÀBÝÛký}®xåX
+º$Iå Ð
+6_
+jäR>&Á2
+F²7@Ùµâ_T~ÇÊöøë SºY¤êWgÿBºwyyÀl¾7>]ºÓýxáOï7%jØéìA0.ÿ>_öä
+É·òk×x4ð¾0
+"ܤO¸øò½`Hû\3=îø¤¹:yvo>B·3ÇÕQù%«á4¦_Ò+úpD«Ú±£¹4Lê\A\ÔOÍÉcŽTð6nÓ°Þ/`ÍiwænñçÐ_räñ²ã-ÿÚ_D¹e-l
+s¤Mpíæ
+ðÁ3oO6.ýÊVñZc°
+Ñ@ÌWÊ×e2À¯óé©g~)
+°!riçú¯_?|þþ>*Ki1Z;iøaØÃ%]-ø~ûü5Ù
+ÏÏB]Ma\<i2l<¤«/8Cî¤LþWv+]ÀR¯ö2[Tà4¬48G/
+D`½|G£µ~Þø¾ÖÈ'ø/4¶=æ
+m
+S³Ýtvcåh¶£d"*³5¦}èáBKz h=UÒàÔv¬Î@L<!aéçÓ÷
+´Z1sà_;ÎT¿°rµ·ÕÁ^HÜv¦@´¨jåÐÕ߯!
ô~ɯZ¸²%3maú}Z÷ÙÅ2hq
+u¦ßc Öà°æ<TÍÜ|Oír3.Á[¥Á|%È
+ìÃíÀûÏÍ,Á¾ºjêVQ
+`µAÍé|ü²6`£_5«»Jö°¤û½jþª0»cÛ]à-%p_;
+RÊ
+à C&O¤-)ç[Ë{ú
+ÄÀ^Õ
+$!fdu,ï(
°²5 at CrêKÛQekã¶BLºBãUsQbBæoòÅä©|ç:ÞØÆ.k祸1ìü}[Ýû¾Mº´-õ®ÚëQcçøì«îlsNÜv¦Ö;¨
+KôóåÑùs¦àí
+æMíLÁ
+kd²¶"<á
+:\Äkò¢ÏÉõ¨[oF*³Ï}
+£Hjn×2¶Û®àåL`Û¨õ¾¥k;Ø-2/þÛïac0ÇCï{:ÀJؼ8©mữá6¦à
+ÚÛ*GýkWéµòæû:`6R©,ýü}|¶Ë~V ~l×ì1ôcÐÐ
+&ý2³IyÙ`Ö»¬eZ N+·ÒÓ
+ÍÀÁ
+9Cðzèú¬GnIPªc¦ºï $¼³"íy 4Z¨ý~|óVÂçz¨1Q;:¡ÒC_èçµêbêzsU at F×Q
+FÅñ
+¥ií=biþÇuµãJ¶ÛÀÌnèúRbì5vþ
+&Ø
+x8@ãÈ´o¿å
+DO
+qGn»]qBÞ×¼hAjØ,FDÖUw¶/E~dª_E#¹º
+©:ÅþÃpõV
+䮥µ[kñÑѪ@æÂ}ÌO;m$1·¥Æ
oLåÍ$¤A?©Rk·¡OUn`öTÓ ÃåCa.#$'ÀË{
+¶¯Á Þ¬PF:þHJ&ñ¿°]*²öHoí©µ¾Zjp±#¨dª«~R|¬+>1µv»ÀCêâYÏ;®k«øÕZTY¸¬Å¾m)ó,¦Õ#wån6"Aszàå_=H¾ÌìMÒÜ`g<5Æ×ÍKØîÿsXè/¦¢5)÷gñ|4ªÏG¸³ÔB
+ðêásÔÃ4U
+ÐÛUGÒ
+T°ëè7U/ªá5Ë9XË.%x·Úüs°µ[Uû-Ð×dUýv0¢q£±å
+ÖQæ`DЩó FÊx@íÞïÐPE+!ÂÕ¿;è8ð×ö¥^Cd-ï'nÇÓÊh*¿>ßóÙþJ0áj_þOn÷ñ
+`W*
+âX¬Û«Ý¨vdÆoøªÕ }ÚÖÈ>ä8ªÊÀ®Þøû ÕÇ®OÿêüÖÂ÷E
+GätÞîO`©ú*ÐD²^¯s·û,
+
+ùýõb
+Po5PNÎRúU;yZ᯲^]«Öë{N*Ðò"Ó³*vtÂãþÍÝYdlèbAO*-U&+KÀRØ©¥¸å±g6@?µN#mªzÑ<fB;E±â8¶rî¿
+endstream
+endobj
+88 0 obj 21711
+endobj
+89 0 obj<</Length 88 0 R/Filter[/FlateDecode]>>stream
+HtAf»
WP{¨aÞ W6l{
+Q2o)¨Ùp¸¯;]O%~}òÅÃÏ¡ßûø£g¯Ï#ã<:e~~ûlÏIl6O®ÕÇÏý®2°3lÜß|O&
ñÑ̵óÑm4pöN69Ê
W
+!Y©}k#ûéô[Ü EÓÏî¯'BðSZoR7'ôv
+4zTÚ+\p/E-1PW÷"÷2&[÷§ô^[W
+¦K;×ÏΤVDûìë<?°ÍA·$*; x§\V#«wºD
+ØsÏÝ}W?`ÞßÚ·Ð碩Fë{}L±Ò>Sò^Boìõ
+¥5
+\§ï|·û¬¡6s-RxNBW7ÂÈ1ØNeÀ#:²ãdÂÚfbGÂ5{¥¥¯yÊ[¯ÉµÃ'áÑ1\V¥kP¼¼¡Ä¹VC¦¬àÆk!M³çzæ¼%pà±KÆ
+
+,ß½ÿDYYÀ,spbP Ü]p¯·OöYé fW
+«M쫧WìÆÿþøÇÇýüÛÿúçÇ?Ægþ!?ÿÃ讹ÂÌRêE¤+p¤#¯:Ãϳæëäú}ïÌ-UVÏ9kõäê©ä÷ýÿÊcL<á±û|`:3Ú*.?£>Ìqiá^ÀPÍvm'ÄÝéäJÌøöQxXcSa7Ûcð3Îk0ÝϪ¶P®oô`øn¬©Îás¼tWBYwå÷9¬ÚkØ©@
+ê·]-X{K\ÑÇî</bõEÿ?æXyÓ5^ÀB¬0s^
+ÆfßK³+zj£kì°!ZÌZ:nE9'öL°¹Î"DèÔêÉ
+¯ØÁh ZIÁvÊj)¨ÃèÁb_Ìï˯ÁÂ^ë]uwáeI¼>ØT¦[G
+¬}ÚêÚd廉f´ÑºFû˵»ú}Àÿå+Þõ}Þ¬r)
+s©sJRðk%^%Ãè50µRCb¯O&VabAÏVöÚ0z)uT`P?Ñ¡ZÉ<`|_$ñ÷ß3Ï@6#òT¢&ª
+,Þ9yÈÛÃÃw
8!ßø~¢I3ÊÀ3çªèÔ#_
+«¾üÍ]k ÇL¯W_8zÿ°Y«%º;Oås44/ìÎjûÓ[ôÉrÝG¥½Ýzv7ÞO´'ñ>«p^ªÕ¨üý¶;rꬱ$s°ûR¾R©÷=£¿ÈÓ+ûghGÁãpl{?9/ûówoR¯^ynIé©ÇdÛLY»FÆ÷u¯Â>êÁzäÀ¡§c`êwð5µ6ñL(ÈðqxÉhQZ¾ÚòùØ+£G`H#¯áÉöùeó!µê0"=ú
)½
×Ðz""oG*ôLzc^e
+þÊö8KÉ°Qû>J¤\U¹çöC !|ul}Hª¦:°ÕýµÌÔßØq®ÂfÉx˹â[k®d!ogÏP
+xã
+-F »ÑN¼NÁèˬۧà]Â÷¸«ÂD~LæðQ uvpÔªÁ¯«Æ¸ÜáðP
+!spËÐ`§
+
+ÜrÊd%M*$ÆÇ
+yl)À·ím+-ð%´ëªýlwíɳàkS×Ú,oKi
+]¦Þ©18ç³òdÑc7Äiqp1-°½mÕ¯AsM
+ì¨]k° Üa[v!
+{Ù¸BD
+9`-¬Omêéæïl]`éM¡aú%J9»ÌÞK µsm·Ù
+0Ë÷i¿c
+üUZº\"8g÷ܦúI£.ÛÌ'
æ`w
b
+vO2|ðg¹2oLijáx´&olÌ£åy4G6êáz´folÜá{4N- ±ª§úâÖ5²e]𧢿³
+Ï`ô!ïzÚðKîêë ÖÂ77 ]GÖb/xHÓÁJC7;
+7ËHÓÙTdÀ5*4Õ?° FpXø;Ï::Y±3q ݵU!n|`Ñ:þ1Z`csï²·9AvÍ EÀ²~«1byX1r|Á1Bw!rp[ÙüRP©ÞJP¼ô¢û[u>½3UöëLÿx)ú'ÿQP;Z¥3ré8¦X%·ÅáÉmf
+Oècwý·4rü?á|Ùg9þ)ܯ²ùbÊ?Ç-ûîæ º¢)ÇÉÅ~î
+ÏYéê1
+¯úiÇ
+
+
+bówbõSÅ-SphVcÛb¢³^³`kGåÓQtdÅ`Ói:Ø×r :)Í@·%ºµëªìmWÃý
+ïQ¶äÉ×ÐÙú<R½ÂYa´º»ßúùÞ½>¤ü¼¡1Eð|þMÿÜWZú:®Md;ØCITû9¤>Ѭ´Û÷=ìåfæ|
µÖx°
+xháì¢UvlTý~г8¨X¾¾ï¿ÉУZã^`hu½7=°å²þvîV[^%_Î=+ Ðw,*@ÑW²vÂÌäɪS+I7±d§\0ûÔ£d^ºõí©10
+{>@éx³¥*B 0¨/
+]yvÝ`©°âQKíq
+ûÉ{NK/È»êSOíý»4`$é1Ýú[jäoºÝÄV=Ùÿ)t½V£DJ
+3ý®Vc!ãfP¥ïB$8i0öÊJJ½nWÔÕT)#[Ýk¦"¸ZØ(o
+'8¬«þA¿}Þ`ãft1í
+dÛ&¸ÓX¼Æ5«³=i ì!ÀbK{ûse£n
+u_7'gö`Üf-×*à>î9üOÐ_Y´Dm:³yéW[8[°
®5u6ç}VzH¾Z-äoãÖÈú1<!XïçeQ^ßz®
+A-
+
lÏÎW¸¥&i»~?ï-XAQ¥À¦ÃLWô.ЬnºöE$Tï_,®íÈÝk
+`+f¸¤U¤l×÷½Ò<Çݯ×Ì¢ÒØ®n7AÚm=s±CïqÄêúóM¦½5À>
+ØÚzX6Áî=ûç¤Ò%^i¿öu
+}¬Qu"¶íÓÔî½Ôm°º&ÿ:ÇRлc1ísò³Ù*
+NÕÀc¶ù ¬>ýZ}ì.õÜq×Ô@`q8]SpÒµÓ'¸RdüöRXj¨»Ý³¥#Ø{ÌA*·ßT³Â ºunKPK
+i1[÷ø?áUr$IÃ,ÆÐAÒ{Méwûÿ]PÕ3U±_)ñ
+â}óìݼ8ëÎÞ«£èà+p¯®l¾ß`³c
+åÏÆga,H¡k-Æ
+í
4i©!·50
+ÅΪ
+D4ßrkй Ó<õ³ÞÌz'ØbJ°·v' Bsnë q3/]0¦ºXL´ÑD'Á
+öÊÏKnkÁoÞwÛd2Å9仲5Ö,£ÊÖFKÍÓB9òå¬7µé(!Lì y®qÃ*éh»1ÀnÃàÍg ø/êúçY®u>a?þýO¯þÞÑ¿·þïÖ·+ÅÛåãÍ¢ò§_>@ûäTzð[°) ]ͧLD)}Ä¿HScÒ:ôzöc³4dàv¦·T¦oÑÉ6¬'áìÎïV¹j¬yÛ"ð¥ÿ£5jÜ-> êæÌ3W
+ï
+23_б©Ñï®ô?ù}Ô°úOi8Jç¨I
+@µ2ÀÞ
+P±ë&Ü<µà¶\0"ì8eÓÐa¦&ÆZ:²ÝÎ
+Á£xëy,hv·¶å ]AÀy~_ɹæw`Ô²
bWx[3°%
+Ý,2»SMaiγÑpÛ!SE@ÏO<kÝÙóËeÊ:ZKüÅïK×*½Òÿ¡8Æ`À Z¯CÀæd
+Ðbcq+oðRatìwóCÔÝõ`í%âç¶åÕOEk<Æ,DÙï²üg¯x×<m_±ud0|] §Íp7Vìeµ¨^èÕzÌ»Ú !ò¶µ¬ö`¹Ñ W
+àF¢~¬d0ØÈMâÛᡳ)<K!p®¡×àè7å¥vCµ!À¶´@Iç`ú^È y*[B`$ò»Òç»*ãiÏïÏK÷+eïSBj®Ý
°^ÔGÍ8iô
+@*Ê<¿ÇbqÖ´}Ø´ª
+ÄBw²,¡5k+¸_îµ×ºÒ÷®«Â¡¦uª:é¾Â¢HqW>*FUËL"ìG }
+We:le<mÌó°%Ïîv""CÀÅz5(À®
ÖsÐUNgo%!×c=±1èÖ¹ºðDýUw¿¿HÀöÿðÐ?ÁSzÍ?OÂ>k§wp_
+äJãÍ£¥;q T¬åÑÝï\¿Ú¤Î®Ã[
#(J§ºÀñ[ _ºÒµ³óñ
+¦@NJß²
!©
+ at Y½ØË.ͯ,|Ðñ-d»Fp-±klt®½ÆÒüìú>kóÁ?Ý};Ìo2pl´L9
®Ð¢TÝàK¿¦Ü nH> Cì$#Ú@gZéq®EµíAÙÞdqM?«q¶coÉ£ÍÀbA9 o§È¨ _ 2s2
+àÔ}{½ÌÌ'}i²pUõìRsù²9îû«èÌߦyDïäBB¡àSÙ:x_}ß}SGâÖInø¥þßä8ÁÏrg»e8ÚXÌáîÎ!÷b1c¿:¨Õ!Qa6rÀ'
+ì`Ï'FÝoc/Õ÷&¿¹À$jmɾÇk «Ë
+«z¾_2ÙX/õó~ÆÁSkZ}*¤rDæòÞb¹3À\æïø·ï$EÓT6> ÇöxùêKPGp¼ÆÀ±ØóRtÞ<;]¨3@× í
+ÐçiÁÙ~ÆcÃV÷;V¶¹d%zUâ%~Ê Æ¦p¢qÄ]úäÉèÿ
+@ò+] A»?¿ÇS[ìfwj"1*ü>¼Aä
+¾³Bw[Jºá:«¿s
+bm'¸uj=WAê8dëFÿ±Îë¼ÁÂwVö[¼isMSLÚrûIx'ã¸í)ß[{9[¦¾É¤
+¼ø0Å]×ôå×ËÆå:Ø_¬.[Åw¢¹
+FPJìOË^sÓK
+Dg
+À=kÎÅA·ÊÔn¦ÙamU'gd3h%Ñ\?Jô¤Ót¦Ù/Æ
+x½1·'·³pjÕöpÓxÉsKÊ®ÑÍÿ¯$Ir#öþÀÈH:ËYO£¬þ0²'£%«,IúeIæ;Z@¸}à·¦A »§hË
´èdåOÁD³p¯
ëR+ã;&ó×ì¡:×<î__Ôó_ZD]ég(J
+{RfvÀaø+Í7Íyó,cà½êþNJt½èúÁPr{àÊoçÝöQGÿ ü÷;9ÈÒ;ÒëÝH¢±£¦+
×<ýíãõ'âØSÍóTOYQX`;û7b®ºjåÙë1C×yª|éXÑÊ_b±ÉÍwÿ¬Õ@§« ¡ª0¢ÓûOÍýCOóÓ¦üøa¡§A_¢d±éùÂÜvÎêìw¨ð¨vibvC7À\l¹]êiÁr¡Ú²
+
+æî*øZ·= ?î¤eUðp©¸èíRÏÀ¾»"ö¶ -=dÓÍìUé¶j®ýC
+p@Ì´»iãÁÅïÞ÷
»nÐwÚW»zFÍööÜधÀâ]3à±Ý,AJ@ïwR{öhiàȨѱó¿UðÊXÇÕyǵQÂèëê´C»,07¹Ïõ*[·D¤Ýg6? §å
N]®¡¤{Þ
Ûùö¶¿%TÅ>}=áå¢WÜçÌ/ÛþL§8tkÐFáw[tìÎ/Å0'ÊMNØY?ê\ÁÝꮫOþzÐÚ|øÖÉ
KÒrBÐÉ/qÏ9
a¨õ rØ9êFóoÉ^ºåø¶ô+~»rÍ_«÷VbÐFolä
+²ùQàl?¾WUà´½ÙÈZ2±Hi¥~,ì
+"HýíMã3{Û²<óf°3'r71$ùm-Sîf[ò¾µñR bäêu7¥U>Ìòö¦X.{ðU:!¹è#,IÈÂͬñK´ßÈýÆ$êêé±+N@檢k9ø+3Næ
+=ÄvëðÉC Â4?±":4S¼
+j
+ß3
+°Ø1
+õðÞóÿ5Ñ"XWÖnÈÌÆpÒH°ò
+ÎZLÖ°FÇdÍDáWl×ûi:Á2r"¬K`¹·ñ-¸ñÓ¾ó®À¦%À¡ÛBw3uD*ºÀÙ2Ç
+çè»%XTVµ¥'«eèDÊt¶K°
+.ikÀÅ /¥;Ó³ÝC}KãË*:I¨P0LÍÂe[Í¡=29 8LÆûphþXPëú1è0G¹r¾fðÿ-Z0\-LO½·~§v·Î±]bBÍ6'¤³1¶iblÒC&LÒúH°
+ZT7//
+P¥ÃhÄ%¸Ó0®.×£
+w4ç;ÓN͸O\ia±}rh
+a`?Éí|QÔW§Ú
+ëº}ñ<-Ó¨Ål
Ø\ltu¶9Ë¥RåÉB¥nû#L&§MºX08÷Ý\g®ûc{óZÅË"Xê<®ÛJxqúñ®Izõl¿JðR¦]m×Ya*NzÆ·à*KzÓûÙÚS±¡Ç QhrïjwH³ üpöÊiê©ñéÊ»úÞ3!
+UtS°Ü¯y6Ù*ÎqöàÐ<
+Ú^~j2Ú±"
+3;9)6dèWÂ¥[£ñò¶
+ïùþìuÕ·ÜÆN\qòNt²!»ÑjK{Ytî¨I÷O/}±{tnðTé 6³ËÂ
+GQå0`Ûùì
+[òÙÖóc°äM°ôÉU-%{f©$eåi³¥º3pq
+åQwÿ>q
+(³kª±êk5C&eÏûwpð|ÿ/5Òî¿+m¾>¾¡Ø
Ä} ùµ®Sø6uî¿HÐÚø[â^I~iKë¼yû»Êñ£m
+Ârä29ft´«íÔÏjÔÓ*±÷#ÕTiÁ4àÙ_½ìK*æéay êbÕ*·fø\ëƶAwrY ðíò
+E¤bN
+ó·²X
+·Z\-¶ïÐ{ì÷C½Uð¶uáöaéë¼6â²ÑQs°5A¶·Òyvòr²9k¾îk
+»ØµnÒ£eOÅ
+à)
+Í:dż5T^%Çtp´Qµ.\ÀÇÞÀ>õ\º§?²DóYàû»;àÇ
I¬¯Â$4~+ÆÚIå58лgNoîlÑÏéJqN¢^;ئK¨xEÇÏ£¥}C~ õ±wk
+´MW(dÖ¦ààT¨Î3¿5θCÍ YT}ºË]À¨¹ò\×îyÝu@ô ¥ûxÜ_áÈ&ñ}
+ªd2ÉØkxÆXtðùþ:F\zkyUÍ9Õ°6ÎÛ}uu7
+e¿ëÊ\6Ô
»£ñ>yU2ïrBmZº#91UêiCo½OÝéfË XjnÀÃCê
+°Åª¹Ñ7(E;Èm65
Grpjù´oµ,âì\`I:(ö¶ÊûaËlãues,*KòÙª+Á½}
+~
+~{ñ&¼¶¹Á,k¬52}êÈ'bÚvã^Ik~Ú[!>{<.8=k²`1KÜuÙôte;Òxøüö÷;óÄ©Ü
+ë}ì«Së}6
+Ø<UhI
+ó^
+LGgUúè'ª·Å÷×Q^£
+¤97ú?©+ÁB©VcË/Êè%CWä+¹*F¿÷¹üT·ÑðåWË#@ùE
+zÇ¢SY]{Ú³ÅÝØàÎbä¾bV<¿iûÀë]¯cvÚóÙMæ³ÿD4ñÒ
+>y 0M1ØSxVýD©;Þ°}èõe
+L±6BÉ8è¢&Q´²®CRðy$¶¡Å¹]@¡kÝàî µ!!ĺ]\#£å#ðØhá kfæLa
+ß]r°(mÁ×ó&îÁ b~5¿þì Wq{öniÒ¶ÖöXÇ/
r`¡à
¤j¯$0øc©ÈU@¾mtdªXµüýêmGUÈTÈ«¸ÛNA!$
+ÚÃìµç¤q²BÃv¢¿wÚ5ÀZ ÎÇ
+`êd|ÆæºÆ[5ôÀÍÏ7HéàÌmmKv8M}K×
+óf/OÀãTÕ(ª/}Æ=ýì2£©¨NUAõ
+Àabq ¥èk>3Kx®![ê§c
ô3êT'Âø<ª,í«2TÅWÈ:DIË\'#p8«*8Uø"c¼)ëd+Å»fìa|xT,7Ûp¿æã`¾Ç©ãb©ÃÔàÃí=DÃbfçªl«TK9U(ÅçÎ$úþ̯¨÷§èV?hW̨¸ÃsѶãx1/
+2d¼ufÖË\XÉ·0ÜÉ`kÆß4Hß0}èôåû/þîÝÖ"ê˧ÿíøôù]¿5x üêßÍ¿ýöùó·?üôßþéûüòÃsß~ùÇ¿_À¿þîùùû§//½þ
+~~FÆ~ÚYË·üüÐÏvùÃå/MÏnýgÿô}y¬F¥½Bo!hÄlcüÝ=¢=ï0þÈf:*è^Î{¼ó[ Ó³÷ðX²xøì;ºD6 at 0·¼Ý®Âó·aºJ¡½AÜZw¼_0ëmUÚ¢Z±u#¶<Ãv3:h)h´Év `Wwɽ¶zÝI¬GP±Õ¯Xêòk1a
+([óÑS&Ví°¢/~ìà¬ríü ÎY¡oÜtU6Iwæ_6³±×NÇ°hÛejmM5w
+U[V³g]Å=ܹø¥@}o]uÞîp[µ¨|AÅ» ¾Ïª?ÚÒp:
+ú@¤wÛÏסhZ϶GèI¢ðäÂÁ¨<
Ú!ú'[¡Á^Á'û¤?ü0eÓiÇ&J8½¥ð1JG´d<¯h«¶&°Üâ\ѶY#Øî.
æâ.\äX 1zb1 Zy»³¦
+
+Vy¾¬cZõY5ß4°Kö·ê÷¹$-ômìMG!µ9³ò3ÎCØÙØ'Ù8£S-©É^( (e*UjÝï´Ò¤íïæ¯+5¸âù8(gå\UÇàQF+dÓíãZñWMsíÔuèN¹nÊyÊÖÀÕêÚ&©m¨êÙ~:$ÍCCüV>@¡¹Bè¤À'¡¹±0¦R X'¥}³%/í?À{0ÏtÊÝû׸RÕÔO[í àòñÝK×TFn
+BÏåìêrÂxõãHëuòK¦7ÐàTOÆN2ÀÖ5Ü¥{Åm7+ü¤eÊXöºéÀ
+endstream
+endobj
+90 0 obj 8849
+endobj
+91 0 obj<</Length 90 0 R/Filter[/FlateDecode]>>stream
+H|WAre7<Aî0È/ ÖÞúÙùþÛèÖû3v²©ï.=Æ}ÈËLú¯%³¿õñëoOP|ÎÈ¢
lïþëã¯ç8¸VÛ8«ÚΪ³5
+Íu¿éçö8Фî;
Fwçl¯½ÖÉ>»Á@5]Vpëâ0Ðç³Ãצe£@1{3 >`ÀMpv
+ΪÐô°<X²#2cóñ¶ï¦Gà8yݲ¿h "Ø3øÞÖf÷#
'Ô
+ ½Ú6O¸½¬>ñnê>Áíä÷æº
+Ãïs·áðôãÿá¿Âª·&00^ÚÆ~KÖçg¤ ±|Vb5ì²4típÍmåÁÒ5aW_.
+>Hæ9kQ¤2Ä@ÁÙËuÓêÞ|Z{í1It}ª`FÐ_2Xpc´ïýÍYK£6a¸àq±ÂÙ®K
+^©6».þRÕ®ø©Îº
+°mGmËý~Ý7XÃP´ùþϸ§¤±ÛMÓö)¤x±döÐ>ÄR"±ú{fó³Lª~ 8çñFs*Îî]4U·=%1¤ÀÓô`ô̬ÖÎzg¤¡Í4¢Èw4`¿Q«ÃD¯è»ÓÚXΫf>î?ýèÚáÆØf¿¡MáÈè&Øñ·'7|Ë8Û1
+%~à&¥îóÖÑ8gñ¬"©Uv?%·Bûóáû¾D¹qÔFp,Î>0ì³ËYå{üÒÃûfd';_Ž`Ô0vey'èdóô¿w~oÝÙicÓém?ïpàýú,Ö}ú_ó´aFÄðfÂìË°ÛaULDrgo»ù»HeL ÕÉOYðÌ¢ ¶ð=Ý0QHwÌÌAzÒ;Ln«O®d/øÚ8äþ¸þé+Ûí½~Y|= nKÒù)ÃéS?Á{h6h)Â;Æ5ÔãQý¥Ù¿Z(ÿ;ïéTEQl¡À¸·º2Æ
+´¢>)áT4f ·RÓ~íª@uWIÎyUyîQÉì×
+É¢Ñ]ÁB²p*±ØjyuOÉñÉ2¾±qY 0þñ2¬5Ú´ÜݵèZ]º¹Á$[ìñÇÆáÁÆ÷7FZ©©CÌÝuV.dsqV¸oJ w *S1T×ÝÍ®[éÈIyç!¬IY?ú¦1T)cê$eWt¸iEÂFµÒï®f\DÙs+BÜWR^BSè È8*<\,uìò*hVäVÇíÐ>^FSýΨ#ÉüçPº=VÃav¹÷}íºõ?$±¦ç²±µí.=L¢Ë§ Ã_ÿq·LAAä$-á=îýR4R¶PWIÑ|líw%*<*¼×S Á«F£G¸_ á¤ò#&O[¿~Ù1#dPM/Jÿîå.rÛVHò
+lÊÿÃ..Ôлòg§ÔºÒb´hgÛK«è+ÀÝ;ëË3Ä~EqP
»Îæ.enÆìë~}(¯Ò®
+p¬É¡6Ké¨2T24Ïz§âô5p6ÞAMR`#h®4`Û¥¿5çÂò?sar¹
,>ÐÌ®ð6æò
+¦õ¤àk@«]«DÛ8kÚð-wéMxlä«C,¦g#ÚëÖÕçÝï§l8kìM¹
+2ZëFpÄS±¿PÊkë<aݵ¢í`[õÂ[K4,>¢×uàIÚðh¬áÉ;Æò|Ï7:ò(cÕ^[a¡S1õpX°
+ ùÂÛ`FÔÖ aPîrf#÷F:&5צùzj²jºKÓ·,]5©ÂlHá^³}5>ø
+¦Ýv;Äɪò6ðÏॻãrõ¢»YªÑ
B.´iì%,
+a`qVvñûýÔ
+m°÷ cm»$®QEÄvº¯¨t(î%(Ó+ÝB·IqG°g°|cI.A9Q8 ,"e<7gcrY»JRñÇöì,ÿ³éÐ8ÜI7Ñ
+uB= Tp:d=¯ñÈ}Hî»á¬C~wC#¶Ýèqþúb»t»J¡³~ì²KêÈõ ñªï":kjHÁøv}Ø«â¨û,ÅòaÅû|U3@lïMË!ìÌÀo=ïqvåBV_ [¬þF
góúÉ1g;>ÉȪ |ê©Vî×6.å´^Mnçê¹ûÞ
+ê2
+&ùÄR¥%Â]DKïÈâF¨ü~¥ÈB\gMöï9±qµVP9¾×ú
+Ó¿PFùagÒt*Us¾vºÆ
+Jt¹jîó$Ø»ªbõdMì]àØö/ßUeIÃNÐw¨L?í¢ìrÓ#´÷wFdVN»øú-$ù½AwÁ ¼×¾DeòO-ù½õl«VYF±.kW
+ÈÚ[Ï{eÍ´:@çX\ÚÄÒI¿èþ&À«ñ²0h,
+!Ù©êusq®ÜY|màk®KÝíü39m
WÀsn½3H¢ÆÕ×S|ÚÎIXL|Å9SÆõ½.Öujè,!/½Þ³ÐÚCwÖ1Î)78Ë;ºÖ={OÒÉÀÿ·õ?îk\¥F¥©R6b51º
+¹LÿoQø¼môAw²»:1Ó«k.ãÊÞµÑcÏì5¶½ùǧµ":,çÙØE8Nû%p17 jÈÛÀ25Üùyl¤-Ó8]/øÍGÉ`áaÎ}Üã§à±éÒî#,ÆVëÿþ^'îqûÔ
+ØéV`¢{7DjñÖ(8(°O µh5
+ÿW¿ûùlãçæùo®ûµ{¿êê¯æúǵ¯½Àoîü6ðñg[ºÒ1Ï<q
9/h!öÕåå03îIP¨½ÝûI¢#ß³E±Ãj$6js
+ãàN+ÔäþYÇ18ø¶c¹æÊ63ª«Ãi¯1'xú£Ïç×uùÁ§V6wb.ç÷g'ãÖÖ
+jº³Í¯P¬GX3ÍV5ÐÜOÆ|º)óú!ó\ÝpW=yëÚVsõ=5²Ç8è'_%ÇMJ5Ó£·´±8BçCÖ|È×ëúÜW^Vz=7]ÌYÑÐ
+«¡Ij<f}wÃFÛpp>k*pGÂÁzA§¥(¸Xkcb"¯¯!É©º¸
+#&¸¶HÆ\'ݵ÷¢Ø;±ærÿãÑ"ü×VÊ\;ØÃOMr7SÐ=á½C»'W¶Z(ÑBDÄê51¦
+öRîÉ
»m.Ü+TæÇï\¿Ìÿôm
+Òé¡«÷ºùP ´Ò¯¦,°ö 5Ï$bfÔÝäiÉ&桬õ4½8ËGÍaÁ
+^´Vö×ØzòÆ-H?>æ×ñp¹â
+º¼U>ï*CÁód9ºË4{ÉéݧënMÁÅöy¯-ÓÕ4D®f<¸¯ÿ!Up8#,¢À$y=AG
+Oïå¯KøMú/HÑѹ¶y^öëNÍ£R]wX÷Îí 6}éÊy`îíU´'§kDÃk÷"8ÀT`Î,°©¬¶¦y7ÍèÔ¡ÖBÚÈwÊm«*p¹6À5D^ý^ÓäâÁN.h{¯jÎݧ¾XµMÇpͲÈdgµôMéÓòßg7²¸¢Ê¯)ÛMtL}³mkû÷~:wº³ÙgRç!Vgãª_þXØ¿ÝÂ)ÞÞÑ¥;Ƹo)Ã5¦hz0ç88$Öm9¶YÚP_=ÿ_t+û
+:
+GÓ
ªÇÅ;dqÇ"î¹óÿÕ8RÉ´ÅeãD{X
+JµÅUç"Ùi=Ùñ Qæ¨ÆÕÖõäÓfþßìÈøº`8é"ã(ôǽEËø6´ñ¾¦ºÓ¡7 ¨°lY¼Y»®À BÞ}í`^µ(\íàÊ£{=;
+{«>72|ùÓc¿04gd Åà~îé'æÊÂEéÅïYSòÅoXÆÊ®ýªÊòÖÂ[øc¿skÖLSà< éçZpÛe&üF\
+~À^Ü*ÞuÄ1Wí®x0-`0æmP« ^Ù Ó®Çô§6®¼Þá÷_±Nn¼ïóa0BÉæÛîÞfÄÏ¿¹]<üß¹ÅÁäÝ]7ÝYq4n`ÌYY
+w»ü¢*iïÂî5?ÖUë#{á¸ëN'*Ý
ggUåKÿÿdUðöîâ¾*+'«:x6º`3Ø8\¬óf.Ùx»0¾µ
õm<¼àÈÿßüwà7ë`ÉÉëPÖÝÁ¾X
+æ"âRJ3`ºÔÑÁ±ÇÿدºÝ¶q.øyßHf#ɶWqÒ¤X§ýö. %:â~´è¥¨üôéHÙ"Ór³ÎÉÖX ëÐ25C33GoëÈá 7òMÒ¼~ïwûÅû¯Ø@ú¼NݾàçuæWÓÏ
ICíöB_4ÎäjQ¦9sÂ)íK,60®Ðö»úe®ÊºrSCÏ×ò
+äh#-H~Ù@jKÑVL8«|t¾n\å_ôêÒû#mCé¼æhìHQÿLÐ
zúe*»Êä^ÎlciØùb_½n6E)kw|³ï ï÷ÖÜs«ô{]½ÁÀ뢬˳9ò¤£@æÿùÎJAç:4,³D×étñ
+iáämâª>3ìäMÌ¢ªrvôì©%äïͳ7ÔÏæsH 8òLÍï>:twõÚÀÉ]´ÎË^-"«åAß1aBÚVG/vÞpd½FëÒseñkT$Üühdnéj^/o5ltñ»ò½«5&}¯ÈN~O/fé*/G¿8\|¾èUi¼ú dË+Ë^CèöÍ5ôÝ¡®}¿¿reF/4úæxeMéÅ7èÅ¥^EU¾kåf£oM³W,+½åòÐ7#[ÏNï,t8põéfÃVLéM¢÷Bµ eæ©Æʯ2»ì2cný"®ýâÖýÊG½Üä¢5©-ßõ³ÝYîð¥8 Nz²WDöIâ²ò¡§/8ó
+½A·g©i&_ôÅ(`ÔMnЮöeȬ¤ëlÊ3cм|Sä«ò8Ìc°;,´©ß]¾hnA.z=sR3ûíÈôïpEÕE53£Z]Þ¢¯Þª7íºúÆ»ÊÁòEã0ü·Ø û#ª(ý¬çÔÞ]tâpùS·_oÎÍ
ØyV]²#^ïÙSÒjdgØ5ªa´R=¨îtÜu²#7ÓÏOBs£Þ w}¹hFµh^S¿:ï;þ¯áÓ»ÏÃÛOq8æi}EB`«E_-Þ^±ø+'± ñÝÑQ¾<Æw$^ýâàj¡¾qü«É÷sBå6ÇÅÇÎïÇ^~¹b!gÙâûÎñDÈ=î:sËïÔ?1ã÷Ï{h}ív?Ç¢ü¥xZdßpª/Å7)¦ÇÞÁ«?.¿"BCãìû3ÂbÄ«øòÖâ:6FïÅ0®<$«i*p¢_;®ðà8I©Ø oÅ%øã¿SyØO62*ÓÁ S]æ§óë@ {õôzB6«ËTADÝjç³Iö0J%àÖ=ú¡¢^§l¾` ÅĶk°ø£EDwAâjY¸©ò
+W¶-0GÙ¬µùºvLa×Ò
+Ò®Ùï`AM¥ß
+òÇ*ò&-лünCÉ]dM/pH¼mN>ßÐEn]<âÏ ßb"¬Ï¦á@Yò¡1kj¡s*1X+pÇgxÖù¸^|`q$$½b$ÙL°F& ÂóBSýÄ´þMÞOLûéµ`?1½þýĤ&& V¿
+H=9%"<Ã÷©ß¿é¢¹U¿Íl+<À-Á2ükÚú4Ö®wDh @ú ¬EÐÐA¡@lÙ¸Rø$ú[êWFbñeù*êa-Ù#|Æå·|0àkÃÓ+xÎÑÿ°¶Ý¿d\ìßë´é±½k½@{¢ØFjõ<
+eü÷¦ßì<Óeð+R>CÈNÍ£¹BG{اÇqlíhÔq?ÏëÅ@ðEk »U"9eóKè
+Lÿ QE¢®Ë$öl&,å>¡AaáUi°æH°&û+¸4Þ×),ñþjMMøH£
+¿®Î{â£EDT¶êm`ê´u_#ND4ÇÊe¬ö÷*ÿ÷lL*´½)îÖ wßHæS at +Ð-º×ÒË.1¿Û
=óVõ'DµûÍ,Æ4mRÄW1¶·þvÏVzÙàôöî°zO¶C<òw0ð©*·oûcû EduünCÉ]d!à0x+Á;´18ù|;Æ÷N"²[ ®p¯Õã3<ë|<8|¿8'T`^õ×lq÷¦Îø"bÝÙ¤çU\ÅÌ F °ÕIÒÂRàºÉ½qY2$¦|d´+k«Ð9
+IX%þ·¦Ág×
+¡á¶K¹ÿA9ÿ- Jýÿâ2¤~MºÍlktÈ$o«AP¿¦Aô-£¯7nhóÔãì
+i«~½Iù4¥8dÿU{6ßaýÑÏ8
+¢W$@¬«Ø±½ú@þgÕg|Îñß©,kG8Pl¬ºL)Nçײzî±Õ}lV©$ º!ÔÎ%fìaJÀ[ûÓØÆðtHnx-Lã$<DZ¸Dα¡ÞvaÜÀÖinõÇMÅ
+¯üÔÖ½¤rêaõé4BqéSÆmLN`©Ã.ÓzlIë´ê°+® j¸@jMcme§2~äCmbc¾ýÛ-L¨[[&Ø*è9ûºYd
+«VJuÒ$!(ÓÔf./!U«/G1"c¢WÈ¡ÔV3ñ&ô;¾úoùn§øή/NSì[fP<uÁ]Ï$á¾'H½§
+üJçq6·Q2æäPËð³÷aW@ËÐC«Ðú@º"ZF/Ãhp)?Û(PcÔDtÇ4+ýé<¥v8YDiW1WØ!äÞÊ
ãE:èZº[ã5¢è H³-ù§uØpÒ
+¶îað·ia(G_oáðÉýh»BÚª_oR>M)ÓÈ«öl¾Ãú£qD¯I$ªbÇöêãÁ`ð¼úLQÏ9þ;åbíç7%W`9ÅéüZÏ=n°Kov`ÐYE\MDÑ
+¡v21dà TÞÖñÀØÆ6¤ßsËkag$ÉFØ9Å%Z@ô
+·ã¶Í{«?n*nxå¯ ¶î] S«O§cL'â@0ncrHvÖcKZÀ U]qí
+Ä¡'`ÒN¼4°HiåÏoOhY×t«qXW©úýl=!´'$k{Z3¸ánÿºtËàóiª&.pB(ù$ÖfõIXþrz\á(lAy:kÀƦªZÃǧjAÓFnÌÞpl%$çÁ"+ª2ÏKÍ3ÿ«ü½ÿ¯üÜ$Ä[Ó×ôÇø'FøôoÝ·r&éúMèÄ@#í!X<ïÌ´ZCù8¹Ñu¯g03¤ì5j×8n³!±°5hêYmºÖ¬8,8½èFScAÛð7xGb^òDQ°Ë´ë¨é,Zóô³ä¼&{'ǵ«¾®Z½aÓÇûtÐk®6äðOïxÒÐç´"¶¾&Þfài²Cxp±wgâmD¶84µ(kM+
+jÃr"Õ`å7½Þs6v#u6¾õÃ?
+endstream
+endobj
+92 0 obj 3584
+endobj
+93 0 obj<</Length 92 0 R/Filter[/FlateDecode]>>stream
+Hì]sÚ8Aþ';in§AØ0i>fi;ïYFØ2V+K~e)þúµ
+!HÆ<@Zç!ñI§I¾/éù¸ïÎæX+&¦ÓYÄ
ôéÛìA"úgãÍÉéXåÑ>CRòèá&¶Óh~Úþ£Çùß}¥È¼ññ¤÷øw/dÜWTä2O3)r":}åÄhd¥`¢à¯ÒÒ§OeLÑRA,D1FT3Ê£nçÇ;¤
êHoôvAú$½jégécÞYþ§ì + TM)
+Þ¼Ó®ËcºlOF±L¦×F#¹x&Àê;vüë(}è(ûnoØòNæ·XÎÒwû?`\SõU0@@ròzz ðÓrÉ"Ø÷/ѺFÉvYÓ¼µêC4z'Íñ·ÑEþw忬xþÁ"¢Qξô<8TFò®L}õuÀÝzÎ%ìV̽N«ÑiõöxiB§ðVj1W°k¬ºÊån'&RÅ@vÌ7`,jc¹\«-ß#Ü»Ø)g2Ò15;5æy&2§B
+$l]³CãûL³ÒA»6cN<,8+Ñ6¢&JC,ß9fYIvIbJôîz&|°Ôp!¹5á{%Ä1IÂpùY,KzO5)W_}]åzßì:ÇÒ(öy Å%Ç=<×PyöôìóÇß8 lÉ{µõIèg6
+uQG ÕѼ4§ËûÞTQ*zigÒ^º³ØTöîäT÷õ{R1EBZg£Ü/ö'¹D2KºH®§Hu@ªRötRé9;)òô
+»Ú÷-±&Øéø,2:×É$ +½@=ý¦Ìë/,>³84ö"Jä]TW°!ò¤«qpvq@Ø«¹8ís)òÎ DÕg6ÎNWÈRlÃì^ÊU¾EÇÔK=¬ú¼ü
+lµ7`Óÿ,æ$`Ã>¥6¿â2Xèµï7PfÊ×í.ÊÞTQ*zÊî¥ËöîäT÷õ{R1EBú@e³NèÞÙ-$ e)Ö1O]år·ì4¯ªv6³áÜÕî"¹µÖå§;ûLÿß É}<jv
+ÍóLN}pð
+)4ýºfÆ÷f¥cxmXÇ<õgHpV¢JDÂïÉI³¬$»$1%zw}º~hÀ+ÆÊyVÂ÷²RC»äÜIa44p&ä[¤?{"¤<Õ}¢xß°&ØX?YdtnÃH at VzvØ»"q:dQ®
+Ú|mß*l>SOĽgbT.ÇqjÀEÚîâ °5;<Ë¢ùg§FE© {3×¹ù¶¹Ì¢nk§8³fåÊvYÅX®ì½Ã¹bûgu¯l6£)h&:ÅXåÑ>C
¢ãbÈ*¢á/½³õ¾¶ææLßVºc¤³=1R$å ÞöY¤¬§¯b:¨Ærëý½ÎóãDÄZeBémÐ"Þ.H?;S?+H[ôÎëÝeH
+ÿÐek%´Ç:íz¡Mì2,ÒØeH¦Ñ!»ô}wÙ%UÓ*öØ·f?bÜ »¯$¾Ø;[/ý©ïØñ¬cô¡c캽a3Êo8ßuXÕg黽0®©ú*N 9ùN==FøéC9ÃÁdlûhÝV£d³¬iÞZõÍ!
+½æøÛè"ÿ;ò_V>ûFÄ$ #bÀM/ÿMbR®þH²ÃXåÑ>C¤íé#Ùç!$óÓ¼¹B
¸%d®?kkE}DuuhàiñbgøsH}YÄ«Xz&Ô^æ
+ÐIÕYâ÷g ¬ScPñ¢îaaFÄ!óæ
+°æºqH|yÛFr/?ÔÕ9¨ÎAuJqÞã¨s:Gó:sÐÒÉAX¤×9¨ÎAuB}ÏÀÉû¶ÝýÇf/8zñh¹Úï¯CHû]þ¥\!¤lFª}âA¯c| ÿév_Þßvpd͸¦ê«`:WÔä;õô@á§
+dYUÌdlÍ!
+½æøÛè"ÿk"ò_Vî\¾51
+¯jÓDF¹¨Ó«àP=*É»2õÕ!w[kõÐU®HY$¡þߤuP¶Z+frô;sCÉbjýÕÅA²kh ËÿüLª
+4¦N»eó¼êøIµÕ{{L§ JÊ@+ÆxÔì4¹çÈpx
+)«uÍï3ÍJêÚè9)ÝWUã¬DÛ0&(Ðf~OæHe%Ù%)ÑC¸éðiÀR+äjÖÿkÍï\ìöãñ4áW%Hdõv©$B<¨µv±/ø|£ÚF&ºN«çÁ¨Ý³®ØfI4Ó^ø
qFÈqþ0$K¸ÍÄØ2mL´ûÇÒîR`tÛiö\F±LÊ7гÆÊj˹kFI[K£<ÚçqH°Pt\SE´ÜÁÊà@xÔû«<únÇhæá8Å,°ÚqMÕ×Ôp{EN¾SO¤~úÐ@Îp0Y[o¸9¤A£wÒ]är®sñML={Þ~1jbxj`PÜ]\ºÆ£g$8~Ko½,þÍËwé¯Ç-âiøÚ/¾x¿Oì?pAaFy=tÊg®ò{æë²!»RßnaÑ¿k3MCлàxÐûfÿ´ôhoÏpÀÔ©ÎL¿!3¤_IÔ© Wjzå
&$4uhªCSÊ(êÐT¦:4Õ¡éÉ¡©¦MCÓ$aD¸©âå{OúÝÂƤ\=°Û§
ÿ)ÌòÁGÏE§M¢ý!½c$ûü$[ò^qâ:
+5â¹þl,)ê#òå68¢Î8 ¯å¶jzöÎöÁ<¤ýBðÁ@EúlÏtÁ¥ê
+ñüñ$H¶däMaÓ6s
+Y
+½Í9>N8ñ~ô_ÉxLÏ?¶þBÒK½:ä\F±Lq¼´-©ekZtõ>ré6©"ºô´WH¥V1£Þ}çp_Þ#*-ÏI5dA`úMC¯`^¹ïO4:?Æa ×
+¹ã}Â`üdÑ!ÄÑ>ëâ
+;¨®`O7* {¶ëHzÊlã,Oû\|£sQAõ
+½¾Ó!²Û0|i2Þnóâ+û°<?UÌä
+ßËacêNTm±f±pBí°jõþ}mÔæKtY/̤<ÔÌ?³X
+ºKA23º7sû*Ê®KÑ(I9˳º
W6ÑG4b,òhÇ!ÁBÑq1dLÑpÞYÅz_[ss¦o+]2GÒÙ)ÌÃrPoû,Ldï=¡¯b:¨Ærëý½ÎóãDÄ3fBée¶/Ì:ÒÏåÔÏ
+ÒÁÆ"½Sï²ãÜe¸(Zcv½ÊÐL¦Vé¬2,[øUEú¾«ìªiklÃ[³1.PxíÈ H¨p£õûÿ±_5½iQð¯p©ÔP£C#Pi¤B?nÕb/x+³ëî®Sø÷õÚ Ø&öáqÆiÄÐbfvÞÌ{/¡~Öªß]Ûííûeý±^Æ!¤Ùê%\iæY~VÂTmYÆýÏÔ¤Sõ>Õüw
+É{J?c±1I· Zÿ4Ûàm3uh/)6yÿß
+æ~OÑyA¢¹AnV+é¶FÿåɱC|r5él&þÑ:âSàÛ>©ÒSî&RFXjv³£àà,ëc°I÷ØÄB»)ô"qͬ¢f¼jáZ¦pÀû³yWaGlXç
+´£Hç>c¤Mû äÒ.4fÅÛpJÁ4ÞDfO¨/Ë(]kÿÄ<ïÃa(&ãÞGs£Zv4{¤ç®¤ÁÞ°Âä¬Z¼ÖÒ³×Ò¨±ô£à¤EO
Q÷E-|M§&#,åDð½b®bíñî1!«¶·=LÄQ <ã2qͬ¢
jÙZ¦pÀÛÈâ×\¯Û°÷ÿê>"ËiFDÂý"6ó21îá®ÿö.vÔ5ôGÃ7W°+gÙ¶;Ø·eìo
+ÿèÿÜ"u@úÄ=ÞRk÷)~~WÊ_kÒæRË¡åú«ÜÊÔò÷ìDÅÒOMTZæT`Psï®ø_
+¤
+endstream
+endobj
+94 0 obj 21425
+endobj
+95 0 obj<</Length 94 0 R/Filter[/FlateDecode]>>stream
+HlWëG}yùDü©«».ÝâÙ2ÉJPD6NäoÀÄDyûºôìÌ.±,oÎöW]]S§¾9ÿöô«¤öå'_öú¿ûýoÞ;$|ùé}ÿöáÇ·ß¾xðïÞ|ûöáú§Oÿ]6âWýü?ýúåû~õæ¿ÿùðæ£S;¿ÄßÏ:}À?9µñ¹B¦øgâï0ó¿ðk:·øóùÏø?áï
+Þms¡I»2ÈÒ£å.£/¦uÊLj£
+!*R±R&¢T}¨Tá¢Äy¿¬
+ݱ¡Á3ÛiyzïËÉY¸s}sçî\MÏ7ñrpÎJ¹µì§«³r(ùU ;þÄb<·Qz»Ló¬7ï¢g±JeCÁ¶Õ³J¹¡S#mÂ^ÔΤ+7Ò¬ a8.ÄV\hô$
+
+Vyºl6ä72ÑV>´:¢ÿvÿ$³<XÖì¦"3<MoyRoªÎ.ýiGÀ¬eá^u^
+á¦_Í+¼ Of-O§Öp¶vT+{q°ÉÿIwÒo>èü±Â@m^Xq©9G"y`tÉj+¢c\mu[%bÒÀw:ÒÁè²pPÚ:Kvªv p°-
+¯Ï&«¨é~YGmWðûWbJ(¸»tYX ì\³Y~¹í¼Kefïãâ¶ó6F£xTÙ¢þZz
+Wy?¼qAo¬h'»×÷´Ê>¤û¬ï1sô8b+®©ÖÃUè³% òJf @êdXyäÅs0\d;Áï¥!(Â?ÝæO^ì Xðé0ÜÐ9º±j(çÃgrAâáÀÂÃh¸Y×g%ËФ:ÂYÜ{U>/*B}³*nÆp5*"Õ:Õ¤M«zÐAæÊtsõÒè^=\TiÁ¿nÀÛ4gQðÁÆÜsv¸¯½^+UÚÍ`O5,\¨´a dTtI¨ ¦_α"pv«t5÷{6\ õr\A^ÚVßàýWJãö,øCýPääC
+LÆ"ÊkXôñ*`oëÈÖØ?uP)fÑìä~Ðlàµ1V×Çð,åÐÓ/ ìNo¥FY]Û)`8Äm¦¼GÓUmzÇÏbE8zJÕîöøi©
+[
+¨$j2([0ðê½HÓ¼ø-ç¾B¥Ë Ð&ÛÀRûÁÅh÷FÊñ5r/SX÷vh²ß4j
+£\°À Ìò4 ³Q£lßó20tÓð
+ÕAÿ
+2BÏ],ÇìïOOcfìn~u»7 ÂZGE \$¥Vãsì®6¬Ò
+Ãq}NMÈwðt{ú´hÒT1¾¤·¾bt«¾t*íÒ¨ ÛRPznæ0ÜwÖÄ÷#êØs¸zåÀᥳöUgEЫn½jhO#ThÖnu²$ÄtêbVübðb£y#ÆýàÞÕfÉ
+H÷uùáèOt5rÓtÂÌÂh)øÒO^c}ý ;gÈWìz¨ÿ`ÛÒÞÆ*í04rÔvîÒ!R4öSæ!ÄË`.án¶Ó%B®ë
§]gJq>§{³fÉfºp_é[¿lä¤pBôÐô*UÇÑÜ :Þ¨3yk-ª
+¬ÍÎAgä|Øe*x[÷Ì+Øò¬å\ʶ¯Q1øjcrKg=ׯ°Q¹nXÄÞº)Æá¡×´s0ß࣬½ÌÛ]x0¸HÊ7PL¦ËÒ
+¸ÄQ5c¯á½¤WuÆLº;m8æâvS÷(|1 ÊåÉk¯½¢Ágx4å^{I3p©&UC!Î
+Û_63D)AÖ|º\Z ¢U,ÐöÑtÏÀôÕ
+îÎÖR
Ôùn²Å0b(¾]¦´0wa at OµN6²bþ¤ÆÄÔÚÄðÀzVr÷ü.·É¶ònÑ÷»B7©2ôþ½++¼¶ÓL"½5ÍÚaA
+R¡hÿeFæ~a»JV,;èÔ?ÔÆÚ9§ÁÓZj+á^S ТlÁïqNÜ7yáÆw+233ÔÌá22.¼°uaÉíDì¶ê?¨<ÃÖø}Û¨r¡ H>áÛ«_d]7K²Ø,#E½¿bfϯ°¤CJ=rqÑ ýC%cmM¥
3µé[zO{I±¸ÍµZú7uàraÀÞKIáz<+lÙ¾AA#7 ëûÏ]xAé5îÒºID
+Ò`°5K8rËe%à
+¿Ìà.Ð'ºÆÅEWg ð4T7Euq¦ìô¾tQoÐ5+mÄ¥poêËÉÿ÷¡9tv¸ìño]^õ©Ñê'Pv¹v+ ÏÚ(óé[tÖ¨;±¡°"J°m%ý¸õ'_Æ æ 00²hNNÑáR!;"x±
+ê3Vïó\Zå]ìÖ°GàjØ öä1[EÛyüãó¦¬B|9Ë7¨IZa§·h$=ÜG(áxKr,äÁ&é,Óí[¼6ª¢¤{ªÀW:Ö+tñ: ÐO
K.CZ±È×x©¹U-9ÌÜv
+~ÌdÝp:UºÐJh2$hnth
+¯Ökücð? G2hrÜVlX¨«Páa\©É
+«Ì´ÖÒq,ZAL¬äÄì@
IqÕ9ÅÆ·:ùéú¹äC¿yp$m"pÎxsòÛYu6hY£ÞÌz*ï»Øã[Q¬Û\J
+î4=ópC#¹¼ôCßö¹·¬ÔØm(SywX})Sêûc Yñþçè·Íô}*8Õ¨®6ôÞ¶
+õ0´¢zmD°¹Z¦ÐALaé!7]-ö£ûRt2ãKÆànÎ sæ«z/"Fc]Ãíc´7³»@ÝÆánÎ'×hyFXå=UTz.jº6wóÏö$t¹(T°ÞO9ƦPD0ÖÉ¥¢iðÀNa,)µGÁúMf´Ó¼A|
+0Â[ïÃG9)ÿ¢nÖì.ÊàPllÂ"ØFÌ&XÄ&I ðÍ!çE3àFo®îÈÚ#Ã&k÷#
+ø"Í!8ø7>->njCìrU\OvûZÝñçEOÅ`Ç6O/½iQ^íPRKüÎ%ïÊwÌ:x¡óKã®aSQpZ¸MÕXM»R<¡nwÇl
+b¿4ÖÅg <<²PùÐÚ,aè«ÝSq®±9ýhSþOX½´&$2»-$ä¯Ã½^hzè6âZùË£J³9gLS£¯£\aîÔQ2¦8¦H&6dgV`[i(4¼ËuN¥o¬Òë
+PAÄmIºôÒ|êm¸vkOQEø¥}ë¤3'ÙÞ2ñ¥Ðót§
+YI}ÖmËm
±ûÒíð[0c³¤MBwÑÖc6ââNm+pÀH1éìc´§¹>kzª_KÑÊo#¡c$Î¥<Í^Kè¸÷ÝOo?½ýéþÛo¿ÿðëÇï¿þû_ÿüí¿ïAèïÅ?ßýü÷NAo ûÙÑÙOý
+;B%£ù£JíA`®X%ÌL(þ0V7æq~¤ÜÆdÅLË¥¶ Æz³µÓ½¸k
+(±kâD®®½ÞýþgPá¬D|«õ¦Po*Æ·/ÂÉý6.ã¬Ipc1D^WJ·ÖT
^¾¹cf#ûzâÝüAÀÛ(^¯Ú0áYKÌk11bu
Tï
õ{H
+×:NøY½) ÓO¹¼`LÎ
+dD°ºa
+IPç6`»Y½l@ÙëTfo*²Ýù¥òÙïÃݨÅR¾ÚjÍ4þÃ)ß\Ì£ Ï)w§ÿMyEî¬@.Õ|T)n·ÈàÇu=@w{ùºÒ0>!Ùë]ðë-Åβʴ2oBpÜ-uÁ¬)3hÛ8³aËlø^
+³1åÂO?eÄ;·¦wAÃÕr('ÌrÍDzsiÔô5õ2CÝp 1«>Økéïú2%Å|^ ³GB*.Kq@äÙOxû=Ä4ú1B©ØÝgÅô=¾ÌÓGoB=]ÕÏ©úvÕ°<.ë;=ªìAl«Cb¬æ`àMâIÛ5³ìNæêØ +kÅ&·8ÏU#k±?ëÂÞURöùíÂiLÃT!#×1£¸þEâU»
+ÈN`ߨ®³ßù¡Ü]CÔ}ed 2Ð.nøüÂÀ,<ÏÓnk-´Uhºûðgrq{Ù¸ãÌtÆÃût,iKj£íòLÒ{¸£²b*1ú_\20¤K<ЧvY(5Å-®ì-Gë|L)Õu¡'æp p1<ÆЪi±¡XË$â;£
+>ØÀÆ7Ä?3»jï¶+0ÜSøjShAöì,q·ö/>+ÔHU¯¬`ÇD³ìðí¸¢*ü¹
+t½=~
+ÄNþJ\1¬`Ó^@{ÿÃè`õ/~ôÚÿbYqc>ÜôÁ@ÅÖÎ5p Ù·IåíàpÆ&2«Å8qÞkª Ð*x¸I§¥^C¤£uDØâ\²mÊ2F®Ó7½îØ}Ü8*©¿9Érö%ÅH?µM¡JWѦÑ-,×Hæ[¸Ü[Ë¡È]
+Á7#è?ÌÔeÐ%eäûÈÉ1èØ]0¥£[ÃúôµÄv{úN²jìÎQî}&R¡NÊ8ì]¯kËèû¶½×Z
+|ïÏVbg¿þ
+¡¨¨ª!T¥¡±¹6ÈwÏ93û¼±#gv3ÏîìÌùàøUí^i1 D'd³ÎÍ<÷eDW±öÕ èbda·_HåÜèôê£Æû/ؼÿíé °i½
ÍMá}L{;õáH¤üÈ·@®ÌJ¬h÷êphji{[NÖíÑ :kÝÒãÞÎ,
+L{°µ;ðL:hÝú?Z¼V+&Eñ6ª¿×Ð8ÐrÝÛ¥£Y\.<ZS1jX'Ky« êw&Ò¿Wh
+U
+ÕjõÁ*Ý^!×Yö©zÁO§NETpY-N6µß³Dö ÁâW}k"x½©ù½ÈP¬»õEWÞï¡«ûBíyùî"ödÍï»Ù4²_cbóð½.D¦Âlc!:9 «ªF,IÔÏ
+sߨ®êµYsÛ@ÔÍ:Ìld,TÙ(éÚY?XÈ-
+ZDµsçîn}aº»öiÏá<uØ4r at gYÀBm6MúÝ*RÿºS;ne>ß`ÄÉæ¹Ä»~5sÍ¥Ó0$ ©A©¾;KYt©AÅï¸àfûÌRm(øù°àôRêáÚCñ¦_[?3ËòÔz Ùå`0tÀ.îÎäí,x¤Q`ÛVÐiE´SêP¦¾ÄÔx
+¦þoÑ1TÇ32¯
+/%®gÛ"t*[³Ð«{wGe.$¼ÍCeCù*{¶²&D©1¦´.7-@¦øëÙKÕìLa¿Zö5&é3Scáypì 5µ[=KÑAµ6móªÆçõ«;Ò¦Õ#/éÎvÅÔ1Ôr !8¶
+l!µrÛ³]'ILtzpÇIý ',@?ø8%p§ïvg÷/MZ¨o¸©Ñ{±ógT®£°ÙÊ(gAãÖÄà xÄkPYQ/#ä~²ç+9ngB½4ïWù×[Q·Xe½0oRçK[v`jMc9%ñ(ܶZ,T<wúc¸
+?¡÷éñ
MTR^nIì3à¹
-
+TµÔõùág[y#ö#ßßlâv°/ÍΫ¸§#Þ{mÁCò{æçODI´bsL§Hg;?(
8 ,EÍnÉܦoº#°ù%îRà<?g)TÛUWRÕDAtQ7¼>J[娻
+¡áÂ"Ʊ p,Íô@§§íüír÷g£ÍļîVW»·[]ÕC¥S=`i©?ÙwÊ\Ì0¼§2ËÐÇq¦ãjo¼cj@{õξZ9QE
+-PT
+鶼5¯á»[*î>E&5¯{¦È FÿÅO:}å²;±&xm8¯@ÐénP¬ÕégÎæÔ àÇÊãëAvÉxö²>Ý&±>ô¼N >"4(± ¬iʹեɹÎ<¸Tܽ»qk«§ØJ¼öbQÀÛ
+}®ï¾ °Y¸¨X§²o
+]9SËôNŦ§êȬÃV66#¿«µá&¡7ïWkòÆ$ív»íµ¹æäCÍ`úêàÎëNaÛ墳Ó4pÒ)J=_íiÏ*<&»¹HÚ{1Ø+ N¥E¢FbaE- jì
+BfVz*âñp`8s½Ôå>g¦!l*UI.Ùq×àX~Cè+.%¦Pº.|¤ 2$¥X0&CàE¬Ìf}NúF
+ìYdN{ÜHq¤êG*
+´#
.´âîê4Øã¹H&ðÚSTM¹ªË;,GCÃgFZªÎL¿D1Bv×¼q ´R¥yZnSñ`kyëAå.þðûsªagè³J¢Æ`È»ÌíQ)&Û¡£À ñ ¤á6íùx2½t£Y¬Z¦ë}KÈ'oQS8áÓXIJÔµDú3Ý>"nORæìö´0Íaħ$
ú«2·ßc|;§©ÊâîBÃËö* «õ¬Â¦R¤BÉqVè9B¢Wm
+´ÉÚú6Øðy1%ÿuzñòôæ_øí3ýãç¯îî¿zyÿþöæíÝãéS}szñêkI§ËÛë·7ïNÿÿùíÇ«Óõí»«§?b×ðÿÞüÿ³½ò÷·÷÷Ww7ß>ÜxsõÛ»ï>Þ½}¼º;Û¿?®¹ÿýçwß=^ÿçöÿùË«ÞßxäÅ®NßÜÞ}üùöåE:½ÂÏß..>{¸HÞtú?ü÷øMü÷7øÃ_ñË/ývª§oN?üNïô¯ÿã¶ÔäÌ@{Ø8ÕôKÀÂpâÞVL\â9Ô}°·`Yfò<<Ú%ßWì0Ì`HÐMú'Çö®<K³Q
+PjtûYË æbKfXËid4 at F%; (TçA³" ½RJh-ö:|ãÛ9¬óqª
+JoÎ*q-ÍGÆ @Ä÷vêãX(Öãàx?VF C"ºAt¦§L:¯/<,Qàî{ó¾TÈN ¬Ê4@ÕºàPêá W7ê»á>
+ä'À(-3¬ù>©Ô@ºË;#SÑêÇDÅõ7ªK4¨É »BNÊ:í8<. ÜÖê¾×ÕàïWK%7<Á»C
+LCÔ_ë2|û
+ÌÆím¾½R©ÌW3^u!ZIQd0¢¬ñV°$¬dî [
+°"tI½ø²?Xü2
+Ö¬T¨Ö3ÔÙ4G#´ÿ¾eOBv>£QIWg0«\Ù¯oè**h'¾¾yöF2Äé-ëûÙïUÃKJywÁM½4É4
+b8)¬
EË
+ÌyìO#>V»=*ùpJÊ«öMH;«Á÷ÜH-û¸¥Í°×½Ð¦¶Ó#@¢³889Bu¬~z½ÐG#7ÄÕ%¾g ¾f`Y¹ûÇÚ«±2êV¬\f:8(Ý,À2÷m1µEåÐ}£xÐ<? "¾®0«1ãéí¶JKN:e;Hs)FQ˹Wç®$νV¹@V¶PierEá<ÃqVVu½Ò·®i¥hpÙÁ¥!\õåÝ%ÛÕÂAI}[')À5`vÁÀ2Ó.×ÊÖnP´ó
+v¢9س(ÑÆ]Ê£cëô³
+sd着+'q~j
+±{¨61¡ D¶Ú±½õ
+ÆÝió¶V-Ò!¹M]ÜÅh'颣ÅQѺ#
GôM>&ø{!Ù<(L4Ù`ÃQY±j
+¢H}1pv½TºÁ-§øXÊâ»/%qìØqñ@G7TIùV×ikÆnÇ¥°wì
+BÊd{X3cxþ¶ïLQ¬n;NÁÑk¼â§n´XAL.ËÃÁÌ9Ê
+"m5ãRÝLmÏ0¥ ?üÔj¬Ëf««èª}(K4Ó¤%:Ét\G±+ÀAk¦be
+ÁÍápùÄ
+OÔºxË*f/ÛöÃB"¼·éÅûûumJCD
+*UÚÞ 0Ä&ÞðýìfgÂ(AºøÔr½ÐgRûçÚ8kàw¿ìð^g¡QÏɪÚZ¢N2rÚd6Uðó,4Wq°MÛÁ0ª
+Òýì\`±ûá0íã2t¨hó=-ãß°híuÀÔ xoאַìÓõ7ǽ·Ê¢±'xµ±M-[;7÷4þ7fv$<@|å
+ÐÜ¡Æ¢O¹°ç\'¯Jõ<Ûû5Ã¥¶g¡;ÉĪ©nãFøH6øáO¡*á~é¹|üaggÞ
+/ýæ¥çzLÖ÷Gkિo
eXk;ÀÏ×=.ðv
+PÛ
+<§µã¬¿Ö+Ìñ
+xO+Q¹,ÙDEêÆüô+ôf³ð^}QbÝ
+°äyµ¢ß0xëy¶ÜÓ
+ð18÷³>dw0®à`\á˳_Fý2ë
+Øo%¿Ý@Õäóçm?ÀõÛä³°«÷÷ôh©]ý~Á¥xk/ÌÎ!ü|'±ã«Ì;c
+rÇÏa¹ì_ÀÖü"
+ü¼`Ľ7õ
+Æ
+c`k~¨5þÕ(ó!³®=@W`@|ËᡲÅkªp½Åk ´æ'{Ú9áÑ×ûÙU¼\+ñø_VèOÐÎD åzïíñ1ub½¿\ðìú§¦6drþ¿fB©ç6ï0ûÏ
¾7Ð [Ü'hü|;¥¹è|¿ì5´÷½×e¨¦gÿ²kE.#á-ôá:ÒXôÛü÷ÍX¡Ç÷ÒÇÜè?©¬?õÙISÎ0BêØþ2XÐTVÌÐSÉ$Âe©³ÙdÍ> hfà\¦USIKÐîu6Ã,-#jÇìÚ7TxëB-¢¥Ñ/oXGøõ¤©)Ï ¦¢Wk¤UÓ 3OÂþKÕ>Sùþßå×áxÿzkì©wa '^ »ï":züÎ >Ë<EúÂÍ[N¼ Õ#¡dj/ @³7Èí/:ª`<=´/ SÊí£ß73*qBÛJÈôu+.amV7ûv8Z]Gq§·
+¨Â|E(+ Èï«pe-sBÎâ Ké_ ¹@e¹)^.Úìxál/GÝ÷@qÎmÿØá>ûÂÚhVï¢MlºÕ2Ø¥d«¶¬µí)¯&ëz¦Ö½@²6
ú~sÞÊqw£ùÚ4ú;,5
+Î
+-¤£ðÑ8>ï ¿?cI9¶V¨GöÆr&,i=Fn
+Ûî;Ĥ[þ'¾aNÖ¬öh9¬j¾?nÜhv¥f¬>;ø×µÈPjZé.8
[q :*ao0Bkk{¬µmU¡°Gôº?¶&=µq]0¢±÷whMæÓÔfö¸h¿ÿr²½¯Q̺*¨JÂVX
Ì¿Kñ¸õ22qÆ3ørjö´@±²Õ r+-Çè0dÅÀ×Ä«»£4sÏÀ9L=nb;b;ÕKæÆ
+
+ÓnóÚæ{~`V¶µR,
+¨ºQì¨:íu3¿U;gðgß Í²UñTÌ©7ÌMiµïÙÒôÕ4ÀBݸ68Hx¦âx¬cÀ®öµUØãV¡éc`Ì:nâH6åbÑkÆ]kG¦3.@3_ô"Ù°C@¾Ýýmûm0o?piU¯L²¾¶åà°éôH;´OaH>]ØÞSV«»E=·Y¥ÔJÕ#}¾@qÕ¿ï`%QgÝñòÎDÕÇ gÞ¹mtèLb. «äôsf(ʨ¶ÈWì¬P< U²ûvçuÐÖ¶j$,£´78ÏuÕí¼Fäֻź
:Ø"; _ÈÌ z¶ýWí¡ÅkS§Þ.Áà©,¥ä¬W¸ªÞ¶®§¸°½Ð>oyÖ칫N÷s¿û 7
Xbàp(2|mRsB5IôßUg×1¡´Ô)Pêóã\ëºõµKr.õÖ²Cõ&çà ݶªëKåQ^)9cÜɯsQVæ&±RòNAvE?×®°4Þ[ÇÕQÐhzwÏöH?Z<r» Þòx·à®þ°õ´ù)WS,tGO+:Då¹-_¶l}û
+°wë
+ñ pùÿ_×ð0Fs[~¾
+ÛÚÚÌÏþ
+ڧ椲pé}meùãKCä´¥h®\l5kÒòAéÊö>?¡I at Y6øÏ5Cú\öë7· Cj·~Îk`ÝfH¨c
+û¸øëw}°dbþqí6Úî0åQ}¨ß`
+¤Íµ>¿$dÅË{ÐõJå)oU|ø´õÔ|RéjRÚ%ùy6 Þ;_+!<Òºo*4ù¨*[Ö|¯Àø*ªÊ>S¿9@"?wàé&ízÝ ^S¼`Ù§Á¸a2ý<ð ?Ï2*é´ «ä"öûÔ?;©æÆjU<`ècþ}/Ã>¤m¢·çuJ·0ñ
+ÑÛù¼£uµ=¯sb0{À£ySÛaV ½Xÿ®ÞÐLÁ¨Ýð¬sÓµÿ_"¤"uýÀÍæum9ú)ÁÈÊ´æRK}òØv/^ _ûóg
+WUÂ"¥ZS$¬jkWbf
+àøǨ|µMÃYõ°@ݽÃαÚgWÇ%6î
oéòO(s"P,[3M»|w-)}ØÎ
+
³ZåpØ8Eó^s[§Ð{ î`ôà}áØÁ>ªHy³þSðÂë¿çÍÓýÏ1Jç>t¢å³O½><±¦Ê÷s&Õ½]Ñ}R¦V Ô<@.Vp.½Jº ;sèVÀ#xîÜútñùÍ`i´/ÜR'røyí S·6NfÔ-ÝaÁë;mâO
+FÀ³o6Ól#@c×['8wÐè¤v·¬°¸«> ß7ÆæqXÂVê Á®6r>ûRM¯sSPcñºwºe@fó¿Ïq<×Å>Øf^×NÏïÏINXþð2ÉìVè
+Þ´Ø39àQíBÀØP»w02É+ýùò²É&ÏÅ÷¡ßE¸_+´³bÌÂF?/Õ
+¨úÝ_*ªu°¸è3¹ÚÚávAè\jÃAK;@Ù#0©Åb§zUg'@榪¸¯Oq{k{W8ÔíáÎz¶¦Çð{Ƚ¢kY·M[g%`È@¾}Þy¶Öj?]v§2Ú¸®,µ²lcyGyB¶+uûÀCO¸¬»mTåþÆ;æ£vþzlÕ
+é%9u0? HÔ¥vÊéãʪY9mDK Z¨Ë@,ë®d*2¥#«§
+ÊÕé¿ûs?·&£ÇKTå½:=\f§¡|8Ö¢µ[VCqÐn³Öâ}CéÈbü!¾
+ðøÔ}5±
t¥Ò~À=$Ä^Y5gkQ`S½î²FáÇëÆvéTÚ01I/wýqåí`õ\iñ¾Dà¤v5À?¼öàC8XéØí§PÛå7æ׺YB4ôØW0äʱ ôl=7]K3ÓrßÝÃzÂÆ.À`Ëf¦¦M~ã³}¹É<ævyB×m÷§ÞG8ÖZ¯sµÈü½;óÆG
+WkÇÝ'n6ìsGØy
+Àízc Àê{Èwð©N´Nd.z¼"ÏHI`y\Ö0F=&õ{h_qz¢Âùf«<NAÓ
+À?;¯Ý©W}X"mkHÜ¡%Çr\[fÔϽg¶ jãËÒ]3Mª¾AØ@Ø\B˲ð!ÙÕ½ÀBU;Äçë/tûh¾³8ç¿0ÃÛßZ#¬ðÓ&ûߣb©^µæbÐj¢©/Þ q[ú+
{-4
~zZRûJ}Ã.À®'Ôö(ù,Þ3õöÇÐÿa
+ÏVótV_³:a,¾WRKùà˵î«-¼Z(0J"kÃCjÒEÝðØò%Uz¬±Ý;X³ÚèyÍ¡×@Öäký)´v°7æ.Q°/æhAﺯÝöÖ?_7®EìÛÊ¡BZÿ¾&D !ÿ¹&b¨Éü6ÉÚ¼¢ë,Çü$Û;Px]æ[9ÀPxÊMÒÃäÈWev(Ö©&QLÍl\tÿ[JjúR^ý)ñÛ¸_R-·¡ª¾×ëP˺U*¦LH&G·$f9jÒµé¬Næ"¡¤GAS·MS_¢Ü4õÆÉÑ!gùXHñðñí*µ¾Ý¾Â[#·ö¸ÂÛk·³i±=
+{·ÏkÎ ]D~[+p´#l¼\P9/ÑCwÛºK\;ð¾fNó*¶¢ÒY¿íÎÕy+¿Ö}ÌîàØ~Ê ½>ÿØzïV"!¿K¶^p`3QduBHÑ´¡nZƳM`¤Z]áKÙµQµÃ@b¤5sÒc(:n×YåW² ¹ËS#ãj~¾Îîá¤ùêR^¿íaS°E¨»×+>/DÀÿÑ^¿Gc
n¹´HÅz²MaØiõä[´
+RÆapÈ·SLÑ{ìW¿A
+Z\Ó~î^õQ·úvc.A½®_¯¯gØÃ<à mKáíÑÜÚ>]Ô
+¡RuïøðûuÞ±±
+9Á~=ÖÆY±÷n´kTxkp{^KñýºªÁ?5Ccn]úâºÖ´Ó.¥íÿPdê-¬TPyÁ:N}\ WhD÷)«§meÖ<\Ç}±Ió+Î&Õ2Ô&uê«=B¡L®S˪¶zcoØ 9«v-Ï65¶Úò%lN¬ÂæÚ 'T±bÐìÏqO¸¦n¤W77>_³<ý'Ú<ú®yäñh}@|
+êQRQ¸¥>±eÅOÅC´ô'LTNù7ÀÖ$_ìÅ-òZ\óÊMRkBÊm×m
4
+
+x÷.¾$J§ûwp?¢ÈbÑ^áWí+H4·ÿÄVzûpj«ØÖ^ïêº-¥@ÝÁñkÅ|G àÿ~D»ýþá
+¿½.o¦õØ'IÌÿu5?ýÈpâàW ÄêEç~Ããòzë
+rC[Í
+\Zu>ú»èTäµË¢úëåZx/NÂ!Øx(1ð$SOAÊT>¦Åezà¿~èÀºéDÛ¶Euá=#(óõõ* G{Û¶
++'\:`Ö`ÑraöY`ÑVàKéE[º\vYÙ% îë±Y$ª°ÅZFÞÐ_ñÔú½¥5þñøÿõhó
¾0=Dd^Gé¦$;[º#¿ãöÎõé ÷êÛÔ[í'Úò>©o»ÐÚ}رýÆ-÷åT©dG®ëñ 9Û3N¬xÊ+H«þÈ£â}eìSû{¥n(àÛ«ÿ2[<£ì
,KÛâØ®`¥ü BÍ7»-äöMá^¨}ý¿Á#ëºhð}Õ¿(E©.\âý
+G9ÑÀÔÏ} ±¤ÛIÊÖ°LJËxÞêÀ¿O($«l,Ϫ7×%Ìéçý¼e at 8¯v¿$tÔQ¿®J,]iû×ÿ»×ÇVT(ýãnÿÆ»Dö¯Úôµ*Üêo¹T¼ óíà@jÔ73¶ª±\3§±/tÆ:Ëï
+ohsÄÁgBÞ¶l´>AIß÷pøbæèà$¦i:5p0õùugeµÆúºÑ@§@£ÖÆZ¯ÌC 5HmC°z;æ(K½ô^ß[9øë&°h»I%zÝe
+Ú¤Çhz¬±¯ëòG{Ò%"Ä
+¢4?®ZLFªÜM(xdø÷9÷¢ù°¤+ìOPÊàÄ/s^
+®ËvpàßÚvyÁ2§Ñççâ7HSv«Aä0ýÏÁLþXLzA éÛ¾¬íZdiCO»ÞNio~´vmZ®U+àLÓúh6ô»¸½;¿¼ðîÎîî^üþqwR ôÄH#ÑÝf<hìHqÑvsä«
+²ïÇAUE÷óÇͼJÂ<î¢Å"yKäÁÒ Ä[kÝ^äÀã¥ñ°Út·Ç6u["¸Çâ>ÊÁïO;ÞöHp[ç¡ßgs7ôª`×oSq)KöîYiröÆj èkÿÞÆ*à±Á÷X«ÃѶ{\:Æ·WÎ#îaRîì{Ò¢g!±½òçßþù#ýfK§iAV²×2x6alywptD&j^$tbóumkê_
+v¼Öd0Ør
+ùË°*11'ݸauûÊöºëëéѵø+éÆ° åtØkqªÌ¡«Óà Ìj-
ÒvXfå½2Ö7pR«D·
+ª>^XS,4LÍ4L;Í¢M½¯¸¬\¬xf}d¶LÕÚp©2Ì¿ª-y\£I,í=&¬Ts at 3»í]$]`íÉ6Þ7í#঻A\¡W'̽ãzj¤á¢r³(gKU©JíÀÝÿXmê<>Ï"@«í'+o»Â¬B7¡ÿº×˦½.8LÎK'ëû0ÉZvÕYܵcì¦ëF6ÂÚÁhöó6aå@!æ<Dõ®ç¶¸ïAÐßûÚC"¢ý/ §@뽨lñ²©qèDÞLêvþHêm8 [%Ï©°ôÚ..&òmt°D0ç]EµÙ¯=7:o(ØèTmAeÖKàÀ²ÒùQe}½oï»néçÛoô
+Ñ^¯o¤º¿ÛÁY
p_×psðÀüz
+²=AKa¡H×j;Ð^LÈ}èȹßkèÞp_5FΧ!²í.EçE;ÎrÞëà°%ã;Õ
+bT0Wj
+W/8¼Ç£09·²wÊÎþ&yPLòØ~äêhAîÐRÞ7I#°A`ê2ð¬B°-Óm×ÎÛëö¼-Ns kÛng#êNNÌ˱ê:*̹t¥OLAê©ù
+å^íïiß`§z®ê>Óç÷2ìxÔ0^ 8 Û&Ñ¢mg
+ÑÔú
+Í×exå[4à]Ýë ÔÙ
öîã}%EQDHÜIØ£={+ìÎj:;ã«)~qEG_s®.}µ¯½ÖË =
+p+©Ýñ>
+$·qåø0¶=É@ÌÜ0áÿ,ZÜ@ÕyÖ6ó¾Ü@½283âz3eÇÎäêvG,õ¬P_IÀhûg"ZlµÝó-¦Þ#< ´e ø
+l¥øå· -vâä±·Ù®í1¯ï7MÅìy_ip¬ÝW¤G5Ú_ih^Ý·Åæ¢Á¥ú¬Àè.ñaà¨æ{'±Æìý×ñ
+Qâöµl8·z¸Öúa/«Û©
V9dvw´&V£íÃ@ÄQÆq.3}"q»99Ü0AØbÉë³ÌF§°£ £0ÕÙj3}üÄ/yÛU$ïTX|-[$\
+ÝEWUP|Ô+¨ùܬe×{EKÐÑfðr(h.õY:¿E%.múÝ5"£K/8srp]ÒÿèÚ^+#°½ÂQ×Óì#8dµ¤el
+vzpälek×-
+ÚVI6Xb¢b#¬¬:¸ÛQÖ÷#oÑÛÏ@-*ÜkAÃwn|¼®ºÏz=f\¾M9úðsq%*¦.Æ=A³<uu)LTàîÁÿ´DvgYÛ*;¾¿weºeÐuÁq*ÄZUÒó)Ëñjà D{tvJiÒ®§<³H
+gåfúøÁÃÒI@Ñz?
+x¾Üp
+'·ýû2¬B%>ÛÎc/4¸¶T
++£:^ÇÏ!
8O0Ô17P;WÆ<Ð(-ÅÓuÏ6j
+ÀRz6¸ç<`ÄOxØpDÙzÏåµvÃêP*"d£ªÂ*E
+¶Ë@D#JõÚì[èjça`cêù&VÙ
+¦ÔÔצd·¨´ÇÙPXÓ½áÐ7=+Pdü<ĶÚÉø)¢wØ°ç(6K¯ !úë×ÇßáÇ_gSðEÈ8Ï×Oejͪé+çø´!¶£Ð¦úoHrékÙCa`¾L[©ß>»÷i7Óc3Ó~~<q4|m°#¡B0»
+ß'bKÃe¶ÀVº½ðTÃÕÕÂb}QÏÚk.ÄÚ rD}1ØËò÷ð ö·ö^ÚóxC=Á/mÍé<àÙc wJ²¥É||Ézcm©ôoZjÌf¶C:}þÞ«ÖMP{6´IA
+üzáùé9b´é@Wp³ë"¬9¨YOªà(Ý+ïfµuùÛ\éÒ2üÎ2/½@0=^8rÌ,þ¨².BeL#ѽè{YPÛê=¥¾SDìíbd÷"ÔÁµM×o=øüø×O'l»ü
+endstream
+endobj
+96 0 obj 18900
+endobj
+97 0 obj<</Length 96 0 R/Filter[/FlateDecode]>>stream
+H|W±n%9üÿãîA(R
+\4éØd1ÿ^Q$Õê~M<ã²¢(²ªÔ?GúRòùoÕ!¯:[°1¿2gýüúp¸9b¾Öö×l$Öà ÁvQþüÎ
+ at gÏlð¼ÖÚâ×µòì÷nQ¹_4t&ðõñW®¡Ðþ"ÑÌëTKÛüÖf;ÍVÇS|Ôl±,`ÜíòÈL[ã;=YTA®koÕ3àR÷Ñì®Ø©úÑðÙ`v°Na'Ë2øUÞÀG
+®iÍÞÅ#
=¬S[ Ï7eÏJ¡à9l¸XËu_{WìîyûÖ£ä£'ËÔ¸±1dihߣ¢k
+<).#êÝççOx+Lìý~Ô«¼¨Kû|
+ º#@Úve.xhZDZÙBOzÓ=ê^YCîíäþ¹lVèÝg²x&-}î\sË5tæ<HExàæ
+í@ °ìûî>ºå2KZÛã[ Såî¤òùcùOqé`lé¢;ÜÛ¦[î«
+EÛ®±Ù EÞrª/|Í:×X*êÊ©þÑ'8o þ.á}Ù\À,u·BP(½â¶LÑáÂèÿì¥áΰ
+åaC 5&Ü1-°]¸wò
+\ßhkùðAz°÷5ZÖZV¿ nöõ
+ì!¹¨äói¾îÿõqëû\ýëÑøÑL¿bnªÑåÔÚHòS¢à.Søst2ï3zñ!$³´ö ßo°¶8ð 9`ÐÙ÷Ç®ôTÜÀ
+ >á Ë#=Á2eÌÆÿÀÙOpÉå"ÀtÜ´åÂúÞ4,äEª
+º{³¿åp½W.gæc@Æð ï`ë%üá)ªë«¸:Hc¸¾É®µvPtêAõÓWxÎåL×ÚxR¸yÖÞL«¹Y(¥]Lþ)®-¯Øm¸¤ßÉÑ74¤ßm6ËLÔÖÿÞ9sÀñ~Åx¼Å%jmî½ìeÖy{U¼èV(ïØÜzzUʾ1þ2ý&§Ì)!óø=<J#ßP½¦wÈ\Ë)p1.F5%rMÛ#
å<UëÐX3Ø]X;"«
+Þ)o
+Êgd©99çÅëö£?¬%Ë!Z0RA°1Mõg%¼,áfæÓþ`4V÷Ml»ßø>Á¥Ë
+<³V$ Ôº?x-õY[e9©cnͼ7lï7¬fmÀ>Ë%¼kYßufÑغKÏÊB»ÆëÍ=®[¬Îkt± :Ùùç&5ôp\÷j½$õª[pqÄw-Áuàd£N]$ÜÜm°Öþ
+8&É¡xÆÌYC¹È´æ©åȲõ¾Qê¬%µa©ÈWHyEÅÅi©UZA=ù
+í¡qÌ÷Gåx
+¨J[u/¬
+¨Û!Äl³ÈÛ°§¸Õty§d^§
+ÉüúxÂK4ï½±/0,yXÃ8áFbÚ`½ÖþH+À¯<B]xgã[5ÏU«ÈC
+«=í¯^[hb54U¢´ÕßÁ5®ÙÜ'Ù-ù5´DaL¦R,Uvu{åÜÃKÞCð¾«äì®[UàÒÀ˧ÖÞ¦÷ßÃIPñ_Gâ
+ÛÚgTU@HwTûTèmòb#ɳ >ÒÏÒj·¢ýºÖO61Ypðe¬bÙÀZ&ïX²ï;yZÀ4Ú=áXOii(1*À©ö*Ü°½ÑAz_Åïè7°pÏ8°Û¾;
+K<àFVr³Õ7`` ÌÌ11úï³ÎW#ÜJáÙé Ô< ÚüؤO¾ÿÀX«GÇß²§vW¬V1ÆÀèÔ#Ù£üuÌäQ6(j÷×/,.d_Ð>ö6Æsûì®Ö9[Ã7gÊdLG¯
+¤´áè2.Z»èøÍ5ë-k®´öɸ§Ì£R/e«ù£çª"órxQÅêôKu_ã>2Èuwÿã÷o4ë@zsgßòCÐq¬!avÖÿ`ª!ól|OÀ X|KÝj!Eø)õþû-eúïÑ
¾Oõ(_5Ñn«Æ«VcõììLÌ"ñÑç<º¹
+S®ï§
+wÐÖwT'+&r~1@¢5ÁÇfï´
+ë>ßÔ ªDêDÜÀFD%ýoû=ËÛ
+òX±IÈÆ
+È®ÒÑ=n[ª%Îõi^H,
³3>àÔ®z7fuÑ$î«ÌîÝæÏÂR>,õW,ÑÎ÷vöcÓ6µ³¢m]'1û i/39Eßtä´~;úG°+·Ä÷#§×Ù39~U}ruÄïïÚL%5á1{Yúøòù3¸
+°Ëh;Æöû{a¶ 3ÔÕë\²ÉsÑwêÖÓ@
+ø!V at XK5¾Ä9{aÆÖÚ]EQ:[Aæ>k Á_`ÞÓl¼kwÑajZW\¬ê077z»Í}î½ÑìãÛ÷
+©wÀ¹_Ü!°JØMÝÂNåV¥S®9OEõ2éÙ]~i$HzLÅ
ji9(:v¶¶
+ªªD
+SdX:6èò`Zaö.÷«uÂ?9x)Êì
+ßöN.ì"ª0õÃ[
+¾ff"
+Ù2fÕÛ
+ Ĩ@Ó>5¸(üôþ¾ôù»g"Þ_}[÷¬ýÏ,hvE0³Ô×fiCÕ*K¸0^H¼Ã}Uk¡,¥ðcá¿&£
+ "\K8æÀ%*`ZÛ0~Åߥ¾Î¨`¦ÆXühjpnXA½¸ç¬$LèøßtoÉ7
+Ö<ÿºÀÀÙòmõVõí×w벸D6é 7áEóÀV$ìc\sº9Ã@áT"ÕsZ[UجUJDm¶£
+ÇËn ÛÿR-ÆÆ:
+Ò3¯`Í$ÞWãægy³kójóö6·
+Óÿ#ôÓGËÖ?n[Ú
bjÈÈÊß
+mITú*uß µJ8¯-¬&{º|Ú «Ø)Ú:Ê=ÝFçÏmß¡H@ØSD7¸õÒe§µ@ iÈI
+*K¹Ýªh
´ÄÙmNaþúñ
åAQÛß¼òÂ÷¼QYòýÿr©ZÏyÈ«^ï¥øKÿìÏzÀÔóÜû¨øFGÆâlfÇÊÜnêða¿~|aÝOg)ùPN&)ýKgvÖ}¦jöf\
+¯èz¨Kñ_@WáúXõbij%hýg`R#F5Ü{QGb
+´Ü¶»:s²äþ¶-^ÖybAbruÕø
+ÔeÍE>gOÚò2b¯ÕMs3\IÿN¢íÿg¼J$¹aØü;´/ç¾Î/æÿ0HJe'¨FHL&6Ó>â*=¥+9R"àÖ7í&t!z¡¹@6q!f2ëæÑxmYi`7_ªC(
+·RÆ©^kK`-IÎÖ¨N}=ÑË~¾¿Ö|}æ²YÑiÁ?Ü'üþ>¦VëÃðJßë´¢@øýVëꥼ(*t+2KaQg·"Hé>¢OK«xÐÒÄÊbç;Ù¢7óEf?d¶
+G³R¦x}i52˳**ÉkÐÕµ
+ó]Á[d©ÒØÝWP{ù`l£¤o°a+;Y¨À}ÜËů³·!}ª«lþH²·|¶Ý¤2QjcGòÚâÂ:Á=Kqlî©EdSLpÕY}d´ëÎx½o¥ÌÏ¡Ý;6<Ec®/ol>¯z±nÜGĦ'
+¬WÐÛ
+oà@h.uã
+À> ëÖYINÍÙâ[JT²/bÄ ýU7\ÒÈçlÉ20e ÖÖ¯ê7ÖsaÀkÏdä]ARØu·êYFÿõª.L4mk+ÐdÂùV(®"Åez:^±¸vèyb&P¬¹g~ê~©Ñú%¤dðÉ,¾dÖ, `T°~N5Áa"y5U7ÅJÈ Öl4H!°ïºä,_f¬û1¿¤ºjßdÏãÒ6¥öB2bðúådüÎ68>Ìfü#Æ9,q2·&¦oÅ·Õl«ÞloyËû²B1UöÒ úFBÈ£lÎ+¹ÿ >Ô>A?ËpîÕ üù0
+D'öVÎþbÉrWD¼@ÿêÒdÂeÈÛ[.Cþ-E0R2cÕR8).1ÇRÓÀöâKÕgwäfr®w,D¢Àµ5urPC%-eÐJã÷M5|n¢3/s!Y(=©S9ßZ Ñõ%öJ¨hl0Dx°§N9»*kÛªSÑKÊ«gzùí5:+>¸ÞÜFºá¸>Ë>3f=®q´m[.'Àþì£Ê'_öÄdà%ã½V¥\&«vP.beùzÀ;ví«ïO¬!oû?¼ÍIb¨ÔËV>Ì'v
û4Êûi ÷H¡Iïc4N"ÌÕÝÞúïHåÅÌC(roFÏj$D¡*:ï3{V'5ñ¥ ³ñ I\GÉÌ]?µ¶÷#â<*i}ý3cÝy]÷Õ¹GIßÿ=/gâ~¾.Çw}ç`µ¨Ø?v{%§>iÆK±±kULÛÊ1 2!ü6ð°¢àOñ¦&üé½saPPx'~¹½öäés¥Ä¶éPû)w5©Éêæ'6fþÎ|6{[¥KIãMª<ªÀȨ(k}³(ºèÍj4E/?Ù:dÛÏ÷S40 ßb5ç/yoC!ï#¤'ÚMfâ7@ÌvÖ³ëQ©ºý¾v
eê#x*-ipf$Ê'&µwM+ë1õ!ï93ÞµPõJ«ýL'.Þx[÷Wiå*òGBíbÜ]ÃheîÃ3'8N¯«¬Û8ùï9í
90Àãý=z~Á<Km·í %Ílg¹4Äy
+á²û>G{À£<#2ra cyª
+¶¦¸ûÎ`k?\KP÷gÑý®5"Þ(þ>4Ò»åã)#1(e`§dõK>Ü/@4ìQ´Î @R®Øâ;N®^ú)8ÐfÜ¢ñËìëi«
+Ú¡GÝ%çõ``ÍÃÁZêÐâÜÌåèºjµòUÏÇ0("L!3³à¼
'TyâYVÇõÿx2pîEñ\o)
+ý»· ûë¬ìÄ:×&H«
+ÙÜEc}UÔPÐ;¨Üö´P»Í_õùRA¶©
19ÏÜê¹8:«èD
+ÛÇËërÎt
+ü¨
+·ÎxUz·Ì¯ºw§X^
+|P¥gÓ¬±
+«¡¸Òp¢ ¥ÆôO¥°pT¿ÉLË1AíÞßö½¨E`Pa[äYÈQ¶÷®0cSLSÃÂô¦,¸ä"/©Ûiûm
+Sº·~¤OéàΦ´,Ã*RW6Ohã¥Oî
+#í´5.'ð
+m^rò2l3å
+Ú×ÇèVªrZ´|òG»7h
ÞlµJUk×)CV£øÇ&s¡Rñiú>ÿM®+Ú Ôï$àï?[ËÓK¥W%=[õ°@Ýjâ¸÷P-À)uyNÜ-~©6KþÅֳáEѶVµâ-~}ÜÛäÿ¯-äÆßj÷¾<ì
+±>ÏkÀP®]$[WÈêÁ>Þ!}³$õ½ÿ¼$[ê=&
¥T!+õI.ÀIõ
+`-9Û¶0^¡Çn±
+9Ú{)·¨ÄBÀo k_²h¶ê E°m9°?b]\L~Åy3Q<YºÁ0[ØbÕÁ£jGÏkÈ$¡vV8x6ÞªÊìZ;Ä
+TÀÂK¶¬ ¨9ÀYò'ߣ#0L0Kç¸a®<3m¾ZY¶àyh¢ ¢RÊa¡7\¹:@v¶VóX+0åPÔÒûãÆèõóöºà
+KI`!½øVitÕh9ó\@·\í
+[KqEð?lWèo¢OßF`³f ý~»ÅóÄÅl2f_oZõü<ãÇ+0äáó{g»alã CÈæ
+áܲÇ7dÁ}Ã#omu_§×UæÀðÀWÒØ#MuR ¨s¬Yi!ÛËiÛá ÊAüä
+ ¬ZaÐ÷K¨cIXVR_7ø
+g䬥Íõ}yNQ_(z¢7?4çhJ@)'Ù ;£ë¶¶_|¹è°M©µË/I
+-Sá&P3÷f0ÛÀfãUé"¦¢V
üÙòK°ú JÁl[ãØkÉÇr
+
+y)sO:Þ·Äñä¥ä<.©ÚbÛ«;´Áï¶ðÛ×uïÇ!:Û
+×
+æhùÚîÎw·;ßôn¯§(ãìYx6ÛUUb«¢k¡7,°c8³x7À:
+
5i§,4ÖnPÒÙCJÕ´·FXp :pYc8ó`,eR×LBRO
+pÞ)4Kó»q¥$ÈúPn)¯4l²æ&öαäÛÂÊ
¥ðïmB iG£ YªÛyÅ9ì±fÉ!ÕlßöÔÐué=¢Éü=Þ\Ü~y$9 ÏÂ\I£ù¥ÃÏ3ÞìÛøûÎã½Rý
+ ï0Ï+9mD³4ü-þ
¯Pø¾nà°µ{u½9çùpàñ)6ë10üûq<q8C9Ìgݨоh)gAmx5)>NÃn»NR¢Å¬ÈKT¥*ÿ¥èI®Ö-ÊBãÃ6f=áÁò$¹¶>àFºï¡á9ÇÚΧtB=p_¹hõ¦BnjýÌîf\Iß·dÏC¯ÆÃíUáÀ«/zØzÌ Ïu×pÕ>|0Ïü!Äë\`Ç¥nOèxÈQ]¹ìÝW«ð_¿Ù^~¿àý[´¶Ø-çÞ9qÞõikgèÔêú|SNoÙF
}}ÜW@>OVp-å*9]6l%µýs¥ÖÎ÷yZc\#ÌúvÁ3ÈíUí}o?oãN¹#
+]|cëryÝ/A-í"´S]ÏÖíkÃú4[¼?n¹®z at -ß¿FV¾UãB¸^5½¡b¤¸Å$p+ÝÔ#µ=B3¥¬3°t8ÐvýWVù·þ¬eÚN¶Ëz^Mײ뿥GßP¯CD
Ö.¯ã5Ûì·n3|õ-D¯Ê?ªïõô
+ùkzG0e¼#k²ü î¥/ ;°µØ¾± `]N°Mó ëvÜY®-fæ=Í®ÎC$`1ZzöVf<m2«òk,k#ÕIbR[Kéy9(£+féi4cÆ3=
+^Éik_;õ´)*2¼.âºU
+EW{ÐØVÁfüÞHzÿ¾èH>¾TÕ¤J:ÂÇ#îâ/ò´õÁ³L!Iw;súè§`tgc¾Ù%ÃÞ¢ÿÀä+×Hyº<pò»¾äñ ¯ðij)Ï7,£èÌ×X¬ßë#ÝÓ ðÓ+äR&ºâOØL&½òÓ>Íú²5×ë
+ªôïz·`Øß0óvèþ[Yt©ÛƢѡD¢¡^ª °ÁÄ:N¸³uKÔVlÂ{Û¢D»ï.;é°þÍUp3ý0X[î÷ô¿{LÏøÔÇ[NËÖߤMP´è.è×®XϽ6N !íQÞn{üuûÆëcå£ïÍ!ðý^?ÂÎó5»~¶õÓ>³Öátî÷í#WØùu\ww¾ãX>ñÄëÁwÚ?`Àá¥çûÀÅÛë¶sÄH4¼Á+wrt.aºSc}O£ÇÕÝøH¹m{xÝpãc?zòpÃ7
+ä°=áòºÔé3N|8xdÁYt
+×øg+ümÀ×
+'Ø*þMm¡÷;µË6¹¥æ`Û>e÷#<ú4õr5´íÏI©_'ðÎTA?m17Õãcu]ØÐla¸m7\ÇÚÐ?õùzú=ZêßBmÔß/«ý;`1V òò{?̯ýþ«(DÄQØð
õä:m¤$¸êJh8,EÔÔ¿¿þñ¿¯üë__I'ÿNH;èg¸ÿ%¨§ÿèw R{KÔpþß/sʵMã¹É¶ÊVfÍ öH{
+6Ñ,/HÕ;ºà¬+àVãØðÁRxE_ñOõTqpKÁÙ¶7ØD`q
X:9h²Á¸ }àRMøIÆöü¸êWÀÞÚg7F
+8$4
+uÝ`Ó´ÔdSÕ ùmªåh¹OnìÉö©ÜVd±Wxjà`mÅ ÑðcQ5m#Y0Ûæab¡Ïv*4vHÄ:$^Ç5M Æ^n
+Ú¸§FÅcT> 9Àqêp<«?7Ù0U¯Å׬2rì
+LeÇC6MeÖikC(®þÖ9VÚZ~#°lxxÉâ$j!QJsÈIWO@æPÃ5ÿF5Aã¤)OÃJBS) ïJ¢<!%¼kvÀÁ^3{§î }QÄìbÁÌÞLqd/Èèa:Ã<&À~¬¤8lÚ¡*²S®ïUãÔ$å¿
£6üùr{²'`B[ô
+Å*»D
+ßÄnÛs
+cvõ)xT%ÖqàªÓY_iQ
qjP#ýñߣôݶ÷jÞ:&sÀ¼,£?iTû¬"Ä=/Xö´?ÈqÒÏ·)
+@`µ±¾ûu¼_a+Lt9I-s SRà°n!âK(µÝÄÍ´)ï
+À6´
+´Æ
+¸¥·Nº- LÅpà%?aÜ·E¿QÄa-í¦¨¤ÖÊr¦À©©È!ï~/o72aÃÁiPØæå r
+ÝZ®¾rÛiB®ÁùÇð³2ÜA=N¨Z-Ó+
+[³Ò
}Ñ
+x~Â
+lÿlÎÔÆ0)mo¢kKW)I«K¤@´¥³@°µCriap&ÔÖȳԹNÛå w»h+FÕLö8A%QuÛtÛZØR®~,êÍ¢ÍãhÐÝñ°ft±)ó¢S@£ÐÈ4¢bxÈE©-ª9Y5nÁ MÃne+H¶2
,ÚÚàº.GÕa\ÚÜ+²lª
+KÜí©Õ8>¶ÄÁÛ±Tà>¯°!æ,ó¾B7ñ\©±°H5È&¶», *
+9ÅÖX˾T
+Óéb)9n
)0ì
+ê´üöX[ÌÁìùöH±*>YVE}ZvBç
+LvËÈä°
"=NëÓFJ¡(m
+=àXiØzwØñ÷õü¹OÇ*=RM7ÀR[Ϫ(¼FG²NØÎz
Z×5¨© &khå?.KóUl)ºaËÓ!4n[¢j.ÛÚü
+hËck%å(êÉ®PS/ÿy®¥yú¢²áµ
+..ìKÚÎ#ËÚTÍóÈZcwKù¦´
+ £Tì
+úHÏ= xÀx4ó°AÁY =ýcÕv W·ß¡-7[ø,ä*0n#kÑê¥;A3²£E~Ùµ
+Drj[ÕèÅt¦=ÞR>l½nÛð
+Ã^Æ»
+?m½¶oèÇÚk¥=Ïk¡KÝë#÷Ó
+OÔ}ªaë#)eìnʽÔ
+fCs
+S*ìeÈ
+&ûU-î;
+ý rvLÅèè!dÛ¸=GÉ¹Ü yqî9#53Ó}è¶é,=Ô¥I6|©ÀXò¢Cé.p1º{£é'ûsÁ¡=Z½whO
+Bµâj¯åyõÌýVs¢&Ë*E÷³°°LFÎÀ×ße´}¢£¿´|ú»eúÞí{]£;1ADîem*ó2QBa84>¼µRðc9\Äl>Ø¡L
+ÆÄ°á¬eÎËÖÙ÷ªuöe`Ö¦0ÊG
+§6Öqßökì ãÞd#µÀ&JÒsm
+¢ï`P-
+î!2@ìd
+fÚ>@ÖËx+§b^Pd{ºd3}ÐõqϽ(¼0~T}ðVfb} f§ªNèÞ¯ÕmPóÑâÍÓz;£ÃâfÞ»VRrbë@6:rFkwBÞèo'ÃÿdÝßSíÅB+F%qUtE¼$ï¸÷ÄÐîþ[SWC_7»¶[
+Lúƹڲi#¸ºÚNr¦.1³¶ë±`lL¶8Ñ%{ád©´ø'¿oø=À`mõPl±ÌÉ<t,½¾AÃü<=LWȦզÊS©+þÛ¬³L¿LUÄêôÅ_³Dñ° x
+ -ZÊqÁÒsâÊLçÖS|%uYÌtîÄàÚ6VÛq yë,ª,¶Câ#Ó²V
+c줣>a,´
+ÖòÑZ F7{Q0W¿µÓ»5ÔýoíÎ<Ñïc< xFùxªO=°äîA`il"À¬Èæ+)jZìÕÄ8g¬>2É8+c`8:A1ã)`ù×ì
+7ÝæÅC]ß$ ×æ¢àh$DµØ pÍúü¹iM´«ð§¤q^µ0£Í¹_`d½@ìgá»(+?á{ýã쨥D]à·½ 2þã»Üuä¼a(üó[¡û¥Þ Ûp½@xÛ<DR$5³.,>søSE¿c ã~Jr ©1 +ã!D6ûÜ%ñ<¢B
+0¯Ò)ÄúDZ ,2ê±ì&$ <q´³Àýy×.Im4#+!³Wyâ²%xm#w<c ×{e8±6(`î5Âa^:`ØQ¶Ù»uàI}tI)ª¸¼^Ts$¢KI
+ÆÞAÁ¸l!ÝG
+{!/[¦l8kLk¨à¥UçJ
+=Àå2B'ñ¸³ßÈmöÚe;
+³<³Xk>¿ÏSªa×ÀZæxà(e½ßN9A<Õvû
+-TnÈ0ØNæÿ~]Ëk[3;!J
+zLÓx;ç»Ñëê#ÞìªU ä·.<ä}s©5.ܪ\Maæá¶î«ev ï×æ£ÛÍòåºðùìàýñÏã·¿x£²ü(ëV>yÎcá!S+
+(¼"mFz,P»ê
+ý¤gÏ÷5úðÃË@ídK¹ÏñÔwM'1
+ÎBã@¡ö]0(ÿì»Þ^(ÒÁZ^ô¿ºÞÚ~XhäF$^<¼_g¦<ÊVã3,ÒçcÏ4½"6ÛÍ?¾<®hÜq<Ã$|}´XÐ?nl¢ÀÔ°´¦ÍÇÜí×/®ÜGæ§SÕÀBs\ôÔóeuþÊFRyQ *±M´Ù(¦S ÞýÃÆQ
+ ÊvVþVßOÄleß
+
;¬'/m·×1ÜѨçâ§ù1³mÒiöñ²U6×ãxÃø_Ý.¬Û«oáí_ÿzÒRPSÛá×ã{Ö×#ÍrzP1³ß^Yv Âî² ·=ÆdÕPÇ®Çr©é졼_
+·N$¯¬3
+~>üçßp»ð_»ÏÇãÆ[_ø9(1¼[gìW!
+3'¸#¹.n^æÐ@zw½sܳ¼Zy5j:Výâ÷\/%
+ÛYÂ,¼íK(a1|¿"ÀÀÂ$ºFµR×訸¦V®ÉáFµL9|4§tæ|,ãMÄ(ÿ= íÂÛb2¥¯ÆðÐhbWÂ3sN±¼9®¾{åѺ|i}!¡®ÏÖ(í²Î>;g«ÐxUXS¨OeÏøPÝå@±ùB ˼E{óíKØ
+µäËO0o«PÂrP
+endstream
+endobj
+98 0 obj 18163
+endobj
+99 0 obj<</Length 98 0 R/Filter[/FlateDecode]>>stream
+HWIn,;<AÝÁèæaí×ïÞþõ|ûHqÈòë^(EÉ`5^1æñ1RWh©~|¿þÓG
+׬±+Øø{yæöñùÿ8èWmµ,0^¥Ä²Áñk;Wµn8´mºRãÖQç
+¶«é
+N%&²íe.¯¿%íêU{KÇAµ+xÕÛaxÐD 7#Ø+¬?dzÛ· ¿XCX1|í=Øs3ä|^¬~±<g!°¥\Õ32gJSÙ~f%xÌÎL9
+K2¯VRSüZ~¾ßLhg@å ÇVÔQä ÖEop\¥ø
+ÜÊ~<ñ{ùª3S;éis`jµmK`A¾bÈX-´p0Âàyóá ^ê-+]lz(ÚÉ0w¾
+ÕÜâù:fî!ÇÇçüó»-î÷»°Õk÷a(ÖËãó¼ælq¹5sc5C],¾®aUà6AØ/ã¦!Ã7ö^W±`«¼r¹â,ùø
+q?-ÁðAÿA0Þ@Ãl3>ÁZ9üÕÖD `¼/ÃpÆ*ê¯ÖG´Ê+[+HjÐ{S`ÙÃJ£$Æ;ÌeÒ\ï\ã±EJ\Û:@;Ü
+{ro0ôÕqC´;ú^£wÔ¨³²ÄùEÐÕ»þ<wÚæ(;¤òt¦·Æ ü=[öýjhO»UR~q gjZwÞkêê6âî$ê%§ÈDìí¤ºNlÁ(d[KþØF'-1á4#ÄP%'Ä0^³Ù7S]Lx:ìm×`¾2·ó5 äÝuUÉ ÍäÔaò
+Ì#P!¯ks>}K!aØÿ¼|`¶Ïh@~rº×÷Ëç¡jp5êGjl_Ìüb~»ÇÉpUy*pëKl<Á ϸ¡òX¡y·NÈÊveô=,yTÉ;T&Ý¡*g¿¿2;õ¬2«öY¦Lù-°<$''0Z{-J&íïÓ
$g%S¾2Eé^÷| Û
+Î8µ&c"p³Yõ´ÀÏ£QZo#
+"n÷jiÉ.kÚiÎDü¥á^ Fl`e£ðÞëB'¯sß´uľw$å@Â4¬{z»ïrXÑÃÓÍêöi¥¾¯MâóåmßpÖ^ýÔI¿ö¤M_Þimö®Ðñ
+Däp¾ÑíMb¶;¼xȯÈÑ*-úÉ<sãÞw[?Dco¯ê0ëjgd"hÛ¯·>©©Öä²!K×4ô7ÜÂínã\ôì öB¯[1AÒO¾ÑìÁS!n"úïÑZöäRGiÏÆ>_Þ²<ú¡9[¯=T ½pC§Ö¯\)a×\YÒ¡5&túm2Çß«ÂKýÛ[{äñªOí¶øïË&P±ýæö
+]X«h¡AòV«êfÉÒè]'Ælk`¼ßÓ`n-§p'[X¯hI·©b½×7`¿f-ñ\ÞpLÕ¦Kßà$ïúýò0¶eÂSº<¸ËÒàÞ÷«*ZôKÙ#^Ä«£W¼ZæyvhpTw,§u#;:PͶÄE5b»$G^úÿèµ)Ý+laMÊa"ü
+Éó[V!¥U´põ Ó²Í)%ª¶9ój$áÏÛíp0FíÖõJXL?°ðEÁ½BÍQÜajoh´¿Ü XzÿMg_÷ÖªnV±®Ña¡§üaVù
+ß/H¯:á\
+#¨#iØ\EúVôÜ°ÁÛ½é±üZ[Z)6¸\a;À.Ý_7£ÓÍè^MµV×NÄÒd~ñV0¦1Ý3I·¤k°h±²ÕÔ
+ÐSËâ~õ#役ݦ)Æùá£âmàm®^o ðÉ¡äE¹~~ºGh{4¬súæ¥Áw^_¼ÂÁHD0ãpVc:¥püZ&¯ëç8[Ý÷ËéдÒ"ðÊí¯¸q#=©0¨ü}mÉ
+Ju>ò6"û
+Ë9Õ7ôIÜbÌçÞr?Oo Nk³Qrìl);r)»£I4~¾¼-{Õ6ÉÁëç¢;(TÕ#diè§çÁæWÿüÍÖùµ Þ<jx¨he|i®Ä±ÕÍuÅ/V«<©FQ©6VDg_(L½H;zD@ªÑ_4æ?n²¦W*àp5qöK*7õÉò(Õ5 ³g¡¢d6ë+±eI.Z
þÙ¢qEåbkÌV÷RÜÁ Oïßî{TËÔ¨ÁZ[CXiiPSRlêÁÛðûåPjFªèURéúEjûÂ
+<~#&µ£ÈÑEVÏRÞGY0ǤÙ
+²ôØ}}¿üQx¿ õí>mÓáÚøz¶£0¤Jëls¶å¥Uéç_´ÚTmõmæ_ÜU4¨¸&`»µ;àÍMË[²>
+ëY.o@£§]¹Ë³<`[ÜxÔëeeë6vÀÝÁ8`[º®ï#*ÿ%¼\r$»q(ºØC® ©Ï8¦µ
+]EÁ[pÌÕáÛÁ:·,ØÑ$Æ}^
+ÿÊÌ3·^ÀÆ20jL³âiЩÜêÔfÞs~x5¨aY»#øqÔ?^Á÷ÇÍ£ëmÇDÙ#)ÜY =çHÚËnÙ®DFxÛJdã5ׯ¢êð»¡~
+
+h§¬Ièbà2%ôÔ[Q.üüµ6ÔÃr³ÐøbÚ3§ÈÖú%ìp¤kÇ^5äûì±æ÷¼wú}§cX¤¸Z¤=ËUdíÔÅiÈú(wfA}g¦3áµÐ=àÎ,ì
+5ZÝa%{
¥±ÚL°!º&ÂK2ï;йSÈiînûýmWNýtþ·ÇðâÒÎIµ£'jkþÚ£;po×»]dçîïsRûÍÉÛÎ%é^!4L~¨VðæR*~']:ûkL!.U¤{µT:¡ÊªÛÙÖ_õÁ<¬=a>§°N]¾µÂ<,XPIµ¯_·£à
+6L¡>mY½
+Ä]àoèÕöhvà^¨©9-öÇN¯Sì¶_Pk-8L ìâ
úÀ<aò0_É]¥0Ù]rP K(ÁÈ<±Eyç Ä\Ä+Z|;TóÀ ãùr¢¥®°¨¬ÉAs°ñ:*%Û#çjJëy¨¿Ûå
+çÇnH¥YÞïE7ÚÕ
+knÙAqJ,t§ òbGÎXoîÐÓãø³âð~ݶ3¿_·µå"¡SéW´hÙ¡³«% £Zå¥^úå Ôv´BÀJôò¬!Uõï×m(
+_ã¿øõá+ÝɶÐÿUª4éG*qJ
+0Kü«ÛdÁt£öYÚR.¤Æ
+fyGfXÇéö)8VÎÞ#Êjå>¥Å÷ iî(õÊ¡L1uÁûOöÇV;,4YbG´Ë¤ÄÚu.lº1Vg)G¢¨spûh7}»Âkw7k8$º.üX
+E߯ÛïzFoË!?!VAK-îäÔ¦3HÍ¢N%
+1Ø,Q£÷ZfêªF/ÈMÒZò৥9 Äó%XmÑ¡Hàì¥{g%¬
+9ÙXG?®W¸úNYá\j
+%i»NfÉ¡Îäç
+qWµèÈÌ$ùÉð[qlÌn6Ä.ÔrãHtvC[Ö»3ï®wbñ`i::
+L!¼_7^¶hPÔ0G9Î!q®çÚ{ÚR¥K0X¿q0måj²Hì)sêØ¢³ÀTÁ)§N*õÍU¶$xþ%±dR°§Y ¦*ÅP*bEÑ0&é\Îc`cS×pé êZŹcº¼_7Öà'æþujûº¯sKüxè 8â.åíö4ÕHÅùJÚïk*åaË%ùêºó«{@4z8°PøGhÉá:ÎÎ^Àë"@à9¼WÈÖÎA"¼íÄsý1QÙÁ:¨¡êÖÛ-R¯ËÚF(j
+ Ì¡ióÃH·9´YR2]4Ê
+çØÔI,ÐѲ<b(£xBB7+! ìµØªä@ vÚ¢GákعúXÅÁ¶Õ×ù;m|^g`Û;®»Ù}X
ï×l9pw¯ð^xãX÷ïÇÁèÏÙ©ÕY»Üå×pçLí«ð|~Uþ)Ê%þ
+ÏúÔÑ{÷aÎ[CÜMc~ôÞþ¢é²ÅHCÝpÎ s ¦À8>1aÇrAJ×9ÖY$ 1ëhæ®y°GæòÅ`l"=¡TÌD-6ÀVÎ6fÚ ðìiN8m
+Ì[ÁÔ4¢ëÙbÔ%åµÊÓÓõsÏlSv¯{C%£~[ÕÞr/?Ø »Ú~¬c«ÝÇwk÷:½^g`þX¶?Ö£B,ºzþÞq;ï×q#øßuWN9j4» #s^w¡aqcM\¯2Æ[«ÛùÅëZHcÂMiá $h^
%GðZ1Û97o¸½Nh¾µý^ú¨jóqOÛ,F¯ÒBò-®r6z`§¯ûf§íyc¹ÉV~<ÀÓÝ,o¯Is?cZÃ9@§T¾ÎOá¡ëDpO®øL$ç#ºFv^ßgÙY`Gz{«ì\æÛã¸ÀÉlËy[WáÚÝÅè¬ÎyF°êÙGะìS
+-;®ÙºWØw0r2Å7[êÿ¶ëÅþÎÑâéþøbûm§¥å¥ª-rÙhóG¢öúxrZÊs·?ËFj×±ìtÑwMK0b:ÁúÚ"¡(DªÀ2ï¡,2MqEwT.B]:î[ ¿ÇÓvO[x5-yªÐý{»M5Øó¤ÈRHóGÕ)>ü
+¹êï[¥êlÙ2ØåÓA®=í+c
+þÌ
NàÁak0¶ük=Uæ·¶0¬½Ç',ë°þU
+ënçÚ»rn®NP¡áÔÊê2uOÛ0Yç"É¿GëJK)fÚß`¥"äÀ]ÖÞÙí£ÆÞÀmÁZûØ÷*û
|ón£N 2?²g¾¯Ù*ä¾CäÞÓçäb&V®gâAzê²ÛºÁQ øÙèR ±]§ ~Bírÿ´G 5JôüZ²tïQ¸@1Ë+bÀ8¤{kû'ðìíß×8½û¹AÂsÊøóSLã_¹u
2éÔòÀ¡4µÕ êæMPÔYÚl>¡«¦dTªQÍãƵ))§"ö®£âæýujD§yLM~R-gxiÄû0WÔͬµZByÀ3Ô bäaQV;"Ȳ¨\>|QêåÇÍ¥qAȤÂFàF²ÌÇïCW[ùïhîM?ýªãeþ^_°'ôÓ{«n§¢í`~)ÙÛÚ¹@Þô5
+/[è ®¿¢c
s.¡üûüÊ\ 1q¬¨Ä»½Ú(C`E`ÌI²¯ed4µÍ¹\ÃÉ :øhûÑëÁ¯¯ã³«¼ÁÂUéÁ)9|ÞôNÎOXêh;d
+¹=û
+ãz
:5ôÉ,"îZôýNcfúñ,Wnfù³?Yç}Ô°ÅvZZkõLÛ¸TêÙÿÅ,rðöÝþìOÌG®´Á2i¯Wã ©µÒã:±FJ×?è¼mرº90<7ËöðjpØ[>£ýRÍêã0U¡ÜÁýÎÖûq³ú"´ïüqúÛÒ¯á¹C¼²WnëN~ ìÌUýQî>Ú~ãU¡|ì»p×
G¯ðpðûN_½TÊOØp7;0ÅãøËØmAv5ï«¿85º]@æxw±ÔGW¡'ñ rfùµ>÷×#íöízáz³gÞn[øûn#ÈÜ{ûÜcÏ(ðýuc÷8öäû¯{Ï#ÃÌÁ®G³öó¾ÒCðø»v}¸ÚõØ©A5þøóuãÖÇÓÖB~Ú@²ÏÚÃDįްUÉäÏWÝ`~fªÎ_«hðÆô<[=¾®0WK¡Ñ=©S¾G`ï¥-ÎyKu@ÔëÃÁG¯WV>#ÐwÐÊ0Ô.°&õQKظ2
+ñm¥aÿÀ%ü`¸Ò0¿BgéÕÆRÓHtDº,Ë°Ä÷ïóTñ7ô«e[ *Vù´làpÀ²tà2BzØ*¬¯²SõðvpØLY2ÀÃ90¿ËöÁ±¦è¬oØr¿üÚÄ#ôS³°¨!ë$'ÊåËêj³ßF\Ôuw2osÌ£Ðv@s
+Ù$§0
+5}d
zM`;± &©åDËK{ßI9ÿPtøØæJ!Ñ/(´H²õDôoQà^X
+'0ZíH3¬¹A2L¹Ï°*ÌIVG.`ÅeöÒaÅDfîµäËWÑþmIëã ¶E_Éën½ô¨ºnV-ù0³Å3Õ¤
±^p]ý¿_7v¶x×þÖïÇaËï áhK^-0S+ÛaJĶüú¹ßÒ¯WqÊ¥eÙ)«©ÓW~Á6S`[Æ(ai=!æZ]]«b¿kCôÀ«.öPCÝ°( }`¬Ã:t ß!n®¯/hĺ) ëGWÐ *(HÒ^i¼(¨ÁÈ*IÊ
+÷0uÖJò8
+û+°«óåÁÐ&sr¼ÇX<°¶ p½¼Á;ÐR§ßn¯ÈÒ¼nE#Ph×:sÛÐúÃëê Ì#nÛÐÂïÇ'|pàêÀª<^îOüX+7_ñªýéq¤Fþ<"0¼KÙÃUö÷Q¾Áó
+᪠E½¥`ºm=Ü^aÔK<ºQ-<Øj{´³Ò:¹Æw;p½9yâ;ÑÕ$¥¡þú:mQ
+ü÷²u
+׫Ö@]a¬ÆE ëa©²9àÒاø(3úqª~ÓôW~ìBÝ*ãá^eüî° *÷i\¶åóÿëûgÎï¯mH¬T²ÆùýC56ïÇ!{Ñ3X¸~KÀ_×vØ*$®¬×Nö¢W¹':;Cj#>`*-îÇZë4ÿÉòÇëpþ9:~àr6Stö²ýðrYÑô6Âðô=ô&;:N/LgìBhÇ ;à»÷«:H%}3ãÅx~}¥TõVUÐësDN§ëÈÞ~Þ·Á¢4%âô<k{[ê*é"iì©«ÕQE!~¨©?Ön¸¬">Zh_ñ ¾
+$ôç7·ZY ×ñ
+¡ðýå^¤9j¨ê^U÷Vú:ÊòÀ ÎT_oXC4Aô8£eÖJx\Üe3¨caå!l!BG;B35¡äRÕOö=j:¥$pÄ9ñþúrCíÚ÷Dóµv= í Hñ±Öàôö`ib¡¼Í¾Dì:Î/Î ¥û~ã}Äúv|;³#¦
+õ)·;ppè°Z ³ªP\èç®Ï=Ìh_ôÿ`m~-´*´óÛ]¹µû²ÕT+
úXK:cøÜ,Án3ñ±¦Êc3Å_Zo^²
+iÐöéºÄø ._ï1µKlKÁ sã
+1¥;]3Dµæxîs:o,¸Î¯§Ê0òU3ÚY
+Ví4ckmUF¢o)öä¶òê2¶íTÏÏsØ,ÖújC³dWçµ%ékîV+¦É3pØÊNy<gÐgt²¤)gð~cíëf=ä0·<Ò»:DÄ®úãÌXµSiWT¼À0°êU¿ç_`¥1 O¿]ñÕ¨1ú ¹\Ýqs_^½ ö× )FkµgÎ÷ÆõýA{_Ê~Âuؤ[»¶òÓ5î¦ôF¨Tb`O¼À©>6êåKçZbðýå\;´Ru-%®e©vÜê1Ī9¡£ûÉl`öLÜ#Çy¨Õ)ä!\/1àÅ¡
+
µ?ôûXǼmV%)ÒSäh2äP3H£pÁËjï¯_x<Azü4à<°µSAû
+g#HÇc1Wó6
+9BE½BM ÔGë|oYØî¬RéÑEY[µÎäÏÝ]!Èsn\m¬Æ'¼¶Ó~vr¤q¼pÀ9ig¶/åîôB©
+Äíµ+õf-7NC0
+ñÀ½.,wî,Ð=óPZYr¡¶Ök¡K¤Sm.5Yéuï²ÈàµçFð®P¼u¹÷ZÛLöÜêÈb4[m¿ÖÃeuÃÃ%pþK6O*?^n:¥ÇZçÖ¶ÊÐÄXu÷4`np¡]⾯µÖßWEÁz@ÖÇç%ê·ª»çÚ6^Âíáø}X-ïWE(3´úaTÍgli» ÷Á)ç*jjî©%1ÎR^µ$dbÜbðøHÿÞmjÃã'©TkúNä¹ìW»´©ÈhPø
+À(îqÓKO¯ÿ,³ûÆ'Ô¶ÒàÕm¢Õ=Ük]ÿá!w}Öi_ D¡æ³ÙAW?ålkµNhÙG{ÂB¼l\j¡k³[
+ß_nÇx®ý,DNwÏoø+nÙa¯#¹>tF\mhh#Ë=D©L:¶Ø48_S1#éĤÀ
+$¶V`ά¿XÙBHj@'¬æ¶<UND§`¾7c%²ÐÂ:®¾>Ï2ÖÂw<a¾Ì3l?=Öfæ¢
+<a(Yú»«Háó
+¾k¼sáÆW©p¸ 7~¬hfC2!O8Hm°O¥ ezZÍÆ:{BvÐdI_à´×úÃ@i¬³ y9תcGz{èWl1äðl´ú}\¼4,Þª^y`¡OJ}
+lKr³<MúAÍ_·@]òbn-Zh
ÀÅS·ÿþm¯#
+HÒ±L¨Åjb
+,zb
+Ü zé¤q¯
+ز6¨çZÆ[N$)óç˪&×.cÝf´Ã¢»ªuGU|nv@»·"=î
+ëYnÚÎåVlúc_çÔÕËùbÂb?~ß»J¯é¾ÆÇPÎs£\â÷:ùº½úx"<á°«\&%/,°AKwäÀç}»Ø}SʹÝk
+î¬ä
+rµ¶d=ànvÍ,' L%=Åá}\g êÜ7`#.voowH¤u_lõyÜu(·´½p}¸aÅNúu\È`(÷+xØ{îË
+K.U7Ëm¹óVW5<&D·VGÌ¿
+<wEöð1ºÎ÷û?ýó/ßýüËß~øøåÿý÷_?ÿöúW |¿þü+þð5¬¨ÉQ8õOûµbVy5F64ѨZñÏõdYhEËMM§dcWï:ö¦ÑcWk¨Ä$?Ô(æ ºoØe0$ùþAàHq<`+MÃnd8¹M4Ó¹Ëe¢P³Õ¢ËHµõer¬Ô´Aì~îçêÅZkSÞ5°cìI ZÊl°&R(άª¶:ÌYSì¶?ëY(8YP^ììÚrÖä¡Ú0?iBª ü Ú;S)jd̬å~dN±³> L1X"ÍB²M@ö-íLCSWÞÚà5å¢XzðJ3§o¤&b±°N÷6R1¨*a×¼ÜP4w -uÒ,üAϦôï|WKvm·
+JF%R;ÝÛ~ðüçð$;éy¸ñ)þ¥ù?Å?âc°ü¹5rúrPzÿHk'Þýpkî|e1zÒÁ©?@ç½S[ÁÚR§çj®Á
+Ä
+ϪõYú7ò'(¿¶²i¶ñûH
+¶ìײÜÚRjGgÛúi«j=¹vÉè
$Öb[=AÕ] nѤ½ø¡F©ïuÆØw¢æ~Û¸Eq
+÷÷y©Aè¸x)í%©fóÂßhë>$ åºå¹A碸ÿ73qØ÷"ñÚ hkÂôf¼³¼K#ÈÁ
+µWr¹ígÜ[aÀ{¬¤ÊéM«KÒ]D_s.Ùîø½eÓÊAD¼Tö IôPÀ¹§µP!÷Xs
+IKA'%-ÉÚ
¬òîå-+ªÍ&*Ïûóyc¥#¤>¢°Æ½ÀX·M
+½bAê=ðñ|h{a+Zg&ü¬©`kÄǦE»yäo1}ïÞCÓû½(H¥¼yJEAÒcrébm*îôÅzÛA'Èj¥`Vlߦs
+Lé=
+ÄÐ
+õ ö©ãaØ!Ea íë±1ÄUú WsQàÈ Z
+V2ú_ XüïxoòEÃìì
LPo*?A¶!~ÁüA²Ö`ÿÛ0aÏ.ß¡M_-ñÐ\ÕNd£i¦aæ<ØBÉDRôb
ºþnS<ÏÔ`²ü
+[Báä¢ÄgÇD_ØÈ)
+öÞ%Æ@QgvÐe
+ÈÕq\xôQ\¥N»3³J8Ðæ}Í`Fà ÚGzï¸S^'~K:°(pZ,\0t±Ð½¥«ð5p½§ªÆrMöÓ[¦Ké
+´çR`u¥·ä
+2pH>Ϩ5âÅkõëR,ßfàçîzX͹p¶ª§õw}eøFëýyã5ïbÙçáàºG¹´4ìy²yC±cþ
+±[?öõdR*¸~(+-5"À±Õ^ôF¯n=ÉÄm¡GP¾o v.Ö1^qзÿ¸Û±6¾í»ÌÓà V{lõÄdK®Ç¡zû§jVT§¾k ×XÊ%fË
+W3E
+%þNê?ÁûcVP¿GMÙu,Áâ_¯(0ϫźξ÷¸842à¥èêÖ´·t×%¸&ÛÉÿ
+dâýP@0ô¶$½S9Ø>ý¼)pVINçÉÐ×A%E¦Ù4ê÷x×`^=ü¤$<%vÇ#Óy±MAÞ]4Áüw v; "<'¸íçõi ºq²(ë00ùZ[Ò»*|h R`Q`kÄlë#ºa`n@¸ã½´ZF¡¸ûç8Â
+±ñ/Né4дh·8aXêYù,ùäbLMwkðî[¿(Ðù]òèý ÐJÔÒ¹8Î*ÇßPöc:îìF¹yáà ÀàÌdï ÏÇÅb8Ëò,oæý Ô<Q¤Aí2?øÌ+ðFgÐû<QÞÎwEyÅ1¼?øj+çDÒæC!q ©ÐVÞØjéõX`yâZy¢Ø=躩~ ìÒ1>¦@¼8ÿõÝ¿Â~ oBÿ3Ô¨çÞ$ªö&`z÷é *=ªKJÙY»§ ÏТ@áÃ!#.QÜ#
+T×Òø8²«O¢'}î14 ihë- ¡¬z@¯¶).9@È&ÎÎmsͶY¶Ó9E¶¼_ªa-öícVBWYZ5ç,û¶RÔå¸ePC]Ø)§Ø1 'i}µ´Á`(Ãìå»|Í:¨t¹ààèõøh;£×§%pço
+¥
+KȯS
+XÃÿ¿=9#úQ4ÖÌä)
XÉs«Å5Ðâw2Ýf`u5PfèÒ¢CA]åc,ÑÇ»eÊ
+P×yÉXdÀ¶`Í/Xº|+x=ïþºv&[².È2>[ þõ§
+ÑxRêÖçl̼ WZÉ·î¼bEñ«if>D4½§ê¼/r+³k£FS»¬:bò_2ÝÝç[gb\Ë}@Ñ úÐÞf
ÀÒ:>Jø³
+Ú
+RG]C^y6®<©å°:@g2â/®âX×Êɹçì;g&ÇnÅì{ï
+`zWÉé* ÌbÎyç@W»ÏÛ\Æ>j¼Ò
+£ ºê¨«@@Ü|Ë%¨yÔþW+âíþ6
+ÇÂì©Îp
+të©ýjQÉìpî¶Tå*ÞÙg^L
+×-S2[µ³Dî°ÅÅÒz?úmÀTÄ*4ÍX1>
+ùÈnkTáÎÞL¹
+ó5¦K=à= ÷æG 3 M¸8¥·D/qsfßæiH³OÀ@Ìþ½÷DÛ&µ!õ×ÏG¿N ÿªqÅÖâ{íÉ°Ìóô Ó±ÎÛZÁâPÇ÷ª÷
+!¼ÛÔ
+Ø)2úf|>W ¥ÿ´.6G&íש}ËäÀN]é 6¯û,ó*§=µË\WXâ`Ä?øh 3h¥f HSJA¾u¬ ?¿pÍ` Uöp7a9
b«oö,ÎY?bhHªÉ~qÒ~¥ís
+®TêfU(··@ÙJo¶gì+¶!/¼k%A¹ÆÊú¼íÊ[¥l4UÓ/!»Ýj
+±¿~°ûx70ZÓ*ÑßhVÀÜfº, at 8BUó1)$Cf{J´¹uÈZnËRe'ó¶Ú×S2r30æb¶O{ÙÔJVï]ÞeevÛ%×\j¼dûàUàÎA¨z?g µ]£Ü¹»ç,0géÃ[bÆ"Ì®f¾jάÒö¹sfÿߣ4>¨&êdÈÈ.óÒxºê¹0²tÜG*ª}d@LºÑºßÞSKHxé&Ö{K÷DUù ÛG2X²®Ïq.¢-._x*2¹ä.æ©Ï.tQ`ø½Dg~-ÆËÒÅuIrÀÑ´1%Øß©+¿sìø?Æ«.i^eN°¢GÙçï{þIþ,«{&bß:R$÷Ù²,·<IH:âÄëi£IÐ8ë
+á¼Ñ·PÛwLíâl¸ØÏ4
+ä¿Ûeø¯'î¥Óÿî-û··Pb;T½>
+¤QY®ë¥ÓaÀTÐ0Ìó=X81ª
«*JécTÙ×=8#ø
+°k¬+j(ÁÑò
+åv
+TÃÈ@|fRÿõZ
+¢¥!;lÈÇ÷¸@, AE0e¯ÙK®´hþÛûQÂ2\±.Ú(VºsAspÎ r&¸m
+A¦¼>¨{"nÙÀ÷Ù3o·O®;g
+Z¯DcÉÅs±Za:ò<z¦,"ªºïard&Ø«¾õ$Ä
+}fÕæ.ë`sïÝÐ
+#ÁÕ!?'²º®ïÁY>vp кAKF\Èô¶ °pè¢Ï½C é&
Ùêá]࣫ô¨3¤T4b¢v°GçÍñFJ^ézpy³Å
+*{$ÖºJD@+ÀBòÒ¤Íá$k`y<:ÒÜ*¯+.cç;ÚHoÊ%ÖòX*0´±Mé
+ñ2Lç;IæÒº&´æÊ5Á;»BÀ ¡¦Í°Ê¹Q®%©V
+DMÈ>î\MFkÇ{É{ OÍÐðûÑ8OZÚéâéÀÖDÐp B(ç×iÞ÷åô®|L¸¶æê 8³ý
+pSV7îÄ?|ÃÚ:Ò»ë½ÒW¤±Auä¹ND._6Óòåluógº¿Þ~øB¸L¦4Ô¨0pSÞÁéb töófpYÁ8ûäã½¼
+º®Z!wÅ+r&ï)g
+õçL¦Ç ;ä+¡ÐGoOÈ«vÍGÓ]4Ãp¹´eÂAKEóÝIzÈ +O¡Ò``:Õ²»¬
+ãçÔl²`qZ/@nRí´"P¹|þÈÎ0ÈÜqD©¯uzJúYMÌ®Ëð 6îë̸?ÿ7¤yºÏ®xlLÕ=öpÞ¦ªêµyÄv½dÎÇ{E½<Hz^Ó¬9
+-²ýó[
+'ýÓ
+endstream
+endobj
+100 0 obj 23397
+endobj
+101 0 obj<</Length 100 0 R/Filter[/FlateDecode]>>stream
+HÌWÛ]GýùýdØéKuu7s(Ñ "ÀBOÁgÆùïYué½ûÌ9æ^P2Ö̪ÚÕÕ]·US^Z*a9µå絶¸rèÝÀ@-«|kj¬Úi±îÚUµË[gSÇ
+yó"(1!51iÒÚJ. fr7.Ëõ l/
+°R"$g
+?ÀF{¤!57p<_0Tì*{10S ~¨`£¸ñt.8ëZBÑ
+ÐÛìù[¶jèUQ$Ñ» Q&Ä»^`h;Ø©6c·lÑÍêéק"Gãã¨O$ç'#=<·/Êõø)Áõ%ç0R´ûàÄiÛ9£& ¹¶ä`.4À¤y+ .³½LdrA&a`ËZ'Eª*T;i±¬ÇÉäÚ¥å¬Ýt¸|ñÓcæ¼YÁ Ã_ãgR
+rÊÚ
+(nò ^´êí4ÍpIÇÓ¹{ú:Q>ÈLàÇ
+·"XÚs[¥éFISN0ɳÃf``
+JÏÃÉ5KÌØHhç(Aצk÷ Ù§
+»rLLV6'¿§º\¼Æ|G¬d
+T~sܱG3/ ¶u[Õt-hæ6±
+9±
+w&y(LqjöÐ
+Fó/^äð$Q«Y¦ïA÷Õ!ðò2KqÞã³î«³ý<X(¡-KL³fÝÑ)7j"¤bsAóJϺÞKt0½àÍn"kÔNµuRHyÁÙAÙ6º²`ÕqÜòhø*Dk3 0)È#DO5æÚ
1l óËE/&±4¢¦!m7Úg7Aò%4´ëea¸
+T¡RwÄÔãЮ¹¹6Åàçå¸Ù}âÄ)ÛàÇO3ÞtܾXz+$#T·:siûöq$NÑ~ûô¸Qç>L(Û¯ M[;8`ÃSg
+YJ0@'¹ B·GÄ}@]È{`ÞÚÀ]0\zG餺\ôbfhÔUIúü6ÚDP4CU`|`Æ·&@Ö8ÀÃf=ͺ,
+»Ô¨=âÃÅÏd"þâáñåÛÇ·÷w¯>.¿
+ò%&A)Ù ü¹jc 0 1øNáLñ?ÀÑV+
#mÕÿ x6eGéÌöìÛ;uä|TÑ«:OYþ`pRQ÷Ùº¿ÙÂÜ]û|fDÎùDA¾úÓ³wãk\̹sg£ååõSÁijý¬2Oï³Ì`êîReÛÎèdçõ`ÊåYöÚ£qþßöÌß=Èyw~ѶùtÎÿ¡ib´¤ÜmS9:L6)¼³çæG9cò´RN °À¾¹ÀJ`#1ÙÄok±¡
ÞÊÝxµ¡ÛfYE£°SJ|µ¬{W%(èP¬Û¹7/JÆú$5²¦FÑ¢{Ä
+¹d#@Èóâ!ñ§~CJ ²GO\Uç3VÖmgn
+Â".F
âv@sþll&
+@CÝ'èeÕ" GÑƤÙFL9ëhdÙiH´Ò£g
+×éúÔo¤Å°Íz¿BÃ\v(l¸JaLjQyéƯ¦Ï{ùz¡kÝâõ4^"XÌ
¥:p¦»ÄD5ºH2F>~JexLÓ¥|CRØô±W$YÌ
+ãAÔÀe¡à@311Òd:PEµu_]P
Ø;ͨ
+Ø* ÒlÉ@$0yýkõ«Â`v÷KÅ*íÜÐP3·ÎÈ¢ã,Öqj].ÌÅÈ ÷j³ Èu.ËAr5bÎÆ$%®f°;ñt*
+bé½èÛY<ËêÒðWM~uÇ3Xм>ÙÈJU|Kbåõ]ùû>mµ¢CnÁaÔR¯ßÖ Ñ»tSNÔzA¢¹j.h=ÄÚ(F_
.f15;ßuÓø_°¬
+¬ú*Îß±G_
+VYø$¸h!ÉÄ>}¾õ à<Øe{¨ DÍ:£ª÷~¹
+
b¿FhY_pÊÐtR¦x7Ïi(Tè ß®ó¹îV¾)ËÚ¨ôªÒÀRf³µÃÚ¨9ðäûwÞ*É+2Sm«'RCË<ë2Lë<@=È$(è#ûÎÚvPhô}Aw£ti5+$4r±éc* iÐÔ¦Äk°Løæ®3e:ÐåäGÝzÆ(èKp'2Ö©ÔD!l«AÆ-6<ùSî6`ÑÆvD[gG×4`>ójCtïÙ,(¬)tL¶I ÇäìÛmÒ+?ü
+mÂÿ{ÚÎ(W¼äÌß^ÿ~ÝéM|<
+¿«·Jb¿Ì¢ØGãõí3 îóx9]ûuÇÎwÏÙññÚv|{IûuǯavÇH½pGÔÇKôݯÛâp*yM;;gÜâp¹Å±°Ñ~űkægúúñJïBúí¥æÞïò ¶EáõR±¯ûþðx¹jì·Y;Q2nÈõxr;B½½D³ý¶·ùnôùñj7Z~{Nâ×¼]'qüúÝ÷ÿþé¿ÿñÏo_ÿøöÛÿÿóû_~é_¿à¿þÄ?>[?eTêU
Fm©ÙLÁa`ó×ãçjL^ô&xW
+ÂØüf³_Çé5?ÏbÍAª2A:£î¾º¤òeÊê£PÄÌ5
+¦ I'ÛTãÌIÖ+p×'¡ºÍ/(~Üb(EÉ É,×aí©dÙ§"w׶í!q=-ý¸pæÒ®F
+7òÊ-(uëÇ1ÌbËV³ÓÇFók9^¸À
¾Ñѱ6S9-RÏ)5WfCøï4:R೦ÛiüZAhÄÚŨ°Ý°±B!Åií²
eÓ;õ#²ÕÚ4º-=9S#a$â±Á
+Ic%÷Ù
+WY [$óKÁHDW,d!¼)ê±T(!], ÝÆÀ
+iËð±¡J¡ôÂãSËÌÑ\ E:Âå´Èø¡:yñ{oQ,Ê¡"ñÃ@.ÀÖeôIRÆéGgY'ãäia$®p¹¯X³|hâJ¡@iÌÄIÛÛ¡DøäUö4Ü.@à·t]ÁE«UIsÆO¡Ä¡kh
+¯ñÃùAQ³0ó+Uæ
=2ízõ 'Àhb¶
+(5[:B¶Tr4:(×ê×
1l½LîUt²bJ§¡®f®ÍEoÆY¬]ãÔ*)cÑ3~¬e\NFd¨¼0ÒÕ Ó©tý
+Ju.Å!trt²ãå¨åô£²B=J¦w鯨Å]yÎÔKí;èÔ×᧠ڤ٩L
+Æp°ÒÝvqýߦsHD{H3ß/Ä^t¿]e7.ºIîZ¾U§¹Â@NÆDzקÙb®LQ?c¡ P<$,Kd¢vP¤grÞl¤BUÕ¹4Æ£
éë0×1¹:ÎEDø´½§aI¨}i3ÙÊ#Ly"aÖ$ùÆÀÛÆY;ÖQ¬õ
!±ºÅø3þMw¹îFvQø üçO¤p}¿ñÃL
+:òbªÜÚeøqÒöÓ#&ÛÑhÇL¼
¨.Ü9ÄLãI,%ÛÞäìn»µîŬ¾£pºÂg¿ºMK8¨,Õ<Ãâ8|k´Öö Á-Mâ$n³
+lD;Bá¨|\³õ@n\´>T"|]I¹Iô÷-' W'û
+Û¯O۫˯bØÞÝß=Ü<¼ß~üïõÃÍvwÿþæõöKú
+~ðïÕ/ðKÏÆ¿\?=Ý<¾ùøôáöpóûÇo¯oÎÏíÕëíêoïïxÿíóÝ¿î?Øÿÿîæ?·³¼úããÍÍa»|xøpóú"lø¹úéâ#þó
+~øÏø+ÚßWÏø?áÿÁôÓV¶?oÿøgØÞË÷þzAhhAeÅ@Öa|U/1Å1JLPb©}Àªæ=µÄCdB£ÒµI#x
6æÖSWîí¹Ú²9
+í©Mm«7P²ÄÐA:rPÝ+M#ýÒØn°e=òÑ ãå`=JÃt(¥E¯í,b0ù
+2[Ì+8|7î¯[leäØ+¤ê¯{l,¤â¯p|6,yÝ NjÏnôº9=æ2ÖÝØ=á2¢×
+Â
+bµòò~Û2ýZ$+ÜGYÀ"â+e?[ü¶hËkñèÜAñ, Òfg%Ƴùµ¼bóÅWþ°´g,$¿mÚ#¬pÇq
p\Ê^1¹Wüµ²°î
+ôÜÄu[íuÒfr¯²-ãQ¬Áü¶Fnl»nöÇ+nTò¬°g.õ®+µlÌ\1#õJIÀk²
+ù¥ÞÃPUGøeLÐØMh|qVTÓaÏõ,Í(mØX1ædyZY5½Ym(§Ì]eÓS¶½Å¤Àc+Vm!êB÷ãW6X®2ÇÕ®/JHÅp×hÒk%·YW
+¿Ö_ø\wC¹ZJ.,ZtjÉQ¹ª#Ê`pñCÆå,ÈI3Xþ¾ary,ÂÙZmr3ÄU.-ÖôÉYôiÙ¼Pl{M³LÞ`\Æö¤("hïqQ_+b)=pÈá äæòèLá %çIíºPªUn\g#;ÉéD»b,åI9
+ߥà4Ô ¾ä¬g×)§¦/TQ¡5C
+ôtç{
+4¯â)J¡Ïù~×'ù=¡´ßÆר±Ne+ EZZcp&däßo¨B£ò¿ß®k»\¦ói(±$[ìiõVéºuÄwá:,ýȾU¬qî ¦Ö¼µ1w»®(¬eÓr¢+&:O¶+ºµ(é$,µcF²Zö¨X¶
+ÙÙXgéÐ$iàu»S
+¨Ó°nN4Kk÷§³â:2¯z/F)V¶?äv24?º4T¤Ð$Ëx¬íYºPc¬,Æ5Æ1e9hZåuýÉÒtiÅT: êzDU«¢Ð8+¿º¨áûi°rx§bà÷¡#C'hå¬ÝYílî5:$§h¼J,ͨoÈÍÓNm9:|»"Ië5*xÅÑ1ÊBæ\@´SñvVmS§}4MÞ%ö8-Zú,7+~dð0Y2Ô<%5TëðâÄƬ-%Ù¸°¢Þä³`³ï£rBÜãPYH%)ø`2ÕNõÂãm/ÞJ Û]`uÖ#ã[+n,wÎÕâfµrG<¨ô-KPÚ8º¹íÝ
+¨£Ç1^\¡OáTùEs4F³Ü´9l °S
Á¬Î¢ýÃ
RàÓªNe4¥æ(a(",:mÄôF¥Óª5´è2-;Ϧï%dÇMRÉ=¶ÆþT
+ûÔ¶ O³MA$'cÐE°õ8~¾üö: ÉÕH:ʸ·XÏHÁ8M¯±(ôß*JïÎ9Ïd(v
+¡Ú*ØÖvÎhC0´¥¸P×·
£%ûÕ¦f±ÊÚÇmx©1)*ùv+ÑÙµb45
+¡e¦£MùéN!
+Õ°oøshÑ£iÇD½T Ík< ¬643Ý»¦ïhtz>
+¢GÒ²Íý(urg«7Ü¿ÚT¢¶. kÉÜz7AIæÛg¯ÔiN2ïÝPMùUËl¡øè_"ûQZÙÓºoZYvµ9$ëUë#yL±}Gõmáèèe9@Öç¨//fBgÕ£³#KF
+ëC:+@BNE%ÐTø·ï'r=0!V}Í<%êàhnYtj{!NðÂTÞiZ¨é¹9¸Wh¡p?1KÂêÊ#m·Ê¬`5&_Î0M¶Ç¥<9ÁÖdPÞÿ|dߣ°#5ØÍâÌ&(ÍÈ%ÄÿïçùëUá¨4p¨0ÔM9É=½³jÎA1ruÅ*e3·g,uгwÍÙª¨FÔúìΦÆ28Y¯EÉ$T´¿«&t©P+{©ÍdÍÉ®{(Çb$!I¯c©r$ÈËÂc±·%Æ@SM#îið¿*áÞ
+¸Q¾Ð-ôÄxi¥,_ê´÷ò.© A
+yk1TJ
+Cñ3ÊtFÃÎè]Udz:zFséý¸]bOÍ© ¤f.¼§¨[4faæ=§aû Ó[^Ä)CVÙdµÒuÂSæ´¡Ü'ÇÍ#Y+-ùRcÓ¹çãªHÃNÉhqh%_(òÏ
+O«"¼×&Û
+ÖOÙ¿¡ªÜ«ÚÉ~¡.@ÔÙ¸èc£,æ8Øÿ3Q>}9kÍã;;¦º
+Û&vdWùösæ±Q\Eîe²ÞgwgæÌïØyµC
\gW¤f$ÎÞ»éö)bï3ª¼7^$*9<}¦'c °ÃSBÏÑÉ¢2¡ÂoþZmú H¿gA]VW\î~o4ºö>*kf×¾»jìf¹§fä[@ß8MxRKC©ÜuúG¾mú{Ðï=è
+?ùþüäÓW*±(%þ"
+ºCÝ*Òü+îDJ°ÒjR×ê½&ÂU
%Ô
+KåÇZ¢~s0ý×èûÝ|à¢36$ét{Æ^ÞÙå
+©¢Ù¤íÂb&·rdÌÂ=-!Öçòez4þ쪵³LÇÍ¢®ãCejxM©fº±´-zÄ¥kÙ'ÕÁA}¸
+<·G]55üô{çr2½:·;ÎÔãã[âlá0ªrÚÜÒÅL¸[·ïkºRÖ¡Y¬BmËÖÚ1²V¸¹o:ä,¯»¶è×n©A
h9È'HTú*´vp¸
õ®Ý'¯EEñcx¹ÝbíL]°±§¿51JõV9Ðp3¤Ã)[Áaq÷íd1#¥Â7
+ê(¯qìÂ*7=nc)[ÐêèØ·úçF£Ga
+Ï$ÛB°ûzQB§ô¸}à¶J_h¥Ðb_tÄjÀº §FÈ,&s
Æ·Z~t×lYO¤ÿÝf<ä[Bvò\¿í)ñçêÄç=ÝÀp¾
y"Ý©p4ªh.ìÖëÂÁ2Èõ)|l?5Lw§a´ªj±vã^¼Z£Ï-óXêÌçî|Âa®6+¢,JáÚ³÷#ìâ\+R#ÿãsKpçèÌ;ÔÔà¨VÕÁ4H;×ÚÚúd¸Mò¶¥¢x|³pv¤ë5\ÞéV,$<ßJ[£ëª{5ª¢èçæ=n¯¹9HCƶռclõãRiÁCêð£¡8)G°Cá¸ï¶YÎÛfÞÑ×6¹n¸SÐÊ·ÅËqª-~W'kl»Î¹i{××0;üjsĬ'¸-d^ðߧxYP'¸"ëjt¦¿¨Ý;×Hgy×Sc3èAñ»Nó½nù<,£WdBqVJëxÜ|;±ÌÔ¸©
+®ØTI¦°=j0¬;`b7ïYó}£°0°"@ öék}ÜJ
+yËìé(üW+Ùnf±HAsÇ| NÀ¬$|ß".úNû.6VÛýèg÷Äo!ecImÓ³ÂEpSÔUæ
ä^Iµk]k ®WH5
+á¾¹]6;øùjÕ²»Hà¶ê+ñ¨_¸%È\e½ *[g!}ldÏÏ~8ûäû'_\ß|õúåÍë«Ë×N¿CèÑOOÝ\¿¾üñôèÙO/Þ]|ùæâòÕw/n~úú«Ç§OmÉuÉß>¼»à¢Ïñs°òÉÚ#Û¿LxO2ÈÖÏf
%>ùÂÍ<TÓ@Ç4CmÃ
+éZãáÞ#bJf+aöU",Ü6ä@^pq&uGcvSpÊ»Gãè#6äÓbD3H#©ß4 ×±îúT9oÖ
+]7PÍ'¡¼ê½µÃcæ¹çÍÍq,ö ¢
+FnFÓDoCü²¡ÇC»ÞÅ<ÎKiµ"\FÒA@à¿]¡ÖÜòçLCÐ-°Sñ^©¨
+ꥦ¾Ô¯©È×È
+ØÂ;/õ0ʳïÐkJ»²0«háÑ
+ at iRõÖñ»<ö¹gÿ)²)5>FIµ%ØÚïà9hÕHRªßrY+ö ïwo8:¸à
_pásÎkà)+Å1Àèjç·p+¹cÆZf´¸ºîÉØòF²c&drìÇ1ì
+ ^Wp:E¶qïnðÞõÀû;wñ{WQÈe-^ìTöúÀkðh;Æ8ô5z]Éägõ%
+=5\Õuó@K`pGýé áø-ò<ÇFd"ù¸ÑÚÔ%éX²ÀìëvZ¯°·f¦¾-^¥K,ݸ±õ_h;S+ok·8@ø
ýªÊv_A°¥]%ñ(+ê&@âDQ²9ppgø
+°è&çýôßB$>6Ìõn¾$«=±$ßfÇ]s\ëb¦¤Udw*{8ÉíÒ0)jÝè(>¶÷½Nê(<CR°?
+Pl°6sᥫéOÑnæ¿xk:AñíSZËëÂH«øfêCo׶&ì¹Ïoÿ
+üq)[t6¾
+·úoä+é¡ ¤òñ|ÐƹÄcKemÙÛOÑ«kþÂÿ×MÓû±Qû3!õJ¬`·sãrÆfBñ¹Û fÎiô(n|îU
+FÆÇè#AL®Áçm ßÏâG<4¯/
+7øÊ6·Eæ
+
+æÈ\ðx¸Ö¿·'¦LqÜÚ¯Ròí&¡ý÷àÀÙ
íêXFNü¨«?ýòÒÄV]à/ãí-¸ìE¹ôÙäÔµÈ.º5¢Í~&ã^ºZÛ¤þºôÈkìõ~omz¤ÔIÍı@]MÃÍMÆ?3!G±·
ÒÌ
+³Ë2ärä~àºl
+m)¦aØõñÝÜÔ[OP|õ
+ýæ£pºÓP5
+ri¶LûÎb
+ØS2ÂZ)Â]nê`æÒes¾:V¸¸v¬§åè,°&«æîâ¨ÿWÐC.Yí>'~&8¦AøÊ@6°hbÁïó
+MsnæUÂõmÿQ0m269xA¿`w]ÜÆêÛ7%Ð
+Lû?øëëZa©èbúI7`K
ßZǪþÇ~äp°,nCMI«íd«_6? Ô£Ò*Ò»R³Þ
>ÿò{-çÙÃ6þÂ~ÁKõøÛ϶5tGS*
+_аĿì!kéï!U² {ìö%Ó[a=}×/1¡õ[㸿ü¬ 5ùÝ£ÛiÕÔJþ¦ËàiÏ\_¤`s"À!»Ê?/\è¯tò½ùY°iS×:n¡æçR;=Aì¿&ü^À
+|Ò';têÏa¶DaxvNÉ+âÉ®+Å£íEJ·ó³Ûîº4ZJ7|mÕ AQe{ì°
+ùª².úr±Jz6zlPñÍúqo)~oJN+iºEàõbS®ÂXÇÇëÑ
+lªmÆi®ÿE<+Ñc¡ùË×.bÈf¨Æºï³ã"àÚÏÇPmifâÙ³$·
+1gñ-âÕÿÃèô©»éVïÀ|ªÀ( O°ë¶i¼Ë`f:«
+P øãý³E¦_#¥jëÝËèSɨéUÙÃÕ0aÿ¶*ªm7>Ægmö:ò3C#á6IÒ¤B ÙKom<¡Àë|ÚåÁó²ZÏUøàqµ®
+túAäb2øÆÂÐKõèa0Î&Ep3¸û+ ÏÐÂ]½jøEçNg©}$]}Üå;¼¢zx×¾UÇ
+3xU@zUpSµ^~tÕ<lbåÂØ{¶ðmºmÊ(ZÛ¯¦ü ìÑÉaj¶ü>arÀçúÙØ©xkøz»
)åcÿëv
+/û¢·¢+A×ÊNçO¸Wû>Ægq-Ó£Ú
+ 0¢*
+tß(iUs¹4¬²í¤ØsÏ¡i&®«
+v¦ro
+!åY@äSÁr ©'Ü î]Oû|DÛ8ëpnÁ¡(InNÇËß5üý/ÓÚÛcÉöAÅÁy jY
+¸¾W®O+xF ïXK¹ëG»TÿÞT=ûÐ#ã£SôM°!pÐr}ûûbIÄ¡g+T½pLÇ9,êÄqªx¶:F2BÑñ
+ð×kì«nyrmÑìóÙDèÀîÕ÷/E@[á<ïÙÂÀ
+v
+7Í<@¨Ï1ÈÉøá'XMql;¸ÐSø¯Ö-Jh;öº
+.`=_Ýäè1WÍÂþ^Uf®µmåugwÆè+\ua¤Mv8$jÐõ8ê¸McÈÜSOCð~ÆßÞðlÙ·ÇøS9ÈÆ-ó$
«<ëI²ºAíZi&ÓU
+Fjsµ2\ó·9¼mEöQl«~fbýú
+C
+RÅ-Ùã£7ÀÚÊÇ¡5(ÃzÚ?.`á~iTW)[;§º1èÛwú±ûe0ýÍG`á²k
bÂæä(Æbcôû
ȳû[Òl¿ÊÝîÁ辯eþùmȧYëaÄQÓ] _Öë¹D:xs99'OÊþò¶,â¬kÛtðK
6åW:¡SÐíÓJEYºSökÜ<¬-Xl×ÖO¨hgLÌþòÚ²ûÃßÞtêø²kûB§}ïUÏv¾ÝHÐñ1À3~sÓÁrôàiÇ·üZìZÉK_¶î*XF[z6DrU3TúÊ!>ĸûåüÑÖ|°³
+6ZurR¬>×Ó¥Df(ÛÁÈö`o-äG«|Á¬8ÏÔêRå3ûáA>¿¼¾Ü;£#sàz¥ìYvI{¥Îls3tÎñûåµm×ùÛÚ$ý`®k;ÕàMÓ@xïê×ðìMзÉDòº«\¯ä ¾}3SÇoõ(ýàVvoÂúNÃÚ?"þÆk«ìVW¸ø&oÍÌ×Â;Ué¶Å׬˦Çy%XÊÃÚ¥k¹°Q9?ºRâ*æÿö#Te ÀÁq!8»Z±*Ú;AÕ0¢^u
+÷k¾n$jÅè6
+ÜãuÑú>éMÄHjÛµDcï^ÌßlfOq¨:åÒ0W¶ì#ÖvªÀ±è7ÚU
+ÏVH¬ÏbáTû¯ ìµÀ¾î{ÃxeÁ7D;ÞÕ ¢¹âa¿=[%
+ÂTDª«ÛλAÙ×iðÞÏ÷abéÐtjÓ,!À>ò]ÊUò$xú;@y&<²ä!uÝì&KOWÍ
+*<°®$i.Ñ
£_L×ïü¶has0t rÁÝ?SXzPtÀ7ÇW5 1Uïh=Xó®b¢^Ó:ã^áDpkÛúÊ°w
+T²ë¶1ñ·Fàëa {ë^@Oív
+7eÝFÀã%j &£Þ]=éÝú@pϼ
+?fOvÝ6
LEå>~t I;7Xêc3Ú^!rí^ðJN
+pøïHÂgöPúDUL£üÁÈ+¾<pS<´t¡OÓ
+xÍ(˶#¬gÎm
+WäððïNxøéã§Ï´'Ô´Èzz+éi°Zä>´Øå@ùµñùÁ²û¸±Õ(Úe2ÕÙ»Òüç.º'ØòN©ý$qLJ:ÅûéÒ÷W2µw¬ÅMÐWXwÚYvÄoã
+%ËïV"ÈþÊ"^µ=ovä6¹ãÙ|
+°»yXô¼BIÀ9][¼Øûb+Kzèëm>µÂ»Z%f)d÷¬@ó5î«ÀØ;×<jü*0üf'X·hÿú§<âß]¹h}wf§LÿIÔÉÂÁC Z?\óæ*ÓBv!¤ÉkKW°ÃE®s-.%8môH:Þ¢x¹/£àu¥¨ÏòíßCÑkE(=ϺZ5ø©`0ërW^v*FÅÅA6O;¼kÔoóþ.Ý]]%¤ æ$º®<0{äÅÓ
+~ÒUe ÏÀÿ<ÐÇ"¨Ë|?ï7Aª°°,õ©Ã;ýÿ7ÞùMÈ,ÖVú9.v)ê+ÞTÉ
+g
+ÿeñofH¢AIwƯkñ¤*÷-
+S`¦¦öôtu7 ð'¶zùåµÇ¼WÞ ± ³ß6ø²]Ok!EóÏÿy8¸Bõ¾è!
D÷'N>§Ùؾ¹ooá.½ô5]q0øÜFÖÞË`j
+àؽãÔë-L>»W_"ç§Ýx8Ø".$pîú@ÐÔ/¯õyÖ³\æ4 ùå°îÈ-ÆÎ)ëÆìÅg§¸ÓâÅËc-túh°U'vÐê9
+$VT?_« Ük»è<ÞùDÓ,rD`àêó¶mÿ]õ¸æ8ìs¾À
+6@ØL
+î¯þ%¸´]Ô9ÕRÃ${O[ϵj~T³ÔÌUô1¶ÊÇlOI¢«¸#ýÍú;ê³8ÆÄlØ7©õ¤°]!ÝOóh"AWó%Í%TÎà±oeÕQ6¨ðEÉvÀ@`Kପr¨o%<Q&ïå*÷¬üì¨ÏW×-[ ¸åSÂÒSAÃpí}r\À·O¶RÛß'6ã¡û¡Yv>§sm<o»vµËýôP( g¨1AøÒ)»t?é¶Ef½ke6µùõÜN¡®±q"hßgY+
+t6ÀÍ.=[s¶ìM° ê?».avÂ-¶¯³uÐG%'ÎÚZÙØ^ºÔ:i ´ÒZsÁOí«hJ+½À9AÀeh¥O]XJ:l
+%NÌÆâ8ÔU!Þ<ÎÀÌjúæÄ®Ìb¯^
+
+Ð] Û~çSFSPÄ^Ånsèó>ýü¤äß¡$éÛÖÞI¿|쳪8YUüEÁ¾kâüֽР6¼S`wn
+fÑôjo$ñCE2Úueü(º\Îm즵gÈø}Ó#Z[µ4fb_,84Óæ!ÕLLæ`)
+?éÑFKÁ1ÝoK°ïzmûmpwãZ\¬,ÎìÚTò
+R
+øQ
+þýGøBDsb2Õ1bÊü9º'_¯
+¢?¶×\lÏäêû|µë©Æiùjÿ
+¹é5Æ£wO¸ä)
+ífÚ`W@ÆÞó@òò¬!ûÅ
+¬x
?ÞÉn\R#°!EðX<Ëgu at HÓ®` Ü-g;ÀRëÌs0ÍÔµÒ
]9|3ÒÓK
+Ô/Ñeûò°ËÁ¢¥+vÏ£_u»TOgö7£ÙƤÜç<IóD¹]͵æFOùaÍ»<éá¢ü¸}ߧÌÖokû2m`o0_¦&8¸&>h¦î£ïÝMZ4Xb¸ÐpÖs
=ÙÒñ/*ë_ÔêcükS¢Ã¢Ð2?~qí
çÛP{gä`z)V60ê¨ú;[U½ü·Öv5ظGbü¨êÆãý¢pº(
ÒeW^FÐ'îo.Mi0JÚ¹Ö©p Ì¢µmJ¾`+íÖ¸(³JyÔà ã \`+gÿâ¡~Q|â×·}ÿ"leÎBK¹}4e06ü8z]¨üûE±|îâqs>aOwe¡Gð¨¿(ìÏ©YÑk
+ÐB¥kßþ3üþøÿÃܬ´uö±ë;¶v¸RdËÈÜTq~Wî®Iö[ò}
+t|±îóãûì8k³ûÒd¶Ó¹Á6¦Ûe
¢úUÂÃÕc/iж:¢ÛÔãõNb*fê¥Àv´tr¸ÕÑ1óк¯ò
+u5r¸Þ5ª.ÀéÈ@÷è°ÞÞ0b
+´y× ¯Fb3:#^,"ljé9BlæKAÓ Æ¾\{c¯aô0CĺOçÔºðöPÌÙ§8ýÍð.L
+#8281}fùÔh¤&rϵ÷e÷å
+sµw2
+¬
ï9*[»ÖîZÍ3ç¸JRÏCÑ
+ÙpM¿>ûí©"NÊÉþÁñß«,áÚ¡qÖ?ÎXÙݦ}075Ãì89<j¶{ÎJÕøïCèlx<DTÕýǧ ØÂ÷~²[F9b0Úö÷`ÝÂêe;¶ïS¼ÖªA9°¨âêú=Þ[¦ÙìÚZÛZ9ðæþ¯XVد~}þâþáÕíõÃíwW÷§o¿xvzþæáþöî÷ÓùwWo^~¸¹{ûãÕûï_=;}mK~øÇ%?=~¼á¢ïðwöóY²Gó¿_ñ?øçíÙ8?;ýò³¿
+_;l9&(ÔZdÎBk±p44*
+
+¬rø¶çꮤ7æ
+
+¼¥I¸oÓÚA©Çuws2Ìú÷ÍÞºv@³òyÑK¬NÛLÙKø0å's%4ËDgWX±-xv¹/0/ï-
+B¤PMtM1I<ãLóX<BZ¡ÓQQ4áLYIãwÃ};àr¨-fG¡Ò@«÷µìI¸
+Và°ù¾â ¹éàxÝüÍçLö<é»,nÂlÐòu°7vÒ®hÁæqdXôÁHÐÊNÉfç~í0z¨UèwëLs6Í´p_ü¾qvævëÛP«ì;ì]4ÐÇ¡³³bi×êÖe[WhðW¾E»rdÍ}QºâÆusÞ<C®EiÚÚUûfð,·°(j+z9׬ÛÜù®Ë¢¤&l
+Ì|{¹ñhxÓ¦^Ì(üN$}lz?ÚÝ+?Öy^v]!ó^höV²Hi©
0Kõn®3Þ
+å'MÚO«.ÚçÏ*¿^J<o§ßFm´wCbÁ
+ju*À® }Ç
+ó6Ñ>¨E(ÖO±v- @ó`
*e«Í
+²ÉÛ½¤¯¦{Ù%w£Ö¬ê
+ÛPE'kËBû]\µÙu
F40HΪPé;÷¡ëv¯¾èüyÝÅþ÷µnÑB¶/B®)$ÓyÖ~ØñØ6c<´±º8n¡0mÖujeA
ÛBÄd=à¡Ë¨6oçox§KAÓÑ-.wDL0«ÇÝåÙ|éë¹ÄO\oÓ0"
+àÑJ&®è=å]Ó7¥¹b¾°tWà«¡b½)ùÁçè·x;±³}-X6Ðâiãåb\aºÜTO~÷¾T¼Ç±¬c}Zðº¡ÖÛ)»RÜ,;cUSUã¸gWÿ=y2H%uÕݾ±ã
©Tæ[Ûv¨°
!Þ,7§Õºôhcþ-e*
+Áã!@Ìý`[áäÑûBÌ&B${jm*n]
+´ïèV¦Û|o0ËpâõîºÌßäá,Þù¥ÄhÆ:âb0M¾Ô4cº|
.á]¼ U¿mï}ż{9_uÐSaÙÍ
+4Eba
+ýêáR¶ÓÖºóx±h8V£âA'×
+ðÑU¢?H§æL®%ú¢>À}
M´0
+ð¤X(4²{¡.
+Öµ ?%=Ð¥Ýå(Á¡ÁqXs°lpGw|-áv+cðÈz/p׿>s¸z ÓZP`n̶4:côzS ÷¬ÀVåZ,¿Ff:`CW^y,°
+X³Ø×
+°é
+æ
+îmˤðèa.~í0)¦³Ö¡ß_e¥Ú^5¨ûþ%CUöpsy<y.c±È@&Í£\cj3Ö4c-5Ã7hYq{¡¼ºJtÂBU4\½ñÌr;?á £ïr kÕ4Â:b(gªà<DÄ¡®ÃqÕíÉ¢Yìªëp\2àÍBÜä½0Þ]n0[ ¦´`¼#^ȵt^óMrVÍ®CgU
_Ë"oû¶V7ÙÛf%{2a ×ŲÐàÜÃJ:+Ñ
å^å)ÜÎ
C\\ÛF¡KÁPÒ
+K6.ÜË|Á¶<l»;A²a£¿Ä¨r>V:¹å<ªÒõྦ°@sVSëÄ7äÒ¢K¢£À%iÃÒá;¡öÓIÆ
¯à®²aÐ5F¹AE%Û-5y£¯¥²|ÆH´¸¹Å®ôò~`l@êÕ.³4Ö ©Z}ÐÑ´Ð{¯ùëÞÖÇ £FC]ᩤáÀvmá`#{ÒÊæRS#Rx}ÃVo-Íp
®jm´'>
+1×I5¶ÒTß_7MÆØLÃÛÞká&6O°É.ÒÑEØîÙD0[µ{ËѤÀ±åèPIÚ {í¦Q¹ÎtêUks ôbn5
+Hµ/÷KÄbpãÉiã¶MIèúûÀÝ£"÷Ò+î=|Öìì§7ü¿ß°ÔVøÒýÉzHbݵß
+Ô,.ÓURóÅáö]ÁOxÃÊ>e©RéØg¹MÊqÅr`C)M¥aåXòY}ôà ̽·3Uj Â>5üÎ_çj<«ÙÜ8$ó«"\Áüfè
+/ázWS6xhBc
+Öq^k7³'óOÿOl«çÇ¿Uq¾ÁU,!´[ÿ_½¹f´NE+ÝDóõ6úÏb$¦$&ú5®´èÄW'¹+NÇ*7gm>éät¸Þp3¡A at lG8/Ó°þ7à
+endstream
+endobj
+102 0 obj 23622
+endobj
+103 0 obj<</Length 102 0 R/Filter[/FlateDecode]>>stream
+Hd1nf9Oà;øû J¢DÆN7^`b&óo,>»4º?è×£DªXÔóùýñ¯{ý<Çöù´yös|îÏúØÞ7à|îó
Ó~Á¯âu½ñ®¾½vÕ#J(v5 >Ë¥#Ðg\Àçbkçãk2¬±±Ãqº1àyXGo°xóì¹Nµ\yY÷2ùÈ^Øt\;ÝüùºÚh44å÷{®5{ÎQå§n}?á_070öÐØy¸ÁznÅzåÙgæ
+®ØÆ"wÖL©
JàÖ~ì®ÊlÀ)P.#©#Þí½¸J¢=kHÁó]n`+Êçpw/n0Ý#²¸Á¹¥!:~6È4¯·ïB¾¤+fëM8ßX7êYøþøóc|gîµ>ås|þÅý®S
yðÿÏ¿·Qx©ï>ꨣâV] ÂzOjM¯÷¡ÒXp©{¬LëÀñt³Ç#³JÔ¹£ÞÔ¶f
+âð
+ÆÊúþ~ìXcªÖ^ìWâå5Û*dÛyþÀõÇIªÔän+8Ô|?ê·¿?qUÂNG.7¸võcc[ùbP2vÊ$Ä7^¨pÛAÈko ntÞÖ|o
+ÜÚ='³°Þ`Àuò
+^º©m
+ñõ<jPÀ;A`¯ÂÆYr-gV¹áOP<Bµ~À~yu7ɺܺäôgký¯1áW¿·³³^*wS0ì2 ¯Ô]Á
+óö»
+·;KoÁtÿpå]k!Ƕu]=Ç@çª]¡²çÌZÛÇ!m7Êbk½ñÚÖ!(wF\®õµ7Çükm¯m/þÂZ³µu˺
+¨V+R ap;ù6©QäZ»B ë6Ð*ϵ
+Lðf3[6Bk¶BÑ´FeÿóQø£K|ëc§ÝD&áôÇà& µ6 ÌÖ7ÀÊÏ¥"íWÞMÆ%ýS%ZgÁ{²q&\L°.o|&×dÕçyeósÐ8½Ü÷dzyµi0®r[ûaa&$«³l.
0
+fA§QH\}>ò[uð®Å
+à]n[¶0V)ûæ%UûBlÔð£NëiJÈsGwùÒÈKùÐN[L¯íÁw¦ÐåÔÒz
+úö0~tæPtòçP.Pê7úî$«foFßÖa·@¬.UÝeí
+vPÝã%M¼Éº2ïJ¨^¹FyGV¾Á]lÕ²RF!\NÂnEv¡Êg¶ÆÆÉÊÓ>¹æÇ®2«°®j«0VÝéßæákK¡ô¤"Ýb¡aé#L˦§Fªh{Õ07®LKöÅ'Ø®\ùOW&Ì~ºîJøÙ5ÜÂ(ÅÔÓi\7õÓÆ>Ëm¾\kÑ\(á~ßÑjO¸|B¨ì¡3kF)88®¥ú:Úh
+ïiK±ÀÞâmà¾2<2#uµéª2ÀvϺ]GÕ¦0a\<o
+:(ÒU/ò¸êóVþæCLËxÚ®µøy5§{Ð_5%|ÉÚ/9±q)ý:>û÷3f!ðß´/w¤Ìd
ÿ)ÝǦ½!C02
+'LY«ðªípí
+_U#Ë¡r6%\ÒW 5À®ÖRËc×}ümFåZ=T6Å,î;<vÈ|(ùsÓ²pÑ92xå¸~ÿ"¼n
+p5Dsë
+rbbÂÏ[}Lº%có²uõ÷£3u^½üGW»XlïÇ毲úâÐhëòÅq`À«ÀÎw0 V9'¼Gy
+ÔÞW½Óü$´<¸±¾@E¨LHu%Ëi¿vM@·³5ezZ¤N`Ñ£Bî>
+ë¹jfàÍà2Y%åðzÙú
+URP.À¸Y%®!"`ÀóVq\¤èæ§Ìî°²ÅIÓT»Ê{³£zà¸k2æ¹\;(YX;Ã"æ®ôñ×ÔI¶òYàû^
ÒY´§88Ù~íötp/ZGÆ#]GK&§ÚÊwrh±ßw¥×®Ý§Ý©J#¬Ëùfø[Gé¯gnª6({Ê1¡ f]ièë}ô4÷ý<Oϳz
ÏéQΣ¶ª1áí2÷ÔÊR¨¡ÿåºêq,ÍqØ öudÙ;íxØd±éIòklV`ùùm"36Ñ\ùç<É,
+XØß½l#ì:A$î})õªüSò"
+$X$hD^ô*´nWÏwW¢ ÊÉ?3ËÒ*ÿH·÷8ºÀÑ5â詬^{{aÞfcBÔàÖ&Üw-¥ ËÞ$¨À¥¨Z¿w-Ñ9Ìvïìkðµ¥J±P}É%K´Èpð<lh¬È}}£jØùÓû-iÊL6êwÀä§}Þð®l¿¬ö.Ë||A*lç@8üùõ9m3dE0ÕÚþ)ZômdP0oã¥0
+{þ<Ô¢¹©þ!
+¾+|SÜÉZê~Dó?3$ðç3é
CéR ¦Zñ¦gÚl*»ÛÔX95bļgæ7ZBKjw})t áh\࿹%üϪAü<Æ°UãB|=Ãím<V{êÀ)¬s6³,±Ã>#Á=÷¬!pT
+Dk¨
+É^,1,Õ³ZÔ3è-f¯2Ïâæ¯7]ÒÊ+f±¢zOàdbK+{ç+~÷-'i×Ô Æào§°Q¶{|ÜlwüàÍVñÇ$,Rh8Úæ{?xû¬-dKýó|ý¸~ïc¯ïxÂ$¥5Jn½C´Z7}Éç#]JÜó}§ÛGë¹ô2[
+l!
+ZåFÀPè*ûÕ®¾2¶Á ÷×L;Ô1·®Ð·68·:«µ{
+<u/0.ÓxWµ1ëc¦
¢X&Ï+ÿ ®èÜP¸²ËëH]+|#ñ{ÜS´Ã*äÚÕ-Gb:ó{¨/Tõ#Ãnj84kôî¼Í1¦8)Î.Ыõ4ú¿Lk×
+ÂM[¡KÓÔK g«+X¹BcÒÚtIiÏà°:YWÐDcÎ}Òç®NF&¸Ö{DJÖOe¡ÛBz~ż
+F|Oîª
+D'þRx\¾ªR6÷y/N-Uì:^à»DÀ-]¿±ÏLÇ]Z@Ð_×ÆmDCÀêråøkÛ¤E°¤hfäç1¸ÐQcìZ
+[¿ÇÔØï
+y+µAMY0¶ñÁµËÆÚîa#D5ßðßÿj_í¯Éþí_íë?ï@Á usTÿW°ôp5®éÆ*5/P Û¡.ª¬à^KGæ[º[Â
+jÂÅÙGÑk1Ån3àuh´í
+¦EÃ/½åW¬+ı0$¹íõ`µeç÷U´Ù¬6Mî?XaÀw´« UmrÆ×^,e´óÆV%[À¶k³qÍæt+ðý\:O=jlHAnÍ5õn¿âÐäFu
+¾eÖ:
+)lÚ
Zy-98è¡}wY
+À¾ý³ðá¬~ûú6Õ;FJ:Ël\lÐË`fy¤
+
+Ë\L®Â.Ö·<óð«µñ<¿åÅ#ñ>Eg/@øÖªÞ3y íá·BÂl«¶
+ÐÊXv2C|+Ð(
+TQ1Âh<Z
+k&½SÌõºXÏôF&ÝÓ½`
Ì~ý¤ö
ÇiéM½AÇ%µ=¥
+9i_C>°4esWBxø±´'&êhçýÜöÒéÏSJX¾d/ÃBÈDó¾
+ÜqOkd_ç÷yi~W¦¼OUiTóQ:mdËI
+
+
+v¿Ê=½Ï©ãâ!=Á×C
+`ÖÏ®àt´Îà¶Vçª.¾a9{¤É&«o ºÀuL ^ $lö)Àµ6ô@à¬0yÿGwÕíèuÛÀ'Øwøn
+Ø@H¢þØ^¥ÎMQ-´µ¯
+cã470\~ûÉ¡Îî½XàìDQäpf«.Iqæ-ÐvÔÉYZÑ9k8ÓñæGç>·>/úðÜõÐÐâ^´³] sM8Én÷ÌAÃÕnIú%Øì8GÕ:¯Nª1ng©Ù¸õDtñ
+yë`ËW4k"¼í´Jgתsëª`ß î<¨¸@5T9vªÍêÁ7ÀÔK=Ç@>+F+;ÌF(9ÌlW©4
`׬À=«ÀÉ&A=Ù) vm#A¹ÄV÷IØ3ÐÕ²ïÊé²Ì,[óØá
ÜC¹4aØÂSÇXé6ízwä¨P/©¼.\JOð<B1vôa^t(É"ÅÁ¶ØËË&PF@j-Â@èXfC3ïWMï
+,¤H¼
+ °÷zò}íò#À..:Ã?Ú²ö$KÃ4D*8cEòÁR½Fñ*I'ZÓ
+²×³Õñ«0òÀQºD¸ç'㾧º±R£AÛµÉJ¯k3®ÔøðÌqx¶ù
+Ô¼ÃKÂù^¹B at LG_YmýC?XeÖ¬gá×\[êÌæh3(öô¹tWÿ^GãÑ
+-Úøs®ÝÊ)Û@¿½gyÇ_Sð@;Kn¦Î7Ìêä3¶Ò¸ÔUAª òÌmñ:,ðÑES¡iFPKñÎ3Á1lKËÚÎ,¨a¡,
+ð5E&ö}I8GjE]¶Ô©töÌØ:N8ÀÅÜâÚ¯)=F_çø;×é´PäÇÈ°LÆ%&ÏKú
+)þ¾¢pµE_!¡sD~æÚ¾¼HîéAؼÂñøq¯å}
+ØX[Ü \àï³ï>ÇùWC¼EF#8x3wºiFx+µl®L¦Ø&¨cüü5-×>I#î üHkD×w ¶µeO>UlmóÅú»57º2¼}Un Ât·cw¼âsûç. at zVëü|®ñùÏ
+Ô°A&µ
+×N; duOr"Ðp$×\ °Ü@A»
+inD9ú¸REhbe¶ G ¤eòwYJJU«Ñ ½x·Ïu4Ü©Ív&
+çfôQþJÛÈ°?:®'Js0°ÓFoaàJÍä ûeEî<àÝOÜ =6Á&gåºÆÁ*½ÖÃüI°ë+YgÊÙ+¦e
+,îmyhEáà8ÂWì[îçbÔï2ÀQþfñÙc¿ (¸ÒRßVæ]©»÷ylÜ´ÖTû«® ìÈ ×ÖUôÑ:( û RÕ
+cäÐÛAûBèѶíøácÍ
+F¡Ï4©l8U>K9gDç_Z°e
+à6ßrrÀU/°mj{155ó¯°`ñY Ï=Ñ·P\±7ªó"Ú+
+`ÙÊ6.áy£¡1Ðïï~¼+7x¹Õ9Û{&LDõè4ÿË]äÕ=ÒÁ'õ®
d¼ð
mÝ©H1)jùçü|j gBÊyKÏI¯kUÓäªL*S+P;ä\4i?ÜÔÁ^I-e[¾U]I5±=)}\ÜóY
JyD?8ØÚ¦~Éùÿ,Ëêoþùõ7?}ûîþÓ»xóñËí÷}óüöõw>¾ûð¯Û³ï~zóëÛ?þüöÃ}óé§?}ûüö[[òçÿ»äû/¿¾EÀßÝßðrx4ÿ{õÅñöê»y{öüöêwÿð[{[0Æ{~Q⼸Ænõ¨|èÝñˤc ¾tx¤Â¤¯×ÝƧӵnµ[QzZn:9¸Bl`ß×¹¶zZe_;Ú
+þ*±Ã¢
B2Ìê+6EAavÿó1ߢ±ÂÍkG {{@³xÚ/ãvßVfFÖê¡tqE©aùÄùÌì¶9@÷Pº
+ѨSôØÀ÷m3KSþKwù¬ÚyAü î;ÜMÀOÏÿIVÖñ&DÃYq¢Ä"±l"ðÛ§º«úÓ$(Ï3ßLwõ¯pJ «näáî
+yÑP\{fÿãøPwmÒ:xÈ5üCv\wF÷äF®0!®«îZ;V$\¨%>¿(èÖýæ20B¶Ñâïq_,êuj¥©ª~\WwÇ'â¯Âu±m³¸ÚZÁÝG2|G(ì±ApXìknÆKGᯮåoÚ'-wÊ}Æ4«e¿/z1C %øúkÉ .åÞR·è4üèC?´ÛhèwîböF
+TàÏáÑĦ?ì"ìus¨£Ýѹo¹(ÒÒ§|¼¦é%<ľÅ{êÅí@3æKïÂÒt;ÅxhiL®ø3mra¬Â,»©±ººk_0H Ü@=lB/¾¥EßRÿamöjÏ¿*Ç"î ¦};¦×ÂkeÁÁJø×¹×é]³ £wS¾öEñ l·4«ö
ãn-¬ÓâÕÐåBÝ^7-
+H&+ÇÀ:Ñ4ÅÛ| Þ5¬±8ê
82Öº».¹övDäZ×ÖJó\A
+±ÖרÃâ{¨JKEº/½ccßñyVèðþå*Ä(
.öIù
+áãueÖEîèyOTU¨è¤nùlÓʸé'`¸h#*¬y'VEÈíöÅGë;RÒÞCN\}²Ç|mé2ÍÜÅVs«Ï#Ù˽ÏÆ<Iåè?Ø¡ÊPc¶AÄëdBÀªè
+²MFì:w t×ê^ _£/[µÕß·&þDBt¦ZK_v¶Ýl9Ö:{RÄ®z4CûͨQt%-ÃÙ$[½jÑp¿ø1ÿû̬ ÐÁmOáG-IQoÀvx~ëd4QÍ[
¶GP¯ÌC¨ÄúòOË|EÆô¢akßí¹iG¨¤xì }áÕ@ñø¦3@$Ç»um{NÄtW6I·pgóÌ6¶E qm):ÂÉ(ã3¨^¶Tï!Bzötk4=È]ÖØËh\ÈS0«)î½.{Þ¤{Njaå¸ÒúßjRÎÛ!ÓñðwóÅÓñx88EPÃOáÒÆÖZfÚ"-±Ý
+¿ÝÛQKDååÄïʹtó¡é#4ݤ¡°núsôÙÈÚ_&¸ÐÇIp£M$3iw6Ix7ÁÜla!^nº¯-
A
+ÿRú¾V¦Îñï'rOo[_VFxÿMIptัH¦ÄüÊ
+ç
+|û&ÑxS"Fá]±gW ãGC´
+,Ѭ"àAáÈÅ¥í¸N;÷á¥ËÍPÍãýÚ7ú
+ò9AlJ
(ß32a8¯
+\ßð8Ú¿4y÷T -4ëóO'Ü{¿EhÁÕ9;=<ÏÓ,.#Dì{Óä³iY±L>´r³;b%¹Ù'rIZKH[,EÞÊeë°ûÄCöÇ/yý=.Þ³ÍÅ:Ál)VÔõú¸DøÙMs¨0~¸ÜP~®®ï:.ÚÜ÷µuÁÇ `RyØ3((Ó-C箺BÈvFÊ+AÊ
+SÂjIk ËI*=¬w"
wi¥~]Òj¸·´>`:K¦=aÖ|Õ ´}fçï/p0aÄu_MéI÷´â>3ŵôϵ?çËÊrÆÊY¸bÑOôÐe
+ÐÚ |&´©êSI_p3Â5bbÄàsó+dIÃ?©Ã3:9ëÈYì&fÚ2^ßuiÖ;OÔ¢|,Ú÷2½U°¡¯]N7a<2Üuñm3±MsÚíH½ñ¾fÍc¤8ÏkñÈVNI;QîÙ¯Û±²ìzMMÜGbÔSs]¸2\4c×Z<I=2êåq ÷ÕäõGê-yt0ɸ¸ñÉßÉlBÈØ (!µCìæü*IFÝ'ØIëIF at 9gôs¢Â &\u¡Í£eáq´:¤æÞDñ»ÖÖ¸^Ù¦³¨Ì`¶aÄÝݺMîP}àÙÚEëÂEGpVà1b ÏE|Ù»ÄV!®¢KǶkáµhrr6£ßÒÚ±Â!§
+{ºb:I
mâHÌéä|¾Xæ|(|ïXoÚ Kdíºè|SÑ,sÈmt«æÙ`£
XD|¶Ê¹6X®@Çÿî 'SLó¨µu×Ü+-yÔ;á(áÿ¼!6¹-ªnk)¦¾VF®æÕwi5²k;GËÞ[}
+hÓ0Å9u«ööP!öEÝ¡PO/M3ÀŲ§Do6À³EXhʼ£
+UK3V?Qñ¾A)ya¥Lnܸazü±yñ:á˵"u9JKÔßñÃ_yZL8þäÃ`ä¢J~xu°B´âÊøC²¶{H4F('â
+z£yÁF³ÞÀ«ÊúI½Ò{#úÀZÆÑ`1-Öú{Aê\; Öóx}ØSÔýÚ ¦¤ánt¹¸Ó¸Í
+G$d:~¿
+F+¬M¢T)ÖRT^ÎùÕZ çtwK#óUylV`cËÂ:
+;Á>·vé༯÷òÝZhj"@
+,9ëÝÚpí ¡¸±7ÀT
+^T£Ö`eÎe.×ûVNÌñT¤®5|Á¯É6#f3ú~þÒ@OL§#OmF©®v^8¶k yÅç#út&ÛÃ?üñþÃÓó/·çǯ_>=ý{ù Ðw ©¾ß^Þÿöüôøå¯Ë?Ünÿ|þõëó'[ûöò#Vþé#À]òÅäãò·W
/ø¹e¶÷³àJ#¸§ÍÒ¥ÛÁìzïØ®õVÏ{#+LÁMÏ51sUi±sh¹2/knÚ@í
+K²ÑRêùN±ð²1Ã{ÓdæK4]ö1ÐU(EÕØ`Ö
+ÛkfÓp FYVQÁ ½OÚ9L
+î¦C2m¯UØE|¯ØÖE
èvÀÁÜÉèÎÇK`n95Âc¤`"ªSÀc_µµ¨8¢Ô¹Üª ÅϼÉòA< óF8¸ÛÄ2O^À¾4B
+êsÊL#FÀÜdÐÅö9mùÉÛ}à)#J¯{ëc¸â&°ØuÝÓ«U'ó$XzîÜVéH
+S¡hj9±#U·Mx1ï9sÅ+) 66Ä`!ùFå/5çàâ,hnÅÅãd
+ì¬$tÜè\ Ðù,üðÜxÙ²ÜÜ,+*¬ÒKÚB|T¬0ÅÈ»³X<B.b¿µåv¤]»¶ð
+*ávÜSt2g²#Àk½>²N¶W
+sÐ÷%âÙýZè[m-8¼Ô³ot,Ì®¯íhØ©}c
+
Í´P2ظ¬Y
+-Uý`Íß
+.Û&WG½¸½±Vtï7#ÖÆý»ÙìÈEïò»Ö©
+¾1B¯E~y±ÅnÄ×Z*©K0${³´6Âcçe¤J0ÞXÓZt[%ìß0ðpÀð×ïZÃm¿´m3oÛ4Âá¥01+@¾»à:NË+´kHr¡00j{wy at SÙ~¿9ïhóÂ#¼oºsÓ{ÌJí[Ùýè^âÅ
+<ge4
+g5¡¨óóÌi*ßG\>;øï9úùÕL>à²ÝV;
+©¬õ"wÞÑjº:¼A
+4WÅ°#Yö¾4$¦|®F
XèãÇ5:|EijD3çIA"ð
+c-ºÈ$cWD°,>â|±ág]
+\òà R®½!&ç¨
+@!Å3c3oCÌtn´ ¥_UL/¼J ÛZUðÌYkçôæ´îÝäHSÊîÜ
+<Ý$»ù%Kú'ç;
+°Åà$ïײWîl
+l
wPÈa>¤mÍú7
I
+¯ÖB4È ÖYefhEtOtX Q@HcEû$çco²c{'nf`þ+`í¼aASqÿu¿s%¸Dg
+Ns×ÞºLq¬5SZZ9Ö¹{»¬kÖ)Cr;XÖ°ÊvÕÏa{ ä³la̧5%%§ 9ë7ÑD§9£ñ¿oÕÚâ¯%0»0м
+Èá¡æ¦:«é
=Ü;OBcú`åì3²u¬[?²5ª6ÌÆáÌmÒ¾¯:ÈanL)xD`åcãFÇoXQýÞâdª´ÛÜQANîÖÚq/±JOJ`ó˪êRÁæîmÒóî5@ª³AÈÉ5ÔÚÑþê<(*Ì÷±.-§ËÐÓN
+÷;ðª
+Ö\ûÕZKDI
1ñAJ=XÞ
+0±fÈ
+À½Zû"ÁN«ó¦E`páîÖÛÔ½´¢Ö¨t/ 70¥éºÌ57ÚWú
ÿ/9hq5©¬ieG=oïADZAaæÝ·Ìkʵ£¾¢Ãäó·³ê[)e-ìMÉ0&úØaºCSø¹( ÍÈ)¹n9»³OS,n
+øóá?Þxzþåñöüøõ˧§/?zó¼3ß÷ÛËûß¿üuyóñãÛíÏ¿~}þdkß^~ÄÊñï!]0ðÃ?p¿O]þ¶E¶õ³à2ú ÞadeCÏiÚ<ô
+xç®±Ô]çÐu°ÍÞ²Ì.(NJ¬z°GPßÌ
+p)êóêyþvî£U¶¾<^æmÓYÚ§Áàª|
+ì69zÚ¼iÞ*#J)'ùYµ3ùd°Ô ·ÿ1)Ó`Ù~næÉb¦#Àgp`ÍöÙóĤ4a÷ï¼p
¼bªÄÓÔÞ´+RÌ>¬'E3XNz6²û9î`Â(8iL-l¬}¬«
+^Ñ`3I0þ{GfDÖíÑ,£è¼uªò
)[º°_nrÉßæ`uMÕ¶.X·MX¦°gaó/
+ØoÈ`5¾=ñÕ Iù.³Up:~
+ºxR.<ò
Øe¡ÄPØB`.>9ÐN©5ôÂÐqµ0XìLkó0®íwÅGðëeÛMøªØ5YÊC
+)P¼ácÜsç 7Có×Ïȡ¿({ÔmÈSaUÖÔð^Ñ4
+Ó
+&]=D;)øHô9\\i>ìÝλ".ßÔ¢ÝèÍ ¿¦åLÙ×dëÔ2uoXÓm8ÜfKKÃB0Æ©à¡S1ô£ËÉJÌQ»Ê´Ñ{ÑdAÖäÖñz3Þ·sï¯b÷N3P«àK{Ï[ͪbYòí´!Y[Ù)}_sç vBÏa:kÇ
+Úå%©Opðäà¥1TƤ;pYJZ9X<zà]{Î:3XÂN,.k@K·±ô+ ¾èf1Íè颱QgÎ=k¼ø²Æ¥yÚ!Çû.6â¾ÛAªsñbnûW±Øcà©57÷Z±ôð©±Ò
+Z
+0ÀQ®~8}½éjà$ éäØì7,:?Å*© D¨®öä2WÍnÆÎns2V &q&4Nõ
+ÑfKQüð. ÍB/©Ýʸ±¤î
+X&ð6 £R)HXòùx @þÞ÷£IÒõ³âõlP@N%n²XòÛ¯³¯A!]2êçîM/ÿY
+ÿ¿eÎO<3Ë÷UìY^{NüÖ#Ó<Þt@©±p
+¶ÐúÞï#ï;>Üòsí$*§
+=[t¨n®fÏ Ê¹²UhªA|à¸CRé³!ì§ú)õ½*vìÐ*àyö^ÈSG#nê/ÑcÖê`Ð
+ £â°ZÏ
V©=cJúý
+§Ì¤!ørX_-Þº«TÑáí:C,ùÃ*íýÊxi¨± ¨>#ÉJV$VÃ[³gy,À VÆdçò,Z8½´]AîNØy®ÔµdiÍ;fGK¥àBµs¸ð¶t\iCîô!ÐÅÄࢸ!þ[Uõ
+ö5`·8u3QzÐzP=hÅ[sÅð¬!]Ô
+gr>·B¬ÄÈÏcñýMÃ'IÑ«ÉÊià£ïVgÒ¡ôùh4§ÖýÍqÖÂÓÇ¢>>â)Å
+j¤±£(+üÇ ¸T,'¿²
+¸jíVØ=HÄÛC¢\óã Ñð»V°²]¤óö®Çf3ÅF½c§ÃÆVSÎ×ÄrÝL&(!åsµ=+¶fm½©âg[IT¶ä6|Yv²\îíÄHXFtÇÕBìYCs=M
v¥8×ùN-;©,7
+%zÊ8Ô:ØWFË-°sÙK=ÀC9n8ÆÚi"C«ª ëXa9iæSí¬
+tͳ@ÜÌÕŵ$±.Ípæ©Es¶¼ÓL*X>Æ+ny±DûÌ:¥¬UM\ VþÚèc[Y|¸ÎÅÀͦÃ_rÐÜNyfÆææ¯Þ
+`pÅ;ó¡1ÐhZª©çÈj8 jÚÇm2îw°@UPÝT=Í)¨HC1!¶#×:SË9¼&æÊTû>WcÀù±`ç¬Ø4ÛVÔi²kØ¥}«kW¥ñ°
+|ÛóÜP,Jskoz¢ý~p2X9tû¯R·ù 2ì¿b#iVÉ"÷Ì,PæöalK»V£ÀÅ|XËeWpÑ»W³8þï^T5µ"¸ÈëQZ,îâͬ;°µ¨v£Â,WªÀ·¼íu«Êÿ±Räê«Æ@nvª@zØà$:kHZÌÛXãa[«VÝÚÂLÅ9OʪؾûÒZV÷Ï/B0)°'n W±Ùá]ñÛFûyd
+9'¢Öرîý§!Beì¾Ñ
+ j<Ë'WJu ClÙ±
+b ìXW;BÚÛùP 3¶~B"}GèPpÏ/$T°YºÒJú^èIwW°:Ú¥çÝ;t%5öFß³Ô¤l#ÌPF<9HrD®¶##íë,Ywh/RÚ4cc
+»RìZàb\¯
+ü¯ÿÇó=£¯C¤MåájåÍ¥¹£² Xá ¢º®É9ÞfÅëÓ`J¼»Zø: È"ÈÂË·ó'ÅaØ+$]@ýLËUU=º`ÿrqKõàôo.K2Êí+<ßG4SW¹¬BU
Õ`°*\!Þ
+c
v8PY¢mv)r1Û*§!}¯* ×Çz=Ä·<àÙfÏrÙ¡^ì.ëª)ú b»UU.<oÅ@½Ç#;ÄÜêØ0²`îùUUþTh\x,»PeجT6OµÁÛ
+2ü"]¬XaV¢ðA¿yty´ì½|?ðfoní9ô»FfýQ?fQ\¯ÚQËÅA«UÃC¶iSsßwÛc°ócà"·¢-b&P.º%}ÕÉñ&_V1Ï ¢7z¿qvÆü-63ÊîN4ñz¨\õA¿Oxó26ToÜ´FØ}þËÓW³ö«öQkÌÜPéÒzº|ÆYµ¨ÎÐÑXé{XÔ:çÞ'uø'0®1åV½²&æxú
+Ñ\G¢kÌ_º¸²dñº6T)Ç7*ì¹Æ~»£¡y«v¬'u´íǧr É~'<@¹1=(9nLÇo¿ºi÷¼/Âû®vÁáºzOÄùÛì}ZIDvüüGWî6kÌ$ú£êTä8]ßC®ìÌÞÏ':_9Æn·ôDó®ÏÊ¿¢Í\ü¼|öÖrXŬ&4kbÔ`yrMÆÜ÷5
+ÒÔ%;3²0÷GNÄÕ~~íìW-3¯,¸\èº6ÛgÞl¥øY;ÛrÙhÖ=#|±.á2l;##
+ó4ä`¤¾Ù6)ìã C8¬û/ðGJV«4×&ÈhåÍóUËê첯ª*ÀÝÅÕ¡qØÕ_ÜÐWû/ͦÕh¹ÅòD4P1P쾬iÀqõý(Åx
Ç÷îQ0¬\ìTÞ¾¦½2zÞÁA¤êx.^=&êâðDmþy$qæ=×F;ÆÀâåß4æf¦+ä·»}5OWWqì¦Tá;@1wïÿ)láôì×é«QòlÚcbÆûu£½/ȱâ®qwb³m=+ôݧ"H·?ÏÈ!ÏË<;cÏwAka~6'ýOüÖ%©,¦ÏʪÊKÒ z¥áët{ æLÑM`Ñè?ÏD©¥AUº¹3¶ÄFÖ3)èD.jÍû*c+?gS"à®ì7ÉkF6¨:Ûú$ÕÔþ«'sVaÒ&ÈѨ´µPS÷ÏÔa¡ËÒÀç8±2e
+V. "§@£Vù»f']ØÈ\P¥KPêc·uJHûAn:YÝ5^ÑÐ÷VÙBÿhL`é¨ë2É¢ÇÈBOgÍAtúø¸Ï÷*jª ;u+l:íû4ôPQ4,@RÅÑ{L%*Á$ùW]QA/Ë°W)¹=Uô¨°¬LÐGjvHÎòp¨Ä3<¸7tíí^ Ù<À¿ÏèÔ1ènE±õÁùëÔ#¡í¬'éÄzõkj IJîv/¿®Uà$½~%飧SÆÜ¥ÅÒsh\>.$T.;·ì¡uN½éìV5×wu_-½ "#U7%Tl¹Ã(!´7À%}ôq{æ&ÿýê>ÕñüRù,Z}Ó§aüïUW¿1aÐndt÷çSRpyj÷TØP^oÀçÏeÈiÿêjGca'JÆ¿õkSg&uî'@ØVö²Õ®æµÖåî -kµpŵoã.°¹hÁ,É¥;ÍÆàS㾥üiÉß3#¥"ß5mëb ¡z:::ÊÔ\XrU1(ùO2
ºÎg]ºyWÕm;Æßaú×{&£¾¡zÀaÁg÷ºà£x
+*Â`©G¯p`,w8óyÞ<£Ýç´Ôæ!y¼ã)A&)V~½Ö?3Æù;Ęõßw"åÄ+{m9¸ÓÔÛ¡R¯Ô}תÐ1î·Wvá8¿aŵ¤¿È]KYú fk3x¡²køQVþ¯Q ÉSÙ¾±±)мýK#î+ÓÂvÈèátÅÁSOÈãÏ}$ÿTWΰ_/ª;\Ä~Ts$<tÂÿ}9oYÐ&paPÑàÒ/7Îc&ÙË
+!i5qzKiâöÄ«h._êW½ÖþÂ)·»<F÷
+§È$XÎh`ÄF!kHý,æÊöÀS¤TPgôUëÊløú{MÎ
+6NmtLPbý8ÛÛCpÐM¾ÍVjÕ}£tPv/ýã
¥Xñd·w»Åà I!@%OÛØ_/¢Ã³ùh]µf]
+ÎƦ H¡
+Vвà²òb«kãàlv¢V·¤BªÁ@iv?n»QÞkäÑ;ÕËZI3®j×ç3Ém¯L ý\ä´éí[1Æ&aß.¶Ýú_
+endstream
+endobj
+104 0 obj 22432
+endobj
+105 0 obj<</Length 104 0 R/Filter[/FlateDecode]>>stream
+HlW;9<ÁÞ¡5· ñµå±ÖPÄzruþM _MH^wâH=C¿|N~l1}ÿ׿ÿû³GYLúJh="´ZÏR^
+ÒT )_?ÚÀzÆоªûò|Gf<gKô|kôø`«ìûöx£oï/(â
+N_ó8áñÀþàÖ·lÖÓ$̾þîÛö¸ø<o)ÐTüõëÞV7É}(lõc7¨\îÑn«@3á#¼Ðç¾mÏròþ sÎX¬
+®¹¶Ïñ[ܾÍy{gòØ!u]±Ãý¾P¼ °øYVyM2WNxöç
æ;K`»#OÈ®Q>L2åæÐðÃe}@+úö2îÛ²kÜ ©_ò©òä_]|D=Rñ͹õ1àÈÐòÎ5Soɦò-rn÷cmPÞï#y`ÎïÛN$Üe`¸v at Cþmb>ìÔoìrôíáq¢ãùQÞmµP¸*z½@HËcÂdU((|¶ JåºÈõBPÔ
+*ý1q¯ÆS2>P²a}{·gÝK:NÂ7Ì8ê¹M,Çv2Àw
+Õ õ©§¢å|ÐÖ ~d5Ü@¤óeBHÚçÝaíóX§!,8Ý:ÎËÖËÂt½xĹ«ëe¹Ø¹¶ Ò4í¼J;¡vÇ#5ÕñÆ|ß>écþvÛ&·ÝÝñ
+µÝ ¼µ @Ý ³U?ø#ùë(æ×x¨Ä¦hÁ]¢
+ì&KÙDÅ/ÿ~ÇüæêÛª{hqt
+n¼kPnùøiuÀçv)[ÜÔ_%¬+ócá!u Ò¢
+&t+.G¤<ÐJp"ÕóeaUñËÐ[Yb6k7ÀíÎ11Rut$h¶FÁ\)òFR½rdmEÞ[x¶åHh9ÌX(çå-ÏÔ7Eæ«ç+)Ïê1I¯Â(¡=`Ó:=&}TðLeJu
+Âù~4C Ù;Y[Ø'ÚÒ "Ê/'@ÔT,9£åÔç *ÃTífo/ô|pÞ)æ¡ß¬%Ñ A¥öWð;!ÒõÕÙ·Ù÷O°CAGC'Êࣸ'I×'ñÔ¾Ýàî-!®YZäÿ¨OjÛçY at Lº£¶<.#iJyY
+Y©ÀÐBíT*ãúì9Ê«¯õNVØ}íÖTÄÑ º
+Î~ĽVFó&ÓuÂã
+Ã>df*®ëK¢xfRdtÅDa ÃAm?ÃÏ5©ïØ
+z8¬¶ÐC|=æ¼QSMRÓ;êa{ K³â×gÓÌÊ>¢âRlI#©óÐIÇvN½ªÛæMÉQ~§* ÚüþW¬V9zµýÏ>`<eéüUëqBjET-my¼hk4Á:5_òXeµïíÍÓ&íûÞ¾_IVêÀ}úYJ®Jn¦½xÔ0?u^QH»û
+`\-+½ªaF´mtwí`£Xísn~꨿øj|áÒuòZ4`.Y=[uLùúcɼ$Gíü×x
ÀÔUtD°ýqiw°EÔî]Ø êÝ P#xcél6®Û)G߶»V%³Àa~Mð]ItMßVßlA
z>ܲ¶Ê_u°
w¹¿õµzIí¨
+|î~4¾+%bþ¶wÂ~H3&iþ¼=tXsÔ;g0G}Ç¥ÊÝ.ç ¥Èn®Uc.í¾lólnPêÔO]³M¬ùõGïÞ®ç|Þ¡Éì1Í×xÅÎC}P*`Éjµ#À½z}À×&ÿv[¢ÁyÁ¹
+´®Ç ßµÛ~¼«c[1»5è¾9h%¿|à9µ+íHX³¹+]2ηÐ
+PfçöXç«æþv¹{÷·|¼kÙÎä{lþ¼8³ÈÖã[e¯9ÚRð¶*ÐÑ Ø[@¦ô ÿ3_m;vEôæÎ
+éꮾx0à DBãQ2d.Öx5Ϫ[ï}foÈÛê>ÕÝuYµÊæ=nØs²j
+̺µçê3róPUæpi¿}gmy»FÜi>Í62lNÞÖ=O±9 w°ÆÊæÁá%Y ¤\)êæà$s
"vËD¡°-ç×5(îa6ÙÄÒDïFÐnEФ2¨GPãÃA¼ðw3(:÷XðAT&º!ºÞÑ% é[\ôIÝ/ i³sÒ,¹ínÚr©6ºÊgþ¢¾,#IRgç ¹W¬#Z²?£îÏо²3QâѽÎ8°`b5é`5Ó;Úáä
+@®tSIúÉ:ùN"O¿m(0\Ûâ⼤mLÀ±\ÙÊô÷OªN¨þ{«L
+zEkïìµ¼Âd"ÿz6(¯Ò8ÏÃ1¸ª%ML=à
+°TPÕKÂo©úPK]KL7WëB8&X䬡ᨷ®8énÜ´8RAevÜzØE¢H+Ut¡_p?+XDb̼nA¶<ö·h̾
+io*Èw÷RÙwcËzå(hã©ÒÊ˾²àÃ,ko(°ËM[÷· cÂ$m~y®ªÞ×èÓÁÙu¨WÛÜn"Ó0¹ååͪÓfg¾Þ!²JhòÚ=»cöKäı³ý%{
TX%9IgÓ*CPwp55W÷ï`¨;[Å yÜ.VäÊIîXµ°zÎK£@`Cri¸åB^6)@
+ \5(úNÙqkÚå-[ô±àÜc ¢n`¥ÞÄ
+Ìs¦lj¶ÙÊ6¤ª!SŬuHi'RÄU5ÜÀÐáWΤ®¨:ÔwVUºòâÝÔ
R´ub¡¦2}7äv1f
+»4û0oNi (Íj}nÌ@mü2©X÷ÞÚ4° gáCÏ(jOÆt¯IEų.JâÕmö±Á4¯,X Øt8s`V?.-½køiKIl¤¹
,¿l!;Å@e&.¾³E pj_XhîMÔÜürÍ5:¤ñGW¤Âç\6l{è%?Ûë6K/ÐôsìÆpôPWd`P12¨{2µuÇz±dá½LTÌ4¢·K$ïÝÀû
+Ïi0#Ò?ÿ¾}þêþáwWÇ«»ÛûÇï
+³%çkúmº~î<å±À2mÅZí]ÅE
+YYXêþ4$Mµ&Ûö6öég5P îý«8°¬3J|â|¥<DO3ûLµ¢j0¼'e#dÔÈ.íqUdÏÝÕw^ñB1Ý{ØRGcë¾»nB%ÅersNFöIêAêO8ñè"âÿV?¼¾ywùþ=îuõþænЬ@< UPÄøÿMJ ÑZîÊÿðeGÜx'©kÅt=YóZè¥RÆÎ.gCe«mIØåv5öæâÅI9.©QzT ¿F[dß {ËÇ^''^/@¿
þöÏ»fVvëìºÚ¬HþPHT5»X k¯r¸kÃØ?¿Ç0ªEº¯ùäè/æù¼(
+kÉùØÖ8²øcç1ã°Î\1xÄã§c{}ö^zLг=0Ð9÷gã4äñl Øõ f Hxؽsôs0:*"Ðæâ®ÍîzÌo]P`ÛÛdôÔÕa.áÅñ´Ö"èªERxR;²¥¬»oÅq¼U?8Õà-ð®ÕãI))aNÚÞI¹
+lp¨ye-
+GA)L¥OÆu¸m]±Ô¸·â*-µawId¥³ì¢§»]<²Û«Õg˳×- Âç4»IÄ°déÆ>(£i`9K;|S"º¢¶¹¨«ï
+]Ò1/øä,×õlÙa`¡Þä%ö,º5j1HÖ¥Ý2øÈ´ÃÝ4<ØÂxîÞBzyp¨x5Èn¨¿¦G§xÌ
+tÏzå~ñ$ºÕÒÙ$TÛë 8I;Àv_¡&ϺjR<ÒF¤*
7<Q8âèâz¹!v2`Y5yc/ÄB÷^^¥VÉÜ*.o©Û´È®Oa©\gÈ
+¸¢_
+àßëIÃ]Ïú+ò¯`t#Ô¦çí5<®Öê²;öu#®Æídäp!8ÔíYd¢åõô6 TiNØeî=èò
+Ь4¤KøôØ6ç$9·4§´hYãË
+æË
+ÃFjÄHíE:|u9#©ïËÁ.y"´¥oÖÓû
+©lÔµ:³YNÙkB»x\\EÆZì°aëúËÎKLØý,^n
+är^#]pÅRö^©K bØóî¥Lò°cæBà uéhnIÒÝ`Hã÷yè×6Råñü²[ °¹diLÊ8˵Rd.ºæï¯MƧ+³u·ÞÁÌq,¦,;ÜíQÑÈt¶aw<FçyàÙra¾w×Jf{ý%F¸Ìê³ÛZcò7S^¢)CØZG\8µMpvJ©EÔW[}ÆÕ^S8ÏвުÕúvn^ÍÙþõÿùû//_~ùí×ÿã鯾0ÙòýÓÿüòû/¿þûé»~úñåå?¯ÿøíËÏvôû§?ãàßðï+W0J,ç
¼
+ÍÌoc7Ц2ݲÒST1¹Öh½
+9ìW[#Ø]ÑX/[ro:9VSùFCÇeñÙ%-`ðIA òñ^3Z¯D?ÕùíXü¢E ¾ rNZ
+$d=ø¡
äáãÑ6-à~¡a»¿¡å£
+ت\®æ¡m¸ËIç_ÍøËpO¹è&Ôsΰç¦".©fU¥¸ù4¢_ÑÓ
+ÿ]|)Aö}Le=7ó»ºcÎÍX¬è|´]e5yC6è^Ìã8
+ÚÍåvËèÒ¦ä´ÑÎÙÑñ¢=
+5SÖ°ÛR¾Ïfì4÷¸æ[¬õ>Ï ÜøRe;(hñ%Áuµ4z¬Þ<>:r`áÛ¦M*}h¢¶Ô³Òäæ¸ÐÚvζµc4l§n×¾c(éç¶MMاÿùÃ7§¾·æ
+
+â¬ÁX`/uèÇØ
+µôÅð«ÎÅÍ÷¸@×ålÛýg¹ÒÕºÈ'> m¬Ã¯1P\¡6A4p
+-ysöok-~R³~§sX7 É}^ëQ#À;å}þA¶²K6ÅþUp°Ø>&¸|t½s·j7ïêÜb(
+6ãø9Ø"·qÅ¢A
XÎ
+nrÐ5!©6í_¥dÎc¥Ê!.¯<W94ֺ轸ÑKªO9NvN=8ߺ8t?Ûbûͯ.ÚÃAëi <wqfÃLú
+)Æb¡ù¨äsòIÇÈ1ªµÝmTtpÓ®4ZTÀ#sÑm5iö®5ÉëXuä`R81²×ø¥ì^çß{éWbgÔÐf`Äjí?]âHä<z<.ÿø¤°ØEÑs¡Çèå?¿kÅÅ,]'øst¾\Á>fÔtVqÝ
+Ë¢.Zp<#-]®îØÑÉz¼Õº-&}ºÀ:â]ÃaâRéùvr_t8òËyrÈ«\®Ì/éÙûyï>yÎÕ]£É©,ëò£V»fgÔs_©hQÑQvC¹[Ù½ø6óáÖUiºyEn^ßoçZãú¾YiØrVjßê·¶1ÂUüö±|*îÁDdtVL©¯¥pFºú¨Øe¶Lºo
+/ª¦¤]ûl±ÕjÌ·×ÊV:ø^K9££¦ ¤tMÒé,1ç EíWLÐå4Çéa½<n®èº®
+¿ì·ej:Ûvä$j ¯úöJõÜà£5{n:Ziqùhv'gÛ¶zm¯ÂE6¬uÉ>ÓÌbq¾?:¢[ù1¢ì$È/Fi´è¾Yä9í²Ód°8»w(á·\/1Í°3'-6ã¡9jÓMÓæÔ4£¡
+ Gg#
{Xé^
+ï
+¦!`âNÀØü}VUÒÞ§»3pû²¤£GÕzÄ\l¨-ÒöÝX Lu ¤EPgè¤3§ºb³_
+Ü9£z=|pF^óÈØ÷ ²o<ÀC^Bi2°ozØËJ<ÁÖ8?}Ƨy#>NIJ¿>Ö ÉãÌmZsív&+ãcG,9KÐÑ3Y9{8AwûÙθ}*øTß_CIOÛUC¹ß;K¹k.+_dkRàÙ¿6ç)úèÈb0ÓGbRh8|O9¶³~Â÷x®a|Û¥Îqôƹ>Å.ïZ
û±kfîðßÇíe¢Ã¸B²±YaîÀ8ÁÞùxw¾ÕÅÔpà3(ÁuyI _eoôjj{¹åOI¿÷yùJO«½{º×Ï_¦éòð&
+ªÙYvY$3&4.f¤TòéÜ°ÝRéEkÌÜæÔ÷lX$Áònpã¾!kñ\óh
+ØQY°··{ék%Ç·\{·«4ãþy):ﵫ*ñsµ¬ÓÖã=È`wÿý-¼º+öôز¸Á§xý¬*²»A^5X½»e|»ßaG9{lB°É28Ýêåò(Èeë¸;e¡~TD*¤~+´Aãý}¯Çi)ÓÎ,pÝÿ2v«pdoÌ
¸ÂTiÃz]\Z+¯/õ2óõlvÂíÊÞT½Öqø[p'¥¹1jÛÛ¥kÜ4ã÷ÅËw}ýð&. Ø^oçì+À÷ç0#?¯w_ þãóÜÃ,©HdMÁ7¢kFxBÃÀ1º@ÖtE½Dº3PqÌÁ@Sa@¼áötxÙ&²7Ñek9Á
ÊðãfÄ×wè¥8Us]sn°ªÊh\
+Àm¥7)ÝòH`Ã+DÒ²7ïq8PJ¨m8Ì"êkZãl'náL³fv²woÇYß°K¨[tXÑÊì
lôz°Ð³22øì= ¶H
+ôÐù{÷ëQÖãM8
+<7þë§t`4ñ·ßüöüËÏ¿|÷ãë/?þçß?üüßÇ
+Ö¼n=}oÒ\èµbɳì ùÉ/g ³1ùø×2*nóñéæûîÇï~ÿøþïø<¾»Õë6¹·Û°INÙ[ë¹W2POüß~,¥µØ99Ý°nÝ´]»
+·÷ú°»çW`nzéûv
+¬sOm+Õ&ÜS@ß¼GïªW.a5J%i^:@wåìØÒ2@{4ZíÏm:´rw¡¦[t:}áð(±ñ3({ô°¾%ZgF§rã4ípëÙY°Íc,3FîÚ4' Üíܺ6@ÑÊ£A¦"³¾HgÛ#£@f³WwdÞÀ}Üb_"Ö+9§øÝ
+ÓÏâÕS$X 9VÎ z?
+pøð
+.øòvÖ2l{iݱΣIe[Aøä~´¾¾-?ó°õWÆ6¹»
ÍÍ÷ót:4Äß¿nöν_ÏlfS¦z<¹þ0
+})'ÃÌÛÒ}Ô°
+±¢¼öJ4JdøE
+ÐÓKEE®(°§QAÀ+
+o
+PCe¹ÀúÕh4®rîMª½uÒLÚÒ©ãVéÒg½
+°<wª.ÜL.á¾-\°Ö{uZ¨µD`×¼"pá°PBê êؤs++ËöMü³ºÒÜ4àãÖü¡sb´nä|
Ê(!8;)Õ®M½÷\¡Yxqxã>Ðݨkô
+Z¶K×4-UoèHK<Û8Ä@IïIéÒß?@³^Ýû v¸Øe-´h>Ö`Â=Î#ZÎ,iÀ ̵dÛ@0Ëh%ÑckÌpÕIúêsÔc£ì¦"¨Iýæì²Ï+ä~jæ¾Ðí´«ÖÓª$ý2fú½Hx´ÓÿÇßÄkXkµß`ζoÙ :\§=æÜ·]K¬¥ë6ð+Ì;µë×]o8¬áaðZå*b%õé
ä
/ð"µà
+t>°6krJØhþ¢±jBÚÐ,½he±
+¶SFT) ðæy=å«}´`Cਨ¥õ?ÂË]I³Â¯Ò殳âb·[îÄnÛc·9ï¿)ª/3FETHççp at J}¹2xGáFÛ2M?Km}pk¹3Í[ïAt^¥N÷ÑË)ïhûíH4¼oCÎ=xfÏÁþÏICxu°êN]¬²V`fÜFJ+¶3ÕÇ(`DC6>. ZôAàåRR©ÚÑgFH¹O9XÛÓ5̤3d at d½óÓí¡=6ùзyãZ4÷è¾4EP÷áXxùK
+ö2-wn²·ó>ßzã°¨ÃAe?ú¥ãDFÏ;v¼ 6NÏõaóiFÜÄxøänGî7±¯þ
+²eTwY ÊJcOt·
+ÑUvM·Ò¤]¬}W
+:1¶Iº5c§)|çÛÓuÒ6,Hq$®,ª¬ÀÞÎ#ÌZÔT×ʧu&çPt¦°}MÓ¦i$ÌËÁ:` õYG
+·Dò
+/-GÏà²=bL
+HñËè[ 195XvV75úßëAØ©¾÷ß¡î¡þ<ºä7||T£
+öÕfeÍ`Ûð±wÄöö±O¯½®Ëu¯©®kC-âpXºdøÜ_{®1é$#¶$b>sؾbOãl[>ÝbiV<¦rÌgEÉ®]²Vù÷
+TãiÚ<u©£õ3ôÄs¯xåe
+ø©^þüÑ\`£RãT7ç° p¿PÒÛÜ3*Veäê^7ÛÖ^òùzênKam5ÖÍ}ÝУöðM\a %jOpgËÞëaµ/ÔÆ ÛÇîô`¯wþîe¢=K§Ç/ÖÅ>-ñlîþùÕÏîge (A[)À«pÆhBÂv°YgQH@óé"ûÁ=.xâ lÆ$Wï>Ê[ÂQv§4ûÕñ=î#ÞRtH}q²GÕ#ÑÈÏR2h4+ëØíº=çé¥ ¶µÄ
yðxU 7wWü¯ÚÃ1
+JoÄR?-¡
++ÀB¨Q'ºå9¡-ÒkÛß!(
jIVuc@Òk%UUwÉÖÃQNË®ÁMR|{Pr 'Áµîì&°PçÓªJ5\ -ê¨G2<¡G~Ý~ÎV#±yö&rÃÔÖèêæxè#_
+ÇU#ؽHî¾Ü\±r a§TJÁaùy_>ë3cÉî¾ÞÁºx'( Bmùµ~=KËV=ßwj×wMùó`é|zda¸ gr¶WNu vÇL#Iû¹É w#¸/âz4X¿¿ån¯Ê)Ø´õ7ÑKÞdoÜZÖµH~OkgNª¯µ°`>Í`¾òéu}ËÓ\zwóM at VGrÆå41ë»K[J®AqÜï
èLá¬Ûm"«ÒRGxmEpzÅæu@uäðڥʡMÖHû0¡3¬^ÖäÚÅYKÒÕ¢±Qtc7~~ ðõDY)XÄÎtG¢ö B×£P²,´¬4É}ö&îò§`¢hìhͱµýûNlpõÂaÌv°ÎÚÆÅ'ô×ç¥1W|íóã|ãfãê álÈÈmzâ¶Ø\ÍN]ApiJ_±ÔÐîx$[ ¶LîÆ%¤
+×}¥O
+¦W
+Ì
¼«û%y7a#¿>¿Ã¤{'ÌÜÙGñç?&jÁ¬!çü
+_Ì¥7VE°¯Â0ê& ªý^neöc?ñ×ÐÇM´u¡JÔD¥Wãú{@p[´k}u)§@3k4+ÀqI'-Á
+W¸Ú8ZáÊó$fÎ"Æ)`¸hÎ#uXªV:¡¥$":Ì.£18Z=0:µo,À-æv2:Où,ªìÕruðé¾f;:©·õÝZT¢o¡ÖÎ+|¶6¤°÷´½à>¼<w¢ëÅßÞ²¼Û»6ì©ZÏCÂDÚ»HÎçZ&ô(G1n¡áÍßFoþ0Æî`5o
+¯>Áû¾ê³ ¼ùÖj
+ZôIÌ=W=X:ý
ÊÖè7^DKØr^ÜÓIü {)\8LÛh~ÿe¢[ÊâovÃNØq
+:R¥j"õ,Q2è
+øõwÛ{Ç"hºÎ´âEúýIdëï.¿'·4×?ì)~þÎ'=&.0C¸^¨õwãGÑá{ì¹õ²ú~²ÆQÐÐ-¶·U-PseF¢iÔÐ î౱ȷ-ð^u®úYPÙÀW¿¿ØL¿wÒ)¦¸Åñ¾«9ÓÖþIA ¨·uI¶ÞzËüÿÝ
+¡àQfXSEâb` º=ÍØ
+Lĸ'º
+
+UÇÁ¤EÂé<¶)êÍÚÊÊ
+þ²«ºWS $J øö«!lÄ/4qÅü_qÀøø4
+Wþzl«¾ËÆE\@Ó@u8âj$çi`µ]²
+·òWÇj&=R3(¯zåô
+¡F$ @\T-õÑÂ=Ñ4ËÊtàq¨öæZ\Ü:µàI2üÕø±3H at U&,"ØL5ÉûNòB Ë»qËs
+UÒLìuÚÄ<2¥obhÊ"ùñ}¢µÜêdT8ó
©dq¤hÖÖ+e¼UÞÏ-
+ãA¥
+Æ=ñt¬ù²^Éú&0²÷K'uÎÖz|¼¶óý}¹É¾uÚCK÷kÝÄ« z%ϼ%n~ks|
Üu
+.ÖÜÂ;â~tU [ýÐãXy§úJE:CÓn
+,uL¿XºLy%Äõå,×®D6²}RÙ4z¬¼MìtÜ®Ë1Jn)'§ÃAL (A'bb¦ø{ÚÂ
+¡ Úe|+%S
Y©î÷Äôÿ¼gâ¬ÓûJë¬éÃ82e#µu3Z5Ip
+dß©
+Pô
+iûæÞM2Ei
+yC$o²|'}¤\n%M;Í|õZêØ©0²¥hUp¬QÁ4pæxùUxØ"i½ßUÜÎþ[F}ùÁCÒÚ¿jì' ,Gb³<Û s pãñ&¨ü\©½ä ÍÚbõG0ÑQ ©Òj½N¢W}®]i¯æ"=«Ké («ê=ÎÕIGգϯ[ÒtSO¦«ìîûõë©£aÐëyß7Á=ÈËQ課JEµ@ß¾¨i>,!»DJ«ÎN ÑÛAm-pma¦ô*%=û¡þd¥(4±¾ùý
V¿ÑÒ:;
+´0bh:Áõa´¾Ù9¥¢üÒðXa`Çù²\ìeS}ÎUOZèÛHôcfpwÂ8R×Ja8æ|ÄráZðr¹þ÷ð¤)·YJ¢¾Èn\PYÉ@&¦ Ï=F"¢ÀÏ!ìqZb6°çÑå
+¹ËÙÄÈ1`Á ¸ºÕáj®8ÀÀpÈäõtújì¸4¦¢ANë1c
+ªÕ[®î-«l¢»åJÑyÄA3+³óxÜG)ÙÝ{vt²¤²Ú:8úÈáénìXIíÔz4¼!¥ÔDpzMÎ~ºÅ$ãÞ4µ¦lZoBGJYyå3«Wbîw«ÎÁÄhºNÊ¡
+õC!sgZì:![¬}EsÛ52ËR·ç9RSïëŶæutÆTØåÙ_×OL¥§÷¬B4û$R
+`ýA(o_i2
+Okå9ª9ôkÐdÁý}w/©èÀðäXéÀ>Ø<`2VÎE7`z-y´YöBcpªT{ÔÃʪCæCþ{Àv®h=>+÷ 7Ó'!«?'4tJqß=X;g¼Q%ãó2ý0öè
+;,° ©o¥1AÁ^r÷ö;¯A'ø¶£
+_§§?ݺ5RrIW$MòýbAäÆU¢[e_\WúvYAè²}@¿M;?Ï<ms´tP4««W§8AÚãIèéq
+ ³
+ÁfÎ`A×u¯.¤-¬ë¢Æ,5ó°ËØ}
½På8l³ic?0:c¬»RhTÛÂå»WK£2Õl)EBq?·yÕxÉ÷[#4\èX¶öÒ#1$<]GÌ)cÿ@í,/=Ðô^¨Vø
+t®®ÂO).ã¢ÇåئzqÓá?:>Âí¹Ä´ÊËÒ7]j§GjeÉÃhÔ9
+¿µ¬ù
+ã¥RÌû
+ÿ<â¬wÁÐÍ §¡Ö2øut >|zh:9µ`ÍÙy0J}-×{¶TVR4LJ Ô Î@gKð©9p-ÂÕ¶ûzJlQï3ß%rátB[= §%Õö ÏðdcÌçV
g ú§2[×ð±øÐëöÜFN{
+SVV>¿î¶~üi¾þ
+
+jDb+Ùï
+dÙl¯©»j3¡EHJD4kõ)±p(O at v´`ZðÌÞ±ÆrøMlÁz*Ä|>9¥}ȧÓHìàäÉ:4çÂðÀÿL½%è}kr/(ÁhóÃ4¹äÉýø RXEÙç£Ål¬±[{ÖÅôf J$zæR!>~E°
ï6!_jÎâþR-149.Z¢3)õI¿HoâÀD*³ ²65ÛNÎüí|Úúâ
ã+³ñ÷ä°×3ìn¢ã}$h÷<Xê+û×}ºì Ú[¥Vþx)§Êve{Xb¬üØ*V7_ç#÷põ° /¢lk²gYäITbÑË^þcÍrè¥H¤P7
+ï)±MïN+ëmȬ-¿URÉi´AØäУæ,ÈRÁq ®xPÙPeªµÛ#M§B_ äþSIþeð¹.¯©¡\s\pÇõQlÈ*uRóÀX]¨]
+_s>%Z[¬gë¡üǶ
+O¢¦î¡C]!v¨DP¥3ÓõT°õc¿*)X&ÅX?HglÍHnE¤?ku>°;óYêW¢í
+¬ÂÜK nr=Êàáwò²K¸ú®a4
+.ÂlLÜ+0).c5¥)#Lk²ÄX×'+ÏÐO7è¶lSÈ`'ÉìÕ/Öâ[¸[ÁDpáQöüffÒãw+ù·Áì¿f©Â±ºú7KOPöàI¾¦a°>,þË;¿y,ª² 6AsS@YpÆ@ð¾ñ $áëyq¼øQØhÚ]ëäãq·w¿7
ÈVÏG¸&y6ƲTêu0÷û
+íJVõêD·Rfm«Hö3LN=D[ÃÜéG´A¿R@Ú
+¨vÝg)ùK=T[× ¡óDíu¥3ùueõ.ÎØx?k·²RÕK_,qÆt\OZ{?fbÍÏãè:Cwëî¸n$ï`
ßÊ0vnÖãaë¨ìÚO¢éÐöÆØ<"}õ`¹ÿ>¶×]§(ºÒ)ÂlRµ§#ØÁúzÕ·¥DwÕË
+[PÆM=ÞÑ°À®¥J\áÿ<k:KðµµAu7$§³¤ÉÈàs!-E at ylVOÙ·5Ë,⬹¿(U319ãPÏ-k¯ÒR2K7dýªºõi£º%xÒR@\WIDÅ]A`rY©G"=BXßZç©°ÖÊÿÏxµk×vÛÀ_Qñ"@$kµj'õUúÿ3xqSÒãB^×
+©c 9æîh°õ¨)B3ªQÎ4J;«Û6úVÖE*ÚðÍ»ÐÐÅ°üìýÝ`){&r¬r ,I°¦?ÆX® 6%tLõsB_¸l|N2TªùûÆÇømípm.S7]«CÄù\'<(ñÐ]sF&J#X'¹JW$A°õqj·¸¸ê[vØ´Ðî¥ Ù
¢kIé_*÷pÌ6ès`OËüãhê3íH¾}©Çõ3"Ììk
+ ÀS,¢iÔÁiôþÏJÀÑSW1´êtNÉ[¶¡Y3:ÿl
m]ïâÅ»<Ý¥®è9³0¢¶¯BB(Zhwìó=Bßö³Q7Ð6ý'ÒXcø0Àý¤¨]ÛPgL_è³6þ³1hÍÛ£íÇþ½ÁÖ
+~ò³ë~ K2V¾ÉhþçãSÂáØýñ8XÊa
»´f:8ÚW#¦´¬yEC«_µFõtLå:=Îi1£Fn`¥×ÑßÊöÃý¶ûײ~Ìõ©Ðhf^y`öµJx±¬¯é3W<%B9¶<è<=Æ;VãÒëÞµçÉã×âýë!¬"ÂØiüTÒ©oÇà=3t¼nx$ ãý ^û°ft?Îf´aáèãÐQFVWQflÜ/ÀÐp at 0QÂS-,ÖT ÃÍÔkD1·KiÅ·æ6êåmcNAÍÈ)ÖoJ
+8( <Îk°D4&į`'0öFëzH£øà
+ý&ÁÝÙxO$·&Öàqw.ft? ô¦,;ID@)bsrUµcjl»(h%:s.Lïºø÷ oMûÉÞô}#bäìóq_î@§<Ë
+È^¿0ùxǾà`m3ë?võ¬Ô½e§ôÀ&ÀnéÔu¼ÍG®u4!¹È&flÂt÷S;Ak±¸*#I@¿ñ¼WmTgÿ7rg¶ÒyÐ,}¹/4\ÛqË+.0Ú«±c{ûäg÷3»{=sæ½}ïB\ñ?ج´½óô0iFß&aT9÷îuhÖ/W´ªÓC2fYýíe½FÔBS=£ê}^ögf+Ó,hî.ä5ÇÌfY¨Á¨CËØ¥NÖxÛG¾åð/ÅÉá÷òeð?TßIêé2£]y}ÆàWm0ÂÞ³;ÍhY{Ô¾êäWtÌ;NßäÑÞs_4gjpuàÄôúFhzº`Ó$f$È [1cL:üc?T
ðÀ1ÒÁ-@
+Fï3ÜÃFÈFÕq¢C:$ÄE7óðì^aØHµ.¡
+9n}.
+Ó©/ë@£
+ÑI4ñX3jï·>
øSN=&±½Òȳq1/5¶·²
+F IJÄP.da? ÿ«¢ãdñÓ¨!ý`¤'q: ÙN-pc¥ßùêbýZ)ë»ã!tè^'F1/anÖâÎÊÆekڹаÅÎú3ÞkY³gæË]§QUj/$ì\a?XI
+?+Å}M]jÛi¤ N/ÞÕÙ_}µCÍF»{<e þ
+Ec}ÀWé7½¶p÷¡íç½Æ«ÒÖ%¥/Í÷s§øqR'ìj¼X5ÚtÏ£i®>i0ÊM m.ð'á(c¶®X»@㲨үMi8\"Ôz\il¢uÅzÙÉ÷&?{×mJ«K¾Ç!¡=ܪ
+F ø(c/cJ7¶}½;w
9ÌRÆîHF't¥ÍrÅ´ïz9!á4@5à
Ùù«¯}®PS{ÉjumHàHêZ§ÝÃ?Ü´÷¼·¦°]K*ìÝ}S®°9Sèhµ
+[=c8Ê9môs¯êuä<»Kÿäé|;D$V±Þñ&.Ma±t¼+Á5÷
+Qä ].eIýù¼pí¶qNï]ï¿lÉÃ0DûÉILi ý7$3çåƱgþùÞ?Çvad«xMzxRCRìyóéhqÔýÖNø1oÉ(rdëålÕ¡,â½SiV
&çøäµÛw-
+ËòYª@0ÔMÅ"ôþI1ªítïÅÛpüöÚ°²±hLeÛä'øÜôâ]¾b#xð«ï·OrqÅK\`϶ýiòÿ©÷å?¿
+endstream
+endobj
+106 0 obj 23205
+endobj
+107 0 obj<</Length 106 0 R/Filter[/FlateDecode]>>stream
+HtWínÇ
+}½Ãþ `·õõpÈá´è+ý@
+·)b5P"+ÚH2ß¾gÝÙ{¯øC4ä仯þt{ýtûpõøyùýÅWïÂòòû§åÙ«o(,×w>Ý¿_~ùéêãÍr÷ðþæùò;hý¿ðÿÛßâ·®Kÿ¼zzºy¼ÿöÓÓÏ·÷7yx|óññêóÍã¤_gÏ·ÿºøªÙ~÷çû÷o>ßýðð³ÿ|yóáöÞgÿ¸ýðÓÓòæéêñùEX^á×Û_/>áoñËþûßE\Â!ùOo?Cð7üå¿-¿.²ü}ù÷Âò¾ýËï.^áÊ¢±È!R¨Ë]I©H,å \Òòp©t(Z©Áù"<kýíõÞ6ûwÓAbÒcmQûþíI{òä߯/~Dè´ÞÇîo¢C.´E'\ÓI«¶>þÜXÃé5æceBDOXǦË!i©Ç~lÚ?¢RÎå³M\õùòòÍÓãíýåÙåå«ëëOwß=<]5Ý©ÔhyõOÿÝE8H]þ?Biùµ}5È¡æ8çÿn31Ʋ4áör8TeYvÑ𺩦p¤Ëé¸ÐÞêº
+N-1ÈîÎj¦CÕ½ì6o'Ý-®Éêi®/.X{ëò'dðÙ÷÷÷Ww7ïWïoo@
+»yýÙï.¨ùT·_º§þ
+Jy¹¼»ø¥{yyñýùW~ûGüöOðø£=ßþóTð_½Cã÷³z×=B
+^ú
¢¶6Dh93r8À8À
+O®75ógM
+äÊ
+
+1%½6TMR&bµò
+fíÞÖCHA'LEL+»2I%VrP89X
+8`³ Õ*6Ø,81¥ê`fJ¥8(ÆdÚµKí°®Ô<YP+óÍBMê!{lïbÌ"%9HÂNNZVùY[.SÄð0Á\Å@&ED
+LgIªJ²â3µXó,¨°2âHi2JÎ&àÍgq10"«(ÛÍDÁS¶àßy]¡k=qdÍßFö¬ÅI(;[´"MÑ0Pÿ
+£zÔ"Ùrñ
DF
+¨uïF;ybS²Ò>@`ÏØox·®m7iÃlíÃczæMÆ£×¢×Äù[ÇØhE÷UMqZBÀ亯7euÂ3²-µG58êè°Qñ
+G½°äs±µ$û¾%u(@ÑfZë¾ób[({m}ÖxÊ(HÈeÏ?í¬å÷LPs8Ãk_ÒíÆs^lìÚ|NqåâZ<ÃÄY»%¢ÒoY÷ó ævê~rD,-¹Ö1g¶õÚxû4¦e7Q$Æýü¡ufÚµ÷³ Ø5í§èÓÙ´åX{owò"üG>óÐ>ÝI.¯@Pâ*H2´KâÊ2@ø»`_±ðP%×NUóØÔ15rÛoQQÛXÒÝÆ,ZÉO«@¡±Í\l:¤ûµ 6JÚí±¶eRNÉØvhÖýê Ut¿¤ÆöUOWZp!É~X¹øJ;VeFWY¬¹5-¤ÛPrñ,ìÜh§÷ÝÑzc©Zⶳ±?³¸ÝéÆàFÐâWÊ8H
+D¶ ã@`\A<þfbØnLή]¸¸gã¨í¬<¹]!¨¶EM.óV×üp;cÉ@Ò©* öiFÐbzDQwÕÁìñ1õ8Ód"#0ÙÀã6¯Pó°O÷¤Þ¤_¯4Y*i9i«ñ6Îþྱ¨Cþ=±)âð´nh»OCã8WZÃDìj`#Û¿N®/É̶d¥a"åÎÎÒØyÜ
+/» ±k#Îl`ôìb¬!Ó
þÙ,´¤ ÀPZ÷~'\ÁÜ; SóPCtAÈ42Y¹_ÒVêPJgÚ7i´,íèÀÐ`»H}" ¦Mã
a¢ úi\ÓªC[¼ÇwØFAÚ*Û!"×'¶Á-YÐÏúÃï?
+0{àß
+°å1g¥ZËØZsfسp
WÆòJÎÏ¬Æ góÿÓ]%I¶Ü ð*}BÓÚ^úðîÝëdÒPõz×
+z dÂÑØs^¸#zl"¶µcKèØ©C_µ}
+t®kÝÙ+B?¶ÈÐݨ°çXlyª¢
-øö^¹0êÍ+7q6ò)a©ùiN%ö0XK3#Èæ½µ³'A@¦XüYO¡F§l0rkãäMõVf3ùÂEÜï
,¦¡§}8%Ñ°ô 0DG
+ÀMæîÄz3kKAÎÊ!K©!øÁ
+oSDA2rP
+´ÌÍå6ý4$á¨
+t£VÖ
+ä9Nåi7[W.Ëëή¹WÜËNóë4âWÜ*Ïí[P$óó»:ëEy÷B;ßûÚcWºq#Ç?»Ï<½[p"ES)Û©hb£Hêi«Ò!XÍgäæ-õIþ½ÍKðÈag[IØaz`)ÅÅͺ·ì\õòÓ®Ï"·øk{ðUùuw¤Òât6øÀE76C@?Ñ[ÖÎf ÆéTë° ý©díÐÏ%éjüj%NJøijv×TcIvµ±'sFIïkoNË%u
+JTütñAìDÔØMóøù¿Ä,)È #Dª9RËF¹PYcDeÇÒî«ùì,ÖHÈvEø+ûûÕût滧ÇiãÇwpÅ%ïYÜÑÓLþÁ9ÃHaì+±±^?<Pn;ÒDîþú3 ,EÍvc
£ ¬òìtáÎZN}ÚjqBYÝÝÀÇ°Ê»wz:óÝiëlæäâ¦îûFfÆdHkrÿ2Gpp1u0î¸1ï¿×öe;Ûgzæ°_fbòýíImi>^©t¢ÖhÏñ¦%9^Í)U®
+Ld>+7dYÚ¸0cOVǬ,ê¾À½va
+ÈöZÈTï¥)4Þë2K»Sö¼ÖX¦ù^zrZ~2>X /ͨ}õ,[ÈæÍåÑ£ìB¨Z~0¹Ìôd×!ú¥Ôà2µELõá×:ät~Fܬ"ôàH·7G8²[SÐòå´9RÆ_ø"=Tl#T[»9¥]Th@Êãæ¸I°Ül8¯@ÄñäÎpôd¼n3mc»lN#îÃOvèÚ%"íÃ|,H@_4D~SÝïÆÖ4Æ:ÆßÈmË7©ÙÛBÆ\OYGÊq:DdBòÓ^î0öÞ\â(-ea¬l9oÑ#3»±&GR&£u?O3NîÔ[Rc°ðÎ/ÀX3n½êÓey?aÝ60v+æf*bAéâ{V8äÁnlE§
+Æ*ÌeG
+ÖBÛ:¬¬]cîq²¤Å¥úÌÆ àhö2ýwÄW³ã}þ|^£Íúø°h~~¸ Aâ´P:qà]ÿs´E¹sÆÕ¦¬0Âx·Ø°«6xúµµ«±ÖC<ýÄ}7¶1 }-ðߣú;>zöùÍq¤>ò2@¥ú}`(5 ¼Úqý>SQ§±çc0%õ5
+ü07ç`ÚÐ#k0§å<ÒJíQÈ_WùÔuJ²?>ÇãSyGåõR§Rò*伶
+¦°©ûZEÜpþù{ÅÒͤ_®B
+v¡
+OêF@"=mëÞ&7a'Þ*&ÁÕV}
+±²VQu&u.ÕÈb"zV¹£¢Ò×B¢Ö´jDuyK¢à¡«VÙ-¨¤{=e7v¿'yðÊ6«ÐÐk¿Ue8;ë\¿×exý«ÒÏUá¶ÇvãìB92 ¶¹wO©ý|-â|µÈoÏvLu4×JTËTüàãbFÞâK.|Ø w´"yuJ$Íà[¿z }D®äõ̤¢
+WOa|ÔqÙ¥uò]äÀSGpvå[I;+èæbl6Çxà§e³W;rQ6 8ÈôÏ'gë-²`ZmxW"yrV))*rJ eoÓº[7嫳
+ªèÛ½!w3æ¡7ܬ~i#øÝu«³D$ææ ¨û,Sª*[0
IÕ
+ÅàòAZ%îéÍ1£ÓñªÁÉùÛ«£JI±Z0@ð9ÄÁ#f©¤¾t§QÕY»!1øwpºá(låX
++ì)O¦×#©xÃÖÒôüø ªVfùÑ«76%þtã æF*ÀÑrwÇÒ´ÂÖòÏ·*Î
+1½¬Ü¶A;ùF
ØqI¹4ìàù:ô0²§0Íü÷ȲÒk¢fÈOËÍE
+{;|ØÆ«B¼®«CìÅ F*9ʦA¤FãAbä½Ý$DîLÃCz9Ó(OÆísLAfyf[UaÖà¯åYÆQ"Q£g°;.(ÛòòOÚ ¼Å\Þ JFõª6Ç£l*¶j_MÂé>¸ß-Õ¹ÞÍqX¡CòYZbHb¤`¤Yê=|amí=ª"&!°øS{<
+B=5³9Z1Ößg§ãJ¾Vqk×ò]Ô|£sZÈЫç°Ó"J$Í#{ÒJ`þ=Bp=B`¼ú¥b×¼Îö ?çF8rR jY!#D㣳J |ZëÓÏr`N9º½=Ø
+,úíjÛ±ã6_
+ë
+ý}ªoÎ] 5gÝd³º
+5åÎ0
+K²k,Ê£5æ_7$¶íí9(I`Ъ¢^ðuT¢*å3Úë:Ö"ú·VÅ#t£nE5ª=E÷ZM7R¬KAÂ{@y4ìUàÎ48 ;DXÐʵ8D zq*äXemòâvMÎA«
+áJvüTfÞ¹©
+êÄ>ð\®ðÕô¥z±
¸OekÌuK°,'F±ÌC÷CÑÞcŪVPLsc¯uCÇ-`ÕòЬ9Eì0xë
+£¿Ë¬nqhøfÖIÙÏÌîÂU¸/_
+k
+©%ÃxðN{àî®_yBÄd}j
+ÖPVYÒjOùx
"ÁÁsñf!7å!RL|á»<̺Prl«5*l0H³JRe^¬AL
IE&+ð«®íÐ!ÜÃ=ÑÑÔ `:NhD'yè
Ü´2`'ا¸èü4¤±rC«t7"è
¤ÁäÎ:_\"b=Þ/"îÂ}Õ Ø! us#
+æU¢}¡1t¡¶P'D²¯ç£¼ªc)5w¹gn2=i÷ÀE`ÂÐb.YòÄa buaàmÙ×-D(êêà¸Q`ø&
+ºj=±Ö×^ÖTfQZH¤Õ^£zÎkÿr
ötÓ>
+ÂZ
+Àp5\U¶§>Óo}
À$.ºZ¤ 1¢OíTÈReÄYôt£J,PäPê«Ibß4K«3EÏPÒ¬GDPZÜ*×>)#ú9å!ÔÖüP]#PðÄNe¬5"×ÛÒ'¹PBéÞSÑri1åcóq±woÕ}B
+ÒVBÁ00"tìÖ¬5Ù¬XDíË0n at X_×áEÆíkã%XEvîiòki¢cDÑ$=wö0z¾àTKQø¶ß/úªÊdlH¡õÿæv ×3½Ó¹ öSRÒÆbì(J_°³Oú!yÓ5ýâg!]úä£õ#j¢é<BÔÅBµØB´-VÔ¦<°MR¦Ýé^Æi0\×±4u ÒQ%Sé2ñAY¡znXEK°UåOQ϶¿\èzNmÁÀl«Í§ã¡ZëwÛ
FÑl1M$
+`c¥ï£Ô©°ýL[pæ*$
+
+Y«ÄáCÌ-ë2ª*YVhêÅB[tffò)Z"½QZ2¬*dEãM)%/ÒHU[[kDÄöÅ %ä+S×ìaF }£ö)¸o×ñP¯e¦\\ÒNN£#èÄí"fE[W\Õ°`eK²#Ûd×ñËÁ§¶wØS×T§q2?´nù/rÀªÜÌ6Ëo©jK)Ë´äYO@ÄÞìëLÉpÝì!Èb[ r6³ÈÔ¦UÛÍ:Ö¾hjáHw¶{ÑöÍd¢:OL´âð*±w¬W 6C=ù¥ i
ÿ.¡>ÂBÝ6¬ÛÍ:Ö"o%µ Ù2åǦ^Ôv|T3ÉCvä¡çGyÍ/
+«ð·U
+#én.'d+õ¸"¦à×Kn±øBߧiÑóѤ½¡äk¯¤YßËóÒýwüõիǧ¯?¾úøpÿîñËö{iñ¯¾¹Ú¿ú&íýÃåÓÃçûÛO?¼ût·]>ܽØ~¯þ?øýö7øK¾ß½{zº{¼ÿöóÓïïþüðøý§Çw_îïÇöüÅööÏ~ÅØÿþÓýï¿\þóð£ýÿwÿýxoçß=>\î~¸ûüÓga{
?oyö¿Âö-þÄ-ȯ·_ð¿àÿCèlÝþù¯°}àïÿöå©2OHngç.®JÚöf6u9¿20Æ
ÔÈfû¿- ©d
+j¨ÒYW
+&é²
+Zê>, ¹Ë8Ç´Ó1¾=Xñ>IuJ
+$ih¤×
+"J;ä\åĤ0/Ødi®ÛÑíY¹
+Ýù%}èI¥ÌqòEØF8| ºOöÒClÈbQ?ÙqÁPA«Ñ
+
+±oÍ|0|Þ¥·9Ì¢rbL\Èy±,2Tkõ|¢JÌmLnâFª³xG¢24(Äa[T»'èc4:ñKðdû¨u¹E¹%(:
+Áù ¡@úó)©Ä? ²6'#ÍCWW±'B>>©C*(Ê(W;AêdoØج5¹G¢ìîW¨Á@âõZÐÖüXTªâ¯pÐÏT&,ñIªÍz¨U¥ûï)õ¢¢K³G·EaöÊ¥À'sg(?KíøÁÖ1Ï϶³ëÝUÒÀ5ááPöd-Ø]ÿ³H·
+?&
+åºÆt/µ³ë&ÓÅåä:WNÌÈed\rlÌ`6ÃÅË
HX¹ì¦$-R9*ë8RØ;»Ó²u*ÛÊÒM%*Zë÷ûfÏÌ|-e¿ÎkïûÞÛï}Þ÷÷<ïïÁÂÀl`Û$IÄ,(þÂ4Æa
÷¡ÐXV´À#EêI&ÂÞ
+Øa&¬åaI1¦¶9Ê`Ò4sXoÁÝ@ L
xQt¬n¹¶fë%jH?Qð/.É
+ÁF3CØ, þ°ä¿cÌ ì
s°dHL°Ì,Ô_À]±0kÀ]JÄPCAÈ
>ñÀ2 AL"AâB0¶8
+elXÈ^(±¤F*ýÖC¥Ê£¦Èo©Ko'+8*:,×Î<e.Ät'É¡3yÑìxX ÚRh"ã<6¤)Я!QA¬@
+àÁKà°Å° O
+ÄÍc
s
+í'ä107¥3c"à7,ÆÅÁ8³¹¬á}þ~bÁ?PÓÄ@{6e9ý+ëÌ ÏA
+ÍFW>PÚo?7y at ilóeG:l©wTbÇÍ@PÚNÓy»äEd$-Ì÷Öz^tþÂcÓ.ÎvÒ\p(-g^Þé2~Ë|Á¡Lü/+-L5ÈáYÅgNfÛ.üjÒcóKJòã\6.8ORá©ãiþ[
+WÊ/'òãìä
+ü¢nãÉ
+¤¨¡öT·$VÓÝ,iN0ã&Ôç«×èaD¦¨XxÐQ»*.'Á«!zײöôó°þµïÒóSÃQ(À®ïàíK' J¶Å«æ#¿Õ°¶´í¸:¨Z¸íöu@¾ËW/ýv(N1Z;S¡çàÇðµÕAë¿díºoµLïàæ±ZÍÊ;$ÔA±ZMuÕ·A=¼Ýl×!궸°öD1ÑîËeª::j«¿æéãaEujP\rB8]eÐ*C#½¯N
+SK+Õo¢Ô%ê×»Ä->U¸ßÏTö¸µ¦T';âWÉU¼£§,(
m{
+Î×^*=̶}húöÞ¾®ä¯
+ê;º»ï4Ü%!X¼X¶û«¥«¯·QöÚ\sÿýðÕ`ÿ£ò$wYº]xRj"kû
+S!8ûúÐI²¬Å)»©wxìó`÷uþ²ömôÜÌXÏ9&»¼¶¢ÅsZNó³Q`ìugõ!OmévÛèc)sA6¾ÁgÔëÛÚ?!FzÒDzÞkÑi~f8Ey.X&ìHÆvTPØ÷û«IõéÉ¢`éÓ,8³¤âtv$u.XZaûb¨íôÂ?ÞLÁX×óý0RÍdnþÙÊ3Ùlô ü
ÎíXû|è©Ïpn¶KàW^,=<!©ås¤0kÚÁ·´kÂz{ï Ò½6ûgUWJõ¤<s,Ö¾
WÝó @¿l;¼YªÙzï¯5Eûe0Tª#ò/ÔVdº µS3C[øçÕTéÉÀÿÐK5åÙa¨gT¬¼âúæDáPúzñojL´fKùÆ5áøźªû=0(Ã)">¬+Z;n_ÍgèËìkSõè0ëcoC&MªÕ*ò蹺ºÜpT2a¡$Wµ÷ô´W§IÏçh§îs¤â¼!#£¬öj50KF eH¥EM½×?Ðwël,Öq+ºÞ³Æ^ÏZÏÚ+_p®%JH¡evåÑÐÇ÷½¿ñÃeÑ\{ú`
+ÿ÷W2fèíÚªöZc
+?ÞUÕPFê,jêîáÉ÷=×~@gïfL½¹õ«DÛ÷ÄuÍçû£«U%µï_Ûö×<¾:ñöA}¶¿äÅàu2k¢ÿz
+V¢Í:úøå·o^=½U\)ÕÖDl"w®ó-ä«Õ©fßâîø³+&çÕþÑÕù{UænÝÊE)ò
+Ã61ùm¯ ;ãsÿÎî}d´¬Æ>(fÆ_4$϶KÇ3²íaÏýæRµ¸V*ýSÑÕC
+:ûÇðûZH/ÛÂ)ëx%|}3ovÜ%E7?|þô~CÂ1¥r$U#ähÝ ¿`êÝ£ËéHb;N¯B xßUæ?Ûä´Ú®þÁþ®[qå,Ç
N
+âÛ-¿ùù(¼S¯Û˹bÍ©Vr{`BõùIã¤ØØt¬µïýWÀÃ~©T¤bdC:ÕÏÀ·àSoS®ßL,ß\×="q£ëì^D|º;0:6Ð~Ò1Ó
+©IÉp«
+!±6³N¶õÁÇ2Øy!ÁjºÞ5¿õÅK0úâæ)9Ö)u§¦Ûù³Ö!·K´ÖND¾°;Pûàа'×óÜDµúå°ÊÇÞV>w&m?ÔÐïÝÝboñ<+5PÄÚHñðv¶Kp=FQë3øÄ&:ÏqEQ
+O¬qZTÐsn<c &GúnOrÇ!»ùÅ8Dz$e´Ìù¥O' 3ж0»'ÚKÂ`Ù¾1HäãbË>¾è¨É
+ÁsZúÖäöÒPq4Ô6·¥à$Ķg/é(¾t9eí¯¡^0Ò]·´}`R0«|~yïjAZȧÇײèâ
+Ûêâ±Ã|v~¤ëÄcÚùá¢=4ÝØó<X{öÂܯÏ×-·ÚCpÀ÷.&fì²öb¸g¥¦ê¶¬Äô<±ÆÐ:öìÐSC¥¡±Û^K` Æî_ÎþQWÁ)ç¬x£/oFNkùïÉ>l.ËÝdaÄÌìÔ(qªHìz1|äAUä´:?æ7õ}ľê¨L²RÓÓÿQ_å_Iæk ûÜ[]f&¦qA1ç8îk3M¦i¡É¥R04ÅÜã.§tZ\Ë:n©uÝOÈQSJA9xßõmôþp?Èëáy÷ûyçû|E¢>&o
+ñ¼lìsÓ+ÇÏÈÙTR£Î·Ê§×§ëlA}|å×ÐÀýÙ·ôHoL¦&U*À*¤Îl?zG$$Å`ì¡ùö.aÉ9y÷b/"µ¢7ñÁýg5&+ÓéQl~K¸
È-ÕéÞwªÞóÕÞDõòQõº¡¤T"dYp7âi
yianµ"OÚÀ0Ì5§ªzNÛ¿úØâ-dkS¯2¼`¾Ý±ÁIRWYl"5+9Ü=nR
+é´8]aL¬\-i*®üÈu#ËRC®õÙfÌ>¹ASo6%ì^F¸Ê§üãiyYq~zݽùR.=?|ûWv©¹`+Ôï¹dâù×Ø0 =ÐdK³
ìzEgÑóÓpzCÆaÏ(Jaè©s¢¥8À~¥8ª% ÜÆq®AàKæ[ÈÎ0WV«*qÜVÌ&â^q èuJfv
t sâ©[/g%ëÌ$;È48§qbEL<ÛL5§oUj¢,¯s.)Ó*\ò QD:äE¸WIØ*æºBø¡6V'Câò?ðôÒâ:óy<à¢ï/çu°5o![ê{x]y¢)t=õª~'ÂÞ½_@òÒ
+N¸êu9ìq¤Á1ÃÝo\
'
+æÄêÚ#±:V«lÏP¬ßýûl4µ07ñ²Ö&w>Jå«CeвäªÖi®fnòK}w¼ó{´Ñ±ö¡îjÃìÙ¥ôô`s,pä"zF¨¶ðÎëáȼú¯zjæøvHÇÅë/ðV¿[óÆ`áäóÕ.¸G/HÁsßù§<Ì×N¯&Ñ5Bp©BÎÝ4¬¬çÎ+ïòÔC(®nNªµ«6^Õ¢C3òsIHý5`îIª
+¦9ñ-ì3Áê@á`ùd|
+jZ¯ãâ=%ªdOË¥Þ¾`89º§>kiªSEYùCÅ¿èÁ¬3;9ÚãWJÍH¯ÙjsÁJ¤*ç04>%|Ãý Áçsû:§_ôÃJÚT c\0äE4²µ_8ù$Xõ8½§ÉºòΩTmÂR2ïêç
+
+»«ékc±=Ã46©¥ÉÌÒ
V*ûòJ§$`ÂB¦yë"91>½ÀS'ûMª¦Cn¯Æe¼HpÙ%Tñ4]©¿£2G¡Ä õ
+/Ä9éåÚ0#ÚyÝB<ßä'mÍ[(ÕÑàÒÞ%ÙÎkìárp¼w·?$ZC¹~¯ý°¶ó»ôSyRÁÓzaxÚ¾°¥ñû&H&úËþBOÎBu$äÏ~îî"l× ù±L!]ê¥ëÕ Ë[ãÿ(Vúéç \¶IõÌ=B=ðJÏC¹Sf·{áûò
+Ñåæ~
¢3RK¾ÐfrýA×Âß47ßéÒPm&ý]þMx6ði_ÈäVgEÒE×JÝÐ~Éóïji¡Ð6q%³n`Q¸Ç¯s=Õ´p×ï¡
v
+YÕ;'ØÓh®.¶U¤Ù|ÓÂôèíwïÎT°8ÞQwËÛ#·(zÓèâÚ&ðÙ]uÅWí¶R0ÇeUwO- ¿M±!äοï|NOÄ9ß ñ%RYûè[Ød"{z°½ºäüE&ÐÎ!)ÆþéÏ|ñ×Ð)d!Íz[ÿzëðwL ¹¯zÆçøB±tC&ßÝ1PÈ¥b!ûy~j¨£¾<')ÔËæèL N¸]»[\ÝÒ=293¿Àþ¼¼²*\nÈåmY
+ùD°|dMôu´Ô=ÊNõ¶ýqgµmÎA·3
+Êk^5·¾éèî&JÃán³ôyqnj´¯£µ¡¶íì/ÇvK¤µËï×bH©ä̬ܢòÚÆÖ·]ÝÝ=èîîê|ÛÖX÷¨êsÆÑz7®Ûʶstqu÷ò O¥PiÙ9¹Û 'FÍHÅ?ãâpz×û2vpvss÷Øîîn®Nö{Àò£@##§ GsÀ(Ð׸ٹ¡Ùo(Bp$ ð¾ÆvG<¿
D&pcûë×ÃàÇìܬàÎÄ?þ
{b¢BnZ_àï<ðµû î{\þpô# *%¤fG|æjXpØ!ã>g v$h´/h@ÀpSàêüp~\~ÜÃ=áþð @êûpþ°P¿#ø ágÕ+oÆ8eF¢(Ê6±B!,Q(+x8 ¶´2GYÁѦH3©¥ÔE",-ÐÐ@£Vðhåf39
+¢H
R×XÍ
+ͨÿ_å±Ug|ÿë%WJ£FQ(¯Hh,;;3»;:å ævÀÆ5llÇl¿Øl3æ²¹TsP ÐÆ$UH´¸ÈQÀXåG ¡P0HÁÆÆÛoÝwÄ@^ÿéZÚ÷íÌü¾ù}ç-¸V¦;È&0NLÛäÍlÝ7vtSì1FLÝ60RxdbÐÒ-Óa
+làE!1MEXX(Uá(²¦n8&'îPFÄZ¢3GXk::³¥-ËòÍ9 rCtÄ9ðA0[|3ÓÔ)cRвlSj%@N)
+ÇQÆR"ÜMmµ¯"k;XØ&Mp
EÕ aÔðBà)° 6# í"³eªÜDØâ°§J-X¡DFRSD at 19h!g¸d`ë-ã àbäÆô3G1`q2cMdz
+x©zQäL§ØäfùhHüaélf_¯Ñ T2à©cÐ:F¦e*^3RÕ-¹Àf±l$ß`+O-ÇÐE¦ïDDÄ°mBÊÛ,µ0{Y0@ÜZÔ!Ñj#,0![
#ÈTd¡~vDvcH3S3E"à a²À¡¯4ʱR$#J`ÝBÊZh\¢paL) p`Î</03rdBP b-Ø%» dcŪ'ôH55èÈ(k[Á1"leÙHÂ! ÔqdPµ=0Á¦ÑÊäöBB)T"²±HN0jƯ)£
, `4¦Á
+RQ¡
ABÕb$*J
+[¨[GÈkg`»Á{[äAÁÍE²ubð»Åh4(^Cv.àMMqüÄ"¢
UçIÆXý6²hxcR,»)¤G
+ôN-.Î.ÊË
+äfçäûM
+%¼Áo±}"¿}FÊÞÎË æ ü2ùÉõy;/»pxvYiA
¸äè<X¹`Ì;¡Ò"9¾²æ&åMäW 4º¬²0obHÌ=î§Ñn6ÿ7Ë|'
G¼koê#|Ã/ÕÑwýaÅS½wúoá5ÝûaPAa^¢÷ÌË/(öÿMÀÁ óið|¤pF ^Oôý+3@
+~leý*4Î~éÁÇ
+eáGôÄߪÚP"¤äià ©)¾4îªyC(«bJb
+MëK¹¼Ü»LMüó¥[˹ԫ¿Z4½Ç>Q¤íëpïìVþ}¬½³¥K¯¼ì#~
+^¹'Õ'Ë{nç!j¼åº-bÞá{÷Á:u~OøN?Ð ´æÉ-N<t;¸øÚ«a#ÄQ¼øÄ7*c«Ïº®{ÃoºîxÐpð¬(×÷Zï_Î
_ÜĽyO;Ä·«æï&sEnWuæáÝOGs¶~
+
+mþ±îë=WëûiµWÀî%|Õø%˼ܶK
ÀñÂAÏÉ*mø®Ûnç!Ó}çl¬§£/Ë¿o½ho
+iSÚÝÛ»x¯K_Ýàï¹kVejÚÌ#1o·ÐJ;ÜK+øª÷·-H~U[ÖÓn¿è<ÙÿU[{ëlX´hûæ©jÔUÛV§jEÿè±ûÚÐ@w\ýwdÚÚuã×}0¿¯VqB,»ðÙ eÿýfêcgwòP·mábõzHØ9§ø²ïkE-qy¨ÚMÿµ¾n²ðµàçy" îïséÞçb¶¼©uWwÏúÚtV³t¸P¥ý]$ÕérvÖ¡ë-¼snªéï!UUgh" «i³½Î¿eÈÙªSmû
+µ¬]ägº]¶
+õcÑÒ(Ïù¸ïo:d6þÒLó{æÞsÏ=ÏyîõeǶãÎͱãolÇîöØñõÿ
+ìCvÜò
+#Ý?ãÚ¯ïlÇݱãK¼ÆÛ~óOþh?³=äsÿW/{ýöG¼óÑ>ú½FêÁ¿oU²þÆ[Ûð¯W\/¾¾òùËkðÊýÚÝ{_þàÁÛ?_ªêÔwvßyüwoc%?õí¿?nýÝW2Ù~ãîww_}þÐ{>þîÎ[ÿ~Ä»ßzáоÏ3Û?øå_ûÿøÍ7ß¿Û¯ýâ÷úçþîýíÍÛ?þê©ÿ±Wn}å?Û¹³»û;ûìîÞÙùéë_¾ùÒ£y'.^ÿÂöñÙ¾yýâÉG¬þ}Öά}øÒ¹cë[ë×Îþ~¬9^Î
+ßØÿÛkø¦?ÐzJ3¥Ò¦ScÓEEóL½AÓÜ[+3qÈŹ¶Ô'[X3UÃ\~}Ö÷gê8òÜ©çÉj±ÑØgcãÜ»/`mÑ
+¶q2C4hnÄÍ%6s2y:êJlp¦Hº6,ñ§F&;ª¥<®æX½msé}-÷"1uÎ
+±£BQÀ2§R{
+âE£óy çÃ8
+8@=²½77¹°¥¦gÜÐô¹¤ñÊs¡ûÚÆ2sÍÃj_6äGX 9r3Ë\²çÖ¤DfFÜñÍÖvlóµ(460¥`òVKrPHH¿;Ö¹øÚ»p0Çè`äÆ¢âb¼@ÅïÚ|-ÂU,0½{åYÚÈ2J±Xd©Zc|µæ òKé¯}¡Ü߶ÚÃP©ÝjÁ&ØÔ¼Jé
lÇ£Z»ÑKP!&È~R£Ä©»ÙDoYL3Ê=§¼¸k
+ÈiUBr?TÆ¿¼aµà»
+½
äØÕ@ëâ?×"®0§îÎh$Z7vòÀ]c¶¶-K;Mäd¿õ
+#²
+&sÉì
²t?5[¢ÁÕ
+
+µíT´pCô¥5hQIP%
+1ª°°f¥J)Ð(AÄ/êÚÐâÖ?$¡ÌŬPYpqjd¸[Á ^k²q©:
+7R÷43* â>Âk÷
+[µÐh©Y_Õ¹dò°ÌZ+«
Å%®&
+,«Õiáò#`í#µ(Mµ*=ØVeyaª)gÊKÉ3Ø
+G`!s¤¶F J®GL&REÌåêU(-I÷áhÍæ«DÍ:µI¹4Qw°°ÀÙîg{kS`éÙ
+:°d$3×U#dmè2×Ë°6!~Ñä¦-K" í7Aý¶Ô»TêÒ¦:P¥: F/CèayH¡zÈ*g
QýüE¡DVJ" ¤E
+f &ôO
+4J Õ.[rf_KÕ*#ØÐsì R%ðb
+A'»)I7Ö¦¨ü¡§ÃCdp;Ö&ÓÌ©`ÑTÞÕ îï+VôhÌkIÌÂ{ú¢ÀtEñKG©v0:yy HYÐÙTr6í<n x
+ê©ÖѲÖEÂ¥%7 ÓbH´Ü<êðx@
+um]
+ËggÐTªh@ÑgGêLNÑ6h"©hYÈÊPõ(tÿa `kVQÔ-@¼(Äb¼Dïwy(õö
+¥%W0«wÚ@éÄä
Á¡$Ãf¶@
++il±ñ-F½éÅÐ
à·üp@¢j·-=-zXc|TAÏz« Zgå¿_aEÓ
+
+ sË¥B0ù2rØÁeìÏ2)"ãgBëÀ4MöB¤¶¤»!\»&ÞJ
+ÉÀº¨X5d3wFNgH-<ý¢uaRõ]·1kH¿<Á\U#ÔµÅ=àxY¶÷®7`·fP³¹¦UT?» ÀC|¤U
+c{7e£ äºÔ4{·l(³]~)XLjfyXÙJ
+%½ezÔ~2 ~DªBõp*úCÒh ¹¯åhË!` µ
+ÀÝ%åö^áØg9ÑMupȨ ÀwÙ¡°?
+¬_áD^Í-{zY"ü"køÔ
+Óåi#ÇA!_j5Ä)ø¯L´jm½bmü1i{±¤eÞ(Èj2y§ÓÀ,ñ²ÒY±¢YNåÏ%ÂVl¢ÇU⸠Dß1#â;âðI ¿¼z
+j5ÃvÓRIlÒH³+ÙtÎS:½v¶Q ã²ÔLI\`WUÍÓ´bëIL{%3ã¸R¸Õwb}µâ^LS¨µÜ éXypý$Õ
+ìàªC0m4XhK&Bÿ±MGEh)ÇÈTè0UùQìç8ê?¸=£é¾%
+À{)nX(\2gaabY\À¹_`þË Ð¦Äz½ÚBÆ ð
+£ju*d&85©Ï@º ÌJ1FådJ+i
IÙ(Kô\f+UÕʧº QTqV¥Î§y½8ý3§xñ:¿h»ÝnKÒ%gYRmvNÏ
+Ö
+Ÿ<q ëãd`1ä1{7¢I'Ëçã¥ÐH:s²¸NoàÕþ¸*B²½@V]¾*PêM(ð^gN÷úÄ3½|³!©Ó©vkÖl] Ò>ëÆf8&ئed%ôCàµG±&جi«#+5ëüF±SG}N_
+&`Ãt~ÁI¶àpSéfKp ÀVÁ?Ìëb:hVÿr¥ÒSdª
+Yç7XûWôb±ÎNîx]9##Mç7&Õ>ÝD%ýüdÿop¸fT̶äTûë-¦à#p0¸SÅÀ ³9,¨^Æø`¼
+2ħMéÊjüî ¿FÍ)Eøã°<¾D«Ã¨ _ô
+ÿ
+úÿ¿z ¿}=z¿·ÿØ}Þº^ÝÆè;¨ûøÈí>ù½!ÝáÇþ¹Û òØá¿Ü×:n0^{ßýºë ¯iï1(6zl7»¢õp/øPO¸ñî×eoh¼ÁÉ,9¹ñ!Cá¡_@ß.b¼ù§®¾ðñµö@xê£Ð%o__íÁý¥>%¬)ß8Gèu4dP绩6}õZ}Íü¦l=²ýï½å$ÿìûÃï4½{à
+wøÝ ø±ï\e6BFG|Øâþ>=´çðFhȤÔí
+IÓ&¾zìSJ6/Oæ¸Ã
+³ØªñÅ^$Ï]YWÑ%;Û&ïjdm§EÒµÑ9sÈmjÙ¼á¡Ã FÆå¯þk`H³Ç [óÔ®ak'-Ý´&~}âÄú8
+
+±ÿÕzÆBãlY
+ÂFì¼GóíÔDfÐçûÏÍCQ¹åïÝ®®±i[÷.@!)ÓúÖUí°ÃuéMªÕðONâ6×>¸[³±âlÓsgÛ±Zþ§öpÉÚâz<²ëÌñ<¸~~Ü)EH 9?iϧóéýXãÏÏåi5jÿxá¡»OÔ+Ï"é·ê¿[V6'5ùéÃðëÙomsa¼øѲ[äð'sÉý`óþ+7׶Óå-Õæñ°
+.{I*Food^PÕDæo| å!ÛþV·íË×öæÒà,¼éyp(]ñâ4vý
+ê'
+SE4z»Fj²3..®sM¶pÇ»èìÔ%^ª\î¼²Á¤v=~ì×äí ªmBÍ`½ñ;Ø·Õ}ÆínqÃxx(õc_T#ÁÙúCÁ»
+H`[ï«ìÝã¹hÆÏÜ@®YÐ_ýPâî&ð¹U
+ÆÀȸÐþpýôòöf1*¹îñøx¤Üq"Ê8üHÅ8¿6JÕqb4ÉâóU§µ»/?uiÞü''@Ù' ]X£b cÈuÉ
+Íݵê¬[â9
+ͪf*yr±LMÞO/8_8V@ø~¶0ÒrýëXËG.(ûÅÁÆc8U}f+C3ORnݯÅ@ñ«+¹ÚÚ (åت£QÖñ'äùJJÙV]{ûa§077_ÛÙ¡ÏÏsÉ.?Y}ñ'åSѨÍôÔg>vð¬Ø¿«°¨²Éú
+¡å_!÷§çh1úÍ"8Ó6 µù.<í&ÉÄu5ç¿PigÆa PÖÑÂZrv¾Ä¶ûfëSQY³G:pTrÜ_^®-ý)°»îû]W<b8Û.¬9KãáB¡¶.[÷`y41ÏoÖS¶ÃÚ㮿ÝýFÓ6\S¯¢ä]ò¼ç'ãz!ìô¼ÅsNõ3Ï:k`m)*ÜO¡©UDïFã*4:;;B=Ψu7uíç×mßñô yg^â<íÍõþm×xʾÏ~f4¯w¹ìºç?3îúDpâ8ÔDÐq´_ßfÓøÛûŧ_Â@
+ßåÔzíøÕçyÞå>ê*An#¦ì¢çtâQ>;¡(;NÇý³;BÀ´åê.C´7|_ô9ðHû×ÿãµjZ묰 ÿáÝRÔÓ3çÌù²«ÆXÚ*ý ÑxmBMÞFÓv¡àFݸqáªE"-BS¡.DQn"
+ø3çÜØhqáÜܹsfyfæÜgDÛ¿Ýþô½#÷²ñ@Z¹|ë׳sççﶮ^ù`õÐ=mà9þþë?ü¾½³§?¼ùåGo_ZqOx¦Þüðó«7nnmmݪϷ·¿ÿåÎöÝ»Ûütãã·Î>ýçÛóøéW7^ßlÏÅÞxçòg_]ûæúµ¯¿øäÝ÷aa»kýóëg_þÏ6þ¯gr~rò±
^¿719?÷Þ&κyÈöÎõ×!8×þëý¥Sý¥ÕÞúf÷DÔí^]]î¦Î¦îÐù6»Ã½s¯ìëÂðÂï ¼R7µ¯;Í?7è¯÷EI73Kçz/-/.ì?º¼´¶¶´rzxvecq½ß´
+Ij6Åâ)0¬MµjÉù6Z!- :W¬k²ZåÔf!«DT\9#ÇjÀ+§0T@å¬÷E5[r$çPqQÔÁùÀÑI¶¼®ºF¹èkºCp\hÌe)mmKîR¸¹FÀÌVD(ù 6Å |²¢
+ChKAZ.g(NmçUáëPrþÊÝ28¯
G.§V¢Õ³ËjXæ û#Q·ZÆ3¡ª¯«KN¶MaaÙêßR\Øz.ɦu%+XÖºÊ8äئàÆöªI5VZ!ºOëÁy5!Ö
+
+*
+[7rkÖÔ9kTCë©ÄÕîFYÒÉÔjõ.÷z/Ñ塳Ҵúäk°RmÐ3:÷×Pwl#ÀÏãªd!Èò@É¥:mÞµ¢X®T%,gø"íë..Êä
àêVY'3Ân1þ`
+endstream
+endobj
+108 0 obj 20830
+endobj
+109 0 obj<</Length 108 0 R/Filter[/FlateDecode]>>stream
+HÔTkPWî?[}Pk×FMWEWî¾ý¸
+®âQÐq OµP£²[AQJÔ(fÅ"âkqQÅøZS(yFDta£D·÷Ü{{æµeU~e(fîýî¹ß=ç;ÁPuDz¤²*ócu,I%Ì0]3TXÐR( 1@`M4ÜIGÚ*D@$ IT-PQEº ©¢b(U×0÷±"ª Ie麪 ªh0tªnP[]ÀVxÊà#2l¶TYÇÄ-Y+¾û¢!heðÐÐØ[HP
+E!AUÃr@BÀ?V¢ HTdÔV74A©³HTI×(¨:ÜP*ü`"=À଱e+3½¢&ÕD±®3KY| ¨(Ç0Pjy`To $à/`0oæÂ"óò±ÄB¸ÊÏf½
¸¤1ZES°eª*4ZED]d÷ACXqW´pę́e˱T¢7sVTV
+òU"äZP,P4¬ªÝ |°Ç |TÂà$³h
+²¤1a+¨oQ¦è+- êaKZ¬éDZ¨äÒLër a Ë[Yh!`è,k¬fEÔ¿N«ÚNÔ5¹+]Ó4Ö ÌzI·DZÞ"î
+A©Ø
+¢Dõ¢Áu¾+´¥&éþêJ¤"*¤wë% ÄDPsTC Ð ª)(Ùç.H`±Êa
Ì*rÐì>É0w-Ü9
A#)t¢Bc"
+F|àÄ°è(+Ä9¯æz²ÙÑ(JÂ¥æ&»aÑõ.Ër;ýÏZVðnJ¼#µòO¤14>pïHëGi®üLºø ðÜÜ,>0&#'ÓÊ<tü¾
+àxX´êåömÂÝi9³]ù^· xÂUbbGe&ùÏÃhA#òô§±&ìûƶ(ø?é3.¯+W$UpDÿûÙùÉJÃ_ôÿî÷#_y:gúñö
ÁÜÈ1OóÇýªoøyi4ÂÚßôKÑOÖÿ0sb?0 a~Û473u?¨0Ø6ÏìbRÞé?
+¶òCl#õI19uaÂl^¢O´Û6÷Iå@v@ò%(Ð8Ö~$LF~³G4:xVÜD¡ç¸Äy:](ñI1êhûÑ°Øøªô³NÒÍUB¹<È+'{]÷òö³Ð¤Y#¸&LéÊ ° °`F¯Èô
+å+¢9nÎ_Ö-ä¸Å16
+õÄ$Ì
+æ"6Äõ¢àâ68°!óVW/]p-ÎñÀÁàÄxþÓKvmIêMR\wùüÊï]Ú1CxÍÖÊSæ ÉÖ~jIueZo
+ÎUÓÜÚv»µõÖ
¿åd/r@àÏ`'£ãæ!åÈÞª^ÜbÂÚK÷;Ýi¹qµ¡b©3hÐKìdü¼#ÈÛ¼V[ÍݼoË>ÜÝwó«OwÖ7Õ9¨ø/³"
+w¤r1ÞxR ¿]kjÇ÷Á±úü
+E\ú¶JÛó<!r:ch ÄäDÂÏs/À{çáÊä>(mÜ:ö.eq¾nk)y T9Ð!AxÎæºÃë"{1ÕïÏ#¢,^JÄ0NL/Y¿µã´Å!
%»U¯Ð"uÏñ]óÉbfQ©½!êp.zÍÎíéô4ijz(4v¢J·¥Gvõ%rË©Æ¡d¥æcSCs37¨¡Ê¨Ë×dMªSÇ6Dw§È;Úܸ-sßÜèäp,ðŬ¯;¾5_^»}!ü:µthI}Ó¡Uãìñ57Z/,¡Ë)ï£`å2F/ÜÛt´|ÇeÔ6ÕÒ"æOgãcAåéÆ*{(+>zø]ókT·õGë««ölsðÊß=[ÀýõbËIQ¤{¾Fo¿vðìÑ[q^øÆ4?ÛÎq3¼»/Ùºª¢î[¨éû?¹r¬êòý÷Kéºõêëu§w¥v1$n3MóÇÊ7ê.ßøøLÙ,.cïÙeS!եÝþÚ4;NÛFò¢X߬©lj(õ¹1£êæ 0ÿûî×_' :÷ÁéMÓ Å»¯·u·µÓ4ï/ÎË÷Ì».~û_{Ùr⦫ßþÏçå,8óÙíóë +ËZÞ?¶ûC°h»°g[õG_Ö|ý(«Î}¼ÝÆ`~¹
Éõwµß³kv$q¯ôùmËÁ¥V£ÓVm¾Ò~ïLÛ¯hþÑNñÍ?5_ï@3++ 7±Z¿ðNÙd¤¼â3ï¶Üé4;ÎåRÈêV;ùøÊjÞ6ÍO·q3ÊÞ\JÞ¹øÅõêXXËkÞ¾Ööð11½w*R¤èèFa>8áxíç¦ùCKUíÁ
+:]\µO.'ÄêkT|óIû{5¬¸²Î}Û¼w|M÷÷û$Ïm]G;rÂë÷fEfãfõðúÕ2>¸ìszP×ÜbOµÌf9·í «üËßü¿w/íÇMa
+ïjøOO
+ÓìôÑÞß?Q/Þ±´æ«ûÉCË¢¹?F³RÜw¯7Eקu¯2ßÚ·
+±èßÞKf2³³ÿ¢mbÑÁsû@ק($Þ*ð%WþG}ÕÇÖYñû
+¨AÈ|ÙÖm°íÝùþØæf»Z²6ÔÔ¥»k/[Y×înP@fSÿXÓ0"A³ø hDn°áÁÄA7d1² «þÎyÎ{{o×}$&îÞ½ïsÏyßó{>Î9ïZÅ¿^TlzúO/ìî(m-þmr`mý¶þçãQùqwÊÀ½ï¼½oGéû¡"':«eÚ%Û>47ÿÂõaÚ70ëúZ|ìHm»0íj963Æß÷ÿdç/}÷ÅÌc$ûÛ³_ßþå]?üÖ
+TΤãA,r¡!9R
+¡Î
Ñ
+D.-çÉ[®¥¤à2 "x1yÈb½á*Le"7FÅõ2-Âná@rDÅNSÄV
+Bà7LÛI
+¥Ò6wÞ+
+¡-2
+47&¥±a1°Ð¥µ7îÖL R©)æUQH!ÞÂÓB-^¸Ñ-¹$ËR°¬áK£GÁòÝJC ÒúPi\غJ
+°>§¢ERÛ@B"òC¨TÆ0©j
+!sw5¥6ääy{ÒúÀ#¶BjÅz
>=9<CôÉYG¸n,9 öÍ°§Q¼R3¦ÆÌhró2eåÆÕÐ*I)²:u*NÉQ|ÎRW\¤:À*`õ
+ø¨1m-0å¦eÑ6GHó
©´¼Èy@R(*ÐÕ
+rKRn!çÔaãuò
+üâʨÐä,zrIËFè-ØÅRÑ3&}4ekBVÐb±Á3%ÍT,U½õ3¾!µ¬´{4W1²õ
+PÞØ¥1i±:Ùç긫¨ÓøÚÆR;M*ä¾µ6Íe èQðÖ8+bÂ
B3ä¯åpIëéC[âO
+*ÔB6)lÃAÐ"§ðÎ%LP#H] *j5æEí
"Ûlñ´%'
+KÇ dè:IhXÑáb
+E[[ÃR¼# ô9£mà¸&
+]¿%S¡mAB]Z
SUO.÷4%Sn¦nó"^iK´ºß¨Øa!Lç TL$¶¯1a
+)Üìk´JYØtN
+.<UÀ¼ç).26ö7
+Ó1C¯?0º*´=¯e±`.C!Ïê[1¦¯íÞÔÍ8@h÷F8<iåÒÙt~ðÖjék'K´%õ
+$2*ÁJÆÆ=ô÷4µ®mbéÂк¾g3V
+7Vz³uCåÞ¾Ê@5³We³´
+ã(ÍJ;§
+ï&Dn!>D
+!ÐY뺦Ù*¤Êà±àÇ^ì²pÔR
§ÊO at M8·nlºZ[Ç¿¶Í©Ïæ,¬®¬ôõò¬x«ËrG¹:ÔwG¼Ã-ji¿&9xã-Cé§ÑYïàÚJw¸À
+ÕáþJ÷¨Ù1×4\°IçB")YG^ëƧ"\ï²Ëú67ËÎOãk>Í-íº{i_enñÒZY×7°²¼¹ZFàÆ5xêªÁ@h4Tr¸fp]¡÷"p«\:³Ã´¾]
+,ài`«å¹Ò6u¶_Pú?çè\5|ä\\ôsÕpÙ'Ïrá
÷>uv
+F±gWQì§Åòóê±OµSÎXÁ
/®\¼MZ¸àý¸üÒRiÚìÚ«½ÖM0ù¼Æ×Èÿ¥S/.Ä
PZ1»4vºèâFù´ïZ%°ùú5Ëç§ÿ®¸ð^Ѩáûü2<ÍïÛ¼zV.\ÓeÓãÇ.)¦N?7 Ì5LB§OOlëtæM<Îjq¹rEOgfr©SJË«ãcïWïí(ÄnÇ3T-O®¿û®asþÂéõìÒdÁÏûü÷(ä-AC̱óy!üìÎ]÷.(䲶«G5ðÏÌ,]f"ñ]ìþÚ
+
¼½kAʱI¨Ë?ñh_©4eigÇbbsÛRaV°²hûÙÑ^0¹¾2G´¯IÚÿØþÿò^m1VVWø<õ¥Ï}?/½¤Mþîû¥m¼±P±\,Céã33`
RFÒ@p:R%ØFÄÄÒhE5ê
+( sº.{ÿçLíCÿáüß^ÿÚëòµö~eUDiìqYÅ5·]¿;JTæoؼ¦Ý1|ã¼%3ßWá¥éöï%é®~²³þ³Öñß"HÜÙ:þûÆ-3zû6¯_ÀN4µÙÚ×\ÔÍÍ×&
+K^¼øþ0¢2ö_^CÐØyÝý.~t˶õ÷øróÊþy6þyç:zf°påÖgOÔj'?ÇtÞ3
+!3{åÒq¤á·[éëMrcV¿züüÙ·Rúæ/[þÐÂIÌöÑk߬ÕÎïC7Ævw^O&ôn|d}õÐÍ¿¾ÓØ»ïTVûç³wÀËÄÞu«ÓØ9ûÅÏaa°¿uù&¬yúwSðïylí¼ýÓ>lT9gÅZ#/4m8Dï=
+µC¦³¿ú¤¡c_V}ìÈÀÚ ±öõw"ëçnÛÒÅ=Ú»ËàõkeYuüíb|οÑ(r`àÐ3÷ÝR²µÿõ>ÎÅÂwK
+Âë7˺û¥óu
+µCË]~hðÒÀþö|röÄËs Zùa:ü0¼þ )·æçO5h8¹íf"Ì0¼çNþþûô ¤ççOg¡³{¦U®>%÷ÜÑ4h¸øÚB½ñEk¯->õIصâå×f7½5Ø âÄN}ó
+PíÌëë×ì:Ò(uêÝwäÒ®ÌÜ}ºQüøîÕëö«
+y.ûìÜPdàµuJBÜÐwxÈâ¹c]íùtÇkJ
+¶¿¼ê='÷öÞTWPiZÕõMÁWÞRi|ÆóÌ¡àÌáç{*¨T~´¡ÿÔÕ¿äçÜG{o]¹ü÷ð®¿'>ÿxïÆ97]ñ=Æ¢sÓ+¾0ø><säÀwþp¸ïñ¹©ë±çöî?øñéóûü3GûwÿaÑÌ+ío´£¹½{ñ»öí³ÿ@ù¼uð£Ç?>ø÷ÝÍÖü+LÖÞ5w^~º»{,Ýøôö¾»Z®ÿ2ÿ8qÔÿþõÿãÁKÓ¬f¼¶àUëú|³¬¼WÝ<üµ¼¬Áý²:ªóÞ{çUñ"×püúd¼ñÅtûõß¡K+¨b!5lé¸óç3ó
¯GÌlikk5ý2øY]ÓÚggéï/Û/g
+/óàåFxi
9p[S½c¢¨6zÛé¾7ßú
+5ß]xÙê° ê·;Éıôw:ü
»¤
VïVRW½«\N[^ðÞ¼y
+ø©eDPÆ@-%IªBÂõsD]
Ë)É®Øo<HÿþuR¾FÒ·>øB@̸BY>ØWI^ ®`,À@4ËØ" z
+%£Ç]éª ³ö¥3 Ò
+íÈd
+FhÖ`!^Ö0¦Q)6¸Bt¸àÀEnDWH«ÍÁ²Ñ¤!âÜ Aky! qlA²ÅJJ6LñQ3¯ÒÈ:pÚkÓ6ºð.Ú¡* ÀVØXª
+¦XúB¥´eê
+X9è^¢NrÀ*q^°Î¼JÆ4êv£¡£`(X3µl)ƱX!©ÿ@
+ÓвaIý"'qPÎ -K0MØk ¬>&+,VP4:fï¢$ZQD+K
+)
+Å2å#ä±û9ìÀ]eà¡ÐC59¯CNT¤30Ö oP9!·
+³ÃÊkì\Ä*R$àÜ!(ôêWõìECÝ´^Ò
+D"iNQ:Ö
+n/¹%
+ZåýÀ稹Ï+<R*AØfC7¢BÁ,\
+:¹!N²e!î¸;aV¹e*A£M2Lðx0`$²
+àäÞ
+îÇûÁ.KOñyAìcÂ¥&]ïX2Â.&òD§kÌ·tfK0Ú#3Ê5$bì²Q¶Ô¼ä±êæJ5hÄÛSwÊãA·DÍ˺
Ák'¸UÑÿ&½êvô:àì;Ëÿ+³)È(ÁBÈØk0xweÈoªþóEöG»5³szzº»ª¨îÍòhyÚ¬¯)ú÷TE$®úHQùÖÍNI¡éJlЮ»¼_ï#Úê.ô*-¤]¤vÀV$À6«;BAv÷ö.á
+\|Eà
+M§Sá¤é»yC£êotlK_ u F(
+&CUò@ó2
+ÐÈIÝY÷cSi)s@ÓÚ
+[×ÉBi¦ö¬ü¥Íw¦yÌ.¶ì£ªåïìÕ#(2×ÄÂ
+FÞrBw-.¨CÃ᧦³G ü»:Ö N
+%HjøzGѳ°àçªW$¦7/ÍÕÔ¬EøU4f, 1Î1Éfüú^ÞúÅEòP>D5©wôÛ%½Â µÉxÙV¦S/¯½ítV¿6ª´^îݵ×éµïnµúGV÷Düì;DÙÄ ]Êð¥níZïeØO§]³¦OL6¼(@}s²Öñ¨ªO3ëtì:Dî*"É&#ê%ã ã©ãÖØu]ÐÊ)vHËbÄeçc»âèè\À-ÕAxaßJìâ©]/mD¹d-ÃL·6VÜ£Ú%AGGÞH»¦ÕX8#ÞÚêmD,*<Uosͳ{âÜM¸»Ô¢O¦-0yùJ<#É4ªWõÍ[¼Å¿t|³Õk3yûÛ%L.,Çg»g;º©>>ùªJÌ.¶ÆG>gv°¦Cv=LIîzSF_³¥Äæn¶Xn4'ÒïgA:)ì$DûXqYûY*^{¶ÜBu7Ø<&º©~¸r5¹/SÂõbðû B+C$Â8¬ËwS IJJb§\%>µ&)þQàCi~* ;(©¹©ØW´XÞeÊÄÀ:W10Uq,ÄaëþVWõ½ð±YPj
+°¹Cõqq*8§Èd½û-Z¸~þï×÷n.b¢É*S9[;bzfs
+S§ÚZg'q7Ò±æ *×Ó/~è%1Tp*õçôsÉÌݪK¹²ÄÓÖâ»Û*ÓÁ<LLù¢bµb@WLMö,xºbþ,+½iÞc2T6´ùëVTNÕ˪ô¿;&®¶Ñ÷ÄBÍÚwÜæôÝ%i¦Ûb ¨ÓA£XPÞ1%)åfVë0°QìY"ú&
+£sq«.¨ãBw§à°x"Á¾¶#TWA
+Í@L
uqBKÅwÃÆhÉ
+k§og*¶¦*)¤"$ååþà°7¯(ÌÒ"<ØØeàÎ}Á{GâëúÔ1ËSíÁ)*Hù-^´×á,¹z>óFý©ÀØ]G§þb Å4øþã«'Ç¿â'qcA¶ÈXε¬ÜÛ½ÐÕF³J50;¹7TIPÈpnOrRVGª±F.Ç¿÷øFøõÓÇoÞ½~|w÷êáÓñõ@_{÷x|õô[IÇëûÛ÷ïÞÿû÷«7Çíý'ǯ°ë·øÿ¿ø%þ£{åûW7wß}||ÿîîæ÷Ï?<¼útóp±çgÿã÷woºýçý{ÿýw7ÿzwçÈWß|øðþæxþêá
+N{r§ø÷âÇ«W4iéøÿìÿÅOâ?¿ø_þþèÇ£:þö÷t¼áßþù
+6(¡hl4¬4+è
GjÓGýAÿ¤f£n&ÚW¬Úéóù×éÉ<ç,]'v{ç°×WfÔt|ÃÁæptIµ)
+2ØDMêÓ³ã(
+`tà¥n Nz¦°:V2Qfí,uý{¶S¥QAA6ÞA¡¼ÑÝ5 Y Ch4÷½Ú
+µî%p¦Õ¬ÕàZøÀÅ5tE¬Ï¾|ò³«·ÿwëZ»ßÍ+fùVá¶KuýÄzµØuÑ/Ð?M ôúòàGÄ!ÁÁ&XBÇQ¢²þ>kÕ¥÷>sF<h4SgÚÝUµ.CÍQ)Þ¦múÜüt*r§í¬e Õ )GV¬;?øÁÒñlߧ¥)6·w{6ÊfØ3³Õûns¿¡ÏÛhc ¬¢¾sî¨ôSæ$½EÖÄl¯ºqAD×áùFª6®BìÁÓµtXÕy0x"¼¶bMúoÉçéFEìpCÞ>¥9d±¥
+½zÔEöò¸kRèBuðÃ¥H$M?VmÖ4,(ðÆõaÀÑÆñ÷#Ñ
+¤|
+ë0ñP%&µ[
+¶°s ôÃY3z'óÁpªåÜîöÏjHÇõ¡«·l÷À×Cáf¢¤!óá¤ërz
+us Üe
+wÌ?ôÜ\´F¼¹l{ìv»Ë°Ùsê|ÞzñÙ[mï%rj¶Ö[-®- 9óEʾu§@×H{ô|JaHG¯Ãj¢4°ÅíXXlKb°d3Å
+<ËA
+ÉÆHý$ëƶ9>PêîÓe¾|ýËi's<îoëu
+ëLÃ.¶Ó6Ûä°=ð=
+(5ÕáÍBÒ¾r÷
+`÷«+ðHå%XŹ#^5Õ{
+Ê
+;?ñÆÌMõÔ8ì7Ö-umÏ}à«CMt~VákÆ3G0ÔªæÞ®¥¸¥'W#Øl±a.¯WYa.ëDÐNPsħg)þ¹YÖ^6fKRæf³ªdPÈ_·!PDS«kðÈiík-Ýc} å>!©0<k
+EÝ30A¦À}ªORpâEMäÄY©³!DQªaVÍl÷Ø=b?×±G`Bfìû«Iõ»ÊÊÓh(Q,
+°cSÖ ÇiíÛyË6λTä¶ùùf¨Öì¶iôQ¼lî}/p¬úc¬+ÇÄAMG0m<6
+øÒÕuâCºYw¹¾×H!×ð¶Óéàÿù÷Ç3¼ø
+?(ìrbzÈßG5Ò^»Âï÷u²ËŤÝRÌX9ðAnºÒ28E§¨Msz0ñäyJ0'Hu[R²¯y*³1ØîW<A)`\Äl~é/ǵÇK«¬°9E5BÝ|yà}
HS<m%b§-EáIkexÒbd)²Å!°Y
+§1ÛúOâ¨ÌÃ8ø[DÖdÑP3?-¾Çkß[ÂÈçèÆR`&)*Ny=\Þ¾aÕs!i¾J
+^8Õê5;ÃS¿¡WðäéA5l²kÙ¹%Uר.Ù45©*\gÜ`{
¬¥§àà;ÛzV¬}_¸º×è!{ ¯ÍÐQíæäÒ«2iAhè1¨ò&Î>eó ÐS=$RÜl»6«û
+¦ífd¹ýH\Eõ´îâ"CÊfÙÏe0@%ÂB|võ
+åUa38@
+Gpåó7¨ÕÉÖ1ì©ê: x©Údã
+u]xéZÍ`/b¼ajâ´í+ÊÊ9)b1bREÙF4ákÐßYA¥ð²ì¬Z1·ËÆz[dLÍ»er5M\AM¿¤£IùU»Á&Wb¯Ý¼ YýÖ.Ì];,üTS at NN¨Ë ¥[Ïâ¦øG&8ÂÜ?z¶Ò¢û«¶Ä//fìgÝ vÝ\ÕÜ{Zfó8PEµ§ f+¥'¸iùëÿ¼X¹ÃÔ´ìåo¼¬¨ì8zqaC÷Å[Px"X¸Ú\u0¨£y`ÞX($ÒÞ¹
+/Ã>Zü_ÊËeÕÒÂOÐïp&NK%Dñ
+{$rFhÚßÞµjUþ½ÏÙGFhìtvþ¤.«¾µº
+S§ÖE®¬Ä>ë9¬÷[økñúãG©îѤ|`ñ¬l<ßÂ8,Ö¸dY/Õê
+ìzqyEAzÏGÔyº¾pö5Ï·q"sq¿'í K÷N>}
+84ëTÇ3°yÅíªð
+g°As/âæO÷PbDùéÝËåí½>Æ¢;=Wxow]¶Eóâaá®B.á{-¡;4sDæÏ¿¹COnW»26$-;@õÈH´SP¸qÌrÖêBQWɬrµÑ¦êþÚ[§ÆÎéR
+KòÕ¬×pà]ñ»¤nØ%|);VðÿC¡Îr¹ÄÇÀ<¿£7æXÙ&°ýBî
+'ínɦ©ªúÃ)ÄQ/ð3u
+Ê×9õî.0;ä)ü#^]&8Z[Ñ+-\ãcøÙÙÊRðÝÃcåñ2Ä£xg4z%R .j¼~6ö"Ø
+®Åï㮥²Jµ·©zää¼JµÜ1b}ÔÄèþôfd?79ñ¾ºVF¢ìïàXz«÷PC}íÛûªÃªji
+x¹®¶e+°i1l¢BYÕ¬ÙI:
+·ÌvB×Ûáa¦å(s9Î7õ"µwo'/~ó¬>[Þ
+CS¶XJwÒY½e
ùôØ'gÙN3LÝõ80Wm6ÊàØU!Á-6
Cg®·ðÌH§B*«¦®'tóÅÓÂÚB<»¯[yT×bä c/ÚzM»Å~qUTÊÌ·mÐÃí
+|UJ<§B>p-Aq# õÏð¡ñƶ3{¦là㽿å
+Íãáð&s2ùÆKÉ°£÷E{U/l£å)ª8Fõ·Ì¬ÑȱmRi3«ÜgmË2»T<¡6kÅmÂaùÕ2°] Ç碣R¾+Ùf
á»éûs#°" QÏ.[íªQx¸ÏSÁ¼¸fEár à"³¶ôÒÞL®j'±$vT«È1¢üÁÆ ù3'½A·°<oEÀlEP²;ë ¨p/hÔMB½%¦5æX'`* á¸Â×öz$
+
+¤
+1°ÊG'Ö)¹1NÃ(hâÞ
+
+ÑFÁ¶IUòò
+0JÒ8H¼BåucaÒDèÚÞ»)§¡6º+^æϲt!XìrN*³Å:ª©Ù¤Ï ð99¢fZ#@L¸°4©Yªê(.»ÁÀÚÛNJºÈ"NáR´9ùuX2?1_¬×^1=1>sÈjìPK[=U6ÌÒÇ+
+bn4p~ª#×)Õ^
+<¤kB®SQæKÞK&¼>ÕÐó³ Ï+`BSs¸B1¬Köqh23Ì
±·uW;éÅ·¬¦ä@_¶WIy_ª/Ô£4êùVk;"
+u*SI.UXý
+"[õ®Ç}vu*ÖF~ÝdHïcµ«ô§ÈÄ*7ñ.ô°ÎÒR<ãòå ×xªÝ$J(¥oÃvVñæc\-QÄüµ ¶"|wfnöÃk¹+Ç`® "û¦åÚ³t,¤¤Ô[B©û9ëqeqpÕ,Ý°+ÑeQC§Íba¹]6ôcÑXÉ$<¾+GxLñ6Ó5xsÆÅp'Óù±;·w>ÕÅhn̸¼`AIEB¸VÑ](m§
±®ä4õvªRÊJfÉ^ÓpH·X)fPÖbw>çêñîF
+EºR»mÊõ»9
ÓfB=¢xØU2m*t)Qiù´ÌÜ-2¸MÛqY¬eWF2
+É"G´%xøÓ-"WÇh>Ü¢Vå^%'o÷W@í¥ËÃ|]êÞg:jbѤ%
+Èz#óyÀñÙZ!ÐÈÒ®ûÄÒÜÞ6:0
+Gòñ)ø$d
+ľ
+\rpÛí*,ÐD
+î¼zÞXÝ9®§#Â4)Ûvæ´Dì $àµë0®pôcaÍY>Zç}îF*<>´#¡;Kî?ö«m©$~þ¡^6vTÕÕ×ñ{×;3
+ÞºÏh4cM£¸/ÄxÊ4³FüK@
+)h¹0)Ý'UÝBÇ[â ÷t#RÞ7Cþ>d¸ Ù
+*}+Û-¤Õd qGUÍ»Ô[HO°òt$¸Ã̽R¤!qt"êT;K"£ÄûÀâTíö{®¯2AN^$Ø©g_Í©¹QÖQ>xî§DáÁ$´a01¬K©ºëûÙHPJÃx+¨%ãü×RSB@:R¼EýÚ_¨"0í¾ëØ"*x,0ÊÆp
Ó±
+úÈ[RPâ:0]~F4,°J;QÌÞãÄ©â°Ð·2ÕPÊ×*)®åÆTÔÁäÚ>²liXö8
+¥ÕôR
¾Å
V*?¯O¤®=}äH
#Àdr??tªÓAw~å^
+ÜgÔ½@GÓ¾ne,µBY_ÇHXÉcSãH2ÖÖ±?GO<tU¬tp$´kY|h´BZHÁôÕàõ̤¦PCb"×'¼,w^h³ ª>¢ÊÁEáôe*#I`kxC
+;hh0ìãO
+]¤<K\¾j*ó)Áò ú +éÃÅÐ~A¡$.}L -#<ÌBáHÖ:¾a
+«-¬CqhjFJ2¯/a¢"irAÙkpnàùt
+½HÍf¦?©°#äì´Í?Å ±íoXí'h0é|^!½?0'°.pï]Vd^.Cd³"¼é'ÂÉ5õ\òLA/3ì4}ý0$0øcWÝÜ)·5p-ÌD;Ò Ö:%1Pú¨rrÉ ;tçR*+¬8ÂÃp£L& Hܱf<ÆÌ{·¥@é;¸
+Pû¸¹8iÀÀf>ýLliùNcuûU:ÎÐKÇ)ÁDAåP¨&¹§èºÔªC«6Lû$ÌÜ®9Z² ·c#u'¼}
ã¶;*']ÙÔy{§~ÄVãu§v^&ÍͬYÔS5¿Êg
ºi¦Å®ú«à?>oÿ¼Öä]W´õñ¢«ÊºxÞ´g³6¿+Ú¥õÚÙUoßþBg¿{VOÏîn.¾GôõÝ˦>i˺+ë˽=~Z\õòÄèåfR9©øy|ñ¡t£isQ¨§íb~¥~Éëü²hÕq;
ÛçLæUU^¶ù쪸çMSU³NR Æ[ѯiýó*ïÔ¶õ¼AÞp6õÀ6ßæÕ'Ïèl>ùäz«×<k¼ì¯ã£üâ뼺Vg¶¼¸¨ÍüÚ#`ëE}½´Ú°¸¼¢³ÛIó~í9ì¿V'|TQOÊO,¦jZuÖµÍõù¨å=ÏÓb¼«öqè
+Þ¾0nxàs $ô@ÃùOÿÿÔÛLý}7÷h#úÄzøÐÕæ+\ÌØeØòÅø§Ðø8¿øµv-Ð*êÃâñ"=$߯}N´ºùJ.dÅ£T8|í»{éóLMùÛV«WußSeÇÊÿ#lÇËüáÔxÀÇhkFxÙ
+M#CGñµ!Z³$þ¶áX¥íõ¨|ã·quKÂ)²ÎIokÕ½ò³fZº
+mZÇYõè$Ìd&uwU1ª5Ü9¨zW_ÂBȸñYy3«
+?«Õñ}¤E¿ Xý/u=êíUoïðåøã>_~Qÿú·VS¾=åuo§£ñIÃÔïñ{Í£f°é
+¸ÆÂ!|gióø¼ìªO§·¶ó;ãÍÉè½TOÓ7Ímñw'¯¾ö£¾¬7ͬ,x0t3`´]®67åo>nrhÛtà¿wGÅe[óMS§ù´ÌÅBã§æ¼
ÏóI×p#I:luî¤Z¬ÀS?£ÝpÚë-§½ÞxZ[¼¯À¯o7
+þú(xö"W÷°Äm÷1°4ùY¼cg³|¾gwmïîA})ÀöLoÊiwµò>ϦÅñmÑVùÇ÷õ°E¬¢HÏÝY+^çm²`Ý°Õé
+w®,Øêï"¼ó¾µòÑC|d7òýþä£ÿs>úÊÔ»ÍÿT¶øø´*êép÷?Vò
+Û4}4~öb² ¶ôm3Á¢³«¢½(:u~7û-çz:cÑÊô¤î,eõ#{½!Ïïõ1§#ßÓþ´º÷Ù|¢¯Ù9mW
+o'MNbLP;Gå|Våwò-úûñÅS󣺷kkL]а» Xo.fu®AMÕ´åo=C,ñO^yâsk¦óîf xw¢ÆMªfrý±Ës¯fórZ©+ {´6-?Jõ]¶xkõ%Yÿý*Ûm¢_Ðÿ@·4û¡=ìÆ3ÒH±=¶zfbeSÏSTJL)Ä+yoKå
+qF"ì,ä³Ü
+zÂ~ôÎqÂ`
+¥Þ¹q]p·%<øÐýмÌHFJñÿÁìÚoN'WgòàåΣñ¿;:¥9GQ@o&ÈçæJqÅf9ó@h'u
+ÑUÚ?þ:°³ÍgWÃñØÐFpýËGø}ú}ü8¿æÍ'íz0íÄÿû§ç4ôCË$Ãië4ú5ßí÷Èפ´\·eC
+/ÑuS©§çV9iËÐÙU¾e£«
+ß5â
+Ò
+ý°:ík8
ÓÛ)zIÂI¸ýVÊË7©N¼IoQo|'Çj
+CݹÓ!æ|iøõÜØAÅæ(zøM|
+dIdlÚ®0iIF
:ÓHÇB®9Ë
+(ÌfY"±'ìïô½^3
+=Ùú7zös2ª5ÕUu[6Ô`<½Æ«Bmqâ¶Nm5¦Þ(-ï/ÁÏÅý}C!V_\*noFo·7TK)kEªR\j "W§o
+¥-sWVj(5»ÊPå¨
+MRWQ%¹R)dªGmhQ5h¡Ú ªgöåjC·£ýÐÐÞQ n/Qjo¡ÆQDÔÐcmDûGm(eÎn_ÓûkÁH·bé¸VdFþtÍ8¸ðzîeI<|â W3dÅs|y˶6ÓHc7:SÇ¥Ö2]7u"ªë¨ÊJÇÌÏeÿ]|ÈúMH&¹O})Ñ¿èCs÷Jy÷¦³'a¹/«ÍÙ»ánDÌÿ
+endstream
+endobj
+110 0 obj 12089
+endobj
+111 0 obj<</Length 110 0 R/Filter[/FlateDecode]>>stream
+HìWënÛ8ÞÈ;p»LmÉò-íî±4¦©`w2)ºE at K´Ì5¬óc})QeÇQZ·
+Ú4+Ïç;B#9gQ&ØEü5ÒôÛNcÀgOB?£¼Ø©
+¦h£RÇÔ[hìû|LÐ'Á»È^®åôËÀ!gxFyï¨dÔ8 ¤<Äb^ ÆCâqáÍz¯CªÅôìÍ2<9K$ I+Ý4_b¦) TÄF®hâºU´Hû^î×XÈ;yÇà9}ôîà«ø3êè
+§Rìà|sðÚkãòÛ%Â5rsb%zÓ%Oä)Æ ×DTÌ<±Í]´)Z%ÆRí õvǪ[²ê6$·¾Oè
+´µI]Ìáåwxø¤ÔBoÐòz1Ôr>G&è%ÚAµÜv¦4ø?brxM·¾ÿ 8 Cx}ÅøÍJåÐh}Å[Sÿ¢jÅ&h£ÆI(QmÌBíf«îäųDǪw÷GØÛ]ÏÝîB2[{-Ó¶ÓUùí)â¤6ðÈZJûÈyT1}Fà}~ÇhýES)
ów¸¼Áûült¿©Ù[ÉÞP*¶¨jI¬åÌT¬Ä~BåaTËÇ«Y-ör§qø_â%ÊÍк;×!¿ ³¡¬ÀÒ9pßÙÍmìçצ4 ¢«J#½«!ïOÙu[ÙY¶
+OY*å{²ºL»
+ÌJÔ6X3¬¡a Ç¿oûao_iküI}©·çùöuèä-lG)Y9¶eNQ³Ã
+-Øýt~Ô´M%··sôÇ«_eu8O®íÀ#åTåã
+8Ä>MâûË÷¬NÑ\ð@àhJ½Ç°:m㾤må&áÂP£>ãX®´xWðTXÓ_Я¹H¥6ëvëeµL³ùìI.*^o°-wôǤ¶úzýPìö³¿|LkóNà0p1[)KÎAØ®-JA¹Z=ò%¦%ÆÙøJë4ã×äøÒ«ÔsCµ|JTÙGhj+#F4t9
+åÒP#}>£·:ANSK,Éå !RµÛ½v¯NýÌa1ö0Gò¦²-«ÄsðHÉÍ:UÀ¸jí|µóµÖ0Êëï^øÂVhK½Ô
+Ý^»õ#·Â¶W¤§ïÈ·ê£Ö»ÎÝc¿ù4ôþW»é¥¶ðÐO¨¼£ã7(~"ë;|ýøßïh'0q>8c8 á;ãÛOàªõÅÓ¶úµÚònû.Ö;½
+©Ò.|vÖD¼º
+Ä<1Öº-ñ+åË6
¸rµi}Nú:ïùNáÛËܪ7·?Ë÷LxØïaV×þCh¶)XdP³½Y±3{éo?
+qX´~¶aQ·Ú=¼£^ËyÚFÂã /¾ÿHè|Åð-ãè}¯oZÃxÆA'Tñ3~ÍÕ UhNZºeÛ=ôzyÂÚYU¨JÛZ.ýºÛo9NÇJô¤t·¯yËTí¯¹@ðÐO¨¼Ãñ
+[]"ªîÖVv
+Qíû|L7.f+sÐ!ö¦kQ¯ \
+órÇ¥Ñt±óÂXùßA!ÁÀñkr|éÊ8vA=7ÔË0
+xDIJÍ
+]NC¹,8Òç³YVÏØ\bI.H Hj¦S·ºN·Ä§N
¡sc3pö{Å\a¹Dx¤äfÒ0=Ï®[%¥ó={
·Î F<y±øþûìÕ:}ûú¨8aòc<Gt±<õ*y§ööaöfÇé¿ílw#dÁ_öOö.C_H}\¬(mE¹<ã¡+@Áóç)¹OàJ¹PU¸Ú w¬-«¿Ú!pc¸**ÞªñÎ
+Õõ
+±ÔþRI
+D[û@>#ÚFò
+ pN¶Sòø)©ÞìÂÞkfG±Îb`gzoázÙÉ)x\ýÔR.Ñs$S´HÇI lÏÂÏýÎl¾'ñ̦ã转©Ò9ÍQ©sZÊc«©ØBSpîRoaöÜó,ú^¶e¨ÿí®âqAÔ
+,F×nf;ÓÓlîMq±Éë:).
+È¢ÓÆHÝ
+6>¢¨(¬T8P\ÐHmôKÚÈTí&°Â¶WÑȲ2ò;,*iQ¥VRJÊÛHRØÐè/°RÑáehQaÚñ}#ªÔÞ%B2RIͺöñ1xRP
+¦¨6|¤søαÙp@¸9jX~Kw¢²H¡¹¤UÀë^éK
+EÎAvdõ"îfðjXcW2ê
+´~_Kª 7Ñø[ÖËAy»9OÃnYaÅN³±¶åè
+[gq»^¦qäâ¾1µne
3:¡
+诬ÿ Í{ühJ¨O¦}ªÃ7Ù¼8ÙV5ôxÈ6
+(Æð
+ç¡©`4ÎLBH 4"Íÿð#¼3lðß~üºýEÊþ*lö÷W×" ñ½«í/|
öBÆð³ýã0^ö~üêþ¾Áñ¶´w>«
øëþ¦r½ÿ÷xÏs`Å É91zxq¾gÞo1þ²@ÙòÖ!Û6("±¾?½sùEÃÛfÄ>ïØÞÊ[n7÷~âú«%JïÀGß7
+z:â¿lúÑê]%g9¼í#Çgª
+/È-óþ¯TÁjÁ.?A*s×ËûëQÿÿ¢ýÅDæ"R>ù`çÖäTvù±ÓÅwo8<Dû7¦]Qú£³ßu9ÇGG;ÆæÁÅæfÝÍh4vPê{ÔØ-w28>öwUæ|ÖB
+/ÉÒ|VvÃnhÿ»CNàMDHCCú
+Ûka1Àÿåv;ÕwããÅt*T_nÁLF§SÁÚÉôDùÈ|MæúÏl×Fa®%´ßݹwƯgrE9ÅÒÙIo¸côªî»¢ö{¬a»GnëzW`CâóꨯûSÛûaÿ·{aØJGFÜ òÉ«Ë^Ñõ:1%¢®°ýÎ0qàõql`áXÈ"î3+(ï9"/¹5TÝwT(ì9Éx£ãÝbWp½Î »;úå+uºÎ& fMÔÿ»ë&¼éY¾ ¿&¦¯ô½UwO[XíyOH¥&Ífóé¢ÓkÍ}æ´¾¤ô\þ:÷Ä[F]#«1shIà³¾8{m îÿÿV¸¬MwÜûë¯zyÿ~÷dØÕh·;ÿC ü(ÌËf¦éÉ
硳ôQE]b¾ð LlÂ
+fh¢6ÝΡ,ãeÔ¤½õp<>ç ¬ÌB` ßÈC*ÛÊ:+E2¾ØE®ñè]>L9 £ÈØ^#¬,]ûÝ(̵ÄWÿ®£Òô[u°·@%Qð1¶O C
+ÑE[o\²¹"zÝa1,å?Ó¢Â
+Ñ2÷XÅ°70pbaî×S]21Ê 2ðÔêoÑ
ÔF»ìé7}F%(2<ÀsXAÔ:,döèíf'!?&5xWs¼DØtI6¥Goµz7¹axèy´DNycõ÷wòX.S%ôy¸ ÁL ÛæÛ_ÖÔ_W9¿tv6=
hÀíÅJæÆZ C篣ÖøJ½gNØ'l@ÅÂÇ̪UÇß]}*Ç¢.ÎÈâç[OÎÞZÏ|úÚäÞ
+4IKOßÛ<Ú3>Ý^]¢lÊ@s}`þ;Qjâ
+>ÁØú
+òT-Ûü¦Éé|^mP³Í##º8áymÇ^pE¬Ù*R}â.âöLôp)¡{JóxJÛ¾¥FÛ³/40ëO®Öµ®ì`BK¾Âò6pF=ÐVr¦Y§ß0Z©¢$
+è
+ûÎP1_(Ä}½Tq¿qúP¨ Ï¥Xõð¤Äy7¶ÒLáyoOÜfÍóbìõ´A6´hwø$+Ï.£Qê__RÕA:=Éè]êß»'Yeuø,«£Ôêi!<®è¨EnAUÂȨOºô4ìg8èNq»Í?ÃTOO5¹CßiwðL»YuÚ«ik»³
+ù>`ÿÎN<pbÒªcU©ÄºP\ͧ@KJj)e)X@ÒArÚ¿êÒ¬XÓr:$p¶³óõ²ùf;B
+;+ðH©ø»
îjx[vígµ½l!V»óÌ
+0HáGGG#oÜmà««B¿fج]\À·Â÷JΤPÆÎJùäñÞ¨¾P êDû×Â<åóæ>LÆ."Cô¾
+ø6"¬F£ÃíLÏ5P6¦k]®Qu`Äýáv¸z-hEã9à¹Ú]§@È ê
+8NV0nÚ[PûS
+oWQ×!KnVÑb0©¢Ø`¡H>¬9½
+ï!VwZ,
0y5è/´´h#do,#Ëm
+¤ÁhÜH8 KF9¹·«c[ëÁÿCM¶¿¶
+Óòl,r[ìÜ:-v± &IJÚ"Ð1¬£PÑ®ð·°e_¦+Þn)Õ
+¡vÛN¡Å8z°B \µÊB .ãµµ
+¾sJ5föÿìä:D³êrKÁu7Å>
+·¼ïk¾=s[3ø{½v
+ç¢BI³`ÔóB©öÚö8 DMX7¾¡loÍ»µD
.Ô
Zø£Z[+.´àP\Òô
+û
+Á¿7µñe6FÐ<Ú8P
+nüii
+jcmRc!t0 ¦´£ýëAMl)¾V-té&¸¯x+Ðm±· :¨I
+ªöØS¬¥$,ui9eWÂ
+@)ì*-)XªuV¼±òõd'5hªÂC¤Ö®wµ&õ:ô#vKK©dÕ35ö²]H=ÞÕ(@>ÉÏÒTØÑ®½®ô42h¶(R øGrÙª'5àÜf(ecT©ÎXïgó«Ò¦±ð±sMªÓÉüN
+ú|ÐÀZQÂþD'¤/ÍÚÍÉR<I/û%«ÄòÙUַΣ}A')1(&'4?7Aåh¨áÑ?줺}UxT¨íZÉ×{}ÔeT'cél¤ÉfÒÀ:åjÚ¤eÊ@Ê»iBì=I¯+ÐÜ*`}ëbu±,b m¶ÙH·G´÷¬ga}y»_¾îίҾ«{íîWéàظLCÝZXÜâqúÖ³VS,¥¾töUÖb1¨Y6æ"¥g-IñA%¬8ª4ù*ÅRÙR%µU¥/CH¢[p¾ûæ&O`òp½ÎÀqËÜepØq$7õ¿"+ïçÜP8ñ?@z×>A2]qùþ\w mgæØO9åôü,ßÀËoiAJ¦ØÌ`Ö§Í\¤mv/V¢úë>ãÌn¦V4oBt»23ÛfFµÀÁ¯6Ǭ=n ôp-ÒãÂÌtË,"ì颯ÆYvìIrh.»P?Úþ¢óMÖ
+¾:ªz_ý7eú^%ZÖÓ;Ì£¦z
+ó|ðF õB¶p<ÅbᦾÏôVºäXæ!ðÑ3æàgzÈC,6^`;ãÜ·a¢Cüù<"òõ¸MÓûcFÖsÄË µi mÁ[!v9v[.=Ï
}
Ü,¤Ýø\V:ÔÙÀqkqößÊØéNIüÞCÈضzw3r°ªW·{÷Îáíî{çLÐ¥[ì÷Pn/?æ°Ú
ÙbzsÎô?Ö«t/m%?A"@HXM@ÙHË"
+¢R(¨W´¬¾ÿIBÈ2C&/üzoÓ3gû/Á¥· è\wHØ1é׸A0ÚÀ¿d~âÜ»®!9½z_ïDpWÂ//aÄÂñ!
+ÌaǾÃÅ£y+ýè2
+Üq®âêQ0}ÖPGµ÷@cn×¹:3ÕrÈ^}\§þû×
ÿöC{ EÂóxå·P~
+¤äõ#tTANsawü,;Ã~.ÃSZsóÜ Nvà¾Üín&+ùÈËUwLÇÆý
+>úv](ý*ͦZÕ®rp²Aoþ 2ÊÈ# U.í¤ÀÇce7C¥ùÏGÛ±Â4À6±
+¤KxAÜ@àzŤ1Ûý¬FSç¢r¨ úÇhÑj¤=¯X»<:ó¡'Au©ÐÓÔúà¬(æ0-?k_÷oøü]MÓ7ƳL9À§Ã²ÈéKO#eVWëlÇ>«PP.¶c1¿7ãÓÉÀÌ,rPSidib %()Äg¦D1zR6´Ù§×÷hIIwZRA¨?ñЩ`á:&8%·)ÀéÛ:íHÀ£½uzµ¸àÈYâ¤Ç°->-b+ôNÍ(2áÊLRÚB1fO¶¸[ìfha6b
+ïÊ×Z||rMÍq,¼7®_%v«¤_è8tÛ×µ÷tsM1¢,oª¥l3ðqx{ÞàçìTruR7¾«õSõ`v
¥ÅV**Ü1gÉ&¤òDÞ2lB¶³N^fm[kQvóÂ2»þüp.eA¾õv.8Ëú¹4:_æ.itPkÁË÷qÛeC*¢ '/3[Gи¡E÷ð·Ð46§[I1ØfâZpßJ¨ÈX¾LT³µÈ ùB¸/mpBØD!É© ¾b/c_² áikÞ·¦rr¹^m¥u¨°FL¿I at p«}jFÊ$v9t¬Åv¬ÌxÓ±dùþ®íIÇ©GÃËñÂ-ÃL¥Ñ)©Ø׺_¹:ñ°) Òó®qL NÿÜ>9ñÊ1%Ê!©ãÕFÔ'©Ö<¢:\º[*Å=N}û#¬a3wA¶Ý¸{Z¿òBõé
+ø±xoÓ1o ÅçÝÛÞÕ`õMÌ:Ü
+ëÅwÎîc
+ÊG1w¶
+3ø`f¡DËô×r2oIfµèÄ8ç)à ´½é#.¶ªÈ8´e~±[>ü
+¾¡¾8õ)å~ã59jÓÎÛå»Yº¾´Pb«N_[xº)åÐ!EήùeÔ@zq«í:C`ÖJ<F¤¹àåa.I&vÌi§äè
+½@÷1ø
m»þö¦m OWÙ
+!\ý¨£ê£7üëEÜCxÔK§7ÍR´W¹ø¼P_5b->vï`MÕ¨5¸Jú
ó³Í5~,n[ÌYê¾Çc:fáed§î c"NÌ5·T"b(Sh;OFDÄ[k<¦¹²íÆÝÓËåvC¾_ñsv*¹2X°QC·z·y!oÃ|e½q^gÀÅ~.ÃXù× #Õc0Î[+1a/´å±äo[ÀQü´[&Ü6åIAèzA)`7®î{þÝ-#ô¼kx /`yRðìXc²µ4+jU»f-ö]y´Í̪ÍmÙËÍéÒ~¥Tª½§kQ7ÕR¶ø0Lÿ² äV:9L-£µej
+áêk ïß{OïþÝ$Î LÔUE6ç8òyÑ:Y¾¿k+m*vþ1SIÌE°î÷Êrþ¤>¨û
+aû?wf JTئ7;&Ú^ÌEÔFPÆ#
+Tp²NERwá¤/ËòÔ71 °åÉ{ÑYd"[NÁwõ¶i®OkG²vÃ,˪¾>Á#eÊ |S_ï²]ïç²Ú¦Ë2Åèá,eï\[dÙ0ý¡·²<Ù§Õ.£#Ðt%j1.C³QýJZE(tc|7£=Öýwé©î2h[æoà Z8þFʹ®}WãÆ®îdË/¦*TdtDâs\\W?ê§oÞ jN×+øü¿;¨ÍAuðØî2ÚÓcËâͼÈúg;^¨>½ñÞ Z§#cÞXP-Nªl©éiYGÖRÎW¢uLÔÃâj1îÄâ®yr#ÌÔb;ÅlGiÛèÄÞÖD¸ÕEÊ$^|ðG˱Åæäå[2}Á®yÜiWãFú1ó¸'¤×¤Û;Ý^N&ÛgìÝ*=rÀ>¹l¡ê&+½Õõ´ú¿
+^|Ax4Àü»öüRnÕ¹åý+Rì¥Þi®HÓÑ÷>
+Lá-ËÄ&tXÎtTì=ÐÑû>ÌïhnúêÀïjtL\ño}}ÏöZ~ôVé&ûÚÛ{-)WËT }-Ä º"CÐ1?gêýÓô:¿|b+â¿RüEð«²_?ëb\a_ì2Mÿ`ý9>ú±_^ú¹ìaª'¾+åjãö;9|yõÎͽ¥cÄ«÷0S Wߥü¤µ¤üt/ôL1ð/Ôò3¿ÿkO "
Öä/ÁwìÍ,þv¬ÅÿU¯½¶2íÖ"
+þ3쯤?ÛmÅ·¯
+»Ägå®ò¯®ì¹º4òäße:W#[¤|£Ë¶ôøwó
+1J=¦nี;6Üêû]«¬6j$!®<þ<Kî2ôlIâ¯>NOI¯Ë
cr)p%ýÏz.%ÎDÑ'ÈC°$Á Ê23ù q
+ãÀRè áý¿î$&éNwÒ`þÄ*µn{îv_¼V~GÂ>³pÔÒg$pÃÓ:©Hx¥Ò*tp]Üç}¡öZ¿cáNUûMRë¿¥AÎÐÚ`Ãøû×ßcO9ñôòr« ä"Lí»)Ü´'Þ£ÛBCòÕG
+y´8ºÜóQÀXeiªðYÛIùíóƼøl¡hÂ루Û3缿nÕ?ÃÙÀþ8j×~ÕܾW;7F·íçÝ¿vmÍß
+cM4
+%R×Ð!¬IàêÛAÀZÞ;\j¶K^<Wõ9·,iOWÎéVºÏpdºb2ÇïX
+ÍøY³³v½ùAÔÉ\@ÆÒðQfÙ]<Ígu²°8!Õ`úäàð$CÕ LÕ@¨Çö6@àhÍ@ SH'×ÖÁ^,0 Ë|ý¡Üþ
+ØF{ì´®µÓÈmx¼b1¡ÛÆbY
x´ÐÅüÙT.ø?V}utcbµ. s-°ZáxÀ"â?¤Öx @ZêÿRY=¤43²S"cr¥scÊQp^(¦Q°÷!-5i¶y»g
do~*(V äB³;ó$Q!ÙêZýðD»
+ÚtÆ^ÙÇPpשïßIá TôB¦wü`.ì;²-«xT[=Z.É8¦ÂP!F3ªÎT5ß¹*cG0æ&lW#dî2%²ôCöuÄ8y·^æø6E:ÂJݦr457ñ»t+WÚíh1rõÑ«íö£G ̾û6Öÿ`¸I¬[Äl¬xOè£ê,½LªA{="nsãyÚ±Ø]c=ëÛÉàr;ô²³Ø¤.óTÜu)§ã®K».¥ûFIhB-RMë¥|»vª1êV|Ri+
+[»[r|¼cx82/Æ>4¹qZl1PÉñT2q*Ù,J³@Él¾L¥w¡æwa?ä?ÙÌ%åm¤Ñ"ÈØpiOùú`îÎæwmäêrtò39K]TjQýdÊôõ*3ÞVfcµJaLÎé106L
+ñ0ösöz®C4º¿´Þ?§ÊÖMvG4\ YzlGØöqö!¨g5Ã&ª_[PóduxSÁïU}Úfý©ÿJdóOI½1?o]_×Áæ/·ÒÏgÒT«ìtXÛËEb;?mþ%¢î>ë\\×ãw
g¦v_Ö°ÇhïÉäY.©óóIKÖ$\HWõ˸ªa8 ù¿P
+i6~î3ô'Ç#ð7ö,ÊÅÜq= é:SÔwßã.º[pàµÑI)1H ÐñÑG<À|ý¡Üf%ÐÎïO}¸Úã®=ä\;`gPóÈñáêe¹MÐ
+BSÁ!Ôïª_HW2i¬V§«oecOUâe
@õI¦üóßvp¶S¢3HµÀgfdÚ5¤Ò¹
±ò: ÛÑZºH°U-5i¶y»· qüN
+8&P/¹äpw<Hï:eä÷uü8ijäGL£ú¨EÅã®VW.¦?DÐy^íܵ޶O]»êöS£é@WQ!¯J'Eb$èø¢Ê´Òíücù<ÏåÁmI÷y âÓ¶®GFt>Ô#úY}¹_É°mÁÚ4Æâbp#¼B6¹Ï³L¤q=°ÔøÞÓæB5g8·HA=í2æ¯`"xn©åêIázl9[Ø@©ª§Ñ
>è9û¿
+endstream
+endobj
+112 0 obj 18262
+endobj
+113 0 obj<</Length 112 0 R/Filter[/FlateDecode]>>stream
+H¬Wk[ª\ýü/à/ fÞÒPS+ïéÉÓÅÒzóT*öÿßÙ@¸7lË/<çôà0³fÍ5éȼZ)庩B;WáKI\H<|j|±¨°è6h¸{X¶r'J¨Òþ6ï_=-ù¢Úz¿*Ù·óäù_Lû©ÒõC1_î ÏBýeÇ´ãPaÁ^×Iñ}¾Ã?µP{H-àóËy¡¸ð1¬âd϶ â S̪ý¼Ä±b¤/Æâÿùrô:¤¬z8=3=¬þ³ÜÃJÓÇû¸^AzU#kaqWAí¡6þ:·|ªÃÒD!äx¶ÞæHÌ!N¨=e6¨ÅHo¶diл<l¡ ^$ÃËÜÔÇE~Ç&´K½fH~Ø
¼Îõ1,®B\}Â,°Â]µÁ¡
+:Û&Ýß´1$>úµ£Ý2âÉ°ØøgÞµJ;c-u3=.p©öÆwbZðJÝUUÉtâ;ðv?p±EjÁcÂÊãuøµJê~/sÃÖÒ7S.³
+t?Y.øxÝ<Ã:D¬Änhg
+×+¥Ó;OLjóÐi¾}ݺ_ýêÛÕ¶É 9±Ð"8ë7 at _LÆ@Ý磨úÃÙ°N6ÓÍ>RK&&õãÁgâïW¹5µOz"Ü
+H9&ĦNh*ñíó¥\ûò(°ñHÇ@½~-)À|XÔrþ-ÔÑâ8ûeð)ÌDïè8`éÄÀ
+ftö»ÙU7l6Ñÿ,C-b|òg¦zY'«n0élb7äç³¢ Ç/r¬ÓT=ü`)ÖRai( e-µ(ãy[2¾XẦ+Cßö»6ZØdBÔ¡/N²> u
+Q7¾bäôçÍßO2ûl°ZºÓ2 }Z²ÝÇÓ±Cߪ¿®a¡BÙÅP*Ã
+C½ÇKÜZ6}òÖ2䢥&Ã:óæ8ki-?z/±£·»_¨ïæðµLt°ãåÖ2a]·Å¡k`³»5´÷a1c-߯ku?¤RKʵÉÝ®]÷ËtÝc®¤:pÑN5ÇþÁ¼xÛ§¨ ÷«£ïýá±÷þýzï×ORaS&É¿¹`zÛl¤É
+ÄRPÚ=:ÓaíÉMí2ñ;Ì S\¯À~×ÙçvGQ½oÄÄöÔ÷µåáHª¼Ör£±,³5ÿÛ¦ ø¨êQÜÉÞ©¥#Ö2ÑD實ÒKDdr:'*1×SqGzPì[Zs¯ÞIuVï½DU§n%vB}ñ«SÏ1,MBkn¿p¬eö"5¢ßÈ$?¶;ûÞ` k«Ûìµî`·¶
++#»Åf5´ªR¥ýª<z«÷ëqJG±
+'<R«Ök)¼ä¶6}ö6¹P&Ñóª..(^¤ÆâÓ2W¥Î¶Wú{³loâßkçZï1ìêë!¥xÞË4_öVïìñµx«Ïqºo4_fXxs¤¨zNèÞf-ïyG©K¨åÏÓrÆ"þnÖø³Núu¥åxm3ésÙñE_ÖdomØX\ËÔRÃ×fþ[-|ïÕʬ_Ö§§ðß°O:ýó/¹Z¼AúÍ
+æ(iROúÀ´DÙÒÃ%Çòï\rÈÁZÒKû|Ëô×Ø-½Ôè"9èÅ{BOμé ÕÏ^Ï»´kN_ÉÁì§7¥I/sÕR`'(W·ê69ø
+©µþdþÞ»¶%91pr'Ïzr½Bñ
+zx¤Éð¤¿QǾÂgñM*2âܵ´G_±V\
O<î£ É»Å}Txç¤|4jéeXs%Ãó\}4³@û'ý±èþ[Qì¾ÂcÒµXº¿}ymb^©ûϳª*NÜjª_+ã+Îe{ìªÛÑÔâÞOóíëÔýê'wqµÙ|2Æ×ɾïêZÜB
a-eØo?¯!\`Ü(ªcØÓ[Ù1Æ%·{Â-FNo½pÇÎn5
gn$Ûâ}1'.¢ËÉõ]nÀc+ü{Áär÷=!*KÙO¡ö8wN
+`35ÖdXJ¹êØÎÞ]Mî8hò(²pÕäÆGÁYÛ}x¨
+xÁ®×ÇíESI8H!âÀC{>3ÕpmeÕ;%éÏ7;¼´Ýg:/á1mÅ8³/ÄHGèáÉ{Êë$<8C×·ÏÁ;Ejóª;Ö-¥Øþ®tO
+ÒLôSbhÜpúä϶Km3³u'ÄfØczÜ«V©$C¸éE[Ìß®ÃüNËßL¯QËU̶Ç5fÛñЮG}¡ Ŷrn`¦a¿ç.Ù¤gÑÔF<z/´`X[éðëõÖ.¶±3=.p©öÆoÏX¿È±N?Rõð·Âö˪¿Â1#ªDº,£m(5¬¶ z=}YS-Ìuß»r?â×o"îÇËzö·ûR'±ØºTwñ0<ÇÈ}yõ»/Yÿ±û¥Cº/¸øèü¯ãÅgQÚgU¾M¶æ ücRuLáàCÆp°·d(¡Üì}0é0º0g¹àã\wßPZÍ0p¦3Û'®A¤ë¢ökW¿)£±±xa=¸
åá«Ýt:ߤî¯K^ªúZC(GSG¬D%¶C2,M,b%±Ñ<
+b#/wÄô#É¡ÔîqWR'ELIߪÄö¤F¦´éË&)*]¡Hé~E5û8[½/õ/5©¶«c#â|7O?ñ÷«Ü8¼Rcs·ÍÝ_íÅ~º1xrÂëo¢òWSé×UµØÆa¿Ó[zJÏ99/×ìo=DtïÕv^XX°Yî:x®lËÅ]|oÉÒ wùën|÷â5þK㢥ٻ,hû+ÌË¡»S0&q»äJAy} êìh*ÌÂÔq4Ãg@Y35&hèyCbÑ
+ÑÁ2®ï]Xè¢Ä~dêCTÁtj3º]ïI.è·ñòd϶¿wM1û`ã"dÚô^Oúó¦MÇ|}^ÂcÚB_ÆoCXj¹öåQË.÷N ÔKQã£F*
+ÔrªÍohrLéÖ«t-qe>A"@Â$!*Ú AeTPÔ
+zµmßÿV%@¦ªTøïtz×ÚÓZkg°@.~@ÓT`àô0.P§uâ,?
+¬TôÄp¹>ìd¡ÝLö¤½«É×ïa0ÍÕy±u×:ë^>ukl¥þ¬']!Ãnx4ÉZA³"[×·ÏìÌ4¼c"^b8:y]òY3¸»»Õ+DèzåuÀU,z¬Ñkb°Ò¶]õ8ü¶ÑB¬r«ø>
+ªl[7Ö¡f£xâÈôe/þc¡fÇÑûß=äÅݶØÉéÓ¿Ñf"o²n
+½ËÖ²ýÆ/6ìµÝ,ÓVQL²ÐîTÙøhë>&gËÐKs1YrQßUd.Êðzav
+0ÿ®â>öýÒ¿ÇÒ:©ïÙ1*jÃ7GzÙî cHo7ùahÆ]T¬üUÝ3?C÷wÊHsàîêáüX3ewñY
+4æ´²Ìp»UÁÊòÃÁ²¼cT u\YÎMYûBº²f½2åp>"ËIÞJIGÁ/{-ß,3äåÎeË%.Ë l[c8Ë`K_Y¶w¿¡bKJYàVD}¬zIÄTÇ
+¸hÇáJâ7õvn7A_G×ýþ±uÿuAûõÓllÃ?ãLÍ?
ÈÙæâ##G1º Ý÷ T<CÑñM°ñ¶ÉQ\¯`ú»oW!ÈÚÓWóû+õÍt¹?*絬ióòe¾úÚ%UY
<1G.Í&ñ2¥</U¯a°SHu&*ñT´Qýä=@÷Ëýï
+x¹ÛV¢v¢rû¤¢ÀÁëÕÖÚпLñ¯e
+¾ÈÓ®¿ËÂx%óÈ´ ÛcÉàwäÒÞÄ)t@ybÞ2ãYKþÿÅ
+Ò>f£MãQCxÒ
+À
+Un´Aæì߬ó§ô¿UÆî)ñØ» Ý¥®Àß3b©ó]T\;iÕÂêzA¼+Mã÷ꨩÉÿ[wM©³î¥a¨[]ãÀ+à¿e±äàüÌíawÂÃ`®-
+
kþ¸sã6
+<dA¹
+Ó¦%*j
+ï[LKð4~ÓDÅÈ'mÅd3 : >¼ÁöÔtNÞ$'NßT7+ àÖJ? ,¦©ÀÃyIu¢¸wV'Ox¼9«V¦g¢ÛÛÑ_Áíï8=§é9y{
+¬"ÔUeZµ¯êjoÆï
Útnxl]$Çp;x6n°Ú2£ÀMÚ×DèoºþõÊ´§33v®ËoÔîðë]L²ÐîTÙøh¾õÞÒÁpÞ<çÈDìÄÈ6ñéaê9tÑ¿s+*Á´EDŹl#®q/ϺU,긩¶ºª{z0nÆð}ù»/ùбûçÛÜÂt¿à®ô°oEÞUqò5¹Ç6á|ê0ÁXgváí¾wïRî\߶tNØG)§
È#Í-æ§h3¬¿BåÜ¥ÌJ¹«"é[FÒðFê¥tþÂ
+ér U>Ïk3YÓæåË|-ôµ-ÌGM|l¡öj32(÷ß×¾úî~1G`u
?v,nüGÍQï,H°'ÄQ×e¢bϦbÍpS±w¤ñÇ©8½öôEa8ÏUA^e¶Ô^iîO˦ûõe*u¤:¹mºëz¥SÆ$¤3©©¥&ìPy{~k#;ô,)Âéß>ÌÃé_Ed:fwú1i¬ q
+ÉJ¥a~¼/&?g\~á¹Î,mú¦kÇ!H8C¶N óÉ+Þé^Z7Î+énÈ+Óvaéq>éa.Ü}TÕÁÌ÷.Ö0¬óu
+rAðÎ!t|ôÅ¥Ô<¥- ÁüÄQ'+ïnjgSHÓA´¢L(ÿ]Á¢ºÛäb
+L2WÀ7X
+Äíe¾²û¤²EÝÜ$ÃQîhlÏüþÏzu.&«Á'ð!lhÄDÁÞkb%vÆ÷¿±Ä÷Ë?EÜsvwvföèú~qo-°ÞÄ£ÿw¹~Ûï_°YV_3"×y¬aì4Þ)ƾ[b÷dÅÖáD h7~Ã6·jV
ÎX:³ûgúÒøß$8r?É ¯=E?oQfK÷ÉÉ×Ñîß"ÞÊOâ2$PÃo½ÀعÛ!¦»¥ÇÊX\,©Bo)^+4ðôjCþb6Ûûp>"°¥é{¾ýõVëÏrÛòèw9h9÷¯® »¶úÛÑn0¸õkI=G)
+oÆ;Ì»¹½7¹ñpâØ1Zr_&Zý3ì\¯¢Izfì8ÆFÞ PÒ¸/B%ÂV÷õ ~ÇÂIB\ëͲç½K[Ï¥í{½Øsê =BÄh:Ð̱ú)<Ý Ø`ÆC÷;izKä÷E¥èÍû{N¶4ÄXÂ-©¢·îHYÔ[Ðùìsm»Óêì?nûÂ^sòý7k÷Ø^;6>«²ÆýØyC
+×w_¶Þí÷dkúus<Lºmg²uê3®ß;o¶·°½~uó¼ã3"XîÁl¤ÏLùì:Õbbýø
/GåUÁÝá/%©<71fKå'¤0Ô:(h|éÐÆ1ëäOWýü8O^¸ÙðûåqñxCÝÃ8ì;ÑUÇèiÙÍî¶8ÈíÑã2p|ö1©®A0Ö´deÎø¿â6«'ÃLC1Í
À)D
A|2Øò»dHIbrÕ)×ÝoíB9#2V÷õø4`pÎ8óEµVín$ãh^lá2®AáÜ+9à*ËzjbCªyª9«MaµMGuüÂ^«ÈËØ*ÞÚNSØF}¨Æl¨Ô,¤PG{¥¥Íºö3¸Kn{Óè´Gèq³ûwáL²^«6 ÜóÆ@ÁµrP9#De,¯³¢iLÛEÙüFváQ·Dá¥"8|U\Û ½÷,@ìèÜ]ç6]Ìú mÞ÷#Åy¾¿y[lÕÛÚ}©lF2xi[ü5âÇ^¶\_ ¢´çñâ,®iÁÝòÎ9ÈǵÉ3èÊ8¬^?ĸ`Û7ËäSºVe£ N_NM9 Ç%aCtZZÒ±Ñü¢3H~ìáÕ$cé.8å
|ïVxè¤*xÑBôó3.ì¢4ãB~m×ÛÒx(÷FþñÝ}[6¼Úç/HÝàHn5¥&¾,öD·³èÿÙ_NÞÉ]ÓÍ}Ë{®)
+j¢§µAEdWÃõeôµ?>³!7*ÿå\ñ ùüh6|Ôy]£? OÙ^<c¼ ÿ|lhyóäVaÈù¾(äQrW}"¼
ß$eIôBgAÁëìúµJX")Óó¡?`>k»¡qzÖåv½Íí@ +qð^TÙJÍ3à%ÌE ã¥úB½ê`,êýÜÚ®¥ÀI^©ã¼BtÜi%1+¥gä;¯«¡#>¢è
+·Ä*
+=E©N8]ý0d6Ü*Röè_£L4ðUîq%
+jäâR¸w2Ó´àE ¸³
+ÚMìN~$¶ßx.×n4_"CHuP ¼óýåluîÏØ×%É+ýfÄeÓ%ÎBÐdkºW¶}Olæg"î=ÉÄv]%ÛÂhñ±¥ =áVÔmÔk³5¾î೫zÝÎîoM No\ #6ꪺ±
+1b3q_sÊ-sMäïEö"Éf©µ²ug<ÉÐR£xslNz¾ ü|6ÛÜÒ÷IÀ)CÍ®3éOZYÓVnW7N-m/¢¼RIÎA¸R!¨·s¿½Ï:4hÛu8¯å9n
+9¼äyi«F.f(><=~õxÚÜ}Aÿä
+y®1t_Ö~ªóIJ3Ú|ì:ܵeZ?|uÎEL&
+æÁ¡ï0Ûù¶:Þ¶Ö-ùØHÃgÏ\@J/úK4x
+-ØrîqrãXæó¨v®þ¢ÏAÀPK s®Ï(1ô:÷R
+ã°þ¨¼ÇAÁâ?Ö«s=U%>aAE£{£Ú»±Eì5¨Èûß=Fc49÷ÜûÇ/a`v]k¯Ýöê?IJõ«g43Ê%©RÚg¸-Ѩ
+3-8ðöô
+¯H
+$¡"±Ù~*Ü6l
+S4õ¦
+óªör×ÊZk*r:ÆqÂjÉ^ûÝîݪ5°"ÌVjåj)¥ï¶ÿoË`
vä§BNÙÈè¦$ÒGð¢Ð óáj$>5Ü4a6¼´mùéñµÈyb±¨ôNö
+@ÎÕSùº¿à
Ñù¥^kqÒMH2ÃOwk¶Á7ç8O@ðJ,Ìʽ|_|ßO×Ð×Ëe¢PG pmñ8O¬ìÙ6BEÿÂ|©ë-I §<F"Ù
+·ÝäêÆ3Ôó ½¥hÉíï±Q¸;ZæzfoaîÏ,(³EÐÍ_&"JÍeà{
+y|;:3§÷ý¦ô½M&ößè.ºøàªðº
+ÛëM¶Ñ\¡û^<ÅÚN¬2lúÀ
+ÉHÖ¶¾}H¨`
+p%/ÝÉSòäpÊñBSõ¡Çªu¯ö\Ew8©ÒcTÛÖÈ'CHþ¾ÌþvÔÖî§pDõÍÙúi¯³n'qÛÝÔÂí*)[lu²k4ÃT.×± s·!^T!Kæ%ª~Rt!ºc»kV,KÎlÀÇ
+_Þ»
=R°k~Í鯱yÖ×ÀÊD$#N´
+<}lÿ[@¡_ÀW|Q}²-ØÞ'à5gftsƺÕo°ªëbSTë ´Éb÷$7UäÕ³u~á*ñ, /ùbqzàdîòÙäÐu|yi¾ÜTª¨úq¢ káåú[åK%4¶8ãæ8&wCjOC_üØÓ
+/;C¦@ï/*Ì*Zè«÷: §ÎÌLmK\ßà©pJHï[¯n(ÄÙ·ÓµáÙÒpz Ô¸.F»·Úic2øC*ØfØAÝiþN« yö Sµ<5/îYjÞÔ²þT3ñ³£TÎDøí«ìN1d9Pa¿Ý%|+Y)R>~ôáï
+ÎcöAP}çp¼@óxSá61Ú 0
# 1K%$ªSÈo%øü±£§oLóTv»
+£åçî½Y±`Ei.§\*ÐM^Ýøì<+*iæÙHÙêÂüç+úËѱÀ"Õñts§áEëËÁ|~½¸àÝAõËsZ-Iú¥
è^»¢¿GvÅ»jz#Úŵ´N.còpy¿µGÖGsôÒ/sèÝÞ#º]AÐ0Á·ÂGø_ÝÉ:>ôU»nGþz;Q.ÍöWUú\pß`åªY`ÚÉ'¶Â{°å,(ù,l§Çë/F(PJ~·wtãâ pnc+ÁsúÀ&¾loa<Ù¬ c9Ú©¸çÎ@e°8|·¥Äß"í2ù»HObµâXTuýY¤A«0Mx+²WýÓHÍþ\oû®p]³áNUlbùÌ--u2ô"aƾ¬í/k®rR´³X6Æð¦ie÷v=-ÌÄZ¼n÷í`Ð%_Mhô8Zì'AIDÕ
+ÝeµëcÙÅÊ»úBâ'5þx¼uà~à@Ã|Ïí!lªZ ú@мÛeåmË[×>êÐT>ýK|i´º0ä;wFÃÈþ
+îÙ¦ÛøzU5*-±ÂäaÒ¤æÎw£QúTqV¤Gÿ¶ÒÌ¢ú(©Ì@a{Vß9¦Û.»0{Þ:ǶZßp©êõA)=h¯GNùaM+=siø³K&gâ©S¤3Õ\úcRSùê òß8õ.æÿÑ)j¦mÈçñtôûOé7ìgÞözÿËoÝ!
+ó°Oà:Z<
«fÉd¹GpE
+ö¬>\;yÿáZiý#¼
+ð¥1ØéøÐqEÉ|)Ý3æ)å;lÓÛ¥["áïìC}}ÇÞB¯$±Ð¥(r*Ä·ÙH¯ÒíT&úy%à
+AI_®k|~¶%T3刺E¦$XMgÙÚÝ¡AìMg÷qxr¹·´Õ²#Ðeõ¿á¾öÝñbï0¹|åÿ½|Æ0û.¦=O*ä1ñØ'ænÓ=´Thèn\<n=ÄäÊ9t¡$p- ¥ûÓµä¥+ÿÌ@6|ÒjÞEp¶~ë¼L¨t ÕCöÍßöâÚ®Ýõ¥ìç¦ÐgÒ¤NɾéíS½VßÍÕÃ9x×O«òRà¾Ë>Ùø8ØU<aôýë~6èÅ!î3ôç²O=½nJìü£4ÒÜêÁ£.bê'´æ¡íÐÿmºSÝ5¡¿/õå^¢ý§
«}ÿ¨æIóãJEç=IPQ«×G®l¤ûÀdB>äÍâÔÉiÕ¹Â"ïÉ ÿæÌøbÕ9¨A;¼mð¸,Än
¯jR$ õíñá"ì¤g³c(9rkT6mM.?æìhé@v!J@£mÍæU¡Mé©Hßt))]Tö&Åw0<?!1üÈREy¬îõ¥¯ÔURLc`9F¸½±ÆñÞ!GsæPn{âTñéSî¼ÍOº13fª}¿EäkHúßrv¹²£ñ;vüÂ
+©^Ò[·ôy{_0¾Þ&çK ¢T³¯á¹Îf¶£ø|üäxÍ¥a¦3]\gWñùë÷Æ:¤'Ï:'6ÏB"leµïó`z±Å¤²¤Â¥áé£Ìë³Öï<ÛLõñT±+ ?n§ê0JIÄäó0˺³Æç]Q¤a]0õç}H©@(hÃCñIÍÌ`BlÁ|a±ÒþÚ5¸¥íüYTõÿ!mPûnGË ©åÖ¢ ÊÈÞBkÄÀ¼F²&Üų5éåç7©È¸T¨êt#ÓÖL-×÷äÁOGüÙ±óÈh¥Ûr%NAÉ5¢Bd*þâ¼;?=çV
+Ëö°ÝÕ
+ºô±xje¥õsxFJ r²³åÊH#ëñ¯-·Ùd·7;ÊoÁÃÜéοtU]U|B§BO7H8×f+GpHp¯aó4kã_úoPÖ'._{ ÿÃÃVÓ"WæiðÎæ<~dsÓÐÈN×ÖZfÒ[ØÖþ]´©"{þMÚ¤îûÛ
+#ÉeSäâv`±-ñðIõãÄUëËð'ÙtÉ,
+
+ùóQ÷ß/èË*gQåÒ{Çâ£ïëj¢róßγýó!I ÚÚy}Ê5N)ñþ½n40tR[o+G<ñuVöpPÛÐC³Öº1² -ÃìS\á~¦@!5r¦Çõ¢ÿª_ÉÄì17å
+><uX´ÿví
+réndÔ8ÀeùÊ9L\Å<²=ÚWZgq~ÙcåCÊÛÝS¯tÛi[åJ-ÈC¬w¹¤üÐöîUü»³LÂÌÓIûÁöÅ{j·h(ö>æ×%9g¥tñ¶Àjõ©<ÕW¶[\"²!Àj¶eoµ´íW-úÝ(=ÚD@ä´ï9ÚaI$ñÚjíÌôeeq°U*My¶Ã
b:òbCSN°ÛµÛ*><c¾ãf±Ø9CKdK
+0áªP0v>AÊÝææôi*nÌòÓ>©ÊÀ3Á97æßÃÊßhäºßkNÍEÂ×£Ô±ÇgIw¹Ñýöx|z;&õeȱ¿2õ&o.öl(}3öÒbî>IçÒA®pãô£n·DàX (-5ÒI0ßÁT¹_>|çædz ¨æª?ÚNF}å"±ëåmÐJV¡[n
+¥lGE¸ØË9GCC*µXÔò£ZÊM=²Ûä Ò×5´e«|'ÝfUt ½"ýÀBk<Ëïúg¯Ñ¾¥#f!ô¸ª zMçí®r]×$8ñ²nÚýµÂ®H$Ú
+éÈúmc)^ºKIñ+Çö@½Oõ¶AÈ¿?æH©<M¥£ô®&¬O¥`
+
+Ë
ËÕ÷¸8¦jB$Í(ÁaõÉ´õY¬íOMíáÚ/³øynkH*W0ÃcÛ/o&>Ë!0%Kóae$_P/©ëR²£%)ÉÈgÏñ¹ÈFs ?ªNW@ebaÖÆÖ©3a³.w1\ñ§@´©_¼¦y«?^q[®Nñàa) mãå¶ÎêomL` V\
+ૺìb3Ë
+×/Bm òßx¶
+ ´if3ï(:P<Ç7 K|¸Ió¾Nfê~uÐ2·Qb¤ú3«1»tã×òbx+Ggß¹9¿+¸öRyH¹áôÉPü
+$ùÔ¢øÆYærçx(ðvQE¨±ØÈ^ÛóZϧÔA ¼·6ìGy $ÅÃ!ê.pD ô=ü AÝKL {yî]Ì-QÜK
+AmO^ìðb°_ÖF-
+wMÉñ9ý·x®è¨/¡yÙÿ(¯î¡ÒþoHÊ=Áêr±SH
+3ÉyL%ÆêÎ|Ó|6ÂL*WPO{!+îRÞòlkW
+Ùq{HÅ#©ð
++úÍîé·2Ä6îò
+ÑÚHè k}zl˯ÕÌÁÇ 2-o_ÄÞ$Ë<®1& ϵ+U«¬ÿ»©ØÜÁ&[èg~jæ2ͤøMpÎÂZ*Å/ÆàÊ/ 4qh
+u]p¡ëqlð+}tË1ÐÖ &D2ÆáÇñwimîåèpÌÜ·ÂþJØÉmê`B®37äuõ¡&M<DØUk}ðñ5F|ºROíiYÕXxj° la®áñG©¬^®,Ä]íÒ-/IäJ&Á%ßÑýg¾Y£T¾m.ÁÙ¡rh¡³ÒÊÇitÑ Y£j¤øªêª'¤Frl©¹
d/ÊÊ#vìYJ Üoß.§5òËóW)qÜ~FñήAßÒ¹×meÌHHì6¿½Èex³ YóÜB
+Y`½?â®üÃ][s0HøóÒãcJËpuöae=?vÃéþyÕÁaõäÇö\#GÁ0õ¢|¨0
&±MGãܨ!æ^_êª6âkNËc¯[
+fÙ¿û|ÝXÏíDÇk{«%×Â%"I³JåËΧo¼ÜW¹|ÆaÐîk.Û9µý6Ñeoéf
+ÅÕ=< y°¨¨òr¸EW¦ÄÍHßeþñ9 ñBÊ%
«CX7Û2öËÞgg*ÿlðqölã!L
+ ?¤I¹m6ü=:JÂß@·
+µtwS+ån¿ôàNªüØì"JÈ×,Ýô05öIýOÛë)(Æ2»Ê¬&´©°E2péEäbÂV¹\7rû<¾?æç!4÷ÄÑÃPßÛ¯
+}¨oqÆTóu¥B}~W
+YôVß_Td½¥Q(ûkfg[ÐÈ
ìËjm¿
]ó¨&í$ÑÆH-´
MÕÔ@ÖQãµú")Ï?lÕìm'íDMãXbñ dupg
+mÚÚm/²Cç}yÅ*§óQ¾Ú ¼ÊY6?Ùã1qò¹l#éÄü]PkÉåhý« zQqÖ¡^À#ÿºpõ~ɲÜG|/õñovì/±'ïµcÑÁYþC{u®§
+-Ñ'ÈC¨Á`GT,X
+½ª?_;/liJá[ú
+HQµ1ï¬A,¸0ÚÞÐ#y,\å¥[ÜßìuÀÞ*iRb~}o«a&QÝÀ|ájõã£NOªA½Úl'\>àµË2¹P¥;{DaèõCäõÊ5&÷1Ü8Ïêï§OØO¾Üë©ÝÎä,=}¯mK_ï<%dMø§K{$pçé÷ìnpÊWÅP¼¬3ïÌunôÉyx¿êòÁgHR°'ÃQ÷~Þç;;È~*Eê¯tZpô H«6l-Ìe
ä¶ÅÀúFa#~:(Óeq¼Ìo°û¯aÍ]rJ8EVÚéÜvÿâã¹rgÌUfÎXC_Apµº¹äÂ"Úñb| _
+ÉF@4DCÇÒ+¯¦âcALnÙ\f³w¹å(¦k!Hµ3/²üé¬Úq6OT%ÐAõìüÓi"³²ÁgC;+)ÐT@s|Ñ=׿ûÑlv!E6ï*̸FVÓÂ.ù¦^n!* AW x½ù(&d²ôÿé ³
+yùÆüXhoáÂ3íÌ\ûüQþüÔçL×=5²ÿÈ(>{nÍìKnzø(»õ<awäC¬¸÷ϲõ>²ÿÍÎÍô¿ `ÿÇ@¹+)Øú>jù?ÕÈjJ)ù_®µâieúëaþíÜ205ãR4Å^+¬®]ý÷
ìߢ½mØ_iW&iªh}Ø°òî§v¥ß\Ë"'Ü]zõEþ|-Ò/¡é`;°Í¾íÄJemÌfÔâ\¢
+!÷9¼1tq3E2rÙo´/Â
+IvCÄTâacüwÙos]aL>]ø¥¦yÙÝ¡6Øî;z;?g³3k»5.¡+N~VTÙ÷]é:½<¼Þ³=Âq¼@Nò/;0nWÅÄ,{2G=8{%'hîæs¡3t©t"u¿ Ï'£9çma@½¸T¶9uØÃÁ_¼.ùç¡øÔ0flãȨ¨LjG$]Hbáô¦2ô14<E?&IÙ4[Éõùl÷%]L¹ù¹Ú·a«?E¸Í{ã$öâÂ'Ï@ÄJ_ù5pC ³ÑÑâîoôÜXâ-û:OhÀ¶ZXÉþÅëE_Q*ØUP§ã¸¹Êx
+Ï&ÇxÕ9S<{ºlÓÀÛÁJù(|ëð¹ùHÎE³¡[ú\8²w%ðÕ,7¾ÂHôiC*ø]ÐÃ{±³ç
D;@2Îë3Z%å
+oïß
+{O¤Löûõ%ªOlc¥jü*ð<æMæÓ¼iºèvy=7rõÖÉ* F¹=xúÎ<Ö}ç6F
+ æùåÛaÃrõ0k k/£qmª7=vd£Ò~á=WèóÂmÈícä_Ä쪸à¶þÇ\ðLpBÅ_fFìáµæF
Ý,Öa:ÄÓñy0"y©ä;FËí¶|Ñ5xcNçCvVÊl?3ôaW¾³±£Ô¹
+ÿòú9Ú¨î4w½læìø@ÖASåG02Ú¯¶íD úüCÄF1Ô¨#N4d¼Ä;F0\&ÉËùöS
+dÖ<ÅèêÝ-U»ºv7]º[7º?qåfíû¶¢Ù
mÖg¼²VNnËóç*íPöç§5`Ë=h`
JâË@wJädÕ6¥àzÖ95êÒ¹f"<â> >m"ݼxÂ×÷§ªWZk¶Ó¦
·òY?òàÀÇ3;* s-«ïÎ2·Éd½½
+`¯ft^:¢Q¼;=VÔ¯¢,
+é\Ò
+Öæ^*hüy¤Æéuø«pQ¹}4Â_âÙÆpd¬Ç¦y¢îú4ÅCÒ´{¬`>m¨Óþ?4}â:öþrkó-Õ:DÿÙÞ6_Ö{¦{AÖÌÇm¬^zøh°3òw
+lîáa°ÑeVñ¿heJ®¿e,Òðk}êÜØf!ÒçVlgÍûG¸NzÍ Q
+1uXìÔ¨TO(û·TSm6-EÇÊ+¿<úuzÿ²ÐäRuià§Ëo¼¼ì]Ð
Tl©ÆÜà¢`
+:4|AB^ßXg;ëi*°Ôó|³f êËýZ>:¡M·EÈdÙ*¶e°«ë¿U
+ö^ègoʱæ$ÅÊû÷©Ãä]AîjßBÃ{vØ
+t,6£=È3;Äí/Þ±Ï(¹x¸è]"A¬ Q¡!SkÉäb,XÔwô¬¤ù¡ACâ¹ÿÕ¨i:èÿè¨ì°u¯ág.
+Ni{x»bxN(WÏ©bµ¥,/ÉÚ2üÁmòKxyÓ+*£º{àÑÎ6b¤Ì©2*+l´c`8§Èªúaê«VÄ25%Ãþ2|Z3%J¥
+È£åcüÃ]yàRÜZìp×]á·¤mÿ~l×&þò£ ¦¦¯'äÕqEà}¸pðØ_g Ú ¿1Z¸®.B¼äø8Y1
+6Þ+µÀ#æÊbþ`
+endstream
+endobj
+114 0 obj<</Type/ExtGState/SA true/OP false/op false/OPM 1/ca 1.0/CA 1.0/BM/Normal/SMask/None/AIS false>>
+endobj
+115 0 obj<</Type/Font/Encoding/Identity-H/BaseFont/LUTZAP+Arial-Black/Subtype/Type0/DescendantFonts 116 0 R/ToUnicode 127 0 R>>
+endobj
+116 0 obj[117 0 R]
+endobj
+117 0 obj<</W[39[778]41[667]53[778]]/Type/Font/BaseFont/LUTZAP+Arial-Black/Subtype/CIDFontType2/CIDSystemInfo 118 0 R/FontDescriptor 119 0 R/DW 1000>>
+endobj
+118 0 obj<</Ordering(Identity)/Registry(Adobe)/Supplement 0>>
+endobj
+119 0 obj<</Type/FontDescriptor/FontFile2 123 0 R/FontBBox[-194 -218 1006 913]/FontName/LUTZAP+Arial-Black/Flags 4/StemV 200/CapHeight 716/XHeight 519/Ascent 913/Descent -218/ItalicAngle 0>>
+endobj
+120 0 obj 226
+endobj
+121 0 obj<</Length 120 0 R/Filter/FlateDecode>>stream
+HMj1
O ;èÑH¶e¡tiȦYÕûRLÓ?f,JsúhÒÐ6!6öCOÝýÓ×ó»ÕÀ8¿Ùïì[ÚL
+d²PÒ¤9EI®5ü
+.æfø¼Âúw,jU"ýQܲy
nuíÖæ¸~úuÞÒu7¡dÅÏ¡ç1jd,9£Ò>o4Â
+ûNù+·õ+_ê^
+
+endstream
+endobj
+122 0 obj 6513
+endobj
+123 0 obj<</Length 122 0 R/Filter/FlateDecode/Length1 13756>>stream
+HÜW{xUÿÝ$
+-m¦@Û@dhÓÒRVd%KJâ&È#i¥
+¦÷M¯î.«ôB_ªX ¾X6·Jp$Ý1
+ëEºYS*Ïm¶ÚgÉ?¥bþd÷=¯Ãõ
+~"y?j{jÚÛ³ê~äaqtdÛ1KѪ¹xÇ8SG»vçÈ»FÂ
+á§ndo0Q»«!5ù(ñýcî$Çzi®Lct*p¸ºW©5qÚNñ uúCj®ÝÒÒ3Ý{dÞ ÌbϬì{õ¾ÉÛ'/¿oA¿þÞ\xË [ÿá¶!Ö?µÙ·þ§wÜy×ÈâQ£Ç½ûÏN׸{ÆO8ÉíAi×7yjù´Êé33gÍ®3w^õü{ÜwÿÂÚExð¡<òh°nécË?¾â'zzåªÕÏ<ûçáÅ5k×½´~Ã_ÿöò+7m~õµ×¥ú7¶l}sÛöoýýíwv6½ûÞûìÚ½çÃö~üɾý~Ïþü/üãèW_o¦Sª¸$êC54¸ÖaVÍàöpqÇT!CÈÌB¶/Í&³)ÛÌ5æd³ÞaÎ4[ÌÃÌn³/kïYîÈÀò3¹?»ÉÏÁ ¤ ÝAñsËùIoóã%?ìD"'ÈÈÄÈ¢-
+\ÖÍ/FÓüPóJ¢êfýñòãóC+CëBu¡GPUhfhR(/ôn§z§Râ¢vUm#È1-:n;ÐmÆKxá<VâÆ2Ôáy¼õÐ!ñ
+µ^3ÙQúƺ²I£Ð¡5é·W*ýýÿãW>%aXÝtXÛõW5U6Òh/|§Tþ{¥'þrEä$½}hþå©ïÕèuðKä2ú_Ó´1ú½ÆlÛÍVÅøfP8Y[NláÌl\Â&L ¾$².rÛÈ÷¸ÊÑ|ʼrÑn6VÏb«eOl"[ΰ§(è;¶à8ó£âícCØM4bwà-dÁÉ(&¬¼Ïc*BÈjÊ
+XK£Ýma«Y6ÙnÐMh`ÇØen¶Yo8 ¿¾ùy}rs,7õîucvVOÑlnÈìÑÝÖkTC^Ø9!¾6N£VñCÒlÎúô8Ñd2¹rcrÆÕ²ÄgéÎ$¤M¢¾_Û,ã5«º_#÷¸FÎlï*9D[ì¹o%$*AÃwR¨Ø"»·\´OÒm^·V:ArÍSöó]om¾øÜÔÇ'@Í
+Ô3ÇmLa8}P=mbnb¸,»LåµÎMXDÈb¸bi4-mo-kåQI§Ä¦JV:¡>§)¸´AR·¥³WôzÆSê<´ÇzðYvH»Ln¿ ©È¹ÒI#ØýBPÓa÷»©hUzRw²9R
+vIon§·×|cäö´©,KiÍ(g{«Iî].Wm8hÉ!9³¥£¤ååæDÏK×].Ç,÷Èû´Á:²×¥Ê©v¿\kç÷&v¯h÷z¼C£lµDP2Ω²Wä©bÈ¢R,î")ï£6yo¢§È|ÆÓÂÞjä'P&Híij¡Üù
+,+Tðcr1ZU|e¤ÎÒBð$æOºZãi4YºYèpQpÝAOC¤¶Ttb°~Ä`ÀÅNZÕi¬3J¥.Içö³A~ÑÎ!FÞÕ*· T¶ãPè(Ë(qJÔX§ËHyrÊ| ñÑQÆa·ÊK#_a[zl1ÖdZ×`E) Rí(gTPj|Ö<ÕÃ-[Z-]ÆÊÚVKÛr·HQ¶*ÿåu´ÙmO²®«Áî$±®ÿÃìÚ%ÍÉ9Wã¼ÌÅ[èÇ>Xêf!¾%HE8(J:¤¶9]NO·\¾1âQãÑE¿!Tò8 ¯Þ¤Ï2éM*ü*ðM¿ZÕ¸AÕ$kÐ}¬þ'½oÑ
+½éI+À'¯HL¹QÃRïÓ¤kfpÉÓ§q¼ÓôLÀÓCN÷Í7
+2YJTN§ML߯à66 ¶ø·vÏ
5æ½Sùôüð$¶kƲê¢Õº±bïåó+ÿÃ~ÕÇÈUUñóæswg)³»¥»Û
+}ÀRÑíî¶Ý`;Ð
+j#MD
+)Ñ>ý¨DI*ú4&&1Qÿ PÿÐ6Âîú;ç7oÚ] !Fã¼wïÞsÏ×=ç¼7ïÌÎ|÷â+#¥Þºîñï½ýüâíù´·Òë×P$ E'ã»ãÅa÷ªøõñ×ã×ãV<Þa±°Ê¡HËtk[+5³¾hx®»îtGjè;«§ï`ã:ô:ùÂL.´n泩è³?£ÙßÍ<^Ç®·rU®ßèJvuv~±#¹¸£#ì¢ÄÒãÔì¹·ç=ê;n
;:©óþ.+èèêíîè°ÄV :}½Óx]ù©â´~½±étª3:ì?ºèÈOÔêUý#vñ%ÝXÝ]W|rE¿Õk
+¯Y+ì·Nþþë?<¿íjçæ+z÷'?Kì[}í/-¿u õ¹Ã¯F_ÜöÊWZ{y÷²eöì-ÖË·,½læÛáüâÖ«¶ÞhþTzOôÝ÷~tÿ
ëÏÒ2ó-ð_>Ãã÷oÿÆô¬7»¡¥=¾ ý{Ëk3÷óVk-í?§þïlLAèY¥gèphUtÒg '¿
+¥h¾* ÝNa}yA2¦ÈÿèIÞÚú4hht®oÕ}!ã èP!ò'Ú}wîýXB G at iÐÉè«ô0ö=Cþ§ð|9c_£ãÀî
+¡!;ï±Fg=Èê®nÐ'+Ó<ÞÂû¹¾4WöG&Î?Ð% u kô|zÄ'Í>wY××0fõyty8W9_8D×(}G¶sZò
+9ñ--}+mÜ}6t$ÜOâøÃôÅÿÖk/®¯.|Y¡ÿ_ÿÍK:úYü¿Ó|$(FC´¹v_´
+ß¼º6ôX£ï¿·³ÿnHаûÃt ½®8¿*R;½§8F +ª8N+i0ní§Ø¢VkZqøÅaàã#ÀjäµZO(?§8Ù*+íÖ£ÀIë'c2ÿà¸Ì¿)¸EðiÁa°f[¨¡â-
+Q¦õá/+çUÅQê ¿©8ù³ãôóHBq¼¡¸6FÃÛ"D7+NÐxÛÅío{Rñ×*^D·/1ºÚدîàûÒmä´Ëü>Á§'Ùî¢à.àÎî»/c/9
+^"óOî½&¶ËçÁÏo/üà>áGðà÷·Í=qÁ"¿§q»_.Xìïéß¾ktûÞíoÜ|skî!'kgÓµ´)W¦ªn._³Gò½³\*צ*½©\«é[.Ù«S©Õ¸]5ho(láöìªã9Õ 'ɪ.<e»¶kÕtÖ)¦«íòø¿8w3y»²Çʹ^Í©Â"·dgj-ñ@½êzY7ÃüÞ ¨°7Ò{\½®6äØM¶®6M:Uu®¾J¦dú?a4µÅI×êÕ®²½).åÆ9|@»¨LU*R
+ at c4e]@ ½
+ÖöR
+c²¸W)~,|*ü£ðK _?G7K9P
+t²d/ï²)IÂNæÊcÖ¦ÆXcM5¬WdfèÈ=-æÕµ]EÝ
+Ù<9bádöæ;xr
«,øâÝAÌiücÙ8.üͳ´)c²-ÊÖØebäÊ®Ìp¬ÌóªxX/ß6mÄ=õxY°ôº<W°wàÿwÚçí]kT,ô~®%Ã8{ û#ÒómTt¶¥ÝS´óÛÁÁ=RCFò.µ®,Qño·xPW"²÷ºÔï|7®IÃóM׸Hp´&ÖÉiðùJ+ßÅF̪Oê×ä
+ãR£jk+ÏË_'q.K<møU¨4ζø}»YaK=9û¼ðÛºoªqö®ÖlEÏÊß<\eÇ8²ýu=w÷<«LäkQGrĽF»£¼eetûóæjf©7¯DÅÅhdgt¦.lÊæ²tªÄ³ ùïHu/?#»'T§«~òeq©ÔÎQu5¶eõÃþº<5êIfĺ
3b\NÐ
+`Oy°4F^µëèÙسÆRS¼²¢9'³fsÝ2Oçnò£;×íFÚHðí1¤ aK3ê½+'VÔÉÄì<·÷ýítè.=¢ØÂY9¡µhºM¡aEQ¼õk4عÞeTéJurö¬tèNÌûqå¬Î4ü¬¶åüïÈzqµF'0'ζJ¯i©4Þ~¦z¶R«/:$ûÕ,7#«AíYVEêcªá
¯÷OÊzZ"QU\=Úi]é/Æb_zE2¨(}.è·yñ®BWã/Ïäò5(\ÍqPúRy©£P¨$'äÈGû¥NÊë¨tæþøZ{%ûæÏì×Zãs
+ôìB§ÁahòñMå¾÷e¿Àöâκï͸vÊì]@mB#SÞg7æM¸V4òA¦~´7Yp>~GöO{LV§À_oèÌ4ºÉêà-ÖÜ-M÷ú¨©aW{¦§u)N£+rÅÞªÚ¸Â'´5ÞFFgíC"ãwÏÉFr´îFfW¥Ô´ªÇ5+_1§IJPËóõeõ
+ÈgLº£±zLO¦¤8!»W¼:7R¦'ÏÏù/® é.ÜcÆ´¥¥¿8Mïó½åèïÃLÐk§æ
£_Í_W¦§Å¢DÖÕ/ræ¶æb©©Ãùz¹dõßEð&iþâ_Ùà®6åmðîþðH±uEïçUùyrþå4¿Aý.pÁ[J¬KÄY~¾á±«9»ý/WÿàÒ?i¯òà&ª0þÛ$TÒ&=ÒtÃ}¤åP*GZ)¥)%6H»%i
+V±©Xk9DD¼ÆQ
ïûVt¼OpFg¼ÇûÿÁoß¾MÓ´ÀàùínÞ¾÷í~ßûߧ{\>t2züã"¦{ßÓ¹Zy$ÎÐdÎe^1ì¦&îAÉ.9Â8®ÊIü¼53n´ìêÔ»¯ËÓbRâ< w½ÔåõÝGÍZ=µÉìÇúùl8¯í±rß7ô®ú½¿Hâ,¶ª.¡ò¿ÊÜ1EÄÐÓÓuýD?ÆR:O¡ßK3¨û*¢±"L¥.l.q>×1YÄl¬gú(ã9W@ê'YðñÕͼkyCôtñqëæ:ªª?ô½=TÕÉÅÎhFÑÂìëç^egÙ=Ê5[È¢¥
?p¿ªãß×luMóXëÅ\Fg7UÏ*¦gWéh¨¢<nÙFµ#,fߪyn}/>³>K!Îëü¬¢éÕ\å6ç·2çÁësCÏâ^ñ+mÅxh¬9Êd«c-ñøf«0â3mMÐÄy+ÉjúYÁÇ-YËVùy69Ãø!Þ Éܽ³E-ë0\,£æè¸*ÊrØø^q%1ûè³W=÷UÕ¾*yÚزÄóHO&ó³Ô¼"äMÌ+|L®+Ît¦ä½î}õ÷q
+¼M´s|ÌÓFó8ÖÞÐB?ùØãÿw
+§¿0î÷û{öMÒòWÏè>æóþȱÚðßT`*4.0Kçi½Þ Æʤ,dlBeeªöçÓxåLõ+N¼¦ÿ{Øq¸
+ýó«&@
+ÂTÚA°ÐΤÃÁÈ@& 6Øä"äÃäC1Ã1#1<fUÐqp÷M ]Hµª§S¨N¥ZLµt:f`&ÎÅy
Òp6õjs©/O]Ú
Ä.¦¼ª¿ÚåãêÜ*Wb E¦ØÝRÔ`ãRêW0ö]Ë"?À*l+MÈ
+¬&kDXô4_¥=j!k\u¸¡
+×b=®C;®ÇlÄ&ÜÜNlÆlÅ6Üí¸;p`ÀØ
Û#îÀ¸K0ánÜ{qîÇx»ñöàa<G±aìÇ<'pÐ
nÆx
+Oð,Ãóx/â%¼Wð*^Ãëxoâ-¼wð.à=¼ð!>ÂÇøâ3|/ð%¾Â×8cäMßâ;|OùóGüñ~ÅoøPÖýö÷!E(ñ±>ZhlËêêMó¢a9UnÂZ9,¥Ôý~¹É£áH´Q
+åpIAÁZ»s=¿ÙîÚóì¹û#²aKCL64Ú»Í(q:C²=;?$g;äPkÈsW5Ø«ZÃy+³ÔÇ`-?´9¶@0WªËr¸ºÊ»b]J×±®¢$Huí«óvÍùwèNÂvÂ6B'¡°°ÐNXOh#´Ö<-WúŽíq·b÷)q?Áª{6xÄmq!Ö-ܾ,KÜEع<CÜAؾ,CÜF8Ø>N<Ô:Nì¬2UÙâ&Âo¶ØNXOµÆÚmUb+aá÷¨×PëË/'x×dËÞ%baÖÁW&® xjè´P²ÞQdËj³cËb³N¶Y<¶ÔB[Ê$q¢
+gÛÆO°s§k5:}ÄHë°á鮡Ö1ÝïLËÉÍK³Ù³Ó2d¥YgX,iéÔ³YR-FÓ
+endstream
+endobj
+126 0 obj 244
+endobj
+127 0 obj<</Length 126 0 R/Filter/FlateDecode>>stream
+H\ÝjÃ0
ïýºl/Ó´ÝÃÈäb?,Û8¶Û(ÎEÞ~S:ÀÎ'$ëæ©ñ.|§`ZLÐ;o §0Aèpp^K°Î¤«Ê¿u̶Ëpl|DUüàÞhÝ£
+î
|#äü
+endstream
+endobj
+128 0 obj[/Indexed/DeviceRGB 255 130 0 R]
+endobj
+129 0 obj 428
+endobj
+130 0 obj<</Length 129 0 R/Filter[/ASCII85Decode/FlateDecode]>>stream
+8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0
+b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup`
+E1r!/,*0[*9.aFIR2&b-C#s<Xl5FH@[<=!#6V)uDBXnIr.F>oRZ7Dl%MLY\.?d>Mn
+6%Q2oYfNRF$$+ON<+]RUJmC0I<jlL.oXisZ;SYU[/7#<&37rclQKqeJe#,UF7Rgb1
+VNWFKf>nDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j<etJICj7e7nPMb=O6S7UOH<
+PO7r\I.Hu&e0d&E<.')fERr/l+*W,)q^D*ai5<uuLX.7g/>$XKrcYp0n+Xl_nU*O(
+l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~>
+endstream
+endobj
+131 0 obj 51
+endobj
+132 0 obj<</Length 131 0 R/Filter[/ASCII85Decode/FlateDecode]/Width 92/Height 13/BitsPerComponent 8/ColorSpace 128 0 R>>stream
+8;Xp,I2%W.E9HY[]@1J)p>*?)n'%VjfsGkq-lC_>+M[usrp2-~>
+endstream
+endobj
+133 0 obj<</Length 13074/Type/Metadata/Subtype/XML>>stream
+<?xpacket begin='' id='W5M0MpCehiHzreSzNTczkc9d'?>
+<?adobe-xap-filters esc="CRLF"?>
+<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='XMP toolkit 2.9.1-13, framework 1.6'>
+<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:iX='http://ns.adobe.com/iX/1.0/'>
+<rdf:Description rdf:about='uuid:476f87c0-2ead-11da-a959-00145104264a' xmlns:pdf='http://ns.adobe.com/pdf/1.3/' pdf:Producer='Adobe PDF library 6.66'></rdf:Description>
+<rdf:Description rdf:about='uuid:476f87c0-2ead-11da-a959-00145104264a' xmlns:xap='http://ns.adobe.com/xap/1.0/'
+ xmlns:xapGImg='http://ns.adobe.com/xap/1.0/g/img/' xap:CreateDate='2005-08-13T09:14:29-05:00' xap:ModifyDate='2005-09-26T11:47:52-05:00' xap:CreatorTool='Illustrator' xap:MetadataDate='2005-09-26T11:47:52-05:00'><xap:Thumbnails><rdf:Alt><rdf:li rdf:parseType='Resource'><xapGImg:format>JPEG</xapGImg:format><xapGImg:width>256</xapGImg:width><xapGImg:height>160</xapGImg:height><xapGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAoAEAAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW!
5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8AIc599SdirsVdirsVdirs
VdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsV
dirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVd
irsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdi
rsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdir
sVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirsVdirs
VdirsVdirsVdiqN0XSbjV9VtdMtmRJ7txHG0hIQE/wAxUMfwyUY8Rpqz5higZnlFnn/KhvN//LZp
/wDyMn/6o5lfkp94dN/oiwd0/kP+Kd/yobzf/wAtmn/8jJ/+qOP5KfeF/wBEWDun8h/xTv8AlQ3m
/wD5bNP/AORk/wD1Rx/JT7wv+iLB3T+Q/wCKd/yobzf/!
AMtmn/8AIyf/AKo4/kp94X/RFg7p/If8
Uo3P5G+dIVBjks7gk0KxyuCPc+oiDInRz
Hcyh7Q6c8+IfD9RLGtc8jea9DQyalp0kcA63CUli9qv
GWA+nKZ4ZR5h2Gn7QwZtoSF93I/akOVuY7FWdaH+T3mbWdJttUtbmyS3uk5xrK8ocCpHxBYmHbxz
JhpZSFinT6jtzDimYSErHu/Wj/8AlQ3m/wD5bNP/AORk/wD1Ryf5KfeGn/RFg7p/If8AFO/5UN5v
/wCWzT/+Rk//AFRx/JT7wv8Aoiwd0/kP+Kd/yobzf/y2af8A8jJ/+qOP5KfeF/0RYO6fyH/FIS8/
JPzxb19JLa7oK/uZgKnw/eiLfInRzHm2Y+39NLnxR94/VbENW0LWNInEGp2ctpIfsiVSAw8Vb7Lf
Qcx5QMeYdph1GPKLhISQGRbnYqyHyf5J1XzVcXEGnSwRPbIryG4Z1BDGgpwSTLcWEzNBwtdr4aYA
zBN939oZR/yobzf/AMtmn/8AIyf/AKo5f+Sn3h13+iLB3T+Q/wCKd/yobzf/AMtmn/8AIyf/AKo4
/kp94X/RFg7p/If8U7/lQ3m//ls0/wD5GT/9UcfyU+8L/oiwd0/kP+Kd/wAqG83/APLZp/8AyMn/
AOqOP5KfeF/0RYO6fyH/ABTv+VDeb/8Als0//kZP/wBUcfyU+8L/AKIsHdP5D/imK+b/ACZqnlW7
gtdQlglkuIzKht2dgAGK780TfbKMuIwNF2Oi10NTEygCK7/wUgypzXYq7FXYq7FXYq7FXYqyP8uv
+U40b/mJX+OW4PrHvcHtT/Fp/wBV9PZunzt2KuxV2KuxVp0R0ZHUMjAhlIqCD1BGKQaeBfm75Et9
Av4tS06P09MvmKmFR8MMwFeK+CsKlR2oc1Wqw8Bsci9r2L2ic0TCf1x+0PPMxXePpv8ALX/lBdG/
4wf8bNm40392Hz3tX/GZ+9k2XuvdirsVdiqG1LTNP1O0ezv7dL!
m2kHxxSCo+Y8COxG+CURIUWzFl
ljlxRNF8+fmT+Xs3la9W4ti0uj3TEW8jbtG/X0nPy+ye4+WanUYOA+T3HZXaY1EaO2Qc/PzYVmO7
Z6t+QH/HV1b/AIwR/wDEzmbofqLzftJ9EPeXtebJ5F2KuxV2KuxV4h+fv/He0z/mFP8AycOazW/U
Pc9h7N/3Uv636HluYb0TsVdirsVdirsVdirsVZH+XX/KcaN/zEr/ABy3B9Y97g9qf4tP+q+ns3T5
27FXzv8AmD5o8zWvnPVre11e9gt45qRwxXEqIo4jZVVgBmpzZZCZol7rszSYZaeBlCJNdwSKDzz5
ygkEia3fFh0DzySL/wAC5Zfwyrxp95c2XZ+nIrgj8g95/LPzZdeZfLQu7wL9dt5Wt7h1HEOVVWD0
Gwqrivvm002UzjZ5vF9raOOnzcMfpIsMsy91jC/zgto5vIOoOw+K3aCWMns3rKn/ABFzmPqxeMu2
7EmRqo+d/c+cs1D3j6b/AC1/5QXRv+MH/GzZuNN/dh897V/xmfvZNl7r2F/md501Tyrp1nc6fFBK
9xM0bi4V2AAXltwdMxtTmMAKdt2ToIamchMkUOn9hYBa/n35kWUG60+zli2qkQlibrv8TPIOntmK
NbLuDu5+zmGvTKQPwP6A9O8lefNI812sj2oaC8gp9Ys5CCyg9GUjZl9/vzNw5xMebz2v7OyaY+re
J5FkuXOvSrzToMGvaDeaXMBWeM+i5/YlG8b/AENTIZYcUSHJ0eoOHLGY6fd1fK0sUkUrxSLxkjYq
6nsQaEZo30gEEWHqf5Af8dXVv+MEf/EzmbofqLzntJ9EPeXtebJ5FD6lcva6ddXMYBeCGSRA3QlF
LCtKeGCZoEtmKIlMA9S8P/5Xz5v/AOWPT/8AkXP/ANVs1v52fcHsP9DuDvn8x/xLv+!
V8+b/+WPT/
APkXP/1Wx/Oz7gv+h3B3z+Y/4l3/ACvnzf8A8sen/wDIuf8A6rY/nZ9
wX/Q7g75/Mf8AEsV83+c9
U81XcF1qEUEUlvGYkFurqCCxbfm7775RlymZsux0WhhpomMCTff+AkGVOa7FXYq7FXYq7FXYq7FW
R/l1/wApxo3/ADEr/HLcH1j3uD2p/i0/6r6ezdPnbsVeF+ePy087an5s1K/sdO9a0uJecMnrQLyH
ECtGkVh9IzWZdPMyJAey7P7V0+PBGMpVIDuP6krsvyY8+XEnGa1hs1rT1Jp42Hz/AHRlP4ZAaTIe
jkZO3dNEbEy9wP6ae1eSfKkHlfQY9Mjk9aUsZrmalA8rgAkDsAFAHyzY4cXBGnktfrDqMpmdug9y
fZa4Tzn88dbhtPKyaWG/0jUZV+Dv6UJDs3/BhRmHrZ1Gu933s/pzLNx9Ij7Tt+t4Jmse0fTf5a/8
oLo3/GD/AI2bNxpv7sPnvav+Mz97Jsvde8s/P3/jiaX/AMxLf8mzmDruQej9m/7yX9X9LxHNc9ey
r8sNVl07zvpjI1EuZPqsq9mWb4QD8mofmMu08qmHXdr4Rk08r6C/k+l83L587FXzF+Y1itl541iB
RxU3BlAHT98ol/43zS541MvofZeTj00D5V8tmZfkB/x1dW/4wR/8TOZGh+ouq9pPoh7y9rzZPIoX
VYJZ9LvIIl5SywSJGtQKsyEAVO3XIzFxIbMMhGYJ5Ah88/8AKovzD/6tP/Txbf8AVXNV+Vyd33Pd
fy1pf5/2S/U7/lUX5h/9Wn/p4tv+quP5XJ3fcv8ALWl/n/ZL9SncflV5+t4JLibS+MUKNJI3r2xo
qipNBIT0GA6bIBdMo9saaRAEtz5S/UxLKHZOxV2KuxV2KuxV2KuxV2Ksj/Lr/lONG/5iV/jluD6x
73B7U/xaf9V9PZunzt2KuxV2KtO6IjO7BUUEsxNAAOpJxSBbEfMv5peU9EhcLdJqF6KhLS1Y!
P8Q2
o8gqiUPWpr7HMfJqYR8y7PSdkZ8x5cMe8/q6vAvM3mXUvMWrSalqDAyP8Mca7JHGPsog8BmryZDM
2XtdJpYYICEf7UqyDkvpv8tf+UF0b/jB/wAbNm40392Hz3tX/GZ+9k2XuveWfn7/AMcTS/8AmJb/
AJNnMHXcg9H7N/3kv6v6XiOa569NvKdR5q0anX69bUp1r6y5PH9Q97ja3+5n/Vl9z6rzePmzsVfO
P5wf+TB1L/Vt/wDkwmajVf3he97E/wAVj8fvLI/yA/46urf8YI/+JnLdD9RcD2k+iHvL2vNk8i7F
XYq7FUB5g/44Opf8ws3/ACbbIZfpPub9N/ex/rD73ybmjfS3Yq7FXYq7FXYq7FXYq7FWR/l1/wAp
xo3/ADEr/HLcH1j3uD2p/i0/6r6ezdPnbsVeI+bfzR846L5z1C0t7mOSxtpuMdpLFGV40BoWULJ/
w2a3JqZxmRez1+i7IwZdPGRHqI52f7PseqeUPNFn5l0OHU7ccGaqXEFamOVftLX6aj2zOxZRONvN
63SS0+QwPw8wnWWOIwX8wPyx0zXrKW606CO11pAXjkQBFmI/YkpQVPZv4Zi59MJCxzdz2b2tPDIR
mbx/d7v1PnuaGWGZ4ZkMcsTFJEYUKspoQR4g5qnuIyBFjksxS+m/y1/5QXRv+MH/ABs2bjTf3YfP
e1f8Zn72TZe695Z+fv8AxxNL/wCYlv8Ak2cwddyD0fs3/eS/q/peI5rnr2S/lvp0l/530iJBURTr
cOewWD97U/8AA0y3BG5hwO1cohp5nvFfPZ9OZunzx2KvmX8zLsXfnvWJQQQswh2/4pRYv+NM02oN
zL6F2TDh00B5X892X/kB/wAdXVv+MEf/ABM5fofqLq/aT6Ie8va82TyKF1WeWDS7yeJuMsUEjxtQ
GjKhIND!
t1yMzUSWzDESmAeRIfPP/ACt38w/+rt/0723/AFSzVfmsnf8Ac91/Iul/mfbL9bv+Vu/m&
#xA;H/1dv+ne2/6pY/msnf8Acv8AIul/mfbL9ancfmr5+uIJLebVOUUyNHIvoWwqrChFRGD0OA6nIRVs
o9j6aJBEdx5y/WxLKHZOxV2KuxV2KuxV2KuxV2Ksj/Lr/lONG/5iV/jluD6x73B7U/xaf9V9PZun
zt2KvmT8yv8AlOtZ/wCM/wDxquaXP9ZfQuyv8Wh7k2/KDzb+hfMQsbh+On6oVikJ6JMP7p/apPE/
P2yzS5eGVdC43bei8XFxD6ob/Dq+hc2zwzsVeHfnf5UFlqkWv2yUt78+ndADZZ1Gx/2aj7wc1msx
UeIdXsfZ/WccDiPOPL3fseX5hvQvpv8ALX/lBdG/4wf8bNm40392Hz3tX/GZ+9k2XuvYX+Z3kvVP
NWnWdtp8sET28zSObhnUEFeO3BHzG1OEzAp23ZOvhppyMwTY6f2h57F+QvmouBLfWKR92RpmP3GJ
f15i/kp94d4faPDW0ZfZ+t6T5E/LrTPKccsqSm71GccJbpl4USteCLVqCo333zMwacQ97oO0e1J6
kgVwxHRluXusS3zHrlroei3eqXJHC2jLKpNObnZEHuzUGQyTEYkuRpdOc2QQHV8q3NxLc3MtzM3K
aZ2kkbxZzUn7zmjJt9JhERAA5B6j+QH/AB1dW/4wR/8AEzmbofqLzntJ9EPeXtebJ5FBa5/xxNQ/
5hpv+TZyGT6T7m7T/wB5H+sPvfJeaN9MdirsVdirsVdirsVdirsVdirsVdirI/y6/wCU40b/AJiV
/jluD6x73B7U/wAWn/VfT2bp87dir5k/Mr/lOtZ/4z/8armlz/WX0Lsr/Foe5jQJBqNiOhyp2D6U
/LPzZ/iLyzFJM/LULOlvegmrFlHwyH/XXf51zcabLxx8w8B2to/AzED6Zbj9XwZZl7rEr8z6Da69
od3pdwBxuE/dv!
/JIN0cf6rZDLjE4kOTpNScOQTHR8s31ncWN5PZ3KGO4t3aKVD2ZDQ5pCKNPo+PI
JxEhyL6U/LX/AJQXRv8AjB/xs2bfTf3YfP8AtX/GZ+9k2XuvdirsVdiqF1TVdN0qze91G4S1tY/t
SyGgr4DuSewG+RlMRFltw4Z5JcMBZfPn5kfmFP5pvFt7YNDo9sxMER2aRunquPl0HbNVqM5mfJ7f
svswaeNnfIefl5MLzHds9W/ID/jq6t/xgj/4mczdD9Reb9pPoh7y9rzZPIoLXP8Ajiah/wAw03/J
s5DJ9J9zdp/7yP8AWH3vkvNG+mOxV2KuxV2KuxV2KuxV2KuxV2KuxVG6Lq1xpGq2up2yo89o4kjW
QEoSP5gpU/jkoy4TbVnwjLAwPKTPP+V8+b/+WPT/APkXP/1WzK/Oz7g6b/Q7g75/Mf8AEu/5Xz5v
/wCWPT/+Rc//AFWx/Oz7gv8Aodwd8/mP+JYJrmsXOs6tc6pdKiXF0/ORYgQgNAPhDFj28cxZy4jZ
dxp8AxQEI8ggci3J75S85ax5WvZbvTfTczJ6csM4Zo2ANQSFZDUdt8sxZTA2HD1uhx6iIjO9u5ln
/K+fN/8Ayx6f/wAi5/8AqtmR+dn3B1v+h3B3z+Y/4l3/ACvnzf8A8sen/wDIuf8A6rY/nZ9wX/Q7
g75/Mf8AEsL8zeYbnzBqr6ndW8FvcSqqyi2VlViu3Ih2c8qbdcxsk+I2XbaTSjBDgiSQO9kuh/nD
5m0bSbbS7W2snt7VOEbSpKXIqT8RWVR38MuhqpRFCnX6jsPDlmZyMrPu/Uj/APlfPm//AJY9P/5F
z/8AVbJ/nZ9waf8AQ7g75/Mf8S7/AJXz5v8A+WPT/wDkXP8A9Vsfzs+4L/odwd8/mP8AiXf8r583
/wDLHp//ACLn/wCq2P52fcF/0O4O+!
fzH/Epff/nN56uuYjuIbNW7QQrsKUoDJ6h9+tchLVzPVux9
haaPMGXvP6qYlqesar
qs4n1K7mu5RsrTOz8Qey1Ow+WUSkTzLs8WCGMVACI8kHkW12Ksh8n+dtV8
q3FxPp0UEr3KKkguFdgApqKcHjy3FmMDYcLXaCGpAEyRXd/YWUf8r583/wDLHp//ACLn/wCq2X/n
Z9wdd/odwd8/mP8AiVK7/PHzZdWs1tJaWASdGjcrHNUBwVNKzHxwS1kyKoMoez+CMgQZ7eY/U87z
Ed47FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXY
q7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FU/8A8Bedf+rHe/8AIl/6ZZ4M+4uH/KOn/nx+
bv8AAXnX/qx3v/Il/wCmPgz7iv8AKOn/AJ8fm7/AXnX/AKsd7/yJf+mPgz7iv8o6f+fH5u/wF51/
6sd7/wAiX/pj4M+4r/KOn/nx+bv8Bedf+rHe/wDIl/6Y+DPuK/yjp/58fm7/AAF51/6sd7/yJf8A
pj4M+4r/ACjp/wCfH5u/wF51/wCrHe/8iX/pj4M+4r/KOn/nx+bv8Bedf+rHe/8AIl/6Y+DPuK/y
jp/58fm7/AXnX/qx3v8AyJf+mPgz7iv8o6f!
+fH5u/wABedf+rHe/8iX/AKY+DPuK/wAo6f8Anx+b
v8Bedf8Aqx3v/Il/6Y+DPuK/yjp/58fm7/AXnX/qx3v/ACJf+mPgz7iv8o6f+fH5u/wF51/6sd7/
AMiX/pj4M+4r/KOn/nx+bv8AAXnX/qx3v/Il/wCmPgz7iv8AKOn/AJ8fm7/AXnX/AKsd7/yJf+mP
gz7iv8o6f+fH5u/wF51/6sd7/wAiX/pj4M+4r/KOn/nx+bv8Bedf+rHe/wDIl/6Y+DPuK/yjp/58
fm7/AAF51/6sd7/yJf8Apj4M+4r/ACjp/wCfH5u/wF51/wCrHe/8iX/pj4M+4r/KOn/nx+bv8Bed
f+rHe/8AIl/6Y+DPuK/yjp/58fm7/AXnX/qx3v8AyJf+mPgz7iv8o6f+fH5u/wABedf+rHe/8iX/
AKY+DPuK/wAo6f8Anx+bv8Bedf8Aqx3v/Il/6Y+DPuK/yjp/58fm7/AXnX/qx3v/ACJf+mPgz7iv
8o6f+fH5u/wF51/6sd7/AMiX/pj4M+4r/KOn/nx+bv8AAXnX/qx3v/Il/wCmPgz7iv8AKOn/AJ8f
m7/AXnX/AKsd7/yJf+mPgz7iv8o6f+fH5u/wF51/6sd7/wAiX/pj4M+4r/KOn/nx+bv8Bedf+rHe
/wDIl/6Y+DPuK/yjp/58fm7/AAF51/6sd7/yJf8Apj4M+4r/ACjp/wCfH5u/wF51/wCrHe/8iX/p
j4M+4r/KOn/nx+bv8Bedf+rHe/8AIl/6Y+DPuK/yjp/58fm//9k=</xapGImg:image></rdf:li></rdf:Alt></xap:Thumbnails></rdf:Description>
+<rdf:Description rdf:about='uuid:476f87c0-2ead-11da-a959-00145104264a' xmlns:xapMM='http://ns.adobe.com/xap/1.0/mm/' xapMM:DocumentID='uuid:265243c6-0c04-11da-8062-00145104264a'/>
+<rdf:Description rdf:about='uuid:476f87c0-2ead-11da-a959-00145104264a' xmlns:dc='http://purl.org/dc/elements/1.1/' dc:format='application/vnd.adobe.illustrator'/>
+</rdf:RDF>
+</x:xmpmeta>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<?xpacket end='w'?>
+endstream
+endobj
+xref
+0 134
+0000000004 65535 f
+0000000016 00000 n
+0000000077 00000 n
+0000000127 00000 n
+0000000009 00001 f
+0000000271 00000 n
+0000000291 00000 n
+0000000781 00000 n
+0000000852 00000 n
+0000000010 00001 f
+0000000011 00001 f
+0000000012 00001 f
+0000000013 00001 f
+0000000014 00001 f
+0000000015 00001 f
+0000000016 00001 f
+0000000017 00001 f
+0000000018 00001 f
+0000000019 00001 f
+0000000020 00001 f
+0000000021 00001 f
+0000000022 00001 f
+0000000023 00001 f
+0000000024 00001 f
+0000000025 00001 f
+0000000026 00001 f
+0000000027 00001 f
+0000000028 00001 f
+0000000029 00001 f
+0000000030 00001 f
+0000000031 00001 f
+0000000032 00001 f
+0000000033 00001 f
+0000000034 00001 f
+0000000035 00001 f
+0000000036 00001 f
+0000000037 00001 f
+0000000038 00001 f
+0000000039 00001 f
+0000000040 00001 f
+0000000041 00001 f
+0000000042 00001 f
+0000000043 00001 f
+0000000044 00001 f
+0000000045 00001 f
+0000000046 00001 f
+0000000047 00001 f
+0000000048 00001 f
+0000000049 00001 f
+0000000050 00001 f
+0000000051 00001 f
+0000000052 00001 f
+0000000053 00001 f
+0000000054 00001 f
+0000000055 00001 f
+0000000056 00001 f
+0000000057 00001 f
+0000000058 00001 f
+0000000059 00001 f
+0000000060 00001 f
+0000000061 00001 f
+0000000062 00001 f
+0000000063 00001 f
+0000000064 00001 f
+0000000065 00001 f
+0000000066 00001 f
+0000000067 00001 f
+0000000068 00001 f
+0000000069 00001 f
+0000000070 00001 f
+0000000124 00001 f
+0000001439 00000 n
+0000001460 00000 n
+0000002733 00000 n
+0000015889 00000 n
+0000015911 00000 n
+0000031528 00000 n
+0000031550 00000 n
+0000049496 00000 n
+0000049518 00000 n
+0000075639 00000 n
+0000075661 00000 n
+0000101341 00000 n
+0000101363 00000 n
+0000124222 00000 n
+0000124244 00000 n
+0000146812 00000 n
+0000146834 00000 n
+0000169079 00000 n
+0000169101 00000 n
+0000190885 00000 n
+0000190906 00000 n
+0000199828 00000 n
+0000199849 00000 n
+0000203506 00000 n
+0000203528 00000 n
+0000225026 00000 n
+0000225048 00000 n
+0000244021 00000 n
+0000244043 00000 n
+0000262279 00000 n
+0000262302 00000 n
+0000285774 00000 n
+0000285797 00000 n
+0000309494 00000 n
+0000309517 00000 n
+0000332024 00000 n
+0000332047 00000 n
+0000355327 00000 n
+0000355350 00000 n
+0000376255 00000 n
+0000376278 00000 n
+0000388442 00000 n
+0000388465 00000 n
+0000406802 00000 n
+0000406915 00000 n
+0000407050 00000 n
+0000407076 00000 n
+0000407234 00000 n
+0000407303 00000 n
+0000407501 00000 n
+0000407522 00000 n
+0000407821 00000 n
+0000407843 00000 n
+0000000125 00001 f
+0000000000 00001 f
+0000414443 00000 n
+0000414464 00000 n
+0000414781 00000 n
+0000414830 00000 n
+0000414851 00000 n
+0000415368 00000 n
+0000415388 00000 n
+0000415585 00000 n
+trailer
+<</Size 134/Root 1 0 R/Info 3 0 R/ID[<34587bea2ead11daa95900145104264a><476f49fc2ead11daa95900145104264a>]>>
+startxref
+428737
+%%EOF
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/RDFButton.gif
===================================================================
(Binary files differ)
Property changes on: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/RDFButton.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/RSSButton.gif
===================================================================
(Binary files differ)
Property changes on: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/RSSButton.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/RSSButton.png
===================================================================
(Binary files differ)
Property changes on: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/RSSButton.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/attachButton.png
===================================================================
(Binary files differ)
Property changes on: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/attachButton.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/editButton.png
===================================================================
(Binary files differ)
Property changes on: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/editButton.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/historyButton.png
===================================================================
(Binary files differ)
Property changes on: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/historyButton.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/main.gif
===================================================================
(Binary files differ)
Property changes on: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/main.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/out.png
===================================================================
(Binary files differ)
Property changes on: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/out.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/permaLinkButton.png
===================================================================
(Binary files differ)
Property changes on: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/permaLinkButton.png
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/recentChanges.gif
===================================================================
(Binary files differ)
Property changes on: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/recentChanges.gif
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/images/wikiStyle.css
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/etc/images/wikiStyle.css (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/etc/images/wikiStyle.css 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,10 @@
+td.wikiContent {
+ text-align: left;
+ width: 100%;
+ margin: 0px;
+ padding: 0px;
+}
+
+td.wikiFooter {
+
+}
\ No newline at end of file
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/fileaccess/mime.types
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/fileaccess/mime.types (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/fileaccess/mime.types 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,22 @@
+application/postscript ai eps ps
+application/rtf rtf
+application/slate
+application/x-tex tex
+application/x-texinfo texinfo texi
+application/x-troff t tr roff
+audio/basic au snd
+audio/x-aiff aif aiff aifc
+audio/x-wav wav
+image/gif gif
+image/ief ief
+image/png png
+image/jpeg jpeg jpg jpe
+image/tiff tiff tif
+image/x-xwindowdump xwd
+text/html html
+text/plain txt
+video/mpeg mpeg mpg mpe
+video/quicktime qt mov
+video/x-msvideo avi
+video/x-sgi-movie movie
+text/css css
\ No newline at end of file
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,8 @@
+# FileDataSource configuration file
+
+# pathToMedia - points, where JSPWiki file structure is situated
+pathToMedia = /tmp
+
+# pathToAttachements - points, where JSPWiki attachemets are situated
+pathToAttachements = /tmp
+
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties.sample
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties.sample (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/filedatasource.properties.sample 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,9 @@
+# FileDataSource configuration file
+
+# pathToMedia - points, where JSPWiki file structure is situated
+#pathToMedia=/usr/local/forge/wiki
+pathToMedia=
+
+# pathToAttachements - points, where JSPWiki attachemets are situated
+#pathToAttachements=/usr/local/forge/wiki
+pathToAttachements=
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/wikiPlugins.properties
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/wikiPlugins.properties (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/etc/org/jboss/wiki/wikiPlugins.properties 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,12 @@
+# WikiPlugin properties. Use it wise.
+
+#extensions for images to be inlined, coma-separated
+imagePatterns = .png , .jpeg, .jpg , .gif , .bmp
+
+#wikiHome part of url. Leave it you use default portlet conifguration
+#wikiHome = /portal/index.html?ctrl:id=window.default.WikiPortletWindow&ctrl:type=action
+#wikiHome = /portal/index.html?ctrl:cmd=action&ctrl:window=default.wiki.WikiPortletWindow
+wikiHome = /portal/portal/default/wiki/WikiPortletWindow?action=1
+#number of days that should be included in recent changes plugin
+recentDays = 30
+notification.fromEmail = do-not-reply at labs.jboss.org
Added: contrib/wikiPortlet/trunk/wiki-common/src/etc/wikiTypes.dtd
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/etc/wikiTypes.dtd (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/etc/wikiTypes.dtd 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,5 @@
+<!ELEMENT wikiTypes (wikiType+)>
+<!ELEMENT wikiType (name, class, plugin*)>
+<!ELEMENT name (#PCDATA)>
+<!ELEMENT class (#PCDATA)>
+<!ELEMENT plugin (name, class)>
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/bmsi/util/Diff.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/bmsi/util/Diff.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/bmsi/util/Diff.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,814 @@
+package bmsi.util;
+
+import java.util.Hashtable;
+
+/** A class to compare vectors of objects. The result of comparison
+ is a list of <code>change</code> objects which form an
+ edit script. The objects compared are traditionally lines
+ of text from two files. Comparison options such as "ignore
+ whitespace" are implemented by modifying the <code>equals</code>
+ and <code>hashcode</code> methods for the objects compared.
+ <p>
+ The basic algorithm is described in: </br>
+ "An O(ND) Difference Algorithm and its Variations", Eugene Myers,
+ Algorithmica Vol. 1 No. 2, 1986, p 251.
+ <p>
+ This class outputs different results from GNU diff 1.15 on some
+ inputs. Our results are actually better (smaller change list, smaller
+ total size of changes), but it would be nice to know why. Perhaps
+ there is a memory overwrite bug in GNU diff 1.15.
+
+ @author Stuart D. Gathman, translated from GNU diff 1.15
+ Copyright (C) 2000 Business Management Systems, Inc.
+ <p>
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 1, or (at your option)
+ any later version.
+ <p>
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+ <p>
+ You should have received a copy of the <a href=COPYING.txt>
+ GNU Lesser General Public License</a>
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+ */
+
+public class Diff {
+
+ /** Prepare to find differences between two arrays. Each element of
+ the arrays is translated to an "equivalence number" based on
+ the result of <code>equals</code>. The original Object arrays
+ are no longer needed for computing the differences. They will
+ be needed again later to print the results of the comparison as
+ an edit script, if desired.
+ */
+ public Diff(Object[] a, Object[] b) {
+ Hashtable h = new Hashtable(a.length + b.length);
+ filevec[0] = new file_data(a, h);
+ filevec[1] = new file_data(b, h);
+ }
+
+ /** 1 more than the maximum equivalence value used for this or its
+ sibling file. */
+ private int equiv_max = 1;
+
+ /** When set to true, the comparison uses a heuristic to speed it up.
+ With this heuristic, for files with a constant small density
+ of changes, the algorithm is linear in the file size. */
+ public boolean heuristic = false;
+
+ /** When set to true, the algorithm returns a guarranteed minimal
+ set of changes. This makes things slower, sometimes much slower. */
+ public boolean no_discards = false;
+
+ private int[] xvec, yvec; /* Vectors being compared. */
+ private int[] fdiag;
+ /* Vector, indexed by diagonal, containing
+ the X coordinate of the point furthest
+ along the given diagonal in the forward
+ search of the edit matrix. */
+ private int[] bdiag;
+ /* Vector, indexed by diagonal, containing
+ the X coordinate of the point furthest
+ along the given diagonal in the backward
+ search of the edit matrix. */
+ private int fdiagoff, bdiagoff;
+ private final file_data[] filevec = new file_data[2];
+ private int cost;
+
+ /** Find the midpoint of the shortest edit script for a specified
+ portion of the two files.
+
+ We scan from the beginnings of the files, and simultaneously from the ends,
+ doing a breadth-first search through the space of edit-sequence.
+ When the two searches meet, we have found the midpoint of the shortest
+ edit sequence.
+
+ The value returned is the number of the diagonal on which the midpoint lies.
+ The diagonal number equals the number of inserted lines minus the number
+ of deleted lines (counting only lines before the midpoint).
+ The edit cost is stored into COST; this is the total number of
+ lines inserted or deleted (counting only lines before the midpoint).
+
+ This function assumes that the first lines of the specified portions
+ of the two files do not match, and likewise that the last lines do not
+ match. The caller must trim matching lines from the beginning and end
+ of the portions it is going to specify.
+
+ Note that if we return the "wrong" diagonal value, or if
+ the value of bdiag at that diagonal is "wrong",
+ the worst this can do is cause suboptimal diff output.
+ It cannot cause incorrect diff output. */
+
+ private int diag(int xoff, int xlim, int yoff, int ylim) {
+ final int[] fd = fdiag; // Give the compiler a chance.
+ final int[] bd = bdiag; // Additional help for the compiler.
+ final int[] xv = xvec; // Still more help for the compiler.
+ final int[] yv = yvec; // And more and more . . .
+ final int dmin = xoff - ylim; // Minimum valid diagonal.
+ final int dmax = xlim - yoff; // Maximum valid diagonal.
+ final int fmid = xoff - yoff; // Center diagonal of top-down search.
+ final int bmid = xlim - ylim; // Center diagonal of bottom-up search.
+ int fmin = fmid, fmax = fmid; // Limits of top-down search.
+ int bmin = bmid, bmax = bmid; // Limits of bottom-up search.
+ /* True if southeast corner is on an odd
+ diagonal with respect to the northwest. */
+ final boolean odd = (fmid - bmid & 1) != 0;
+
+ fd[fdiagoff + fmid] = xoff;
+ bd[bdiagoff + bmid] = xlim;
+
+ for (int c = 1; ; ++c) {
+ int d; /* Active diagonal. */
+ boolean big_snake = false;
+
+ /* Extend the top-down search by an edit step in each diagonal. */
+ if (fmin > dmin)
+ fd[fdiagoff + --fmin - 1] = -1;
+ else
+ ++fmin;
+ if (fmax < dmax)
+ fd[fdiagoff + ++fmax + 1] = -1;
+ else
+ --fmax;
+ for (d = fmax; d >= fmin; d -= 2) {
+ int x, y, oldx, tlo = fd[fdiagoff + d - 1], thi = fd[fdiagoff + d + 1];
+
+ if (tlo >= thi)
+ x = tlo + 1;
+ else
+ x = thi;
+ oldx = x;
+ y = x - d;
+ while (x < xlim && y < ylim && xv[x] == yv[y]) {
+ ++x;
+ ++y;
+ }
+ if (x - oldx > 20)
+ big_snake = true;
+ fd[fdiagoff + d] = x;
+ if (odd && bmin <= d && d <= bmax && bd[bdiagoff + d] <= fd[fdiagoff + d]) {
+ cost = 2 * c - 1;
+ return d;
+ }
+ }
+
+ /* Similar extend the bottom-up search. */
+ if (bmin > dmin)
+ bd[bdiagoff + --bmin - 1] = Integer.MAX_VALUE;
+ else
+ ++bmin;
+ if (bmax < dmax)
+ bd[bdiagoff + ++bmax + 1] = Integer.MAX_VALUE;
+ else
+ --bmax;
+ for (d = bmax; d >= bmin; d -= 2) {
+ int x, y, oldx, tlo = bd[bdiagoff + d - 1], thi = bd[bdiagoff + d + 1];
+
+ if (tlo < thi)
+ x = tlo;
+ else
+ x = thi - 1;
+ oldx = x;
+ y = x - d;
+ while (x > xoff && y > yoff && xv[x - 1] == yv[y - 1]) {
+ --x;
+ --y;
+ }
+ if (oldx - x > 20)
+ big_snake = true;
+ bd[bdiagoff + d] = x;
+ if (!odd && fmin <= d && d <= fmax && bd[bdiagoff + d] <= fd[fdiagoff + d]) {
+ cost = 2 * c;
+ return d;
+ }
+ }
+
+ /* Heuristic: check occasionally for a diagonal that has made
+ lots of progress compared with the edit distance.
+ If we have any such, find the one that has made the most
+ progress and return it as if it had succeeded.
+
+ With this heuristic, for files with a constant small density
+ of changes, the algorithm is linear in the file size. */
+
+ if (c > 200 && big_snake && heuristic) {
+ int best = 0;
+ int bestpos = -1;
+
+ for (d = fmax; d >= fmin; d -= 2) {
+ int dd = d - fmid;
+ if ((fd[fdiagoff + d] - xoff) * 2 - dd > 12 * (c + (dd > 0 ? dd : -dd))) {
+ if (fd[fdiagoff + d] * 2 - dd > best
+ && fd[fdiagoff + d] - xoff > 20
+ && fd[fdiagoff + d] - d - yoff > 20) {
+ int k;
+ int x = fd[fdiagoff + d];
+
+ /* We have a good enough best diagonal;
+ now insist that it end with a significant snake. */
+ for (k = 1; k <= 20; k++)
+ if (xvec[x - k] != yvec[x - d - k])
+ break;
+
+ if (k == 21) {
+ best = fd[fdiagoff + d] * 2 - dd;
+ bestpos = d;
+ }
+ }
+ }
+ }
+ if (best > 0) {
+ cost = 2 * c - 1;
+ return bestpos;
+ }
+
+ best = 0;
+ for (d = bmax; d >= bmin; d -= 2) {
+ int dd = d - bmid;
+ if ((xlim - bd[bdiagoff + d]) * 2 + dd > 12 * (c + (dd > 0 ? dd : -dd))) {
+ if ((xlim - bd[bdiagoff + d]) * 2 + dd > best
+ && xlim - bd[bdiagoff + d] > 20
+ && ylim - (bd[bdiagoff + d] - d) > 20) {
+ /* We have a good enough best diagonal;
+ now insist that it end with a significant snake. */
+ int k;
+ int x = bd[bdiagoff + d];
+
+ for (k = 0; k < 20; k++)
+ if (xvec[x + k] != yvec[x - d + k])
+ break;
+ if (k == 20) {
+ best = (xlim - bd[bdiagoff + d]) * 2 + dd;
+ bestpos = d;
+ }
+ }
+ }
+ }
+ if (best > 0) {
+ cost = 2 * c - 1;
+ return bestpos;
+ }
+ }
+ }
+ }
+
+ /** Compare in detail contiguous subsequences of the two files
+ which are known, as a whole, to match each other.
+
+ The results are recorded in the vectors filevec[N].changed_flag, by
+ storing a 1 in the element for each line that is an insertion or deletion.
+
+ The subsequence of file 0 is [XOFF, XLIM) and likewise for file 1.
+
+ Note that XLIM, YLIM are exclusive bounds.
+ All line numbers are origin-0 and discarded lines are not counted. */
+
+ private void compareseq(int xoff, int xlim, int yoff, int ylim) {
+ /* Slide down the bottom initial diagonal. */
+ while (xoff < xlim && yoff < ylim && xvec[xoff] == yvec[yoff]) {
+ ++xoff;
+ ++yoff;
+ }
+ /* Slide up the top initial diagonal. */
+ while (xlim > xoff && ylim > yoff && xvec[xlim - 1] == yvec[ylim - 1]) {
+ --xlim;
+ --ylim;
+ }
+
+ /* Handle simple cases. */
+ if (xoff == xlim)
+ while (yoff < ylim)
+ filevec[1].changed_flag[1 + filevec[1].realindexes[yoff++]] = true;
+ else if (yoff == ylim)
+ while (xoff < xlim)
+ filevec[0].changed_flag[1 + filevec[0].realindexes[xoff++]] = true;
+ else {
+ /* Find a point of correspondence in the middle of the files. */
+
+ int d = diag(xoff, xlim, yoff, ylim);
+ int c = cost;
+ int f = fdiag[fdiagoff + d];
+ int b = bdiag[bdiagoff + d];
+
+ if (c == 1) {
+ /* This should be impossible, because it implies that
+ one of the two subsequences is empty,
+ and that case was handled above without calling `diag'.
+ Let's verify that this is true. */
+ throw new IllegalArgumentException("Empty subsequence");
+ } else {
+ /* Use that point to split this problem into two subproblems. */
+ compareseq(xoff, b, yoff, b - d);
+ /* This used to use f instead of b,
+ but that is incorrect!
+ It is not necessarily the case that diagonal d
+ has a snake from b to f. */
+ compareseq(b, xlim, b - d, ylim);
+ }
+ }
+ }
+
+ /** Discard lines from one file that have no matches in the other file.
+ */
+
+ private void discard_confusing_lines() {
+ filevec[0].discard_confusing_lines(filevec[1]);
+ filevec[1].discard_confusing_lines(filevec[0]);
+ }
+
+ private boolean inhibit = false;
+
+ /** Adjust inserts/deletes of blank lines to join changes
+ as much as possible.
+ */
+
+ private void shift_boundaries() {
+ if (inhibit)
+ return;
+ filevec[0].shift_boundaries(filevec[1]);
+ filevec[1].shift_boundaries(filevec[0]);
+ }
+
+ /** Scan the tables of which lines are inserted and deleted,
+ producing an edit script in reverse order. */
+
+ private change build_reverse_script() {
+ change script = null;
+ final boolean[] changed0 = filevec[0].changed_flag;
+ final boolean[] changed1 = filevec[1].changed_flag;
+ final int len0 = filevec[0].buffered_lines;
+ final int len1 = filevec[1].buffered_lines;
+
+ /* Note that changedN[len0] does exist, and contains 0. */
+
+ int i0 = 0, i1 = 0;
+
+ while (i0 < len0 || i1 < len1) {
+ if (changed0[1 + i0] || changed1[1 + i1]) {
+ int line0 = i0, line1 = i1;
+
+ /* Find # lines changed here in each file. */
+ while (changed0[1 + i0]) ++i0;
+ while (changed1[1 + i1]) ++i1;
+
+ /* Record this change. */
+ script = new change(line0, line1, i0 - line0, i1 - line1, script);
+ }
+
+ /* We have reached lines in the two files that match each other. */
+ i0++;
+ i1++;
+ }
+
+ return script;
+ }
+
+ /** Scan the tables of which lines are inserted and deleted,
+ producing an edit script in forward order. */
+
+ private change build_script() {
+ change script = null;
+ final boolean[] changed0 = filevec[0].changed_flag;
+ final boolean[] changed1 = filevec[1].changed_flag;
+ final int len0 = filevec[0].buffered_lines;
+ final int len1 = filevec[1].buffered_lines;
+ int i0 = len0, i1 = len1;
+
+ /* Note that changedN[-1] does exist, and contains 0. */
+
+ while (i0 >= 0 || i1 >= 0) {
+ if (changed0[i0] || changed1[i1]) {
+ int line0 = i0, line1 = i1;
+
+ /* Find # lines changed here in each file. */
+ while (changed0[i0]) --i0;
+ while (changed1[i1]) --i1;
+
+ /* Record this change. */
+ script = new change(i0, i1, line0 - i0, line1 - i1, script);
+ }
+
+ /* We have reached lines in the two files that match each other. */
+ i0--;
+ i1--;
+ }
+
+ return script;
+ }
+
+ /* Report the differences of two files. DEPTH is the current directory
+ depth. */
+ public change diff_2(final boolean reverse) {
+
+ /* Some lines are obviously insertions or deletions
+ because they don't match anything. Detect them now,
+ and avoid even thinking about them in the main comparison algorithm. */
+
+ discard_confusing_lines();
+
+ /* Now do the main comparison algorithm, considering just the
+ undiscarded lines. */
+
+ xvec = filevec[0].undiscarded;
+ yvec = filevec[1].undiscarded;
+
+ int diags =
+ filevec[0].nondiscarded_lines + filevec[1].nondiscarded_lines + 3;
+ fdiag = new int[diags];
+ fdiagoff = filevec[1].nondiscarded_lines + 1;
+ bdiag = new int[diags];
+ bdiagoff = filevec[1].nondiscarded_lines + 1;
+
+ compareseq(0, filevec[0].nondiscarded_lines,
+ 0, filevec[1].nondiscarded_lines);
+ fdiag = null;
+ bdiag = null;
+
+ /* Modify the results slightly to make them prettier
+ in cases where that can validly be done. */
+
+ shift_boundaries();
+
+ /* Get the results of comparison in the form of a chain
+ of `struct change's -- an edit script. */
+
+ if (reverse)
+ return build_reverse_script();
+ else
+ return build_script();
+ }
+
+ /** The result of comparison is an "edit script": a chain of change objects.
+ Each change represents one place where some lines are deleted
+ and some are inserted.
+
+ LINE0 and LINE1 are the first affected lines in the two files (origin 0).
+ DELETED is the number of lines deleted here from file 0.
+ INSERTED is the number of lines inserted here in file 1.
+
+ If DELETED is 0 then LINE0 is the number of the line before
+ which the insertion was done; vice versa for INSERTED and LINE1. */
+
+ public static class change {
+ /** Previous or next edit command. */
+ public change link;
+ /** # lines of file 1 changed here. */
+ public final int inserted;
+ /** # lines of file 0 changed here. */
+ public final int deleted;
+ /** Line number of 1st deleted line. */
+ public final int line0;
+ /** Line number of 1st inserted line. */
+ public final int line1;
+
+ /** Cons an additional entry onto the front of an edit script OLD.
+ LINE0 and LINE1 are the first affected lines in the two files (origin 0).
+ DELETED is the number of lines deleted here from file 0.
+ INSERTED is the number of lines inserted here in file 1.
+
+ If DELETED is 0 then LINE0 is the number of the line before
+ which the insertion was done; vice versa for INSERTED and LINE1. */
+ change(int line0, int line1, int deleted, int inserted, change old) {
+ this.line0 = line0;
+ this.line1 = line1;
+ this.inserted = inserted;
+ this.deleted = deleted;
+ this.link = old;
+ //System.err.println(line0+","+line1+","+inserted+","+deleted);
+ }
+ }
+
+ /** Data on one input file being compared.
+ */
+
+ class file_data {
+
+ /** Allocate changed array for the results of comparison. */
+ void clear() {
+ /* Allocate a flag for each line of each file, saying whether that line
+ is an insertion or deletion.
+ Allocate an extra element, always zero, at each end of each vector.
+ */
+ changed_flag = new boolean[buffered_lines + 2];
+ }
+
+ /** Return equiv_count[I] as the number of lines in this file
+ that fall in equivalence class I.
+ @return the array of equivalence class counts.
+ */
+ int[] equivCount() {
+ int[] equiv_count = new int[equiv_max];
+ for (int i = 0; i < buffered_lines; ++i)
+ ++equiv_count[equivs[i]];
+ return equiv_count;
+ }
+
+ /** Discard lines that have no matches in another file.
+
+ A line which is discarded will not be considered by the actual
+ comparison algorithm; it will be as if that line were not in the file.
+ The file's `realindexes' table maps virtual line numbers
+ (which don't count the discarded lines) into real line numbers;
+ this is how the actual comparison algorithm produces results
+ that are comprehensible when the discarded lines are counted.
+ <p>
+ When we discard a line, we also mark it as a deletion or insertion
+ so that it will be printed in the output.
+ @param f the other file
+ */
+ void discard_confusing_lines(file_data f) {
+ clear();
+ /* Set up table of which lines are going to be discarded. */
+ final byte[] discarded = discardable(f.equivCount());
+
+ /* Don't really discard the provisional lines except when they occur
+ in a run of discardables, with nonprovisionals at the beginning
+ and end. */
+ filterDiscards(discarded);
+
+ /* Actually discard the lines. */
+ discard(discarded);
+ }
+
+ /** Mark to be discarded each line that matches no line of another file.
+ If a line matches many lines, mark it as provisionally discardable.
+ @see equivCount()
+ @param counts The count of each equivalence number for the other file.
+ @return 0=nondiscardable, 1=discardable or 2=provisionally discardable
+ for each line
+ */
+
+ private byte[] discardable(final int[] counts) {
+ final int end = buffered_lines;
+ final byte[] discards = new byte[end];
+ final int[] equivs = this.equivs;
+ int many = 5;
+ int tem = end / 64;
+
+ /* Multiply MANY by approximate square root of number of lines.
+ That is the threshold for provisionally discardable lines. */
+ while ((tem = tem >> 2) > 0)
+ many *= 2;
+
+ for (int i = 0; i < end; i++) {
+ int nmatch;
+ if (equivs[i] == 0)
+ continue;
+ nmatch = counts[equivs[i]];
+ if (nmatch == 0)
+ discards[i] = 1;
+ else if (nmatch > many)
+ discards[i] = 2;
+ }
+ return discards;
+ }
+
+ /** Don't really discard the provisional lines except when they occur
+ in a run of discardables, with nonprovisionals at the beginning
+ and end. */
+
+ private void filterDiscards(final byte[] discards) {
+ final int end = buffered_lines;
+
+ for (int i = 0; i < end; i++) {
+ /* Cancel provisional discards not in middle of run of discards. */
+ if (discards[i] == 2)
+ discards[i] = 0;
+ else if (discards[i] != 0) {
+ /* We have found a nonprovisional discard. */
+ int j;
+ int length;
+ int provisional = 0;
+
+ /* Find end of this run of discardable lines.
+ Count how many are provisionally discardable. */
+ for (j = i; j < end; j++) {
+ if (discards[j] == 0)
+ break;
+ if (discards[j] == 2)
+ ++provisional;
+ }
+
+ /* Cancel provisional discards at end, and shrink the run. */
+ while (j > i && discards[j - 1] == 2) {
+ discards[--j] = 0;
+ --provisional;
+ }
+
+ /* Now we have the length of a run of discardable lines
+ whose first and last are not provisional. */
+ length = j - i;
+
+ /* If 1/4 of the lines in the run are provisional,
+ cancel discarding of all provisional lines in the run. */
+ if (provisional * 4 > length) {
+ while (j > i)
+ if (discards[--j] == 2)
+ discards[j] = 0;
+ } else {
+ int consec;
+ int minimum = 1;
+ int tem = length / 4;
+
+ /* MINIMUM is approximate square root of LENGTH/4.
+ A subrun of two or more provisionals can stand
+ when LENGTH is at least 16.
+ A subrun of 4 or more can stand when LENGTH >= 64. */
+ while ((tem = tem >> 2) > 0)
+ minimum *= 2;
+ minimum++;
+
+ /* Cancel any subrun of MINIMUM or more provisionals
+ within the larger run. */
+ for (j = 0, consec = 0; j < length; j++)
+ if (discards[i + j] != 2)
+ consec = 0;
+ else if (minimum == ++consec)
+ /* Back up to start of subrun, to cancel it all. */
+ j -= consec;
+ else if (minimum < consec)
+ discards[i + j] = 0;
+
+ /* Scan from beginning of run
+ until we find 3 or more nonprovisionals in a row
+ or until the first nonprovisional at least 8 lines in.
+ Until that point, cancel any provisionals. */
+ for (j = 0, consec = 0; j < length; j++) {
+ if (j >= 8 && discards[i + j] == 1)
+ break;
+ if (discards[i + j] == 2) {
+ consec = 0;
+ discards[i + j] = 0;
+ } else if (discards[i + j] == 0)
+ consec = 0;
+ else
+ consec++;
+ if (consec == 3)
+ break;
+ }
+
+ /* I advances to the last line of the run. */
+ i += length - 1;
+
+ /* Same thing, from end. */
+ for (j = 0, consec = 0; j < length; j++) {
+ if (j >= 8 && discards[i - j] == 1)
+ break;
+ if (discards[i - j] == 2) {
+ consec = 0;
+ discards[i - j] = 0;
+ } else if (discards[i - j] == 0)
+ consec = 0;
+ else
+ consec++;
+ if (consec == 3)
+ break;
+ }
+ }
+ }
+ }
+ }
+
+ /** Actually discard the lines.
+ @param discards flags lines to be discarded
+ */
+ private void discard(final byte[] discards) {
+ final int end = buffered_lines;
+ int j = 0;
+ for (int i = 0; i < end; ++i)
+ if (no_discards || discards[i] == 0) {
+ undiscarded[j] = equivs[i];
+ realindexes[j++] = i;
+ } else
+ changed_flag[1 + i] = true;
+ nondiscarded_lines = j;
+ }
+
+ file_data(Object[] data, Hashtable h) {
+ buffered_lines = data.length;
+
+ equivs = new int[buffered_lines];
+ undiscarded = new int[buffered_lines];
+ realindexes = new int[buffered_lines];
+
+ for (int i = 0; i < data.length; ++i) {
+ Integer ir = (Integer) h.get(data[i]);
+ if (ir == null)
+ h.put(data[i], new Integer(equivs[i] = equiv_max++));
+ else
+ equivs[i] = ir.intValue();
+ }
+ }
+
+ /** Adjust inserts/deletes of blank lines to join changes
+ as much as possible.
+
+ We do something when a run of changed lines include a blank
+ line at one end and have an excluded blank line at the other.
+ We are free to choose which blank line is included.
+ `compareseq' always chooses the one at the beginning,
+ but usually it is cleaner to consider the following blank line
+ to be the "change". The only exception is if the preceding blank line
+ would join this change to other changes.
+ @param f the file being compared against
+ */
+
+ void shift_boundaries(file_data f) {
+ final boolean[] changed = changed_flag;
+ final boolean[] other_changed = f.changed_flag;
+ int i = 0;
+ int j = 0;
+ int i_end = buffered_lines;
+ int preceding = -1;
+ int other_preceding = -1;
+
+ for (; ;) {
+ int start, end, other_start;
+
+ /* Scan forwards to find beginning of another run of changes.
+ Also keep track of the corresponding point in the other file. */
+
+ while (i < i_end && !changed[1 + i]) {
+ while (other_changed[1 + j++])
+ /* Non-corresponding lines in the other file
+ will count as the preceding batch of changes. */
+ other_preceding = j;
+ i++;
+ }
+
+ if (i == i_end)
+ break;
+
+ start = i;
+ other_start = j;
+
+ for (; ;) {
+ /* Now find the end of this run of changes. */
+
+ while (i < i_end && changed[1 + i]) i++;
+ end = i;
+
+ /* If the first changed line matches the following unchanged one,
+ and this run does not follow right after a previous run,
+ and there are no lines deleted from the other file here,
+ then classify the first changed line as unchanged
+ and the following line as changed in its place. */
+
+ /* You might ask, how could this run follow right after another?
+ Only because the previous run was shifted here. */
+
+ if (end != i_end
+ && equivs[start] == equivs[end]
+ && !other_changed[1 + j]
+ && end != i_end
+ && !((preceding >= 0 && start == preceding)
+ || (other_preceding >= 0
+ && other_start == other_preceding))) {
+ changed[1 + end++] = true;
+ changed[1 + start++] = false;
+ ++i;
+ /* Since one line-that-matches is now before this run
+ instead of after, we must advance in the other file
+ to keep in synch. */
+ ++j;
+ } else
+ break;
+ }
+
+ preceding = i;
+ other_preceding = j;
+ }
+ }
+
+ /** Number of elements (lines) in this file. */
+ final int buffered_lines;
+
+ /** Vector, indexed by line number, containing an equivalence code for
+ each line. It is this vector that is actually compared with that
+ of another file to generate differences. */
+ private final int[] equivs;
+
+ /** Vector, like the previous one except that
+ the elements for discarded lines have been squeezed out. */
+ final int[] undiscarded;
+
+ /** Vector mapping virtual line numbers (not counting discarded lines)
+ to real ones (counting those lines). Both are origin-0. */
+ final int[] realindexes;
+
+ /** Total number of nondiscarded lines. */
+ int nondiscarded_lines;
+
+ /** Array, indexed by real origin-1 line number,
+ containing true for a line that is an insertion or a deletion.
+ The results of comparison are stored here. */
+ boolean[] changed_flag;
+
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/bmsi/util/DiffPrint.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/bmsi/util/DiffPrint.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/bmsi/util/DiffPrint.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,322 @@
+/**************************************************
+ * *
+ * JBoss Labs: Creating Professional Open Source *
+ * *
+ * Distributable under LGPL license. *
+ * See terms of license at gnu.org. *
+ * *
+ *************************************************/
+
+package bmsi.util;
+
+import java.io.*;
+import java.util.Vector;
+
+import bmsi.util.Diff;
+
+//import com.objectspace.jgl.predicates.UnaryPredicate;
+
+interface UnaryPredicate {
+ boolean execute(Object obj);
+}
+
+/** A simple framework for printing change lists produced by <code>Diff</code>.
+ @see bmsi.util.Diff
+ @author Stuart D. Gathman
+ Copyright (C) 2000 Business Management Systems, Inc.
+ <p>
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as published by
+ the Free Software Foundation; either version 1, or (at your option)
+ any later version.
+ <p>
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU Lesser General Public License for more details.
+ <p>
+ You should have received a copy of the GNU Lesser General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+public class DiffPrint {
+ /** A Base class for printing edit scripts produced by Diff.
+ This class divides the change list into "hunks", and calls
+ <code>print_hunk</code> for each hunk. Various utility methods
+ are provided as well.
+ */
+ public static abstract class Base {
+ protected Base(Object[] a, Object[] b) {
+ outfile = new PrintWriter(new OutputStreamWriter(System.out));
+ file0 = a;
+ file1 = b;
+ }
+
+ /** Set to ignore certain kinds of lines when printing
+ an edit script. For example, ignoring blank lines or comments.
+ */
+ protected UnaryPredicate ignore = null;
+
+ /** Set to the lines of the files being compared.
+ */
+ protected Object[] file0, file1;
+
+ /** Divide SCRIPT into pieces by calling HUNKFUN and
+ print each piece with PRINTFUN.
+ Both functions take one arg, an edit script.
+
+ PRINTFUN takes a subscript which belongs together (with a null
+ link at the end) and prints it. */
+ public void print_script(Diff.change script) {
+ Diff.change next = script;
+
+ while (next != null) {
+ Diff.change t, end;
+
+ /* Find a set of changes that belong together. */
+ t = next;
+ end = hunkfun(next);
+
+ /* Disconnect them from the rest of the changes,
+ making them a hunk, and remember the rest for next iteration. */
+ next = end.link;
+ end.link = null;
+ //if (DEBUG)
+ // debug_script(t);
+
+ /* Print this hunk. */
+ print_hunk(t);
+
+ /* Reconnect the script so it will all be freed properly. */
+ end.link = next;
+ }
+ outfile.flush();
+ }
+
+ /** Called with the tail of the script
+ and returns the last link that belongs together with the start
+ of the tail. */
+
+ protected Diff.change hunkfun(Diff.change hunk) {
+ return hunk;
+ }
+
+ protected int first0, last0, first1, last1, deletes, inserts;
+ protected PrintWriter outfile;
+
+ /** Look at a hunk of edit script and report the range of lines in each file
+ that it applies to. HUNK is the start of the hunk, which is a chain
+ of `struct change'. The first and last line numbers of file 0 are stored
+ in *FIRST0 and *LAST0, and likewise for file 1 in *FIRST1 and *LAST1.
+ Note that these are internal line numbers that count from 0.
+
+ If no lines from file 0 are deleted, then FIRST0 is LAST0+1.
+
+ Also set *DELETES nonzero if any lines of file 0 are deleted
+ and set *INSERTS nonzero if any lines of file 1 are inserted.
+ If only ignorable lines are inserted or deleted, both are
+ set to 0. */
+
+ protected void analyze_hunk(Diff.change hunk) {
+ int f0, l0 = 0, f1, l1 = 0, show_from = 0, show_to = 0;
+ int i;
+ Diff.change next;
+ boolean nontrivial = (ignore == null);
+
+ show_from = show_to = 0;
+
+ f0 = hunk.line0;
+ f1 = hunk.line1;
+
+ for (next = hunk; next != null; next = next.link) {
+ l0 = next.line0 + next.deleted - 1;
+ l1 = next.line1 + next.inserted - 1;
+ show_from += next.deleted;
+ show_to += next.inserted;
+ for (i = next.line0; i <= l0 && !nontrivial; i++)
+ if (!ignore.execute(file0[i]))
+ nontrivial = true;
+ for (i = next.line1; i <= l1 && !nontrivial; i++)
+ if (!ignore.execute(file1[i]))
+ nontrivial = true;
+ }
+
+ first0 = f0;
+ last0 = l0;
+ first1 = f1;
+ last1 = l1;
+
+ /* If all inserted or deleted lines are ignorable,
+ tell the caller to ignore this hunk. */
+
+ if (!nontrivial)
+ show_from = show_to = 0;
+
+ deletes = show_from;
+ inserts = show_to;
+ }
+
+ protected abstract void print_hunk(Diff.change hunk);
+
+ protected void print_1_line(String pre, Object linbuf) {
+ outfile.println(pre + linbuf.toString());
+ }
+
+ /** Print a pair of line numbers with SEPCHAR, translated for file FILE.
+ If the two numbers are identical, print just one number.
+
+ Args A and B are internal line numbers.
+ We print the translated (real) line numbers. */
+
+ protected void print_number_range(char sepchar, int a, int b) {
+ /* Note: we can have B < A in the case of a range of no lines.
+ In this case, we should print the line number before the range,
+ which is B. */
+ if (++b > ++a)
+ outfile.print("" + a + sepchar + b);
+ else
+ outfile.print(b);
+ }
+
+ public static char change_letter(int inserts, int deletes) {
+ if (inserts == 0)
+ return 'd';
+ else if (deletes == 0)
+ return 'a';
+ else
+ return 'c';
+ }
+ }
+
+ /** Print a change list in the standard diff format.
+ */
+ public static class NormalPrint extends Base {
+
+ public NormalPrint(Object[] a, Object[] b) {
+ super(a, b);
+ }
+
+ /** Print a hunk of a normal diff.
+ This is a contiguous portion of a complete edit script,
+ describing changes in consecutive lines. */
+
+ protected void print_hunk(Diff.change hunk) {
+
+ /* Determine range of line numbers involved in each file. */
+ analyze_hunk(hunk);
+ if (deletes == 0 && inserts == 0)
+ return;
+
+ /* Print out the line number header for this hunk */
+ print_number_range(',', first0, last0);
+ outfile.print(change_letter(inserts, deletes));
+ print_number_range(',', first1, last1);
+ outfile.println();
+
+ /* Print the lines that the first file has. */
+ if (deletes != 0)
+ for (int i = first0; i <= last0; i++)
+ print_1_line("< ", file0[i]);
+
+ if (inserts != 0 && deletes != 0)
+ outfile.println("---");
+
+ /* Print the lines that the second file has. */
+ if (inserts != 0)
+ for (int i = first1; i <= last1; i++)
+ print_1_line("> ", file1[i]);
+ }
+ }
+
+ /** Prints an edit script in a format suitable for input to <code>ed</code>.
+ The edit script must be generated with the reverse option to
+ be useful as actual <code>ed</code> input.
+ */
+ public static class EdPrint extends Base {
+
+ public EdPrint(Object[] a, Object[] b) {
+ super(a, b);
+ }
+
+ /** Print a hunk of an ed diff */
+ protected void print_hunk(Diff.change hunk) {
+
+ /* Determine range of line numbers involved in each file. */
+ analyze_hunk(hunk);
+ if (deletes == 0 && inserts == 0)
+ return;
+
+ /* Print out the line number header for this hunk */
+ print_number_range(',', first0, last0);
+ outfile.println(change_letter(inserts, deletes));
+
+ /* Print new/changed lines from second file, if needed */
+ if (inserts != 0) {
+ boolean inserting = true;
+ for (int i = first1; i <= last1; i++) {
+ /* Resume the insert, if we stopped. */
+ if (!inserting)
+ outfile.println(i - first1 + first0 + "a");
+ inserting = true;
+
+ /* If the file's line is just a dot, it would confuse `ed'.
+ So output it with a double dot, and set the flag LEADING_DOT
+ so that we will output another ed-command later
+ to change the double dot into a single dot. */
+
+ if (".".equals(file1[i])) {
+ outfile.println("..");
+ outfile.println(".");
+ /* Now change that double dot to the desired single dot. */
+ outfile.println(i - first1 + first0 + 1 + "s/^\\.\\././");
+ inserting = false;
+ } else
+ /* Line is not `.', so output it unmodified. */
+ print_1_line("", file1[i]);
+ }
+
+ /* End insert mode, if we are still in it. */
+ if (inserting)
+ outfile.println(".");
+ }
+ }
+ }
+
+ /** Read a text file into an array of String. This provides basic diff
+ functionality. A more advanced diff utility will use specialized
+ objects to represent the text lines, with options to, for example,
+ convert sequences of whitespace to a single space for comparison
+ purposes.
+ */
+ public static String[] slurp(String file) throws IOException {
+ BufferedReader rdr = new BufferedReader(new FileReader(file));
+ Vector s = new Vector();
+ for (; ;) {
+ String line = rdr.readLine();
+ if (line == null) break;
+ s.addElement(line);
+ }
+ String[] a = new String[s.size()];
+ s.copyInto(a);
+ return a;
+ }
+
+ public static void main(String[] argv) throws IOException {
+ String[] a = slurp(argv[argv.length - 2]);
+ String[] b = slurp(argv[argv.length - 1]);
+ Diff d = new Diff(a, b);
+ boolean edstyle = "-e".equals(argv[0]);
+ Diff.change script = d.diff_2(edstyle);
+ if (script == null)
+ System.err.println("No differences");
+ else {
+ Base p;
+ if (edstyle)
+ p = new EdPrint(a, b);
+ else
+ p = new NormalPrint(a, b);
+ p.print_script(script);
+ }
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/CounterPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/CounterPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/CounterPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,39 @@
+package com.ecyrd.jspwiki.plugin;
+
+import java.util.HashMap;
+
+import org.jboss.wiki.WikiInsidePlugin;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiSession;
+
+public class CounterPlugin extends WikiInsidePlugin {
+
+ @Override
+ public String process(WikiPage wikiPage, WikiSession wikiSession,
+ HashMap<String, String> attributes) {
+
+ String name = attributes.get("name");
+
+ String counterName = "counter"+((name == null) ? "" : "-"+name);
+
+ Integer counter = (Integer)wikiPage.getTempVariable(counterName, wikiSession);
+
+ if (counter != null) {
+ counter++;
+ }
+ else {
+ counter = new Integer(1);
+ }
+
+ wikiPage.addTempVariable(counterName, counter, wikiSession);
+
+ return counter.toString();
+ }
+
+ @Override
+ public void init() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/CurrentTimePlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/CurrentTimePlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/CurrentTimePlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,33 @@
+package com.ecyrd.jspwiki.plugin;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.HashMap;
+
+import org.jboss.wiki.WikiInsidePlugin;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiSession;
+
+public class CurrentTimePlugin extends WikiInsidePlugin {
+
+ @Override
+ public String process(WikiPage wikiPage, WikiSession wikiSession,
+ HashMap<String, String> attributes) {
+
+ String format = attributes.get("format");
+
+ if (format == null)
+ format = "";
+
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
+
+ return simpleDateFormat.format(new Date());
+ }
+
+ @Override
+ public void init() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/ImagePlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/ImagePlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/ImagePlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,81 @@
+package com.ecyrd.jspwiki.plugin;
+
+import java.util.HashMap;
+
+import org.jboss.wiki.WikiInsidePlugin;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiSession;
+import org.jboss.wiki.plugins.HTMLTranslatorParts;
+
+public class ImagePlugin extends WikiInsidePlugin {
+
+ @Override
+ public String process(WikiPage wikiPage, WikiSession wikiSession,
+ HashMap<String, String> attributes) {
+ /*
+ * src = Image source. This can either be a full URL (http://...) or a WikiAttachment? name. Required.
+ * align = left|right|center. The image alignment.
+ * height = integer. Force the height of the image.
+ * width = integer. Force the width of the image.
+ * alt = alt text. The alt text of an image. This is very useful when doing
+ * pages that can be navigated with text-only browsers
+ * caption = caption text. The text that should be shown as a caption under the image.
+ * link = hyperlink. A hyperlink (http://...). In the future, you can also use WikiPages?.
+ * border = integer. Size of the image border.
+ * style = style info. Any style markup you would like to apply to the table surrounding the image.
+ * class = class name. Redefine the default class for this image, which is "imageplugin".
+ */
+
+ String src = attributes.get("src");
+
+ if (src == null) {
+ return "<i>Image Plugin Error: \"src\" value has to be set !</i>";
+ }
+
+ if (!HTMLTranslatorParts.isExternalLink(src)) {
+ src = wikiSession.getAttribute("hostURL") + "/wiki/" + src;
+ }
+
+ String align = attributes.get("align");
+ String height = attributes.get("height");
+ String width = attributes.get("width");
+ String alt = attributes.get("alt");
+ String caption = attributes.get("caption");
+ String link = attributes.get("link");
+ String border = attributes.get("border");
+ String style = attributes.get("style");
+ String classAtr = attributes.get("class");
+
+ StringBuffer imageLink = new StringBuffer();
+
+ imageLink.append((caption != null) ? "<table><tr><td>" : "")
+ .append((link != null) ? "<a href=\""+link+"\">" : "")
+ .append("<img ")
+ .append("src=\"")
+ .append(src)
+ .append("\" ")
+ .append((align != null) ? "align"+align+"\" " : "")
+ .append((height != null) ? "height=\""+height+"\" " : "")
+ .append((width != null) ? "width=\""+width+"\" " : "")
+ .append((alt != null) ? "alt=\""+alt+"\" " : "")
+ .append((border != null) ? "border=\""+border+"\" " : "")
+ .append((style != null) ? "style=\""+style+"\" " : "")
+ .append("class=\""+((classAtr != null) ? classAtr : "imageplugin") + "\" ")
+ .append((link != null) ? "</a>" : "")
+ .append((caption != null) ? "</td></tr><tr><td style=\"text-align: center\">"+caption+"</td></tr></table>" : "");
+
+ return imageLink.toString();
+ }
+
+ @Override
+ public void init() {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public boolean processContent() {
+ return false;
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/InsertPage.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/InsertPage.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/InsertPage.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,7 @@
+package com.ecyrd.jspwiki.plugin;
+
+import org.jboss.wiki.plugins.InsertPageInsidePlugin;
+
+public class InsertPage extends InsertPageInsidePlugin {
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/RecentChangesPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/RecentChangesPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/RecentChangesPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,116 @@
+package com.ecyrd.jspwiki.plugin;
+
+// this package is only made for compatibility with JSPWiki
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
+
+import org.jboss.wiki.WikiInsidePlugin;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiSession;
+
+public class RecentChangesPlugin extends WikiInsidePlugin {
+
+ @Override
+ public String process(WikiPage wikiPage, WikiSession wikiSession,
+ HashMap<String, String> attributes) {
+ StringBuilder recentChanges = new StringBuilder();
+
+ Integer numOfDays = Integer.MAX_VALUE;
+
+ if (attributes.get("since") != null) {
+
+ try {
+ numOfDays = Integer.valueOf(attributes.get("since"));
+ } catch (NumberFormatException e) {
+ numOfDays = Integer.MAX_VALUE;
+ }
+
+ }
+
+ if (numOfDays == Integer.MAX_VALUE) {
+ recentChanges.append("!!Full recent changes\n");
+ } else
+ recentChanges.append("!!Recent changes from last ").append(
+ numOfDays).append(" days\n");
+
+ recentChanges.append("----\n");
+
+ int offset = recentChanges.length();
+
+ Set<String> pages = wikiEngine.getAllPageNames(wikiPage.getLangCode());
+
+ TreeMap<String, TreeSet<String>> sortedByDate = new TreeMap<String, TreeSet<String>>();
+
+ // get now date
+ Calendar now = Calendar.getInstance();
+ Calendar then = Calendar.getInstance();
+ now.setTime(new Date());
+
+ for (String name : pages) {
+ WikiPage temp = wikiEngine.getByName(name, null, wikiPage.getLangCode());
+
+ // log.debug("name: "+name+" "+temp.getName());
+ then.setTime(temp.getEditDate());
+
+ then.add(Calendar.DAY_OF_MONTH, numOfDays);
+
+ if (then.after(now)) {
+ // this page has been edited in last numOfDays days
+ Calendar cal = Calendar.getInstance();
+ String key;
+
+ cal.setTime(temp.getEditDate());
+
+ String month = String.valueOf(cal.get(Calendar.MONTH) + 1);
+ String day = String.valueOf(cal.get(Calendar.DAY_OF_MONTH));
+
+ if (month.length() == 1)
+ month = "0" + month;
+
+ if (day.length() == 1)
+ day = "0" + day;
+
+ // create key
+ key = cal.get(Calendar.YEAR) + "/" + (month) + "/" + day;
+
+ if (sortedByDate.get(key) == null) {
+ TreeSet<String> set = new TreeSet<String>();
+ set.add(temp.getName());
+ sortedByDate.put(key, set);
+ } else {
+ sortedByDate.get(key).add(temp.getName());
+ }
+ }
+
+ }
+
+ // add pages to recentChanges page
+
+ Set<String> keySet = sortedByDate.keySet();
+
+ for (String date : keySet) {
+ StringBuilder day = new StringBuilder();
+
+ day.append("!''").append(date).append("''\n");
+ for (String pageName : sortedByDate.get(date)) {
+ day.append("[").append(pageName).append("]\\\\\n");
+ }
+
+ recentChanges.insert(offset, day.toString());
+ }
+
+ return recentChanges.toString();
+ }
+
+ @Override
+ public void init() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/ReferringPagesPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/ReferringPagesPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/ReferringPagesPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,45 @@
+package com.ecyrd.jspwiki.plugin;
+
+import java.util.HashMap;
+import java.util.Set;
+
+
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiSession;
+import org.jboss.wiki.plugins.RefsManipulatingInsidePlugin;
+
+public class ReferringPagesPlugin extends RefsManipulatingInsidePlugin {
+
+ @Override
+ public String process(WikiPage wikiPage, WikiSession wikiSession,
+ HashMap<String, String> attributes) {
+ Integer max = getNumericValue(attributes, "max");
+ Integer maxwidth = getNumericValue(attributes, "maxwidth");
+
+ if (max == null)
+ max = 10;
+
+ if ((maxwidth != null) && (maxwidth < 4)) {
+ maxwidth = 4;
+ }
+
+ StringBuffer stringBuffer = new StringBuffer();
+
+ String uid = wikiEngine.getUid(wikiPage.getName(), wikiPage.getLangCode());
+
+ Set<String> refsFor = getRefsFor(uid, max, wikiSession, wikiPage.getLangCode());
+
+ for (String ref : refsFor) {
+ stringBuffer.append(getLink(ref, maxwidth));
+ }
+
+ return stringBuffer.toString();
+ }
+
+ @Override
+ public void init() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/UndefinedPagesPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/UndefinedPagesPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/UndefinedPagesPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,43 @@
+package com.ecyrd.jspwiki.plugin;
+
+import java.util.HashMap;
+import java.util.Set;
+
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiSession;
+import org.jboss.wiki.plugins.RefsManipulatingInsidePlugin;
+
+public class UndefinedPagesPlugin extends RefsManipulatingInsidePlugin {
+
+ @Override
+ public String process(WikiPage wikiPage, WikiSession wikiSession,
+ HashMap<String, String> attributes) {
+ Integer maxwidth = getNumericValue(attributes, "maxwidth");
+
+ if ((maxwidth != null) && (maxwidth < 4)) {
+ maxwidth = 4;
+ }
+
+ StringBuffer stringBuffer = new StringBuffer();
+
+ Set<String> allRefs = getAllRefs(wikiSession, wikiPage.getLangCode());
+
+ for (String pageName : allRefs) {
+
+ if (!wikiEngine.pageExists(pageName, wikiPage.getLangCode())) {
+ stringBuffer.append(getLink(wikiEngine.getUid(pageName, wikiPage.getLangCode()), maxwidth));
+ }
+ }
+
+ return stringBuffer.toString();
+ }
+
+
+
+ @Override
+ public void init() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/UnusedPagesPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/UnusedPagesPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/com/ecyrd/jspwiki/plugin/UnusedPagesPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,43 @@
+package com.ecyrd.jspwiki.plugin;
+
+import java.util.HashMap;
+import java.util.Set;
+
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiSession;
+import org.jboss.wiki.plugins.RefsManipulatingInsidePlugin;
+
+public class UnusedPagesPlugin extends RefsManipulatingInsidePlugin{
+
+ @Override
+ public String process(WikiPage wikiPage, WikiSession wikiSession,
+ HashMap<String, String> attributes) {
+ Integer maxwidth = getNumericValue(attributes, "maxwidth");
+
+ if ((maxwidth != null) && (maxwidth < 4)) {
+ maxwidth = 4;
+ }
+
+ StringBuffer stringBuffer = new StringBuffer();
+
+ Set<String> pageNames = wikiEngine.getAllPageNames(wikiPage.getLangCode());
+
+ Set<String> allRefs = getAllRefs(wikiSession, wikiPage.getLangCode());
+
+ for (String pageName : pageNames) {
+
+ if (!allRefs.contains(wikiEngine.getUid(pageName, wikiPage.getLangCode()))) {
+ stringBuffer.append(getLink(wikiEngine.getUid(pageName, wikiPage.getLangCode()), maxwidth));
+ }
+ }
+
+ return stringBuffer.toString();
+ }
+
+ @Override
+ public void init() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/AdminSimpleCredentials.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/AdminSimpleCredentials.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/AdminSimpleCredentials.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,71 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.util.Set;
+import java.util.TreeSet;
+
+import javax.portlet.ActionRequest;
+import javax.portlet.RenderRequest;
+
+/**Super user Credentials to be used in plugins for accesing ALL pages etc.
+ * @author tomek
+ *
+ */
+public class AdminSimpleCredentials extends Credentials {
+
+ @Override
+ public String getName() {
+ return "admin";
+ }
+
+ @Override
+ public boolean isLoggedIn() {
+ return true;
+ }
+
+ @Override
+ public boolean isAdmin() {
+ return true;
+ }
+
+ @Override
+ public void setParam(Object param) {
+
+ }
+
+ @Override
+ public boolean isUserInRole(String role) {
+ return true;
+ }
+
+ @Override
+ public Set<String> getAllRoles() {
+ return new TreeSet<String>();
+ }
+
+ @Override
+ public String getEmail() {
+ return null;
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/AttachmentDataSource.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/AttachmentDataSource.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/AttachmentDataSource.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,115 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.io.File;
+import java.io.InputStream;
+import java.util.Set;
+
+/**
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ *
+ */
+public interface AttachmentDataSource {
+
+ public static String attTrashName = "trash/attachments";
+
+ /**Add atachment to a given page.
+ *
+ * @param attFile File of the attachment.
+ * @param attName Name of the attachment.
+ * @param page Page to add atachment to.
+ * @param user Username of user adding the attachment.
+ */
+ public void addAttachment(InputStream attFile, String attName, String uid, String user);
+
+ /**Gets attachment list for a given page.
+ * @param page Page to get list for.
+ * @return Set of all attachment names.
+ */
+ public Set<String> getAttachmentsSet(String uid);
+
+ /**Get appropriate attachment for a given page.
+ *
+ * @param pageName Name of the page to get attachment from.
+ * @param attachmentName Name of the attachment.
+ * @return Desired attachment or null if it doesn't exists.
+ */
+ public WikiAttachment getAttachment(String pageName, String attachmentName);
+
+ /**Get appropriate attachment for a given page at given version.
+ *
+ * @param pageName Name of the page to get attachment from.
+ * @param attachmentName Name of the attachment.
+ * @param version Desired version of attachment.
+ * @return Desired attachment or null if it doesn't exists.
+ */
+ public WikiAttachment getAttachment(String pageName, String attachmentName, int version);
+
+ /**Gets last version of the given attachment.
+ *
+ * @param pageName Name of the page to get attachment's version from.
+ * @param attachmentName Name of the attachment.
+ * @return attachment version
+ */
+ public int getLastAttachmentVersion(String pageName, String attachmentName);
+
+ /**Gets size of attachment at given version.
+ *
+ * @param pageName Name of the page to get attachment's size from.
+ * @param attachmentName Name of the attachment.
+ * @param version Version of the attachment to count size for.
+ * @return attachment size
+ */
+ public long getAttachmentSize(String pageName, String attachmentName, int version);
+
+ /** Deletes (or moves to trash) given attachment from a given page.
+ *
+ * @param pageName Name of the page to delete attachment from.
+ * @param attachmentName Attachment name.
+ * @return true if attachemnt was deleted. False otherwise.
+ */
+ public boolean deleteAttachment(String pageName, String attachmentName);
+
+ /** Deletes (or moves to trash) all attachments from a given page.
+ *
+ * @param pageName Name of the page to delete attachments from.
+ * @return true if attachemnts were deleted. False otherwise.
+ */
+ public boolean deleteAttachments(String pageName);
+
+ /**Sets wikiEngine reference
+ * @param wikiEngine
+ */
+ public void setWikiEngine(WikiEngine wikiEngine);
+
+ /**Set language code for current dataSource.
+ * @param langCode code of the language
+ */
+ public void setLanguageCode(String langCode);
+
+ /**Adds langCode (to descriptor). This should be only called to default DataSource
+ * @param langCode Two-letter language code
+ * @param langDesc Language description
+ */
+ public void addLangCode(String langCode, String langDesc);
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/Credentials.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/Credentials.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/Credentials.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,97 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.util.Set;
+
+import javax.portlet.ActionRequest;
+import javax.portlet.RenderRequest;
+
+/**
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a><br />
+ * <p>
+ * </p>
+ *
+ */
+public abstract class Credentials {
+
+ /**
+ * Gets userName
+ *
+ * @return userName of current user.
+ */
+ public abstract String getName();
+
+ /**
+ * Checks if any user is logged in.
+ *
+ * @return true if anyone is logged in, false othwerwise.
+ */
+ public abstract boolean isLoggedIn();
+
+ /**
+ * Checks if logged in user is Admin.
+ *
+ * @return true if user is admin, false othwerwise.
+ */
+ public abstract boolean isAdmin();
+
+ /*
+ * (non-Javadoc)
+ *
+ * @see java.lang.Object#toString()
+ */
+ public String toString() {
+ return getName();
+ }
+
+ /**
+ * Sets ActionRequest for current credentials.
+ *
+ * @param rReq
+ * ActionRequest to set.
+ */
+ public abstract void setParam(Object param);
+
+ /**
+ * Checks if user is in given role.
+ *
+ * @param role
+ * to check
+ * @return True if is in role, false otherwise.
+ */
+ public abstract boolean isUserInRole(String role);
+
+ /**
+ * Get Set of ALL role names.
+ *
+ * @return Set of role names or empty Set if there are no roles
+ */
+ public abstract Set<String> getAllRoles();
+
+ /**
+ * Get email address of this user
+ *
+ * @return Email or null if email is not available
+ */
+ public abstract String getEmail();
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/EditSessionWatcher.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,88 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.util.Calendar;
+import java.util.Date;
+
+import org.jboss.logging.Logger;
+import org.jboss.wiki.exceptions.PageNotEditedException;
+
+public class EditSessionWatcher extends Thread {
+ private Integer editSessionId;
+
+ private Date endTime;
+
+ private WikiPage watchedPage;
+
+ private boolean runs = true;
+
+ private Logger log;
+
+ public EditSessionWatcher(Integer editSessionId, int sessionIdExpireTime,
+ WikiPage watchedPage) {
+
+ log = Logger.getLogger(EditSessionWatcher.class);
+
+ this.editSessionId = editSessionId;
+ this.watchedPage = watchedPage;
+ Calendar cal = Calendar.getInstance();
+
+ cal.setTime(new Date());
+ cal.add(Calendar.MINUTE, sessionIdExpireTime);
+ cal.add(Calendar.SECOND, -1); //so it doesn't wait one minute longer
+
+ endTime = cal.getTime();
+ }
+
+ @Override
+ public void run() {
+ while (runs) {
+ log.debug("Checking watcher for page "+watchedPage.getName()+" with sessionid: "+editSessionId);
+ Date now = new Date();
+
+ if (now.after(endTime)) {
+ log.debug("Session time exceeded for page "+watchedPage.getName()+" with sessionid: "+editSessionId);
+
+ try {
+ watchedPage.addExpiredSessionId(editSessionId);
+ } catch (PageNotEditedException e) {
+ e.printStackTrace();
+ }
+ stopWatcher();
+ }
+ else {
+ try {
+ sleep(60000);
+ } catch (InterruptedException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+
+ public void stopWatcher() {
+ log.debug("Stopping watcher for page: "+watchedPage.getName()+" with sessionid: "+editSessionId);
+ runs = false;
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/FileAttachmentDataSource.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/FileAttachmentDataSource.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/FileAttachmentDataSource.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,426 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Properties;
+import java.util.Set;
+
+import org.jboss.logging.Logger;
+
+public class FileAttachmentDataSource implements AttachmentDataSource{
+
+ private final static String OTHER_LANG_DIR = "LANG/";
+
+ private String pathToAttachments;
+
+ private String pathToAttTrash;
+
+ private final int BUF_SIZE = 32768;
+
+ private Logger log = Logger.getLogger(this.getClass());
+
+ private String langCode;
+
+ public FileAttachmentDataSource() {
+ init("");
+ }
+
+ private void init(String prefix) {
+ log = Logger.getLogger(FileMediaDataSource.class);
+
+ log.info("Looking for props file !");
+
+ Properties fileDSProps = new Properties();
+
+ try {
+
+ fileDSProps.load(FileMediaDataSource.class
+ .getResourceAsStream(FileMediaDataSource.propFileName));
+
+ } catch (IOException ioe) {
+ log.error("Can't load the file " + FileMediaDataSource.propFileName + "\n", ioe);
+ }
+
+ loadProperties(fileDSProps, prefix);
+
+ File attWikiDir = new File(pathToAttachments);
+
+ if (!attWikiDir.exists())
+ attWikiDir.mkdirs();
+
+ // create trash directory for deleted attachments if it doesn't exists
+
+ pathToAttTrash = pathToAttachments + "/" + AttachmentDataSource.attTrashName;
+
+ File pathToAttachmentsFile = new File(pathToAttTrash);
+
+ if (!pathToAttachmentsFile.exists()) {
+ pathToAttachmentsFile.mkdirs();
+ }
+
+ }
+
+ private void loadProperties(Properties fileDSProps, String prefix) {
+ if (fileDSProps.getProperty("pathToMedia") != null) {
+ pathToAttachments = fileDSProps.getProperty("pathToAttachements")
+ + (prefix.length() > 0 ? "/" + OTHER_LANG_DIR + prefix : "");
+ log.info("Path to attachements is: " + pathToAttachments);
+
+ File attDir = new File(pathToAttachments);
+
+ if (!attDir.exists()) {
+ attDir.mkdirs();
+ log.info("Dir for attachments created");
+ }
+ } else {
+ System.err
+ .println("Your properties file lacks of pathToMedia property. It will not run properly ! Please update "
+ + FileMediaDataSource.propFileName);
+ }
+ }
+
+ public WikiAttachment getAttachment(String pageName, String attachementName) {
+ return getAttachment(pageName, attachementName,
+ getLastAttachmentVersion(pageName, attachementName));
+ }
+
+ public WikiAttachment getAttachment(String pageName,
+ String attachementName, int version) {
+
+ String[] tokens = attachementName.split("\\.");
+
+ Properties props = getAttProps(pageName, attachementName, false);
+
+ if (props == null) {
+ return null;
+ }
+
+ String user = props.getProperty(version + ".author");
+
+ File file = new File(
+ pathToAttachments
+ + "/"
+ + pageName
+ + "-att/"
+ + attachementName
+ + "-dir/"
+ + version
+ + "."
+ + ((attachementName.indexOf(".") != -1) ? tokens[tokens.length - 1]
+ : "bin"));
+
+ FileInputStream fis;
+ try {
+ fis = new FileInputStream(file);
+ return new WikiAttachment(attachementName, new Date(file
+ .lastModified()), user, file.length(), fis, version);
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ return null;
+ }
+
+ }
+
+ public int getLastAttachmentVersion(String pageName, String attachementName) {
+
+ Properties props = getAttProps(pageName, attachementName, false);
+
+ if (props == null)
+ return -1;
+
+ // looking for the newest version
+ int version = 1;
+
+ while (props.getProperty((version + 1) + ".author") != null) {
+ version++;
+ }
+
+ return version;
+ }
+
+ public long getAttachmentSize(String pageName, String attachementName,
+ int version) {
+ String[] tokens = attachementName.split("\\.");
+
+ File file = new File(
+ pathToAttachments
+ + "/"
+ + pageName
+ + "-att/"
+ + attachementName
+ + "-dir/"
+ + version
+ + "."
+ + ((attachementName.indexOf(".") != -1) ? tokens[tokens.length - 1]
+ : "bin"));
+
+ return file.length();
+ }
+
+ public void setWikiEngine(WikiEngine wikiEngine) {
+ if (langCode == null)
+ langCode = wikiEngine.defaultLangugeCode;
+ }
+
+ public synchronized boolean deleteAttachment(String pageName,
+ String attachmentName) {
+
+ String attName = pathToAttachments + "/" + pageName + "-att/"
+ + attachmentName + "-dir";
+ String attTrashNameBase = pathToAttTrash + "/" + pageName + "-att/"
+ + attachmentName + "-dir";
+ String attTrashName = attTrashNameBase;
+
+ // create dirs to trash
+ File trashFileDir = new File(pathToAttTrash + "/" + pageName + "-att/");
+ if (!trashFileDir.exists()) {
+ trashFileDir.mkdirs();
+ }
+
+ // moving file directory
+ File attFile = new File(attName);
+
+ if (attFile.exists()) {
+
+ // look if att dir is already in trash (add i-bak)
+ File attTrashFile = new File(attTrashName);
+
+ int i = 0;
+
+ if (attTrashFile.exists()) {
+ while (attTrashFile.exists()) {
+ attTrashName = attTrashNameBase + "-" + (i++) + "-bak";
+ attTrashFile = new File(attTrashName);
+ }
+
+ }
+
+ if (!attFile.renameTo(attTrashFile)) {
+ log.error("[ATTACHMENT DS]:Problems with moving " + attName
+ + " to " + attTrashName);
+ return false;
+ }
+
+ return true;
+ } else {
+ log.error("Page " + pageName + " has no " + attachmentName
+ + " attachmnet");
+ return false;
+ }
+ }
+
+ public synchronized boolean deleteAttachments(String pageName) {
+ String attName = pathToAttachments + "/" + pageName + "-att";
+ String attTrashNameBase = pathToAttTrash + "/" + pageName + "-att";
+ String attTrashName = attTrashNameBase;
+
+ // create dirs to trash
+ File trashFileDir = new File(pathToAttTrash + "/" + pageName);
+ if (!trashFileDir.exists()) {
+ trashFileDir.mkdirs();
+ }
+
+ // moving file directory
+ File attFile = new File(attName);
+
+ if (attFile.exists()) {
+ // look if att dir is already in trash (add i-bak)
+ File attTrashFile = new File(attTrashName);
+
+ int i = 0;
+
+ if (attTrashFile.exists()) {
+ while (attTrashFile.exists()) {
+ attTrashName = attTrashNameBase + "-" + (i++) + "-bak";
+ attTrashFile = new File(attTrashName);
+ }
+
+ }
+
+ if (!attFile.renameTo(new File(attTrashName))) {
+ log.error("[ATTACHMENT DS]:Problems with moving " + attName
+ + " to " + attTrashName);
+ return false;
+ }
+
+ return true;
+ } else {
+ log.error("Page " + pageName + " has no attachmnets");
+ return false;
+ }
+ }
+
+ public void addLangCode(String langCode, String langDesc) {
+
+ }
+
+ public void addAttachment(InputStream attFile, String attName, String uid,
+ String user) {
+ String pageName = uid;
+ Properties attProps = getAttProps(pageName, attName, true);
+
+ int lastVersion = 1;
+
+ if (attProps.size() > 0) {
+ // find last version of this file
+ while (attProps.getProperty(lastVersion + ".author") != null) {
+ lastVersion++;
+ }
+ }
+
+ String[] extension = attName.split("\\.");
+ String fileName = pathToAttachments
+ + "/"
+ + pageName
+ + "-att/"
+ + attName
+ + "-dir/"
+ + lastVersion
+ + "."
+ + ((attName.indexOf('.') != -1) ? extension[extension.length - 1]
+ : "bin");
+
+ InputStream oldFile = null;
+ FileOutputStream newFile = null;
+
+ try {
+ newFile = new FileOutputStream(new File(fileName));
+ oldFile = attFile;
+ } catch (FileNotFoundException e) {
+ log.error(e);
+ }
+
+ // writing old file to new one
+ try {
+ byte[] buffer = new byte[BUF_SIZE];
+ int read;
+ while ((read = oldFile.read(buffer)) != -1)
+ newFile.write(buffer, 0, read);
+ } catch (Exception e2) {
+ // Nothing that we can really do. Just send an incomplete
+ // file.
+ } finally {
+ try {
+ newFile.close();
+ oldFile.close();
+ } catch (IOException e) {
+ log.error(e);
+ }
+ }
+
+ attProps.setProperty(lastVersion + ".author", user);
+
+ saveAttProps(attProps, pageName, attName);
+ }
+
+ public Set<String> getAttachmentsSet(String uid) {
+ Set<String> attSet = new HashSet<String>();
+
+ File attDir = new File(pathToAttachments + "/" + uid + "-att");
+
+ if (attDir.exists() && (attDir.listFiles().length > 0)) {
+ File[] attachements = attDir.listFiles();
+
+ for (int i = 0; i < attachements.length; i++) {
+ if ((attachements[i].isDirectory())
+ && (attachements[i].getName().endsWith("-dir"))) {
+
+ String[] tokens = attachements[i].getName().split("/");
+ attSet.add(tokens[tokens.length - 1].substring(0,
+ tokens[tokens.length - 1].length() - 4));
+
+ }
+ }
+ } else {
+ // page has no attachements
+ return null;
+ }
+
+ return attSet;
+ }
+
+ public void setLanguageCode(String langCode) {
+ init(langCode);
+
+ this.langCode = langCode;
+ }
+
+ private Properties getAttProps(String pageName, String attName,
+ boolean createProps) {
+ Properties attProps = new Properties();
+
+ File propFile = new File(pathToAttachments + "/" + pageName + "-att/"
+ + attName + "-dir/");
+
+ if (!propFile.exists()) {
+
+ if (createProps) {
+ // create dirs for this property file
+ propFile.mkdirs();
+ } else {
+ return null;
+ }
+ }
+
+ propFile = new File(pathToAttachments + "/" + pageName + "-att/"
+ + attName + "-dir/attachment.properties");
+
+ try {
+ attProps.load(new FileInputStream(propFile));
+ } catch (IOException ioe) {
+ System.err
+ .println("Cannot read attachment.properties for attachement: "
+ + pathToAttachments
+ + "/"
+ + pageName
+ + "-att/"
+ + attName + "-dir/attachment.properties\n" + ioe);
+ }
+
+ return attProps;
+ }
+
+ private void saveAttProps(Properties props, String pageName, String attName) {
+ try {
+ props.store(new FileOutputStream(new File(pathToAttachments + "/"
+ + pageName + "-att/" + attName
+ + "-dir/attachment.properties")), FileMediaDataSource.SAVE_COMMENT);
+ } catch (Exception ioe) {
+ System.err
+ .println("Cannot store attchement.properties for attachement: "
+ + pathToAttachments
+ + "/"
+ + pageName
+ + "-att/"
+ + attName + "-dir/attachments.properties\n" + ioe);
+ }
+
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/FileDSCommons.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/FileDSCommons.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/FileDSCommons.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,64 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.io.UnsupportedEncodingException;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+
+public class FileDSCommons {
+
+ private static final String SLASH = "/";
+
+ private static final String ENCODING = "UTF-8";
+
+ private static String translatedSlash;
+
+ static {
+ try {
+ translatedSlash = URLEncoder.encode(SLASH, ENCODING);
+ } catch (UnsupportedEncodingException e) {
+ // there's nothing we can do
+ e.printStackTrace();
+ }
+ }
+
+ public static String translateToFileName(String pageName) {
+
+ try {
+ return URLEncoder.encode(pageName, ENCODING).replaceAll(translatedSlash, SLASH);
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ return pageName;
+ }
+ }
+
+ public static String translateToPageName(String fileName) {
+
+ try {
+ return URLDecoder.decode(fileName.replaceAll(SLASH, translatedSlash), ENCODING);
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ return fileName;
+ }
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/FileMediaDataSource.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/FileMediaDataSource.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/FileMediaDataSource.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,1050 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.io.PrintWriter;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
+
+import org.jboss.logging.Logger;
+import org.jboss.wiki.exceptions.DataSourceException;
+import org.jboss.wiki.exceptions.WikiSaveException;
+
+/**
+ * <p>
+ * </p>
+ *
+ */
+public class FileMediaDataSource implements MediaDataSource {
+
+ /**
+ * <p>
+ * Represents ...
+ * </p>
+ *
+ */
+ public final static String SAVE_COMMENT = "Saved by FileDataSource of JBoss Wiki";
+
+ private final static String OTHER_LANG_DIR = "LANG/";
+
+ private String GLOBAL_PROPS = "global.properties";
+
+ private final static String LANG_FILE = "languages.properties";
+
+ public static final String propFileName = "filedatasource.properties";
+
+ private static final String propModFileName = "fileMod.properties";
+
+ private static final String CHARSET = "UTF-8";
+
+ private String pathToMediaTrash;
+
+ private String pathToMedia;
+
+ private Properties pageModProps;
+
+ private File modFile;
+
+ private WikiEngine wikiEngine;
+
+ private Logger log;
+
+ private String langCode = null;
+
+ private Properties globalProps;
+
+ public void setWikiEngine(WikiEngine wikiEngine) {
+ this.wikiEngine = wikiEngine;
+
+ if (langCode == null)
+ langCode = wikiEngine.defaultLangugeCode;
+ }
+
+ public FileMediaDataSource() {
+ init("");
+ }
+
+ private void init(String prefix) {
+ log = Logger.getLogger(FileMediaDataSource.class);
+
+ log.info("Looking for props file !");
+
+ Properties fileDSProps = new Properties();
+
+ try {
+
+ fileDSProps.load(FileMediaDataSource.class
+ .getResourceAsStream(propFileName));
+
+ } catch (IOException ioe) {
+ log.error("Can't load the file " + propFileName + "\n", ioe);
+ }
+
+ loadProperties(fileDSProps, prefix);
+
+ File mainWikiDir = new File(pathToMedia);
+
+ if (!mainWikiDir.exists())
+ mainWikiDir.mkdirs();
+
+ pageModProps = new Properties();
+ modFile = new File(pathToMedia + "/" + propModFileName);
+
+ FileInputStream fis = null;
+
+ try {
+ if (!modFile.exists()) {
+ modFile.createNewFile();
+ }
+
+ fis = new FileInputStream(modFile);
+
+ pageModProps.load(fis);
+
+ } catch (IOException ioe) {
+ log.error("Can't load the file " + propModFileName + "\n", ioe);
+ } finally {
+ try {
+ fis.close();
+ } catch (IOException ioe) {
+ log.error("Can't close input stream \n", ioe);
+ }
+ }
+
+ // create trash directory for deleted pages if it doesn't exists
+
+ pathToMediaTrash = pathToMedia + "/" + MediaDataSource.mediaTrashName;
+
+ File pathToTrashFile = new File(pathToMediaTrash + "/OLD");
+
+ if (!pathToTrashFile.exists()) {
+ pathToTrashFile.mkdirs();
+ }
+
+ }
+
+ private void loadProperties(Properties fileDSProps, String prefix) {
+ if (fileDSProps.getProperty("pathToMedia") != null) {
+ pathToMedia = fileDSProps.getProperty("pathToMedia")
+ + (prefix.length() > 0 ? "/" + prefix : "");
+ log.info("Path to media is: " + pathToMedia);
+
+ File mediaDir = new File(pathToMedia);
+
+ if (!mediaDir.exists()) {
+ mediaDir.mkdirs();
+ log.info("Dir for attachments created");
+ }
+ } else {
+ System.err
+ .println("Your properties file lacks of pathToMedia property. It will not run properly ! Please update "
+ + propFileName);
+ }
+ }
+
+ public void preSave() throws WikiSaveException {
+ // do nothing
+ }
+
+ public void savePage(String uid, WikiPage page) throws WikiSaveException {
+ String uidTranslated = FileDSCommons.translateToFileName(uid);
+
+ if (pageExists(uid)) { // page exists on
+
+ // harddisk - add new
+ // version
+ Properties pageProps = getPageProps(uid);
+
+ pageProps.setProperty(page.getLastVersion() + ".author", page
+ .getLastAuthor().getName());
+
+ try {
+ pageProps.store(new FileOutputStream(new File(pathToMedia
+ + "/OLD/" + uidTranslated + "/page.properties")),
+ "Saved by FileDataSource of JBoss Wiki");
+ } catch (Exception e) {
+ throw new WikiSaveException(e);
+ }
+
+ log.info("Opening files");
+ File pageFile = new File(pathToMedia + "/OLD/" + uidTranslated
+ + "/" + (page.getLastVersion() - 1) + ".txt");
+ File pageOldFile = new File(pathToMedia + "/" + uidTranslated
+ + ".txt");
+
+ PrintWriter pageFileWriter;
+ InputStreamReader pageFileReader;
+
+ try {
+ pageFileWriter = new PrintWriter(pageFile, CHARSET);
+ pageFileReader = new InputStreamReader(new FileInputStream(
+ pageOldFile), CHARSET);
+
+ int b;
+
+ while ((b = pageFileReader.read()) != -1) {
+ pageFileWriter.write(b);
+ }
+
+ pageFile.setLastModified(pageOldFile.lastModified());
+
+ pageFileWriter.close();
+
+ pageOldFile.delete();
+
+ pageFileWriter = new PrintWriter(pageOldFile, CHARSET);
+
+ String pageContent = page.getContent();
+
+ pageFileWriter.write(pageContent);
+ /*
+ * for (int i = 0; i < pageContent.length(); i++) {
+ * pageFileWriter.write((int) pageContent.charAt(i)); }
+ */
+
+ pageFileWriter.close();
+ } catch (FileNotFoundException fnfe) {
+ throw new WikiSaveException(fnfe);
+ } catch (IOException ioe) {
+ throw new WikiSaveException(ioe);
+ }
+
+ } else { // there is no page on disk. We have to create new one.
+
+ try {
+
+ // create needed dirs
+ File newPageFile = new File(pathToMedia + "/OLD/"
+ + uidTranslated);
+ newPageFile.mkdirs();
+
+ // write the page
+ newPageFile = new File(pathToMedia + "/OLD/" + uidTranslated
+ + "/page.properties");
+
+ FileOutputStream pageProps = new FileOutputStream(newPageFile);
+
+ Properties properties = new Properties();
+ properties.setProperty(page.getLastVersion() + ".author", page
+ .getLastAuthor().getName());
+
+ properties.store(pageProps, SAVE_COMMENT);
+
+ pageProps.close();
+
+ String pageDirName = pathToMedia;
+ String[] pageNames = uidTranslated.split("/");
+
+ for (int i = 0; i < pageNames.length - 1; i++) {
+ pageDirName += "/" + pageNames[i];
+ }
+
+ File pageDir = new File(pageDirName);
+
+ pageDir.mkdirs();
+
+ PrintWriter pageWriter = new PrintWriter(new File(pathToMedia
+ + "/" + uidTranslated + ".txt"), CHARSET);
+
+ String pageContent = page.getContent();
+
+ pageWriter.write(pageContent);
+
+ /*
+ * for (int i = 0; i < pageContent.length(); i++) {
+ * pageWriter.write((int) pageContent.charAt(i)); }
+ */
+
+ pageWriter.close();
+
+ } catch (Exception e) {
+ throw new WikiSaveException(e);
+ }
+ }
+
+ }
+
+ public void postSave() throws WikiSaveException {
+ // do nothing
+ }
+
+ public boolean preGet() {
+ return true;
+ }
+
+ public Properties getPageProps(String pageName) {
+ Properties pageProps = new Properties();
+
+ String translatedPageName = FileDSCommons.translateToFileName(pageName);
+ try {
+ FileInputStream fpi = new FileInputStream(new File(pathToMedia
+ + "/OLD/" + translatedPageName + "/page.properties"));
+ pageProps.load(fpi);
+ fpi.close();
+ } catch (IOException ioe) {
+ // There is no prop file for some reson - create one.
+
+ File pagePropsFile = new File(pathToMedia + "/OLD/"
+ + translatedPageName);
+
+ // create dirs
+ pagePropsFile.mkdirs();
+
+ // create file
+ pagePropsFile = new File(pathToMedia + "/OLD/" + translatedPageName
+ + "/page.properties");
+
+ try {
+ pagePropsFile.createNewFile();
+
+ if (pageExists(pageName)) {
+ // if page exists it looks like there is lack of the props
+ // structure
+ FileOutputStream fpo = new FileOutputStream(pagePropsFile);
+
+ pageProps.setProperty("1.author", "unknown");
+ pageProps.store(fpo, SAVE_COMMENT);
+ fpo.close();
+ }
+
+ } catch (IOException e) {
+ log.error(
+ "Cannot create page props file for page: " + pageName,
+ e);
+ }
+ return pageProps;
+ }
+
+ return pageProps;
+ }
+
+ public void saveRolesSet(String uid, Set<String> roles, int action)
+ throws DataSourceException {
+ File rolesFile;
+ try {
+ rolesFile = getRolesFile(uid, action);
+
+ if (rolesFile == null)
+ throw new DataSourceException("Wrong action number");
+
+ } catch (IOException e) {
+ throw new DataSourceException(e);
+ }
+
+ FileOutputStream fos = null;
+ try {
+ fos = new FileOutputStream(rolesFile);
+
+ Properties roleProps = new Properties();
+
+ int i = 1;
+
+ for (String roleName : roles) {
+ roleProps.setProperty("Role." + i++, roleName);
+ }
+
+ roleProps.store(fos, SAVE_COMMENT);
+
+ fos.close();
+ } catch (FileNotFoundException e) {
+ throw new DataSourceException(e);
+ } catch (IOException e) {
+ try {
+ fos.close();
+ } catch (IOException e1) {
+ throw new DataSourceException(e);
+ }
+ throw new DataSourceException(e);
+ }
+
+ }
+
+ private File getRolesFile(String uid, int action) throws IOException {
+ String fileName = (action == MediaDataSource.EDITABLE) ? "editRoles"
+ : (action == MediaDataSource.VIEWABLE) ? "viewRoles" : null;
+
+ if (fileName == null)
+ return null;
+
+ File rolesFile = new File(pathToMedia + "/OLD/"
+ + FileDSCommons.translateToFileName(uid) + "/" + fileName
+ + ".properties");
+
+ if (!rolesFile.exists()) {
+ rolesFile.createNewFile();
+ }
+
+ return rolesFile;
+ }
+
+ private Set<String> getRoles(String uid, int action) throws IOException {
+ Set<String> set = new TreeSet<String>();
+
+ File rolesFile = getRolesFile(uid, action);
+
+ if (rolesFile == null)
+ return null;
+
+ FileInputStream rolesFileIs = new FileInputStream(rolesFile);
+
+ Properties roleProps = new Properties();
+
+ roleProps.load(rolesFileIs);
+
+ int i = 1;
+
+ while (roleProps.getProperty("Role." + i) != null) {
+ set.add(roleProps.getProperty("Role." + i));
+ i++;
+ }
+
+ rolesFileIs.close();
+
+ return set;
+ }
+
+ public WikiPage getPage(String pageName) {
+ // log.info("[WIKI:FileDataSource]: Getting new page: " +
+ // pageName);
+
+ WikiPage page = null;
+
+ File pageFile = new File(pathToMedia + "/"
+ + FileDSCommons.translateToFileName(pageName) + ".txt");
+
+ if (pageFile.exists()) {
+
+ Properties pageProps = getPageProps(pageName);
+
+ if (pageProps != null) {
+
+ int i = 1;
+
+ // get the author of the latest version of page
+ while (pageProps.getProperty(String.valueOf(i + 1) + ".author") != null) {
+ i++;
+ }
+
+ Credentials author = new SimpleCredentials(pageProps
+ .getProperty(String.valueOf(i) + ".author"));
+
+ StringBuilder pageContent = new StringBuilder();
+
+ try {
+ InputStreamReader input = new InputStreamReader(
+ new FileInputStream(pageFile), CHARSET);
+ // FileInputStream input = new FileInputStream(pageFile);
+
+ int nextChr = input.read();
+
+ while (nextChr != -1) {
+ pageContent.append((char) nextChr);
+ nextChr = input.read();
+ }
+ } catch (IOException ioe) {
+ log.error(ioe);
+ }
+
+ Set<String> viewRoles = null;
+ Set<String> editRoles = null;
+
+ try {
+ editRoles = (getRoles(pageName, EDITABLE));
+ } catch (IOException e) {
+ log.error("Couldn't read edit roles for page: " + pageName,
+ e);
+ }
+ try {
+ viewRoles = (getRoles(pageName, VIEWABLE));
+ } catch (IOException e) {
+ log.error("Couldn't read view roles for page: " + pageName,
+ e);
+ }
+
+ int pageMods = getPageMod(pageName);
+
+ page = new WikiPage(pageName, author, pageContent.toString(),
+ i, i, new Date(pageFile.lastModified()), wikiEngine,
+ (pageMods & VIEWABLE) == VIEWABLE,
+ (pageMods & EDITABLE) == EDITABLE, editRoles,
+ viewRoles, pageFile.length(), langCode);
+ }
+ }
+
+ // get Metadata props.
+ if (page != null) // page exists at all
+ page.setMetaDataProps(getMetadataProps(pageName));
+
+ return page;
+
+ }
+
+ public boolean postGet() {
+ return true;
+ }
+
+ public WikiPage getPage(String pageName, String languageCode) {
+ if (languageCode != null) {
+ log
+ .info("As for now, languages aren't supported in the wiki. Please do not use language codes");
+ }
+ return getPage(pageName);
+ }
+
+ public WikiPage getPageAtVersion(WikiPage originPage, String uid,
+ boolean loadContent, int version) {
+
+ /*
+ * Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); long
+ * oldMilis = cal.getTimeInMillis();
+ */
+
+ WikiPage page = null;
+
+ try {
+ page = (WikiPage) originPage.clone();
+ } catch (CloneNotSupportedException e) {
+ log.error(e);
+ }
+
+ if (page != null) {
+ if (page.getLastVersion() < version) {
+ log.info("There is no version " + version + " of page "
+ + page.getName());
+ return null;
+ }
+
+ getContentAtVersion(page, uid, loadContent, version);
+
+ page.setLastAuthor(getAuthorAtVersion(uid, version));
+
+ page.setVersion(version);
+
+ page.setEditDate(getDateAtVersion(uid, version));
+
+ }
+
+ /*
+ * cal.setTime(new Date());
+ *
+ * log.info("PAGE "+page.getName()+" loaded in: "+(cal.getTimeInMillis() -
+ * oldMilis));
+ */
+ return page;
+ }
+
+ public void getContentAtVersion(WikiPage page, String uid,
+ boolean loadContent, int version) {
+ StringBuilder ret = null;
+
+ File pageFile = new File(pathToMedia + "/OLD/"
+ + FileDSCommons.translateToFileName(uid) + "/" + version
+ + ".txt");
+
+ if (loadContent) {
+ try {
+
+ InputStreamReader input = new InputStreamReader(
+ new FileInputStream(pageFile), CHARSET);
+
+ int nextChr = input.read();
+
+ ret = new StringBuilder();
+
+ while (nextChr != -1) {
+ ret.append((char) nextChr);
+ nextChr = input.read();
+ }
+
+ page.setContent(ret.toString());
+ page.setLength(ret.length());
+
+ } catch (IOException ioe) {
+ log.error(ioe);
+ }
+ } else {
+ page.setLength(pageFile.length());
+ page.setContent(null);
+ }
+
+ }
+
+ public Date getDateAtVersion(String pageName, int version) {
+ Date ret = null;
+
+ File pageFile = new File(pathToMedia + "/OLD/" + pageName + "/"
+ + version + ".txt");
+
+ ret = new Date(pageFile.lastModified());
+
+ return ret;
+ }
+
+ public Credentials getAuthorAtVersion(String pageName, int version) {
+ return new SimpleCredentials(getPageProps(pageName).getProperty(
+ version + ".author"));
+ }
+
+ public boolean pageExists(String pageName) {
+
+ File pageFile = new File(pathToMedia + "/"
+ + FileDSCommons.translateToFileName(pageName) + ".txt");
+
+ log.debug("PAGE EXISTS (" + pageName + "): " + pathToMedia + "/"
+ + FileDSCommons.translateToFileName(pageName) + ".txt FILE: "
+ + pageFile.getAbsolutePath());
+ if (pageFile.exists()) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+
+ public Set<String> getAllPageNames() {
+ Set<String> attSet = new HashSet<String>();
+
+ getPageNamesFor("", attSet);
+
+ return attSet;
+ }
+
+ private void getPageNamesFor(String directory, Set<String> attSet) {
+ File attDir = new File(pathToMedia + "/" + directory);
+
+ if (attDir.canRead()) {
+ File[] pageFiles = attDir.listFiles();
+ int i;
+
+ for (i = 0; i < pageFiles.length; i++) {
+ if ((pageFiles[i].isFile())
+ && (pageFiles[i].getName().endsWith(".txt"))) {
+ // String[] tokens = pageFiles[i].getName().split("/");
+ attSet.add((FileDSCommons.translateToPageName(directory)
+ + "/" + FileDSCommons
+ .translateToPageName(pageFiles[i].getName()
+ .substring(
+ 0,
+ pageFiles[i].getName().length()
+ - ".txt".length())))
+ .substring(1));
+ }
+ }
+
+ for (i = 0; i < pageFiles.length; i++) {
+ if ((pageFiles[i].isDirectory())
+ && (!pageFiles[i].getName().endsWith("-att"))) {
+
+ // do not take dirs from OLD, .svn and trash folders
+ if ((!pageFiles[i].getAbsolutePath().equals(
+ pathToMedia + "/OLD"))
+ && (!pageFiles[i].getAbsolutePath().equals(
+ pathToMedia + "/.svn"))
+ && (!pageFiles[i].getAbsolutePath().equals(
+ pathToMedia + "/"
+ + MediaDataSource.mediaTrashName))
+ && (!pageFiles[i]
+ .getAbsolutePath()
+ .equals(
+ pathToMedia
+ + "/"
+ + AttachmentDataSource.attTrashName))
+ && (!pageFiles[i]
+ .getAbsolutePath()
+ .equals(
+ pathToMedia
+ + "/"
+ + OTHER_LANG_DIR
+ .substring(
+ 0,
+ OTHER_LANG_DIR
+ .length() - 1)))) {
+ // get names for subpages
+ getPageNamesFor(directory + "/"
+ + pageFiles[i].getName(), attSet);
+ }
+ }
+ }
+ }
+ }
+
+ public Set<String> getPagesFor(String pageName) {
+ Set<String> pages = new TreeSet<String>();
+
+ File pageDir = new File(pathToMedia + "/"
+ + FileDSCommons.translateToFileName(pageName));
+
+ if ((pageDir.exists()) && (pageDir.isDirectory())) {
+ getPagesInside(pageDir, pages, pageName);
+ }
+
+ return pages;
+ }
+
+ private void getPagesInside(File pageDir, Set<String> pages, String prefix) {
+ File[] subFiles = pageDir.listFiles();
+
+ for (int i = 0; i < subFiles.length; i++) {
+ if ((subFiles[i].isFile())
+ && (subFiles[i].getName().endsWith(".txt"))) {
+ pages.add(prefix
+ + "/"
+ + FileDSCommons.translateToPageName(subFiles[i]
+ .getName().substring(
+ 0,
+ subFiles[i].getName().length()
+ - ".txt".length())));
+ } else if (subFiles[i].isDirectory()) {
+ getPagesInside(subFiles[i], pages, prefix
+ + "/"
+ + FileDSCommons.translateToPageName(subFiles[i]
+ .getName()));
+ }
+ }
+ }
+
+ public int getPageMod(String pageName) {
+ if (pageModProps.getProperty(FileDSCommons
+ .translateToFileName(pageName)) == null) {
+ return (EDITABLE + VIEWABLE);
+ } else {
+ return Integer.valueOf(pageModProps.getProperty(FileDSCommons
+ .translateToFileName(pageName)));
+ }
+ }
+
+ public synchronized void setPageMod(String pageName, int mods) {
+
+ if (mods != (EDITABLE + VIEWABLE)) {
+ pageModProps.setProperty(FileDSCommons
+ .translateToFileName(pageName), String.valueOf(mods));
+ } else {
+ pageModProps.remove(FileDSCommons.translateToFileName(pageName));
+ }
+
+ FileOutputStream fos = null;
+
+ try {
+ fos = new FileOutputStream(modFile);
+ pageModProps.store(fos, SAVE_COMMENT);
+ } catch (IOException ioe) {
+ log.error("Couldn't store mod props: ", ioe);
+ } finally {
+ try {
+ fos.close();
+ } catch (IOException ioe) {
+ log.error("Can't close input stream \n", ioe);
+ }
+ }
+ }
+
+ public synchronized boolean deletePage(String pageName) {
+
+ if (pageExists(pageName)) {
+ // moving page file
+ String pageFileName = pathToMedia + "/" + pageName + ".txt";
+ String pageFileTrashNameBase = pathToMediaTrash + "/" + pageName
+ + ".txt";
+ String pageFileTrashName = pageFileTrashNameBase;
+
+ File pageFile = new File(pageFileName);
+ File pageTrashFile = new File(pageFileTrashName);
+
+ // create dirs to trash
+ File trashFileDir = new File(pathToMediaTrash + "/" + pageName);
+ if (!trashFileDir.exists()) {
+ trashFileDir.mkdirs();
+ }
+
+ // look if page is already in trash (add i-bak)
+ int i = 0;
+
+ if (pageTrashFile.exists()) {
+ while (pageTrashFile.exists()) {
+ pageFileTrashName = pageFileTrashNameBase + "-" + (i++)
+ + "-bak";
+ pageTrashFile = new File(pageFileTrashName);
+ }
+
+ }
+
+ if (!pageFile.renameTo(pageTrashFile)) {
+ log.error("[FileDataSource]: Problems with moving "
+ + pageFileName + " to " + pageFileTrashName);
+ return false;
+ }
+
+ // moving history directory
+
+ String historyDirName = pathToMedia + "/OLD/" + pageName;
+ String historyTrashDirNameBase = pathToMediaTrash + "/OLD/"
+ + pageName;
+ String historyTrashDirName = historyTrashDirNameBase;
+
+ // create dirs to trash (history)
+ trashFileDir = new File(pathToMediaTrash + "/OLD/" + pageName);
+ if (!trashFileDir.exists()) {
+ trashFileDir.mkdirs();
+ }
+
+ pageFile = new File(historyDirName);
+ pageTrashFile = new File(historyTrashDirName);
+
+ // look if history dir is already in trash (add i-bak)
+ i = 0;
+
+ if (pageTrashFile.exists()) {
+ while (pageTrashFile.exists()) {
+ historyTrashDirName = historyTrashDirNameBase + "-" + (i++)
+ + "-bak";
+ pageTrashFile = new File(historyTrashDirName);
+ }
+
+ }
+
+ if (!pageFile.renameTo(pageTrashFile)) {
+ log.error("[FileDataSource]: Problems with moving "
+ + historyDirName + " to " + historyTrashDirName);
+
+ // return back the page history
+ pageFile = new File(pageFileName);
+ pageTrashFile = new File(pageFileTrashName);
+
+ if (!pageTrashFile.renameTo(pageFile)) {
+ System.err
+ .println("[FileDataSource]: ERROR. I've tried moving previously moved page file from the trash, but there was some problem. This is not good and there is nothing i can do about it. The error ocured while moving "
+ + pageFileTrashName + " to " + pageFileName);
+ }
+
+ return false;
+ }
+
+ return true;
+ } else {
+ // no such page
+ log.error("There is now such page: " + pageName);
+ return false;
+ }
+ }
+
+ public Properties getMetadataProps(String uid) {
+
+ if (!pageExists(uid)) {
+ // don't get matedata props for nonexisting page
+ return new Properties();
+ }
+
+ String uidTranslated = FileDSCommons.translateToFileName(uid);
+
+ File propsFile = new File(pathToMedia + "/OLD/" + uidTranslated
+ + "/metadata.properties");
+
+ if (!propsFile.exists()) {
+
+ // create file if it doesn't exist yet
+ try {
+ propsFile.createNewFile();
+ } catch (IOException e) {
+ log.error(e);
+ }
+ }
+
+ Properties props = new Properties();
+ FileInputStream fis = null;
+
+ try {
+ fis = new FileInputStream(propsFile);
+ } catch (FileNotFoundException e1) {
+ log.error(e1);
+ }
+
+ try {
+ props.load(fis);
+ } catch (IOException e) {
+ log.error(e);
+ }
+
+ try {
+ fis.close();
+ } catch (IOException e) {
+ log.error(e);
+ }
+
+ return props;
+ }
+
+ public void saveMetadataProps(String uid, Properties props) {
+ getMetadataProps(uid); // this will create file if needed.
+
+ File propsFile = new File(pathToMedia + "/OLD/"
+ + FileDSCommons.translateToFileName(uid)
+ + "/metadata.properties");
+
+ FileOutputStream fos = null;
+
+ try {
+ fos = new FileOutputStream(propsFile);
+ } catch (FileNotFoundException e) {
+ log.error(e);
+ }
+
+ try {
+ props.store(fos, SAVE_COMMENT);
+ } catch (IOException e) {
+ log.error(e);
+ }
+
+ try {
+ fos.close();
+ } catch (IOException e) {
+ log.error(e);
+ }
+ }
+
+ public void setLanguageCode(String langCode) {
+ init(OTHER_LANG_DIR + langCode);
+
+ this.langCode = langCode;
+ }
+
+ public Map<String, String> getAvailableLanguages() {
+ Properties props = new Properties();
+
+ Map<String, String> map = new TreeMap<String, String>();
+
+ map.put(wikiEngine.defaultLangugeCode, wikiEngine.getAllLanguageCodes()
+ .get(wikiEngine.defaultLangugeCode));
+
+ try {
+ File f = new File(pathToMedia + "/" + LANG_FILE);
+
+ if (!f.exists()) {
+ f.createNewFile();
+ }
+
+ FileInputStream fis = new FileInputStream(f);
+
+ props.load(fis);
+
+ HashMap mapd = new HashMap(props);
+
+ map.putAll((Map<String, String>) mapd);
+ } catch (IOException e) {
+ log.error("Couldn't load properties with language list", e);
+ }
+
+ return map;
+ }
+
+ public void addLangCode(String langCode, String langDesc) {
+ Properties props = new Properties();
+
+ props.putAll(getAvailableLanguages());
+
+ props.put(langCode, langDesc);
+
+ try {
+ File f = new File(pathToMedia + "/" + LANG_FILE);
+
+ FileOutputStream fos = new FileOutputStream(f);
+
+ props.store(fos, SAVE_COMMENT);
+ } catch (IOException e) {
+ log.error("Couldn't save properties with language list", e);
+ }
+
+ }
+
+ public String getLangCode() {
+ return langCode;
+ }
+
+ private void refreshGlobalProps() throws IOException {
+ if (globalProps == null) {
+ globalProps = new Properties();
+ }
+ File f = new File(pathToMedia + "/" + GLOBAL_PROPS);
+
+ if (!f.exists()) {
+ f.createNewFile();
+ }
+
+ FileInputStream fis = new FileInputStream(f);
+
+ globalProps.load(fis);
+
+ fis.close();
+ }
+
+ public synchronized void setGlobalProperty(String key, String value)
+ throws DataSourceException {
+ try {
+ refreshGlobalProps();
+
+ globalProps.setProperty(key, value);
+
+ saveGlobalProps();
+ } catch (IOException e) {
+ throw new DataSourceException(e);
+ }
+ }
+
+ private void saveGlobalProps() throws IOException {
+ if (globalProps == null) {
+ globalProps = new Properties();
+ }
+ File f = new File(pathToMedia + "/" + GLOBAL_PROPS);
+
+ if (!f.exists()) {
+ f.createNewFile();
+ }
+
+ FileOutputStream fos = new FileOutputStream(f);
+
+ globalProps.store(fos, SAVE_COMMENT);
+
+ fos.close();
+ }
+
+ public synchronized String getGlobalProperty(String key)
+ throws DataSourceException {
+ try {
+ refreshGlobalProps();
+
+ return globalProps.getProperty(key);
+ } catch (IOException e) {
+ throw new DataSourceException(e);
+ }
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/FileWikiPageDictionary.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/FileWikiPageDictionary.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/FileWikiPageDictionary.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,242 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import org.jboss.logging.Logger;
+import org.jboss.wiki.exceptions.PageRenamingException;
+
+public class FileWikiPageDictionary implements WikiPageDictionary {
+
+ private final static String OTHER_LANG_DIR = "LANG/";
+
+ private Properties pageDictionary;
+
+ private Properties pageRevDictionary;
+
+ private File pageDictionaryFile;
+
+ private boolean lock = false;
+
+ private String langCode;
+
+ private Logger log = Logger.getLogger(this.getClass());
+
+ private String pathToMedia;
+
+ public FileWikiPageDictionary() {
+ init("");
+ }
+
+ private void init(String prefix) {
+ log.info("Looking for props file !");
+
+ Properties fileDSProps = new Properties();
+
+ try {
+
+ fileDSProps.load(FileMediaDataSource.class
+ .getResourceAsStream(FileMediaDataSource.propFileName));
+
+ } catch (IOException ioe) {
+ log.error("Can't load the file " + FileMediaDataSource.propFileName + "\n", ioe);
+ }
+
+ loadProperties(fileDSProps, prefix);
+
+ // load dictionary props
+ pageDictionary = new Properties();
+ pageRevDictionary = new Properties();
+
+ // TODO Do not load dictionary YET !
+
+ pageDictionaryFile = new File(pathToMedia + "/dictionary.properties");
+
+ if (!pageDictionaryFile.exists()) {
+ try {
+ pageDictionaryFile.createNewFile();
+ } catch (IOException e) {
+ log.error("Cannot create dictionary file: ", e);
+ }
+ } else {
+ // there is dictionary file. Load props from it
+ FileInputStream is;
+ try {
+ is = new FileInputStream(pageDictionaryFile);
+
+ try {
+ pageDictionary.load(is);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ try {
+ is.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ }
+
+ }
+
+ // create pageRevDictionary - to make it work faster
+
+ Set<Object> keys = pageDictionary.keySet();
+
+ for (Object key : keys) {
+ pageRevDictionary.setProperty(pageDictionary
+ .getProperty((String) key), (String) key);
+ }
+ }
+
+ public void loadProperties(Properties fileDSProps, String prefix) {
+ if (fileDSProps.getProperty("pathToMedia") != null) {
+ pathToMedia = fileDSProps.getProperty("pathToMedia")
+ + (prefix.length() > 0 ? "/" + prefix : "");
+ log.info("Path to media is: " + pathToMedia);
+
+ File mediaDir = new File(pathToMedia);
+
+ if (!mediaDir.exists()) {
+ mediaDir.mkdirs();
+ log.info("Dir for attachments created");
+ }
+ } else {
+ System.err
+ .println("Your properties file lacks of pathToMedia property. It will not run properly ! Please update "
+ + FileMediaDataSource.propFileName);
+ }
+ }
+
+ public Map<String, String> getRenameMapings() {
+ Map<String, String> map = new HashMap<String, String>();
+
+ for (Object uid : pageDictionary.keySet()) {
+ map.put((String) uid, pageDictionary.getProperty((String) uid));
+ }
+
+ return map;
+ }
+
+ public String getRealName(String uid) {
+ while (lock)
+ ; // wait till unlocked (dictionary is changing)
+
+ return (pageDictionary.getProperty(uid) != null) ? pageDictionary
+ .getProperty(uid) : uid;
+ }
+
+ public String getUid(String realName) {
+ while (lock)
+ ; // wait till unlocked (dictionary is changing)
+
+ return (pageRevDictionary.getProperty(realName) != null) ? pageRevDictionary
+ .getProperty(realName)
+ : realName;
+ }
+
+ public synchronized void rename(String uid, String newName)
+ throws PageRenamingException {
+
+ lock = true;
+
+ pageDictionary.setProperty(uid, newName);
+ pageRevDictionary.setProperty(newName, uid);
+
+ saveDictionary();
+
+ log.info("Renamed (uid) " + uid + " to " + newName);
+
+ lock = false;
+ }
+
+ private void saveDictionary() {
+ // synchronize dictionary with file on disk
+ FileOutputStream fos;
+ try {
+ fos = new FileOutputStream(pageDictionaryFile);
+
+ try {
+ pageDictionary.store(fos, FileMediaDataSource.SAVE_COMMENT);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ try {
+ fos.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public boolean uidInDictionary(String uid) {
+ return pageDictionary.contains(uid);
+ }
+
+ public boolean realNameInDictionary(String realName) {
+ return pageRevDictionary.contains(realName);
+ }
+
+ public synchronized void removeDictForPage(String uid)
+ throws PageRenamingException {
+ if (!pageDictionary.containsKey(uid)) {
+ throw new PageRenamingException(
+ "There is no dictionary entry for uid: " + uid);
+ }
+
+ String realName = pageDictionary.getProperty(uid);
+
+ // remove all dict entries
+ pageDictionary.remove(uid);
+ pageRevDictionary.remove(realName);
+
+ saveDictionary();
+ }
+
+ public void setLanguageCode(String langCode) {
+ init(OTHER_LANG_DIR + langCode);
+
+ this.langCode = langCode;
+ }
+
+ public void setWikiEngine(WikiEngine wikiEngine) {
+
+ if (langCode == null)
+ langCode = wikiEngine.defaultLangugeCode;
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/InsidePluginExcecutor.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/InsidePluginExcecutor.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/InsidePluginExcecutor.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,215 @@
+package org.jboss.wiki;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.InvalidPropertiesFormatException;
+import java.util.Iterator;
+import java.util.Properties;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.jboss.logging.Logger;
+import org.jboss.wiki.plugins.HTMLTranslatorParts;
+
+public class InsidePluginExcecutor {
+
+ private static final String attribType1 = "[\\s]+[\\w]+=([\\d]+|true|false),?";
+
+ private static final String attribType2 = "[\\s]+[\\w]+='(\\\\'|[^'])+',?";
+
+ private static final String insidePluginRegex = "\\{(INSERT[\\s]){0,1}[\\s]*[.\\w]+([\\s]+WHERE[\\s]*)?("
+ + attribType1 + "|" + attribType2 + ")*[\\s]*\\}";
+
+ private HashMap<String, WikiInsidePlugin> insidePlugins;
+
+ private Logger log;
+
+ private WikiEngine wikiEngine;
+
+ public InsidePluginExcecutor(WikiEngine wikiEngine) {
+
+ this.wikiEngine = wikiEngine;
+
+ log = Logger.getLogger(this.getClass());
+
+ insidePlugins = new HashMap<String, WikiInsidePlugin>();
+
+ loadInsidePlugins();
+ }
+
+ private void loadInsidePlugins() {
+ Properties props = new Properties();
+
+ try {
+ props.loadFromXML(WikiTypeLoader.class
+ .getResourceAsStream("/WikiInsidePlugins.xml"));
+ } catch (InvalidPropertiesFormatException e) {
+ log.error("WikiInsidePlugins.xml has bad format !", e);
+ } catch (IOException e) {
+ log.error("There is no WikiInsidePlugins.xml file !", e);
+ }
+
+ Iterator it = props.keySet().iterator();
+
+ while (it.hasNext()) {
+ String pluginName = (String) it.next();
+ log.info("Loading inside plugin: " + pluginName + " class: "
+ + props.getProperty(pluginName));
+
+ WikiInsidePlugin wikiInsidePlugin = null;
+
+ try {
+ wikiInsidePlugin = loadObject(props.getProperty(pluginName));
+
+ insidePlugins.put(pluginName, wikiInsidePlugin);
+
+ } catch (InstantiationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (ClassNotFoundException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ }
+
+ private WikiInsidePlugin loadObject(String className)
+ throws InstantiationException, IllegalAccessException,
+ ClassNotFoundException {
+ WikiInsidePlugin wikiInsidePlugin = (WikiInsidePlugin) Thread
+ .currentThread().getContextClassLoader().loadClass(className)
+ .newInstance();
+
+ wikiInsidePlugin.setWikiEngine(wikiEngine);
+
+ return wikiInsidePlugin;
+ }
+
+ public String executeInsidePlugin(String pluginLink, WikiPage wikiPage,
+ WikiSession wikiSession) {
+
+ // old inside plugin regex
+ // "\\{[\\w]+([\\s]+[\\w]+='[\\d\\w\\s]+')*\\s*\\}"
+
+ String localPluginLink = pluginLink;
+
+ WikiInsidePlugin plugin = null;
+
+ log.debug("executing plugin: " + pluginLink);
+
+ if (!localPluginLink.matches(insidePluginRegex)) {
+ // this is not a proper inside plugin link
+
+ return "''INSIDE PLUGIN ERROR: " + pluginLink
+ + " is not a proper plugin link''";
+ }
+
+ plugin = getPluginObject(localPluginLink);
+
+ if (plugin != null) {
+ HashMap<String, String> attributes = extractAttribs(localPluginLink);
+
+ return (plugin.processContent() ? HTMLTranslatorParts.pagePartRegexStart
+ : "")
+ + plugin.process(wikiPage, wikiSession, attributes)
+ + (plugin.processContent() ? HTMLTranslatorParts.pagePartRegexEnd
+ : "");
+ } else
+ return "''INSIDE PLUGIN ERROR: There is no plugin: " + pluginLink
+ + "''";
+
+ }
+
+ private WikiInsidePlugin getPluginObject(String pluginDef) {
+ WikiInsidePlugin wikiInsidePlugin = null;
+
+ if (pluginDef.startsWith("{"))
+ pluginDef = pluginDef.substring(1);
+
+ pluginDef = pluginDef.trim();
+
+ if (pluginDef.startsWith("INSERT")) {
+ pluginDef = pluginDef.substring("INSERT".length());
+ }
+
+ pluginDef = pluginDef.trim();
+
+ int spacePos = pluginDef.indexOf(" ");
+
+ String className = pluginDef.substring(0, (spacePos != -1) ? spacePos
+ : pluginDef.indexOf("}"));
+
+ pluginDef = pluginDef.substring(className.length()).trim();
+
+ log.debug("Plugin name: " + className);
+
+ if (className.indexOf('.') != -1) {
+ // full class name
+ try {
+ wikiInsidePlugin = loadObject(className);
+ } catch (InstantiationException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IllegalAccessException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (ClassNotFoundException e) {
+ // just return null
+ }
+ } else {
+ wikiInsidePlugin = insidePlugins.get(className);
+ }
+
+ return wikiInsidePlugin;
+ }
+
+ private HashMap<String, String> extractAttribs(String pluginDef) {
+
+ HashMap<String, String> attributes = new HashMap<String, String>();
+
+ Matcher matcher = Pattern.compile(attribType1).matcher(pluginDef);
+
+ while (matcher.find()) {
+ String attrib = pluginDef.substring(matcher.start(), matcher.end());
+
+ getAttrib1(attrib.trim(), attributes);
+ }
+
+ matcher = Pattern.compile(attribType2).matcher(pluginDef);
+
+ while (matcher.find()) {
+ String attrib = pluginDef.substring(matcher.start(), matcher.end());
+
+ getAttrib2(attrib.trim(), attributes);
+ }
+
+ return attributes;
+ }
+
+ private void getAttrib1(String attrib, HashMap<String, String> attributes) {
+ // digits or true/false
+ String attribName = attrib.substring(0, attrib.indexOf("="));
+ String attribValue = attrib.substring(attrib.indexOf("=") + 1, attrib
+ .length());
+
+ attributes.put(attribName, attribValue);
+
+ log.debug("new attribute: " + attribName + " " + attribValue);
+ }
+
+ private void getAttrib2(String attrib, HashMap<String, String> attributes) {
+ // string, digits ... also special characters (\' = ')
+
+ String attribName = attrib.substring(0, attrib.indexOf("="));
+ String attribValue = attrib.substring(attrib.indexOf('\'') + 1,
+ attrib.length() - 1).replaceAll("\\\\'", "'");
+
+ attributes.put(attribName, attribValue);
+
+ log.debug("new attribute: " + attribName + " " + attribValue);
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/JBossPortalCredentials.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/JBossPortalCredentials.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/JBossPortalCredentials.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,229 @@
+/**
+ *
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.util.HashSet;
+import java.util.Set;
+import java.util.TreeSet;
+
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+import javax.portlet.RenderRequest;
+import javax.transaction.TransactionManager;
+
+import org.jboss.logging.Logger;
+import org.jboss.portal.identity.IdentityException;
+import org.jboss.portal.identity.MembershipModule;
+import org.jboss.portal.identity.Role;
+import org.jboss.portal.identity.RoleModule;
+import org.jboss.portal.identity.User;
+import org.jboss.portal.identity.UserModule;
+import org.jboss.portal.identity.UserProfileModule;
+import org.jboss.portlet.JBossActionRequest;
+import org.jboss.portlet.JBossRenderRequest;
+
+public class JBossPortalCredentials extends Credentials {
+
+ private final String adminRoleName = "Admin";
+
+ private String name = null;
+
+ private boolean logedIn = false;
+
+ private boolean isAdmin = false;
+
+ private Set<String> roles;
+
+ private Set<Role> allRoles;
+
+ private TransactionManager tm;
+
+ private String email;
+
+ private static final String userModuleCtx = "java:portal/UserModule";
+ private static final String userProfileModuleCtx = "java:/portal/UserProfileModule";
+
+ private static final String roleModulesCtx = "java:portal/RoleModule";
+
+ private static final String membershipModulesCtx = "java:portal/MembershipModule";
+
+ private Logger log = Logger.getLogger(this.getClass());
+
+ public JBossPortalCredentials() {
+
+ }
+
+ public void setRenderRequest(RenderRequest rReq) {
+
+ }
+
+ public static Set<String> getRoleNames(User user, MembershipModule membershipModule) {
+
+ Set<String> ret = new HashSet<String>();
+ try {
+ for (Object roleObj : membershipModule.getRoles(user)) {
+ ret.add(((Role) roleObj).getName());
+ }
+ } catch (IdentityException e) {
+ return ret;
+ }
+
+ return ret;
+ }
+
+ public void setParam(Object param) {
+
+ InitialContext initialContext;
+ RoleModule roleModule = null;
+ UserModule userModule = null;
+ MembershipModule membershipModule = null;
+ UserProfileModule userProfileModule = null;
+
+ try {
+ initialContext = new InitialContext();
+ roleModule = (RoleModule) initialContext
+ .lookup(roleModulesCtx);
+ membershipModule = (MembershipModule) initialContext
+ .lookup(membershipModulesCtx);
+ userModule = (UserModule) initialContext
+ .lookup(userModuleCtx);
+ userProfileModule = (UserProfileModule) initialContext
+ .lookup(userProfileModuleCtx);
+ } catch (NamingException e) {
+ log.error(e);
+
+ // should throw an exception here
+ return;
+ }
+
+
+ if (param instanceof JBossActionRequest) {
+ JBossActionRequest jrReq = (JBossActionRequest) param;
+
+ if (jrReq.getUser() != null) {
+ extractCredentialsFromUser(jrReq.getUser(),
+ userModule,
+ membershipModule,
+ userProfileModule);
+ }
+ } else if (param instanceof JBossRenderRequest) {
+ JBossRenderRequest jrReq = (JBossRenderRequest) param;
+
+ if (jrReq.getUser() != null) {
+ extractCredentialsFromUser(jrReq.getUser(),
+ userModule,
+ membershipModule,
+ userProfileModule);
+ } else {
+ name = "Unknown";
+ }
+ }
+ else {
+ log.error("You are not running JBoss Portal");
+ }
+
+ try {
+ allRoles = roleModule.findRoles();
+ } catch (IdentityException e) {
+ log.error("Couldn't get roles from portal", e);
+ }
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public boolean isAdmin() {
+ return isAdmin;
+ }
+
+ public boolean isLoggedIn() {
+ return logedIn;
+ }
+
+ @Override
+ public boolean isUserInRole(String role) {
+ if (roles != null)
+ return roles.contains(role);
+ else
+ return false;
+ }
+
+ @Override
+ public Set<String> getAllRoles() {
+ Set<String> roleNames = new TreeSet<String>();
+
+ for (Role role : allRoles) {
+ roleNames.add(role.getName());
+ }
+
+ return roleNames;
+ }
+
+ @Override
+ public String getEmail() {
+ return email;
+ }
+
+ /**
+ * Extract attributes from the current user and set the data as instance variables.
+ * If the user passed to this method is null, nothing is extracted and the
+ * methods just returns.
+ * @param user the current user from which data is extracted
+ * @param userModule the user module
+ * @param membershipModule the membership module
+ * @param userProfileModule the user profile module
+ */
+ private void extractCredentialsFromUser(User user,
+ UserModule userModule,
+ MembershipModule membershipModule,
+ UserProfileModule userProfileModule) {
+ if (user != null) {
+
+ // Workaround: The membership module of the JBoss Portal 2.6 does not accept
+ // the User instance from the JBossActionRequest or JBossRenderRequest.
+ // Therefore convert it to an instance the membership module will accept.
+ // See http://jira.jboss.com/jira/browse/JBPORTAL-1570
+ User hibernateUser = null;
+ try {
+ hibernateUser = userModule.findUserById(String.valueOf(user.getId()));
+ } catch (IdentityException e) {
+ log.error("Couldn't convert cached user to Hibernate user.", e);
+ return;
+ }
+
+ try {
+ email = (String) userProfileModule.getProperty(user, User.INFO_USER_EMAIL_REAL);
+ } catch (IdentityException e) {
+ log.error("Couldn't get email from user profile module for user with ID: " + user.getId());
+ return;
+ }
+
+ name = user.getUserName();
+ logedIn = true;
+ isAdmin = getRoleNames(user, membershipModule).contains(adminRoleName);
+ roles = getRoleNames(user, membershipModule);
+ }
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/LanguageDataSource.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/LanguageDataSource.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/LanguageDataSource.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,62 @@
+package org.jboss.wiki;
+
+import java.util.HashMap;
+
+public class LanguageDataSource {
+ private MediaDataSource mediaDataSource;
+ private AttachmentDataSource attachmentDataSource;
+ private WikiPageDictionary wikiPageDictionary;
+ private String languageCode;
+ private HashMap<String, WikiPage> pages;
+ private RenamePageWatcher renamePageWatcher;
+
+ public LanguageDataSource(WikiEngine wikiEngine, String languageCode, MediaDataSource mediaDataSource, AttachmentDataSource attachmentDataSource, WikiPageDictionary wikiPageDictionary) {
+ this.mediaDataSource = mediaDataSource;
+ this.attachmentDataSource = attachmentDataSource;
+ this.wikiPageDictionary = wikiPageDictionary;
+ this.languageCode = languageCode;
+ renamePageWatcher = new RenamePageWatcher(wikiEngine, wikiPageDictionary);
+
+ pages = new HashMap<String, WikiPage>();
+ }
+
+ public AttachmentDataSource getAttachmentDataSource() {
+ return attachmentDataSource;
+ }
+
+ public void setAttachmentDataSource(AttachmentDataSource attachmentDataSource) {
+ this.attachmentDataSource = attachmentDataSource;
+ }
+
+ public MediaDataSource getMediaDataSource() {
+ return mediaDataSource;
+ }
+
+ public void setMediaDataSource(MediaDataSource mediaDataSource) {
+ this.mediaDataSource = mediaDataSource;
+ }
+
+ public WikiPageDictionary getWikiPageDictionary() {
+ return wikiPageDictionary;
+ }
+
+ public void setWikiPageDictionary(WikiPageDictionary wikiPageDictionary) {
+ this.wikiPageDictionary = wikiPageDictionary;
+ }
+
+ public String getLanguageCode() {
+ return languageCode;
+ }
+
+ public void setLanguageCode(String languageCode) {
+ this.languageCode = languageCode;
+ }
+
+ public HashMap<String, WikiPage> getPages() {
+ return pages;
+ }
+
+ public RenamePageWatcher getRenamePageWatcher() {
+ return renamePageWatcher;
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/Media.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/Media.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/Media.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,26 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+public class Media {
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/MediaDataSource.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/MediaDataSource.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/MediaDataSource.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,268 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import org.jboss.wiki.exceptions.DataSourceException;
+import org.jboss.wiki.exceptions.WikiSaveException;
+
+/**
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ *
+ */
+public interface MediaDataSource {
+
+ public final static int EDITABLE = 100;
+
+ public final static int VIEWABLE = 1;
+
+ public static String mediaTrashName = "trash/pages";
+
+ /**
+ * This function is executed before every save.
+ *
+ *
+ * @return true if preSafe function succeded. False if not.
+ */
+ public void preSave() throws WikiSaveException;
+
+ /**
+ * Saves given given wikiPage with language code
+ *
+ * <b>please note languages are still not supported</b>
+ *
+ *
+ * @param page
+ * Page to save (with changed version number, author and content)
+ * @param uid
+ * Page's uid
+ * @return true if page was succesfully saved
+ */
+ public void savePage(String uid, WikiPage page) throws WikiSaveException;
+
+ /**
+ * This function is exeuted after saving page.
+ *
+ * @return true if succeded. False otherwise.
+ */
+ public void postSave() throws WikiSaveException;
+
+ /**
+ * This function is executed before every page get.
+ *
+ *
+ * @return true if succeded. False otherwise.
+ */
+ public boolean preGet();
+
+ /**
+ * Gets page with given page name.
+ *
+ *
+ * @return true if succeded. False otherwise.
+ * @param pageName
+ * Name of the page to get.
+ */
+ public WikiPage getPage(String pageName);
+
+ /**
+ * This function is executed after every page get.
+ *
+ *
+ * @return Desired wiki page or null if it doesn't exists.
+ */
+ public boolean postGet();
+
+ /**
+ * Gets page at given version and with given language code.
+ *
+ * @param originPage
+ * Original page to get version for.
+ * @param loadContent
+ * If true returned page will be loaded with content.
+ * @param version
+ * Version of the page to load.
+ * @return Desired wiki page or null if it doesn't exists. Page will be
+ * loaded with content or not due to loadContent.
+ */
+ public WikiPage getPageAtVersion(WikiPage originPage, String uid,
+ boolean loadContent, int version);
+
+ /**
+ * Checks if given page exists.
+ *
+ * @param pageName
+ * Name of the page you are looking for.
+ * @return true if page exists. False otherwise.
+ */
+ public boolean pageExists(String pageName);
+
+ /**
+ * Loads content to given page at given version.
+ *
+ * @param page
+ * Page to load content to.
+ * @param loadContent
+ * If true it will load content. If false it will do nothing.
+ * @param version
+ * Version of the page to load.
+ */
+ public void getContentAtVersion(WikiPage page, String uid,
+ boolean loadContent, int version);
+
+ /**
+ * Gets all page names.
+ *
+ * @return Set of page names.
+ */
+ public Set<String> getAllPageNames();
+
+ /**
+ * Gets subpages for a given page.
+ *
+ * @param pageName
+ * Page name to get subpages list for.
+ * @return List of subpages for a page pageName
+ */
+ public Set<String> getPagesFor(String pageName);
+
+ /**
+ * Gets rights (editable and/or viewable) for a given page. Result is sum of
+ * apropriate static variables EDITABLE and VIEWABLE
+ *
+ * @param pageName
+ * Name of the page to get rights for.
+ * @return Sum of apropriate static variables EDITABLE and VIEWABLE
+ */
+ public int getPageMod(String pageName);
+
+ /**
+ * Set right for a page.
+ *
+ * @param pageName
+ * Name of the page to set right for.
+ * @param mods
+ * Sum of apropriate static variables EDITABLE and VIEWABLE
+ */
+ public void setPageMod(String pageName, int mods);
+
+ /**
+ * Deletes (or moves to trash) given page
+ *
+ * @param pageName
+ * Name of the page to delete.
+ */
+ public boolean deletePage(String pageName);
+
+ /**
+ * Sets wikiEngine reference
+ *
+ * @param wikiEngine
+ */
+ public void setWikiEngine(WikiEngine wikiEngine);
+
+ /**
+ * Saves roles for given page.
+ *
+ * @param uid
+ * Page uid to save roles to
+ * @param roles
+ * Roles to save
+ * @param action
+ * can be MediaDataSource.EDITABLE or MediaDataSource.VIEWABLE
+ */
+ public void saveRolesSet(String uid, Set<String> roles, int action)
+ throws DataSourceException;
+
+ /**
+ * Save metadata properties for given page.
+ *
+ * @param uid
+ * Page uid to save properties to.
+ */
+ public void saveMetadataProps(String uid, Properties props);
+
+ /**
+ * Gets metadata properties for given page.
+ *
+ * @param uid
+ * Page uid to get properties for.
+ * @return
+ */
+ public Properties getMetadataProps(String uid);
+
+ /**
+ * Set language code for current dataSource.
+ *
+ * @param langCode
+ * code of the language
+ */
+ public void setLanguageCode(String langCode);
+
+ /**
+ * Gets all available languages in this wiki. This should be only called to
+ * default DataSource
+ *
+ * @return Map of sorted language two-letter codes and their descriptions
+ */
+ public Map<String, String> getAvailableLanguages();
+
+ /**
+ * Adds langCode (to descriptor). This should be only called to default
+ * DataSource
+ *
+ * @param langCode
+ * Two-letter language code
+ * @param langDesc
+ * Language description
+ */
+ public void addLangCode(String langCode, String langDesc);
+
+ /**
+ * Get's language code from this datasource
+ *
+ * @return two-letter language code
+ */
+ public String getLangCode();
+
+ /**
+ * Sets global property
+ *
+ * @param key
+ * Key
+ * @param value
+ * Value
+ */
+ public void setGlobalProperty(String key, String value) throws DataSourceException;
+
+ /**
+ * Gets global property
+ *
+ * @param key
+ * Key
+ * @return Value
+ */
+ public String getGlobalProperty(String key) throws DataSourceException;
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/MediaInternalization.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/MediaInternalization.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/MediaInternalization.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,50 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.util.Set;
+
+/**
+ * <p></p>
+ *
+ */
+public interface MediaInternalization {
+/**
+ * <p>Does ...</p>
+ *
+ *
+ * @return
+ * @param pageName
+ * @param languageCode
+ */
+ public WikiPage getPage(String pageName, String languageCode);
+/**
+ * <p>Does ...</p>
+ *
+ *
+ * @return
+ * @param pageName
+ */
+ public Set getLanguageCodes(String pageName);
+}
+
+
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/My.uml2
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/My.uml2 (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/My.uml2 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<uml:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:uml="http://www.eclipse.org/uml2/1.0.0/UML" xmi:id="_9z2dYP1YEdmjPcf-8KGMfA"/>
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/PluginDescriptor.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/PluginDescriptor.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/PluginDescriptor.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,73 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+ package org.jboss.wiki;
+/**
+ *
+ * @author <a href="mailto:dsicore at jboss.org">Damon Sicore</a>
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ * @version $Id$
+ */
+
+/**
+ * <p></p>
+ *
+ */
+public class PluginDescriptor {
+
+/**
+ * <p>Does ...</p>
+ *
+ *
+ * @return
+ */
+ public String getThemeJSP() {
+ // your code here
+ return null;
+ }
+
+/**
+ * <p>Does ...</p>
+ *
+ *
+ * @return
+ */
+ public WikiPage getDefaultDataObject() {
+ // your code here
+ return null;
+ }
+
+/**
+ * <p>Does ...</p>
+ *
+ *
+ * @return
+ */
+ public void refreshPlugins() {
+ // your code here
+
+ }
+/**
+ * <p></p>
+ *
+ */
+ public WikiPlugin wikiPlugin;
+ }
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/RenamePageWatcher.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/RenamePageWatcher.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/RenamePageWatcher.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,141 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.Vector;
+
+import org.jboss.logging.Logger;
+import org.jboss.wiki.exceptions.PageRenamingException;
+
+public class RenamePageWatcher extends Thread {
+ private WikiEngine wikiEngine;
+
+ private boolean runs = false;
+
+ private Vector<String> uids;
+
+ private Vector<String> realNames;
+
+ private WikiPageDictionary wikiPageDictionary;
+
+ private Set<String> pagesToRemove;
+
+ private Logger log = Logger.getLogger(this.getClass());
+
+ public RenamePageWatcher(WikiEngine wikiEngine,
+ WikiPageDictionary wikiPageDictionary) {
+ this.wikiEngine = wikiEngine;
+ this.wikiPageDictionary = wikiPageDictionary;
+ uids = new Vector<String>();
+ realNames = new Vector<String>();
+ pagesToRemove = new HashSet<String>();
+ }
+
+ public void run() {
+ runs = true;
+
+ while (runs) {
+ if (wikiEngine.arePagesEdited()) {
+ try {
+ sleep(60000);
+ } catch (InterruptedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ } else {
+
+ synchronized (wikiEngine) {
+
+ for (int i = 0; i < uids.size(); i++) {
+ try {
+ wikiPageDictionary.rename(uids.get(i), realNames
+ .get(i));
+ } catch (PageRenamingException e) {
+ e.printStackTrace();
+ }
+ }
+
+ // clear tables
+ uids.clear();
+ realNames.clear();
+
+ }
+
+ runs = false;
+
+ for (String pageToRemove : pagesToRemove) {
+ try {
+ wikiPageDictionary.removeDictForPage(pageToRemove);
+ } catch (PageRenamingException e) {
+ log.error("Couldn't remove dictionary for page: "
+ + pageToRemove, e);
+ }
+ }
+
+ // clear pages to remove
+ pagesToRemove.clear();
+ }
+ }
+ }
+
+ public boolean isRuning() {
+ return runs;
+ }
+
+ public void rename(String uid, String realName)
+ throws PageRenamingException {
+ if (uids.contains(uid)) {
+ throw new PageRenamingException("This page is set to be renamed.");
+ } else if (realNames.contains(realName)) {
+ throw new PageRenamingException(
+ "Other page is going to be renamed to the same name.");
+ }
+
+ uids.add(uid);
+ realNames.add(realName);
+ }
+
+ public void stopWatcher() {
+ runs = false;
+ }
+
+ public HashMap<String, String> getPagesWaiting() {
+ HashMap<String, String> pagesWaiting = new HashMap<String, String>();
+
+ for (int i = 0; i < uids.size(); i++) {
+ pagesWaiting.put(uids.get(i), realNames.get(i));
+ }
+
+ return pagesWaiting;
+ }
+
+ public void removeDictForPage(String uid) {
+ pagesToRemove.add(uid);
+ }
+
+ public Set<String> getDictRemovesWaiting() {
+ return new HashSet<String>(pagesToRemove);
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/SimpleCredentials.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/SimpleCredentials.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/SimpleCredentials.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,73 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.util.Set;
+import java.util.TreeSet;
+
+import javax.portlet.ActionRequest;
+import javax.portlet.RenderRequest;
+
+import org.jboss.wiki.Credentials;
+
+public class SimpleCredentials extends Credentials {
+
+ private String name;
+
+ public SimpleCredentials(String name) {
+ this.name = name;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public boolean isLoggedIn() {
+ return false;
+ }
+
+ public boolean isAdmin() {
+ return false;
+ }
+
+ @Override
+ public void setParam(Object param) {
+ // Do nothing
+ }
+
+ @Override
+ public boolean isUserInRole(String role) {
+ return false;
+ }
+
+ @Override
+ public Set<String> getAllRoles() {
+ return new TreeSet<String>();
+ }
+
+ @Override
+ public String getEmail() {
+ return null;
+ }
+
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiAttachment.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiAttachment.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiAttachment.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,76 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Date;
+
+public class WikiAttachment {
+ private Date date;
+
+ private String user;
+
+ private long size;
+
+ private InputStream inputStream;
+
+ private String name;
+
+ private int version;
+
+ public WikiAttachment(String name, Date date, String user, long size,
+ InputStream inputStream, int version) {
+ this.date = date;
+ this.user = user;
+ this.size = size;
+ this.inputStream = inputStream;
+ this.name = name;
+ this.version = version;
+ }
+
+ public Date getDate() {
+ return date;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public long getSize() {
+ return size;
+ }
+
+ public String getUser() {
+ return user;
+ }
+
+ public InputStream getInputStream() {
+ return inputStream;
+ }
+
+ public int getVersion() {
+ return version;
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiCommon.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiCommon.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiCommon.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,188 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.io.IOException;
+import java.util.Set;
+import java.util.TreeSet;
+
+import javax.jms.JMSException;
+import javax.jms.ObjectMessage;
+import javax.jms.Queue;
+import javax.jms.QueueConnectionFactory;
+import javax.jms.QueueSession;
+import javax.naming.InitialContext;
+import javax.naming.NamingException;
+
+import org.jboss.logging.Logger;
+import org.jboss.mx.util.MBeanProxyExt;
+import org.jboss.mx.util.MBeanServerLocator;
+import org.jboss.wiki.exceptions.WikiManagementNotFoundException;
+import org.jboss.wiki.management.EMailNotifier;
+import org.jboss.wiki.management.NotificationMsg;
+import org.jboss.wiki.management.WikiServiceManagement;
+import org.jboss.wiki.plugins.DifferenceEngine;
+import org.jboss.wiki.plugins.WatchListPlugin;
+
+/**
+ * Commons class
+ *
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ *
+ */
+public class WikiCommon {
+
+ public static final String wikiButtons = "!WikiButtons";
+
+ public static final String WIKI_SERVICE_NAME = "wiki:service=wikiService";
+
+ private static Logger log = Logger.getLogger(WikiCommon.class);
+
+ private static WikiServiceManagement wikiServiceMenagement;
+
+ public static WikiServiceManagement getWikiManagement()
+ throws WikiManagementNotFoundException {
+ try {
+ if (wikiServiceMenagement == null)
+ wikiServiceMenagement = (WikiServiceManagement) MBeanProxyExt
+ .create(WikiServiceManagement.class, WIKI_SERVICE_NAME,
+ MBeanServerLocator.locate());
+
+ return wikiServiceMenagement;
+ } catch (Exception e) {
+ throw new WikiManagementNotFoundException(e);
+ }
+ }
+
+ public static void sendNotificationMail(WikiPage page,
+ WikiSession wikiSession, WikiEngine engine, String fromEmail) {
+ try {
+ InitialContext context = new InitialContext();
+
+ // QueueSession sess = null;
+ // Queue queue = null;
+ EMailNotifier notifer = null;
+
+ //String emailLookupString = EMailNotifier.class.getName();
+ String emailLookupString = "wiki/EMailNotifierSLSB/local";
+ try {
+ /*
+ * queue = (Queue) context.lookup("queue/wikiNotifications");
+ * QueueConnectionFactory factory = (QueueConnectionFactory)
+ * context .lookup("java:/ConnectionFactory"); sess =
+ * factory.createQueueConnection().createQueueSession( false,
+ * QueueSession.AUTO_ACKNOWLEDGE);
+ */
+
+ notifer = (EMailNotifier) context.lookup(emailLookupString);
+
+ // if (sess != null) {
+ if (notifer != null) {
+ String notifs = page
+ .getMetaDataProperty(WatchListPlugin.WATCH_PROPERTY);
+
+ String notifsGlobal = engine.getGlobalProperty(
+ WatchListPlugin.WATCH_PROPERTY, page.getLangCode());
+
+ if ((notifs != null && notifs.length() > 0)
+ || (notifsGlobal != null && notifsGlobal.length() > 0)) {
+ Set<String> users = new TreeSet<String>();
+
+ if (notifs != null) {
+ String[] splitedUsers = notifs.split(";");
+
+ for (int i = 1; i < splitedUsers.length; i += 2) {
+ users.add(splitedUsers[i]);
+ }
+ }
+
+ if (notifsGlobal != null) {
+ String[] splitedUsers = notifsGlobal.split(";");
+
+ for (int i = 1; i < splitedUsers.length; i += 2) {
+ users.add(splitedUsers[i]);
+ }
+ }
+
+ page = (WikiPage) page.clone();
+
+ engine.refreshPage(page.getName(), page.getLangCode());
+
+ WikiPage orgPage;
+
+ if (page.getLastVersion() > 1) {
+ orgPage = engine.getByName(page.getName(), null,
+ page.getLastVersion() - 1, page
+ .getLangCode());
+ } else {
+ orgPage = (WikiPage) page.clone();
+ }
+
+ WikiPage pageHtml = engine.getWikiType("htmlClear")
+ .process(page, wikiSession);
+
+ WikiPage link = (WikiPage) page.clone();
+ link.setContent("[" + page.getName() + "]");
+
+ String pageLink = engine.getWikiType("htmlClear")
+ .process(link, wikiSession).getContent();
+
+ DifferenceEngine differenceEngine = new DifferenceEngine(
+ "UTF-8");
+
+ String diffs = "<br />\n<br /><h2>Diff</h2>\n<hr />\n";
+ try {
+ diffs += differenceEngine
+ .colorizeDiff(differenceEngine.makeDiff(
+ orgPage.getContent(), page
+ .getContent()));
+ } catch (IOException e) {
+ log.error(
+ "Eroror generating diffs for email notifs",
+ e);
+ }
+
+ NotificationMsg notifMsg = new NotificationMsg(
+ users,
+ diffs
+ + "<br /><hr />\n<br/>\nThis is notification of page: "
+ + pageLink + "<br/>\n"
+ + pageHtml.getContent(),
+ page.getName(), fromEmail, pageLink);
+ // ObjectMessage msg =
+ // sess.createObjectMessage(notifMsg);
+ // sess.createSender(queue).send(msg);
+ notifer.sendNotification(notifMsg);
+ }
+ } else {
+ log.error("Couldn't create queue session.");
+ }
+ } catch (CloneNotSupportedException e) {
+ log.error(e);
+ }/*
+ * catch (JMSException e) { log.error(e); }
+ */
+ } catch (NamingException e1) {
+ log.error(e1);
+ }
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiContext.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiContext.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiContext.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,78 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+ package org.jboss.wiki;
+
+/**
+ *
+ * @author <a href="mailto:dsicore at jboss.org">Damon Sicore</a>
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ * @version $Id$
+ */
+
+//import org.jboss.portal.core.model.User;
+
+
+/**
+ * <p></p>
+ *
+ */
+public class WikiContext {
+
+/**
+ * <p>Represents ...</p>
+ *
+ */
+ private Credentials user;
+
+/**
+ * <p>Represents ...</p>
+ *
+ */
+ private WikiType requestedType;
+/**
+ * <p></p>
+ *
+ */
+ private WikiSession wikiSession;
+
+ public WikiContext(Credentials user, WikiType requestedType, WikiSession wikiSession) {
+ this.user = user;
+ this.requestedType = requestedType;
+ this.wikiSession = wikiSession;
+ }
+
+ public WikiType getRequestedType() {
+ return requestedType;
+ }
+
+
+ public Credentials getUser() {
+ return user;
+ }
+
+
+ public WikiPage process(WikiPage wikiPage) {
+ return requestedType.process(wikiPage, wikiSession);
+ }
+
+
+ }
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiEngine.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiEngine.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiEngine.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,1256 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
+import java.util.Map.Entry;
+import java.util.concurrent.Semaphore;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.jboss.wiki.exceptions.DataSourceException;
+import org.jboss.wiki.exceptions.EditingNotAllowedException;
+import org.jboss.wiki.exceptions.PageNotEditedException;
+import org.jboss.wiki.exceptions.PageRenamingException;
+import org.jboss.wiki.exceptions.WikiSaveException;
+import org.jboss.wiki.plugins.WatchListPlugin;
+
+import org.jboss.logging.Logger;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+/**
+ *
+ * @author <a href="mailto:dsicore at jboss.org">Damon Sicore</a>
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ * @version $Id$
+ */
+public class WikiEngine {
+
+ private static final String LANGUAGE_CODES_CLASS = "CountryCodes.xml";
+
+ /**
+ * <p>
+ * </p>
+ *
+ */
+ public static String defaultPage = "Main";
+
+ public static final String PROPERTIES_FILENAME = "JBossWiki.properties";
+
+ public static final String DEFAULT_LANGUAGE_PROP = "defaultLanguageCode";
+
+ public String defaultLangugeCode = "EN";
+
+ private HashMap<String, WikiType> wikiTypes;
+
+ private WikiPage noSuchPage;
+
+ private Integer sessionIdExpireTime = 120;
+
+ private int editSessionId = 0;
+
+ private Set<Integer> editedPages;
+
+ // private Semaphore s = new Semaphore(1);
+
+ private Class credentialsClass;
+
+ private Logger log;
+
+ private InsidePluginExcecutor insidePluginExcecutor;
+
+ private Map<String, String> allLanguageCodes;
+
+ private Map<String, String> usedLanguageCodes;
+
+ private Map<String, LanguageDataSource> languageDataSources;
+
+ public boolean pageExists(String pageName, String langCode) {
+ return languageDataSources.get(langCode).getMediaDataSource()
+ .pageExists(getUid(pageName, langCode));
+ }
+
+ /**
+ * <p>
+ * Gets page with default languiage code.
+ * </p>
+ *
+ *
+ * @param pageName
+ * @return
+ * @param wikiContext
+ */
+ public synchronized WikiPage getByName(String pageName,
+ WikiContext wikiContext, String langCode) {
+ return getByName(pageName, wikiContext, languageDataSources
+ .get(langCode));
+ }
+
+ private LanguageDataSource defaultDS() {
+ return languageDataSources.get(defaultLangugeCode);
+ }
+
+ public synchronized WikiPage getByName(String pageName,
+ WikiContext wikiContext, LanguageDataSource dataSource) {
+
+ /*
+ * try { s.acquire(); } catch (InterruptedException e) {
+ * e.printStackTrace(); }
+ */
+
+ String realPageName = getUid(pageName, dataSource.getLanguageCode());
+
+ WikiPage ret = null;
+
+ if (!dataSource.getMediaDataSource().preGet()) {
+ log.error("Couldn't get page");
+ // s.release();
+ return null;
+ }
+
+ if (dataSource.getPages().containsKey(realPageName)) {
+ ret = dataSource.getPages().get(realPageName);
+ } else {
+ ret = dataSource.getMediaDataSource().getPage(realPageName);
+
+ if (ret != null) {
+ ret.setName(pageName);
+
+ ret.setLangCode(dataSource.getMediaDataSource().getLangCode());
+
+ dataSource.getPages().put(realPageName, ret);
+ }
+ }
+
+ if (((wikiContext != null) && (ret != null)
+ && (!ret.isViewable(wikiContext.getUser())) && (!wikiContext
+ .getUser().isAdmin()))) {
+ // s.release();
+ ret = new WikiPage(realPageName, null,
+ "I am sorry, but you are not allowed to see this page", 0,
+ 0, new Date(), this, false, false, null, null, 0,
+ dataSource.getMediaDataSource().getLangCode());
+
+ refreshPage(pageName, dataSource.getLanguageCode());
+
+ return ret;
+ }
+
+ if (!dataSource.getMediaDataSource().postGet()) {
+ log.error("Problems with postGet");
+ }
+
+ if (ret != null) {
+ if (wikiContext != null) {
+ // s.release();
+ return wikiContext.process(ret);
+ } else {
+ // s.release();
+ return ret;
+ }
+ } else {
+ try {
+ ret = (WikiPage) noSuchPage.clone();
+ ret.setName(pageName);
+ ret.setLangCode(dataSource.getMediaDataSource().getLangCode());
+ } catch (CloneNotSupportedException cne) {
+ log.error(cne);
+
+ }
+ if (wikiContext != null) {
+ // s.release();
+ return wikiContext.process(ret);
+ } else {
+ // s.release();
+ return ret;
+ }
+ }
+ }
+
+ public synchronized WikiPage getByName(String pageName,
+ WikiContext wikiContext, int version, String langCode) {
+ return getByName(pageName, wikiContext, version, languageDataSources
+ .get(langCode));
+ }
+
+ public synchronized WikiPage getByName(String pageName,
+ WikiContext wikiContext, int version, LanguageDataSource dataSource) {
+ /*
+ * try { s.acquire(); } catch (InterruptedException e) {
+ * e.printStackTrace(); }
+ */
+
+ String realPageName = getUid(pageName, dataSource.getLanguageCode());
+
+ WikiPage ret = null;
+
+ if (dataSource.getPages().containsKey(realPageName)) {
+ ret = dataSource.getPages().get(realPageName);
+ } else {
+ ret = dataSource.getMediaDataSource().getPage(realPageName);
+
+ ret.setLangCode(dataSource.getMediaDataSource().getLangCode());
+
+ ret.setName(pageName);
+
+ dataSource.getPages().put(realPageName, ret);
+ }
+
+ ret = ret.getPageAtVersion(true, version);
+
+ if (ret != null) {
+ if (wikiContext != null) {
+ // s.release();
+ return wikiContext.process(ret);
+ } else {
+ // s.release();
+ return ret;
+ }
+ } else {
+ // return noSuchPage if there isn't any
+ /*
+ * try { ret = (WikiPage) noSuchPage.clone(); } catch
+ * (CloneNotSupportedException cne) { log.error(cne); } if
+ * (wikiContext != null) { return wikiContext.process(ret); } else {
+ * return ret; }
+ */
+ // s.release();
+ return null;
+ }
+ }
+
+ private void loadLanguageCodes() {
+ allLanguageCodes = new TreeMap<String, String>();
+
+ usedLanguageCodes = new TreeMap<String, String>();
+
+ languageDataSources = new TreeMap<String, LanguageDataSource>();
+
+ try {
+ Document languageXML = DocumentBuilderFactory.newInstance()
+ .newDocumentBuilder().parse(
+ WikiEngine.class.getResourceAsStream("/"
+ + LANGUAGE_CODES_CLASS));
+
+ NodeList nodes = languageXML.getElementsByTagName("country");
+
+ for (int i = 0; i < nodes.getLength(); i++) {
+ Node node = nodes.item(i);
+
+ NodeList countryNodes = node.getChildNodes();
+
+ String desc = null, twoLetterCode = null;
+
+ for (int j = 0; j < countryNodes.getLength(); j++) {
+ Node countryNode = countryNodes.item(j);
+
+ if (countryNode.getNodeName().equals("description")) {
+ desc = unmarshallText(countryNode);
+ } else if (countryNode.getNodeName()
+ .equals("twoLetterCode")) {
+ twoLetterCode = unmarshallText(countryNode);
+ }
+ }
+
+ if (desc != null || twoLetterCode != null)
+ allLanguageCodes.put(twoLetterCode, desc);
+ else {
+ log.error("Problems with country code. Code: "
+ + twoLetterCode + " country: " + desc);
+ }
+ }
+
+ } catch (SAXException e) {
+ log.error("Couldn't parse language codes file", e);
+ } catch (IOException e) {
+ log.error("Couldn't parse language codes file", e);
+ } catch (ParserConfigurationException e) {
+ log.error("Couldn't parse language codes file", e);
+ }
+
+ log.debug("Country codes read from CountryCodes.xml:");
+ for (String country : allLanguageCodes.keySet()) {
+ log.debug("Country: " + country + " : "
+ + allLanguageCodes.get(country));
+ }
+ }
+
+ /**
+ * <p>
+ * Does ...
+ * </p>
+ *
+ *
+ * @return
+ */
+ public void init() {
+ log = Logger.getLogger(WikiEngine.class);
+
+ editedPages = new HashSet<Integer>();
+
+ wikiTypes = new HashMap<String, WikiType>();
+
+ noSuchPage = new WikiPage("", new SimpleCredentials(""),
+ "There is no such page. Click on EDIT to start it.", 0, 0,
+ null, this, true, true, null, null, 0, defaultLangugeCode);
+
+ loadWikiTypes();
+ loadLanguageCodes();
+
+ insidePluginExcecutor = new InsidePluginExcecutor(this);
+
+ Properties jbosswikiprops = new Properties();
+
+ try {
+ jbosswikiprops.load(WikiEngine.class.getResourceAsStream("/"
+ + PROPERTIES_FILENAME));
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ // load all properties
+ if (jbosswikiprops.getProperty("defaultPage") != null) {
+ defaultPage = jbosswikiprops.getProperty("defaultPage");
+ }
+
+ if (jbosswikiprops.getProperty("sessionIdExpireTime") != null) {
+ sessionIdExpireTime = Integer.valueOf(jbosswikiprops
+ .getProperty("sessionIdExpireTime"));
+ }
+
+ if (jbosswikiprops.getProperty(DEFAULT_LANGUAGE_PROP) != null) {
+ defaultLangugeCode = jbosswikiprops
+ .getProperty(DEFAULT_LANGUAGE_PROP);
+ }
+
+ // add default language
+ usedLanguageCodes.put(defaultLangugeCode, allLanguageCodes
+ .get(defaultLangugeCode));
+
+ /*
+ * mediaDataSource = new FileDataSource(); attachementDataSource = new
+ * FileDataSource(); wikiPageDictionary = new FileDataSource();
+ *
+ *
+ */
+
+ MediaDataSource mediaDataSource = null;
+
+ AttachmentDataSource attachmentDataSource = null;
+
+ WikiPageDictionary wikiPageDictionary = null;
+
+ // LOAD data sources
+ if (jbosswikiprops.getProperty("mediaDataSourceClass") != null) {
+ try {
+ mediaDataSource = (MediaDataSource) Thread.currentThread()
+ .getContextClassLoader().loadClass(
+ jbosswikiprops
+ .getProperty("mediaDataSourceClass"))
+ .newInstance();
+ } catch (InstantiationException e) {
+ log.error(e);
+ } catch (IllegalAccessException e) {
+ log.error(e);
+ } catch (ClassNotFoundException e) {
+ log.error(e);
+ }
+ log.info("Loaded mediaDataSource: " + mediaDataSource);
+
+ } else {
+ // if sth went wrong
+ mediaDataSource = new FileMediaDataSource();
+ }
+
+ if (jbosswikiprops.getProperty("attachmentDataSourceClass") != null) {
+ try {
+ attachmentDataSource = (AttachmentDataSource) Class
+ .forName(
+ jbosswikiprops
+ .getProperty("attachmentDataSourceClass"))
+ .newInstance();
+ } catch (InstantiationException e) {
+ log.error(e);
+ } catch (IllegalAccessException e) {
+ log.error(e);
+ } catch (ClassNotFoundException e) {
+ log.error(e);
+ }
+
+ log.info("Loaded attachmentDataSource: " + attachmentDataSource);
+ } else {
+ // if sth went wrong
+ attachmentDataSource = new FileAttachmentDataSource();
+ }
+
+ if (jbosswikiprops.getProperty("wikiPageDictionaryClass") != null) {
+ try {
+ wikiPageDictionary = (WikiPageDictionary) Thread
+ .currentThread()
+ .getContextClassLoader()
+ .loadClass(
+ jbosswikiprops
+ .getProperty("wikiPageDictionaryClass"))
+ .newInstance();
+ } catch (InstantiationException e) {
+ log.error(e);
+ } catch (IllegalAccessException e) {
+ log.error(e);
+ } catch (ClassNotFoundException e) {
+ log.error(e);
+ }
+ log.info("Loaded wikiPageDictionary: " + wikiPageDictionary);
+ } else {
+ // if sth went wrong
+ wikiPageDictionary = new FileWikiPageDictionary();
+ }
+
+ // set wikiEngine in classes
+ mediaDataSource.setWikiEngine(this);
+ attachmentDataSource.setWikiEngine(this);
+ wikiPageDictionary.setWikiEngine(this);
+
+ // create language data source pack for default language
+ LanguageDataSource languageDataSource = new LanguageDataSource(this,
+ defaultLangugeCode, mediaDataSource, attachmentDataSource,
+ wikiPageDictionary);
+ languageDataSources.put(defaultLangugeCode, languageDataSource);
+
+ // load credential class
+ if (jbosswikiprops.getProperty("credentialsClass") != null) {
+ try {
+ credentialsClass = Thread.currentThread()
+ .getContextClassLoader().loadClass(
+ jbosswikiprops.getProperty("credentialsClass"));
+ } catch (ClassNotFoundException e) {
+ log.error("Coudln't load credentials class.", e);
+ }
+
+ if (credentialsClass != null)
+ log.info("Loaded credentialsClass: " + credentialsClass);
+ }
+
+ // if credentialClass didn't load or wasn't set
+ if (credentialsClass == null) {
+ credentialsClass = SimpleCredentials.class;
+ log.info("(SIMPLE)Loaded credentialsClass: " + credentialsClass);
+ }
+
+ // load all languageDSrces (except the default loaded one)
+
+ Map<String, String> langs = defaultDS().getMediaDataSource()
+ .getAvailableLanguages();
+
+ for (String lang : langs.keySet()) {
+ if (!lang.equals(defaultLangugeCode))
+ loadLanguage(lang);
+ }
+
+ }
+
+ /**
+ * <p>
+ * Parses configuration file to get WikiTypes
+ * </p>
+ *
+ *
+ * @return
+ */
+ private void loadWikiTypes() {
+ try {
+ wikiTypes.clear();
+
+ WikiTypeLoader wikiTypeLoader = new WikiTypeLoader(this);
+
+ wikiTypeLoader.parse(WikiTypeLoader.class
+ .getResourceAsStream("/WikiTypes.xml"));
+
+ } catch (Exception se) {
+ log.error("Error while parsing WikiType configuration: ", se);
+ }
+ }
+
+ public void addWikiType(String name, WikiType wikiType) {
+ log.info("Added WikiType: " + name + " Class: " + wikiType);
+ wikiTypes.put(name, wikiType);
+ }
+
+ public WikiType getWikiType(String wikiTypeName) {
+ // System.out
+ // .println("[WIKITYPE REQUEST]: " + wikiTypes.get(wikiTypeName));
+ return wikiTypes.get(wikiTypeName);
+ }
+
+ /**
+ * <p>
+ * </p>
+ *
+ */
+ public WikiEngine() {
+ init();
+ }
+
+ public void refreshPage(String pageName, String langCode) {
+ if (languageDataSources.get(langCode).getPages().containsKey(pageName)) {
+ languageDataSources.get(langCode).getPages().remove(pageName);
+ }
+ }
+
+ public Map<String, Integer> findPages(String searchQuery, String langCode) {
+ // log.info("Starting search: " + searchQuery);
+ WikiSearch wikiSearch = new WikiSearch(searchQuery);
+
+ Map<String, Integer> resPages = new HashMap<String, Integer>();
+
+ log.debug(langCode);
+
+ Set<String> pages = languageDataSources.get(langCode)
+ .getMediaDataSource().getAllPageNames();
+
+ for (String name : pages) {
+ WikiPage temp = getByName(name, null, langCode);
+
+ if (temp != null) {
+ int searchScore;
+
+ // search for pages (add pagename at the beginig of each page so
+ // it can be found)
+ if ((searchScore = wikiSearch.matches((name + " " + temp
+ .getPageContent()).toLowerCase())) > 0) {
+ resPages.put(name, searchScore);
+ }
+ }
+ }
+
+ Object[] entryArr = resPages.entrySet().toArray();
+ // Sorting the resPages by entry values (which are numbers), descending.
+ Arrays.sort(entryArr, new Comparator<Object>() {
+ public int compare(Object entry1, Object entry2) {
+ int i1 = ((Entry<String, Integer>) entry1).getValue();
+ int i2 = ((Entry<String, Integer>) entry2).getValue();
+
+ if (i1 == i2)
+ return 0;
+ return (i1 < i2) ? 1 : -1;
+ }
+ });
+
+ resPages = new LinkedHashMap<String, Integer>();
+
+ for (int i = 0; i < entryArr.length; i++) {
+ Entry<String, Integer> entry = (Entry<String, Integer>) entryArr[i];
+
+ resPages.put(entry.getKey(), entry.getValue());
+ }
+ // ("Search completed");
+ return resPages;
+ }
+
+ public Set<String> getPagesFor(String pageName, String langCode) {
+ Set<String> set = languageDataSources.get(langCode)
+ .getMediaDataSource().getPagesFor(pageName);
+ Set<String> ret = new HashSet<String>();
+
+ for (String page : set) {
+ ret.add(getRealName(page, langCode));
+ }
+
+ return ret;
+ }
+
+ public String executeInsidePlugin(String pluginLink, WikiPage wikiPage,
+ WikiSession wikiSession) {
+
+ return insidePluginExcecutor.executeInsidePlugin(pluginLink, wikiPage,
+ wikiSession);
+
+ }
+
+ public boolean deletePage(String pageName, boolean deleteSubpages,
+ String langCode) {
+ Set<String> subpages = new HashSet<String>();
+
+ MediaDataSource mediaDataSource = languageDataSources.get(langCode)
+ .getMediaDataSource();
+ AttachmentDataSource attachmentDataSource = languageDataSources.get(
+ langCode).getAttachmentDataSource();
+
+ log.info("DELETE SUBPAGES: " + deleteSubpages);
+
+ if (deleteSubpages) {
+ subpages = mediaDataSource.getPagesFor(getUid(pageName, langCode));
+ }
+
+ if (attachmentDataSource.getAttachmentsSet(getByName(
+ getUid(pageName, langCode), null, langCode).getName()) != null) {
+ if (!attachmentDataSource.deleteAttachments(pageName)) {
+ log.error("Couldn't delete attachments of page " + pageName);
+ return false;
+ }
+ }
+
+ boolean ret = true;
+
+ if ((deleteSubpages) && (subpages.size() > 0)) {
+
+ for (String subPage : subpages) {
+ if (!deletePage(subPage, deleteSubpages, langCode)) {
+ log.error("[WikiEngine]: Problems with deleteing subpage: "
+ + subPage);
+ ret = false;
+ }
+ }
+
+ }
+
+ if (deletePage(pageName, langCode)) {
+
+ if (languageDataSources.get(langCode).getPages().containsKey(
+ pageName)) {
+ languageDataSources.get(langCode).getPages().remove(pageName);
+ }
+
+ log.info("Finishing deleting of page " + pageName + " with ret = "
+ + ret);
+
+ return ret;
+ } else {
+ log.error("Problems with deleting page " + pageName);
+ return false;
+ }
+ }
+
+ public String getRealName(String uid, String langCode) {
+ String[] pageTokens = uid.split("/");
+
+ // log.info("Looking at page: (realName) "+uid);
+
+ if (pageTokens.length > 1) {
+ if (!languageDataSources.get(langCode).getWikiPageDictionary()
+ .getRealName(uid).equals(uid)) {
+
+ // this page is in dictionary
+ return languageDataSources.get(langCode)
+ .getWikiPageDictionary().getRealName(uid);
+ } else {
+ // log.info("checking parts");
+ // look if parts of this page are in dictionary
+
+ for (int i = pageTokens.length - 1; i > 0; i--) {
+ String page = "";
+ String suffix = "";
+ for (int j = 0; j < i; j++) {
+ page += "/" + pageTokens[j];
+ }
+
+ // build suffix
+
+ for (int j = i; j < pageTokens.length; j++) {
+ suffix += "/" + pageTokens[j];
+ }
+
+ page = page.substring(1);
+
+ // log.info("Looking at page: (realName) "+page);
+
+ if (!languageDataSources.get(langCode)
+ .getWikiPageDictionary().getRealName(page).equals(
+ page)) // this
+ // page
+ // is
+ // in
+ // dictionary
+ return languageDataSources.get(langCode)
+ .getWikiPageDictionary().getRealName(page)
+ + suffix;
+
+ }
+
+ return uid;
+ }
+ } else
+ return languageDataSources.get(langCode).getWikiPageDictionary()
+ .getRealName(uid);
+ }
+
+ public String getUid(String realName, String langCode) {
+ String[] pageTokens = realName.split("/");
+
+ // log.info("Looking at page: (uid) "+realName);
+
+ if (pageTokens.length > 1) {
+ if (!languageDataSources.get(langCode).getWikiPageDictionary()
+ .getUid(realName).equals(realName)) {
+ // this page is in dictionary
+ return languageDataSources.get(langCode)
+ .getWikiPageDictionary().getUid(realName);
+ } else {
+ // look if parts of this page are in dictionary
+
+ for (int i = pageTokens.length - 1; i > 0; i--) {
+ String page = "";
+ String suffix = "";
+ for (int j = 0; j < i; j++) {
+ page += "/" + pageTokens[j];
+ }
+
+ // build suffix
+
+ for (int j = i; j < pageTokens.length; j++) {
+ suffix += "/" + pageTokens[j];
+ }
+
+ page = page.substring(1);
+
+ // log.info("Looking at page: (uid) "+page);
+
+ if (!languageDataSources.get(langCode)
+ .getWikiPageDictionary().getUid(page).equals(page)) // this
+ // page
+ // is
+ // in
+ // dictionary
+ return languageDataSources.get(langCode)
+ .getWikiPageDictionary().getUid(page)
+ + suffix;
+ }
+
+ return realName;
+ }
+ } else
+ return languageDataSources.get(langCode).getWikiPageDictionary()
+ .getUid(realName);
+ }
+
+ public synchronized void rename(String uid, String newName, String langCode)
+ throws PageRenamingException {
+ if (newName.indexOf("/") != -1) {
+ throw new PageRenamingException(
+ "You can rename only page/subpage name. / is not allowed.");
+ } else if (pageExists(newName, langCode)) {
+ throw new PageRenamingException(
+ "Page with the name you're trying rename to already exists.");
+ }
+
+ if (uid.indexOf("/") != -1) {
+ // renaming subpage - create aprop. newName
+ newName = uid.substring(0, uid.lastIndexOf("/") + 1) + newName;
+ }
+
+ if (!arePagesEdited()) {
+ languageDataSources.get(langCode).getWikiPageDictionary().rename(
+ uid, newName);
+
+ // add opposite translation
+ languageDataSources.get(langCode).getWikiPageDictionary().rename(
+ newName, uid);
+
+ } else {
+ // some pages are edited now - execute watcher
+ languageDataSources.get(langCode).getRenamePageWatcher().rename(
+ uid, newName);
+
+ // add opposite translation
+ languageDataSources.get(langCode).getRenamePageWatcher().rename(
+ newName, uid);
+
+ if (!languageDataSources.get(langCode).getRenamePageWatcher()
+ .isRuning()) {
+ languageDataSources.get(langCode).getRenamePageWatcher()
+ .start();
+ }
+ }
+ }
+
+ public boolean uidInDictionary(String uid, String langCode) {
+ return languageDataSources.get(langCode).getWikiPageDictionary()
+ .uidInDictionary(uid);
+ }
+
+ public boolean realNameInDictionary(String realName, String langCode) {
+ return languageDataSources.get(langCode).getWikiPageDictionary()
+ .realNameInDictionary(realName);
+ }
+
+ public boolean deleteAttachment(String pageName, String attName,
+ String langCode) {
+ return languageDataSources.get(langCode).getAttachmentDataSource()
+ .deleteAttachment(getUid(pageName, langCode), attName);
+ }
+
+ public boolean deleteAttachments(String pageName, String langCode) {
+ return languageDataSources.get(langCode).getAttachmentDataSource()
+ .deleteAttachments(getUid(pageName, langCode));
+ }
+
+ public Set<String> getAttachmentsSet(WikiPage page, String langCode) {
+ return languageDataSources.get(langCode).getAttachmentDataSource()
+ .getAttachmentsSet(getUid(page.getName(), langCode));
+ }
+
+ public int getLastAttachmentVersion(String pageName, String attachmentName,
+ String langCode) {
+ return languageDataSources.get(langCode).getAttachmentDataSource()
+ .getLastAttachmentVersion(getUid(pageName, langCode), attachmentName);
+ }
+
+ public WikiAttachment getAttachment(String pageName,
+ String attachementName, int version, String langCode) {
+ return languageDataSources.get(langCode).getAttachmentDataSource()
+ .getAttachment(getUid(pageName, langCode), attachementName, version);
+ }
+
+ public WikiAttachment getAttachment(String pageName,
+ String attachementName, String langCode) {
+ return languageDataSources.get(langCode).getAttachmentDataSource()
+ .getAttachment(getUid(pageName, langCode), attachementName);
+ }
+
+ public void addAttachment(InputStream attFile, String attName,
+ WikiPage page, String user, String langCode) {
+ languageDataSources.get(langCode).getAttachmentDataSource()
+ .addAttachment(attFile, attName,
+ getUid(page.getName(), langCode), user);
+ }
+
+ public Set<String> getAllPageNames(String langCode) {
+ Set<String> set = languageDataSources.get(langCode)
+ .getMediaDataSource().getAllPageNames();
+ Set<String> translatedSet = new TreeSet<String>();
+
+ for (String page : set) {
+ translatedSet.add(getRealName(page, langCode));
+ }
+
+ return translatedSet;
+ }
+
+ public void preSave(String langCode) throws WikiSaveException {
+ languageDataSources.get(langCode).getMediaDataSource().preSave();
+ }
+
+ public void savePage(Credentials credentials, WikiPage page,
+ String langCode, WikiSession wikiSession) throws WikiSaveException,
+ EditingNotAllowedException {
+
+ if (!page.isEditable(credentials)) {
+ throw new EditingNotAllowedException(
+ "This page is not editable for user: "
+ + credentials.getName());
+ }
+
+ preSave(langCode);
+
+ if (page.getLastVersion() != page.getVersion()) {
+ page.setVersion(page.getLastVersion());
+ }
+
+ WikiType postEditProcess = getWikiType("postedit");
+
+ if (postEditProcess != null) {
+ // there are some plugins for postediting a page
+ page = postEditProcess.process(page, wikiSession);
+ }
+
+ // put processed page to pages map
+ languageDataSources.get(langCode).getPages().put(page.getName(), page);
+
+ if (langCode.equals(defaultLangugeCode)) {
+ languageDataSources.get(langCode).getMediaDataSource().savePage(
+ getUid(page.getName(), langCode), page);
+ } else {
+ languageDataSources.get(langCode).getMediaDataSource().savePage(
+ getUid(page.getName(), langCode), page);
+ }
+
+ postSave(langCode);
+
+ }
+
+ public void postSave(String langCode) throws WikiSaveException {
+ languageDataSources.get(langCode).getMediaDataSource().postSave();
+ }
+
+ public boolean preGet(String langCode) {
+ return languageDataSources.get(langCode).getMediaDataSource().preGet();
+ }
+
+ public boolean postGet(String langCode) {
+ return languageDataSources.get(langCode).getMediaDataSource().postGet();
+ }
+
+ public WikiPage getPageAtVersion(WikiPage originPage, boolean loadContent,
+ String languageCode, int version) {
+ return languageDataSources.get(languageCode).getMediaDataSource()
+ .getPageAtVersion(originPage,
+ getUid(originPage.getName(), languageCode),
+ loadContent, version);
+ }
+
+ public WikiPage getPageAtVersion(WikiPage originPage, boolean loadContent,
+ int version, String langCode) {
+ return languageDataSources.get(langCode).getMediaDataSource()
+ .getPageAtVersion(originPage,
+ getUid(originPage.getName(), langCode), loadContent,
+ version);
+ }
+
+ public void getContentAtVersion(WikiPage page, boolean loadContent,
+ int version, String langCode) {
+ languageDataSources.get(langCode).getMediaDataSource()
+ .getContentAtVersion(page, getUid(page.getName(), langCode),
+ loadContent, version);
+ }
+
+ public int getPageMod(String pageName, String langCode) {
+ return languageDataSources.get(langCode).getMediaDataSource()
+ .getPageMod(pageName);
+ }
+
+ public void setPageMod(String pageName, int mods, String langCode) {
+ languageDataSources.get(langCode).getMediaDataSource().setPageMod(
+ pageName, mods);
+ }
+
+ public boolean deletePage(String pageName, String langCode) {
+ languageDataSources.get(langCode).getMediaDataSource().setPageMod(
+ getUid(pageName, langCode),
+ MediaDataSource.EDITABLE + MediaDataSource.VIEWABLE);
+
+ return languageDataSources.get(langCode).getMediaDataSource()
+ .deletePage(getUid(pageName, langCode));
+ }
+
+ public long getAttachmentSize(String pageName, String attachmentName,
+ int version, String langCode) {
+ return languageDataSources.get(langCode).getAttachmentDataSource()
+ .getAttachmentSize(pageName, attachmentName, version);
+ }
+
+ public synchronized int getEditSessionId() {
+ return editSessionId++;
+ }
+
+ public Integer getSessionIdExpireTime() {
+ return sessionIdExpireTime;
+ }
+
+ public boolean arePagesEdited() {
+ return (editedPages.size() > 0);
+ }
+
+ public void endEditing(Integer editSessionId) throws PageNotEditedException {
+ if (!editedPages.contains(editSessionId)) {
+ throw new PageNotEditedException("Page with sessionid "
+ + editSessionId + " is not beeing edited.");
+ }
+
+ editedPages.remove(editSessionId);
+ }
+
+ public void addEditing(Integer editSessionId) {
+ editedPages.add(editSessionId);
+ }
+
+ /*
+ * public Semaphore getS() { return s; }
+ */
+
+ public HashMap<String, String> getPagesWaiting(String langCode) {
+ return languageDataSources.get(langCode).getRenamePageWatcher()
+ .getPagesWaiting();
+ }
+
+ public Credentials getCredentialsInstance(Object param) {
+ Credentials cred = null;
+
+ log.debug("Getting instance of " + credentialsClass.getName());
+
+ try {
+ cred = (Credentials) credentialsClass.newInstance();
+ cred.setParam(param);
+ } catch (InstantiationException e) {
+ log.error("Couldn't get instance of class "
+ + credentialsClass.getName(), e);
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+
+ return cred;
+ }
+
+ public void saveRolesSet(WikiPage page, Set<String> roles, int action,
+ String langCode) throws DataSourceException {
+ languageDataSources.get(langCode).getMediaDataSource().saveRolesSet(
+ getUid(page.getName(), langCode), roles, action);
+ }
+
+ private String unmarshallText(Node textNode) {
+ StringBuffer buf = new StringBuffer();
+
+ Node n;
+ NodeList nodes = textNode.getChildNodes();
+
+ for (int i = 0; i < nodes.getLength(); i++) {
+ n = nodes.item(i);
+
+ if (n.getNodeType() == Node.TEXT_NODE) {
+ buf.append(n.getNodeValue());
+ }
+ }
+
+ return buf.toString();
+ }
+
+ public Map<String, String> getAllLanguageCodes() {
+ return allLanguageCodes;
+ }
+
+ public Map<String, String> getUsedLanguageCodes() {
+ return usedLanguageCodes;
+ }
+
+ private void loadLanguage(String langCode) {
+ MediaDataSource newMDS = null;
+ AttachmentDataSource newADS = null;
+ WikiPageDictionary newWPD = null;
+
+ Properties jbosswikiprops = new Properties();
+
+ try {
+ jbosswikiprops.load(WikiEngine.class.getResourceAsStream("/"
+ + PROPERTIES_FILENAME));
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ // LOAD data sources
+ if (jbosswikiprops.getProperty("mediaDataSourceClass") != null) {
+ try {
+ newMDS = (MediaDataSource) Thread.currentThread()
+ .getContextClassLoader().loadClass(
+ jbosswikiprops
+ .getProperty("mediaDataSourceClass"))
+ .newInstance();
+ } catch (InstantiationException e) {
+ log.error(e);
+ } catch (IllegalAccessException e) {
+ log.error(e);
+ } catch (ClassNotFoundException e) {
+ log.error(e);
+ }
+ log.info("Loaded mediaDataSource: " + newMDS);
+
+ } else {
+ // if sth went wrong
+ newMDS = new FileMediaDataSource();
+ }
+
+ newMDS.setLanguageCode(langCode);
+
+ if (jbosswikiprops.getProperty("attachmentDataSourceClass") != null) {
+ try {
+ newADS = (AttachmentDataSource) Class
+ .forName(
+ jbosswikiprops
+ .getProperty("attachmentDataSourceClass"))
+ .newInstance();
+ } catch (InstantiationException e) {
+ log.error(e);
+ } catch (IllegalAccessException e) {
+ log.error(e);
+ } catch (ClassNotFoundException e) {
+ log.error(e);
+ }
+
+ log.info("Loaded attachmentDataSource: " + newADS);
+ } else {
+ // if sth went wrong
+ newADS = new FileAttachmentDataSource();
+ }
+
+ newADS.setLanguageCode(langCode);
+
+ if (jbosswikiprops.getProperty("wikiPageDictionaryClass") != null) {
+ try {
+ newWPD = (WikiPageDictionary) Thread
+ .currentThread()
+ .getContextClassLoader()
+ .loadClass(
+ jbosswikiprops
+ .getProperty("wikiPageDictionaryClass"))
+ .newInstance();
+ } catch (InstantiationException e) {
+ log.error(e);
+ } catch (IllegalAccessException e) {
+ log.error(e);
+ } catch (ClassNotFoundException e) {
+ log.error(e);
+ }
+ log.info("Loaded wikiPageDictionary: " + newWPD);
+ } else {
+ // if sth went wrong
+ newWPD = new FileWikiPageDictionary();
+ }
+
+ newWPD.setLanguageCode(langCode);
+
+ // set wikiEngine in classes
+ newMDS.setWikiEngine(this);
+ newADS.setWikiEngine(this);
+ newWPD.setWikiEngine(this);
+
+ LanguageDataSource newLDS = new LanguageDataSource(this, langCode,
+ newMDS, newADS, newWPD);
+
+ languageDataSources.put(langCode, newLDS);
+
+ usedLanguageCodes.put(langCode, allLanguageCodes.get(langCode));
+ }
+
+ /**
+ * Adds new language structure to current datasource.
+ *
+ * @param langCode
+ * two-letter language code
+ * @param langName
+ * language description
+ */
+ public void addNewLanguage(String langCode, String langName) {
+
+ loadLanguage(langCode);
+
+ defaultDS().getMediaDataSource().addLangCode(langCode, langName);
+
+ }
+
+ public void saveMetaProps(Properties props, WikiPage page) {
+ languageDataSources
+ .get(page.getLangCode())
+ .getMediaDataSource()
+ .saveMetadataProps(
+ languageDataSources.get(page.getLangCode())
+ .getWikiPageDictionary().getUid(page.getName()),
+ props);
+
+ page.setMetaDataProps(props);
+ }
+
+ public boolean wikiTypeExists(String wikiTypeName) {
+ return (wikiTypes.get(wikiTypeName) != null);
+ }
+
+ public Properties getMetaDataProps(String realName, String langCode) {
+ return languageDataSources.get(langCode).getMediaDataSource()
+ .getMetadataProps(getUid(realName, langCode));
+ }
+
+ public void removeDictForPage(String pageName, String langCode)
+ throws PageRenamingException {
+ if (!arePagesEdited()) {
+ languageDataSources.get(langCode).getWikiPageDictionary()
+ .removeDictForPage(getUid(pageName, langCode));
+
+ // remove opposite translation
+ languageDataSources.get(langCode).getWikiPageDictionary()
+ .removeDictForPage(pageName);
+ } else {
+ // there are some pages edited - execute watcher
+ languageDataSources.get(langCode).getRenamePageWatcher()
+ .removeDictForPage(getUid(pageName, langCode));
+
+ // remove opposite translation
+ languageDataSources.get(langCode).getRenamePageWatcher()
+ .removeDictForPage(pageName);
+
+ if (!languageDataSources.get(langCode).getRenamePageWatcher()
+ .isRuning()) {
+ languageDataSources.get(langCode).getRenamePageWatcher()
+ .start();
+ }
+ }
+ }
+
+ public Set<String> getDictRemovesWaiting(String langCode) {
+ return languageDataSources.get(langCode).getRenamePageWatcher()
+ .getDictRemovesWaiting();
+ }
+
+ public Map<String, String> getRenameMapings(String langCode) {
+ return languageDataSources.get(langCode).getWikiPageDictionary()
+ .getRenameMapings();
+ }
+
+ /**
+ * Sets global property
+ *
+ * @param key
+ * Key
+ * @param value
+ * Value
+ * @param langCode
+ * Language code
+ */
+ public void setGlobalProperty(String key, String value, String langCode) {
+ try {
+ languageDataSources.get(langCode).getMediaDataSource()
+ .setGlobalProperty(key, value);
+ } catch (DataSourceException e) {
+ log.error(e);
+ }
+ }
+
+ /**
+ * Gets global property
+ *
+ * @param key
+ * Key
+ * @param langCode
+ * Language code
+ * @return Value
+ */
+ public String getGlobalProperty(String key, String langCode) {
+ try {
+ return languageDataSources.get(langCode).getMediaDataSource()
+ .getGlobalProperty(key);
+ } catch (DataSourceException e) {
+ log.error(e);
+ return null;
+ }
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiInsidePlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiInsidePlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiInsidePlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,147 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.io.InputStream;
+import java.util.HashMap;
+import java.util.Properties;
+
+/**
+ *
+ * @author <a href="mailto:dsicore at jboss.org">Damon Sicore</a><br />
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a><br />
+ * <br />
+ * <br />
+ * This class is for making WikiInsidePlugins.<br />
+ * <br />
+ * The only difference is that they are processed in HTMLTranslatorParts plugin and return
+ * String to insert inside showed page.<br />
+ * <br />
+ * WikiSession attributes are the same as in {@link WikiPlugin} <br />
+ * <br />
+ * To add definition of WikiInsidePlugin you need to add
+ * coresponding part to <i>wiki-common/src/etc/WikiInsidePlugins.xml:</i>
+ * <pre>
+ * <entry key="<i>unique plugin name - this will be used in page source</i>"><i>plugin class name</i></entry>
+ * </pre>
+ * @see WikiPlugin
+ */
+public abstract class WikiInsidePlugin {
+
+ protected WikiEngine wikiEngine;
+
+ private Properties pluginProps;
+
+ private String name;
+
+ final static String propFileName = "wikiPlugins.properties";
+
+ /**
+ * Processes the given page, and attributes and return String to show in the apropriate place on the page.
+ *
+ * @param wikiPage Page where from the plugin was executed.
+ * @param wikiSession Session for passing attibutes etc.
+ * @param attributes Attributes given to plugin.
+ * @return String to show.
+ */
+ public abstract String process(final WikiPage wikiPage, WikiSession wikiSession, HashMap<String, String> attributes);
+
+ /**
+ * It's run after initiating plugin.
+ */
+ public abstract void init();
+
+ /**
+ * Sets wikiEngine.
+ *
+ * @param wikiEngine WikiEngine to set.
+ */
+ public void setWikiEngine(WikiEngine wikiEngine) {
+ this.wikiEngine = wikiEngine;
+
+ // we can treat it as "init" function - it's executed after creating instance of plugin
+ // load props
+
+ pluginProps = new Properties();
+
+ try {
+
+ InputStream propsStream = FileMediaDataSource.class.getResourceAsStream(propFileName);
+
+ pluginProps.load(propsStream);
+ }
+ catch (Exception e) {
+ System.err.println("[WikiPlugin]: Cannot load WikiInsidePlugin property file: "+e);
+ }
+ }
+
+ /**
+ * Gets property from wikiPlugins.properties
+ *
+ * @param propertyName Name of the property to get
+ * @return Apripriate property.
+ */
+ protected String getProperty(String propertyName) {
+ return pluginProps.getProperty(propertyName);
+ }
+
+ /**
+ * Returns name of that plugin.
+ *
+ * @return name of current plugin.
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets name of current plugin.
+ *
+ * @param name Name of the plugin.
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ /**Wheather to postprocess what WikiInsidePlugin producess.
+ * @return True if yes false if not
+ */
+ public boolean processContent() {
+ return true;
+ }
+
+ protected Integer getNumericValue(HashMap<String, String> attributes, String valName) {
+ String val = attributes.get(valName);
+
+ if (val != null) {
+ try {
+ return Integer.valueOf(val);
+ } catch (NumberFormatException e) {
+ return null;
+ }
+ }
+ else {
+ return null;
+ }
+ }
+
+ }
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiPage.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiPage.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiPage.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,578 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.io.InputStream;
+import java.io.Serializable;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Properties;
+import java.util.Set;
+import java.util.TreeSet;
+
+import org.jboss.logging.Logger;
+
+import org.jboss.wiki.exceptions.DataSourceException;
+import org.jboss.wiki.exceptions.EditSessionExpired;
+import org.jboss.wiki.exceptions.EditingNotAllowedException;
+import org.jboss.wiki.exceptions.PageNotEditedException;
+import org.jboss.wiki.exceptions.WikiSaveException;
+
+/**
+ * <p>
+ * </p>
+ *
+ */
+/**
+ *
+ * @author <a href="mailto:dsicore at jboss.org">Damon Sicore</a>
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ * @version $Id$
+ */
+public class WikiPage implements Serializable, WikiProperties, Cloneable {
+
+ public static final String OTHER_LANGS = "OTHER_LANGS";
+
+ public static final String METADATA = "MetaData:Properties";
+
+ private static final String LANG = "PAGE_LANG";
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ /* number of minutes after which page lock will expire */
+ private static final int LOCK_TIME = 30;
+
+ private Date lockTime = null;
+
+ private String lockUser;
+
+ private long length = 0;
+
+ private Set<Integer> expiredSessionIds;
+
+ private HashMap<Integer, EditSessionWatcher> editSessionWatchers;
+
+ /**
+ * Temp variables (cleaned after every process ends)
+ */
+ private HashMap<String, Object> tempVariables;
+
+ /**
+ * Permanent variables - lives untiles JBoss Wiki is up
+ */
+ private HashMap<String, Object> permVariables;
+
+ private String name;
+
+ private Logger log;
+
+ private Credentials lastAuthor;
+
+ private int lastVersion;
+
+ private int version;
+
+ private Date editDate;
+
+ private WikiEngine wikiEngine;
+
+ public WikiEngine wikiEngine_1;
+
+ private String pageContent;
+
+ private boolean editable;
+
+ private boolean viewable;
+
+ private Set<String> editRoles;
+
+ private Set<String> viewRoles;
+
+ public WikiPage(String pageName, Credentials pageAuthor,
+ String pageContent, int pageLastVersion, int thisVersion,
+ Date editDate, WikiEngine wikiEngine, boolean viewable,
+ boolean editable, Set<String> editRoles, Set<String> viewRoles,
+ long length, String langCode) {
+
+ tempVariables = new HashMap<String, Object>();
+ permVariables = new HashMap<String, Object>();
+
+ name = pageName;
+ lastAuthor = pageAuthor;
+ this.pageContent = pageContent;
+ lastVersion = pageLastVersion;
+ version = thisVersion;
+ this.editDate = editDate;
+ this.wikiEngine = wikiEngine;
+ this.viewable = viewable;
+ this.editable = editable;
+ expiredSessionIds = new HashSet<Integer>();
+ editSessionWatchers = new HashMap<Integer, EditSessionWatcher>();
+ log = Logger.getLogger(WikiPage.class);
+
+ this.editRoles = (editRoles == null) ? new TreeSet<String>()
+ : editRoles;
+ this.viewRoles = (viewRoles == null) ? new TreeSet<String>()
+ : viewRoles;
+
+ this.length = length;
+
+ setLangCode(langCode);
+
+ }
+
+ public synchronized void save(Credentials credentials,
+ Integer editActionId, String langCode, WikiSession wikiSession) throws EditSessionExpired,
+ WikiSaveException, EditingNotAllowedException {
+
+ if (expiredSessionIds.contains(editActionId)) {
+ throw new EditSessionExpired(
+ "Your edit session have expired. Please edit page once again !");
+ }
+
+ if (editSessionWatchers.get(editActionId) != null) {
+ editSessionWatchers.get(editActionId).stopWatcher();
+ editSessionWatchers.remove(editActionId);
+ }
+
+ wikiEngine.savePage(credentials, this, langCode, wikiSession);
+ }
+
+ public WikiPage getPageAtVersion(boolean loadContent, int version) {
+ if (version == lastVersion) {
+ return this;
+ } else {
+ return wikiEngine.getPageAtVersion(this, loadContent, version,
+ getLangCode());
+ }
+ }
+
+ /**
+ * <p>
+ * Does ...
+ * </p>
+ *
+ *
+ * @return
+ */
+ public String getContent() {
+ return getPageContent();
+ }
+
+ public void showPage() {
+ log.info("Page name: " + getName());
+ log.info("Page author: " + getLastAuthor());
+ log.info("Page version: " + getLastVersion());
+ log.info("Page editdate: " + getEditDate());
+ log.info("Page Content: \n" + getContent());
+ }
+
+ /**
+ * <p>
+ * </p>
+ *
+ */
+ public MediaInternalization mediaInternalization;
+
+ public java.util.Date getEditDate() {
+ return editDate;
+ }
+
+ public void setEditDate(java.util.Date editDate) {
+ this.editDate = editDate;
+ }
+
+ public Credentials getLastAuthor() {
+ return lastAuthor;
+ }
+
+ public void setLastAuthor(Credentials lastAuthor) {
+ this.lastAuthor = lastAuthor;
+ }
+
+ public int getLastVersion() {
+ return lastVersion;
+ }
+
+ public void setLastVersion(int lastVersion) {
+ this.lastVersion = lastVersion;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getPageContent() {
+ if (pageContent == null) {
+ // page wasn't loaded with conent - lets do it
+ wikiEngine.getContentAtVersion(this, true, version, getLangCode());
+ }
+ return pageContent;
+ }
+
+ public void setContent(String pageContent) {
+ this.pageContent = pageContent;
+ }
+
+ @Override
+ public Object clone() throws CloneNotSupportedException {
+ WikiPage clonedPage = new WikiPage(getName(), getLastAuthor(),
+ getPageContent(), getLastVersion(), getVersion(),
+ getEditDate(), wikiEngine, viewable, editable, editRoles,
+ viewRoles, length, getLangCode());
+
+ // copy tempVariables as they are temp only...
+ clonedPage.setTempVariables(new HashMap<String, Object>(tempVariables));
+
+ clonedPage.setPermVariables(permVariables);
+
+ return clonedPage;
+ }
+
+ public void unlock(Credentials user, Integer editSessionId) {
+ log.debug("UNLOCK: " + user.getName() + " save user: " + lockUser);
+
+ if (editSessionWatchers.get(editSessionId) != null) {
+ editSessionWatchers.get(editSessionId).stopWatcher();
+ editSessionWatchers.remove(editSessionId);
+ }
+
+ try {
+ wikiEngine.endEditing(editSessionId);
+ } catch (PageNotEditedException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+
+ if ((user.getName()).equals(lockUser)) {
+ log.debug("Unlocking page");
+ lockTime = null;
+ lockUser = null;
+ }
+ }
+
+ public Date lock(Credentials user, Integer editSessionId) {
+ Date now = new Date();
+ Date expDate = null;
+ Date retDate = lockTime;
+
+ if (this.lockTime != null) {
+ // lets calculete expire date of current lock
+
+ Calendar calExpireDate = Calendar.getInstance();
+ calExpireDate.setTime(this.lockTime);
+ calExpireDate.add(Calendar.MINUTE, LOCK_TIME);
+ expDate = calExpireDate.getTime();
+
+ if (expDate.before(now)) {
+ // lock expired. take it out
+ lockTime = null;
+ lockUser = null;
+ }
+ }
+
+ if (this.lockTime == null) {
+ log.debug("LOCK: " + user.getName());
+
+ // page isn't locked or lock expired. Lets lock it.
+ this.lockTime = now;
+ this.lockUser = user.getName();
+ log.debug("LOCK: " + lockUser);
+ retDate = null;
+ }
+
+ // Add EditSessionWatcher
+ wikiEngine.addEditing(editSessionId);
+ EditSessionWatcher eSW = new EditSessionWatcher(editSessionId,
+ wikiEngine.getSessionIdExpireTime(), this);
+ eSW.start();
+
+ editSessionWatchers.put(editSessionId, eSW);
+
+ return retDate;
+ }
+
+ public String getLockUser() {
+ return lockUser;
+ }
+
+ public int getVersion() {
+ return version;
+ }
+
+ public void setVersion(int version) {
+ this.version = version;
+ }
+
+ public long getLength() {
+ if ((length == 0) && (getPageContent().length() != 0)) {
+ length = getPageContent().length();
+ }
+
+ return length;
+ }
+
+ public void setLength(long length) {
+ this.length = length;
+ }
+
+ public void addAttachement(InputStream attFile, String attName, String user) {
+ wikiEngine.addAttachment(attFile, attName, this, user, getLangCode());
+ }
+
+ public Set<String> getAttachementsSet() {
+ return wikiEngine.getAttachmentsSet(this, getLangCode());
+ }
+
+ public boolean isEditable(Credentials user) {
+ log.debug("Editable: " + user.isAdmin() + " " + editable + " "
+ + checkRoles(user, editRoles));
+
+ return user.isAdmin() || (editable && checkRoles(user, editRoles));
+ }
+
+ public void setEditable(boolean editable) {
+ this.editable = editable;
+
+ wikiEngine.setPageMod(getName(), ((viewable) ? MediaDataSource.VIEWABLE
+ : 0)
+ + ((editable) ? MediaDataSource.EDITABLE : 0), getLangCode());
+ }
+
+ public boolean isViewable(Credentials user) {
+
+ log.debug("Viewable: " + user.isAdmin() + " " + viewable + " "
+ + checkRoles(user, viewRoles));
+
+ return user.isAdmin() || (viewable && checkRoles(user, viewRoles));
+ }
+
+ public boolean isViewableForAll() {
+ return viewable;
+ }
+
+ public boolean isEditableForAll() {
+ return editable;
+ }
+
+ public void setViewable(boolean viewable) {
+ this.viewable = viewable;
+
+ wikiEngine.setPageMod(getName(), ((viewable) ? MediaDataSource.VIEWABLE
+ : 0)
+ + ((editable) ? MediaDataSource.EDITABLE : 0), getLangCode());
+ }
+
+ public void addExpiredSessionId(Integer id) throws PageNotEditedException {
+ expiredSessionIds.add(id);
+ wikiEngine.endEditing(id);
+ }
+
+ public void addTempVariable(String key, Object value,
+ WikiSession wikiSession) {
+ tempVariables.put(wikiSession.getId() + key, value);
+ }
+
+ public Object getTempVariable(String key, WikiSession wikiSession) {
+ return tempVariables.get(wikiSession.getId() + key);
+ }
+
+ public void removeTempVariable(String key, WikiSession wikiSession) {
+ tempVariables.remove(wikiSession.getId() + key);
+ }
+
+ public void clearTempVariables(WikiSession wikiSession) {
+ for (String key : tempVariables.keySet()) {
+ if (key.startsWith(wikiSession.getId())) {
+ tempVariables.remove(key);
+ }
+ }
+ }
+
+ public void addPermVariable(String key, Object value) {
+ // TODO - cannot add METADATA property - tho must be thrown an Exception
+ // or sth.
+ if (!key.equals(WikiPage.METADATA)) {
+ permVariables.put(key, value);
+ }
+ }
+
+ public Object getPermVariable(String key) {
+ return permVariables.get(key);
+ }
+
+ public void removePermVariable(String key) {
+ permVariables.remove(key);
+ }
+
+ public void setEditRoles(Set<String> editRoles) {
+ if (editRoles == null) {
+ this.editRoles.clear();
+ } else {
+ this.editRoles = editRoles;
+ }
+ }
+
+ public void setViewRoles(Set<String> viewRoles) {
+ if (viewRoles == null) {
+ this.viewRoles.clear();
+ } else {
+ this.viewRoles = viewRoles;
+ }
+ }
+
+ public boolean containsEditRole(String role) {
+ return editRoles.contains(role);
+ }
+
+ public boolean containsViewRole(String role) {
+ return viewRoles.contains(role);
+ }
+
+ private boolean checkRoles(Credentials user, Set<String> roleSet) {
+ // if roles are empty - return true
+ if (roleSet == null || roleSet.isEmpty()) {
+ return true;
+ }
+
+ // check if user is in any role
+ for (String role : roleSet) {
+ if (user.isUserInRole(role)) {
+ return true;
+ }
+ }
+
+ // nothing found - return false
+ return false;
+ }
+
+ public void switchEditRole(String role) {
+ if (editRoles.contains(role)) {
+ editRoles.remove(role);
+ } else
+ editRoles.add(role);
+
+ log.info("EDIT ROLES " + editRoles.isEmpty());
+
+ try {
+ wikiEngine.saveRolesSet(this, editRoles, MediaDataSource.EDITABLE,
+ getLangCode());
+ } catch (DataSourceException e) {
+ log.error("Couldn't save edit roles for page: " + getName(), e);
+ }
+ }
+
+ public void switchViewRole(String role) {
+ if (viewRoles.contains(role)) {
+ viewRoles.remove(role);
+ } else
+ viewRoles.add(role);
+
+ log.info("VIEW ROLES " + viewRoles.isEmpty());
+
+ try {
+ wikiEngine.saveRolesSet(this, viewRoles, MediaDataSource.VIEWABLE,
+ getLangCode());
+ } catch (DataSourceException e) {
+ log.error("Couldn't save view roles for page: " + getName(), e);
+ }
+
+ }
+
+ public void setPermVariables(HashMap<String, Object> permVariables) {
+ this.permVariables = permVariables;
+ }
+
+ public void setTempVariables(HashMap<String, Object> tempVariables) {
+ this.tempVariables = tempVariables;
+ }
+
+ /**
+ * Has to be executed explicitely - so user knows he IS changing metaProps
+ *
+ * @param metaProps
+ */
+ public void setMetaDataProps(Properties metaProps) {
+ permVariables.put(METADATA, metaProps);
+ }
+
+ public void setMetaDataProperty(String key, String value) {
+ Properties props = null;
+
+ if (permVariables.get(METADATA) != null) {
+ props = (Properties) permVariables.get(METADATA);
+ } else {
+ props = new Properties();
+ }
+
+ props.setProperty(key, value);
+
+ wikiEngine.saveMetaProps(props, this);
+
+ wikiEngine.refreshPage(getName(), getLangCode());
+ }
+
+ public void resetMetaProps() {
+ if (permVariables.get(METADATA) != null) {
+ permVariables.remove(METADATA);
+ }
+ }
+
+ public String getMetaDataProperty(String key) {
+ if (permVariables.get(METADATA) != null) {
+ return ((Properties) permVariables.get(METADATA)).getProperty(key);
+ } else {
+ return null;
+ }
+ }
+
+ public String getLangCode() {
+ return (String) permVariables.get(LANG);
+ }
+
+ public void setLangCode(String langCode) {
+ permVariables.put(LANG, langCode);
+ }
+
+ public void removeMetaDataProperty(String key) {
+ Properties props = null;
+
+ if (permVariables.get(METADATA) != null) {
+ props = (Properties) permVariables.get(METADATA);
+ } else {
+ props = new Properties();
+ }
+
+ props.remove(key);
+
+ wikiEngine.saveMetaProps(props, this);
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiPageDictionary.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiPageDictionary.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiPageDictionary.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,89 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.util.Map;
+
+import org.jboss.wiki.exceptions.PageRenamingException;
+
+/**
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ *
+ */
+public interface WikiPageDictionary {
+
+ /**Return RealName of given UID - this is what will be shown on the page (what user gets)
+ *
+ * @param uid uid to translate
+ * @return apropriate UID
+ */
+ public String getRealName(String uid);
+
+ /**Return UID of RealName (uid is what JBoss Wiki uses for unique recognition of a page)
+ *
+ * @param realName realName to translate
+ * @return apropriate RealName
+ */
+ public String getUid(String realName);
+
+ /**Function that adds renaming for current page. You have to remember about all the consequences.
+ *
+ * @param uid Uid of a page.
+ * @param newName New name of a page
+ * @throws PageRenamingException If there is page with "newName" etc.
+ */
+ public void rename(String uid, String newName) throws PageRenamingException;
+
+ /**
+ * @param uid
+ * @return True if there is mapping for given uid.
+ */
+ public boolean uidInDictionary(String uid);
+
+ /**
+ * @param realName
+ * @return True if there is mapping for given realName
+ */
+ public boolean realNameInDictionary(String realName);
+
+ /**Removes mapping for given page. If there is no mapping for a page UID = RealName.
+ *
+ * @param uid
+ * @throws PageRenamingException
+ */
+ public void removeDictForPage(String uid) throws PageRenamingException;
+
+ /**Sets wikiEngine reference
+ * @param wikiEngine
+ */
+ public void setWikiEngine(WikiEngine wikiEngine);
+
+ /**Set language code for current dataSource.
+ * @param langCode code of the language
+ */
+ public void setLanguageCode(String langCode);
+
+ /**Get all mapings
+ * @return Map of UID -> RealName
+ */
+ public Map<String, String> getRenameMapings();
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,143 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.io.InputStream;
+import java.util.Properties;
+
+import org.jboss.logging.Logger;
+
+/**
+ *
+ * @author <a href="mailto:dsicore at jboss.org">Damon Sicore</a><br />
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a><br />
+ * <br />
+ * <br />
+ * This class is used for making own plugins, that allow page processing.<br />
+ * <br />
+ * From inside WikiPlugin you can acess WikiEngine, WikiPage you're processing and some session attributes passed to the plugin in WikiSession.<br />
+ * <br />
+ * They are:<br />
+ * <br />
+ * <table>
+ * <tr><th>Attribute</th><th>Type</th><th>What is it?</th></tr>
+ * <tr><td>actionURL</td><td>String</td><td>Action url to create links</td></tr>
+ * <tr><td>hostURL</td><td>String</td><td>Url of the host</td></tr>
+ * <tr><td>credentials</td><td>org.jboss.wiki.Credentials</td><td>Credentials of browsing user</td></tr>
+ * </table>
+ * <br />
+ * Also if you add to actionURL parameter val1 val2 ... valn they will be all added to WikiSesion and passed to plugins.<br />
+ * <br />
+ * To add a plugin to a WikiType you have to add coresponding xml part to
+ * <i>wiki-common/src/etc/WikiTypes.xml</i>:<br />
+ * <pre>
+ * <plugin>
+ * <name><i>plugin name</i></name>
+ * <class><i>plugin class</i><name>
+ * </plugin>
+ * </pre>
+ * @see WikiInsidePlugin
+ */
+public abstract class WikiPlugin {
+
+ protected WikiEngine wikiEngine;
+
+ protected WikiType wikiType;
+
+ private Properties pluginProps;
+
+ private String name;
+
+ final static String propFileName = "wikiPlugins.properties";
+
+ protected Logger log = Logger.getLogger(this.getClass());
+
+ /**Processes given WikiPage and returns processed one.
+ *
+ * @param wikiPage WikiPage to process
+ * @param wikiSession Session for passing attributes and getting some stuff from it.
+ * @return Processed WikiPage
+ */
+ public abstract WikiPage process(final WikiPage wikiPage, WikiSession wikiSession);
+
+ /**
+ * It's run after initiating plugin.
+ */
+ public abstract void init();
+
+ /**
+ * Sets WikiEngine. If you're not sure why would you like to override it, leave that one.
+ *
+ * @param wikiEngine
+ */
+ public void setWikiEngine(WikiEngine wikiEngine) {
+ this.wikiEngine = wikiEngine;
+
+ // we can treat it as "init" function - it's executed after creating instance of plugin
+ // load props
+
+ pluginProps = new Properties();
+
+ try {
+
+ InputStream propsStream = FileMediaDataSource.class.getResourceAsStream(propFileName);
+
+ pluginProps.load(propsStream);
+ }
+ catch (Exception e) {
+ log.error("Cannot load WikiPlugin property file: "+e);
+ }
+ }
+
+ /**
+ * Gets property from wikiPlugins.properties
+ *
+ * @param propertyName Name of the property to get
+ * @return Apripriate property.
+ */
+ protected String getProperty(String propertyName) {
+ return pluginProps.getProperty(propertyName);
+ }
+
+ /**
+ * Returns name of that plugin.
+ *
+ * @return name of current plugin.
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * Sets name of current plugin.
+ *
+ * @param name Name of the plugin.
+ */
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public void setWikiType(WikiType type) {
+ wikiType = type;
+ }
+
+ }
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiProperties.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiProperties.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiProperties.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,62 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+
+/**
+ * <p></p>
+ *
+ */
+/**
+ *
+ * @author <a href="mailto:dsicore at jboss.org">Damon Sicore</a>
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ * @version $Id$
+ */
+public interface WikiProperties {
+
+/**
+ * <p>Represents ...</p>
+ *
+ */
+ boolean EDITABLE = false;
+
+/**
+ * <p>Represents ...</p>
+ *
+ */
+ boolean PRIVATE = false;
+
+/**
+ * <p>Represents ...</p>
+ *
+ */
+ boolean DELETABLE = false;
+
+/**
+ * <p>Represents ...</p>
+ *
+ */
+ boolean EXISTS = false;
+}
+
+
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiSearch.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiSearch.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiSearch.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,102 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.util.StringTokenizer;
+import java.util.Vector;
+
+public class WikiSearch {
+ Vector<String> requestTokens;
+ Vector<String> forbiddenTokens;
+ Vector<String> requiredTokens;
+
+ public WikiSearch(String searchQuery) {
+ requestTokens = new Vector<String>();
+ forbiddenTokens = new Vector<String>();
+ requiredTokens = new Vector<String>();
+
+ StringTokenizer st = new StringTokenizer( searchQuery, " \t," );
+
+
+ //
+ // Parse incoming search string
+ //
+
+ while( st.hasMoreTokens() )
+ {
+ String token = st.nextToken().toLowerCase();
+
+
+ switch( token.charAt(0) )
+ {
+ case '+':
+ token = token.substring(1);
+ requiredTokens.add(token);
+ break;
+
+ case '-':
+ token = token.substring(1);
+ forbiddenTokens.add(token);
+ break;
+
+ default:
+ requestTokens.add(token);
+ break;
+ }
+ }
+ }
+
+ public int matches(String content) {
+ int score = 0;
+
+ for (int i = 0; i < forbiddenTokens.size(); i++) {
+ if (content.indexOf(forbiddenTokens.get(i)) != -1) {
+ // there is forbidden token - return 0
+ return 0;
+ }
+ }
+
+ for (int i = 0; i < requiredTokens.size(); i++) {
+ if (content.indexOf(requiredTokens.get(i)) == -1) {
+ // lack of one of the required tokens - return 0
+ return 0;
+ }
+ }
+
+ /*if (requiredTokens.size() > 0) {
+ // there is at least one requirted token and it has been found
+ return true;
+ }*/
+
+ for (int i = 0; i < requestTokens.size(); i++) {
+ int fromIndex = -1;
+
+ while ((fromIndex = content.indexOf(requestTokens.get(i), fromIndex+1)) != -1) {
+ // found at least one required token
+ score++;
+ }
+ }
+
+ // return counted score
+ return score;
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiSession.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiSession.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiSession.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+public interface WikiSession {
+
+ public static final String ACTION_URL = "actionURL";
+ public static final String CREDENTIALS = "credentials";
+ public static final String HOST_URL = "hostURL";
+ public static final String IS_SECURE = "isSecure";
+
+ public Object getAttribute(String attributeName);
+
+ public void setAttribute(String attributeName, Object attribute);
+
+ public void removeAttribute(String attributeName);
+
+ public String getId();
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiType.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiType.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiType.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,156 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki;
+
+import java.util.Vector;
+
+import org.jboss.logging.Logger;
+
+/**
+ * <p>
+ * </p>
+ *
+ */
+/**
+ *
+ * @author <a href="mailto:dsicore at jboss.org">Damon Sicore</a>
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ * @version $Id$
+ */
+public class WikiType {
+
+ protected String name;
+
+ protected WikiEngine wikiEngine;
+
+ /**
+ * <p>
+ * </p>
+ *
+ */
+ protected WikiContext wikiContext;
+
+ protected Vector<WikiPlugin> plugins = new Vector<WikiPlugin>();
+
+ protected Logger log = Logger.getLogger(this.getClass());
+
+ public void addPlugin(String pluginName, String pluginClass) {
+
+ WikiPlugin plugin = null;
+
+ try {
+ plugin = (WikiPlugin) Thread.currentThread().getContextClassLoader().loadClass(pluginClass).newInstance();
+ } catch (Exception e) {
+ log.error("Error while loading plugin: " + pluginName
+ + "\nclass: " + pluginClass + "\n" + e);
+ }
+
+ if (plugin != null) {
+ plugin.setWikiType(this);
+
+ plugins.add(plugin);
+
+ plugin.setWikiEngine(wikiEngine);
+
+ plugin.setName(pluginName);
+
+ // run init() function
+ plugin.init();
+
+ log.info("Plugin added: "
+ + pluginName + " class: " + pluginClass);
+ }
+
+ }
+
+ /**
+ * <p>
+ * Processes given WikiPage with the apropriate plugins, connected to this
+ * WikiType
+ * </p>
+ *
+ *
+ * @return processed WikiPage (copy - not exact reference)
+ * @param wikiPage
+ * page to process
+ * @param wikiSession
+ * current session
+ */
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ // process through all plugins
+
+ WikiPage newPage = null;
+
+ if (getReference()) {
+ // pass reference
+ newPage = wikiPage;
+ } else {
+ try {
+ newPage = (WikiPage) wikiPage.clone();
+ } catch (CloneNotSupportedException cnse) {
+ log.error("cannot clone the page: " + cnse);
+ }
+ }
+
+ // execute the plugins
+ for (int i = 0; i < plugins.size(); i++) {
+ // log.info("Executing plugin:
+ // "+plugins.get(i).getName());
+ newPage = (plugins.get(i)).process(newPage, wikiSession);
+ }
+
+ // clear session attributes passed in uri
+ int i = 1;
+
+ if (wikiSession != null)
+ while (wikiSession.getAttribute("var" + i) != null) {
+ wikiSession.removeAttribute("var" + i);
+ i++;
+ }
+
+ // remove ALL temp variables for this session (as they are RELLLY temp)
+ newPage.clearTempVariables(wikiSession);
+
+ return newPage;
+ }
+
+ protected boolean getReference() {
+ return false;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ log.info("Setting new WikiType name: " + name);
+ this.name = name;
+ }
+
+ public void setWikiEngine(WikiEngine wikiEngine) {
+ this.wikiEngine = wikiEngine;
+ }
+
+ public String getContentType() {
+ return "text/html";
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiTypeLoader.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiTypeLoader.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/WikiTypeLoader.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,110 @@
+package org.jboss.wiki;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.jboss.logging.Logger;
+import org.jboss.wiki.exceptions.WikiException;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+public class WikiTypeLoader {
+
+ private WikiEngine wikiEngine;
+
+ private Logger log = Logger.getLogger(this.getClass());
+
+ public WikiTypeLoader(WikiEngine wikiEngine) {
+ this.wikiEngine = wikiEngine;
+ }
+
+ public void parse(InputStream xmlFile) throws ParserConfigurationException,
+ SAXException, IOException, DOMException, InstantiationException,
+ IllegalAccessException, ClassNotFoundException {
+ DocumentBuilder db = DocumentBuilderFactory.newInstance()
+ .newDocumentBuilder();
+
+ Document doc = db.parse(xmlFile);
+
+ NodeList wikiTypes = doc.getElementsByTagName("wikiType");
+
+ for (int i = 0; i < wikiTypes.getLength(); i++) {
+ WikiType wikiType = null;
+
+ String wikiTypeName = null;
+
+ Node wikiTypeNode = wikiTypes.item(i);
+
+ NodeList wikiTypeElements = wikiTypeNode.getChildNodes();
+
+ for (int j = 0; j < wikiTypeElements.getLength(); j++) {
+
+ Node elem = wikiTypeElements.item(j);
+
+ if (elem.getNodeName().equals("name")) {
+ if (wikiType != null)
+ wikiType.setName(unmarshallText(elem));
+ else
+ wikiTypeName = unmarshallText(elem);
+ } else if (elem.getNodeName().equals("class")) {
+ wikiType = (WikiType) Thread.currentThread()
+ .getContextClassLoader().loadClass(
+ unmarshallText(elem)).newInstance();
+ wikiType.setWikiEngine(wikiEngine);
+
+ if (wikiTypeName != null)
+ wikiType.setName(wikiTypeName);
+ } else if (elem.getNodeName().equals("plugin")) {
+ NodeList pluginElems = elem.getChildNodes();
+
+ String pluginName = null;
+ String pluginClass = null;
+
+ for (int k = 0; k < pluginElems.getLength(); k++) {
+ Node pluginElem = pluginElems.item(k);
+
+ if (pluginElem.getNodeName().equals("name")) {
+ pluginName = unmarshallText(pluginElem);
+ } else if (pluginElem.getNodeName().equals("class")) {
+ pluginClass = unmarshallText(pluginElem);
+ }
+ }
+
+ if (pluginName != null && pluginClass != null)
+ wikiType.addPlugin(pluginName, pluginClass);
+ else
+ log.error("Cannot read plugin: name: " + pluginName
+ + " class: " + pluginClass + " in WikiType: "
+ + wikiType.getName());
+ }
+ }
+
+ wikiEngine.addWikiType(wikiType.getName(), wikiType);
+ log.info("Added WikiType: " + wikiType.getName());
+ }
+ }
+
+ private String unmarshallText(Node textNode) {
+ StringBuffer buf = new StringBuffer();
+
+ Node n;
+ NodeList nodes = textNode.getChildNodes();
+
+ for (int i = 0; i < nodes.getLength(); i++) {
+ n = nodes.item(i);
+
+ if (n.getNodeType() == Node.TEXT_NODE) {
+ buf.append(n.getNodeValue());
+ }
+ }
+
+ return buf.toString();
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/DataSourceException.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/DataSourceException.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/DataSourceException.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,16 @@
+package org.jboss.wiki.exceptions;
+
+public class DataSourceException extends WikiException {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public DataSourceException(String msg) {
+ super(msg);
+ }
+
+ public DataSourceException(Exception e) {
+ super(e);
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/DataSourceExistsException.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/DataSourceExistsException.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/DataSourceExistsException.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.exceptions;
+
+public class DataSourceExistsException extends WikiException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public DataSourceExistsException(String msg) {
+ super(msg);
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/EditSessionExpired.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/EditSessionExpired.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/EditSessionExpired.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.exceptions;
+
+public class EditSessionExpired extends WikiException {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public EditSessionExpired(String msg) {
+ super(msg);
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/EditingNotAllowedException.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/EditingNotAllowedException.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/EditingNotAllowedException.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.exceptions;
+
+public class EditingNotAllowedException extends WikiException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public EditingNotAllowedException(String msg) {
+ super(msg);
+ }
+
+ public EditingNotAllowedException(Exception e) {
+ super(e);
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageAlreadyExistsException.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageAlreadyExistsException.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageAlreadyExistsException.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.exceptions;
+
+public class PageAlreadyExistsException extends WikiException {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public PageAlreadyExistsException (String msg) {
+ super(msg);
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageDoesntExistException.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageDoesntExistException.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageDoesntExistException.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.exceptions;
+
+public class PageDoesntExistException extends WikiException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public PageDoesntExistException(String msg) {
+ super(msg);
+ }
+
+ public PageDoesntExistException(Exception e) {
+ super(e);
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageNotEditedException.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageNotEditedException.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageNotEditedException.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.exceptions;
+
+public class PageNotEditedException extends WikiException {
+ /**
+ *
+ */
+ private static final long serialVersionUID = -110717611960806757L;
+
+ public PageNotEditedException(String msg) {
+ super(msg);
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageNotExist.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageNotExist.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageNotExist.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.exceptions;
+
+public class PageNotExist extends WikiException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public PageNotExist(Throwable t) {
+ super(t);
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageRenamingException.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageRenamingException.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/PageRenamingException.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,37 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.exceptions;
+
+public class PageRenamingException extends WikiException {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public PageRenamingException(String msg) {
+ super(msg);
+ }
+
+ public PageRenamingException(Exception e) {
+ super(e);
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/SaveException.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/SaveException.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/SaveException.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.exceptions;
+
+public class SaveException extends WikiException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public SaveException(Throwable t) {
+ super(t);
+ }
+
+ public SaveException(String msg) {
+ super(msg);
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/WikiException.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/WikiException.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/WikiException.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.exceptions;
+
+public class WikiException extends Exception {
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public WikiException (String msg) {
+ super(msg);
+ }
+
+ public WikiException(Throwable t) {
+ super(t);
+ }
+
+ public WikiException() {
+ super();
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/WikiManagementNotFoundException.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/WikiManagementNotFoundException.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/WikiManagementNotFoundException.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.exceptions;
+
+public class WikiManagementNotFoundException extends WikiException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public WikiManagementNotFoundException(Exception e) {
+ super(e);
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/WikiSaveException.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/WikiSaveException.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/exceptions/WikiSaveException.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.exceptions;
+
+public class WikiSaveException extends WikiException {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ public WikiSaveException(Throwable t) {
+ super(t);
+ }
+
+ public WikiSaveException(String msg) {
+ super(msg);
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/EMailNotifier.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/EMailNotifier.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/EMailNotifier.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,8 @@
+package org.jboss.wiki.management;
+
+import javax.ejb.Local;
+
+ at Local
+public interface EMailNotifier {
+ public void sendNotification(NotificationMsg notifications);
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/NotificationMsg.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/NotificationMsg.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/NotificationMsg.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.management;
+
+import java.io.Serializable;
+import java.util.Set;
+
+public class NotificationMsg implements Serializable {
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = 1L;
+
+ private Set<String> emails;
+
+ private String pageContent;
+
+ private String pageName;
+
+ private String fromEmail;
+
+ private String pageLink;
+
+ public NotificationMsg(Set<String> emails, String pageContent, String pageName, String fromEmail, String pageLink) {
+ this.emails = emails;
+ this.pageContent = pageContent;
+ this.pageName = pageName;
+ this.fromEmail = fromEmail;
+ this.pageLink = pageLink;
+ }
+
+ public Set<String> getEmails() {
+ return emails;
+ }
+
+ public void setEmails(Set<String> emails) {
+ this.emails = emails;
+ }
+
+ public String getPageContent() {
+ return pageContent;
+ }
+
+ public void setPageContent(String pageContent) {
+ this.pageContent = pageContent;
+ }
+
+ public String getPageName() {
+ return pageName;
+ }
+
+ public void setPageName(String pageName) {
+ this.pageName = pageName;
+ }
+
+ public String getFromEmail() {
+ return fromEmail;
+ }
+
+ public String getPageLink() {
+ return pageLink;
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/WikiServiceLocal.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/WikiServiceLocal.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/WikiServiceLocal.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,27 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.management;
+
+
+public interface WikiServiceLocal {
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/WikiServiceManagement.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/WikiServiceManagement.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/WikiServiceManagement.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.management;
+
+import org.jboss.wiki.WikiEngine;
+
+public interface WikiServiceManagement {
+
+ public WikiEngine getWikiEngine();
+
+ void create() throws Exception;
+
+ void start() throws Exception;
+
+ void stop();
+
+ void destroy();
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/WikiServiceMenagement.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/WikiServiceMenagement.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/WikiServiceMenagement.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.management;
+
+import org.jboss.wiki.WikiEngine;
+
+public interface WikiServiceMenagement {
+
+ public WikiEngine getWikiEngine();
+
+ void create() throws Exception;
+
+ void start() throws Exception;
+
+ void stop();
+
+ void destroy();
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/WikiServiceRemote.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/WikiServiceRemote.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/management/WikiServiceRemote.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,26 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.management;
+
+public interface WikiServiceRemote {
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/ATOMPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/ATOMPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/ATOMPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,133 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import java.util.Date;
+
+import org.jboss.wiki.WikiPage;
+
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class ATOMPlugin extends WikiPlugin {
+
+ private DifferenceEngine differenceEngine;
+
+ private void addItem(StringBuilder atomFeed, String title, String link,
+ String description, Date modified, String hostURL) {
+ atomFeed.append("<entry>\n");
+ atomFeed.append("<title>").append(title).append("</title>\n");
+ atomFeed.append("<link rel=\"alternate\" type=\"text/html\" href=\"")
+ .append(link).append("\" />\n");
+ atomFeed.append("<modified>").append(modified.toString()).append(
+ "</modified>\n");
+ atomFeed.append("<issued>").append(modified.toString()).append(
+ "</issued>\n");
+ atomFeed.append("<id>").append(title).append("</id>\n");
+ atomFeed.append("<created>").append(modified.toString()).append(
+ "</created>\n");
+ atomFeed
+ .append(
+ "<content type=\"text/html\" mode=\"escaped\" xml:lang=\"en\" xml:base=\"")
+ .append(hostURL).append("\" >");
+ atomFeed.append(description).append("\n");
+ atomFeed.append("</content>\n</entry>\n");
+ }
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ StringBuilder atomFeed = new StringBuilder(
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<?xml-stylesheet href=\"http://forge.jboss.com/blojsom/atom.css\" type=\"text/css\"?>\n<!-- name=\"generator\" content=\"JBoss Wiki ATOMPlugin\" -->\n");
+ atomFeed
+ .append("<feed version=\"0.3\" xmlns=\"http://purl.org/atom/ns#\" xml:lang=\"en\">\n");
+
+ atomFeed.append("<title mode=\"escaped\">JBoss Forge Wiki: ").append(
+ wikiPage.getName()).append("</title>\n");
+
+ atomFeed.append("<link rel=\"alternate\" type=\"text/xml\" href=\"")
+ .append((String) wikiSession.getAttribute("hostURL")).append(
+ "/wiki/").append(
+ wikiPage.getLangCode().equals(
+ wikiEngine.defaultLangugeCode) ? "" : wikiPage
+ .getLangCode().toLowerCase()
+ + "/").append("atom/").append(wikiPage.getName()).append(
+ "\" />");
+
+ atomFeed.append("<link href=\"").append(
+ (String) wikiSession.getAttribute("hostURL")).append("/wiki/")
+ .append(
+ wikiPage.getLangCode().equals(
+ wikiEngine.defaultLangugeCode) ? "" : wikiPage
+ .getLangCode().toLowerCase()
+ + "/").append(wikiPage.getName()).append(
+ "\" />\n");
+
+ atomFeed.append("<tagline>").append(wikiPage.getName()).append(
+ "</tagline>\n");
+ atomFeed
+ .append("<generator url=\"http://labs.jboss.com/products/jbosswiki\" version=\"JBoss Wiki beta\">JBoss Wiki</generator>\n");
+ atomFeed
+ .append("<copyright mode=\"escaped\">Copyright © 2005 Tomasz Szymanski (tomasz-dot-szymanski-at-jboss-dot-com)</copyright>");
+
+ /*
+ * atomFeed.append("<description>JBoss Wiki: " + wikiPage.getName() + "</description>\n");
+ * atomFeed.append("<language>en</language>\n");
+ */
+
+ for (int i = wikiPage.getLastVersion(); i > 0; i--) {
+ String content;
+
+ if (i > 1) {
+ content = differenceEngine
+ .makeDiff(
+ wikiPage.getPageAtVersion(true, i)
+ .getPageContent(),
+ wikiPage.getPageAtVersion(true, i - 1)
+ .getPageContent()).replaceAll("&",
+ "&").replaceAll("<", "<").replaceAll(
+ ">", ">").replaceAll("\n", "<br />\n");
+ } else {
+ content = "This is first version of the page so it doesn't have diff yet";
+ }
+
+ addItem(atomFeed, wikiPage.getName() + " rev: " + i,
+ (String) wikiSession.getAttribute("hostURL")
+ + getProperty("wikiHome").replaceAll("&", "&")
+ + "&page=" + wikiPage.getName()
+ + "&version=" + i + "&language=" + wikiPage.getLangCode(), content, wikiPage
+ .getEditDate(), (String) wikiSession
+ .getAttribute("hostURL"));
+ }
+
+ atomFeed.append("</feed>\n");
+
+ wikiPage.setContent(atomFeed.toString());
+
+ return wikiPage;
+ }
+
+ @Override
+ public void init() {
+ differenceEngine = new DifferenceEngine("UTF-8");
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/ATOMWikiType.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/ATOMWikiType.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/ATOMWikiType.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,31 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import org.jboss.wiki.WikiType;
+
+public class ATOMWikiType extends WikiType {
+
+ public String getContentType() {
+ return "application/atom+xml";
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AddTranslatorPartsPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AddTranslatorPartsPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AddTranslatorPartsPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,46 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+/**
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ *
+ */
+public class AddTranslatorPartsPlugin extends WikiPlugin {
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ wikiPage.setContent(HTMLTranslatorParts.pagePartRegexStart+wikiPage.getContent()+HTMLTranslatorParts.pagePartRegexEnd);
+
+ return wikiPage;
+ }
+
+ @Override
+ public void init() {
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AdminConsolePlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AdminConsolePlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AdminConsolePlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,248 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import java.util.Set;
+
+import org.jboss.wiki.Credentials;
+import org.jboss.wiki.WikiEngine;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class AdminConsolePlugin extends WikiPlugin {
+
+ private boolean SHOWDELETE = true;
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ Credentials credentials = (Credentials) wikiSession
+ .getAttribute("credentials");
+
+ if (wikiEngine.pageExists(wikiPage.getName(), wikiPage.getLangCode())
+ && credentials.isAdmin()) {
+ String actionURL = (String) wikiSession.getAttribute("actionURL");
+ String errorMsg = "";
+
+ boolean editable = wikiPage.isEditableForAll();
+ boolean viewable = wikiPage.isViewableForAll();
+
+ if (wikiSession.getAttribute("var1") != null) {
+
+ if (wikiSession.getAttribute("var1").equals("chmod")) {
+ WikiPage editingPage = wikiEngine.getByName(wikiPage
+ .getName(), null, wikiPage.getLangCode());
+
+ if (wikiSession.getAttribute("var2") != null) {
+ editingPage.setEditable(Boolean
+ .valueOf((String) wikiSession
+ .getAttribute("var2")));
+ editable = editingPage.isEditableForAll();
+ }
+ if (wikiSession.getAttribute("var3") != null) {
+ editingPage.setViewable(Boolean
+ .valueOf((String) wikiSession
+ .getAttribute("var3")));
+ viewable = editingPage.isViewableForAll();
+ }
+ } else if (wikiSession.getAttribute("var1").equals("editRole")
+ && wikiSession.getAttribute("var2") != null) {
+ wikiPage.switchEditRole((String) wikiSession
+ .getAttribute("var2"));
+ } else if (wikiSession.getAttribute("var1").equals("viewRole")
+ && wikiSession.getAttribute("var2") != null) {
+ wikiPage.switchViewRole((String) wikiSession
+ .getAttribute("var2"));
+ } else if ((SHOWDELETE)
+ && (wikiSession.getAttribute("var1")
+ .equals("deletePage"))) {
+ boolean deleteSubpages = (wikiSession.getAttribute("var3") != null) ? Boolean
+ .parseBoolean((String) wikiSession
+ .getAttribute("var3"))
+ : false;
+
+ if (wikiSession.getAttribute("var2") != null) {
+ String nameToDelete = (String) wikiSession
+ .getAttribute("var2");
+
+ if (!nameToDelete.equals(WikiEngine.defaultPage)) {
+ if (!wikiEngine.deletePage(nameToDelete,
+ deleteSubpages, wikiPage.getLangCode())) {
+ errorMsg += "Couldn't delete whole or parts of page: "
+ + nameToDelete
+ + " or it's subpages (see log for moreinfo)";
+ }
+ } else {
+ errorMsg += "You can't delete "
+ + WikiEngine.defaultPage + " page !";
+ }
+ }
+ } else if ((SHOWDELETE)
+ && (wikiSession.getAttribute("var1")
+ .equals("deleteAtt"))) {
+ String attName = (wikiSession.getAttribute("var2") != null) ? (String) wikiSession
+ .getAttribute("var2")
+ : null;
+
+ if (attName != null) {
+ if (!wikiEngine.deleteAttachment(wikiPage.getName(),
+ attName, wikiPage.getLangCode())) {
+ errorMsg = "There was problem with deleting "
+ + attName + " from page "
+ + wikiPage.getName()
+ + " (see log for more info)";
+ }
+ } else {
+ errorMsg = "Attachment to delete isn't specified";
+ }
+ }
+
+ }
+
+ StringBuilder adminConsole = new StringBuilder(wikiPage
+ .getPageContent());
+
+ adminConsole.append("\n<hr><h3>Admin console</h3>\n");
+ adminConsole.append("Go to <a href=\"").append(actionURL).append(
+ "&type=admin").append("&language=").append(
+ wikiPage.getLangCode()).append(
+ "\">ADMIN GENERAL CONSOLE</a><br />\n");
+ if (errorMsg.length() > 0) {
+ adminConsole.append("<i>" + errorMsg + "</i><br />\n");
+ }
+
+ if (SHOWDELETE) {
+ Set<String> attSet = wikiEngine.getAttachmentsSet(wikiPage,
+ wikiPage.getLangCode());
+
+ if (attSet != null) {
+ adminConsole
+ .append("<h4>Attachments:</h4>\n<table border=\"0\">");
+
+ for (String att : attSet) {
+ adminConsole.append("<tr><td>").append(att).append(
+ "</td><td><a href=\"").append(actionURL)
+ .append("&page=").append(wikiPage.getName())
+ .append("&var1=deleteAtt").append("&var2=")
+ .append(att).append("\" >Delete</a></td></tr>");
+ }
+
+ adminConsole.append("</table><br />\n");
+ }
+
+ adminConsole.append("<h4>Page managment:</h4>");
+
+ if (!wikiPage.getName().equals(WikiEngine.defaultPage)) {
+
+ // delete page button
+ adminConsole.append("<a href=\"").append(actionURL).append(
+ "&page=Main").append("&var1=deletePage").append(
+ "&var2=").append(wikiPage.getName()).append(
+ "&var3=false").append(
+ "\" >DELETE THIS PAGE</a><br />\n");
+
+ // delete page with subpages button
+ adminConsole
+ .append("<a href=\"")
+ .append(actionURL)
+ .append("&page=Main")
+ .append("&var1=deletePage")
+ .append("&var2=")
+ .append(wikiPage.getName())
+ .append("&var3=true")
+ .append(
+ "\" >DELETE THIS PAGE WITH SUBPAGES</a><br />\n<br />\n");
+ }
+
+ }
+ // switch editable button
+ adminConsole.append("This page ").append(
+ (editable) ? "is" : "isn't").append(" editable ");
+ adminConsole.append("<a href=\"").append(actionURL)
+ .append("&page=").append(wikiPage.getName()).append(
+ "&var1=chmod").append("&var2=").append(!editable)
+ .append("&var3=").append(viewable).append("\" >SWITCH IT ")
+ .append((editable) ? "NOT" : "").append(
+ " EDITABLE</a><br />\n");
+
+ // switch viewable button
+ adminConsole.append("This page ").append(
+ (viewable) ? "is" : "isn't").append(" viewable ");
+
+ adminConsole.append("<a href=\"").append(actionURL)
+ .append("&page=").append(wikiPage.getName()).append(
+ "&var1=chmod").append("&var2=").append(editable)
+ .append("&var3=").append(!viewable)
+ .append("\" >SWITCH IT ").append((viewable) ? "NOT" : "")
+ .append(" VIEWABLE</a><br />\n");
+
+ adminConsole
+ .append("<br />\n<table><tr><th>Role name</th><th colspan=\"2\">View Roles</th><th colspan=\"2\">Edit Roles</th></tr>");
+
+ // role set
+
+ Set<String> allRoles = credentials.getAllRoles();
+
+ for (String role : allRoles) {
+ String roleEd = "<a href=\""
+ + actionURL
+ + "&page="
+ + wikiPage.getName()
+ + "&var1=editRole&var2="
+ + role
+ + "\">"
+ + ((wikiPage.containsEditRole(role)) ? "Remove this role"
+ : " Add this role") + "</a>";
+ String roleVi = "<a href=\""
+ + actionURL
+ + "&page="
+ + wikiPage.getName()
+ + "&var1=viewRole&var2="
+ + role
+ + "\">"
+ + ((wikiPage.containsViewRole(role)) ? "Remove this role"
+ : " Add this role") + "</a>";
+
+ adminConsole.append("<tr><td>").append(role)
+ .append("</td><td>").append(
+ (wikiPage.containsViewRole(role)) ? "<b>*</b>"
+ : "").append("</td><td>")
+ .append(roleVi).append("</td><td>").append(
+ (wikiPage.containsEditRole(role)) ? "<b>*</b>"
+ : "").append("</td><td>")
+ .append(roleEd).append("</td></tr>\n");
+ }
+
+ adminConsole.append("</table>\n");
+
+ wikiPage.setContent(adminConsole.toString());
+ }
+
+ return wikiPage;
+ }
+
+ @Override
+ public void init() {
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AdminRenamingPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AdminRenamingPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AdminRenamingPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,186 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.wiki.Credentials;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+import org.jboss.wiki.exceptions.WikiException;
+
+public class AdminRenamingPlugin extends WikiPlugin {
+
+ private static final Object ADD_LNG_CAPTION = "Add language";
+
+ public final String RENAME_CAPTION = "Rename";
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ for (int i = 1; i < 5; i++) {
+ if (wikiSession.getAttribute("var" + i) != null) {
+ log.info(wikiSession.getAttribute("var" + i));
+ }
+ }
+
+ Credentials credentials = (Credentials) wikiSession
+ .getAttribute("credentials");
+ String actionURL = (String) wikiSession.getAttribute("actionURL");
+ StringBuilder adminContent = new StringBuilder("<h2><a href=\"")
+ .append(actionURL).append(
+ "&type=admin \">Admin</a></h2><br />\n");
+
+ if (credentials.isAdmin()) {
+
+ adminContent.append("<h3>Renaming:</h3>\n<br />\n");
+
+ if ((wikiSession.getAttribute("var1") != null)
+ && (wikiSession.getAttribute("var1").equals(RENAME_CAPTION))) {
+ if ((wikiSession.getAttribute("var2") != null)
+ && (wikiSession.getAttribute("var3") != null)) {
+ String oldName = (String) wikiSession.getAttribute("var2");
+ String uid = wikiEngine.getUid(oldName, wikiPage
+ .getLangCode());
+ String newName = HTMLTranslatorParts
+ .cleanLink((String) wikiSession
+ .getAttribute("var3"));
+
+ try {
+ wikiEngine.rename(uid, newName, wikiPage.getLangCode());
+ adminContent.append("Added renaming from page: ")
+ .append(oldName).append(" to page: ").append(
+ newName).append("<br /><br />\n");
+ } catch (WikiException e) {
+ adminContent.append("Couldn't rename page because: ")
+ .append(e.getMessage())
+ .append("<br /><br />\n");
+ e.printStackTrace();
+ }
+ }
+ } else if ((wikiSession.getAttribute("var1") != null)
+ && (wikiSession.getAttribute("var1")
+ .equals(ADD_LNG_CAPTION))) {
+
+ log.info("dupa");
+
+ String[] codes = ((String) wikiSession.getAttribute("var2"))
+ .split(" - ");
+
+ String langCode = codes[0];
+ String langName = codes[1];
+
+ log.info("new lng: " + langCode + " " + langName);
+
+ wikiEngine.addNewLanguage(langCode, langName);
+
+ // TODO nie dochodzi tutaj
+
+ adminContent.append("Added language: ").append(langCode)
+ .append(" ").append(langName).append("<br />\n");
+ }
+
+ HashMap<String, String> pagesWaiting = wikiEngine.getPagesWaiting(wikiPage.getLangCode());
+
+ if (pagesWaiting.size() > 0) {
+ adminContent.append("Pages waiting for rename:<br />\n");
+ adminContent.append("<table border=\"0\">\n");
+ adminContent
+ .append("<tr><td><b>Uid</b></td><td><b>Real name</b></td></tr>");
+ for (String uid : pagesWaiting.keySet()) {
+ adminContent.append("<tr><td>").append(uid).append(
+ "</td><td>").append(pagesWaiting.get(uid)).append(
+ "</td></tr>");
+ }
+ adminContent.append("</table>\n");
+ }
+
+ Set<String> allPages = wikiEngine.getAllPageNames(wikiPage
+ .getLangCode());
+
+ adminContent.append("<form method=\"POST\" action=\"").append(
+ actionURL).append("&type=admin \" >\n");
+ adminContent.append("<select name=\"var2\" >\n");
+
+ for (String pageName : allPages) {
+ adminContent.append("<option>").append(pageName).append(
+ "</option>\n");
+ }
+ adminContent.append("</select>\n");
+ adminContent.append(" rename to ").append(
+ "<input type=\"text\" name=\"var3\" />").append(
+ "<input type=\"submit\" name=\"var1\" value=\"").append(
+ RENAME_CAPTION).append("\" />\n");
+ adminContent.append("</form>\n");
+
+ adminContent.append("<h3>Country codes:</h3>");
+
+ Map<String, String> langCodes = wikiEngine.getAllLanguageCodes();
+ Map<String, String> usedLang = wikiEngine.getUsedLanguageCodes();
+ adminContent.append("<h4>Wiki is using this codes</h4>\n").append(
+ "<table><tr><th>Code</th><th>Country name</th></tr>");
+
+ for (String usedCode : usedLang.keySet()) {
+ adminContent.append("<tr><td>").append(usedCode).append(
+ "</td><td>").append(usedLang.get(usedCode)).append(
+ "</td></tr>\n");
+ }
+
+ adminContent.append("</table>\n<h4>Add new language</h4>");
+
+ adminContent.append("<form method=\"POST\" action=\"").append(
+ actionURL).append("&type=admin \" >\n");
+ adminContent.append("<select name=\"var2\" >\n");
+
+ for (String langCode : langCodes.keySet()) {
+ if (!usedLang.keySet().contains(langCode))
+ adminContent.append("<option>").append(langCode).append(
+ " - ").append(langCodes.get(langCode)).append(
+ "</option>\n");
+ }
+ adminContent.append("</select>\n");
+ adminContent
+ .append("<input type=\"submit\" name=\"var1\" value=\"")
+ .append(ADD_LNG_CAPTION).append("\" />\n");
+ adminContent.append("</form>\n");
+
+ } else {
+ adminContent.append("<h3>").append(
+ "Sorry you don't have permission to see this page").append(
+ "</h3>");
+ }
+
+ return new WikiPage("AdminPage", credentials, adminContent.toString(),
+ 0, 0, new Date(), wikiEngine, false, false, null, null,
+ adminContent.length(), wikiEngine.defaultLangugeCode);
+ }
+
+ @Override
+ public void init() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AttachementInfoPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AttachementInfoPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AttachementInfoPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,126 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import org.jboss.wiki.Credentials;
+import org.jboss.wiki.WikiAttachment;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class AttachementInfoPlugin extends WikiPlugin {
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ Credentials credentials = (Credentials) wikiSession
+ .getAttribute("credentials");
+ StringBuilder history = new StringBuilder();
+ String attachementName = (String) wikiSession.getAttribute("var1");
+ Object rollbackToVer = wikiSession.getAttribute("var2");
+
+ String attURL = (String) wikiSession.getAttribute("hostURL") + "/wiki/"
+ + wikiPage.getName() + "/file:";
+ String actionURL = (String) wikiSession.getAttribute("actionURL");
+
+ if (((wikiPage.isEditable(credentials)) || (credentials.isAdmin()))
+ && (rollbackToVer != null)
+ && (credentials.isLoggedIn())
+ && (Integer.valueOf((String) rollbackToVer) < wikiEngine
+ .getLastAttachmentVersion(wikiPage.getName(),
+ attachementName, wikiPage.getLangCode()))) {
+ WikiAttachment wikiAttachment = wikiEngine.getAttachment(wikiPage
+ .getName(), attachementName, Integer
+ .valueOf((String) rollbackToVer), wikiPage.getLangCode());
+ wikiEngine.addAttachment(wikiAttachment.getInputStream(),
+ attachementName, wikiPage, ((Credentials) wikiSession
+ .getAttribute("credentials")).getName(), wikiPage
+ .getLangCode());
+ }
+
+ history.append("<h3>History of file: ").append(attachementName).append(
+ " page: ").append(wikiPage.getName()).append("</h3>\n");
+ history.append("<hr>\n").append("<table border=\"1\">\n");
+ history
+ .append("<tr><td><b>Version</b></td><td><b>Date</b></td><td><b>Author</b></td><td><b>Size</b></td><td><b>Rollback</b></td></tr>\n");
+
+ int lastVer = wikiEngine.getLastAttachmentVersion(wikiPage.getName(),
+ attachementName, wikiPage.getLangCode());
+ for (int i = lastVer; i > 0; i--) {
+ WikiAttachment wikiAttachment = wikiEngine.getAttachment(wikiPage
+ .getName(), attachementName, i, wikiPage.getLangCode());
+ history.append("<tr><td>").append("<a href=\"").append(attURL)
+ .append(attachementName).append(
+ (i != lastVer) ? ":" + i : "").append("\" >")
+ .append(i).append("</a></td>").append("<td>").append(
+ wikiAttachment.getDate()).append("</td>").append(
+ "<td>").append(wikiAttachment.getUser()).append(
+ "</td>").append("<td>").append(
+ wikiAttachment.getSize()).append("</td>");
+
+ if (i != lastVer) {
+ history.append("<td>");
+
+ if ((credentials.isLoggedIn())
+ && ((wikiPage.isEditable(credentials)) || (credentials
+ .isAdmin())))
+ history.append("<a href=\"").append(actionURL).append(
+ "&type=fileInfo&page=").append(wikiPage.getName())
+ .append("&var1=").append(attachementName).append(
+ "&var2=").append(i).append("\" >");
+
+ if (wikiPage.isEditable(credentials)) {
+ history
+ .append((!credentials.isLoggedIn()) ? "<i>" : "")
+ .append("Rollback version ")
+ .append(i)
+ .append(
+ (!credentials.isLoggedIn()) ? " (after login)</i>"
+ : "");
+ } else {
+ history.append("<i>This page IS NOT editable</i>");
+ }
+
+ if ((credentials.isLoggedIn())
+ && ((wikiPage.isEditable(credentials)) || (credentials
+ .isAdmin())))
+ history.append("</a>");
+
+ history.append("<td>");
+ } else {
+ history.append("<td></td>");
+ }
+
+ history.append("</tr>\n");
+ }
+ history.append("</table>\n");
+ wikiPage.setContent(history.toString());
+
+ return wikiPage;
+ }
+
+ @Override
+ public void init() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AttachmentListPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AttachmentListPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/AttachmentListPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,84 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import java.util.Set;
+
+import org.jboss.wiki.WikiCommon;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class AttachmentListPlugin extends WikiPlugin {
+
+ private String host = "";
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ host = (String) wikiSession.getAttribute("hostURL")
+ + "/wiki/"
+ + (!wikiPage.getLangCode().equals(wikiEngine.defaultLangugeCode) ? wikiPage
+ .getLangCode().toLowerCase()
+ + "/"
+ : "");
+
+ String fileEditURL = (String) wikiSession.getAttribute("actionURL")
+ + "&type=fileInfo&page=" + wikiPage.getName();
+
+ WikiPage newPage = null;
+
+ try {
+ newPage = (WikiPage) wikiPage.clone();
+ } catch (CloneNotSupportedException cl) {
+ System.err.println(cl);
+ }
+
+ Set<String> attachements = newPage.getAttachementsSet();
+
+ if (attachements != null) {
+ String newContent = newPage.getPageContent();
+
+ newContent += "\n<hr />\n<h3>Attachments:</h3>\n<table border='0'>";
+
+ for (String file : attachements) {
+ String href = host + newPage.getName() + "/file:" + file;
+ newContent += "<tr><td><a href=\"" + href + "\">" + href
+ + "</a></td>";
+ newContent += "<td><a href=\"" + fileEditURL + "&var1=" + file
+ + "\" ><img border=\"0\" src=\"" + host
+ + WikiCommon.wikiButtons
+ + "/historyButton.png\" /></a></td></tr>\n";
+ }
+ newContent += "</table>\n";
+
+ newPage.setContent(newContent);
+ }
+
+ return newPage;
+ }
+
+ @Override
+ public void init() {
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/DefaultWikiType.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/DefaultWikiType.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/DefaultWikiType.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,33 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import org.jboss.wiki.WikiType;
+
+public class DefaultWikiType extends WikiType {
+
+ public DefaultWikiType () {
+
+ }
+
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/DiffPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/DiffPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/DiffPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import java.io.IOException;
+
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class DiffPlugin extends WikiPlugin {
+
+ private DifferenceEngine differenceEngine;
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ WikiPage newPage = null,
+ prevNewPage = null;
+
+ try {
+ newPage = (WikiPage) wikiPage.clone();
+ } catch (CloneNotSupportedException e) {
+ System.err.println(e);
+ }
+
+ prevNewPage = newPage.getPageAtVersion(true, newPage.getVersion()-1);
+
+ String diff = differenceEngine.makeDiff(prevNewPage.getContent(), newPage.getContent());
+
+ try {
+ newPage.setContent(differenceEngine.colorizeDiff(diff));
+ }
+ catch (IOException e) {
+ System.err.println(e);
+ }
+
+ return newPage;
+ }
+
+ @Override
+ public void init() {
+ differenceEngine = new DifferenceEngine("ISO-8859-1");
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/DifferenceEngine.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/DifferenceEngine.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/DifferenceEngine.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,338 @@
+/**************************************************
+ * *
+ * JBoss Labs: Creating Professional Open Source *
+ * *
+ * Distributable under LGPL license. *
+ * See terms of license at gnu.org. *
+ * *
+ *************************************************/
+
+/*
+ Copyright (C) 2005 Damon Sicore,
+ Rali Genova,
+ Tomasz Szymanski,
+ Adam Warski,
+ JBoss, Inc.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+*/
+
+/**
+* Portions of this work are based on the work
+* of Janne Jalkanen of the JSPWiki project.
+*
+* Marked Portions are Copyright (C) 2001-2002 Janne Jalkanen (Janne.Jalkanen at iki.fi)
+*
+* Those portions are marked by the 'author' javadoc tag
+* and list Janne Jalkanen as the author of that method.
+*
+* This class is based on the JSPWiki 2.0 version
+* of the DifferenceEngine.java class. The original
+* version of that class can be found here:
+*
+* http://anonsvn.labs.jboss.com/branches/forge/archives/jspwiki/src/com/ecyrd/jspwiki/DifferenceEngine.java
+*
+*/
+
+package org.jboss.wiki.plugins;
+
+import java.util.Vector;
+import java.io.IOException;
+import java.io.BufferedReader;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.io.PrintWriter;
+import java.io.Writer;
+
+// import org.suigeneris.diff.*;
+
+/**
+ * Provides access to making a 'diff' between two Strings.
+ * Can be commanded to use a diff program or to use an internal diff.
+ *
+ * @author Janne Jalkanen
+ * @author Erik Bunn
+ */
+public class DifferenceEngine
+{
+
+ /** Determines the command to be used for 'diff'. This program must
+ be able to output diffs in the unified format. It defaults to
+ 'diff -u %s1 %s2'.*/
+ public static final String PROP_DIFFCOMMAND = "jspwiki.diffCommand";
+
+ private static final char DIFF_ADDED_SYMBOL = '+';
+ private static final char DIFF_REMOVED_SYMBOL = '-';
+ private static final String CSS_DIFF_ADDED = "<tr><td bgcolor=\"#99FF99\" class=\"diffadd\">";
+ private static final String CSS_DIFF_REMOVED = "<tr><td bgcolor=\"#FF9933\" class=\"diffrem\">";
+ private static final String CSS_DIFF_UNCHANGED = "<tr><td class=\"diff\">";
+ private static final String CSS_DIFF_CLOSE = "</td></tr>";
+
+
+ private String m_encoding;
+
+ /**
+ * Creates a new DifferenceEngine.
+ *
+ * @param props The contents of jspwiki.properties
+ * @param encoding The character encoding used for making the diff.
+ */
+ public DifferenceEngine(String encoding )
+ {
+ m_encoding = encoding;
+ }
+
+ private String getContentEncoding()
+ {
+ return m_encoding;
+ }
+
+ /**
+ * Returns a raw, text format diff of its arguments. This diff can then
+ * be fed to the <TT>colorizeDiff()</TT>, below.
+ *
+ * @see #colorizeDiff
+ */
+ public String makeDiff( String p1, String p2 )
+ {
+
+ return makeDiffWithBMSI( p1, p2 );
+
+ }
+ /*
+ // Makes a diff with JRCS routines, but BMSI is slightly better.
+ private String makeDiffWithJRCS( String p1, String p2 )
+ {
+ try
+ {
+ Object[] first = Diff.stringToArray(p1);
+ Object[] second = Diff.stringToArray(p2);
+
+ Revision diff = Diff.diff( first, second );
+
+ return diff.toUnifiedString();
+ }
+ catch( DifferentiationFailedException e )
+ {
+ log.error("Diff failed", e);
+ }
+
+ return null;
+ }
+ */
+
+ /**
+ * Makes a diff using the BMSI utility package.
+ * We use our own diff printer, which makes things
+ * easier.
+ */
+ private String makeDiffWithBMSI( String p1, String p2 )
+ {
+ try
+ {
+ String[] first = stringToArray(p1);
+ String[] second = stringToArray(p2);
+
+ bmsi.util.Diff diff = new bmsi.util.Diff( first, second );
+
+ bmsi.util.Diff.change script = diff.diff_2(false);
+
+ if( script == null )
+ {
+ // No differences.
+ return "";
+ }
+
+ StringWriter sw = new StringWriter();
+ bmsi.util.DiffPrint.Base p = new WriterPrint( first, second, sw );
+ p.print_script( script );
+
+ return sw.toString();
+ }
+ catch( IOException e )
+ {
+ System.err.println("Diff failed"+e);
+ }
+
+ return null;
+ }
+
+ /**
+ * Writes a diff in a human-readable form, as opposed to your
+ * standard average diff.
+ *
+ * Lifted from org.mahlen.hula.utils.VersionUtil.
+ * @author Mahlen Morris
+ * @author Janne Jalkanen
+ */
+ // FIXME: Must somehow add contextual diffs as well.
+ private class WriterPrint extends bmsi.util.DiffPrint.NormalPrint
+ {
+ public WriterPrint( String[] a, String[] b, Writer w )
+ {
+ super( a, b );
+ outfile = new PrintWriter( w );
+ }
+
+ protected void print_range_length( int a, int b )
+ {
+ outfile.print( b-a+1 );
+ }
+
+ /**
+ * This method no longer emulates any known diff format.
+ */
+ protected void print_hunk(bmsi.util.Diff.change hunk) {
+
+ /* Determine range of line numbers involved in each file. */
+ analyze_hunk(hunk);
+ if (deletes == 0 && inserts == 0)
+ return;
+
+ /* Print out the line number header for this hunk */
+
+ if( inserts != 0 && deletes == 0 )
+ {
+ outfile.print("At line ");
+ print_number_range('-', first0, last0);
+ outfile.print(" added ");
+ print_range_length(first1, last1);
+ outfile.print(" line" + ((last1-first1 == 0)? "." : "s.") );
+ }
+ else if( deletes != 0 && inserts == 0 )
+ {
+ outfile.print("Removed line"+((last0-first0 == 0)? " " : "s "));
+ print_number_range('-', first0, last0);
+ // outfile.print(" removed ");
+ // print_range_length(first1, last1);
+ // outfile.print(" line" + ((last1-first1 == 0)? "." : "s.") );
+ }
+ else
+ {
+ if( last0-first0 == 0 )
+ {
+ outfile.print("Line ");
+ print_number_range('-', first0, last0);
+ outfile.print(" was replaced by ");
+ }
+ else
+ {
+ outfile.print("Lines ");
+ print_number_range('-', first0, last0);
+ outfile.print(" were replaced by ");
+ }
+
+ outfile.print( "line"+((last1-first1 == 0) ? " " : "s "));
+
+ print_number_range('-', first1, last1);
+ }
+
+
+ outfile.println();
+
+ /* Print the lines that the first file has. */
+ if (deletes != 0)
+ for (int i = first0; i <= last0; i++)
+ print_1_line("- ", file0[i]);
+
+ /*
+ if (inserts != 0 && deletes != 0)
+ outfile.println("===");
+ */
+
+ /* Print the lines that the second file has. */
+ if (inserts != 0)
+ for (int i = first1; i <= last1; i++)
+ print_1_line("+ ", file1[i]);
+ }
+
+ }
+
+ /**
+ * Again, lifted from org.mahlen.hula.utils.VersionUtil.
+ */
+ private static String[] stringToArray(String str)
+ throws IOException
+ {
+ BufferedReader rdr = new BufferedReader(new StringReader(str));
+ Vector s = new Vector();
+ for(;;)
+ {
+ String line = rdr.readLine();
+ if (line == null) break;
+ s.addElement(line);
+ }
+ String[] a = new String[s.size()];
+ s.copyInto(a);
+ return a;
+ }
+
+ /**
+ * Goes through output provided by a diff command and inserts
+ * HTML tags to make the result more legible.
+ * Currently colors lines starting with a + green,
+ * those starting with - reddish (hm, got to think of
+ * color blindness here...).
+ */
+ public String colorizeDiff( String diffText )
+ throws IOException
+ {
+ String line = null;
+ String start = null;
+ String stop = null;
+
+ if( diffText == null )
+ {
+ return "Invalid diff - probably something wrong with server setup.";
+ }
+
+ BufferedReader in = new BufferedReader( new StringReader( diffText ) );
+ StringBuffer out = new StringBuffer();
+
+ out.append("<table class=\"diff\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n");
+ while( ( line = in.readLine() ) != null )
+ {
+ stop = CSS_DIFF_CLOSE;
+
+ if( line.length() > 0 )
+ {
+ switch( line.charAt( 0 ) )
+ {
+ case DIFF_ADDED_SYMBOL:
+ start = CSS_DIFF_ADDED;
+ break;
+ case DIFF_REMOVED_SYMBOL:
+ start = CSS_DIFF_REMOVED;
+ break;
+ default:
+ start = CSS_DIFF_UNCHANGED;
+ }
+ }
+ else
+ {
+ start = CSS_DIFF_UNCHANGED;
+ }
+
+ out.append( start );
+ out.append( line.trim() );
+ out.append( stop + "\n" );
+
+ }
+ out.append("</table>\n");
+ return( out.toString() );
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/DirectReferenceWikiType.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/DirectReferenceWikiType.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/DirectReferenceWikiType.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import org.jboss.wiki.WikiType;
+
+public class DirectReferenceWikiType extends WikiType {
+
+ @Override
+ protected boolean getReference() {
+ return true;
+ }
+
+ public DirectReferenceWikiType( ) {
+
+ }
+
+
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/FindResultPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/FindResultPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/FindResultPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,66 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import java.util.Map;
+
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class FindResultPlugin extends WikiPlugin {
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ WikiPage newPage = null;
+
+ try {
+ newPage = (WikiPage) wikiPage.clone();
+ } catch (CloneNotSupportedException cl) {
+ System.err.println(cl);
+ }
+
+ Map<String, Integer> pages = (Map<String, Integer>) wikiSession
+ .getAttribute("findResult");
+
+ StringBuilder pageStr = new StringBuilder("!!!__Find results:__\n\\\\\n\\\\\n").append("|__Page__|__Score__\n");
+
+ if (pages.size() == 0) {
+ pageStr.append("''NONE FOUND''");
+ } else {
+ for (String p : pages.keySet()) {
+ pageStr.append("|[").append(p).append("]|").append(pages.get(p)).append("\n");
+ }
+ }
+
+ newPage.setContent(pageStr.toString());
+
+ return newPage;
+ }
+
+ @Override
+ public void init() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/FriendlyLinkPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/FriendlyLinkPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/FriendlyLinkPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,92 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import java.util.Vector;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class FriendlyLinkPlugin extends WikiPlugin {
+
+ private String url;
+ private String pattern;
+
+ private String translateLinks(String content) {
+ //<a href="http://localhost:8080/portal/index.html?ctrl:id=window.default.WikiPortletWindow&ctrl:type=action&page=JBossWiki">
+ String newContent = content;
+ Vector<String> replaces = new Vector<String>();
+
+ Matcher matcher = Pattern.compile(pattern).matcher(newContent);
+
+ while (matcher.find()) {
+ String link = content.substring(matcher.start(), matcher.end());
+ String page = link.substring(link.lastIndexOf("&page=")+("&page=".length()), link.lastIndexOf("&language="));
+ String lang = link.substring(link.lastIndexOf("&language=")+("&language=".length()), link.length() - 2).toLowerCase() + "/";
+
+ if (lang.equals(wikiEngine.defaultLangugeCode.toLowerCase() + "/")) {
+ lang = "";
+ }
+
+ replaces.add("<a href=\""+url+lang+page+"\" >");
+ }
+
+ for (int i = 0; i < replaces.size(); i++) {
+ matcher = Pattern.compile(pattern).matcher(newContent);
+ newContent = matcher.replaceFirst(replaces.get(i));
+ }
+
+ //System.out.println(content);
+
+ return newContent;
+ }
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ url = (String)wikiSession.getAttribute("hostURL")+"/wiki/";
+
+ pattern = "<a href=\""+(((String)wikiSession.getAttribute("hostURL")+(String)wikiSession.getAttribute("actionURL")).replaceAll("\\.","\\\\.").replaceAll("\\?", "\\\\?"))+"&page=\\w+(/\\w+)*&language=\\w+(/\\w+)*\">";
+
+ //System.out.println(pattern);
+
+ WikiPage newPage = null;
+
+ try {
+ newPage = (WikiPage) wikiPage.clone();
+ } catch (CloneNotSupportedException cl) {
+ System.err.println(cl);
+ }
+
+ newPage.setContent(translateLinks(newPage.getPageContent()));
+
+ return newPage;
+ }
+
+ @Override
+ public void init() {
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/GetRefsFromPagePlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/GetRefsFromPagePlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/GetRefsFromPagePlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,93 @@
+package org.jboss.wiki.plugins;
+
+import java.util.Set;
+import java.util.TreeSet;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class GetRefsFromPagePlugin extends WikiPlugin {
+
+ private static final String pattern1 = "\\[.+\\]";
+
+ private static final String pattern2 = "\\[[^]|]+\\|.+\\]";
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+
+ Set<String> refs = (Set<String>) wikiPage.getPermVariable("refs");
+
+ if (refs == null || updateRefs()) {
+ refs = getRefsFrom(wikiPage.getContent(), wikiPage.getLangCode());
+ wikiPage.addPermVariable("refs", refs);
+ }
+
+ return wikiPage;
+ }
+
+ @Override
+ public void init() {
+
+ }
+
+ protected boolean updateRefs() {
+ return false;
+ }
+
+ private Set<String> getRefsFrom(String pageContent, String langCode) {
+
+ Set<String> refs = new TreeSet<String>();
+
+ Matcher matcher = Pattern.compile(pattern1).matcher(pageContent);
+
+ while (matcher.find()) {
+ String pageUid = pageContent.substring(matcher.start(), matcher
+ .end());
+
+ pageUid = pageUid.substring(1, pageUid.indexOf(']'));
+
+ pageUid = checkRef(pageUid);
+
+ if (pageUid != null)
+ refs.add(wikiEngine.getRealName(pageUid, langCode));
+ }
+
+ matcher = Pattern.compile(pattern2).matcher(pageContent);
+
+ while (matcher.find()) {
+ String pageUid = pageContent.substring(matcher.start(), matcher
+ .end());
+
+ pageUid = pageUid.substring(pageUid.indexOf('|') + 1, pageUid
+ .indexOf(']'));
+
+ pageUid = checkRef(pageUid);
+
+ if (pageUid != null)
+ refs.add(wikiEngine.getRealName(pageUid, langCode));
+ }
+
+ return refs;
+ }
+
+ private String checkRef(String pageUid) {
+
+ pageUid = pageUid.trim();
+
+ if (!HTMLTranslatorParts.checkImageLink(pageUid)
+ && !HTMLTranslatorParts.isExternalLink(pageUid)
+ && !HTMLTranslatorParts.isNumber(pageUid)) {
+ pageUid = HTMLTranslatorParts.cleanLink(pageUid);
+
+ if (pageUid != null && !HTMLTranslatorParts.isNumber(pageUid)) {
+ return pageUid;
+ }
+ }
+
+ return null;
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/HTMLTranslatorNoPlugins.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/HTMLTranslatorNoPlugins.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/HTMLTranslatorNoPlugins.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,5 @@
+package org.jboss.wiki.plugins;
+
+public class HTMLTranslatorNoPlugins extends HTMLTranslatorParts {
+ private boolean executePlugins = true;
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/HTMLTranslatorParts.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/HTMLTranslatorParts.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/HTMLTranslatorParts.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,1099 @@
+/**************************************************
+ * *
+ * JBoss Labs: Creating Professional Open Source *
+ * *
+ * Distributable under LGPL license. *
+ * See terms of license at gnu.org. *
+ * *
+ *************************************************/
+
+/*
+ Copyright (C) 2005 Damon Sicore,
+ Rali Genova,
+ Tomasz Szymanski,
+ Adam Warski,
+ JBoss, Inc.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ */
+
+/**
+ * Portions of this work are based on the work
+ * of Janne Jalkanen of the JSPWiki project.
+ *
+ * Marked Portions are Copyright (C) 2001-2002 Janne Jalkanen (Janne.Jalkanen at iki.fi)
+ *
+ * Those portions are marked by the 'author' javadoc tag
+ * and list Janne Jalkanen as the author of that method.
+ *
+ * This class is based on the JSPWiki 2.0 version
+ * of the TranslatorReader.java class. The original
+ * version of that class can be found here:
+ *
+ * http://anonsvn.labs.jboss.com/branches/forge/archives/jspwiki/src/com/ecyrd/jspwiki/TranslatorReader.java
+ *
+ */
+package org.jboss.wiki.plugins;
+
+/**
+ * @author <a href="mailto:rali.genova at jboss.org">Rali Genova </a>
+ * @author <a href="mailto:tomasz.szymanski at jboss.org">Tomasz Szymanski </a>
+ *
+ */
+import java.io.*;
+import java.util.regex.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.StringTokenizer;
+
+import org.jboss.logging.Logger;
+import org.jboss.wiki.WikiCommon;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class HTMLTranslatorParts extends WikiPlugin {
+
+ private Logger log;
+
+ /* URL components, later to be configurable */
+ private String portalHome = "";
+
+ public final static String pagePartRegexStart = "<!--page:start-->";
+
+ public final static String pagePartRegexEnd = "<!--page:end-->";
+
+ private String wikiHome = "";
+
+ // private String actionType = "&ctrl:type=";
+
+ private String page = "&page=";
+
+ private String language = "&language=";
+
+ private static String mediaPatterns;
+
+ private String imagePath;
+
+ /* formatting variables */
+
+ private boolean m_allowHTML = false;
+
+ private boolean m_isbold = false;
+
+ private boolean m_isitalic = false;
+
+ private boolean m_isTypedText = false;
+
+ private boolean m_istable = false;
+
+ private boolean m_isPre = false;
+
+ private boolean m_isdefinition = false;
+
+ private int m_listlevel = 0;
+
+ private int m_numlistlevel = 0;
+
+ private boolean m_camelCaseLinks = true; // camelCase enabled
+
+ /** Tag that gets closed at EOL. */
+ private String m_closeTag = null;
+
+ /** Allow this many characters to be pushed back in the stream. */
+ private static final int PUSHBACK_BUFFER_SIZE = 8;
+
+ /**
+ * These characters constitute word separators when trying to find CamelCase
+ * links.
+ */
+ private static final String WORD_SEPARATORS = ",.|:;+=&";
+
+ private PushbackReader m_in;
+
+ // stores the name of the wiki page we are currently processing
+ private String pageName = "";
+
+ private boolean executePlugins = true;
+
+ public HTMLTranslatorParts() {
+
+ }
+
+ /**
+ * Push back any character to the current input. Does not push back a read
+ * EOF, though.
+ *
+ * @author Janne Jalkanen
+ */
+ private void pushBack(int c) throws IOException {
+ if (c != -1) {
+ m_in.unread(c);
+ }
+ }
+
+ /**
+ * Wiki to HTML transformation method, plain URIs transformation not
+ * implemented
+ *
+ * @param page
+ * The String representation of a wiki page's content
+ * @return The final transformed into HTML string
+ * @author Janne Jalkanen
+ * @author Rali Genova
+ */
+ public String parseLinks(String page, WikiSession wikiSession,
+ WikiPage wikiPage) throws IOException {
+ m_in = new PushbackReader(new StringReader(page), PUSHBACK_BUFFER_SIZE);
+ StringBuffer buf = new StringBuffer();
+ StringBuffer word = null;
+ int previousCh = -2;
+ int start = 0;
+ boolean quitReading = false;
+ boolean newLine = true; // FIXME: not true if reading starts in middle
+ // of buffer
+
+ while (!quitReading) {
+ int ch = nextToken();
+ String s = null;
+
+ // begin of HTML transformation
+ if (m_isPre) {
+ if (ch == '}') {
+ buf.append(handleClosebrace());
+ } else if (ch == '<') {
+ buf.append("<");
+ } else if (ch == '>') {
+ buf.append(">");
+ } else if (ch == -1) {
+ quitReading = true;
+ } else {
+ buf.append((char) ch);
+ }
+
+ continue;
+ }
+ //
+ // CamelCase detection, a non-trivial endeavour.
+ // We keep track of all white-space separated entities, which we
+ // hereby refer to as "words". We then check for an existence
+ // of a CamelCase format text string inside the "word", and
+ // if one exists, we replace it with a proper link.
+ //
+
+ if (m_camelCaseLinks) {
+ // Quick parse of start of a word boundary.
+
+ if (word == null
+ && (Character.isWhitespace((char) previousCh)
+ || WORD_SEPARATORS.indexOf((char) previousCh) != -1 || newLine)
+ && !Character.isWhitespace((char) ch)) {
+ word = new StringBuffer();
+ }
+
+ // Are we currently tracking a word?
+ if (word != null) {
+ //
+ // Check for the end of the word.
+ //
+
+ if (Character.isWhitespace((char) ch) || ch == -1
+ || WORD_SEPARATORS.indexOf((char) ch) != -1) {
+ String potentialLink = word.toString();
+
+ String camelCase = parseCamelCase(potentialLink);
+
+ if (camelCase != null) {
+ start = buf.toString().lastIndexOf(camelCase);
+ buf.replace(start, start + camelCase.length(),
+ handleHyperlinks(camelCase, wikiSession,
+ wikiPage));
+ }
+
+ // We've ended a word boundary, so time to reset.
+ word = null;
+ } else {
+ // This should only be appending letters and digits.
+ word.append((char) ch);
+ } // if end of word
+ } // if word's not null
+
+ // Always set the previous character to test for word starts.
+ previousCh = ch;
+
+ } // if m_camelCaseLinks
+ //
+ // Check if any lists need closing down.
+ //
+
+ if (newLine && ch != '*' && ch != ' ' && m_listlevel > 0) {
+ buf.append("</LI>\n");
+ for (; m_listlevel > 0; m_listlevel--) {
+ buf.append("</UL>\n");
+ }
+ }
+
+ if (newLine && ch != '#' && ch != ' ' && m_numlistlevel > 0) {
+ buf.append("</LI>\n");
+ for (; m_numlistlevel > 0; m_numlistlevel--) {
+ buf.append("</OL>\n");
+ }
+ }
+
+ if (newLine && ch != '|' && m_istable) {
+ buf.append("</TABLE>\n");
+ m_istable = false;
+ m_closeTag = null;
+ }
+
+ switch (ch) {
+ case '\r':
+ // DOS linefeeds we forget
+ s = null;
+ break;
+
+ case '\n':
+ //
+ // Close things like headings, etc.
+ //
+ if (m_closeTag != null) {
+ buf.append(m_closeTag);
+ m_closeTag = null;
+ }
+
+ m_isdefinition = false;
+
+ if (newLine) {
+ // Paragraph change.
+
+ buf.append("<P />\n");
+ } else {
+ buf.append("\n");
+ newLine = true;
+ }
+ /*
+ * wiki syntax handling, later to be refactored so multiple wiki
+ * syntax is supported
+ */
+
+ break;
+ case '\\':
+ s = handleBackslash();
+ break;
+
+ case '_':
+ s = handleUnderscore();
+ break;
+
+ case '\'':
+ s = handleApostrophe();
+ break;
+
+ case '{':
+ s = handleOpenbrace();
+ break;
+
+ case '}':
+ s = handleClosebrace();
+ break;
+
+ case '-':
+ s = handleDash();
+ break;
+
+ case '!':
+ if (newLine) {
+ s = handleHeading();
+ } else {
+ s = "!";
+ }
+ break;
+
+ case ';':
+ if (newLine) {
+ s = handleDefinitionList();
+ } else {
+ s = ";";
+ }
+ break;
+
+ case ':':
+ if (m_isdefinition) {
+ s = "</DT><DD>";
+ m_isdefinition = false;
+ } else {
+ s = ":";
+ }
+ break;
+
+ case '[':
+ s = handleOpenbracket(wikiSession, wikiPage);
+ break;
+
+ case '*':
+ if (newLine) {
+ s = handleUnorderedList();
+ } else {
+ s = "*";
+ }
+ break;
+
+ case '#':
+ if (newLine) {
+ s = handleOrderedList();
+ } else {
+ s = "#";
+ }
+ break;
+
+ case '|':
+ s = handleBar(newLine);
+ break;
+
+ case '<':
+ s = m_allowHTML ? "<" : "<";
+ break;
+
+ // TODO this should be changed somehow to make paes XML compatible
+ // (change & to & if it is standalone &)
+ /*
+ * case '&': s = "&"; break;
+ */
+
+ case '>':
+ s = m_allowHTML ? ">" : ">";
+ break;
+
+ case '\"':
+ s = m_allowHTML ? "\"" : """;
+ break;
+
+ case '~':
+ s = handleTilde();
+ break;
+ case -1:
+ quitReading = true;
+ break;
+
+ default:
+ buf.append((char) ch);
+ newLine = false;
+ break;
+ }
+ if (s != null) {
+ buf.append(s);
+
+ newLine = false;
+ }
+
+ }
+
+ return buf.toString();
+ }
+
+ /**
+ * @param link -
+ * potential camel case link to be tested
+ * @return the string itself if not a camel case, and a proper link
+ * otherwise
+ * @author Rali Genova
+ * @author Janne Jalkanen
+ */
+ public static String parseCamelCase(String link) {
+ String camelCasepattern = "^([^\\p{Alnum}]*|\\~)([\\p{Upper}]+[\\p{Lower}]+[\\p{Upper}]+[\\p{Alnum}]*)[^\\p{Alnum}]*$";
+ Pattern camelCase = Pattern.compile(camelCasepattern);
+ Matcher camelMatch = camelCase.matcher(link);
+ if (camelMatch.matches()) {
+ String result = camelMatch.group(2); // get the camel case words
+ if (camelMatch.group(1) != null) {
+ if ((camelMatch.group(1).equals("~"))
+ || (camelMatch.group(1).indexOf('[') != -1)) {
+ return null; // this is camelCase escape or [...] link
+ }
+ }
+ return result;
+
+ }// if match
+ return null;
+ }
+
+ /* a collection of all media formats allowed on wiki */
+ private static Collection getImagePatterns() {
+ ArrayList patt = new ArrayList();
+ String imagepattern = mediaPatterns;
+ String[] elem = imagepattern.split(",");
+ for (int i = 0; i < elem.length; i++) {
+ patt.add(elem[i].trim());
+ }
+
+ return patt;
+ }
+
+ public static boolean checkImageLink(String text) {
+ ArrayList ptrns = (ArrayList) getImagePatterns();
+ for (int i = 0; i < ptrns.size(); i++) {
+ if (text.endsWith((String) ptrns.get(i))) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Generic escape of next character or entity.
+ */
+ private String handleTilde() throws IOException {
+ int ch = nextToken();
+
+ if (ch == '|')
+ return "|";
+
+ if (Character.isUpperCase((char) ch)) {
+ return String.valueOf((char) ch);
+ }
+
+ // No escape.
+ pushBack(ch);
+
+ return "~";
+ }
+
+ private String handleUnderscore() throws IOException {
+ int ch = nextToken();
+ String res = "_";
+
+ if (ch == '_') {
+ res = m_isbold ? "</B>" : "<B>";
+ m_isbold = !m_isbold;
+ } else {
+ pushBack(ch);
+ }
+
+ return res;
+ }
+
+ /**
+ * For example: italics.
+ */
+ private String handleApostrophe() throws IOException {
+ int ch = nextToken();
+ String res = "'";
+
+ if (ch == '\'') {
+ res = m_isitalic ? "</I>" : "<I>";
+ m_isitalic = !m_isitalic;
+ } else {
+ m_in.unread(ch);
+ }
+
+ return res;
+ }
+
+ private String handleDash() throws IOException {
+ int ch = nextToken();
+
+ if (ch == '-') {
+ int ch2 = nextToken();
+
+ if (ch2 == '-') {
+ int ch3 = nextToken();
+
+ if (ch3 == '-') {
+ // Empty away all the rest of the dashes.
+ // Do not forget to return the first non-match back.
+ while ((ch = nextToken()) == '-')
+ ;
+
+ pushBack(ch);
+ return "<HR />";
+ }
+
+ pushBack(ch3);
+ }
+ pushBack(ch2);
+ }
+
+ pushBack(ch);
+
+ return "-";
+ }
+
+ private String handleHeading() throws IOException {
+ StringBuffer buf = new StringBuffer();
+
+ int ch = nextToken();
+
+ if (ch == '!') {
+ int ch2 = nextToken();
+
+ if (ch2 == '!') {
+ buf.append("<H2>");
+ m_closeTag = "</H2>";
+ } else {
+ buf.append("<H3>");
+ m_closeTag = "</H3>";
+ pushBack(ch2);
+ }
+ } else {
+ buf.append("<H4>");
+ m_closeTag = "</H4>";
+ pushBack(ch);
+ }
+
+ return buf.toString();
+ }
+
+ private String handleUnorderedList() throws IOException {
+ StringBuffer buf = new StringBuffer();
+
+ if (m_listlevel > 0) {
+ buf.append("</LI>\n");
+ }
+
+ int numBullets = countChars(m_in, '*') + 1;
+
+ if (numBullets > m_listlevel) {
+ for (; m_listlevel < numBullets; m_listlevel++)
+ buf.append("<UL>\n");
+ } else if (numBullets < m_listlevel) {
+ for (; m_listlevel > numBullets; m_listlevel--)
+ buf.append("</UL>\n");
+ }
+
+ buf.append("<LI>");
+
+ return buf.toString();
+ }
+
+ private String handleOrderedList() throws IOException {
+ StringBuffer buf = new StringBuffer();
+
+ if (m_numlistlevel > 0) {
+ buf.append("</LI>\n");
+ }
+
+ int numBullets = countChars(m_in, '#') + 1;
+
+ if (numBullets > m_numlistlevel) {
+ for (; m_numlistlevel < numBullets; m_numlistlevel++)
+ buf.append("<OL>\n");
+ } else if (numBullets < m_numlistlevel) {
+ for (; m_numlistlevel > numBullets; m_numlistlevel--)
+ buf.append("</OL>\n");
+ }
+
+ buf.append("<LI>");
+
+ return buf.toString();
+
+ }
+
+ private int countChars(PushbackReader in, char c) throws IOException {
+ int count = 0;
+ int ch;
+
+ while ((ch = in.read()) != -1) {
+ if ((char) ch == c) {
+ count++;
+ } else {
+ in.unread(ch);
+ break;
+ }
+ }
+
+ return count;
+ }
+
+ private String handleBar(boolean newLine) throws IOException {
+ StringBuffer sb = new StringBuffer();
+
+ if (!m_istable && !newLine) {
+ return "|";
+ }
+
+ if (newLine) {
+ if (!m_istable) {
+ sb.append("<TABLE CLASS=\"wikitable\" BORDER=\"1\">\n");
+ m_istable = true;
+ }
+
+ sb.append("<TR>");
+ m_closeTag = "</TD></TR>";
+ }
+
+ int ch = nextToken();
+
+ if (ch == '|') {
+ if (!newLine) {
+ sb.append("</TH>");
+ }
+ sb.append("<TH>");
+ m_closeTag = "</TH></TR>";
+ } else {
+ if (!newLine) {
+ sb.append("</TD>");
+ }
+ sb.append("<TD>");
+ pushBack(ch);
+ }
+
+ return sb.toString();
+ }
+
+ private String handleDefinitionList() throws IOException {
+ if (!m_isdefinition) {
+ m_isdefinition = true;
+
+ m_closeTag = "</DD>\n</DL>";
+
+ return "<DL>\n<DT>";
+ }
+
+ return ";";
+ }
+
+ private String handleBackslash() throws IOException {
+ int ch = nextToken();
+
+ if (ch == '\\') {
+ int ch2 = nextToken();
+
+ if (ch2 == '\\') {
+ return "<BR clear=\"all\" />";
+ }
+
+ pushBack(ch2);
+
+ return "<BR />";
+ }
+
+ pushBack(ch);
+
+ return "\\";
+ }
+
+ private String handleOpenbracket(WikiSession wikiSession, WikiPage wikiPage)
+ throws IOException {
+ StringBuffer sb = new StringBuffer();
+ int ch;
+ boolean isPlugin = false;
+
+ while ((ch = nextToken()) == '[') {
+ sb.append((char) ch);
+ }
+
+ if (sb.length() > 0) {
+ return sb.toString();// not a link
+ }
+
+ //
+ // Find end of hyperlink
+ //
+ pushBack(ch);
+ ch = nextToken();
+
+ while (ch != -1) {
+ if (ch == ']')// && (!isPlugin || sb.charAt( sb.length()-1 ) ==
+ // '}'
+ // ) )
+ {
+ break;
+ }
+
+ sb.append((char) ch);
+
+ ch = nextToken();
+ }
+
+ if (ch == -1) {
+
+ return sb.toString();
+ }
+
+ return handleHyperlinks(sb.toString(), wikiSession, wikiPage);
+ }
+
+ private String handleOpenbrace() throws IOException {
+ int ch = nextToken();
+ String res = "{";
+
+ if (ch == '{') {
+ int ch2 = nextToken();
+
+ if (ch2 == '{') {
+ res = "<PRE>";
+ m_isPre = true;
+ } else {
+ pushBack(ch2);
+
+ res = "<TT>";
+ m_isTypedText = true;
+ }
+ } else {
+ pushBack(ch);
+ }
+
+ return res;
+ }
+
+ /**
+ * Handles both }} and }}}
+ */
+ private String handleClosebrace() throws IOException {
+ String res = "}";
+
+ int ch2 = nextToken();
+
+ if (ch2 == '}') {
+ int ch3 = nextToken();
+
+ if (ch3 == '}') {
+ if (m_isPre) {
+ m_isPre = false;
+ res = "</PRE>";
+ } else {
+ res = "}}}";
+ }
+ } else {
+ pushBack(ch3);
+
+ if (!m_isPre) {
+ res = "</TT>";
+ m_isTypedText = false;
+ } else {
+ pushBack(ch2);
+ }
+ }
+ } else {
+ pushBack(ch2);
+ }
+
+ return res;
+ }
+
+ /**
+ * Returns true if the link is really command to insert a plugin.
+ * <P>
+ * Currently we just check if the link starts with "{INSERT", or just plain
+ * "{" but not "{$".
+ *
+ * @author Janne Jalkanen
+ *
+ * @param link
+ * Link text, i.e. the contents of text between [].
+ * @return True, if this link seems to be a command to insert a plugin here.
+ */
+ public static boolean isPluginLink(String link) {
+ return link.startsWith("{INSERT")
+ || (link.startsWith("{") && !link.startsWith("{$"));
+ }
+
+ /**
+ * method to create links for external pages of Wiki pages
+ *
+ * @param string
+ * @return the HTML link representation of the wiki page/external link
+ * @author Rali Genova
+ */
+ private String handleHyperlinks(String link, WikiSession wikiSession,
+ WikiPage wPage) {
+ String result = "";
+ String text = "";
+ String wikiPage = "";
+
+ if (isPluginLink(link)) {
+ // return null; // we do not include plugin links for now
+ if (executePlugins) {
+ return wikiEngine.executeInsidePlugin(link, wPage, wikiSession);
+ } else {
+ return link;
+ }
+ }
+ int border = link.indexOf('|');
+ if (border != -1) // [text|link] case
+ {
+ text = link.substring(0, border);
+ link = link.substring(border + 1);
+
+ } else // [link] case
+ {
+ if (!isExternalLink(link)) {
+ text = wikiEngine.getRealName(cleanLink(link), wPage
+ .getLangCode());
+ } else {
+ text = link;
+ }
+ }
+
+ // external link
+ if (isExternalLink(link)) {
+ if (checkImageLink(link)) {
+ result = "<img src=\"" + link + "\" alt=\"" + text + "\" />";// external
+ // image
+ } else
+ result = "<a href=\"" + link + "\" >" + text
+ + "</a><img src=\"" + imagePath + "/"
+ + WikiCommon.wikiButtons + "/out.png\" />";
+ }
+ // internal link
+ else {
+ // check if a footnote
+ if (link.startsWith("#"))// footnote reference
+ {
+ // http://labs.jboss.com/JSPWiki/Wiki.jsp?page=TextFormattingRules#ref-TextFormattingRules-1
+ result = "<a name=\"ref-" + pageName + "-" + link.substring(1)
+ + "\">[" + text + "]</A>";
+
+ } else if (isNumber(link))// defines footnote
+ {
+ result = "<a href=\"" + portalHome + wikiHome + page + pageName
+ + language + wPage.getLangCode() + "#ref-" + pageName
+ + "-" + link + "\">[" + text + "]</A>";
+ }
+
+ // check if not an image link as well
+ else if (checkImageLink(link)) {
+ result = "<img src=\"" + imagePath + "/" + pageName + "/file:"
+ + link + "\" alt=\"" + text + "\" />";
+
+ }
+ // check for attachments later on
+ else {
+ wikiPage = wikiEngine.getRealName(cleanLink(link), wPage
+ .getLangCode());
+ if (wikiEngine.pageExists(wikiPage, wPage.getLangCode())) {
+ result = "<a href=\"" + portalHome + wikiHome + page
+ + wikiPage + language + wPage.getLangCode() + "\">"
+ + text + "</a>";
+ } else
+ result = "<u>" + text + "</u>" + "<a href=\"" + portalHome
+ + wikiHome + page + wikiPage + language
+ + wPage.getLangCode() + "\">" + "?" + "</a>";
+ }
+ }
+
+ return result;
+ }
+
+ /**
+ * Figures out if a link is an off-site link. This recognizes the most
+ * common protocols by checking how it starts. (clears all white space in
+ * case the link starts with '\n' or [space]
+ *
+ * @author Janne Jalkanen
+ */
+ public static boolean isExternalLink(String link) {
+ link = link.trim();
+ return link.startsWith("http:") || link.startsWith("ftp:")
+ || link.startsWith("https:") || link.startsWith("mailto:")
+ || link.startsWith("news:") || link.startsWith("file:");
+ }
+
+ private int nextToken() throws IOException {
+ return m_in.read();
+ }
+
+ /**
+ * Push back any character to the current input. Does not push back a read
+ * EOF, though.
+ */
+
+ /**
+ * Cleans a Wiki name.
+ * <P>[ This is a link ] -> ThisIsALink
+ *
+ * @param link
+ * Link to be cleared. Null is safe, and causes this to return
+ * null.
+ * @return A cleaned link.
+ *
+ * @since 2.0
+ * @author Janne Jalkanen
+ */
+ public static String cleanLink(String link) {
+ StringBuffer clean = new StringBuffer();
+
+ if (link == null)
+ return null;
+
+ //
+ // Compress away all whitespace and capitalize
+ // all words in between.
+ //
+
+ StringTokenizer st = new StringTokenizer(link, " -");
+
+ while (st.hasMoreTokens()) {
+ StringBuffer component = new StringBuffer(st.nextToken());
+
+ component.setCharAt(0, Character.toUpperCase(component.charAt(0)));
+
+ //
+ // We must do this, because otherwise compiling on JDK 1.4 causes
+ // a downwards incompatibility to JDK 1.3.
+ //
+ clean.append(component.toString());
+ }
+
+ //
+ // Remove non-alphanumeric characters that should not
+ // be put inside WikiNames. Note that all valid
+ // Unicode letters are considered okay for WikiNames.
+ // It is the problem of the WikiPageProvider to take
+ // care of actually storing that information.
+ //
+
+ for (int i = 0; i < clean.length(); i++) {
+ if ((clean.charAt(i) != '/')
+ && !(Character.isLetterOrDigit(clean.charAt(i))
+ || clean.charAt(i) == '_' || clean.charAt(i) == '.')) {
+ clean.deleteCharAt(i);
+ --i; // We just shortened this buffer.
+ }
+ }
+
+ //
+ // Capitalise words in subpages
+ //
+
+ for (int i = 0; i < clean.length() - 1; i++) {
+ if ((clean.charAt(i) == '/')
+ && (Character.isLowerCase(clean.charAt(i + 1)))) {
+ clean.setCharAt(i + 1, Character.toUpperCase(clean
+ .charAt(i + 1)));
+ }
+ }
+
+ return clean.toString();
+ }
+
+ /**
+ * Returns true, if the argument contains a number, otherwise false. In a
+ * quick test this is roughly the same speed as Integer.parseInt() if the
+ * argument is a number, and roughly ten times the speed, if the argument is
+ * NOT a number.
+ */
+
+ public static boolean isNumber(String s) {
+ if (s == null)
+ return false;
+
+ if (s.length() > 1 && s.charAt(0) == '-')
+ s = s.substring(1);
+
+ for (int i = 0; i < s.length(); i++) {
+ if (!Character.isDigit(s.charAt(i)))
+ return false;
+ }
+
+ return true;
+ }
+
+ // not sure what it is supposed to do but neccessary to compile
+ public void next() {
+ }
+
+ public void initTranslator() {
+ m_allowHTML = false;
+ m_isbold = false;
+ m_isitalic = false;
+ m_isTypedText = false;
+ m_istable = false;
+ m_isPre = false;
+ m_isdefinition = false;
+ m_listlevel = 0;
+ m_numlistlevel = 0;
+ m_camelCaseLinks = true; // camelCase enabled
+ /** Tag that gets closed at EOL. */
+ m_closeTag = null;
+ }
+
+ public WikiPage process(final WikiPage wikiPage, WikiSession wikiSession) {
+ WikiPage newPage = null;
+
+ portalHome = (String) wikiSession.getAttribute(WikiSession.HOST_URL)
+ + (String) wikiSession.getAttribute(WikiSession.ACTION_URL);
+ wikiHome = "";
+ imagePath = (String) wikiSession.getAttribute(WikiSession.HOST_URL)
+ + "/wiki"
+ + (!wikiPage.getLangCode().equals(wikiEngine.defaultLangugeCode) ? "/"
+ + wikiPage.getLangCode().toLowerCase()
+ : "");
+
+ try {
+ newPage = (WikiPage) wikiPage.clone();
+ } catch (CloneNotSupportedException cnse) {
+ log.error("cannot clone the page: ", cnse);
+ }
+
+ pageName = newPage.getName();
+ String newContent = parseParts(newPage.getContent(), wikiSession,
+ wikiPage);
+
+ newPage.setContent(newContent);
+
+ return newPage;
+ }
+
+ private String parseParts(String pageContent, WikiSession wikiSession,
+ WikiPage wikiPage) {
+ String newPageContent = pageContent;
+
+ try {
+ int lastBegIndx = 0;
+ while ((lastBegIndx = newPageContent.indexOf(pagePartRegexStart,
+ lastBegIndx)) != -1) {
+
+ initTranslator();
+
+ int endIndx = newPageContent.indexOf(pagePartRegexEnd,
+ lastBegIndx);
+
+ if (endIndx != -1) {
+ String pagePart = newPageContent.substring(lastBegIndx
+ + pagePartRegexStart.length(), endIndx);
+ String replace = parseLinks(pagePart, wikiSession, wikiPage)/*
+ * .replaceAll("&",
+ * "&")
+ */;
+
+ newPageContent = newPageContent.substring(0, lastBegIndx)
+ + replace
+ + newPageContent.substring(endIndx
+ + pagePartRegexEnd.length());
+
+ lastBegIndx += replace.length();
+ }
+
+ }
+
+ } catch (IOException e) {
+ log.error(e);
+ newPageContent = "error on page";
+ }
+
+ return newPageContent;
+
+ }
+
+ @Override
+ public void init() {
+ mediaPatterns = getProperty("imagePatterns");
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/IndexInsidePlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/IndexInsidePlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/IndexInsidePlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,37 @@
+package org.jboss.wiki.plugins;
+
+import java.util.HashMap;
+import java.util.Set;
+
+import org.jboss.wiki.WikiInsidePlugin;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiSession;
+
+public class IndexInsidePlugin extends WikiInsidePlugin {
+
+ @Override
+ public String process(WikiPage wikiPage, WikiSession wikiSession,
+ HashMap<String, String> attributes) {
+ StringBuffer pluginContent = new StringBuffer();
+
+ Set<String> allPages = wikiEngine.getAllPageNames(wikiPage.getLangCode());
+
+ Character chr = ' ';
+
+ for (String pageName : allPages) {
+ if (Character.toUpperCase(pageName.charAt(0)) != chr) {
+ chr = Character.toUpperCase(pageName.charAt(0));
+ pluginContent.append("!!").append(chr).append("\n");
+ }
+ pluginContent.append("[").append(pageName).append("]\\\\\n");
+ }
+
+ return pluginContent.toString();
+ }
+
+ @Override
+ public void init() {
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/InsertPageInsidePlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/InsertPageInsidePlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/InsertPageInsidePlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,92 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import java.util.HashMap;
+
+import org.jboss.wiki.WikiInsidePlugin;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiSession;
+
+public class InsertPageInsidePlugin extends WikiInsidePlugin {
+
+ @Override
+ public String process(WikiPage wikiPage, WikiSession wikiSession,
+ HashMap<String, String> attributes) {
+ String ret = wikiPage.getContent();
+
+ String page = attributes.get("page");
+
+ String style = attributes.get("style");
+
+ Integer maxlength = getNumericValue(attributes,"maxlength");
+
+
+ if (page == null) {
+ ret = "''There is no 'page' attribute which is mandatory for InsertPage plugin''";
+ }
+ else {
+ WikiPage about = wikiEngine.getByName(page, null, wikiPage.getLangCode());
+
+ ret = addStyle(addMaxLength(about.getContent(), page, maxlength),style);
+ }
+
+ return ret;
+ }
+
+ private String addMaxLength(String content, String pageName, Integer maxlength) {
+ if (maxlength != null) {
+ if (content.length() > maxlength) {
+ boolean insideLink = false;
+
+ int i = 0;
+
+ for (i = 0; (i < maxlength || insideLink); i++) {
+ if (content.charAt(i) == '[') {
+ insideLink = true;
+ }
+ else if (insideLink && content.charAt(i) == ']') {
+ insideLink = false;
+ }
+ }
+ return content.substring(0,i)+" ... \\\\\n\\\\\n[More...|"+pageName+"]";
+ }
+ }
+
+ return content;
+ }
+
+ private String addStyle(String content, String style) {
+ if ((style != null)&&(style.length() > 0)) {
+ return HTMLTranslatorParts.pagePartRegexEnd+"<div style=\""+style+"\">"+HTMLTranslatorParts.pagePartRegexStart+content+HTMLTranslatorParts.pagePartRegexEnd+"</div>"+HTMLTranslatorParts.pagePartRegexStart;
+ }
+ else
+ return content;
+ }
+
+ @Override
+ public void init() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/LinkPagePlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/LinkPagePlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/LinkPagePlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,221 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import java.util.Map;
+import java.util.Set;
+
+import org.jboss.wiki.Credentials;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class LinkPagePlugin extends WikiPlugin {
+
+ private final static String LINK_CAPTION = "Link";
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+
+ // you can link a page if it is editable for you
+ if (wikiPage.isEditable((Credentials) wikiSession
+ .getAttribute(WikiSession.CREDENTIALS))) {
+
+ StringBuilder content = new StringBuilder(
+ HTMLTranslatorParts.pagePartRegexStart);
+
+ // process any link requests
+ if (wikiSession.getAttribute("var1") != null
+ && wikiSession.getAttribute("var1").equals(LINK_CAPTION)) {
+ String newLang = (String) wikiSession.getAttribute("var2");
+ String pageName = (String) wikiSession.getAttribute("var3");
+
+ WikiPage linkTo = wikiEngine.getByName(pageName, null, newLang);
+
+ if (linkTo.isEditable((Credentials) wikiSession
+ .getAttribute(WikiSession.CREDENTIALS))) {
+
+ // make link in page we link to
+ synchronized (linkTo) {
+ makePageLinks(linkTo, wikiPage);
+ }
+
+ // make link in current page
+ synchronized (wikiPage) {
+ makePageLinks(wikiPage, linkTo);
+ }
+
+ content.append("Link added\n");
+ } else {
+ content
+ .append("Page you're trying to link to is not editable for you.\n");
+ }
+ }
+
+ // show Link page options
+ content.append("!!Link page: ").append(wikiPage.getName()).append(
+ " (").append(wikiPage.getLangCode()).append(")\n\n");
+
+ content.append(HTMLTranslatorParts.pagePartRegexEnd);
+
+ Map<String, String> usedLangs = wikiEngine.getUsedLanguageCodes();
+
+ // iterate thru all langs used in this wiki
+ for (String lang : usedLangs.keySet()) {
+ if (!lang.equals(wikiPage.getLangCode())) {
+ // create forms
+ content.append(lang).append(" (").append(
+ usedLangs.get(lang)).append(")<br />\n");
+ content
+ .append("<form method=\"post\" action=\"")
+ .append(
+ wikiSession
+ .getAttribute(WikiSession.ACTION_URL))
+ .append("&page=")
+ .append(wikiPage.getName())
+ .append("&type=")
+ .append(wikiType.getName())
+ .append(
+ "\"><input type=\"hidden\" name=\"var2\" value=\"")
+ .append(lang).append("\" /><select name=\"var3\">");
+
+ Set<String> allPageNames = wikiEngine.getAllPageNames(lang);
+
+ // page you can link to
+ for (String pageName : allPageNames) {
+ content.append("<option>").append(pageName).append(
+ "</option>\n");
+ }
+
+ content.append("</select>").append(
+ "<input type=\"submit\" value=\"").append(
+ LINK_CAPTION).append("\" name=\"var1\" />");
+
+ content.append("</form><br />\n");
+ }
+ }
+ // copy page, as this is directref wikitype
+ try {
+ wikiPage = (WikiPage) wikiPage.clone();
+ } catch (CloneNotSupportedException e) {
+ log.error(e);
+ }
+
+ wikiPage.setContent(content.toString());
+
+ } else {
+ wikiPage.setContent("This page is not editable for you");
+ }
+
+ return wikiPage;
+ }
+
+ @Override
+ public void init() {
+ // TODO Auto-generated method stub
+
+ }
+
+ private void makePageLinks(WikiPage inPage, WikiPage toPage) {
+ String links[] = { null };
+
+ if (inPage.getMetaDataProperty(WikiPage.OTHER_LANGS) != null
+ && inPage.getMetaDataProperty(WikiPage.OTHER_LANGS).length() > 0) {
+
+ links = inPage.getMetaDataProperty(WikiPage.OTHER_LANGS).split(
+ "[,]");
+ }
+
+ boolean added = false;
+
+ // look if there already is link to this lang
+ for (int i = 0; links[0] != null && !added && i < links.length; i += 2) {
+ if (links[i].equals(toPage.getLangCode())) {
+ // remove link from previous page
+ WikiPage oldLinkPage = wikiEngine.getByName(wikiEngine
+ .getRealName(links[i + 1], links[i]), null, links[i]);
+
+ removeOldLink(oldLinkPage, inPage);
+
+ links[i + 1] = wikiEngine.getUid(toPage.getName(), toPage
+ .getLangCode());
+ added = true;
+ }
+ }
+
+ // there were no link in this lang yet
+ if (!added) {
+ String langsStr = inPage.getMetaDataProperty(WikiPage.OTHER_LANGS);
+
+ if (langsStr == null) {
+ langsStr = "";
+ } else {
+ langsStr += ",";
+ }
+
+ inPage
+ .setMetaDataProperty(WikiPage.OTHER_LANGS, langsStr
+ + toPage.getLangCode()
+ + ","
+ + wikiEngine.getUid(toPage.getName(), toPage
+ .getLangCode()));
+ } else {
+ StringBuilder linksBuilder = new StringBuilder(links[0]);
+
+ for (int i = 1; i < links.length; i++) {
+ linksBuilder.append(",").append(links[i]);
+ }
+
+ inPage.setMetaDataProperty(WikiPage.OTHER_LANGS, linksBuilder
+ .toString());
+ }
+ }
+
+ private void removeOldLink(WikiPage oldLinkPage, WikiPage toPage) {
+ if (oldLinkPage.getMetaDataProperty(WikiPage.OTHER_LANGS) != null) {
+ synchronized (oldLinkPage) {
+ String[] otherLangs = oldLinkPage.getMetaDataProperty(
+ WikiPage.OTHER_LANGS).split("[,]");
+
+ String newLangs = "";
+
+ for (int i = 0; i < otherLangs.length; i += 2) {
+ if (!otherLangs[i].equals(toPage.getLangCode())) {
+ newLangs += "," + otherLangs[i] + ","
+ + otherLangs[i + 1];
+ }
+ }
+
+ if (newLangs.length() > 1) {
+ newLangs = newLangs.substring(1);
+ }
+
+ if (newLangs.length() > 0) {
+ oldLinkPage.setMetaDataProperty(WikiPage.OTHER_LANGS,
+ newLangs);
+ } else {
+ oldLinkPage.removeMetaDataProperty(WikiPage.OTHER_LANGS);
+ }
+ }
+ }
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/OtherLangsPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/OtherLangsPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/OtherLangsPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,93 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import org.jboss.wiki.Credentials;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class OtherLangsPlugin extends WikiPlugin {
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+
+ // there must be more then one language used
+ if (wikiEngine.getUsedLanguageCodes().keySet().size() > 1) {
+
+ Credentials credentials = (Credentials) wikiSession
+ .getAttribute(WikiSession.CREDENTIALS);
+
+ StringBuilder content = new StringBuilder(wikiPage.getContent())
+ .append(HTMLTranslatorParts.pagePartRegexStart).append(
+ "\n----\n").append(
+ HTMLTranslatorParts.pagePartRegexEnd);
+
+ content.append("<h3>Other languages:");
+
+ if (credentials.isLoggedIn() && wikiPage.isEditable(credentials)) {
+ content.append(" <a href=\"").append(
+ wikiSession.getAttribute(WikiSession.ACTION_URL))
+ .append("&page=").append(wikiPage.getName()).append(
+ "&type=linkPage\">[MAKE LINK]</a></h3>\n");
+ } else {
+ content
+ .append("</h3><i>Log in to make links between pages</i><br />\n");
+ }
+
+ content.append(HTMLTranslatorParts.pagePartRegexStart);
+
+ String otherLangs = wikiPage
+ .getMetaDataProperty(WikiPage.OTHER_LANGS);
+
+ if (otherLangs != null) {
+ String hostURL = (String) wikiSession
+ .getAttribute(WikiSession.HOST_URL);
+
+ String[] otherLangsArray = otherLangs.split("[,]");
+ for (int i = 0; i < otherLangsArray.length; i += 2) {
+ content.append("[").append(hostURL).append("/wiki/")
+ .append(otherLangsArray[i].toLowerCase()).append(
+ "/").append(
+ wikiEngine.getRealName(
+ otherLangsArray[i + 1],
+ otherLangsArray[i])).append("]")
+ .append(" ").append("''").append(
+ wikiEngine.getAllLanguageCodes().get(
+ otherLangsArray[i])).append("'' ");
+ }
+ }
+
+ content.append(HTMLTranslatorParts.pagePartRegexEnd);
+
+ wikiPage.setContent(content.toString());
+
+ }
+ return wikiPage;
+ }
+
+ @Override
+ public void init() {
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RDFPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RDFPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RDFPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,117 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import java.util.Date;
+
+import org.jboss.wiki.WikiPage;
+
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class RDFPlugin extends WikiPlugin {
+
+ private DifferenceEngine differenceEngine;
+
+ private void addItem(StringBuilder rdfFeed, String title, String link,
+ String description, Date date) {
+ rdfFeed.append("<item rdf:about=\"").append(link).append("\" >\n");
+ rdfFeed.append("<title>").append(title).append("</title>\n");
+ rdfFeed.append("<link>").append(link).append("</link>\n");
+ rdfFeed.append("<description>").append(description).append(
+ "</description>\n");
+ rdfFeed.append("<dc:date>").append(date.toString()).append(
+ "</dc:date>\n");
+ rdfFeed.append("</item>\n");
+ }
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ StringBuilder rdfFeed = new StringBuilder(
+ "<!-- name=\"generator\" content=\"JBoss Wiki RDFPlugin\" -->\n");
+ rdfFeed.append("<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" xmlns=\"http://purl.org/rss/1.0/\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:sy=\"http://purl.org/rss/1.0/modules/syndication/\">\n");
+ rdfFeed.append("<channel rdf:about=\"").append(
+ (String) wikiSession.getAttribute("hostURL")).append("/wiki/")
+ .append(
+ wikiPage.getLangCode().equals(
+ wikiEngine.defaultLangugeCode) ? "" : wikiPage
+ .getLangCode().toLowerCase()
+ + "/").append(wikiPage.getName()).append(
+ "\">\n");
+ rdfFeed.append("<title>JBoss Forge Wiki: " + wikiPage.getName()
+ + "</title>\n");
+ rdfFeed.append("<link>" + (String) wikiSession.getAttribute("hostURL"))
+ .append("/wiki/").append(
+ wikiPage.getLangCode().equals(
+ wikiEngine.defaultLangugeCode) ? "" : wikiPage
+ .getLangCode().toLowerCase()
+ + "/").append(wikiPage.getName()).append(
+ "</link>\n");
+ rdfFeed.append("<description>JBoss Wiki: " + wikiPage.getName()
+ + "</description>\n");
+ rdfFeed.append("<dc:language>en</dc:language>\n");
+ rdfFeed.append("<items>\n<rdf:Seq>\n");
+
+ StringBuilder items = new StringBuilder();
+
+ for (int i = wikiPage.getLastVersion(); i > 0; i--) {
+ String content;
+
+ if (i > 1) {
+ content = differenceEngine
+ .makeDiff(
+ wikiPage.getPageAtVersion(true, i)
+ .getPageContent(),
+ wikiPage.getPageAtVersion(true, i - 1)
+ .getPageContent()).replaceAll("&",
+ "&").replaceAll("<", "<").replaceAll(
+ ">", ">").replaceAll("\n", "<br />\n");
+ } else {
+ content = "This is first version of the page so it doesn't have diff yet";
+ }
+
+ String url = (String) wikiSession.getAttribute("hostURL")
+ + getProperty("wikiHome").replaceAll("&", "&")
+ + "&page=" + wikiPage.getName() + "&version=" + i
+ + "&language=" + wikiPage.getLangCode();
+
+ addItem(items, wikiPage.getName() + " rev: " + i, url, content,
+ wikiPage.getEditDate());
+
+ rdfFeed.append("<rdf:li rdf:resource=\"").append(url).append(
+ "\" />\n");
+ }
+
+ rdfFeed.append("</rdf:Seq>\n</items>\n</channel>\n").append(items)
+ .append("</rdf:RDF>\n");
+
+ wikiPage.setContent(rdfFeed.toString());
+
+ return wikiPage;
+ }
+
+ @Override
+ public void init() {
+ differenceEngine = new DifferenceEngine("UTF-8");
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RSSPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RSSPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RSSPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,99 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import org.jboss.wiki.WikiPage;
+
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class RSSPlugin extends WikiPlugin {
+
+ private DifferenceEngine differenceEngine;
+
+ private void addItem(StringBuilder rssFeed, String title, String link,
+ String description) {
+ rssFeed.append("<item>\n");
+ rssFeed.append("<title>").append(title).append("</title>\n");
+ rssFeed.append("<link>").append(link).append("</link>\n");
+ rssFeed.append("<description>").append(description).append(
+ "</description>\n");
+ rssFeed.append("</item>\n");
+ }
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ StringBuilder rssFeed = new StringBuilder(
+ "<!-- name=\"generator\" content=\"JBoss Wiki RSSPlugin\" -->\n");
+ rssFeed.append("<rss version=\"0.92\">\n");
+ rssFeed.append("<channel>\n");
+ rssFeed.append("<title>JBoss Forge Wiki: " + wikiPage.getName()
+ + "</title>\n");
+ rssFeed.append("<link>").append(
+ (String) wikiSession.getAttribute("hostURL")).append("/wiki/")
+ .append(
+ wikiPage.getLangCode().equals(
+ wikiEngine.defaultLangugeCode) ? "" : wikiPage
+ .getLangCode().toLowerCase()
+ + "/").append(wikiPage.getName()).append(
+ "</link>\n");
+ rssFeed.append("<description>JBoss Wiki: " + wikiPage.getName()
+ + "</description>\n");
+ rssFeed.append("<language>en</language>\n");
+
+ for (int i = wikiPage.getLastVersion(); i > 0; i--) {
+ String content;
+
+ if (i > 1) {
+ content = differenceEngine
+ .makeDiff(
+ wikiPage.getPageAtVersion(true, i)
+ .getPageContent(),
+ wikiPage.getPageAtVersion(true, i - 1)
+ .getPageContent()).replaceAll("&",
+ "&").replaceAll("<", "<").replaceAll(
+ ">", ">").replaceAll("\n", "<br />\n");
+ } else {
+ content = "This is first version of the page so it doesn't have diff yet";
+ }
+
+ addItem(rssFeed, wikiPage.getName() + " rev: " + i,
+ (String) wikiSession.getAttribute("hostURL")
+ + getProperty("wikiHome").replaceAll("&", "&")
+ + "&page=" + wikiPage.getName()
+ + "&version=" + i + "&language="
+ + wikiPage.getLangCode(), content);
+ }
+
+ rssFeed.append("</channel>\n</rss>\n");
+
+ wikiPage.setContent(rssFeed.toString());
+
+ return wikiPage;
+ }
+
+ @Override
+ public void init() {
+ differenceEngine = new DifferenceEngine("UTF-8");
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RSSWikiType.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RSSWikiType.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RSSWikiType.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,31 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import org.jboss.wiki.WikiType;
+
+public class RSSWikiType extends WikiType {
+
+ public String getContentType() {
+ return "text/xml";
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/ReTranslateUids.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/ReTranslateUids.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/ReTranslateUids.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import org.jboss.wiki.WikiEngine;
+
+public class ReTranslateUids extends TranslateUids {
+
+ //this class only inherties this one method to retranslate all the urls
+ @Override
+ protected String changeName(String link, String langCode) {
+ return wikiEngine.getUid(link, langCode);
+ }
+
+ public ReTranslateUids() {
+ super();
+ }
+
+ public ReTranslateUids (WikiEngine wikiEngine) {
+ super();
+
+ this.wikiEngine = wikiEngine;
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RecentlyChangedPagesPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RecentlyChangedPagesPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RecentlyChangedPagesPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,127 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Set;
+import java.util.TreeMap;
+import java.util.TreeSet;
+
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class RecentlyChangedPagesPlugin extends WikiPlugin {
+
+ private int numOfDays = 30; // just initialization if sth goes wrong. Real
+
+ // number is taken from wikiPlugin.properties
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ StringBuilder recentChanges = new StringBuilder();
+
+ recentChanges.append("<h3>Recent changes from last ").append(numOfDays)
+ .append(" days</h3>\n");
+ recentChanges.append("<hr>\n");
+ recentChanges.append(HTMLTranslatorParts.pagePartRegexStart);
+
+ int offset = recentChanges.length();
+
+ Set<String> pages = wikiEngine.getAllPageNames(wikiPage.getLangCode());
+
+ TreeMap<String, TreeSet<String>> sortedByDate = new TreeMap<String, TreeSet<String>>();
+
+ // get now date
+ Calendar now = Calendar.getInstance();
+ Calendar then = Calendar.getInstance();
+ now.setTime(new Date());
+
+ for (String name : pages) {
+ WikiPage temp = wikiEngine.getByName(name, null, wikiPage.getLangCode());
+
+ //log.debug("name: "+name+" "+temp.getName());
+ then.setTime(temp.getEditDate());
+
+ then.add(Calendar.DAY_OF_MONTH, numOfDays);
+
+ if (then.after(now)) {
+ // this page has been edited in last numOfDays days
+ Calendar cal = Calendar.getInstance();
+ String key;
+
+ cal.setTime(temp.getEditDate());
+
+ String month = String.valueOf(cal.get(Calendar.MONTH) + 1);
+ String day = String.valueOf(cal.get(Calendar.DAY_OF_MONTH));
+
+ if (month.length() == 1)
+ month = "0" + month;
+
+ if (day.length() == 1)
+ day = "0" + day;
+
+ // create key
+ key = cal.get(Calendar.YEAR) + "/" + (month) + "/" + day;
+
+ if (sortedByDate.get(key) == null) {
+ TreeSet<String> set = new TreeSet<String>();
+ set.add(temp.getName());
+ sortedByDate.put(key, set);
+ } else {
+ sortedByDate.get(key).add(temp.getName());
+ }
+ }
+
+ }
+
+ // add pages to recentChanges page
+
+ Set<String> keySet = sortedByDate.keySet();
+
+ for (String date : keySet) {
+ StringBuilder day = new StringBuilder();
+
+ day.append("!''").append(date).append("''\n");
+ for (String pageName : sortedByDate.get(date)) {
+ day.append("[").append(pageName).append("]\\\\\n");
+ }
+
+ recentChanges.insert(offset, day.toString());
+ }
+
+ recentChanges.append(HTMLTranslatorParts.pagePartRegexEnd).append("\n");
+
+ wikiPage.setContent(recentChanges.toString());
+
+ return wikiPage;
+ }
+
+ @Override
+ public void init() {
+ if (getProperty("recentDays") != null) {
+ numOfDays = Integer.valueOf(getProperty("recentDays"));
+ }
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RefsManipulatingInsidePlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RefsManipulatingInsidePlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/RefsManipulatingInsidePlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,78 @@
+package org.jboss.wiki.plugins;
+
+import java.util.Set;
+import java.util.TreeSet;
+
+import org.jboss.logging.Logger;
+import org.jboss.wiki.AdminSimpleCredentials;
+import org.jboss.wiki.WikiContext;
+import org.jboss.wiki.WikiInsidePlugin;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiSession;
+
+/**Abstract class for inside plugins that work on references.
+ * @author tomek
+ *
+ */
+public abstract class RefsManipulatingInsidePlugin extends WikiInsidePlugin {
+
+ private static final String refsWikiType = "refs";
+
+ private Logger log = Logger.getLogger(this.getClass());
+
+ protected String getLink(String pageName, Integer maxwidth) {
+ if ((maxwidth != null) && (pageName.length() > maxwidth)) {
+ return "[" + pageName.substring(0, maxwidth - 3) + "...|"
+ + pageName + "]\\\\";
+ } else {
+ return "[" + pageName + "]\\\\";
+ }
+ }
+
+ protected Set<String> getAllRefs(WikiSession wikiSession, String langCode) {
+
+ Set<String> pageNames = wikiEngine.getAllPageNames(langCode);
+
+ Set<String> allRefs = new TreeSet<String>();
+
+ WikiContext wikiContext = new WikiContext(new AdminSimpleCredentials(), wikiEngine
+ .getWikiType(refsWikiType), wikiSession);
+
+ for (String pageName : pageNames) {
+
+ WikiPage page = wikiEngine.getByName(pageName, wikiContext, langCode);
+
+ Set<String> refs = (Set<String>) page.getPermVariable("refs");
+
+ if (refs != null)
+ allRefs.addAll(refs);
+ }
+
+ return allRefs;
+ }
+
+ protected Set<String> getRefsFor(String uid, Integer max,
+ WikiSession wikiSession, String langCode) {
+
+ Set<String> refsFor = new TreeSet<String>();
+
+ Set<String> pageNames = wikiEngine.getAllPageNames(langCode);
+
+ WikiContext wikiContext = new WikiContext(new AdminSimpleCredentials(), wikiEngine
+ .getWikiType(refsWikiType), wikiSession);
+
+ for (String pageName : pageNames) {
+
+ WikiPage page = wikiEngine.getByName(pageName, wikiContext, langCode);
+
+ Set<String> refs = (Set<String>) page.getPermVariable("refs");
+
+ if (refs != null && refs.contains(uid))
+ refsFor.add(page.getName());
+
+ }
+
+ return refsFor;
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/SendNotificationPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/SendNotificationPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/SendNotificationPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,56 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import org.jboss.wiki.WikiCommon;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class SendNotificationPlugin extends WikiPlugin {
+
+ private String fromEmail = "admin at labs.org";
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ // just send notifications
+
+ try {
+ WikiPage clonedPage = (WikiPage) wikiPage.clone();
+
+ log.debug("sending notif");
+
+ WikiCommon
+ .sendNotificationMail(clonedPage, wikiSession, wikiEngine, fromEmail);
+ } catch (CloneNotSupportedException e) {
+ log.error(e);
+ }
+
+ return wikiPage;
+ }
+
+ @Override
+ public void init() {
+ fromEmail = getProperty("notification.fromEmail");
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/SubpagesListPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/SubpagesListPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/SubpagesListPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,59 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import java.util.Set;
+
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class SubpagesListPlugin extends WikiPlugin {
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ StringBuilder subpageList = new StringBuilder(wikiPage.getPageContent()+"\n");
+
+ subpageList.append(HTMLTranslatorParts.pagePartRegexStart).append("----\n!!Subpages list:\\\\\n");
+
+ Set<String> subPages = wikiEngine.getPagesFor(wikiPage.getName(), wikiPage.getLangCode());
+
+ for (String page : subPages) {
+ subpageList.append("[").append(page).append("]\\\\\n");
+ }
+
+ subpageList.append(HTMLTranslatorParts.pagePartRegexEnd);
+
+ if (subPages.size() > 0 ) {
+ wikiPage.setContent(subpageList.toString());
+ }
+
+ return wikiPage;
+ }
+
+ @Override
+ public void init() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/TextAreaChange.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/TextAreaChange.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/TextAreaChange.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,44 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class TextAreaChange extends WikiPlugin {
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ String content = wikiPage.getContent();
+
+ wikiPage.setContent(content.replaceAll("</textarea>","</textarea>"));
+
+ return wikiPage;
+ }
+
+ @Override
+ public void init() {
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/TomekInsidePlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/TomekInsidePlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/TomekInsidePlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,48 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import java.util.HashMap;
+
+import org.jboss.wiki.WikiInsidePlugin;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiSession;
+
+public class TomekInsidePlugin extends WikiInsidePlugin {
+
+ @Override
+ public String process(WikiPage wikiPage, WikiSession wikiSession,HashMap<String, String> attributes) {
+ String atriby = "";
+
+ for (String s : attributes.keySet()) {
+ atriby += s + " = " + attributes.get(s) + " ";
+ }
+ return "\n\n\n\nTOMEK TOMEK TOMEK TOMEK TOMEK TOMEK TOMEK\n\n\n\n\n"+atriby;
+ }
+
+ @Override
+ public void init() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/TrailPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/TrailPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/TrailPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,68 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class TrailPlugin extends WikiPlugin {
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ String trailAttrName = wikiPage.getLangCode()+":TRAIL";
+
+ WikiPage newPage = null;
+ try {
+ newPage = (WikiPage) wikiPage.clone();
+ } catch (CloneNotSupportedException e) {
+ System.err.println(e);
+ }
+
+ String trail = "["+newPage.getName()+"] ";
+
+ if (wikiSession.getAttribute(trailAttrName) != null) {
+ String oldTrail = (String)wikiSession.getAttribute(trailAttrName);
+
+ if (oldTrail.endsWith(trail)) {
+ // do not add trail if page reloads
+ trail = oldTrail;
+ }
+ else {
+ trail = oldTrail + trail;
+ }
+ }
+
+ wikiSession.setAttribute(trailAttrName, trail);
+
+ newPage.setContent(HTMLTranslatorParts.pagePartRegexStart+"Your trail: "+trail+"\n----\n"+newPage.getContent()+HTMLTranslatorParts.pagePartRegexEnd);
+
+ return newPage;
+ }
+
+ @Override
+ public void init() {
+ // TODO Auto-generated method stub
+
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/TranslateUids.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/TranslateUids.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/TranslateUids.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,206 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import java.util.LinkedList;
+import java.util.Queue;
+import java.util.Stack;
+
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+public class TranslateUids extends WikiPlugin {
+
+ private Stack<Integer> begins = new Stack<Integer>();
+
+ private Stack<Integer> ends = new Stack<Integer>();
+
+ private Stack<String> replaces = new Stack<String>();
+
+ private String PRE_START = "{{{";
+
+ private String PRE_END = "}}}";
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+
+ wikiPage.setContent(getNewContent(wikiPage.getContent(), wikiPage.getLangCode()));
+
+ return wikiPage;
+ }
+
+ public String getNewContent(String content, String langCode) {
+ StringBuffer sBuf = new StringBuffer(content);
+ Queue<Integer> queue = new LinkedList<Integer>();
+
+ Integer lastCommStart = -3;
+ Integer partBegin = 0;
+
+ // get all PRE starting {{{
+ while ((lastCommStart = sBuf.indexOf(PRE_START, lastCommStart + 3)) != -1) {
+ queue.offer(lastCommStart);
+ }
+
+ lastCommStart = queue.poll();
+
+ if (lastCommStart == null) {
+ // there are no comments
+ parsePart(sBuf, 0, sBuf.length(), langCode);
+ } else {
+ while (lastCommStart != null) {
+
+ parsePart(sBuf, partBegin, lastCommStart, langCode);
+
+ partBegin = sBuf.indexOf(PRE_END, lastCommStart);
+
+ if (partBegin != -1) {
+ partBegin += PRE_END.length();
+
+ while ((lastCommStart != null)
+ && (lastCommStart < partBegin)) {
+ lastCommStart = queue.poll();
+ }
+
+ if (lastCommStart == null) {
+ lastCommStart = sBuf.length();
+ }
+ } else {
+ lastCommStart = null;
+ }
+ }
+ }
+
+ while (begins.size() > 0) {
+
+ int begin;
+
+ sBuf.delete(begin = begins.pop(), ends.pop());
+
+ sBuf.insert(begin, replaces.pop());
+ }
+
+ return sBuf.toString();
+ }
+
+ protected void parsePart(StringBuffer sBuf, int start, int end, String langCode) {
+
+ boolean insideLink = false;
+ Integer wordBegin = null;
+ Integer wordEnd = null;
+
+ for (int i = start; i < end; i++) {
+ // System.out.print(i+":'"+sBuf.charAt(i)+"'");
+
+ if (sBuf.charAt(i) == '[') {
+ // if it is false - make it true
+ insideLink = (insideLink || true);
+ wordBegin = i + 1;
+ wordEnd = i + 1;
+ } else if (sBuf.charAt(i) == '|') {
+ if (!insideLink) {
+ wordBegin = null;
+ wordEnd = null;
+ } else {
+ wordBegin = i + 1;
+ }
+
+ } else if (sBuf.charAt(i) == ']') {
+
+ if ((insideLink) && (wordBegin != null) && (wordBegin != i)) {
+ wordEnd++;
+
+ // System.out.println("End of link:
+ // "+sBuf.substring(wordBegin, wordEnd));
+
+ // if word is GT 0
+
+ if (!HTMLTranslatorParts.isExternalLink(sBuf.substring(
+ wordBegin, wordEnd))) {
+ String link = HTMLTranslatorParts.cleanLink(sBuf
+ .substring(wordBegin, wordEnd));
+
+ if (link != changeName(link, langCode)) {
+ begins.add(wordBegin);
+ ends.add(wordEnd);
+ replaces.add(changeName(link, langCode));
+ }
+ }
+ wordBegin = null;
+ wordEnd = null;
+ insideLink = false;
+ }
+ } else if (isPartOfWord(sBuf.charAt(i))) {
+ if (wordBegin == null) {
+ wordBegin = i;
+ }
+
+ wordEnd = i;
+ } else if (Character.isWhitespace(sBuf.charAt(i))) {
+ if ((!insideLink) && (wordBegin != null)) {
+ String link = null;
+
+ if ((link = HTMLTranslatorParts.parseCamelCase(sBuf
+ .substring(wordBegin, wordEnd))) != null) {
+ if (link != changeName(link, langCode)) {
+ begins.add(wordBegin);
+ ends.add(wordEnd);
+ replaces.add(changeName(link, langCode));
+ }
+
+ wordBegin = null;
+ wordEnd = null;
+ }
+ } else {
+ wordEnd = i;
+ }
+ } else {
+ if (!insideLink) {
+ wordBegin = null;
+ wordEnd = null;
+ } else {
+ wordEnd = i;
+ }
+ }
+ }
+
+ if (wordBegin != null) {
+ // there was not closed link ([...) parse what stayed unparsed
+ // (maybe some CamelCase links)
+ if (wordBegin != start)
+ parsePart(sBuf, wordBegin, end, langCode);
+ }
+ }
+
+ protected boolean isPartOfWord(char ch) {
+ return ((Character.isLetter(ch)) || (Character.isDigit(ch)));
+ }
+
+ @Override
+ public void init() {
+
+ }
+
+ protected String changeName(String link, String langCode) {
+ return wikiEngine.getRealName(link, langCode);
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/UpdateRefs.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/UpdateRefs.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/UpdateRefs.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,10 @@
+package org.jboss.wiki.plugins;
+
+public class UpdateRefs extends GetRefsFromPagePlugin {
+
+ @Override
+ protected boolean updateRefs() {
+ return true;
+ }
+
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/WatchListPlugin.java
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/WatchListPlugin.java (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/WatchListPlugin.java 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,170 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wiki.plugins;
+
+import org.jboss.wiki.Credentials;
+import org.jboss.wiki.WikiPage;
+import org.jboss.wiki.WikiPlugin;
+import org.jboss.wiki.WikiSession;
+
+/**
+ * Plugin that adds user to watch list (for sending on-change notifications)
+ *
+ * @author <a href="mailto:tomasz.szymanski at jboss.com">Tomasz Szymanski</a>
+ *
+ */
+public class WatchListPlugin extends WikiPlugin {
+
+ public static final String WATCH_PROPERTY = "notifications";
+
+ @Override
+ public WikiPage process(WikiPage wikiPage, WikiSession wikiSession) {
+ Credentials cred = (Credentials) wikiSession
+ .getAttribute(WikiSession.CREDENTIALS);
+
+ if (cred.isLoggedIn()) {
+ String notifications = wikiPage
+ .getMetaDataProperty(WatchListPlugin.WATCH_PROPERTY);
+
+ if (notifications == null) {
+ notifications = "";
+ } else if (notifications.startsWith(";")) {
+ notifications = notifications.substring(1);
+ }
+
+ String[] users = notifications.split(";");
+
+ String notificationsGlobal = wikiEngine.getGlobalProperty(
+ WATCH_PROPERTY, wikiPage.getLangCode());
+
+ if (notificationsGlobal == null) {
+ notificationsGlobal = "";
+ } else if (notificationsGlobal.startsWith(";")) {
+ notificationsGlobal = notificationsGlobal.substring(1);
+ }
+
+ String[] usersGlobal = notificationsGlobal.split(";");
+
+ if (wikiSession.getAttribute("var1") != null
+ && wikiSession.getAttribute("var1").equals("watch")
+ && wikiSession.getAttribute("var2") != null
+ && wikiSession.getAttribute("var2").equals("toggle")) {
+ // toggle page watch/unwatch
+
+ log.debug("Adding user: " + cred.getName()
+ + " to watchlist for page: " + wikiPage.getName());
+
+ notifications = toggleWatch(users, cred.getName(), cred
+ .getEmail());
+ users = notifications.split(";");
+
+ wikiPage.setMetaDataProperty(WATCH_PROPERTY, notifications);
+
+ } else if (wikiSession.getAttribute("var1") != null
+ && wikiSession.getAttribute("var1").equals("watchGlobal")
+ && wikiSession.getAttribute("var2") != null
+ && wikiSession.getAttribute("var2").equals("toggle")) {
+ // toggle global page watch/unwatch
+
+ log.debug("Adding user: " + cred.getName()
+ + " to watchlist for page: " + wikiPage.getName());
+
+ notificationsGlobal = toggleWatch(usersGlobal, cred.getName(),
+ cred.getEmail());
+ usersGlobal = notificationsGlobal.split(";");
+
+ wikiEngine.setGlobalProperty(WATCH_PROPERTY,
+ notificationsGlobal, wikiPage.getLangCode());
+
+ }
+
+ StringBuffer buffer = new StringBuffer(wikiPage.getContent());
+ buffer.append("<hr />\n").append("<h3>Page watching</h3>\n");
+
+ boolean watcher = userInWatchList(users, cred.getName());
+
+ buffer.append(
+ (watcher) ? "You are watching this page. "
+ : "You are not watching this page. ").append(
+ "<a href=\"").append(
+ wikiSession.getAttribute(WikiSession.ACTION_URL)).append(
+ "&page=").append(wikiPage.getName()).append(
+ "&var1=watch&var2=toggle\" >[").append(
+ (watcher) ? "Stop watching this page" : "Watch this page")
+ .append("]</a><br />");
+
+ watcher = userInWatchList(usersGlobal, cred.getName());
+
+ buffer.append(
+ (watcher) ? "Your global watch is switched ON. "
+ : "Your global watch is switched OFF. ").append(
+ "<a href=\"").append(
+ wikiSession.getAttribute(WikiSession.ACTION_URL)).append(
+ "&page=").append(wikiPage.getName()).append(
+ "&var1=watchGlobal&var2=toggle\" >[").append(
+ (watcher) ? "Switch it off" : "Switch it on").append(
+ "]</a>");
+
+ wikiPage.setContent(buffer.toString());
+ }
+
+ return wikiPage;
+ }
+
+ private String toggleWatch(String[] users, String user, String email) {
+ String notifs = "";
+ if (users.length > 0 && userInWatchList(users, user)) {
+ for (int i = 0; i < users.length; i += 2) {
+ if (!users[i].equals(user)) {
+ notifs += users[i] + ";" + users[i + 1] + ";";
+ }
+ }
+ } else {
+ for (int i = 0; i < users.length; i++) {
+ if (notifs.length() != 0
+ || (users[i].length() != 0 && notifs.length() == 0)) {
+ notifs += users[i] + ";";
+ }
+ }
+ notifs += user + ";" + email + ";";
+ }
+
+ return notifs;
+ }
+
+ @Override
+ public void init() {
+
+ }
+
+ private boolean userInWatchList(String[] allUsers, String user) {
+ boolean is = false;
+
+ for (int i = 0; i < allUsers.length && is == false; i += 2) {
+ if (allUsers[i].equals(user)) {
+ is = true;
+ }
+ }
+
+ return is;
+ }
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/WikiContext.txt
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/WikiContext.txt (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/WikiContext.txt 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,107 @@
+/*
+ * Created on Aug 9, 2005
+ *
+ *
+ */
+
+/**
+ * @author rali
+ *
+ *
+ */
+package org.jboss.wiki.plugins;
+//import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Map;
+
+
+
+/**
+ * Provides state information throughout the processing of a page. A
+ * WikiContext is born when the JSP pages that are the main entry
+ * points, are invoked. The JSPWiki engine creates the new
+ * WikiContext, which basically holds information about the page, the
+ * handling engine, and in which context (view, edit, etc) the
+ * call was done.
+ * <P>
+ * A WikiContext also provides request-specific variables, which can
+ * be used to communicate between plugins on the same page, or
+ * between different instances of the same plugin. A WikiContext
+ * variable is valid until the processing of the page has ended. For
+ * an example, please see the Counter plugin.
+ *
+ * @see com.ecyrd.jspwiki.plugin.Counter
+ *
+ * @author Janne Jalkanen
+ */
+public class WikiContext
+{
+ String m_requestContext = VIEW;
+
+ Map m_variableMap = new HashMap();
+
+ /** The VIEW context - the user just wants to view the page
+ contents. */
+ public static final String VIEW = "view";
+
+ /** The EDIT context - the user is editing the page. */
+ public static final String EDIT = "edit";
+
+ /** User is preparing for a login/authentication. */
+ public static final String LOGIN = "login";
+
+ /** User is viewing a DIFF between the two versions of the page. */
+ public static final String DIFF = "diff";
+
+ /** User is viewing page history. */
+ public static final String INFO = "info";
+
+ /** User is previewing the changes he just made. */
+ public static final String PREVIEW = "preview";
+
+ /** User has an internal conflict, and does quite not know what to
+ do. Please provide some counseling. */
+ public static final String CONFLICT = "conflict";
+
+ /** An error has been encountered and the user needs to be informed. */
+ public static final String ERROR = "error";
+
+ public static final String UPLOAD = "upload";
+
+ public static final String COMMENT = "comment";
+
+ //INSTEAD OF PROP FILE
+ /**
+ * The default inlining pattern. Currently "*.png"
+ */
+ public final String DEFAULT_INLINEPATTERN = "*.png";
+ /**
+ * This property defines the inline image pattern.
+ */
+ public final String[] PROP_INLINEIMAGEPTRN = {"*.png","*.jpeg","*.gif"};
+
+ /** If true, consider CamelCase hyperlinks as well. */
+ public final String PROP_CAMELCASELINKS = "true";
+
+ /**
+ * If true, all hyperlinks are translated as well, regardless whether they
+ * are surrounded by brackets.
+ */
+ public final String PROP_PLAINURIS = "false";
+
+ /**
+ * If true, all outward links (external links) have a small link image
+ * appended.
+ */
+ public final String PROP_USEOUTLINKIMAGE = "true";
+
+ /**
+ * If set to "true", allows using raw HTML within Wiki text. Be warned, this
+ * is a VERY dangerous option to set - never turn this on in a publicly
+ * allowable Wiki, unless you are absolutely certain of what you're doing.
+ */
+ public static final String PROP_ALLOWHTML = "false";
+
+
+}
+
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/WikiSyntax.txt
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/WikiSyntax.txt (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/WikiSyntax.txt 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,29 @@
+/*
+ * Created on Aug 9, 2005
+ *
+ *
+ */
+
+/**
+ * @author rali
+ *
+ * Defines basic Wiki syntax,
+ * later to be changed into dtd ?
+ *
+ */
+package org.jboss.wiki.plugins;
+
+public class WikiSyntax {
+ public static final String newLine = "\\";
+ public static final String bold = "__";
+ public static final String italic = "''";
+ public static final String horizontalRuler = "---";
+ public static final String preformatted_begin = "{{{";
+ public static final String preformatted_end = "}}}";
+ public static final String teletype_begin = "{{";
+ public static final String teletype_end = "}}";
+ public static final String table = "|";
+
+public static void hasle()
+{}
+}
Added: contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/WikiTranslator.txt
===================================================================
--- contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/WikiTranslator.txt (rev 0)
+++ contrib/wikiPortlet/trunk/wiki-common/src/java/org/jboss/wiki/plugins/WikiTranslator.txt 2009-03-03 18:53:00 UTC (rev 247)
@@ -0,0 +1,1522 @@
+package org.jboss.wiki.plugins;
+
+import java.io.*;
+import java.util.*;
+
+import org.apache.log4j.Category;
+import org.apache.oro.text.*;
+import org.apache.oro.text.regex.*;
+
+public class WikiTranslator extends Reader {
+ public static final int READ = 0;
+
+ public static final int EDIT = 1;
+
+ private static final int EMPTY = 2; // Empty message
+
+ private static final int LOCAL = 3;
+
+ private static final int LOCALREF = 4;
+
+ private static final int IMAGE = 5;
+
+ private static final int EXTERNAL = 6;
+
+ private static final int INTERWIKI = 7;
+
+ private static final int IMAGELINK = 8;
+
+ private static final int IMAGEWIKILINK = 9;
+
+ public static final int ATTACHMENT = 10;
+
+ private static final int ATTACHMENTIMAGE = 11;
+
+ private boolean m_isbold = false;
+
+ private boolean m_isitalic = false;
+
+ private boolean m_isTypedText = false;
+
+ private boolean m_istable = false;
+
+ private boolean m_isPre = false;
+
+ private boolean m_isdefinition = false;
+
+ private int m_listlevel = 0;
+
+ private int m_numlistlevel = 0;
+
+ private String encoding = "UTF-8";
+
+ /** Keeps image regexp Patterns */
+ private ArrayList m_inlineImagePatterns;
+
+ private PatternMatcher m_inlineMatcher = new Perl5Matcher();
+
+ private static final int PUSHBACK_BUFFER_SIZE = 8;
+
+ private PushbackReader m_in;
+
+ private StringReader m_data = new StringReader("");
+ private String m_closeTag = null;
+
+ private static Category log = Category.getInstance(WikiTranslator.class);
+
+ //FIXME this is temporary implementation of keeping track of wiki pages
+ private static ArrayList existingPages;
+
+ //all prefixes and parts that form the links to attachments, images, wiki
+ // pages
+ // should be set through forge-common? or in a similar way at least
+
+ private final String BASE_URL = "http://forge.sicore.org:8080/portal/index.html?ctrl:id=window.default.WikiPortletWindow";
+
+ private final String VIEW_PATH = "";
+
+ private final String EDIT_PATH = "";
+
+ private final String ATTACH_PATH = "";
+
+ private final String IMAGE_PATH = null;//not used
+
+ //wiki properties variables, currently not used
+
+ /** If true, then considers CamelCase links as well. */
+ private boolean m_camelCaseLinks = false;
+
+ /** If true, consider URIs that have no brackets as well. */
+ // FIXME: Currently reserved, but not used.
+ private boolean m_plainUris = false;
+
+ /** If true, all outward links use a small link image. */
+ private boolean m_useOutlinkImage = true;
+
+ /** If true, allows raw HTML. */
+ private boolean m_allowHTML = false;
+
+ /**
+ * These characters constitute word separators when trying to find CamelCase
+ * links.
+ */
+ private static final String WORD_SEPARATORS = ",.|:;+=&";
+
+ private PatternMatcher m_matcher = new Perl5Matcher();
+
+ private PatternCompiler m_compiler = new Perl5Compiler();
+
+
+ private Pattern m_camelCasePtrn;
+
+ //contructor
+ public WikiTranslator(Reader in, WikiContext context) {
+ PatternCompiler compiler = new GlobCompiler();
+ ArrayList compiledpatterns = new ArrayList();
+
+ m_in = new PushbackReader(new BufferedReader(in), PUSHBACK_BUFFER_SIZE);
+
+ Collection ptrns = getImagePatterns(context);
+ ptrns.add(context.DEFAULT_INLINEPATTERN);
+
+ //
+ // Make them into Regexp Patterns. Unknown patterns
+ // are ignored.
+ //
+ for (Iterator i = ptrns.iterator(); i.hasNext();) {
+ try {
+ compiledpatterns.add(compiler.compile((String) i.next()));
+ } catch (MalformedPatternException e) {
+ log.error("Malformed pattern in properties: ", e);
+ }
+ }
+
+ m_inlineImagePatterns = compiledpatterns;
+
+ try {
+ m_camelCasePtrn = m_compiler.
+ compile("^([[:^alnum:]]*|\\~)([[:upper:]]+[[:lower:]]+[[:upper:]]+[[:alnum:]]*)[[:^alnum:]]*$");
+ } catch (MalformedPatternException e) {
+ log.fatal("Internal error: Someone put in a faulty pattern.", e);
+ //throw new InternalWikiException("Faulty camelcasepattern in
+ // TranslatorReader");
+ }
+
+ //
+ // Set the properties.
+ //
+ // Properties props = m_engine.getWikiProperties();
+
+ }
+
+ /**
+ * @param context
+ * @return
+ */
+ private Collection getImagePatterns(WikiContext context) {
+ ArrayList patterns = new ArrayList();
+ for (int i = 0; i < context.PROP_INLINEIMAGEPTRN.length; i++) {
+ patterns.add(context.PROP_INLINEIMAGEPTRN[i]);
+ }
+
+ return patterns;
+ }
+
+ /**
+ * Figures out if a link is an off-site link. This recognizes the most
+ * common protocols by checking how it starts.
+ */
+ private boolean isExternalLink(String link) {
+ return link.startsWith("http:") || link.startsWith("ftp:")
+ || link.startsWith("https:") || link.startsWith("mailto:")
+ || link.startsWith("news:") || link.startsWith("file:");
+ }
+
+ /**
+ * Matches the given link to the list of image name patterns to determine
+ * whether it should be treated as an inline image or not.
+ */
+ private boolean isImageLink(String link) {
+ for (Iterator i = m_inlineImagePatterns.iterator(); i.hasNext();) {
+ if (m_inlineMatcher.matches(link, (Pattern) i.next()))
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Checks for the existence of a traditional style CamelCase link.
+ * <P>
+ * We separate all white-space -separated words, and feed it to this routine
+ * to find if there are any possible camelcase links. For example, if "word"
+ * is "__HyperLink__" we return "HyperLink".
+ *
+ * @param word
+ * A phrase to search in.
+ * @return The match within the phrase. Returns null, if no CamelCase
+ * hyperlink exists within this phrase.
+ */
+ private String checkForCamelCaseLink(String word) {
+ PatternMatcherInput input;
+
+ input = new PatternMatcherInput(word);
+
+ if (m_matcher.contains(input, m_camelCasePtrn)) {
+ MatchResult res = m_matcher.getMatch();
+
+ int start = res.beginOffset(2);
+ int end = res.endOffset(2);
+
+ String link = res.group(2);
+ String matchedLink;
+
+ if (res.group(1) != null) {
+ if (res.group(1).equals("~") || res.group(1).indexOf('[') != -1) {
+ // Delete the (~) from beginning.
+ // We'll make '~' the generic kill-processing-character from
+ // now on.
+ return null;
+ }
+ }
+
+ return link;
+ } // if match
+
+ return null;
+ }
+
+ /**
+ * When given a link to a WikiName, we just return a proper HTML link for
+ * it. The local link mutator chain is also called.
+ */
+ private String makeCamelCaseLink(String wikiname) {
+ String matchedLink;
+ String link;
+
+ if ((matchedLink = linkExists(wikiname)) != null) {
+ link = makeLink(READ, matchedLink, wikiname);
+ } else {
+ link = makeLink(EDIT, wikiname, wikiname);
+ }
+
+ return link;
+ }
+
+ /**
+ * returns the name of the page if it exists, null otherwise
+ *
+ * @param wikiname
+ * @return
+ */
+ private String linkExists(String wikiname) {
+ int occurence = existingPages.indexOf(wikiname);
+ if (occurence != -1) {
+ return (String) existingPages.get(occurence);
+ } else
+ //doesnt exist, needs to be created somewhere*
+ return null;
+ }
+
+ /**
+ * Write a HTMLized link depending on its type. The link mutator chain is
+ * processed.
+ *
+ * @param type
+ * Type of the link.
+ * @param link
+ * The actual link.
+ * @param text
+ * The user-visible text for the link.
+ */
+ public String makeLink(int type, String link, String text) {
+ String result;
+
+ if (text == null)
+ text = link;
+
+ // Make sure we make a link name that can be accepted
+ // as a valid URL.
+
+ String encodedlink = encodeName(link);
+
+ if (encodedlink.length() == 0) {
+ type = EMPTY;
+ }
+
+ // text = callMutatorChain( m_linkMutators, text );
+
+ switch (type) {
+ case READ:
+ result = "<A CLASS=\"wikipage\" HREF=\"" + getViewURL(link) + "\">"
+ + text + "</A>";//just display a wiki page
+ break;
+
+ case EDIT:
+ result = "<U>" + text + "</U><A HREF=\"" + getEditURL(link)
+ + "\">?</A>";
+ break;
+
+ case EMPTY:
+ result = "<U>" + text + "</U>";
+ break;
+
+ //
+ // These two are for local references - footnotes and
+ // references to footnotes.
+ // We embed the page name (or whatever WikiContext gives us)
+ // to make sure the links are unique across Wiki.
+ //
+ case LOCALREF:
+ result = "<A CLASS=\"footnoteref\" HREF=\"#ref-" +
+ //m_context.getPage().getName()+"-"+
+ link + "\">[" + text + "]</A>";
+ break;
+ //FIXME change link
+ case LOCAL:
+ result = "<A CLASS=\"footnote\" NAME=\"ref-" +
+ //m_context.getPage().getName()+
+ "-" + link.substring(1) + "\">[" + text + "]</A>";
+ break;
+
+ //
+ // With the image, external and interwiki types we need to
+ // make sure nobody can put in Javascript or something else
+ // annoying into the links themselves. We do this by preventing
+ // a haxor from stopping the link name short with quotes in
+ // fillBuffer().
+ //
+ case IMAGE:
+ result = "<IMG CLASS=\"inline\" SRC=\"" + link + "\" ALT=\"" + text
+ + "\" />";
+ break;
+
+ case IMAGELINK:
+ result = "<A HREF=\"" + text + "\"><IMG CLASS=\"inline\" SRC=\""
+ + link + "\" /></A>";
+ break;
+
+ case IMAGEWIKILINK:
+ String pagelink = getViewURL(text);
+ result = "<A CLASS=\"wikipage\" HREF=\"" + pagelink
+ + "\"><IMG CLASS=\"inline\" SRC=\"" + link + "\" ALT=\""
+ + text + "\" /></A>";
+ break;
+
+ case EXTERNAL:
+ result = "<A CLASS=\"external\" HREF=\"" + link + "\">" + text
+ + "</A>";
+ break;
+
+ case INTERWIKI:
+ result = "<A CLASS=\"interwiki\" HREF=\"" + link + "\">" + text
+ + "</A>";
+ break;
+
+ case ATTACHMENT:
+ String attlink = getAttachmentURL(link);
+ result = "<a class=\"attachment\" href=\""
+ + attlink
+ + "\">"
+ + text
+ + "</a>"
+ + "<a href=\""
+ + getBaseURL()
+ + "PageInfo.jsp?page="
+ + encodedlink
+ + "\"><img src=\"images/attachment_small.png\" border=\"0\" /></a>";
+ break;
+
+ default:
+ result = "";
+ break;
+ }
+
+ return result;
+ }
+
+ /**
+ * @param link
+ * @return
+ */
+ private String encodeName(String link) {
+ String newlink;
+
+ try {
+ if (encoding != null)
+ return java.net.URLEncoder.encode(link, encoding);
+ }
+
+ catch (UnsupportedEncodingException e) {
+ log.fatal("Internal error: Wrong encoding.", e);
+
+ }
+ return null;
+
+ }
+
+ /**
+ * @return
+ */
+ private String getBaseURL() {
+
+ return BASE_URL;
+ }
+
+ /**
+ * @param link
+ * @return
+ */
+ private String getAttachmentURL(String link) {
+
+ return BASE_URL + ATTACH_PATH + encodeName(link);
+ }
+
+ /**
+ * @param link
+ * @return
+ */
+ private String getEditURL(String link) {
+
+ return BASE_URL + EDIT_PATH + encodeName(link);
+ }
+
+ /**
+ * @param link
+ * @return
+ */
+ private String getViewURL(String link) {
+
+ return BASE_URL + VIEW_PATH + encodeName(link);
+ }
+
+ /**
+ * Image links are handled differently: 1. If the text is a WikiName of an
+ * existing page, it gets linked. 2. If the text is an external link, then
+ * it is inlined. 3. Otherwise it becomes an ALT text.
+ *
+ * @param reallink
+ * The link to the image.
+ * @param link
+ * Link text portion, may be a link to somewhere else.
+ * @param hasLinkText
+ * If true, then the defined link had a link text available. This
+ * means that the link text may be a link to a wiki page, or an
+ * external resource.
+ */
+
+ private String handleImageLink(String reallink, String link,
+ boolean hasLinkText) {
+ String possiblePage = cleanLink(link);
+ String matchedLink;
+ String res = "";
+
+ if (isExternalLink(link) && hasLinkText) {
+ res = makeLink(IMAGELINK, reallink, link);
+ } else if ((matchedLink = linkExists(possiblePage)) != null
+ && hasLinkText) {
+
+ res = makeLink(IMAGEWIKILINK, reallink, link);
+ } else {
+ res = makeLink(IMAGE, reallink, link);
+ }
+
+ return res;
+ }
+
+ /**
+ * Cleans a Wiki name.
+ * <P>[ This is a link ] -> ThisIsALink
+ *
+ * @param link
+ * Link to be cleared. Null is safe, and causes this to return
+ * null.
+ * @return A cleaned link.
+ *
+ * @since 2.0
+ */
+ public static String cleanLink(String link) {
+ StringBuffer clean = new StringBuffer();
+
+ if (link == null)
+ return null;
+
+ //
+ // Compress away all whitespace and capitalize
+ // all words in between.
+ //
+
+ StringTokenizer st = new StringTokenizer(link, " -");
+
+ while (st.hasMoreTokens()) {
+ StringBuffer component = new StringBuffer(st.nextToken());
+
+ component.setCharAt(0, Character.toUpperCase(component.charAt(0)));
+
+ //
+ // We must do this, because otherwise compiling on JDK 1.4 causes
+ // a downwards incompatibility to JDK 1.3.
+ //
+ clean.append(component.toString());
+ }
+
+ //
+ // Remove non-alphanumeric characters that should not
+ // be put inside WikiNames. Note that all valid
+ // Unicode letters are considered okay for WikiNames.
+ // It is the problem of the WikiPageProvider to take
+ // care of actually storing that information.
+ //
+
+ for (int i = 0; i < clean.length(); i++) {
+ if (!(Character.isLetterOrDigit(clean.charAt(i))
+ || clean.charAt(i) == '_' || clean.charAt(i) == '.')) {
+ clean.deleteCharAt(i);
+ --i; // We just shortened this buffer.
+ }
+ }
+
+ return clean.toString();
+ }
+
+ /**
+ * If outlink images are turned on, returns a link to the outward linking
+ * image.
+ */
+ private final String outlinkImage() {
+ if (m_useOutlinkImage) {
+ return "<img class=\"outlink\" src=\"" + getBaseURL()
+ + "images/out.png\" alt=\"\" />";
+ }
+
+ return "";
+ }
+
+ private int nextToken() throws IOException {
+ return m_in.read();
+ }
+ private void pushBack(int c) throws IOException {
+ if (c != -1) {
+ m_in.unread(c);
+ }
+ }
+ private String handleBackslash()
+ throws IOException
+{
+ int ch = nextToken();
+
+ if( ch == '\\' )
+ {
+ int ch2 = nextToken();
+
+ if( ch2 == '\\' )
+ {
+ return "<BR clear=\"all\" />";
+ }
+
+ pushBack( ch2 );
+
+ return "<BR />";
+ }
+
+ pushBack( ch );
+
+ return "\\";
+}
+
+ private String handleUnderscore()
+ throws IOException
+ {
+ int ch = nextToken();
+ String res = "_";
+
+ if( ch == '_' )
+ {
+ res = m_isbold ? "</B>" : "<B>";
+ m_isbold = !m_isbold;
+ }
+ else
+ {
+ pushBack( ch );
+ }
+
+ return res;
+ }
+
+ /**
+ * For example: italics.
+ */
+ private String handleApostrophe()
+ throws IOException
+ {
+ int ch = nextToken();
+ String res = "'";
+
+ if( ch == '\'' )
+ {
+ res = m_isitalic ? "</I>" : "<I>";
+ m_isitalic = !m_isitalic;
+ }
+ else
+ {
+ m_in.unread( ch );
+ }
+
+ return res;
+ }
+
+ private String handleOpenbrace()
+ throws IOException
+ {
+ int ch = nextToken();
+ String res = "{";
+
+ if( ch == '{' )
+ {
+ int ch2 = nextToken();
+
+ if( ch2 == '{' )
+ {
+ res = "<PRE>";
+ m_isPre = true;
+ }
+ else
+ {
+ pushBack( ch2 );
+
+ res = "<TT>";
+ m_isTypedText = true;
+ }
+ }
+ else
+ {
+ pushBack( ch );
+ }
+
+ return res;
+ }
+
+ /**
+ * Handles both }} and }}}
+ */
+ private String handleClosebrace()
+ throws IOException
+ {
+ String res = "}";
+
+ int ch2 = nextToken();
+
+ if( ch2 == '}' )
+ {
+ int ch3 = nextToken();
+
+ if( ch3 == '}' )
+ {
+ if( m_isPre )
+ {
+ m_isPre = false;
+ res = "</PRE>";
+ }
+ else
+ {
+ res = "}}}";
+ }
+ }
+ else
+ {
+ pushBack( ch3 );
+
+ if( !m_isPre )
+ {
+ res = "</TT>";
+ m_isTypedText = false;
+ }
+ else
+ {
+ pushBack( ch2 );
+ }
+ }
+ }
+ else
+ {
+ pushBack( ch2 );
+ }
+
+ return res;
+ }
+
+ private String handleDash()
+ throws IOException
+ {
+ int ch = nextToken();
+
+ if( ch == '-' )
+ {
+ int ch2 = nextToken();
+
+ if( ch2 == '-' )
+ {
+ int ch3 = nextToken();
+
+ if( ch3 == '-' )
+ {
+ // Empty away all the rest of the dashes.
+ // Do not forget to return the first non-match back.
+ while( (ch = nextToken()) == '-' );
+
+ pushBack(ch);
+ return "<HR />";
+ }
+
+ pushBack( ch3 );
+ }
+ pushBack( ch2 );
+ }
+
+ pushBack( ch );
+
+ return "-";
+ }
+
+ private String handleHeading()
+ throws IOException
+ {
+ StringBuffer buf = new StringBuffer();
+
+ int ch = nextToken();
+
+ if( ch == '!' )
+ {
+ int ch2 = nextToken();
+
+ if( ch2 == '!' )
+ {
+ buf.append("<H2>");
+ m_closeTag = "</H2>";
+ }
+ else
+ {
+ buf.append( "<H3>" );
+ m_closeTag = "</H3>";
+ pushBack( ch2 );
+ }
+ }
+ else
+ {
+ buf.append( "<H4>" );
+ m_closeTag = "</H4>";
+ pushBack( ch );
+ }
+
+ return buf.toString();
+ }
+ private String handleUnorderedList()
+ throws IOException
+ {
+ StringBuffer buf = new StringBuffer();
+
+ if( m_listlevel > 0 )
+ {
+ buf.append("</LI>\n");
+ }
+
+ int numBullets = countChars( m_in, '*' ) + 1;
+
+ if( numBullets > m_listlevel )
+ {
+ for( ; m_listlevel < numBullets; m_listlevel++ )
+ buf.append("<UL>\n");
+ }
+ else if( numBullets < m_listlevel )
+ {
+ for( ; m_listlevel > numBullets; m_listlevel-- )
+ buf.append("</UL>\n");
+ }
+
+ buf.append("<LI>");
+
+ return buf.toString();
+ }
+
+ private String handleOrderedList()
+ throws IOException
+ {
+ StringBuffer buf = new StringBuffer();
+
+ if( m_numlistlevel > 0 )
+ {
+ buf.append("</LI>\n");
+ }
+
+ int numBullets = countChars( m_in, '#' ) + 1;
+
+ if( numBullets > m_numlistlevel )
+ {
+ for( ; m_numlistlevel < numBullets; m_numlistlevel++ )
+ buf.append("<OL>\n");
+ }
+ else if( numBullets < m_numlistlevel )
+ {
+ for( ; m_numlistlevel > numBullets; m_numlistlevel-- )
+ buf.append("</OL>\n");
+ }
+
+ buf.append("<LI>");
+
+ return buf.toString();
+
+ }
+ private int countChars( PushbackReader in, char c )
+ throws IOException
+ {
+ int count = 0;
+ int ch;
+
+ while( (ch = in.read()) != -1 )
+ {
+ if( (char)ch == c )
+ {
+ count++;
+ }
+ else
+ {
+ in.unread( ch );
+ break;
+ }
+ }
+
+ return count;
+ }
+
+ private String handleDefinitionList()
+ throws IOException
+ {
+ if( !m_isdefinition )
+ {
+ m_isdefinition = true;
+
+ m_closeTag = "</DD>\n</DL>";
+
+ return "<DL>\n<DT>";
+ }
+
+ return ";";
+ }
+
+ private String handleOpenbracket()
+ throws IOException
+ {
+ StringBuffer sb = new StringBuffer();
+ int ch;
+ boolean isPlugin = false;
+
+ while( (ch = nextToken()) == '[' )
+ {
+ sb.append( (char)ch );
+ }
+
+ if( ch == '{' )
+ {
+ isPlugin = true;
+ }
+
+ pushBack( ch );
+
+ if( sb.length() > 0 )
+ {
+ return sb.toString();
+ }
+
+ //
+ // Find end of hyperlink
+ //
+
+ ch = nextToken();
+
+ while( ch != -1 )
+ {
+ if( ch == ']' && (!isPlugin || sb.charAt( sb.length()-1 ) == '}' ) )
+ {
+ break;
+ }
+
+ sb.append( (char) ch );
+
+ ch = nextToken();
+ }
+
+ if( ch == -1 )
+ {
+ log.info("Warning: unterminated link detected!");
+ return sb.toString();
+ }
+
+ return handleHyperlinks( sb.toString() );
+ }
+
+ private String handleBar( boolean newLine )
+ throws IOException
+ {
+ StringBuffer sb = new StringBuffer();
+
+ if( !m_istable && !newLine )
+ {
+ return "|";
+ }
+
+ if( newLine )
+ {
+ if( !m_istable )
+ {
+ sb.append("<TABLE CLASS=\"wikitable\" BORDER=\"1\">\n");
+ m_istable = true;
+ }
+
+ sb.append("<TR>");
+ m_closeTag = "</TD></TR>";
+ }
+
+ int ch = nextToken();
+
+ if( ch == '|' )
+ {
+ if( !newLine )
+ {
+ sb.append("</TH>");
+ }
+ sb.append("<TH>");
+ m_closeTag = "</TH></TR>";
+ }
+ else
+ {
+ if( !newLine )
+ {
+ sb.append("</TD>");
+ }
+ sb.append("<TD>");
+ pushBack( ch );
+ }
+
+ return sb.toString();
+ }
+
+ /**
+ * Generic escape of next character or entity.
+ */
+ private String handleTilde()
+ throws IOException
+ {
+ int ch = nextToken();
+
+ if( ch == '|' )
+ return "|";
+
+ if( Character.isUpperCase( (char) ch ) )
+ {
+ return String.valueOf( (char)ch );
+ }
+
+ // No escape.
+ pushBack( ch );
+
+ return "~";
+ }
+
+ /**
+ * Gobbles up all hyperlinks that are encased in square brackets.
+ * [{$varname}] not supported, as well as plugin links, and attachments as
+ * well
+ */
+ private String handleHyperlinks(String link) {
+ StringBuffer sb = new StringBuffer();
+ String reallink;
+ int cutpoint;
+ link = replaceEntities(link);
+
+ if ((cutpoint = link.indexOf('|')) != -1) {
+ reallink = link.substring(cutpoint + 1).trim();
+ link = link.substring(0, cutpoint);
+ } else {
+ reallink = link.trim();//get rid of white spaces
+ }
+
+ int interwikipoint = -1;//not quite supported either
+ if (isExternalLink(reallink)) {
+ // It's an external link, out of this Wiki
+
+ //callMutatorChain( m_externalLinkMutatorChain, reallink );
+
+ if (isImageLink(reallink)) {
+ sb.append(handleImageLink(reallink, link, (cutpoint != -1)));
+ } else {
+ sb.append(makeLink(EXTERNAL, reallink, link));
+ sb.append(outlinkImage());
+ }
+ } else if ((interwikipoint = reallink.indexOf(":")) != -1) {
+ // It's an interwiki link
+ // InterWiki links also get added to external link chain
+ // after the links have been resolved.
+
+ // FIXME: There is an interesting issue here: We probably should
+ // URLEncode the wikiPage, but we can't since some of the
+ // Wikis use slashes (/), which won't survive URLEncoding.
+ // Besides, we don't know which character set the other Wiki
+ // is using, so you'll have to write the entire name as it appears
+ // in the URL. Bugger.
+
+ String extWiki = reallink.substring(0, interwikipoint);
+ String wikiPage = reallink.substring(interwikipoint + 1);
+
+ String urlReference = getInterWikiURL(extWiki);
+
+ if (urlReference != null) {
+ urlReference = replaceString(urlReference, "%s", wikiPage);
+ //callMutatorChain( m_externalLinkMutatorChain, urlReference );
+
+ sb.append(makeLink(INTERWIKI, urlReference, link));
+
+ if (isExternalLink(urlReference)) {
+ sb.append(outlinkImage());
+ }
+ } else {
+ sb
+ .append(link
+ + " <FONT COLOR=\"#FF0000\">(No InterWiki reference defined in properties for Wiki called '"
+ + extWiki + "'!)</FONT>");
+ }
+ } else if (reallink.startsWith("#")) {
+ // It defines a local footnote
+ sb.append(makeLink(LOCAL, reallink, link));
+ } else if (isNumber(reallink)) {
+ // It defines a reference to a local footnote
+ sb.append(makeLink(LOCALREF, reallink, link));
+ } else {
+ // It's an internal Wiki link
+ reallink = cleanLink(reallink);
+
+ // callMutatorChain( m_localLinkMutatorChain, reallink );
+
+ String matchedLink;
+ if ((matchedLink = linkExists(reallink)) != null) {
+ sb.append(makeLink(READ, matchedLink, link));
+ } else {
+ sb.append(makeLink(EDIT, reallink, link));
+ }
+ }
+ // }
+
+ return sb.toString();
+ }
+
+ /**
+ * @param extWiki
+ * @return
+ */
+ private String getInterWikiURL(String extWiki) {
+ // TODO Auto-generated method stub
+ return "inter";
+ }
+
+ /**
+ * Returns true, if the argument contains a number, otherwise false. In a
+ * quick test this is roughly the same speed as Integer.parseInt() if the
+ * argument is a number, and roughly ten times the speed, if the argument is
+ * NOT a number.
+ */
+
+ private boolean isNumber(String s) {
+ if (s == null)
+ return false;
+
+ if (s.length() > 1 && s.charAt(0) == '-')
+ s = s.substring(1);
+
+ for (int i = 0; i < s.length(); i++) {
+ if (!Character.isDigit(s.charAt(i)))
+ return false;
+ }
+
+ return true;
+ }
+
+ /**
+ * Replaces the relevant entities inside the String. All >, < and
+ * " are replaced by their respective names.
+ *
+ * @since 1.6.1
+ */
+ public static String replaceEntities(String src) {
+ src = replaceString(src, "<", "<");
+ src = replaceString(src, ">", ">");
+ src = replaceString(src, "\"", """);
+
+ return src;
+ }
+
+ /**
+ * Replaces a string with an other string.
+ *
+ * @param orig
+ * Original string. Null is safe.
+ * @param src
+ * The string to find.
+ * @param dest
+ * The string to replace <I>src </I> with.
+ */
+
+ public static String replaceString(String orig, String src, String dest) {
+ if (orig == null)
+ return null;
+
+ StringBuffer res = new StringBuffer();
+ int start, end = 0, last = 0;
+
+ while ((start = orig.indexOf(src, end)) != -1) {
+ res.append(orig.substring(last, start));
+ res.append(dest);
+ end = start + src.length();
+ last = start + src.length();
+ }
+
+ res.append(orig.substring(end));
+
+ return res.toString();
+ }
+
+ /**
+ * Replaces a part of a string with a new String.
+ *
+ * @param start
+ * Where in the original string the replacing should start.
+ * @param end
+ * Where the replacing should end.
+ * @param orig
+ * Original string. Null is safe.
+ * @param text
+ * The new text to insert into the string.
+ */
+ public static String replaceString(String orig, int start, int end,
+ String text) {
+ if (orig == null)
+ return null;
+
+ StringBuffer buf = new StringBuffer(orig);
+
+ buf.replace(start, end, text);
+
+ return buf.toString();
+ }
+
+ public void close() {
+ }
+
+ public int read(char[] buf, int off, int len) throws IOException {
+ return m_data.read(buf, off, len);
+ }
+
+ public int read()
+ throws IOException
+{
+ int val = m_data.read();
+
+ if( val == -1 )
+ {
+ transform();
+ val = m_data.read();
+
+ if( val == -1 )
+ {
+ m_data = new StringReader( closeAll() );
+
+ val = m_data.read();
+ }
+ }
+
+ return val;
+}
+ /**
+ * Closes all annoying lists and things that the user might've
+ * left open.
+ */
+ private String closeAll()
+ {
+ StringBuffer buf = new StringBuffer();
+
+ if( m_isbold )
+ {
+ buf.append("</B>");
+ m_isbold = false;
+ }
+
+ if( m_isitalic )
+ {
+ buf.append("</I>");
+ m_isitalic = false;
+ }
+
+ if( m_isTypedText )
+ {
+ buf.append("</TT>");
+ m_isTypedText = false;
+ }
+
+ for( ; m_listlevel > 0; m_listlevel-- )
+ {
+ buf.append( "</UL>\n" );
+ }
+
+ for( ; m_numlistlevel > 0; m_numlistlevel-- )
+ {
+ buf.append( "</OL>\n" );
+ }
+
+ if( m_isPre )
+ {
+ buf.append("</PRE>\n");
+ m_isPre = false;
+ }
+
+ if( m_istable )
+ {
+ buf.append( "</TABLE>" );
+ m_istable = false;
+ }
+
+ return buf.toString();
+ }
+
+ private void transform() throws IOException {
+ StringBuffer buf = new StringBuffer();
+ StringBuffer word = null;
+ int previousCh = -2;
+ int start = 0;
+
+ boolean quitReading = false;
+ boolean newLine = true; // FIXME: not true if reading starts in middle
+ // of buffer
+
+ while (!quitReading) {
+ int ch = nextToken();
+ String s = null;
+
+ //
+ // Check if we're actually ending the preformatted mode.
+ // We still must do an entity transformation here.
+ //
+ if (m_isPre) {
+ if (ch == '}') {
+ buf.append(handleClosebrace());
+ } else if (ch == '<') {
+ buf.append("<");
+ } else if (ch == '>') {
+ buf.append(">");
+ } else if (ch == -1) {
+ quitReading = true;
+ } else {
+ buf.append((char) ch);
+ }
+
+ continue;
+ }
+ //
+ // CamelCase detection, a non-trivial endeavour.
+ // We keep track of all white-space separated entities, which we
+ // hereby refer to as "words". We then check for an existence
+ // of a CamelCase format text string inside the "word", and
+ // if one exists, we replace it with a proper link.
+ //
+
+ if( m_camelCaseLinks )
+ {
+ // Quick parse of start of a word boundary.
+
+ if( word == null &&
+ (Character.isWhitespace( (char)previousCh ) ||
+ WORD_SEPARATORS.indexOf( (char)previousCh ) != -1 ||
+ newLine ) &&
+ !Character.isWhitespace( (char) ch ) )
+ {
+ word = new StringBuffer();
+ }
+
+ // Are we currently tracking a word?
+ if( word != null )
+ {
+ //
+ // Check for the end of the word.
+ //
+
+ if( Character.isWhitespace( (char)ch ) ||
+ ch == -1 ||
+ WORD_SEPARATORS.indexOf( (char) ch ) != -1 )
+ {
+ String potentialLink = word.toString();
+
+ String camelCase = checkForCamelCaseLink(potentialLink);
+
+ if( camelCase != null )
+ {
+ // System.out.println("Buffer is "+buf);
+
+ // System.out.println(" Replacing "+camelCase+" with
+ // proper link.");
+ start = buf.toString().lastIndexOf( camelCase );
+ buf.replace(start,
+ start+camelCase.length(),
+ makeCamelCaseLink(camelCase) );
+
+ // System.out.println(" Resulting with "+buf);
+ }
+
+ // We've ended a word boundary, so time to reset.
+ word = null;
+ }
+ else
+ {
+ // This should only be appending letters and digits.
+ word.append( (char)ch );
+ } // if end of word
+ } // if word's not null
+
+ // Always set the previous character to test for word starts.
+ previousCh = ch;
+
+ } // if m_camelCaseLinks
+
+ //
+ // Check if any lists need closing down.
+ //
+
+ if( newLine && ch != '*' && ch != ' ' && m_listlevel > 0 )
+ {
+ buf.append("</LI>\n");
+ for( ; m_listlevel > 0; m_listlevel-- )
+ {
+ buf.append("</UL>\n");
+ }
+ }
+
+ if( newLine && ch != '#' && ch != ' ' && m_numlistlevel > 0 )
+ {
+ buf.append("</LI>\n");
+ for( ; m_numlistlevel > 0; m_numlistlevel-- )
+ {
+ buf.append("</OL>\n");
+ }
+ }
+
+ if( newLine && ch != '|' && m_istable )
+ {
+ buf.append("</TABLE>\n");
+ m_istable = false;
+ m_closeTag = null;
+ }
+
+ //
+ // Now, check the incoming token.
+ //
+ switch( ch )
+ {
+ case '\r':
+ // DOS linefeeds we forget
+ s = null;
+ break;
+
+ case '\n':
+ //
+ // Close things like headings, etc.
+ //
+ if( m_closeTag != null )
+ {
+ buf.append( m_closeTag );
+ m_closeTag = null;
+ }
+
+ m_isdefinition = false;
+
+ if( newLine )
+ {
+ // Paragraph change.
+
+ buf.append("<P>\n");
+ }
+ else
+ {
+ buf.append("\n");
+ newLine = true;
+ }
+
+ break;
+
+ case '\\':
+ s = handleBackslash();
+ break;
+
+ case '_':
+ s = handleUnderscore();
+ break;
+
+ case '\'':
+ s = handleApostrophe();
+ break;
+
+ case '{':
+ s = handleOpenbrace();
+ break;
+
+ case '}':
+ s = handleClosebrace();
+ break;
+
+ case '-':
+ s = handleDash();
+ break;
+
+ case '!':
+ if( newLine )
+ {
+ s = handleHeading();
+ }
+ else
+ {
+ s = "!";
+ }
+ break;
+
+ case ';':
+ if( newLine )
+ {
+ s = handleDefinitionList();
+ }
+ else
+ {
+ s = ";";
+ }
+ break;
+
+ case ':':
+ if( m_isdefinition )
+ {
+ s = "</DT><DD>";
+ m_isdefinition = false;
+ }
+ else
+ {
+ s = ":";
+ }
+ break;
+
+ case '[':
+ s = handleOpenbracket();
+ break;
+
+ case '*':
+ if( newLine )
+ {
+ s = handleUnorderedList();
+ }
+ else
+ {
+ s = "*";
+ }
+ break;
+
+ case '#':
+ if( newLine )
+ {
+ s = handleOrderedList();
+ }
+ else
+ {
+ s = "#";
+ }
+ break;
+
+ case '|':
+ s = handleBar( newLine );
+ break;
+
+ case '<':
+ s = m_allowHTML ? "<" : "<";
+ break;
+
+ case '>':
+ s = m_allowHTML ? ">" : ">";
+ break;
+
+ case '\"':
+ s = m_allowHTML ? "\"" : """;
+ break;
+
+ /*
+ * case '&': s = "&"; break;
+ */
+ case '~':
+ s = handleTilde();
+ break;
+
+ case -1:
+ if( m_closeTag != null )
+ {
+ buf.append( m_closeTag );
+ m_closeTag = null;
+ }
+ quitReading = true;
+ break;
+
+ default:
+ buf.append( (char)ch );
+ newLine = false;
+ break;
+ }
+
+ if( s != null )
+ {
+ buf.append( s );
+ newLine = false;
+ }
+
+ }
+ m_data = new StringReader( buf.toString() );
+ }
+}
\ No newline at end of file
More information about the portletswap-commits
mailing list