From 7122fb9745e4622cb4c5d340cf1557e2fda1efe3 Mon Sep 17 00:00:00 2001 From: Sehong Na Date: Sat, 31 May 2014 13:20:46 +0900 Subject: Initialize Tizen 2.3 --- doc/doc.mk | 59 + doc/gen-doc | 186 ++ doc/html.css | 27 + doc/replace-PROG-VERSION.xsl | 15 + doc/xmlstar-fodoc-style.xsl | 17 + doc/xmlstarlet-man.xml | 202 ++ doc/xmlstarlet-ug.html | 888 ++++++++ doc/xmlstarlet-ug.pdf | Bin 0 -> 95080 bytes doc/xmlstarlet-ug.ps | 5030 ++++++++++++++++++++++++++++++++++++++++++ doc/xmlstarlet-ug.xml | 1741 +++++++++++++++ doc/xmlstarlet.1 | 136 ++ doc/xmlstarlet.txt | 1325 +++++++++++ 12 files changed, 9626 insertions(+) create mode 100644 doc/doc.mk create mode 100644 doc/gen-doc create mode 100644 doc/html.css create mode 100644 doc/replace-PROG-VERSION.xsl create mode 100644 doc/xmlstar-fodoc-style.xsl create mode 100644 doc/xmlstarlet-man.xml create mode 100644 doc/xmlstarlet-ug.html create mode 100644 doc/xmlstarlet-ug.pdf create mode 100644 doc/xmlstarlet-ug.ps create mode 100644 doc/xmlstarlet-ug.xml create mode 100644 doc/xmlstarlet.1 create mode 100644 doc/xmlstarlet.txt (limited to 'doc') diff --git a/doc/doc.mk b/doc/doc.mk new file mode 100644 index 0000000..10dc18d --- /dev/null +++ b/doc/doc.mk @@ -0,0 +1,59 @@ +userguide = doc/xmlstarlet-ug +userguide_gen = $(userguide).pdf $(userguide).ps $(userguide).html +userguide_src = $(userguide).xml + +txtguide = doc/xmlstarlet.txt +txtguide_src = doc/gen-doc + +manpage = doc/xmlstarlet.1 +manpage_src = doc/xmlstarlet-man.xml + +generated_docs = $(userguide_gen) $(txtguide) $(manpage) +buildfiles_docs = doc/replace-PROG-VERSION.xsl doc/xmlstar-fodoc-style.xsl + +DOCBOOK_PARAMS = \ +--param section.autolabel 1 \ +--stringparam generate.toc 'book toc,title' + +EDIT_XML = $(XSLTPROC) \ + --stringparam VERSION '$(VERSION)' \ + --stringparam PROG "`echo xml | $(SED) '$(program_transform_name)'`" \ + doc/replace-PROG-VERSION.xsl + +if BUILD_DOCS + +.xml.html: + $(V_DOCBOOK)$(EDIT_XML) $< | $(XSLTPROC) $(DOCBOOK_PARAMS) \ + --stringparam html.stylesheet html.css \ + http://docbook.sourceforge.net/release/xsl-ns/current/html/docbook.xsl \ + - > $@ + +.xml.fo: + $(V_DOCBOOK)$(EDIT_XML) $< | $(XSLTPROC) $(DOCBOOK_PARAMS) doc/xmlstar-fodoc-style.xsl - > $@ + +if HAVE_FOP +.fo.pdf: + $(V_FOP)$(FOP) -q $< $@ +endif +if HAVE_PDF2PS +.pdf.ps: + $(AM_V_GEN)$(PDF2PS) $< $@ +endif + +$(userguide).html : $(userguide).xml + +$(manpage): $(manpage_src) + $(V_DOCBOOK)$(EDIT_XML) $< | $(XSLTPROC) -o $@ \ + http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl \ + - + +$(txtguide): $(txtguide_src) $(usage_texts) + $(AM_V_GEN)srcdir=$(srcdir) SED=$(SED) transform='$(program_transform_name)' $< ./xml > $@ + +clean-doc: + rm -f $(generated_docs) + +endif BUILD_DOCS + +# NOTE: if put inside "if BUILD_DOCS" automake issues a warning +.PHONY: clean-doc diff --git a/doc/gen-doc b/doc/gen-doc new file mode 100644 index 0000000..c438ab4 --- /dev/null +++ b/doc/gen-doc @@ -0,0 +1,186 @@ +#! /bin/sh + +: "${SED=sed}" +XMLSTARLET=$1 +STAR_NAME=`echo xml | ${SED} "$transform"` + +{ +echo "" +echo "" +echo " XMLSTARLET USER'S GUIDE" +echo "" +echo " see also http://xmlstar.sourceforge.net/" +echo "" +echo "" + +echo "" +echo "" +echo "1. BASIC COMMAND LINE OPTIONS" +echo "====================================================" +echo "" +echo "$STAR_NAME --help" +$SED '/^#/d' src/usage.txt + +echo "" +echo "" +echo "" +echo "2. Select/Query XML documents" +echo "====================================================" +echo "" +echo "$STAR_NAME sel --help" +$SED '/^#/d' src/select-usage.txt + +echo "" +echo "" +echo "" +echo "3. Editing XML documents" +echo "====================================================" +echo "" +echo "$STAR_NAME ed --help" +$SED '/^#/d' src/edit-usage.txt + +echo "" +echo "" +echo "" +echo "4. Using XSLT to transform XML documents" +echo "====================================================" +echo "" +echo "$STAR_NAME tr --help" +$SED '/^#/d' src/trans-usage.txt + +echo "" +echo "" +echo "" +echo "5. Formatting XML documents" +echo "====================================================" +echo "" +echo "$STAR_NAME fo --help" +$SED '/^#/d' src/format-usage.txt + +echo "" +echo "" +echo "" +echo "6. Validating XML documents" +echo "====================================================" +echo "" +echo "$STAR_NAME val --help" +$SED '/^#/d' src/validate-usage.txt + +echo "" +echo "" +echo "" +echo "7. Displaying structure of XML documents" +echo "====================================================" +echo "" +echo "$STAR_NAME el --help" +$SED '/^#/d' src/elem-usage.txt + +echo "" +echo "" +echo "" +echo "" +echo "8. Escape/Unescape special XML characters" +echo "====================================================" +echo "" +echo "$STAR_NAME esc --help" +$SED '/^#/d' src/escape-usage.txt + +echo "" +echo "" +echo "" +echo "" +echo "9. List directory as XML" +echo "====================================================" +echo "" +echo "$STAR_NAME ls --help" +$SED '/^#/d' src/ls-usage.txt + +echo "" +echo "" +echo "" +echo "" +echo "10. XML canonicalization" +echo "====================================================" +echo "" +echo "$STAR_NAME c14n --help" +$SED '/^#/d' src/c14n-usage.txt + +echo "" +echo "" +echo "" +echo "" +echo "11. Convert XML into PYX format (based on ESIS - ISO 8879)" +echo "====================================================" +echo "" +echo "$STAR_NAME pyx --help" +$SED '/^#/d' src/pyx-usage.txt + +echo "" +echo "" +echo "" +echo "" +echo "12. Examples:" +echo "====================================================" +echo "" +echo "Input1" +echo "examples/xml/table.xml" +echo "" +cat "$srcdir"/examples/xml/table.xml +echo "" +echo "" +echo "Input2" +echo "examples/xml/tab-obj.xml" +echo "" +cat "$srcdir"/examples/xml/tab-obj.xml +echo "" +echo "" +echo "Input3" +echo "examples/html/hello1.html" +echo "" +cat "$srcdir"/examples/html/hello1.html +echo "" +echo "" +echo "Input4" +echo "examples/sgml/docbook1.sgml" +echo "" +cat "$srcdir"/examples/sgml/docbook1.sgml +echo "" +echo "" +echo "Stylesheet1" +echo "examples/xsl/sum1.xsl" +echo "" +cat "$srcdir"/examples/xsl/sum1.xsl +echo "" +echo "" +echo "Stylesheet2" +echo "examples/xsl/hello1.xsl" +echo "" +cat "$srcdir"/examples/xsl/hello1.xsl +echo "" +echo "" +echo "Stylesheet3" +echo "examples/xsl/param1.xsl" +echo "" +cat "$srcdir"/examples/xsl/param1.xsl +echo "" +echo "" + +echo "" + +for eg in "$srcdir"/examples/*[0-9] +do + if [ -x "$eg" ] + then + echo "Command:" + sed -e '/^#!/d' "$eg" + echo "Result Output:" + cat "$srcdir"/examples/results/`basename $eg`.out + echo "" + echo "" + fi +done + +echo "" +} | $SED -e "s:\./xmlstarlet:$STAR_NAME:g; s:PROG:$STAR_NAME:g" + + diff --git a/doc/html.css b/doc/html.css new file mode 100644 index 0000000..676ff98 --- /dev/null +++ b/doc/html.css @@ -0,0 +1,27 @@ +body { + background: #FFFFFF; +} + +h1, h2, h3, h4, h5 { + color: #800000; + font-family: sans-serif; +} + +span.term { + font-weight: bold; +} + +div.sidebar { + background: #F0F0F0; + border: 1px solid gray; + padding: 5px; + margin: 20px; +} + +pre.programlisting { + background: #F0F0F0; + border: 1px solid gray; + padding: 2px; + font-size: 10pt; + white-space: pre; +} diff --git a/doc/replace-PROG-VERSION.xsl b/doc/replace-PROG-VERSION.xsl new file mode 100644 index 0000000..bec1279 --- /dev/null +++ b/doc/replace-PROG-VERSION.xsl @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/doc/xmlstar-fodoc-style.xsl b/doc/xmlstar-fodoc-style.xsl new file mode 100644 index 0000000..11eaedb --- /dev/null +++ b/doc/xmlstar-fodoc-style.xsl @@ -0,0 +1,17 @@ + + + + + + + + + + + bold + normal + + + + + diff --git a/doc/xmlstarlet-man.xml b/doc/xmlstarlet-man.xml new file mode 100644 index 0000000..9299b59 --- /dev/null +++ b/doc/xmlstarlet-man.xml @@ -0,0 +1,202 @@ + + + + 2012 + + + + Mikhail + Grushinskiy + + XMLStarlet creator. + + + Version + + + + xmlstarlet + 1 + XMLStarlet Manual + + + + xmlstarlet + + command line XML/XSLT toolkit + + + + + + options + command + cmd-options + + + + + Introduction + + XMLStarlet is a set of command line utilities (tools) which can be + used to transform, query, validate, and edit XML documents and files using + simple set of shell commands in similar way it is done for plain text + files using UNIX grep, sed, awk, diff, patch, join, etc commands. This set + of command line utilities can be used by those who deal with many XML + documents on UNIX shell command prompt as well as for automated XML + processing with shell scripts. + + + + Options + + + + + + + Display the version of + xmlstarlet. + + + + + + + + Display help. + + + + + + + Commands + + + command + for command specific help + + Available commands include: + + + + + + + Edit/update XML document(s). + + + + + + + + Select data or query XML document(s) (XPATH, + etc). + + + + + + + + Transform XML documents(s) using XSLT. + + + + + + + + Validate XML document(s) + (well-formed/DTD/XSD/RelaxNG). + + + + + + + + Format XML document(s). + + + + + + + + Display element structure of XML document. + + + + + + + + XML canonicalization. + + + + + + + + List directory as XML. + + + + + + + + Escape special XML characters. + + + + + + + + Unescape special XML characters. + + + + + + + + Convert XML into PYX format (based on ESIS - ISO + 8879). + + + + + + + + Convert PYX into XML. + + + + + + + References + + XMLStarlet is a command line toolkit to query/edit/check/transform + XML documents (for more information see + http://xmlstar.sourceforge.net/). + + + + Bugs + Report bugs to the mailing list, + xmlstar-devel@lists.sourceforge.net or the bug tracker: . + + + diff --git a/doc/xmlstarlet-ug.html b/doc/xmlstarlet-ug.html new file mode 100644 index 0000000..be82ac2 --- /dev/null +++ b/doc/xmlstarlet-ug.html @@ -0,0 +1,888 @@ +XmlStarlet Command Line XML Toolkit User's Guide

XmlStarlet Command Line XML Toolkit User's Guide

Mikhail Grushinskiy


Chapter 1. Introduction

1. About XmlStarlet

XMLStarlet is + a set of command line utilities (tools) which can be used to transform, + query, validate, and edit XML documents and files using simple set of + shell commands in similar way it is done for plain text files using UNIX + grep, sed, awk, diff, patch, join, etc commands.

This set of command line utilities can be used by those who deal + with many XML documents on UNIX shell command prompt as well as for + automated XML processing with shell scripts.

XMLStarlet command line utility is written in C and uses libxml2 + and libxslt from http://xmlsoft.org/. Implementation of + extensive choice of options for XMLStarlet utility was only possible + because of rich feature set of libxml2 and libxslt (many thanks to the + developers of those libraries for great work).

'diff' and 'patch' options are not currently implemented. Other + features need some work too. Please, send an email to the project + administrator (see http://sourceforge.net/projects/xmlstar/) + if you wish to help.

XMLStarlet is linked statically to both libxml2 and libxslt, so + generally all you need to process XML documents is one executable file. + To run XmlStarlet utility you can simple type 'xml' on command line and + see list of options available.

XMLStarlet is open source freeware under MIT license which allows + free use and distribution for both commercial and non-commercial + projects.

We welcome any user's feedback on this project which would greatly + help us to improve its quality. Comments, suggestions, feature requests, + bug reports can be done via SourceForge project web site (see XMLStarlet + Sourceforge forums, or XMLStarlet + mailing list)

2. Main Features

The toolkit's feature set includes options to:

  • Check or validate XML files (simple well-formedness check, + DTD, XSD, RelaxNG)

  • Calculate values of XPath expressions on XML files (such as + running sums, etc)

  • Search XML files for matches to given XPath expressions

  • Apply XSLT stylesheets to XML documents (including EXSLT + support, and passing parameters to stylesheets)

  • Query XML documents (ex. query for value of some elements of + attributes, sorting, etc)

  • Modify or edit XML documents (ex. delete some elements)

  • Format or "beautify" XML documents (as changing indentation, + etc)

  • Fetch XML documents using http:// or ftp:// URLs

  • Browse tree structure of XML documents (in similar way to 'ls' + command for directories)

  • Include one XML document into another using XInclude

  • XML c14n canonicalization

  • Escape/unescape special XML characters in input text

  • Print directory as XML document

  • Convert XML into PYX format (based on ESIS - ISO 8879), and + vice versa

3. Supported Platforms

Here is a list of platforms on which XmlStarlet is known to + work.

  • Linux

  • Solaris

  • Windows

  • MacOS X

  • FreeBSD/NetBSD

  • HP-UX

  • AIX

You might be able to compile and make it on others too.

4. Finding binary packages

Here is a list of sites where you can also find XmlStarlet binary + packages.

Chapter 2. Installation

1. Installation on Linux

Execute the following command as root

rpm -i xmlstarlet-x.x.x-1.i386.rpm

where x.x.x indicates package version.

You can use http://rpmfind.net + to search for RPM appropriate for your distribution.

2. Installation on Solaris

Execute the following commands as root

gunzip xmlstarlet-x.x.x-sol8-sparc-local.gz
+pkgadd -d xmlstarlet-x.x.x-sol8-sparc-local all

3. Installation on MacOS X

XmlStarlet is available on MacOS in Fink. See + fink.sourceforge.net

4. Installation on Windows

Unzip the file xmlstarlet-x.x.x-win32.zip to some directory. To + take advantage of UNIX shell scripting you might want to run XmlStarlet + from Cygwin. Consider installing Cygwin on your Windows + machine.

Chapter 3. Getting Started

1. Basic Command-Line Options

Basic command line syntax:

bash-2.03$ xml
+XMLStarlet Toolkit: Command line utilities for XML
+Usage: xml [<options>] <command> [<cmd-options>]
+where <command> is one of:
+   ed    (or edit)      - Edit/Update XML document(s)
+   sel   (or select)    - Select data or query XML document(s) (XPATH, etc)
+   tr    (or transform) - Transform XML document(s) using XSLT
+   val   (or validate)  - Validate XML document(s) (well-formed/DTD/XSD/RelaxNG)
+   fo    (or format)    - Format XML document(s)
+   el    (or elements)  - Display element structure of XML document
+   c14n  (or canonic)   - XML canonicalization
+   ls    (or list)      - List directory as XML
+   esc   (or escape)    - Escape special XML characters
+   unesc (or unescape)  - Unescape special XML characters
+   pyx   (or xmln)      - Convert XML into PYX format (based on ESIS - ISO 8879)
+   p2x   (or depyx)     - Convert PYX into XML
+<options> are:
+   --version            - show version
+   --help               - show help
+Wherever file name mentioned in command help it is assumed
+that URL can be used instead as well.
+
+Type: xml <command> --help <ENTER> for command help
+
+XMLStarlet is a command line toolkit to query/edit/check/transform
+XML documents (for more information see http://xmlstar.sourceforge.net/)

2. Studying Structure of XML Document

Before you do anything with your XML document you probably would + like to know its structure at first. 'el' option could be used for this + purpose.

Let's say you have the following XML document (table.xml)

<xml>
+  <table>
+    <rec id="1">
+      <numField>123</numField>
+      <stringField>String Value</stringField>
+    </rec>
+    <rec id="2">
+      <numField>346</numField>
+      <stringField>Text Value</stringField>
+    </rec>
+    <rec id="3">
+      <numField>-23</numField>
+      <stringField>stringValue</stringField>
+    </rec>
+  </table>
+</xml>
xml el table.xml

would produce the following output.

xml
+xml/table
+xml/table/rec
+xml/table/rec/numField
+xml/table/rec/stringField
+xml/table/rec
+xml/table/rec/numField
+xml/table/rec/stringField
+xml/table/rec
+xml/table/rec/numField
+xml/table/rec/stringField

Every line in this output is an XPath expression which indicates a + 'path' to elements in XML document. You would use these XPath + expressions to navigate through your XML documents in other XmlStarlet + options.

XML documents can be pretty large but with a very simple + structure. (This is espesially true for data driven XML documents ex: + XML formatted result of select from SQL table). If you just interested + in structure but not order of the elements you can use -u switch + combined with 'el' option.

EXAMPLE:

xml el -u table.xml

Output:

xml
+xml/table
+xml/table/rec
+xml/table/rec/numField
+xml/table/rec/stringField

If you are interested not just in elements of your XML document, + but you want to see attributes as well you can use -a switch with 'el' + option. And every line of the output will still be a valid XPath + expression.

EXAMPLE:

xml el -a table.xml

Output:

xml
+xml/table
+xml/table/rec
+xml/table/rec/@id
+xml/table/rec/numField
+xml/table/rec/stringField
+xml/table/rec
+xml/table/rec/@id
+xml/table/rec/numField
+xml/table/rec/stringField
+xml/table/rec
+xml/table/rec/@id
+xml/table/rec/numField
+xml/table/rec/stringField

If you are looking for attribute values as well use -v switch of + 'el' option. And again - every line of output is a valid XPath + expression.

EXAMPLE:

xml el -v table.xml

Output:

xml
+xml/table
+xml/table/rec[@id='1']
+xml/table/rec/numField
+xml/table/rec/stringField
+xml/table/rec[@id='2']
+xml/table/rec/numField
+xml/table/rec/stringField
+xml/table/rec[@id='3']
+xml/table/rec/numField
+xml/table/rec/stringField

Chapter 4. XmlStarlet Reference

1. Querying XML documents

XmlStarlet 'select' or 'sel' option can be used to query or search + XML documents. Here is synopsis for 'xml sel' command:

XMLStarlet Toolkit: Select from XML document(s)
+Usage: xml sel <global-options> {<template>} [ <xml-file> ... ]
+where
+  <global-options> - global options for selecting
+  <xml-file> - input XML document file name/uri (stdin is used if missing)
+  <template> - template for querying XML document with following syntax:
+
+<global-options> are:
+  -C or --comp       - display generated XSLT
+  -R or --root       - print root element <xsl-select>
+  -T or --text       - output is text (default is XML)
+  -I or --indent     - indent output
+  -D or --xml-decl   - do not omit xml declaration line
+  -B or --noblanks   - remove insignificant spaces from XML tree
+  -N <name>=<value>  - predefine namespaces (name without 'xmlns:')
+                       ex: xsql=urn:oracle-xsql
+                       Multiple -N options are allowed.
+  --net              - allow fetch DTDs or entities over network
+  --help             - display help
+
+Syntax for templates: -t|--template <options>
+where <options>
+  -c or --copy-of <xpath>  - print copy of XPATH expression
+  -v or --value-of <xpath> - print value of XPATH expression
+  -o or --output <string>  - output string literal
+  -n or --nl               - print new line
+  -f or --inp-name         - print input file name (or URL)
+  -m or --match <xpath>    - match XPATH expression
+  -i or --if <test-xpath>  - check condition <xsl:if test="test-xpath">
+  -e or --elem <name>      - print out element <xsl:element name="name">
+  -a or --attr <name>      - add attribute <xsl:attribute name="name">
+  -b or --break            - break nesting
+  -s or --sort op xpath    - sort in order (used after -m) where
+  op is X:Y:Z,
+      X is A - for order="ascending"
+      X is D - for order="descending"
+      Y is N - for data-type="numeric"
+      Y is T - for data-type="text"
+      Z is U - for case-order="upper-first"
+      Z is L - for case-order="lower-first"
+
+There can be multiple --match, --copy-of, --value-of, etc options
+in a single template. The effect of applying command line templates
+can be illustrated with the following XSLT analogue
+
+xml sel -t -c "xpath0" -m "xpath1" -m "xpath2" -v "xpath3" \
+        -t -m "xpath4" -c "xpath5"
+
+is equivalent to applying the following XSLT
+
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:template match="/">
+  <xsl:call-template name="t1"/>
+  <xsl:call-template name="t2"/>
+</xsl:template>
+<xsl:template name="t1">
+  <xsl:copy-of select="xpath0"/>
+  <xsl:for-each select="xpath1">
+    <xsl:for-each select="xpath2">
+      <xsl:value-of select="xpath3"/>
+    </xsl:for-each>
+  </xsl:for-each>
+</xsl:template>
+<xsl:template name="t2">
+  <xsl:for-each select="xpath4">
+    <xsl:copy-of select="xpath5"/>
+  </xsl:for-each>
+</xsl:template>
+</xsl:stylesheet>
+
+XMLStarlet is a command line toolkit to query/edit/check/transform
+XML documents (for more information see http://xmlstar.sourceforge.net/)
+
+Current implementation uses libxslt from GNOME codebase as XSLT processor
+(see http://xmlsoft.org/ for more details)
+

'select' option allows you basically avoid writting XSLT + stylesheet to perform some queries on XML documents. I.e. various + combinations of command line parameters will let you to generate XSLT + stylesheet and apply in to XML documents with a single command line. + Very often you do not really care what XSLT was created for you 'select' + command, but in those cases when you do; you can always use -C or --comp + switch which will let you see exactly which XSLT is applied to your + input.

'select' option supports many EXSLT functions in XPath + expressions.

Here are few examples which will help to understand how 'xml + select' works:

EXAMPLE:

Count elements matching XPath expression:

xml sel -t -v "count(/xml/table/rec/numField)" table.xml

Input (table.xml):

<xml>
+  <table>
+    <rec id="1">
+      <numField>123</numField>
+      <stringField>String Value</stringField>
+    </rec>
+    <rec id="2">
+      <numField>346</numField>
+      <stringField>Text Value</stringField>
+    </rec>
+    <rec id="3">
+      <numField>-23</numField>
+      <stringField>stringValue</stringField>
+    </rec>
+  </table>
+</xml>

Output:

3
+

Let's take a close look what it did internally. For that we will + use '-C' option

$ xml sel -C -t -v "count(/xml/table/rec/numField)"
+<?xml version="1.0"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:exslt="http://exslt.org/common"
+ xmlns:math="http://exslt.org/math"
+ xmlns:date="http://exslt.org/dates-and-times"
+ xmlns:func="http://exslt.org/functions"
+ xmlns:set="http://exslt.org/sets"
+ xmlns:str="http://exslt.org/strings"
+ xmlns:dyn="http://exslt.org/dynamic"
+ xmlns:saxon="http://icl.com/saxon"
+ xmlns:xalanredirect="org.apache.xalan.xslt.extensions.Redirect"
+ xmlns:xt="http://www.jclark.com/xt"
+ xmlns:libxslt="http://xmlsoft.org/XSLT/namespace"
+ xmlns:test="http://xmlsoft.org/XSLT/"
+ extension-element-prefixes=
+   "exslt math date func set str dyn saxon xalanredirect xt libxslt test"
+ exclude-result-prefixes="math str">
+<xsl:output omit-xml-declaration="yes" indent="no"/>
+<xsl:param name="inputFile">-</xsl:param>
+<xsl:template match="/">
+  <xsl:call-template name="t1"/>
+</xsl:template>
+<xsl:template name="t1">
+  <xsl:value-of select="count(/xml/table/rec/numField)"/>
+</xsl:template>
+</xsl:stylesheet>

Ignoring some XSLT stuff to make it brief:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output omit-xml-declaration="yes" indent="no"/>
+<xsl:param name="inputFile">-</xsl:param>
+<xsl:template match="/">
+  <xsl:call-template name="t1"/>
+</xsl:template>
+<xsl:template name="t1">
+  <xsl:value-of select="count(/xml/table/rec/numField)"/>
+</xsl:template>
+</xsl:stylesheet>

Every -t option is mapped into XSLT template. Options after '-t' + are mapped into XSLT elements:

  • -v to <xsl:value-of>

  • -c to <xsl:copy-of>

  • -e to <xsl:element>

  • -a to <xsl:attribute>

  • -s to <xsl:sort>

  • -m to <xsl:for-each>

  • -i to <xsl:if>

  • and so on

By default subsequent options (for instance: -m) will result in + nested corresponding XSLT elements (<xsl:for-each> for '-m'). To + break this nesting you would have to put '-b' or '--break' after first + '-m'.

Below are few more examples:

EXAMPLE

Count all nodes in XML documents. Print input name and node count + after it.

xml sel -t -f -o " " -v "count(//node())" xml/table.xml xml/tab-obj.xml

Output:

xml/table.xml 32
+xml/tab-obj.xml 41

EXAMPLE

Find XML files matching XPath expression (containing 'object' + element)

xml sel -t -m //object -f xml/table.xml xml/tab-obj.xml

Result output:

xml/tab-obj.xml

EXAMPLE

Calculate EXSLT (XSLT extentions) XPath value

echo "<x/>" | xml sel -t -v "math:abs(-1000)"

Result output:

1000

EXAMPLE

Adding elements and attributes using command line 'xml sel'

echo "<x/>" | xml sel -t -m / -e xml -e child -a data -o value

Result Output:

<xml><child data="value"/></xml>

EXAMPLE

Query XML document and produce sorted text table

xml sel -T -t -m /xml/table/rec -s D:N:- "@id" \
+  -v "concat(@id,'|',numField,'|',stringField)" -n xml/table.xml

Result Output:

3|-23|stringValue
+2|346|Text Value
+1|123|String Value

Equivalent stylesheet

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output omit-xml-declaration="yes" indent="no" method="text"/>
+<xsl:param name="inputFile">-</xsl:param>
+<xsl:template match="/">
+  <xsl:call-template name="t1"/>
+</xsl:template>
+<xsl:template name="t1">
+  <xsl:for-each select="/xml/table/rec">
+    <xsl:sort order="descending" data-type="number" 
+      case-order="upper-first" select="@id"/>
+    <xsl:value-of select="concat(@id,'|',numField,'|',stringField)"/>
+    <xsl:value-of select="'&#10;'"/>
+  </xsl:for-each>
+</xsl:template>
+</xsl:stylesheet>

EXAMPLE

Predefine namespaces for XPath expressions

xml sel -N xsql=urn:oracle-xsql -t -v /xsql:query xsql/jobserve.xsql

Input (xsql/jobserve.xsql)

$ cat xsql/jobserve.xsql
+<?xml version="1.0"?>
+<?xml-stylesheet type="text/xsl" href="jobserve.xsl"?>
+<xsql:query connection="jobs" xmlns:xsql="urn:oracle-xsql" max-rows="5">
+  SELECT substr(title,1,26) short_title, title, location, skills
+  FROM job
+  WHERE UPPER(title) LIKE '%ORACLE%'
+  ORDER BY first_posted DESC
+</xsql:query>

Result output

  SELECT substr(title,1,26) short_title, title, location, skills
+  FROM job
+  WHERE UPPER(title) LIKE '%ORACLE%'
+  ORDER BY first_posted DESC
+

EXAMPLE

Print structure of XML element using xml sel (advanced XPath + expressions and xml sel command usage)

xml sel -T -t -m '//*' \
+-m 'ancestor-or-self::*' -v 'name()' -i 'not(position()=last())' -o . -b -b -n \
+xml/structure.xml

Input (xml/structure.xml)

<a1>
+  <a11>
+    <a111>
+      <a1111/>
+    </a111>
+    <a112>
+      <a1121/>
+    </a112>
+  </a11>
+  <a12/>
+  <a13>
+    <a131/>
+  </a13>
+</a1>

Result Output:

a1
+a1.a11
+a1.a11.a111
+a1.a11.a111.a1111
+a1.a11.a112
+a1.a11.a112.a1121
+a1.a12
+a1.a13
+a1.a13.a131

This example is a good demonstration of nesting control. Here is + corresponding XSLT:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output omit-xml-declaration="yes" indent="no" method="text"/>
+<xsl:param name="inputFile">-</xsl:param>
+<xsl:template match="/">
+  <xsl:call-template name="t1"/>
+</xsl:template>
+<xsl:template name="t1">
+  <xsl:for-each select="//*">
+    <xsl:for-each select="ancestor-or-self::*">
+      <xsl:value-of select="name()"/>
+      <xsl:if test="not(position()=last())">
+        <xsl:value-of select="'.'"/>
+      </xsl:if>
+    </xsl:for-each>
+    <xsl:value-of select="'&#10;'"/>
+  </xsl:for-each>
+</xsl:template>
+</xsl:stylesheet>

EXAMPLE

Print all links of xhtml document

xml sel --net --html -T -t -m "//*[local-name()='a']" \
+   -o 'NAME: ' -v "translate(. , '&#10;', ' ')" -n \
+   -o 'LINK: ' -v @href -n -n \
+   http://xmlstar.sourceforge.net/

Sample output

NAME: XmlStarlet SourceForge Site
+LINK: http://sourceforge.net/projects/xmlstar/
+
+NAME: XmlStarlet CVS Source
+LINK: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/xmlstar/
+
+NAME: XmlStarlet on Freshmeat.Net
+LINK: http://freshmeat.net/projects/xmlstarlet/
+
+NAME: XMLStarlet Sourceforge forums
+LINK: http://sourceforge.net/forum/?group_id=66612
+
+NAME: XMLStarlet mailing list
+LINK: http://lists.sourceforge.net/lists/listinfo/xmlstar-devel
+

2. Transforming XML documents

Here is synopsis for 'xml tr' command:

XMLStarlet Toolkit: Transform XML document(s) using XSLT
+Usage: xml tr [<options>] <xsl-file> {-p|-s <name>=<value>} [ <xml-file-or-uri> ... ]
+where
+   <xsl-file>      - main XSLT stylesheet for transformation
+   <xml-file>      - input XML document file name (stdin is used if missing)
+   <name>=<value>  - name and value of the parameter passed to XSLT processor
+   -p              - parameter is XPATH expression ("'string'" to quote string)
+   -s              - parameter is a string literal
+<options> are:
+   --omit-decl     - omit xml declaration <?xml version="1.0"?>
+   --show-ext      - show list of extensions
+   --val           - allow validate against DTDs or schemas
+   --net           - allow fetch DTDs or entities over network
+   --xinclude      - do XInclude processing on document input
+   --maxdepth val  - increase the maximum depth
+   --html          - input document(s) is(are) in HTML format
+   --catalogs      - use SGML catalogs from $SGML_CATALOG_FILES
+                     otherwise XML catalogs starting from
+                     file:///etc/xml/catalog are activated by default
+
+XMLStarlet is a command line toolkit to query/edit/check/transform
+XML documents (for more information see http://xmlstar.sourceforge.net/)
+
+Current implementation uses libxslt from GNOME codebase as XSLT processor
+(see http://xmlsoft.org/ for more details)
+

EXAMPLE:

# Transform passing parameters to XSLT stylesheet
+xml tr xsl/param1.xsl -p Count='count(/xml/table/rec)' -s Text="Count=" xml/table.xml
+

Input xsl/params1.xsl

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output method="text"/>
+<xsl:param name="Text"/>
+<xsl:param name="Count"/>
+<xsl:template match="/">
+  <xsl:call-template name="t1"/>
+</xsl:template>
+<xsl:template name="t1">
+  <xsl:for-each select="/xml">
+    <xsl:value-of select="$Text"/>
+    <xsl:value-of select="$Count"/>
+    <xsl:value-of select="'&#10;'"/>
+  </xsl:for-each>
+</xsl:template>
+</xsl:stylesheet>

Output

Count=3
+

3. Editing XML documents

Here is the synopsis for 'xml ed' command:

XMLStarlet Toolkit: Edit XML document(s)
+Usage: xml ed <global-options> {<action>} [ <xml-file-or-uri> ... ]
+where
+  <global-options>  - global options for editing
+  <xml-file-or-uri> - input XML document file name/uri (stdin is used if missing)
+
+<global-options> are:
+  -P (or --pf)        - preserve original formatting
+  -S (or --ps)        - preserve non-significant spaces
+  -O (or --omit-decl) - omit XML declaration (<?xml ...?>)
+  -N <name>=<value>   - predefine namespaces (name without 'xmlns:')
+                        ex: xsql=urn:oracle-xsql
+                        Multiple -N options are allowed.
+                        -N options must be last global options.
+  --help or -h        - display help
+
+where <action>
+   -d or --delete <xpath>
+   -i or --insert <xpath> -t (--type) elem|text|attr -n <name> -v (--value) <value>
+   -a or --append <xpath> -t (--type) elem|text|attr -n <name> -v (--value) <value>
+   -s or --subnode <xpath> -t (--type) elem|text|attr -n <name> -v (--value) <value>
+   -m or --move <xpath1> <xpath2>
+   -r or --rename <xpath1> -v <new-name>
+   -u or --update <xpath> -v (--value) <value>
+                          -x (--expr) <xpath> (-x is not implemented yet)
+
+XMLStarlet is a command line toolkit to query/edit/check/transform
+XML documents (for more information see http://xmlstar.sourceforge.net/)
+

EXAMPLE:

# Delete elements matching XPath expression
+xml ed -d "/xml/table/rec[@id='2']" xml/table.xml
+

Input

<xml>
+  <table>
+    <rec id="1">
+      <numField>123</numField>
+      <stringField>String Value</stringField>
+    </rec>
+    <rec id="2">
+      <numField>346</numField>
+      <stringField>Text Value</stringField>
+    </rec>
+    <rec id="3">
+      <numField>-23</numField>
+      <stringField>stringValue</stringField>
+    </rec>
+  </table>
+</xml>
+

Output

<xml>
+  <table>
+    <rec id="1">
+      <numField>123</numField>
+      <stringField>String Value</stringField>
+    </rec>
+    <rec id="3">
+      <numField>-23</numField>
+      <stringField>stringValue</stringField>
+    </rec>
+  </table>
+</xml>
+

EXAMPLE

# Move element node
+echo '<x id="1"><a/><b/></x>' | xml ed -m "//b" "//a"
+

Output

<x id="1">
+  <a>
+    <b/>
+  </a>
+</x>
+

EXAMPLE

# Rename attributes
+xml ed -r "//*/@id" -v ID xml/tab-obj.xml
+

Output:

<xml>
+  <table>
+    <rec ID="1">
+      <numField>123</numField>
+      <stringField>String Value</stringField>
+      <object name="Obj1">
+        <property name="size">10</property>
+        <property name="type">Data</property>
+      </object>
+    </rec>
+    <rec ID="2">
+      <numField>346</numField>
+      <stringField>Text Value</stringField>
+    </rec>
+    <rec ID="3">
+      <numField>-23</numField>
+      <stringField>stringValue</stringField>
+    </rec>
+  </table>
+</xml>
+

EXAMPLE

# Rename elements
+xml ed -r "/xml/table/rec" -v record xml/tab-obj.xml
+

Output:

<xml>
+  <table>
+    <record id="1">
+      <numField>123</numField>
+      <stringField>String Value</stringField>
+      <object name="Obj1">
+        <property name="size">10</property>
+        <property name="type">Data</property>
+      </object>
+    </record>
+    <record id="2">
+      <numField>346</numField>
+      <stringField>Text Value</stringField>
+    </record>
+    <record id="3">
+      <numField>-23</numField>
+      <stringField>stringValue</stringField>
+    </record>
+  </table>
+</xml>
+

EXAMPLE

# Update value of an attribute
+xml ed -u "/xml/table/rec[@id=3]/@id" -v 5 xml/tab-obj.xml
+

Output:

<xml>
+  <table>
+    <rec id="1">
+      <numField>123</numField>
+      <stringField>String Value</stringField>
+      <object name="Obj1">
+        <property name="size">10</property>
+        <property name="type">Data</property>
+      </object>
+    </rec>
+    <rec id="2">
+      <numField>346</numField>
+      <stringField>Text Value</stringField>
+    </rec>
+    <rec id="5">
+      <numField>-23</numField>
+      <stringField>stringValue</stringField>
+    </rec>
+  </table>
+</xml>
+

EXAMPLE

# Update value of an element
+xml ed -u "/xml/table/rec[@id=1]/numField" -v 0 xml/tab-obj.xml
+

Output:

<xml>
+  <table>
+    <rec id="1">
+      <numField>0</numField>
+      <stringField>String Value</stringField>
+      <object name="Obj1">
+        <property name="size">10</property>
+        <property name="type">Data</property>
+      </object>
+    </rec>
+    <rec id="2">
+      <numField>346</numField>
+      <stringField>Text Value</stringField>
+    </rec>
+    <rec id="3">
+      <numField>-23</numField>
+      <stringField>stringValue</stringField>
+    </rec>
+  </table>
+</xml>
+

4. Validating XML documents

Here is synopsis for 'xml val' command:

XMLStarlet Toolkit: Validate XML document(s)
+Usage: xml val <options> [ <xml-file-or-uri> ... ]
+where <options>
+   -w or --well-formed        - validate well-formedness only (default)
+   -d or --dtd <dtd-file>     - validate against DTD
+   -s or --xsd <xsd-file>     - validate against XSD schema
+   -r or --relaxng <rng-file> - validate against Relax-NG schema
+   -e or --err                - print verbose error messages on stderr
+   -b or --list-bad           - list only files which do not validate
+   -g or --list-good          - list only files which validate
+   -q or --quiet              - do not list files (return result code only)
+
+NOTE: XML Schemas are not fully supported yet due to its incomplete
+      support in libxml (see http://xmlsoft.org)
+
+XMLStarlet is a command line toolkit to query/edit/check/transform
+XML documents (for more information see http://xmlstar.sourceforge.net/)
+

EXAMPLE

# Validate XML document against DTD
+xml val --dtd dtd/table.dtd xml/tab-obj.xml >/dev/null 2>&1; echo $?
+

Output:

1
+

EXAMPLE

# Validate against XSD schema
+xml val -b -s xsd/table.xsd xml/table.xml xml/tab-obj.xml 2>/dev/null; echo $?
+

Output:

xml/tab-obj.xml
+1
+

5. Formatting XML documents

Here is synopsis for 'xml fo' command:

XMLStarlet Toolkit: Format XML document
+Usage: xml fo [<options>] <xml-file>
+where <options> are
+   -n or --noindent            - do not indent
+   -t or --indent-tab          - indent output with tabulation
+   -s or --indent-spaces <num> - indent output with <num> spaces
+   -o or --omit-decl           - omit xml declaration <?xml version="1.0"?>
+   -R or --recover             - try to recover what is parsable
+   -D or --dropdtd             - remove the DOCTYPE of the input docs
+   -C or --nocdata             - replace cdata section with text nodes
+   -N or --nsclean             - remove redundant namespace declarations
+   -e or --encode <encoding>   - output in the given encoding (utf-8, unicode...)
+   -H or --html                - input is HTML
+   -h or --help                - print help
+
+XMLStarlet is a command line toolkit to query/edit/check/transform
+XML documents (for more information see http://xmlstar.sourceforge.net/)
+

EXAMPLE

# Format XML document disabling indent
+cat xml/tab-obj.xml | xml fo --noindent 
+

Output:

<xml>
+<table>
+<rec id="1">
+<numField>123</numField>
+<stringField>String Value</stringField>
+<object name="Obj1">
+<property name="size">10</property>
+<property name="type">Data</property>
+</object>
+</rec>
+<rec id="2">
+<numField>346</numField>
+<stringField>Text Value</stringField>
+</rec>
+<rec id="3">
+<numField>-23</numField>
+<stringField>stringValue</stringField>
+</rec>
+</table>
+</xml>
+

EXAMPLE

# Recover malformed XML document
+xml fo -R xml/malformed.xml 2>/dev/null
+

Input:

<test_output>
+   <test_name>foo</testname>
+   <subtest>...</subtest>
+</test_output>
+

Output:

<test_output>
+  <test_name>foo</test_name>
+  <subtest>...</subtest>
+</test_output>
+

6. Canonicalization of XML documents

Here is synopsis for 'xml c14n' command:

XMLStarlet Toolkit: XML canonicalization
+Usage: xml c14n <mode> <xml-file> [<xpath-file>] [<inclusive-ns-list>]
+where
+  <xml-file>   - input XML document file name (stdin is used if '-')
+  <xpath-file> - XML file containing XPath expression for
+                 c14n XML canonicalization
+    Example:
+    <?xml version="1.0"?>
+    <XPath xmlns:n0="http://a.example.com" xmlns:n1="http://b.example">
+    (//. | //@* | //namespace::*)[ancestor-or-self::n1:elem1]
+    </XPath>
+
+  <inclusive-ns-list> - the list of inclusive namespace prefixes
+                        (only for exclusive canonicalization)
+    Example: 'n1 n2'
+
+  <mode> is one of following:
+  --with-comments         XML file canonicalization w comments (default)
+  --without-comments      XML file canonicalization w/o comments
+  --exc-with-comments     Exclusive XML file canonicalization w comments
+  --exc-without-comments  Exclusive XML file canonicalization w/o comments
+
+XMLStarlet is a command line toolkit to query/edit/check/transform
+XML documents (for more information see http://xmlstar.sourceforge.net/)
+

EXAMPLE

# XML canonicalization
+xml c14n --with-comments ../examples/xml/structure.xml ; echo $?
+

Input ../examples/xml/structure.xml

<a1>
+  <a11>
+    <a111>
+      <a1111/>
+    </a111>
+    <a112>
+      <a1121/>
+    </a112>
+  </a11>
+  <a12/>
+  <a13>
+    <a131/>
+  </a13>
+</a1>

Output

<a1>
+  <a11>
+    <a111>
+      <a1111></a1111>
+    </a111>
+    <a112>
+      <a1121></a1121>
+    </a112>
+  </a11>
+  <a12></a12>
+  <a13>
+    <a131></a131>
+  </a13>
+</a1>
+0
+

EXAMPLE

# XML exclusive canonicalization
+xml c14n --exc-with-comments ../examples/xml/c14n.xml ../examples/xml/c14n.xpath
+

Input

../examples/xml/c14n.xml
+
+<n0:pdu xmlns:n0='http://a.example.com'>
+<n1:elem1 xmlns:n1='http://b.example'>
+content
+</n1:elem1>
+</n0:pdu>
+
+../examples/xml/c14n.xpath
+
+<XPath xmlns:n0="http://a.example.com" xmlns:n1="http://b.example">
+(//. | //@* | //namespace::*)[ancestor-or-self::n1:elem1]
+</XPath>
+
+

Output

<n1:elem1 xmlns:n1="http://b.example">
+content
+</n1:elem1>
+

7. XML and PYX format

Here is synopsis for 'xml pyx' command:

XMLStarlet Toolkit: Convert XML into PYX format (based on ESIS - ISO 8879)
+Usage: xml pyx {<xml-file>}
+where
+   <xml-file> - input XML document file name (stdin is used if missing)
+
+The PYX format is a line-oriented representation of
+XML documents that is derived from the SGML ESIS format.
+(see ESIS - ISO 8879 Element Structure Information Set spec,
+ISO/IEC JTC1/SC18/WG8 N931 (ESIS))
+
+A non-validating, ESIS generating tool originally developed for
+pyxie project (see http://pyxie.sourceforge.net/)
+ESIS Generation by Sean Mc Grath http://www.digitome.com/sean.html
+
+XMLStarlet is a command line toolkit to query/edit/check/transform
+XML documents (for more information see http://xmlstar.sourceforge.net/)
+

EXAMPLE

xml pyx input.xml
+

Input (input.xml)

<books>
+<book type='hardback'>
+<title>Atlas Shrugged</title>
+<author>Ayn Rand</author>
+<isbn id='1'>0525934189</isbn>
+</book>
+</books>

Output

(books
+-\n
+(book
+Atype hardback
+-\n
+(title
+-Atlas Shrugged
+)title
+-\n
+(author
+-Ayn Rand
+)author
+-\n
+(isbn
+Aid 1
+-0525934189
+)isbn
+-\n
+)book
+-\n
+)books

PYX is a line oriented format for XML files which can be helpful + (and very efficient) when used in combination with regular line oriented + UNIX command such as sed, grep, awk.

'depyx' option is used for conversion back from PYX into + XML.

EXAMPLE (Delete all attributes). This should work really fast for + very large XML documents.

xml pyx input.xml | grep -v  "^A" | xml depyx

Output

<books>
+<book>
+<title>Atlas Shrugged</title>
+<author>Ayn Rand</author>
+<isbn>0525934189</isbn>
+</book>
+</books>

Here is an article which describes how PYX format can be used to + grep XML. http://www-106.ibm.com/developerworks/xml/library/x-matters17.html

8. Escape/Unescape special XML characters

Here is synopsis for 'xml esc' command:

xml esc --help
+XMLStarlet Toolkit: Escape special XML characters
+Usage: xml esc [<options>] [<string>]
+where <options> are
+   --help      - print usage
+   (TODO: more to be added in future)
+if <string> is missing stdin is used instead.
+
+XMLStarlet is a command line toolkit to query/edit/check/transform
+XML documents (for more information see http://xmlstar.sourceforge.net/)
+

EXAMPLE

# Escape special XML characters
+cat xml/structure.xml | xml esc
+

Input

<a1>
+  <a11>
+    <a111>
+      <a1111/>
+    </a111>
+    <a112>
+      <a1121/>
+    </a112>
+  </a11>
+  <a12/>
+  <a13>
+    <a131/>
+  </a13>
+</a1>

Output

&lt;a1&gt;
+  &lt;a11&gt;
+    &lt;a111&gt;
+      &lt;a1111/&gt;
+    &lt;/a111&gt;
+    &lt;a112&gt;
+      &lt;a1121/&gt;
+    &lt;/a112&gt;
+  &lt;/a11&gt;
+  &lt;a12/&gt;
+  &lt;a13&gt;
+    &lt;a131/&gt;
+  &lt;/a13&gt;
+&lt;/a1&gt;
+

9. List directory as XML

Here is synopsis for 'xml ls' command:

XMLStarlet Toolkit: List directory as XML
+Usage: xml ls
+Lists current directory in XML format.
+
+XMLStarlet is a command line toolkit to query/edit/check/transform
+XML documents (for more information see http://xmlstar.sourceforge.net/)
+

EXAMPLE

xml ls
+

Output

<xml>
+<d p="rwxrwxrwx" a="20050107T050740Z" m="20050107T050740Z" s="0"  n="old-resume"/>
+<f p="rw-rw-rw-" a="20050107T045941Z" m="20050107T045941Z" s="12" n="resume.2old"/>
+<f p="rw-rw-rw-" a="20050107T045924Z" m="20050107T045924Z" s="81" n="resume.xml"/>
+</xml>
+

Chapter 5. Common problems

1. Namespaces and default namespace

One of the commonly asked questions about XmlStarlet 'select' or + 'edit' options is: "Why nothing matched for my XPath expression which + seems right to me?". Common cause of these problems is not properly + defining a namespace for XPath. This chapter will show several examples + to illustrate these issues you might encounter.

For example the following XHTML document has a default namespace + declaration

<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Query Page</title>
+<meta http-equiv="Content-Style-Type" content="text/css" />
+<meta http-equiv="Content-Script-Type" content="text/javascript" />
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<meta name="robots" content="noindex,nofollow" />
+</head>
+<body>
+...
+</body>
+</html>
+

And the following (initially looking correct) query to print all + links

xml sel -t -m "//a" -c . -n 

would return nothing. The issue with this query is that it is not + addressing element <a> in the right namespace. XPath requires all + namespaces used in XPath expression be defined. So for declared + namespace <html xmlns="http://www.w3.org/1999/xhtml"> in input + XML, you have to do same for XPath (or XSLT). There is another important + detail: namespace equivalency is determined not by namespace prefix, but + by URI. See query below, which would return expected result

xml sel -N x="http://www.w3.org/1999/xhtml" -t -m "//x:a" -c . -n

Example of deleting namespace declarations.

Delete namespace declarations and all elements from non default + namespace from the following XML document:

Input (file ns2.xml)

<doc xmlns="http://www.a.com/xyz" xmlns:ns="http://www.c.com/xyz">
+  <A>test</A>
+  <B>
+    <ns:C>xyz</ns:C>
+  </B>
+</doc>
+

Command:

xml ed -N N="http://www.c.com/xyz" -d '//N:*' ns2.xml | \
+  sed -e 's/ xmlns.*=".*"//g'

Output

<doc>
+  <A>test</A>
+  <B/>
+</doc>
+

2. Special characters

Sometimes issues appear with handling of special characters, where + 'special' means in XML sence as well as in 'shell' terms. Examples below + should clear at least some of the confusions.

You should not forget about the fact that your command lines are + executed by shell and shell does substitutions of its special characters + too. So for example, one may ask:

"Why does the following query return nothing?" +

echo '<X name="foo">EEE</X>' | xml sel -t -m /X[@name='foo'] -v .

The answer lies in the way shell substitues 'foo', which simply + becomes foo before the command is run. So the correct way to write that + would be

echo '<X name="foo">EEE</X>' | xml sel -t -m "/X[@name='foo']" -v .

Another example involves XML special characters. Question: How to + search for &apos; in text nodes?

The following should help

xml sel -t -m "//line[contains(text(),&quot;'&quot;)]" -c .
+

3. Sorting

Let's take a look at XSLT produced by the following 'xml sel' + command:

# Query XML document and produce sorted text table
+xml sel -T -t -m /xml/table/rec -s D:N:- "@id" \
+   -v "concat(@id,'|',numField,'|',stringField)" -n xml/table.xml
+
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+<xsl:output omit-xml-declaration="yes" indent="no" method="text"/>
+<xsl:param name="inputFile">-</xsl:param>
+<xsl:template match="/">
+  <xsl:call-template name="t1"/>
+</xsl:template>
+<xsl:template name="t1">
+  <xsl:for-each select="/xml/table/rec">
+    <xsl:sort order="descending" data-type="number" 
+      case-order="upper-first" select="@id"/>
+    <xsl:value-of select="concat(@id,'|',numField,'|',stringField)"/>
+    <xsl:value-of select="'&#10;'"/>
+  </xsl:for-each>
+</xsl:template>
+</xsl:stylesheet>
+

-s option of 'xml sel' command controls 'order', 'data-type', and + 'case-order' attributes of <xsl:sort/> element .

4. Validation

Many questions are asked about XSD (XML schema) validation. Well, + XmlStarlet relies on libxml2 which has incomplete support for XML + schemas. Untill it is done in libxml2 it will not be in + XmlStarlet.

diff --git a/doc/xmlstarlet-ug.pdf b/doc/xmlstarlet-ug.pdf new file mode 100644 index 0000000..228e406 Binary files /dev/null and b/doc/xmlstarlet-ug.pdf differ diff --git a/doc/xmlstarlet-ug.ps b/doc/xmlstarlet-ug.ps new file mode 100644 index 0000000..174f196 --- /dev/null +++ b/doc/xmlstarlet-ug.ps @@ -0,0 +1,5030 @@ +%!PS-Adobe-3.0 +%%BoundingBox: 0 0 612 792 +%%Creator: GPL Ghostscript 905 (ps2write) +%%LanguageLevel: 2 +%%CreationDate: D:20120826125706-04'00' +%%Pages: 31 +%%EndComments +%%BeginProlog +currentfile /ASCII85Decode filter /LZWDecode filter cvx exec +J.'GP1)YJ2:a-L/6rF=&5]f",9VMV4PfsINPg$$lJV;<[.@O%03.smQ('PQ#V^%=ggiP:i9P6m1 +&e,,#6QsIUEP1^W4j%>VfmLeP21i['0XteJ5'-rMBI73qYi]MqRS:_)[:!GtMG0%^!tgdCBfAL( +FIC*'*+_5Lbn>92]]a#cSAZ&>A@c2Y\jd2S!P$:g'tTf,7oM*o%:D37/I$S.]\mgscphMRIG413 +(Z=Q;")5F8)`Qr"=NfCOoQ)ibUD`CCLE1_#S2=*J!5rCj3Lri1"+f$rI5+n6R8\*imVK6JF'6bb +K6LhRl->%^S_n48hjF.$II@,f_rC4^-LP1_'P3RLc;\MOTYp+S)1DfDO=9f_O"?+02SP(nbd7C: +,PLpub<")6Npp03rriEO8hG\t/)iPl&$ta\\RQ9Wgl-k@=tkndE8\D75lag+XU?*o2[gpEb1/4_ +BZAX`K9TgZ#@RV(1FmBR-6\B/B\N?BO_@Vr7L="T\V8$O%^;5Vik% +X'glQ&*a1@^:p3EN%"o$GpU)'[TYQ@QTSU +nut?#Tir:g;o0>'j".6sSKF-Xc[#\]9nh?)( +b\N%g59D&*:Me&:ml/dmpA&6p`Qi7t=\`/p7D08%F*.t]<`1C`Sqqum6* +.&89uifotYZKZeY4C2)8?UnK4`+=N/GJKdp#f8![+pfH4NXuJ*Ga]t831^&l@9=Q2N(T7;fdk5j +-51q_)&sA#L#[RM0o^>`HCq,iX=brZJd@)WLJoepSnHaW;jHZ0*oX:*$]*2UAuY"YS;#osg,n13 +/AH&NLq_jibAl$W_pN5YY,J2/V";SV>dCW*9R7@6!'j@)`#%q8b!)^^R;Np&NjT&!QOJq%fVlK$ +>Y[%\ULON#p>)Z^_lsM"*47!.#jO;XJsc"'/m#dH47DEKK6,B<_P4$T#b0YioA.c"+l-[6"i"Y"d)V#!jkZ&HlISi%<+8dHKt[-0g5WjWgVK")kHS)!C5'G5XOrXN]WY+ +"[VMqL\aUDH#3rY80J.;/eK-tbB^9R3^"=C;W:eY$)'Tq709G&So`6f"C`Z5_O)!Glqr%jL+:1s +?53O77Z!6g1r]7A'dBk[%H5\sL/L'&bLBjD;;O#>J;gEOpgoOAW[Z"c?4bGH05;1Zl#_CJoZd#'Q8QM]E7bf*.nNBQAs:4#8$S>60V:%meQ>e +d\=DdQmcW@)+4]Y:9jt($3emP(Bmai7?3;6Ls2Fb&X#'sADtrpEU#^m8Go?E!&'H)C-Vh&jC`"S +09T8.G6]=DfmuCAS<tO!,')\:F.:X_O:i\YdFMbGLJB^K +^KK/6kCetje-PbDH(YKm,kIS'j:G.q&l4Vi+JL[kO3WV:S"4VZ;oNWa!qh4Bb'NeE-]OTH14j2] +.[tbKp$=%$NA4\NgHDea,_n(R*#kUc%rJ6Z";"I5%3)?QTV*l:pgDUM6as'b<&(A6A/X>&Hp99W +]?l.4/lb:m2tFaH2(Ifpj_2BMcn31_*co>6QiYfq'J>KO=_;4G2 +)=A]GL%ZSPJ?"B8.JZ40<[aZ.i6IVj&QJrLW"<.JfL*`:'.W:&"CS-5@LJb@^u<$2W2X!0_nGSP +Qd*@_BQ,#+jr^u?pCRV;MB.>g**fK=mA1/W\gi<$;mib&"=14r!YLAABQ+mm:hgETXh9&n@&9fR +.YeDj6ndWFb(T9&)OHP-$:l3/#EYAk6blB1Fk,H'%*b&X^0/WjT.ZVbM3STp[)C-=j37PsW&n69MbWKZd'0 +diFq$*dK=[]Hi6n5T37n<%\4#0:=]]H71giNJ)YaM12g4be!*_g)N!> +C"O?cphCO5WHBcSe@:IT=(uV]p9(.E'9nSK`b6%gHnn'D*i`u=A#sgEd1715RdJk=\2S<<%@Y@# +CJBGg\#/BF=mbttKTMK%OAib(-kJKr_jiZ#GbM'd,;3.*_f\81bMeIE115tYNtF*p)RRtK,iTcM +H%FWo^CB/US=FQL'i@Q$p`E&06A#3Kh;PR_Kef1-Lmu3BLX";dU,j;C-uL\C3/3$!?2Mrl-E$0c2$=!MKFuN?`!er90XF)0F(N9E?D[)eR8Bmp +_O#6qUqTafo>SQQC"^='Pfe\U"0h\E'^QZ$:NHRrb=\^;j`+6Yn:Dd2_k'4'\BhALmhl(VVi]%k +fJZ,,-f6R@aOlt6h.5_%r&Ycrg=hK?m?OThF]=+Tdt`NCJ;/KK_)"7p/%WKTfs>gm@RVA#`p5ar +2;`@I%HLUMQVai4K."kOIoG$G+)-@U[O3i+LM*6N%Xc#&AI6L=]`T7;JURn,%&)=A#$n;aC6C?N +T`9P^%%sC%i.SrK9[YTfs.G)QTX"lC'RR\no5DpmaDu_0@LM+)#(XEJ."$^+^B81LQ*<<)W(`!R +;E.#nlN##cU0`I&MZ0b6g7gLQJnD@9E6CrS%SXOZ%)f@8$mm+`2IbC^`S:XdG0[2C1i-d>.Y81M +Sn@04,@[IJY:9s^EjuB/37)h5bZ#ddq[%4g#OM[#5gp"#N6/6.6]dPYY^"EOm]>opQ8"sV@Y2U7 +R_aq&[Dq&ZY`B6mrsY"N#Kk>007sb=`srZJck(`SDUptkBYt2'&!&cfkCF"WG_m"N4qPN:nAGG0 +Ns>+3Zc;o^!eQ2c$P0/C&.#M#@#ekBOB:Eg$mI).,R3^OO@@*67O)fTl%!qh(riH4jU56PW_@4O +5Qq.dDs?'f&U9(h%L!2A.]7II!6goT5Y8aW)GF0h8i3FmhMA'jR*,gqll<=N7h\6H2Y#69;9Eq; +TaT6*.O[j@Nl2EI3[LH?-o"1$OEN$,N5=TYD=FiOWh-OND%8,`4p4-WdJjGf8Im4SPmh7.&gRW8 +-qkiU%DY^i@hBYHb*`SN5=-h[?r.%M;?bK+*!>t'Ol16!q%Vt*,)*u[aB^#&Td*GfYe]EHdQj9( +RRA>N;!M71b$kMSAL2A#UG?/NCHWeSHR?Vm-O%I:9]dmHGpb@q-j&WY;Mn5%RR@dO#'-*'nsi"/ +@^:C6iXu\c9-6icp%>2#7;/E3Xe.(Nl?.0K4+S#u7 +`:L;>NUluW?s3h33]V7'0XD5t@)FcV2_q5\8&O:B5hRrP+sR)p<+*q#-d][^0/<%p0-FF)./5h' +a"jt`,BFD"XK4Gf?mLq:On0GI^u[Ncjpa,%1:(aLo//B]E%7Sn2hJRro0YP]aZ))D,h!hlV;"!d +[6'SA0h]rD!/=V6g^#AJb@'Kmn-W.QpD(tn('\hC,nW:]g6#=liJ3A*8i](s>Wr_V.kqtS_Oe*W +FKV@R`bAXC_gj^5K"p?eDDGnEb\VVWE@NS=Db?ISX$""pUi-mC"lNVkmUW8jIgY96$S6=t@,T&3 +"GpNDM6UMs!/NjsY^Zd^Iq`G1A[`7F0Ha>:DNhOJ&MkIZFY36OHm&9kX!g/)@g2qsJ0h9l@g>;: +#g/3\8sHF#,NO<<1:I?I/mudR[&G\g)%'r1,&;/Fb?B8S4%^r@Tq[5<_Sg[U@1@;D7];hi.BOjI +>fgR@?rVIh`u\H'$Reo1?IYT><:*.rlsCFq54dD9PMJI"^cdn^a)^/lW%pgn[`Do`!2]-^<;f;E +:_.)AEG!]K.>A?Y_bg"G[M8(%+T#*30,%g[$:XAZ.E'5HX:5NJr="H'Oe4-O=RQC`%5.?TVYqa& +Ij=%U-'DOc;21ir[k3-W1U6s%A3a:P(hEhH!C44dBK6V/pJc/Qj9G3[2*W06j]#lgQ>(*jl_c4S +hb-WZ?W8SqX>*H7^c.1_L-e(le4S\@j2AX-;)G8R'2teT8jKM&Z +HXY-6$O=9e$DU'#?V.O9LuR^J5b*mEn9kK.&#\=m8P0>EnER9!=Hq]26H*:YoPI.U\ZkL9+NAl8 +!m1.nDO,N(Y*?$]+>^HdCN:jECj0YPG?uV*b4SNli2&o-ChG0/;s]iOK#^D^@od-T8)Q[MFd#m! +o,/:Q1l7mC$G$\sP0pH#4r'PilGkE_W!4!=/M^a=2*GNf0QrC7%9C3"<@.kc(s:oE#GnkH2Lm,t +KU:30"kP(15eg"dHYSYA$-!is;.!dX9'kN>tJ's6koH52^6]qj[YWkD+1lh[Vu],F_TH:mqQl![UEcbpZoa*2na`W&BI^JEL6J/S`n0CfLC@'f.Pq +W./s?<'i0BYR7.LEu8_+*)``TOLB$TGdVND8f2,@Jh`3/:'`*BYA@:$d6if2]JHRgMaJD*euiGk +gDG14Z4SmPo%\UHoM<"F7QBl^-)B!8:0UBWC_ub8@#!fRJ&<&fPS7g2K^G_?ZG:Djl=a^pjj)dAO#DZ*E,F\itie +SRIcMKfWq4K9'8,$Y1W"$_gP="TXrW1RXZ,dY6cZH)$g=-M3?Ok#r:<7Id'3nY(89I08/s#8qr" +@[YoA> +O9iYSSPJC=gHu%-H3oH#Pdt)-,:Wt,L'YmB#[igU!0#,@@+$0P$A&Gj]6==[AhXfE!tha^!.q6V +Bs4;j5$Hj1>EWlVft!,:6+ZT;9*g7Ad\%N/FG5Kl`T9K:C2VW^PG"hW@-P7ks%$mQFLX!:2X;s< +r=f=ks&l!>T]AlF]Vle,Bf3D)H&eQ&Li8LrL"%/tebH@*-,+/CW`ZI;j5ms7V6A50]p>^])remA +4+la@^7,Y@47U'igUm@[NTu-9AG[Km:b*-96ao&dHaR:p"+;"?D>ZDSFu6V>B5m%/'3([C<11;\ +SPi"cMhIIH]&fd"l(PW;=*W=KV9tVh^8nl2\pPm9\bE]0'-@3]GiD]W>a:M;adoqD>du]7=[o^l +AX0A%Sf)%(Gb(.q:R:-5b#MHb_i:?moaNp6G.@U=2W:#?$Z3G1;n5S)06668`70gqW'(UomrmK' +9X.^!aumd2J=`eenifD41iIuF\W*]%_KL^ZT/i1jNjse:(rGiV)A(;Blm_ha7,Pi&j.t$m-O2!?SmNP15b;rS?.nM@@/2hCIn\%k#QT +pBn?j[#Kp:Oh8Uim@tsA1VE8%)18>:cc7RYkEKQ$]trnMo?"A0I_"pk5+%_gL]u*6_oB%:iu1n'^[nI3%,:^k3I>SfD`V\8VdH3=5WWFj8ATX^CjgIk(RK'-AB!4W1T +>B6^(;?[aTe5EJ)u4N?oAK/0"Zi7iWU2n#6_M:L6@)/& +MfrVj"[)c,#D%.;hJP@dN@)Ol;"AQ\L^`EETY+TB3?4%A+T[hsAMJdtVSd\li!P%O:6Dm!N6i\, +*DVb"&Z"2m&/bnRBebogF#k;"VA!VkpG/13V\>bLidj.b`@Nb_YT6e +W`:C1.J>6R8qT)`$d%NU<-[YD1R_ss,KrJ"+FZ_D\N+V[_(dKbd)iV.&BnYP_'G4ng +;jkkXG))Io-US/k$QG]T9P1O6KKsW96h&es2Rd!8RN3Tm$3l=MBnD7s0hAZ\2&qZJ0N`t/??gQJ +6=Jmd5a4l0-]tnb1T?6D$6i!"o77-/fsj$DN5ic7bgGK,iZVGl+f*,"e*:Vq=hNlkCcRL8@ltr! +M2:j\%\nW53$a%T@bW6.i`)3p+s>_i%IJ1L1STs&!Od'N7`mMRe0asg<^>p_/G_df)@ecQ:#bhT\a289UN]@LmJC+-" +D;`PQM'HufhSeDh69,K"_YB@UBTjd8c4YFs-B,-q_BBB[MB\;'j*8G17:D]-S5(Vcc4Ei&4' +ZM<38NK">'7"qjc0ba`mS$to(T`mP:6:l#\0i\3Per)_1W*U8H!kd5I0(cFt23#LumPds>!61b[ +PVQL,,RPs>jerG=i?K]PZfs8HFfQrr%X$uQ4X'M&_.+ath)bU9oi4M5;s<4D:fLOfcimjc*@!Q%\:l(3@W'o;+l;62o6m_qii9&[ +.bod8fBIC::gZbMK;,E;VrG\N(2E9[[>$JsbS2Mspnp4pW16*qiCB["ng5Df5P5=l+Vo['<*X@s"ft-:9BRCn; +>:nr_4lbjE1N3kQ>WGgjSjP>/6VL6"MJ.W;ga1'm'fp)5Uea+jOMs#9%Xf+[OtU<+;B'ThO2$Mq +#tlD8_;?)Fn,s"tBqtW6+5/E`A%5!9Acr*(CSlI0:(sUT$"tr7&S>H +FN:2m'adpGQo>QJM@b=&!PhYgBe[('_cPXA6+cH;Yhe\'kK$M&CI:CI!DitW:B$+"+B5R)pR(07 +UCq%#Ki&I;5K'Zp[t,UkGpn$Q_?p8FDQP&hsk)E?kd0 +2GI(hKLL[_V(oc?8e,NU#_@XaL=-EhV7Jg#Ep1^ZiaEq+7*6Y$11s;]gj$o`4bH/"*&Mn&:8G3* +"nO')#D,jl$$e7=$(No.eG/Q.`7GE4:ca^6joVHZ8IfQWIo$B>4_JcESdEJq,W(C<;7s\KZP93u +@L,8[k[g0g5%q`gEA^ADr0o73N0&+S7qVta,>?*t\9GtSBG(RroP!G"_Ao)?Zf?sbe/+Fi%8"Ef +(^sit<%XEs[g;9USk(Vo\&0P(5t*/rC6Z/hC08\-3f@X)i&:^X;Aqo9E$80>4qh>p7#h;b,4ghm +^U[Q*i)Fs$A>5(3UInsl)9GO024g-hj"M\3&9FR?3>;t/Q@H.U`)f,_$)3jJW@WMM\T9, +F#0k17[ZjB[pY<^b?h?[J>2YD*=-EX0=.e%fIAgT%>0dgO4q@CdZbJ6EFT9[TeI?&B.92$m[eX&p&M/cCOfFfHZkh>ht,*DmVU8u+j#F&>Gt/X<3%9; +*#&Rl@>-=j/SLD,T]0bG@dug5Q4&S[0"UsXjtS3k<[]u>Z:r:G-$#>+0^o9gd_&%(S;_!-]QnJL+,!b+CFGY!nR_PZ_3C7WI7DR[-&M(;gfI).l7+9`3.<@+/Q*c@_LJertdH +KUIC`VtCCl;j!=Z&PI7b/bM,.[adLZm6+a8J0<@$cIa-@a03Q\16md$-*-s5WSo%Q +,)B5,Tq&/41:rhsOWRjLl+TH(q&[a0(^4M:m?s'q9[,G(Vj4hgIdA\TYnN7fa_#E0REI]%%\53) +4g#ZEjtCooha7rl(r(\9;^lPe*L3qJ26^7/FqL7XX]s(\bdj?dGAPm9@hscA5H6C:^Z8RNm1Y]pM'D(kSr&n3!HJD,X+06+S3e&CcanHgtdp&N$p-t7&a +IR[e_E@d;'D7X0Tb]q;\<52;?M4hM1$GMiW) +qqXKchEIZC);s/"GhJ"uc+Qq4K,>C+i&ae%eVdMfX)(d@cEn4Fr.X/O8_Q +8FR-$nddIr$"/Vl#WN*/RZ?V'.Pdp(],@UC`K'af.nDE\aIt.n0,"@@!uWj.aYT,P21o9d#iI`W +BfhOeZ9'lg*\8U(A1&%84@1IG\gY$S3T:W5-)ZDHPCtLi===8todS@OT&@>8E&s@O31e:e3O",s +Yu?MUJ"$,$Qm6PsY*g_[IlUF>=::eAFC*_caU5F6GKcMEJMp]gL)S +18TM!W/X\,ZR[nl8B$4TQUM2"U%l_2C)b7sdPU[XVK:!H, +O;PK[Z@Qu4)X'$[ps:GY2ZhVM1<:8`5`p\'M`aom5bhO3)LJC(9W-m&`5!V9%%0K"KIsMJ4Kp0R +Y_kuY)hO_C-i2LU$9LC%LT1c=a=N4k(ko(sN$k]d$*9.Xo5)MWOh;s'"+6=>6Z&ae`Q;S>X6b?I +i55jT(C;3>4Btht."a\h)N8aqW4]KiKXJ-#[Y[B0a>fUp0Zes_]VFs8!N6n;KXj`0R`e'pLp5`l +-n0to!f8[CWu/t]/;Yb=Lb&fSLq#.,db6+[#7u"%SLdnr.$hmKN/Dj*PDm_JE%;M]J'A\Q$f':% +]"inp36ePS'j?NQ/DNZrntd97VB?]"GkD.fV9L"*JHXkr!fP>\fRX1h:.%,GI*)d!bK^^s%SYsl +gu$&S1't>PRTe1br9p"Xh@JP+M&;E$m,et?n4sbN""=IC)%qumm\mB,-^Zrt\>$3:/-0E(&lCLs +@)3.AJ=)#bSSIJA(c)Vhq33o%Z&6=mfU)c>)1e%PU:@n$iU;Vjq\'ZL/Zer&Zk]e&e^"[/0#\(B +H4!Lnld*qS!H\d1&2=GeU:%hF`3B2.]YKg/i5Jr`[;5+_K(6&V&5j[&\^:OE;=d'/++lPi)D&0c +fb[MY[Y^F?K+/d&!\[4F.%asG!*(Qa2&di=^-eS<';.?$EA)rYC]^gf["1n$&\EU.V1Z!1M?ILC +$F)`&Od]EO;9?5p!ot&<*!kL\4o+d#1(=q?0[bYBROPHuEDtA-58@"V0^57Z-o+^\14nm,JH\28 +jZ88WCAu_R8Q9u0X:7uU +2.A#>p=9*oO;NsK)*q+K#+kTJ_g:@oUW1HASb;b&Z/p<9h&.qMk#<1,RtkFLG2BK3'ia^*#?f +?o3K][hG,cZ2u`"3W=tXl]#ah%+TF%1u6Y(P1MPp*rR<;#o)']*eU`AS8'Y'[<9O)2^PfLdYpW*qUf6WHX'pa\nF"g.N`4^-m&37&0UE(qR!qjiUPTOUqDL>4(D+1%rs9qdV2cb[ePH^&$bP4&&fV6d$hqaL%?UYTa2=a_FKJ_&^9oNe[Z!C2bl +"nu=ADRFE/^+e]'G4A9+6Fj' +92&ot9SQ>9.&C2\.u;8(OObB`em+0:*#Cd(K/E=7*ZSXJ-jbe5f;\!8IU@_0+Tog@.Q1_t +.@c#KA"#LA$0?7[%V&I%A,umQe:)Aq[.S"TD(Nk)rkZ:gN3gA_(0e3BZQ>B5'qHLkqeiSSk4n0/'K'C"USk +As9@"5p,Ni;N;8@Y)K.Fa(bg-B`=&j5)G+KTE&#fC=Q$nAmL]$?L'MIB6LH2ZU.uY)lk,>Af>Aq +Xn$2)V(<`MB!=D[-1>,JV:O-5FC-(FIfEH/3&8l[OdRg[N[RNFR1='SL\chrs +JJV"ic"G*I7>:r&/QgZ=ONZC!/7(GKp-$_eVn&A8A+Q,'(`;%&$mDH6m@>rY`?<8@BF1o`+#!ji +)CQS;3/P*u@0&p$rumF0Cn3rf_Q\,#tJeH\Ot!m:gZ)I,t%9D*-7.QA4!&3 +X0Q_FFA:NK4sek=i1-`i7\fXnFLM[<+?";;8b;ck&9hS_7mltVP[.^LoM8T=T13ug0(_A!=qpl, +V`UBX1lL7'g)!GXL&gr9-JomBoKGHLQZZ&/o(B[:o#7JK1+]+G5j.Il!C<^NmR*+Bd:!+,n)0%@ +FmL_e1e`Ha@qU!r:O%_P.I3'VCSs6nXs\>-+G.,G'1lQ(SPVT="=GXi*LIcHTI#4)#_8golP5]9V6ArL4a1IS$^;]giF6V@i0NtSY:p=Hep@&&&dfTa*\@KSSF)\ +,2,iS\!Vrh'd6Kf<=/C`<"V\:f4DMhj_^!,^8.\tfYBEesEkUlH;PSD5J@u'E:P0P] +&'#>BaCN)\nrcm7s5c81RIE\OK[\B*7,Y,_35V294HJZ-I)a>j[-RL4\Pb'N^1MF.)o,)ARaNkC&Vb$(./0\FG\ +LTM4\d0rS,(aGin8DH50blGmA.R6o&XfJ.CE?,HBjF!&uM">)dY,f.:]ZH.s1cRT9%10mlt303MZDHiNl*?BMPBQ[BV%a)#^[RPl]B+J +2i5oHe>OMjC:q/nK3ot*mKet9MPGc0o/^^OhE!GDgpJB7%=$>^ZtW)./rig0:_e[96Z1Q+m,Y3. +=4Ct*4@Y2^?J;[e>^eiW6$uS:Nf*Eh19Vp&5"^6PDX_]P(.PYh?b([`Q +gp]=!FX?g!"M%gIGia1_m#C=scQa\P_D'2%!la'?.-"!\!I3NVhbigqN&F[Bkg/G$'DO +[2KNKUt@S,r6Vs6NL%FD +KF;bXf5h3>0na8o)B(X[D_C$/oWi=[bQ1WQ@Fn7&7='qI"!m*Z2%::3,IBWC@orKN:E]b]F+iZ; +cJ.2q`f/l+&i)`k%Wa3HS>ETOGlIH0@8BoNAHrO@13PCe[SkU*N?OG7LGqJ^h%9p7J1-C/pTe@o +Qnel=fRaZFk-pB0*suH+_R/to'a'V]@84lI!sh*)MA +OmAeJhXH]0L60cM[E2LKSR78[!E*W28cq'HhFqKQB,UUYA=!uURg;"#YW9S`rp&D]7!*Cu90i7r +6,6Bb3"Mi6[+Ns!fR\'$^9>@Od_A/W[J_%?uIn3Ft0G`hJsF=o0;2-0W4UqqbNSt +5ca*3KsQAdNtK>;iNP(9[P2V?#^`L_%\fOn#?!$KnVlU>@D-^lK +&j9CMAQ:99S1`@0aC)#28LuJp\#'^?Rq?,JGk6JLQ5VZ8X)N+ca1O=ZnCLU!'jWL.9"NYWcI=7g +S$BBHWRkbRGWd6:Z.VKE_?t0R\Q@*nKb2*@qHhr_Y#bW9U/m_@f;r^Cl+R]T;hI'I +Uu`$01#YM6gjCDNZ'MO&"&":qb%hVq,&9J=fN[eF=]g#MFQ/imH?^/RnV1CNb-*@#9j#:JAOBIl +elq!=C]O]d[T3,`1iV_!V^Q@rM"L2!B*u'u(hKq[*&lN?*#d&@,/f5*'8B1Y)d-HM2%L&ec9c5m +-M-cKVPO[5b5ee"WYg=[clN;->`^#Z4TkcW*ig(#oRKad#Jg3cjKnlM6`'cWCa%]IFL$hY"6+-V +U@Lq9UlH)RA<"X>1l#O\e_;Te03ODGhj*D3El=?cakg^"*5kQAdPpI@dH=cX6Q6*9qf +B<_N@d5$-XBX/]-'DOjBiCoFM+G(V$``/RAE=UM,8VF;/Vo#m?$kYPPC93]W.RsUc#5d$k)E&P; +m3FHoZ_nVCZGd7\+(+AD`NhC$2.smT!Q^e[-)[5JQ-`hGY[\Uj92a$+X_(MJa?7r*^`[I@\0cmb +c(1=^gK1NI^F05uGIB8T:[/(FW'n'm2I53.2h_n[/!4k@L0%I1:oKNparJ;:3t<#8-Srd*DtlK4 +bIf5Z=F`XR;USkr]Mj_j2;:6W9dtF#k]YS/Oh*PHrHsI_8NDqS2V3@0L*OKiGlm?) +&<5:^<^#%U@*C)1mg#ND^JZ#HAQ)9D%\X9L7o'8dZV?e)IUEqOkp\1hF7>7VCs-lCV4amMK+3hM +_:+RrjtCb+;kTYEZC#,m**lq>dGJ[Fl.l5*lL(pK-YE0($s@=""ou4H&Zma+FDd01nuk@UD`W$d +cP\A6a+tJpe*=$,XXtU/2u>7m<'HYJ-_B5I-(eQdrSP:8YEMI'O,r"ja**pBVJUTI?-@SaI5Muo +0)0J:&V^C&*/Yf>$&\/g^cYYKpk[`5k$E&Aqh:P +9ro[3MN,m],3cO_V3\h_hO@.he;]X]NL!^VUgZ[.IHL=696`A9KXd+c2WqT0"LA;M_!`t/1QWZ] +U\o#HBI#&X"HQ1YBX\$sMRr%SD*gAeMomVJ/qZtU64_*j@:DIY=@o?G-T`_^5A_POA$aR4cc%Of`op7Ms8e4la,NCq^f;[KTc"mo"( +;(*W*&`?oV!mhHsU6)CD!CIcfaYK),:^kRdDG8.eC8^tN:F!$ +&^_J+ruFu<+@uq];;WM8=q5Pe+\as?Z-+<\h]b^2+lL@DJDaHsW'?!S>,i'm_g7Y9Y'2,5cTp+n +Cp[qjfR_*dCSngn`_pQ6@[EtS%UbA)@(m+YoU/.)..WWPOgtGpZ6iHT"nGIu1/nHC^(,\3FXYKa +@lT/TXXb$k$g^Rj,b$>-5_9Vq&MfIu"iN4\cR,=H-K&5Zi0M*T:+I`5;J7%JTG9+8p7eD':%ASe +@QcFt>8KsAFN%RLnoQq.OY#QH/.`Lg1>8'mo.Dg-jDi;Wu_1lq$^p$fK;: ++G2H/CG\qt%-sPr!72,:>:kA?#,#R`F*SXeC('3b#k.V-F,3DoPrDEn";/0eniJ!B?R7Kt$fb_J +i86?\A0iM0LZ%Bu,!.iKZT?R>V4^(J'14gd[li-I432q(k,on9j:<`g`*s<%d<#C[kV"]_%H,G= +aoEZ$P!HlV$1n6`8B!TQZ@,Zd4r\%,s/8L11i+C9E"(6=7+?KJ +Pj/9L.7\M3#`#'hbm]fTH;\g@2WA"215-Mt&rND@2$[tue58/IA;nU@Qu(Y]2.9QuVRe%A+DUoR +K/Z7k4]jL]=E9.d!#,Wljs7a[2)Rd=_b^d2kV1Ia:DCB$TOJ+ic7.eQ>-h,sj#^IEapsU#-KD*Q +8An"B(LAi>0*;Um8cg`t\sZ+Z??N_77s-\BhC-qS?D,@CkPc^2FQA_5?`='6ecR8;N]OTmH$0g@ +FI?KYX^U'-LD99k:X=!Kh,,;9eX,8OlE2\Skd3f\io2bn(#[Z4`+6oqAaF>kja&)0L9KI\t%2i+A4 +TO7t%`aU&qFeT%`EgS76FY%^0F2q6<=+P3ZZ$+45>pk\=`/cZTRdh2U,<(H$F&QgmPBmqN25c+* +GFNdmPC"GHH)J,RjQ/-l`,3uBGTc<64s!>Fk<.,q&_N/)Q'S>931:]d6O2JnJMU[l:XC3$e-f[Xj;+*!Xl?3"ADFQA'GsN-A>6,kg>5 +(J(FB@?9%'65\c6.r,^baA,dXI:hY#p,%,=`EcL-R56uLedm[`fn4C?FS:QPJh]8G!H`C2Nu#-G +f`-#<&Wi+b;KrS/2V'3R4d%e4+k@Z$GfU*8EgXB"6FcEBi5m_iR7.ieimAa'&8 +e\@GO90;o)08n[on[U-te!f20J\sN$=@6+]*[=h&<@>`&tG%`1WLL-WOL+TlO0jO'd7:PW&UV._!o^s/_(4.MIE;R1El +;LE8tOXN)CP8Z^F%(i%XZCPl@E5g(H/>[i:+#[k_QV2MGa*%\rR10W6\ +HIclcg.l,.U.6$%+H*Bfa0("8#l5>CQ?40rqZ+C[QZELD2a00h68%R0T +qUr,]bHC^#ZTADof#Oonca(.uW>a6mq_b`'or]6:Z5X+D64]cE.A=W[U(R;K^qSk\@jsce/gjgn +%d\&@KQU#Ap*dLs7&M7%B6qEfF>[_i;c%=VE`J1`((t`4P[u%JCS!Eh[n@=BV&-WP3)^cO\&bPY +dFoktU]%)^*]$3,-":mROeG7JK-#PND$"Yb +@#m_\E\pe5*trb\Q;aVJ#7*#Jln+hq3R\3Np6U(PQ-&-bp\.FN*`mT66r?Pt!E$XgR4 +I.MaZhBoo,[oQ1J)Sp`QZd#mhc0DGgK<*DL^lLIc9@g`&GPdeN?u>2de/++:,i/`=;3S[4X;n5i +e5=_jGZ]h]7rp2,h%aZ,K?'L1a;fkP[L7N8Rl?c"fQW=H`D/p/@FiAXf,D!+cK3RK?oOX>rPqTk +ki0Zurfc,L=5A#QL==gj>Wnemi4>Vcl<6TD?ee$@Oorg"\Wj7EuU>f?i9NS]OG>4lpR\e"9:[j +?D7Q&mPaP=/ilR?LrsM0b/l6j^#2]4+AQ;ZXA&h'cuM4pYU@$,5Y#-"QTj*(3l^UA30r>IT^U*f +0#cc(0[mRlbe0_rSBM+UkQZFap0A1WRplksAds*&XVcM0`JI8%Ml[rg?bM]7I#;3Wh7Yr/HG$,7 +iigZg+[lMe"9R]2,BR_d<[H1HA(a,2#^iaqP9nY>$@#hWfY +h".>3pSAeapV/6!Pe!,_U%/1["e'c)4[#iQCT*AZl\M735S`t,?:S0i`,PCE!d"1N,$_]0+Tm=KXF:]COVScdiHp0;'9[I:3PeprlNWDY[]Ohpt +3Zc+,dg=+H-mY:BB2^OPdUP,%:!fXYK]lhU)GS'NTqKON3LqDWd;Ymf0/B&X7e;^lb'5\/_+2sJ +<;L'q)$CO2W4kJ7(lb;qUP1&4)lQ_p@KF8rZue%R"Cl/XW+=+kdBd?@ufE@ +-X.Uos'lY$"rU8=ig_.5AMV]_((.NVMIH%M0pS!hBYLRb)AYL24'SD8=qBn-:NL'1H7WRa!2]TtI'#1n>(&o61h1<%8S-k;l_[_ZM]_:4TCY +jBq3G*50l%]AS5uUHh((%^2oqK0B>ZN%#.o+GqLOa"U[Ml3fHBZdP_N.,,R;n@00gp7;fI" +NeT";#cO^H&D/q#@p"DN%*Dh.`$g_kFWAMuE6b)q9h]4U`mM^.2D&hcXGXgrm(j]n6%Tk-Ukpj' +PpMVD@[X*nl>W:AM=Q1j.#>[n.C1_7]^S$Z,Kup^.U&;@/WkXhX,Nf`h!;2H)tG\Ao-.NtL6Sc& +2nLIop@g^:TY`ETU*.mBN+8TP4L&j))$`J>PUToI[Io)Z=GiZ03CLaratn`+I/!jL+f`,@TiTgk +Sk`$2=OTP_u5Tei+&u\p>h96`P_f%jQ[X4"4[/au<9L;OG\;6N^gG\q,UTH\ZU8K +>q$tN(C%_FN$fh038LQp#I)uF%tkje3@:DBr*ukoK:I@^=7qg$1Utn6F+0p/]au?Hk\@Z:bm=L% +T2mpo8"D,SR)V3Min.foU1;1nG.1CX'uDJAmUO2bdK^f1nf/u%0#9SSRAX3c?pHHeEARS1`+*m^ +'C,8-'HZT(Wsh1dpccp:]pQ28X/hl3>:gW+\GTX,njs0oi8CBK?Qg.\OY">%O2$g)\G9 +NnAM,Z-feAp*SY.%K3$o$u%PC4m?:F4/`<)+K=r@1!S&5g];ob*56)___<>VZ9V&S%#9IXaK^YT +gg)S4c7J/4&Dg8#;8aW3WUbAcOQ3B)-`u0Z,QN4QTHH\]U&6.6-Gpu/WbX$-f.IjH<)=/u;eLLQ +SiBE^TZYZ7NpZcq#!22*F$3f@24tc[Cs38\6O[d>NAF'ko94G%L[)Qa[+H4L)O*of-tTSKKcLoG +FA7ZiJVfK,M&2oi:F(d2auG//WLR^.Ei#VR\)`'2_iS:paSZT/8-GJ$g&s[dIEE,,)B0A8A4J*Y +r;m3O*"f!)5nZ&m-\SkMSi[TTC=s_"eF*AM&8t+"_:]EQlAXe$oDqj):QXZ,Jg@FIP40qN4\uj` +?4N +4LY@sKd!$90:??]V1c^!S.HZ;/*H%(+3/IgTtD=sTRoVXOsV0H@W*X_&2H@^!^UH%:(6NLE._Of +%Djt5U(S%^95#I>="J'>U#;P9q1;=Q(il"F[2U3%@5T>fqNV?2EQBuq+oqbROD.[W.qf#5#^hr, +Pi3Yge8I2b[+85cQ>%^mI]@,l6`8'2TM:9N*RZ4=HB*4a"Rs?)8`FMA`9!#YP+OP[F=MuY!^9Oq +(6BOBE(&")Xp.sO3S>k:;io93)XnJESJ$0Bl"U)XH00Tam.[*5jT*B4,n$:qJ3`M'1Ou@PXq9'! +:s7c2"?'9eaAHAjNe-ed,a28lCO9LtQ+npWgi.?b@^nq9D*!JRBhFK=@!D?H8&%k5`;lUQpF82gjimKHYk.WK<0#FL11jOc< +Zj+1Ooq^B)RM\C/;@V]S2d_6qI99K9I5+F/T)=M/nk1LTJY+;c8l7$9S7I`'et/Y\X-,5==Xc@I +pLTfWbUteP<2SD*jar.E-P=Z*!s$2>k#@iqA)5D!f(P^kb)c*=SdVZX]KH`Zf%rI1IHF,GlL*!SLc +G7W+A6qJo:BPCY.6"it%Sm1oT.^_0PA'(RQ6`,CeFur$foUE&VlE+bP`&>FSbI08SM@OjqmbWrB +\MlFCN&NnV`i0u8clOX/G?Y$^OBgO4nh`&B@_c(/,XSku?]_Q7Or''%]l[TTZ[n#:i0mq[B\&8t +l!fjS=SG9NIf1Nrs,If\2c'(?W(b__Cn&@Q:667V4rZ"nf^40qOs@EUfD>(+\u!#0(?O%m_JroG +=.`K>n)1jqj&HoMdKiSI[q1&@jk#=g?8@(qcjKALGT-bAA0cnbRM460l+lJ`*d*;UWPL4)"_-I6 +7kh,m8N03L<9tpt:tg1^MZ;Pr`&`PC_FI^R0/!pY2?oi()6Pfb8I?N9Z)OnICF'Td8U??]jP69% +[3e^tHC([_K;TDF6*HZAHmF8]XOCb1Ee0T;&h>0#$"&uF"O##g%ldA_ns7h?LXClQ9&E7s1"l=nQW[.VS*T-Jtmq4.a^I@(nAaFWY$g9nT1?rWMb:MJT:WRO]+=s%Q]t5 +OXN0r"$70"=JD:^/ZE'l/#Ts$"[M%!5l10t!Yr!K:Q>5qK3;miUNa15AO2tE[4+b#P;k@43Oegn$ +MV3Ib)1;gJ."`rb2k#I;KL$$F(lCrY!i%XjOXnjibo`)36$*,_W=Ods!OFMG`8PZ(l$4(u;6C=*`/=8R1!R%5)8^/D +1$!0RUH,YCDR75f`&g(M1c72h=Y`Wo3X^$_+?W*A?q'-P6k!GB$a%5j77:Pn7RUf"aI5D6)1ccn +JS:.$:mQpI&-KF!&MPG^5_OcW0p(la#Z*UEnJ-isnVRmL!uR]-!3Ru[Ko[r(\r)2m*)DokF"^_Z +X/'](kcVE^<_";Q7l5`Yk'5J_l;(_@N6@j)dV +L`(Ym!'60[1EINh/o6gg'%"&^5S<%J+DcACYRgin*\VcfV:u86$B?uR=#M=E&J5Wr*&S$HBY\%# +]6kF'MJ\M!'F9Y`\hNLR)?'^d.j*dL0d6Q2$nS@*8@[qKV^d6",B++e.Em&aJd=@f=HZ@YX-)Je +3/Y;1$`uT"5J<<.'n"D&K[PK4-T"+L\$M+!0G^0'"WV#B,b-k?1&WF13au7',gY*tcfgm_'f-cQ.(`0$ +,Y\EA;O8@I_nJL?1eWTP",JWbq6\raN;LKn"Q%WQW]1Y@-W1FMI5"H^0g`Nr4`(U))qtJ!1t+cj +[6ol`X,Bs1END5+J5Fi^Lki@J4IrlH3nlUpI7M]p/C^1LbhB?CYq.2!51RTt0[^sr_P'n&A)GQe()_/q;7_>+b%sr1@F=IQe;\%()ViOg,YR[Wch06D'fdKP5#20^ +eVT#(OJ[XI08%)cc.K@S,:f"DB"292Jg9\Mj[CkSP(Q:g$4952YQY*^RSIt5#p;B^7'TeVSsMDP +;IM:'"`r$8ZCNReVJ%RaF0Yo3V%-/!!)[ad4C+)l]c1oR^N5a:X*iS_kY8_=!ckkNPP1?^:"aco +:'B_n]g^N6+Tl[:di6ch&AQmC900l5$NdUp[@'`7don`>fd2b!7B4md0@t%aQ^+Q"3tfd8_:W0? +fS-"s/W*U[pWs1udljV\7AnenrEAfn!C`%V743mkUqfjC"2o^Z,9i;4SIk$>K.)^MMuc0<(kH@Y +M.nH&SRi,k*D;m3\h/&\26DLM-s(sIK+L)/O_tHg'O8W%'+N5ln0&S._Uh(lgoqUN*R03gc@\-G +9`9`PIF?r2cX!Bt=NtsDD9Q(,0\;C'%lf_Qde$iGn5k>&fTjs=D)a$@3P1K91bF;?Uu&W/3M7YC +e'!-Cp]XtacQt9@h7,2q2:%B4e#@:'$;Gl!E01O%>cg)+Odo8g;l`6))4Vn9UOX04\fG^"UD72E@_cr$1VK +Ze62(K^R_$0&I?d:#uR!+O=C@aB^+`?-V&_`UuB2"k3D,&l&(PIJ8Tr&EE0c:pr^OSO-eKJf[0= +@cGicb*'h0<*T#:g]4#&'mNt4jU)I8'VIAcBTn'/NB7$DX.@?EHMA9[n=ORYjB^nG/B1t3*NNEe +MPMaO,15OD0YscsXtE!^DIj`_10DHee!V'!`Tl)+N3J"(M_s$\fS?N`n',E^W>h0VQ3QFA!`VhR +:)-SbYb^EtNojf^@g*FG4!!L-tm;Q[n.9BM!-]Wf]/q)Vb([,rg)(BAfj&Ueb6`@g( +:tm_%PN2b#Ooe3;,[.nB"Ms=C8_+59/Nq\$pl'frN"Tg_WL/h]>AgO[qlH"I^X5N-ZgL'o?5R2T +[d^@E);621f;g&G!L!F0+lTLdVN#_5bkRubLbF=@)?T]r$`ruPqZBQ_`eZO>K-ltp*fU.s=d(P; +Je7I)RW]0[&8Psi!e@-52N4qp2DB,t8s+t]LpsHKB^1n]Uc+^"%\18.b%]nZ^YYTqhOrYYU-1LR +dD]d_r=P1SYRO>i3I,qRG./AEc`h+GC>e8Si_A]A5EJ,HlVTIRR/cKD[tp`QRGcJY)qjNeQODZ^ +RdObnk^pK3h._V3&S1R<3iQmAhAGn^BMNH9I0<-p5e\WXB*(SrrBb314CI0t-n-9jD$GV*QPp_: +PJP+Bj"A_IakIXH7&!^5^mtS!iW0#qDkje/T%NA0;K%]9Og(YL:>u^YmNfW=;nC85aYO>6 +BHjEQ8V,`N\5u=hU\_C_,#iH\HQe-%DH!!`iuPCY@*jo\Mbpkf@9.8p7$?B"'K7>5O*p-\G!TrPe +!*$00>1d,&o3q,BlQJ'[>R3"i&F[WNDiu.4?N"l#O,Y$=m]D+$H&Qg1kDMOok7,)b0V,nCM0$fT +F+4\e/h]2DrrYpI^n0+mG.7fT6&klpMLS3=R1StgqH+Ku5ad`*j"?c4Q1$(ilo$QTmYPP?*^9W_ +o.1"_80if>-Ni!CstUE +FVd6c2*(b_-\IS2_MN`YSoHI<(,_%[P2QpkMcV=rY%eWT9$!Zi++Yg)7RjE71!-&3-S"jJ241:; +oh-4)[7@cYHN@S]P>6.d +e`rWVa1Z5ACD+EHqrpBCrP%A%_iD)MPAV]F5I``2EHe%H-28?g=:bM`E8Hl&k[hs6*^tX9)F;tS +nt/sCV7o8lfb,mp-28C,^YI7%h=k+Kq3@Y!m<\c3$@&ZXKAMX/0C7;7U&uL0%SjaeUQ4c'Pl:W+ +UM.FB2ia$B>CTC9q4I2+#jQnaMV2\?h%e!g8:VRG!g>(k`b6%l%4:j<0&B9OOX[Yhj:X9+4:RFD/a,1BN9kA#ZuXF>TK3`C"o;8n/_I!Cs@k5_qlY +(W_8-&QFfb'Mg++$5F24DkmdFJc_'fgh20K?tTS+dN2p[S-AUj4:9IH*fjleRE`V0:H;.p;A33C +hKQQKjX*#r`'A2qedA`d)5\VlMT+U""#T_$5rT&VLQdAs?m*6mKEF44kkfb@hek1^RF(#+0Ula/ +)'O\)-p1+Q=6lEGclfrV,'J%$TL"#<%&F1I@DZFrX_6t,=uh!"0ZRYaPg5DeaD!_Z1Y'ViEl$TL +BRF"T0pL=31Cp++9HQB8)gJu#Crb/=5*5Uuh"0asg*9@lRkc`f*4CU)oCNlD?/*G6Z.OP1<7fF +e?-fLqSM/:;H0%[!E!7c26/JNKK4\f]U%_LK6)JqN^Gekb`7l4fS^ooJg?3taMKco,KU!TOsJJm +n,7.]JZTRQ%UnAK*]FO+K.7cD+otS +/iZR8+uI=aEC;iGNh^*8D`S\Gh,.GOH_!n?:Daed?OhM9G2CX)6%7ZM"mLSF%?4cnO/^K^1q+qL +YQ\8K%P)NG(Fh6X#2uXnF[pYA"+oBR2?e!Tj/qo?JQTn5Dre`j>T!`jp_4ML)"pCNaS,<@Q=$%[ +rK,qT7M2>)R>'t!YF&W1qr*CYMDbor8DsDM2Vp$fA^13iO_DS(6(R)iXpGTFj'_*9VA^MrU7feT +3KHZ,G0#YZ>HW=;j`q%6)=-LCp5OObdKTdrC%[HmW$Rmu +WN/5b#kt-K_9UrUmQ>YcHLgl4)Ae5TE9r_5>+VdqN4h/IeSH7DPFc`G(MDQGK.)H&_n"=u*-$V? +=-<")[S/]A,Ea.ep0AJXr!7a`M0F)+SrM^k3">E2p:\5JN;4LW_r(CK(TZPDC!`691-Ek9`Ctep +G&Q`g"b?<.+<14d+mo:7#A+[fLilI$m>A8_0!JK*C4VA_qC5P#!*tsZ,cY_h25i(X+Mkg3%&+6B +W'IaX67WI1]^nHi\Ed7q0RU"Y)P_LgMO@(-j=^tnoS\j4"Z\>Oa;puN(lM2_f#`(;(SX:GN)94'_8r9e,>;*cam(F[O;-*< +oWX/"L*]7.U:l3GVi"1sa.X;9$^A/C7;8t`Jd"IY$4q#4lQi#(0[NFE>_XQ@a=2lE_ALVBIRL,g +2?tIT2Wa0s>%"!P##OH:"-hF\Ct/EF;A-SDR1DUlI*g-eHq29b,:'(Tq5dSVIhkjZAQ-PoLJfgW +As"F/ZWo92;H=j];=gFC4T<@C##GDu"q7j]2pFB"2A+,]2!*Or`?HuUO-2[f#;$g`iuHthdr#@8 +L1a3f'/_,DfH`8=F,%_Q&6'B!Rp`lf)j37<-OR/P95]\cW]%YZ,PZ*H0_aJR][mHeQ9U+T*Y%5hpt6j=-:i_#j14a(de^@%S;R-JSgWT`o9OA_E0'dLb=E9 +llI*cILET5G2%aJ$c4&:%HQ:k"ON]MX#W2J`#_6uP,P76bs5hUm`HiudoW=pT*dk(+]fRg7r8N+ +MFFm7>%8%O<"Y*5c$qo!?(89hYR*R*&lXDI8@D7#tK_VTW;OquN:@L5TJVK71,8_;GJQ +;]JA4TF/KE*9CRia_bn/%:E:'2IS+b6#]:#_`0\e;;=4WBJs$#7%J:$pfHBbQa[m +jqN*.>l(_L=dU-Q>W*:j,\9WNmgZ-e*54FR/r>35I&6eK-sXS913c6/'1/e/PRhKmU1>@i#3Hpl`1q>:l"cQ +)2-qWKVrDJb=[[F!W]AA&mZH2LfV]Np-jM9`XE5lM\k_B#2=;baU/t=mG3boKsm!SA(t&cCgFA5 +p>Rs*Rsu#XbsWGTij)U@*Cc?ceJjdpBh_ai+0[[ +jXmXh$NX-8-7PGk6$j9FEZ3$FEiC)+P8)$s1_1i\mF?=>e2#g4?,q:%2Y-QInfKhQO(Xr&]K#X^ +?etV*P4:efP;,C>=].\N`U/QgiblW!g^`l!/2=rNhcProD^a3iHAUlYH!`ol0!gmC[W98H)`"K4:.!57CQfOc<*e\dT>iY)3Tb:q)fK4AT"o[[!=mTF@.Nd^oUAsKp;Jp!VXu@>^<]^\-Cj3KYkY3!S&%FZ5CA2\C +,/Q2EUaRhU3t!?>p9(#'EO`"\]aodZ"q_^gOk?-8*>e.a)fMV\0s(b$E*!Y$qJ`<5n?3h4.Q3<8 +*GY/=J=NR[+?@XA0`rJTMaJS)V]i.C]aIg@URZCePZG&K)c62HWRW0P6O2UkAW^%=UMqnY$H`MB +$/i`26<#,n8D`>[%h`QXDf/Q(YY:,mOKq8B.tA)j+??00%.W>o0?mWp>iQ"M#b^YmI]8-ma3[0Wc=JG9"t[l,Ao:T[slCkbR.l +7jEjDP5I.T`4q4+,7FRL,96fAa!YTL+@&j*:qRqq(0fo*%0]0Kil2JqOB]N?/B$hFF"er8-6l** +,%ke!^gmVc#+m1AT9"R^&43`[#U!#90'*[!;+RZB)R#rNoFsj>B%>0$Q,AL10rh<>gU9W6-8l78DiW2=056Crr,(C\DUHM&? +Zjr-Tm'/8n)IHB@5*AqlEa%EG0.% +6P1UR"(s\NE5nZ01"(D8EemUM/L_APm'6M'F`p^$o$di23Qp"s^L&%Z$oF0=E(_c6^9E;s"/\VP-SSkt7W+9'eSuMr)+)5Xg_&Ra[ZfB.lj+XAeb; +2XKWl,G@Y,j$%>C514hk'$A+FI_O0.l*#iDO/2*[#[[Q"UT,`"$L=dX[L^$;NY2^`sS_$K,4tj30uLR7_?a=-DR1dT2bbQX0:H +$H51=WQ[ktGaYf2:\nd:q0* +#^*uiCiB`3W!L2VB9oT%i._SsJSfSC5ILtup(Ebd)-NVn;)5R4K$`nCf*g-&+XtqB;-aX33Dup. +!CXI_1Ch1Z<:g_B'CtTg2N8=!F(2P'acc[8Fuls[p'Y]T$_[B#i6,VEZ"01^bYD+lf0=@.pN1R= +AY>B3m5]?6<(E9@?OFXp-:(aej&k7$=X1"'"=cDZ"t!m?f`97NV=;:'<4ZO@dZFs?_qB3-6ZnR_ +a"2CUf0+<$W%A"$,W>*k[fE,'mSHudRCBE_XF5D];fs4pH`[0n(@ccqodbR5I.lT/&]%mE7;fT- +lVQ^mDpN@N%):9cEO%Fo=!Lm6ap^Q#%,d=U@Z2neNuq5W)`T#M,EE`eoInK,^qa7][d#SV'-'Gl +*7-1pA2dOI9LWL[,8`4TGBY/B8VV8;Y)7(NofXa'AN"'tC9gDT-J#OZT7F#G0iJa)Dq(p?/jj_. +>.5nf2],A,=**k>J78l*(98+S$\gP&d_P>[DrGWc":Trs3A!AKC;XY(D<6o61.>@KU_tsYe:C@o7u(%9RH#/acb-8Y=EN6@\H%3#@kR.1S\_X4(>A;[d`9P +E'n6E8\MP'jgH?f[V:X"KO>8.g2Q=W[l[m('VW#.TWZJlX;$]$>BdVWU.-g/Pl`%lWmS?rVmj:( +qO1L&laC[IdQ7&QM4Rl`E$4&r+4=h]7/ +]DI/nq/6:(->7c3[>WeTgX3hh\YWqCT,]/n)oIP;agXOQ\"!u?V8bI^;880d#h0P;H:Pk7Wjhn& +,3[_k>LU>c\VFRE-G3,?;";HY6+m>D5ubk<,p3Z4O:&oX;8o(l>^dmpK!uPQ8V9bn&V%0+Lk[&? +$Bqko]N?BlP<2@Y15%%ai0r!)Ti8V46m/WXaS)Ml"cWp/#"<+IoJWhrpR&VI7KSh!VEI_EbJX4V +bFDlKS=@TIMQ=p$!EeOhUSXH_Qt+qe/C!5&cUu&7O*6Xq0n^Q!hM2 +=9^m(<;D3JYLD.1/He3S63JFlg"l]CA)/KLT\9kb`$Nrajl->' +i]q*InDVEXs32P6j'9df^)>u+=5nY38j0M>*=9g7>!p!:Q!Jad]Tpi+S(2oUQ_S$'>-YZ]>%m=- +em%[qM&aDnYqt4"<=hRlPKog`Xih>r#YBCSIBDSC]-eT40N*tUG(%o&);`Wd1'$e"#05h>KnXnK +lEdi'Y"@qc8`HO5lG2ZMj!lVZ`%K6KN[/rR,A[hWn4QTcj?f9B!X&q^`a-C+:)j1?Ig>JI-8n89 +'81f#`I[Cte`5N?jX.pPh\7l=)EAl^`IoddIgkEd/4\Sf)*\BZhbH*0;JP)j]4?*0^I:ZaO7A?\ +nbY3:+(+SgAb\K(pW$CWIrGN-kd/(Foj930XG/%HRDch;b+fL9('HXjNgX*XgLum9Qn.TTVsYV/ +67RSI.YelsO)W7,r7_3Y8-7$&*^)^Q`'",e>\!6>*b7W5+9s-*]^02j)o5%n8XRY:3LO;&@sQ/4 +Cc2?KiprM1hKLFe:Bs38\B#eS),,"5&Z/)A1)Wd5Jf1:ZCEjeCa$J?hK:gqk^nqaJls`h$3UR^WQaQK1`0Vp$3^^Y8>T66`_g]P11`Hc +U2jb^U([p"=_6%f_+kD1YYAX(FE$Xh,!*V.j[NR"adnC8?lI +>+2@eD:7S+.)VeH%PJ09Uo>i$ZEUG]MXnR6XD9:NZn4p[gpebp''g"EX31.MYNuTkPd_&`.`Fab +Gh+,aUG<=X`!Pp?-]O:HE&+@E+P,e;j)_$].VbudXK-+$^9GV;;U2YOCMM_9b0ks>/Zt6J?GA/r +P6A`o&=X7>,8#1W2B\_N*\i\-8oVot0DdTO1X-'JY#+.1&iW[0Cr4^[OBZ1\-dAk]#=9%gAQ(_o +bIJ7>i^i2ZN'gLM1Jbn,Vc>WbJF\YTK6WpO%1-FfN6nrIM-L'S*I1\G"01)H]erMc?IdRFG2]U, +!5d\IN[k7q3KA,pnKk?*l!7KCCe+^g:#gY>g[63,j#I^MnT%4-'<73FGC\=$NPda>1cXFojuSGe +!*\Ff(LS_E*[7D="7`RPeN7;4.oa"^61=l$-E@Ghb!4W&;Dl,9r]'3XjM<(n;([ +((YV()0XJ(k#nA7Rn26(pkV.\#4oRtO7%"'jZl^0ETgS[nM]dBG5V?f%)jLn;Rj\%\L.q\92N(+ +J9i9eE-g7EVDJ^H$hCiWe2I_E$5f>pf"AYUNS.uPe8k-jnK`)cU.[ei"-C[`?@.#XO`locV)TQ3L1R)FG_RB?`gk"??sYj@`4&1,(a[ih@:-$IgcX&1'o7B(s_1 +Ss08?2$WVS,uFqB$'Lu98uXjtLbiEfiQ=Xpej1jMW'ls"DFMaAkSXI1b*YTp.0Q&s/dXon9Yj[e +#*@OY(_^:)+dA/1`.Kl)Wd@:@k%957SeNN1MNr6*Jf!HRChGclST8abcJf0NVhmF(o;!_Z=cSnB +`7CCkBJRiLT/Xs+I0J*rEPlpbr_f^S-StmJclc1O-Ht4PFK>W'^nkZ.ZG:`Y>F.Qusm%RZM&%"4(ZpGU*^e&UG]ulV0[AUgh$g\rf\PFG#rt +-)J!$9iPkpBr\Nk]Rp"S`m2"@/G%e$E!%B`/$3EM1;rFM"[<'^'DTmAtYp)Cm=TrMkRqAduimD.8 +>03nieoU0 +^P(2<0mN",Anpia@(\6!PnpgnJg%pB;[;&Lfn=?Ep +1*ck6VGulq!eEh%Yi($Q"3hL8=qH&!/q)%Nguq0t\0qTtqa@h$3c0H6Nc06!4(r7_I=VB1%>Cqs +,`G(&0Wo+>3YX*0Bs,8Qcl`W<@W;/pZhAdN_S4BGu>/clr9U_PPIYtAu,Uq*?2-T(u/Go(Nm-6g_YVTOqdfA/=O9H\'aWU +iW>a*]!l&s"MYc-HI#+N&Ps9hIjs&(_UOG1r]LIiYns/:<%$X!L#adG`sSe878>QKPB$ioA&(nJ +Iam[9F0FU9FD4H?biG(#DO_ +ZsW%cW_mc-'i!?*(mHRdD2Yn?r[>LTj+A(SQAYa%,!6KGR_Q]n5P$M@CY-'ESIl,Q^5Aj-&j1en +XGV6MQAS_YBJ@,o#aPT%5gnr&>M^i\8@WpG[#h)?6"ma;&4$RQ"+0R&>>pJ;#T^/TRR3MHb&8D* +YGd?o^8qR-lk-FOcp9E,_+B5:9HQMF(c>GA1_]J5POtU-3^7(-\e+$CLs&";pE@?81qOYjH8;;T +EO@>G^K_Sm&gG+o.\AI+(X_]2R8&QYW.GR("+3$Q;WEfnr36Pd0q!_4@h=o&I$dKZTlMgh)Fk<0 +A&5*uQLl/XJd*u@/<%e#_YPk%1]5-VSK]ee-kWn=5mP#CXZM%E6;Y+r&/;nfmCT]`0!g9Q.Gkb? +-]/h6Lmb[PW9gedp6>DUJU.t8aJG$P>Xa5m#f%j@ggC_=K:WK[^A/.h(cKB!TI;cZ6X\O_dUgF# +U-jN0"/KBHpb[WUj8j:/'+"9A$u\USN$UIVV.rj:f_7!ahh*$fO'6*9:_6-U=HL$M8#f%SH<5r6 +I#fP$Lql*mnkZ'-8>MZ+a4+Rj/;,>O?D[IZ8/umf=>PSs4ee.:""\B3`.S4Pi5i9WJTs0j0_NOI +0eR""8:.?h=>kfQ29BBa*V_A1da947pB-T[WQQcJ6IU`ISHtaWMZYFWN-.Xh0uubO80itCQnb/- +TS'&6^>t?:\0K*(OiaRKJs<@Y82J@kbEM:q&A-.XKUGGKMibFl]MKEd]SDK"NQMs?MUKY5.]Ec" +SBA@\Ur)6:*1!/j.=rBa7Zc$?XCd\/-%fkIX0@3YI)(nI2?A,)LcibuI(,"&K$:U-Lql(SfJ1=S +S<#[-+;n08EDoQ\a33BWK?-3HJQC#$3DA'ac!fP:.hbWFa%WgEPp#Finjgp.m#)a:+`Tk']\j-U +b6j'V:&N.i6pq-%LP(,T27_Us7(85!l-?BRLqkqfl:=[FB?]S!8#Z2Cd%X;]ND>H"[X4O:7+MGo +(P=CuZV9ol0GP8J2p\;s8o`a?&3\+Y@8GnkaUkSod=fh.pe"(39a'hc/FaZu3RAcBcme&&7/+dp +Uk0-m:^m_hLbd<4$ApDCLmXo5bglk2%aS\l:?;LR"VEOb!t/ZR:e8Au>f@8c6UX0ra+XI*==__B +&CKS]93@,o:oTt`NK5Mt_j[*J>`fJgP-"TuLk-,[XJ31+[`eT>Rk110Eh*U?\"/%H2E%qk1 +VO@ZEe9+:fX%U]F,_@.%[4/&++K#;I.?d=@9p@)&i.t<^ZTb/']Jplbq5XOH'Edr*#gn?X2#;hR +U^`]X[@I)il:RW$,=%1oK.p%1B\/n(7Z\kGmbae"aqW7L.efWQ7+)4I9tQcH:ZND.*KY")NPFXO9;.)"%\3\%;FI^ +TEDlc=2g,#;EP#jM1[+)=G%6S4Q$b[(aKBS1kX43=!a,`RSb@21YI=)aXAVK]&s0a +S.S(XJCHE:,UDKLr_%I@9d"jP*.\K7ZDcGop`%/hl<>-=ClR*9hO#JCQ,3QVTl`6'cKPP +DF9\lMb82L4aKrg(gDEAXF5h*F!&7Zn'5LP<'@8a<5T""O',R.%:->se]h3-c\U56fO0ir=rbdp +'?6+`!EIP'%@,atdb.pTgpDif&3Ypke':+_"1_YkTV*78*/MZLh6GjhU/TkOfnftbR/f&F3&V*T +1]i?p/c_CY[H#SpN34AsL!Lb]OLR%HN2A&FRL+4#1'I7,/OY15+bSUrK/f/=0WV)C +0IZ/)",K"*(pI=\K,^mq%Ho-AFbs'a#m+u>hlZdb\*rYN!BPhcdOO1L@a\>,'4!d::CoAABoiGB(`cUB!eN$hG!u3(Y,raoISa7$u4#Ra-L5+G+=]`L=!M=gf.Z +Ji8'4ND:/iE6@3_>(`*':$D5$g]2ohS6h%8+j?*+OOeu/I>_oi!)OX9!#s3>3uZdt$i+]r&[@KW +6]s^A$g'n=3%fh)/sgh%2#rK@&-ZPLSE$T"a/2!,FB^o:;N*:GJT9W*YdOr5!*KIPKA1E0-(+dR +$RC1,gk[bK##`T7(Jg^c']*.5+J%S0en%iSMBY4WoWrj\qApiaMi#J#$mnK2=djtc3nELA6@[I]1B?FcfQ@*L.*u#QO.'-mdTLZ^?Y/Nn3P"]McTEr:@N0sp^k18Das3AQMU%RSVUfsUjg>IJ?$bC +V=4-Uc]Bi=XQ_1NAjuCmMd]A5+kbp-6lQ(2'*QHo>9F3NFROM4[AB]prrV]Pn,kX2d&P2m*p]VJcChC(5/mX6b3C&hVag$*I_Fi\mM!r*a1UbP6A2>KJJ+"JBLjm-^DHEA +,RA<&nnMLscPSD8p5+82&@aji*i4J70Me6gSQ*hJ;,)\aN,^->l'[-CD^KO5LM1$Cc^6Q8R#A6A +%.-P4ba_iNBJOF>?LBHqo6!RQLkkQ,D^iFhCYf,Ki3eTO_sI*+C]L8QVSDGL_sGI'!\Z9[0#drf +ba!rWD#fM3mceI`=DV@mob](L0#.b5&;#AN!j>IQY?5Rl^MINgEC5o\^Ke-a*JhM2K,DC!pb!YK/foHZCD\j`e-9'3hfJp4ZDT0SPjcP(RP@[qaMCQ>AbNKk`mLW&=@&W +G@lF$!Y5PGk[cLdN^d-(%LOm-7j2CV@DL5uNBr;/Oc4`V,I.ka[+b$Cg7JAf@m&:ZL6r_t%PcAno,4XlHU'CEOGpf.Pb5O# +2k0(q+c,/JCkimQQEBAfD88'VNc\"G*g>E<`%gSY+r^s3;h4nOcK\Rm1?4OD*&ljr9$.EL$a.a\ +XS\g?N2Tu.0rs\f%%f_&RWf/_UG-L=XC6KIQU&n'be/aO<(a+uE8u$q0OnQ_kpn?]=WGJ$Ucbk@ +lYph`,*EpQ'<^m/B%=;o"(EuV1(9s>NMA:74=X7=L>aUZ>f,7)/_nAV8Sb!:-A63"XUZUqX0WH^ +_5M#ec9j"s0b%h6k6nh\F4f]OD3SrS%1ZU3*P)Q@9dikT.-B=pbUDR:cgtuW7_/.H%,"!i;CKR` +eAVY_o>t+ +mZV39%0K8?0[``IcAfLmKX38RZZK%Y6]\6Rql$^FAI/h;Ub:!uW`Y$u#2um:+uHMHLb1/-?3;)n +O$La96C$?kmGUDfWteCGK@;sei[,+kVpuhC291^AI"gSnP?a9n\@+lX92a]j4?`*f$FY[@r\0n% +/`Y6?ipIN+2eO"ch%ba+(1-d`+sj9i;?;dX1:dR4i5&E%R*1LA%g*:Z,Hm]#2E(_!/uUlUc2dDt +cu+P>,4l4P!81KjeQEAk%#YZc"!3N5m=IJVN:"M0iE5K6d).AiK1O9ANN'q6Wn]$WaeOi!9p'6: +fXocp4j-4O,DI&sfV.-fMN`QagV\5W5Z.T<3QHc>d%9E+C?GRg_6s@I_/O7XMiUL@BK]iSlEu`b +;rmmB;ms)7)D0f).9gi9aG;uVG!DfjL''1H,.+DlMQ]Rlg9Z]b40A-1r5c/u&7V)@]A_p-=Gn=s +T4\%p"uK-A>rrGE%"gLSC5l^LCF71"5X[`FR;#bl:W7@[_!q,]!GsCW6'X^T>iuuT,A'MQqS)J&N*CS(V:BREERr,dIb9\ +r3$s*Th#2")^j9Z"]'43E<2bI#4c`(MGQ3lj>gh71+Ic\F'F!bUt^WcbcDeC9R3f"mY8g>o0J=> +28ha='=en#La2O>"R1QA->*!`H6n0%JeUjU>oadc8e&(cV8(&;]8t.2##Bb.9EhX/>Qcf[lBohr +M*.R9$p?/;oGTq\b4XncfF0J_2a_;DTu.k".A]2J^A'tC%,!cK0Z5/j"Thk0R4!@qaMF&!>.[Q9 +3.qLADQ%S:pLKq;%V/E@W\B>sBKVi2MEi%Qd#+qRHIsZBF?-iD%qNAuB5N,Y#9=&_u'YA.R$JPI=-n$-V.N`:Va4i6_Cg +'32&315$^)fFa)lo*E\m!uh>Qmm8jA;U#+VQI6N\K.M@XW+6gsk+!:BK2OfTPl_)%D**VW7L^^( +Nf\3tDsQu=O\58u&5)OJcbjoT20_(0R8m\s*/u_))Np^HNbMAk7gME)3/:EdL]No#Za/BY.tCq< +geg%IAl@2>Zm`j.HQ$^R0%Le:4'`b`E$fQ7e\?mpFVP``Wec<`fr+2WcU1mF'nIh_Mk:9JCH56N +)FYm]KmS%gYc`RD1No?Mpf`M"Rp?H3f=H@UbW-A>r\biTsjZs7BI<& +HWcWJ9,N/8NhI%9Xl6WsZoh^5am +C)BQF8.$,ad1LClBj6$X6BeuY.mT5!89]87q<-uk)O^X] +caPJIkZia^))8FbTcsY-ql=s<+@qCWXt6AfAYI]dVY(I$fF[;K>LTJ=*o,/p1+XGL@@$9>%=>Iu!,UF,Q\3e&' +A-[_E^Na$P]T8''o\WHBE8e^r[j$L<3^e*@ +KUjaNTQ\rGD6n6!rP?;om1a8-@ik*!*uDCY:(4cpg[2,8VdhIF#(2Ff_GlQupVH9\QuFf&0U%&+ +=a:<)5VRqsku))$eD$K4Ec1[Ba&@8-h=:ai6_g!b:53OI4*!k()'un>4\Y,N_cMUe3"0tr+M>ds +,iT4l),:->51VT9D'QBecJ-#=+hrRB^>;eYeELRlKekVMUmZiEZsltGR3lf0gM'DYmI\Ks:YroZ +G*W1lf*iXp!0^852[QFO'8^W$X^Au63R(sf!X,,R*B`co`AhjcOM.r\VU)8NDuU5P^K%s_&7W`^ +.nILY["/9[1ig]C,q-@\99Zoloid[%BQ$mB;-6IJY4O$nqa7[u4f-82/1#t_Q^GLc1Yf`R5,Q]R +)Uape$o#UGnIjTurs)d(\[lHJq>m2Vp[>khd"@'/.JcD_6u6eun\qHEJ9"V-dZPoJ%?LYc`=<,! +&d`F7/YoQNjuh$:63^r_!Tlqa+NF?ekdF-mgJBTR-TYoM[KYTTXfLB@V""6`XR1fFaT.VPD8%YW +A?KcYC29"0$tr$OEro#nc!n!U#;W6^8;5u65_,0r"lT4]TK`k9#7o2g^qt)g`&^.q0X%]W/3!j\ +$DaSG$%kiI+IMh5`13P;$'<"h05V..,%?."%A;D`9AXK(_#b1Q%1Nm';!e?Z)@U)@$'0+Y:GD`d +`rjMlN2sJ%OMJL?/BImZjH1,\E?>[-A1FeU2i`!!iJ@$)/3If`sBd! +U-mseC6>1_M^epeGo@8=2m$6ei0t@a_DgDB"j^T,KEqmhC=Md0Up5a=@,uAoaIU_1%]76C+Ik9b +7L@Ga6nVRJd+i>f-je6C#)%OMn0jb-o-!Q!JFE+REZTp&]+to\"nE/8,`'+.cj#XR*!D9+KEqn3 +b9TI;$-6p?^s*HVEg`Sj4f]olJd>!,SJ9'TGHu&dAO>\11DT=WBE2`nZ.r(5P97Zl'P2\=$;2Je +-qD(o.:A[EML-g-o*Y%n+^gluXH3bO]KH702tFQ4jAlTVg]dc"16Tf9!r-raM@@q]6"2I?c7VrO +b"CTa/g;_5DT=;gW*Di`.ki+r'*:+(@LSEi>X3?\Og[.p'/2$1.fpA=ng\4Se09]X$1S.OEA\$= +g'j/51IbR3#[Rq&__`M*km7PQZQo_G1>hMU1.tV)djP_?&N#.'1G51s@%N5g#R7UhoZ14!Y_=s< +#;S)T05T5F;i9S7HT;a"'#U#4+J/"QT\/FS3fHum1;`6qfIk%).kcXp!,=/0Sdb\RQ&R^b-,>U; +Pi&fN4H\hTYKo@Okq^H>5,Bnn"+'3$>l67JtP5HH>4#_.>0Cu'Z'.kaJZG[FU0,$#q7h\$AECFe/'jtlI5g"(#WgtkT@_eU)ic`oD +k&R:.#4fl)irfjDde+;C7YYgN0WkWn\A%L/Cil1."A5P0#UI3*6r)%GZARAaZ?&oSQ'>i1.F.@_ +Gq>3$.MP.Y';h=T1a]N7(Q*/d'0f4s?NtMQ[53#%.XNf59.Q)=+Fq]qDRB$.#=3DU4K=5ndCUnY +M)`pP:r=3LU@JWmYsNtI$5?#rJ>"][]2FeYBF<`B@%erXVTBQE4AApHF\'74o"SbO_goTf@%^_8 +]2ilq@Yqj!F=cp[@L<]4;_VOSj$QddLa`kf;[!5,Uoqo/Rh]=L=2ji9!Yu,#/1Fu%;lEJqQ&RBg +Y?F8Y$<8W9i2$&0pbW^&"nfrSU3d'/dfKMa9&QNV;SG>;jWY&N%/&F$E'[f^((*ulMIMg)2?(7J +4]F$8;,H+H^Uca@C>QV"Zp,bVoVNQOA.94D9m6su# +7LE/+"Mgj;.0qQJ0k*3HXG2Bi$I+f32-tF*9JBbqF$UN+nVE*&HC(QEbs7s\]EDXp#=pJZ@(=*PNCCc@c+m#%#Cq']=ZF#TM,2pZU? +TEs.BGh:AMpSUEfq(*?XBfGL-GNbFPD0HfbH+2Ep@&Gs9(4qf:L%j>QJD(J<&8X1A6(k+W'ZFh, +1P,\^#1okb/WY&Ik$1/eGG)qb!:Kud.7pt-KihI>(;kkXgu>JFJT\;RP9DIMcOfY-@+77%p8ru5 +PAjP9Ji=2Q\;CLA_d[W9>k_QQWD]tkB7r1%:3J&";A4s&@4mArCau=eD6%sd(2<)]#<*,%(rmA$ +08g5g-STMBpmfN-Bcth7'Z"9o9k`*dBcu:ZN:>.q^**.&B[rqn,6SG<)1pnd56,!sPq51N +W7[rYP-"Xf=Kdli2j1[E6m-;)i2Kp-/X27f()3`@V?+A'Gg+^h?A7A%r/\Eij0h+3j=MQ +4/q>[%"s24NA(if;E+HlDGp[Ign8h'.Jh*u6.ns41V%3d.]!mLtg>a+uHF +:=t05XkM*5aX2GE:`u39%<#'8i2a$F>Ga$l3Eo+o'cq$&K=CK[eC'5)>%:8:m'(eFT*a^c\l$$_ +>R!23XS]%47d>`Djps0,%Jm#Cfcd>a[-sk9^*u^N]=#/#9M`9nSmksoHb6oREP,,LV))3\]=#AB +_(DBo1qV\<-@JI#;?n.5.]KR6&A+elYTcgG['ca,$j6tf%oABh$p5_;>Ug0H&HQ%$ZL_q1Rs._5 +^4kK``0;(',R=b-/3[ID>:4_(gF=i8((/`8Q=+(>pfX.D!QS??c?sJ@*+,:[bZD`c$ItulqaM!e +DG_O[;T+(mo.32E((0`@an&7T\hjTKYJ%.a5b,MqY"E@AhoiV]TA6P;&>RD!@EMTG8-#nm`3'I_ +ZC.AjbOY!s4RpX1d/kRo$Q,MWb$PYZ?4.KnRKZ.g(1GLRUe9RO;T:6q3`MN\-`+-'2E`O%n@1F8 +ZWe_Ge(T7=02_u3Zb<4b`<$k*e!m*6Ok!Ql_#7W+VLZ'>ZY1r)GJ.hFF-@>UOk!E.4<7)9""4O= +&#+GU@J[LSX9hheQL3I22BYh@FA/PdTi3lh+A0gb&J!&7:hJEbngb`bUY$\YZj7"'=XA7=ul25oBtJl;^2Dl7/QJh`.%kM0LB$]`J:!C +KHXn'p&h`:QX; +[$$YM$spBP?&U_8`%ms\+rlsY?EjPFhBtK62DLiohCn5jJ,StQqOcEt>:RnTD`$GRB/pf(`_c`S +Ca0db9I"LQ]Y\/8S;_)ZBpdOa4;n[ko3$abDh>ga0XD&I*ta@K@e#Yud*c_c6(njg@>[tu3_^bB +!J-&@3BGI07T3a.mUJ/BUk1=Ob[V-=:5lQ[ACd>+(so0m1OUmF=fp3;Am(PS_dOOEBJrH<*:@Z& +R4KR-)4J'H3ZH>o>6SDH1pOtp-RjnVdUTM@#%Is2OMksd5pqoUQ"qFO0Ug5K;j"HPCGZrG0\d\? +do[TK#.X7rPiQC9RSJ#5phgJ8cL4:af^* +[kIO)(oPN7(CHumS1:X+MSfS5_f2i$$jKPX!=gmS_tl(*6%EJ__[r&0!FETaX)j&8)qTj"/EP +a--=r,t!V!([+3+Y%u<.u#(:6BVa`O0c;CDatZI?.1O8pua\ +9/Skn<8(kh@e',3!T,Z'kCjadi!$n6,!5Og_*_- +K4257>T;X\A^cuT$tWL=#5G5:H"GXQn!mm]ST,GN)&3i'hjSFYL=fAMEL"tYJ8prV(mL=+B!k)] +VWUWb\"?Y=hM)qW0]6qleiMYK)J2h+.YPt$$FLH<_3(C*"bBqk)Y&8@qYRl6\KD*"!Y +[VFS,cb@[*c8lm1OeatUL:H#i$Lc/KbmNQUcVUP33H%JfoK0@ceoX"2@@mb:#>,hH@BU!`_0lh- +hK,3*8IG)PT1QK3]XLO9Z$4Mk]!5\Y4m$#FVbt8Z\,aS$oXm+MkGqEtV:#3DemIiXg!%^DAH)UA +Y$&L=D[PhknB&HM>hT]Hks37qo.CFkZ&N;`(!$T@C@'Y*XLUJZ:k]5ni[LTZc@G +&4Ne=p1je;`#iEL7FAsF+Ttb\+(DHCKYdF8"B'mp?#W6#5h.@5_1WDDnF3Oq(a@l^'/3aQ-6Y_f +@ca"u&:[6Fa9)e7:Lr&Ks_8!sJusPHTj_V("l#&J5&.6&Q;ns$k'\%%s+h +M@h;+,,hOH,MZIRE:PMKkEd&>d>L,E1o!0bfIbc#t#E3=V0XL7<_0,6R4Glnpt]sE5O5/ +.guWY(,.GMF:CSW>_U.M)MUdDK]$Z%VEpAN5o(V;ik.=M1r(&.d)c[[#W>t1cB'bOI8&`9'P`lX +;mAda9]La>Ae`Nl0h,qPkqb>t1$OQod)dAsUD9YIJVmDuaMfW#dA:\@R0Hi0J18,AY&s'4=#tf^ +/"JA129qsr3`$]/>l_$M4<.CPb>d5MF/nFZ\^e.XB!/@8P?*4Y/t"RK%+/AHYNn1r+S.pQ"SS)0C)L)?'d037TJ9%g),EU7UB`ZL0h2Qg +91'DkTp6lX>8S:-Wbn;c%6CHA]>BKjOCF--3in&qY1'E7A!]nNk=Xm-FJJG4]2O9bhDl/"C8bXS +PVN1S:rMnUU5Vqt^t'e?%qLNs0Es.hH7-+iKH5C2K.&jo@)NQ"0[pKJ'nZacpQiKAN["`F(oT/[ +L^gTld$3/p>T#:d:3X6,GT;VL6aZ1J<>@JYO>rSG=(d&n>M@7jFgWOQ0526P3^? +.&"7!(kU8BLk]"@iP;XOnB;ioBi#s`UbnNle:r#>T!5k\T*g=m[jn6o8XTbT6:WF:Ab*1GWE;Hd@Q?ae6Qj-UKR+WQZC?]#lrWSbcrN +3O0(pTJD6H@NF=ukhlK+1MNCiWV#Vc#7L-Pm]bCdW@h*mS6K.6ppNe>fO5S*_I3Z$+;L`41V8m/=sl#2mt03Y&*8gdr9)rmBH-EP(>h +"1j4sF2((sH42n`U\,*NZMSl:bL%F)EnA]$aR=b0a^t8lJjBXLIBDFbFk*I`=*<%>*[L-D#r1N0C2OJPG +H-,Mh0K8B]*>R>p8]h>qfR6!+Q$O@S(^jAJUpbY6tq?c[i_&NZq0YIlK +1Vm$#$qq2>;Hf-G#!e"HP@PIpA/W3_+"[$fK:>8dq#\gngH@e=0UfeAK6T21i%fpekHZcq]R)e)_t/kG +1S>SL]Qi)<^_)f@A]-C[6:9,1$WfFJq'hO0Lk@EK39J/0\NXu(XV#o4J2fe\c%3ch`%X.\BSa/s +gk\QQ-WEaX5W=>21;>e,4]?,b#j0*r>*";'_gonKEJqf[=[hhhK?RL^6sD?j7M3FeLh&XZJ;-H_ +W&Vk_`c02BN(Q=]*#68H61anAZkU!%Fpp/Y%`gDVae2-P1QA]X7gq*_;r=\;GCquL7l_YGf]Igr +OLKlh&8Z,Pd*4]*l3"[eOao3L?o^a`0YH0^]c+IQ!2N-s1dVlk`Fssm]S/n@L''\%K7kN]'SqCO +a9,t%4VWgS/@q,V2`C$Hb",)sg]]m:4lHV6J`>%3%ED0+imt3=-O(>!/S?E8f +O%p\/bLGuT]Ze]HUd4"Q`?`\6JDZFgM$Tc4%C4069`5AjQ&)d34rB*i_5P]dM*'pgM4!$FjTU_G +QjJlP^(]g/6[;K2r/U8'K7o-kZ?F<#%aau3%.M!Lm1>Ysn22UP1.4)\,SiR3r4`Lq2aEG2MfOFU +_9laQ;7e-`=>i*RGKDjpQiSJL37n\94hc37;Fn\-R#cl0gGoY80kjljI3lKD+0fqgM;9Q^>=;@= +.gh7h;H5-l2%2Z!Go(;pdetK>lt&%OH;c[L")/"GI"k2b,nGRq!OQrF#X#iR]tj"N`]RGD\JA$C +9d&g1:jX-P5a6nt1qpSI5Z>p)X2':k=4&]^;*__3GVFcNA&B68F8RgMrD^EZK.+)_D,\?1 +4c/BdeWWG-*'(LTP_5onZI=%.=?-Ih;DR1\"!JqGZTU-D+Z'bYS7Q"b^c"(q@m^W7$W&RE\2r3# +BuQ`-,N;PB;KLCf23XC6u[(rC<_4 +!f:/Z`G0=L(blMqEE:"3d/\m.rN-R2HO6gY&3uu$?nr1YQ\-ln"%4JqOTM28M_tVi`W@aH4#dX) +3B4R*fMF?4>IllS:l6YX4.Rl`X"R^.;72%k\V,'.c+jUU(g71WN,")OrJ`[]`8#ad=FItBE;\L& +c8ldsJ^'fm"h'%sg&l[r[F;C51B:Z+^cf3A>W]n]naI2gU=o_$N+r8qqaf=d8_9%BSt43W>++0( +EC,QP?:9NI&1P@`68)D0k]\S-FhA:GB +>ZPW((1%/sPV0lfoU+11[+lPSPIg3Fa[&@n&Pr7,$[;*+O^GicAN1PR-9E(ZJFciN>PVKZME@ +7DNM)fJXNTLbZ@S7PK,Fj>7N@Xs@JB,RoJS.)%kI?;TX9,3"n\@IZoA?;sj]o0#K-jQ_oiQ.:g\ +/H[kj7;>X4%Pg+8&`QV@iuT"'4!!(@WSqr[53>:Bk"\?[bMm,G`c +C;>"2@ZDJ\N_8C"k@/*`@'i?:?396CKo.R[8%>N,Lc<..,q+J&f\JF;lR.MrMoG;%g"_[-CAL#%BA>!GDA95TI#/[g;M]KBbZBagc)#%6[X%0I=V"#Np6/sXa7 +e^7-YXj3,,7'Tor?W&YDl,2MrNB"Q\T4nM"^sG,5r),,LT8GH7A0*\:qGV->iL'l*kmWI6DNYb& +02bd'l)'VY[00-'S`g/O"#?;0S8i9W]%V%r^+O6e92@u.Me]nEC4!am"j +''n?DcaLADQCmLq8a@Z*ku8($#,CL@J%3e+lm=hhXT.Sr0C$QD74uXIjDf!"b%:"[Cr@'$r<2KB +'C1C9'!%q3,re1a43*1(^RcT5*Y(gVYORP^D_-f$:X^6h.&.H2HK,4h%f&f`Y:@4YV1Q]:+#hVNK +UIJLanF^Jt/7[[:?dh2Yi"trB +%U]*OE[MgWQ=:Au6kp+@2OfU_SPeq%@^]/>n\6TbIk:$7VmCRt92@6o-!+)seIhO3ElU$-4^.FN +,t%?^B@_:J59dj01."na5k+`q+>NEp*K0(LD=FIV00bBX0oTgMF8d4?37uaIQEEFfg3lscNr8Ec +79>TYP?"cFgGrCRg[Ya3oa=KMLpG(3.b;S=`WC(C(KSlGQL,RDF^U*f9i)Bh`X](6'+\DQj5T&O +?ZBqjEg%j&s'<$^;%9hqnS`!t55"P<+PQ>>!tSMnd)jdbMm`Rn@FJ#22ZL/U(CldMD+f.FLF$-s +f%X"^"3quIT54.L,4FVWE@5c#827S\)-;K./euTN1',^.hkr??;)!!,r7OG"eY@&-088"pUm3#U"Qn087^DDJ+!lXlN#*:.5q_X#`lJAfG_ +Z,97i;fU4r9XdHc#0S0m(3D=%Y4g%\](^V5),>r3I0OPA0oYF2>-tAI2T]:rLGQ#\'b#jt``[]5 +F#TXN*R,2f/UoE_N#QF%6Qs\5Fft%Fj"ZsTBeMB6c,T@C_ATq@R>f$X.CX0(`9haFRD/1.H81oT +VV@f?_JZ4[7i6-g)o6?fQt>u_(BiQOY+BFh!tUUJDYJ-1`]cYKPSh))_sTO\:HDPQ50kqF2PB)> +DDM]pW+u"9&S;]fLD+Jf(>#d5N8t+p_V: +i;6`fi+7.4OWC'C#'Yd!H=)6"iBQ3e@#8hk_77a4@,bRPGZ"1uMC.0\c7lV]U2ZlDfD%6p-]458 ++dELg.&J0E'm8\PLn^PrG[,NKE\(ES?(N8Hf$.ut#hM/b[q&uVO/5ilD=a,$)/IS9A6HLl->:!' +",MfN%C)bk2X%!9-OXdZXUTlLPAK7U@&>=+4'j/BlIq-'\I+c0YCKr2R&ceBHN%;$M`6*OD;lbB +ckn@HNZoul4%NeL4!T:HOJI$RcnOcJcSm!WK:BVY.cW4%1@uf@29mJ2\jA2EUF08F%RUm4L9X8^ +#jUt!5B5L9*U3ilTa://K$FD*$fUhi?]9S3US>iG\K`M9qg';7/^F+lL8XJ6T))"g%,P'Re;VVh +fCF5p0^7m!p4N>2H/jS%0`''.SokLp1LeD,s-T"MXVpDH%:Ph0T@8$[aa(l\-l@dC5]Y\G^j6Eb +BK)P;_PmX*M_RMV1adrA%TaR<%>!U/U%OQcgls9!.TR@pAN'b0)=hk86-Y'.k^QrR/LBh$,84-n +W>s[(%&KNK_nb>CSZ526bsWKuo^[1Nl/+TX2RZaI%eZhCVUg0rWI;gg`A"O7D3daB)7W6Q(2G+e1c9NQcjA#+`LE]I.4kn$/);;hqIu'G8P'9Q_K3D8jsfL'SI2I'fa> +TG^iul9t,ge>4hFN+Q3QtV&,A;\BS3EOqM=6p9]WTiQ)b[jfb6+&lcM\n.t,g[DR0ab4DJK+au&42[*A[7BM +AJ;)e5g/-T5%)Bo&?AWpUk3tbZa-L)!9Is4MP2JlcHh6\i(-W&W[A,pV\#lZ)Zp[X[^LF] +Xj*E=kgB>K&BtGSfJ..V)@!ur`k6pM<\]\4[b9lUIj=nNZ+u;8VQ!rs#iY_`[2*.W!e=!\Yt$/8 +[2iRp)#juZ0pWDs$q;)RI:DPUM0H)'9)K>Njcm-27BmqB4RjqCa6Ig]&00"->Mi1%"*L!aVQ +%NbR\0fP]"aj#r0W[Oj(u(pb7L +:h<5(2F)bZBUg=7Z%_a<)40)c2hpojWlU_XO?r!oBlerI&]Hnk]?mu@X_]*Y3P#:4"P<5S\I/@ppNerXRRo1B&Wt^jMiR) +d,!WBGEflP3\"TQV6scb:7%B;11QXKjrG3E$k?L3&_8tP)FL`C/nhaNDQ].-pj!KT>p#l88,P^: +$HWK,82Y$`D,(FI^9Ku,94O^1%7/4n[i&[)?>4tX:7MN=0VU1m^rL]h%'WI(mN9`^PtH;h;b +drG:\!5l^#!n(pQTQqYN4<+,WJa8N.@"-0^)gV#(Um.[PIBRG7+c&:M;`;8U0KW509V.F5%E!AH +=X>T$4:EYs="'meNtr8.a&1s0.GhEmF0@Y[aA:A09#noGWF;"*Qu`^.2Eq$-kl2dTKHh=[5g\;h +LaO^4OH-q%>NZ0j)/*$KjtirZBsW=L)FIO\f[m?.ZJ7^F-k%Pc2/%[%OL8Kf,_m3)K!jU@pn@gsU/ +ndc9=o4:*MX4g/8Bd2RWHGJ1tEYfWkONu5f-O"lnlKYZiK+,P(&eSU*Y2($l6Q^R#5iFGro;o+H,L37s-1%&VU.B0*a= +k(9]U&uS;Va>U22!`%oP%E2dI-YP>%D?hpXFHUgPjO5nT4#0Y*!fQ.j;c>R5km+.8=0?$gJk7j/ +i:S]$=.jUXVb%crEgG0#28VnN/]0(J]/?j,FFjoPXN[-+D)%s67'2VS7t:eBYTT]q0ER%=.2:_r +rc>6,/INs:"',hOE&sh\*X>7.mufkN6TIsYp($jm"lhfXDM0ZbL]D?J'Ce6G74V<^,a3]In:*#G +U3!Ep%j\1-oH#91(dX@+[?KZmY_;Zu9En;/47=FDKHi3-4VI&G)l3u@'/[hHdZ299/$THhnS%mJ +[OWsT'!uJBVpKig4uklH-@jZ,8X-"`T\N3i82PE^d-?49N@'2/7S^f)ENgQR\GIS:"qo!"6I.PE +jYgL_5V52nZje(,D_cFF2WZAI-nJ:2`\*K/*MQTBPf1l*i8U_@>@NICPj[MRN`VF.(67bM&ZdcD +W$.)>+;+i%Mcg\#"uoMu;3;tZ;IIfSBi2h>lQcs9eM.R7d80!J7l;;O7,E?SO&/d.%h9TCm +jNt\X)Z\S%%rtG;Ys]0Hn-<55CTfF1bncE6;R$S00e0H91mI>'=;mJ=X<]0#;E:bQt#))Wf?f9^pjQqQN!u2Rd@>+n1K8F$]cj$g(@PLkkXCVCM5YMc(9W0F%nLID1 +bgg\VAAgt2"E;a#BKC*q.C"/1%eiqtOpoaQA`IaR08*2t0+t^%6a'IRi,9>4DWqJ4%nkt?E]SD% +G:n#d:K=L^o"6VN(f46a\7nmrJ3BF\pQ8Th(>MKVI4`<5TA:rt:!&R6BjFG-'EA25T +j*%Yh-'BZR(Qg"Xdemqh^QG`1P^"h(Y/r7"d'@^M(Me>i_g:QlV)P\B2n9]jW*6]QZ`$o_BC/#2_L=[+d"9o+R^-m$Sh%AZ0aQ%G6C1;=)XEc(75DYd>'^+ +[i.!Z%g"aRKNu@@BnJ_fkZ(n.N+!@/5s1$r5'8N2pbiS_XTdcj_&-=.3+"LCH?C?KL-gTJ[VGM+ +fIaU-Ksrc2DgN_%nDV7b/u\tTJt!CTP(`J_feCpgMq\iRUkM?8:sG2D6LcM7SUL!iMkgG3W2Np. +bfX8r_N?SFY*MGaQt%5@?OS#3Z4qO'5f`b +Ei5=.7JXG&e/(i;+cV(A;e5Dsb?(2`DQ]Yh1#c6\q25c:n1c'+9+;A(),:WtQ&L\2:H?dqH2a>u +f8OG4TW(DEQfSC'H_=gYTDBM"3Y8!#Jt#1BTX]q5j35PXVqfgDDO\FG7mJ_P#(0Bj:r(,mI!^T5 +b]d^s2_Sm6!sK3+4>Sk'4VKRSkeY8UMXI#1;,LE'JhE!%#uSA+^Rr&T.D51tq-BliG[*>_umU`qYCE2rL:-.1=.GSgV2,^S!h-D4)BL;b!+g[:"' +Hca58b'b6s"2*&3+K`Y"%/ChrEG*s(<)muGd(#r+!6R2"cFjgu0,8ujo4=(r\(d&CLs`;$4g%Zc +I?O')/\SVA6OAC\c]ZVZgHuC4QJ!TVfTMRXR,D^X#q=FSNXT4g/H`LLb,hJundMs7=+G)CDCIVb +Z)&R`9*n7bQde,O_pH+9aT1DV:Ks!i.BbRKXYDion."A$[e[2s&>+FI,;b(e#EX\+4%>#pLhUN4p^O%@TVSd(`4"H5;[t +-6YTPc_":83EOS1]C+TmcN9'h#fB(",lgZa'lWrMn00"=6ZJq3dle*5@dM;mS%j*8Ic+e-r;$/\ +NUhK(YAbcln#R*7B+`!kf"6)%OOt9pL9kfP@M<:\OLgOg)uL3UVi\/b[QQR*A)VVJ'Tq +>&W=>9fS.V]!"H%NUaV4s'(?"h$r\=*M6BIfA(7uhO4B@k5mPZBLZJanj%8J%3pM:Ka&"?*f,hd +U'`cZ&/lDBU*H[-P,.?ZKU.@p"0hZ]W0lf.%+#PTYm`6a+>guTki=RZj$Z5=$rJG!%1Zl=gbZif +!jK3?.0O9%`pm#2&?AEVHC:Y0]+TfF:s)BgNiH!EVaARoE0(ScMOOerJXFJ!"lhsV)bSQZ_\*Dg +5f4Kd!uUVE53#2R\>Z_2dbH[3F&nH_;i9QR$ue&O[)UA+d^Y&W'^@BVcglV(%T@3#2G^@ZBJDV* +9+8a8iLL]$%8(AL6S'r<4?C$JXO0n\@gtJT9f#K;8jHghA270F#gb@sXi3Xk:/B&6UWf\Sgbb%D +9m^#F#hrES=",=ePY"GU`\UZu5ha*.,@u:+KQ#5SSkV+*T\IV0=CrEZ28kNE>%u&c1"u4Nh'C5i +@*C]l,9Z5)^EYFPG"f@1\J\B^;WDato-i=6E40!%A49\K.7@`p`9njU$R%GIRPI?b +38I-d(AM8U.(-kO3">(.4us*EBZ)rl$G^+*%!dkFK1I_7E&hQ6j1H4fCY[Aih%JYdJ^#XBb_r@- +r!"'uLRcSOhlLi5/1MrU>hlr(B5ftf/j1aceC\rY/P`A9_n%A+! +0)Dg=]Dg2_h!Sec^2MIQmAsZ22^QE5RdeN\N$o8$j7.6+)pe.$Spe%MqQEY_%UkH=eb%Z&?5\Kg +T.@,p1>2NB>2RO[5;s^#?eI%?:\jh"=9ee*HU]V1`#0<*ckqC^1Ep7p +2j9>4$l>]O-fq#/(;a*>!Kn`<##qTEFf>Y1W+.*(N8bS&BGhqG/5cMu2MP^t*[#,O6/eK:)cUM7 +aAa@8!K]7(:r['Aj<5\H@O![R54?Qq%>Up!QNfmuSrspK5DatD#;`U/f'$TQAR[8\;OZgE$\hdJ +Cu'_T!b"YT`G6uT9?!"7*5e7jH-U7(a)t_]PI[N"$2HhW'k3";BJq*`,!NsoY81-d]N_)74=@*B +`^;OAJe)!iP*md?"/'iIneGQ$\Ig4?<1,P9Q;g<8nE:^8,Rrja<@ucH+2\LeQ7Q'?(%BWkhaso1 +1?=G$M'S']3o#g2k#4rm_O2@c`L1bK?cpsm+r6%M>(j7%bpTU$MP@eIdLp%[@)AII$JV#mI/OlG +"#*(k<@"\0/V>`h%H/F@?H^.m!s$G&-g<'e$gE*nj.[##@sJMle=)WPb`o$+d^t'Ao(&]B3,puA#@$qll\?"k5CQ&;0eqTBiADer@.]>ad_UF;ZcEXDu.4tkB +8pZptnNa$CcD$K=*Duth&VcCYIT/(!:/0OPWAQT.6%EWb8KC_='eD:DlEZ,$eQbF68ID9![b!l@ +".QY!\Q;B1jsWRs#8JBs#8Yt%aWP:-+N<+s9*J\DFb-HV.*5SL)dsj\40g$Kr4$KAA.o-!%PS#G +=Z[:*+@V]C$]R`UP1!k"?oas\JEIMSTYLT(dZgXdTIcP'97a]L,Y.rc"r10pLhn?GW(qhD$1t:? +P@7$5`8o^Rn89X0rJm[m**+MC)d?co]-,$3h7Jo\6YX0F$%hNHX33sc'pH7rMTal"_WWQDn@[A1 +dC>#Uf'_Lb9a[cTg^mj\DT0eN7G,BlKEb(eiA*%J#T-sRej\0S2,[lH_V11+K1jB$]Yqm`TTJ%@ +""8E3"glb:P-]1b2"iBVdB9$Nirmq#))`:N'aLHBKcjg\"ouXaSRtlYd1LH0NefY=Uhp[#**fq/ +68oP.]31hZX]>#ES(!fa(n,,[<9`PcTJLd&:lO/=lVnhc+O[O9Wop*tiE*%KR@-W[AB\+DI+PF! +^fgeI%]U/^=QN0n.LH1[<`r;muned2NlO?5_V(9>?oE,RYr!`6QXV,=5g79O#XK4)k5FNHeU +k%u]4aoSG(&3!Y>*/ut+N-#O[,Xt-F>6IYVAd?sEbjc[^h%5tAqO;k^B5$` +1aVe9i;J17K7qq\e%)q>0CBCdBWbiBZDT/1SNP'aDQ^R?QWiP5=OuPYjk

am?]X38u_DL"dh0`?N%)'dqq'=sg9)k5[I1r4c1g/l7 +OZ`9lRPp=/O?n[6EhcXMQ[/pC/JNtKWW;4*q6!o1@$!!dfsdhYlI!#="FIO-hZ& +/)mSU)@m5K\S.V@39#h%bI/AiN[QiO4,uQFO$E7&&,@A4l#e>2g`Fgo%3,g=oERXlm2*s`]drlT +&f(oq8\h*b^bcb51S)!C(lRp%4Lk^43B3*c2kqV@\f;Eii%dT3T>!%f&M+q))DF4Z(HTJQ5p;eY +BKJ;7-GDQ)_FQbJqp.U@pn])lK-S])"/<>A$OA8R^5M);#i%]Qlb&GQ]PH[ll%(s\p;+*q]S#uC +<$f?d*5[(X_T:k,A1g&F0*$kWgQ18ij;$.1U[Eg#s,C]R]S=:>;S0>.`o=PM\P-5H +b[;pM7Cc'?[fEY:$nIS<:mOD$2QL4&3@C1c;FY=VX(lMgM3kXPRAK^2Lg_qp")&#DBeTYH2eb7j +4AHQZj@<'A(8D+cKQot]fJ!A?a4XD2fTDP#I7I/]OIUid9S&HR`%sqC%qsZ,8e.T"X[5?^W5(DM +<-^oIOg@S?$Xg@[5W:TX6BjL-7oYP%]TA7X2b1DGaCsq^!&dC_IMEHK8NW/h;?jIKPcLL&QP3a_ +ZK\FBNIro(]e!X$i#=p82@MB-_RMK+W'$_DW4>HM#U"aCga#M(E^aM6^bCn?"Xj2^J3/K?2jYS!93mVT]+s)^$(d +5jf]GP07gGb`LO;kVaQH;%*H+(K7$OSBV-J+jC*s9bbaT(s]Wj*6gf9RRi,O:p!GSbfm"H9n8q( +;fk^#3C*2gWd(VWo\(W"2@=fcbZHqEd1)6WP;d<5^?QaA,eeo8qN3k9/WA?)>U2W%NOQNn\/TKa&[/VFX,80q3Ct@: +UkP(EUUC8*O1]EfOdAV[Eh:2Ap$tBtY^L9/]=%TTTX?dL8kaP_6'@':Q/6 +"I.#2PfY.aN)25eI4`R2Q:Z&79=pG;*1?u/:e0c(;[Zt8d#jk1J^3L?`N,6PO^j$37CV&bMtK.G +W:U@KSOSDS(`?.DC>5d\XT>s7'a66\E#c4;:fB(LJ]Xb<,e;B?Rh[5@eC8>+<.@lg(P>^92TcCM +_dCqEEQZNN"#.E@<9PK^0@c4$TsG=SeKY*_#M"ofN\J>,W=t5]*`X[;O!s$C!Rei;3.%/IWGbea:g6t.I&j;3<9A5N3g<)Gug.fm^T8;TTV.!c,c*F!7kCJ&\f,A7& +ZO>M>Ff!'a(2Q?B.$BYAYmK*<$(RI([80tSL!X+[`T=QEK&]_TQB\eLWL]hfQnaHURF2+NOX6XB +'bD2^)m*eAK7Jl=&Y*#&ckB59HofWG<^=kcrc3]MZr +)C5u7(qRu$,(*4E&;Ed8"dP%e<+5c5c'BEW10e4R=fQpIlFNtN[pk1>(7MnoW9E*(-(H#$fUs0" +T`rfFq4Q9a>u3Hs.&o#!*o9V>'IA33CWP7M1u*p")1A%-"@UbL\mqRh;ftl@on?4B;(IO-+bM7@"Sq,Q%cg1F:MfTH&MIuR:mIj/kb6TJH;n;V2`@4p/>+'Z,fh8_iH:akj^qZu7H<0H3bAk+.f-ORJUs"MR27(IMhj.'^,fkA*1&!c:-N8C +kaH+.Yi^qGW51;Wa^aJADV3NSP'Tu<+T\t[W@=<-AN8u^Yr%TODJ*1FA"Ytn5qZ-UQ:Cj#X0)M. +Ek11oTA0?rik5jY^+EUP)2TShPr[2?!N7Bb`*%VBQI+$>[YZE(53T=1hSCZm2LaJ1SMsSO[0Dc' +Xj=^6=Q(l`BdR.u6DFo8P_k[cg%Lcs1:o'eRB(Fe`E)g +SDo^,hcX>F[OAMN5,jl>0\l>]9AH9(+>nddHYV,nC?:[4.^pq0\6Ep7CF60PNW6.fENTL]frF/t +7Od'*]U+)#arUq&=dg5"I;#KH+ILF,Q90Z;]IIn(#sr*h4k$'f=-l`&it1M^1ef_:\Nha4=UqV$ +q))rFHkSB'&Z2<(VD-\3d;:$ZitF$IP:or`75Gt'kQWatL:p1Xgt^J7asq>_AEn#N0j[C4ln%c< +Mc\S14h_Z#PW?1'H83@??'lLIg1(AS:l#nS^rQ04mcHhQU=V2i+n!1F\:B3FH1N4E@%"A@5 +RQ5>D0CW5t0Z!!q?>$Dk?\DXoXC=nH0Cdh%::i +l9*u^A^WH4D^'0M?M^Q7YZfaFP4&^90.*IRr*&83E^7LrB-m(crj@9oE1'g4Km"!L,jqqaEu%?F +E5Is9nQ)dF(,e`bng*_hct$K?F-KPkRe>ZQ)fS5m"!BB8)Y%@_\Rpm/keK+J%lddS&Z?!kF<,5i +]mCquqLb$;:4O7o +O%53]qhpd&pE[0XI).j]l$#DNNj/0cpuHVNj(eHiNgFgI180S-m-f^:$5s0A(NO_Mq2SkSnV;[V +Dfj4/R.k:S:o[Rj@,b+JQu5erMcqkC`G+aTRBZI-S.;*omWU8*L>HB_0' +<0hiD`G0n'_=+B"d?OL2S_]Jr%OECK.kk+4l$'AqJYqSqL9m''F7.g)K0VK%T(T;sD!mLsY +dKfZR1Z6X(O`k;RDnih1_oSA)N%E<*=LJ&WP$'?ooQg(krd(^[*db4=TPhsMYWM,V*K=s5V/7d\ +pX,,%dkF-4mhj+1?Qko^qN'3XMd$Q$Z8ZMflYQk1".=&tE<`[kmH;iO@IN3mMd$VU:i9.eP[E80 +k34:<]ngSDHH2n#Gf9^'k5NE$H-A^+n$%,^R7S3t<4I\NhsYn+QN%+]Q*0M,`oI4En?1;/(gqoE +4f3i;f_0qj#Q]V&$5]1*-8UdsggW%.%HhdM[)=((NJ(dBR*9%CK0g_Y(n=VZ1DgQGOEa@.*-X<1 +b`PH#^gpq18`RhTBt3#@3'kcp!?%9KAJraQVb-fB@mkma9I<+UfY]rk%Rroj3LoAL0V"(L6VUCo +@B/'48 +/OS%E1sb[/!'AIE1tK"N9%H&=:)!9m#;C3n#f(,cL`=1J5i1ocOJE.%.BL])&>AK\CB_SK__BP. +0\Bdm6LMciqRQ*bV\c58_e0QMcm#Rs824>n+h'b[2]rPaUPSn@dF7Ora0HgqerM$_=uFG'TPTh. +:eN(V,0;%&0e;i?-Fo+g0^^cVN'jPn`9dnpMZuJOBGi)UE999V6^ZjoX0]l:N/!GbS2d089(]hL +_5\?9N^K7d4jU)eju9?Y)]g`<["B/dTN("\6`::3E9j5cGi1NWUG1S*L*;6fM,9Eloi6`V,C*)q +<>?&_#(n/=JrF3>(c#08;^rZD/Rf&B%IET(0oVlHkb'A5Uma3q_kJ!5gWh*M15r.e]J237V"na7 +[ntd7%4mn!Y)G;Y`p-i.ndBbMnp&U0hcJq;U*H#$jt^>Rc.dHW=&XC!?pf)DK46e*oU9#E[FR1` +\&sdf@/,p^0toVLauWJ=Xe/qR2Ehnb1(u6?(^CoQdQKZAp1$K8/A;oT^^QfT1?83fb;W00Pj&&S +dOkSZYHq!)P76J"jto,O&8'-lHIfS_<0WSDY\Z[Ec`?D+RaH!1UN62MihM[f0^Z8*jQGtV>7CmW +9>r*p9K3OO\aT\["R,;gMZ(HLHqa%In`[R_GshaZeuAp?]tuT:=q,n[%C;/;_VBHJg>e;5\4&E/V>s'mJ%L3U1r4I*NSa +*q,1KVmHHPSbrE<_AgZH0;tJG?>"o[;'D)qnoo_AFuXnbfGb]`W#X\cF+<=OMP>(HI7jcE&sDkcLZo]b(sd"@*TDk +f+c0d#16O6L1st=B*@7#:3+Y?Si#LG`Z6);^EC(A6YUrgFkk3QrR +iNTOS!:oO9m,4#Knj*AGd[OLO0JCSY3i:LKi>!l)$oF[["uAS@U-q?Qe%Td")J6D;0ObKKAt.)7 +@MtRZ":Xb'&Z;jM5T,-ACSc,4<,.OnVOXf`Z-Y3f@-Sc0)j1])hI4aGm(CQ$_i&YXX-&`h7gWR7 +XL4pR,'q(1!tmht!5KF:&dW$hA6q)>jJpCc)*ik#+<^kY]M`]agrTk9hNnjC;`,f64t7G\Q!rIgr[l!RR5PV +Z46*H><@`9(l@38G2\/LL?`;AD=]9aCMAP.b6hIG'8O.oq-pFOm.Hq26k#dK'fLS3\'JX6<^[dW +XeiRNDXui%.rB0gUPWiS*U-ho0"m!C"[[&hFurYI7"YPTJ8KqBPEsSg?lHgd_hei&;'`Eu\`I', +?$e=aoZ2d1!"Nuq*\$2?$5HBIE"%_k?WLRD"rp9JnSOgK7Bj%+]KANU`1 +6NgTK5D*g9FU&fK]U$@sNt4uA@iD0kV>BPle4"VDH$1sKFuW00]ti3dK"otP%B]dc=-m=L6H395 +^#`^iCPGG_9Rt?a6+^*+&XLJsQtr*IVCo1JK43HH]8`of@`t6u17(,PY*XYsfA!+C#&s3j-DV1W +>J)_h+NbYd)0@H]O$gQFA[6O$DCB,A:ILCHYp6s,O%i7fDN4?/(3"@+0[0ItI;d'6$q!m--YnH8 +m.t3T8Ht9/@NT7hrN"+?fRtN&4g]5lCQHaac>802q*(@$O\25khmKp4]c'7lI%tjQ/0I"DO(IL@"#:5V"C[rB2n,:&\Z/n@f ++DKUZqTt583kd2Y6\suTHa24taFc%AB.U;pZlU"-ftu-rm0AO`+-,V&^96og`"4NGC:-te+[dAJ +$Ol)'GVGuV^1kkBY>-MX;SNU"Yg59X"]D8_h"K[iT$R&!`:QiAaBJ(VS>(*Y:i(f_5m>Vg3UhhY +WEff!B\uN6VGM19^hj"p8L5$!dgeb6Z58IF)5J6UEK2W2V2$pqZ)'!qa)/\:gMp#:YVB +L0G-<)HuBa>:%d%d,MQSnsJg7^G($?&0*M2iaWI##,#kGcA:Q*A?TaLU]l,S98;TNOQQc=Jh$IF +%Ofo$?jt55hP+JO9'd%i3._-Hj9cChC^B[<-d#E%>-"EPfC%2mfDRRs<+XJlJ+tFIEmKT[-+6LX[VS37mU89UNCs#kn5g0X7%j1(0+=j1g +&LL[1XKQC%,06Vi9A3$YDT$GLY@P)r.j?E_7Y.;B`Tof89/]F_P4FQP/>[)5c<;?@hB:g='CNmf +mG^_DGp_aD%RTgKU1GDZJh+-_$uW?[/%#358dqM5%J#3$L)`59\7AL'lVa>CA(`>M"P>@aaC&@) +CPl/5BRCq4/&N'dMlJ5!hPNQn%"c/SJX7QgQY;Gim%h+>&Bk1K<)_VkG2B_N'U7jR.)(lPi.F,FKVSab=aJ[Kfet?IV +ZN3,fff+n*Ift3HcOheYJL\P/J;Mu,0gK^;>\EW3%W\s+Y-og?pGrt">g)cUElgCNCH)a,d3WVp +o#M7.E?;tLLQ]>9kfO?J=J%2N-M,,3P;b6p=Z?KG&I.ANYmVoK:nWWF6gp%#!6$qHq(:YmN/N&l +1BBpXkrNnR#1ETM7S$kI6ml]ALL>$]'bhfH'2fM1/]AN# +oaEA\=#r+G3e\A4Pn[fHFZk=Go[:eiZnm9E(WoG:a2pfq*>C90+r2? +'HKtAml&bM@8W@EcZq'u9".\rnobg&ci%bAS?Cd\#.%$;LoXf?!";7@0XRNm5g)=Ki%,NqLhL$s +KfjtV&Qt949K+LFe)itkBUZ?W%Ra5]UI'X,@kHiS;o%X'A=55tQ$B[U[UOp=f6YQZ!D_7#FYNrc.@(Cm#S*+e.tDOi +o:%+O.t#sT84/4rQd%ZLjM19B=d%"=o$GX)5*eR0F:N@Qd`C+C7+k6&7sF\&PXU)S#2)U08IUeGo2!d?t*mg[tdh:`]0`3;3^X]['XF`'ub,`U3[7o[ej%--fURIX[7U>ac<5,1X&5t +:E1VNV!E+F-6qM(!dZ$-2F&(tENPEph2?LA>NY&a^@F?2 +`>Httd?o)XiE9fbAC"Vb&C;hI$_QLDRaEotVMV!3h45FoT:%p:Ug'?V20?hb#'r:O +AfbBtKWrGr-ah),1*r*N_J>o0,"uXGC>jHtH_s.+Xa.[Y;>[7or(USHN7rc?3b=41M5Q+$,$K2g +#4ud7&e=c)W#B3(.Ee_pMJl$H^f9#cHC,*`oJuIg7C[b6`FCIbPEYE^kd\Ho9C37/=,NFDf!5C? +Y-Cu*mKRq2s(8`a7a_L0lQJbO+klsO`RJPB?CtF/qi3+a7_>m&*]i>P6VlcL)D/6]]*2.n;IFF$ +>.-.Ye>1!=Yb9CKDtodTj=QGM!*N_R^h]@>"S9r1=.!m$(HO`^fjM!6:d3X5T^fM&>Fo&f)IM7(',$0L=_GBo0Q'`%p!/i6 +P-;NeRCm5jonbb>Ng67q\=%LPQ!;;@Bf\_qSE-0URT`_(H7*$Lb^_c]M]0fW;8,U%M;("tZTMZ6D_&f-!?&F3/W$d* +1Qdqrl8ajR]FY4k>"AI&$5G`7-H&'0.$F8I3/ +r413Um!kDBbj!$/)*WP_Tg38"MT>Q&GjaHsf97+Qe"!Rg>t'^#*RcRYJXKJeXW>l`o@*LiOhFt^ +rCO5a=c@2;/-c/'q(^?Ca)#TGb2#t?FZG5tqq#[C%"oi/.U[Q6[R@h +."bP\eVUuP]f[>\(K#tD]rb,Z21H^Z@4 +)``].qR1oiLsGjS8E^JMRe+&M_)\iWe?75u]O'Tj%iDkeg7h1#Mc+fqikiOl(MF<]UZ9g*:LI\" +*_,jP1;*G1jZYsUq,QP59B/C-k%]I+hCI:c/Xo1:A=Wd9=ILU_#$mH+,_r5UX)^$\Opom'A(Zc[ +V>#blgl0V=$s9o#64aSb+FPkRk-3PK-0O,uGAI"R2J4?d.9hBonXSIc--=&EN5t5AhWj%=//3]8 +,"[[/'((M![>5t)T'eV^[GZWoRB(LrV4#7Uj/$*";XjkZl-<;D%<[-:KV2tMbBNP2KaeCQmB.?!.;ChJkeWI-pq!%EC +5i[Y'RSh[@[DE7H+q:VFDGf8c]#=AO+1&>d=H(92q_-.$n/$\+M>KAO"-;T'hlob*^Y@j!rPB#3 +j_q&(kPc0rrr8trs6D^t!&ZJ@!CHC7K\Biq*6(?c!5r[u(dOaUBLF174(k;nTP7(6G'2`Y4KUhKPA^-I[eCl7iN)(erL?XPP*IUWam'WatgQ6)RRp +1?h3pXDU"gB?*@gb-t3-:25PG$/Eu[[*b`@RrshSB!b7rpIb?miGuY6/Tj)D\B9(V:Q.4nkgXWb +O-kpi"*q91AiIh$@iY,g`b@FMc'$5*aCo-%8'M80H*1=+0^@TLK5nQeM_XIj-=\aZ@irq?%&87` +R)i\lR8.@N.@A%1j$C"6SmODs^$,+63M+HaM]]p_:"!<5KZ>1I?FKQG0\C2%ob`^n\hT-+of7t$ +++MEK)$[;8$p)+Z&7YaBE&3s!X\+fI!^US#959FC_LCF[WuUTfCcr@fHI3e9ZYX-bpW,C@S9 +L&mbi!_!]!YV;#'8B-sM_2Md,`_foe2N4DMd\\AmW64d'_f3\i`JEG[0h7?ck7kmU@.#r`BLpc6 +3T7WG,g)7:cC0]oK";hSnjHtB7;]AMh)Bm(I3$NeXKsM%Week<`U?X[ZODI#od>J[PlF"q@h?L; +c9[P"(sQh:!&Do!i6!hcO#8'P^m(ZI2n(G.jPL.U4Zu2mK7N#>a=QEr8Ii-+#?B&+4,+/A&C)thK1];e +N(p/d0tsuZ+<$!5/f9k6_[\XDj5UEe)riS*A/O0sISlK>UViZC%(S97Q]:^3k.@P?P"%.MGt*Kn +BW7rPVeG%V_\cr'M`Ici3+1!nTN\Lt&]2b>_4V4sW78gU.;WddCr;@g3fRW=2Qi!!DGJ3Y:/[LF +W]=a4EFFK''JT#jm9VR;4>.#Y0t>B!sf",7:'6TAdPMVVS_ern/61ak"CbbbV'GSs&O +22(IqC6ihe)3/r"3A@s"(rU6N$KsB(YmH121l>eZ_]M9TRZM%.a0FZHVZAeA+<+V)X&//LhfVI6(letosG:g=WATe<[#'*0ZKL$O +PeAgt%RI2,1MNL:]ua>)=5:SKiQsWtA[kf4C]0X,.V:OD57\d6Yma>(Zl=Pd)bco@9S&Hb'%C8C +'EU4\VIEWL@TLUg87`:)Yk/hY8=?$M=BrYcL:t^d4@9G883sD*`6okoT44mn!O:t:=p.Q5+=!LU +,'QkLk<&i8%A+.F)DV'a)Zs2V%j@1hd>AuX>+H=u1k(OTp"F:4,l&Vo#*..+M@Aa7$$=Y32Ub.n +$t,&C.^fPCf/s/3Ba2u-Nmb=;;ePJrU"$q%:?@:0f>7o/U&d8'"4E6#*'8An92pDfP5 +UL8W&KnfIchX)m+N"'IP`_8S><3%CbEM^BS4'N[HmJJ,)%FC4[apbJhEiDQr)D_"]`E`>L/"krY +0h,!B-/^H^0dW=Bl'C*DQ8?#Nf-2CuWtC0HnU#r=1drU84IE3N:Ljp:#9`@PjPi+aNkZ^*XF$@V +3+J:kE#UP0adJ\"@r0D`L,PppRke;fcM<\dXL6b"_ffb8%YujOXT+iYcstF+'#gZZN5ksrN$nH( +8*LTE0u9(8#)?XB00^FfnJWGF3%I#\0 +N4g@E]Y2^9D'r\Y4b/pd)\[K4l`jQRmMsQdiCs5M93N$D-dBaV!7)-a5PL;=bP'I:q +A0'00)4jY\V]>3I)4@ie81hpB3_oaDUVY*5k<.u'64r1Ob`a]jKGo*]""L)Ii:2a\L@0K=5.K45 +%)-\HL0l=kfP7PE$#ap3,.m(rA2`VI85lMA84lTq/H0o?)$qnQmErZW^mIq/#H5G-4pBB]2+Vpci>RJQo) +,lW7Jp"FVp,cOX9o1*q=uWK9W!5"$&Im^qcnZ>J_KXAY7I(""K-k*%ml)42SQ'^rum)_6Xd6oHtb! +\r\\")(QEUh``#?'!hIp6lD>1jr#!R*_VDYOZSoV0YlC^&Y^J3bW?MQ+Z\;S`)/[SS+B$6G\P&KiesS5PH9XZX+R +`Rm'[d(GJ$?\fD(MHWKfUfA!@>fC_,RsBdfH&3;.7_8K&L_N-:6!&[POs:n\$0r?bH%H]/5ohdB +YXs6lr&_q];N^jJU,X"0oQIH3$]Whk8!J',]QY%,]HXj(`>R,\.3"MO"p8#JQ$=:dN.D(YJcd9N +/R,VQ)9NAH5p$^R7N&0>1lF$@s!T@F7,_A`'Qlf(>f9;P!J'r:.3UV>N\NXXaYY1UE#K7?5tQr[ +%4_1>g)1OF7[7LdTR0n&Tgm-[KcLfBaakT;.`I]%1cW&OSnU()+cE`1M47b:b*u1rH`].>Ue8cQ +K,MMGK.FaeRh?>WQZtYTM-#LLZP"+?K6d)=JK(l9^D&M+8MPE-j&_EjM_HNYRBF8l'I2ln&lS/K,b1n&XSMKjF_--S)j0n0JS_QlVCrh0o:Y2Pk<*)3UYQ@hRCO$r>#CRB[*9>E6L&esf?]C4%P6puGL +':>38<(a_9:f!1@cAY.Zqk?K:UU]f]8(]d59d2*I$A0`dQm[" +;lQ$'D*1^1PnZ)>;jBQcl&Sd,`l9l&<"/P`Ug2Bi0ZFsC<+SD9D*uY9lbV*<7dTG(6oi^1PUh^T +(NAA33HmT4BHuV9P$>jeJAMtekg`+"NbqZ."3!Y39iXaMb&Ou-XW""3=uqpS?4^5-66;&+iMp==Ol5248iGc[:e%U0TD?4eeM@K-#HZtAV$+dV'+EA_t,E]KVp&P +^)_BL#m;RiFos^W`-lj]Yq:U,SsNo(VYY80))MFQG"0)Sc6[_Tg+S'm%BH777h@F#HaYu!jb'Kk +`QW)LYW.r.N4?,n^0%!Jm>BHI&d'.t%DmC^_L!g>c3S4;WZ$B3_QB6&QjpjXVhD:T)P4u$GhKa" +=^m?5[$o\=U+$/+83NND1s&krQWdB1!Mbs\)'Po0V:p1>]5=:Bf]#8MNLPo\UtmC.VdekNR7iM]sZfn^4k+XYu3Gbd*+d* +9Nb7,mEjZSe2=qQ:%KA+`Jju?@(?DKt,#bT@l4Gd1p +SMbm;Xh#Mbb215`?0XVljgNG!CJFXugQUlQXAgR13Y?$C5o'6K7G4%N(gkGkSmWMpq00_=.RO5s +\?XKuAATI8,Wku(*2"4gi67-`$J<=2@%?7P7$40RC5g5f[%&,]bp#!VWA*8pOm#+G60R +2ac!%[MC!er3oC=^);LZ]V1OKb1h2?@j@G'HTAU?`JIb*^6(^B6WakR1uigA^6#$PO[fq7fAB1O +RZ'0Y;j'\np_q%=\@+_VBrj'*7#SlROs/A]l2cm`(k\V%U6.')a=tCdN/_OP"47j@=uJY>9tbq5 +K3JM_rPIW8UB=gkYP9*[Q;ds#jJr2Vj??`-H;9pE1-?h@Ut/ke1lR')uWS,A8Fdbd,jE]ILPdm7O8fAlsjL[#*.+sc@9IL0]m7Cj3Y+?J]SPR]OR21jP3KGXGl9,Os-+]:8A?0FZH`pq*#as +b,_P3?&#krSc_-G"0J+sC7^beP,uO!X9G:I0H<)jP:,U=X%Fc(G+;_sOkRC=5;n^/V1,JbR]OB0 +kH_J.`fI4i0S@Xml[+qjZd>,2Fh"lnQRPNO[o/aglZ?`j;7e]B+bINq"7SP8Y]p%o\90+%d\pQLk`+7gpC_;>2dbb$K^-lk6F9A,s +&NPS`4sh%<'l;rKE&ko(k0TJBST&7'1`9ll461?tc__KG"0gc&YbcuYa1P=kmroPtE#G#X\T[=b8>NaV +?ns/m*K'/UPrV*i@IT+UdIaO-1$7bAf)&$60FKdY1@I,k8`TJ)+nI>d +o4d:XaV"2d'LaF('X(ViLG^:3.e>k)oK"S*p(Xb8U3/FQ-Pc.B2_^6UjR_%:p-F6%[OQFDrSl^5 +TO@puf2>E_EH]-iG1QV1Z*",Ql]E8I;Rd_;T6'^$s&-=GSkjE7hfe"oC,pcg/O&b<(u(0[EDl/q +36tH(>168CI:8=P=I.?O[s\]8W"E0&!K!7i?o%Lu![j:i%6HS6=L/jp(lh`G-]o#NT8"LU+k&cq +<&JQO?;>^m"`o[9G4C@2L!n/?gf\eKq/,cqIo/nApG(#7p38N&>g^bSR,>2OB;\TZ110c_6ue^8 +3q&nb_on'qW/EN>4G^Ct-`3,G&Q0Si-I7)c=M=N,P@-mXHQA-o[mnZ*f/-*+kVi$/BpBOseMf\b +S$0?iV%pSepm\J!,@8j5'6E7_<78;KH]Y*`3OoDp1;BtCPM*`lS@!ZME'l7*^TkQaRrc9B_WM$c +JYtAQU*9GDAS8`+5?Go8l+hFLR;]9Yoe3aos20$u`:73dGB[Dg^U)=kH+IWgArjWj\2)kP.VsAt +&U1c#\BP>ZhX7nA$c5(JL3;9o@g.P4IK?Khtu-:+s!f>\XI^9nPT7X +=e`5!Qh5#od=4[ZBj-+QJ$oe$lM5[T%>847T\.6k(S)!>PEF57AN(S;-RaLq@fh5l"qZSi1*$oc +),WS'?#JJAf<8TH"CG=hND73202<@@dlt(/q?HT4!4T7aqO>cehiu8#YgbtG)Ynh@))<'XSl[Qg3?6:"%-Dlf'Je4Y@l\/=9:EcR1V6A/4N.jf +QuKDuacpkSLR@%T1M4YE"<1h/>7ONRQt8+DNm]J=K1@.B:52,U`#j;:1)Wj,*['3ukNj)2&>PkR +@Q!b!iT>3\X%GE+$/!,T3 +]tEBMf[11]bF4t1_7O=]`QGNY)@#cN1=RS+1sR'L1F'E[bfe(D1J&f>i]c9@2eSsc-YUg_# +1$Ha6'93ReHk;*/Ra>q.,E+&,WslLUZET'./FJNgdKG8V8AVHXb9Ct?h8$/oX<*%Somjq_4dGeY +\b$X`Hd^Z7#>iTd<]-"N=d3+-,6o4"?)o/Z..B8QLg/r.c-+1>;Bqab`SU@UV\S2>SibfPE;iu$ +i=-i[iT&0h;CCY'^50taqp7`,m,d0ilW&):2SpILTJ:XeVA/$fGQ4q*0.14o6CHc]krAk4$$)#KkM"#MKT-3A+c4FfH5h2[J +=GI@F1`V43<;FG_M&)YlAHlkfcmuDl<""7?M4r:Q1R3,&$#)_V!Jla_;oB+I$\TZM;"U_0jA=@# +1QZ/g6P2$'GEW"d>=o0Er^/0ZlN#%.QW`[;a:JdO`\3'1Q`F=$#B= +(hITd=hC&XSjHu*"pP^K3R3^q%%>OPSYV(5cDfJV8>%_K,jp$)M81678R!mufch\ma[RY033L\d_)Q#A*2RCG,7dqq"u6HF/$o## +N1p;<[((e<@-W=T;@G/YL7-J31kcC]Fp@D/LB`Of9A.FTUO\:Z"s@a3C2)?1-ii4*M43\o1YFnq +Y,I'gEEDF6:SfL6iW^.3:!ZNgV2PbFPko9IgO3tBY)]-_g4Wd"%u=9eOKI +hUHHdH+Pg6D7P>++ih!U@.^)BcRcTIQ*\D!aZ==pKu +-H&13aN@%pd1gYO_2t-p;q$HA`YlKmEXuSlbn&i,+hgt5S@814MX0XqD>6Er\emGU'=.8I2g#W] +8JR4^4#KGmKbakSbdS1I_LKYXOX]'P@]tuX81R]_,^\lNP%%1@\)Ae_Cc"sdfQ0]p>p?-sYE?mE +BZp.P2n_0JC(4)'AVQ,:Dr+gn!l.9bBnP>R7t5%]p=60+s-[)?-tRbr?UG?#m?9 +A>".c?E35fJ/`YCG[ZOjSN+u6^@dnGS[rU\$.OCQkRr@Df;D8CC0&(5iD@VP12AQsVYj3=nJ+Pl"sXBhW'o:Eo8'ITl(:a9t` +X%/?$Wr)r2C?MEpI^!^FVn+UVjR+C-36&kFqN!2mc!-p1E8;r.1H+L95?W+C!5WqR@HaQ;i.iSF +c:V^0lQ*3dp@,pt.+I?2!7I'Nlip":FIUh0Wp":-;QV8^*ju:[g'12.O])bA%=RDS-B1.$f8BAg +)F'>S4^i7+imlVo;i9sKe]5>e0&di!P_46@P74Ir`\"_*K2'+FS=7_-\kLJA`]jN_bj1?Zf+57- +ZanK+Q-oU'eGJnI9:V;I=hrABr6LA\aD=&"#o5C8J$&<8UFphOn9XO'_qM/HRO[ +HA$fXDtN):0`ai34"WG@0L@+IT`U;mej/.pA0g*1o)bRp"cusuB@(&RE7+,bW"3R?CU3!;7OBM@ +[Y"A>_!(EC&;uMh[ECm;/p)694UGmhnE#*-/LLjc(0N.EG0_:Piqdm$E/N#(mqDk1E57<$Y0VgR +$u.g39touSdg0eR%L'5fXo.J,QI53cjUgq0D*CQbng@gc:(89!"4Z(U@+-7`jm$rdEN^T*u8ia +D/i1t&HYS$K,67D's68fO)5_2BbunJ6*Z"Fi9VrSdNJ_E(p!95BUV)(QDeOO)\F?4nZ<]uMLk8g +[:I/p&Y=':aVsWd;$j*s8Xg[hSK2F1;*\q%Z/6Qem2_%^Cl/:;jZst"$D3I0*5Yll+PN6VBTn)" +%ak[m+PS"gX!'4B+`[YZ6Id5eng(Lj#-KTsbPWXkOVuA7%tXr;aTT'_-LXPf^+l.VlD4'FC^_Y> +4)19I._@"l^EH!%X%Kn'Wm;d)>pb5nR'LV2b,228)]Cub$AVdn_qmIcQJSJ##*LV.&%'f&,!=(E +ULt)'.r\rE-3a_<.q]91#8IFg@k$uMN:P,=$OfEmnL78?/VCA)o%jR9`cVBlr$MDaCubenDJ:jC +kKQ"17<5[]<`XpH)Gj!Ua[:>+RKSGl#IR!s?.?V_+81cgc$k77j +=6nU#_pLLmkk27$%Z:TU%65q3'XULN3g+*\&]H_N_Ir-H +"or&aiXl#Am-Je$r%aRG%l-?/hY]0_[7!=d#mC/^^aG?g*%N::mhlLES-L:`650hr"7C:B_[2PC ++j:'N71,>ga[%dTS5-^B890E?G(^$J +-^4R3DglZdTSdlBKCj\R+D<^!B30\c=4NOl.'-I*-Vf0WK#!OQSE-#Jtga"0PQ-T%oB.l-#=%r+@DX6s"9:$q:aRa7 ++DG%S^a''62KD%*/2BYb\%pq1a&a2g@9$Kha=N8UV-DK%KJYtrG3k$@UM#\8KJo,>`A_MJ@qaFj +@VJr=oqQL"*GP5.EJ[n'"^aGm<(`n7=`bhrf/?\e4&`FF5P&H&1MKYJ6ZWtP#9t"6f/n,LKi3"E +$VP$:K0)S5$rm6iQ)?7mED8^h +%F&^<.0P+e,'`@?b;);3bMXJfP(^H)Y*F1j4)'N7$l&gMD +96@c/'WmKSYY,i_Pa&/3ffbT2\InX=8m,?a;L#:21+OJdPF6&VR;+g(LR/lCQUB#\R;YZ=_XG#a +QoU8fU9Y3IJ!jafCSs*=\T9Mc;F%2!8K&rSa,Gfq9,!ap@7"M2`@?C=dm@%i$H?#*]=FJUU +#f5fiBtn%,;^X*><.YL06XNAD#3h$b!3(3Za,feNoYa['CUj'k9Dt.[J8!.R*gfNCdgZ3 +rfAXu5i7:lEL_B)=.0GDWtDKo1kHO"N[Y\f3l!Ahi)Fa9KGTc>2?'%\L(1Ws@UO,LgTEfj0n=Un +.<3,QjlQ9jtNfMAK%d-$EqNRmT"H$q>V2UPEMM/R(X0H!QsGDC%QKeE"lT%l#h_k^VUidM +9,+:Wm:!W$&P@:KgSm2*G][g":J,)gPN?N`B2QoVcV,J%bCu"EoYHs;`*[oBMa_?P*7^IImY4a7 +b*D"Y,VCfnVFIk.cm[?FoVY#*Xiqp)%OT(M`3lOWRnA)W%)Cl.0#+U0b\-RF%UD/pI,8L48KAf8 +\bb^%`Bi$aZdlZ1#(9q/l)d0XC(-WBe@#=)=4gk[Je)oKYLEe<5^^I#Z:V"m(Wr=GEkJT]CI_4o1(RGr +n:t5!5kTCC1*V\PffG@E?ut6`(sf@IbFA7sppLC>YJ?N][:sXbabgLK>rj)n>c]mo^tAR;dZ@0Q +%S@!:M.-qWQA\?FSq%LcFoI`BL\SWFq&oAd5E'$cOq4I@%\mP1hki@uqtZoY&&5ut&O^=URTcA[ +\\Qu+T\O&AM[2RQWT2J+i_*ZG&cEil#lf?&?ecb.1O5)1DDQluio>$kk[ZH:TdJg!Yh1TPP^u1f +";Vu%&.HQF!Q`bUB/6##VaDoSlsVdX--#N_O?dbDS,l!>b\Z)U&.D#qJH4+i-BoIG;TX$rfeT!j +VZQWuW8_rd$cjSq5s4:G0V$AhpaMX=Bf[;(k6#/Bk&#_)"m3]ObiWK:e]d2$.>F%0WuE2eP:="J +D*!Vm-52W<>m)rO%VJ^S[eOPqi=6)@):ZZJKH(FZ.RBBl=#ZY.L1;gFh$#Qlo]Ai@bf:CK$d%O` +C`pX!2qMj=)Qh:^QSKN*pd6Lga'L[oq)8t4SC1o6<8e'2T2r+,VOXEhD1gX8DlLf,FYD_%V(%+0oVc%@N2(5j-C5\6%ER>Uae,tQ)1I+ +@[X*m\e(a"9H$V2LB4u2T*@T;D%!+8lUI^=.VqSQ2if0DVMsP['c82MW]V.'JVZT-`i;]tVCBn: +U,S+S>A2L&!L,;T6IIo=-)C&&D^WS&-se5[$Nf?F/0^RbbqP-P'[*0OeD/6$j4*G4$r#%!_2M&a +?6YDf$;NE$!mDWFV*T@t78\Z0d*o4`,ppL2j-gOs%>dF$Zngs7l8U)+YiHU\K=cV15[QF.W$3WDL$b_@q5_TE +*nS!JW`4WWF3n5Jh(=j32on:h?k +%%BeginResource: file (PDF Outline obj_6) +6 0 obj +<< /Title +<586D6C537461726C657420436F6D6D616E64204C696E6520584D4C20546F6F6C6B697420557365722773204775696465> + +/Dest +[4 0 R /XYZ 72.0 720.0 null] +/Parent 5 0 R +/Next 8 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_8) +8 0 obj +<< /Title +<5461626C65206F6620436F6E74656E7473> + +/Dest +[7 0 R /XYZ 72.0 720.0 null] +/Parent 5 0 R +/Prev 6 0 R +/Next 10 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_11) +11 0 obj +<< /Title + + +/Dest +[9 0 R /XYZ 72.0 690.141 null] +/Parent 10 0 R +/Next 12 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_12) +12 0 obj +<< /Title + + +/Dest +[9 0 R /XYZ 72.0 358.706 null] +/Parent 10 0 R +/Prev 11 0 R +/Next 14 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_14) +14 0 obj +<< /Title + + +/Dest +[13 0 R /XYZ 72.0 632.0 null] +/Parent 10 0 R +/Prev 12 0 R +/Next 15 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_15) +15 0 obj +<< /Title + + +/Dest +[13 0 R /XYZ 72.0 399.117 null] +/Parent 10 0 R +/Prev 14 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_10) +10 0 obj +<< /Title + + +/Dest +[9 0 R /XYZ 72.0 720.0 null] +/Count -4 /Parent 5 0 R +/Prev 8 0 R +/Next 17 0 R +/First 11 0 R /Last 15 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_18) +18 0 obj +<< /Title + + +/Dest +[16 0 R /XYZ 72.0 690.141 null] +/Parent 17 0 R +/Next 19 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_19) +19 0 obj +<< /Title + + +/Dest +[16 0 R /XYZ 72.0 555.258 null] +/Parent 17 0 R +/Prev 18 0 R +/Next 20 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_20) +20 0 obj +<< /Title + + +/Dest +[16 0 R /XYZ 72.0 464.375 null] +/Parent 17 0 R +/Prev 19 0 R +/Next 21 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_21) +21 0 obj +<< /Title + + +/Dest +[16 0 R /XYZ 72.0 395.492 null] +/Parent 17 0 R +/Prev 20 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_17) +17 0 obj +<< /Title + + +/Dest +[16 0 R /XYZ 72.0 720.0 null] +/Count -4 /Parent 5 0 R +/Prev 10 0 R +/Next 23 0 R +/First 18 0 R /Last 21 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_24) +24 0 obj +<< /Title + + +/Dest +[22 0 R /XYZ 72.0 690.141 null] +/Parent 23 0 R +/Next 25 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_25) +25 0 obj +<< /Title + + +/Dest +[22 0 R /XYZ 72.0 313.667 null] +/Parent 23 0 R +/Prev 24 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_23) +23 0 obj +<< /Title + + +/Dest +[22 0 R /XYZ 72.0 720.0 null] +/Count -2 /Parent 5 0 R +/Prev 17 0 R +/Next 27 0 R +/First 24 0 R /Last 25 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_28) +28 0 obj +<< /Title + + +/Dest +[26 0 R /XYZ 72.0 679.827 null] +/Parent 27 0 R +/Next 30 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_30) +30 0 obj +<< /Title + + +/Dest +[29 0 R /XYZ 72.0 222.096 null] +/Parent 27 0 R +/Prev 28 0 R +/Next 32 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_32) +32 0 obj +<< /Title + + +/Dest +[31 0 R /XYZ 72.0 188.592 null] +/Parent 27 0 R +/Prev 30 0 R +/Next 34 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_34) +34 0 obj +<< /Title + + +/Dest +[33 0 R /XYZ 72.0 480.0 null] +/Parent 27 0 R +/Prev 32 0 R +/Next 36 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_36) +36 0 obj +<< /Title + + +/Dest +[35 0 R /XYZ 72.0 650.864 null] +/Parent 27 0 R +/Prev 34 0 R +/Next 38 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_38) +38 0 obj +<< /Title + + +/Dest +[37 0 R /XYZ 72.0 481.572 null] +/Parent 27 0 R +/Prev 36 0 R +/Next 40 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_40) +40 0 obj +<< /Title + + +/Dest +[39 0 R /XYZ 72.0 640.524 null] +/Parent 27 0 R +/Prev 38 0 R +/Next 42 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_42) +42 0 obj +<< /Title + + +/Dest +[41 0 R /XYZ 72.0 337.405 null] +/Parent 27 0 R +/Prev 40 0 R +/Next 44 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_44) +44 0 obj +<< /Title + + +/Dest +[43 0 R /XYZ 72.0 352.0 null] +/Parent 27 0 R +/Prev 42 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_27) +27 0 obj +<< /Title + + +/Dest +[26 0 R /XYZ 72.0 720.0 null] +/Count -9 /Parent 5 0 R +/Prev 23 0 R +/Next 46 0 R +/First 28 0 R /Last 44 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_47) +47 0 obj +<< /Title + + +/Dest +[45 0 R /XYZ 72.0 690.141 null] +/Parent 46 0 R +/Next 49 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_49) +49 0 obj +<< /Title + + +/Dest +[48 0 R /XYZ 72.0 628.72 null] +/Parent 46 0 R +/Prev 47 0 R +/Next 50 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_50) +50 0 obj +<< /Title + + +/Dest +[48 0 R /XYZ 72.0 363.437 null] +/Parent 46 0 R +/Prev 49 0 R +/Next 52 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_52) +52 0 obj +<< /Title + + +/Dest +[51 0 R /XYZ 72.0 696.0 null] +/Parent 46 0 R +/Prev 50 0 R +>> +endobj +%%EndResource +%%BeginResource: file (PDF Outline obj_46) +46 0 obj +<< /Title + + +/Dest +[45 0 R /XYZ 72.0 720.0 null] +/Count -4 /Parent 5 0 R +/Prev 27 0 R +/Next 54 0 R +/First 47 0 R /Last 52 0 R +>> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_57) +57 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_61) +61 0 obj +<> +endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_62) +62 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_63) +63 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_64) +64 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_65) +65 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_66) +66 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_67) +67 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_68) +68 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_69) +69 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_70) +70 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_71) +71 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_72) +72 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_73) +73 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_74) +74 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_75) +75 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_76) +76 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_77) +77 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_78) +78 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_79) +79 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_80) +80 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_81) +81 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_82) +82 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_83) +83 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_84) +84 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_85) +85 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_86) +86 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_87) +87 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_88) +88 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_89) +89 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_90) +90 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_91) +91 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_92) +92 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_93) +93 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_94) +94 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_95) +95 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_96) +96 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_97) +97 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_98) +98 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_99) +99 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_100) +100 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_101) +101 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_102) +102 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_103) +103 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_104) +104 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_105) +105 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_106) +106 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_107) +107 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_108) +108 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_109) +109 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_110) +110 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_111) +111 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_112) +112 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_113) +113 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_114) +114 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_115) +115 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_116) +116 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_117) +117 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_118) +118 0 obj +<>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_119) +119 0 obj +<>endobj +%%EndResource +%%BeginResource: font (PDF Font obj_121) +121 0 obj +<> +endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_122) +122 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_123) +123 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_124) +124 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_125) +125 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_126) +126 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_127) +127 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_128) +128 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_129) +129 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_130) +130 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: font (PDF Font obj_132) +132 0 obj +<> +endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_133) +133 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_134) +134 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_135) +135 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_136) +136 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_137) +137 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_138) +138 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_139) +139 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_140) +140 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_141) +141 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_142) +142 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_143) +143 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_144) +144 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_145) +145 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_146) +146 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_147) +147 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_148) +148 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_149) +149 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_150) +150 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: font (PDF Font obj_152) +152 0 obj +<> +endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_153) +153 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_154) +154 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_155) +155 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_156) +156 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_157) +157 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_158) +158 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_159) +159 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_160) +160 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: font (PDF Font obj_163) +163 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_165) +165 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_168) +168 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_171) +171 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_173) +173 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_176) +176 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_179) +179 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_182) +182 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_185) +185 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_188) +188 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_190) +190 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_192) +192 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_195) +195 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_198) +198 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_201) +201 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_203) +203 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_205) +205 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_207) +207 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_210) +210 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_212) +212 0 obj +<> +endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_213) +213 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_214) +214 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: font (PDF Font obj_216) +216 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_218) +218 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_220) +220 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_222) +222 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_224) +224 0 obj +<> +endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_225) +225 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_226) +226 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_227) +227 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_228) +228 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_229) +229 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_230) +230 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_231) +231 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_232) +232 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_233) +233 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_234) +234 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_235) +235 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_236) +236 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: file (PDF Annotation obj_237) +237 0 obj +< + +/S/URI>> +/Subtype/Link>>endobj +%%EndResource +%%BeginResource: font (PDF Font obj_239) +239 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_60) +60 0 obj +<> +endobj +%%EndResource +%%BeginResource: encoding (PDF Encoding obj_240) +240 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_162) +162 0 obj +<> +endobj +%%EndResource +%%BeginResource: encoding (PDF Encoding obj_241) +241 0 obj +<> +endobj +%%EndResource +%%BeginResource: font (PDF Font obj_56) +56 0 obj +<> +endobj +%%EndResource +%%BeginResource: encoding (PDF Encoding obj_242) +242 0 obj +<> +endobj +%%EndResource +%%BeginResource: file (PDF object obj_1) +1 0 obj +<<>>endobj +%%EndResource +%%EndProlog +%%Page: 1 1 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +4 0 obj +<> +/Contents 55 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +55 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'al8(`!10X`"Xq[`^CDp5_9ms+Vb#EnrV@;+;kUl_h#VI5ZBO.j02sJ +e7/Y#%KllBaP^;^(s@euiB^l*Cakn`-R3&akTD%)GS4K8PmnDPmrIhd@c"n1*"HV +UR?Ch'h'I5-0FfEYh!NdPtkpiOIYGU,FqOU9'(@h-'O9Wio--e?j[iKL80V0QtIn;c)nGFBr' +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 2 2 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +58 0 obj +<> +/Contents 59 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +59 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWRXJGRac3qK,@K4k[o1U>'I%i2o.DPIRI[E]*6[ +P97j0_Y8C_T)UHac"@.qC+Y@Ob/7G0SrGW4+kQEp4`[X,qrspC=FRrt[J0G"/hG0/cE?V7cKHtN +_q;aSO=NAJ"t3_%&4.d15_apn&?#a9ifImo6@ke7)?^,7bQT.\3Xh2t!J3'G#7*#^LBRapg,9:J +TY`\uK.,pp#\/,52N/l"a:JZ18DGtR!l16O7&,"`2@X.iIO^@f.-)&%C+/@(N.WNV.Lf54U`1Ir +XA'B5@;o`s`^4&I'FCO*ehdd[8D'Ys6`B-(8OK#J4G=q<'I(G0U8WTm~> +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 3 3 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +7 0 obj +<> +/Annots[62 0 R +63 0 R +64 0 R +65 0 R +66 0 R +67 0 R +68 0 R +69 0 R +70 0 R +71 0 R +72 0 R +73 0 R +74 0 R +75 0 R +76 0 R +77 0 R +78 0 R +79 0 R +80 0 R +81 0 R +82 0 R +83 0 R +84 0 R +85 0 R +86 0 R +87 0 R +88 0 R +89 0 R +90 0 R +91 0 R +92 0 R +93 0 R +94 0 R +95 0 R +96 0 R +97 0 R +98 0 R +99 0 R +100 0 R +101 0 R +102 0 R +103 0 R +104 0 R +105 0 R +106 0 R +107 0 R +108 0 R +109 0 R +110 0 R +111 0 R +112 0 R +113 0 R +114 0 R +115 0 R +116 0 R +117 0 R +118 0 R +119 0 R]/Contents 120 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +120 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWRXJGRac3qK,@K4k[o1U>'I%i2o.DPIRI[E]*6[ +P97j0_Y8C_T)UHac"@.qC+Y@Ob/7G0SrGW4n&1"j@=L!:aq,\ML^6F7:qWSC+`FT`1BC$E%YFso +J79<"!LQ+iLEUVQ)[@P-5Umqn5gp0r,,!Eh#d<8bofVYoq":IWX*k\hNl&[K4)VA$(kG><1:fO8 +@h0?gN!)WI5*>sa2SW&Jr#1=9W\TFJn0AGC^8YLX(^?[QA;ikEaJ^eO6X\%J%HB--+cYN$kVCB" +S3%7rci`Qe^hR7^*/7:/W$VO3TN!Ls&6M13Ks-SX3NE0GP;<\9GfVq)A"_:+Kd!f?*/4L0DA5n= +#[n"HTpSXm:^pu#:kf]%>>\?74\Jc)'dZRTeQ%$!=&kNV@p7G`c#I%?Q0iKsSiCgJ_rD`$"eoX]`oAZoY!$U;j4#BMM5P%AR=.3Xd6t]K-3>LhISM+dFcI5$<"]GMa;c%tS-"/s2oC3^+"Ml5F92G%.D515e^_ +rP,;qHL@E)lh^=?Yj@i#c)5CSk0$oe\*=KAlZQrNq--s%InaTYSh#_nRG_d)j1,)sf490ZE<_*u +BYlTcgasimK`WsN0TLdaj>+t_ep&1/gUlRi+%gc'Ba"%LGY/@*/5V%VE0_> +JDN:[j!VZ75p<-K-k2]>c1R(/c?C_[qnKuUJXao.:CZ8J=-i0F1^JX$%KsBKMOd]aPATZ;i'=4m +"!Ch`K+M>u6.O\Sg"8'$O88;JLWBf'P8&>i6,,/;!r"uJ4+%/Bei-uqir^Nb%.MK#(m&J>!u$W* +U#mC`:iHaDJ7/jpX>#BQ0FC^i49dDYs$K%Zh4XBLM_J`E7EDkQ@,o1/i5ch*i["(=#C'MoL!!AR]%ibFGKe;\F^*N";T&Ur4N<-U6#KiaXRktS8eOM%l,c.43&!4#e2*nc)-"Or% +P4E>D2,I]I_6OW(D8o=C=PFfA7%9G3W]7/ig@=8Db*=_o2E*Jt8_!Bq+HdQU"#s8ffXq5O;Ml9r +"T4nnb#O8?(cP!I_]mm1O)_KMAOUj(R9p*IDS\'I#>jq)&6a0Rch_KHH"ed?2!C3GSlr]aWl@u, +jH_R,G0[YI4_IaiT*q$CRcmH@B$5J@L]2FcC,A(BnG"(5u:PmRhRW: +;"r0Qhl(Q).B4eKG39n0jUS!uZ?fF&=\Iqk/skWeMkJ''4R%OmVc2lK;n;V<8N?nXd?4GbY[LAe +r<.gre/VD5')/>,/VM2:kKt.^,:8SAWc?SQ;7`QVC?(/-5s-UHWkh\%`)&cOkSq&>buH!r4f=P, +\^MJ\l^Fb0S06A9]UIqXlb.eP6h4QAn)P7elQ'_D/9BcJWb\G"-Tj&,KrZW;Z].ZCM.0aq`mc( +THf1fkbEcP41S2dRBouKc+,/s@(&DFj,@"6iQm`5+KK4dKa&\1>(N86*1'Z+Z(di7Q"g`/,-1q:;?ilR?Tfb;3 +91X[bCq7IY*i@4ugNbH$0YTNcEA^R1Q"t%l[[5_bj%O)8S!m=]Df*,G$kX)fV2ShBiQbgj@3EC$ +;eLX@+u:q<)$A)D;`RK#.HY4^P[fu!q.tX`g@u!g%V3^iieRbgRM.JX>m16?2hj$O)cK*`]5[Hn +B,P]Mmg_,"3;KPY<"eQMc1I<*"!6[Fki&d^GKZES,e(8cH,7'%Z7sF3.3npaR=d8,N8!GYnh^gW +Wg=&YPVWMF/fTE[A\/BA:Z';HVl7n$crr@ol_q\NDb1,TR.">@c&JuO7YH^r)b!$9V/NWO,U6;3 +'E`^]8[]?>H[$1%WG4.m6ATd7fk0HuU,%+gmV^;eIrh(1ar*"U-87HqW:F]$DbKok?_Q2*K-lQSG30:%74MbFeUn"mT3%@lRl[%Ikag%pG:VO%8Bh,$ +ciZM=XH`8%A97$qDba:[Au-so-jnEc1knSs\T%Rm#;DXPDSI0er9%bU!R],j/aJOHI7JBbpV$=i +>GF.ZOp73CU%_?"lRC%g298Zdq3:(-PNY!c50MY_'WY9*R[)+U)>lKi]CIosBB:31\ZjFXkdR0> +\%L>B&6aqXmh>7eES&hA$1t[&ih53:$l]:FEUA1pn`[S&N&rp7_nMs8ko<4eId\%JKd=iP(49c; +#])1gX;pe]oWp"sUs?bdbgPQk#(.ekqJ;o,CoC8#Yi[,TJ.&fj&01b3b5P02rbLSGj=6`I\@liT +ouk2tm;V470'ij=,j^d".LuLGWj69-\&aU3a2m10jol/IIE@R:B')F1:^R3.$O=KQX+'*q/nY_V +KLbtJ$sa%@7gi,:Y6Z33Ua1o&i(pY9Wc^8N2t>?d8Lbl^jp9P6"H'ecLhRM`uS%0=3(G0-q+(B/4"91 +H406%.?pcMFSP*^QK^U6T\dQ/1m[;gM$4MbTZVa2Ee]07'M9r!b_I3Y@3T[3Ms9)ABLN)?lPrdV +,-j3-/*@=RJd+JW*earK&g2S#aM7-F,;=5TXYNMrrWN:l$nUo\BU!QH[j)Ln#dSX+9i1]R=:?>; +%>J!GB4gB=g][]6-H@fs/Ro_N6:"rP?("B9L8uYJhK,CdjI*gBP]+[ ++G:[h&iVpo_`SU^[ki^h/c$a_kc"*b3ee:$mfJl?7VcrE_s_.T5YqdFkR@u+X%m:C:/5COWmm2l +W_R/`l6+Vbk%-g=egE4FW(eQ/r>IDI4B+I,O'mP%YXoHad<%ZBo6S*Nn9N/>5h%e8c\,c'680U^ ++ +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 4 4 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +9 0 obj +<> +/Annots[122 0 R +123 0 R +124 0 R +125 0 R +126 0 R +127 0 R +128 0 R +129 0 R +130 0 R]/Contents 131 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +131 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWRXJGRac3qK,@K4k[o1U>'I%i2o.DPIRI[E]*6[ +P97j0_Y8C_T)UHac"@.qC+Y@Ob/7G0SrGW4n&1"j@=L!:aq,\ML^6F7:qWSC+`FT`1BC$E%YFso +J7bV^@E;[m#/SB$&.454:`+m1T[X,NYN&IP4RRgroqb?_I1ioI_S[$KDR0-TJP1nV\iT:i%hu^9 +"?u]HOl@39^JEnf)MZ'.A/YWf^i11.O:FcWi/-`-Za=(R=L@Ck(/VZ&0Jh[_pW9=d#")-=9Ne7Vu2@Q@R;A6gK +quVSu@A%QN"eh#m(Jj"WBaP9!:pq&G!bdum;H0J.'SW6M>m,n5\54c:"/+j;#=3T@4Aj"e+uohE +SJ!pk@joP[N^GeK(Celm?7pmGV/-rL(!tAhgGQ$;5GGtZ_f4@OpeX!![me;o#%9dR1L8Si@Mo=O +(u@01UBoX1?FNb`1toF@\eJ"/:'W_:[fs0`_*L>r'Fob?hDPjQi)>0_!C6'0%3l_;J;6).rIY:t +TP>/L6S:r`?%X7t/rG6[$RlFI(oS0LGceh$6#Zg5(ug15r&NHjOP1I_q?UN'K`d.s0b62[I\N+8g?1CR8YrZN_@;kI&)+SlRk2"";e[FW>i$IG_O6%FTAb +7L>LFZIn?c@8rFK0TR@]jl9SbrX5NT*:Ujt";;(27Ii:3^cM5MG;(M'_FUp$N^G5RVIhks_E3a' +B&YTTg0imEA6NBj2rL-9.P\[YV\V:He@Hit6,RPYTh`B@qrapF[P5b2!5i-dQk&X_&3@o:,srMi +%4Ql-5N$)Q!K:?FO;]f'"X^i]U.^,uh0?-%o&BaeWb>eVY!N=u.Ss?GDU=f*2^l'`V:-_pl\8OS +Kle?rd_9[a&mWT"FW0A[Ws3@X+j@e20q1k@R'P,,6E+FGi0(ZZ@>SFt`2,;'%,%)tc<>sja;i*- +F-]9B&r()q21_th,f$*[X7_(Kegg8$J@T=tE*iQIUiL)Vl(.s,P35f?Al:(k34?1>7Mh6[EM0n$ +X.[W-g`sQDdbV4Ja@O\r'D,G7=KFC$.,jCTnk9A*2`l*s%V]T)H&Z+48BFQ,W3fl49I5D3VQiks +UKe<"&rkCu>T8<,7],]-U'CsYn&#g2WO5Th#$>4Al"*G]2$AhhM)<;KMH^M:4?<^K_^/B"Vjqgn +.7'us4;;!5M_@LP#2n(B)=V`jTRnOh0\@>^JmqspT#!fQ>r^OpRW<=#1VOXCB%DKJ@o)bk8bA2H +V&^!Jn#S;HFi,V8i&I?-WENJ^FKU0Vmgb;6dot6A"K?N":+dI7+"2Z8W?o66^n_R!rdsC(C"fi+c_aBD6.Daj8=V:#Fm^arK2r/FW +E2,s#;N^l4[S+dM=(;331!ThYO?n"1Ha'_4%S$`']cVkLD.&9M1q"^'#T0#sA^g<[/1$QcQ>9&q +92TJ4g`@I!!uP.u]o>-ckT3\pRp56=T1<;JB-7)EPY_uj;rs':'qdQd@+:;q8V`CJ)2VpDJ2Q26 +>EFZf0F$IoFjW*6fC!fQ"j2*h0h@LoZ6htNQPq@7r.gDBr9g_GLF=+MQE*JtnS:64[^h\[AkC-QUDO5A'9mTEkE[!mN'^QnQo(`iOioRA\8:]-Uh0_&E#+2J +7g.cQUP8uQh0Zc9<4LE]:SaG];C&?C8*]Z&$oM[#Ym'.[-@LT=Bh +O2pgdB57g!;0ES]QAXutm?P5jff%+.lf$aW4hREYP8"Nc-Zd578dXZ4[G&4BLs]4:YkJ:'G-]"r +10JHtB3#p#(f1c)HP&[qW#uL#H/S#4EG(pS4/%P8+"JA1h]V&paSS%K=G`BXaNYNPb:](KFK/el +>kST"QDN139YqVEhW<]Q,_\sHan%k%=gZd`j[MGTF"I0_RJSN>nF*Bf%YglWLKX0frE)'=)$]Ss +3,J#QXariZ=OLk;0V.U]\fOhKI=du#eIc2s'Qes;%;#g3Ta%YJD?[Z:0a9hslnL85PI>X2,ca83 +_S!>^8bXD2Ar.WtA?PDnohSU7r=?O^;)P\%3[6IFZ!&]Ab&mqWVA=3WAXL" +FoF^0=$[:DK&4t;-uBS,D3Lki(IB-03mq-[e+(XSFa1H9/a59/;S(tAlaqpL^00?O;`eFm-W-S$>rBCTT#PD8EB7=Whe.\`8"TMS0E\gO8mV%[MW]8Oi:JaqE3X<`SOa#rf/Aq^_"%BO$krq[RFBSnP%U`0WN21Qj +'$?;r:T6O9V09b5rkmic#c48!AZ?5j?>1bi"lOj8V%O7<^'u4+#G`L3^gmhMXU,*jA?7Be0TZM$ +mZar&$Dg:-jmZWVH@&KdPTXdK-3dSt!*=l%_k:?K/Q,_*0#UT%>1"J3&KkJ8T#E"7;F"EiVd*Ef +1k3I/8AYW:jRPm8'PsU0eYa@%;+\laU8o"i)+(l$t.]tW1:,.FQ"Pr#>og,#t#I\-3oK_#JaN8+CIit>4_.h9P1qR#o$6k +o[j>__^@Eb`a&$6fEJ.8E+$ajXZAZYepSZ+#_8iZL6r>KV]c%*$:e>0+Rf]QNtcPRJC2FBZ-=9l +\817/%?]Zkk,,CpkR.B`Cdpmhkk:/Mf\i^ZObjEc;QTD8`=3eX=eAqO#\QfeEG1eF.0=sZNZPq_!3.)F3b(iKe*4$""'8*.h&4lAaM8AdGdmTd`HA4?GH;$^QcS4s4+VN]1g1XeUOFXbf_Y`nB,LTr3\Zrg2ZOK&1IJ>rrA +R0h:kB9WWG5_Mj,Nu;i&P,-N#WnOT<:HjTX4(]gc%E`o@`i3U.B>@8P$V]GK1jOi8HmIKN#Z>.T +;_,4l-o*VQo+[&0=Cp!=51-<'#a/Q=aLfr#&:h#Z&[$u5dR0c2.Y7^~> +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 5 5 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +13 0 obj +<> +/Annots[133 0 R +134 0 R +135 0 R +136 0 R +137 0 R +138 0 R +139 0 R +140 0 R +141 0 R +142 0 R +143 0 R +144 0 R +145 0 R +146 0 R +147 0 R +148 0 R +149 0 R +150 0 R]/Contents 151 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +151 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3g]R)E8D +QGuD3ErB,Lt2nJtl43FW#rO<4Kiq,5= +ldl9?ch!J-\8)KWq5u?=klJK_>E]:RX9p)h0bFI(2R1JY,g%hi>;".)BJ=$8#&6tH*/255C`J3^ +.o$s?Xh/Wb/[0m`^-W-)T(C%Kgc1Hfn#Aqg_Cg`,l8m9k#c5YK])_<<9WJ_YZ)i9raihpZ0[2AS +8m!$e/Fu@P!CGF`*/:0V=rTRi5d2SlN*p*5%Er4s2`>/:`\8U)&3r8*6Q"9?";BSe0oZ8@j=n"E.-*CA"&/l)%KiZn&.X=@n2aG= +N@dh!F0+gmM?B,l@>oh0j>+.GGiUu?!tBNY"9Te'0oi#Bb10WOPqPhaeDO.H[UZ^f@GDWch@L"q +aKQ3af$N/@"9RLX0jDODa:L7MZ+TSB#NWY!C@c66rfg]>DOP2_8ZQ)fb1DuK")$[X[>FFY7 +fTBHM,>ED:WZ(Pb2iPQQiM2F%:7$W1,Il,g%2F]Q2@6rq:5WP1O(iXQ7^ATB_Gng;riIN0nZ*9U$kLt9)Y+UV[$?70YS +TS_7US5hTq$3=h@eoOl!Hc^sC#a=7N5sV_7Ni:ma1Q<.e`K6$'(@bj?iu$W2NWW(d6/_M4f<4I^ +#i7TO("ITFNVkJ+PN=f2>F2Z6Nb0&]D"_a\=jSQ$J@H-nB0`YQ3$8W%q-,Gdi3!/a@1;FlVP81T +MV=.DC5l=6""40#Rc;"rm=[L.2Td#W9#Xkk\e'X`TV.MVL^n4U1HGa$h&ES=D\$"U/[in,+HiXA +`nBB3Q]TP1Qph,XU_\T5B%9Wn2['4K+@.l1'-_BQ"T`K*LHsc-JTrgXnVe7h0^9Xq-n]k_[8I5` +?5s`BG#=-W3#^7P*@#ZY=d`B"'NNZCKKFTh5>(` +=I;ATJ2mg3W#:4Q;(ncN"_+`S0#dV'+'`b=1VoSCL-X#lK-I'$_85LgF`\#/ODkZ%Zo81)4rMjY +Z44UZ3!Ook&(ER\#G@;!"CS6G<(JU'dXk$+n5*q$4T#K5<&RBoVb62,b'8*(-a;%j:S#;!<'/TdY1c5kRMLaZArt +/%u0$C5rEf$FRd@E=*D-&5jE:(h4D,"k9)AcY@/e6$gLPn^K:FqKi]\h%=jq@FM9-5jG!l^(#3c +C=5Xf)k8H8Q2uq"[$W0JPq[<>iK,cb0ZO<3r:LO7RS-\9o24:W;04fQ+T>BKGUaaiVd*8I>c+WYX=$9T;tZkKU, +MJE:g->J0XD[!6Mj?sqc)\kn_"gs6( +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 6 6 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +16 0 obj +<> +/Annots[153 0 R +154 0 R +155 0 R +156 0 R +157 0 R +158 0 R +159 0 R +160 0 R]/Contents 161 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +161 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWRXJGRac3qK,@K4k[o1U>'I%i2o.DPIRI[E]*6[ +P97j0_Y8C_T)UHac"@.qC+Y@Ob/7G0SrGW4n&1"j@=L!:aq,\ML^6F7:qWSC+`FT`1BC$E%YFso +J7bV^@E;[m#/SB$&.454:`4s2T[X,NYN&IP4RRgroqb?_I1ioI_S[$KDR0-TJP1nV\iT:i%hu^9 +"?u]HOl@39^JEnf)MZ'.A/YWf^i11.O:FcWi/-`-Z_/O#^6=QUU/VZ&4cSWmfCu74*'O[:bNPh^a'SPr@rrAa6 +fOu6-!GH!^Ku'F"X29K7[N^b7.)nIuj>][2B[RG&")-@U%RXXH3X):o?#pMWD$i,"oBi\=dZh*=qU7?N$66o> +%0dLVoml.+h%r%:8.:,Aa#=F8(uR*,@p$T(eg%Q?3R._G?$N)?V$8CQ6J,*cNT6s&'[sm[D'TO%dP4ahXtNDmZ8)_`cVP`g:"-HI65WNV +0Mp@pdmV_E:"ZQeQATg^au#-%9Ds.h^fP5G<##sY\bB)m/=VI=\rN:_1XYBd)R]T[t5:sfAeJq,#pZNaEA*12@J +BbD%?[,u\\g'j(+:5CXHB.#$0^b6/uO>-h1gtWOs$Xp,!1:EM"$fL)H>[_dk"XJoiPJaX+:rV.e +;R6i66:clLrC&gp(_t[I[WsO*jf+$joAX9.H@RH*"]t'i)03rEi7J`,WPWG,\29_8&i;@8`.M*X +.$lNNrk\9S$XWPToIMJ"`Z'I +M]?6PKon,WZCdeL%Lo,-1UG),;o+XlS:TL'#>2-b.`rMeCEAjX!$5d">KBahXqY`kTh(R^kS@]TO^_rkp8*]+V,LGhlU;I)C`&(?f(Hk:[3A*[.urp +_nD`I_2c_g$V%;8I(X=``gAO8R$d#f^R@Q1L'E>T/Q[fM0I9PGJ,~> +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 7 7 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +22 0 obj +<> +/Contents 164 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +164 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWRXJGRac3qK,@K4k[o1U>'I%i2o.DPIRI[E]*6[ +P97j0_Y8C_T)UHac"@.qC+Y@Ob/7G0SrGW4n&1"j@=L!:aq,\ML^6F7:qWSC+`FT`1BC$E%YFso +J7bV^@E;[m#/SB$&.454:`9K]T[X,NYN&IP4RRgroqb?_I1ioI_S[$KDR0-TJP1nV\iT:i%hu^9 +"?u]HOl@39^JEnf)MZ'.A/YWf^i11.Ol>'UR*m^B!Z9cPNM?d71'OC_e1u[Y +I)%Ruj)F,pK^\7,!24JlBgDp.4OalJO$FdM3E&>2GEV5hD^FH=OK58<,HDB%$eWa9FeC"fl`9! +.-;'L_gKLCM3c4Z.ZS!Ec8+4aYh0Kp@Gp$;e"`:X/qa8`a*5s?p)/bt[&+p%i]*M44,jmg0oKND +-8[R:FR:b@N7J/!'Ef;PbBW0C!4W_M_$4h#Mh+WES;!X:MDAIGGcE_3K+,U.?i^8K2iM7Fg+q9j +f]Spc=if_\iH_SMT'Q+n`]@co*f;E5""qp!Bu:3BSrP%s`'!<$#,S>7g;_JRCO-b>/.)FaW$DP7 +nE;UmR@\F[9R4q(1%H$?kC/FYDUY>;K9n168/dMdWp9H,!ORlo<7e&U@UQ1sct6Q@$Sat;NVVOXOdF;#+AmE%YZmMt+G6YkXC;aI7sl*N#9H*Z[q(p00/1?R$@K.Atdb#`(0/eCHJ +_\L(R=aTMb3!YQ8$X)d&%FH@;Y2J(UP7Vhel)6WIn3@ZhaB3hMAbNIQ#H$/f6,jDhq$L2SUc],+?Q_J;%9TXs6: +qb\N]^8El$*>8!r$DC&c_AFmBQ_]_6&AU&U(#og2:i$Sk\SS'aQjNnfH&0ZjCU%$lXdN,$RBsG] +KM\0R![prV:17=$[;RqT'*)9'a`9p!=9ok2(S-K?H%H>0\ee=tOJ%09[r>["_k8Z?NOUitpF<)3 +!ndc.D/R!ViicG<4/@G8Ijp'#kTN'OC[,:a-@k"aJTrhV:r,*mi8u!:=CVcB@=s0nk>5LUG"BO_ +)lKL#!eG*aGGldH"*KER'mM,aag=)6:rj\V;J](Daop@!(u4%j;$`3t^FU&rJ.JZV5aCS5Uk!7j +e-1@'6#75<.b@Zd!%A)La_;A1EXDonBXKb"(]oGiCsS1k;F0Gm=IX;I6b;Rm(B%qq!,$*u6=[E( +Yf,-n]\]bg%RNG%)Zu"8AJOU=\j50lK.q(]"0K#E1&Q<2u?+_<+BqR;(H),q8^+S,\;SH#/H?+tOAZ+FY^$C^TNJ]t2p(W2d"rGsl1GWDiCB'fbiZgNq\^s!]! +D"jlL[Z\oS%nDA&6koePG`Z)^7Y:SCW3d=edbUa]agDBW'ET~> +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 8 8 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +166 0 obj +<> +/Contents 167 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +167 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOPFUi +*(Jr8Og*V+2^4aQR1j$;-&G;&:BTL^e,WW8'If0Vh=A]UKEarQ;jnXdj`c +icRAU#Ug\YeS]fQkLaNS$93QN0H#)35%0/2e`ZZsr;N=I0@)TJrU(\QT54#i43KGB^O]0!WrYHq +.`D3IY%mh.6-Ag(kX&$2_ZW13Mm0cY&#,BQ6>mM=LbVRk8qmeVF!/R[N(Ol/ZRf8g)280\PSo6" +E,6Hu+j3X1L98pLhaD6r.h=:pW`87HP$>a6Ulo6[P!fkfXLUDFg`HZuEg4)L4HV]T`$&r4*ls4) +Lhmqtbr[W(19=)M)hoMpF;d[-:f%^!PN[6ONeau0ZZo`7?:!jKO"%\kFs(X[=F$U`;s +'/MNRJn4OtVOCN`DBWeL#L#jk.!rOlfa-Bnb^F%We@N9Us-^bPoaNo)Dgp!?lK7OW9:PeJT@n%hQqBHn+$7,QgWrTZ^:nLp%pt/39Qh7U(,BgrfWV( +nXs+Z#7pkL#2m?=K1KWuO3S2#`pC.OW+U77A/@O>o!O+7,_+0XlNN'K%$AH)H`qke]\"Y;JUfat +mZIbd8;%r?'JY<'29IFJAo1OhJ;&\f)SKP8*"?ta%Vs&U^9sJ!_5dP::V#f)OAZNbauiaEmI36J +I+RCGEsL5p9(FMOjH,i!3u +DK7b>[FmDUT&ZLRTtsf%n8fMt>2Ba?ePUq_1_&Mb>Qk.*]=<,>*8EBJC`oFtLBg!]<-W5@Oo-(T +jT;5gpc((FTlNQ#D\.OGQZk2#3D4nDTUOMNI1N=N/NCi]UG+8M0DP7]=1oP['8N)G&>m.]3"DDT +l^X)l1=$iXN@1OH%B`sj^E?H;Ve@JX@EiT,.HN`)rhu)1VQgQacoLtsaI"cDY>0U6\EbVX +N3$F7FZfpX+<.%AlOH4CXtI:%!1"8#NR'Qq;\L#.JHPaR!4J:#3@a=W7,!S8EqkSDm=[#*LKPB;2-B.oVQ@.2ZVO4l=uJ&^Y4hm( +'ghLdFrnk+7J1"(m+l&$*EP&jCgTei`YcPZ6r;2Ps_=r*ZC)N.OBX^78jai'a$N660` +HAj4cM\'-.URp']j\s1/kNVri=#VGk<=1$nY2C_*l2p5+]:i(-^"\0[nuYZVbB)Z+`k=/Dp!XbC +EUQjaLA,AFK/`<\iTP@eQ^0XaB<>+8rV6U51AkJZ:`\>7$,EbL$t.LYjPS^+_4\Vo\C4WSYX>h5 +QuY6B):a-(^(4'!Z>I=`s'mPNGH%a$mj^F(N"ee=UIDM?KiG,&BF?q%9M!l8%Cd:&BLM'PrU`mpSomT>I4 +`KpAD2$gs9X6#mXX1pSs-0o-o](rOQYMUB=)GRiPg4)aH +P_` +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 9 9 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +169 0 obj +<> +/Contents 170 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +170 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOPFUi +*(Jr8Og*V+2^4aQR1j$;-&G;&:BTL^e,WW8'If0Vh=A]UKEarQ;jnXdj`c +icRAU#Ug\YeS]fQkLaNS$93QN0H#)35%0/2e`ZZsr;N=I0@)TJrU(\QT54#i43KGB^O]0!WrYHq +.`D3IY%mh.6-Ag(kX&$2_ZW13Mm0cY&#,BQ6>mM=LbVRk8qmeVF!/R[N(Ol/ZRf8g)280\PSo6" +E,6Hu+j3X1L<\1lhaD6r.h=:pW`87HP$>a6Ulo6[P!fkfXLUDFg`HZuEg4)L4HV]T`$&r4*ls4) +Lhmqtbr[W(19=)M)hoMpF;d[-:f'7`UL7E^$q"FF(QLj2`YXF596/jp1LR..:K-?Q5YtE+$l=o@ +W7iI*,:M4"K_16#5E%E.#=?etR-6Ofj#oCu<#$,q;UVs<;c(e_*@Xq8oM&h#eo`i%6dmmJ4&=H# +Pt>Ca!I[sK2ALY&:rSV;_??`?cO5.Qp.uT)` +]f\2`!Pi4b"Tt^dHt9cO0G]]$Uhc2)A%9rJ$tDaA2;ts6 +#i%1EM*9EDN8k:QX5TaiFZS>g.-r^L6dEf&2>O*/OQm`IiYZMNL*S`f5tJR:#uk\98-K)j4tqX, +d+Lhj!l1H_Ng^O%4:W&RjuJD^TNu*&>TEA[MZO0Q-jbJRF_%dV<7oAM#`r=1mi;"N&6$CLE"H)Z +FX>NmG-k\'"kM1Mfa7Q4-.CS39\22smn[>D>IF]u(t%+b-"YG(9nDY4K,D()#GF+d'8sTVY?fe& +`AM@2s#k)ag!sA4p3bEBhdQES=2Gi&T<3^I<4^%tMW+:\`@eLSR`Bi[g&jM$^^7iHrIBtb!%^Xl +!h])>I4ugX_1b4<$DCEA+9~> +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 10 10 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +26 0 obj +<> +/Contents 172 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +172 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWRXJGRac3qK,@K4k[o1U>'I%i2o.DPIRI[E]*6[ +P97j0_Y8C_T)UHac"@.qC+Y@Ob/7G0SrGW4n&1"j@=L!:aq,\ML^6F7:qWSC+`FT`1BC$E%YFso +J7bV^@E;[m#/SB$&.454:`G*4T[X,NYN&IP4RRgroqb?_I1ioI_S[$KDR0-TJP1nV\iT:i%hu^9 +"?u]HOl@39^JEnf)MZ'.A/YWf^i11.OLaK!enueTPtGGToa%?8Q*XN"Uea,cSWmfCu,^,+_j[e.j;,n'96QRgbFh? +4aCBlaLqin%J(Te?brFd@q"#bAX-u;ctI;8g(OJ72iZBoW#XRN5fPM5[btG+g>`afF'52g9G@uF +.*6d@iQ\G<%YK3*GQe2/+up/mjdfg`3$%s5fX"u*1gsIiAQr(M:h+.eFR;7N<&AaR#)6.iOZMIS +-r;a\GgL#X%jQ&M3"C4G"rngq5g:rYGRUM\X=#?;d:(l$J'"TflL +G\F/*;V86J9iGTY3!t:_hDPgQ8E_&s!hG9*f`;)s3GF_k1QKr7!4W^Q@c11a#!*NU.ZS!Ec8+dU +0\N7(_#S^9NIuJo0TCX$Aia1,E985F"5%lQNMD$V0[(^0q@F$^G8(gO_bAn3"l4u"0'Y_fmPI\P +W'SIE*1&+t>ZW:3<]kbj-cPZSc?Z\H6,e!nWK\U)BU_bZ!H +W8odg)qa:6%$[ZtQJWo=p,%`Lk#n/$]D&,a_^hF&DO'3B#=RemS'2!D)+c8G/GIZCiFD,f41;"7 +cGO.SJuVhH1DJC])N(=]m;s%%pPeRt9>Yb,Z,AU,"I@lr/I5a8L4[cUdbP;CLJYra1<9sB>W?Up +:a(7@J>Nt]UXB=>8fB$9Cu#2>E//E%3'Ogl'GH+;Jo7MI\Q><,!VAtkOYp/@eA<7NPZ)oP^$`SP +i6A#XE,T0I3JJ+1)^B\]Hggc.!f1:u@jEs1OjW^:\$I4-">l+AFsR8_!Xi:=F:<%>*\"C?'OdYO +D*WZk.Al%e_ipm;,sb-NR/7:Y'TZilM:%(9f#qL[Ee#=G4"iH>bsOI.IfZBg^+e[h!t'9uD:'Il +!9l&21b_p\3QD?ecLo$;4:]Y68@cct'jn7fPcpKNbP?`-=_iAPb'_IMB\8gU4,S)EkS)"YPn`D7 +nV9Dr&4s\"*(+*sI6k@`/K'/0UkJIOO%O[o=EY?f]9m\5bSJFD;W`N5/>=h/2huVD$_gHLLf(%% +4@^h)S!%]!@"9F)5`!TcC7oE0VJnmoC7+5;G?Q/mN4XVm*%:0=LX(m4dpV+`Tc6?l@87=;&FeJB +C^,E2J[S$Uq$j?'#]\?Wc,/[8mFa`eWf`$7WkcY"g/r;)/m8+)_!s)\TP0e?Ah'cJiE02QDgrp< +-j1*[&ci.-RfUd&Y"4ctUjUW#MFOm4WmP"I]N.cC#tVs+k?Vl:H*$SZ^,_RF^nIfpO_MTP55;2s +lWf;WOh%8]GTA4H%&'>:G)]+n.8F\RDC:""43C*J&tdF:HZX"8cs#+3T$VA^NjUf?`TH%0BN5C* +13Z7M=HG)W:(EMKZWMLT%ka+lY*I_R=0!cW6ZbqKQKkcQ(Z-JjZohf7^bqamF5A7*[L0I^$6\M*Zkd\k.s6eG]c0 +JV5d3]KH&.'AZu>7f$S5du%'5`krHS%9gQd,Jt5$$obVT]ps*\ES[sLn2_jnLn"i?RaFk=c;%Je +%+6n2_25GE0t4XXM1[[b\aB1:]8:(jZ=>d#!9btdTX5(T,WZ;DbRamnM#s!'<51_P3N%D_r)BU= +bqAHBZY:EQF+A;V5`.U8<:-7Z5'j96ln%;@R@kC1A9 +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 11 11 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +174 0 obj +<> +/Contents 175 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +175 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP"+_ +)G=Qb@CUie%MTZfVS\bJ_K%OP:4`P0Pg!]!),8+,.&)gG0_[8f3]?RSOn(d6q +>1q*.c6lQ4n:H5>]iO=OI[u4i`1r+mUC@/Me*F^(A4Qj'JBCd98g&-]2'=tt[2&F_Xf,G!HmW&Y8Ge\4$QTb[H3Kbtj<*=d]MgM5-EkhARc@n#f%kLWg5=(k\ia(>dF +/rcZ?WSkWON46=]9833?=qGGBeus&Y=ub32le;W_:MdV(GSfDO-F^JJ]/G;Skdu#r2f&9r7Bu,= +#-#7o@sHooKqin;5Ysfr`]@H!'cms)]N3Fmk@&&H0^66FA'=I$XY7Fi)c&iKoX#-)bZ@bd4kJ`/9o#!h#^_lI0J +b7lQ1L3?')@bk5smA5S,kSp%dh.-qNOuJ"o_@:`B%Um"2LEh&h_`232_78/"ohN*V@]N:U%PF69 +S-T3iDJ7&Rf0n`c#Qq)X=J;rUL*ert__?+`,nq^0nO=W8YmnSBud5[;JMEo(Ai+Pal`A/I[)C^tHU?_[20*?Cl-a-e@:Mh=8kee]7DRStUN&TD=h"3b#;dirZSY]'pp@e4GP>&he@>redl +Fq*E-%aDPM%VBBu%T&<9/Xb?RB>LQQ&k[LGn8gVJ.gode5(]'H:p_VJe-6SV3#d[A6tYf."VGUU +;2Mpm+[#XPoQlA,Ddg)--mNJ[6p-Kg;)097U!UQji,'K2?:j +JX"9Zb=u`,R>kj]!UR)7@aj$"@Laprd02G&f@$T@CMcY6VJuMWa%<[U/V#6SME9Ns=g)]p%3&QL +`oKhI[q@=1@"\+6g"PA)%;,B9Kbm2"1g-Sj0"g)3+kGZ0)g?RF^aKZ.]\2+=$4\WV-oW_edpD$0 +>H6)S>IV/1?BFRn'Q)6\2I;a'X+_d2C-2]NjG?m;k0[hCaMC;Q*5lPm1m-b_#89#ci0h30/%!06 +ZP*iO9IX#8c!1F>HFG-`clI%B'#XHL@FB=-N5;V,%0=15@=gRJ+W_cc +nhnd8AZd^P$.jOp%[.SgZG>&2g6S`E+Z(SM^krVjO@+qg]unf8M\B9/jTHLF=p@tBDIgCUh%J6r +VXl?N&\:,uno&?V,m^30!$ZEoZoUTWX;`=E@15WD(RpN+$c@'P#f3?'#";:_9m7809>,JkADiF6 +%.?[m"b+_:!0MdbF.4Y82i,=k,ksCq)6b`UY9HX[u3`VaMhKopiX5[ +2Y"LB&"!&IDZ*M7#/J=5OuZJkKEM~> +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 12 12 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +177 0 obj +<> +/Contents 178 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +178 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP"+_ +)G=Qb@CUie%MTZfVS\bJ_K%OP:4`P0Pg!]!),8+,.&)gG0_[8f3]?RSOn(d6q +>1q*.c6lQ4n:H5>]iO=OI[u4i`1r+mUC@/Me*F^(A4Qj'JBCd98gHnNfo7SNa]R*r +E9Q'de=bGVKu!bJ2i_&_UtLe)0^^cWK4$r*l%&h0(5QBY5W=]*T[GcYfsXm?B.X$jR:H=@6&KO5 +B&1$$!Gc9_Nkk]`0ob4rZn;L_Ih@GE3.T2*N+%.n@uGn/7;mo<(1n6cJc?8m%aDfP]oCR4ne_Kq +rZjT9@pjFFO"H1M1^pLQ@G,gp[U'Pbm9&.(LL&ik=cEN\80%lmGjk$R_n:&r%,lG@+9s'7YUPE[ +Gc3V25'Y>X%D=q9`-L=lWSWZ,VlVk)!IsMV"/%8o!56MZd+[A!P,3Vg5W6#(d/KWKfmiJq!Pm(G +)B_Y$JRI[s2)*2V+64&\:f'/9(cp6cQn<`[OiIZfg)38J)0qp\qM&W6(uYSqJoD&0K(s/"gXCP) +/2@[Aa79M-X:]s/NZLA$N=b!:c?]h4*5X)n'3Fg09&9%(I1tV)k]SeMkT*%51=Q&eP&J\!4X_/_+Z1c8;Y-f2&cZXl`(E6KW_LnY# +O)Z3d_ABTR"&NKiJ]K^h:u3-re,h/n#:ng]S +-aPAcXLET'U0YYc+E!a>Hj-N$1;`al$U]KU%)J`%6NDGM'DNc'A9%nV#Yrd@pgXF=)KhuMbnoPJ +GR_q>5)/;#)Is522KHB25DFq%,uY%PP))/R5fsI/aE%iq!c1T1\Mo'R((Cqa3A/:8%j$fnEibCc +[s6=A!GdJpZl2d[p87CH&:'!@0gecL[&h/aDZi>=h7M$V+eN3pCTtKTW+JXB'M5Q1^pT$JC2k.@ +X1i@XZoCUr[lFPdLfRotM^mF89nOBkERRsc_;]_nE%^&dnNDAF,,-4dE +A^u!P*L*:a"gZ^%bs9;]gnU/FNa^0N[lEQA"/9,iOjd5tgJM]cD1gB)N4]CKnI:ZtB'o\cZa>8/ +5sS!MoYjPM\PCPKaAe_(e2%;@L)];#790W:0dot:ajjlM:$f*]1A#JC'CBseiR-T$$SZDQLiSq= +J_RiY2Y +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 13 13 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +180 0 obj +<> +/Contents 181 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +181 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP"+_ +)G=Qb@CUie%MTZfVS\bJ_K%OP:4`P0Pg!]!),8+,.&)gG0_[8f3]?RSOn(d6q +>1q*.c6lQ4n:H5>]iO=OI[u4i`1r+mUC@/Me*F^(A4Qj'JBCd98gL]B1JFh^Q3Q<(@i_p.3#!&3K>?V-#=G0,2N@lI_a,Z&#hh%hTb-E)KL,6bb_AhGR6?3( +"T(E=6a4Ec%\kFU2iPQQjta@i)!OMK@sI8t%YEV8(QT#-?IoT[LgJkq@;u[.Y](c+rl]"g+0K3"CR3hDYQ> +8EPp@,Cn]-N0hds2hV7JVBuY$"ee90j!\.D$2::_2d^&#bs;h*!)Iimi<*CAhj=$;JI\%o%>4j! +70_QXK:$`pfjU-5)Bs1rWCr,":pqDM+fKc(L)FldAq+o%_&5=<&j)%%3lGMBn\Tsla,lg +JM0??`O?IJ[=dC(s]R +p+u8nhXA08if/#&15B2^JaN9lcSK'[hKR`^"1W%SJ[,3hKPh5"6+M;;/crb"TF)co%KN^9B\OA7YB#%rha"``Nfu@N@^-e]6=_:5`.8qd0)3f+FXP$6u +Kkg](49St@_,@9e5R=65n7\JO\mrbQ_OH[X +_-G0X)$K[=.\nh7Qa=P:1HC4!V``rs1U,D]!+lY7GVN*th*'*r`B%X:jWa<+afZn$NPT\_#6Ys" +8;S'+,]msl1!3rQ[=moa/=hb.D12^[70qNo:f-,EP_XeJ!eZsU":E7OWrU$7.=`cTo;FFEVE5/c +K#XOKmU+!7Bg:hJjd@X7fu)0%$c.6Y%941DW`gE.k:I1<'G*0"6t'#,P!5R\'\^@1jZVB=q3QrH +Zqos[0pT-0X&Y=h;.D=M*e61+[!"jY\JldHM_bQ&j;GiXL8X,GdUWt;'N;M:as7=G +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 14 14 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +183 0 obj +<> +/Contents 184 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +184 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP"+_ +)G=Qb@CUie%MTZfVS\bJ_K%OP:4`P0Pg!]!),8+,.&)gG0_[8f3]?RSOn(d6q +>1q*.c6lQ4n:H5>]iO=OI[u4i`1r+mUC@/Me*F^(A4Qj'JBCd98g0#K#ue)-aj24^YfZCPU;"drr''R@E86^.`/ca8bcqSXb/Ql/ +HQpSUbqh&u19=)M)oi62ClPg[:f&?o!XP5C$%a^aVBDR_B[VciAFq"'K-8T$%,h3/fT!#[kW+:u +#i%16,G=6\%3lGL3XiC2l8d8aLrMB5UMVk`%?u+[&-V%2Q[;sYKNG#:15&\qGSf*X +p)AE^0plS!UB/UOAC$J4!C9esPa[5%1XMnDN^LlQ/.&%^gc(1%XXZ7fFa-/2%RYK^3k(BihDnQ" +j[_KlD/dGGj^OL)A)\7EMdtqD7E\rj6"m68g\2/_([K>%?JLK_m4]^h6?%#^g#<"[10UF1\V>i# +7?S3dUU?^o[s*A4'Q?D^=;-aH3*8+R686k[o%_8B3RdXs4j\0AW*2,a%:86Plf0C!D!Wm2bC8@D +%/#20\3:R[loQ7mLun`*BH1KT5\<1`TpM+o<"skbHJ\Qi'g2agkDU>jJtU;i"_2(K>\..!MN9o!-AUbG^"j,\3#h-_O0*Wj"*.m[a'Z+62$A$;n#;FBP_e:6* +9(g-.-_1A6E?Ff<52'"k`m$<3'"h`?ptn")r0^W`2#1d)a9HfQ:Z/%?!Vn +F;uL)/.KFL9!SUA_LnVT2DGIQZ?Y1F+lI3sJ>*34`CLq8KN(p(EHj%S5RZQbjDg=s*iK:jrYDj!=MY]V,M9(37p%SB?M3):clAW7=[6-2+B&&XJ\%&&Ae/[Jn'_k`?2D:C>M +FdF@RkU:G6g/A57Y7ea;;@ZBP.0hYRVU\;hA&3k;#E[mqJJ4O_TnqJU=X>iYA[B%P!5TN4F +hj5LR1l!GL[9I+`Qlq7.auPYH,blPio<:#Dl1E%:KU*+.:!1"j1?RBXT3YDVdCN=#l.8k5>'$9I +5fs3IBI*kM%"K"C?q+RUfI*<5l:J:<9eIaA]F>LZQUkgJ.TIcONR0]c5nN9").R5hj:mJ-`b:uC +qLN(VkShr]oFqbY;P&HN:UMbYZ_Q&2TYu(1WObmX_n3eS@/NeE=IHj +3enj5%[t&C2DID*[ai+PWHE4d:Y=GZ-pq6jG\R]HM-Pfa..$9c[9mkjq6lBJ)l(1kEcrE\=IU+: +CjhgmopPT[-kP)u+cK_B_SfQW(iCo7Obf')63Ho("XgZYK)gc81E-`'sg#$)9`&nHNm`n9U_B&_n;%DR0O98XJ +9*##k#c\"N[e:#;'`4((OYk^B^g[Z[l\AOL266uZ"s#BG+Mmh@2Dg5l"i4ZX%;Vat# +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 15 15 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +186 0 obj +<> +/Contents 187 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +187 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP"+_ +)G=Qb@CUie%MTZfVS\bJ_K%OP:4`P0Pg!]!),8+,.&)gG0_[8f3]?RSOn(d6q +>1q*.c6lQ4n:H5>]iO=OI[u4i`1r+mUC@/Me*F^(A4Qj'JBCd98g0#K#ue)-aj24^YfZCPU;"drr''R@E86^.`/ca8bcqSXb/Ql/ +HQjmC/G*E#1CV_^`2/$p@Mm.&$Vgj/!<>A0$:9!+&.M!O`?I)]P>!PE-.63]8gfK_#_jZ3TdWYMK_/qDjVBOM( +i-6'!".8(+#=F=4g^bS$P8DHlJg3A_1$j?=;1V)L3KBkEAiGaFT]("Ho46Y"1C0(I(e3^H_-%+S +/Qa0RJHa+L=/2$::",jc=;ZaNm6?(0"*ip7@#]tE&7RUSTJqg>%5p/)fU1eYN?_i`3S?/&(KjQK +'a[611[%+pdPRLF98Zgl3DWTh'hAm8eO#rKTEEuY2ompORQ8Oe,gCnsH);CJN:)!u. +^k*nj'kNPbAE'7]/VO7Vj>;k@Qr>.Q5t1o:N+8OGgk6VNg5uU`5i+;7]3o:lL-`FL-Ae5Xg)(%Q +Qr#QH,AVG0Do'>M'Fpn0cnk14f+Gt4%::k/E^?SY`cM(a;+uon+RCekFrrIXL*<4+e;>*idF[nu +^u4".I'u!poXpf!@W'9=A(gIKB7nSAI4's"EaosC2N>Em?fU^0R)1Y<[.mNOMLngZ2UPTXRCi<"jodjZcl.f=4ZTRH(A-MY2`+fF%4;?tKX/l2-&4=rj$hD@A-X9Y\(W +)ISA>%Z4hoWPHs&+K-^oTs-5OfL#h80H^PG3&*b@*#kNnqbN7u(Uj%sgqtNmGq69>5%%pO;=diq ++h;`b2)>[bZZ7uYkgdB/TY$gG10u;Tp&gLNs+0*:"tNjU.&[!8U<7\[VCooCnit=$^U-FJ&+r<#+'iX6c9WJ#/h'Ii'8,F!+uc"]j_12ar=X] +F:LuZ&&SVF:BN)[Eoo*::E\L5+]q8o!L@c=#G`?1ikQ#>P'r%7V@s$,Ul"Z2+%8]K()CZ3=/"^- +LG7'm9opJ-`o5eZi-GZm^b>mVJ`MRDjpn?7-Og+(FT\Q,*U1?l%eE,E#&mlW;=HRLoJe0!n>SP7 +E+WOpZk5bdqRAiQ)$`g.FY8b@o[MeNGp'P>"uo1:f\IkW60j +3W^`GZDs"*2=O;25qpJRgI+I9b_.b$cs!a@c$Ko)^8QfETj5KOj'u%#lA%XE)C[X!WN. +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 16 16 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +29 0 obj +<> +/Contents 189 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +189 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP"+_ +)G=Qb@CUie%MTZfVS\bJ_K%OP:4`P0Pg!]!),8+,.&)gG0_[8f3]?RSOn(d6q +>1q*.c6lQ4n:H5>]iO=OI[u4i`1r+mUC@/Me*F^(A4Qj'JBCd98g0#K#ue)-aj24^YfZCPU;"drr''R@E86^.`/ca8bcqSXb/Ql/ +HQjmC/G*E#1CV_^`2/$p@Mm.&$Vgj/!<>A+%g/3O*=QE`fJWo.TZT0Q"(9#8-\D]Y15DP7kSSt= +G^Ubl+d5SH:P%G25gXUQ)+RP'fM>>nJ^mIadGlf'8^auU79*-Io`7>`6SR@W"f!K_0oZ26jta@i +)!OYHiHS@,Kf*-45>UrhI:-/X-&lFD[T+e2[ppiK3`k9Wb@?Na0Q\=.*;U6OokCbVNIH +9pQA#e<%g*"TmU\9\n*C@UN#'N?itr93K58VdPm0<"p?!pf,ca_i)YQ.K3FPr#C2;q +Xm^Yl\(FFl"Sa:<>i=-J&2R_)/Os,Np'la5B/i'9H="L;nT8?LW(n!/CbU(#doi6>RqJ'>Z_2&: +V+X8.'i)*+d!$>tfT'H,b1Ti.I*FVO8@f/0;tJq)/-mG5TI'rTQt8AaiL"O*MNn0<-k8U8gtC&l +@\L[KA!fQW"9ZHd3]1=Ga>]&fXXD$KCm<[M1SIo_J-Eah=mG7? +E)6(YriSW>NS\$3l!3)DQm@O*?a]T]^?C(c%EeHgn%nfW-)fnBTPt-/2:VoM`bWD0Et.*X3?,r? +)8djTFofr+\^MnZd@6m8i4p;CGG5EGRZ^OJapGkFl5_#=T2"g/^,ffsi1@GQHQ[jh)T,fr*JdXG +E)\TGAUamb!)m@(p#eIC"T@6$g49eaB#,lE"en*sK4)>O#9_kAR:pY@B!)Ao-p"BEPW)C"jrM@g +>&2B>ZNsuA.E%U.D],%jFV-q,F);\#dB\iWS2>iE`8Q8lFq#UZ43/iV)!#4; +J^FBPOVlRT,@fGed/H#7pYldEb@ORd4;S.\AKG<$I#jC\3^B)5)5Tl;Q!r*/_8s5)is_B8Z,TPY +QVf/>i(XN?^*"@SKb`Z.Eet00bm-7;*oFnaO7?7<6$Td]VP%c0i;>CMi9D9`ph:.eoc=3JT&-:@ +a9rY2AkGnR(dgi1E5A*aXuWZljd^dcYtu7_V8j`'Zp^D3p4A$f%msD;L0)h2++hk\)+1^NK>>tU +!Wl-]!M(6#@'gh5H:U=&_8\=*:bjE95&$VhD@UGe2UAps'-+?GF%5@S9k/X@d=\-0[$V^5:gDl3 +fqtU=THkJ1AODb;H""P*ME'_#ojDGU%Y;aqL+qI'B=MgfJE]fhjPR +<'Y&f+d=&M!;6dfJ:%O'3$'a'-4b[k4CnoM*s^OO[7saTZpr#U/-mXBD(%$H5_(Jp+R[pBbQ_`] +L=+^U$k#VepjP+J`N3J2f[gdKFueZN:-bCY/-7%Tlgei%+\*Su'q[ +o).?P-%C1,6R9WG[gkS*-\ehRNXGkQ+GE(B#QlK"MlV\l0o)&%!>$V`DAL-r*'ac3Lim.kb9>3E +$EDN/<% +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 17 17 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +31 0 obj +<> +/Contents 191 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +191 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP"+_ +)G=Qb@CUie%MTZfVS\bJ_K%OP:4`P0Pg!]!),8+,.&)gG0_[8f3]?RSOn(d6q +>1q*.c6lQ4n:H5>]iO=OI[u4i`1r+mUC@/Me*F^(A4Qj'JBCd98g0#K#ue)-aj24^YfZCPU;"drr''R@E86^.`/ca8bcqSXb/Ql/ +HQjmC/G*E#1CV_^`2/$p@Mm.&$Vgj/![[g.2@UlR_bJ\!35\Bp_B>d$:a:5H8IT)oau52;[:aji'sQKH?^:lqJ@=L8.M-%@ +KnG5ki\m)MO,ek,,W4HOW*2;]eaVm2?a_rN&.8P4FuF!n/IjcMmGR/B;YCCPTaYG5(,n-n +Yi%R&RE`R,%i+2$1gjDA4%D5Hc82:,R'J\*kC[ZS@uS#@]oIfA5j;ch1]Ge([UUYRX(A$`:cXGb +9c_.U'n6n("9Lie-Ad9Rc&#pKmPg[FGWe)HN:[R03f\M_VBbYjB0Cce4LUXn"J%b*08O'CW$$qK +G`FG5_FU%b ++ikH)0]!g;Oh??5S2,]YBFETfh?Hd;4p3j,DHao;%ACSi_WD@=>pD%%+c&5c2sfjq_*n[H4=5_` +"Kqn@CK8L[/-R_p'cL:NAe>k?62"#+VRiBhntTjT!rd%KjXMR,'0[8<9$0LU`D3I+JY_ZKE[9fr67'bk +=Z`H<0<2];$M`c5'n0P09j=e/7'AtPf*%@t3`s!kB.3GR%(!$1!JL(#+(>3W\MOA@ajfc%A +L_GAJ7U^l#-b,)m*a%.DB7he/%2MS%"03k]Ch4Z`'/G]*9!p!Z`32>2->8)+\DSd@DO&Xh)UZ-[ +E34pPTO?7g!Wl+)J[dMNW6?$08S/>rRWo&[d2n`aaIaok+:,2[l)BJRaUslNpuh +M!AD\)4^+9.+EM@T)ts4$o'Ob@qXR-"$6LC2@3;5[8s=qfK?MYQlcR[5ShpccipUdfW/uP$XuA8 +8eZr5Pkh3qZLTT0hZtK;)@H1Qi;T9dsJq[urIF.YIp~> +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 18 18 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +193 0 obj +<> +/Contents 194 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +194 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP"+_ +)G=Qb@CUie%MTZfVS\bJ_K%OP:4`P0Pg!]!),8+,.&)gG0_[8f3]?RSOn(d6q +>1q*.c6lQ4n:H5>]iO=OI[u4i`1r+mUC@/Me*F^(A4Qj'JBCd98gL]B1JFh^Q3Q<(@i_p.3#!&0!<@@,2.:1B1q"Q@hDkb7W8odj_#RXM%3oiM3jrM5RO/.> ++Pni5UMFu)cu"Yb0[mjd'JtIEi(uFoK-_a5%UfA&3K0^Z+>Y6p8EMq\,<31IaCpP'-;S(.c8H-l +&Ag>%_gpr-NT5!@7^_8)F;0DpaCNb%PN.-G\X='.b3N445pSm!:SGVb>s9a3>2,BIHWNWTZ63T*s-=sr7g +Q,knDUIaSaN.WOu2I.#G=dK7*[5"'2D12:p%G(l1+4(*t5Sn,8pjHN1\0.>,%FlTD*s\Ltm:D?V"_2;#(1!"`etI:*a)mPi0?i--Ltc(@@hn&_$oMEYA(`f]0k^/B +(@-PUUHls[%Mt^:hX<:L?''43a?e^.(_C7ecXX_;gs=XiE&S$S&7]R7QL3:.@2XiLfj7VV695Ps +cZat@*t9H=[XU13o[1pSX>Mq+ +$UY<=>_.Pf5HrqFT9JJiDqGagL\1TI80EE/!WbPTr;kW);LrdEqnU9'"Q4o8I7t*%.i6&B_l.#R +_7c56i:-R"TIkhYRJjnL@fP?lG^s`K(dOI!US4J0L&2BAT6"U!Q7pSqG3OZ`aD^Lia%%t/7LHo2rOa:S5j@)._ODYI-S?)kp'J'@uRM5g279]"faX5!8AW4G<"k4\8 +:nU8`![H`U0WHMFdQ#!R>.nPl62ABrNk:S9d@/Q6U;EaCbQ.\fSd)?1L(M:>6$^!L@;I%jON7qu +3&1WqF:gIsG\a;Vqe3&VC>%&bX=8+1R`KU!gZ.\^]QZs]b.Zu/10i$_C`XrY3e'V@\Q:c:'p +FG%_hUae>J"sAf7/uTD\683+tiK,-EY\"CHG]'`$#W>dT7pT,(MdR;)_1UcPA:lia$IDhl=VZ9p +/8]f2eHM@E.dYB[^c_fcb._!SiF7FVTWisj)?XaeCb:pHXql?*fZOO8+;L?OJA0kEHZN]`77+B3 +hP48IB5:udFgi.]*s0f#@I-^HZF7;.>[)8hCtr:%YStjD99Eoj*H\P$atPAMFrMU\3OXL$Z?nU?:(.Tar[He$?D#gYJns^lg-G.YIp~> +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 19 19 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +196 0 obj +<> +/Contents 197 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +197 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP"+_ +)G=Qb@CUie%MTZfVS\bJ_K%OP:4`P0Pg!]!),8+,.&)gG0_[8f3]?RSOn(d6q +>1q*.c6lQ4n:H5>]iO=OI[u4i`1r+mUC@/Me*F^(A4Qj'JBCd98g0#K#ue)-aj24^YfZCPU;"drr''R@E86^.`/ca8bcqSXb/Ql/ +HQjn06'Pj-1CV_^`2/$p@Mm.&$Vgj/!6>Y>16-P?c`$"Eep'2gRK-;'L_YZ!(6632Os4N*=C6(PUNj^7"kgnZ(i*A&j1OY< +Su\jr>/pg#l^0:a'P*P3/`G$ljiMRJQ<08OFSdA"k1Ol7M/?+Wh1QU@p,:`3>#p&57p4?$-VDhe +&$bTM*H9Pi@_?*l=UG%UbNaD]0]4r#j+D:k"3EZS9#s#IORsDjWJ4=>mJalio(s0?%"H+9!'hkX +XIo[p6'H,T]:[A?@!p10CSC?p2!1Zm&/bI8>.X`'pdDil!NI$[rf)KuOs2-tR9IiOV*= +ADP(C[qZXmuqh.@#c'D2l@:+T9BgE/5.u-7k2NM)jq,9lk[.OIa/s=BJqT,0tK;9WWRKd +B6$;h53HBih4%&t&]q^JVQ:dYlDmIp:oY'<~> +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 20 20 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +199 0 obj +<> +/Contents 200 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +200 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP"+_ +)G=Qb@CUie%MTZfVS\bJ_K%OP:4`P0Pg!]!),8+,.&)gG0_[8f3]?RSOn(d6q +>1q*.c6lQ4n:H5>]iO=OI[u4i`1r+mUC@/Me*F^(A4Qj'JBCd98gL]B1JFh^Q3Q<(@i_p.3#!&3K>U_388Q@Xdg;5j5S+0[E5^DU!BglZd1+1:2i^6J5W"FN +kX68@<,E^J;$1e&2Mf7Aau0ZZn7!7>@GkKi<0]=<:B_I:%NZ*iT]@qh_`^XkeLbW^?A&Ba_DVn! +/R;W6FnK6fe*`&.su)eM#;,A>7p$22%m>#s.'GW61#Gi7?eK?AIWgYi_+1lk!U3l=tL +7FcPl2^QX8?WU@kG2;lb20Retk_Lq#f?Mcq?+9Jm='F1o[>@`]I3hKh(7$>-d^6\C&I)5%UJK[q +Kn!6[@A%I=AQF77>M5;'SR;]>TZTATFu>Cn"o59IQ/fDD?'&a.SSt<7<7#9AA(IMeS-?<4@8Z6V +SIqQ-oq&^d=Z0Q.Rqk#JQ&OrDoj(!`Rl+J9%@$Kl1T#NG.&fOe![t8qM5#Nf,38*Tfg2pf +_B]p%Bb^ldcX@YU.ZOTX(c$aH[?"jO"*i$$$mTs]3c&:;l8gl2F]Un*H[n@:d_TV^&-P:Ji"td5 +/i@I'@KeG,L19@Rh[G&I5SfC+:dNj`6#J.gDB(/S\jh'Rn/@tTJ5@Wcj+gAMH<`SglEgD%BH2/Y +k2B*YIarAlirS6fVUKjG;-W=.SQAkBqSm(!QR]L]D%2ma->]qlgH]P6Q)LrG.^iC3n6??Xq_iUE +^fTP"?7X9HYAdmeQeMULYQ96VFrpohis#W[+aX=R(;iFc(kbUtMCj&qr*@rbIP8t'Z:HJG?co?Z +XM+V6(3'WtS-rq&l(1.pIb9s&$u"#M*Nb[l%:T-3J'Cik6s-8hRbS!\Whlo7R%W+Sr!dKNA[OUM +_P4ptZu,(+kp$EGh4D73DiOS.3%#!,S2+rAmOe#oLU?-4UR$$4Ad#Zr53Q9tZ!5&S3\kp5h]6dB +Gj`i1]ZArG@EZ?.i5OYC(Q@nj4IusW3GZ;1 +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 21 21 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +33 0 obj +<> +/Contents 202 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +202 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP"+_ +)G=Qb@CUie%MTZfVS\bJ_K%OP:4`P0Pg!]!),8+,.&)gG0_[8f3]?RSOn(d6q +>1q*.c6lQ4n:H5>]iO=OI[u4i`1r+mUC@/Me*F^(A4Qj'JBCd98g0#K#ue)-aj24^YfZCPU;"drr''R@E86^.`/ca8bcqSXb/Ql/ +HQjmC/G*E#1CV_^`2/$p@Mm.&$Vgj/!T;k64\&E"m;6cHKEABp2@cK62%66!AiC,CBZj'Up74'C<`Fm"3"A<#i7nfpb'@gX@1_QXO$bKW_c9bac#aIT +"iEabf/Vl6h0.='FPQN@LbQ6gXil3"2q:&k>#qK%LJ]4C-]/.nSL[?d6'XB@e$g&p?.Io$BH'rS +*LDXaG"$C^=+Tk>162m8Kjn0#IU-4>Q=ZVBimt7eNDe9AB926LL/jUpTo`oOe2cr"7-AiL?`N8^ +/WX+IqNaE[ep7VBI8s6P)m@djpt8Ct6)\T2,iN][)=?s]=rIVH!*^D_@?0j+%$TU_(K`R9/VI]o +!3df,JH3bMN-,MM3Y$6G?SbFW`)j*!cW3?Ol%gdD(4i +rh&6MC[+;'LN#NEgXI6CTs=_\os>SQgNn%'(c!e#80-Y/,nu-P;)dpN'6Y#/) +%4/\SLd2>6BOhU7TH6LoaT3M&Fcn@b.3BA^,X!N>o&&T>^rWpg;m+[$USf& +O)aeGa7*9s,S@P0&>afoQS2jkP\lup(diTY,4:UkY7m4sV)RiW&]V%bT-_*Y71%T8'ot-o%n)bV#dHQ4,7qH+[at<[&rRU8$,np"S"DOj;3PIaRt+4(CX`R +(TV1n*8P]mI4q_r^#pHt95uDA[8Z?=(>+4qd;d`b@Y:ms56VutS +lCr&`%h+9,?soIr@XJHT?m(-LTG%AW+>QNr6dkeS+#Hg7Ks +eR?<3SE$>LFUT`R14nh`g9-NHJI>-f4"u$iiTPGbFFCY$i(OPFfH=@kU6^BrIr((5Qpu8SPClha +C-b*\%^dAV]Cd7^h@_SgNu9!;E+=8I*Wi^WimZN& +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 22 22 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +35 0 obj +<> +/Contents 204 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +204 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP"+_ +)G=Qb@CUie%MTZfVS\bJ_K%OP:4`P0Pg!]!),8+,.&)gG0_[8f3]?RSOn(d6q +>1q*.c6lQ4n:H5>]iO=OI[u4i`1r+mUC@/Me*F^(A4Qj'JBCd98g0#K#ue)-aj24^YfZCPU;"drr''R@E86^.`/ca8bcqSXb/Ql/ +HQjmC/G*E#1CV_^`2/$p@Mm.&$Vgj/"2e.N%`8S)&-\gD#W[P?^udBUm;U"rL"&r@7(%,M_afZm +N;l*OPd&(ANT1T#9i,8[Hl%`o.-qb0_l23G#@RVT0oZ9[5S==m,hEkgbebWb#%>/n.LDEi]*=\3a;]F`GCF,R)1Y<]$>5^KEBeOQXI^Ugc:/,kWg1fJS<7a[NY=Z'Fs.m9tftI +:@5[s%=,;b>@jq/2i;R&$YRY:]fsFOdG5$nd<48NO_$F\ +^909q'Qm]5EC4qKajD,AC)2h>JAU/?!TdKCLX[YJTAlBMDe(rchY6405#7J"inT;V>BQ@rXqoP4 +*=(8=r>3]2k5S!)fD$;np)iGWZZ2@M_<=:Y!Iu@!mKrDD0Vmf_P(X"9j=uD`o`AK1ZZi+a4M0-\ +"!DTn42IVB15-;1K9L%K%h1i.8.boU+ED&0O?+gM,5XY,\IGcShRHrY&H[2E$@u_9"BR,lTrTPK +mbuQJ2o;1-#Xa:5@?uX%aM@re089\l3'T3D@j63$"9HbM[oY'IK;6'hJWr892Hm+i4-=Pl3[M=% +k5']Y@QlgC(5.Lt)?Z^`Nf_+$]nTu/!i$0iNq([[ +@+ZGFgb93=ab-'CN#WW61/CPSY;G9ICnUBZB5I9%.59Djff4(gD,mXQ?pG]!WONH]]J@S?kR5q8 +ZOLY+3Cb4Sbh*S?D!CJn6rkSP'L\ah"EAt1+Pf4"j2$X^Q'9CFOq*%f02mGGf*E2j<4/ +!oVjMJUFb.`_DDo1YPjFRb1De'J'@uRM5g27AO]bBe/5t[ActN"Dqk(6.u+e-i9Ht0T'ek-YkoF +aCBk&EDJ1:7a8j1PYc56-98!&k@kjI7TA&K/1P\Fek4,_D%`tXAZE/l>C8;I&TH3\Gb^c:K*RJm +PQjYU$pbVE"V3VM"CTXq6XXF0c'TB$`E?P`rIM.;nqp,\&RVUCJi0tsKSg$]ui&X/#h.Y^;0FpI8]U3IDC4h5A%lU:">EIr^D%dS4f!aAcOGOZ']tLmU +//R"7]5o*+MlqW.])j*d?>GbNZ^(k7YDWj5XA+;L3;+g\JjZHNCIa;OF%crP?^=k?aQ +%.;#pYCX.WK$\(;Cd%^/f8Man9B1Bf?1#?"`jl0JU::gj<% +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 23 23 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +37 0 obj +<> +/Contents 206 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +206 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP"+_ +)G=Qb@CUie%MTZfVS\bJ_K%OP:4`P0Pg!]!),8+,.&)gG0_[8f3]?RSOn(d6q +>1q*.c6lQ4n:H5>]iO=OI[u4i`1r+mUC@/Me*F^(A4Qj'JBCd98gL]B1JFh^Q3Q<(@i_p.3#!&3JU:WV2Bh^Ib_AhGR6Alk_cK,,o2K,@1BEa.)hnC'EC3N2 +.'OhNU4AUTKf!Qk2Ggc4,>!X>\>_iL!?5]-N+7,!g`qFWfJJjeo3kl#JkZ+1601qgcCFIAX+(UZ[GRb;Ludpgol)k9\1S;Mj#0p_M2l)E`K+H$ +G#^`e\NVO!:QtK&K]..#*Hk0)ScMG]emP,=hcJo2SC08`?;F7?6MT%,1^H>^_;KPJ%QH:0\,+X,li.3@Utpd@lKo=R/IfP?(;9t_ +%ta*k%cO,31+"@ITB#o[5df/rFn56r]#@e6c4IRqWX&[a-t)"s#!0e1"4cG5Ee'YqJoJ4,@.X2E +@F>4ofC9.gEmT@*!FuBO)$9t%^'YD_&-c5>DF9o#E[tlIYpd:%iredpYbCJEG7rojCQEH)F:\RO +nAYQ]Z!V6'Og-Th\!<>$Ma=ioJgBam!>%J2Z$7;nLo1h,E,:,6kViSLqAKI29F!hq(PWK,'r->b +"j4bAJgh?W_f.>mnjGH/0O>Tl]Pe7a`%lon#/m3oP]/qX&4o-;$@r>eP)WF$^b^3FJ^>m%iGHH$ +`X].;Crd)pQ!;H=64Tl#AIYY&h-$.6&[d +Bi\d7N%esnlGJ1`It?R25$"@9UC@6s;SWu+E7c4;Y]>Vpic)^/jQbbUhMi&&_o)9&)l1[DG7oS# +"!C@EVW,g/Dq4a&B-\Fe>Ea6RUc4'RTcD^3;-H5nQUF)C-Qu]sTM[$OR)]RPT)7K+:WPW1#DD61 +F>7$/QnY[nks_JW1T$k>[8V:%:1F_qM0)3C^'N0^cLs1eCKs9-[I)5D.cWX(SQ[p.qg*"68X56iPC*7iJRT?Au8X>j3aiJQ>6MWNC(bB$)oPfn2i +6:ja;SAEHp/e2\G3?,rEqS@;&%Y29l.-91.Pa[kNl=E\heNV?HnhOm[#4\_Ga\V,c?F^j=Lc_Np +<3'S2W:fWk194V/V-n?JlWJjq+R0f]TQN1DFn^NuX))Pg,R +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 24 24 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +208 0 obj +<> +/Contents 209 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +209 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP"+_ +)G=Qb@CUie%MTZfVS\bJ_K%OP:4`P0Pg!]!),8+,.&)gG0_[8f3]?RSOn(d6q +>1q*.c6lQ4n:H5>]iO=OI[u4i`1r+mUC@/Me*F^(A4Qj'JBCd98g0#K#ue)-aj24^YfZCPU;"drr''R@E86^.`/ca8bcqSXb/Ql/ +HQpSUbqh&u19=)M)hoMpG1*bU:f&Es_gq%*Ku%_7162MCg,Lu8QsMm4@t,9d +,hZkX"i6R8)@$^*R6:e-#\"kZ+ZhFs<7B2Z&61Ng=]YbASS)-WeSSl'=*7L-(kqXrIpId% +'j"aD2:Zph=Oq>?B@rN0Ve")]KpcIRT!a> +WXL@ViBX#"cblT,a]"IW/BhGN'hMM]'s3E3eedFt?;mj(*/a#=k:SGA)c(j6#"tL +(-.Lg*BSI?DfhYqUrUG;EJgdiGM5#Nf,3[Z3Ob>O` +&8R*ZTbp$G$)1fn64@@3l8ahKYfaro,B2Ku%3l_,2@UnX_E&,fI=6o[Pf"A9NPPTu(@6TcmPKrV +5[#n%j(R0&%YL-75gXU)%n+feBZIndm9_5,:m3,A!F?I<0b`//X3D3s#Gj. +l5`]GFcIblKn,i^?D4EGcX7Rlcp[jSqr%r:p!F]pbi:u'+UsNmqSHoBrh&632B[kL0Yk1**saJ% +!UpXa&:b+^*(>DC):CR`GRf;O.LUd&/[j,QUVh=s"gMSRLH"'-U4`f#iKa1lfF8(VC;rf`:oY'<~> +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 25 25 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +39 0 obj +<> +/Contents 211 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +211 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP"+_ +)G=Qb@CUie%MTZfVS\bJ_K%OP:4`P0Pg!]!),8+,.&)gG0_[8f3]?RSOn(d6q +>1q*.c6lQ4n:H5>]iO=OI[u4i`1r+mUC@/Me*F^(A4Qj'JBCd98g:f&O"US-R0aE(0ecUK^*+rH$M]]RZLPL+P5"sM@9fSug`nCE1@C_.la +87uGP@;''YA26qOa?V9_U0p5?NPcl(-jq675Vil0OP2D?D>_p$1T$_I +.&h"d!^go^KEFd-&.W3kgc(5qScs2k+TP;2NI_)f4HBM)(cRG`?,@UY/BGi^ +es$_),D1'5f,%iDV@DQD]1+bL>4 +']>oL"lW]2XT4l^LbhJJNG[+E#>V$-cp9%:g_PZQ_A`SJA9^k.(,XU6e6=&52\=1h]uF)T"LikWWj;52#A.-9oG77o](PbQVVI0O%FY)qA\A`R*g+0?OMktq` +2urH:@nDSNJj?=o+QZ=F@#RCo1+ns=)C&0c=Ga.HUG_P86%Cq?!2(NiJ:\G$J4p6KnW,(f6TQ;PJTQNj\VYgn\.#F&%D +L:=Z6?pHjXmmK/?7ZT+:4W">&ni2CoiXfgF8:Z8br!%>c)$/g+Akg7U"2MdG6UL#B_$,H18O#sa +qp;9@omm;q#7P;X0r6GX$L&STeE@)FPMV0]>1qNdTi'2/L>1(&-M3n%]*q>j +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 26 26 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +41 0 obj +<> +/Annots[213 0 R +214 0 R]/Contents 215 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +215 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP"+_ +)G=Qb@CUie%MTZfVS\bJ_K%OP:4`P0Pg!]!),8+,.&)gG0_[8f3]?RSOn(d6q +>1q*.c6lQ4n:H5>]iO=OI[u4i`1r+mUC@/Me*F^(A4Qj'JBCd98g0#K#ue)-aj24^YfZCPU;"drr''R@E86^.`/ca8bcqSXb/Ql/ +HQjmC/G*E#1CV_^`2/$p@Mm.&$Vgj/!GI'INQn-52[kio1)VpcAG@b\,7*Qq%0Lk9'SQ)9=tU28 +FX]b5"%_Q/;cK\l+H7Tj'2?fYBOi$:+dt#'#;npf:K/&t020q_8AmHHj'?Lq<&@m'?4CD82]']e +Js[?GTqb40;*ppT/VO7VZ7H+Z86QkO6#^i]#1Vl"Ctj.#?lXk&%EWJl@.4,1>R-@^MqUg +96<3'[5G@8?.&.<1K$SR_V*i@0Q7n;FHu08LDX5n-Ae+="*=sh94Mu#3/.PtN<;_k1h,!i(bsB^ +Y]:S8JO%2#A%3!c1^p-ei%kk.8b4#[8eK5e9OaN&]<_ke69>QI;Zh.4$Wl8db4 +h8=LA,3YsO;"RHV0ob4,`HbkO8Dc[mj%UX-2^:M,f;]XPl$VB7aJpTo2TEfri7\1n3oj]L_f=uE ++BT0`mE"8*N$Gj`(K5"4QlH=;7A2mJiulK(%jSkb&.RZMl*X>En3O,@3$@;%D0d>c3V:;dQ>8NCb2hV7P.EYUV.'OhNU4AUTKGj99R^Q:j_DZ%/39W@3,8D7TNc\Z6dptR0,Fm9$ +]d;Jn5.K:@%,]I +*#*WMJh6+L36*!E!GHWZ!.YXbi.;5c"Lm%0=O2L3N8-!T5Vg;,L9p`>kZfPZ:Ne#sq)u +cD3gl:JZN2=pEo4Wg.%r"tIJDa&qC0,7I$NEW/5)8n3iN8Pj@7dC:oDl]?]1Ej$P989/h2N7c9<>q(?CW+658:cG["V,c;L,ZWcf]89^lDPYS +0MnQ4]WNaTJK-7AY;2HUX'q^DK.r.8[F2fm4T2EFcUqLasM"n6=E +Y7SVlNHf`D@('gRa(A4:5]el&]GcE15Y8e6`MLZ"(;SQf%+E.`,3G7J-bs]r_CWA/+i#jbn>a.d +'gr0*cD!/)Y45VfN"$!)geq^BDpqsJ7RgjV!nC=@Q"<'RP!n*AB+U^V/$rQ"ckF:*^_klHIrHQm +*@PDD&#[8*.>7#)1g+BCb.OtmBl.uD19X;K5U[?d20R'mK&Gc1mhrc\cfc/u0^&o5.[=-JrWO28 +)$A_ob^%#?*iA5o&8U&3"EmP9Y=gN\C4d73G';32=I0KM6*m>Pat?i_`Yi16&qs?b?H@q4P?)'K +L9NccL?NfXdP4]NKEM~> +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 27 27 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +43 0 obj +<> +/Contents 217 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +217 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP"+_ +)G=Qb@CUie%MTZfVS\bJ_K%OP:4`P0Pg!]!),8+,.&)gG0_[8f3]?RSOn(d6q +>1q*.c6lQ4n:H5>]iO=OI[u4i`1r+mUC@/Me*F^(A4Qj'JBCd98g0#K#ue)-aj24^YfZCPU;"drr''R@E86^.`/ca8bcqSXb/Ql/ +HQjmC/G*E#1CV_^`2/$p@Mm.&$Vgj/!T:g3LXID&))T3@p^dQAo^>%uoK@IcPQu3mIK-^75"9MuZ3OWE?dbKdk +T\_[>+TTA>KEArX-;[`Zh\kXH0Ou)U_5;^VMOJK\,W>fR6)fM>R.<0Fj+-=*%,0?!'9GR+%HD]c22riRFf=SOY-'PG3o7KPloQ6L6Um7j2q8&=Lg%%@6Ie$p7T/`sdiUdPl't +f1"+GHI+o:Nig+f(Q>r0kSK1f7p%X&j.PJnK:C9uY0H=A0L-KXHc-AjkW1U%\-a:>*,BEEo=uKc +*l#PP>QlX"afOQ8X$LdS8'YWhKn+ag6@_`8 +YgIBtFi7qE.QDK%p"u_!biN9O3a.GECb;Ko':bNL7St2L`2@>\*U9/$EIID5!."p'OEV3IVDZAd +7+\1o-V:8p(^"`V*6>?<$W4Pp`tOhdbVXL("_Kp,R*H*bGs%&RLb]%\EZDuu$Ns)l8culQ#U;0> +%e;YT`fOCD_[M!SEX"UX5\^d"]S2E>ME+35lR?C-WK#l^1TJOQ)l#NVOs-&+"">*5el8!"14!D$ +\NqX?FFoamjWR6qOW>cJVjXj91P:3f/`k&bOq9/\45#.d'`;B=Bc*ib637~> +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 28 28 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +45 0 obj +<> +/Contents 219 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +219 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWRXJGRac3qK,@K4k[o1U>'I%i2o.DPIRI[E]*6[ +P97j0_Y8C_T)UHac"@.qC+Y@Ob/7G0SrGW4n&1"j@=L!:aq,\ML^6F7:qWSC+`FT`1BC$E%YFso +KFf,W_6@_qLEQYrLBR^?C(uPX:_Y+gNC24e\dRQLPqoK68CBR-$qfoubNr=7/hG0/lb/6>;"cRS +oBcI$##!iA5*!O0g@jT!":f&-(_3PuEXKd%f5W+R;>C9VLj#;WY1.LD9b@knA.#hh%o@t;ENd=D;72[k6;a>/^l +#jO;XM<,IA;:L+o'>LaK!ensoTPtGGTp5R-L9cW61''_o:a_7?-pSK@E+j81L*8h=1KS__DAZ/X +5j1%+J>T[Pb.G0I"(gS5>:3n(PYTG`Fb +^tL[RA"^\!:,f;$)[?DJC(pg2R*.IJA"ZVA?M5)PHX6_9_DL6(KB+$);Z50*?+77#'Fc:SFc?SB +i'])T(<,X(L>bDQ2q_\3gb[d5G\qg;UBp'lrZNQ#nNYOQb3u7@RN^H@_1g[f`@D(8\ +IdO7FTg]_=KMs!l_f6>Hd5>oWT,KH5=B@:cj-CcO@+fX5S$=/a+Ak&Ao8MkOmJK.>^?s74&"2pu +Ni-:XK7q-Xk^"WlV,l*Uc'r=ua![gd+fKBup&W-84ZdFj:4d0,?;()iX^WukRL6oY6Jsg%fq'[Q15>aW3uR@_k`1oTp9\R +OR45*1dHhIck`h3nsi!Z<"CVV&Kc\UQm)Zh9EF'4!q=2L_jo6\ntnZFkfk<(KYs1`*"bl4YqlHK +@rNlGB[&6S2--6iRimT*c-XrW6aGR?6)?6[.EO51/AI_hW&i.:OYu9+opV(JI0W?Ng#hXl#Adpmrfp_s-+!74FKmtX&r.dJKD\p;KA2d!3!fHk+e_S,/5f&hn>Jc#2*#;2Jf'ZetfRn&kgq;6A!$f%f80H,#\ACB&ZJ?Uo%013D+]JPr`=B'J2*?A#4Fam4M5:3((MLIR&/MH1,/=XqVfI;aSA0H +-]bNG0SPRG)!)0?"'\4pD/Ni38V`fC!u'"W%[N8>a-s8CT%.*M(.]!>79C5!,`&!(2Fkk,-4?WNQ]jIG6HS=lAaIX$%fkn?.a(%i +6Zo3)dH\b1oW]#1/5>!K4jb^%!u8=1/'egI&MBp5&="Q?LtJ0I"@a1o>s?M!YZ9HKVln[#&q]#k +j2skLg$0,]W`ul^anh@4a"cd0oLoncq=qj$rJ./[Tp[has(gtL^EBn4kluLYbo/Xp_=h2*e,4@0 +_)%_&qHkQtrFE&(.J-WAs*Nhld$]_:'S"aIJ)>mWLZYW"l3SWG;lSL!n`"m<2:bC5FitQiMbran +e-CNFMoc6d^uk#Y*pnq4"i.tY`MO*D2@gr&R]RE;bo5td,*F(h!X-gNE%7B=dYRrh"9( +9WKT +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 29 29 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +48 0 obj +<> +/Contents 221 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +221 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP4"r +NQ%YQi;lgr-m>))VUKh#5]A_&bXTK![,ree)M(:]Ki0$NXOa.cmJt+d.^&=.4Ic'hq\HV[D=`V6 +npDRQF"^P(pBR0rWGe`p!N4tHCBn>`\pr8F_Q +UXnP1YB1Vb5V@.$j")l?m'sXMU^[&JDIas\0IVPf`'e9Hg;brWP:4ACCqDIATY["((l'8RC`C`,[$ +.ko4'X@cS6L*;Ll)Fn13:_3a3R*%/e!GKUe"QPkU&.\kVfJa:KE)[m3<)>t!L#Y-g+&%f$/Be;s +P:.E+%4IW+$0.uJ3)i17:GPVm74sDF;8dQ+;rKud1(E7\I8_pX7:A8R!T8PO%YH1l3X:4aIp>b- +!-fXjot=.("ne^/>V\UDC_.lNE,HQInShYM;k[l;3C[H"$n;[LZd'*h@t;]VN?\_]`XN"Uj=lO9 +#isaL1p"GL!ETF#clf$>0%/Q"fMF$)6R_.TNOBB`'S\o@>T)"ATMRJ*A!lS=@[OGR)?sV8_DkiQ +[O6slprH8nN?b+DQ/^H7iY5^oE6'pH,B1ttAZEOB2iQGpC`%j.S_\Ns=otuJLB0Z\HJ\D;bC,)5 +29hp,j$p4:j>h*r5j2Ai\hD +#)Eh&;u"A`N5MUV1ps\bED4C)`B.@_JQ+`]G@>7NN21qfeVM`O-ks4l5Ye)iau(.++bf;R8Z.\ +7F*+rUR7e`)OPG>!:VNQa$:MAA*XT^L`Zb&>d6W25&C>j67?C8im[5""fRq-Kn-TC"*CFGTUo-b +E4VZ/YTO+t>tZBl0W'DQS;JsWK`t$N$!oNCtDC3B/YS[ +8:Qi6P)";D3.[U`#6<#.4d^^_-U[-8N-Zd(pnp-MGV5J&7Ueh@:=a'S$D&f]1^98D5TZa'Be2Qt +6Rj:=_5g+KYZ?ER)=e+\<;<$bh@mJ&d+B^/)5QlLR%otB"_3KQS^a(91!24FJO"5cTt4gFpEC#U +dWUSqn_]*N)SStbpP_UM3AVBL!Ss,eF`+Pt3a")8ACSpp^t]b/3Bk(2<25\a"c1_Qbu +q:*s%puTDI?]utB:+GKm?0/bGYCM0oK(qAE6JK6a_9amBd,l,F7D'+sTIp;-=:(cris/t`p]k$b +HU@+R"egsoWcb>Lf#l`OVI=DG'ur_3WsDJE=a!!K*m^(F.^:=/JHFC.S6.i9:;JZ?-l7+F6X"sJ +,sj>@YX&?i +,C&`@4#R,S(Ut1NK;!/I_rf/uX,<$^jgBA0\?`fGfm-l>IH8S%^8Im\%M8`g:'X%mmK(c8b9$_cd1_lBg87VM,BIZ8Mabsp%r=*oZ2SlD#0K"Ui9Zo$N!9)G4tNh8TNl&T2Qhsn8o!&cK:jsU9-]%-^,?oi +G7!-;Rtbq%K?(Ia+l\CNMf3:UT9mGOY:I7HE@j$G%AmrIr68cQh5K`DQIl[K!')INJ/m>P3fs%L +1-6Vr?GjqRh,ubdLFW_;1[]\<.HhP]cBt@/X!h`@ZnhoOp)P\;4'sHn6?57?dC6?'?;,jSZsMk? +F8;rb2lm^,9b!ftAr7&/KR]lXQ\Wl<3.ZP*B0EP.YU]LJ,~> +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 30 30 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +51 0 obj +<> +/Contents 223 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +223 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWR3-D.]C?'LCdmf!XNIiKN&*_b!TiK.&^_]6D3gVOP4"r +NQ%YQi;lgr-m>))VUKh#5]A_&bXTK![,ree)M(:]Ki0$NXOa.cmJt+d.^&=.4Ic'hq\HV[D=`V6 +npDRQF"^P(pBR0rWGe`p!N4tHCBn>`\pr8F_Q +UXnP1YB1Vb5V@.$j")l?m'sXMU^[&JDIas\0IVPf`'e9Hg;brWP:4ACCqDIATY["((l'8RC`b0jTiCJ#"F%6>9VG+i]$rjIaKleb'CWqh! +5h!L+\3:ff> +endstream +endobj +pagesave restore +%%PageTrailer +%%Page: 31 31 +%%PageBoundingBox: 0 0 612 792 +%%BeginPageSetup +/pagesave save def +53 0 obj +<> +/Annots[225 0 R +226 0 R +227 0 R +228 0 R +229 0 R +230 0 R +231 0 R +232 0 R +233 0 R +234 0 R +235 0 R +236 0 R +237 0 R]/Contents 238 0 R +/CropBox +[0 0 612.0 792.0] +>> +endobj +%%EndPageSetup +238 0 obj +<>stream +J/grZ!H?$`#D,6r&9A_r'QF9bL-pc!gh8D]Mh[r3F@mr(M[X*-^eift'oU/oZ?ZRZ1FeS\-'Cgk +aql<[!fGt>E%3bi"[^H*&HNqS.#^WjOVjW5?6GCF_*o2c-tYFW;lNUY]k1ImW)Fr3)-#2%:RY3n +ZT>L'D./s[kHk"2%MqU@887b?Fe4jqWRXJGRac3qK,@K4k[o1U>'I%i2o.DPIRI[E]*6[ +P97j0_Y8C_T)UHac"@.qC+Y@Ob/7G0SrGW4n&1"j@=L!:aq,\ML^6F7:qWSC+`FT`1BC$E%YFso +KFf,W_6@_qLEQYrLBRsN;CW,@:l>60%o^d;099:9b.#b;8F.l^,IZnkYuh^MZR_fRp+Z"ufYBkX +ZfrJRK5:,Y5Ja:7&-bFn>T-(m&.1cQju8-$%PjN'anI.EZ0_LBPc6'!l16O9s]6,3X7qN;dBUL +G]F]+!tC6#,;9+,'FLUSdQC\%FeXfu"/+L0NIt?^3S=&T)ek8KI)C!X.*uuPfiONT]pj"T[Yd\CKm1Q3R*doD+>(u@0)peDSXN?ahQ3mPQj65G8! +kbodmW*!4?ao\C\'P(]%^).'jGk!YLj.+pb:-j-:=(V2J,t@u9X`%Ir@=V3_dqmjjE=KfI2fXfj +9n0*D@0QU[?s"`a46>[n>VqC,DDR9+iulK+%&74e3(sFgVE*g<=C*n&"-hY)kZgrEE$MIKtmhTE:!HB[2(rW@_*itg]3e%TeX1PO\Ic8gmeGj2WrM)\l]"lXuQ]T&EujcjaF +D%E"J!C__YoUR\Y(A5@jA(ci!([9b0gb@C-d(g!%WZ@k@-BbL$CJ@GqD2AJTaKs]"":#69pG$e; +Z/CL=Jnr:O5lrHsi1P:0&9rd/E,aspK3V/JO[ZU1o*-?8-A!Gd'_@'uP[^fq).1h9=!RBF=. +1B>ol0i@?nVCTH^*8%l(%`+u6.L.(%""7\bCT4KjpQjI!3,i?cX>L5_3tNUO0+@rp40@FJ*lDf* +"n +endstream +endobj +pagesave restore +%%PageTrailer +%%Trailer +%%EOF diff --git a/doc/xmlstarlet-ug.xml b/doc/xmlstarlet-ug.xml new file mode 100644 index 0000000..95a2baa --- /dev/null +++ b/doc/xmlstarlet-ug.xml @@ -0,0 +1,1741 @@ + + + XmlStarlet Command Line XML Toolkit User's Guide + + + June 17, 2012 + + + + Mikhail + Grushinskiy + + + + + + Introduction + + + About XmlStarlet + + XMLStarlet is + a set of command line utilities (tools) which can be used to transform, + query, validate, and edit XML documents and files using simple set of + shell commands in similar way it is done for plain text files using UNIX + grep, sed, awk, diff, patch, join, etc commands. + + This set of command line utilities can be used by those who deal + with many XML documents on UNIX shell command prompt as well as for + automated XML processing with shell scripts. + + XMLStarlet command line utility is written in C and uses libxml2 + and libxslt from http://xmlsoft.org/. Implementation of + extensive choice of options for XMLStarlet utility was only possible + because of rich feature set of libxml2 and libxslt (many thanks to the + developers of those libraries for great work). + + 'diff' and 'patch' options are not currently implemented. Other + features need some work too. Please, send an email to the project + administrator (see http://sourceforge.net/projects/xmlstar/) + if you wish to help. + + XMLStarlet is linked statically to both libxml2 and libxslt, so + generally all you need to process XML documents is one executable file. + To run XmlStarlet utility you can simple type '' on command line and + see list of options available. + + XMLStarlet is open source freeware under MIT license which allows + free use and distribution for both commercial and non-commercial + projects. + + We welcome any user's feedback on this project which would greatly + help us to improve its quality. Comments, suggestions, feature requests, + bug reports can be done via SourceForge project web site (see XMLStarlet + Sourceforge forums, or XMLStarlet + mailing list) + + + + Main Features + + The toolkit's feature set includes options to: + + + + Check or validate XML files (simple well-formedness check, + DTD, XSD, RelaxNG) + + + + Calculate values of XPath expressions on XML files (such as + running sums, etc) + + + + Search XML files for matches to given XPath expressions + + + + Apply XSLT stylesheets to XML documents (including EXSLT + support, and passing parameters to stylesheets) + + + + Query XML documents (ex. query for value of some elements of + attributes, sorting, etc) + + + + Modify or edit XML documents (ex. delete some elements) + + + + Format or "beautify" XML documents (as changing indentation, + etc) + + + + Fetch XML documents using http:// or ftp:// URLs + + + + Browse tree structure of XML documents (in similar way to 'ls' + command for directories) + + + + Include one XML document into another using XInclude + + + + XML c14n canonicalization + + + + Escape/unescape special XML characters in input text + + + + Print directory as XML document + + + + Convert XML into PYX format (based on ESIS - ISO 8879), and + vice versa + + + + + + + + Supported Platforms + + Here is a list of platforms on which XmlStarlet is known to + work. + + + + Linux + + + + + + Solaris + + + + + + Windows + + + + + + MacOS X + + + + + + FreeBSD/NetBSD + + + + + + HP-UX + + + + + + AIX + + + + You might be able to compile and make it on others too. + + + + Finding binary packages + + Here is a list of sites where you can also find XmlStarlet binary + packages. + + + + SuSE + Packages + + + + + + SuSE + Guru's RPM Site + + + + + + FreeBSD + Ports + + + + + + FreeBSD Fresh + Ports + + + + + + Mac OS + Fink + + + + + + Mandrake + RPMs + + + + + + Gentoo + Portage + + + + + + Debian + + + + + + + Installation + + + Installation on Linux + + Execute the following command as rootrpm -i xmlstarlet-x.x.x-1.i386.rpm + + where x.x.x indicates package version. + + You can use http://rpmfind.net + to search for RPM appropriate for your distribution. + + + + Installation on Solaris + + Execute the following commands as rootgunzip xmlstarlet-x.x.x-sol8-sparc-local.gz +pkgadd -d xmlstarlet-x.x.x-sol8-sparc-local all + + + + Installation on MacOS X + + XmlStarlet is available on MacOS in Fink. See + fink.sourceforge.net + + + + Installation on Windows + + Unzip the file xmlstarlet-x.x.x-win32.zip to some directory. To + take advantage of UNIX shell scripting you might want to run XmlStarlet + from Cygwin. Consider installing Cygwin on your Windows + machine. + + + + + Getting Started + + + Basic Command-Line Options + + Basic command line syntax: bash-2.03$ +XMLStarlet Toolkit: Command line utilities for XML +Usage: [<options>] <command> [<cmd-options>] +where <command> is one of: + ed (or edit) - Edit/Update XML document(s) + sel (or select) - Select data or query XML document(s) (XPATH, etc) + tr (or transform) - Transform XML document(s) using XSLT + val (or validate) - Validate XML document(s) (well-formed/DTD/XSD/RelaxNG) + fo (or format) - Format XML document(s) + el (or elements) - Display element structure of XML document + c14n (or canonic) - XML canonicalization + ls (or list) - List directory as XML + esc (or escape) - Escape special XML characters + unesc (or unescape) - Unescape special XML characters + pyx (or xmln) - Convert XML into PYX format (based on ESIS - ISO 8879) + p2x (or depyx) - Convert PYX into XML +<options> are: + --version - show version + --help - show help +Wherever file name mentioned in command help it is assumed +that URL can be used instead as well. + +Type: <command> --help <ENTER> for command help + +XMLStarlet is a command line toolkit to query/edit/check/transform +XML documents (for more information see http://xmlstar.sourceforge.net/) + + + + Studying Structure of XML Document + + Before you do anything with your XML document you probably would + like to know its structure at first. 'el' option could be used for this + purpose. + + Let's say you have the following XML document (table.xml) + + <xml> + <table> + <rec id="1"> + <numField>123</numField> + <stringField>String Value</stringField> + </rec> + <rec id="2"> + <numField>346</numField> + <stringField>Text Value</stringField> + </rec> + <rec id="3"> + <numField>-23</numField> + <stringField>stringValue</stringField> + </rec> + </table> +</xml> + + el table.xml + + would produce the following output. + + xml +xml/table +xml/table/rec +xml/table/rec/numField +xml/table/rec/stringField +xml/table/rec +xml/table/rec/numField +xml/table/rec/stringField +xml/table/rec +xml/table/rec/numField +xml/table/rec/stringField + + Every line in this output is an XPath expression which indicates a + 'path' to elements in XML document. You would use these XPath + expressions to navigate through your XML documents in other XmlStarlet + options. + + XML documents can be pretty large but with a very simple + structure. (This is espesially true for data driven XML documents ex: + XML formatted result of select from SQL table). If you just interested + in structure but not order of the elements you can use -u switch + combined with 'el' option. + + EXAMPLE: + + el -u table.xml + + Output: + + xml +xml/table +xml/table/rec +xml/table/rec/numField +xml/table/rec/stringField + + If you are interested not just in elements of your XML document, + but you want to see attributes as well you can use -a switch with 'el' + option. And every line of the output will still be a valid XPath + expression. + + EXAMPLE: + + el -a table.xml + + Output: + + xml +xml/table +xml/table/rec +xml/table/rec/@id +xml/table/rec/numField +xml/table/rec/stringField +xml/table/rec +xml/table/rec/@id +xml/table/rec/numField +xml/table/rec/stringField +xml/table/rec +xml/table/rec/@id +xml/table/rec/numField +xml/table/rec/stringField + + If you are looking for attribute values as well use -v switch of + 'el' option. And again - every line of output is a valid XPath + expression. + + EXAMPLE: + + el -v table.xml + + Output: + + xml +xml/table +xml/table/rec[@id='1'] +xml/table/rec/numField +xml/table/rec/stringField +xml/table/rec[@id='2'] +xml/table/rec/numField +xml/table/rec/stringField +xml/table/rec[@id='3'] +xml/table/rec/numField +xml/table/rec/stringField + + + + + XmlStarlet Reference + + + + + Querying XML documents + + XmlStarlet 'select' or 'sel' option can be used to query or search + XML documents. Here is synopsis for ' sel' command: + + XMLStarlet Toolkit: Select from XML document(s) +Usage: sel <global-options> {<template>} [ <xml-file> ... ] +where + <global-options> - global options for selecting + <xml-file> - input XML document file name/uri (stdin is used if missing) + <template> - template for querying XML document with following syntax: + +<global-options> are: + -C or --comp - display generated XSLT + -R or --root - print root element <xsl-select> + -T or --text - output is text (default is XML) + -I or --indent - indent output + -D or --xml-decl - do not omit xml declaration line + -B or --noblanks - remove insignificant spaces from XML tree + -N <name>=<value> - predefine namespaces (name without 'xmlns:') + ex: xsql=urn:oracle-xsql + Multiple -N options are allowed. + --net - allow fetch DTDs or entities over network + --help - display help + +Syntax for templates: -t|--template <options> +where <options> + -c or --copy-of <xpath> - print copy of XPATH expression + -v or --value-of <xpath> - print value of XPATH expression + -o or --output <string> - output string literal + -n or --nl - print new line + -f or --inp-name - print input file name (or URL) + -m or --match <xpath> - match XPATH expression + -i or --if <test-xpath> - check condition <xsl:if test="test-xpath"> + -e or --elem <name> - print out element <xsl:element name="name"> + -a or --attr <name> - add attribute <xsl:attribute name="name"> + -b or --break - break nesting + -s or --sort op xpath - sort in order (used after -m) where + op is X:Y:Z, + X is A - for order="ascending" + X is D - for order="descending" + Y is N - for data-type="numeric" + Y is T - for data-type="text" + Z is U - for case-order="upper-first" + Z is L - for case-order="lower-first" + +There can be multiple --match, --copy-of, --value-of, etc options +in a single template. The effect of applying command line templates +can be illustrated with the following XSLT analogue + + sel -t -c "xpath0" -m "xpath1" -m "xpath2" -v "xpath3" \ + -t -m "xpath4" -c "xpath5" + +is equivalent to applying the following XSLT + +<?xml version="1.0"?> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> +<xsl:template match="/"> + <xsl:call-template name="t1"/> + <xsl:call-template name="t2"/> +</xsl:template> +<xsl:template name="t1"> + <xsl:copy-of select="xpath0"/> + <xsl:for-each select="xpath1"> + <xsl:for-each select="xpath2"> + <xsl:value-of select="xpath3"/> + </xsl:for-each> + </xsl:for-each> +</xsl:template> +<xsl:template name="t2"> + <xsl:for-each select="xpath4"> + <xsl:copy-of select="xpath5"/> + </xsl:for-each> +</xsl:template> +</xsl:stylesheet> + +XMLStarlet is a command line toolkit to query/edit/check/transform +XML documents (for more information see http://xmlstar.sourceforge.net/) + +Current implementation uses libxslt from GNOME codebase as XSLT processor +(see http://xmlsoft.org/ for more details) + + + 'select' option allows you basically avoid writting XSLT + stylesheet to perform some queries on XML documents. I.e. various + combinations of command line parameters will let you to generate XSLT + stylesheet and apply in to XML documents with a single command line. + Very often you do not really care what XSLT was created for you 'select' + command, but in those cases when you do; you can always use -C or --comp + switch which will let you see exactly which XSLT is applied to your + input. + + 'select' option supports many EXSLT functions in XPath + expressions. + + Here are few examples which will help to understand how ' + select' works: + + EXAMPLE: + + Count elements matching XPath expression: + + + + sel -t -v "count(/xml/table/rec/numField)" table.xml + + Input (table.xml): + + <xml> + <table> + <rec id="1"> + <numField>123</numField> + <stringField>String Value</stringField> + </rec> + <rec id="2"> + <numField>346</numField> + <stringField>Text Value</stringField> + </rec> + <rec id="3"> + <numField>-23</numField> + <stringField>stringValue</stringField> + </rec> + </table> +</xml> + + Output: + + 3 + + + Let's take a close look what it did internally. For that we will + use '-C' option + + $ sel -C -t -v "count(/xml/table/rec/numField)" +<?xml version="1.0"?> +<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:exslt="http://exslt.org/common" + xmlns:math="http://exslt.org/math" + xmlns:date="http://exslt.org/dates-and-times" + xmlns:func="http://exslt.org/functions" + xmlns:set="http://exslt.org/sets" + xmlns:str="http://exslt.org/strings" + xmlns:dyn="http://exslt.org/dynamic" + xmlns:saxon="http://icl.com/saxon" + xmlns:xalanredirect="org.apache.xalan.xslt.extensions.Redirect" + xmlns:xt="http://www.jclark.com/xt" + xmlns:libxslt="http://xmlsoft.org/XSLT/namespace" + xmlns:test="http://xmlsoft.org/XSLT/" + extension-element-prefixes= + "exslt math date func set str dyn saxon xalanredirect xt libxslt test" + exclude-result-prefixes="math str"> +<xsl:output omit-xml-declaration="yes" indent="no"/> +<xsl:param name="inputFile">-</xsl:param> +<xsl:template match="/"> + <xsl:call-template name="t1"/> +</xsl:template> +<xsl:template name="t1"> + <xsl:value-of select="count(/xml/table/rec/numField)"/> +</xsl:template> +</xsl:stylesheet> + + Ignoring some XSLT stuff to make it brief: + + <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> +<xsl:output omit-xml-declaration="yes" indent="no"/> +<xsl:param name="inputFile">-</xsl:param> +<xsl:template match="/"> + <xsl:call-template name="t1"/> +</xsl:template> +<xsl:template name="t1"> + <xsl:value-of select="count(/xml/table/rec/numField)"/> +</xsl:template> +</xsl:stylesheet> + + Every -t option is mapped into XSLT template. Options after '-t' + are mapped into XSLT elements: + + + + -v to <xsl:value-of> + + + + -c to <xsl:copy-of> + + + + -e to <xsl:element> + + + + -a to <xsl:attribute> + + + + -s to <xsl:sort> + + + + -m to <xsl:for-each> + + + + -i to <xsl:if> + + + + and so on + + + + By default subsequent options (for instance: -m) will result in + nested corresponding XSLT elements (<xsl:for-each> for '-m'). To + break this nesting you would have to put '-b' or '--break' after first + '-m'. + + Below are few more examples: + + EXAMPLE + + Count all nodes in XML documents. Print input name and node count + after it. + + sel -t -f -o " " -v "count(//node())" xml/table.xml xml/tab-obj.xml + + Output: + + xml/table.xml 32 +xml/tab-obj.xml 41 + + + + EXAMPLE + + Find XML files matching XPath expression (containing 'object' + element) + + sel -t -m //object -f xml/table.xml xml/tab-obj.xml + + Result output: + + xml/tab-obj.xml + + + + EXAMPLE + + Calculate EXSLT (XSLT extentions) XPath value + + echo "<x/>" | sel -t -v "math:abs(-1000)" + + Result output: + + 1000 + + + + EXAMPLE + + Adding elements and attributes using command line ' sel' + + echo "<x/>" | sel -t -m / -e xml -e child -a data -o value + + Result Output: + + <xml><child data="value"/></xml> + + + + EXAMPLE + + Query XML document and produce sorted text table + + sel -T -t -m /xml/table/rec -s D:N:- "@id" \ + -v "concat(@id,'|',numField,'|',stringField)" -n xml/table.xml + + Result Output: + + 3|-23|stringValue +2|346|Text Value +1|123|String Value + + Equivalent stylesheet + + <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> +<xsl:output omit-xml-declaration="yes" indent="no" method="text"/> +<xsl:param name="inputFile">-</xsl:param> +<xsl:template match="/"> + <xsl:call-template name="t1"/> +</xsl:template> +<xsl:template name="t1"> + <xsl:for-each select="/xml/table/rec"> + <xsl:sort order="descending" data-type="number" + case-order="upper-first" select="@id"/> + <xsl:value-of select="concat(@id,'|',numField,'|',stringField)"/> + <xsl:value-of select="'&#10;'"/> + </xsl:for-each> +</xsl:template> +</xsl:stylesheet> + + + + EXAMPLE + + Predefine namespaces for XPath expressions + + sel -N xsql=urn:oracle-xsql -t -v /xsql:query xsql/jobserve.xsql + + Input (xsql/jobserve.xsql) + + $ cat xsql/jobserve.xsql +<?xml version="1.0"?> +<?xml-stylesheet type="text/xsl" href="jobserve.xsl"?> +<xsql:query connection="jobs" xmlns:xsql="urn:oracle-xsql" max-rows="5"> + SELECT substr(title,1,26) short_title, title, location, skills + FROM job + WHERE UPPER(title) LIKE '%ORACLE%' + ORDER BY first_posted DESC +</xsql:query> + + Result output + + SELECT substr(title,1,26) short_title, title, location, skills + FROM job + WHERE UPPER(title) LIKE '%ORACLE%' + ORDER BY first_posted DESC + + + + + EXAMPLE + + Print structure of XML element using sel (advanced XPath + expressions and sel command usage) + + sel -T -t -m '//*' \ +-m 'ancestor-or-self::*' -v 'name()' -i 'not(position()=last())' -o . -b -b -n \ +xml/structure.xml + + Input (xml/structure.xml) + + <a1> + <a11> + <a111> + <a1111/> + </a111> + <a112> + <a1121/> + </a112> + </a11> + <a12/> + <a13> + <a131/> + </a13> +</a1> + + Result Output: + + a1 +a1.a11 +a1.a11.a111 +a1.a11.a111.a1111 +a1.a11.a112 +a1.a11.a112.a1121 +a1.a12 +a1.a13 +a1.a13.a131 + + This example is a good demonstration of nesting control. Here is + corresponding XSLT: + + <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> +<xsl:output omit-xml-declaration="yes" indent="no" method="text"/> +<xsl:param name="inputFile">-</xsl:param> +<xsl:template match="/"> + <xsl:call-template name="t1"/> +</xsl:template> +<xsl:template name="t1"> + <xsl:for-each select="//*"> + <xsl:for-each select="ancestor-or-self::*"> + <xsl:value-of select="name()"/> + <xsl:if test="not(position()=last())"> + <xsl:value-of select="'.'"/> + </xsl:if> + </xsl:for-each> + <xsl:value-of select="'&#10;'"/> + </xsl:for-each> +</xsl:template> +</xsl:stylesheet> + + + + + + EXAMPLE + + Print all links of xhtml document + + sel --net --html -T -t -m "//*[local-name()='a']" \ + -o 'NAME: ' -v "translate(. , '&#10;', ' ')" -n \ + -o 'LINK: ' -v @href -n -n \ + http://xmlstar.sourceforge.net/ + + Sample output + + NAME: XmlStarlet SourceForge Site +LINK: http://sourceforge.net/projects/xmlstar/ + +NAME: XmlStarlet CVS Source +LINK: http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/xmlstar/ + +NAME: XmlStarlet on Freshmeat.Net +LINK: http://freshmeat.net/projects/xmlstarlet/ + +NAME: XMLStarlet Sourceforge forums +LINK: http://sourceforge.net/forum/?group_id=66612 + +NAME: XMLStarlet mailing list +LINK: http://lists.sourceforge.net/lists/listinfo/xmlstar-devel + + + + + + + Transforming XML documents + + Here is synopsis for ' tr' command: + + XMLStarlet Toolkit: Transform XML document(s) using XSLT +Usage: tr [<options>] <xsl-file> {-p|-s <name>=<value>} [ <xml-file-or-uri> ... ] +where + <xsl-file> - main XSLT stylesheet for transformation + <xml-file> - input XML document file name (stdin is used if missing) + <name>=<value> - name and value of the parameter passed to XSLT processor + -p - parameter is XPATH expression ("'string'" to quote string) + -s - parameter is a string literal +<options> are: + --omit-decl - omit xml declaration <?xml version="1.0"?> + --show-ext - show list of extensions + --val - allow validate against DTDs or schemas + --net - allow fetch DTDs or entities over network + --xinclude - do XInclude processing on document input + --maxdepth val - increase the maximum depth + --html - input document(s) is(are) in HTML format + --catalogs - use SGML catalogs from $SGML_CATALOG_FILES + otherwise XML catalogs starting from + file:///etc/xml/catalog are activated by default + +XMLStarlet is a command line toolkit to query/edit/check/transform +XML documents (for more information see http://xmlstar.sourceforge.net/) + +Current implementation uses libxslt from GNOME codebase as XSLT processor +(see http://xmlsoft.org/ for more details) + + + EXAMPLE: + + # Transform passing parameters to XSLT stylesheet + tr xsl/param1.xsl -p Count='count(/xml/table/rec)' -s Text="Count=" xml/table.xml + + + Input xsl/params1.xsl + + <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> +<xsl:output method="text"/> +<xsl:param name="Text"/> +<xsl:param name="Count"/> +<xsl:template match="/"> + <xsl:call-template name="t1"/> +</xsl:template> +<xsl:template name="t1"> + <xsl:for-each select="/xml"> + <xsl:value-of select="$Text"/> + <xsl:value-of select="$Count"/> + <xsl:value-of select="'&#10;'"/> + </xsl:for-each> +</xsl:template> +</xsl:stylesheet> + + Output + + Count=3 + + + + + Editing XML documents + + Here is the synopsis for ' ed' command: + + XMLStarlet Toolkit: Edit XML document(s) +Usage: ed <global-options> {<action>} [ <xml-file-or-uri> ... ] +where + <global-options> - global options for editing + <xml-file-or-uri> - input XML document file name/uri (stdin is used if missing) + +<global-options> are: + -P (or --pf) - preserve original formatting + -S (or --ps) - preserve non-significant spaces + -O (or --omit-decl) - omit XML declaration (<?xml ...?>) + -N <name>=<value> - predefine namespaces (name without 'xmlns:') + ex: xsql=urn:oracle-xsql + Multiple -N options are allowed. + -N options must be last global options. + --help or -h - display help + +where <action> + -d or --delete <xpath> + -i or --insert <xpath> -t (--type) elem|text|attr -n <name> -v (--value) <value> + -a or --append <xpath> -t (--type) elem|text|attr -n <name> -v (--value) <value> + -s or --subnode <xpath> -t (--type) elem|text|attr -n <name> -v (--value) <value> + -m or --move <xpath1> <xpath2> + -r or --rename <xpath1> -v <new-name> + -u or --update <xpath> -v (--value) <value> + -x (--expr) <xpath> (-x is not implemented yet) + +XMLStarlet is a command line toolkit to query/edit/check/transform +XML documents (for more information see http://xmlstar.sourceforge.net/) + + + EXAMPLE: + + # Delete elements matching XPath expression + ed -d "/xml/table/rec[@id='2']" xml/table.xml + + + Input + + <xml> + <table> + <rec id="1"> + <numField>123</numField> + <stringField>String Value</stringField> + </rec> + <rec id="2"> + <numField>346</numField> + <stringField>Text Value</stringField> + </rec> + <rec id="3"> + <numField>-23</numField> + <stringField>stringValue</stringField> + </rec> + </table> +</xml> + + + Output + + <xml> + <table> + <rec id="1"> + <numField>123</numField> + <stringField>String Value</stringField> + </rec> + <rec id="3"> + <numField>-23</numField> + <stringField>stringValue</stringField> + </rec> + </table> +</xml> + + + EXAMPLE + + # Move element node +echo '<x id="1"><a/><b/></x>' | ed -m "//b" "//a" + + + Output + + <x id="1"> + <a> + <b/> + </a> +</x> + + + EXAMPLE + + # Rename attributes + ed -r "//*/@id" -v ID xml/tab-obj.xml + + + Output: + + <xml> + <table> + <rec ID="1"> + <numField>123</numField> + <stringField>String Value</stringField> + <object name="Obj1"> + <property name="size">10</property> + <property name="type">Data</property> + </object> + </rec> + <rec ID="2"> + <numField>346</numField> + <stringField>Text Value</stringField> + </rec> + <rec ID="3"> + <numField>-23</numField> + <stringField>stringValue</stringField> + </rec> + </table> +</xml> + + + EXAMPLE + + # Rename elements + ed -r "/xml/table/rec" -v record xml/tab-obj.xml + + + Output: + + <xml> + <table> + <record id="1"> + <numField>123</numField> + <stringField>String Value</stringField> + <object name="Obj1"> + <property name="size">10</property> + <property name="type">Data</property> + </object> + </record> + <record id="2"> + <numField>346</numField> + <stringField>Text Value</stringField> + </record> + <record id="3"> + <numField>-23</numField> + <stringField>stringValue</stringField> + </record> + </table> +</xml> + + + EXAMPLE + + # Update value of an attribute + ed -u "/xml/table/rec[@id=3]/@id" -v 5 xml/tab-obj.xml + + + Output: + + <xml> + <table> + <rec id="1"> + <numField>123</numField> + <stringField>String Value</stringField> + <object name="Obj1"> + <property name="size">10</property> + <property name="type">Data</property> + </object> + </rec> + <rec id="2"> + <numField>346</numField> + <stringField>Text Value</stringField> + </rec> + <rec id="5"> + <numField>-23</numField> + <stringField>stringValue</stringField> + </rec> + </table> +</xml> + + + EXAMPLE + + # Update value of an element + ed -u "/xml/table/rec[@id=1]/numField" -v 0 xml/tab-obj.xml + + + Output: + + <xml> + <table> + <rec id="1"> + <numField>0</numField> + <stringField>String Value</stringField> + <object name="Obj1"> + <property name="size">10</property> + <property name="type">Data</property> + </object> + </rec> + <rec id="2"> + <numField>346</numField> + <stringField>Text Value</stringField> + </rec> + <rec id="3"> + <numField>-23</numField> + <stringField>stringValue</stringField> + </rec> + </table> +</xml> + + + + + Validating XML documents + + Here is synopsis for ' val' command: + + XMLStarlet Toolkit: Validate XML document(s) +Usage: val <options> [ <xml-file-or-uri> ... ] +where <options> + -w or --well-formed - validate well-formedness only (default) + -d or --dtd <dtd-file> - validate against DTD + -s or --xsd <xsd-file> - validate against XSD schema + -r or --relaxng <rng-file> - validate against Relax-NG schema + -e or --err - print verbose error messages on stderr + -b or --list-bad - list only files which do not validate + -g or --list-good - list only files which validate + -q or --quiet - do not list files (return result code only) + +NOTE: XML Schemas are not fully supported yet due to its incomplete + support in libxml (see http://xmlsoft.org) + +XMLStarlet is a command line toolkit to query/edit/check/transform +XML documents (for more information see http://xmlstar.sourceforge.net/) + + + EXAMPLE + + # Validate XML document against DTD + val --dtd dtd/table.dtd xml/tab-obj.xml >/dev/null 2>&1; echo $? + + + Output: + + 1 + + + EXAMPLE + + # Validate against XSD schema + val -b -s xsd/table.xsd xml/table.xml xml/tab-obj.xml 2>/dev/null; echo $? + + + Output: + + xml/tab-obj.xml +1 + + + + + Formatting XML documents + + Here is synopsis for ' fo' command: + + XMLStarlet Toolkit: Format XML document +Usage: fo [<options>] <xml-file> +where <options> are + -n or --noindent - do not indent + -t or --indent-tab - indent output with tabulation + -s or --indent-spaces <num> - indent output with <num> spaces + -o or --omit-decl - omit xml declaration <?xml version="1.0"?> + -R or --recover - try to recover what is parsable + -D or --dropdtd - remove the DOCTYPE of the input docs + -C or --nocdata - replace cdata section with text nodes + -N or --nsclean - remove redundant namespace declarations + -e or --encode <encoding> - output in the given encoding (utf-8, unicode...) + -H or --html - input is HTML + -h or --help - print help + +XMLStarlet is a command line toolkit to query/edit/check/transform +XML documents (for more information see http://xmlstar.sourceforge.net/) + + + EXAMPLE + + # Format XML document disabling indent +cat xml/tab-obj.xml | fo --noindent + + + Output: + + <xml> +<table> +<rec id="1"> +<numField>123</numField> +<stringField>String Value</stringField> +<object name="Obj1"> +<property name="size">10</property> +<property name="type">Data</property> +</object> +</rec> +<rec id="2"> +<numField>346</numField> +<stringField>Text Value</stringField> +</rec> +<rec id="3"> +<numField>-23</numField> +<stringField>stringValue</stringField> +</rec> +</table> +</xml> + + + EXAMPLE + + # Recover malformed XML document + fo -R xml/malformed.xml 2>/dev/null + + + Input: + + <test_output> + <test_name>foo</testname> + <subtest>...</subtest> +</test_output> + + + Output: + + <test_output> + <test_name>foo</test_name> + <subtest>...</subtest> +</test_output> + + + + + Canonicalization of XML documents + + Here is synopsis for ' c14n' command: + + XMLStarlet Toolkit: XML canonicalization +Usage: c14n <mode> <xml-file> [<xpath-file>] [<inclusive-ns-list>] +where + <xml-file> - input XML document file name (stdin is used if '-') + <xpath-file> - XML file containing XPath expression for + c14n XML canonicalization + Example: + <?xml version="1.0"?> + <XPath xmlns:n0="http://a.example.com" xmlns:n1="http://b.example"> + (//. | //@* | //namespace::*)[ancestor-or-self::n1:elem1] + </XPath> + + <inclusive-ns-list> - the list of inclusive namespace prefixes + (only for exclusive canonicalization) + Example: 'n1 n2' + + <mode> is one of following: + --with-comments XML file canonicalization w comments (default) + --without-comments XML file canonicalization w/o comments + --exc-with-comments Exclusive XML file canonicalization w comments + --exc-without-comments Exclusive XML file canonicalization w/o comments + +XMLStarlet is a command line toolkit to query/edit/check/transform +XML documents (for more information see http://xmlstar.sourceforge.net/) + + + EXAMPLE + + # XML canonicalization + c14n --with-comments ../examples/xml/structure.xml ; echo $? + + + Input ../examples/xml/structure.xml + + <a1> + <a11> + <a111> + <a1111/> + </a111> + <a112> + <a1121/> + </a112> + </a11> + <a12/> + <a13> + <a131/> + </a13> +</a1> + + Output + + <a1> + <a11> + <a111> + <a1111></a1111> + </a111> + <a112> + <a1121></a1121> + </a112> + </a11> + <a12></a12> + <a13> + <a131></a131> + </a13> +</a1> +0 + + + EXAMPLE + + # XML exclusive canonicalization + c14n --exc-with-comments ../examples/xml/c14n.xml ../examples/xml/c14n.xpath + + + Input + + ../examples/xml/c14n.xml + +<n0:pdu xmlns:n0='http://a.example.com'> +<n1:elem1 xmlns:n1='http://b.example'> +content +</n1:elem1> +</n0:pdu> + +../examples/xml/c14n.xpath + +<XPath xmlns:n0="http://a.example.com" xmlns:n1="http://b.example"> +(//. | //@* | //namespace::*)[ancestor-or-self::n1:elem1] +</XPath> + + + + Output + + <n1:elem1 xmlns:n1="http://b.example"> +content +</n1:elem1> + + + + + XML and PYX format + + Here is synopsis for ' pyx' command: + + XMLStarlet Toolkit: Convert XML into PYX format (based on ESIS - ISO 8879) +Usage: pyx {<xml-file>} +where + <xml-file> - input XML document file name (stdin is used if missing) + +The PYX format is a line-oriented representation of +XML documents that is derived from the SGML ESIS format. +(see ESIS - ISO 8879 Element Structure Information Set spec, +ISO/IEC JTC1/SC18/WG8 N931 (ESIS)) + +A non-validating, ESIS generating tool originally developed for +pyxie project (see http://pyxie.sourceforge.net/) +ESIS Generation by Sean Mc Grath http://www.digitome.com/sean.html + +XMLStarlet is a command line toolkit to query/edit/check/transform +XML documents (for more information see http://xmlstar.sourceforge.net/) + + + EXAMPLE + + pyx input.xml + + + Input (input.xml) + + <books> +<book type='hardback'> +<title>Atlas Shrugged</title> +<author>Ayn Rand</author> +<isbn id='1'>0525934189</isbn> +</book> +</books> + + Output + + (books +-\n +(book +Atype hardback +-\n +(title +-Atlas Shrugged +)title +-\n +(author +-Ayn Rand +)author +-\n +(isbn +Aid 1 +-0525934189 +)isbn +-\n +)book +-\n +)books + + PYX is a line oriented format for XML files which can be helpful + (and very efficient) when used in combination with regular line oriented + UNIX command such as sed, grep, awk. + + 'depyx' option is used for conversion back from PYX into + XML. + + EXAMPLE (Delete all attributes). This should work really fast for + very large XML documents. + + pyx input.xml | grep -v "^A" | depyx + + Output + + <books> +<book> +<title>Atlas Shrugged</title> +<author>Ayn Rand</author> +<isbn>0525934189</isbn> +</book> +</books> + + Here is an article which describes how PYX format can be used to + grep XML. http://www-106.ibm.com/developerworks/xml/library/x-matters17.html + + + + Escape/Unescape special XML characters + + Here is synopsis for ' esc' command: + + esc --help +XMLStarlet Toolkit: Escape special XML characters +Usage: esc [<options>] [<string>] +where <options> are + --help - print usage + (TODO: more to be added in future) +if <string> is missing stdin is used instead. + +XMLStarlet is a command line toolkit to query/edit/check/transform +XML documents (for more information see http://xmlstar.sourceforge.net/) + + + EXAMPLE + + # Escape special XML characters +cat xml/structure.xml | esc + + + Input + + <a1> + <a11> + <a111> + <a1111/> + </a111> + <a112> + <a1121/> + </a112> + </a11> + <a12/> + <a13> + <a131/> + </a13> +</a1> + + Output + + &lt;a1&gt; + &lt;a11&gt; + &lt;a111&gt; + &lt;a1111/&gt; + &lt;/a111&gt; + &lt;a112&gt; + &lt;a1121/&gt; + &lt;/a112&gt; + &lt;/a11&gt; + &lt;a12/&gt; + &lt;a13&gt; + &lt;a131/&gt; + &lt;/a13&gt; +&lt;/a1&gt; + + + + + List directory as XML + + Here is synopsis for ' ls' command: + + XMLStarlet Toolkit: List directory as XML +Usage: ls +Lists current directory in XML format. + +XMLStarlet is a command line toolkit to query/edit/check/transform +XML documents (for more information see http://xmlstar.sourceforge.net/) + + + EXAMPLE + + ls + + + Output + + <xml> +<d p="rwxrwxrwx" a="20050107T050740Z" m="20050107T050740Z" s="0" n="old-resume"/> +<f p="rw-rw-rw-" a="20050107T045941Z" m="20050107T045941Z" s="12" n="resume.2old"/> +<f p="rw-rw-rw-" a="20050107T045924Z" m="20050107T045924Z" s="81" n="resume.xml"/> +</xml> + + + + + + Common problems + + + Namespaces and default namespace + + One of the commonly asked questions about XmlStarlet 'select' or + 'edit' options is: "Why nothing matched for my XPath expression which + seems right to me?". Common cause of these problems is not properly + defining a namespace for XPath. This chapter will show several examples + to illustrate these issues you might encounter. + + For example the following XHTML document has a default namespace + declaration + + <html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<title>Query Page</title> +<meta http-equiv="Content-Style-Type" content="text/css" /> +<meta http-equiv="Content-Script-Type" content="text/javascript" /> +<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> +<meta name="robots" content="noindex,nofollow" /> +</head> +<body> +... +</body> +</html> + + + And the following (initially looking correct) query to print all + links + + sel -t -m "//a" -c . -n + + would return nothing. The issue with this query is that it is not + addressing element <a> in the right namespace. XPath requires all + namespaces used in XPath expression be defined. So for declared + namespace <html xmlns="http://www.w3.org/1999/xhtml"> in input + XML, you have to do same for XPath (or XSLT). There is another important + detail: namespace equivalency is determined not by namespace prefix, but + by URI. See query below, which would return expected result + + sel -N x="http://www.w3.org/1999/xhtml" -t -m "//x:a" -c . -n + + Example of deleting namespace declarations. + + Delete namespace declarations and all elements from non default + namespace from the following XML document: + + Input (file ns2.xml)<doc xmlns="http://www.a.com/xyz" xmlns:ns="http://www.c.com/xyz"> + <A>test</A> + <B> + <ns:C>xyz</ns:C> + </B> +</doc> + + + Command: ed -N N="http://www.c.com/xyz" -d '//N:*' ns2.xml | \ + sed -e 's/ xmlns.*=".*"//g' + + Output<doc> + <A>test</A> + <B/> +</doc> + + + + + Special characters + + Sometimes issues appear with handling of special characters, where + 'special' means in XML sence as well as in 'shell' terms. Examples below + should clear at least some of the confusions. + + You should not forget about the fact that your command lines are + executed by shell and shell does substitutions of its special characters + too. So for example, one may ask: + + "Why does the following query return nothing?" + echo '<X name="foo">EEE</X>' | sel -t -m /X[@name='foo'] -v . + + The answer lies in the way shell substitues 'foo', which simply + becomes foo before the command is run. So the correct way to write that + would be + + echo '<X name="foo">EEE</X>' | sel -t -m "/X[@name='foo']" -v . + + Another example involves XML special characters. Question: How to + search for &apos; in text nodes? + + The following should help sel -t -m "//line[contains(text(),&quot;'&quot;)]" -c . + + + + + Sorting + + Let's take a look at XSLT produced by the following ' sel' + command: + + # Query XML document and produce sorted text table + sel -T -t -m /xml/table/rec -s D:N:- "@id" \ + -v "concat(@id,'|',numField,'|',stringField)" -n xml/table.xml + + + <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> +<xsl:output omit-xml-declaration="yes" indent="no" method="text"/> +<xsl:param name="inputFile">-</xsl:param> +<xsl:template match="/"> + <xsl:call-template name="t1"/> +</xsl:template> +<xsl:template name="t1"> + <xsl:for-each select="/xml/table/rec"> + <xsl:sort order="descending" data-type="number" + case-order="upper-first" select="@id"/> + <xsl:value-of select="concat(@id,'|',numField,'|',stringField)"/> + <xsl:value-of select="'&#10;'"/> + </xsl:for-each> +</xsl:template> +</xsl:stylesheet> + + + -s option of ' sel' command controls 'order', 'data-type', and + 'case-order' attributes of <xsl:sort/> element . + + + + Validation + + Many questions are asked about XSD (XML schema) validation. Well, + XmlStarlet relies on libxml2 which has incomplete support for XML + schemas. Untill it is done in libxml2 it will not be in + XmlStarlet. + + + + + + + + + Other XmlStarlet Resources + + Here are few articles on the Internet. + + + + XMLStarlet: + a Unix toolkit for XML + + + + Start + working with XMLStarlet + + + + XMLStarlet: + A gentle introduction into XSLT + + + + Command + line XML with XMLStarlet + + + + Using + vi as XML editor + + + + diff --git a/doc/xmlstarlet.1 b/doc/xmlstarlet.1 new file mode 100644 index 0000000..383b155 --- /dev/null +++ b/doc/xmlstarlet.1 @@ -0,0 +1,136 @@ +'\" t +.\" Title: xmlstarlet +.\" Author: Mikhail Grushinskiy +.\" Generator: DocBook XSL-NS Stylesheets v1.76.1 +.\" Date: 08/26/2012 +.\" Manual: XMLStarlet Manual +.\" Source: Version 1.4.0 +.\" Language: English +.\" +.TH "XMLSTARLET" "1" "08/26/2012" "Version 1.4.0" "XMLStarlet Manual" +.\" ----------------------------------------------------------------- +.\" * Define some portability stuff +.\" ----------------------------------------------------------------- +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.\" http://bugs.debian.org/507673 +.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html +.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +.ie \n(.g .ds Aq \(aq +.el .ds Aq ' +.\" ----------------------------------------------------------------- +.\" * set default formatting +.\" ----------------------------------------------------------------- +.\" disable hyphenation +.nh +.\" disable justification (adjust text to left margin only) +.ad l +.\" ----------------------------------------------------------------- +.\" * MAIN CONTENT STARTS HERE * +.\" ----------------------------------------------------------------- +.SH "NAME" +xmlstarlet \- command line XML/XSLT toolkit +.SH "SYNOPSIS" +.HP \w'\fBxml\fR\ 'u +\fBxml\fR [\fIoptions\fR...] {\fIcommand\fR} [\fIcmd\-options\fR...] +.SH "INTRODUCTION" +.PP +XMLStarlet is a set of command line utilities (tools) which can be used to transform, query, validate, and edit XML documents and files using simple set of shell commands in similar way it is done for plain text files using UNIX grep, sed, awk, diff, patch, join, etc commands\&. This set of command line utilities can be used by those who deal with many XML documents on UNIX shell command prompt as well as for automated XML processing with shell scripts\&. +.SH "OPTIONS" +.PP +\fB\-\-version\fR +.RS 4 +Display the version of +xmlstarlet\&. +.RE +.PP +\fB\-\-help\fR +.RS 4 +Display help\&. +.RE +.SH "COMMANDS" +.PP +\fBxml\fR +\fIcommand\fR +\fB\-\-help\fR +for command specific help +.PP +Available commands include: +.PP +\fBed (or edit)\fR +.RS 4 +Edit/update XML document(s)\&. +.RE +.PP +\fBsel (or select)\fR +.RS 4 +Select data or query XML document(s) (XPATH, etc)\&. +.RE +.PP +\fBtr (or transform)\fR +.RS 4 +Transform XML documents(s) using XSLT\&. +.RE +.PP +\fBval (or validate)\fR +.RS 4 +Validate XML document(s) (well\-formed/DTD/XSD/RelaxNG)\&. +.RE +.PP +\fBfo (or format)\fR +.RS 4 +Format XML document(s)\&. +.RE +.PP +\fBel (or elements)\fR +.RS 4 +Display element structure of XML document\&. +.RE +.PP +\fBc14n (or canonic)\fR +.RS 4 +XML canonicalization\&. +.RE +.PP +\fBls (or list)\fR +.RS 4 +List directory as XML\&. +.RE +.PP +\fBesc (or escape)\fR +.RS 4 +Escape special XML characters\&. +.RE +.PP +\fBunesc (or unescape)\fR +.RS 4 +Unescape special XML characters\&. +.RE +.PP +\fBpyx (or xmln)\fR +.RS 4 +Convert XML into PYX format (based on ESIS \- ISO 8879)\&. +.RE +.PP +\fBp2x (or depyx)\fR +.RS 4 +Convert PYX into XML\&. +.RE +.SH "REFERENCES" +.PP +XMLStarlet is a command line toolkit to query/edit/check/transform XML documents (for more information see http://xmlstar\&.sourceforge\&.net/)\&. +.SH "BUGS" +.PP +Report bugs to the mailing list, +xmlstar\-devel@lists\&.sourceforge\&.net +or the bug tracker: +\m[blue]\fB\%http://sourceforge.net/tracker/?group_id=66612&atid=515106\fR\m[]\&. +.SH "AUTHOR" +.PP +\fBMikhail Grushinskiy\fR +.RS 4 +XMLStarlet creator\&. +.RE +.SH "COPYRIGHT" +.br +Copyright \(co 2012 +.br diff --git a/doc/xmlstarlet.txt b/doc/xmlstarlet.txt new file mode 100644 index 0000000..309030d --- /dev/null +++ b/doc/xmlstarlet.txt @@ -0,0 +1,1325 @@ + + + XMLSTARLET USER'S GUIDE + + see also http://xmlstar.sourceforge.net/ + + + + +1. BASIC COMMAND LINE OPTIONS +==================================================== + +xml --help +XMLStarlet Toolkit: Command line utilities for XML +Usage: xml [] [] +where is one of: + ed (or edit) - Edit/Update XML document(s) + sel (or select) - Select data or query XML document(s) (XPATH, etc) + tr (or transform) - Transform XML document(s) using XSLT + val (or validate) - Validate XML document(s) (well-formed/DTD/XSD/RelaxNG) + fo (or format) - Format XML document(s) + el (or elements) - Display element structure of XML document + c14n (or canonic) - XML canonicalization + ls (or list) - List directory as XML + esc (or escape) - Escape special XML characters + unesc (or unescape) - Unescape special XML characters + pyx (or xmln) - Convert XML into PYX format (based on ESIS - ISO 8879) + p2x (or depyx) - Convert PYX into XML + are: + --version - show version + --help - show help +Wherever file name mentioned in command help it is assumed +that URL can be used instead as well. + +Type: xml --help for command help + + + + +2. Select/Query XML documents +==================================================== + +xml sel --help +XMLStarlet Toolkit: Select from XML document(s) +Usage: xml sel {